微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > LIN总线技术在汽车智能灯控系统中的应用

LIN总线技术在汽车智能灯控系统中的应用

时间:09-26 来源:中电网 点击:

的标识符,它会接收或发送数据到总线(这里假设数据字节是8个,主机为接收数据,从机为发送数据,也可定义为主机发送数据,从机接收数据)。以下(1)~(3)为主机任务,(4)~(13)为从机任务。

(1)发送同步间隔场;

(2)接收同步间隔场和发送同步场;

(3)接收同步场和产生/发送ID域;

(4)接收ID域(报文过滤),拷贝数据到缓冲器(LIN transfer buffer) 并发送第一个数据字节;

(5)接收第一个数据字节和发送第二个数据字节;

(6)接收第二个数据字节和发送第三个数据字节;

(7)接收第三个数据字节和发送第四个数据字节;

(8)接收第四个数据字节和发送第五个数据字节;

(9)接收第五个数据字节和发送第六个数据字节;

(10)接收第六个数据字节和发送第七个数据字节;

(11)接收第七个数据字节和发送第八个数据字节;

(12)接收第八个数据字节和计算/发送校验和域;

(13)接收校验和域。

为了传输汽车智能灯控模块中所需要的信息,定义了7个字节变量a0、a1、a2、a3、a4、a5和a6,用于存储车灯故障状态信息;另外还定义了两个字节变量key_result0和key_result1,用于存储仪表盘的车灯按钮扫描信息。

车灯故障状态信息的定义分为数字量诊断组和模拟量诊断组:数字量诊断组包括驻车灯、示警灯和尾灯等20盏灯;模拟量诊断组包括前照灯、雾灯等6盏灯。每盏灯的故障状态有三种情况,用两个"位"来表示:正常状态(DIAG_OK),用"00"表示;断路状态(DIAG_OPEN_LOAD),用"01"表示;过载状态(DIAG_OVERLOAD),用"10"表示。例如,左驻车灯用a2的低两位表示,定义为static sbit parklightfrontleft_lowbit=a2^0、static sbit parklightfrontleft_highbit=a2^1;a2^1=0,a2^0=1,则表示驻车灯处于断路故障状态。如此推算,模拟量诊断组6盏车灯,故障状态信息需要占用12位,我们用字节存储器a0和a1表示;数字量诊断组20盏车灯,故障状态信息需要占用40位,我们用字节存储器a2、a3、a4、a5和a6表示。车灯故障状态信息共计7字节,采用字节数为8的报文帧格式传输,第8个字节用0补齐。

仪表盘车灯按钮共计16个开关量,每个开关量有两种状态,用一个"位"表示:按钮关断,用"1"表示;按钮打开,用"0"表示。我们用两个字节存储器key_result0和key_result1存储按钮信息,报文帧含有两个字节的数据量。

发送数据字节过程如图7所示。以发送车灯故障状态信息为例,这个状态机制用于把数据字节发送到总线上去,ID被定义为发送ID(SEND_ID)。

子状态及相应的收发器状态如下。

子状态1~8:节点用于发送数据字节 接收中断 LIN_vRxd_Interrupt;

子状态9:节点用于发送数据字节 接收中断 LIN_vRxd_Interrupt;

子状态10:校验和域已经被正确接收 接收中断 LIN_vRxd_Interrupt。

其中,子状态1接收中断中调用功能函数UCB_Txd,该函数获取用户数据存储的首地址。


接收数据字节过程如图8所示。以接收仪表盘车灯按钮信息为例,这个状态机制用于接收来自总线的数据,ID被定义为接收ID(REC_ID)。

子状态及相应的收发器状态如下。

子状态1:节点用于接收数据字节 接收中断 LIN_vRxd_Interrupt ;

子状态2:节点用于接收数据字节 接收中断 LIN_vRxd_Interrupt;

子状态3:节点用于接收数据字节 接收中断 LIN_vRxd_Interrupt;

子状态4:节点用于接收数据字节 接收中断 LIN_vRxd_Interrupt。

其中,子状态4接收中断中调用功能函数UCB_Rxd,该函数将接收到的数据存储入用户缓冲器。

4 结论

本文结合汽车智能灯控系统,对于LIN总线技术在汽车智能灯控系统中的具体实施应用,包括LIN总线模块的硬件接口电路设计和软件设计做了深入研究。实验证实:LIN总线凭借其结构简单、配置灵活、性价比高等方面的独特优势,不仅能够满足汽车智能灯光控制系统对数据信息传输的要求,而且节省成本,完全达到了期望的性能、价格要求,具有广阔的应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top