《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > CobraNet網(wǎng)絡(luò)音頻路由器的設(shè)計(jì)

CobraNet網(wǎng)絡(luò)音頻路由器的設(shè)計(jì)

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

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

?

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

?


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

?


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

?


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

?


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

?


??? CS1810xx收到消息后,將主要處理結(jié)果存放在信息寄存器MSG_D中,MSG_D中各位對(duì)應(yīng)的狀態(tài)是:bit0——信息翻轉(zhuǎn)位,bit1——接收包有效位,bit2——包發(fā)送完成位,bit3——地址轉(zhuǎn)換完成位,bit4——可寫區(qū)位。
  主機(jī)讀寫過程如圖6,設(shè)置地址過程如圖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位翻轉(zhuǎn)
  }
  void SetAddress(ulong address )
  {
????     ??????              ? //設(shè)置第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ā)地址轉(zhuǎn)換消息,并等待CS1810xx響應(yīng)
  while( !(ReadRegister(HMI_BASE+MSG_D) & 0x08);
???                        //等待地址寫入轉(zhuǎn)換結(jié)束,開始讀地址轉(zhuǎn)換消息
  WriteRegister(HMI_BASE+ MSG_C, 0x0 );?
????                      ???//信息寄存器MsgC寫入0
  SendMessage(0xB5);?            ?? //發(fā)送消息,結(jié)束地址設(shè)置
  ReadRegister(HMI_BASE+DATA_D);???      //清除數(shù)據(jù)管道
  }

?

?


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


參考文獻(xià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.

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