- UID
- 872339
|
摘要 为满足以太网与CAN总线网络的互联,设计了一种以LPC2294为控制芯片,嵌入式μC/OS—II为操作系统的网关模块,实现了以太网协议与CAN总线协议的相互转换。给出了网关模块的软硬件设计,重点阐述了网关模块使用的自定义UDP报文结构,该报文结构可提供更多的管理信息,有利于网络的管理测试表明设计的网关模块具有一定的实用性和可靠性。
关键词 CAN;以太网;协议转换;嵌入式
控制器局域网(Controller Area Network,CAN)最先由德国BOSCH公司开发,并成为一种国际标准(IS011898)。由于CAN总线具有灵活、可靠、实时、开放性好、纠错能力强等优点,成为目前最有前途的现场总线之一。但任何事物都具有两面性,CAN总线也有不足之处,由于其收发器驱动能力有限,导致总线上可连接的最大节点数和最远直接传输距离受到了限制,无法进行远程控制,这给系统组网带来了一定的制约条件。相较而言,以太网凭借着成本低、易于组网、拥有众多应用软硬件的支持且根据网络需求的实际情况,不断地进行完善和改进,并逐步发展了标准以太网(10 Mbit/s)、快速以太网(100 Mbit/s)千兆以太网和万兆以太网等,成为目前应用最为广泛的局域网络技术。若将以太网与CAN总线互联,可降低成本,增加系统的最大CAN节点数,扩大系统的组网范围,还可实现不同传输速度的现场总线子网的相互通信,及其设备层到管理层的一体化。所以,文中提出一种以太网与CAN总线互联的通信网关设计方案。
1 硬件设计
图1所示为本网关模块设计与实现的整体方案框图,网关模块使用LPC2294作为主控制器,μC/OS—II操作系统为平台,扩展了两个网卡接口和CAN接口,并通过软件设计完成CAN总线协议与以太网协议相互转换,最终实现CAN网络与以太网之间的双冗余通信。
硬件电路可划分为5个部分:控制电路、存储电路、辅助电路、以太网接口电路和CAN总线接口电路。下面主要对控制电路、以太网接口电路和CAN总线接口电路进行分析。
1.1 系统控制器
系统选用ARM处理器LPC2294作为控制芯片,主要是LPC2294具有超强的功能、功耗低及丰富的片上资源,更重要的是集成了4个支持CAN 2.0B协议的CAN控制器,并带有先进的验收滤波器,提供了系统的集成度和复杂度,还提供了系统的稳定性。为满足系统的程序和数据存储需要,外扩了1 MB的16位Flash芯片SST39VF16 0,用于存储程序代码。其中Flash的地址线A1~A20连接至LPC2294的A1~A20,数据线ED0~ED15通过一个双电源供电的双向收发器连接至LPC2294的DQ0~DQ15,CE#接至LPC2294的CS0,将其分配到Bank0单元,其地址范围0x8000 0000~0x8000 1000。OE#、OW#分别连接至LC2294的OE#和WE#。同时外接了1 MB的16位SRAM存储器IS61LV25616AL,用于堆栈和数据的存储。其中SRAM的地址线A1~A20连接至LPC2294的A0~A19,数据线IO0~IO15通过一个双电源供电的双向收发器连接至LPC2294的D0~D15,CE#接至LPC 2294的CS1,将其分配到Bank1单元,该地址范围0x8100 0030~0x8100 1000。LB#、UB分别与BLS0、BLS1相连,用于控制8位或16位读写数据。OE#、OW#分别连接至LC2294的OE#和WE#。
1.2 CAN接口电路设计
系统有两个CAN接口,其中一个是主接口,另一个是冗余接口,均接入同一个CAN网络,其目的是增加系统的可靠性。CAN2.0B控制器由LPC2294直接集成,无需外加独立的CAN控制器,且LPC2294中集成了4个CAN控制器,在此系统中选用第1个和第2个CAN接口。CAN收发器选用了CAT8250T,主要作用是将CAN控制器的逻辑电平转换为CAN总线的差分电平,但与常用的CAN收发器TJA1050T不同的是该CAN收发器将CAN节点的收发与高速光耦、电源隔离集成在一个电路模块中,且隔离电压高达DC2 500 V,接口简单、使用方便,并对CAN总线有过电压保护作用。同时还要在CANH和CANL与地之间并联一个120 Ω的电阻,来匹配传输阻抗,吸收总线回波,确保有较低的电磁辐射和通信可靠性。
1.3 以太网接口电路设计
系统由DM9000E以太网控制器,HR601860网卡变压器,及RJ45接口,组成以太网接口电路。同样选用了两个网口电路,一个是主网口,另一个是冗余网口。其中,LPC2294使用16位总线方式对DM9000E进行控制,并使其工作在100 MHz全双工模式下。对两个网口的选用,是通过LPC2294的CS3、A22引脚来控制主网口的片选信号,即这两个引脚与74AC32的引脚1和2相连,而引脚3连接主网口的ANE引脚。同理将LPC2294的CS3、A23,经74AC32与冗余网口的ANE引脚相连。再将DM9000E的CMD引脚与LPC2294的A2连接。可将主网和冗余网卡芯片的数据端口地址与索引端口地址分别配置成0x8380000、0x83800004和0x83400000、0x83400004。DM9000E的物理层发送和接收端口TXO+、TXO-、RXI+、RXI-经网络变压器芯片HR601680接到RJ45接口。对于DM9000E的其余引脚可根据Datasheet中的说明,按要求连接即可,如图2所示。
最终,对DM9000E芯片进行驱动。该芯片的驱动主要由3部分完成:void InitNic()用以对芯片进行初始化,配置片内寄存器等;void Send_P-acket(struct_pkst*TxdData)为数据发送程序,uint8 Rec_Packet(uint8 num)为数据接收程序,上层协议通过调用这两个函数来发送以太网数据帧。 |
|