Microsemi DG0440 在 SmartFusion2 設備上執行 Modbus TCP 參考設計
美高森美公司總部
一個企業,Aliso Viejo,
CA 92656美國
美國境內:+1 800-713-4113
美國境外:+1 949-380-6100
傳真:+1 949-215-4996
電子郵件: sales.support@microsemi.com
www.microsemi.com
© 2017 美高森美公司。 版權所有。 Microsemi 和 Microsemi 徽標是 Microsemi Corporation 的商標。 所有其他商標和服務標記均為其各自所有者的財產
Microsemi 對此處包含的信息或其產品和服務對任何特定目的的適用性不作任何保證、陳述或保證,Microsemi 也不承擔因應用或使用任何產品或電路而產生的任何責任。 在此銷售的產品和 Microsemi 銷售的任何其他產品都經過了有限的測試,不應與任務關鍵型設備或應用程序一起使用。 任何性能規格都被認為是可靠的,但未經驗證,買方必須單獨、與任何最終產品一起或安裝在任何最終產品中進行並完成產品的所有性能和其他測試。 買方不得依賴 Microsemi 提供的任何數據和性能規格或參數。 買方有責任獨立確定任何產品的適用性並對其進行測試和驗證。 Microsemi 在此提供的信息是“按原樣、在哪裡”提供的,並且存在所有錯誤,與此類信息相關的全部風險完全由買方承擔。 Microsemi 沒有明確或暗示地向任何一方授予任何專利權、許可或任何其他知識產權,無論是關於此類信息本身還是此類信息所描述的任何內容。 本文檔中提供的信息是 Microsemi 的專有信息,Microsemi 保留隨時對本文檔中的信息或任何產品和服務進行任何更改的權利,恕不另行通知。
關於 Microsemi
美高森美公司(納斯達克代碼:MSCC)為航空航天與國防、通信、數據中心和工業市場提供全面的半導體和系統解決方案組合。 產品包括高性能和抗輻射模擬混合信號集成電路、FPGA、SoC 和 ASIC; 電源管理產品; 計時和同步設備以及精確的時間解決方案,為時間設定了世界標準; 語音處理設備; 射頻解決方案; 分立元件; 企業存儲和通信解決方案、安全技術和可擴展的反Tamp呃產品; 以太網解決方案; 以太網供電 IC 和中跨; 以及定制設計能力和服務。 Microsemi 總部位於加利福尼亞州的 Aliso Viejo,在全球擁有約 4,800 名員工。 了解更多信息 www.microsemi.com.
修訂歷史
修訂歷史記錄描述了文件中實施的變更。變更按修訂版列出,從最新出版物開始。
修訂版7.0
更新了 Libero v11.8 軟件版本的文檔。
修訂版6.0
本文檔的修訂版 6.0 中進行了以下變更。
- Libero SoC、FlashPro 和 SoftConsole 設計要求在第 5 頁的設計要求中進行了更新。
- 在整個指南中,演示設計中使用的 SoftConsole 項目的名稱和所有相關圖形都已更新。
修訂版5.0
更新了 Libero v11.7 軟件版本 (SAR 76559) 的文檔。
修訂版4.0
更新了 Libero v11.6 軟件版本 (SAR 72924) 的文檔。
修訂版3.0
更新了 Libero v11.5 軟件版本 (SAR 63972) 的文檔。
修訂版2.0
更新了 Libero v11.3 軟件版本 (SAR 56538) 的文檔。
修訂版1.0
更新了 Libero v11.2 軟件版本 (SAR 53221) 的文檔。
使用 IwIP 和 FreeRTOS 在 SmartFusion2 設備上執行 Modbus TCP 參考設計
介紹
Microsemi 提供了 SmartFusion®2 SoC FPGA 裝置的參考設計,展示了
SmartFusion2 SoC FPGA 的三速乙太網路媒體存取控制器 (TSEMAC) 功能並實作了 Modbus 協定。此參考設計在 UG0557:SmartFusion2 SoC FPGA 高級開發套件使用者指南上運行。本示範指南介紹了。
- 使用連接到串列千兆位元媒體獨立介面 (SGMII) PHY 的 SmartFusion2 TSEMAC。
- SmartFusion2 MAC 驅動程式與輕量級 IP (IwIP) 傳輸控制協定 (TCP) 或 IP 堆疊以及免費即時作業系統 (RTOS) 整合。
- 應用層採用工業自動化協定、Modbus on TCP 或 IP。
- 如何運行參考設計
SmartFusion2 SoC FPGA 的微控制器子系統 (MSS) 具有 TSEMAC 週邊裝置的實例。 TSEMAC 可以在主機處理器和乙太網路之間以以下資料傳輸速率(線路速度)進行設定:
- 10Mbps
- 100Mbps
- 1000Mbps
有關 SmartFusion2 裝置的 TSEMAC 介面的更多信息,請參閱 UG0331:SmartFusion2 微控制器子系統使用者指南。
使用Modbus協議
Modbus 是一種應用層訊息傳遞協議,位於第七層
開放系統互連(OSI)模型。它支援不同類型匯流排或網路中連接的設備之間的客戶端或伺服器通訊。它是一種服務協議,提供由功能代碼指定的許多服務。 Modbus 功能代碼是 Modbus 請求或回覆協定資料單元的元素。 Modbus 協定的元件包括:
- TCP 或 IP 以太網
- 透過多種媒體的非同步串行傳輸
- 金屬絲:
- EIA/TIA-232-E
- EIA-422
- EIA/TIA-485-A 光纖
- 收音機
- Modbus PLUS,高速令牌傳遞網絡
下圖描述了各種通訊網路的 Modbus 通訊堆疊。
圖 1 • Modbus 通訊堆疊
在 SmartFusion2 設備上使用 Modbus 協定
Modbus TCP 伺服器在 SmartFusion2 進階開發套件上運行,並回應主機 PC 上執行的 Modbus TCP 用戶端。下圖顯示了 SmartFusion2 設備上的 Modbus TCP 伺服器和應用程式的框圖。
圖 2 • SmartFusion2 上的 Modbus TCP 伺服器和應用程式框圖
0RGEXV 7&3 $SSOLFDWLRQ | 0RGEXV 7&3 6HUYHU |
,Z,3 7&3 RU ,3 6WDFN | |
)UHH5726 | )盧普茲杜赫 |
6PDUW)XVLRQ2 $GYDQFHG 'HYHORSPHQW .LW (+:) |
設計要求
下表列出了硬體和軟體設計要求。
表 1 • 參考設計要求和詳細信息
設計要求:描述
硬體
- SmartFusion2 進階開發套件
– USB A 至 mini-B 電纜
– 12V 適配器
修訂版 A 或更高版本 - 以太網電纜 RJ45
- 以下任一串行終端仿真程式:
– 超級終端
– TeraTerm
– 膩子 - 主機 PC 或筆記型電腦 Windows 64 位元作業系統
軟體
- Libero® 片上系統 (SoC) v11.8
- 軟件控制台 v4.0
- FlashPro編程軟件v11.8
- USB 轉 UART 驅動程式 –
- MSS 乙太網路 MAC 驅動程式 v3.1.100
- 串行終端仿真程式 HyperTerminal、TeraTerm 或 PuTTY
- 瀏覽器 Mozilla Firefox 或 Internet Explorer
演示設計
以下部分介紹了使用 IwIP 和 FreeRTOS 在 SmartFusion2 設備上進行 Modbus TCP 參考設計的示範設計。
演示設計 file可在以下位置下載:
http://soc.microsemi.com/download/rsc/?f=m2s_dg0440_liberov11p8_df
演示設計 file包括:
- 利貝羅
- 程式設計 files
- 主機工具
- 自述文件
下圖顯示了設計的頂層結構 files。有關詳細信息,請參閱 Readme.txt file.
圖 3 • 演示設計 File頂層結構
演示設計功能
參考設計包括:
- 完整的 Libero SoC Verilog 項目
- SoftConsole 韌體項目
根據自由的 Modbus 通訊堆疊設置,參考設計可以支援以下 Modbus 功能代碼:
- 讀輸入暫存器(功能碼0×04)
- 讀取保持暫存器(功能碼0×03)
- 寫入單一暫存器(功能碼0×06)
- 寫入多個暫存器(功能碼0×10)
- 讀寫多個暫存器(功能碼0×17)
- 讀取線圈(功能碼0×01)
- 寫入單一線圈(功能碼0×05)
- 寫入多個線圈(功能碼0×0F)
- 讀取離散量輸入(功能碼(0×02)
此參考設計支援所有免費 Modbus 通訊堆疊設定的以下 Modbus 功能代碼:
- 讀輸入暫存器(功能碼0×04)
- 讀取離散量輸入(功能碼(0×02)
- 寫入多個線圈(功能碼0×0F)
- 讀取保持暫存器(功能碼0×03)
演示設計說明
此設計是透過將 TSEMAC 配置為十位元介面 (TBI) 操作,使用 SGMII PHY 介面來實現的。有關 TSEMAC TBI 介面的更多信息,請參閱 UG0331:SmartFusion2 微控制器子系統使用者指南。
Libero SoC 硬件項目
下圖顯示了運行參考設計從屬韌體的硬體設計實現。
圖 4 • Libero SoC 頂層硬件設計
Libero SoC 硬件項目使用以下 SmartFusion2 MSS 資源和 IP:
- TSEMAC TBI 介面
- SmartFusion0 高級開發套件上用於 RS-232 通訊的 MMUART_2
- 專用輸入焊盤 0 作為時鐘源
- 通用輸入和輸出 (GPIO),可連接下列介面:
- 發光二極體 (LED):4 個
- 按鈕:4個數字
- 雙列直插封裝 (DIP) 開關:4 個數字
- 以下板資源與 Modbus 指令關聯:
- LED(線圈)
- DIP 開關(離散輸入)
- 按鈕(離散輸入)
- 實時時脈 (RTC)(輸入暫存器)
- 高速串列介面(SERDESIF)SERDES_IF IP,配置為SERDESIF_3 EPCS Lane 3,請見下圖。要了解有關高速串行接口的更多信息,請參閱 UG0447-SmartFusion2 和 IGLOO2 FPGA 高速串行接口用戶指南。
下圖顯示了高速串列介面配置器視窗。
圖 5 • 高速串列介面配置器視窗
封裝引腳分配
LED、DIP 開關、按鈕開關和 PHY 介面訊號的封裝接腳分配如下表至第 5 頁的表 9 所示。
表 2 • LED 至封裝接腳分配
- 輸出封裝引腳
- LED_1 D26
- LED_2 F26
- LED_3 A27
- LED_4 C26
表 3 • DIP 開關到封裝接腳的分配
- 輸出封裝引腳
- DIP1 F25
- DIP2 G25
- DIP3 J23
- DIP4 J22
表 4 • 按鈕開關封裝接腳分配
- 輸出封裝引腳
- 開關1 J25
- 開關2 H25
- 開關3 J24
- 開關4 H23
表 5 • PHY 接口信號到封裝引腳分配
- 連接埠名稱 方向 封裝 引腳
- PHY_MDC 輸出 F3
- PHY_MDIO 輸入 K7
- PHY_RST 輸出 F2
SoftConsole 固件項目
使用獨立的 SoftConsole IDE 呼叫 SoftConsole 專案。以下版本的堆疊用於參考設計:
- lwIP TCP 或 IP 堆疊版本 1.3.2
- Modbus TCP 伺服器版本 1.5 (www.freemodbus.org) 增強了作為 Modbus TCP 伺服器的完整功能代碼支持
- FreeRTOS(www.freertos.org)
下圖所示為SoftConsole軟體堆疊設計的目錄結構。
圖 6 • SoftConsole 項目瀏覽器窗口
SoftConsole 工作區由專案 Modbus_TCP_App 組成,該專案具有 Modbus TCP 應用程式(使用 lwIP 和 FreeRTOS)以及與硬體設計相對應的所有韌體和硬體抽象層。
下圖顯示了用於演示的驅動程序版本。
圖 7 • 演示設計驅動程序版本
設置演示設計
以下步驟說明如何設定 SmartFusion2 進階開發套件板的示範:
- 使用 USB A 轉 mini-B 連接線將主機 PC 連接到 J33 連接器。自動偵測 USB 到通用非同步接收器/發送器 (UART) 橋接器。
- 從偵測到的四個通訊 (COM) 連接埠中,右鍵單擊任一 COM 連接埠並選擇「屬性」。顯示選取的COM口屬性窗口,如下圖所示。
- 確保屬性視窗中的位置為 USB FP5 Serial Converter C,如下圖所示。
筆記: 記下用於序列埠配置的 COM 連接埠號碼,並確保 COM 連接埠位置指定為 USB FP5 序列轉換器 C 上的位置。
圖 8 • 設備管理器窗口
- 如果未自動偵測到 USB 驅動程式,請安裝 USB 驅動程式。
- 安裝 FTDI D2XX 驅動程序,透過 FTDI mini USB 電纜進行串行終端通訊。從以下位置下載驅動程式和安裝指南:
www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip - 按下表所示連接 SmartFusion2 進階開發套件板上的跳線。有關跳線位置的信息,請參閱附錄:跳線位置,第 19 頁。
警告: 在進行跳線連接之前,關閉電源開關 SW7。
表 6 • SmartFusion2 高級開發套件跳線設置
- 跳線針從針腳到註釋
- J116、J353、J354、J54 1 2 這些是高階開發套件板的預設跳線設定。確保跳線
- J123 2 3 對應設定。
- J124, J121, J32 1 2 焦TAG 通過 FTDI 編程
- 將電源連接到 SmartFusion42 進階開發套件板中的 J2 連接器。
- 這個設計前amp文件可以在靜態 IP 和動態 IP 模式下運行。 默認情況下,編程 files是為動態IP模式提供的。
- 對於靜態 IP,將主機 PC 連接到電腦的 J21 連接器
SmartFusion2 進階開發套件板使用 RJ45 電纜。 - 對於動態 IP,使用 RJ21 電纜將任何一個開放網絡端口連接到 SmartFusion2 高級開發套件板的 J45 連接器。
- 對於靜態 IP,將主機 PC 連接到電腦的 J21 連接器
電路板設置快照
附錄:用於運行 Modbus TCP 參考設計的板設定(第 2 頁)中提供了 SmartFusion18 高級開發套件板以及所有設定連接的快照。
運行演示設計
以下步驟描述瞭如何運行演示設計:
- 下載設計 file 從:
http://soc.microsemi.com/download/rsc/?f=m2s_dg0440_liberov11p8_df - 打開電源開關 SW7。
- 啟動任何串行終端仿真程序,例如:
- 超級終端
- 油灰
- 泰拉術語
注意:本示範使用超級終端。
該程序的配置是: - 波特率:115200
- 8 個數據位
- 1 停止位
- 無奇偶校驗
- 無流量控制
有關配置串行終端仿真程式的信息,請參閱配置串行終端仿真程式。
- 啟動 FlashPro 軟件。
- 單擊新建項目。
- 在“新專案”視窗中,輸入“專案名稱”,如下圖所示。
圖 9 • FlashPro 新項目
- 單擊瀏覽並導航到要保存項目的位置。
- 選擇單一設備作為編程模式。
- 單擊“確定”保存項目。
- 單擊配置設備。
- 按一下瀏覽並導航至 Modbus_TCP_top.stp 所在的位置 file 位於並選擇 file. 默認位置是:
(\SF2_Modbus_TCP_Ref_Design_DF\編程file\Modbus_TCP_top.stp)。所需的程式設計 file 已選擇並準備在裝置中進行編程,如下圖所示。
圖 10 • 配置的 FlashPro 項目
- 點擊“編程”開始對設備進行編程。等待顯示程式通過的訊息。此演示需要使用應用程式代碼對 SmartFusion2 設備進行預先編程,以啟動 Modbus 應用程式。 SmartFusion2 設備使用 FlashPro 軟體透過 Modbus_TCP_top.stp 進行預先編程。
圖 11 • FlashPro 程式已通過
注意:若要在靜態 IP 模式下執行設計,請依照附錄:在靜態 IP 模式下執行設計(第 20 頁)中所提及的步驟進行操作。
- 重新啟動 SmartFusion2 進階開發板。
超級終端機視窗中會顯示一則包含 IP 位址的歡迎訊息,如下圖所示。
圖 12 • 具有 IP 位址的超級終端
在主機上開啟一個新的命令提示符,轉到該資料夾
(\SF2_Modbus_TCP_Ref_Design_DF\HostTool) 其中
SmartFusion2_Modbus_TCP_Client.exe file 存在,輸入指令:SmartFusion2_Modbus_TCP_Client.exe如下圖所示。
圖 13 • 呼叫 Modbus 用戶端
下圖顯示了正在運行的 Modbus TCP 功能。其功能為:
- 讀取離散輸入(功能代碼 02)
- 讀取保持暫存器(功能代碼03)
- 讀取輸入暫存器(功能代碼04)
- 寫入多個線圈(功能碼15)
圖 14 • Modbus 功能代碼演示
有關參考設計中演示的 Modbus 功能的更多信息,請參閱第 17 頁的運行 Modbus 功能。
- 運行演示後,關閉超級終端。
運行 Modbus 功能
本節介紹參考設計中示範的 Modbus 功能。
讀取離散輸入(功能代碼 02)
GPIO 連接到 4 個 DIP 開關和 4 個按鈕開關。開啟和關閉 SmartFusion2 進階開發套件上的 DIP 開關和按鈕開關。讀取離散量輸入功能碼顯示開關狀態,如下圖所示。
圖 15 • 讀取離散輸入
讀取保持暫存器(功能代碼03)
下圖顯示了韌體中定義的全域緩衝區資料。
圖 16 • 讀取保持暫存器
讀取輸入暫存器(功能代碼04)
下圖顯示了即時計數器 (RTC) 已計數的秒數。
圖 17 • 讀取輸入暫存器
寫入多個線圈(功能碼0×0F)
下圖顯示了用於切換連接到 GPIO 的 LED 的寫入多個線圈暫存器資料。
圖 18 • 寫入多個線圈
附錄:用於運行 Modbus TCP 參考設計的板設置
下圖顯示了在 SmartFusion2 進階開發套件板上運行參考設計的板設定。
圖 19 • SmartFusion2 高級開發套件電路板設置
附錄:跳線位置
下圖顯示了 SmartFusion2 進階開發套件板上的跳線位置。
圖 20 • SmartFusion2 進階開發套件絲網印刷頂部 View
筆記: 以紅色突出顯示的跳線為默認設置。 以綠色突出顯示的跳線必須手動設置。
筆記: 上圖中的跳線位置是可以搜索到的。
附錄:在靜態 IP 模式下運作設計
以下步驟說明如何在靜態 IP 模式下運作設計:
- 右鍵點選SoftConsole專案的Project Explorer窗口,選擇“Properties”,如下圖所示。
圖 21 • SoftConsole 項目的項目瀏覽器窗口
- 在「Modbus_TCP_App 屬性」視窗的「工具設定」中刪除符號 NET_USE_DHCP。下圖顯示了 Modbus_TCP_App 視窗的屬性。
圖 22 • Project Explorer 屬性窗口
- 如果裝置以靜態 IP 模式連接,則板靜態 IP 位址為 169.254.1.23,然後變更主機 TCP/IP 設定以反映 IP 位址。參見下圖和圖24,
圖 23 • 主機 PC TCP/IP 設置
圖 24 • 靜態 IP 地址設置
筆記: 配置這些設定後,編譯設計,將設計載入到快閃記憶體中,然後使用 SoftConsole 執行設計。
DG0440 演示指南修訂版 7.0
文件/資源
![]() |
Microsemi DG0440 在 SmartFusion2 設備上執行 Modbus TCP 參考設計 [pdf] 使用者指南 DG0440 在 SmartFusion2 設備上執行 Modbus TCP 參考設計、DG0440、在 SmartFusion2 設備上執行 Modbus TCP 參考設計、SmartFusion2 設備上的設計 |