《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業(yè)界動態(tài) > CobraNet網絡音頻路由器的設計

CobraNet網絡音頻路由器的設計

2008-07-30
作者:祁才君, 趙 凡, 王培良

??? 摘??要:論述了CobraNet網絡音頻技術的發(fā)展,分析了嵌入CobraNet技術的CS1810xx網絡音頻處理芯片,并給出了應用CS1810xx設計CobraNet網絡音頻路由器" title="網絡音頻路由器">網絡音頻路由器的方法和硬件結構。著重討論了CS1810xx的以太網控制接口設計,CS1810xx的固件" title="固件">固件裝載,主機接口的軟件設計" title="軟件設計">軟件設計等。
??? 關鍵詞:CobraNet;專業(yè)音頻;MCU;網絡協議

?

??? 目前,CobraNet技術已成為專業(yè)音頻領域實時網絡傳輸的一種標準,不同廠商的CobraNet產品可以無縫連接。
  CobraNet技術解決了專業(yè)音頻信號" title="音頻信號">音頻信號在以太網平臺上傳輸時的實時性、時鐘同步、流量控制和傳輸控制等關鍵問題[1,2,4]。CobraNet技術采用等時同步傳輸技術在數據鏈路層傳輸音頻數據包,等時延時最低等于ms。它將局域網內的CobraNet設備分成Conductor(主設備,一個系統(tǒng)僅有一個)和Performance(從設備,數量不限)設備,主設備等時發(fā)送時鐘節(jié)拍包(beat pack),從設備從節(jié)拍包中解析主設備的時鐘并用其同步本地時鐘,時鐘同步算法產生的時鐘跳變(jitter)小于25ppm。每個CobraNet設備在發(fā)送或接收音頻數據包前必須向主設備發(fā)出請求包,主設備匯總局域網內所有請求,根據流量分析結果決定該音頻包能否發(fā)送或接收,從而避免網絡堵塞。音頻數據包支持點對點、點對多點和廣播三種發(fā)送方式。應用CobraNet技術在一根CAT-5類線上最多可傳輸64個通道的專業(yè)(采樣率48kHz,分辨率20/24bit)數字音頻信號。
  2000年,美國專業(yè)音頻芯片制造商Cirrus Logic收購了peakaudio公司,并將CobraNet技術芯片化,開始批量生產CS1810xx和CS496xx(帶DSP處理功能)兩個系列的CobraNet網絡音頻處理器" title="音頻處理器">音頻處理器。
本文研究應用網絡音頻處理器CS1810xx設計CobraNet網絡音頻路由器的方法。
1 CS1810xx網絡音頻處理器[5]
  CS1810xx是內嵌TCP/IP協議棧、可以運行CobraNet技術固件(音頻包的編解碼算法、時鐘同步算法等)的音頻處理器。CS1810xx采用LPQF144腳封裝,引腳可分為處理器外部總線、主機接口HMI(Host Management Interface)、數字音頻和異步通信等。
1.1 處理器外部總線
  處理器外部總線相關引腳包括16根數據線DATA15~DATA0;20根地址線ADDR19~ADDR0;存儲器選通信號#CS1、#CS2,讀寫信號#WE、#OE和外設等待信號IOWAIT等。
  利用總線可以擴展外部存儲器或擴展帶微處理器接口的以太網控制器。
1.2 主機接口控制
???主機接口是CS1810xx的主要外設(主機控制有motorola和intel兩種讀寫時序),主機控制信號相關引腳:
  (1) 讀寫方向控制HR#W、主機使能#HDS、主機選通#HDS、主機端口數據請求輸出#HREQ、主機端口中斷請求輸出#HACK。
  (2) 主機控制數據線HDATA7~HDATA0,寬度8位。
  (3) 主機低位地址4位,對應HADDR3~HADDR0。
1.3 數字音頻
  數字音頻相關引腳:
