《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的礦用語(yǔ)音廣播對(duì)講系統(tǒng)設(shè)計(jì)
基于CAN總線的礦用語(yǔ)音廣播對(duì)講系統(tǒng)設(shè)計(jì)
單片機(jī)與嵌入式系統(tǒng)
張科帆
摘要: 綜合考慮壓縮速率、傳輸距離和音質(zhì)還原等因素,利用合適的語(yǔ)音壓縮編碼技術(shù)G.729A,,設(shè)計(jì)了基于CAN總線的廣播系統(tǒng)。該系統(tǒng)能實(shí)現(xiàn)話音和高品質(zhì)音頻信號(hào)(MP3文件,、WAV文件)在CAN總線網(wǎng)絡(luò)中的實(shí)時(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)場(chǎng)總線的數(shù)字化自動(dòng)控制網(wǎng)絡(luò)結(jié)構(gòu)的語(yǔ)音廣播系統(tǒng),正在礦用語(yǔ)音廣播領(lǐng)域受到越來(lái)越多的關(guān)注和重視,。目前,,在國(guó)內(nèi)礦用CAN總線語(yǔ)音廣播系統(tǒng)產(chǎn)品中,很多公司的產(chǎn)品都選擇了基于話音的壓縮編碼技術(shù)(AMBE,、CVSD等),,把話音壓縮成很低的速率進(jìn)行傳輸并解碼還原播放。這類低壓縮率的編碼技術(shù)對(duì)于話音有比較好的還原播放效果,,但是對(duì)于質(zhì)量較高的音頻信號(hào)(MP3文件,、WAV文件等),在解壓后的播放效果非常不理想,,從而只能采用上位機(jī)點(diǎn)播的方式進(jìn)行本地播放,,終端設(shè)備上必須安裝大容量的存儲(chǔ)設(shè)備,存儲(chǔ)內(nèi)容在井下的更新和修改很不方便,。另一種基于以太網(wǎng)技術(shù)的語(yǔ)音廣播系統(tǒng)為了實(shí)現(xiàn)遠(yuǎn)傳輸距離,,需要在井下鋪設(shè)光纖,成本非常高,,加上井下工作環(huán)境復(fù)雜危險(xiǎn),,光纖一旦折斷損壞,在井下現(xiàn)場(chǎng)進(jìn)行熔接修理很不方便,,維護(hù)成本很高,。

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

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

    本系統(tǒng)的總體構(gòu)架如圖1所示,。該語(yǔ)音系統(tǒng)主要由井下語(yǔ)音終端節(jié)點(diǎn),、CAN轉(zhuǎn)TCP/IP網(wǎng)關(guān),、地面調(diào)度上位機(jī)、通信電纜等組成,。地面可以通過調(diào)度上位機(jī)對(duì)井下各個(gè)語(yǔ)音終端進(jìn)行操作,,實(shí)現(xiàn)話音和高質(zhì)量音頻文件以點(diǎn)播方式、組呼方式和全呼方式進(jìn)行傳輸,,井下各個(gè)語(yǔ)音終端節(jié)點(diǎn)可以實(shí)現(xiàn)話音的組呼或者調(diào)度呼叫,。同時(shí),調(diào)度上位機(jī)傳輸各種控制命令對(duì)各個(gè)節(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è)備通過一對(duì)雙絞線即可實(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ì)的語(yǔ)音壓縮編碼是整個(gè)系統(tǒng)的關(guān)鍵。共軛代數(shù)碼激勵(lì)線性預(yù)測(cè)(CS-ACELP)的8 kb/s語(yǔ)音編碼G.729方法延遲小,,可以提供與32 kb/s的ADPCM相同的語(yǔ)音質(zhì)量,。其音質(zhì)是同檔次碼速率中最優(yōu)的,而且在噪聲較大的環(huán)境中也會(huì)有較好的語(yǔ)音質(zhì)量,,廣泛地應(yīng)用于多種數(shù)字語(yǔ)音通信領(lǐng)域,。

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

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

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

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

b.JPG


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

    CMX7261是英國(guó)CML公司研發(fā)的一種多類別語(yǔ)音編解碼芯片,,支持多種語(yǔ)音編解碼標(biāo)準(zhǔn)。它能將模擬語(yǔ)音編碼成為PCM(線性,、u率,、A率)CVSD或者G.729A的數(shù)據(jù)格式,也能把PCM,、CVSD和G.729A的語(yǔ)音數(shù)據(jù)流解碼成模擬語(yǔ)音輸出,,并且支持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語(yǔ)音的編碼數(shù)據(jù)流,,在CAN總線上傳輸,,傳輸速率選擇15kb/s,終端節(jié)點(diǎn)之間的傳輸距離2000m,。由于G.729A的編解碼標(biāo)準(zhǔn)對(duì)于質(zhì)量較高的語(yǔ)音支持效果較好,,所以采用CMX7261語(yǔ)音芯片能夠低成本地實(shí)現(xiàn)話音和高質(zhì)量語(yǔ)音的窄帶通信。

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ì)

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

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

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

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

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

d.JPG



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

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

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

    CAN總線的底層硬件工作于OSI的數(shù)據(jù)鏈路層和物理層,CAN總線網(wǎng)絡(luò)通信協(xié)議僅解決了數(shù)據(jù)發(fā)送,、接收,、錯(cuò)誤處理等底層硬件數(shù)據(jù)傳輸問題,對(duì)于應(yīng)用層數(shù)據(jù)并沒有規(guī)定相應(yīng)的解析協(xié)議,,應(yīng)用層協(xié)議需要開發(fā)人員自定義,,主要應(yīng)考慮以下三個(gè)方面:數(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ì)中的一個(gè)關(guān)鍵點(diǎn)和難點(diǎn)?,F(xiàn)在國(guó)內(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ì)中,對(duì)于單個(gè)終端節(jié)點(diǎn)而言,,在收到CAN總線語(yǔ)音數(shù)據(jù)的條件下(有CAN總線中斷)沒有發(fā)送語(yǔ)音的權(quán)利,,即接收的優(yōu)先級(jí)比發(fā)送的優(yōu)先級(jí)高,這樣就很好地避免了一條總線上語(yǔ)音數(shù)據(jù)流的沖突問題,。在同一時(shí)間,,整條CAN總線上最多只能有一對(duì)節(jié)點(diǎn)在進(jìn)行語(yǔ)音數(shù)據(jù)的傳輸。

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

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

結(jié)語(yǔ)

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

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