基于STM8的车载抬头显示器设计与实现
随着电子技术与计算机技术在汽车电子中的应用越来越多,传统的机械式仪表已经逐步被电子仪表所代替。电子仪表有体积小、重量轻等优点,可以有效地节约车内有限的空间。其以数字、文字或图形方式显示汽车信息时,显示直观、信息量大,可以根据不同需要修改不同的显示内容。
抬头显示器 HUD是英文Head Up Display的缩写,意为“抬头显示”或“平视显示器”。最初的应用就是在战斗机上,是由电子组件、显示组件、控制器以及高压电源等组成的综合电子显示设备,能将飞行参数、瞄准攻击、自检测等信息,以图像、字符的形式,通过光学部件投射到座舱正前方组合玻璃上的显示装置。由于使司机不必低头察看仪表盘,HUD可以大大缩短司机的读表时间。与传统的仪表板相比,人们使用HUD可以更有效地察觉在行车前方发生的事件。
1 总体功能 抬头显示系统采用LED直接投射式,在前挡风玻璃处采用反射膜的反射成像方式。显示光经过位于驾驶座前方的半透明反射板反射后,映入驾驶员的眼睛。驾驶员通过反射板对行车前方的路况和显示图像以相重叠的形式进行信息识别。显示像通过透镜系统能在无限远点处成像,所以能够缩短视线的移动和焦点调节所需要的时间。系统具备CAN总线通信功能,可以通过总线接收并指示车速、转速、超速报警、巡航状态、挡位等信息。
图1系统设计框图
2 实现方案
① 器件选择 本系统有三个主要器件,CAN收发器、微处理器和LED显示驱动器。主控板需要通过CAN总线接口来获取车辆的车速、油量、车门开关等信息,接口电路包括了协议收发器以及总线隔离放大器等部分。由于STM8S系列单片机自带CAN协议通信接口,所以在这里可以省略以往设计中采用的SJA1000系列CAN总线收发器,仅添加CAN物理层接口器件TJA1040就可实现与整车之间的完整通信链路。TJA1040作为汽车级芯片,可以在-40~+125℃温度范围内工作,能承受6kV静电放电电压冲击,且具备差动发送和接收功能,可以支持最高为1Mb/s的通信速率,单芯片实现了CAN节点的数据收发、隔离、保护功能。微处理器选择ST公司的STM8S206xx系列,该处理器片内集成CAN控制器,支持CAN 2.0B协议。于MCU的I/O管脚驱动能力有限,而直接驱动LED段码需要较大的电流。所以需要在MCU和LED段码屏之间增加LED驱动电路ST2225A,以增强LED屏的驱动电流。ST2225A是采用CMOS工艺的LED驱动控制专用电路,具备连续背光控制和串行数据输入功能。
② 系统设计 系统采用车载12V电源,带有ACC钥匙控制和外部开关控制。当外部开关处在关闭状态下时,无论汽车是否启动,HUD系统都不会进入工作状态(处于关闭状态)。当外部开关处在打开状态下时分为两种情况。在汽车熄火拔钥匙状态下,系统进入休眠状态,仅耗费极微小的电量;当汽车点火启动后,系统进入工作状态,从CAN总线读取数据并显示在LED显示屏上。 CAN网络两端通常需要连接两个终端电阻,其作用是防止数据在到达线路终端后像回声一样返回而干扰原始数据。为了防止外界电磁干扰或向外辐射骚扰,两条数据线通常平行缠绕在一起,电位相反,电压和总等于常值。
图2 串行协议时序
显示驱动芯片ST2225A的串口数据输入的协议如图3所示,输入数据是以一个“1”开始的35位数据。当第36个数据传送完毕后,将与时钟使能(DATA ENABLE)同步生成载入信号,进而将35位数据被载入锁存器中。时钟禁止可以生成复位信号,用于清除移位寄存器中的数据并等待下一组35位数据。串口通信的时钟频率最高可以设置为500Kbps。
图3 基本软件 为了达到连续背光控制,LED的亮度是通过一个可变电阻来设置参考电流。图4给出了ST2225A的接口电路图。由于要显示的内容较多,总共需要驱动82个LED灯。而ST2225A只有35个输出端,因此必须利用其中几个引脚做公共端,采取分时扫描的驱动方式。但是公共端越多,输出占空比越小,LED灯的亮度会受到一定影响,所以公共端不能太多。经过试验验证,3个公共端对LED灯的亮度没有太大影响,为了使LED灯保持原有亮度,可以适当加大供电电压。
③ 软件流程 在系统启动后,屏幕显示提示信息,用户输入时间,日期信息确认后显示屏开始显示日期信息,此时汽车显示速度为零。汽车启动后系统实时显示经过处理的近似车速和已经行驶的里程信息。在行驶的过程中,系统通过解析车身总线发送来的CAN信息帧进行汽车的里程计数,单片机利用定时中断定期对计数值进行统计计算,从而得到速度等信息,程序不断将速度值和门限值进行比较,如果超过给出报警提示。
总结 本文主要讨论了车载抬头显示的基本实现框架和实现所需的主要元器件,着重讨论了CAN总线接口、显示屏控制器接口和电源接口的设计与实现。通过实际工程化论文中所提出的设计方案,证实其具有可实现程度高、成本低、效果好等优点。
|