车窗控制系统的LIN2.1协议应用

发布者:数字舞者最新更新时间:2013-01-11 来源: 21ic 关键字:LIN2.1协议  定时器  Flash 手机看文章 扫描二维码
随时随地手机看文章

引言

LIN协会于1999年发布了第一版LIN协议,至今已有十几年了,在这十几年中,LIN总线不断发展,已经在以车身控制为主的许多场合得到了应用。LIN总线至今一共有7个版本,其中,LIN2.1协议于2006年11月发布,是目前较新的一个版本。它与最新的LIN2.2协议几乎没有区别,却比它的前身LIN2.0协议有明显的改进,主要体现在加入了事件触发帧的竞争处理、完善了节点配置功能和进行了诊断分级三个方面。这些改进使用户可以更加方便和快速地组织LIN网络,可以根据自己的需求重新设置LIN网络,既保证了产品的稳定性,又满足了用户的个性化需求,是LIN总线自身发展过程中很有意义的一步。

1 LIN2.1协议的新特点

1.1事件触发帧的竞争处理

如果有多于一个的从节点在同一个帧时隙里响应帧头,就会导致竞争,竞争处理郜是由主节点完成的。LIN2.0的事件触发帧竞争处理机制如图1所示。某主节点的进度表中有无条件帧A、事件触发帧和无条件帧B.当竞争发生后,主节点会继续按照之前的进度表,在接收完所有与事件触发帧相关的无条件帧后,再发送事件触发帧帧头。LIN2.1对此作出了改进,它引入了竞争处理进度表,LIN2.1的事件触发帧竞争处理机制如图2所示。每个事件触发帧都有与之相对应的竞争处理进度表,主节点在竞争处理进度表里处理完竞争后,再返回执行普通的进度表。显然,LIN2.1的竞争处理机制需要花费的时间较短。
 


1.2节点配置功能的完善

1.2.1新增分配一系列帧ID的功能

将配置功能分配帧ID改为分配一系列帧ID.LIN2.0和LIN2.1协议中分配帧ID的格式如图3所示。在LIN2.0中,只有NAD和Supplier ID都匹配的情况下,分配才能成功,但每次只能分配一个帧ID.而在LIN2.1中,只需要NAD匹配就可以了,每次可以分配最多4个帧ID,而LIN 2.0中的Message ID在LIN2.1中已经被取消了。这种改进的目的是提高LIN网络配置的效率,更改后分配帧ID的速度最快可达到原来的4倍。
 



1.2.2新增保存配置的功能

LIN2.1协议新增了保存从节点配置信息的功能,将从节点的配置信息存入到掉电不易失的存储空间中。这样,主节点对从节点的配置存复位后也不会丢失。

1.3诊断分级

LIN2.1的另一大新特点是根据诊断功能将从节点分为3个级别。

(1)诊断一级

诊断一级一般应用于智能传感器或执行器等一些不需要或只需要很少诊断功能的器件。诊断一级支持所有节点配置功能,并且只需要单帧传输。[page]

(2)诊断二级

与诊断一级相比,诊断二级的节点增加了节点辨识的功能。例如,用户可以获得产品的软、硬件版本号等。此外,诊断二级还支持读写软件内部的参数,比如温度、车速等。诊断二级支持多帧传输。

(3)诊断三级

诊断三级的节点不仅包含了前面两级的所有功能,还支持内部Flash的擦写,用户可以通过LIN总线烧写程序。诊断三级支持多帧传输。

2 LIN2.1协议的节点配置功能

(1)分配NAD为了避免某个NAD被重复使用,用户可能需要为从节点分配新的NAD。

(2)有条件分配NAD当用户替换或增加从节点时,可能会出现两种情况:

①一种是用户不知道新增从节点的初始NAD,因此,必须以“广播”的方式寻找所有的从节点并分配有效的NAD(“广播”指的是给网络中的所有从节点发送请求,它有一个专用的NAD为0x7F)。但如果直接这样做,会导致所有的从节点获得同一个NAD,这显然是不允许的。为了避免这个情况,可以加入限制条件。

