基于CAN總線的嵌入式水位監(jiān)測系統(tǒng)設計
2.1.2 CAN收發(fā)子程序
CAN協(xié)議是建立在ISO的開放系統(tǒng)互聯(lián)模型的基礎上的,取其中的3層:物理層、數(shù)據(jù)鏈路層和應用層。物理層和數(shù)據(jù)鏈路層的功能可由CAN接口芯片實現(xiàn),而應用層的功能則要靠應用程序完成。CAN總線接口通信模塊是接收和發(fā)送CAN總線數(shù)據(jù)。主要操作包括CAN控制器初始化和CAN總線上接收和發(fā)送數(shù)據(jù)的操作。
CAN收發(fā)子程序主要完成CAN控制器的初始化和CAN數(shù)據(jù)的接收、發(fā)送。CAN控制器的初始化主要是給相應的寄存器寫入一定的數(shù)值以完成各種參數(shù)的設置,如波特率、位周期寬度、采樣點位置等。
CAN控制器有3個獨立的發(fā)送緩沖寄存器,發(fā)送時要判斷緩沖空閑。本設計中,先判斷第一主發(fā)送緩沖區(qū),然后進行數(shù)據(jù)格式轉(zhuǎn)換,啟動發(fā)送數(shù)據(jù)。接收采用中斷方式。報文發(fā)送、接收數(shù)據(jù)流程如圖4所示。本文引用地址:http://butianyuan.cn/article/151195.htm
2.1.3 iCAN協(xié)議報文處理
iCAN協(xié)議為CAN總線的應用層協(xié)議。該協(xié)議是基于CAN的內(nèi)部通信協(xié)議,小巧、通信效率高,對硬件資源要求低,適用于小型系統(tǒng)。系統(tǒng)中的設備統(tǒng)稱為iCAN節(jié)點。iCAN協(xié)議定義的通信方式是“面向節(jié)點,基于連接”的通信方式。“面向節(jié)點”是指源節(jié)點地址及目的節(jié)點地址均已給定,即對于任何一個報文參與通信的雙方是確定的。“基于連接”是指在網(wǎng)絡中任何一個參與通信的從站設備都必須和主站設備之間建立一個獨立的通信連接。這樣也為對任何一個設備的通信進行監(jiān)控提供可能。
iCAN協(xié)議使用了擴展幀格式CAN報文,對CAN報文的29位標識符和報文數(shù)據(jù)都做了詳細規(guī)定。報文標識符制定了數(shù)據(jù)通信中的源節(jié)點MACID和目標節(jié)點MACID,并指示了報文的功能以及所要訪問的資源。報文標識符被分為5個部分:SrcMACID(源節(jié)點編號)、De2stMACID(目標節(jié)點編號)、ACK位、FUNC ID(功能碼)、Source ID(資源節(jié)點編號)。
監(jiān)測終端要收發(fā)的數(shù)據(jù)必須符合iCAN協(xié)議報文的格式,先要把CAN的數(shù)據(jù)轉(zhuǎn)換成符合iCAN協(xié)議格式的報文,再通過CAN的首發(fā)子程序接收和發(fā)送。
2.2 上位機管理軟件設計
完成上述設計后,在計算機端還需要一套水位監(jiān)測系統(tǒng)管理軟件,以實現(xiàn)網(wǎng)絡數(shù)據(jù)采集、與數(shù)據(jù)庫的連接和數(shù)據(jù)實時查詢等功能。上位機軟件流程如圖5所示。
監(jiān)測終端采集傳感器信號,實時獲得水位數(shù)據(jù)并通過ZOPC_SERVER服務器傳輸?shù)娇蛻舳薑ingVIEW,同時KingVIEW作為服務器提供數(shù)據(jù)給SQL數(shù)據(jù)庫。在KingVIEW的圖形化界面上既可以顯示實時水位數(shù)據(jù),又可以查看歷史水位數(shù)據(jù)。
3 結束語
實驗結果表明:該系統(tǒng)可通過1根雙絞線在通信速率為9 600 b/s的情況下,可在6 km范圍內(nèi)實時監(jiān)測63個節(jié)點的水位信息。此嵌入式水位監(jiān)測系統(tǒng)可應用在基于ARM7核心的多點水位監(jiān)測的工廠、城市供水、隧道等場合。本系統(tǒng)可以實現(xiàn)水位信息采集的現(xiàn)場總線通信,使各節(jié)點連接在總線網(wǎng)絡上,實時獲取水位信息,方便數(shù)據(jù)庫的管理和更新,可進行數(shù)據(jù)庫的定點定時水位查詢。
評論