汽车产业是国家的支柱产业,电子产业也是国家的支柱产业,作为汽车产业和电子产业的交集,汽车电子零部件产业的兴衰与国民经济息息相关。目前,我国汽车的产量逐年攀高,民族汽车品牌在自身不断成长的同时,也迫使国际汽车公司或合资公司不得不降低生产成本,实施汽车电子零部件国产化战略,这就为我国汽车电子产业化的发展提供了良好的机遇。
前装汽车电子产品除了其复杂的功能要求外,对于实时性、安全性、可靠性和环保性等的要求都非常严格,并且汽车厂商都具有自己相关的执行检测标准和生产流程规范,因此为前装汽车电子产品配套研发相应的故障检测系统是非常必要的。
1 系统设计方案
1.1 设计依据
CAN总线作为一种串行汽车总线,具有结构简单、可靠性高、技术成熟等优点,目前已在汽车领域广泛应用。前装汽车电子产品一定遵循特定车型的CAN通信协议,整车几乎全部的控制和状态信息都依赖CAN总线传输,通过采集和分析CAN总线上的信号,便可准确获得各个部件的工作状态和实时参数,这就是汽车电子测试系统的基本依据。
汽车厂商对测试仪器的一般要求包括实时性、可靠性、便携式以及友好的人机交互等。嵌入式系统由于其灵活的软硬件设计、良好的可靠性和实时性、较低的功耗等特点,完全可以满足厂商对于测试仪器的要求。因此,基于CAN帧测试和采用嵌入式设计是汽车电子测试系统的有效解决方案。
1.2 实现方案
嵌入式汽车电子测试系统,一般选择性能比较好的32位微处理器,比如ARM处理器,在硬件设计上包括嵌入式系统通用的电源模块、存储模块、人机交互模块等,基于CAN总线通讯必须设计相应的CAN总线通信模块,在该模块中通常由两部分组成,一部分是CAN控制器,用于实现CAN总线的数据链路层协议;另一部分是CAN驱动器用于实现CAN总线的物理层。系统的基本结构图如图1所示。
汽车电子测试仪器一般要求具备友好的人机交互,对界面设计的要求比较高,因此在软件设计中宜采用分层的软件设计方法,一般情况下需要移植相关的嵌入式操作系统,目前常用的嵌入式操作系统主要有Linux、Wince等。软件的设计流程主要包括操作系统移植、驱动程序编写、应用程序设计3个阶段。移植合适的嵌入式操作系统,为软件的开发搭建好开发平台;开发相关的驱动程序来支持硬件设备,为应用软件访问硬件提供接口,在CAN的模块中,一般需要开发支持控制器和驱动器的驱动程序,以便于和汽车电子产品通信;应用程序是最上层的软件,直接面对用户,为用户使用提供友好的交互。
2 系统设计样例
基于以上的系统分析,现给出一个具体的设计样例解释。USB汽车音频播放系统是为某汽车制造商开发的一款前装汽车电子产品。该产品在通信上严格遵守厂商提供的CAN总线协议。该测试系统主要用于部件出厂前的故障检测。
2.1 硬件设计
考虑到性能、功耗、稳定等方面的要求,选用Intel公司的32位工业级微处理器PXA270,该处理器基于ARM10内核,运行主频高达520M- Hz,接口资源丰富,加入了IntelSpeedStep动态电源管理技术,在保证CPU性能的情况下可最大限度地降低设备功耗,利用该处理器简化了硬件设计,并且保证了软件的快速运行;存储模块采用了64 MB的NorFlash和64 MB的SDRAM;人机交互采用的是液晶显示和触摸控制的方案。
在CAN总线通信模块的设计中,采用的芯片是SJA1000、PCA82C250和TJA1055。SJA1000是PHLIPS公司发布的一款适用于汽车和一般工业环境的独立CAN控制器,SJA1000是PCA82C200控制器的替代产品,除了支持BasicCAN操作模式外,还增加了新的操作模式 PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议。SJA1000应用于CAN硬件模块中,用于实现CAN总线的数据链路层协议,在本设计中使用了2片SJA1000芯片,分别用于高速CAN和低速CAN通信。SJA1000的具体电路原理图如图2所示,数据总线AD0~AD7通过数据缓冲器件接到PXA270的数据总线MD0~MD7上,时序控制等信号线则是接到CPLD上,由PXA270处理器通过CPLD管理。
PCA82C250和TA1055都是驱动收发器,用于实现CAN总线的物理层,不同之处在于2个芯片各自实现了CAN物理层的2个标准:高速CAN和低速CAN。高速CAN根据线缆长度最高可提供1 Mbit/s的波特率,低速CAN可提供5~125 kbit/s的波特率,并且允许CAN总线在连接失败时通信得以继续进行,因此也叫容错CAN,该仪器支持2种物理标准,驱动器的电路图如图3所示。 HTXD0、HRXD0和LTXD0、LRXD0均来自于SJA1000,通过PCA82C250和TJA1055后分别得到高速CAN通道HCHNH、 HCHNL和低速CAN通道LGANH、LCANL。
2.2 软件设计
考虑到厂商对人机交互要求比较高,并且为了缩短研发周期,选择微软的Windows CE作为嵌入式操作系统。Wince是一个紧凑、完整和可扩展的嵌入式操作系统,是一个多线程、基于优先级可抢占的操作系统,具有内存管理功能,可以抑制由于应用程序不正常而直接破坏系统的危险性,特别适用于有限资源的硬件平台,并且Wince的操作系统在界面操作上继承了桌面Windows系统的风格,便于操作工人的熟悉和使用。
软件设计的主要工作有Wince5.0系统在PXA270上的移植,CAN总线、液晶显示、触摸屏、Flash存储、蓝牙等驱动程序的实现,CAN协议实现及应用程序的设计等。
Wince的驱动程序主要分为本机驱动和流接口驱动,本机驱动是硬件必须的驱动,不支持通用的设备驱动程序接口,如触摸屏的驱动;流接口驱动是指驱动程序把流式接口函数公开出来,而不考虑驱动所控制的设备类型。CAN总线的驱动主要是对控制器SJA1000的软件支持,在wince中是典型的流接口驱动,通过CAN_Init、CAN_Open、CAN_Close、CAN_Read、CAN_Write、CAN_IOControl,CAN_Deiit 等函数实现SJA-1000的功能;其中CAN_Init主要完成SJA1000的初始化工作,CAN_Open用于响应应用程序的请求,CAN_Read和CAN_Write用于从CAN总线读取和向总线写入字符,CAN_IOControl用来扩展其他的功能,CAN_Close用于关闭响应,CAN_Deiit用于释放资源和卸载驱动。
应用程序运用Embedded Visual C++4.0开发。该测试仪器的任务较多,大部分的测试都是基于对部件发出CAN帧的分析,仪器的主要测试功能包括:音频左右声道测试、麦克测试、蓝牙测试、USB测试等。系统的软件流程如图4所示,系统的主界面如图5所示。
2.3 现场应用
该测试仪器目前已经应用于现场生产中,对USB汽车音频播放部件进行出厂前质量测试,实践表明该测试仪器快速可靠、操作友好,每台每个工作日可检测300~500台部件,检测准确率达到99%以上,完全满足了厂商的需求。
3 结束语
本文针对汽车电子开发中的具体需求,提出了基于CAN通信和CAN帧分析的汽车电子测试方法,通过现场应用表明该方法是对前装汽车电子产品测试的快速有效的方法,基于该方法的嵌入式汽车电子测试仪器,满足了厂商对于体积、价格、速度、可靠等方面的需求,在未来开发的前装汽车电子产品中会继续广泛应用。