②另一种是用户知道新增节点的初始NAD,但其和LIN网络中已有从节点的NAD重复了。

如果用户只按照原始NAD分配新的NAD,则会导致两个从节点的NAD都被修改。因此,必须加入限制条件。当从节点获得有条件分配NAD的请求后,将根据下面的步骤判断是否要修改NAD:

①根据ID读取从节点的相关信息。
②根据Byte提取相关信息中一个8位数据,例如Byte=1,则提取D1.
③与Invert进行异或运算。
④与Mask进行与运算。
⑤如果结果为0,则修改NAD.例如:本产品被新增到一个LIN网络中,初始NAD为0x06,但网络中已有了一个NAD为0x06的从节点。于是,用户可以利用本产品的Func tion ID,假设为0x0000,分配新的NAD为0x08.这里似设已存在的从节点的Function ID不为0x0000.这样,只有新增节点的NAD会被修改,而已存在从节点的NAD维持为0x06不变。

(3)保存配置保存配置是LIN2.1添加的新功能,用来将从节点的当前配置存入非易失的存储空间中,下次上电时可以读出配置数据,这里主要是保存NAD和帧ID.(4)分配一系列帧ID这一功能可以配置最多4个帧ID,注意诊断帧ID和保留帧ID是不能配置的。

主节点的请求帧在D1中给出需要分配帧ID的第一个帧在帧数组中的序号,一般来说,从节点所用到的所有帧的ID会被排列成一个帧数组。如果要分配帧ID,则通过D2到D5给出新的帧ID;如果要禁止某个帧,则将这个帧对应的PID设为0x00;如果要继续使用现在的帧ID,则将这个帧对应的PID设为0xFF.(5)读取从节点信息读取节点信息根据D1中ID的值,可以读取不同的从节点信息。目前,只规定了ID为0和ID为1的情况,其他可保留或由用户自己确定。

3 LIN通信的实现

3.1 TLE9832的LIN模块

TLE9832是一款由英飞凌公司生产的8位功率级单片机,专门用于车窗控制。其中的LIN总线模块支持LIN2.1和LIN2.0,并向下兼容LIN 1.3.该模块可以工作在普通模式、接收模式和禁止模式下。各个模式的特点如表1所列。
 

其中,普通模式又可根据传输速率的大小分为低速模式、中速模式、高速模式和Flash模式。低速模式的最大传输速率为10.4 kbps;中速模式是普通的LIN传输模式,最大传输速率为20 kbps;高速模式的最大传输速率为40 kbps;Flash模式的最大传输速率为11 5 khps.为了避免打断传输过程,在普通模式下禁止改变传输速率。正确的做法是先禁止发送功能,再改变传输速率,最后允许发送功能。

LIN模块在普通模式下还建立了一种自动省电机制。当发送队列中没有数据时,将自动禁止发送功能;当有发送请求时,将自动开启发送功能。

3.2基于TLE9832的车窗防夹控制系统

基丁TLE9832的防夹车窗控制系统是英飞凌-同济微控制器与嵌入式系统实验室的最新研究成果。用户可以通过按键或者LIN总线控制车窗的上升和下降。基于TLE9832的防夹车窗系统原理图如图4所示。可通过控制PWM信号控制电机的转速,而霍尔传感器TLE4966又会采集电机的转速并传送给TLE9832,这样就构成了闭环控制。此外,电机的电枢电流在转化为电压信号后,被传送给TLE9832的ADC模块。如果车窗在上升过程中遇到不正常的阻力,电枢电流和电机转速都会发生异常的变化,TLE9832可以根据这种变化判断是否执行防夹算法,避免伤害乘客。
 


3.3 LIN通信部分的软件设计

