基于KSZ8873的雙網口協(xié)議轉換模塊設計
2 軟件設計
本文引用地址:http://www.ex-cimer.com/article/281884.htm2.1 軟件架構
軟件按照分層思路設計,有驅動層、適配層和應用層。如圖2所示。
驅動層主要完成與硬件相關的寄存器配置,從硬件寄存器接收數據,傳入適配層,或從適配層接收數據,傳給硬件寄存器。
適配層隔離了應用層和驅動層的耦合,實現Modbus-RTU協(xié)議、Modbus-TCP[3]和IEC104協(xié)議的解析,根據不同協(xié)議從應用層獲取相關數據,進行格式組幀后,傳入驅動層發(fā)送,或者從驅動層獲取數據幀,按照不同協(xié)議解析出有效數據,傳入應用層。
應用層主要完成數據存儲和映射功能,把來自于不同協(xié)議的數據進行綜合,按照一定格式進行存儲,并實時刷新。
2.2 軟件流程
軟件流程如圖3所示。進入主函數后依次進行MCU、驅動層、適配層和應用層的初始化工作,再進入主循環(huán),主循環(huán)共包括3個子任務,RS232子任務、RS485子任務和網口子任務。每個子任務主要完成從驅動層接收并解析數據幀,傳入應用層;或者從應用層獲取實時數據,按照協(xié)議進行組幀后,傳入驅動層發(fā)送。
為了提高軟件執(zhí)行效率和可靠性,采用時分方式進行子任務調度,調度時間間隔為10ms。系統(tǒng)使用1ms的時鐘節(jié)拍工作,進入主循環(huán)前時間計數器t清零,第10ms調用RS232子任務,第20ms調用RS485子任務,第30ms調用網口子任務,并清零時間計數器t。
3 組網模式
菊花鏈式的組網模式可以替代原有RS485總線。再增加一條網線,可以實現環(huán)網,起到冗余作用,提高網絡的可靠性[5]。 如圖4所示。虛線表示增加的網線。
4 結束語
本文介紹了一種基于KSZ8873芯片的雙網口協(xié)議轉換模塊,能夠實現RS485/RS232總線與網口的物理層轉換,再通過軟件實現不同總線上不同協(xié)議的轉換。使用該模塊既可以替代現有RS485總線,也可以在新建系統(tǒng)時實現設備網絡化工作,并且能夠快速實現環(huán)網,使得網絡更加可靠,低成本和靈活配置也是其主要特點。
參考文獻:
[1]KSZ8873 Datesheet[M].Micrel,INC,2009
[2]RMII Specification[M].National,INC,1998
[3]Modicon Modbus Protocol [M],ABB,INC,2002
[4]PIC32M5XX/6XX/7XX Datesheet[M].Microchip Technology INC,2009
[5]王浩, 彭川虎, 王平, 等. 用于數字化變電站的嵌入式環(huán)網模塊設計[J].電測與儀表,2012,49(12):86-91
評論