新闻中心

EEPW首页>设计应用> 基于KSZ8873的双网口协议转换模块设计

基于KSZ8873的双网口协议转换模块设计

作者:鲁锦锋 何照安 周洪伟 张磊 时间:2015-11-09 来源:电子产品世界 收藏
编者按:本文基于Micrel公司推出的3端口10/100M交换芯片KSZ8873,充分利用其价格低廉、配置方便、应用多样等特点,结合PIC32系列单片机,提出并设计出一种RS485/RS232接口转双网口的模块,并且软件实现了将Modbus-RTU协议与Modbus-TCP、IEC104协议的转换。该模块成功应用于光伏并网逆变器中,双网口设计在组网时采用菊花链方式,可节省了布线成本50%以上,同时还具有性能稳定、独立性强、维护方便等优点。

2 软件设计

本文引用地址://m.amcfsurvey.com/article/281884.htm

2.1 软件架构

  软件按照分层思路设计,有驱动层、适配层和应用层。如图2所示。

  驱动层主要完成与硬件相关的寄存器配置,从硬件寄存器接收数据,传入适配层,或从适配层接收数据,传给硬件寄存器。

  适配层隔离了应用层和驱动层的耦合,实现Modbus-RTU协议、Modbus-TCP[3]和IEC104协议的解析,根据不同协议从应用层获取相关数据,进行格式组帧后,传入驱动层发送,或者从驱动层获取数据帧,按照不同协议解析出有效数据,传入应用层。

  应用层主要完成数据存储和映射功能,把来自于不同协议的数据进行综合,按照一定格式进行存储,并实时刷新。

2.2 软件流程

  软件流程如图3所示。进入主函数后依次进行MCU、驱动层、适配层和应用层的初始化工作,再进入主循环,主循环共包括3个子任务,子任务、子任务和网口子任务。每个子任务主要完成从驱动层接收并解析数据帧,传入应用层;或者从应用层获取实时数据,按照协议进行组帧后,传入驱动层发送。

  为了提高软件执行效率和可靠性,采用时分方式进行子任务调度,调度时间间隔为10ms。系统使用1ms的时钟节拍工作,进入主循环前时间计数器t清零,第10ms调用子任务,第20ms调用子任务,第30ms调用网口子任务,并清零时间计数器t。

3 组网模式

  菊花链式的组网模式可以替代原有总线。再增加一条网线,可以实现环网,起到冗余作用,提高网络的可靠性[5]。 如图4所示。虚线表示增加的网线。

4 结束语

  本文介绍了一种基于芯片的模块,能够实现RS485/总线与网口的物理层转换,再通过软件实现不同总线上不同协议的转换。使用该模块既可以替代现有RS485总线,也可以在新建系统时实现设备网络化工作,并且能够快速实现环网,使得网络更加可靠,低成本和灵活配置也是其主要特点。

参考文献:

  [1]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]王浩, 彭川虎, 王平, 等. 用于数字化变电站的嵌入式环网模块设计[J].电测与仪表,2012,49(12):86-91


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