??? (1) 時鐘類:主時鐘(通常是512倍幀時鐘)DAO-MCLK,移位時鐘DAI1-SCLK/DAO1-SCLK,幀時鐘DAI1-LRCK/DAO2-LRCK。
??? (2) 同步串行音頻輸入數據(每根2個通道)DAI1_DATA3~DAI1_DATA0。
??? (3) 同步串行音頻輸出數據(每根2個通道)DAO1_DATA3~DAO1_DATA0。
??? 串行音頻輸入有兩種模式。模式1如圖1,一幀內每根同步串行輸入/輸出內部包含兩個通道(一個立體聲)音頻信號。模式2如圖2,一幀內每根同步串行輸入/輸出內部包含四個通道音頻信號。

?


1.4 其他
??? 異步通信由UART_TXD、UART_RXD和UART_TX_OE組成。
??? 信號DBCK和DBDATA提供I2C接口,主要用于引導程序(bootloader)的裝載。
2 CobraNet網絡音頻路由器的硬件設計
??? 圖3是CobraNet網絡音頻路由器的硬件設計框圖。

?


2.1 CS1810xx部分電路
??? CS1810xx部分電路主要有以太網接口、并行FLASH接口、串行音頻數據輸入/輸出和下載接口等。
??? CS1810xx內部并沒有集成以太網控制器,為此選用帶通用微處理接口、包含MAC控制器并集成10/100MPHY接口的以太網接口單芯片DM9000E作為CS1810xx的接口芯片。DM9000E的PHY輸出直接與磁芯變壓器一體化的RJ45網頭相連,原理設計如圖4。

?


??? 并行FLASH用于存儲處理器的固件,選用1MB的AM29LV800DB-90EC。AD選用Cirrus Logic公司CS5396[6],DA選用Cirrus Logic公司CS4396[7]
??? 下載接口用于處理器裝載引導程序,其接口原理設計如圖5所示。

?


