LIN总线笔记

先记录几个简写词:

EMC:Electro Magnetic Compatibility      电磁兼容性

EMI:  Electro Magnectic Interference    电磁干扰

ECU:Eleectronic Control Unit        电子控制单元

ESD:Electronic Discharge   静电危害

PDU:Packet Data Unit   分组数据单元

NAD:Node Address for Diagnose    诊断地址


1.关于诊断

a.首先主节点要发送ID为0x3C的帧,剩下的就是自己定义一些自己可以认出的数据在buf[0]、buf[1]……但是有些是固定的协议,比如发送ID为0x3C的报文:$00 $FF $FF $FF $FF $FF $FF $FF,从节点接受后就会做出睡眠的动作(睡眠处理要自己做的,比如关闭LED灯光,关闭其他硬件的运行等等)睡眠期间只保持总线上报文的检测,因为一旦总线上出现报文就视为唤醒。或者有硬件的动作触发了报文都可以唤醒睡眠。

       b.在常用的习惯中大家会默认几个buf值作为规范,比如buf[0]==0x7F为广播 reset……

c.诊断的大概过程:

               根据需要定义buf[i]一个或多个来确定可以通过报文来找到自己对应的功能--------->将要诊断的信息存放在一个数组中-------->收到主节点发来的报文后解析,如果帧头为0x3c接着判断buf[0]、buf[1]、buf[2](根据自己制定可以识别功能的位)--------->通过判断赋值为一个标志(用来在功能中证明收到主节点信息了需要我发送了)if(buf[0]==7F) && (buf[1]==0x23))  {function_flag=1;}-------->在功能模块中的function_flag判断等于1是就发送对应信息,当然这个功能模块需要在一个定时程序中调用,以便可以轮训function_flag的值决定是否发送本功能的信息。

你可能感兴趣的:(LIN总线笔记)