用于汽车网络的LIN协议分析_第1页
用于汽车网络的LIN协议分析_第2页
用于汽车网络的LIN协议分析_第3页
用于汽车网络的LIN协议分析_第4页
用于汽车网络的LIN协议分析_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、仅供个人参考用于汽车网络的LIN协议分析LIN协议适用于汽车内进行低成本、短距离、低速网 络通信,其用途是传输开关设置状态以及对开关变化 响应。本文详细分析了 LIN总线协议的特性、消息协 议的组成、检错机制等,并介绍如何基于PICmicro器 件来实现LIN总线从节点。LIN协议是由欧洲车辆制造商协会开发用来进行 低成本、短距离、低速网络通信,其用途是传输开关 设置状态以及对开关变化响应,因此通信事件是在百 毫秒以上时间内发生,而不像引擎管理等其它速度快 得多的汽车应用。此协议支持在单根线上进行双向通 信,使用由RC振荡器驱动的低成本微控制器,这样 可以省去晶振或陶瓷振荡器的成本。另外,此协

2、议实 际上是以时间和软件上的代价换取硬件上成本的节 约。LIN协议的每一条消息都包含自动波特率步进的 数据,最高可以支持波特率为20k,同时低功耗睡眠 模式可以关断总线,以避免产生不必要的功耗。总线 可以由任意一个节点提供电源。LIN总线特性图1 :典型的LIN协议配置LIN总线融合了 I2C和RS232的特性:像I2C总 线那样,LIN总线通过一个电阻上拉到高电平,而每 一个节点又都可以通过集电极开路驱动器将总线拉 低;像RS232那样通过起始位和停止位标识出每一个 字节,每一位在时钟上异步传输。图1给出了典型的LIN协议配置。当任意一个节 点将总线拉低时,总线处于低电平,标识着总线进入 占

3、用状态;而当所有节点都使总线浮空时总线处于电 池的电压(9-18V),则意味着总线处于非占用状态 (Recessive state);在空闲状态下浮空的总线通过电阻 被上拉到高电平。总线工作在9到18伏的电压下,但所有连接到总 线上的器件必须能承受40V的电压。一般情况下,微 控制器通过线路驱动器或接收器与总线隔离。总线在 每一个节点上被端接到 Vbat,主节点通过一个1kQ的 电阻端接而从节点则通过一个 20kQ到47kQ的电阻 端接。总线最大长度为 40 米。总线上传输的每一个字节都是与起始位和停止位 一起组成帧。起始位的状态与空闲状态相反 (即为 0), 而停止位则与空闲状态同为 1 。

4、在每个字节中,首先 传输的是最低有效位。消息协议主节点控制总线的方式是轮询各个从节点并与总 线上其余部分共享从节点的数据。从节点仅在接到主 节点的命令时才进行数据传输,这样就可以进行双向 传输并且无需进一步的仲裁。消息传输是以主节点发 出一次同步中断开始,紧接着是消息的同步字段和消 息字段。通过在每条消息的起始处传送的同步字段还 设定了整个总线的时钟,每个从节点用该字节来调整 其波特率。同步中断使总线进入占用状态,该状态保持时间为13位数据的传输时间,紧接着是一个停止位(非占 用状态),这告知从节点即将有消息传输。主节点与从 节点的时钟漂移最大允许在15%,因此从节点接收的 同步中断可能只有1

5、1位或长达15位数据位的传输时 间。每一条消息的第二个字节是标示字节,用来告知 总线在该字节后面传输的是什么数据和哪一个节点应 该应答,以及应答的长度(标示字段如图2所示)。- 条命令仅会有一个从节点对其进行响应,从节点仅在 主节点的指示下才发送数据。数据只要出现在总线上, 每一个节点都可以接收到。因此,无须主节点专门控 制从节点之间的通信。AltVn*i 4-:图2:标示字段组成由于设计中采用廉价的 RC 振荡器,从节点必须在 每一次传输时检测主节点的波特率并调整其自身当前 的波特率。因此,每一次通信都由一个由交替的 “0” 和“1组”成的同步字节开始。 标识字段紧跟在同步字段 的后面,它告

6、知总线后面传输的内容是什么。标识字 段又分为三个子字段,最低 4 位(0-3 位)是寻址总线上 的器件,中间两位 (4-5 位)是后面传输的消息的长度, 最高两位 (6-7) 用作奇偶校验位。除了睡眠命令, LIN 协议并没有定义每一条消息的 内容。其它命令是由具体应用来定义的。检错机制下面描述的错误必须被检测出,并且在每个节点 内进行计数。位错误 -传输节点必须将它认为应该传输的数据位 与总线上实际出现的数据位进行比较。由于总线需要 响应时间,控制器必须在检测数据位之前等待足够长 的时间。假设最小的电压翻转速率为 1V/ ns而总线最高电压为18V,则发送器必须等待18 才能检测总 线上的数

