基于MC9S08SC4的汽车方向盘按键控制器技术
方式同样能达到节省线束成本、减轻重量和便于功能的升级和裁剪的效果。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通信的软件和硬件上都为用户带来了很多优势。
- 基于MC9S08SC4芯片的汽车方向盘按键控制器设计(08-23)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)