摘要 为满意以太网与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)为数据接纳程序,上层协议经过调用这两个函数来发送以太网数据帧。