




摘要:本文基于Micrel公司推出的3端口10/100M交換芯片K528873,充分利用其價格低廉、配置方便、應用多樣等特點,結合PIC32系列單片機,提出并設計出一種RS485/RS232接口轉雙網口的模塊,并且軟件實現(xiàn)了將Modbus-RTU協(xié)議與Modbus-TCP、IEC104協(xié)議的轉換。該模塊成功應用于光伏并網逆變器中,雙網口設計在組網時采用菊花鏈方式,可節(jié)省了布線成本50%以上,同時還具有性能穩(wěn)定、獨立性強、維護方便等優(yōu)點。本文網絡版地址:http://www.eepw.com.cn/article/281884.htm
關鍵詞:KS28873;單片機;雙網口;RS485;RS232;協(xié)議轉換
DOI:10.3969/j.issn.1005-5517.2015.10.008
基金項目:國家高新技術研究發(fā)展863計劃(2011AA05A305)
魯錦鋒(1983-),男,碩士,中級工程師,研究方向:網絡通信。
引言
隨著工業(yè)4.0時代的到來,工業(yè)設備的智能化和網絡化成為發(fā)展趨勢,而大量已有設備多采用低速和非智能的RS485總線,人們對工業(yè)網絡的信息獲取要求越來越高,要實現(xiàn)統(tǒng)一、高效和安全的設備管理,就對總線速度提出來高需求,設備IP化和網絡化也是必然趨勢。
針對新建設備網絡和舊設備網絡化改造兩方面問題,本文提出的雙網口轉換模塊,既可對新設備進行網絡化設計,又能對舊設備進行網絡化改造。具有低成本、高可靠等優(yōu)點。
1.硬件設計
1.1模塊原理
如圖1所示,模塊包含兩個子模塊,交換子模塊和轉換子模塊。
交換子模塊的主要器件為KS28873[1],包含了兩個對外的RJ45接口(標準網口)和一個對內的RMII接口,其中對外RJ45網口由KS28873的兩組標準差分總線經網絡變壓器轉換生成,RMII接口由KS28873的標準RMII總線[2]轉換而來。交換子模塊有兩個主要功能,一是實現(xiàn)兩個對外網口間的數(shù)據交換,該過程完全由KS28873芯片自動完成,不需要軟件參與;二是完成兩個對外網口與對內RMH接口間的數(shù)據交換,該過程需要與轉換子模塊配合進行。
轉換子模塊主要器件有PIC32MX695F512H[4]、MAX485和MAX232芯片,對內的RMII接口由PIC32MX695F512H的RMII接口生成,與交換子模塊進行數(shù)據通信,對外的RS485和RS232接口由PIC32MX695F512H的兩路獨立UART接口經MAX48560MAX232芯片轉換而來,可以與另一個系統(tǒng)進行數(shù)據交互。
1.2雙網口電路
KS28873RLLI的電源包括數(shù)字電源+3.3V和+1.8V,以及模擬電源+3.3A和+1.8A。使用外部25MHZ有源晶振。復位信號由PIC32單片機控制。芯片工作溫度范圍-40℃~85℃。
KS28873的配置方式有軟件和硬件兩種。軟件配置使用SPI或I2C總線進行,通過對KS28873內部寄存器進行讀寫操作,完成工作模式配置。硬件配置采用芯片上電時讀取器件管腳電平來完成,在電路設計時需要根據工作模式預先對管腳進行上下拉操作。
表1給出了網口1、網口2和RMII總線在KS28873芯片的管腳分布。網口1和網口2為對外網口。RMII接口與PIC32單片機的RMII接口連接。
1.3單片機以及外圍電路
單片機PIC32MX695F512H主要使用資源包括UART1、UART2和RMH接口。其中UART1和UART2分別經過MAX232和MAX485芯片轉換成RS232和RS485接口。RMII接口與KS28873的RMII接口連接。該部分電路成熟度高,在此不作贅述。
2.軟件設計
2.1軟件架構
軟件按照分層思路設計,有驅動層、適配層和應用層。如圖2所示。
驅動層主要完成與硬件相關的寄存器配置,從硬件寄存器接收數(shù)據,傳入適配層,或從適配層接收數(shù)據,傳給硬件寄存器。
適配層隔離了應用層和驅動層的耦合,實現(xiàn)Modbus-RTU協(xié)議、Modbus-TCP[3]和IEC104協(xié)議的解析,根據不同協(xié)議從應用層獲取相關數(shù)據,進行格式組幀后,傳入驅動層發(fā)送,或者從驅動層獲取數(shù)據幀,按照不同協(xié)議解析出有效數(shù)據,傳入應用層。
應用層主要完成數(shù)據存儲和映射功能,把來自于不同協(xié)議的數(shù)據進行綜合,按照一定格式進行存儲,并實時刷新。
2.2軟件流程
軟件流程如圖3所示。進入主函數(shù)后依次進行MCU、驅動層、適配層和應用層的初始化工作,再進入主循環(huán),主循環(huán)共包括3個子任務,RS232子任務、RS485子任務和網口子任務。每個子任務主要完成從驅動層接收并解析數(shù)據幀,傳入應用層;或者從應用層獲取實時數(shù)據,按照協(xié)議進行組幀后,傳入驅動層發(fā)送。
為了提高軟件執(zhí)行效率和可靠性,采用時分方式進行子任務調度,調度時間間隔為10ms。系統(tǒng)使用1ms的時鐘節(jié)拍工作,進入主循環(huán)前時間計數(shù)器t清零,第10ms調用RS232子任務,第20ms調用RS485子任務,第30ms調用網口子任務,并清零時間計數(shù)器t。
3.組網模式
菊花鏈式的組網模式可以替代原有RS485總線。再增加一條網線,可以實現(xiàn)環(huán)網,起到冗余作用,提高網絡的可靠性[5]。如圖4所示。虛線表示增加的網線。
4.結束語
本文介紹了一種基于KS28873芯片的雙網口協(xié)議轉換模塊,能夠實現(xiàn)RS485/RS232總線與網口的物理層轉換,再通過軟件實現(xiàn)不同總線上不同協(xié)議的轉換。使用該模塊既可以替代現(xiàn)有RS485總線,也可以在新建系統(tǒng)時實現(xiàn)設備網絡化工作,并且能夠快速實現(xiàn)環(huán)網,使得網絡更加可靠,低成本和靈活配置也是其主要特點。
參考文獻:
[1]KS28873 Datesheet [M].MicreI,INC,2009
[2]RMII Specification [M].NationaI,INC,1998
[3]Modicon Modbus Protocol [M],ABB,INC,2002
[4]PIC32M5XX/6XX/7XX Datesheet[M].Microchip Technology INC,2009
[5]王浩,彭川虎,王平,等用于數(shù)字化變電站的嵌入式環(huán)網模塊設計[J].電測與儀表,2012,49(12):86-91