飞思卡尔最新的汽车级8位微控制器MC9S08SC4便是本文所要介绍的主角,该款微控制器是业界使用广泛的飞思卡尔HCS08系列汽车级微控制器家族最新的成员,以其低成本、小封装但同时兼具高性能、高可靠性的特点,适用于众多汽车电子应用领域,例如:简单的灯光控制、按键控制、HVAC、LIN通信控制器、车内后视镜调光以及简单的继电器和马达控制。如果你正在为你的应用物色一颗高性能、低成本的汽车级微控制器,但又为电子模块成本和PCB面积的限制而苦恼,相信MC9S08SC4正是你要找的这颗芯片。
MC9S08SC4的片上资源及性能
MC9S08SC4作为飞思卡尔HCS08汽车级8位微控制器家族的成员,设计上延续了HCS08微控制器许多的优点,例如总线频率高达20Mhz的HCS08内核,高质量汽车级内置Flash存储器可用于EEPROM的模拟,芯片上自带的时钟振荡器在全温度和电压范围内可校准至±2%的精度,还包括内部增强型支持LIN通信的串口控制器。图1是MC9S08SC4芯片内部的结构框图和资源配置。
MC9S08SC4的典型应用
人们在选择家用轿车时,对舒适性要求不断提高,因此在整车的设计中舒适性能也受到越来越广泛地重视,舒适性能已成为购车因素的一项重要指标。因此即使在许多中低端的轿车上这种需求也随处可见,例如现在汽车的方向盘已经不仅仅是传统的只具备控制方向和喇叭的功能,在它上面往往会集成用于控制其他功能的按键,例如控制收音机的操作按钮、控制DVD或者CD播放的操作按钮、手机蓝牙免提、自动巡航控制按钮,甚至还预留了用户可配置功能的按键。方向盘按键的不同风格体现了每种车型不同的个性,因此按键设计正受到越来越多车厂的关注。
本文所要介绍的MC9S08SC4微控制器非常适合类似方向盘按键这样应用,能帮助汽车制造商在不增加高昂成本的情况下获得比竞争者对手较大的差异化优势。MC9S08SC4在键盘的应用中可作为一个LIN通信的Slave节点,负责采集来自方向盘按键的各种控制信号,然后通过LIN总线将这些信号传递给车内其他的控制器单元,这些控制包括车身电子控制器、CD或者DVD控制器、蓝牙通信控制器和仪表盘控制器等。
图2所示是利用MC9S08SC4作为方向盘按键控制器的系统框图,简单地表明了整个控制系统从键盘信号输入端经过逻辑控制最终输出驱动信号这一完整的控制流程。汽车方向盘按键控制器单元由蓝色框内部组成,虽然整个控制系统的结构相对简单,但是该应用还是有一些设计上的挑战。
汽车方向盘按键控制器系统设计挑战
汽车方向盘按键控制器的设计,主要的挑战在于:
方向盘按键控制器在安装的空间上受到限制,由于控制器会被安装在方向盘面板附近的位置,因此需要在设计时尽可能减小PCB的面积,以方便地嵌入到方向盘下方狭小的空间,并且要避免和其它模块例如ABS安装的位置发生冲突。
方向盘按键控制器在为驾驶员带来操控舒适性和驾驶乐趣的同时,需要承担来自按键发出的多重的控制命令并将这些命令发送给相应的控制模块,例如各种和CD/DVD相关的娱乐功能,定速巡航控制和手机或者电话的免提功能,如果使用线束方式将这些功能分别连接到控制对象,将增加大量线束的成本和整车的重量,并且大量的线束也将增加布线的复杂程度,因此,通过汽车总线的方式实现模块之间的通信是一种性价比很高的选择。
对于成本敏感的应用中,如何尽可能减少外部元器件的个数,以及尽可能利用微控制器提供的片上资源来实现系统功能是设计关键所在。但这对微控制器本身的性能提出了严峻挑战,对于一颗汽车入门级的微控制器而言尤其如此。
MC9S08SC4如何应对系统设计挑战
MC9S08SC4系列微控制器在芯片设计之初便预见到了在类似应用中系统设计锁面临的挑战,以下将介绍MC9S08SC4是如何逐一克服上述挑战的。
MC9S08SC4系列微控制器的封装为16-TSSOP,包括管脚的外形尺寸仅为6.40×5.00mm2,用于方向盘键盘控制器设计将大幅减少PCB面积。另一方面,由于在MC9S08SC4微控制器内部自带一个时钟发生器,并且在全温度和全电压范围内,经过校准后能实现最大误差不超过±2%的精度,因此,即使对于该系统中对时钟精度要求最高的应用(LIN的通信)来说也能够胜任。基于上述分析,用户可以直接使用内部数字时钟来提供LIN通讯和整个系统所需的时钟信号,从而省去在芯片外部接一个晶振或者时钟振荡器,达到节省PCB 面积和系统成本的目的。
对于汽车方向盘键盘所要负责的多种控制功能,通过LIN总线的方式同样能达到节省线束成本、减轻重量和便于功能的升级和裁剪的效果。LIN作为一种低成本、高可靠性的汽车总线系统,在车身电子系统中得到广泛的应用,虽然LIN控制器可以使用普通的串行口控制器UART实现,但是MC9S08SC4上的串行口控制器SCI模块不仅能实现UART的功能,而且还集成了和LIN通信相关的某些硬件特性,例如对于LIN通信中非常特殊的Break域的产生和检测过程,这种硬件集成的LIN通信的功能,相比使用普通UART控制器可帮助用户降低LIN通信软件设计复杂度,加快产品研发周期和上市时间。
图3所示是LIN通信数据帧结构图,其中位于最左边的Break域是由LIN总线系统中的Master节点发送,用于表明一帧数据开始的标志,相应的LIN总线系统的Slave任务需要正确识别Break域之后才能完成相应的LIN通信过程。在每一次LIN总线通信开始阶段,都必须由Master节点来产生一个Break域,才能发起一次LIN的通讯,如果这个过程可以通过硬件来完成,那么将大大降低CPU的工作负荷;反之,Slave任务对于Break域判别过程也同样存在这种差别。
根据LIN通信协议规定,Break域由至少连续13位的显性电平信号组成,它也是在整个LIN的数据帧结构中唯一不遵循如图4所示的字节结构形式的域。因此,对于标准的串行通信控制器UART产生和识别Break域,必须借助于软件和其他的硬件手段才能完成,这是软件设计的一大挑战。例如,当Master产生Break信号时,需要UART借助一个定时器通道,产生一段至少13个比特长度的时间,然后通过软件控制相应的Tx端口在这段定时时间内输出显性电平,才能完成一个Break域的产生。与之相对应,如果普通串行通信控制器UART作为Slave节点,当它需要检测Break域时,完成这个过程同样需要借助额外的硬件和软件手段完成。
但是,对于MC9S08SC4微控制器上的串行口控制器SCI,如果MC9S08SC4作为Master节点产生Break域的过程,只需要通过操作SCI中的相应控制寄存器中的SBK位便能产生;反之,当它作为Slave节点时,既可以通过查询状态寄存器中的LBKDIF标志的方式,也可以通过中断的方式自动识别LIN总线上是否有Break域。LIN通信的Break域的产生和识别在MC9S08SC4中,对于用户而言只需通过操作相关的寄存器实现,然后实际的操作过程则是通过SCI控制器的硬件在后台完成,相对于不具备这些硬件特性的普通串行通信控制器,MC9S08SC4在实现LIN通信的软件和硬件上都为用户带来了很多优势。
在汽车方向盘按键控制系统中,某些数据例如系统掉电之前最后的音量信息或者定速巡航的速度信息,都需要在下一次上电之后恢复,这个问题的常用解决方法是在控制系统中增加一片EEPROM来保存相应的数据,但是这种方案带来了增加PCB面积和成本的双重压力,因此目前嵌入式系统中对于存储量在几十个字节范围之内的掉电数据保存,都是通过微控制器系统中片上的Flash模拟EEPROM的方式来实现的。
但并非所有微控制器中的Flash都能够用于模拟EEPROM的操作,因为Flash模拟EEPROM的操作和Flash存储器的内部结构以及参数特性都有密切的关系。利用Flash存储器模拟EEPROM的操作,要求Flash存储器必须具备以下几个特性:对于Flash存储器的编程和擦除操作不需要外部的高电压支持,即微控制器内部能直接产生高压以支持编程和擦除的操作过程。Flash存储器需要支持较高的重复编程和擦除操作周期。当然这个参数和整个系统的需求密切相关,即在整个方向盘按键控制器的生命周期中所需要保存的参数数量和保存的次数密切相关。系统运行的过程中动态地保存参数到Flash,要求Flash控制器本身能够提供相应的寄存器接口,以便用户能通过软件的方式完成编程和擦除操作。
对于上述三个要求,MC9S08SC4的Flash存储器都能满足,在MC9S08SC4的Flash控制器内部自带高压泵以支持编程和擦除操作所需要的电压;对于Flash编程和擦除的周期问题,例如假设在方向盘按键控制器系统中需要对32个字节的数据做掉电保存,若利用4k字节Flash中的1k用于EEPROM模拟,那么在最差的情况下可以支持320,000次掉电保存,通常情况下可以支持高达3,200,000次的掉电保存。当然,根据不同的应用估算的结果不同,这需要客户根据具体应用合理地选择保存策略来达到尽可能多的掉电保存次数。表1给出了MC9S08SC4微控制器中Flash存储器的主要性能参数。
本文小结
本文通过介绍汽车方向盘按键控制器的应用,揭示在系统设计中可能面临的主要挑战,并阐述MC9S08SC4作为主控制器通过发挥芯片本身的优势,如何克服面临的设计挑战。因此,在汽车电子系统中,类似于方向盘按键控制器这种应用,不需要微控制器具备很复杂的数据运算能力和很高的实时性处理能力,但是对PCB的面积和安装位置有限制,对控制系统成本敏感,需要系统能通过LIN总线具备扩展性能以及需要具备汽车级的产品可靠性的应用场合,来自飞思卡尔半导体的8位汽车级微控制器MC9S08SC4是理想的选择。