历史上的今天
今天是:2025年03月11日(星期二)
2019年03月11日 | LIN总线开发:STM32F0 TJA1020
2019-03-11 来源:eefocus
LIN总线协议最新版本是V2.2,历史版本有V1.0,V1.2,V1.3,V2.0,V2.1,V2.2。具体的区别请自行百度,这里只介绍对于写代码最需要关心的问题。
V1.0属于起初版本,各项定义都不完整,目前实际没有应用;
V1.2也没有应用,相对V1.0稍微完善了名称描述;
V1.3是比较完善的版本,目前存在比较旧版的汽车总线中,采用经典校验;
V2.0,V2.1是在V1.3基础上增加了诊断协议,直接继承自ISO15765-3(CAN协议中的诊断定义相同);采用增强型校验+经典校验两种;
V2.2版本没有明显修改,只是对各类文字描述做了修正。
-------------------------------------------------------------------------------------------
LIN的硬件比较简单,有些人认为LIN同RS232,485类似,直接用MCU的普通串口就能实现。但这是不对的,普通串口不完全能够支持LIN协议。因为LIN的帧结构中,对报文头的LIN Break时间长度有特别的要求:11bit长度的低电平.

然而用普通串口是怎么实现LIN Break的低电平长度的?发一个字节的0x00总共才8bit不够长,两个字节0x00又太长而且中间断开了不连续;就算切换低波特率来发送0x00,但是切换波特率比较耗时,高电平长度明显超过协议要求,不符合LIN协议要求。
因此普通串口作为LIN从模式还行,作为主模式完全不符合LIN的标准。作为主模式就必须使用增强型串口才能解决 LIN Break问题。
然后是软件问题,由于LIN总线是半双工通信的,通信效率低而且没有硬件过滤器,必然会对MCU的性能产生极大的影响。这种情况下采用RTOS必然是可选项,否则容易导致事件响应实时性问题。
下一篇:STM32F0x IAP应用软件
史海拾趣
|
恩,大家好, 我现在用C编了一段程序,用汇编编了一段程序,我想把它们连接起来运行,请问应该怎么办呢? 我用的是C8051F系列的单片机,Keil Cx51编译器。 看了Cx51的帮助文档,但还是不明白。 不好意思啊,我再看看,也请大家指点。… 查看全部问答> |
|
用PROTEL画PCB,原理图转PCB时发现PCB的元件全部堆到了一起,请教高手这是怎么回事?有什么解决的好方法可以快速打散这些元件? 小弟好久没画PCB了,请高手指点一下,谢谢!… 查看全部问答> |
|
Altera提供10-GbE参考设计,器件全面支持XAUI协议 满足宽带网络和电信应用需求,Altera公司近日宣布,开始面向使用XAUI通信协议的设计人员提供万兆以太网(10GbE)参考设计。网络路由器、企业和城域以太网交换机以及存储交换机中的线路卡和系统控制器都可以采用Altera Arria和Stratix系列FPGA来可靠地 ...… 查看全部问答> |
|
工程调试中测试中发现: PC端不能正确接收0x11字符 使用串口工具,串口环回. 使用16进制发送 0x0001020304...171819 以上20个字符,除了0x11以为其他都能正确接收. 使用示波器检测信号.存在0x11的波形. 试验了以下几种通信设置: 9600,8个数据 ...… 查看全部问答> |
|
WCHAR *pBuf; pBuf = new WCHAR[256]; CString strCombine=_T(\"1111\"); 然后我将strCombine = pBuf;这样可以用CString 类里的函数进行处理字符串,可是我这么写传进去的全是乱码。怎么办那? … 查看全部问答> |
|
产生这个问题的想法,是想到平时把硬盘从主机箱里取出来,硬盘仍然能够存储数据,想知道为什么,想弄清楚。 我搜索了一下,很多文章都是介绍硬盘的结构,和对于恢复硬盘丢失数据的文章,并不是我想要的答案。请各位朋友帮忙解答一下,希望回答得尽 ...… 查看全部问答> |
|
时,为了能访问8位、16位、32位的变量,STM32的地址线和SRAM的地址线应该怎么连接?附图中的三种地址线连接方式是什么意思?请注意:因为我的理解不准确,我在20楼之前的解释有所误导,请看22楼的说明。请楼主原谅,因为此事非常重要,我不得 ...… 查看全部问答> |




