999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

水站監控系統的Modbus通信協議設計

2015-06-12 12:32:25陳佳暉衷衛聲王文海
自動化儀表 2015年9期
關鍵詞:系統設計

陳佳暉 衷衛聲 王文海

(南昌大學信息工程學院1,江西 南昌 330031;浙江大學信息學部2 ,浙江 杭州 310027)

水站監控系統的Modbus通信協議設計

陳佳暉1衷衛聲1王文海2

(南昌大學信息工程學院1,江西 南昌 330031;浙江大學信息學部2,浙江 杭州 310027)

針對水站監控系統中存在的可擴展性、成本高等問題,將FPGA技術應用于水站監控系統。對水站監控系統進行了總體結構設計,控制器與分析儀表的通信采用Modbus協議,通過仔細分析該協議后,用FPGA的模塊化設計方法,將該協議劃分為波特率發生器模塊、接收模塊、發送模塊和CRC校驗模塊,并用Verilog HDL語言完成了對各模塊的設計和功能仿真。實驗仿真結果表明,該設計滿足Modbus協議的通信要求,在工業通信領域具有一定的實用價值。

FPGA Modbus 通信協議 水站監控 Verilog HDL

0 引言

21世紀以來,我國的工業化水平得到了迅速提高,面對日益嚴重的水污染及水資源短缺等問題,監測江河、湖泊、水庫等地表水的水質成為當今環境監測的研究熱點[1]。隨著計算機技術及傳感器技術的快速發展,監控技術的自動化水平越來越高,參數的測量精度也越來越高,系統變得更加靈活。由于水站分布在不同地域,工作環境比較惡劣,并且針對不同的水環境有不同的監測指標,因此,控制中心與現場儀表之間的通信面臨著可擴展性及可靠性的問題。

現場可編程門陣列(field-programmable gate array,FPGA),已從最初的一千多個邏輯門發展到現在的百萬門以上[2]。用戶可通過編程將內部的邏輯單元組成任何復雜的數字系統,并支持動態可重構技術,應用領域越來越廣,如SOPC技術、嵌入式系統開發、高性能數字信號處理系統、可重配置計算機系統、基于網絡的可從配置技術、IP核的開發和復用技術等。

Modbus以其擴展性好、兼容性強、可靠性高和免費開放等優點得到了廣泛應用[3]。目前主要是通過單片機或PLC實現Modbus協議,而本文研究了一種基于FPGA的Modbus通信協議實現方案。由于FPGA具備開發周期短、速度快等優點,該方案具有很好的通用性和實用價值。

1 系統總體概述

水站監控系統的總體結構如圖1所示。

圖1 水站監控系統的總體結構

取配水單元主要負責水樣的采集,并將水樣通過取樣水泵輸送至沉砂分離單元和分析儀器單元;在線監測分析儀器單元的任務是針對不同的水質參數檢測要求,選擇合適的水質在線分析儀表,并將測量結果及工作狀態等信息發送給FPGA。為便于通信,這些儀器都支持Modbus通信協議[4]。GPRS模塊負責數據的遠程傳輸和報警功能;遠程數據管理中心負責對監測數據進行實時顯示和存儲,為工作人員提供可視化的監控管理平臺。

數據采集與控制單元是系統的核心部分,與以往的監控系統相比,該系統以FPGA作為現場控制單元。它主要負責對各分析儀器的監測數據進行采集,分析儀器與FPGA之間的通信采用Modbus協議;FPGA會將采集的數據發給GPRS模塊,以實現遠程通信功能;現場設備執行檢測、取樣及清洗等功能也是由FPGA實現的。本系統適用于地表水水域或斷面水質的在線檢測,可供有關環境監測部門參考和使用。

2 Modbus通信協議介紹

Modbus協議是當今自動化協議中使用最普遍的一種通信協議,它是一種主從式點對點通信協議,通過該協議,控制器之間、控制器經由網絡(如以太網)和其他設備之間可以進行通信,現在己經成為一種通用的工業標準通信協議。有了Modbus協議,不同廠商生產的控制設備可以組成工業網絡,進行集中監控。Modbus串行鏈路系統可以使用RS-485、RS-232兩種物理接口,其中RS-485兩線制接口最常用[5]。為了提高通信模塊的穩定性和抗干擾性,接口芯片與FPGA核心模塊之間需要采用高速光耦進行隔離,并采用屏蔽雙絞線作為通信介質。

