LIN总线技术在汽车智能灯控系统中的应用
的标识符,它会接收或发送数据到总线(这里假设数据字节是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总线凭借其结构简单、配置灵活、性价比高等方面的独特优势,不仅能够满足汽车智能灯光控制系统对数据信息传输的要求,而且节省成本,完全达到了期望的性能、价格要求,具有广阔的应用前景。
- 以灯光控制为例说明LIN总线在车身控制中的应用(05-24)
- 基于LIN总线的车灯在线诊断系统设计与实现(06-19)
- LIN总线及其在汽车分级制网络中的应用(01-28)
- LIN总线技术及其应用研究(02-17)
- 汽车轮胎压力检测系统技术和应用芯片(05-01)
- 汽车门锁模块的系统结构(05-16)