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





