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