多通道实时CAN总线模拟器设计

发布者:心怀感恩最新更新时间:2011-06-06 关键字:多通道  CAN总线模拟器 手机看文章 扫描二维码
随时随地手机看文章
    CAN总线与一般的串行通信总线相比,它的数据通信具有可靠性高,实时性高,灵活性强等优点,不仅广泛应用于汽车行业,而且扩展到了机械工业、机器人、数控机床等诸多领域。尤其在大量数据通信处理中,高可靠性及实时响应的场合,单通道CAN总线不能满足实际通信的要求。为此,介绍一种基于多通道实时CAN模拟器的设计方案。

1 CAN总线技术介绍   

1.1 CAN总线特性   

CAN(Controller Area BOSCH公司为汽车的监测、控制系统而设计的。由于CAN总线具有卓越的特性和极高的可靠性,特别适合于工业过程中监控设备的互连,具体来说,CAN具有如下特性:   

(1)CAN可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活;   

(2)CAN可以点对点、点对多点(成组)及全局广播方式传送接收数据;   

(3)CAN网络上的节点信息可分成不同的优先级,可以满足不同的实时要求;   

(4)CAN采用非破坏性总线仲载技术。当两个节点是向网络上发送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可以不受影响地继续传输数据,大大节省了总线仲载冲突时间,在网络负载很重的情况下也不会出现网络瘫痪;   

(5)CAN的直接通信距离最大可达10 km(速率小于5 Kb/s),最高通信速率可达1 Mb/s。

1.2 CAN通信协议   

在CAN 2.0B的版本协议中有两种不同的帧格式,不同之处为标识符域的长度不同,含有11位标识符的帧称为标准帧,而含有29位标识符的帧称为扩展帧。扩展格式是CAN 2.0B协议新增加的特性。在报文传输时,不同的帧具有不同的传输结构,只有严格按照该结构进行帧的传输,才能被节点正确接收和发送。下面将分别介绍四种传输帧的结构:   

(1)数据帧(Data):数据帧将数据从发送器传输到接收器。CAN协议有两种数据帧类型标准2.0A和标准2.0B。两者本质的不同在于ID的长度不同。在2.0A类型中,ID的长度为11位;在2.0B类型中,ID的长度为29位。它由7个域组成:帧起始、仲裁域、控制域、数据域、CRC校验码域、应答域、帧结束。

(2)远程帧(Remote):总线单元发出远程帧,请求发送具有同一标识符的数据帧。接收数据的节点可通过发远程帧请求源节点发送数据。它由6个域组成:帧起始、仲裁域、控制域、校验域、应答域、帧结束。

(3)错误帧(Error):任何单元检测到总线错误就发出错误帧。由错误标志和错误分界两个域组成。接收节点发现总线上的报文有误时,将自动发出“活动错误标志”,其他节点检测到活动错误标志后发送“错误认可标志”。

(4)过载帧(Overload):过载帧用在相邻数据帧或远程帧之间提供附加的延时。由超载标志和超载分隔符组成。超载帧只能在一个帧结束后开始。当接收方在接收下一帧之前,需要过多的时间处理当前的数据,或在帧间空隙域检测到显性电平时,则导致发送超载帧。

1.3 CAN协议控制器   

目前主流的CAN协议控制器一般采用I/O总线(SJA1000等)或SPI接口(M(2P2515等)与处理器进行通信。该设计采用SJA1000控制器。

SJA1000是一款独立CAN控制器,应用于移动目标和工业局域网控制领域。SJA1000具有两种工作模式:BasicCAN和PeliCAN。该设计采用PeliCAN工作模式。SJA1000用来完成CAN协议所规定的物理层和数据链路层的所有功能,它可以支持多种处理器的时序特性,如Intel模式或Motorola模式,与微处理器的接口非常简单,微处理器以访问外部存储器的方式来访问SJA1000

SJA1000通过CAN控制器接口即PCA82C250芯片接到CAN总线上。CAN收发器使用飞利浦公司的PCA82C250,它是连接CAN控制器和物理总线之间的接口,提供了对总线的差动发动和接收能力,与ISO11898标准完全兼容,有三种不同的工作方式即高速、斜率控制和待机,可根据实际情况选择。硬件电路中使用PCA82C250是为了增加通信距离,提高系统的瞬间抗干扰能力,保护总线,降低干扰等。

2 系统设计   

2.1 系统方案设计   

根据通用计算机的总线分类,可采用基于ISA总线对多通道实时CAN总线模拟器进行研制,根据CAN总线通信原理可以提出以下两种设计方案:   

(1)ISA总线+CAN通信控制器;   

(2)ISA总线+微处理器+CAN通信控制器。这两种设计方案的不同点在于是否采用处理器来加强控制。

由于CAN总线通信要求实时性高,再加上多通道的设计满足实际的需要,故采用单片机来负责CAN总线的通信功能。在这里主要介绍单片机与CAN控制器之间的设计部分,其系统设计框图如图1所示。

单片机选用DALLAS公司的DS89C430,它是当前8051兼容微控制器中性能最高的。具有重新设计的处理器内核,在相同的晶振频率下,执行指令的速度是最初8051微处理器的12倍。特性:高速8051架构,每个机器周期一个时钟;片内存储器16 KB/32 KB/64 KB闪存,在应用可编程,通过串口实现在系统可编程;与8051引脚和指令集兼容;四路双向、8位I/O端口;三个16位定时器/计数器;256 B暂存RAM等特点。可根据实际应用的需要选择其部分功能。随着可编程逻辑器件的飞速发展,其应用领域不断扩大,可用于译码、解码等方面,使用CPLD可以提高系统集成度,降低噪声,增强系统可靠性。因此,单片机与CAN控制器之间的锁存、译码采用Xilinx公司XC95144CPLD芯片,优化了系统资源,降低了其功耗。

2.2 系统硬件设计   

该部分由单片机、CAN控制器、CAN收发器、SRAM存储器组成。单片机主要用于系统计算及信息处理等功能;CAN控制器主要用于系统通信;CAN收发器主要用于增强系统的驱动能力;SRAM主要用于缓存数据。系统的发送过程是:单片机将外围设备传送过来的信息处理后,按CAN规范规定的格式,将其写入CAN控制器的发送缓冲区,并启动发送命令,把数据发送到CAN总线上;接收过程是:CAN控制器从CAN总线上自动接收数据,并经过滤后存入CAN接收缓冲区,且向单片机发出中断请求,此时单片机可从CAN接收缓冲区读取要接收的数据。SJA1000提供的微处理器接口方式为典型INTEL或MOTOROLA-p.htm" target="_blank" title="MOTOROLA货源和PDF资料">MOTOROLA

地址数据多路复用总线模式。主要信号有地址数据信号AD7~AD0,地址选通信号ALE,片选信号CS,读信号RD,写信号WR,模式选择信号MODE。当MODE=1时,为INTEL模式;当MODE=0时,为MOTOROLA-p.htm" target="_blank" title="MOTOROLA货源和PDF资料">MOTOROLA模式。后面描述的总线模式均为INTEL模式。AD7~AD0引脚在ALE有效时,传送的是地址信号,在RD或WR有效时,传输的是数据信号,在这里分别与单片机的PO口相连,RD,WR信号线分别与单片机的读/写信号线相连。具体方案如图2所示。限于篇幅限制,虚线内给出1路CAN的连接图,2路CAN有同样的连接方法。

SRAM和CAN控制器的片选信号。由于单片机可以查询或中断方式访问,在此采用中断方式进行CAN多通道选择访问,以满足不同通信速率下数据处理的需要。SRAM的地址线与数据线是分开的,故采用74LS373锁存器实现锁存功能。可采用XC95144CPLD芯片以及VHDL硬件描述语言以实现锁存、译码等功能。

2.3 CPLD设计部分   

2.3.1 结构设计   

CPLD的输入信号是单片机发送的信号,由高位地址A[15..8]、ALE锁存信号、中断信号以及写/读信号组成。地址线A14和A15经译码后作为片选信号,ALE实现低8位地址线的锁存。实体和构造体部分代码如下所示:

2.3.2 仿真结果   

该模块在Xilinx ISE 9.1工具下进行综合,并在结合ModelSim环境下进行功能仿真。其仿真结果如图3所示。

3 软件设计   

该系统软件设计的关键是通信程序设计。通信软件由三部分组成:单片机和CAN控制器的初始化程序、CAN发送程序、CAN接收程序。对于初始化程序,采用MAX232芯片对单片机进行在线编程,可同时对多通道CAN控制器初始化。对于CAN控制器的初始化程序,主要是通过对CAN控制器控制段中的寄存器写入控制字,从而确定CAN控制器的工作方式等,即通过上电复位、硬件复位或软件复位给CAN控制器发一个复位请求,便可进入初始化。在复位期间,对必需的寄存器进行设置。对于发送和接受程序,只需把到来的信息帧送到CAN的发送或接受缓冲区,同时启动命令即可。二者可采用查询方式或中断方式,对于中断方式,程序分为主程序和中断服务程序两部分设计。在具体项目中,需要软硬件结合调试才能保证各部分的设计准确无误,到达实际应用的要求。

4 结 语   

在对CAN通信协议进行分析的基础上,构建了一种多通道实时CAN总线模拟器架构,同时利用CPLD器件,通过功能仿真,验证了设计方案的正确性。经实际工程项目使用,验证了该设计方案切实可行,满足了实际应用中高可靠性、高实时性以及传输速率较高的需求。

关键字:多通道  CAN总线模拟器 引用地址:多通道实时CAN总线模拟器设计

上一篇:Bus总线布线时如何做到等长
下一篇:基于PROFIBUS-DP现场总线的恒温控制系统

推荐阅读最新更新时间:2024-05-02 21:25

基于FPGA控制VGA显示的多通道数字示波器的设计
摘要:为了实现对0~1 MHz的信号进行测量以及显示的目的,制作了基于SOPC技术的VGA显示数字存储示波器。采用硬件与软件相配合的设计方法,主要模块有基于FPGA的最小系统模块、信号调理电路模块、AD采样模块、触发电路模块、VGA显示模块、4×4矩阵键盘模块和RAM存储以及FLASH存储模块。具有模拟信号可进行任意电平触发、数字信号可使用上升沿和下降沿触发、存储回放、垂直灵敏度档位设置、扫描速度档位设置、VGA显示多个界面等特点。通过波形测量实验,得到较好的显示波形。 关键词:FPGA;数字示波器;A/D采样;VGA显示 随着信息技术的发展,对信号的测量技术要求越来越高,示波器的使用越来越广泛。模拟示波器使用前需要进行校正
[嵌入式]
基于FPGA控制VGA显示的<font color='red'>多通道</font>数字示波器的设计
多通道ADC使工业4.0的机器状态监测成为可能
Teledyne e2v的多功能产品EV10AQ190A已被证明是评估视频图像系统运行状况的数据采集卡的关键器件。 “使用单个ADC产品实现多种配置的能力是无价的。” 施达科先生, Teledyne e2v. 工厂需要有效的方法和流程保证设备不会由于关键器件的失效或老化引起性能下降或发生故障,以减降低停工的风险。这样,工厂可以保持产能最大化,产品质量也得到了保证。过去,人们通常采用所谓的保养制度,定期检查设备,成本高而且耗时长。 如今我们步入了工业4.0/IoT时代,关键的运行数据更容易被获取,也出现了能更有效评估复杂系统健康状况的的方法。机器状态监测(MCM)的出现为工业生产/制造的公司提供了极大的便利,它可实时提
[物联网]
<font color='red'>多通道</font>ADC使工业4.0的机器状态监测成为可能
探索汽车电动座椅中多通道栅极驱动器的优势
除非体验过宇宙飞船,否则汽车电动座椅可能是您体验过的最复杂的座椅。它比飞机座椅的调节选项更多,比牙科诊所的就诊椅更加舒适 – 汽车电动座椅提供了奢华的舒适度、便利性和安全性。 无论您是上下前后移动座椅,还是调整腰托,电机都能轻松完成这些操作。除了易于移动的优势之外,功能强大的汽车电动座椅还具有其他优势。例如,风扇和加热器等座椅内功能,甚至可通过降低车内整个温度系统的电力负荷来增大车辆的续航里程。 电动座椅设计趋势 鉴于汽车电动座椅具有多个选件,制造商正在寻找驱动多个电机的方法。设计人员过去常常使用继电器来开关电机电源,但继电器由多个微小的机械部件组成,且转速能力有限。由于继电器存在这些缺点,并且在每次开关时都会发出噪声
[汽车电子]
探索汽车电动座椅中<font color='red'>多通道</font>栅极驱动器的优势
Maxim推出多通道电源管理器
      Maxim推出PMBus™兼容的系统管理控制器IC MAX34440/MAX34441,器件具有业内最完备企业级设备故障记录和热管理功能。MAX34440具有六路电源管理通道,支持排序、电压监测、闭环裕量调节和电流监测等功能。MAX34441具有五路电源管理通道和一路先进的闭环风扇控制通道。这两款器件能够在网络交换机和路由器、基站、服务器以及高可靠性工业和医疗等复杂系统中实现可预测的电源工作、提高系统性能和能效。       MAX34440/MAX34441集成电源管理器,可监测电源输出电压,并不断与用户可编程的过压和欠压门限进行比对。电源管理器还可对输出电压进行上、下裕量调节,以达到用户的设定值。裕量调节
[电源管理]
Maxim推出<font color='red'>多通道</font>电源管理器
多通道频率检测技术的FPGA实现
0 引言 在数字接收机的各种参数中,频率是最重要的参数之一,它能反映接收机的功能和用途、以及频谱宽度等重要指标。传统的顺序测频技术一般通过对接收机频带的扫描,对频域进行连续取样。该方法原理简单,技术成熟,但是,其频率截获概率与分辨力的矛盾难以解决,无法实现全概率信号截获。而多信道化的频率检测技术属于瞬时测频,其架构是采用多个频率窗口(多个信道彼此衔接相邻)来覆盖接收机的整个频段,这样,当信号进入任一个窗口时,该窗口的频率值即可被检测出。因此,该方法可解决频率截获概率与频率分辨力的矛盾,同时也为实现全概率频率捕获提供了一种参考方案。 1 多信道模型 当一个实信号经过A/D采样之后,再进行正交下变频处理,即可得到I、Q两路相位正
[测试测量]
<font color='red'>多通道</font>频率检测技术的FPGA实现
基于PCI总线模块的多通道串行数据采集系统设计
      目前市面上有多种数据采集卡,但其应用都具有一定的局限性,不可能完全满足用户的需求。本文介绍的数据采集卡可应用于某视频图像采集系统中,数据源发送多路同步串行数据,然后经过数据采集卡传入上位机用以进行后续分析。上位机向外写控制字并转换后以异步串行方式输出。用以控制视频图像的采集。本系统将PCI接口逻辑和其他用户逻辑集成于一片FPGA中,因而大大节省了资源,便于进行串口扩展及其他功能的添加,性能良好,用途广泛。   1 PCI总线   PCI总线是一种高性能的局部总线,具有32位可升级到64位的、独立于CPU的总线结构。工作频率为33/66 MHz,最高传送速度可达132 MB/s(32位、33 MHz)或528 M
[嵌入式]
多通道故障信号的采集处理及实现
    摘要: 鉴于故障特征信号的多样性,对机械设备需测取不同的信号进行分析,以提高诊断的合理性。为此我们用面向对象的方法实现了多通道信号的数据采集,并编制了多种处理算法,提高了信号的信噪比。     关键词: 采集  面向对象  预处理  故障诊断     机械设备故障诊断涉及的面很广,单从选用的特征信号来看就有很多种。每种信号有各自的特点,有不同的应用场合;而每一种故障又可能表现出若干特征,故障信息可能包含在几种特征信号之中。因此,对于一个复杂的机械系统往往需要测取不同的信号然后进行综合分析,以提高诊断的可靠性。在实际中,往往通过多路传感器综合测试,并通过多路A/D转换送入计算机从而把所需的包含故障主要
[应用]
STM32 ADC多通道转换详解
  STM32ADC多通道转换描述:用ADC连续采集11路模拟信号,并由DMA传输到内存。ADC配置为扫描并且连续转换模式,ADC的时钟配置为12MHZ。在每次转换结束后,由DMA循环将转换的数据传输到内存中。ADC可以连续采集N次求平均值。最后通过串口传输出最后转换的结果。   程序如下:   #include“stm32f10x.h”//这个头文件包括STM32F10x所有外围寄存器、位、内存映射的定义   #include“eval.h”//头文件(包括串口、按键、LED的函数声明)   #include“SystickDelay.h”   #include“UART_INTERFACE.h”   #include  
[单片机]
STM32 ADC<font color='red'>多通道</font>转换详解
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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