DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 936|回复: 0
打印 上一主题 下一主题

[工仪] 基于Freescale单片机的汽车组合电子仪表

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:49:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    引言
  仪表是人和汽车的交互界面,为驾驶员提供所需的汽车运行参数、故障、里程等信息,是每一辆汽车必不可少的部件。仪表显示的直观与美观使得驾驶不但是代步之必需,也成为舒适生活的一部分,而参数传递的准确与可靠性则直接关系到汽车行驶的安全。
  汽车仪表
  现代仪表最突出的特点是功能的模块化,通常要组装一块仪表,只需将几个功能模块在定制PCB的基础上联合起来,就可以得到一个完整的系统。长安等经济型汽车的指针仪表一般为独立的模块,提示/报警功能由PCB上的小灯泡完成。SANTANA系列的指针由印刷电路板上的十字线圈驱动,提示/报警灯全部是发光二极管。轿车的仪表板上显示的主要数据、来源及对应显示方式如表1(根据SANTANA2000)。




  可见目前的汽车仪表尚以机械式为主,通讯方式以线束为主。这种模式最大的弊病是过于依赖线束,导致系统复杂。
  随着汽车产业的快速发展,尚有极大潜力的汽车电子市场正日渐受到各大汽车生产商与电子产品供应商的关注,这其中包括尚处于开发实验阶段的清洁能源汽车、目前由日本占据世界市场领袖地位的车载音响设备、前途无量的车载计算机信息终端设备以及形形色色的车内电控单元,如发动机电控单元、ABS、总线、新型电子仪表等。
  对汽车仪表而言,使用电子式仪表板较之传统仪表的优势在于:
  ·硬件功能的软件化
  随着微电子技术的发展,微处理器的处理速度越来越快。一些实时性要求高,原本由硬件完成的功能,就完全可以通过对微处理器编程来实现。
  ·系统集成度大大提高
  在大规模集成电路技术迅速发展的今天,集成电路的密度越来越高,体积越来越小,内部结构越来越复杂,功能也越来越强大。随着仪表的部分功能硬件不断地被软件取代,整个系统的集成度也在相应提高。
  本设计是一个基于Freescale单片机的汽车组合仪表板。面向的是目前市场上占主流地位的传统汽车,并引用长安车的仪表为模板,目的主要在于实现一个汽车组合电子仪表板的低端方案。
  本方案的对象主要包括车速、转速、压力、温度、里程、时间以及一些提示/报警灯信号。
  ·车速表、发动机转速表、油压表、水温表(指针)
  ·里程表(LCD):定时记录车速信号,在行车时间内做数值积分,得到行驶公里数,作为里程保存在用户Flash中。定时(1s)对里程数据做累加。
  系统设计
  由于本设计面向的是大众化的传统汽车,成本成为器件选用的最重要标准。在微控制器的选型上,我们并未考虑前途光明但目前尚未普及的CAN总线,而是选择了自带液晶驱动的8位微控制器LJ12。
  MC68HC908LJ12是Freescale单片机908家族的一员,其主要参数与功能模块如下:
  ·8MHz的最大总线频率;
  12k用户Flash;
  ·512b RAM;
  ·两个独立双通道定时器模块;
  ·内部实时时钟,可记录年、月、日、时、分、秒;
  ·SCI与SPI通信模块;
  ·6通道10位A/D;
  ·LCD模块,可驱动27×3或26×4的笔段式液晶模块。
  步进电机驱动芯片MC33970(图1)是Freescale模拟家族的一员,内含6个寄存器,由SPI写入命令状态字,分别是配置/校准寄存器、指针速度寄存器、指针0/1位置寄存器、指针回零寄存器、归零设置寄存器。MC33970的特点:




  ·兼容MMT认证的两相步进电机;
  ·指针可停留在4095个稳定的位置;
  ·最大转角340°;
  ·最大加速度4500 deg/s2;
  ·最大速度400 deg/s;
  ·模拟微步(指针运动12步为1°);
  ·指针校准与回零;
  ·SPI控制,16位命令字;
  ·内部校准时钟;
  ·睡眠模式低电流。
  LJ12芯片内部有丰富的硬件资源,我们做了如下配置:
  ·PLL:外部晶振32.768kHz;内部总线倍频至4MHz;
  ·SCI:用于上位机通讯,比特率9600,中断方式;
  ·SPI:时钟1MHz,作为MC33970的控制,用两个通用引脚作为SPI的片选信号;
  ·LCD:使用26×4模式,即26前极、4背极的模式,动态驱动;因为设计中用到6位LCD模块,所以使用FP1"FP12、BP0"BP3已经足够;
  ·Flash:利用常驻内存函数(ROM-Resident Routine)将里程数据以32位数据的形式保存于用户闪存中。