在標準Modbus通信協議中,控制器可以使用ACSII或RTU通信模式進行通信[6]。當控制器使用ASCII模式通信時,消息中的每個8位字節都要用2個ASCII字符發送,這種方式的主要優點是字符間的時間間隔可以達到1 s而不會產生錯誤。以RTU模式通信時,消息中的每個8位字節包含2個4位的十六進制字符。該模式的優點是,在相同的波特率下,可以比ASCII模式發送更多的數據[7]。本設計采用RTU模式進行通信,其消息幀格式如表1所示。

表1 RTU模式的消息幀格式

在RTU模式中,規定消息以至少3.5個字符靜止時間表示開始,當確定了波特率后,很容易計算得到這個靜止時間。各區發送的字符均采用十六進制,第一個數據區是從機的地址,在同一個網絡中只允許有1臺主機和最多247臺從機,從機的地址編碼范圍是1~247(十進制)。當從設備接收到第一個地址數據時,每臺設備都要立即對它解碼,以判斷是否是自己的地址;第二個數據區代表功能碼,Modbus通信協議定義了255個功能碼,但大部分功能碼用于異常應答;第三個數據區代表數據信息,它包括各種數據地址、寄存器數量、數據信息和數據的字節數;第四個是錯誤校驗碼區,本系統采用循環冗余校驗CRC16;最后是至少3.5個字符靜止時間,代表消息的結束。整個消息必須連續發送,如果發送消息時出現大于1.5個字符靜止時間,則接收設備會刷新不完整的信息,重新接收消息數據。

3 Modbus通信協議設計

3.1 整體功能模塊劃分

Modbus通信協議是通過FPGA來實現的,根據Modbus通信協議的要求,采用自頂向下的設計方法,將整個通信模塊劃分為若干個功能模塊,如果功能模塊還比較復雜就再進行細化,以實現模塊的功能最簡化,然后用Verilog HDL語言實現各模塊的功能[8]。采用模塊化的設計思想,不僅使設計更加簡單,而且使代碼維護和升級變得更加方便。Modbus通信協議的頂層模塊如圖2所示。

圖2 Modbus協議的FPGA功能模塊劃分

3.2 波特率發生器

波特率發生器其實就是一個分頻器,根據系統的時鐘頻率和要求的波特率算出波特率分頻因子,并以此作為分頻器的分頻數,它的主要功能是控制Modbus協議的數據傳輸速率。本系統的FPGA控制板使用的是50 MHz的晶振,波特率采用Modbus協議推薦的19 200 bit/s,這樣就可以得到傳輸一位數據需要的時間長度為2 604個時鐘脈沖周期,半周期為1 302。波特率發生器的模塊圖如圖3所示。

圖3 波特率發生器功能模塊圖

3.3 接收模塊

接收模塊由消息幀信號檢測模塊、串并轉換模塊和數據緩存模塊組成。

① 信號檢測模塊。信號檢測模塊的功能是檢測消息幀的開始與結束。當模塊檢測到串口至少有3.5個字符時間的停頓間隔,則置位起始信號標志位,如果沒有就接著檢測;當數據信息全部接收完畢,模塊又檢測到至少3.5個字符時間的停頓間隔,則置位終止信號標志位,表示消息幀已經結束。信號檢測模塊的功能圖如圖4所示。其中,RX是串口輸入數據,CLK_BPS是數據傳輸時鐘,RST_n是復位信號,KS_EN和JS_EN分別代表起始信號和終止信號。

圖4 信號監測功能模塊圖

② 串并轉換模塊。串并轉換模塊的功能是接收數據的串行比特流,將輸入數據轉換為8位并行數據,并將并行數據發送給數據緩存模塊和CRC校驗模塊[9]。該模塊的功能圖如圖5所示。CLK_BPS是波特率時鐘信號;RX是串行輸入數據;當KS_EN為1時,模塊開始工作;RX_D是8位并行輸出數據;WR_EN是寫數據寄存器使能信號;當JS_EN為1時,該模塊停止工作,表示數據轉換完畢。

圖5 串并轉換功能模塊圖

