一种CAN总线—PROFIBUS-DP总线网关的实现方法
在80年代中期,为了满足不同自动化领域的应用需求,出现了拥有不同技术特点的现场总线。每一种现场总线都有自己的应用领域,并且都力图拓展其应用领域,以扩张其技术垄断范围。但每种现场总线都以一个或几个大型跨国公司为背景,公司的利益与总线的发展息息相关。这些公司竞争的结果是多种总线协调共存。据不完全统计,目前国际上有200多种现场总线,而其中占据市场主流的现场总线有十几种[1]。现场总线的多样性,为总线设备用户提供了更多产品选择的同时,也为总线用户带了总线设备间兼容性问题。工厂在扩建,改建等过程中很可能会选用与原先现场设备总线标准不同的产品,这些设备由于使用不同的现场总线,彼此间不能实现数据共享,于是就降低了设备间功能互补的优点。因此针对多种总线共存的客观事实,探讨如何解决不同现场总线系统的互联有着重要的现实意义。本文主要研究PROFIBUS-DP[2]与CAN[3]两种总线的协议转换的原理,并设计出了一种网关实现了这两种总线的互联。
2 方案设计
对于两个异构的现场总线,其数据链路层和应用层协议是截然不同的,要实现它们的互联,需要采用网关进行协议转换。协议转换在网关内是按分层逐次进行的。网关将现场总线设备1发送来的数据在不同的协议层次进行解包,最终得到报文中的用户数据。然后再按照现场总线协议2逐层打包,然后发送到现场总线2中的设备。
网关(gateway)是用于实现数据链路层以上层的网络互联设备,它相当于一个协议转换器,可以是双向的,也可以是单向的,用来连接不同协议的网络。它不像网桥一样要求数据链路层和应用层的协议完全一致。
通常见到的现场总线网关是单CPU结构的,在这种结构里,CPU要完成两种总线信息的传输与控制,同时还要完成两种总线协议的转换工作,该方案CPU负担较重,控制复杂,软件采用多重嵌套。这里提出了一种基于双CPU结构的网关设计方法,系统中的两个CPU对两种总线协议的数据各自进行处理与控制,并将需要传递的信息放在双口RAM内,实现信息共享与传递,这种方案容易控制,软件简单,同时减轻了CPU的负担,增强了可靠性。
3 系统的硬件设计
系统的硬件根据功能可分为三大部分,一是CAN总线接口电路,完成CAN总线的数据收发与控制;二是PROFIBUS-DP总线接口电路,完成PROFIBUS总线数据的收发与控制;三是双口RAM接口电路,用来完成两种总线数据的交换。
3.1 CAN总线接口硬件结构
CAN总线接口的整体硬件结构如图1。电路主要由四部分所构成,微控制器89C52(1),独立CAN通信控制器SJA1000,CAN总线收发器82C250和高速光电耦合器6N137。
89C52(1)负责SJA1000 的初始化,通过控制SJA1000 实现数据的接收和发送等通信任务,同时还负责与PROFIBUS总线接口侧的的数据交换,选择89C52(1)作为CPU的主要是因为它不仅与CAN控制芯片SJA1000兼容,而且内部集成8k flash RAM,可以满足系统的存储要求,不需要再外扩程序存储器。
SJA1000为CAN总线控制器。它是一种独立CAN 控制器,是PHILIPS公司的CA82C200 CAN控制器的替代产品,它在软件和引脚上都保持了与PCA82C200的兼容。它具有BasicCAN和PeliCAN两种工作方式,其中 BasicCAN是与PCA82C200兼容的方式;PeliCAN是扩展特性方式,支持具有很多新特性的CAN 2.0B协议。SJA1000的主要新功能有:标准结构和扩展结构报文的接收和发送;64 字节的接收FIFO;标准和扩展帧格式都具有单/双接收滤波器含接收屏蔽和接收码寄存器;可进行读/写访问的错误计数器;可编程的错误报警限制;最近一次的错误代码寄存器;每一个CAN 总线错误都可以产生错误中断;具有丢失仲裁定位功能的丢失仲裁中断;单发方式当发生错误或丢失仲裁时不重发;只听方式监听CAN 总线无应答无错误标志;支持热插拔无干扰软件驱动位速率检测;硬件禁止CLKOUT输出。 SJA1000的AD0-AD7连接到89C52(1)的P0口,CS 连接到89C52(1)的P2.7, P2.7为0的CPU片外存贮器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读写操作SJA1000的RD,WR,ALE 分别与89C52的对应引脚相连。
为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RX0并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连,这样就很好的实现了总线上各CAN节点间的电气隔离,其中光耦部分电路所采用的两个电源VCC和VDD完全隔离。另外82C 250与 CAN总线的接口部分也采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5Ω的电阻与CAN总线相连电阻可起到一定的限流作用,保护82C250免受过流的冲
CAN总线 PROFIBUS-DP 总线网关 相关文章:
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)