首页 > 范文大全 > 正文

基于FPGA和MCU的CAN-VME总线转换设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于FPGA和MCU的CAN-VME总线转换设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:为了扩展VME总线和CAN总线的应用范围,充分利用两种总线的不同传输特点,采用了模块设计方法,提出一种基于fpgamcu的总线转换方案。该方案给出了FPGA与上位VME总线部分的VME总线接口设计,利用MCU控制CPLD扩展的多通道CAN节点完成CAN总线部分的设计,还给出软件实现上的重点、难点和流程。实现了两种不同总线的转换,满足了工业环境对两种总线混合使用的要求。

关键词:FPGA; MCU; VME总线; CAN总线; 工业环境

中图分类号:TN911-34; TM464 文献标识码:A

文章编号:1004-373X(2011)20-0082-03

Design of can-vme Bus Convertion Based on FPGA and MCU

SUN Dong-liang , LI Chun-ming

(1. College of Electric Power, Inner Mongolia University of Technology, Hohhot 010051, China;

2. College of Information Engineering, Inner Mongolia University of Technology, Hohhot 010051, China)

Abstract: For extending the application field of VME bus and CAN bus in the industry locale, the modular design method is used in the design with the transmision charachteristics of VME bus and the CAN bus. Abus convertion scheme based on the FPGA and MCU is proposed. The method provides the design of VME bus interface based on the FPGA and MCU, which includes the circuit design of FPGA, CAN bus part that is extended by the MCU and CPLD, important points of the software design, and software flow chars. This design fits for the industry occasions where need to mix the VME bus and the CAN bus. The innovative point of this paper is the extending of the CAN points by the CPLD.

Keywords:FPGA; MCU; VME bus; CAN bus; industrial environment

CAN(Controller Area Network控制器局域网)以其高性能、高可靠性以及独特的设计等优点,为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的支持。CAN总线突出的可靠性、实时性和灵活性显示了它突出的优势,成为公认的最有前途的总线标准,广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面[1] 。VME(Versa Module Eurocard) 是┮恢滞ㄓ玫募扑慊总线,结合了Motorola公司Versa总线的电气标准和在欧洲建立的Eurocard标准的机械形状因子,是一种开放式架构。其独特的紧密耦合(Closely coupled)硬件构架,为其系统模块的设计提供了良好的基础,使VME总线广泛地应用于工业控制、军用系统、航空航天、交通运输和医疗领域[2] 。

本文提出了基于FPGA的VME总线和CAN总线之间的传输转换方案,满足一些特殊工业环境的需要,具有一定的研究意义和实用价值。

1 转换系统的硬件设计

该系统由VME总线接口模块、CAN总线节点(8路CAN节点)模块、复杂可编程逻辑器模块、MCU模块4部分核心模块构成。整个系统在一个3U标准的VME板卡上实现,机构紧凑,布局合理。系统的原理框图如图1所示。

图1 系统的原理框图

1.1 VME总线接口模块

整个系统实现是两种通信之间的转换,所以数据的发送都是由上位主机发送的。由于FPGA控制灵活,所以很方便实现与VME总线的连接。文中FPGA器件选用XILINX公司的XC2S200系列的5PQ208,56 Kb专用存储器,最高运行速度200 MHz,I/O电压在3.3~5.5 V,地址总线、数据总线,/AS,/IACKIN,/IACKOUT,SYS CLK等可以直接与5PQ208连接。

1.2 CAN总线节点模块[3]

CAN总线节点模块是该系统中的主要模块,选用Philips公司生产的SJA1000,它负责连接总线与8路CAN选通主控制器CPLD之间的数据通信,其整个系统功能如图2所示。收发器选用P82C251T。CAN接口原理如图3所示。

图2 SJA1000工作原理图

图3 CAN接口原理图

1.3 复杂可编程逻辑器件(CPLD)模块

在系统中,由于FPGA的地址总线和数据总线是分开的,而SJA1000的地址和数据线是分时复用的,所以在总线接口上有一定差异,因此选用MAX3000系列可编程逻辑器件EPM3128来进行逻辑变换。该CPLD芯片有丰富的宏单元,80个用户I/O管脚,管脚间延迟时间是10 ns,最高速度可达100 MHz,能够满足系统设计的需要。

可编程逻辑器件在系统中的功能[4] 为:转换FPGA与CAN控制器SJA1000之间的地址总线和数据总线;通过对FPGA的地址线译码,扩展CAN控制节点的通道。

1.4 MCU处理器

由于CAN总线的最高传输速度是1 Mb/s,所以该部分选取宏晶STC12C5A60S2,FLASH程序存储器为56 KB,SRAM为1 280 B,2个专用的UATR,丰富的CPU资源满足作为下位机的CPU控制单元,主要完成两种总线协议的转换,负责将从FPGA过来的VME总线转换成CAN总线格式,并传输到指定CAN节点;同时也将CPLD选通的CAN通道数据,转换为FPGA能识别的VME总线格式,并在MCU中断主机时,将数据反馈给VME主机。

