- 相關(guān)推薦
基于CANopen協(xié)議的礦用語音通信系統(tǒng)研究
1 引言
現(xiàn)場總線的研究與應(yīng)用早已成為工業(yè)數(shù)據(jù)總線領(lǐng)域的熱點(diǎn),CAN 總線作為一種技術(shù)先進(jìn)、可靠性高、功能完善、成本合理的遠(yuǎn)程網(wǎng)絡(luò)通訊控制方式,已被廣泛應(yīng)用到自動化控制系統(tǒng)中。由于CAN 本身并非一個完整的協(xié)議,因而進(jìn)行高效率的通訊還需要進(jìn)一步開發(fā)高層協(xié)議,而CANopen 協(xié)議就是建立在CAN 協(xié)議物理層和數(shù)據(jù)鏈路層基礎(chǔ)上的標(biāo)準(zhǔn)化應(yīng)用層協(xié)議,其采用面向?qū)ο蟮乃枷朐O(shè)計,具有很好的模塊特性和很高的適應(yīng)性,且精練透明、易于開發(fā)。本文圍繞由微控制器PIC18F458和語音處理芯片AMBE-1000 構(gòu)成的語音通信系統(tǒng)研究了CANopen 協(xié)議在基于CAN 總線的語音通信系統(tǒng)中的應(yīng)用情況。
2 語音通信系統(tǒng)的硬件設(shè)計
2.1 系統(tǒng)原理
系統(tǒng)由上位機(jī),網(wǎng)關(guān),節(jié)點(diǎn),中繼等組成,利用已有的CAN 總線實(shí)現(xiàn)實(shí)時語音和監(jiān)控數(shù)據(jù)的傳輸。通信過程為:語音數(shù)據(jù)通過麥克采集輸入后經(jīng)A /D 轉(zhuǎn)換變成數(shù)字信號,而語音處理模塊AMBE-1000 對數(shù)字信號壓縮編碼后傳送給本地微處理器PIC18F458, 然后微處理器通過CAN 收發(fā)器將收到的數(shù)據(jù)經(jīng)CAN 總線送給遠(yuǎn)方微處理器。相應(yīng)的,遠(yuǎn)方微處理器對收到的數(shù)據(jù)經(jīng)過上述步驟的反向處理最終還原為語音信號并由喇叭播放。當(dāng)沒有語音信號需要處理傳輸時,系統(tǒng)自動開啟MP3 功能播放背景音樂。
2.2 信道接口設(shè)計
微控制器采用Microchip 公司的PIC18Fxxx 系列芯片,其內(nèi)含有A/D、內(nèi)部EEPROM 存儲器、CAN 控制器、SPI 接口、FLASH 程序存儲器讀/寫等強(qiáng)大功能。
語音處理模塊采用Digital Voice Systems 公司推出的語音壓縮/ 解壓芯片AMBE-1000,其壓縮率可在2.4kbps-9.6kbps 范圍內(nèi)由軟件調(diào)節(jié),且具有FEC(前向糾錯)、VAD(語音激活檢測)功能和DTMF 信號檢測功能。
AMBE-1000 與微控制器PIC18F458 進(jìn)行通信的信道接口為串行SPI 接口,有兩種工作模式:主動模式和被動模式。本系統(tǒng)定義AMBE-1000 的引腳CH_SEL1~CHSEL0 將AMBE-1000 設(shè)置為串行被動模式,串口存在于幀格式下,通過模擬標(biāo)準(zhǔn)SPI 通信時序?qū)崿F(xiàn)數(shù)據(jù)包的傳輸。
3 CANopen 協(xié)議的實(shí)現(xiàn)
在系統(tǒng)中,選取網(wǎng)關(guān)為主節(jié)點(diǎn),其它節(jié)點(diǎn)為從節(jié)點(diǎn)。主節(jié)點(diǎn)除了具有啟動/停止網(wǎng)絡(luò)、檢查網(wǎng)絡(luò)工作狀態(tài)等功能外,還定義了網(wǎng)絡(luò)設(shè)備的標(biāo)識符和訪問對象字典入口。
3.1 標(biāo)識符的分配
主節(jié)點(diǎn)通過上位機(jī)發(fā)出的標(biāo)識符字來改變從節(jié)點(diǎn)的狀態(tài)。在CANopen 協(xié)議應(yīng)用層,設(shè)備之間交換的是通訊對象(COB),它們被映射到帶有標(biāo)識符(ID)的CAN 幀中,然后在數(shù)據(jù)鏈路層上傳輸。
在CAN 標(biāo)識符缺省的默認(rèn)值分配方案中,COB-ID 有11 位,由4 位Function Code 和7位Node-ID 組成,F(xiàn)unction Code 已經(jīng)確定,網(wǎng)絡(luò)中不同的Node-ID 就決定了COB-ID 編碼。
在本設(shè)計中,井下節(jié)點(diǎn)以分組形式存在,每小組節(jié)點(diǎn)數(shù)不超過14 個(0 不可用,1 為主節(jié)點(diǎn)的Node-ID)上位機(jī)與井下節(jié)點(diǎn)通話分為廣播、組播、點(diǎn)播,分組數(shù)不超過3 個。同時考慮到PIC18F458 的緩沖器結(jié)構(gòu),節(jié)點(diǎn)的號定義為:0x01-0x03,節(jié)點(diǎn)的組內(nèi)節(jié)點(diǎn)號0x02-0x0F,各節(jié)點(diǎn)Node-ID 分配如表1 所示。
11 位COB-ID 中,高四位為功能碼,語音模式時標(biāo)識id6 位為0 ,MP3 模式時標(biāo)識符id6位為1,id4-id5 位為小組號,id0-id3 位為每一小組內(nèi)的節(jié)點(diǎn)號。通過對11 位中低4 位驗(yàn)收屏蔽濾波器進(jìn)行屏蔽,對高7 位進(jìn)行濾波實(shí)現(xiàn)廣播、組播、點(diǎn)播等功能。語音模式下,廣播時使用PIC18F458 的驗(yàn)收濾波寄存器2,組播和點(diǎn)播時使用驗(yàn)收濾波寄存器3;Mp3 模式下,廣播時使用PIC18F458 的驗(yàn)收濾波寄存器4,組播和點(diǎn)播時使用驗(yàn)收濾波寄存器5。
3.2 對象字典的建立和變量的傳輸
CANopen 協(xié)議網(wǎng)絡(luò)中每個節(jié)點(diǎn)都有一個對象字典,它包含了描述這個設(shè)備和網(wǎng)絡(luò)行為的所有參數(shù)。下面以主節(jié)點(diǎn)對象字典的建立為例說明對象字典的建立方法。
每個PDO 都對應(yīng)一個通信對象和一個映射對象;本系統(tǒng)中存放第一個發(fā)送PDO 通信參數(shù)的對象為0X1800,存放該P(yáng)DO 影射參數(shù)的對象為0X1A00。其中對象0X2000子索引0x01 處存放語音模式下廣播變中的數(shù)據(jù)量,以下的變量類同;首先通過讀取1800H中的通訊模式,然后,讀取0X2000 中的數(shù)據(jù)幀的具體內(nèi)容,通訊時,將確定通訊模式的相關(guān)信息和具體數(shù)據(jù)幀的地址信息按CANOpen 的映射規(guī)則寫入1A00H 中,從而完成PDO 的發(fā)送與接收。
3.3 CANopen 軟件實(shí)現(xiàn)
在整個CANopen 網(wǎng)絡(luò)中,SYNC 報文的優(yōu)先級最高,因此用它來傳送同步信號,保持各節(jié)點(diǎn)間的同步,并且用來觸發(fā)PDO 報文的發(fā)送。Time-Stamp 報文的優(yōu)先級比SYNC 稍低,它用來傳送時鐘信號,當(dāng)主站需要各節(jié)點(diǎn)校時時,主站通過串口發(fā)出校時報文給主節(jié)點(diǎn),然后主節(jié)點(diǎn)在全CAN網(wǎng)范圍內(nèi)轉(zhuǎn)發(fā)包含時鐘信息的Time-Stamp 報文,子節(jié)點(diǎn)收到后完成校時。
廣播、組播等數(shù)據(jù)用PDO 來傳送。本系統(tǒng)為了保證PDO 傳送數(shù)據(jù)的快速、實(shí)時性,采用事件觸發(fā)的方式。參數(shù)配置數(shù)據(jù)由于數(shù)據(jù)量比較大,而且對于實(shí)時性的要求不高,所以用優(yōu)先級比較低而且擁有可以傳送大量數(shù)據(jù)能力的SDO。由于其優(yōu)先級較低,保證了此類大量數(shù)據(jù)的傳送不搶占實(shí)時性要求較高的語音數(shù)據(jù)的傳送。由于節(jié)點(diǎn)保護(hù)數(shù)據(jù)只是用來監(jiān)測CAN節(jié)點(diǎn)是否在線正常工作,因此它的實(shí)時性要求更低,所以用發(fā)送優(yōu)先級更低的Heart_beat報文來傳送。子節(jié)點(diǎn)定時的發(fā)送Heart_beat 報文,主節(jié)點(diǎn)收到后就修改節(jié)點(diǎn)保護(hù)定時器,如果隔了一定的時間還沒有收到某個子節(jié)點(diǎn)的Heart_beat 報文則主節(jié)點(diǎn)就認(rèn)為此子節(jié)點(diǎn)的工作狀態(tài)產(chǎn)生了問題。
本系統(tǒng)CAN 控制器初始化工作流程為:系統(tǒng)上電后,從ROM 中讀取配置參數(shù)將CAN控制器、各個從節(jié)點(diǎn)的ID 地址以及CANopen 通訊對象進(jìn)行配置,省略了CANopen 中常用的較復(fù)雜的使用主節(jié)點(diǎn)配置子節(jié)點(diǎn)的方式,而使用的是CANopen 協(xié)議的預(yù)定義連接集;啟動后,子節(jié)點(diǎn)定時發(fā)送心跳報文,告知主節(jié)點(diǎn)本子節(jié)點(diǎn)已進(jìn)入工作狀態(tài);同時監(jiān)測主節(jié)點(diǎn)發(fā)送的同步報文,以確保主節(jié)點(diǎn)在工作狀態(tài),這樣主節(jié)點(diǎn)和子節(jié)點(diǎn)即可通訊連接。
1)主節(jié)點(diǎn)程序:初始化后,如果中斷標(biāo)志位置位,則轉(zhuǎn)入中斷程序,接收上位機(jī)發(fā)來的PDO 數(shù)據(jù)。然后,判斷上位機(jī)命令區(qū)分組播、廣播等命令類型,再修改存儲器中的標(biāo)識符判定與哪些節(jié)點(diǎn)通信,隨后讀取語音數(shù)據(jù)并經(jīng)CAN 總線發(fā)送給從節(jié)點(diǎn)。
2)從節(jié)點(diǎn)程序:在從節(jié)點(diǎn)處如果有通話需求,通過按通通話按鈕切換至語音模式,即可經(jīng)CAN 總線傳輸語音數(shù)據(jù),如無通話需求,則保持MP3 模式繼續(xù)播放音樂。
4 測試結(jié)果
測試界面如圖5,五個操作按鈕與一個grid 控件組成,按鈕分別為:語音測試、音樂測試、錄音測試、混合測試以及停止測試,grid 控件顯示測試結(jié)果。測試原理:1.選定測試模式(語音測試、音樂測試、錄音測試或者混合測試)2.啟動定時器3.定時促發(fā)事件:a 根據(jù)數(shù)據(jù)庫,利用地址指針自動選擇地址b 根據(jù)地址類型,進(jìn)行可,操作的所有操作命令c 對地址指針進(jìn)行相應(yīng)的操作4.重復(fù)步驟3 直到停止測試為止。
經(jīng)以上語音測試, 本系統(tǒng)可以正確切換組播、廣播、點(diǎn)播等模式,語音通信及時,且語音的主觀聽覺效果良好,具有較高的可懂度,符合設(shè)計要求。同樣,在錄音播報模式、音樂模式、混合模式下測試成功。
5 結(jié)語
經(jīng)實(shí)踐證明,采用CANopen 協(xié)議的語音通信系統(tǒng)可以在CAN 總線上以極低的語音通信速率(2.4 kbit / s) 進(jìn)行語音數(shù)據(jù)傳輸,能夠?qū)崿F(xiàn)語音的廣播、組播、點(diǎn)播、MP3 播放功能,同時CANopen 協(xié)議使得節(jié)點(diǎn)具有較好的開放性和通用性,可與其他設(shè)備組建分布式控制網(wǎng)絡(luò),在煤礦信息化系統(tǒng)中有著廣泛的應(yīng)用前景。
【基于CANopen協(xié)議的礦用語音通信系統(tǒng)研究】相關(guān)文章:
基于AdHoc網(wǎng)絡(luò)的船舶通信終端顯示系統(tǒng)研究12-07
基于ISD語音芯片的報警系統(tǒng)03-07
基于DSP的語音處理系統(tǒng)的設(shè)計11-22
基于SIP(會話初始協(xié)議)的語音瀏覽器的研究與實(shí)現(xiàn)03-07
基于Asterisk多種接入方式的VoIP系統(tǒng)研究03-07
基于FPGA的HDLC通信模塊的實(shí)現(xiàn)05-14
基于IDE硬盤的大容量語音記錄儀03-20