LIN通信部分的程序流程如图5所示。可将车窗控制器中LIN通信部分的程序分为两个部分:①第一部分为初始化,在每次重新上电后,程序都会首先读取Flash中的数据,若0x8000中的数据为0x78,则判断产品在出厂后执行过保存配置的功能。所以程序会将存储在Flash中的NAD和帧ID读出来,作为当前的NAD和帧ID.接着是初始化LIN模块,包括设置与LIN通信相关的定时器和UART等外设,设置从节点的各个参数、波特率等。[page]
 


②第二部分则放在定时器中断里面,在每次中断时进行节点配置、数据的发送和接收。首先是根据帧ID判断有无节点配置任务,若有则根据SID执行各种节点配置任务;接着根据收到的数据帧内容控制车窗的自动上升和自动下降;最后将车窗信息,包括电枢电流、车窗位置等发给主节点。

4 LIN通信的测试结果

本测试借助Kvaser公司出品的LIN通信测试工具Lcaf Professional LIN及其配套软件CANLab完成。测试时测试工具设置为主节点,TLE9 832单片机设置为从节点,比特率设置为19200 bps.初始NAD设置为0x06,初始帧ID为无条件帧0x00、0x01和诊断配置帧0x3C、0x3D,Suppli erID和Function ID都为0x0000.首先测试节点配置的各个功能:先测试分配NAD功能,将NAD修改为0x03;接着测试有条件分配NAD功能,将NAD修改为0x08;然后测试分配一系列帧ID功能,并保存设置;最后重新上电,并读取从节点信息。节点配置功能的测试结果如图6所示。
 


然后通过LIN总线控制车窗自动上升和下降,测试结果如图7所示。


最后通过LIN总线获得车窗上升过程中电枢电流的数据,并转换成图形,如图8所示。其中电流值为经过A/D转换后的结果。
 

结语

本文基于LIN2.1协议设计了防夹车窗控制系统中的通信模块。可以看出,该模块可以很好地满足用户在数据传输和诊断等方面的需求。LIN总线自身的发展必将推动车身控制领域的进一步发展。

关键字:LIN2.1协议  定时器  Flash 引用地址:车窗控制系统的LIN2.1协议应用

上一篇:低速电动汽车有市场无身份
下一篇:无人驾驶汽车的秘密,是谁操控着方向盘?

推荐阅读最新更新时间:2024-05-02 22:30

