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

发布者:JoyfulHearted最新更新时间:2012-09-08 来源: autooo 关键字:FPGA  MCU  CAN-VME  总线转换 手机看文章 扫描二维码
随时随地手机看文章

为了扩展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主机。[page]

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的基础上实现相应的电路的连接和软件的设计,成功地完成两种不同总线之间的转换,扩展了两种总线的应用范围

 

关键字:FPGA  MCU  CAN-VME  总线转换 引用地址:基于FPGA和MCU的CAN-VME总线转换设计

上一篇:基于1553B飞机总线系统通讯软件的设计
下一篇:基于CAN总线的自动售货机测试系统

推荐阅读最新更新时间:2024-05-02 22:18

单片机MSP430程序跑飞原因和解决方式积累
1.中断或主函数中有死循环,现象是程序停在某处。 2.堆栈溢出。现象是程序跑飞。 ***************************************************************************** 3、是否开了中断但是没有用。如: 开了中断: TA0CCTL0 = CCIE;// CCR0 interrupt enabled TA0CCTL1 = CCIE;// CCR1 interrupt enabled//时间周期1使能 TA0CCTL2 = CCIE;// CCR2 interrupt enabled//时间周期2使能 TA0CCTL3= CCIE;// CCR3
[单片机]
单片机设计实例:CF卡接口电路与编程实例
  1.本文所述内容就是通过8051单片机对CF卡进行读写。   2.CF卡的操作方式   CF卡的操作方式与计算机的硬盘操作方式类似,其扇区的寻址也有两种方式:物理寻址(CHS)和逻辑寻址(LBA),物理寻址使用柱面、磁头和扇区号表示一个特定的扇区,起始扇区是0道、0头、1区,接下来是2区等等,逻辑寻址将整个CF卡统一寻址。逻辑块寻址和物理寻址的关系为:   LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区数一1   在实际使用过程中,用LBA地址进行寻址,可以大大简化编程的工作量,避免柱面、磁头和扇区之间的换算和切换,并且可以突破CHS对大容量的无法寻址的限制。   3.CF卡的文件管理   CF卡的文件管理系统和硬盘的文
[单片机]
<font color='red'>单片机</font>设计实例:CF卡接口电路与编程实例
51单片机播放音乐程序
给大家分享下51单片机播放音乐简谱的函数库: /********************************************* SOUND PLAY FOR 51MCU COPYRIGHT (c) 2005 BY JJJ. -- ALL RIGHTS RESERVED -- File Name: SoundPlay.h Author: Jiang Jian Jun Created: 2005/5/16 Modified: NO Revision: 1.0 *********************************
[单片机]
MSP430单片机省电方式的两种唤醒方法
1 MSP430省电方式简介 MSP430以其低功耗著称于世,它可以外接2个时钟源——XIN、XT2IN,内部还有1个DC0振荡器,可以产生高达8 MHz的内部时钟。一般XT2IN的频率为高频,按实际应用时的要求来选用;XIN为低频,可以是32 768Hz。XIN的用途主要是在低功耗时使系统保持“活着”。MSP430共有5种省电方式,即LPM0~4。其中, LPM0:CPU、MCLK关闭,SMCLK、ACLK打开,功耗79uA; LPM1:CPU、MCLK、DCO关闭,SMCLK、ACLK打开,功耗4luA; LPM2:CPU、MCLK、SMCLK、DC0关闭,DC产生器、ACLK打开,功耗17uA; LPM3:CPU、M
[单片机]
MSP430<font color='red'>单片机</font>省电方式的两种唤醒方法
单片机C语言基础知识之一
一、宏定义: 1、不带参数: #define 标识符 常量表达式 #define是宏定义命令,宏名(标识符)好习惯用大写 #define NIL 0x80 2、带参数: #define 宏名(参数表) 字符串 不仅要时行字任串替换还要进行参数的替换,在宏定义时,宏名与带参数的括弧之间不应该加空格,否则将空格以后的字符串都作为替代字符串的一部分,这可是很容易出错的。 如:#define SQ(a,b) a*b 使用:x=12;y=10;area=SQ(x,y); 结果:area=12*10=120 二、文件包含: #include 文件名 或#include 文件名 在C51中常用物是尖括弧形式 三、条件
[单片机]
PIC8引脚带A/D的单片机的特点
  PIC 8引脚带A/D的单片机12C6和12CE6系列是Microchip公司生产的一类PIC 8位单片机,其产品型号是12C671/672和12CE673/674,它们是PIC单片机中级型产品之一,其引脚功能如附图所示。   该类产品是一种8引脚带4路8位A/D转换器的超小型产品,是目前性价比极高的8位OTP(一次编程不可擦除)单片机。由于它们体积小巧,所以可嵌入几乎任何一种电子产品中,特别是便携式电子产品,如IC卡、充电器、计时器、智能传感器和儿童玩具等等都已广泛地应用了。   PIC12C6和12CE6系列单片机之间的差别,仅后者产品内部硬件带有E2PROM的数据存储器(16×8),它们的其它性能几乎完全
[单片机]
PIC8引脚带A/D的<font color='red'>单片机</font>的特点
单片机入门者的几点建议
单片机的重要性在后PC时代逐渐加重了,现在更多的电子设计者和爱好者讨论最多的话题莫过于嵌入式系统的设计,C51、VHDL、RTOS、CPLD、FPGA、DSP、ARM已是当今挂在电子工程师嘴边最多的几个词,由于工艺的进步,家庭智能化已不是空中楼阁,其中功能越来越强大、体积越来越小、成本越来越低的MCU出现正是这场革命的推动者。那么,做为一个电子设计者、爱好者以及即将成为电子工程师的在校学生,为了迎接这常革命,或者说为了找到一份自己心仪的工作,我们应该具备哪些知识呢?面对这么多必须的技术,作为一个初学者我们又该从何学起?学好这些东西的代价如何?等等…….,这里就写写我走过的路和一些个人心得,希望对同仁们有所启发。 我的专业是测控技术
[单片机]
如何用STM32单片机蜂鸣器来演奏音乐
本文用STM32单片机蜂鸣器来演奏音乐,用的开发软件是STM32CubeIDE。 蜂鸣器 有源蜂鸣器 内部有震荡源,只要通电就会有响声,但是声音频率固定。 无源蜂鸣器 内部不含振荡源,蜂鸣器管脚输出一定频率的信号,才能发声。 本实例中用到的是无源蜂鸣器,控制频率高低发出不同声调的声音。 电路原理图 由电路原理图可知,蜂鸣器在PB5管脚,以一定频率翻转PB5管脚的电平,可以使蜂鸣器发声。 STM32工程 打开STM32CubeIDE软件,新建STM32工程。关于STM32CubeIDE软件的使用方法,可以参考此文:STM32中PWM的配置与应用详解。 配置时钟。 项目设置。 设置调试模式。 开启PB5管脚。
[单片机]
如何用STM32<font color='red'>单片机</font>蜂鸣器来演奏音乐
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved