新聞中心

        基于ARM9的RTU設(shè)計

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

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

        本文引用地址:http://www.104case.com/article/155057.htm

        g.JPG


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

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


        上一頁 1 2 3 4 下一頁

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

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 昭觉县| 邹城市| 增城市| 广宁县| 辛集市| 乌拉特前旗| 尖扎县| 阿合奇县| 封开县| 鄂州市| 宁强县| 黄石市| 合山市| 盐城市| 石景山区| 夹江县| 江陵县| 天祝| 六盘水市| 霍邱县| 华亭县| 东丰县| 昭觉县| 柏乡县| 驻马店市| 康乐县| 扎鲁特旗| 南靖县| 双流县| 甘肃省| 浮山县| 蛟河市| 泰安市| 灵宝市| 盐源县| 监利县| 青州市| 望奎县| 山东| 水富县| 灵山县|