您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于ENC28J60嵌入式以太网/CAN网关设计 正文
基于ENC28J60嵌入式以太网/CAN网关设计

基于ENC28J60嵌入式以太网/CAN网关设计

点击数:7789 次   录入时间:03-04 11:54:21   整理:http://www.55dianzi.com   嵌入式系统-技术

  2.1.3 异常处理

  在总线发生严重故障的情况下,CAN节点脱离总线,此时下述寄存器位被置位为CANSR的BS位、CANIR的BEI位和EI位(如果使能)和CAN-MOD的RM位。RM将许多CAN控制器功能复位和禁止。软件下一步必须置零RM位。发送错误计数器将递减计数总线释放条件(11个连续的隐性位)的第128个错误。

  2.2 以太网通信软件设计

  2.2.1 ENC28J60的初始化

  LPC2294。对ENC28J60的各种操作均通过SPI接口进行,包括寄存器的设置、数据的发送和接收。LPC2294的SPI工作在主动方式,即ENC28J60的SPI时钟信号由LPC2294提供。

  2.2.2 TCP/IP协议

  该设计采用嵌入式系统中广泛应用的LwIP协议栈。LwIP TCP/IP实现的特点是在保持协议主要功能的基础上减少对RAM的占用,这使协议栈LwIP适合在低端嵌入式系统中使用。LwIP协议栈应用到的协议有ARP,IP,IcMP,TCP,UDP,其具有滑动窗口、拥塞控制和接收分片的分组功能。在LwIP中可以有多个网络接口,每个网络接口都对应一个strut netif()。netif包含了相应网络接口的属性、收发函数。采取调用netif的方法netif→inpln()及netif→output()进行以太网PACket的收、发等操作。

  2.3 以太网/CAN双向协议转换

  整个设计中最为关键的就是CAN协议与TCP/IP协议的相互转换。协议转换流程图如图6所示。

  其具体过程如下:当网关接收到数据,首先判断数据类型,如果是从CAN接口接收CAN协议报文,便分离出数据部分,再将报文数据部分按系统规定的应用层格式进行封装,然后将应用层数据存入以太网接口发送缓冲区,由该接口在数据前面依次添加TCP或UDP头、IP头、以太帧头,最后封装成以太帧后,通过以太网接口发往以太网。若接收到的以太网数据,数据转换过程相反,依次去掉IP头、TCP或UDP头和应用层头,再将应用层数据按CAN报文格式封装好后存入CAN接口发送缓冲区,由CAN接口发往CAN网络中相应设备。若应用层数据长度大于8 B,则还需将数据以8 B为一组进行拆分。

  3 结 语

  符合IEEE802.3协议的ENC28J60不仅能提供以太网通信的相应功能,而且体积小,能够简化设计,可以设计出较小的嵌入式网关。用上述方法构建的通信网关可实现以太网与CAN总线之间的协议转换,为以太网与CAN总线网络的互联提供了一种传输速度快,成本低,稳定性和安全性高的解决方案。



上一页  [1] [2] 


本文关键字:以太网  嵌入式  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术