EDN首页   博客首页

6

关于投票
基于CAN总线的嵌入式测试系统

基于CAN总线的嵌入式测试系统

内蒙古科技大学信息工程学院李胜玉 刘涛 武志超

摘 要:本文给出了一种基于CAN总线的高速嵌入式测试系统的设计方案及其软硬件的实现方法,对32位汽车专用芯片Mac7112中的FlexCAN模块及CAN口收发芯片TLE6250的特性和用法作了简要的介绍。

关键词:FlexCAN、嵌入式测试系统(ETS)、TLE6250

引言

测试是系统开发过程中十分重要的一个步骤,是保证产品质量的有效手段之一,本文介绍了一种实时、高效、稳定的测试软件的设计,通过CAN总线实现下位机与上位机的连结,CAN总线是一种多主方式的串行通讯总线,具有较高的传输速率,优良的抗电磁干扰性,支持差分收发,适合高噪声环境,可实现较远的距离的传输的优点。

1 硬件设计

  测试系统的硬件原理图见图1,主要由微处理器Mac7112CAN口收发芯片TLE6250两部分构成。Mac7112Motorola公司最新生产的32位嵌入式汽车专用芯片,它内部集成FlexCAN模块,FlexCAN完全符合CAN2.0B协议标准,支持标准帧(11bit)和扩展帧(32bit)两种帧格式,是一种非常灵活的邮箱式系统,拥有多达32个消息缓冲(MB),每个消息缓冲具有独立的收发功能,内嵌544字节的RAM以供邮箱使用,在无消息传送接收时,这些RAM可被MCU使用,每帧消息可传送和接收数据在0-8个字节之间,最大不能超过8个字节,最高可达的传输速率为1MbpsFlexCAN模块在逻辑上实现了传输数据的编码和解码,但要想与CAN总线上的数据实现正常联系,还需要借助总线驱动器。TLE6250FlexCAN模块与CAN总线之间的实现物理连接的驱动芯片。

  TLE6250Infineon公司生产的一种CAN口收发芯片,支持传送速率高达1Mbps,有良好的抗瞬变、抗射频和抗电磁干扰的特性和宽广的工作范围(-40--150℃),具有短路保护和过温保护功能,非常适合在工作环境较恶劣的系统中使用。

1Mac7112中的CNTx_A/PG4TLE6250TxD端口相连,CNRx_A/PG5TLE6250RxD端口相连,TLE6250的输出端CAN_HCAN_L之间连接一120Ω的电阻,用以匹配线路。

 

2. 软件设计