[1] [2]  下一页
         
          [/td]
        [/tr]
      
  
         
   
 选取SWITEC公司的步进电机作为执行器。六位笔段式动态驱动液晶模块,用于里程,单次里程或时间日期的显示。出于习惯,汽车仪表需要一直保持带电状态,无需重置时间参数,为了方便演示,用两个按钮实现LCD显示模式的切换。六个发光二极管分别用于显示制动、危险、机油压力、电瓶、发动机以及空档信息,利用MC1413作为发光二极管的驱动。
  MC33970由微控制器的SPI直接驱动;车速和发动机转速为脉宽调制信号或来自串口输入,通过定时器模块的输入捕捉功能得到其频率,换算得数据。
  电源及掉电保护的输入端使用7805。为了在掉电的时候也可以及时地保存里程数据,在电源地输入端加一个1000mF或两个470mF的电解电容。电源断开的时候在IRQ引脚会产生一个中断信号,大电容可以维持单片机电源足够长的时间,使得单片机可以完成外部中断的服务程序。

  为了改善波形,在定时器引脚外添加了调理电路。
  本设计面向的是市场上的中低档轿车,为了实现这个初衷,根据长安轿车的仪表外壳及内部尺寸设计了仪表的PCB,并重新布局,系统框图示于图2。




  软件设计
  初始化程序
  内部总线倍频至4MHz;设置定时器模块的通道为捕捉功能;SCI波特率9600,开接收中断;SPI时钟频率1MHz;LCD模块26×4模式;使能Real Time Clock模块;MC33970与指针初始化;从用户Flash中读取先前记录的里程数据,并根据ODO/trIP信号加以显示。
  中断服务程序
  ·外部中断:断电后短时间内利用大电容的放电使指针回零。
  ·SCI中断:遵循一定的上位机协议,接受命令,改变LCD显示内容;改变车速和转速数据。
  ·RTC中断:每秒记录一次里程数据;根据车速信号换算里程数据。
  主程序
  定时读取里程数据,并在LCD上显示;每一次主循环结束的时候重启WATCHDOG;当车速或转速信号改变之后通过指针位置的变化作出反应。主程序流程图示于图3。




  结语
  以下是SWITEC公司的步进电机驱动芯片x15.089与MC33970的简单比较(表2)。




  ·卓越的性能
  其中响应的实时性好是MC33970最大的优势。
  ·紧凑的结构
  x15.089的工作是由微控制器的两个的工作是由微控制器的两个引脚控制一个步进电机,其中一个引脚输出方向控制信号,另一个引脚输出脉冲。所以对应控制每一路电机需要两个单片机引脚,控制4路需要8个单片机的通用IO口。
  MC33970则不同,由SPI输入命令字,即可控制两路步进电机;需要4路步进电机的时候,使用两片MC33970,但只需增加一根片选信号。这样总共只需要SPI模块和两个通用IO,从而节省了单片机的资源。
  ·成本
  表3是一个成本估计的简表。
  由上可以看出,在批量生产的情况下,作为一个全数字式系统,其总成本低于RMB150,大约在RMB120"140之间,具有相当的竞争力。
  综上所述该方案是一个基于Freescale微控制器的汽车电子仪表板的低端方案,面向各种经济型汽车,具有功能齐备、结构紧凑、价格低廉的特点,会有广阔的市场前景。■上一页  [1] [2]
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-4-28 08:01 , 耗时 0.089849 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表