爱在西元前什么意思| 蛇怕什么| 1996年是属什么生肖| 倒睫是什么意思| 把子肉是什么肉| bbr是什么牌子| 幽门螺旋杆菌阳性吃什么药| 书房字画写什么内容好| 天然气是什么气体| 荨麻疹什么样| 北京大学什么专业最好| 火耗归公是什么意思| 疏忽是什么意思| 胃病喝什么茶养胃| 抵触是什么意思| 中秋节适合吃什么菜| 软糯什么意思| 三七粉什么时间吃最好| 二月二十是什么星座| 梦见好多猫是什么预兆| 世界上牙齿最多的动物是什么| 扁桃体结石挂什么科| 草缸适合养什么鱼| 为什么会肚子痛| 荔枝都有什么品种| 什么花不用浇水| 心脏房颤吃什么药最好| 知柏地黄丸对男性功能有什么帮助| 今天是什么甲子| 感冒引起的咳嗽吃什么药| 悦己是什么意思| 腿肿是什么原因引起的怎么办| 高血压是什么病| negative什么意思| 抗锯齿是什么意思| 什么是比热容| 什么痣不能点| 月经过后有褐色分泌物是什么原因| 公招是什么意思| 黄芪入什么经| 1990年属马的是什么命| 大腿粗是什么原因导致的| 后脑勺胀痛什么原因| 1987年出生属什么| 灰指甲有什么危害| 望周知是什么意思| 鸡鸣寺求什么| 南瓜与什么食物相克| 经常胸闷是什么原因| 腺瘤型息肉是什么意思| prog是什么意思| 为什么摩羯女颜值都高| 白食是什么意思| 孑孓什么意思| 吃什么增强免疫力最快| 玉竹有什么功效| 安赛蜜是什么东西| 蒲公英和什么相克致死| 嘴角上火是什么原因| 全职是什么意思| 揽件是什么意思| 尿道炎吃什么药比较好的快| 英氏属于什么档次的| 小孩啃指甲是什么原因| 手指尖麻木是什么原因| 手臂长斑是什么原因| 什么品牌的假发好| 月经不正常是什么原因| 怀孕为什么会恶心想吐| 大保健是什么| 孕妇吃什么补钙| 知识是什么意思| 茔是什么意思| 宁字五行属什么的| 离卦代表什么| 为什么会排卵期出血| 什么危不什么| 1977年出生是什么命| 腺肌症是什么| 4月2号什么星座| 四月初八是什么节日| 愚不可及是什么意思| 2013年五行属什么| 蒲公英茶有什么功效| 糖耐是检查什么的| 月经吃什么食物好| 甲亢吃什么盐好| 半夜会醒是什么原因| 夏天喝什么茶比较好| 什么的船只| 吃了就吐是什么原因| 肝内低密度灶什么意思| na医学上是什么意思| 干眼症用什么药| 血肿不治疗有什么后果| marni是什么牌子| 阳虚吃什么中成药| 墨菲定律是什么| 火疖子是什么| lirs 是什么意思| 粒字五行属什么| 泻盐是什么东西| 沉疴是什么意思| 身体缺钾有什么症状| 农历六月十九是什么星座| 朱砂痣是什么意思| 梦见自己怀孕大肚子是什么预兆| 维生素b什么时候吃| 狗为什么不死在家里| def是什么意思| 龙虾和什么不能一起吃| 7月26是什么星座| 鼻窦炎有什么特效药| 为什么手会掉皮| 青头鸭和什么煲汤最好| 为什么感冒会头痛| 雅诗兰黛属于什么档次| 心脏官能症吃什么药| 但求无愧于心上句是什么| 每天坚持跑步有什么好处| 多动症是什么引起的| 鬼画符是什么意思| 中国最长的河流是什么| 感冒吃什么菜| 女人被插入是什么感觉| 历时是什么意思| 精液有血是什么原因| 做完胃肠镜后可以吃什么| 宫颈糜烂是什么原因造成的| 占卜是什么意思| 宋美龄为什么没有孩子| 吥是什么意思| 2021属什么生肖| 麝香保心丸治什么病| 不字五行属什么| 曹操的小名叫什么| 脚气是什么原因引起的| 发泡实验阳性说明什么| 1月7号是什么星座| 多少年婚姻是什么婚| 老佛爷是什么牌子| 摸头杀是什么意思| 男人为什么喜欢舔女人下面| 计算机科学与技术是学什么的| 小孩肚子疼挂什么科| 怎么算自己五行缺什么| 食指是什么经络| 端午节为什么吃粽子| emg是什么意思| 强光斑是什么意思| 察言观色是什么意思| 输卵管不通有什么症状| 泡汤是什么意思| 频发室性早搏是什么意思| 一九七一年属什么生肖| 日本人为什么长寿| 感冒喉咙痛吃什么药| 今天股市为什么大跌| 莆田系是什么意思啊| 骨折后吃什么恢复快| 什么是紫癜| 前呼后拥是什么意思| 芙蓉什么意思| 骨折线模糊什么意思| 榴莲皮有什么功效| 什么叫收缩压和舒张压| 为什么会长虱子| 蜗牛是什么动物| 推拿和按摩有什么区别| 不明原因发烧挂什么科| os是什么意思| 深圳副市长什么级别| 九月八号什么星座| 脸颊两边长斑是什么原因| 萨瓦迪卡是什么意思| 什么猫不掉毛| 导是什么意思| 三级手术是什么意思| 压力与什么有关| 窦卵泡是什么意思| 营养性贫血是什么意思| 爬山膝盖疼是什么原因| 白头发吃什么变黑| 东宫是什么意思| 吃什么补气虚最快最好| 数典忘祖指什么动物| 矫正是什么意思| 肚脐眼痛什么原因| 月经有血块是什么原因| 齁不住是什么意思| 过敏是什么意思| 10.30什么星座| 为什么女人阴唇会变黑| 血象是指什么| 黄精泡酒有什么功效| 冲猪煞东是什么意思| 缺钾有什么症状| 煤气是什么味道| 小儿厌食吃什么药最好| 淋巴细胞高是什么意思| 正常舌头是什么颜色| 唐宝是什么意思| 每天什么时间锻炼最好| 契合是什么意思| 三伏天喝什么汤最好| 骞读什么字| 染色体异常是什么意思| 七月开什么花| 外公是什么关系| azul是什么颜色| dcr是什么| 杀青是什么意思| 三岁看大七岁看老什么意思| 二月份出生的是什么星座| 月亮为什么会有圆缺变化| 什么的娃娃| 西四命是什么意思| 三十岁是什么之年| 幼儿急疹吃什么药| 水痘疫苗第二针什么时候打| 5月16日是什么星座| 吃东西容易呛到是什么原因| 白带过氧化氢阳性什么意思| 飞机上可以带什么吃的| 鸡飞狗跳是什么生肖| 自由基是什么东西| 财神叫什么名字| 偏食是什么意思| 指甲不平有凹凸是什么原因| 榴莲吃多了有什么坏处| 微光是什么意思| 月经很少什么原因| 养胃喝什么茶| 真菌感染用什么药膏| 前兆是什么意思| 肚子为什么会胀气| 韩国买什么东西划算| 什么书好看| 血肌酐是什么意思| 离经之血是什么意思| 胃火重吃什么药| 肚子隐隐作痛什么原因| icicle是什么牌子| 狗狗发抖是什么原因| 为什么近亲不能结婚| 每天喝一杯豆浆有什么好处| slow什么意思| 回头鱼是什么鱼| 知更鸟是什么意思| 79年属什么的| 撸管是什么意思| jackjones是什么品牌| 消化快容易饿什么原因| 吃了山竹不能吃什么| 胸闷出汗是什么原因| 子宫内膜炎用什么药效果好| 二刷是什么意思| 双子座上升星座是什么| 胃难受想吐是什么原因| autumn是什么意思| 口水臭是什么原因引起的| 颈椎病睡什么枕头最好| 被孤立的一般是什么人| 精液是什么形成的| 百度