當KS_EN為1時,該模塊開始工作,并檢測起始位0,當串行輸入“00101100101”(首先接收最低位)時,輸出端輸出的8位并行數據為“10011010”,因此該模塊正確地完成了串并轉換功能。

③ 數據緩存模塊。數據緩存模塊是將接收端收到的數據進行緩存,并認為緩存的第一個字節為從機地址,第二個字節為功能碼,而第三個字節及后續字節(不包括CRC校驗碼)為消息幀的數據信息。數據緩存模塊的功能圖如圖6所示,RX_D為緩存的8位并行數據,WR_EN為1時該模塊開始工作,WRADDR為寫入數據的地址,Data為寫入存儲區的數據。

圖6 數據緩存功能模塊圖

3.4 發送模塊

發送模塊相當于接收模塊的逆過程,該模塊由發送控制模塊、并串轉換模塊和讀數據模塊組成。發送控制模塊與接收模塊中的信號檢測模塊相似,它產生至少3.5個字符時間的停頓間隔;并串轉換是將讀取的8位并行數據轉換為串行數據,并將串行數據發送給串口,由TX引腳發送出去;讀數據模塊是根據處理器的指令讀取數據緩存區的8位并行數據,每取完一個字節后,數據長度寄存器加1。當數據長度寄存器的值與數據長度字節的值相等時,就取出CRC模塊所產生的16位CRC值。當CRC校驗值發送完畢,則表示整個消息幀發送完畢。由于發送模塊各子模塊與上述接收模塊相似,這里就不詳細列出了。

3.5 CRC16校驗

CRC校驗模塊主要完成兩個任務,一個是對主機發送給從機的消息幀進行CRC計算,并將校驗結果發給發送模塊;另一個是對從機返回給主機的消息幀進行CRC校驗。CRC校驗碼是兩個字節、16位的二進制數。CRC校驗開始時,將一個16位的CRC寄存器各位置1;然后將消息幀中的第一個8位字節與CRC寄存器的低字節進行異或運算(只有每個字符中的8位數據進行CRC計算,而起始位、停止位及校驗位不進行CRC計算);接著向最低有效位(LSB)方向移位,并用0填充最高有效位(MSB);檢查LSB的值,如果LSB=1,則與寄存器的預置值進行異或運算,如果LSB=0,則不作異或運算。重復以上處理過程,直到移位8次,當第8次移位后,將下一個8位數據與寄存器的當前值進行異或運算,并重復上面的步驟[10]。當整個消息幀的數據都處理完后,CRC寄存器的值就是該消息幀的CRC校驗值。

CRC校驗的模塊圖如圖7所示。其中,crc_in[7:0]是輸入數據,load表示開始編碼,d_finish表示編碼結束,crc_out[15:0]是最后得到的CRC值。

圖7 CRC校驗模塊圖

FPGA收到從機發來的消息幀“01,03,00,9a,00,07,e0,ef”,其中efe0為該消息幀的CRC校驗碼,因為發生時是先發低字節再發高字節,因此ef是高8位,CRC模塊對該幀的計算結果為efe0,兩者相等,因此滿足CRC校驗的要求。

4 結束語

為了實現水站監控系統中對各檢測儀表的數據采集,采用Modbus協議規范進行通信設計。采用Verilog HDL語言對Modbus RTU協議各個模塊進行編程和功能仿真,并提供了有關模塊的仿真結果。實踐證明,采用FPGA來設計Modbus協議與傳統的單片機設計相比,其傳輸速度更快、可擴展性更強,并具有一定的可行性。

[1] 肖長來,梁秀娟.水環境監測與評價[M].北京:清華大學出版社,2008.

[2] 桂婧.基于FPGA的超聲波探傷儀信號處理系統分析與設計[D].廣州:華南理工大學,2010.

[3] 張明龍,陳鋒,許濤濤.嵌入式水質監測系統節點間MODBUS的協議設計[J].儀表技術,2013(10):1-4.

[4] 王振明.SCADA(監控與數據采集)軟件系統設計與開發[M].北京:機械工業出版社,2008.

[5] 潘悅.Modbus協議研究及其實驗系統的設計[D].哈爾濱:哈爾濱工業大學,2007.

[6] 陸晶,薛偉.基于MODBUS協議的溫度采集系統的設計[J].電子測量技術,2009,32(12):25-27.