2.2 MCU部分
??? MCU通過CS1810xx處理器提供的主機接口與處理器進行通信??紤]CS1810xx提供8位主機接口數據寬度,MCU選用Philipp公司的P89V51RD2八位微控制器,MCU相關接口有RS232異步通信、LCD液晶顯示、鍵盤輸入等,其中LCD選用144X32的內嵌漢字字庫的點陣液晶LM3037。CS1810xx地址鎖存和譯碼、MCU地址鎖存和譯碼等邏輯控制選用Xilinx公司的CPLD XC9572-100PQ實現。
3 CobraNet網絡音頻路由器的軟件設計
??? 軟件設計包括CS1810xx固件裝載和MCU軟件設計兩部分。
3.1 CS1810xx固件裝載
??? CS1810xx固件裝載[3]由bootloader裝載和應用程序裝載兩部分組成。
??? 用電纜將計算機的并口和目標板的下載接口相連,運行Cirrus Logic公司提供的windows環(huán)境下的DOS應用程序CID,執(zhí)行命令“e lcm2.cmd”實現bootloader裝載,完成以太網接口和主機接口等驅動安裝。將目標機接入以太網并重新啟動,運行Winows環(huán)境下的另一個工具軟件Discovery,該軟件會自動查找局域網內的CobraNet設備,給目標機分配IP地址,并利用工具選項update firmware下載處理器的最新應用軟件。
3.2 MCU軟件設計
??? MCU軟件設計包括液晶顯示控制、RS232通信協議制訂和處理、鍵盤掃描和與CS1810xx之間的主機接口通信等。其中,最關鍵部分是與CS1810xx主機接口部分程序的編寫。
??? MCU與CS1810xx之間通信的實質是對處理器CS1810xx內存映射存儲單元的讀寫。HMI主機接口的數據寬度是8位,而CS1810xx內部核心是數據寬度等于32位的Motorola定點DSP處理器。
??? CS1810xx內部主機接口部分提供8個8位寄存器,其地址由基址HMI-BASE,即CS1810xx的主機選通或使能信號 (#HDS、#HEN)地址,和低位HADD3~HADD0之和決定。0~8位地址分別對應信息寄存器MSG_A(MS)、MSG_B、MSG_C、MSG_D(LS)和數據DATA_A(MS)、DATA_B、DATA_C、DATA_D(LS)。
??? 主機可以向CS1810xx發(fā)送10種消息。消息功能和對應信息寄存器的值如表1所示。

?


??? CS1810xx收到消息后,將主要處理結果存放在信息寄存器MSG_D中,MSG_D中各位對應的狀態(tài)是:bit0——信息翻轉位,bit1——接收包有效位,bit2——包發(fā)送完成位,bit3——地址轉換完成位,bit4——可寫區(qū)位。
  主機讀寫過程如圖6,設置地址過程如圖7,程序代碼如下:
  void SendMessage(uchar message )
  {
????   int msgack = ReadRegister(HMI_BASE+MSG_D);???? ?????????????? //保留原信息
????   WriteRegister(HMI_BASE+MSG_D, message);
?????????                               ??? //寫入新消息
  ???? while(!((msgack^ReadRegister(HMI_BASE+MSG_D))
??   & 0x01))? ?????              //等待第0位翻轉
  }
  void SetAddress(ulong address )
  {
????     ??????              ? //設置第16~23位、第8~15位、第0~7位地址
  WriteRegister(HMI_BASE+MSG_A,(uchar)((address&0xff0000)
  >>16));
  WriteRegister(HMI_BASE+MSG_B,(uchar)((address&0xff00)
  >>8));??
  WriteRegister(HMI_BASE+MSG_C, (uchar)(address&0xff));
?   SendMessage(0xB3);?
????                       //發(fā)地址轉換消息,并等待CS1810xx響應
  while( !(ReadRegister(HMI_BASE+MSG_D) & 0x08);
???                        //等待地址寫入轉換結束,開始讀地址轉換消息
  WriteRegister(HMI_BASE+ MSG_C, 0x0 );?
????                      ???//信息寄存器MsgC寫入0
  SendMessage(0xB5);?            ?? //發(fā)送消息,結束地址設置
  ReadRegister(HMI_BASE+DATA_D);???      //清除數據管道
  }

?

?


  MCU微控制軟件由主循環(huán)、按鍵中斷和串行接收中斷等組成。
  PC機通過SNMP協議發(fā)送命令改變CS1810xx中的接收或發(fā)送音頻通道的BUNDLE編號,改變音頻路由狀態(tài)。MCU在主循環(huán)中還不斷掃描CS1810xx各音頻通道的音量,然后將音量值以音量柱的形式在LCD界面上顯示。
  路由控制還可以通過按鍵中斷和串行中斷實現。收到中斷路由命令后MCU直接通過CS1810xx的主機接口改變CS1810xx的路由,這種路由方式的響應速度要快于SNMP協議的網絡命令,尤其是按鍵控制可以脫離PC對CobraNet網絡音頻路由器實施路由控制。
  本文研制的具有8個通道輸入和8通道輸出的CobraNet網絡音頻路由器已經批量生產,并以多個硬件設備為基礎構建了網絡音頻系統(tǒng),配合控制軟件,實現了音頻信號的全數字化傳輸、交換、監(jiān)測、智能切換等功能。


參考文獻
[1]? GROSS K P. Media access control for isochronous data?packets in carrier sensing multiple access systems, Patent?No. US 5,761,430, Jun. 2, 1998.
[2]? GROSS K P. Exploiting shortest path for improved network?clock distribution, Patent No. US 6,973,152,B2, Dec.6, 2005.
[3]?Cirrus Logic, Inc. CobraNet programmer’s reference?version 2.5, Feb, 2006.
[4]? Cirrus Logic, Inc., Audio Networks An Overview, 2001.
[5]? Cirrus Logic, Inc.,CobraNet Silicon Series Hardware User’s ?Manual Version 2.2, Mar., 2006.
[6]?Cirrus Logic, Inc.,192 kHz D/A Converter for Digital?Audio-CS5396/7,Sep.,1997.
[7]?Cirrus Logic, Inc., 24-Bit, 192kHz D/A Converter for?Digital Audio-CS4396,Jul.199924-Bit.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。