电子公司LIN总线培训.ppt_第1页
电子公司LIN总线培训.ppt_第2页
电子公司LIN总线培训.ppt_第3页
电子公司LIN总线培训.ppt_第4页
电子公司LIN总线培训.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

2019/4/6,,应用开发部(fae) wgp,xx电子(上海)有限公司,2019/4/6,,主要内容,lin 是什么 lin 总线的技术特点 lin收发器芯片特征、工作模式及典型应用 lin协议总线特性 电气连接 lin通信概念 报文传输 报文协议 错误检测 低功耗休眠模式 eusart与uart实现lin的区别 lin主从节点代码介绍,2019/4/6,,lin 是什么,lin (local interconnect network)是一种低成本、短距离、低速网络的串行通讯网络,用于实现汽车中的分布式电子系统控制。 主要其用途是传输开关设置状态以及对开关变化响应,因此通信事件是在百毫秒以上时间内发生,为现有汽车网络(例如can总线)提供辅助功能在不需要can总线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯,使用lin总线可大大节省成本。 由于lin协议的突出特点是协议对硬件的依赖程度低,可以基于普通单片机的通用串口usart eausart模块用于通信和timer0 模块用于总线和帧时序硬件资源以软件方式实现,成本低廉。,2019/4/6,,lin 总线的技术特点包括:,单主机,多从机结构(没有总线仲裁); 基于普通uart/ sci 接口的低成本硬件、低成本软件或作为纯状态机; 带时间同步的多点广播接收,从节点无需石英或陶瓷振荡器; 确定性的信号传输; 低成本的单线实现; 速率可达20 kbit/s; 总线长度40m; 保证信号传输的延迟时间; 可选的数据场长度08bytes; 灵活性的配置; 数据校验和的安全性和错误检测; 网络中故障节点的检测; 使用最小成本的半导体元件(小尺寸,单芯片系统); 不需改变lin从节点的硬件和软件即可在网络上增加节点; 通常一个lin 网络节点数小于16 个。,2019/4/6,,lin 其规范包括了三个主要部分:,一是lin 协议规范部分介绍了lin 的物理层和数据链路层; 二是lin 配置语言的描述部分介绍了lin 配置文件的格式,lin 配置文件用于配置整个网络并作为oem 和不同网络节点的供应商之间的通用接口; 三是lin api 部分介绍了网络和应用程序之间的接口。,2019/4/6,,osi参考模型的lin分层结构如下,(1)物理层定义了信号如何在总线媒体上传输,本规范中定义了物理层的驱动器接收器特性。 (2)mac(媒体访问控制子层)是lin协议的核心,它管理从llc子层接收到的报文,也管理发送到llc子层的报文,mac子层由故障界定这个管理实体监控。 (3)llc(逻辑链路控制子层)涉及报文滤波和恢复管理的功能。,2019/4/6,,lin收发器芯片,带稳压器的lin 收发器 mcp201 mcp2021 mcp2022 主要特征: 1、 符合lin1.3、2.0和2.1总线规范,并符合sae j2602 规范 2、43v 负载突降保护、自动热关断 3、宽供电电压,连续情况下可为6.0v - 18.0v最大输入电压为30v 4、在板稳压器 - 在温度范围内,输出电压为5.0v,误差为3% - 在温度范围内,替代输出电压可为3.3v,误差为3% - 内部过热保护 - 内部短路电流限制 - 外部元件仅需滤波电容和负载电容 5、两种低功耗模式: - 接收器开,发送器关,稳压器开(85 a) - 接收器监视总线,发送器关,稳压器关(16 a) 6、pic eusart 接口和标准usart 接口,2019/4/6,,工作模式,2019/4/6,,典型应用,2019/4/6,,总线特性,lin 协议支持在单根线上进行双向通信。它采用廉价、由rc 振荡器驱动的单片机,这样可以省去晶振或陶瓷谐振器的成本。此协议实际上是以时间和软件上的代价换取精密硬件上成本的节约。该协议的每一条报文都包含自动波特率调节的过程。支持最高20k 波特率的传输速率,以及低功耗休眠模式,休眠模式下总线被关闭以避免消耗电池,然而总线可由总线上的任一节点进行供电。 lin总线融合了i2c和rs232的特性。与 i2c类似,lin总线通过电阻拉为高电平,每一个节点通过一个集电极开路驱动器拉为低电平。 然而,由于没有时钟线,故又像rs232 那样,通过起始位和停止位来标识每个字节,而各个位采用异步时序进行传输。 lin相对于can的成本节省主要是由于采用单线传输、硅片中硬件或软件的低实现成本和无需在从属节点中使用石英或陶瓷谐振器。,2019/4/6,,电气连接典型的lin 协议配置,当任何一个节点将总线拉低时,总线处于低电平,标志着总线进入显性状态(占用状态)。 当总线电平为vbat (9-18v)且要求所有节点都使总线处于悬空状态时,则意味着总线处于隐性状态(非占用状态recessive state) 。在空闲状态下,总线通过上拉电阻悬空为高电平。 总线工作电压为9v 至18v,但总线上的器件必须能够承受40v 的电压。通常,单片机通过线路驱动器/ 接收器与总线电平隔离。这样能使单片机工作于5v 电压条件下,而总线工作于更高的电压。总线上的每个节点都端接到vbat。主节点通过1 k 电阻端接,而从节点通过20-47 k 电阻端接。总线最大长度设计为40 米,2019/4/6,,lin通信概念,lin的操作基于一主多从的拓扑结构 总线的通讯由单个主机控制,分成两个独立的部分:从任务、主任务。 主机任务:每个报文帧都用一个分隔信号起始,接着是一个同步场和一个标识符场,这些都由主机任务发送,负责决定何时传输哪个帧。 从机任务:则是发回数据场和校验场,提供将通过lin总线传输的数据,并允许通过节点从低功耗模式中唤醒lin集群 。 通过主机控制单元中的从机任务,数据可以被主机控制单元发送到任何从机控制单元。相应的主机报文id可以触发从机-从机的通信。,2019/4/6,,报文传输,报文传输是由报文帧(通过lin总线传输的数据单位)的格式形成和控制。 报文帧由主机任务向从机任务传送同步和标识符信息,并将一个从机任务的信息传送到所有其他从机任务。 主机任务位于主机节点内部,它负责报文的进度表、发送报文头(header)。 从机任务位于所有的(主机和从机)节点中,其中一个(主机节点或从机节点)发送报文的响应(response)。,2019/4/6,,报文协议,主节点通过查询从节点实现与总线其余部分的数据共享。从节点仅在接收到主节点命令后才进行数据发送,从而在无须进一步仲裁的情况下进行双向通信。 报文传送以主节点发送同步间隔开始,随后发送同步字段和报文字段。 每条报文的第二个字节是标识字节,用于告诉总线随后将发送什么数据,并指明哪个节点应该应答以及应答的长度。只有一个从节点可以响应给定的命令。 从节点仅在主节点的控制下才能在总线上发送数据。一旦数据出现在总线上,任何节点都可以接收该数据。因此,从节点之间的通信不需要主节点进行控制。 所有从机节点在主机节点发布报文头之后都应能检测到间隔场的存在,并且在正确地接收同步字节场后,准确计算出主机节点将要发送数据的波特率,并以此波特率作为下一步要发送或接收数据的波特率的设定值。这样,经过了间隔场和同步字节场的接收,所有的从机节点达到了与主机节点的同步。,2019/4/6,,字节协议,1、字节协议的格式就是通常的“sci”或“uart”串行数据格式(8n1 编码)。 2、每个字节场的长度是10 个位定时(bit time)。起始位(start bit)是一个“显性”位,它标志着字节场的开始。接着是8 个数据位,首先发送最低位,停止位(stop bit)是一个“隐性”位,它标志着字节场的结束。,2019/4/6,,同步间隔,同步间隔场是由主机任务发送。它使所有的从机任务与总线时钟信号同步。 同步间隔场有两个不同的部分,第一个部分是由一个持续tsynbrk13tbit 或更长时间(即最小是tsynbrk,不需要很严格)的显性总线电平。接着的第二部分是最少持续tsyndel1tbit 时间的隐性电平作为同步界定符,这将告知从节点即将有报文传输第二个场允许用来检测下一个同步场(synch field)的起始位。,2019/4/6,,时钟同步,lin协议使用控制器中的低成本rc振荡器。为了使每个节点在时钟出现漂移的情况下仍能正常工作,从节点必须在每次传输时检测主节点的波特率并据此调整自身的波特率,使从任务能与主时钟同步。 因此,每一个事务都由同步字段(synchronisation field)开始。同步字段是一个字节0x55(交替的0 和1)。这使得每个从节点能检测8 个位时间。通过计算这些跳变、将其除以8并作取整处理,使得每个从节点根据主节点调整自身的时序。,2019/4/6,,标识字段,标识字段又被分为3 个字段:最低4 位(bit 0-3)用来对总线上的器件进行寻址;中间2位(bit4-5)指示此后报文的长度;最后2 位(bit 6-7)用于奇偶校验。标识字段的4 个地址位可以寻址最多16 个从节点,每个从节点又可发送2、4 或8 字节响应,这样总共有64种不同的报文。 除了休眠命令外,lin 协议规范并没有定义每条报文的内容。而是留在具体应用程序中定义。节点间可直接传送报文,如同在主节点控制下一样。数据无须被主节点接收后再重新发送到接收节点。相反,任何报文都可被任何节点接收并处理。,2019/4/6,,数据字段,数据字段传输1到8个字节的数据,通过报文帧传输,由多个8 位数据的字节场组成。传输由lsb开始,2019/4/6,,检验和字段,校验和场是数据场所有字节的和的反码,校验和按“带进位加”(addc)方式计算,每个进位都被加到本次结果的最低位(lsb)。这就保证了数据字节的可靠性。所有数据字节的和的补码与校验和字节之和必须是“0xff”。,2019/4/6,,响应部分传输的数据内容有三种类型:,信号 - 响应的数据字段中包含的梯状值或字节阵列。在这种情况下,帧的id必须在0x00和 0x3b之间。注意,数据段中信号的位置对带有相同 pid的帧来说是固定的。 诊断信息 - 用来传输诊断或配置数据。这些信息总是8位长,并带有预留的id号。0x3c id用于主请求, 而0x3d 用于从响应。 保留信息 - 可用于用户定义的扩展名 (这种情况下id等于0x3e)或预留用于未来的协议改进(id设为0x3f)。,2019/4/6,,报文错误,1、位错误 向总线发送一个位的单元同时也在监控总线,当监控到的位的值和发送的位的值不同时则在这个位定时检测到一个位错误。 2、校验和错误 所有数据字节的和的补码与校验和字节之加的和不是“0xff”时,则检测到一个校验和错误。 3、标识符奇偶错误 标识符的奇偶错误(即,错误的标识符)不会被标出。通常lin从机应用不能区分一个未知但有效的标识符和一个错误的标识符。然而,所有的从机节点都能区分id场中8位都已知的标识符和一个已知但错误的标识符。,2019/4/6,,错误报告,不存在直接错误报告机制。然而,每个从节点都应能跟踪自己的错误。这样主节点可请求将错误状态作为正常报文协议的一部分。,2019/4/6,,低功耗休眠模式,主节点通过发送标识码0x80使所有节点进入休眠模式。这是lin 协议规范中定义的唯一报文id。休眠命令后的数据字节内容没有定义。接收到休眠命令的从节点应当对自身进行设置,以便当总线状态发生改变时能唤醒,并关闭自身的电源以使电流消耗最低。总线悬空为高电平且不消耗电流。 任何节点都可通过发送唤醒信号来唤醒总线。该信号为字符0x80(7位低电平时间和其后的1位高电平时间)。接收到此信号后,所有节点应唤醒并等待主节点开始以标准方式查询总线。如果主节点未能在128 个位时间(波特率为 20k 时为6400 us )后唤醒,那么试图唤醒主节点的节点应再次尝试。在等待15000 个位时间(波特率为20k 时为750 ms )之前,总共可尝试3 次。,2019/4/6,,eusart与uart实现lin的区别,增强型通用同步/ 异步eusart 模块实现更多的功能: 1、自动波特率检测和校准, 2、以及在接收到“同步间隔”字符和发送12 位间隔字符时自动唤醒。 3、这些功能使eusart 模块成为局域互连网络lin总线系统理想的选择。 增强型usart 模块的操作由以下3 个寄存器控制: 发送状态和控制寄存器(txsta) 接收状态和控制寄存器(rcsta) 波特率控制寄存器(baudcon) 波特率发生器寄存器的高低字节spbrghspbrg,2019/4/6,,driver resource usage,the driver uses 1k words of program memory and 42 bytes of data memory. the timer0 interrupt is used for checking the header and response time outs. the usart receive interrupt is used for receiving and back-to-back(紧接的) transmission bit failure checking. an external interrupt is used for end of sync break check if auto-baud feature is used.,2019/4/6,,the following files will be needed for the project:, linbasic.c the driver file, do not modify. linbasic.h the header file for the driver configuration, do not modify. lin_cfg.h the system configuration file. linhandle.c the lin event handling file. lin_appl.h the node configuration file. example_slave.c sample file for a slave node setup. example_master.c sample file for a master setup.,2019/4/6,,driver setup,2019/4/6,,linbasic.c,void l_ifc_rx_mylinifc(void) void initeusart(void) void setuptimeoutidle(void) void l_ifc_init_mylinifc(void) l_u16 l_ifc_read_status_mylinifc(void) void l_ifc_wake_up_mylinifc(void) void l_ifc_goto_sleep_req_mylinifc(void) l_u8 ld_assignframeid(l_u8 *l_nad) l_u8 ld_readbyid() l_u8 ld_assignnad(l_u8 * l_nad),2019/4/6,,lin_appl.h,this file is an extract of the lin description file (ldf) that represents the node configuration for both in and out of the network. the file is structured as follows: frame definition frame structure definition frame union definition reserved buffer size for data exchange alias and api calls for structured frames definition setup for node relevant handle list additional items for the master node,2019/4/6,,linhandle.c,l_u8 l_ifc_pid_to_handle(void) this function matches the received pid to the list of handles (user defined) and sets up the driver for the frame. the configuration for each handle is stored in the variable

温馨提示

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

最新文档

评论

0/150

提交评论