新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 基于CAN總線的礦用語音廣播對講系統(tǒng)設(shè)計

基于CAN總線的礦用語音廣播對講系統(tǒng)設(shè)計

作者: 時間:2012-08-21 來源:網(wǎng)絡(luò) 收藏

3 軟件
3.1 終端軟件
對于傳輸而言,實(shí)時性是一個重要的評價指標(biāo)。在該終端的軟件中,引入了事件池的思想。事件池在具體軟件實(shí)現(xiàn)上是一個封裝好的結(jié)構(gòu)體數(shù)組,數(shù)組的大小為事件池中能同時容納的事件的個數(shù),即在同一時刻,中允許最多發(fā)生事件的個數(shù)。
軟件設(shè)計中,響應(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é)模型。

本文引用地址:http://m.butianyuan.cn/article/154096.htm

d.JPG


圖4為系統(tǒng)終端進(jìn)行數(shù)據(jù)流收發(fā)和編解碼的軟件事件池示意圖。在本系統(tǒng)終端的軟件設(shè)計中,按鍵掃描模塊、收發(fā)模塊、語音編解碼芯片CMX7261與LPC1768進(jìn)行SPI數(shù)據(jù)通信等各種外部觸發(fā)都采用了中斷方式,減少了處理器的等待時間。在具體的軟件設(shè)計上,在的收發(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è)計由事件池作為系統(tǒng)軟件的協(xié)調(diào)者,簡化了軟件的開發(fā)流程,使得軟件開發(fā)層次清晰,效率高。
3.2 應(yīng)用層協(xié)議設(shè)計
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è)計中的一個關(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è)計出適用于該系統(tǒng)的CAN總線應(yīng)用層通信協(xié)議。
本系統(tǒng)在CAN應(yīng)用層協(xié)議的設(shè)計中,對于單個終端節(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ù)墓δ?。終端節(jié)點(diǎn)在接收到調(diào)度上位機(jī)的控制信息后,應(yīng)在空閑時進(jìn)行相應(yīng)的操作和回應(yīng)。

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


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