7、据位是否正确。校验和错误 -每一条消息的内容都是由校验和字节 进行保护。奇偶校验错 -命令字节的 6 个数据位由两个奇偶校 验位进行保护,需要重新进行计算这些位并比较。如 果错误出现, 应当忽略当前命令并且记录下错误。 LIN 协议中没有直接的错误报告机制,但每一个从节点应 当跟踪其自身的错误,主节点可以要求从节点将错误 状态作为正常消息协议的一部分来传输。LIN 总线与 CAN 总线LIN 协议并不直接与 CAN 总线兼容,但人们期望 两者进行相互操作。 CAN 总线可能用在整个汽车内来 实现通信,而 LIN 总线仅用在汽车的局部电路内,如 车门。为了连接两种总线,需要采用 CAN-LIN

8、协议接 口节点,该节点从 LIN 总线节点收集信息然后传送到 CAN总线上。低功耗睡眠模式主节点通过发送标识码0x80指示所有节点进入睡 眠模式,睡眠命令后面跟随的数据字节的内容没有定 义。收到睡眠命令的从节点应当对本身进行设置,以 便当总线发生改变时能唤醒,并关闭自身的电压以使 电流消耗最低。当处于睡眠模式时总线将处于高电平 并且不消耗电流。任意一个节点都可以通过发送唤醒信号来唤醒总 线。当收到唤醒信号后,一般情况下所有的节点应当 激活并等待主节点开始总线轮询。硬件示例图 3 :采用 LIN 协议的示例硬件。图 3 给出了有两个按钮和三个 LED 组成的硬件示 例。每按动十下按钮 1 LED

9、1 改变一次状态。同样, 每按动十下按钮 2,LED2 改变一次状态。 作为标识为 ID1 的响应,按钮的按动次数被传送到总线上。作为 标识为 ID4 的响应,按钮的按动次数的刷新被传送到 总线上。软件操作LIN 协议程序工作在由 RB0 触发的中断下以实现 总线的睡眠 / 唤醒。在触发中断时, 程序对低电平数据 位的长度进行计数,然后读同步字节并确定数据位时 间,最后再将其与最初的数据位时间进行比较,以确 定最初的低电平时间是否大于 10 个数据位的时间, 大于 10 为同步中断,小于 10 为唤醒信号。如果是唤 醒信号,程序退出并继续等待同步中断;如果是同步 中断,程序就读取命令字节,检查

10、奇偶位并检查动作 表(action table)来确定接下来的动作。动作表定义了 总线上数据的来源或目的地。为了初始化 LIN 协议的从节点句柄 (Slavehandler) ,用户必须调用 InitLinSlave 程序,这 个程序初始化RBO中断引脚和TMRO寄存器。TMRO 寄存器用来测量数据位的长度并生成波特率。初始化 完成之后,用户可以执行自己的程序。 一旦检测到 RBO 引脚上的下降沿,用户程序就将被中断。当检测到下 降沿时,程序就跳转到中断服务程序。必须禁止除了 TMRO和RBO中断之外所有的中断源,以便对同步字 段进行精确测量。计算出波特率之后,中断服务程序 就退出执行。在下一

11、次RBO中断发生时,LIN协议Slavehandler 自动进入接收模式,以接收标识字段或数据字节。如 果检测到标识字段的起始位,就对标识字段进行接收 和解码。然后,根据收到的标识执行相应的代码,例 如存储数据或点亮LED。总线上一个帧传输完成之后, 标志FCOMPLETE被置位。这个标志指示所有的数据 都已正确接收完毕并可以进行后续的处理。此标志由 用户固件清除。LIN 协议从节点句柄 Slavehandler 最高可以工作 在 2OK 的波特率下, 需要 42O 字的程序存储空间以及23 字节的数据存储空间由于其低成本, LIN 协议具有在汽车应用中广泛采 用的潜力。可以使用内置的 RC

12、振荡器并且运行在4MHz 的时钟频率下的诸如 Microchip 的各种器件的微 处理器,使得设计师们能以最低的可能成本设计应用 系统。旅程电脑应用一ON BOARD COMPUTER(BCV)For personal use only in study and research; not for commercial use功能键说明 :1. 数字键 :1000,100,10,1, 提供键入数字功能 .例如要键入 2315 的数字时 ,应如下操作键入 :按 1000 键 2 次。按 100 键 3 次。按 10 键 1 次。按 1 键 5 次。数字键可提供 09或0090,或00090,或0

