《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應用 > 基于CAN總線的礦用語音廣播對講系統(tǒng)設(shè)計
基于CAN總線的礦用語音廣播對講系統(tǒng)設(shè)計
單片機與嵌入式系統(tǒng)
張科帆
摘要: 綜合考慮壓縮速率、傳輸距離和音質(zhì)還原等因素,利用合適的語音壓縮編碼技術(shù)G.729A,設(shè)計了基于CAN總線的廣播系統(tǒng)。該系統(tǒng)能實現(xiàn)話音和高品質(zhì)音頻信號(MP3文件、WAV文件)在CAN總線網(wǎng)絡中的實時傳輸,方便擴展系統(tǒng)的各項功能,設(shè)計成本低,實際安裝維護方便,在煤礦井下得到了很好的應用。
Abstract:
Key words :

引言

    隨著數(shù)字化網(wǎng)絡技術(shù)的迅速發(fā)展,為了進一步提高煤礦安全生產(chǎn)及現(xiàn)代化管理水平,基于工業(yè)以太網(wǎng)+現(xiàn)場總線的數(shù)字化自動控制網(wǎng)絡結(jié)構(gòu)的語音廣播系統(tǒng),正在礦用語音廣播領(lǐng)域受到越來越多的關(guān)注和重視。目前,在國內(nèi)礦用CAN總線語音廣播系統(tǒng)產(chǎn)品中,很多公司的產(chǎn)品都選擇了基于話音的壓縮編碼技術(shù)(AMBE、CVSD等),把話音壓縮成很低的速率進行傳輸并解碼還原播放。這類低壓縮率的編碼技術(shù)對于話音有比較好的還原播放效果,但是對于質(zhì)量較高的音頻信號(MP3文件、WAV文件等),在解壓后的播放效果非常不理想,從而只能采用上位機點播的方式進行本地播放,終端設(shè)備上必須安裝大容量的存儲設(shè)備,存儲內(nèi)容在井下的更新和修改很不方便。另一種基于以太網(wǎng)技術(shù)的語音廣播系統(tǒng)為了實現(xiàn)遠傳輸距離,需要在井下鋪設(shè)光纖,成本非常高,加上井下工作環(huán)境復雜危險,光纖一旦折斷損壞,在井下現(xiàn)場進行熔接修理很不方便,維護成本很高。

    相對于國內(nèi)外市場現(xiàn)有的基于以太網(wǎng)的語音廣播系統(tǒng),本文所介紹的基于CAN總線的語音廣播對講系統(tǒng)具有造價成本低、安裝維護方便的優(yōu)勢;而相對于國內(nèi)市場上的CAN總線型廣播系統(tǒng)而言,增加了遠距離、低帶寬條件下高品質(zhì)音頻信號實時播放的功能,為煤礦井下數(shù)字化語音廣播領(lǐng)域提供了一個低成本、低功耗、多功能的新型解決方案。

1 系統(tǒng)總體構(gòu)架

    本系統(tǒng)的總體構(gòu)架如圖1所示。該語音系統(tǒng)主要由井下語音終端節(jié)點、CAN轉(zhuǎn)TCP/IP網(wǎng)關(guān)、地面調(diào)度上位機、通信電纜等組成。地面可以通過調(diào)度上位機對井下各個語音終端進行操作,實現(xiàn)話音和高質(zhì)量音頻文件以點播方式、組呼方式和全呼方式進行傳輸,井下各個語音終端節(jié)點可以實現(xiàn)話音的組呼或者調(diào)度呼叫。同時,調(diào)度上位機傳輸各種控制命令對各個節(jié)點進行遠程控制,實現(xiàn)巡檢、監(jiān)聽、聯(lián)機等功能。

a.JPG



    本系統(tǒng)中CAN總線的傳輸速率為20 khps,傳輸距離不小于2 km,CAN總線終端設(shè)備通過一對雙絞線即可實現(xiàn)連接通信,在井下的安裝布線方便,維護成本很低。在該系統(tǒng)中,選用了Cortex-M3內(nèi)核的微處理器LPC1768,最高速率可以達到100MHz,足以滿足系統(tǒng)的各項功能需要。
 

  為了實現(xiàn)CAN總線的遠距離傳輸,必須以犧牲傳輸波特率為前提。在該系統(tǒng)中,選擇和實現(xiàn)一種低碼速、高音質(zhì)的語音壓縮編碼是整個系統(tǒng)的關(guān)鍵。共軛代數(shù)碼激勵線性預測(CS-ACELP)的8 kb/s語音編碼G.729方法延遲小,可以提供與32 kb/s的ADPCM相同的語音質(zhì)量。其音質(zhì)是同檔次碼速率中最優(yōu)的,而且在噪聲較大的環(huán)境中也會有較好的語音質(zhì)量,廣泛地應用于多種數(shù)字語音通信領(lǐng)域。

    在嵌入式平臺上實現(xiàn)G.729壓縮編碼算法是該項目開發(fā)中的難點,在本系統(tǒng)中選用了一種單芯片的解決方案,利用一款多類別語音編解碼芯片CMX7261,配合Cortex-M3內(nèi)核的嵌入式軟硬件平臺實現(xiàn)了語音信號的G.729A壓縮編碼。

