【全球时快讯】基于KSZ8873的双网口协议转换模块是怎么设计的?

摘要:本文基于Micrel公司推出的3端口10/100M交换芯片KSZ8873,充分利用其价格低廉、配置方便、应用多样等特点,结合PIC32系列单片机,提出并设计出一种RS485/RS232接口转双网口的模块,并且软件实现了将Modbus-RTU协议与Modbus-TCP、IEC104协议的转换。该模块成功应用于光伏并网逆变器中,双网口设计在组网时采用菊花链方式,可节省了布线成本50%以上,同时还具有性能稳定、独立性强、维护方便等优点。

引言


(资料图片仅供参考)

随着工业4.0时代的到来,工业设备的智能化和网络化成为发展趋势,而大量已有设备多采用低速和非智能的RS485总线,人们对工业网络的信息获取要求越来越高,要实现统一、高效和安全的设备管理,就对总线速度提出来高需求,设备IP化和网络化也是必然趋势。

针对新建设备网络和旧设备网络化改造两方面问题,本文提出的双网口转换模块,既可对新设备进行网络化设计,又能对旧设备进行网络化改造。具有低成本、高可靠等优点。

1 硬件设计

1.1 模块原理

如图1所示,模块包含两个子模块,交换子模块和转换子模块。

交换子模块的主要器件为KSZ8873[1],包含了两个对外的RJ45接口(标准网口)和一个对内的RMII接口,其中对外RJ45网口由KSZ8873的两组标准差分总线经网络变压器转换生成,RMII接口由KSZ8873的标准RMII总线[2]转换而来。交换子模块有两个主要功能,一是实现两个对外网口间的数据交换,该过程完全由KSZ8873芯片自动完成,不需要软件参与;二是完成两个对外网口与对内RMII接口间的数据交换,该过程需要与转换子模块配合进行。

转换子模块主要器件有PIC32MX695F512H[4]、MAX485和MAX232芯片,对内的RMII接口由PIC32MX695F512H的RMII接口生成,与交换子模块进行数据通信,对外的RS485和RS232接口由PIC32MX695F512H的两路独立UART接口经MAX485和MAX232芯片转换而来,可以与另一个系统进行数据交互。

1.2 双网口电路

KSZ8873RLLI的电源包括数字电源+3.3V和+1.8V,以及模拟电源+3.3A和+1.8A。使用外部25MHZ有源晶振。复位信号由PIC32单片机控制。芯片工作温度范围-40℃~85℃。

KSZ8873的配置方式有软件和硬件两种。软件配置使用SPI或I2C总线进行,通过对KSZ8873内部寄存器进行读写操作,完成工作模式配置。硬件配置采用芯片上电时读取器件管脚电平来完成,在电路设计时需要根据工作模式预先对管脚进行上下拉操作。

表1给出了网口1、网口2和RMII总线在KSZ8873芯片的管脚分布。网口1和网口2为对外网口。RMII接口与PIC32单片机的RMII接口连接。

1.3 单片机以及外围电路

单片机PIC32MX695F512H主要使用资源包括UART1、UART2和RMII接口。其中UART1和UART2分别经过MAX232和MAX485芯片转换成RS232和RS485接口。RMII接口与KSZ8873的RMII接口连接。该部分电路成熟度高,在此不作赘述。