鄧祥忠 徐全元 魯瑩



摘要:為了滿足某些工農業場合需要將在本地的基于RS-485通信協議的數據上傳至互聯網的需求。設計了一個基于ARM的RS485通信接口與以太網通信接口相互轉換的數據中繼系統。系統采用STM32F429作為主控芯片,MAX485作為RS-485接口芯片,W5500作為以太網接口芯片,實現了通信接口的轉化、多節點數據處理以及無網絡時數據的儲存等功能。并且配合實時操作系統?C/OS-III進行系統任務代碼的設計,同時基于STemWin設計了人機交互界面,最終提高了系統的實時性和穩定性。
關鍵詞:數據中繼;STemWin;?C/OS-III;W5500
中圖分類號:TP393? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)01-0043-02
Abstract: In order to meet the needs of some industrial and agricultural occasions to upload local data based on the RS-485 communication protocol to the Internet, a data relay system based on ARM-based RS485 communication interface and Ethernet communication interface is designed. The system uses STM32F429 as the main control chip, MAX485 as the RS-485 interface chip, W5500 as the Ethernet interface chip, realizes the conversion of communication interface, multi-node data processing and data storage when there is no network. And cooperate with the real-time operating system ?C/OS-III to design the system task code, and design the human-computer interaction interface based on STemWin, which finally improves the real-time performance and stability of the system.
Key words: data relay;STemWin; ?C/OS-III; W5500
RS-485總線具有成本低廉、設計簡單、控制方便、支持多節點通信等優點[1]。在工業領域有較多的應用,但是RS-485總線協議卻是一種本地的通信協議,在當前互聯網技術飛速發展的趨勢之下,其已經無法滿足高度信息化和集成化的需求[2]。W5500是韓國WIZnet(微知納特)公司發布的一款集成全硬件TCP/IP協議棧的嵌入式以太網芯片,能夠簡單方便地實現本地數據網絡接入互聯網的需求,本設計旨在應用RS-485總線協議和TP/IP協議的長處,實現由RS-485通信接口和以太網接口的數據雙向傳輸,達到本地數據接入互聯網云端的目的。
1系統硬件設計
系統硬件部分主要包括電源部分、STM32F429IGT6微控制器最小系統、MAX485模塊、W5500模塊、顯示模塊等組成。電源部分由5V電源適配器輸入,經過濾波和防過壓處理后,供顯示模塊使用,另一方面電壓經過ASM1117-3.3V降壓芯片降壓后給STM32供電;STM32F429IGT6是ST公司發布的基于Cortex-M4的32位RISC內核的高性能微處理器,具有高達180M的主頻,具有硬件浮點單元(FPU)、內存保護單元(MPU)、高達1MB的FALSH,256KB的SRAM[3];并且內置LCD-TFT控制器,可以加快圖形界面的處理。STM32F429通過FMC并行總線連接外部8MB的SDRAM相連,外部SDRAM主要作為LCD的顯存使用。MAX485模塊通過STM32F429的串口2與之進行數據交互,W5500模塊通過STM32F4的硬件SPI1與之進行數據交互。系統硬件框圖如圖1所示,關鍵模塊的具體敘述如下。
1.1 MAX485模塊
RS-485接口采用差分方式傳輸信號,能有效抑制共模干擾[4],系統采用Maxim公司的MAX485芯片作為RS-485與TTL電平轉化芯片,采用單一5V電源供電,擁有發送接收使能端,使用時將STM32F429IGT6的串口與芯片的RXD和TXD相連;MAX485模塊作為本地數據網絡的數據通信接口,主要負責本地單一節點或多節點數據傳輸,設計采用兩線制的接線方式,這種接線方式為總線式拓撲結構,在同一總線上最多可以掛接32個節點。MAX485電路圖如圖2所示。
1.2 W5500模塊
W5500芯片集成硬件化的TCP/IP協議;內部有32K字節的儲存器作為TX/RX的緩存;支持10/100Mbps的網絡傳輸速率,提供網絡喚醒功能;支持高速的SPI總線與單片機通信;擁有小巧的LQFP48封裝。系統參考其官方文檔的使用電路,采用STM32F429IGT6的SPI1(NSS、SCK、MISO、MOSI)與W5500相連,W5500模塊的中斷腳與STM32的PC2相連,其硬件復位(RESET)管腳與STM32的PC3相連。這樣可是實現單片機對模塊的控制與二者的數據交互。W5500模塊電路圖如圖3所示。
2系統軟件設計
為保證系統的實時性及穩定性,系統以嵌入式實時操作系統?C/OS-III為依托;采用基于ST官方的標準庫及部分硬件驅動,雖然相較于寄存器開發代碼效率更低,但是便于代碼整體的構思以及后期的維護升級;采用keil5集成開發環境作為代碼編寫平臺,移植小型嵌入式文件系統FATFS用于網絡中斷時的外部FLASH文件讀寫操作;為使系統具有更好的交互體驗,移植嵌入式GUI STemWin作為圖形界面開發工具。系統軟件框架圖如圖4所示。
2.1基于?C/OS-III的軟件設計
?C/OS-III是一個可裁剪、可剝奪型的多任務內核,其大部分代碼使用C語言編寫,少部分與硬件有關的代碼使用匯編語言編寫,可移植性好;?C/OS-III的運行至少需要4K的RAM,系統采用的STM32F429IGT6擁有256K的RAM,完全滿足要求。一開始,系統進行硬件初始化,包括系統滴答定時器、GPIO、串口、外部FLASH等,完成后在main函數里面調用OSInit()函數完成操作系統的初始化,然后再完成STemWin顯示任務、W5500數據處理任務、MAX485數據處理任務、系統檢測及數據處理任務的創建,創建成功后調用OSStart()函數啟動任務,然后由操作系統完成各任務之間的調度。由于?C/OS-III為可剝奪型內核,任務存在優先級,在這里設定W5500和MAX485數據處理任務優先級為4,檢測任務優先級為5,顯示任務優先級為20。程序整體流程如圖5所示。
系統采用STemWin來構建圖形界面,包括用戶輸入和運行時間、網絡連接情況外部儲存芯片剩余空間大小等系統信息輸出。該數據中繼按節點數量可分為單一節點透傳模式和多節點組幀傳輸模式。透傳模式下數據從節點輸出,經過RS-485再到數據中繼,再通過以太網到目的地,輸出數據完全一樣并且數據長度不定。組幀(多節點)模式下可以多節點數據傳輸,節點數據位數固定,地址位固定。系統開始需要從屏幕依次輸入網關參數、目的IP地址,本機IP信息等,輸入后選擇為透傳模式還是多節點模式,若是多節點模式,需要輸入節點個數及地址范圍、幀頭幀尾等信息,然后跳轉到主顯示界面,否則直接跳轉。輸入輸出界面流程圖如圖6所示。
3總結
本文基于ARM Cortex-M4內核的STM32F429IGT6微處理器和MAX485、W5500芯片設置了一個使RS-485通信接口和以太網接口數據相互轉化的數據中繼,并且通過使用?C/OS-III操作系統和STemWin圖像界面使系統的穩定性、實時性和用戶交互體驗得到提高,完成了數據轉換及無網絡時的數據儲存的預期目標,可用于某些需要RS-485數據網絡上云端的實際場景。未來可進一步規范通信數據幀結構及減小系統的功耗,使其更適用于工業領域。
參考文獻:
[1] 沈迪,劉光輝,李冀昆,等.電氣化列車RS-485總線應用可靠性研究[J].鐵道機車車輛,2016,36(4):48-50.
[2] 黃大昌,丁力.單片機和硬協議棧的Modbus TCP通信方案[J].單片機與嵌入式系統應用,2016,16(6):17-20.
[3] 穆向陽,楊曉東.實時嵌入式操作系統μC/OS-Ⅲ在STM32F429IGT6上的移植技術和實現[J].電腦知識與技術,2018,14(6):204-205,211.
[4] Jeff Lies.RS-485收發器教程[J].電子技術應用,2015,41(5):15-18.
【通聯編輯:代影】