微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Ethernet 的冗余CAN 总线协议转换器设计

基于Ethernet 的冗余CAN 总线协议转换器设计

时间:07-31 来源:互联网 点击:

licon Labs 公司的CP2200 作为以太网控制器,采用HanRun 公司的内部集成以太网隔离变压器.指示灯和RJ45 插座的HR911175A 与以太网接口.CP2200 是Silicon Labs 公司推出的一款主流的8 位总线控制的以太网驱动芯片,其外围电路非常简单,集成了IEEE 802. 3 以太网媒体访问控制器( MAC ).10 BASE – T 物理层(PHY) ,完全兼容100/1000 BASE-T 网络,具有自动极性检测和纠正功能,可以自适应地工作在全双工或半双工模式,具有接收数据包中断和网络唤醒中断功能.CP2200 内部带有2K 字节的专用发送缓冲RAM和4KB 接收FIFO 缓冲RAM ,同时还具有8K 字节的内部非易失性Flash 存储器,用于存储用户常数.Web服务器内容,它的最后6 个存储单元是工厂预编程的唯一48 位MAC 地址 ,不需外部EEPROM .此芯片8 位并行总线接口支持Intel 和Motorola 总线方式,可以为具有11 个以上端口I/ O 引脚的主处理器或微处理器增加以太网通信功能,可以使用复用或非复用方式寻址,在非复用模式下数据传输率超过30Mbps,可以直接连接LED 表示网络“连接”.“活动”状态.

  在电路中CP2200 采用数据地址复用模式,晶体频率为20M,CP2200 的TX.RX 引脚连接到RJ45 插座的收发针脚,同时将信号LINK.ACK 也连接到后者的LED 控制针脚上,详细电路原理图见图3.

  1. 4 EEPROM 接口电路

  该电路的作用是实现CAN 总线初始化参数的写入与读取功能, 设计中选用了512KB 的EEPROM24C512 芯片.详细电路原理图见图4.

  1. 5 POE 电路

  以太网供电电路分别采用TI 公司的电源管理器芯片TPS 2383 和电源接口芯片TPS 2370,这2 款芯片完全符合以太网供电标准IEEE 802. 3af,利用这2 款芯片即可通过1 条标准的以太网线缆就实现同时传输电能和数据.

  2 软件设计

  本设计的软件主要分为三部分: CAN-以太网协议转换程序.CAN 通信程序和以太网通信程序.软件整体的设计思路为:当CAN 总线节点设备需要向以太网发送数据时,首先通过CAN 通信程序读取CAN 总线节点设备产生的CAN 协议数据包,并将其存储在CAN 总线接口发送缓冲区中,然后调用CAN-以太网协议转换程序将CAN 协议数据包解析并重新封装成TCP 或UDP 数据包,最后调用以太网通信程序将数据发送到以太网;要将数据通过以太网发送给一个CAN节点设备时,首先通过调用以太网通信程序将以太网传输层上的TCP 或UDP 数据包存储到以太网接口的发送缓冲区,然后调用以太网-CAN 协议转换程序将TCP 或UDP 数据包解析并封装成CAN 协议数据包,之后再调用CAN 通信程序将CAN 接口发送缓冲区中的数据发送到CAN 总线上的指定节点.

  2. 1 CAN 通信程序

  CAN 通信程序主要包括以下几部分:SJA1000 初始化程序.读写SJA1000 内部寄存器程序.CAN 数据发送程序.CAN 数据接收程序.CAN 总线冗余控制程序.

  SJA1000 的初始化程序主要作用是设定总线上所有节点的地址.所有总线上节点设备的波特率.设置控制器的工作模式.设置中断寄存器.命令寄存器等相关的芯片寄存器 .CAN 数据发送程序的功能是当发送CAN 协议数据包给节点设备时,调用CAN 数据发送程序,通过将数据写入SJA1000 的数据发送寄存器中来实现数据发送.CAN 数据接收程序的功能是当SJA1000 接收到数据时,向单片机发出中断请求,单片机响应中断后调用CAN 数据接收程序读取SJA1000的内部寄存器程序,将其数据接收缓冲区中接收到的数据读取到单片机的相应存储空间内.

CAN 总线冗余控制程序的基本设计思路为:在上电初始化时同时激活两个总线控制器的中断,在节点设备向上位机发送数据的情况下,单片机通过两路CAN 总线向上位机发送相同内容的数据来实现冗余效果.在节点设备接收通信数据的情况下,当两个总线控制器同时接收到来自上位机的报文时,将分别通过不同的中断端口向单片机发出中断请求,单片机在响应先到达的中断请求信号后进入中断服务程序关闭中断,并在对数据进行处理完成后,清除中断并在一段延时后再打开所有中断,这样就可以屏蔽后到的另一个CAN 控制器中断信号.如果一路CAN 总线接口电路出现故障,那么它就不会产生中断信号,单片机只能接收到另一路正常CAN 总线控制器的中断信号,从而通过正常的CAN 总线接收数据,这样就可以实现双通道冗余的目的;在节点设备与上位机之间完成数据发送和接收后,节点设备会通过两路CAN 总线以每秒1次的频率交替向上位机发送“心跳”信号,并接收上位机回传的响应信息,如果一路CAN 总线状态异常,不能正常发送“心跳”信号,则节点设备的单片机就不会收到响应信息,从而无法对错误计数器进行清零,当错误计数器

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top