基于MODBUS無線總線測控系統
圖2 ARM與外圍器件連接圖
2)活動模式
ShockBurst RX模式。數據接收模式。
ShockBurst TX模式。數據發送模式。
nRF905與ARM之間端口可以直接連接,如圖2所示。
3 軟件設計
1)MODBUS總線通訊協議的設計
ModBus協議是目前主流現場總線協議之一。通過此協議,控制器相互之間、控制器經由網絡和其它設備之間可以通信。此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了控制器請求訪問其它設備的過程,如何回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格式和內容的公共格式。當在ModBus網絡上通信時,此協議決定了每個控制器需要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。如果需要回應,控制器將生成反饋信息并用ModBus協議發出。
控制器通信使用主一從技術,本系統主設備:主機;從設備:分機。主機可單獨和從設備通信,也能以廣播方式和所有從設備通信。如果單獨通信,從設備返回一消息作為回應,如果是以廣播方式查詢的,則不作任何回應。ModBus協議建立了主設備查詢的格式:設備(或廣播)地址、功能代碼、所有要發送的數據、一錯誤檢測域。從設備回應消息也由ModBus協議構成,包括確認要行動的域、任何要返回的數據、和一錯誤檢測域。如果在消息接收過程中發生一錯誤,或從設備不能執行其命令,從設備將建立一錯誤消息并把它作為回應發送出去。
ModBus有兩種傳輸模式:ASCII模式,RTU模式。ASCII或RTU模式僅適用于標準的ModBus網絡,它定義了在這些網絡上連續傳輸的消息段的每一位,以及決定怎樣將信息打包成消息域和如何解碼。本系統則使用RTU模式,采用這種模式的特點是在同樣的波特率下,可比ASCII方式傳送更多的數據。
2)nRF905的接口及軟件設計
nRF905所有的配置都是通過SPI口進行的,菲利蒲的ARM芯片系列具有一個硬件SPI(SerialPeripheral Interface)口,它是一個同步、全雙工串行接口,最大數據位速率為時鐘速率的1/8。SPI的設置必須要符合NRF905的SPI時序要求,否則會出現不可預測的錯誤。通過分析nRF905的SPI讀寫時序圖,可知SPI數據和時鐘的相位關系是:SCK高電平有效,第一個數據在第一個SCK上升沿之前被驅動,在SCK下降沿驅動下一個數據,數據在SCK上升沿被采樣。
為了能讓NRF905正常工作,則必須要對它的RF狀態寄存器進行配置,并且主機與分機收發模塊的RF狀態寄存器中的配置需一致,這樣兩者之間才能正常建立通信。
3)主機軟件設計
主機的功能是:通過發送ModBus命令控制各前端數據采集裝置(分機)工作,并對采集回的數據進行計算和顯示,在點陣液晶顯示屏上繪出各采樣點的波形。
主機程序使用的是任務不可剝奪的任務循環檢測機制。初始化完成后,程序進入主循環(消息環),循環檢測不同的事件標志位。如有事件觸發,執行相應的任務,完成后返回主循環,等待下一次的事件觸發。
4)分機軟件設計
分機的主要功能為:接收主機命令并響應(主要為AID采樣,結束后按要求發送數據回主機)。分機系統是一個偽多任務操作系統,可以自定義消息和任務流程,實現特定的功能,但要注意該結構的使用中,消息處理函數一定要清晰。作為分機,所有無線接收到的數據均作為一組命令來看待。
4 結束語
本文設計的基于Moaaus無線總線數據采集分析系統,具備低功耗、抗干擾能力強、采集數據容量大、數據傳輸安全可靠、友好的人機界面、每臺主機最多可控制255臺分機、采樣容量大、可畫出各采樣點波形曲線圖、實時監控分機電池電壓等特點。
評論