[7] 張飛,張云,韓彥嶺,等.基于Modbus遠程監控的水質在線監測系統的設計與實現[J].電子設計工程,2014(2):1-4.

[8] 王伶俐,周學功,王穎.系統級FPGA設計與應用[M].北京:清華大學出版社,2012.

[9] 楊大柱.基于FPGA的UART電路設計與仿真[J].微計算機信息,2007,23(5):200,212-213.

[10] 張增波,陳仲林,肖劉.基于FPGA的內置并行CRC校驗的UART[J].自動化與儀表,2013,28(2):30-32,40.

Design of the Modbus Communication Protocol for Water Station Monitoring System

In order to solve the problems of poor extensibility and high cost in water station monitoring systems, the FPGA technology is applied in the system. The overall structural design of water station monitoring system is achieved, in the system, the communication between controller and analytical instrument is using Modbus protocol. Through analyzing this protocol in detail, by adopting FPGA modular design method, the protocol is divided into baud rate generator module, receiving module, sending module and CRC checking module; the design and functional simulation of each module are conducted with Verilog HDL language. The results of experimental simulation indicate that the design satisfies the communication requirements of Modbus protocol, and possesses certain practical value in industrial communication field.

FPGA Modbus Communication protocol Water station monitoring Verilog HDL

國家863計劃基金資助項目(編號:2013AA040302);

陳佳暉(1990-),男,現為南昌大學測試計量技術及儀器專業在讀碩士研究生;主要從事嵌入式系統開發及信號監測技術的研究。

TP336

A

10.16086/j.cnki.issn1000-0380.201509013

江西省科技廳科技成果重點推廣指導項目(編號:2011ZBBI90006)。

修改稿收到日期:2015-04-03。

猜你喜歡
系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 亚洲精品另类| 国产又粗又爽视频| 99re这里只有国产中文精品国产精品 | 老熟妇喷水一区二区三区| 青青草一区二区免费精品| 亚洲中字无码AV电影在线观看| 亚洲区第一页| 久久久久国产一区二区| 色综合狠狠操| 丁香六月综合网| 欧美a在线| 日韩久草视频| 欧美第一页在线| 成人福利在线看| 国内精品视频| 女人av社区男人的天堂| 免费人欧美成又黄又爽的视频| 亚洲男女天堂| 伊人久热这里只有精品视频99| 欧美成人在线免费| 国产乱子伦视频在线播放| 欧美国产日韩在线| 91在线视频福利| 国产玖玖视频| 免费观看国产小粉嫩喷水| 免费黄色国产视频| 色窝窝免费一区二区三区| 欧美一区精品| 国产成人狂喷潮在线观看2345| 青青草国产在线视频| 成人一级免费视频| 亚洲天堂2014| 亚洲第一国产综合| 国产免费羞羞视频| 91青草视频| 中国黄色一级视频| 亚洲欧美在线综合一区二区三区 | 91一级片| 色男人的天堂久久综合| 园内精品自拍视频在线播放| 国产亚洲欧美在线中文bt天堂 | 亚洲一区网站| 婷婷六月激情综合一区| 8090成人午夜精品| 日本午夜视频在线观看| 99热这里只有精品免费国产| 18黑白丝水手服自慰喷水网站| 国产网友愉拍精品| 日本福利视频网站| 思思热精品在线8| 久久久久久午夜精品| 婷婷色一二三区波多野衣| аⅴ资源中文在线天堂| 成人国产一区二区三区| 欧美亚洲网| 91福利一区二区三区| 亚洲中文字幕av无码区| 久久成人国产精品免费软件| 亚洲中文字幕av无码区| 国产无遮挡猛进猛出免费软件| 亚洲妓女综合网995久久| 日韩欧美国产另类| 欧美成人综合在线| 亚洲美女一级毛片| 久久国产精品夜色| 色香蕉网站| 美女被狂躁www在线观看| 99视频在线观看免费| 在线观看国产精品一区| jizz亚洲高清在线观看| 日韩少妇激情一区二区| 国产美女一级毛片| 国产美女丝袜高潮| 欧美日韩精品在线播放| 精品无码国产一区二区三区AV| 国产亚洲男人的天堂在线观看| 亚洲熟女偷拍| 国产在线高清一级毛片| 广东一级毛片| 日韩一级二级三级| 日韩av资源在线| 国产AV无码专区亚洲A∨毛片|