2 語音終端硬件設(shè)計

2.1 終端硬件總體設(shè)計

    終端硬件總體設(shè)計示意圖如圖2所示。模擬語音通過麥克風輸入,經(jīng)過音頻放大芯片MC34119進行放大,然后送到語音編解碼芯片CMX72 61進行A/D轉(zhuǎn)換;數(shù)據(jù)壓縮打包后通過SPI接口傳送給微處理器LPC1768,微處理器通過CAN收發(fā)器CTM8250將數(shù)據(jù)傳送到CAN總線上;總線上的語音數(shù)據(jù)流通過CAN收發(fā)器傳送給微處理器,通過微處理器的SPI接口傳送給CMX7261,實現(xiàn)編碼數(shù)據(jù)的解碼;解碼后的數(shù)據(jù)通過CMX7261內(nèi)部的D/A轉(zhuǎn)換器轉(zhuǎn)換成模擬語音,經(jīng)音頻功放芯片TDA2822驅(qū)動喇叭播放。
 

b.JPG


2.2 語音處理模塊設(shè)計

    CMX7261是英國CML公司研發(fā)的一種多類別語音編解碼芯片,支持多種語音編解碼標準。它能將模擬語音編碼成為PCM(線性、u率、A率)CVSD或者G.729A的數(shù)據(jù)格式,也能把PCM、CVSD和G.729A的語音數(shù)據(jù)流解碼成模擬語音輸出,并且支持PCM、CVSD和G.729A協(xié)議之間的相互轉(zhuǎn)換。CMX7261由3.3 V電源供電,提供可選的低功耗模式。

c.JPG



    圖3為CMX7261與微處理器LPC7168的接口電路圖。CMX7261與LPC1768通過C-BUS(SPI模擬)接口進行數(shù)據(jù)的傳輸。設(shè)置CMX7261的相關(guān)功能寄存器,產(chǎn)生壓縮速率為8kb/s的G.729A語音的編碼數(shù)據(jù)流,在CAN總線上傳輸,傳輸速率選擇15kb/s,終端節(jié)點之間的傳輸距離2000m。由于G.729A的編解碼標準對于質(zhì)量較高的語音支持效果較好,所以采用CMX7261語音芯片能夠低成本地實現(xiàn)話音和高質(zhì)量語音的窄帶通信。

2.3 CAN總線電路設(shè)計

    在本系統(tǒng)中選用了帶隔離的CAN收發(fā)器模塊CTM8250。CTM8250是一款帶隔離的通用CAN收發(fā)器模塊,該模塊內(nèi)部集成了所有必需的CAN隔離及CAN收發(fā)器件,這些都被集成在不到3 cm2的模塊上。模塊的主要功能是將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平,并且具有DC 2500 V的隔離功能。

3 軟件設(shè)計

3.1 終端軟件設(shè)計

    對于語音傳輸系統(tǒng)而言,實時性是一個重要的評價指標。在該語音終端的軟件設(shè)計中,引入了事件池的思想。事件池在具體軟件實現(xiàn)上是一個封裝好的結(jié)構(gòu)體數(shù)組,數(shù)組的大小為事件池中能同時容納的事件的個數(shù),即在同一時刻,系統(tǒng)中允許最多發(fā)生事件的個數(shù)。

    本系統(tǒng)軟件設(shè)計中,響應外中斷和功能函數(shù)的方式有兩種:

    ①依據(jù)外部中斷的類型或者功能函數(shù)的返回值,在結(jié)構(gòu)體數(shù)組中依據(jù)事件參數(shù)初始化一個結(jié)構(gòu)體變量,即在事件池中產(chǎn)生了一個待處理的事件。

    ②在結(jié)構(gòu)體數(shù)組(即事件池)中,依據(jù)事件參數(shù)遍歷查詢相應的結(jié)構(gòu)體,即依據(jù)事件參數(shù)遍歷查詢相應事件是否發(fā)生,并調(diào)用相應的功能函數(shù);依據(jù)事件參數(shù)對該結(jié)構(gòu)體進行處理,即對發(fā)生的事件進行處理;一個事件(結(jié)構(gòu)體)處理成功結(jié)束后,重新初始化結(jié)構(gòu)體中的事件參數(shù),即把處理完的事件在事件池中銷毀,如果事件處理失敗,則不改變事件參數(shù),等待下一輪的處理。

    這樣,微處理器在循環(huán)不斷地處理事件(結(jié)構(gòu)體)時,其實就是對系統(tǒng)中實時發(fā)生的各種情況進行快速響應,把封裝好的結(jié)構(gòu)體作為系統(tǒng)中各類事件的數(shù)學模型。