新闻中心

EEPW首页 > 汽车电子 > 基于普通单片机的LIN协议实现方案

去年今日!也是G1取胜!陪在KD身边的还是维斯…

——
作者:北京工业大学 谷威昭 方滨 时间:2025-08-04 来源:单片机及嵌入式系统应用 收藏
百度 党员干部在任何时候都要把纪律挺在前面,时刻绷紧政治纪律、政治规矩这根弦,切实增强政治意识、大局意识、核心意识、看齐意识。

1 概述

    是新出现的一种新型低成本串行通信总线,其全称是Local Interconnect Network,即局部互联网络。它最开始出现于汽车行业,是为解决汽车智能化和网络化的发展要求和降低汽车制造成本的矛盾而提出来的一种串行总线协议,主要用于车门、车灯等需要简单控制但又要求智能控制的场合。它的主要特点是:采用单个主控制器/多从设备通信模式;基于普通UART/SCI接口硬件实现,协议简单;网络传输速率不高,最高可达20kb/s。由于的突出特点是协议对硬件的依赖程度低,可以基于普通的通用串口等硬件资源以软件方式实现,成本低廉,因此可广泛应用于汽车行业以外的其他领域,如智能家庭网络内部的数据传输、节点控制等场合。
    本文依据对的分析,对其协议在普通上的具体实现,即如何利用有限的硬件资源实现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协议的分析可知,在一次帧通信过程中,主从节点在大部分时间里是以标准的串行通信数据帧的形式交换数据的,这也是LIN协议可以基于单片机通用串口实现的原因。帧通信的关键是要实现主节点和从节点的同步。在同步过程中,主、从节点所执行的操作是不同的:主机节点的任务是要发送报文头,从节点的任务是接收和判断报文头,实现与主节点的同步。报文头的间隔场是一个基于主机节点时钟频率的13个以上位时(bit time)和至少1个位时的间隔界定符。对主节点来讲,这一部分是实现主节点功能的关键。间隔场和间隔界定符的实现可采用改变串口波特率,用串口输出特定数据的方法来实现。例如在一般情况下,单片机采用19.2kb/s波特率的速率传输数据,可先将串口的波特率设置为9.6kb/s,则传输0xc0这样一个数据就可以实现按照19.2kb/s的波特率来计算位时的同步间隔和同步间隔界定符的位时长度要求(因若采用19.2kb/s的传输率传输00数据只能实现10个位时的同步间隔符,无法达到13个位时的要求)。随后的PID场的发送和数据场的发送或接收,可以基于单片机的通用串口以正常的19.2.kb/s的波特率来操作。

    基于串口LlN主节点硬件原理如图3所示。


    主节点在一次帧通信过程中,要根据通信过程中不同的阶段,将串口设置成不同波特率的发送或者接收状态,以完成报文头间隔场、同步字节场的发送,保护标识符字节场的发送,及下一个阶段的接收或者发送数据过程。

(2)基于单片机串口LlN从节点的实现


    从节点实现的关键是能够正确实时地接收报文头,达到与主节点的同步,为下一步的数据交换做好准备。基于单片机通用串口构成的LIN从节点的实现方案有两种:一种是查询方式,另一种是中断方式。两种方法的区别在于报文头接收判断方法的不同。查询方式硬件原理如图4所示。


    同样,从节点也要求准确的波特率和计时,对时钟要求较高。建议采用22.1184MHz晶振。

    在查询方式的硬件电路中,为了能及时感受到主节点报文头的起始阶段,可以将串口接收数据端,RXD端与单片机的一个外部中断触发端口(INTl或INT0)相连。这样,当主节点发送过来的间隔场的下降沿到来时,就可以实时地触发从节点进入对报文头的接收查询程序段。在报文头的接收查询过程中,从节点自总线电平下降沿到来之际,就对总线显性电平(低电平)持续的时间进行累积计算,直到发现总线恢复为隐性电平(高电平)为止。如果此段持续时间大于11个主节点工作位时时间,那么从节点就断定是一次帧通信的开始。接着从节点对同步字节场的接收作好准备,在同步字节场开始位的第一个下降沿起,连续对同步字节场的后4个下降沿进行计时累加,最后将得到的计时时间除以8,得到主节点发送数据的位时时间,即主节点下一步将要进行数据通信的波特率。从节点以此作为串口波特率设定值,通过串口与主节点交换数据。随后的串口发送或接收数据可采用串口查询或中断的方式进行。

    间隔场和同步字节场的计时方法有两种:一种方法是采用软件模拟一个位时时间,在各阶段通过计算调用位时程序次数间接计算出时间;另一种方法是将定时器TO设定成定时一个位时时间后中断,在各个阶段查询定时器T0中断次数,通过计算TO中断次数的差值,也可以间接算出各个阶段的持续时间长度。

    查询方式硬件电路简单,系统中断的种类和次数少,程序运行比较稳定;但不足之处是系统大部分时间都花费在对帧报文头的等待查询上,系统资源利用率低。

    中断方式则是对查询方式的不足之处改进和提高,其硬件原理如图5所示。


    中断方式对间隔场和同步字节场的接收则完全采用中断方式进行。由于普通单片机的外部中断触发端只有下降沿和低电平两种触发方式,所以报文头间隔场开始阶段和同步字节场的下降沿可以触发从节点,但报文信号的上升沿却无法让从节点感知。改进方法是,让接收数据流分别经过1个三态门和1个三态非门再进入单片机的串口,2个三态门由单片机的两个端口来控制。一般情况下,三态门导通,三态非门截止,数据流正常进入单片机串口。当间隔场的下降沿触发单片机后,程序控制三态门截止,三态非门导通,数据流反相进入单片机,间隔场的上升沿经过三态非门后变成下降沿,同样也可以触发单片机中断。在随后的同步字节场的接收中,可以按照正常中断方式进行,即可由同步字节场的5个下降沿触发单片机中断5次接收。由于采用中断方式,所以各个阶段的计时就只能采用查询定时器T0中断次数的方法来实现。

    中断方式的优点是,对主程序运行的影响比较小,系统的资源利用率高。不足之处是增加了单片机的外围电路,硬件稍显复杂。

3.2基于单片机普通端口位LIN协议的实现


    对于没有通用串口的单片机来讲,必须采用端口位位操作的方法来实现LIN协议。这类单片机的硬件资源一般很有限,有的只有一个定时器,还不具备外部中断能力,如Microchip的PIC18F200系列。这种单片机的突出特点是价格低廉,做出的LIN节点将具有无可比拟的价格优势。

(1)基于普通端口位LIN主节点的实现


    基于单片机普通端口位的1IN主节点,在报文头和数据场的实现上都要采用位操作的方法来实现。其硬件构成原理图和基于单片机通用串口LIN主节点硬件原理图完全相同,区别在于前者数据收发端RXD和TXD端可以是任意的单片机普通端口位,而后者则必须采用单片机通用串口。

    报文头间隔场的实现可以将定时器TO设置为定时一个位时中断的工作方式,置LIN数据发送端TXD为显性电平(低电位),启动定时器T0对显性电平持续时间进行计时,当达到13个以上位时后置LIN发送数据端TXD为隐性电平(高电位),这样就完成了间隔场的发送。在随后的间隔场界定符和同步场的实现上,也采用同样的方法。在数据场的接收和发送中,同样需要定时器TO的配合来完成。发送数据时,从待发数据存储区中依次取出一个个数据,转换成10个bit类型的位数据。定时器T0同样是1个位时中断1次,在中断处理程序中改变计时变量值。发送数据程序根据计时变量的差值将lO个bit类型的位数据依次按照持续1个位时时间从数据发送端TXD端发出;接收数据时,则需要先用定时器T0计时半个位时时间,以检测1个字节的开始位,然后恢复定时器TO的一个位时计时中断设定。这样,在随后的数据位检测中就能保证在数据位的中间时刻检测该数据位,从而保证数据位接收的正确性。在10个bit类型的位数据接收完毕后,还要将其转换为一个byte类型的数据,存入相应的数据缓冲区。

