【正文】
MODBUS協(xié)議的通訊系統(tǒng)【摘 要】 本設計研究如何通過MODBUS通訊協(xié)議,設計利用單片機,結合NRF24L01無線收發(fā)芯片,實現(xiàn)了溫度實時采集與主機(PC機)顯示。用STC89C52單片機與DS18B20對溫度采集顯示于數(shù)碼管,在通過無線模塊發(fā)送到另一塊單片機系統(tǒng)里通過1602液晶顯示,成后,基于MODBUS通訊協(xié)議通過RS485的物理層實現(xiàn)串口通信,發(fā)送實時數(shù)據(jù)給主機。經(jīng)過一系列的處理后,溫度得以實時在兩個單片機系統(tǒng)中顯示并準確顯示在主機串口調(diào)試軟件中。經(jīng)檢測,作品實現(xiàn)了基于MODBUS協(xié)議的通訊?!娟P鍵詞】 MODBUS NRF24L01 STC89C52 PC機[Abstract] This design to study how through the MODBUS munication protocol designed to use microcontroller, to bine NRF24L01 wireless transceiver chip temperature realtime acquisition with the host (PC) display. The STC89C52 SCM and DS18B20 temperature acquisition and display digital control, the 1602 LCD, after the pletion of a microcontroller system via RS485 physical layer munication protocol based on MODBUS serial munication through a wireless module to send to send realtime data to the host. After a series of treatments, the temperature can be shown in the two singlechip system in real time and accurately displayed on the host serial port debugging software. After testing, the works based on MODBUS protocol munication.[Key words] The MODBUS nRF24L01 STC89C52 host puter目 錄第1章 緒論 1 Modbus 協(xié)議簡介 1 Modbus 協(xié)議的應用 本論文的主要內(nèi)容 1第2章 設計總思路和法案選擇 22.設計總體思路基本原理和框圖 2 MODBUS方案選擇 2 3 4 本章小結 4第3章 通訊系統(tǒng)實現(xiàn)的理論原理 5 MODBUSRTU通訊協(xié)議內(nèi)容簡介 5 RS485接口簡介 7 NRF24L01無線模塊內(nèi)容簡介 8 本章小結 9第4章 通訊系統(tǒng)實現(xiàn)的硬件設計 10 10 單片機最小系統(tǒng)模塊 獨立按鍵、液晶和數(shù)碼管顯示模塊 10 11 RS232轉(zhuǎn)RS485通訊接口模塊 11 本章小結 12第5章 通訊系統(tǒng)實現(xiàn)的軟件設計 13 基于MODBUS協(xié)議處理報文的軟件設計: 13 A機流程圖和說明 16 B機流程圖和說明 17 本章小結 18第6章 通訊系統(tǒng)的實現(xiàn) 19 實物整體外觀 19(PC機)顯示 20 結果評價 21 不足和展望 22參考文獻 23致謝 24附錄一: 系統(tǒng)總原理圖和PCB圖 25附錄二: 單片機A機程序 27附錄三: 單片機B機程序 40第1章 緒論 Modbus 協(xié)議簡介Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個品牌)在1979年發(fā)明的,是全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議。為更好地普及和推動Modbus在基于以太網(wǎng)上的分布式應用,目前施耐德公司已將Modbus協(xié)議的所有權移交給IDA(Interface for Distributed Automation,分布式自動化接口)組織,并成立了ModbusIDA組織,為Modbus今后的發(fā)展奠定了基礎。在中國,Modbus已經(jīng)成為國家標準GB/T195822008。據(jù)不完全統(tǒng)計:截止到2007年,Modbus的節(jié)點安裝數(shù)量已經(jīng)超過了1000萬個。 Modbus 協(xié)議是應用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(例如以太網(wǎng))和其它設備之間可以通信。它已經(jīng)成為一通用工業(yè)標準。有了它,不同廠商生產(chǎn)的控制設備可以連成工業(yè)網(wǎng)絡,進行集中監(jiān)控。此協(xié)議定義了一個控制器能認識使用的消息結構,而不管它們是經(jīng)過何種網(wǎng)絡進行通信的。它描述了一控制器請求訪問其它設備的過程,如何回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。 Modbus 協(xié)議的應用 工業(yè)控制已從單機控制走向集中監(jiān)控、集散控制,如今已進入網(wǎng)絡時代,工業(yè)控制器連網(wǎng)也為網(wǎng)絡管理提供了方便。Modbus 就是工業(yè)控制器的網(wǎng)絡協(xié)議中的一種。 Modbus 協(xié)議定義了一個控制器能認識使用的消息結構,而不管它們是經(jīng)過何種網(wǎng)絡進行通信的。它描述了控制器請求訪問其它設備的過程,如何回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。 當在Modbus 網(wǎng)絡上通信時,此協(xié)議決定了每個控制器須要知道它們的設備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動。如果需要回應,控制器將生成反饋信息并用Modbus 協(xié)議發(fā)出。在其它網(wǎng)絡上,包含了Modbus 協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡上使用的幀或包結構。這種轉(zhuǎn)換也擴展了根據(jù)具體的網(wǎng)絡解決節(jié)地址、路由路徑及錯誤 測的方法。、本論文的主要內(nèi)容考慮到工業(yè)上常常要對一些移動性強的設備進行一些監(jiān)控,本次設計了溫度信號實時采集顯示。在短距離利用無線模塊與一些移動性強的設備進行數(shù)據(jù)交換克服有線通訊的弊端,再基于Modbus通訊協(xié)議將采集到的數(shù)據(jù)顯示于上位機上實現(xiàn)遠程通訊。本論文的主要內(nèi)容總由五章組成。第一章介紹Modus通訊協(xié)議與它的應用;第二章介紹設計的總思路和基本原理,對Mdodbus、通訊接口、無線模塊的方案進行介紹和選擇;第三章介紹modbus協(xié)議、RS485通訊接口、NRF24L01通訊模塊的內(nèi)容;第四章具體介紹硬件設計,最小系統(tǒng)、按鍵液晶數(shù)碼管顯示、電源電路、RS232—485模塊、NRF24L01模塊的硬件設計等;第五章介紹Modbus協(xié)議的軟件設計、A機軟件設計、B機軟件設計等;第六章介紹整個作品的實現(xiàn),對設計的整體外觀、串口顯示、對結果進行評價;說明了不足之處和設計的展望等。第2章 設計總思路和法案選擇2.設計總體思路基本原理和框圖本次設計了基于RS232485為接口,雙絞線為介質(zhì)的MODBUS通訊協(xié)議來實現(xiàn)遠距離、高穩(wěn)定、高速率、抗干擾能力強的通訊系統(tǒng),得以在遠離現(xiàn)場進行監(jiān)測??紤]到現(xiàn)場有時候設備移動性比較強時,比如物料輸送時要監(jiān)測移動的設備的溫度時,有線方式通訊是受限的,所以設計中還結合了無線模塊來避免這種弊端。根據(jù)設計思路本次設計為A、B兩個系統(tǒng)模塊和PC機通訊模塊;A機和B機可以通過無線模塊雙向傳輸信號;在Modbus通訊中B機作為從機,PC機作為主機,通過RS232485接口實現(xiàn)通訊。功能如圖21所示:MCU—A機獨立鍵盤無線收發(fā)模塊A液晶顯示器數(shù)碼管顯示無線收發(fā)模塊BMCU—B機溫度、時鐘RS232轉(zhuǎn)485物理層上位機顯示Modbus協(xié)議溫度、時鐘電磁波圖21 總體框圖⑴A機可以顯示時鐘和采集到的溫度信息,可以向B機發(fā)送命令,使B機當前顯示的是溫度或時鐘。⑵B機可以按A機的命令顯示時鐘(與甲時鐘需同步)或者溫度信息,當B機接受了A機的命令時指示燈閃爍一次。⑶B機的溫度、時鐘通過Modbus協(xié)議與主機通訊實現(xiàn)將溫度值、時鐘的時分信號讀取顯示于上位機串口調(diào)試軟件上。系統(tǒng)中主要有MCU、液晶顯示、數(shù)碼管顯示、獨立按鍵、溫度采集、無線收發(fā)、RS232轉(zhuǎn)48上位機等單元。其中MCU為各單元的控制中心,無線收發(fā)模塊是實現(xiàn)A機和B機通信的終端;主機、數(shù)碼管和液晶顯示部分用來觀察系統(tǒng)工作狀態(tài)及無線通信的成功與否。 MODBUS方案選擇在 Modbus 協(xié)議中,依數(shù)據(jù)在傳輸過程中的具體形式不同,分為兩種模式:ASCII 模式和 RTU模式, 采用哪種模式由用戶自己根據(jù)需要進行選擇。在改變數(shù)據(jù)傳輸模式時,同一 Modbus 網(wǎng)絡中的所有設備的數(shù)據(jù)傳輸模式必須一致。 方案一、ASCII(American Standard Code for Information Interchange),即美國信息交換標準代碼。在這種模式中,每個 8 比特的字節(jié)被轉(zhuǎn)換為兩個 ASCII 字符進行傳送。這種模式的主要優(yōu)點是傳送中每相鄰的兩字節(jié)之間允許的最大時間間隔較長,可達1秒。代碼系統(tǒng):十六進制,ASCII字符0…9,A…F,消息中的每個ASCII字符都是一個十六進制字符組成每個字節(jié)的位: 表21 ASCII模式起始位地址代碼功能代碼數(shù)據(jù)位LRC校驗碼結束位STARTADDRESSFUNCTIONDATALRC CHECKEND1字節(jié)2字節(jié)2字節(jié)n字節(jié)2字節(jié)2字節(jié)1 CHAR2 CHARS2 CHARSn CHARS2 CHARS2 CHARS 方案二、RTU(Remote Terminal Unit),即遠程終端單元。當控制器設為在Modbus網(wǎng)絡上以RTU(遠程終端單元)模式通信,在消息中的每個8Bit字節(jié)包含兩個4Bit的十六進制字符。代碼系統(tǒng):8位二進制,十六進制數(shù)0...9,A...F,消息中的每個8位域都是一個兩個十六進制字符組成每個字節(jié)的位: 表22 RTU模式起始位地址代碼功能代碼數(shù)據(jù)位CRC校驗碼結束位STARTADDRESSFUNCTIONDATACRC CHECKENDT1T2T3T48 BITS8 BITSn * 8 BITS16 BITST1T2T3T4通過比較可以看到,ASCII協(xié)議和RTU協(xié)議相比擁有開始和結束標記,因此在進行程序處理時能更加方便,而且