本文以发动机电控单元测试程序的编写为例,讲述软件设计的步骤。发动机电控单元(ECU)在测试过程中往往需要做以下工作:(1)版本号测试;(2)回声测试;(3GPIO端口信息的读取和设置;(4)串口通讯功能测试;(5E2 PROM代码和数据的读取及更新;(6PWM调试;(7)喷油嘴调试等等。为了完成上述测试,需作下面的工作。

2.1通讯协议的构建

为实现CAN总线数据的传送,使上位机与下位机正常通讯,需要定义统一的通讯协议。为了简单起见,采用11位的标准帧传送格式,接收ID定义为7FF,接收邮箱为0邮箱,发送ID定义为7FE,发送邮箱为31号邮箱。  

  命令(command):定义测试命令ID,处于消息帧的起始位置,测试命令的内容由上位机在操作面板中选中,通过CAN总线发送给ECUECU根据命令要求进行处理,将处理结果反馈回上位机。

  字节数(bytes):第二个字节为该条消息中所含字节的总数,其数值为N+3,应小于消息缓存队列的大小,消息缓存队列的大小由用户根据实际需要定义。

  数据(data):从第三个字节开始到第N+2个字节为传输的数据,数据内容与所选的测试命令相关,大小为N个字节,当N0时,第三个字节内容便由和校验字节占用。

  和校验(checksum):正常情况下,该位处于最后一字节,若数据段中无数据,则和校验处于第三个字节,和校验的数值是整个消息中所有字节内容相加的和除以256,取模所得。在传送接收过程中,收到的数据之和经取模运算与和校验数值相比较,如果相同说明接收正确,不同则通知发送对象重新发送刚才的消息。CAN总线传送本身具有错误诊断和处理手段,增加和校验可进一步增强传送的准确性。

2.2测试工作过程

  下位机在进行测试工作时,采用中断接收、中断发送的工作模式。频繁的中断处理在一般情况下会使MCU开销很大,但测试时可不用考虑,因为在实际工作中不存在测试请求。 接收和发送都采用中断方式,反而可避免测试程序在系统正常工作时占用资源。上位机发出测试请求,通过CAN总线成功地传送到FlexCAN模块,FlexCAN是个非常智能化的模块,它内部有一个临时邮箱(MB,该邮箱不能被用户访问,它自动接收从CAN总线上传来的消息帧,并将所接收到消息帧的ID号与FlexCAN32个邮箱的ID号进行比较。若某个邮箱的ID号与接收到的ID号相同则申请中断,将临时信箱中存储的内容转存到ID号相符的邮箱中。当接收到的IDETS接收邮箱的ID相同时,ETS接收邮箱开始接收信息,接收到的信息存储在ETS接收消息缓存队列中,接收完毕,对所接收的信息进行处理,处理的信息反馈给上位机。CAN口中断接收服务程序流程图见图4。测试命令响应程序的处理过程见图3。测试反馈回上位机的信息采用中断发送的方式,该程序有两个入口,首帧信息由测试命令响应程序调用中断发送响应程序实现,若发送消息缓存队列中内容需要多次发送,则后面的内容直接由中断发送服务程序响应完成,具体工作流程见图5

3上位机设置及工作流程

  上位机是测试人员与控制系统的接口,测试人员通过上位机程序确定进行测试的内容,通过下位机传来的反馈信号,鉴定系统中软件硬件工作是否正常,若存在问题,根据反馈回的信息确定问题出在哪里,如何去解决。

为完成上述功能,调试界面应该包括调试命令选择窗口、参数输入窗口、接收数据显示窗口等等。

上位机的编程语言采用VC++6.0,实时发送测试请求,查询方式接收下位机的反馈信息,查询周期为5ms. 。硬件应用CANTOUSB转化器--ValueCAN

上位机的工作流程见图6,启动上位机测试程序,对系统进行初始化,每隔5ms USB口检测一次看是否接收到消息。若收到信息对接收到的消息作相应的处理。

 

4结论

  测试程序的编写在当今系统设计过程中显得尤为重要,本文给出的基于CAN总线的测试系统方案占用资源少,实现起来简单易行,测试响应快,测试结果准确,合理地使用可大大降低系统开发周期。

参考文献

1 MAC7100 MicrocontrolLEr Family Reference Manual Rev 1.0. Motorola, 5/2004

2 TLE6250 Final Data Sheet. Infineon ,10/2002

3 CAN-bus规范2.0B版本.周立功单片机发展有限公司,1999

 

系统分类: 测试测量
用户分类: 测试测量
标签: CAN总线
来源: 整理
发表评论 阅读全文(501) | 回复(0)

3

关于投票
CAN总线在发动机测试系统中的应用

CAN总线在发动机测试系统中的应用

摘自中国IC网

引 言

  现场的总线控制系统(FCS)将是新世纪自动控制系统发展的主流,是继DCS后新一代的控制系统。现场总线是综合自动化发展的需要,同时智能仪器仪表则为现场总线的出现奠定了基础。

  CAN(Controller Area Network)是现场总线的一种,最早是德国Bosch公司在上世纪80年代推出的,主要应用于汽车内部检测以及控制系统间的数据通信。CAN总线通信协议充分考虑了工业现场环境,采用了ISO-OSI模型中的三层,即物理层,数据层和应用层。CAN总线规范已被国际标准化组织制订为国际标准ISO11898,并得到了多家著名半导体器件生产商的支持,推出了各种集成CAN协议的芯片产品。CAN总线目前已经被广泛应用,CAN总线被公认为几种最有前途的现场总线之一。

CAN总线的功能与特点

  CAN总线的通信介质一般采用双绞线、同轴电缆或光纤等,能够实现在强电磁干扰环境下数据远距离传输的功能,其硬件成本低,传输可靠性高,软件开销小,是属于总线型串行通讯网络,具有与其它通讯协议所不同的特点。

总线支持载波监测与多主站控制以及冲突检测的通讯模式

  “载波监测”是指在总线上每一节点在发送信息报文前都必须检测到总线上有一段空闲状态,任一节点都有发送报文的机会。而报文信息优先级的高低取决于信息的最终发送,在CAN中采用非破坏性的基于优先级竞争的总线仲裁方式,这便是冲突检测。通过报文滤波可实现多种传输方式,具有灵活的工作方式。

CAN总线协议是基于报文而不是基于站点地址的协议

  CAN总线上报文所含内容只有优先级标志区和传送的数据内容,所有节点都会收到报文,对报文的取舍取决于节点本身,同一报文可传送给所有站点,也可以传送给特定的站点。基于报文协议的另一个特点是新的节点可以随时被加入到总线系统中,一旦加入到系统中,该节点便能接收信息,有很强的实用性。

CAN总线的高速性,以及错误检测和恢复能力的高可靠性

  CAN采用面向数据块的通信方式,信号传输采用短帧结构,CAN能自动地检测出错误信息,保证信息的正确性和完整性,记录出错信息的次数,“故障界定隔离”使故障节点被及时关断而不会永久占用总线。

灵活数据编码方式

  CAN总线通信控制器集成了CAN的物理层和数据链路层功能,可以完成通信数据的成帧处理,可以定义211或229个不同的数据块。

  总之,CAN总线具有实时性强、可靠性高、抗干扰性强、结构简单、操作性好、价格低廉等优点,是目前国际上公认的最具有前途的几种总线之一。

在发动机测试系统中的应用

发动机测试系统简介

  发动机测试系统是汽车发动机生产厂家在发动机出厂前抽样测试系统的总成,传统的汽车发动机试验台的组成是单台的测功机和被测发动机组成的独立系统,每台被测发动机的测试周期为720小时的连续各种路况测控。该系统引入CAN总线将其中的8个试验台组成一个同步测试系统,可大大简化测试过程,同时减少了重复劳动,取得较好的效果。

  由于该发动机测控设备是由作者在1997年研制成功的,当时考虑到今后系统的扩展以及完善整个试验系统的通信功能,在系统中预留了RS-422通信功能接口。原系统采用STD总线鼠笼式的8098式结构搭建了试验台测控系统,而其通信接口是标准的RS-422串行通信协议,这种结构只能采用主从式结构,且只有物理层,故而采用了CAN桥接器,使其能够组成一个标准的CAN总线系统。

CAN桥接器的软硬件设计

  CAN桥接器的设计是将RS-422电平与CAN标准的逻辑电平能够相互转换,同时使得RS-422和CAN的帧格式能够相互转换。系统采用了SJA1000控制接口芯片,SJA1000有BasicCAN模式和PeliCAN模式两种工作模式,本系统中选择了工作模式为基本型。SJA1000作为微控制器的片外扩展芯片,其片选引脚CS接在微控制器的地址译码器上,从而决定了CAN总线控制器各寄存器的地址。SJA1000通过CAN控制器接口芯片82C250连接在物理总线上。82C250器件提供对总线的差动发送能力和对CAN控制器的差动接受能力,完全和ISO11898标准兼容。其引脚8允许选择高速、斜率控制和待机三种不同的工作方式。

  在图2所示的电路中实现了RS-422电平和CAN标准逻辑电平的相互转换,同时系统软件也实现了RS-422和CAN帧格式的相互转换,系统中CPU为AT89C52单片机。 

   芯片MAX1490B完成了RS-422和TTL逻辑电平的相互转换,而芯片SJA1000则完成了TTL逻辑电平和CAN逻辑电平的相互转换,在MAX1490B中TTL侧和RS-422侧实现了完全电隔离,A、B为其RS-422侧输入端,Y、Z为RS-422侧输出端,DI为隔离的TTL侧驱动输入,RO为隔离的TTL输出端,MAX1490B内部的DCPDC 变换器在不需要外部隔离电源的情况下实现了输入输出的电隔离。82C250是CAN总线通信控制器,由其实现CAN的物理层和数据链路层,是CAN总线收发器,可支持多达110个节点的CAN总线负载。

测控设备的改造

  原有的系统采用了下位控制,即将控制权限和管理权限在每一独立的系统中单独实现,数据的输出,给定控制目标以及各种工况的信息打印均由前端机控制,上位机只是用来对系统进行简单的数据汇总通讯。在原系统中每个测控设备是孤立的,是信息孤岛,在改造过程中上位机中配置CAN适配器,用双绞线与CAN总线相连,在原测控设备上利用预留RS-422与CAN桥接器相连。在软件编程中,增加了单独的通信单元,不增加原有的控制系统的其他功能和软件开销,经过简单的软硬件改造后,形成了一个具有数据交互功能的测控系统。改造后的系统能够通过上位机对前置机进行控制工框的设定、数据采集汇总等,可以通过上位机对前置机进行控制,突破了原有系统的信息交互的障碍。系统拓扑结构如图4所示。 

 

结束语

  经过改造后的测控设备连成了一个CAN总线系统,突破了原有的信息孤岛的模式,原系统中的各种工作模式、各种控制目标给定由上位机管理,下位机通过接收广播、点对点方式和上位机通信,接受工况状态的转换以及控制给定等参数,同时定期上传其工作状态、测试数据等,上位机对其进行统一管理,实现了“分散控制,集中管理”的模式。上位机通讯管理软件的编制采用DELPHI5.0,在WIN2000下编译完成。

  通过对原有系统进行总线升级改造,针对原有测试系统进行现场总线改造的尝试,也具有积极的实际意义。

系统分类: 测试测量
用户分类: 测试测量
标签: CAN总线
来源: 整理
发表评论 阅读全文(330) | 回复(0)
总共 , 当前 /