基于虚拟仪器技术的汽车CAN节点测试仪设计

发布者:水云间梦最新更新时间:2014-11-25 来源: 21ic关键字:ARM920T  CAN  虚拟仪器 手机看文章 扫描二维码
随时随地手机看文章

  引 言

  Controller Area Network(控制器局域网,缩写为CAN),是为解决汽车电子控制单元间的信息通信而由德国Bosch公司提出的一种总线标准,以其卓越的性能、极高的可靠性和低廉的价格,现在已经在汽车领域获得广泛应用。为了保证汽车CAN总线节点安全、稳定运转,同时为了提高大批量生产的效率,必须在生产过程中对CAN节点产品进行测试,开发基于CAN总线的汽车CAN节点测试仪显得十分重要。本文通过选择高速处理器和采用虚拟仪器技术保证测试仪的通用性,使其只需通过软件更新便可测试多个CAN节点。

  CAN协议简介

  CAN协议建立在ISO/OSI 7层开放互连参考模型基础之上,为了方便应用,同时保证各节点间无差错的数据传输,仅定义了ISO/OSI模型中最下面的两层:数据链路层和物理层,应用层协议由用户自行定义,也可采用一些国际组织制订的标准协议。

  CAN是一个典型的以半双工方式通信的串行总线结构形式,一个节点发送信息,多个节点接收信息。不同于主从式总线,CAN采用一种称作广播式的存取工作方式,是一种对等式的总线网。在CAN总线的通信协议中,各节点地址没有主/从的概念,也没有任何与节点地址相关的信息存在。信息以报文的形式出现,其数据结构如图1所示。

  图1中的仲裁域用来表明消息的类型和消息的优先级,CAN总线上的节点将根据标识符决定是否需要读取信息包中的数据,从而避免了不必要的节点处理总线上信息的频繁中断,提高了数据传输速率,保证了数据出错率极低。

  系统硬件设计

  测试仪的硬件设计主要包括三部分:处理器及其存储器电路、CAN总线接口电路、RS232接口电路。结构图如图2所示:

  

  处理器采用ATMEL公司基于ARM920T内核的AT91RM9200,该处理器运行频率高达180MHz,可外扩32MB Flash和64MB RAM,使其可以满足大多数汽车CAN节点的测试需求。片上集成了许多标准接口,如USB主/从接口、以太网、RS-232,使其可以简单得与PC机相连,测试数据可以实时地上传到PC机,借助PC机强大的处理性能和丰富的数据处理软件,进行在线监测及数据处理。

  AT91RM9200包括一个高速片上SRAM工作区及一个低等待时间的外部总线接口,以完成应用所要求的片外存储器和内部存储器映射外设配置的无缝连接。外扩存储器包括1片S29GL256N Flash和2片K4S561632A-TC/L80 SDRAM,Flash容量为32MB,SDRAM容量为64MB。

  CAN总线接口电路包括总线控制器和物理层接口两个部分,实现测试仪与被测试CAN节点的CAN总线通信,这是实现测试的前提。CAN总线控制器采用PHILIPS公司的SJA1000,它有着更好的性能和稳定性,支持CAN2.0A/B协议,有两种工作模式:Basic CAN和Peli CAN,可同时支持11位和29位标识码,能挂载更多CAN节点。物理层接口选用TJA1054实现,它可以连接高达32个节点,内建斜率控制功能及CANL和CANH总线输出的良好匹配使电磁辐射EME很低,具有优异的总线故障管理能力,总线故障时自动切换到单线模式,故障修复后自动复位到差分模式,同时提供对电源和地的短路保护功能,特别适合于汽车内部的CAN通讯。

  RS232接口电路即测试仪与PC的通信接口,AT91RM9200内部带有UART控制器,可以方便得与PC机连接,对测试信息进行在线监测,数据存储。

  软件设计

  软件设计包括上位机程序和下位机程序两个部分。上位机程序在NI公司专门针对虚拟仪器开发设计的的Labwindows/CVI平台上开发,包括USB通讯程序和测试程序两个部分。labwindows/CVI包括对众多总线(包括PCI、PCI Express、PXI、PCMCIA、USB、以太网、GPIB、串口和IEEE 1394)的支持,可以方便得开发RS232通讯程序。测试程序包括人机交互界面(即仪器面板)和测试记录两个部分,Labwindows/CVI提供了丰富的控件,可以迅速开发仪器面板,省去了在下位机上开发人机交互界面(主要是指LCD和按键),所开发的仪器面板界面如下图所示:

  下位机程序采用linux作为测试仪的操作系统,采用较新的linux-2.6.13内核,使软件设计模块化,便于移植。软件主要包括通讯程序和测试程序两大部分。通讯程序包括CAN总线通讯程序和USB通讯程序两个部分,本文主要介绍一下CAN通讯程序。

  

  CAN通讯程序包括SJA1000芯片的初始化、接收数据和发送数据。测试仪上电后进行SJA1000的初始化,该操作必须正确可靠,这是接收数据和发送数据的前提。根据SJA1000的手册,设计代码如下:[page]

  writesja1000(MODADDR, 0x09);

  //设置方式寄存器,进入复位操作以初始化

  writesja1000(CDRADDR, 0x88);

  //设置时钟分频寄存器,选PeliCAN模式

  writesja1000(AMR0ADDR, AMR0 );

  //设置接收屏蔽寄存器0

  writesja1000(AMR1ADDR, AMR1);

  //设置接收屏蔽寄存器1

  writesja1000(AMR2ADDR, AMR2);

  //设置接收屏蔽寄存器2

  writesja1000(AMR3ADDR, AMR3);

  //设置接收屏蔽寄存器3

  writesja1000(ACR0ADDR, ACR0);

  //设置接收验收代码寄存器0

  writesja1000(ACR1ADDR, ACR1);

  //设置接收验收代码寄存器1

  writesja1000(ACR2ADDR, ACR2);

  //设置接收验收代码寄存器2

  writesja1000(ACR3ADDR, ACR3);

  //设置接收验收代码寄存器3

  writesja1000(BTR0ADDR, 0x03);

  //设置总线定时器0

  writesja1000(BTR1ADDR, 0xFF);

  //设置总线定时器1

  writesja1000(OCRADDR, 0xAA);

  //设置输出寄存器

  writesja1000(RBSAADDR, 0x00);

  //设置接收数据缓冲区首地址

  writesja1000(TXERRADDR, 0x00);

  //清除发送错误寄存器

  writesja1000(RXERRADDR, 0x00);

  //清除接收错误寄存器

  readsja1000(ECCADDR);

  //清除错误代码捕捉寄存器

  writesja1000(IERADDR, 0xFF);

  //打开中断使能寄存器

  writesja1000(MODADDR, 0x08);

  //设置方式寄存器,进入政党操作模式以收发数据

  writesja1000()和readsja1000()是封装好的底层函数,其具体实现如下:

  static void writesja1000(unsigned char addr, unsigned char data)

  {

  *SJAADDR = addr;

  *SJADATA = data;

  }

  static unsigned char readsja1000(unsigned char addr)

  {

  *SJAADDR = addr;

  return *SJADATA;

  }

  其中SJADATA、SJAADDR分别是为读/写SJA1000的数据或地址所分配的AT91RM9200地址。

  接收数据和发送数据均采用中断来实现,基于中断的数据处理流程是CAN通讯程序的重点,其具体实现流程如图4所示:

  结束语

  与传统的8/16位单片机测试仪系统相比,本文介绍的测试仪基于32位ARM9处理器,运行速度可高达180MHz,扩展能力强;采用Linux操作系统,软件更加模块化,更新和移植更加方便,运行更稳定;采用虚拟仪器技术实现测试仪的操作面板,便于功能扩展,通用性强。在对汽车CAN节点现场测试时,该测试仪运行稳定快速,保证了该产品的顺利生产。

