- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于普通单片机的LIN协议实现方案
1 概述
??? LIN协议是新出现的一种新型低成本串行 HYPERLINK / \t _blank 通信总线,其全称是Local Interconnect Network,即局部互联网络。它最开始出现于汽车行业,是为解决汽车智能化和网络化的发展要求和降低汽车制造成本的矛盾而提出来的一种串行总线协议,主要用于车门、车灯等需要简单控制但又要求智能控制的场合。它的主要特点是:采用单个主控制器/多从设备通信模式;基于普通UART/SCI接口硬件实现,协议简单;网络传输速率不高,最高可达20kb/s。由于LIN协议的突出特点是协议对硬件的依赖程度低,可以基于普通单片机的 HYPERLINK /zt/criengm/index.shtml \t _blank 通用串口等硬件资源以软件方式实现,成本低廉,因此可广泛应用于汽车行业以外的其他领域,如智能 HYPERLINK /list/wangluojiating.shtml \t _blank 家庭网络内部的数据传输、节点控制等场合。
??? 本文依据对LIN协议的分析,对其协议在普通单片机上的具体实现,即如何利用单片机有限的硬件资源实现LIN的主节点、从节点,进行可行性方案的研究、探讨。
2 LIN协议的简介
??? LIN协议的最新版本是LIN Specification Package Revision 2.O,包括协议规范、节点诊断配置规范、物理层规范、API规范等几个方面,从硬件配置到节点配置语言都作了详细的规定。下面就其协议规范作一简要介绍和分析。
??? LIN的数据传输是采用报文帧的形式进行的。一个完整的报文帧由1个主机节点发送的报文头(header)和1个主机或从机节点发送的响应(response)组成,如图1所示。报文头包括1个间隔场(break)、1个同步字节场(synch)和1个保护标识符字节场PID(Protected IDentifier)。间隔场是由持续了至少13个位时的显性电平和至少1个位时的隐性电平组成;由主机节点产生,标志着一次数据通信过程报文帧的开始。同步字节场包含时钟同步信息。同步字节场的格式是0x55,表现在8个位定时中有5个下降沿,即隐性跳变到显性的边沿。
??? 所有从机节点在主机节点发布报文头之后都应能检测到间隔场的存在,并且在正确地接收同步字节场后,准确计算出主机节点将要发送数据的波特率,并以此波特率作为下一步要发送或接收数据的波特率的设定值。这样,经过了间隔场和同步字节场的接收,所有的从机节点达到了与主机节点的同步。
??? 下一步,所有的从机节点以计算得到的波特率来接收报文头的保护标识符字节场。
??? 保护标识符字节场PID(Protected IDentifier)与标准的串行通信数据帧格式相同,由1位起始位和1位停止位及8位数据位组成,属于数据场,如图2所示。
??? 保护标识符字节场由两部分组成:标识符和标识符奇偶校验。ID0~ID5属标识符,确定了标识符的内容,可从0~63取值。其中,0~59(0x3b)用于信号传送帧,60(0x3c)和61(0x3d)用于传送诊断数据,62(0x3e)保留用于用户定义的扩展,63(0x3f)保留用于将来协议升级。奇偶校验位P0和P1则是对标识符位ID0~ID5的奇校验和偶校验,作为对接收到ID的校验措施,以确保接收ID的正确性。
??? 报文帧的响应(response)由3~9个字节场(data field)组成,包括2、4或8字节的数据场(data field)和1个校验和场(checksum)。它们是由要发送数据的节点(主机节点或从机节点)所发送的数据和校验场所组成,都属于数据场。
??? 校验和场(checksum)有两种:一般的校验和场与增强的校验和场。一般的校验和是数据场所有字节数据和的反码。和是按带进位加(ADDC)方式计算,所有数据字节和的补码与校验和字节相加的和必须是“0xFF”。增强的校验和与一般的校验和的区别在于计算数据场和时加上了保护标识符字节场。
3 LlN协议在普通单片机上的实现
??? 现在单片机种类繁多,硬件资源各不相同,功能也千差万别。总体来讲,基于普通单片机软件实现LIN协议的方法可分为两大类:一种是基于单片机通用串口的实现方式,另一种是基于单片机两个普通端口位的位操作实现方法。
??? 3. 1基于单片机通用串口LlN协议的实现
??? 基于单片机通用串口的LIN协议的实现方法主要是针对具有通用串口的单片机来讲的。这类单片机的代表当属最常用的51系列单片机,如Atmel公司的AT89C51/52。
??? (1)基于单片机串口LlN主节点的实现
??? 由LIN协议的分析可知,在一次帧通信过程中,主从
文档评论(0)