文章針對(duì)現(xiàn)有的模擬廣播系統(tǒng)存在抗干擾能力弱、傳輸距離短等不足,進(jìn)行了基于CAN 總線的數(shù)字語音通信系統(tǒng)的研究。給出語音通信系統(tǒng)的總體構(gòu)成,并對(duì)節(jié)點(diǎn)各模塊進(jìn)行詳細(xì)設(shè)計(jì)。核心部分采用內(nèi)置CAN 控制器PIC18F458 單片機(jī)作為控制器,與獨(dú)立的CAN 收發(fā)器CTM8251 構(gòu)成CAN 收發(fā)模塊;采用低傳輸速率和高通話質(zhì)量的AMBE-1000 芯片作為語音編碼器。測試表明,節(jié)點(diǎn)間可以實(shí)現(xiàn)可靠,語音質(zhì)量高的實(shí)時(shí)性通信。
引言
CAN 總線以其短幀、無損仲裁、多主工作方式、干擾能力強(qiáng)而應(yīng)用于許多工業(yè)領(lǐng)域,如汽車行業(yè)、煤礦安監(jiān)系統(tǒng)、智能儀表系統(tǒng)等。基于CAN 總線的數(shù)字語音通信系統(tǒng)就是利用CAN 總線的特點(diǎn)而設(shè)計(jì)的。利用該系統(tǒng)調(diào)度室可以在同一時(shí)間內(nèi)通知礦井中的所有工作人員安全撤離,并按照礦井應(yīng)急預(yù)案指揮搶險(xiǎn)救災(zāi);井下人員也可以及時(shí)與調(diào)度室聯(lián)系,及時(shí)通報(bào)情況;井下也具有局部通信功能,方便井下人員直接的聯(lián)系和通報(bào)事情。
1 語音通信系統(tǒng)的總體結(jié)構(gòu)
基于 CAN 總線的語音通信系統(tǒng)的整體結(jié)構(gòu)如圖1 所示。
圖 1 系統(tǒng)總體框架圖
該系統(tǒng)由上位機(jī)PC、網(wǎng)關(guān)節(jié)點(diǎn)、語音節(jié)點(diǎn)、通信電纜、終端等構(gòu)成,采用總線型網(wǎng)絡(luò)、多主訪問機(jī)制。地面可以通過上位機(jī)PC 對(duì)網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)行操作,實(shí)現(xiàn)對(duì)井下各個(gè)語音節(jié)點(diǎn)的任意呼叫(即點(diǎn)播方式)、各個(gè)組的語音節(jié)點(diǎn)的呼叫(即組播方式)或全部呼叫(即廣播方式)功能;井下各個(gè)語音節(jié)點(diǎn)也可以呼叫網(wǎng)關(guān)節(jié)點(diǎn),網(wǎng)關(guān)節(jié)點(diǎn)將該語音節(jié)點(diǎn)的ID 上傳給上位機(jī)PC;并且井下各個(gè)語音節(jié)點(diǎn)可與其它同組的語音節(jié)點(diǎn)進(jìn)行組內(nèi)通話通信。在CAN 總線結(jié)構(gòu)中,節(jié)點(diǎn)是可以靈活接入的,這是CAN 總線網(wǎng)絡(luò)最有優(yōu)勢的地方,同時(shí),由于不分主從,因此,每一個(gè)節(jié)點(diǎn)都可以接收信息或者在總線空閑的時(shí)候發(fā)送信息,這是CAN 總線的另外一個(gè)比較重要的優(yōu)勢。
2 語音節(jié)點(diǎn)硬件電路設(shè)計(jì)
語音數(shù)據(jù)通過麥克風(fēng)輸入,經(jīng)過MAX9814 進(jìn)行放大,然后送到數(shù)模轉(zhuǎn)換模塊進(jìn)行A/D轉(zhuǎn)換,再通過語音處理模塊將數(shù)據(jù)壓縮打包傳送給微處理器,微處理器通過CAN 收發(fā)器將數(shù)據(jù)傳到總線上;總線上的信息通過收發(fā)器傳送給微處理器,通過微處理器傳至語音處理模塊,對(duì)其解壓縮,送到模數(shù)轉(zhuǎn)換模塊進(jìn)行D/A 轉(zhuǎn)換,輸出模擬信號(hào)再經(jīng)過功放模塊進(jìn)行功率放大送到揚(yáng)聲器,最后由揚(yáng)聲器輸出語音信號(hào)。
語音節(jié)點(diǎn)總體結(jié)構(gòu)如圖2所示。
圖 2 語音節(jié)點(diǎn)總體結(jié)構(gòu)圖
2.1 處理器模塊
處理器模塊是語音通信節(jié)點(diǎn)的計(jì)算核心,所有的設(shè)備控制、任務(wù)調(diào)度、能量計(jì)算和功能協(xié)調(diào)、通信協(xié)議、數(shù)據(jù)整合和數(shù)據(jù)存儲(chǔ)程序都將在這個(gè)模塊的支持下完成,所以處理器的選擇在語音通信節(jié)點(diǎn)設(shè)計(jì)中是至關(guān)重要的。本設(shè)計(jì)采用帶有CAN 控制模塊的PIC18F458[4]單片機(jī)作為微控制器(MCU)以實(shí)現(xiàn)對(duì)AMBE-1000、CTM8251、 MAX9814、MAX9736 等芯片的操作控制,同時(shí),單片機(jī)還需要控制一些按鍵和指示燈。在語音節(jié)點(diǎn)硬件設(shè)計(jì)中,PIC18F458 與各部分接口電路以及復(fù)位電路如圖3所示。
圖3 PIC18F458 與各部分接口
撥碼開關(guān)部分電路如圖4所示,用來設(shè)置語音節(jié)點(diǎn)的標(biāo)識(shí)符(ID),ID9-ID0 依次對(duì)應(yīng)撥碼開關(guān)的10-1,其中撥碼開關(guān)上的10-6 鍵為組號(hào),5-1 鍵為節(jié)點(diǎn)號(hào),且撥碼開關(guān)處于ON 的電平值為“0”,反之為“1”。每個(gè)節(jié)點(diǎn)根據(jù)標(biāo)識(shí)符來判斷自己是否需要接收?qǐng)?bào)文。
圖4 撥碼開關(guān)2.2 CAN收發(fā)器模塊
在實(shí)際應(yīng)用中,PIC18F458 需要接一個(gè)CAN 收發(fā)器,以提高總線驅(qū)動(dòng)能力。CTM8251是一款帶隔離的通用CAN 收發(fā)器芯片,該芯片內(nèi)部集成了所有必需的CAN 隔離及CAN 收、發(fā)器件,這些都被集成在不到3 平方厘米的芯片上。芯片的主要功能是將CAN 控制器的邏輯電平轉(zhuǎn)換為CAN 總線的差分電平并且具有DC 2500V 的隔離功能。其接口電路如圖5所示。
圖 5 CTM8251 接口電路
2.3 語音處理模塊設(shè)計(jì)
2.3.1 AMBE-1000的主要特點(diǎn)
在語音處理中,編碼芯片是核心部分,本設(shè)計(jì)采用的是AMBE 編碼。AMBE-1000 是美國DVSI 公司研制、Lucent 公司生產(chǎn)的一款成熟的雙工聲碼器芯片,用來實(shí)現(xiàn)雙工的語音壓縮/解壓縮功能,能實(shí)現(xiàn)低傳輸速率下高質(zhì)量的通話。它采用先進(jìn)的AMBE 壓縮算法,壓縮速率最低可達(dá)2.4Kbps。目前這種算法以其能實(shí)現(xiàn)的低傳輸速率和高通話質(zhì)量而在世界范圍內(nèi)得到了廣泛應(yīng)用,甚至用在下一代移動(dòng)通信系統(tǒng)中。AMBE-1000 可看成由兩個(gè)分開的編碼器和解碼器組成。編碼器接收8kHz 的語音數(shù)據(jù)采樣流(如16 位線性的,8 位A 律的或8 位μ 律的)和輸出一個(gè)期望的波特率的信道數(shù)據(jù)流。反之,解碼器接收一個(gè)信道數(shù)據(jù)流并合成一個(gè)語音數(shù)據(jù)流。AMBE-1000 的編碼器和解碼器的接口時(shí)序是完全異步的[5]。壓縮數(shù)據(jù)從編碼器出來要通過一個(gè)接口送到解碼器,該接口就是信道接口。基本的信道接口包括串口和并口,管腳CH_SEL[2-0]的配置將決定使用哪種接口。串口和并口都能工作于主動(dòng)模式和被動(dòng)模式。主動(dòng)和被動(dòng)是指激勵(lì)信號(hào)是由本芯片給出,還是由外部模塊送入。
2.3.2 AMBE-1000 與處理器模塊接口電路
串行模式下AMBE-1000 通過CHS_DI 和CHS_DO 輸入、輸出16 位的數(shù)據(jù)字。聲碼器AMBE-1000 工作在被動(dòng)模式,與控制器之間采用串行方式傳送數(shù)據(jù),兩者之間接口如圖6 所示。
圖6 AMBE-1000 與控制器接口
AMBE-1000 中語音編碼率和前向糾錯(cuò)編碼率的選擇可以是獨(dú)立的。這些碼率可以通過命令幀的方法配置,也可以通過硬件管腳BPS_SEL[3-0](pin 3,4,5,6)來配置。本設(shè)計(jì)中設(shè)定AMBE-1000 的語音編碼率為2.4Kbps,故管腳BPS_SEL[3-0]均通過電阻接地。
2.3.3 語音 A/D、D/A 模塊設(shè)計(jì)
對(duì)于一個(gè)高質(zhì)量的語音通信系統(tǒng),A/D-D/A 芯片的選擇至關(guān)重要。在選擇A/D-D/A 芯片時(shí),需要考慮這些芯片的信噪比和濾波性能。一般應(yīng)優(yōu)先考慮那些16位線性A/D-D/A芯片,以獲得較高的語音質(zhì)量。對(duì)于任何一種與之相連接的A/D-D/A 芯片, AMBE-1000 都采用8kHz 語音數(shù)據(jù)采樣率。這些8 kHz 數(shù)據(jù)通過串行接口輸入(或者輸出)到AMBE-1000,可以通過軟件(發(fā)送命令幀)或者硬件方式,進(jìn)行A/D-D/A 接口的選擇和配置。本系統(tǒng)采用的A/D-D/A 芯片是CSP1027,這是一款帶有16 位串行A/D 和D/A 的芯片,符合CCITT G.712語音頻帶響應(yīng)和信噪比規(guī)范,其采樣頻率可高達(dá)24KHz,它采用低功耗全靜態(tài)邏輯設(shè)計(jì),在數(shù)字電源3.3V、模擬電源5V 工作時(shí),典型功耗68mW,待機(jī)功耗0.05mW。
CSP1027 與AMBE-1000 之間采用串行工作方式,二者的接口電路如圖7所示。經(jīng)MAX9814 放大后的麥克風(fēng)語音信號(hào)由45 號(hào)管腳(MICIN)送入CSP1027 進(jìn)行A/D 轉(zhuǎn)換,然后經(jīng)21 號(hào)管腳(DO)送入AMBE-1000 進(jìn)行壓縮編碼。相反地,AMBE-1000 解碼之后的數(shù)字語音數(shù)據(jù)要送入CSP1027 芯片進(jìn)行D/A轉(zhuǎn)換(TX_DO 與DI相連接),恢復(fù)出的模擬語音信號(hào)由43 號(hào)管腳(AOUTP)輸出,并通過此管腳將模擬語音信號(hào)送出MAX9736 進(jìn)行功率放大,最后通過揚(yáng)聲器播放出來。
圖 7 CSP1027 與AMBE-1000 的接口
2.3.4 語音采集模塊設(shè)計(jì)
本模塊的作用是將麥克風(fēng)微弱語音信號(hào)放大給A/D 轉(zhuǎn)換器。本系統(tǒng)采用了具有自動(dòng)增益控制(AGC)功能的MIC 放大芯片MAX9814,該芯片是Maxim 推出的低成本、高品質(zhì)麥克風(fēng)放大器,器件具有低噪聲前端放大器、可變?cè)鲆娣糯笃?VGA)、輸出放大器、麥克風(fēng)偏置電壓發(fā)生器和AGC控制電路。
MAX9814 的電路設(shè)計(jì)如圖8所示,麥克風(fēng)語音信號(hào)通過管腳8(MICIN)輸入MAX9814芯片,進(jìn)行語音信號(hào)放大,之后從管腳6(MICOUT)輸出,輸出的信號(hào)送到模數(shù)轉(zhuǎn)換模塊即CSP1027 進(jìn)行A/D 轉(zhuǎn)換。
圖8 MAX9814電路設(shè)計(jì)圖
2.3.5 功放模塊設(shè)計(jì)
由于井下語音節(jié)點(diǎn)使用環(huán)境比較嘈雜,因此需要配備功放來驅(qū)動(dòng)井下的喇叭,本系統(tǒng)采用的功放芯片為Maxim 的MAX9736,可以工作在8V 至28V,并具有高PSRR,無需穩(wěn)壓電源。MAX9736采用12V供電時(shí)效率可達(dá)88%。
語音數(shù)據(jù)經(jīng)過解碼、D/A 轉(zhuǎn)換等恢復(fù)為模擬信號(hào)。輸出的模擬信號(hào)要在經(jīng)過語音模塊進(jìn)行功率放大送到揚(yáng)聲器。該模塊電路設(shè)計(jì)如圖9所示。
圖9 功放模塊電路設(shè)計(jì)圖
3 語音節(jié)點(diǎn)軟件流程設(shè)計(jì)
語音節(jié)點(diǎn)可以與網(wǎng)關(guān)節(jié)點(diǎn)和組內(nèi)其他語音節(jié)點(diǎn)進(jìn)行通信。
當(dāng)與網(wǎng)關(guān)通話按鍵按下后(Button_Gate=0),打開本地MIC,關(guān)閉本地功放,讓AMBE-1000 工作,修改發(fā)送緩沖器標(biāo)識(shí)符,使僅網(wǎng)關(guān)節(jié)點(diǎn)能接收到該語音數(shù)據(jù),等待編碼器編碼完畢(EPR=1),從AMBE-1000 中讀取編碼后的數(shù)據(jù),然后將壓縮編碼后的語音數(shù)據(jù)發(fā)送到CAN 總線上。發(fā)送完畢后需要關(guān)閉本地MIC,使AMBE-1000 休眠。
當(dāng)與組內(nèi)其他節(jié)點(diǎn)通話按鍵按下后(Button_Group=0),工作過程和與網(wǎng)關(guān)節(jié)點(diǎn)通話過程基本相同,只是發(fā)送緩沖器標(biāo)識(shí)符不同。語音節(jié)點(diǎn)主程序流程如圖10 所示。
當(dāng)作為接收節(jié)點(diǎn)時(shí),將產(chǎn)生CAN 接收中斷,然后判斷是否為本板數(shù)據(jù),若是,則等待解碼器空(DPE=1),將數(shù)據(jù)寫入AMBE-1000 解碼,并播放語音。語音節(jié)點(diǎn)中斷服務(wù)程序如圖11所示。
圖 10 語音節(jié)點(diǎn)主程序流程
圖11 語音節(jié)點(diǎn)中斷服務(wù)程序流程
系統(tǒng)初始化主要包括對(duì)I/ O 口初始化、串口初始化和CAN 控制器的初始化等。
4 結(jié)語
應(yīng)用該方法構(gòu)造的語音通信系統(tǒng)能夠在保持良好的語音通信質(zhì)量的前提下,簡化電路,降低功耗,節(jié)約成本。