关键字:ARM920T  CAN  虚拟仪器 引用地址:基于虚拟仪器技术的汽车CAN节点测试仪设计

上一篇:基于Linux的嵌入式视觉系统设计方案
下一篇:IAR Systems支持Atmel|Smart MCU和MPU

推荐阅读最新更新时间:2024-03-16 13:47

现场总线iCAN网络在工程机械中的应用实例分析
  CAN总线是国际上应用最广泛的现场总线之一,最初被设计用作汽车电子控制单元(ECU)的串行数据传输网络,现已被广泛应用于欧洲的中高档汽车中。近几年来,由于CAN总线极高的可靠性、实时性,CAN总线开始进入中国各个行业的数据通讯应用,并在2002年被确定为电力通讯产品领域的国家标准。   CAN网络使用普通双绞线做为传输介质,采用直线拓扑结构,单条网络线路可以连接到110个节点。当通讯距离不大于40米时,传输速率可达到1Mbps;当使用5Kbps传输速率(收发器PCA82C250/251支持)时,同一物理网络可达10公里的通讯距离。CAN总线的适用范围包括:可适用于节点数目比较多、传输距离在10公里以内、安全性和可靠性要求高的场合
[嵌入式]
CAN总线在电力远程监测管理系统中的应用
  利用极为普遍的公用电话网实现MODEM远程抄表是目前电力远程监测管理的主要方式之一。常见的MODEM抄表系统是管理中心通过电话网以发散的形式与分散于各台变区域的集中器连接,形成1对N的星型通信网络。由于利用电话线进行通信通常需要较长时间进行握手应答和线路续接,数据点较多时通信效率很低;另外,当集中器数目较多时,租用的电话线也较多,尤其在居民密集的城区,集中器的密度很大,管理中心的电话租借费用将相当高。因此,上述缺点限制了传统的基于电话网的电力远程监测管理系统的推广使用。   为此,笔者开发了一种基于CAN总线的电力远程监测管理系统。该系统打破了传统的一个集中器一部电话的组建模式,而将位置相对集中的多个集中器用CAN总线组成
