<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于A(yíng)RM9的RTU設計

基于A(yíng)RM9的RTU設計

作者: 時(shí)間:2012-05-02 來(lái)源:網(wǎng)絡(luò ) 收藏

2.4 系統初始任務(wù)Task0
從站經(jīng)過(guò)系統基本初始化之后,還需要進(jìn)一步的配置才能正常工作,而這部分的工作就在系統初始任務(wù)Task0中實(shí)現。Task0主要完成的工作有:讀取E2PROM中的數據,獲取各種配置信息;根據配置信息初始化各種硬件驅動(dòng)(如Modbus傳輸波特率、RS232/RS485通信選擇、外部中斷功能引腳選擇、SPI和IIC總線(xiàn)初始化等等);根據配置需求有選擇地創(chuàng )建模擬量輸入量任務(wù)Task2(AD采集任務(wù))、數字量輸入任務(wù)Task3、數字量輸出任務(wù)Task4、讀保持寄存器配置任務(wù)Task5和測溫任務(wù)Task6:最后讓一個(gè)LED指示燈定時(shí)閃爍表示工作正常;接著(zhù)進(jìn)行任務(wù)調度,切換到已創(chuàng )建的、優(yōu)先級高的其它就緒任務(wù)中運行并且實(shí)時(shí)響應外部中斷(數字量輸入)。系統初始任務(wù)Task0程序流程圖如圖7所示。

本文引用地址:http://dyxdggzs.com/article/155057.htm

g.JPG


系統中的Task2主要完成AD采集任務(wù)Task2,本系統采用TI公司的ADS7952。ADS7952的AD采樣率是根據其SPI傳輸波特率來(lái)?yè)Q算的,改變MCU(S3C2440A)的SPI底層驅動(dòng)程序中的SPI分頻值就能實(shí)現不同AD采樣率的選擇。ADS7952可以根據E2PROM中的配置信息(采樣率、通道數、采樣點(diǎn)數)工作,也可以根據Task5中讀取保持寄存器對應表中的數據位來(lái)實(shí)時(shí)更新配置。
Task3執行數字量輸入任務(wù),數字量輸入包括開(kāi)關(guān)量輸入和脈沖信號量輸入,可以把這兩種功能的端口分開(kāi),也可以把這兩種功能復用合并。功能復用合并實(shí)現方法:數字量輸入口對應的MCU管腳先作為普通GPIO引腳,讀取其GPIO狀態(tài)寄存器獲取高低電平狀態(tài)(即開(kāi)關(guān)狀態(tài)),把開(kāi)關(guān)狀態(tài)寫(xiě)入Modbus離散輸入寄存器中,接著(zhù)把管腳功能從GPIO引腳切換到外部中斷引腳,用于隨時(shí)獲取脈沖信號的輸入,在外部中斷函數中可以實(shí)現計數并且把計數值寫(xiě)入Modbus輸入寄存器中。該任務(wù)執行時(shí)間必須短,代碼必須簡(jiǎn)練,不能在其中加入延時(shí)之類(lèi)的函數,任務(wù)掛起的時(shí)間也不能太長(cháng),不然會(huì )導致脈沖信號輸入數據出現誤碼。
Task4主要完成數字量輸出任務(wù)。主站可以通過(guò)寫(xiě)線(xiàn)圈寄存器來(lái)控制從站RTU固態(tài)繼電器的輸出,也可以根據要求讓從站RTU定時(shí)中斷控制繼電器輸出PWM信號。同時(shí)主站RTU可以通過(guò)讀線(xiàn)圈寄存器來(lái)獲取從站RTU當前繼電器的電平輸出狀態(tài)。
Task5可執行讀保持寄存器配置任務(wù)。當Modbus保持寄存器中的數據發(fā)生變化時(shí),根據保持寄存器對應表(與主站協(xié)商定義的一個(gè)從站配置表)對從站RTU進(jìn)行相應配置,包括從站基本信息、AD采樣率、AD通道數、AD采樣點(diǎn)數、有線(xiàn)無(wú)線(xiàn)傳輸選擇、UART波特率等等,同時(shí)把新的配置信息寫(xiě)入E2PROM中。配置代碼應該放在μC/OS-II臨界區中,臨界區中不響應中斷,這樣才能保證新配置的程序能正常地運行。
Task6執行測溫任務(wù)。當RTU工作環(huán)境溫度過(guò)高時(shí),可能會(huì )影響RTU的正常工作,測溫任務(wù)可以實(shí)時(shí)或定時(shí)把從站RTU工作溫度值寫(xiě)入Mod bus輸入寄存器中,供主站RTU讀取。

3 結語(yǔ)
本文主要介紹了一種的RTU實(shí)現方法,對RTU硬件系統中的各個(gè)模塊過(guò)程進(jìn)行了詳細的介紹,包括數字量輸入模塊、數字量輸出模塊、模擬量輸入模塊、RS232通信模塊、RS485通信模塊、以太網(wǎng)通信模塊、存儲器模塊、E2PROM和測溫模塊等等,同時(shí)提出了此硬件系統的RTU從站軟件方法。RTU從站采用μC/OS-II實(shí)時(shí)操作系統,數據傳輸采用Modbus/RTU通信協(xié)議。該RTU可以應用于市政、能源、交通設施、環(huán)境、氣象、地質(zhì)、農業(yè)等有遠程終端測控站點(diǎn)需求的行業(yè)。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: 設計 RTU ARM9 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>