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

引言

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

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

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

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

a.JPG



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

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

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

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

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

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

b.JPG


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

    CMX7261是英國CML公司研發(fā)的一種多類別語音編解碼芯片,支持多種語音編解碼標(biāo)準(zhǔn)。它能將模擬語音編碼成為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模擬)接口進(jìn)行數(shù)據(jù)的傳輸。設(shè)置CMX7261的相關(guān)功能寄存器,產(chǎn)生壓縮速率為8kb/s的G.729A語音的編碼數(shù)據(jù)流,在CAN總線上傳輸,傳輸速率選擇15kb/s,終端節(jié)點(diǎn)之間的傳輸距離2000m。由于G.729A的編解碼標(biāo)準(zhǔn)對于質(zhì)量較高的語音支持效果較好,所以采用CMX7261語音芯片能夠低成本地實(shí)現(xiàn)話音和高質(zhì)量語音的窄帶通信。

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

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

3 軟件設(shè)計(jì)

3.1 終端軟件設(shè)計(jì)

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

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

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

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

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

d.JPG



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

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

3.2 CAN總線應(yīng)用層協(xié)議設(shè)計(jì)

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

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

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

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

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

結(jié)語

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

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