• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Modbus通信協(xié)議在ARM7環(huán)境監(jiān)測系統(tǒng)中的應(yīng)用

      2010-03-13 08:54:48張姣姣李麗宏陳金兵
      電子設(shè)計工程 2010年8期
      關(guān)鍵詞:個字符通信協(xié)議中斷

      張姣姣,李麗宏,陳金兵

      (太原理工大學(xué) 信息工程學(xué)院,山西 太原030024)

      在環(huán)境監(jiān)測中,需要做到實時監(jiān)控、統(tǒng)一管理,為此需將各分散站點的環(huán)境監(jiān)測設(shè)備互聯(lián)形成網(wǎng)絡(luò),實現(xiàn)環(huán)境監(jiān)測的網(wǎng)絡(luò)化、智能化、人性化。為了節(jié)約成本,提高效率,采用RS485總線做傳輸設(shè)備,Modbus協(xié)議為通信協(xié)議,ARM7系列的微處理器LPC2214為環(huán)境監(jiān)測儀表的主芯片。

      環(huán)境監(jiān)測系統(tǒng)將Modbus協(xié)議成功地應(yīng)用到ARM7系統(tǒng)中,實現(xiàn)了經(jīng)典協(xié)議與高效系統(tǒng)的完美結(jié)合。研制了網(wǎng)絡(luò)化的環(huán)境監(jiān)測系統(tǒng),完成了監(jiān)控中心對各分散站點的統(tǒng)一監(jiān)測和管理。

      1 監(jiān)控系統(tǒng)整體方案

      環(huán)境監(jiān)測系統(tǒng)采用網(wǎng)絡(luò)化模式將各個分站的信息統(tǒng)一傳送到監(jiān)控中心計算機上。上位機軟件接收到各分站的信息后自動分析、處理、顯示和保存,如果分站的采集值超標(biāo)會產(chǎn)生報警信號。系統(tǒng)的整體結(jié)構(gòu)如圖1所示。

      圖1系統(tǒng)結(jié)構(gòu)圖Fig.1 Block diagram of system

      RS485總線采用EIA/TIA-485標(biāo)準(zhǔn)的2線制電氣接口,該RS485總線具有抗共模干擾能力強,多機通信和組建現(xiàn)場總線網(wǎng)絡(luò)的功能。Modbus協(xié)議是主從式網(wǎng)絡(luò)結(jié)構(gòu),設(shè)置監(jiān)控中心服務(wù)器為主站 (總線上只能有一個主站),最多可掛接247個從站。主站可以對任一從站進行查詢和控制,從站只有收到主站的請求時,才會傳送數(shù)據(jù)。環(huán)境監(jiān)測儀表采集溫度、濕度、風(fēng)速、風(fēng)向、大氣壓力、雨量等6個環(huán)境參數(shù),主站會間隔讀取各個從站的信息,各從站接收到命令后,把當(dāng)前的環(huán)境信息發(fā)送給主站,主站接收到從站的數(shù)據(jù)校驗正確后將信息顯示并保存起來。

      2 Modbus通信協(xié)議

      Modbus協(xié)議是由Modicon公司開發(fā)的,由于其功能比較完善,容易實現(xiàn),現(xiàn)已成為通用的工業(yè)標(biāo)準(zhǔn)。不同廠家生產(chǎn)的工業(yè)控制設(shè)備遵循該協(xié)議標(biāo)準(zhǔn)連接成網(wǎng)絡(luò),進行集中監(jiān)控[1]。

      2.1 串行鏈路通信協(xié)議

      Modbus串行鏈路協(xié)議是主—從協(xié)議,RTU模式在相同波特率下比ASCII模式有更高的數(shù)據(jù)吞吐量,故環(huán)境監(jiān)測系統(tǒng)采用RTU模式。在Modbus協(xié)議的串行鏈路上,所有分站的傳輸模式相同。RTU消息幀包括地址域、功能域、數(shù)據(jù)域、CRC校驗域。RTU模式是通過判斷時間間隔來區(qū)分字符和報文幀的,時長至少為3.5個字符時間的空閑間隔將報文幀區(qū)分開。同時,整個報文必須以連續(xù)的字符流發(fā)送,幀內(nèi)2個字符之間的間隔小于1.5個字符時間[2]。表1為RTU報文幀的結(jié)構(gòu),起始和結(jié)束表示一幀數(shù)據(jù)與另一幀數(shù)據(jù)之間時間間隔。

      表1RTU報文幀Tab.1 RTU message frame

      2.2 功能碼

      當(dāng)消息從主設(shè)備發(fā)往從設(shè)備時,從設(shè)備根據(jù)功能碼來確定執(zhí)行哪種操作,例如讀一個線圈的狀態(tài),或讀一組寄存器的數(shù)據(jù)內(nèi)容等[3]。當(dāng)從設(shè)備響應(yīng)時,功能碼用來指示是正常回應(yīng)或異?;貞?yīng)。對正?;貞?yīng),從設(shè)備僅回應(yīng)相應(yīng)的功能碼;對異?;貞?yīng),從設(shè)備返回一個等同于正?;貞?yīng)的代碼,但最高位的值置為邏輯1,比如正常功能碼為“00010101”,在異?;貞?yīng)的情況下回應(yīng)“10010101”[4]。

      2.3 CRC校驗

      CRC字段校驗整個報文的內(nèi)容。無論單個字符報文使用何種奇偶校驗方式,均應(yīng)有這種CRC校驗。CRC包含2個8位字節(jié)組成的16位值,并作為報文的最后字段附加到報文上,先附加低字節(jié),再附加高字節(jié)。

      發(fā)送設(shè)備計算CRC值,并附加到報文幀上。接收設(shè)備在接收報文過程中,重新計算CRC值,并將計算值與接收到的實際CRC值相比較。若兩個值不相等,則表示出現(xiàn)錯誤。

      3 嵌入式處理器LPC2214

      LPC2214是一款支持實時仿真和跟蹤的32位ARM7TDMI-S內(nèi)核的微控制器,并帶有256 KB嵌入的高速片內(nèi)Flash存儲器。通過片內(nèi)PLL可實現(xiàn)最大60 MHz的CPU操作頻率。8路10位A/D轉(zhuǎn)換器,2個32位定時器(帶4路捕獲和4路比較通道),6路脈沖寬度調(diào)制PWM,實時時鐘,看門狗,2個16C550工業(yè)標(biāo)準(zhǔn)UART,高速I2C接口,2個SPI接口,9個外部中斷源,2個低功耗模式:空閑模式和掉電模式[5]。此芯片外設(shè)功能強大,功耗低,抗干擾能力強,非常適用于智能儀表和工業(yè)嵌入式控制系統(tǒng)。

      4 系統(tǒng)硬件設(shè)計

      系統(tǒng)傳輸線路采用RS485總線形式,由于ARM7系列芯片工作電壓為3.3 V,故選用SP3485低功耗芯片做電平轉(zhuǎn)換,TLP521實現(xiàn)信號隔離。LPC2214的TXD0和RXD0通過光耦分別連接SP3485的DI和RO引腳,完成串口的發(fā)送與接收工作。RS485的A、B兩端采用差分輸入,LPC2214的2個串口都具有串口中斷方式,支持CPU與外設(shè)之間的異步串行數(shù)字通信,支持5~8位串行數(shù)據(jù)傳送與接收以及在傳送與接收時的雙向握手,每一個通道有2個內(nèi)部16位FIFO,系統(tǒng)采用串口接收的中斷方式。在串口通信中接收每幀數(shù)據(jù)包后,會在接收狀態(tài)寄存器中相應(yīng)的標(biāo)志位置位,產(chǎn)生中斷請求,判斷是否接收Modbus數(shù)據(jù)幀,進一步對該數(shù)據(jù)幀進行解析[6]。圖2為串行通信接口電路。

      圖2串行通信接口電路Fig.2 Serial communication interface circuit

      5 系統(tǒng)軟件設(shè)計

      Modbus協(xié)議簡單易用,兼容性強,應(yīng)用廣泛,但是將Modbus協(xié)議應(yīng)用到ARM系列單片機系統(tǒng)的設(shè)計較少。而該環(huán)境監(jiān)測系統(tǒng)則實現(xiàn)Modbus協(xié)議在ARM7系統(tǒng)中的應(yīng)用。

      RTU模式通過判斷1.5個字符和3.5個字符的時間來確定報文幀傳輸?shù)恼_性,所以在程序處理過程中使用定時器中斷處理。當(dāng)波特率低于19 200 b/s時,定時時間必須嚴(yán)格按照波特率計算出1.5個字符和3.5個字符的時間。環(huán)境監(jiān)測儀的頻率為 11.059 2 MHz(大于19 200 b/s時),如果按照波特率來計算字符時間間隔會使CPU負(fù)擔(dān)加重,所以定時器使用2個固定值:1.5個字符為750 μs,3.5個字符為1.75 ms。

      系統(tǒng)運行后,主站點依次向總線發(fā)送讀取從站信息的命令,避免了多個從站同時向總線發(fā)送信息而造成信息沖突。從站監(jiān)控儀表在接收到完整的消息幀后先讀取地址碼,判斷是否為發(fā)往本機的消息,是則檢驗命令信息無誤后,響應(yīng)命令,并返回相應(yīng)的信息,否則清空接收緩存器,重新進入等待接收狀態(tài)。

      環(huán)境監(jiān)測系統(tǒng)主要使用的是04功能碼 (讀輸入寄存器),寄存器地址占2個字節(jié),從00開始,連續(xù)讀取6組寄存器的值(輸入寄存器的數(shù)量也占2個字節(jié)),再加上2個字節(jié)的CRC校驗碼,一個完整的消息幀為xx 04 00 00 00 06 xx xx。

      在RTU模式下最關(guān)鍵的是區(qū)分報文幀間隔和字符間隔時間。系統(tǒng)采用串口接收中斷和定時器中斷判斷幀間隔和字符間隔時間的大小。報文幀的傳送報文要求幀內(nèi)間隔小于1.5個字符,幀間間隔大于3.5個字符。因為采用串口接收中斷,檢驗的是2個字符的停止位間的時間,可以用2.5個字符和4.5個字符的間隔來判斷報文幀傳輸?shù)恼_性,取其公約數(shù)0.5個字符作為定時器的定時時間,定義一個全局變量timer0_cn,timer0_cn在定時中斷中做加1運算,判斷timer0_cn的2個關(guān)鍵值5和9即可。串口中斷和定時器中斷程序流程圖如圖3,圖4所示,通過串口中斷、定時器中斷和變量timer0_cn相配合完成報文幀的正確接收。

      圖3串口中斷程序流程圖Fig.3 Flow chart of serial interrupt program

      圖4定時器中斷程序流程圖Fig.4 Flow chart of timer interrupt program

      6 結(jié) 論

      環(huán)境監(jiān)測系統(tǒng)將Modbus協(xié)議成功地運用到ARM7TDMI-S系統(tǒng)中,實現(xiàn)了環(huán)境監(jiān)測系統(tǒng)同時監(jiān)測多個地域、多個分站的網(wǎng)絡(luò)化管理,使用簡單、方便,數(shù)據(jù)傳輸準(zhǔn)確無誤,延時時間短,非常適合小型的環(huán)?;驓庀蟊O(jiān)測站使用。

      [1]潘長清,蔣大明,歐陽勁松.基于S3C44BOX處理器Modbus通信協(xié)議的實現(xiàn)[J].儀器儀表標(biāo)準(zhǔn)化與計量,2007,23(2):26-28.PAN Chang-qing, JIANG Da-ming, OUYANG Jin-song.The implementation of Modbus communication protocol based on S3C44BOX processor [J].Instrument Standardization and Meter Volume, 2007,23 (2) :26-28.

      [2]GB/T 19582.2-2008基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范,第2部分:Modbus協(xié)議在串行鏈路上的實現(xiàn)指南[S].北京:中國標(biāo)準(zhǔn)出版社,2008.

      [3]GB/T 19582.1-2008基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范,第1部分:Modbus應(yīng)用協(xié)議[S].北京:中國標(biāo)準(zhǔn)出版社,2008.

      [4]廖明燕,王宏偉.基于Modbus協(xié)議的加氣站多機通訊系統(tǒng)[J].自動化儀表,2008,29(9):44,54,64.LIAO Ming-yan,WANG Hong-wei.Based on Modbus protocol is scheduled for multi-machine communication system[J].Automation Instrumentation, 2008,29 (9):44,54,64.

      [5]周立功,王祖麟,陳明計,等.ARM與嵌入式系統(tǒng)基礎(chǔ)教程[M].廣州:廣州周立功單片機發(fā)展有限公司,2004.

      [6]陳建,蔣海峰,丁偉智.Modbus協(xié)議在隧道監(jiān)測系統(tǒng)中的應(yīng)用[J].現(xiàn)場總線,2009(7):34-35,50.CHEN Jian,JIANG Hai-feng, DING Wei-zhi.The application of Modbus protocol in the tunnel monitoring system[J].Field bus, 2009(7):34-35,50.

      猜你喜歡
      個字符通信協(xié)議中斷
      基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計與研究
      基于NS-3的PLC多頻通信協(xié)議仿真平臺設(shè)計與實現(xiàn)
      電測與儀表(2016年2期)2016-04-12 00:24:52
      不讓長文件名成為“絆腳石”
      電腦迷(2014年8期)2014-04-29 07:37:40
      RSSP-I、RSSP-Ⅱ及SAHARA三種安全通信協(xié)議實現(xiàn)技術(shù)簡介
      AT89C51與中斷有關(guān)的寄存器功能表解
      FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
      微處理機(2012年4期)2012-06-13 11:32:24
      工資報表計算機軟件論述
      卷宗(2011年9期)2011-05-14 17:51:19
      达拉特旗| 寿光市| 巴林右旗| 武城县| 永胜县| 志丹县| 南和县| 晋中市| 宁国市| 阳信县| 龙门县| 宜君县| 延长县| 炎陵县| 开封市| 余干县| 天长市| 隆尧县| 竹北市| 浦城县| 昌图县| 常德市| 马鞍山市| 乌兰浩特市| 锦州市| 临沧市| 崇仁县| 竹北市| 绩溪县| 资中县| 松阳县| 彰化县| 长沙县| 西昌市| 鄂尔多斯市| 平罗县| 新田县| 宁都县| 临夏市| 广饶县| 青神县|