关于LPC2378的CAN转以太网网关
引言
现场总线是应用在生产现场、在微机化测量控制设备之间实现双向串行多节点数字通信的系统,也被称为开放式、数字化、多点通信的底层控制网络[1]。现场总线是当今自动化技术发展的热点之一,被誉为自动化领域的计算机局域网。CAN 总线[6]作为现场总线的一种,由于采用了许多新技术及独特的设计,与一般的通信总线相比,CAN 总线的数据通信具有突出的可靠性、实时性和灵活性[4]。
以太网 (Ethernet)作为构筑互连网的一种最普及的局域网技术,具有较好的技术稳定性和传输数据的高效性等特点,此外,以太网还可以方便的与干线网络连接,整个控制系统还能够支持互连网络的远程访问。因此,使用以太网作为工业控制的上层网络有着十分明显的优势[2]。
本文给出了一种基于LPC2378 的CAN 总线和以太网互联的网关设计方案[3],有效解决了底层现场总线与上层控制系统的互联问题。
1 硬件设计
网关主要由微控器模块,以太网接口模块,CAN 接口模块构成。微控器模块主要实现以太网协议和CAN 协议的互相转换,以太网接口模块主要实现以太网数据的发送和接收,CAN 接口模块主要实现CAN 数据的发送和接收。
1.1 微控器选型
本设计采用 Philips 公司的LPC2378 作为主控器,LPC2378 是一款基于ARM7TDMI 内核的32 位微处理器,工作频率高达72MHz,内嵌512kB 的Flash 程序存储器,ARM 局部总线上有32kB 的SRAM,可以进行高性能的CPU 访问,内部集成2 路CAN 控制器和1 个以太网控制器,只要加上CAN 收发器和网络变压器即可组成CAN 转以太网网关,大大简化了电路。
1.2 以太网接口模块
LPC2378 内部集成以太网控制器,支持10M 或100Mbps PHY 器件,与标准802.3 完全兼容,内部含16kB 静态RAM,也可用作通用SRAM,带有分散/集中式DMA 的DMA 管理器以及帧描述符数组,加上网络变压器后通过RJ45 接口与以太网相连。
1.3 CAN 接口模块
LPC2378 内部集成2 路CAN 控制器,在任何一路外面加上CAN 收发器都可以组成CAN接口电路,本设计采用CTM8251 作为CAN 收发器,其主要功能是将CAN 控制器的逻辑电平转换为CAN 总线的差分电平,并具有DC 2500V 隔离功能,省略了传统电路的光电隔离模块,简化了电路,接口速率高达1Mbit/s。
2 软件设计
网关软件设计主要包括以太网模块通信,CAN 模块通信,以太网协议与CAN 协议的相互转换三个部分。
2.1 以太网模块通信
以太网模块通信主要包括以太网控制器的初始化和TCP/IP 协议的嵌入两部分,主程序通过调用以太网模块通信程序驱动以太网控制器。
2.1.1 以太网控制器的初始化
以太网控制器的初始化主要有设置以太网MAC 寄存器,工作模式,定义发送缓冲区的大小,IP 地址、子网掩码。
2.1.2 TCP/IP 协议的嵌入
TCP/IP 协议作为以太网通信协议嵌入到微处理器中[5],其主要作用是管理以太网报文的发送和接收,实现远程主机与网关的通信。
因为本网关主要应用于井下控制系统,对数据的传输实时性要求较高,所以在传输层使用UDP 协议,该协议是一种无连接协议,只把从TCP/IP 应用层中的得到的消息简单分组为数据报,所以一般UDP 的运行速度要比TCP 快40%,适合工业控制系统。
在网络层,设计主要采用了IP 协议作为传输协议,IP 协议是整个TCP/IP 协议的核心,传输层的UDP 协议要以IP 数据报的格式进行传输。
另外,在网络通信中,还需要用到ARP 协议,其功能是根据目标IP 地址查询对应的MAC 地址。
2.2 CAN 模块通信
CAN 模块通信主要包括CAN 模块的初始化,CAN 数据的发送和接收,主程序通过调用CAN 模块通信程序驱动CAN 控制器。
2.2.1 CAN 模块的初始化
CAN 模块的初始化包括复位CAN 控制器,配置CAN 口波特率,初始化CAN 模块中断,设置CAN 验收滤波器工作方式、CAN 控制器的工作模式。
2.2.2 CAN 数据的发送和接收
发送程序负责将以太网传输来的UDP 数据包按照CAN 协议转换后的CAN 报文传输到CAN 总线上。LPC2378 集成2 路CAN 控制器,每个CAN 控制器都有3 个发送缓冲器,发送数据时要查询对应状态寄存器(CAN1SR 或CAN2SR),检查上次发送是否完成,若没完成,则把要发送数据存入发送缓冲区,若完成,则向相应命令寄存器(CAN1CMR 或CAN2CMR)写入发送命令,发送数据。
CAN 控制器采用中断接收数据,若CAN 数据通过滤波器滤波,则触发一个接收中断,在中断程序中将数据从接收缓冲器中存入接收缓冲区,然后通过向相应的命令寄存器(CAN1CMR 或CAN2CMR)写入释放接收缓冲器命令,最后通过转换协议转换为UDP 数据包。
2.3 以太网协议和 CAN 协议转换
网关的核心设计即为协议转换的设计,协议转换的具体过程如下:
当收到的数据为CAN 数据包时,首先添加UDP 报头,再添加IP 报头,最后添加以太网帧头,封装成以太网数据帧,存入以太网缓冲区,最后发送到以太网。过程如图2,3 所示:
当收到的数据为以太网数据包,首先判断数据包中是否含有IP 报文,目的地址是否匹配,是否含UDP 数据报,UDP 数据报端口是否匹配,如果以上条件都满足,则按照UDP封装的反过程来取出数据,即依次去除IP,UDP 报头,再将数据存入CAN 发送缓冲区,最后发送到CAN 总线。转换流程如图4:
3 结束语
基于 LPC2378 的CAN 转以太网网关集成了2 路CAN 控制器和1 路以太网控制器,简化了硬件设计,缩小了产品的体积,成本低廉,采用UDP 协议实时性高,适合煤矿井下控制系统应用。
中国硕士论文网提供大量免费硕士毕业论文,如有业务需求请咨询网站客服人员!
[参考文献] (References)
[1] 丁恩杰、马方清,监控系统与现场总线[M]. 徐州,中国矿业大学出版社,2003.
[2] 陈积明,王智. 工业以太网的研究现状及展望[J]. 化工自动化及仪表,2001,28(6): 1-4,9.
[3] 索明何,邢海霞. 基于ARM 的CAN-以太网转换器的设计[J]. 科技信息,2012,(18): 79-79,81.
[4] 王化南. CAN 总线监测仪表与以太网互联设计[J]. 国内外机电一体化技术,2012,(2):41-42.
[5] 陈雪梅,曾照福. 基于ENC28J60 的嵌入式以太网/CAN 网关设计[J]. 现代电子技术,2012,32(6):24-27.
[6] 李正军,现场总线及其应用技术[M].北京,机械工业出版社2006.1:100-101.
【LPC2378的CAN转以太网网关】相关文章:
CAN与以太网数据交换的研究与分析12-05
论基于CAN总线与以太网互联的实时温度和湿度监控系统的研究与设03-27
短信网关开发设计03-26
蓝牙技术在音频网关中的应用01-07
千兆比以太网与ATM网01-06
CAN智能节点的设计03-19
基于Web服务的短信网关设计03-26
智能化住宅与未来家庭网关03-18