打印
[STM32F1]

STM32的LIN接收问题?

[复制链接]
4650|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这里的产生中断是独立的LIN中断还是基于USART的?
如果是基于USART的请问当LBD=1;LBDIE=1(产生中断);时。通过USART口接收到的第一个数应该是0X55吧。我们应该把他忽略掉吗?

QQ图片20160401144621.png (316.1 KB )

QQ图片20160401144621.png
沙发
457344370| | 2016-4-1 22:50 | 只看该作者
这个中断应该是break中断,如果你用的是晶振偏差在2%以内(好像是LIN规范要求的)而且确认波特率没配错可以忽略下一个字节55

使用特权

评论回复
板凳
we167527|  楼主 | 2016-4-2 11:39 | 只看该作者
457344370 发表于 2016-4-1 22:50
这个中断应该是break中断,如果你用的是晶振偏差在2%以内(好像是LIN规范要求的)而且确认波特率没配错可以 ...

就是以UART为基础。接收到断开符号后,串口接收到的第一个字节0X55,可以忽略?最后的CRC需要确认吗?

使用特权

评论回复
地板
457344370| | 2016-4-3 07:40 | 只看该作者
checksum肯定要接收的呀,要不然怎么保证数据接收的正确?我觉得你该仔细看下LIN规范了,瑞萨有篇很不错的PDF介绍LIN的

使用特权

评论回复
5
we167527|  楼主 | 2016-4-8 13:12 | 只看该作者
457344370 发表于 2016-4-3 07:40
checksum肯定要接收的呀,要不然怎么保证数据接收的正确?我觉得你该仔细看下LIN规范了,瑞萨有篇很不错的P ...

DATA不会错。CRC接收过来有什么用啊?

使用特权

评论回复
6
wenshijian| | 2016-4-8 15:27 | 只看该作者
你需要用Break中断或者采用串口的空闲中断。
报文头一般不需要处理,因为都一样的,校验的话就要看你的LIN版本了,LIN2.0以上采用的是增强型的校验,LIN1.3的是基本校验。
相关资料网上很多的,最好是买一个LIN分析工具来看看最直观

使用特权

评论回复
7
we167527|  楼主 | 2016-4-8 16:26 | 只看该作者
本帖最后由 we167527 于 2016-4-8 16:31 编辑
wenshijian 发表于 2016-4-8 15:27
你需要用Break中断或者采用串口的空闲中断。
报文头一般不需要处理,因为都一样的,校验的话就要看你的LIN ...

Break中断     串口的空闲中断
我LIN使能了后,UART是不是就是用不了了?
LIN初始化是不是使能LIN(USART_CR1的RE=1),然后设置中断检测(USART_CR2 的LBDL=0)、设置中断产生位(USART_SR的LBDIE=1)。这是我的使能步骤。可是一直没有效果。用的收发器是TJA1040。并且一直让TJA1040处在工作状态。可是就是不触发中断!是否我提供程序?


我的的LIN是2.0版的。数据域对了。CRC应该不会错的吧?

使用特权

评论回复
8
wenshijian| | 2016-4-10 14:18 | 只看该作者
we167527 发表于 2016-4-8 16:26
Break中断     串口的空闲中断
我LIN使能了后,UART是不是就是用不了了?
LIN初始化是不是使能LIN(USART_ ...

收发器错了。1040是Can的收发器,Lin应该是1020、1021。
难怪你调这么久,硬件都不对

使用特权

评论回复
9
we167527|  楼主 | 2016-4-10 17:16 | 只看该作者
wenshijian 发表于 2016-4-10 14:18
收发器错了。1040是Can的收发器,Lin应该是1020、1021。
难怪你调这么久,硬件都不对 ...

不好意思。我说错了。是TJA1020,能发LIN。总线上的电阻主从都是接1K的,没接电容。从电阻不接38K或者不接好像都可以吧。标准是接38K?我现在的问题是TJA1020的收端好像都没有信号!

使用特权

评论回复
10
wenshijian| | 2016-4-10 17:41 | 只看该作者
we167527 发表于 2016-4-10 17:16
不好意思。我说错了。是TJA1020,能发LIN。总线上的电阻主从都是接1K的,没接电容。从电阻不接38K或者不 ...

那就用万用表量一下,通信瞬间是10V左右,不通信则是12V。
其实直接用串口就行了,TJA1020+PL2303就电脑能看到数据。

使用特权

评论回复
11
Beckham_Owen| | 2016-4-11 14:54 | 只看该作者
这个lin总线到底是一种怎样的总线呢

使用特权

评论回复
12
we167527|  楼主 | 2016-4-11 15:01 | 只看该作者
一种车内广为覆盖的总线协议。基于串口实现。

使用特权

评论回复
13
剡溪渡口| | 2016-4-12 20:16 | 只看该作者
问下楼主调试LIN总线用到什么解析工具,CANoe吗?有没有类似周立功USBCAN那样的USBLIN便宜一点的工具?

使用特权

评论回复
14
we167527|  楼主 | 2016-4-21 09:16 | 只看该作者
剡溪渡口 发表于 2016-4-12 20:16
问下楼主调试LIN总线用到什么解析工具,CANoe吗?有没有类似周立功USBCAN那样的USBLIN便宜一点的工具? ...

网上多的是。CANOE有点贵。你可以用用VSPY3之类的。既可以CAN也可以LIN。

使用特权

评论回复
15
lwsn| | 2016-4-21 20:34 | 只看该作者
这个中断应该是break中断

使用特权

评论回复
16
冰河w| | 2016-4-21 21:52 | 只看该作者
用Break中断或者串口的空闲中断

使用特权

评论回复
17
wenshijian| | 2018-4-15 15:07 | 只看该作者
we167527 发表于 2016-4-21 09:16
网上多的是。CANOE有点贵。你可以用用VSPY3之类的。既可以CAN也可以LIN。

专门的LIN工具还是比较少的,KVASER LIN PRO是一个好用的,但是比较贵。也有个德国还是什么的 BabyLIN也行,不过都是贵,动辄几千块还不包括软件。这主要是LIN比较冷门,没有CAN那么大众化。
某宝上也有个工具,LINUART、LIN串口工具,直接使用串口调试助手的。不过串口调试助手只能当作显示的,不能发数据。

使用特权

评论回复
18
beyond696| | 2018-11-15 10:53 | 只看该作者
https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-15987418095.3.c2b35a683lO0h6&id=569249781751
比较好用,值得推荐

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:联系方式: QQ:864095840 邮箱:86095840@qq.com

54

主题

294

帖子

6

粉丝