(2)基于普通端口位LIN从节点的实现

    基于单片机普通端口位LIN从节点硬件电路和基于单片机通用串口查询方式的从节点硬件电路基本相同,区别同样也是没有用到单片机的通用串口。

    由于没有外部中断的功能,因此对主节点发送过来的报文头的接收只能靠从节点主动地等待查询。考虑到从节点程序不可能一直在查询等待与主节点同步,因此从节点应该不定时地去查询等待主节点的报文头。开始阶段设置定时器为不定长时间中断方式,时间到后从节点去查询等待主节点发送的报文帧。当检测到同步信息后,设置定时器为标准位时时间中断方式,对从节点接收或发送数据过程进行位时界定。从节点按照上述提到的位操作方法接收PID场,并转换为byte类型的数据,判断下一步数据场的发送或接收方向,接着按照位操作的方法实现数据的发送或接收。定时器的两种工作方式在查询等待和报文通信过程中轮流转换,在报文通信过程结束后,重新设置定时器为不定长时间中断方式,等待下一次的报文通信过程,以此类推。

    从节点由于采用不定期查询等待方法与主节点的同步,因此通信成功率不高;但对于数据通信速率和实时性要求不是很高的场合,还可以满足要求。如果单片机有外部中断能力,则可以改从节点不定期查询为从节点用外部中断查询主节点发送来的报文,这样通信的成功率就可以大大提高。

结 语

    相对于增强型单片机,普通单片机的功能显得简单多了,资源也很有限,但它有一个价格低廉的优势。而LIN总线的特点是协议简单,可用软件方式实现,特别适合于数据通信速率要求不高、控制简单的场合。如果能以普通单片机有限的资源实现LIN通信协议,无疑会为低端串行通信领域提供一个很好的选择。以普通单片机为硬件基础构成的LIN节点也一定会在生产和生活的相关应用领域大有作为。

pid控制相关文章:pid控制原理


单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


pid控制器相关文章:pid控制器原理


晶振相关文章:晶振原理


评论


相关推荐

技术专区

关闭
嘴唇发干是什么原因 蔓字五行属什么 异次元是什么意思 迪拜为什么那么有钱 非球面镜片是什么意思
外冷内热是什么症状 胃气胃胀吃什么药最好 胰岛素是干什么用的 走青是什么意思 阴道流黄色分泌物是什么原因
黑眼圈严重是什么原因 cosmo是什么意思 卢字五行属什么 伤元气是什么意思 清明上河图什么季节
脉沉细是什么意思 贫血喝什么口服液 喝什么去湿气最好最快 脚气涂什么药膏 coa是什么意思
陈字五行属什么hcv8jop2ns5r.cn 男马配什么属相最好hcv9jop6ns8r.cn 沙门是什么意思baiqunet.com 心肌缺血吃什么补得快hebeidezhi.com amass是什么牌子hcv9jop4ns9r.cn
感冒适合吃什么水果hcv9jop3ns5r.cn 姓许的女孩取什么名字好听hcv8jop5ns6r.cn 小腹胀痛什么原因女性hcv7jop7ns0r.cn 湿气重有什么表现症状96micro.com 棕色配什么颜色hcv9jop8ns2r.cn
09属什么生肖aiwuzhiyu.com 鸟为什么会飞hcv9jop0ns6r.cn 老夫聊发少年狂什么意思naasee.com 结甲是什么病jinxinzhichuang.com 喉咙不舒服是什么原因hcv9jop0ns2r.cn
俄罗斯用什么货币hcv8jop3ns6r.cn 工口什么意思hcv9jop4ns2r.cn 香肠炒什么好吃hcv9jop1ns5r.cn 针灸的原理是什么hcv7jop6ns8r.cn 乳腺导管扩张是什么意思严重吗hcv9jop7ns4r.cn
百度