摘要: |
随着汽车工业和电子技术的进步,汽车电控系统日益复杂。为实现汽车各电子控制单元(ECU)间的通信,现代电控系统大多采用控制器局域网(CAN)技术。汽车排放法规的日益严格,故障诊断已成为必须。实现PC与CAN的通信,对实现ECU的在线开发以及故障诊断数据的读取,都具有十分重要的意义。现有的CAN总线与PC机的连接主要通过串口和扩展卡两种方式,它们要么速度不够,难以满足大量数据交换的要求;要么占用有限的系统资源、使用不方便、无法用于高度集成的便携式计算机。针对上述问题,结合USB总线技术的即插即用、使用方便、可自供电等特点,对汽车电控系统通信模块进行了研制。
首先,对汽车电控单元、故障自诊断(OBD)系统及CAN/USB/RS-232三种常用的通信协议进行了研究,并在此基础上,提出通信模块的设计方案。通信模块选用Motorola公司的MC68HC908AZ60A作为主控芯片,其内部集成CAN控制器和异步串行通信口;USB的接口芯片选用Philips公司的PDIUSBD12,其内部集成USBSIE(SerialInterfaceEngine);选用TI公司的MAX3222I为RS-232的电平转换芯片;选用Philips公司的TJA1040为高速CAN收发器。在CodeWarrior集成开发环境下,通过汇编和C的混合编程完成了模块的固件程序设计;在VisualC++6.0环境下,通过DDK和DriverStudio完成了Windows2000环境下的WDM驱动程序设计,通过Win32API函数完成了应用程序的设计。最后介绍了通信模块软硬件调试的过程,并对调试中出现的问题进行了总结。
该通信模块实现了汽车各电控单元的CAN总线与PC机USB的高速通信,并由此实现了汽车故障诊断码的读取和ECU的在线开发、匹配。另外,该通信模块还实现了RS-232、CAN、USB协议的相互转换。该模块也可以通过上位机程序对RS-232的波特率、CAN的波特率和ID等参数进行调整,从而进一步增大了通信模块的适用范围。
该通信模块体积小、功能多、使用方便、便于携带,且无须外部电源,能够满足野外车载环境下的使用。目前,该通信模块已在江奎集团的汽车发动机ECU产品中得到应用。
|