新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > Modbus通信協(xié)議的FPGA實現(xiàn)

Modbus通信協(xié)議的FPGA實現(xiàn)

作者: 時間:2010-08-11 來源:網(wǎng)絡 收藏

(6)等待發(fā)送完成,轉(zhuǎn)到步驟(1)。
解釋模塊主要由解釋控制模塊、分析模塊、各功能碼解釋模塊、錯誤功能碼處理模塊組成。分析模塊首先分析接收消息起始兩個字節(jié),即地址碼和功能碼。如果地址為廣播消息地址(地址為0)或者地址碼和本從站地址不相等,則不處理本消息,解釋控制模塊發(fā)出解釋完畢并置不響應信號為“1”,頂層控制模塊繼續(xù)處于等待接收消息狀態(tài)。如果功能碼為非支持功能碼,則選擇錯誤功能代碼處理模塊;如果為某一支持的功能碼,則選擇相應的功能模塊解釋接收消息,按照功能碼要求解碼(例如讀/寫某一指定寄存器或者線圈)。處理完之后把相應的異常碼響應消息或者正常響應消息寫入接口模塊里的發(fā)送緩沖寄存器里,完畢之后通過Ld_TbNCE信號把發(fā)送緩沖寄存器鎖存消息的末地址(不帶CRC校驗位)Trbuf_add[7..O](保證在Ld_TbNCE有效時它為末地址)存入接口模塊,發(fā)出解釋完畢信號,不響應信號置“O”,之后由頂層控制模塊控制接口模塊發(fā)送響應消息。對于某些功能碼,比如01碼和02碼,03碼和04碼,由于對它們的解釋差別很小,可以共用一個模塊,達到節(jié)省資源的目的。對于特定的系統(tǒng),完全可以選擇某一些功能碼甚至某一個功能碼,而達到需求,故這里采用這種模塊化方式,可以很容易在不改變其他功能模塊的情況下刪除不需要的功能碼模塊或者增加新需要的功能碼模塊。
該協(xié)處理器與從設備其他部分接口僅僅為雙口RAM,從設備完全被映射為寄存器組的抽象,這比啟用寄存器直接要節(jié)省邏輯資源。由于這些雙口RAM是完全透明的,用戶可以根據(jù)整個系統(tǒng)需要自定義各個寄存器的實際含義。Modbus主設備可以在任何時候隨機地訪問這些寄存器組。Modbus從設備控制、執(zhí)行模塊對這些寄存器組的訪問需要尋求一種較好的方式,由于的高速度及并行機制,一般情況下可以采取輪詢的機制即可滿足工業(yè)實時性需求。對于某些特殊情況需要更高優(yōu)先級的控制方式,也可以采取中斷方式。如圖7所示,可以通過雙口RAM的地址線和寫使能信號線進行中斷檢測和沖突檢測:當從站協(xié)處理模塊對某些特定寄存器讀/寫完畢之后,產(chǎn)生一個中斷信號,對某些可能存在從站協(xié)處理器模塊和從設備控制執(zhí)行模塊都要對其進行寫操作的寄存器,如果有寫操作同時發(fā)生,則從設備控制執(zhí)行模塊應該等待從站協(xié)處理器寫完再寫,以保證寫操作是原子的。圖8為03碼應答的完整仿真時序。

本文引用地址:http://butianyuan.cn/article/157238.htm


圖9為示波器在線路上檢測到的波形,圖9(a)展現(xiàn)了一系列連續(xù)幀實況;圖9(b)展現(xiàn)某一應答情況,可以看出主機和從機電平有差異,但都在RS 485范圍之內(nèi);圖9(c)展現(xiàn)了某一幀的具體情況。

5 結語
該設計基于Altera公司,首先設計了一個可以通用于Modbus主設備和從設備的Modbus接口,然后基于該協(xié)議接口設計了一個通用的Modbus從設備協(xié)處理器,該接口也可以方便地用于主協(xié)議設備中。本設計通過了多款芯片的綜合驗證,并與WEINVIEW公司觸摸屏MT-506MV和INVT公司CHF1OO-5R5G/7R5P變頻器成功通信。目前該設計已在某工業(yè)EPS系統(tǒng)和某沖擊試驗臺中穩(wěn)定運行半年,可見其有一定應用前景。


上一頁 1 2 3 4 下一頁

評論


相關推薦

技術專區(qū)

關閉