多媒體網(wǎng)關(guān)系統(tǒng)中模擬電話語(yǔ)音卡的設(shè)計(jì)
電話語(yǔ)音卡是構(gòu)筑各種CTI應(yīng)用系統(tǒng)的基礎(chǔ),它是一種用于電腦并能夠?qū)崿F(xiàn)語(yǔ)音處理的電腦插件。電話語(yǔ)音卡(簡(jiǎn)稱(chēng)語(yǔ)音卡)的主要功能是:通過(guò)計(jì)算機(jī)與電信網(wǎng)相連,提供撥號(hào)、振鈴檢測(cè)與控制摘掛機(jī)、信令檢測(cè)、轉(zhuǎn)接內(nèi)線、監(jiān)控錄音、傳真、數(shù)據(jù)傳輸、主叫號(hào)偵測(cè)等服務(wù)功能。作為實(shí)現(xiàn)語(yǔ)音處理的功能部件,語(yǔ)音卡一般都有與電話網(wǎng)的接口。與電話網(wǎng)不同的接口類(lèi)型,可分為模擬語(yǔ)音卡和數(shù)字語(yǔ)音卡。
以下將介紹一個(gè)基于TMS320VC5402處理器(簡(jiǎn)稱(chēng)DSP5402)、AM79R79(SLIC)用戶(hù)線路接口芯片和AM79Q02(SLAC)用戶(hù)音頻處理芯片及PCI9052 PCI橋接芯片所構(gòu)成的模擬電話語(yǔ)音卡設(shè)計(jì)。
1 系統(tǒng)總體方案
在設(shè)計(jì)中,電話語(yǔ)音卡實(shí)現(xiàn)了16路話音的接續(xù)控制和成幀功能。系統(tǒng)通過(guò)PCI總線與DSP5402交互,對(duì)單板進(jìn)行維護(hù)和管理;語(yǔ)音業(yè)務(wù)通過(guò)TDM(時(shí)分多路復(fù)用)總線連接;單板內(nèi)部則由DSP5402完成對(duì)語(yǔ)音的接續(xù)控制和成幀功能??傮w設(shè)計(jì)框圖如圖1所示。
2 硬件電路的設(shè)計(jì)
2.1 DSP5402簡(jiǎn)介
DSP5402是TI公司的54X系列16bit定點(diǎn)DSP,具有低功耗、高性?xún)r(jià)比的特點(diǎn)。具體特點(diǎn)如下:擴(kuò)展地址模式最大可尋址到1M16bit外部程序空間,4K16bit片上ROM,16K16bit片上雙口RAM;指令集支持單指令循環(huán)和塊循環(huán),存儲(chǔ)塊移動(dòng)指令提供高效的程序和數(shù)據(jù)存儲(chǔ)器管理;片上硬件資源包括軟件可編程等待狀態(tài)發(fā)生器和可編程存儲(chǔ)單元轉(zhuǎn)換,連接內(nèi)部振蕩器或外部時(shí)鐘源的鎖相環(huán)(PLL)時(shí)鐘發(fā)生器,兩個(gè)多通道緩沖串口(McBPs),增強(qiáng)型8bit并行主機(jī)接口(HPI8),兩個(gè)16bit定時(shí)器,6通道直接存儲(chǔ)器訪問(wèn)(DMA)控制器;工作電源有3.3V和1.8V(內(nèi)核);在3.3V供電(1.8V核心電壓)下單周期定點(diǎn)指令的執(zhí)行周期可達(dá)10ns(100MIPS)。
設(shè)計(jì)中DSP5402一方面通過(guò)PCI總線完成與主機(jī)的通信、數(shù)據(jù)交換,另一方面完成對(duì)語(yǔ)音的接續(xù)與成幀功能的控制,以及語(yǔ)音信號(hào)和信令處理功能。
因此DSP5402外圍設(shè)計(jì)分兩部分:
(1)DSP5402與PCI9052的硬件接口
完成DSP5402的HPI總線與PCI9052 LOCAL本地總線連接,主機(jī)從而可以通過(guò)PCI總線與DSP5402進(jìn)行通信。首先通過(guò)HPI對(duì)DSP5402進(jìn)行程序加載并啟動(dòng),然后完成對(duì)語(yǔ)音板的監(jiān)控操作。
當(dāng)DSP5402與主機(jī)(HOST)交換信息時(shí),HPI是主機(jī)的一個(gè)外圍設(shè)備。它有如下特點(diǎn):可訪問(wèn)所有片內(nèi)RAM空間、HOST訪問(wèn)總是與DSP5402時(shí)鐘同步、HOST和DSP5402均可訪問(wèn)片內(nèi)RAM。
PLX公司的PCI總線控制芯片PCI9052完成PCI總線高速信號(hào)與LOCAL 側(cè)本地設(shè)備資源的信息交互。它提供了本地總線與PCI總線的接口,避免用戶(hù)直接面對(duì)復(fù)雜的PCI總線協(xié)議,提供高性能的從目標(biāo)PCI接口板卡與PCI總線的連接;支持寬速率范圍的本地總線,最高可達(dá)132 Mbps的傳輸速率;對(duì)PCI9052編程可實(shí)現(xiàn)復(fù)用/非復(fù)用的8位、16位、32位的本地總線接口。
設(shè)計(jì)中PCI9052本地總線采用非復(fù)用8位模式與HPI8總線匹配,CPLD完成PCI本地總線與DSP5402的HPI總線互連,如圖2所示。其中具體信號(hào)定義如下:PCI本地側(cè)地址信號(hào)(LA27、LA0、LA[1:2]),配合PCI本地側(cè)讀寫(xiě)信號(hào)LW/R#、地址使能信號(hào)ADS#及BLAST傳輸模式使能信號(hào)編碼生成HPI控制信號(hào)(如片選信號(hào)HCS#、數(shù)據(jù)字高低字節(jié)選擇信號(hào)HBIL、功能寄存器選擇信號(hào)HCNTL[0:1]及讀寫(xiě)信號(hào)HRD#、HWR#);HPI準(zhǔn)備就緒信號(hào)HRDY產(chǎn)生PCI本地側(cè)就緒信號(hào)READY#,可根據(jù)需要插入等待周期,達(dá)到實(shí)際時(shí)序要求;HPI中斷信號(hào)HINT#觸發(fā)PCI本地中斷信號(hào)LINT#;HPI數(shù)據(jù)總線HD[0:7]通過(guò)CPLD電平匹配與PCI本地側(cè)數(shù)據(jù)總線LD[0:7]連接。
(2)DSP5402與AM79Q02(SLAC)的硬件接口
選用AMD公司SLIC用戶(hù)線路接口芯片AM79R79(簡(jiǎn)稱(chēng)SLIC)實(shí)現(xiàn)電話的接續(xù)各狀態(tài)的轉(zhuǎn)換,監(jiān)視電話線的負(fù)載變化,實(shí)現(xiàn)摘機(jī)檢測(cè)、饋電供給及振鈴傳送;與其實(shí)現(xiàn)無(wú)縫接口的SLAC用戶(hù)音頻處理芯片AM79Q02(簡(jiǎn)稱(chēng)SLAC)實(shí)現(xiàn)話音的A/D轉(zhuǎn)換,并成幀到PCM碼流中。SLAC提供的SPI MCU總線接口簡(jiǎn)化了與MCU的硬線連接,并且SLAC(提供完全的SLIC的控制總線)與SLIC可實(shí)現(xiàn)無(wú)縫連接,因此對(duì)SLIC的控制可完全簡(jiǎn)化為直接控制SLAC來(lái)間接完成,簡(jiǎn)化了硬件電路的設(shè)計(jì),節(jié)省了用戶(hù)的開(kāi)發(fā)成本。
SPI接口包括時(shí)鐘DCLK、片選及數(shù)據(jù)線DI/O,而沒(méi)有讀寫(xiě)方向控制線,對(duì)讀寫(xiě)方向的控制則通過(guò)寫(xiě)單字節(jié)的讀寫(xiě)命令字的bit0完成;讀寫(xiě)命令字的bit7-bit1包含控制寄存器的地址信息,這樣就可以完成對(duì)SLAC的寄存器操作。
另外,設(shè)計(jì)SLAC的SPI接口時(shí)序需特別注意:每次讀寫(xiě)操作低使能有效至少維持8個(gè)DCLK周期,即完成一個(gè)字節(jié)的讀寫(xiě)操作;當(dāng)低使能有效少于8個(gè)DCLK周期時(shí),則該讀寫(xiě)忽略;當(dāng)低使能有效在8~15個(gè)DCLK周期,則取倒數(shù)的8個(gè)DCLK周期為有效讀寫(xiě)周期;當(dāng)低使能有效大于15個(gè)DCLK周期,則會(huì)引起硬件復(fù)位。
圖3是SLAC的MCU接口SPI總線時(shí)序圖。
DSP5402有兩個(gè)多通道緩沖串口(McBPs),McBPs有多種配置模式,可根據(jù)需要配置成高速主從SPI接口,考慮到以后功能擴(kuò)展需要,設(shè)計(jì)中保留了McBPs;采取由軟件讀寫(xiě)通用I/O,模擬SPI時(shí)序并配合CPLD實(shí)現(xiàn)SPI接口,從而完成DSP5402與SLAC的硬件接口,并實(shí)現(xiàn)DSP5402對(duì)SLAC/SLIC單元的狀態(tài)監(jiān)視與控制。
2.2 PCI9052
PCI9052是PLX公司推出的一種PCI總線從設(shè)備接口芯片。它提供了方便的本地總線與PCI總線的接口,避免用戶(hù)直接面對(duì)復(fù)雜的PCI總線協(xié)議。
2.3 AM79Q02與AM79R79
選用AMD公司SLIC/SLAC用戶(hù)線路接口與音頻處理、成幀電路。SLIC實(shí)現(xiàn)電話的接續(xù)各狀態(tài)的轉(zhuǎn)換,監(jiān)視電話線的負(fù)載變化,實(shí)現(xiàn)摘機(jī)檢測(cè)、饋電供給及振鈴傳送的功能;而SLAC實(shí)現(xiàn)話音的A/D轉(zhuǎn)換,并成幀到8Mbps的PCM碼流中。它還有如下特點(diǎn):軟配置SLIC輸入阻抗、收發(fā)增益、回路損耗等線路參數(shù); A/μ率編碼或線性編碼可選;PCM碼流時(shí)隙再分配;單雙8Mbps的PCM通道可選;支持四路SLIC控制與語(yǔ)音處理,縮小了電路板的尺寸、降低了成本;其中內(nèi)部環(huán)回、音頻發(fā)生電路,方便了電路的故障診斷與測(cè)試。
SLAC用戶(hù)線路音頻處理電路,如圖4所示。
另外SLAC與MCU通信提供SPI接口,簡(jiǎn)化了與MCU的硬件連接;而且SLAC提供與SLIC無(wú)縫連接的SLIC控制與音頻接口,因此直接控制SLAC以間接完成對(duì)SLIC的控制,簡(jiǎn)化了硬件電路和軟件編程。
3 軟件設(shè)計(jì)
軟件設(shè)計(jì)分為如下兩部分:目標(biāo)板內(nèi)驅(qū)動(dòng)程序設(shè)計(jì)與主機(jī)程序設(shè)計(jì)(其中包括PCI驅(qū)動(dòng)程序及主機(jī)應(yīng)用程序開(kāi)發(fā))。
3.1 目標(biāo)板內(nèi)驅(qū)動(dòng)程序設(shè)計(jì)
目標(biāo)板內(nèi)驅(qū)動(dòng)程序可根據(jù)功能模塊劃分:系統(tǒng)自檢、測(cè)試模塊; SLAC/SLIC的控制模塊,實(shí)現(xiàn)包括線路激活、振鈴、待機(jī)和斷線狀態(tài),摘掛機(jī)檢測(cè)及檢測(cè)門(mén)限可編程;與主機(jī)通信模塊,實(shí)現(xiàn)主機(jī)對(duì)目標(biāo)板的實(shí)時(shí)監(jiān)控。
3.2 主機(jī)程序設(shè)計(jì)
這里將主機(jī)程序設(shè)計(jì)分為PCI驅(qū)動(dòng)程序開(kāi)發(fā)和主機(jī)應(yīng)用程序開(kāi)發(fā)兩部分。
PCI驅(qū)動(dòng)程序使用Jungo公司的驅(qū)動(dòng)程序生成軟件KernelDriver,使用十分方便。利用KernelDriver中的驅(qū)動(dòng)程式生成向?qū)?根據(jù)需要生成驅(qū)動(dòng)程序代碼;在MS-VC++編譯環(huán)境編譯剛剛生成的驅(qū)動(dòng)CPP代碼,調(diào)試沒(méi)問(wèn)題了,PCI驅(qū)動(dòng)程序開(kāi)發(fā)也就完成了。
主機(jī)應(yīng)用程序則是在PCI驅(qū)動(dòng)程序之上,調(diào)用相關(guān)的API函數(shù)對(duì)PCI設(shè)備進(jìn)行操作,完成主機(jī)對(duì)目標(biāo)板的程序加載及對(duì)其狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控操作。
本方案設(shè)計(jì)中,CPU選用了性?xún)r(jià)比很高的TMS320VC5402,其CCS開(kāi)發(fā)環(huán)境配合JTAG調(diào)試,開(kāi)發(fā)方便;選擇可無(wú)縫連接使用的用戶(hù)線路接口芯片AM79R79、用戶(hù)音頻處理芯片AM79Q02以及靈活配置的PCI橋接芯片PCI9052,大大降低了軟硬件開(kāi)發(fā)難度,加快了開(kāi)發(fā)進(jìn)度,達(dá)到了降低開(kāi)發(fā)成本的最終目的。
評(píng)論