d.JPG



    圖4為系統(tǒng)終端進行語音數(shù)據(jù)流收發(fā)和編解碼的軟件事件池示意圖。在本系統(tǒng)終端的軟件設(shè)計中,按鍵掃描模塊、CAN總線收發(fā)模塊、語音編解碼芯片CMX7261與LPC1768進行SPI數(shù)據(jù)通信等各種外部觸發(fā)都采用了中斷方式,減少了處理器的等待時間。在具體的軟件設(shè)計上,在CAN總線的收發(fā)控制中設(shè)定了兩級緩存,每級緩存都有對應的PUSH和POP兩個變量來實時地作為收發(fā)緩存填充的標志,語音數(shù)據(jù)流在收發(fā)過程中做到了非阻塞,提高了語音數(shù)據(jù)流的傳輸效率和語音編解碼效率。

    當發(fā)生某一種特定的條件后,終端處理器并不是立馬去執(zhí)行相應的操作程序,而是產(chǎn)生相應的事件,初始化事件參數(shù),放入軟件事件池中。語音終端的軟件設(shè)計由事件池作為系統(tǒng)軟件的協(xié)調(diào)者,簡化了軟件的開發(fā)流程,使得軟件開發(fā)層次清晰,效率高。

3.2 CAN總線應用層協(xié)議設(shè)計

    CAN總線的底層硬件工作于OSI的數(shù)據(jù)鏈路層和物理層,CAN總線網(wǎng)絡通信協(xié)議僅解決了數(shù)據(jù)發(fā)送、接收、錯誤處理等底層硬件數(shù)據(jù)傳輸問題,對于應用層數(shù)據(jù)并沒有規(guī)定相應的解析協(xié)議,應用層協(xié)議需要開發(fā)人員自定義,主要應考慮以下三個方面:數(shù)據(jù)幀格式確定、總線資源的分配、發(fā)送接收數(shù)據(jù)幀的分配。

    該系統(tǒng)中,CAN應用層協(xié)議需要由開發(fā)人員進行設(shè)之間進行安全穩(wěn)定通信的關(guān)鍵。所以,CAN總線技術(shù),特別是CAN總線應用層協(xié)議是該系統(tǒng)設(shè)計中的一個關(guān)鍵點和難點。現(xiàn)在國內(nèi)外存在一些現(xiàn)有的CAN總線應用層協(xié)議標準(CANopen、CANbus),本系統(tǒng)以這些應用層協(xié)議標準作為參考,結(jié)合本系統(tǒng)的功能設(shè)計出適用于該系統(tǒng)的CAN總線應用層通信協(xié)議。

    本系統(tǒng)在CAN應用層協(xié)議的設(shè)計中,對于單個終端節(jié)點而言,在收到CAN總線語音數(shù)據(jù)的條件下(有CAN總線中斷)沒有發(fā)送語音的權(quán)利,即接收的優(yōu)先級比發(fā)送的優(yōu)先級高,這樣就很好地避免了一條總線上語音數(shù)據(jù)流的沖突問題。在同一時間,整條CAN總線上最多只能有一對節(jié)點在進行語音數(shù)據(jù)的傳輸。

    地面調(diào)度上位機在整個系統(tǒng)中是處于優(yōu)先級最高的地位,當井下終端節(jié)點在進行廣播通話的過程中接收有調(diào)度上位機的語音數(shù)據(jù)后,發(fā)送終端應該及時作出判斷,關(guān)閉發(fā)送功能,轉(zhuǎn)為接收調(diào)度上位機的語音數(shù)據(jù)。

    在CAN總線的各個終端之間在進行數(shù)據(jù)發(fā)送接收工作時,調(diào)度上位機的控制信息仍然可以在總線中進行傳輸,不影響終端的語音傳輸?shù)墓δ堋=K端節(jié)點在接收到調(diào)度上位機的控制信息后,應在空閑時進行相應的操作和回應。

結(jié)語

    本文給出了基于G.729A語音編解碼技術(shù)的煤礦井下語音傳輸系統(tǒng)構(gòu)架、終端的軟硬件設(shè)計方案和CAN總線應用層協(xié)議設(shè)計方案,用事件池的軟件沒計思路實現(xiàn)了G.729A壓縮編碼的語音數(shù)據(jù)流在井下CAN總線的實時安全傳輸,實現(xiàn)了話音和高質(zhì)量語音信號在窄帶寬的CAN總線上實時傳輸?shù)墓δ?。本系統(tǒng)的方案新穎,成本低,實現(xiàn)簡單,對于煤礦井下語音傳輸系統(tǒng)的設(shè)計和開發(fā)有很好的借鑒意義。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。