返回 科技论文 首页
CAN总线与以太网互连的嵌入式网关设计

  摘要:CAN总线是目前国际上工业控制领域应用最为广泛的现场总线之一,以太网具有传输速度快、可靠性高、使用灵活方便、软硬件资源丰富等优点,把CAN现场总线与以太网互联互连可实现现场控制一体化,可达到提高生产效率的目的。本文提出一种以太网与CAN现场总线之间协议转换网关的设计方案。该网关采用P89V51RC2作为主处理器, 通过以太网接口芯片和CAN总线接口芯片实现CAN总线与以太网的互连,为企业信息网络与控制网络集成提供了一种可行的方法。
  关键词:CAN总线 以太网 互连 网关
  中图分类号:TP336 文献标识码:A 文章编号:1007-9416(2012)07-0123-02
  由于以太网技术的发展和完善,尤其是传输速率的提高和交互技术的发展,以太网以其在传输速度、可靠性、使用灵活、软硬件资源丰富等方面的优势在现场控制领域得到广泛的应用。CAN总线技术是目前自动化控制领域中最具有前景的技术之一,它在分散控制效果、开放性、纠错能力、价格等方面具有很强的优势,将CAN总线与以太网互连可实现现场控制从设备到管理层的一体化,能够提高生产效率、降低生产成本。
  1、硬件结构
  本设计采用了MCU+接口芯片的方法,其硬件框图见图1,系统工作原理为:以太网中发送数据和请求到以太网接口芯片RTL8019AS,RTL8019AS将处理后的以太网帧送入控制器P89V51RC2内部的TCP/IP协议栈,由单片机内部的协议栈对数据报进行解析后得到原始的请求和控制信息,然后送到CAN控制器进行CAN协议格式和数据封装,经过封转后的数据便可以喝现场的CAN总线设备进行通信。回复信息的过程与上面相反。
  1.1 主控芯片及以太网接口模块
  本系统选择性能价格比较高的NXP公司的P89V51RC2单片机,操作频率为0~40MHz,包含32kB Flash,1024字节的内部存储器和64kB的外部数据存储器,同时具有低功耗、在系统编程,多时钟模式等特点,值得一提的是它的X2方式选项。利用该特性可在相同时钟频率下获得2倍的吞吐量,或者时钟频率减半而保持特性不变,这样可以极大地降低电磁干扰(EMI)。P89V51RC2丰富的片上资源非常适合于通信网关、协议转换器的应用。
  以太网接口选用的是Realtek公司生产的全双工即插即用型RTL8019AS芯片,RTL8019AS接口符合Ethernet2和IEEE802.3标准,兼容RTL8019软件和NE2000的传输,芯片是RTL8019内核,内部集成了一个16KB双端口RAM。支持UTP、AUI、BNC、和PNP自动检测模式,主控芯片和以太网接口芯片的硬件接口原理图见图2,系统扩展了一个32K的外部RAM。
  1.2 CAN接口模块
  CAN模块的由CAN控制器SJA1000和收发器CTM1050组成, CAN总线控制器是CAN总线网络的层次结构中数据链路层和物理层的执行者,主要完成CAN的通讯协议,实现报文的装配和拆分、接收信息的过滤和校验等工作。SJA1000是Philips 公司生产的一款高速CAN控制器,其速率最高可达1Mbips,内部扩展有64BitFlF0结构的接收缓冲器,工作温度范围为-40℃~-125 ℃,非常适合工业现场使用。SJA1000有两种工作模式:BasicCAN模式和PeLi CAN模式,其Peli CAN工作模式支持CAN2. 0B 协议。CTM1050是一款带隔离的高速CAN收发器模块,具有CAN-bus总线过电压保护作用,该模块内部集成了所有必需的CAN隔离及CAN收、发器件,模块的主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平,并且具有DC 2500V的隔离功能。采用CTM1050模块可以大大减少CAN-Bus硬件线路的难度,SJA1000的TXO与RXO直接与CTM1050的TXD、RXD相连。
  2、通信模块软件设计
  2.1 SJA1000(图3)
  SJA1000驱动程序是由初始化、发送接收部分组成。
  1.2.1 初始化
  SJA1000在系统上电、硬件复位或主控制器发出复位命令后需要进行初始化,CAN初始化子程序通过对CAN控制器中相应的寄存器写入配置控制字来确定CAN控制器的波特率、发送通道、接收通道、标识符码和标识符屏蔽码等相关信息。进入初始化程序时必须初始化的寄存器有:通用控制寄存器CANGCON、位定时寄存器CANBTl43、以及15个报文对象邮箱中的报文对象控制寄存器CANc0NCH、报文对象状态寄存器CANSTCH、标识符寄存器CANIDTl~4、标识符屏蔽寄存器CANIDMl~4和报文数据寄存器CANMSG等。要注意的是,位定时寄存器CANBTI~3仅能在复位期间访问,因此,在对这些寄存器初始化前,必须确保系统进入复位状态。
  1.2.2 发送与接收
  本设计采用中断方式发送和接收数据,SJA1000芯片有一个报文发送缓冲区和两个报文接收缓冲区用于CAN报文传送,接收子程序负责节点报文的接收,在接收中断处理程序中,先从接收缓冲区读取要接收的报文,然后发送一个请求信号以启动协议转换和发送。发送子程序负责将以太网传输过来的CAN 协议格式的数据发送到CAN 总线上,发送数据程序把数据存储区中待发送的数据取出,组成信息帧送入发送缓冲区,然后启动发送命令。
  2.2 RTL8019AS驱动
  RTL8019AS的驱动程序包含三部分:初始化、接收数据、发送数据。
  RTL8019AS的初始化主要包括设置网卡的物理地址、设置相关工作模式的寄存器、接收缓冲区和发送缓冲区的各自起始地址以及大小、是否开中断等参数等,其流程图见图3所示。
  在本设计中RTL8019AS采用查询方式接收和发送数据包,通过判断对应的标志位来确定是否发送和接收新的数据包。在数据包的发送过程中,单片机只要通过远程DMA写操作,将待发送的数据包写至发送缓冲区,并启动发送过程。在数据包的接收过程中,单片机只要通过远程DMA读操作,从接收缓冲区读取数据即可。
  3、结语
  本文提出了一种低成本、高可靠性、适用于工业控制现场的的CAN总线与以太网互连网关的实现方案,该网关可以与工业现场的仪器、仪表等设备相连接在一起,使工业现场的设备具有网络通讯的能力,大大提高了设备的性价比,从而提供生产效率。
  参考文献
  [1] 阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999.
  [2] REALTEK Scmiconductor Corp.RTL8019AS datasheet[Z].2001.
  [3] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.
  [4] SJA1000独立CAN控制器.http://ww.zlgmcu.com.
  基金项目
  本文受东莞市科技计划高等院校、科研机构科研项目“嵌入式在线电能质量监测系统研究与实现”项目资助,项目编号:201210815100226
  作者简介
  唐志辉(1967.12-),女,湖南邵阳人,东莞理工学院城市学院讲师,主要研究方向:电磁测量技术与通信信号处理。


【相关论文推荐】
  • 基于CAN总线与以太网的嵌入式网关设计
  • 基于嵌入式以太网的CAN总线远程监控系统
  • 基于ENC28J60的嵌入式以太网/CAN网关设计
  • 以太网嵌入式WEB服务器的设计与实现
  • 嵌入式以太网智能接口设计
  • 用于嵌入式控制的以太网
  • 基于单片机和以太网的嵌入式联网模块的设计
  • PowerPC嵌入式系统中的以太网接口设计
  • 基于ARM和LwIP的嵌入式以太网接口设计