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

引言

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

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

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

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

a.JPG



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

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

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

2 語音終端硬件設計

2.1 終端硬件總體設計

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

b.JPG


2.2 語音處理模塊設計

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

c.JPG



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

2.3 CAN總線電路設計

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

3 軟件設計

3.1 終端軟件設計

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

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

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

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

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

d.JPG



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

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

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

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

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

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

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

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

結語

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。