[嵌入式]
车载网络技术革新-CAN FD浅析
  1.引言   随着电子、半导体、通讯等行业的快速发展,汽车电子智能化的诉求也越来越强,消费者希望驾驶动力性、舒适性、经济性以及娱乐性更强的汽车。汽车制造商为了提高产品竞争力,将越来越多的电子控制系统加入到汽车控制中,例如ESP(Electronic Stability Program,电子稳定程序)、PEPS(Passive Entry Passive Start无钥匙进入和启动系统)等。但是由于CAN总线的最高传输速率为1Mbit/s(通常汽车CAN系统的实际使用速率最高为500kbit/s),ECU(Electronic Control Unit,电子控制单元)的大量增加使总线负载率急剧增大以致造成网络拥堵,影响信息传输的可
[嵌入式]
综合CAN和LIN通信功能的TPMS设计和应用
1 引言  本文通过TPMS在国外某车型上的设计和应用,详细介绍TPMS软硬件设计方法。本方案中综合了CAN、LIN总线的设计,满足了TPMS在实际应用中的整车布线要求,并与整车总线集成,真正实现了TPMS的系统化、智能化。  2 项目需求分析及TPMS系统方案设计  TPMS的设计是一个系统工程,除了产品本身的设计,需要更多关注其应用环境——汽车本身,从TPMS的安装、布线、功能、性能、通信、干扰等方面来分析,从而明确TPMS的设计要求,确定其技术方案。  2.1 TPMS技术需求分析  根据车辆具体环境,对TPMS的特殊技术要求分析如下:  a) 射频信号传输是TPMS系统中的一个关键技术。当轮胎内发射信
[嵌入式]
示波器在汽车行业中的应用 LIN、CAN 和 FlexRay 串行总线调试
Keysight InfiniiVision 2000、3000 和 4000 X 系列示波器提供 CAN 和 LIN 触发与解码以及 CAN 眼图模板测试功能,帮助您更快速地调试汽车串行总线。InfiniiVision 3000 和 4000 X 系列还提供 FlexRay 触发和解码以及 FlexRay 眼图模版测试功能。 为了改善系统通信效率,降低成本,今天所有的汽车设计都采用了大量的串行总线通信协议。I2C 和 SPI 协议最常用于电子控制单元 (ECU) 的芯片间通信。对于各种汽车子系统 (例如舒适性控制系统、防盗锁、传动系统和引擎控制) 之间的长距离串行通信和控制,CAN、LIN 和 FlexRay 协议是当今汽车行业
[测试测量]
示波器在汽车行业中的应用 LIN、<font color='red'>CAN</font> 和 FlexRay 串行总线调试
无触点控制的汽车CAN总线灯光系统研究设计
    随着科学技术的发展,人们对汽车操控性、舒适性以及可靠性要求的越来越高。而传统的汽车电子技术多采用“点对点”的控制方式对汽车中某些部件进行电子控制,过程简单、设备复杂、技术落后,已远不能满足汽车电子技术发展的要求。这就促进了现代的汽车电子技术的进一步发展。目前,汽车电子技术已经向车身整体集成电子化、网络化、智能化和模块化的方向发展,汽车网络总线以及无触点开关控制是汽车电子技术的一个重要发展方向。     现场总线是20世纪80年代中期发展起来的,是当今自动化领域技术发展的主要方向之一,它的出现极大地推动了现代汽车电子技术的发展。控制器局域网(Controller Area Network,CAN)总线属于现场总线中比较典型的
[嵌入式]
Imagination买主露头,竟然又是中国私募Canyon Bridge!
  据外媒报道,此前收购美国莱迪思半导体公司的私募基金Canyon Bridge Capital Partners 正在计划收购  Imagination  公司,目前谈判仍处于早期阶段。下面就随嵌入式小编一起来了解一下相关内容吧。   除了几家英国的半导体厂商之外,Canyon Bridge被认为是潜在的考虑对象。   2016年11月3日,私募企业 Canyon Bridge 以13 亿美元并购美国 FPGA 半导体生产商 Lattice 所有股份。协议规定,并购完成后 Lattice 作为 Canyon Bridge 的子公司独立运营。   目前这一并购案正第三次向美国当局提请审批,Canyon Bridge希望该交易能获
[嵌入式]
μC/OS-II的多任务信息流与CAN总线驱动
摘要:阐述μC/OS-II多任务信息流关键技术与中断处理的一般方法和PC体系中断的基本概念;以CAN总线为例,详细分析在x86实模式下基于μC/OS-II的CAN总线驱动的实现过程。 关键词:μC/OS-II RTOS嵌入式系统 设备驱动 中断处理程序(ISR) 进程调度 μC/OS-II是美国人Jean Labrosse编写的一个免费的、源码公开的嵌入式实时内核。对于开发计算机嵌入式应用产品的技术人员来说是一个实用价值很高的实时嵌入式操作系统ERTOS(Embedded Real Time Operation System)。   要开发出完善的ERTOS,就要在多任务的调度和对I/O设备操作的稳定性、协调性方面做出大
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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