论文部分内容阅读
摘要:本文基于Micrel公司推出的3端口10/100M交换芯片K528873,充分利用其价格低廉、配置方便、应用多样等特点,结合PIC32系列单片机,提出并设计出一种RS485/RS232接口转双网口的模块,并且软件实现了将Modbus-RTU协议与Modbus-TCP、IEC104协议的转换。该模块成功应用于光伏并网逆变器中,双网口设计在组网时采用菊花链方式,可节省了布线成本50%以上,同时还具有性能稳定、独立性强、维护方便等优点。本文网络版地址:http://www.eepw.com.cn/article/281884.htm
关键词:KS28873;单片机;双网口;RS485;RS232;协议转换
DOI:10.3969/j.issn.1005-5517.2015.10.008
基金项目:国家高新技术研究发展863计划(2011AA05A305)
鲁锦锋(1983-),男,硕士,中级工程师,研究方向:网络通信。
引言
随着工业4.0时代的到来,工业设备的智能化和网络化成为发展趋势,而大量已有设备多采用低速和非智能的RS485总线,人们对工业网络的信息获取要求越来越高,要实现统一、高效和安全的设备管理,就对总线速度提出来高需求,设备IP化和网络化也是必然趋势。
针对新建设备网络和旧设备网络化改造两方面问题,本文提出的双网口转换模块,既可对新设备进行网络化设计,又能对旧设备进行网络化改造。具有低成本、高可靠等优点。
1.硬件设计
1.1模块原理
如图1所示,模块包含两个子模块,交换子模块和转换子模块。
交换子模块的主要器件为KS28873[1],包含了两个对外的RJ45接口(标准网口)和一个对内的RMII接口,其中对外RJ45网口由KS28873的两组标准差分总线经网络变压器转换生成,RMII接口由KS28873的标准RMII总线[2]转换而来。交换子模块有两个主要功能,一是实现两个对外网口间的数据交换,该过程完全由KS28873芯片自动完成,不需要软件参与;二是完成两个对外网口与对内RMH接口间的数据交换,该过程需要与转换子模块配合进行。
转换子模块主要器件有PIC32MX695F512H[4]、MAX485和MAX232芯片,对内的RMII接口由PIC32MX695F512H的RMII接口生成,与交换子模块进行数据通信,对外的RS485和RS232接口由PIC32MX695F512H的两路独立UART接口经MAX48560MAX232芯片转换而来,可以与另一个系统进行数据交互。
1.2双网口电路
KS28873RLLI的电源包括数字电源+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所示。
驱动层主要完成与硬件相关的寄存器配置,从硬件寄存器接收数据,传入适配层,或从适配层接收数据,传给硬件寄存器。
适配层隔离了应用层和驱动层的耦合,实现Modbus-RTU协议、Modbus-TCP[3]和IEC104协议的解析,根据不同协议从应用层获取相关数据,进行格式组帧后,传入驱动层发送,或者从驱动层获取数据帧,按照不同协议解析出有效数据,传入应用层。
应用层主要完成数据存储和映射功能,把来自于不同协议的数据进行综合,按照一定格式进行存储,并实时刷新。
2.2软件流程
软件流程如图3所示。进入主函数后依次进行MCU、驱动层、适配层和应用层的初始化工作,再进入主循环,主循环共包括3个子任务,RS232子任务、RS485子任务和网口子任务。每个子任务主要完成从驱动层接收并解析数据帧,传入应用层;或者从应用层获取实时数据,按照协议进行组帧后,传入驱动层发送。
为了提高软件执行效率和可靠性,采用时分方式进行子任务调度,调度时间间隔为10ms。系统使用1ms的时钟节拍工作,进入主循环前时间计数器t清零,第10ms调用RS232子任务,第20ms调用RS485子任务,第30ms调用网口子任务,并清零时间计数器t。
3.组网模式
菊花链式的组网模式可以替代原有RS485总线。再增加一条网线,可以实现环网,起到冗余作用,提高网络的可靠性[5]。如图4所示。虚线表示增加的网线。
4.结束语
本文介绍了一种基于KS28873芯片的双网口协议转换模块,能够实现RS485/RS232总线与网口的物理层转换,再通过软件实现不同总线上不同协议的转换。使用该模块既可以替代现有RS485总线,也可以在新建系统时实现设备网络化工作,并且能够快速实现环网,使得网络更加可靠,低成本和灵活配置也是其主要特点。
参考文献:
[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]王浩,彭川虎,王平,等用于数字化变电站的嵌入式环网模块设计[J].电测与仪表,2012,49(12):86-91
关键词:KS28873;单片机;双网口;RS485;RS232;协议转换
DOI:10.3969/j.issn.1005-5517.2015.10.008
基金项目:国家高新技术研究发展863计划(2011AA05A305)
鲁锦锋(1983-),男,硕士,中级工程师,研究方向:网络通信。
引言
随着工业4.0时代的到来,工业设备的智能化和网络化成为发展趋势,而大量已有设备多采用低速和非智能的RS485总线,人们对工业网络的信息获取要求越来越高,要实现统一、高效和安全的设备管理,就对总线速度提出来高需求,设备IP化和网络化也是必然趋势。
针对新建设备网络和旧设备网络化改造两方面问题,本文提出的双网口转换模块,既可对新设备进行网络化设计,又能对旧设备进行网络化改造。具有低成本、高可靠等优点。
1.硬件设计
1.1模块原理
如图1所示,模块包含两个子模块,交换子模块和转换子模块。
交换子模块的主要器件为KS28873[1],包含了两个对外的RJ45接口(标准网口)和一个对内的RMII接口,其中对外RJ45网口由KS28873的两组标准差分总线经网络变压器转换生成,RMII接口由KS28873的标准RMII总线[2]转换而来。交换子模块有两个主要功能,一是实现两个对外网口间的数据交换,该过程完全由KS28873芯片自动完成,不需要软件参与;二是完成两个对外网口与对内RMH接口间的数据交换,该过程需要与转换子模块配合进行。
转换子模块主要器件有PIC32MX695F512H[4]、MAX485和MAX232芯片,对内的RMII接口由PIC32MX695F512H的RMII接口生成,与交换子模块进行数据通信,对外的RS485和RS232接口由PIC32MX695F512H的两路独立UART接口经MAX48560MAX232芯片转换而来,可以与另一个系统进行数据交互。
1.2双网口电路
KS28873RLLI的电源包括数字电源+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所示。
驱动层主要完成与硬件相关的寄存器配置,从硬件寄存器接收数据,传入适配层,或从适配层接收数据,传给硬件寄存器。
适配层隔离了应用层和驱动层的耦合,实现Modbus-RTU协议、Modbus-TCP[3]和IEC104协议的解析,根据不同协议从应用层获取相关数据,进行格式组帧后,传入驱动层发送,或者从驱动层获取数据帧,按照不同协议解析出有效数据,传入应用层。
应用层主要完成数据存储和映射功能,把来自于不同协议的数据进行综合,按照一定格式进行存储,并实时刷新。
2.2软件流程
软件流程如图3所示。进入主函数后依次进行MCU、驱动层、适配层和应用层的初始化工作,再进入主循环,主循环共包括3个子任务,RS232子任务、RS485子任务和网口子任务。每个子任务主要完成从驱动层接收并解析数据帧,传入应用层;或者从应用层获取实时数据,按照协议进行组帧后,传入驱动层发送。
为了提高软件执行效率和可靠性,采用时分方式进行子任务调度,调度时间间隔为10ms。系统使用1ms的时钟节拍工作,进入主循环前时间计数器t清零,第10ms调用RS232子任务,第20ms调用RS485子任务,第30ms调用网口子任务,并清零时间计数器t。
3.组网模式
菊花链式的组网模式可以替代原有RS485总线。再增加一条网线,可以实现环网,起到冗余作用,提高网络的可靠性[5]。如图4所示。虚线表示增加的网线。
4.结束语
本文介绍了一种基于KS28873芯片的双网口协议转换模块,能够实现RS485/RS232总线与网口的物理层转换,再通过软件实现不同总线上不同协议的转换。使用该模块既可以替代现有RS485总线,也可以在新建系统时实现设备网络化工作,并且能够快速实现环网,使得网络更加可靠,低成本和灵活配置也是其主要特点。
参考文献:
[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]王浩,彭川虎,王平,等用于数字化变电站的嵌入式环网模块设计[J].电测与仪表,2012,49(12):86-91