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