5
10
15
20
25
30
35
Liu Peng, Kang Dongliang
JiangSu XuZhou 221008)
(School of Information and Electrical Engineering,China University of Mining and Technology,
Abstract: Digital instruments for various purposes will be increasingly equipped in hyundai motor.The
latest automotive technology is showed by the electronic instrument display device.In this paper,the
combination of automotive instrumentation system which based on STM32F103 controller and its
peripheral circuits is designed.The industry-standard CAN bus is used in this instrument system can be
attached to the vehicle CAN bus,to achieve the communicating with other modules in the vehicle.
Keywords:STM32F103; Instrumentation; CAN BUS
中国科技论文在线
http://www.paper.edu.cn
基于 STM32 的汽车仪表系统的设计
刘鹏,康栋梁*
(中国矿业大学信息与电气工程学院,江苏 徐州 221008)
摘要:现代汽车将会越来越多地装用各种用途的数字化仪表。功能强大的电子仪表显示装置
体现了汽车电子的最新技术水平。本文介绍了以微处理器 STM32F103 及其外设电路构成的组
合汽车仪表系统的软、硬件设计。仪表系统采用了汽车行业标准的 CAN 通信接口可以挂接在
车内的 CAN 总线上,实现与汽车内其它模块的数据通信
关键词:STM32F103;仪表;CAN 总线
中图分类号:TP23
Design of automotive instrument system on STM32
0 引言
汽车仪表系统使驾驶员可以随时了解车辆的行驶、工作状态,保证汽车可以安全可靠地
行驶。因此汽车的仪表系统需要具备可以准确地将汽车的各种信息用数字、文字、图形等方
式完整表达出来。目前汽车仪表的显示方式主要有指针显示、数字显示、声光和图形辅助显
示。以步进电机为主的显示仪表,是当今和未来一段时间内汽车仪表的主要显示方式[1]。
同时为了提高显示系统的实时性与准确性,设计采用 LCD 液晶显示器辅助显示各参考
值。本文所设计的新型汽车仪表盘是把步进电机指针式仪表和液晶显示器 LCD 显示结合起
来,将车速、发动机转速、水温和油量这四个参数分别设计成步进电机式指针仪表和 LCD
上的虚拟指针仪表组合显示,从而使一项显示设备工作失效而另一种设备还能正常显示,提
高仪表盘的稳定性和可靠性。对于转向灯、大灯、雾灯、刹车灯等警告信息,通过仪表盘上
的 LED 进行指示提醒,可满足客户对现代汽车仪表盘的多种需求。
1 系统总体设计
汽车仪表负责记录和显示汽车的各种数据,其中最主要的有车速、转速、水温、油量、
指示灯状态等。本次设计的汽车仪表盘需要处理显示的信息主要有:车速、发动机转速、水
温、油量以及各种开关量报警指示信号,本仪表盘系统的总设计框图如图 1 所示。
作者简介:刘鹏,(1985-),男,中国矿业大学信息与电气工程学院硕士研究生,主要研究方向:智能仪
器仪表. E-mail: zdhliupeng@126.com
- 1 -
中国科技论文在线
http://www.paper.edu.cn
40
45
50
55
60
图 1 系统结构示意图
Fig.1 System Struction Schematic
本系统以 CAN 总线为通信机制,STM32F103 为核心处理器,完成信息的采集、处理和
显示[4]。其中水温、油量分别从各自的传感器中获得模拟信号,再经过 A/D 转换送入处理器,
使处理器控制水温和油量显示。偏转,车速和转速信号通过对各自传感器脉冲信号测量获得,
再经信号处理送入处理器,从而控制转速和车速的指针偏转,处理器也把这些信号处理后通
过串行通信发送给 LCD 液晶显示模块。其它的开关量信号(比如转向、刹车等)由 CAN
总线通信模块来获取,通过总线传输或其它环节处理后交予处理器再次处理,并用 LED 进
行相应的工况指示,进而提示或警醒驾驶员注意。
2 系统硬件设计
2.1 控制器模块
STM32 系列控制器是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的
ARM Cortex-M3 内核。按性能分成两个不同的系列:STM32F103“增强型”系列和 STM32F101
“基本型”系列。该设计采用的是增强型系列,其时钟频率达到 72MHz,是同类产品中性能
最高的产品。其内置 64K 闪存,满足该设计中的程序空间要求。功耗仅仅 36mA,是 32 位市
场上功耗最低的产品,相当于 0.5mA/MHz。其拥有丰富的外设,包括:10 个定时器、两个
12 位 1-Msample/s 模数转换器、两个 12 位数模转换器、两个 I2C 接口、五个 USART 接口
和三个 SPI 端口及 12 条 DMA 通道。其内核结构图如图 2 所示。
图 2 STM32 内核结构图
Fig.2 STM32 Core Structure
- 2 -
中国科技论文在线
2.2 步进电机模块
http://www.paper.edu.cn
此模块的设计是本系统的重点,它以指针的形式动态地向驾驶员提供车辆运行时最重要
的四个参数:车速、电机转速、水温、油量。因此该模块能否准确稳定地工作关系到汽车仪
表盘的整体性能[2]。
本系统采用伟力驱动技术有限公司的汽车仪表专用 VID29-05 的步进电机和 VID66-
06(四电机驱动芯片),在脉冲的控制下,每个微步马达输出轴转动 1/12°。因其布距角很小,
因此可以将数字信号很准确地转为模拟的显示输出,但同时,微小的脉冲干扰很容易引起仪
表指针的抖动,因而如何防抖使电机正常稳定地工作,成了此设计的一个难点。为此,本系
统采用了两点技术:
(1)在信号的输入端增加了防抖技术,并上 22μF 和 0.1μF 的电容。
(2)在信号的输出端增加防抖技术,在步进电机的四个引脚并上四个 0.1μF 的电容。
本系统从信号的输入到输出都采用了滤波的方式来防止外部干扰,保证信号能准确稳定
的传输,步进电机控制的电路示意图如图 3 所示。
图 3 步进电机控制模块
Fig.3 Stepper Motor Controlling Module
测电机转速和车速的传感器有电磁感应式、磁性形式、光电式、霍尔式。不论哪一种传
感器都以脉冲的形式向外输出转速信号。目前大部分汽车常采用霍尔式传感器,因为它作为
一种转速测量系统的传感器,具有结构牢固、体积小、重量轻、寿命长、安装方便等优点[3]。
传感器输出的脉冲信号低电平 UL 为 3V,高电平 UH 为 8V,因此需要经过电路转换为单片
机能够识别的 0~5V 的脉冲信号,脉冲信号转换框图如图 4 所示。
图 4 脉冲信号转换框图
Fig.4 Pulse Signal Converting Diagram
通过霍尔式传感器采集脉冲信号 UI,经过 LM339 电压比较器进行比较(其中将 UREF
调整为 5V 左右)。由于 LM339 的工作特性,其比较结果的高电平并非为 5V,通过一个上
拉电阻和一个 5.1V 的稳压管,可以将非 5V 的高电平信号转换为 5V 的高电平信号。这样就
可以将传感器采集的脉冲信号转换为单片机能够识别的脉冲信号。水温和油量两路传感器采
- 3 -
65
70
75
80
85
90
中国科技论文在线
http://www.paper.edu.cn
集的是模拟信号,为了能在单片上进行识别处理,必须经过 A/D 采样转化。采样频率、分
辨率和转换时间等都影响着 A/D 转化精度,故本系统采用 12 位高速微功率采样模数转换器
ADS7816。水温、油量两路传感器采集的模拟量信号经过 7816 进行 A/D 转换后,串行输出
一个 12 位数字量,整合为一个 16 进制的数值,当水温或油量变化时,A/D 转换后的数值就
会改变,单片机把此数值与原来的值进行比较,可以知道输入量变化的多少,根据此差值和
设计好的刻度盘控制电机的转动方向和角度,从而准确的指示此时的水温和油量。
2.3 CAN 总线通信模块
CAN——Controller Area Network ——是 20 世纪 BOSCH 公司开发的串行数据通信协
议。它是一种多主机总线,通信速率最高可达 1Mbps[5]。由于 CAN 总线卓越的特性、极高
的可靠性和独特的设计,适合工业设备内的模块间数据互连。因此在机器人内部各模块(通
信模块、主控制模块、运动控制模块、导航模块、环境监测模块等)之间设计采用 CAN 总
线通信。
CAN 总线有很多特性:
(1)采用了双线差分信号。通信协议本身对节点的数量没有限制,而且总线上节点的
数量可以动态改变。
(2)广播发送报文的形式,即报文可以被所有的节点同时接收。
(3)多主站结构,各节点平等,优先权由报文 ID 所决定。
(4)每个报文的内容通过标识符,标识符在网络中是唯一的。
(5)具有一套复杂的错误检测与错误处理机制,如 CRC 检测、接口的抗电磁干扰、错
误报文的自动重发、临时错误的恢复以及永久错误的关闭。
(6)采用了双绞线作为总线介质,传输速率可达 1Mbps,总线长度<=40 米。
(7)采用了 NRZ 与位填充的位编码方式,减小了报文的误码率。
系统内 CAN 总线结构拓扑图:
图 5 CAN 总线结构拓扑图
Fig.5 CAN BUS Structure Diagram
CAN 总线接口模块电路如图 6 所示:MCP2515 是一款独立控制器局域网络的协议控制
器,完全支持 CANV2.0B 技术规范。该器件主要由三个部分组成,能发送和接收标准和扩
展数据帧以及远程帧。MCP2515 自带的验收屏蔽寄存器和验收滤波寄存器可以过滤掉不想
要的报文,因此减少了 MCU 的开销。MCP2515 与 MCU 的连接是通过业界标准串行外设—
SPI 总线来实现的[6]。
车内环境中有各种干扰,所以对通信实行隔离措施是必不可少的环节。AduM1201 是
ADI 公司推出的一款最高速率可以达到 25Mbps,高性能低功耗的数字隔离芯片,广泛地应用
于 CAN 总线通信的隔离设计上。
- 4 -
95
100
105
110
115
120
125
中国科技论文在线
http://www.paper.edu.cn
MCP2551 是 Microchip 公司生产的一款与 MCP2515CAN 控制器相配合的 CAN 总线收
发器,支持 16K 以上的波特率。设计中使用 MCP2551 和 MCP2515 相配合来实现稳定的 CAN
总线通信。
130
3 系统软件设计
图 6 CAN 总线接口电路图
Fig.6 CAN BUS Interface Circuit Diagram
135
系统采用 C 语言进行程序设计,大大提高了开发调试工作的效率,同时程序也便于理
解和修改,为后续的改进更新工作提供便利。
系统的程序流程图如图所示,在进行系统初始化完成后,将进行开关量置位、指针回零
等工作,而后系统进行数据采集工作将数据转换后便于四路步进电机进行驱动与仪表盘的指
示,同时控制器会控制相应参数在 LCD 上显示。若 CAN 总线上受到信息,会触发控制器的中
断响应。控制器将在中断服务程序中对接受到 CAN 总线消息予以处理
140
图 7 主程序流程图
Fig.7 Main Program Flow Diagram
4 结论
145
本设计中的新型汽车仪表盘主要优点就是把步进电机指针式仪表和液晶显示器中的虚
拟指针式结合起来,将车速、发动机转速、水温和油量这四个参数分别设计成步进电机指针
式仪表和 LCD 液晶显示,优势互补。增强了仪表盘的稳定性和可靠性,可满足用户对汽车
仪表盘的各种需求,具有较广的应用前景。
- 5 -
中国科技论文在线
http://www.paper.edu.cn
150
[参考文献] (References)
155
[1] 张幽彤,陈宝江. 汽车电子技术原理及应用[M].北京:北京理工大学出版社,2006.
[2] 杨忠敏. 汽车仪表的发展现状[J]. 汽车电器,2004,21(4):20-22.
[3] 戴方全,王建.基于 uC/OS-II 的全数字汽车仪表[J]. 汽车科技,2007,23(4):43-45.
[4] 赵福堂.汽车电器与电子设备[M]. 北京:北京理工大学出版社,2005.
[5] 饶运涛,郑勇芸. 现场 CAN 总线原理与应用技术[M]. 北京:北京航空航天大学出版社,2003.
[6] 杜尚丰,曹晓钟,徐津. CAN 总线测控技术及其应用[M]. 北京:电子工业出版社,2007.
- 6 -