本文为一种工业现场总线与以太网互联办法,介绍以太网与CAN现场总线之间协议转化网关的规划与完结,选用AT89C55作为主处理器,经过两个接口芯片完结CAN总线与以太网的互连,别离给出其硬件结构和软件规划思维。为企业信息网络与操控网络集成供给一种可行的办法。
1 硬件结构
现在,关于CAN和以太网相连的嵌入式网关规划首要有两种办法:一种是等级低MCU加接口芯片的规划办法,另一种是高级MCU加EOS(实时多任务操作体系)再加接口芯片的规划办法。因CAN只选用了ISO/OSI参阅模型的一、二层,协议相对简略,比较合适用于低本钱、速率要求不高的离散操控体系。从合理的本钱和有用运用处理才能这两方面考虑,该规划选用等级低MCU加接口芯片的办法,其硬件框图见图1。
图1 硬件原理图
1.1 主控芯片及以太网接口模块
依据要求,该体系挑选了功能价格比较高的Atmel公司出产的AT89C55单片机。它是面向测控目标和嵌入式运用的,所以它的体系结构以及CPU、指令体系、外围单元电路都是依照这种要求专门规划的。它内部带高达20 KB的FLASH程序存储器,AT89C55彻底兼容8051指令集,片上FLASH方便了运用者进行在线编程,作业速率最高可达33 MHz,256 B的内部RAM,32个可编程的I/O口,3个16位的守时/计数器,8个中止源,支撑低功耗的闲暇作业形式。以太网接口选用的是RTL8019AS芯片,它是由Realtek公司出产的一种高度集成的以太网操控器,能完结以太网前言拜访层(MAC)和物理层(PHY)的悉数功用。RTL8019AS内部有两个RAM区域:一是16 KB,地址为0x4000~0x7fff,要接纳和发送数据包有必要经过DMA读写RTL8019AS内部的16 KB的RAM,它实际上是双端口RAM,即有两条总线与其衔接,一条总线用于RTL8019AS读/写或写/读该RAM,即本地DMA;另一条总线用于单片机读或写该RAM,即长途DMA;二是32个字节,地址为0x0000~0x001F,用于存储以太网物理地址。主控芯片和以太网接口芯片的硬件接口原理图见图2。值得注意的是因为以太网的包最大能够超越1 500个字节,AT89C55的片内RAM只要256个字节,因而无法存储这么大的包,所以这儿扩展了一个32 KB的外部RAM,这样一起也能进步单片机的数据传输速度。
图2 以太网接口电路原理图
1.2 CAN接口模块
组成CAN体系的首要器材是CAN操控器和收发器。该规划中,CAN接口模块选用SJA1000芯片和PCA82C250芯片。SJA1000是一个独立的CAN操控器,它是Philips公司另一个CAN操控器PCA82C200的代替产品,且增加了一种新的作业形式(Peli CAN),这种形式支撑CAN 2.0B协议。SJA1000首要完结CAN的通讯协议,完结报文的安装和拆分、接纳信息的过滤和校验等。
PCA82C250是CAN操控器与物理总线之间的接口,首要用于增强体系的驱动才能。选用收发器的体系中,节点数至少能够到达110个,一起还具有下降射频搅扰(RFI)和很强的抗电磁搅扰 (EMI)才能。在处理这部分电路时,有几个当地要特别注意:
(1)晶振电路的问题。89C55和SJA1000都应该有各自独立的晶振电路,不能够用SJA1000的时钟输出信号CLKOUT来驱动单片机。
(2)复位引脚的问题。尽管SJA1000的复位是低电平,但不能经过一个非门直接衔接单片机的复位引脚。一般对处理复位引脚问题有两种方法:榜首种是运用单片机的I/O引脚操控SJA的复位引脚,其优点是单片机能够彻底操控SJA的复位进程;第二种是选用恰当的复位芯片,为了下降本钱,该规划采纳的是榜首种办法。
(3)RX1引脚的电位有必要维持在约0.5 VCC上,不然将不能构成CAN协议所要求的逻辑电平。
(4)必定要注意电缆的终端阻抗匹配,它直接影响CAN总线是否能正常作业和网络功能。CAN接口模块的硬件电路图见图3,在PCA82C250的RS脚上接有一个斜率电阻R,可依据总线通讯速度恰当调整电阻的巨细。
图3 CAN接口模块的硬件电路图
2 通讯模块软件规划
2.1 SJA1000驱动程序的完结
SJA1000驱动程序是由SJA的初始化函数、发送函数、接纳函数组成的,图4所示为其流程图。