MSP430 定时器输出PWM波形
硬件介绍: MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。 MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA有三个模块,CCR0-CCR2;TB含有CCR0-CCR67个模块;其中CCR0模块不能完整的输出PWM波形(只有三种输出模式可用);TA可以输出完整的2路PWM波形;TB可以输出6路完整的PWM波形。 定时器的PWM输出有有8种模式: 输出模式0 输出模式:输出信号
[单片机]
MSP430 <font color='red'>定时器</font>输出PWM波形
PIC 1508 TIM0的定时器使用
使用TIM0的频率计算公式f=FOSC/4/PS/TMR0 (TMR0是TIM0的数据寄存器) void main() { OSCCON = 0x78;//主频率为16M 即FOSC = 16M __delay_ms(50); ANSC6 = 1; TRISC6 = 0; RC6 = 1;//RC6接了一盏LED OPTION_REG = 0xc0; /*TMR0CS = 0(内部指令周期时钟 (F OSC /4)) PSA=0 (预分频器分配给 Timer0 模块) PS=0(1比2分频)如果想要1:1分频,则PSA= 1;*/ TMR0IE = 1;//允许
[单片机]
PIC 1508 TIM0的<font color='red'>定时器</font>使用
Flash、MCU、DRAM,兆易创新三驾马车并驾齐驱
过去一年,在国产替代和政策红利的大背景下,A股半导体上市公司备受资本追捧,涌现出一批破千亿市值的半导体公司。据Wind统计显示,2019年度,A股半导体指数从年初1540.63点,增长至年末2870.35点,整体累计涨幅达85.77%,其中多家半导体产业细分领域的龙头在并购整合之下,公司股价呈倍数增长,市值一路涨超千亿大关。 不过,今年以来,受新冠疫情引发的全球股市震荡等多方面影响,半导体概念股普遍开始“降温”,投资逐渐趋于理性。而A股这批破千亿市值的半导体公司价值逻辑依旧成立,其中有别于靠单项产品拉动企业业绩增长,兆易创新凭借存储+微控制器+传感器三路并进,辅以DRAM进入突破阶段,成长弹性更具优势。 根据最新财报显示,
[嵌入式]
<font color='red'>Flash</font>、MCU、DRAM,兆易创新三驾马车并驾齐驱
美光推出176层3D NAND Flash,新技术新架构
据美媒Anandtech报道,美光日前宣布了其第五代3D NAND闪存,新一代产品拥有破纪录的176层构造。报道指出,新型176L闪存是自美光与英特尔的存储器合作解散以来推出的第二代产品,此后美光从浮栅( floating-gate)存储单元设计转变为电荷陷阱(charge-trap)单元。 美光公司的上一代3D NAND采用的是128层设计,这是它们的短暂过渡节点,可帮助他们解决向陷阱闪存切换碰到的任何问题。美光的128L闪存在市场上的占有率极低,因此在许多情况下,他们的新型176L闪存也将替代其96L 3D NAND。 根据报道,美光并没有披露其176L NAND的更多技术细节。但就目前而言,我们知道他们的第一个
[嵌入式]
美光推出176层3D NAND <font color='red'>Flash</font>,新技术新架构
AVR单片机定时器TIME0普通定时实验程序
/*很简单的问题费了好大的劲,注意中断向量地址和向量号的区别,*/ /*这样的是时钟节拍可以搞到微秒级的,太好了这样对以后搞操作系统是很管用的,节拍直接影响CPU的利用效率*/ /*节拍器越小,时间片就越准确,对于整个系统的统一是绝对有意义的,*/ /*AVR定时器普通定时实验 0415 天津第四项目部宿舍 */ #include iom16v.h #define uchar unsigned char #define uint unsigned int #define set_bit(a,b) a|=(1 b) #define clr_bit(a,b) a&=(1 b) #define get_bit(a,b) a&(
[单片机]
S3C2440 NAND Flash的使用
1、基本知识 NAND flash: 速度快,擦写5ms内;位翻转概率较大,为10%左右;容量大,块容量在8K以上,擦写次数较多;接口为IO接口 NOR flash: 速度慢,擦除5S时间;位翻转概率小于NAND flash;容量较小,块容量在64K以上,擦写次数没有NAND flash多;接口为RAM接口,可以直接运行程序 2、注意事项 2.1:在每次写操作之前需要进行擦除操作 2.1:使用前扫描坏块,不再使用 3、容量关系 1页 = 512 + 16字节 1块 = 512B * 32页 = (16K + 512)字节 1个器件 = 4096块 = 528M 不同的flash有不一样的页块大小,对于K9F2G08U0C来
[单片机]
TMS320C54x DSP在线烧写FLASH存储器并实现自举引导的方法
摘要:通过一个完整的实例,详细阐述了TMS320C54x系列DSP芯片在线烧写FLASH存储器。并实现自举引导的方法。给出了硬件连接方案和完整的C语言烧写程序。 关键词:TMS320C54x FLASH 烧写 自举引导 在DSP系统中通常贴片式FLASH存储器保存程序,并且在上电或复位时再将存储在FLASH中的程序搬移到DSP片内或者片外的RAM中全速运行。这个“程序搬移”的过程叫做自举加载。 本文以TMS320C5416 DSP对MBM29LV400BC存储器的操作为例,详细阐述了在线烧写FLASH并实现自举加载的方法。该方法适合于大多数C54x系列DSP对符合JEDEC标准的FLASH的操作。为便于读者使用,本文的程序
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved