随着高性能电子显示技术的发展,汽车仪表电子化的程度越来越高。国内外已开发出了多功能全电子显示仪表、平视显示仪表、汽车导航系统、行车记录仪等高技术产品。未来,车用电子化嵌入式仪表具有以下优点:提供大量复杂的信息,使汽车的电子控制程度越来越高;满足小型、轻量化的要求,使有限的驾驶空间更人性化;高精度和高可靠性实现汽车仪表的电子化,降低了故障的发生率;设有在线故障诊断系统,一旦汽车发生故障,可以找到故障来源,方便维修;外形设计自由度高,汽车仪表盘造型美观。基于以上优点,汽车会越来越多地采用各种用途的电子化仪表。造型新颖、功能强大的嵌入式电子化仪表将是今后车用仪表的发展趋势和潮流。
1 智能车载仪表系统结构
本智能车载仪表拥有大多数传统车载仪表所拥有的功能,驾驶员可以通过车载仪表的显示界面获取当前汽车的状态信息,例如车速、油压、油温、水温、机油压力或者电瓶电量。
传统车辆仪表直接与车辆的
车载智能仪表主要分为基于S3C2440处理器的硬件系统和WinCE环境下的软件系统两大部分。硬件系统为整个控制系统提供基础,负责CAN总线通信。软件系统提供CAN总线的硬件驱动以及在WinCE下的仪表上位应用程序。
2 硬件设计
硬件系统以S3C2440为核心,RAM内存、NOR Flash和NAND Flash作为存储介质,扩展部分外围设备以负责系统信息的输入与输出,如CAN总线通信单元、LCD显示、触摸屏、通用串行口、USB设备、以太网接口等。系统硬件结构如图1所示。
在众多接口中,CAN总线通信单元是在整车通信过程中的关键部分。在汽车的各个重要部件中,配置相应的CAN控制单元,由双绞线将各个CAN总线控制单元连接起来。汽车的各个部件将该部件的当前状态信息由CAN控制单元发送出去,经双绞线发送到智能车载仪表的CAN单元当中,经过系统的CAN接口将数据发送到系统中。车载仪表系统得到数据后,经过数据处理得到汽车部件的当前状态信息。
CAN总线接口电路如图2所示。采用Microchip公司的CAN总线控制器MCP2515。MCP2515完全支持CAN 2.OA/B技术规范,速度达到1Mbps;SPI的接口标准使得它与S3C2440的连接更加简单;能发送和接收标准和扩展数据帧以及远程帧;自带2个验收屏蔽寄存器和6个验收滤波寄存器,可以过滤掉不想要的报文,减少了微处理器的开销。CAN总线收发器采用TJA1050,该器件提供了CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能。
为了增强CAN总线节点的抗干扰能力,提高系统的稳定性,在CAN控制器与CAN收发器之间加入了光耦隔离器6N137,而不是使TXCAN和RX-CAN端直接与收发器相连,这样就实现了总线上各CAN节点之间的电气隔离。同时,这也解决了MCP2515与TJA1050之间电平兼容的问题,还可以抑制CAN网络中的尖峰脉冲及噪声干扰。光耦部分电路所采用的两个电源必须完全隔离,否则也就失去了意义。电源的隔离可以采用小功率的电源隔离模块或者多带5 V隔离输出的
在CAN接口处,CAN通信线上的2个60Ω电阻(总计120 Ω),起到增大负载、减少回波反射作用,是一种阻抗匹配的补救措施。2个60 Ω的中间部分与地端之间连接一个电容以抗干扰。
3 软件设计
软件的整体环境为winCE编程环境。针对本车载智能仪表硬件系统定制相应的WinCE操作系统,实现对硬件的驱动。再编写应用程序,通过对应用程序的具体操作实现对系统硬件的操作,即实现系统的功能。其中非常关键的是编写CAN控制器的驱动。CAN驱动实现应用软件对CAN控制单元的操作,以及读取CAN控制单元中的数据代码。
3.1 系统开发和移植
嵌入式系统开发就是系统驱动层的设计,其中最主要就是BSP的开发和调试。所以智能车载仪表底层驱动的开发就显得尤为重要。
由于使用的是WinCE操作系统,所以使用Platform Builder定制WinCE操作系统镜像。在Platform Builder中,可以添加系统部分硬件(如液晶屏、RAM)的驱动,这些驱动已经由微软公司编写好。然后启动Bootloader,把镜像文件下载到Flash存储器中,并配置操作系统启动文件boot.ini。
3.2 CAN总线驱动开发
由于CAN是外部设备,所以需要将CAN的驱动以流接口驱动方式编写。流接口驱动函数被设计来与通常的文件系统API(如 Activate Dev-iee、ReadFile、WriteFile和IOControl等)紧密匹配,即流接口驱动在应用程序中表现为一个系统文件,应用程序通过对系统文件的特殊文件进行操作从而完成对设备的操作。编写流接口文件主要用到流接口函数,也就是流接口驱动的入口点,如XXX_Init、XXX_Read和XXX_Open等。这些流接口文件与相应的API函数对应,使应用程序由相应的函数可以访问到外部设备。
作为流接口驱动程序,CAN总线驱动程序也有一组标准函数,可完成I/O操作。这些函数提供给WinCE操作系统内核使用,它们都是流接口驱动程序的DLL文件。动态加载CAN总线驱动程序时,系统要进行注册。CAN驱动程序注册表信息:
通过以上代码完成注册之后,调用ActivateDeviceEx()函数进行加载驱动。
3.3 CAN总线驱动通信流程
CAN总线控制器驱动程序主要用于设置MCP2515的波特率、MCP2515的验收过滤器、CAN消息传送模式和CAN收发数据方式。驱动程序是连接上位应用程序和硬件的一个中间纽带。智能车载仪表系统在EVC++环境下进行CAN总线开发。
流式驱动以文件的方式打开函数CreateFile():驱动成功打开后,CreateFile()函数返回不为INVALID-HAN-DLE-VALUE的句柄,此句柄也是关闭驱动函数Close-Handle()的参数。CAN设置函数DeviceIoControl()接收由CreateFile()函数获得的句柄及控制命令码,设置输入/输出缓冲区以及缓冲区的大小。函数执行完成后返回实际输出的缓冲区大小等。CAN总线发送与接收函数WriteFile()和ReadFile(),利用驱动文件句柄、发送和接收缓冲区等参数完成数据的发送和接收,操作成功后返回实际发送和接收的字节数。
为了不让主线程一直处于等待数据到来的状态,让主线程拥有时间令牌来操作其他事情,程序采用多线程设计,创建一个接收数据线程。接收数据线程是一个无限循环,它不断查询CAN总线数据退出标志,如果退出标志有效,则该循环结束退出。驱动程序流程如图3所示。
结语
目前,基于嵌入式技术的车载仪表逐渐开始流行。本文使用基于WinCE的ARM9
- 使用 ON Semiconductor 的 LV5609LP 的参考设计
- EVAL-AD7714-5EB,使用 AD7714 的评估板,24 位信号调理模数转换器
- DRV8701
- EVL6563S-250W,用于 L6563S 250 W 过渡模式 PFC 预稳压器的评估板
- OP484FSZ-REEL7 单电源、3V 低噪声仪表放大器的典型应用
- LTC1546 具有终端的软件可选多协议收发器的典型应用
- Ad586 高精度 5V 基准的典型应用电路
- 用于电容器充电器的 LT8410-1 升压转换器的典型应用电路
- 使用 Microchip Technology 的 ATA6842-PLQW 的参考设计
- IMX50EVK: i.MX50评估套件
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况
- Digi-Key KOL视频来袭~欢迎进入MicroPython的奇妙世界
- 有奖直播|TI MSP430™民用超声波水表开发指南及其智能模拟组合模块在传感器检测中的应用
- ADI有奖下载活动之18 ADI双光束分光光度计演示系统和解决方案
- 2016 TI嵌入式产品研讨会全网首映,下载有好礼!
- 阅读TI DLP ® 博文,带你走进不一样的视野!
- 【问题征集】大学生美国TI行,你问我送礼!
- 直击富士通在线展会,答题赢好礼
- ADI有奖下载活动之20:基于NDIR和PID的ADI气体探测器解决方案和新产品
- 看泰克视频讲座,了解先进医疗电子测试方案,填问卷,赢好礼!
- TI机器人系统学习套件,低成本开启你的电子工程课程实战之旅