基于普通单片机的LIN协议实现方案
[09-12 16:20:35] 来源:http://www.88dzw.com 单片机学习 阅读:8776次
文章摘要: 查询方式硬件电路简单,系统中断的种类和次数少,程序运行比较稳定;但不足之处是系统大部分时间都花费在对帧报文头的等待查询上,系统资源利用率低。 中断方式则是对查询方式的不足之处改进和提高,其硬件原理如图5所示。 中断方式对间隔场和同步字节场的接收则完全采用中断方式进行。由于普通单片机的外部中断触发端只有下降沿和低电平两种触发方式,所以报文头间隔场开始阶段和同步字节场的下降沿可以触发从节点,但报文信号的上升沿却无法让从节点感知。改进方法是,让接收数据流分别经过1个三态门和1个三态非门再进入单片机的串口,2个三态门由单片机的两个端口来控制。一般情况下,三态门导通,三态
基于普通单片机的LIN协议实现方案,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com查询方式硬件电路简单,系统中断的种类和次数少,程序运行比较稳定;但不足之处是系统大部分时间都花费在对帧报文头的等待查询上,系统资源利用率低。
中断方式则是对查询方式的不足之处改进和提高,其硬件原理如图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协议实现方案
- 在谷歌中搜索相关文章:基于普通单片机的LIN协议实现方案
- 在soso中搜索相关文章:基于普通单片机的LIN协议实现方案
- 在搜狗中搜索相关文章:基于普通单片机的LIN协议实现方案