导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→LIN软件的说明[原创][sz20120406]

 *第30921篇: LIN软件的说明[原创]

  
楼 主:sz20120406 2012年4月11日12:57
 LIN软件的说明[原创]
LIN软件的说明
系统要求 
那么LIN是如何满足对低功耗、低系统成本、功能增加甚至减少汽车总重量的要求呢? 
首先它可以方便地用软件实现LIN协议,该协议不需要单片机给予过多的硬件支持,通过使用一个简单的USART或增强型USART就可以实现。USART支持诸如自动波特率检测等功能,这意味着在LIN应用中可以使用一个简单的质优价廉的8位单片机。还有一个优点就是LIN在协议层不需要复杂的操作系统,不多的软件开销还使得设计人员能够选择存储器容量较小的单片机。 
如何运用像LIN这样的简单协议对汽车进行控制呢?以车镜控制为例,许多汽车的车镜相互之间仍是硬连接,或者在豪华型汽车中通过CAN这样的昂贵协议连接,其实利用LIN总线就可以方便地将左右车镜和四向仪(可以改变车镜位置的四方向开关)连接起来。在典型的LIN方案中,四向仪是主节点,两个车镜是从节点。四向仪读取按键的状态,将报文发送给相应的车镜。 
那么使用LIN能够为诸如车镜控制等应用增加新功能吗?回答是不需要额外连线,就可以方便地添加其它功能,如集成式转向信号、集成式照地灯或车镜加热器。这里车镜只需要与地电位、VBAT和LIN总线连接,需要改动的只有主节点,它必须知道要实现哪些车镜功能。 
该网络中的主节点是一个PIC18F4680 8位闪存单片机,它读取车镜选择开关和四向仪,还通过CAN总线接收报文。从CAN总线发送给主控LIN节点的报文包括左右转向信号和开门,接收到来自CAN总线的报文后,主节点通过LIN总线向从节点发出命令,如“左车镜上升或左车镜下降”。 
在此例中,从节点由PIC16F688 8位闪存单片机组成。PIC16F688具有一个集成的LIN收发器和一个增强型USART,其中USART能自动执行自动波特率检测。从节点收到报文并利用步进电机使车镜上升或下降。假设车镜模块没有集成式转向信号等其它功能,当从节点从LIN总线上接收到一条诸如“左转向信号”的报文时,它就会忽略这一报文或者触发I/O用于转向信号(这部分内容已超出本文讨论范围)。触发I/O的好处是无论车镜是否集成了转向信号都可应用相同的软件,只需要对硬件做适当更改即可运行,也就是说功能不同的各种车镜都可以使用同一软件。 
LIN软件 
LIN主节点有三个主要的软件进程,第一个进程接收CAN报文,并将其转变为LIN报文;第二个进程读取四向仪和车镜选择开关的状态;第三个进程向从节点发出报文。 
如果主节点从CAN总线上接收到“左转向信号打开”的报文,它会将该报文转变成LIN协议,并发送给适当的LIN总线节点(在本例中为左车镜)。对PIC18F4680中的CAN控制器进行编程后,它可以只接收来自CAN总线的特定报文,而不会有任何其它软件开销,这一硬件过滤方式使CAN总线的通讯只有极少软件工作量。PIC18F4680也集成了一个可用于LIN总线通讯的USART,由于LIN总线主节点不必执行自动波特率检测,因此它能够通过USART发送整条报文。 
车镜从节点有n+1个进程,其中n是车镜中集成的功能数目。如果只要控制车镜的上下左右,软件进程就只有2个,第一个是收发进程,第二个是车镜控制进程,主要驱动步进电机,其它可能的进程有“照地灯开”和“左转向信号开”。因为PIC16F688有一个增强型USART,可实现波特率检测,所以LIN通讯的软件开销非常少,这就为实现其它功能(包括检修)留出了很大余地。 
(本文由Cogo商城-IC元器件在线采购平台搜集整理,
浏览 了解更多详细信息)

>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:用于免提系统的回声消除软件[转帖]

[下一篇主题]:CVC-HFK软件介绍[原创]