13、0009000的键入,因此数字 键可从 0000 到 9999 范围。如果按住任何一个数字键,时间超过0.75 秒以上时 ,数字会自动从 0 到 9,以每 0.5 秒进一位。该四个数字键在此功能设定时 1000 这个键功能不存在。2. 设定 重设定键 :SETRES 提供设 全入完结后 ,按此键确认功能 ,或重新设定。3. 检查键 :CHECK 提供系统自我诊断 ,该功能键具有如仪表板资讯区以文字模式显示一般故障指示或具有 CHECK CONTROL 功能,如果系统正常,按下 CHECK 键后, 会显示“ CHECK CONTROL OK ”。4. 报时键 :MEM 提供设定报时声响 ,平时未

14、设定时 ,会在每个小时前 15 秒的声响 ,告知驾驶人一个小时又到了。设定程序如下 : W710G$B+l 按下 MEM 键三少后,大显示幕会出现 MEMO 字幕,在小显示幕会出现: 00, 可利用 10 与 1 键去设发钟报时,如你要每个小时 45分钟前 15 秒即报时, 可按 10键 4下,按 1键 5下,再按 SETRES 键确认即可。 如此每到 45 分钟前 15 秒即会有报时声响。5外部温度指示键:A-TEMP可指示车外温度在 3C以下温度时,会有专程警示。6. 平均耗油量值键 :CONSUM 或 VERBR, 当按此键可显示该车辆平均耗油量指示,可利用SET'RES 键去归

15、零。Ar_#_O& c7. 平均车速键“ SPEED 或 GESCHW 可计算从甲地到乙地目前所行驶之平均车速。8. 范围键 :RANG 或 REICHW 可显示目前油箱中之油量还可行驶多远距离之公里数。9. 预定到达键 IST 在出发前先键入甲地到乙地时间或还有多少距离。10. 限速键 IMIT 当车速超过速线时即会有警告 ,提高速即警告之程序 : 将车辆行驶到所要警告的车速 ,再按一下 LIMIT 键即可。 只要车速超过此速度即会有警告声响。11. 计时器键 :TIMER 只要按下此键即进入跑马表计时器功能,再按一下即停止计时。12. 密码功能键 :CODE 防盗码键入设定作用时

16、,引擎无法发动。 防盗程序:点火开关 KEY ON。 按 CODE 键一下。 利用数字键键入一组你记得住的防盗码。 按 SETRES 键一下。 点火开关 KEY OFF。 即进入防盗功能。解除防盗程序: *方法一:点火开关 KEY ON。 键入你原键入之防盗码。 发动引擎即完成。*方法二:拆开电瓶线 5分钟以上。 装回电瓶线,将点火开关 KEY ON。 防盗会叫约 15 秒钟后停止。 等待 15 分钟后,即可发动引擎完成解除13. 公 英制切换键 :KMMLS 按下此键切换公里 英里单位。14. 日期键 DAT 按此键显示目前日期 ,可利用 SETRES 键及数字健去重新键入日期。15. 时钟

17、键 :UHR 按此键显示目前时间 ,可利用 SETRES 键及数字键去重新键入时间。 旅程电脑功能测试程序 :同时按1000及10键,直到大显示幕出现:“ TEST NO: ”字幕。 _可键入 1 到 21 数字,以 SETRES 键确认。测试项目 1 到 21 项功能:键入 1 :显示幕测试。 (大、小显示幕所有字全显示 )键入 2:显示目前耗油量以公制显示公升 100公里。键入 3:显示目前耗油量以公制显示公升 小时。键入 4:显示平均耗油量可再行驶之里程数。键入 5:显示目前油箱油量可再行驶之里程数。键入 6 :蜇无功能 ( 没有使用 )键入 7: 显示目前油箱油量键入 8:显示目前车速

18、。 (公里 小时)键入 9:显示 IGN 电源电压。 (伏特)键入 10:读出该车之国别码及设定。键入 11:读出及设 AMPM 。 (上午 下午 )键入 12:计算平均车速及到达目的地时间。键入 13:计算预计到达目的地时间。键入 14:设定软体时间。 (BC IV 才有)键入 15:制造单位测试用。键入 16:制造单位测试用。键入 17:显示该车特殊资料。 (全车 )键入 18:改声响持续或间歇。键入 19:此测试功能锁住或开放键入 20:耗油量修正值。键入 21:软体重新设定 (利用 SETRES) 键操作。不得用于商业用途仅供个人用于学习、研究;不得用于商业用途For personal use only in study and research; not for commercial use.Nur f u r den pers?nlichen f u r Studien, Forschung, zu kommerzei Zwecken verwendet werden.Pour l ' e tude et la recherche

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论