2 转换系统的软件设计

2.1 软件设计思路

由FPGA构建8个双口RAM[5] ,8路CAN控制器通过这8个双口RAM与上位VME总线主机进行数据通信,RAM口分别映射到VME总线主机内存地址和MCU存储器空间中。

系统数据传输采用MCU中断主机(VME主机)和主机中断MCU两种方式,前者通过触发主机外部中断实现,由双口RAM里面的中断控制来决定的,在触发中断后,提示主机读取CAN控制器接收到的数据以及CAN控制器的工作状态。主机中断MCU方式是通过MCU的外部中断管脚实现的,是由主机写入双口RAM的控制字实现的。触发该中断后,MCU就从主机接收要发送的报文,并发送到相应的CAN节点上,并配合主机配置CAN控制器的控制模式。中断流程如图4,图5所示。

图4 MCU中断主机流程

2.2 FPGA的软件设计[6]

在该系统中,数据都由VME主机控制,所以FPGA构造双口RAM(或者8个区域即可),使VME主机和MCU在RAM中完成数据传输。即主机要发送的数据放入RAM中等待MCU提取,同时MCU发送的数据放入RAM中等待VME主机提取。

2.3 CAN节点软件设计

CAN节点软件是本系统的重点,它包括CAN控制器初始化[7] 、报文发送和报文接收[8] 3个部分。

图5 主机中断MCU流程

初始化主要完成设置工作方式、接收方式、屏蔽寄存器、验收代码寄存器、波特率和中断寄存器,并且要在复位模式下进行初始化。初始化流程如图6所示[9] 。

图6 CAN初始化流程

报文发送就是将的数据按照CAN总线协议的数据格式,组成一帧一帧的报文,送入SJA1000的发送缓冲区,触发SJA1000发送即可;报文接收同理。

2.4 MCU转换程序设计

微控制器程序设计的主要目的是以最快的速度响应中断请求,完成两种总线数据的转换和传输。编程时采用模块化思想,每个模块完成一定的功能[10] 。

编程采用Keil公司的Keil μVision3编程工具,设计分为:初始化系统、使能中断、查询总线,随时准备响应MCU中断主机(VME主机)和主机中断MCU两种中断触发,并且完成VME总线和CAN总线之间的重组和交换,及时将转换后的信息相应地传送给VME主机或者发送到CAN节点上。流程如图7所示。

3 测试分析

测试过程由VME总线端和CAN总线端互相发送数据包。其中,测试了5组由VME总线发送到CAN总线的数据包;5组由CAN总线发送到VME总线的数据包,记录如表1所示。

由表1测试结果所示,该系统中CAN总线节点都设置在1 Mb/s的速率下,系统可以准确地接受和发送数据包。系统正确率之所以会随通信速度的提高而提高,主要原因在于系统在不同的通信速度时,数据包发送频率、发送的最小延时间隔都不相同。如果需要进一步的提升数据发送的正确率,需要系统在硬件设计和PCB板制作上分别努力, 才能保证尽可能小的干扰,尽可能大的提高系统的稳定性和抗干扰性。

4 结 语

该系统充分利用了VME总线和CAN总线的优点,在FPGA和MCU的基础上实现相应的电路的连接和软件的设计,成功地完成两种不同总线之间的转换,扩展了两种总线的应用范围。

参考文献

[1]刘宏达,胥令辉.基于CAN总线的适配卡设计\.自动化技术与应用,2003,22(5):42-44.

[2]汪小燕,王峻峰.VME总线数据上行中断传输及从设备接口设计\.微电子学与计算机,2007,24(3):207-209.

[3]李国洪,吴静臻.基于C8051的CAN_USB转换接口设计\.制造业自动化,2008,30(3):70-74.

[4]王敏,吴顺君.VME总线桥控制器主模块和从模块的设计\.系统工程与电子技术,2004,26(7):954-958.

[5]盛艳荣,谷建华.基于VME的多处理机通信技术研究\.计算机工程与设计,2008,29(15):3904-3906.

[6]张永伟,张松柏.基于VME系统的CAN 网络智能节点的设计\.舰船电子对抗,2008,31(3):91-94.

[7]肖波,杨福宝.基于DSP的CAN转USB接口设计及实现\.武汉理工大学学报,2007,29(12):99-102.

[8] 杨春杰,王曙光.CAN总线技术\.北京:北京航空航天大学出版社,2010.

[9]杨晔,曲波.基于ARM9的USB与多通道CAN转换器的设计\.电子技术应用,2010(2):131-133.

[10]裴岩,刘利民.单片机系统综合设计与实践\.呼和浩特:内蒙古大学出版社,2003.

作者简介: 孙栋梁 男,1985年出生,硕士研究生。