基于FPGA的VME总线和CAN总线之间的传输转换方案设计

为了扩展vme总线和can总线的应用范围,充分利用两种总线的不同传输特点,采用了模块设计方法,提出一种基于fpga和mcu的总线转换方案。该方案给出了fpga与上位vme总线部分的vme总线接口设计,利用mcu控制cpld扩展的多通道can节点完成can总线部分的设计,还给出软件实现上的重点、难点和流程。实现了两种不同总线的转换,满足了工业环境对两种总线混合使用的要求。
can(controller area network控制器局域网)以其高性能、高可靠性以及独特的设计等优点,为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的支持。can总线突出的可靠性、实时性和灵活性显示了它突出的优势,成为公认的最有前途的总线标准,广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。vme(versa module eurocard)是一种通用的计算机总线,结合了motorola公司versa总线的电气标准和在欧洲建立的eurocard标准的机械形状因子,是一种开放式架构。其独特的紧密耦合(closely coupled)硬件构架,为其外围系统模块的设计提供了良好的基础,使vme总线广泛地应用于工业控制、军用系统、航空航天、交通运输和医疗领域。
本文提出了基于fpga的vme总线和can总线之间的传输转换方案,满足一些特殊工业环境的需要,具有一定的研究意义和实用价值。
1 转换系统的硬件设计 该系统由vme总线接口模块、can总线节点(8路can节点)模块、复杂可编程逻辑器模块、mcu模块4部分核心模块构成。整个系统在一个3u标准的vme板卡上实现,机构紧凑,布局合理。系统的原理框图如图1所示。
1.1 vme总线接口模块
整个系统实现是两种通信之间的转换,所以数据的发送都是由上位主机发送的。由于fpga控制灵活,所以很方便实现与vme总线的连接。文中fpga器件选用xilinx公司的xc2s200系列的5pq208,56kb专用存储器,最高运行速度200mhz,i/o电压在3.3~5.5v,地址总线、数据总线,/as,/iackin,/iackout,sys clk等可以直接与5pq208连接。
1.2 can总线节点模块
can总线节点模块是该系统中的主要模块,选用philips公司生产的sja1000,它负责连接总线与8路can选通主控制器cpld之间的数据通信,其整个系统功能如图2所示。收发器选用p82c251t。can接口原理如图3所示。
1.3 复杂可编程逻辑器件(cpld)模块
在系统中,由于fpga的地址总线和数据总线是分开的,而sja1000的地址和数据线是分时复用的,所以在总线接口上有一定差异,因此选用max3000系列可编程逻辑器件epm3128来进行逻辑变换。该cpld芯片有丰富的宏单元,80个用户i/o管脚,管脚间延迟时间是10ns,最高速度可达100mhz,能够满足系统设计的需要。可编程逻辑器件在系统中的功能为:转换fpga与can控制器sja1000之间的地址总线和数据总线;通过对fpga的地址线译码,扩展can控制节点的通道。
1.4 mcu处理器
由于can总线的最高传输速度是1mb/s,所以该部分选取宏晶stc12c5a60s2,flash程序存储器为56kb。sram为1280b,2个专用的uatr,丰富的cpu资源满足作为下位机的cpu控制单元,主要完成两种总线协议的转换,负责将从fpga过来的vme总线转换成can总线格式,并传输到指定can节点;同时也将cpld选通的can通道数据,转换为fpga能识别的vme总线格式,并在mcu中断主机时,将数据反馈给vme主机。
2 转换系统的软件设计 2.1 软件设计思路
由fpga构建8个双口ram,8路can控制器通过这8个双口ram与上位vme总线主机进行数据通信,ram口分别映射到vme总线主机内存地址和mcu存储器空间中。系统数据传输采用mcu中断主机(vme主机)和主机中断mcu两种方式,前者通过触发主机外部中断实现,由双口ram里面的中断控制来决定的,在触发中断后,提示主机读取can控制器接收到的数据以及can控制器的工作状态。主机中断mcu方式是通过mcu的外部中断管脚实现的,是由主机写入双口ram的控制字实现的。触发该中断后,mcu就从主机接收要发送的报文,并发送到相应的can节点上,并配合主机配置can控制器的控制模式。中断流程如图4,图5所示。
2.2 fpga的软件设计
在该系统中,数据都由vme主机控制,所以fpga构造双口ram(或者8个区域即可),使vme主机和mcu在ram中完成数据传输。即主机要发送的数据放入ram中等待mcu提取,同时mcu发送的数据放入ram中等待vme主机提取。
2.3 can节点软件设计
can节点软件是本系统的重点,它包括can控制器初始化、报文发送和报文接收3个部分。初始化主要完成设置工作方式、接收方式、屏蔽寄存器、验收代码寄存器、波特率和中断寄存器,并且要在复位模式下进行初始化。初始化流程如图6所示。
报文发送就是将代发的数据按照can总线协议的数据格式,组成一帧一帧的报文,送入sja1000的发送缓冲区,触发sja1000发送即可;报文接收同理。
2.4 mcu转换程序设计
微控制器程序设计的主要目的是以最快的速度响应中断请求,完成两种总线数据的转换和传输。编程时采用模块化思想,每个模块完成一定的功能。编程采用keil公司的keil μvision3编程工具,设计分为:初始化系统、使能中断、查询总线,随时准备响应mcu中断主机(vme主机)和主机中断mcu两种中断触发,并且完成vme总线和can总线之间的重组和交换,及时将转换后的信息相应地传送给vme主机或者发送到can节点上。流程如图7所示。
3 测试分析 测试过程由vme总线端和can总线端互相发送数据包。其中,测试了5组由vme总线发送到can总线的数据包;5组由can总线发送到vme总线的数据包,记录如表1所示。由表1测试结果所示,该系统中can总线节点都设置在1mb/s的速率下,系统可以准确地接受和发送数据包。系统正确率之所以会随通信速度的提高而提高,主要原因在于系统在不同的通信速度时,数据包发送频率、发送的最小延时间隔都不相同。如果需要进一步的提升数据发送的正确率,需要系统在硬件设计和pcb板制作上分别努力,才能保证尽可能小的干扰,尽可能大的提高系统的稳定性和抗干扰性。
4 结语 该系统充分利用了vme总线和can总线的优点,在fpga和mcu的基础上实现相应的电路的连接和软件的设计,成功地完成两种不同总线之间的转换,扩展了两种总线的应用范围。

超声波电鱼器怎么用
蚀刻机和光刻机的区别
5G就是高速传输通道,速度更快了连接更稳定了
淘宝天猫工业品打造“超级工厂”,为企业提供数字化解决方案
交流毫伏表的设计与制作,Millivoltmeter
基于FPGA的VME总线和CAN总线之间的传输转换方案设计
smt行业的pcb应该如何来设计
曝2990WX处理器可超频至5.3GHz,但是功耗竟破千
选智能手表还是智能手环
pcb设计中的串扰—两传输线相邻太近
锂电池过充机理及防过充措施
农药超标检测仪的性能介绍
使用精密模拟MCU外设创建高价值、信号密集型设计
苹果计划在年底前发布其新款iPad:推出脸部识别功能
Power Integrations发布可设定恒压/恒流及恒功率输出特性的离线反激式开关电源IC
RTX在分布式实时仿真系统中的应用
emc问题是什么意思?EMC三大规律和产生EMC问题三要素解读
罗技MXVertical鼠标手怎么样 值不值得买
兼容多种运算核心 HSA架构提高处理器能源效率
DeepMind方案:基于深度神经网络