OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 27083|回复: 39

谁在STM32上面玩过LIN通信?

[复制链接]

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
发表于 2016-6-23 14:03:32 | 显示全部楼层 |阅读模式
20金钱
求助STM32的LIN通信?STM32+TJA1020
玩过的发点资料看看啊!!!
万分感激呀

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-7-3 00:09:06 | 显示全部楼层
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2016-7-3 11:22:40 | 显示全部楼层

谢谢回复,继续顶贴
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2016-7-11 22:36:47 | 显示全部楼层
应该是STM32的LIN模式,谁玩过这个东西,给点东西看看,小弟感激不尽!!!
回复

使用道具 举报

34

主题

388

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4081
金钱
4081
注册时间
2012-10-21
在线时间
642 小时
发表于 2016-7-11 22:50:36 | 显示全部楼层
shiqinghai 发表于 2016-7-11 22:36
应该是STM32的LIN模式,谁玩过这个东西,给点东西看看,小弟感激不尽!!!

也要搞这个,刚开始也是一头雾水
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2016-7-12 10:28:52 | 显示全部楼层
PCA 发表于 2016-7-11 22:50
也要搞这个,刚开始也是一头雾水

你那目前有啥资料没?我这现在有一个CSDN下的程序,需要的话可以给你来一份,省点积分
回复

使用道具 举报

34

主题

388

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4081
金钱
4081
注册时间
2012-10-21
在线时间
642 小时
发表于 2016-7-12 12:02:56 | 显示全部楼层
shiqinghai 发表于 2016-7-12 10:28
你那目前有啥资料没?我这现在有一个CSDN下的程序,需要的话可以给你来一份,省点积分

我QQ839720096,好到的资料互相共享一下
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2016-7-24 23:55:02 | 显示全部楼层
研究了快一个星期的LIN了,最重要的两个函数,SendBreak跟IT_LBD,一直都调不通,晚上专门写了个 函数,在主函数里面一直发送断开符,即USART_SendBreak(USART2)不停的发,USART2的中断里面,做LBD检测,两块板子LIN互联之后,先给LIN的12V上电,然后再给板子上电,发现的确能检测到LBD中断发生,因为我在USART2的中断里面,首先判断LBD中断是否发生,发生了,亮一个灯,但是出现一个问题,程序会卡死在LBD中断里面,因为主程序里面,先发断开符,延时,亮另一个灯,完成上电操作之后,只是标志LBD中断的灯常亮了,标志主程序循环发送的灯没有反应,两个灯都是位带操作,执行一次就取反,即执行一次变亮(或熄灭),在循环回来,灯的状态 取反,发现完成上电操作之后,会卡死在USART2的LBD中断里面,不清楚什么原因?这么晚了,先放一放吧,如果这一个同步间隔场能够调通,发送跟检测都能够做到,剩下的都很简单,普通的串口发送函数,USART_SendData函数即可完成剩下场的发送,心情不好,感觉LIN通信不是很难,就是调不通,心烦,各种烦。
回复

使用道具 举报

2

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2015-9-24
在线时间
41 小时
发表于 2016-7-30 17:24:25 | 显示全部楼层
用stm8调过,通了,主要就是识别断开间隔帧。我是设置串口LIN断开检测中断,接收到间隔帧就换成串口接收中断接收同步头,最后就是发送数据就行了。
回复

使用道具 举报

2

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2015-9-24
在线时间
41 小时
发表于 2016-7-30 17:27:52 | 显示全部楼层
shiqinghai 发表于 2016-7-24 23:55
研究了快一个星期的LIN了,最重要的两个函数,SendBreak跟IT_LBD,一直都调不通,晚上专门写了个 函数,在 ...

你卡死在LBD中断里,是不是没有清除LBD中断啊
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2016-8-4 20:28:48 | 显示全部楼层
haauhaau 发表于 2016-7-30 17:27
你卡死在LBD中断里,是不是没有清除LBD中断啊

进LBD中断后,是立即清的中断。
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2016-8-4 20:30:11 | 显示全部楼层
haauhaau 发表于 2016-7-30 17:24
用stm8调过,通了,主要就是识别断开间隔帧。我是设置串口LIN断开检测中断,接收到间隔帧就换成串口接收中 ...

这个STM8调试LIN 你用的什么板子?还是自己做的一块板子啊。网上我看到过STM8支持LIN,貌似官方有一块开发板可以做LIN通信
回复

使用道具 举报

2

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2015-9-24
在线时间
41 小时
发表于 2016-8-5 10:00:43 | 显示全部楼层
shiqinghai 发表于 2016-8-4 20:30
这个STM8调试LIN 你用的什么板子?还是自己做的一块板子啊。网上我看到过STM8支持LIN,貌似官方有一块开 ...

之前做一个产品,板子上也是用TJA1020,stm8s做芯片,stm8s是有一款有LIN功能,是stm8s105,但是我用003的,也能实现lin功能。两块板模拟是一块发帧头,一块响应。帧头那里主要是发送断开帧,0x55,标识符,最后加个延时。响应那里初始化设置LIN断开符检测长度,我那个是10位的,接着设置成LIN断开符检测中断,中断里面是当接收到LIN断开符,就清除LIN断开符标志位,换成串口接收中断来接收同步符和标识符,接收正确就发送数据。这里其实主要就是识别断开符重点,因为stm8有这个识别功能,stm32应该也有这功能吧,没详细看。产品最后在汽车上应用了。
回复

使用道具 举报

25

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2016-6-2
在线时间
49 小时
发表于 2016-8-5 11:25:53 | 显示全部楼层
STM32F103应该可以支持LIN的,以前让实习生做过,在8051上实现过。LIN BUS跟CAN不一样,主要是里边必须定义一个MASTER.
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2016-8-16 16:31:48 | 显示全部楼层
haauhaau 发表于 2016-8-5 10:00
之前做一个产品,板子上也是用TJA1020,stm8s做芯片,stm8s是有一款有LIN功能,是stm8s105,但是我用003 ...

这里的两块板子,分别做什么作用啊?我的理解是一块板子做主机,帧头(发送断开帧,0X55,标示符)和响应(数据+校验)都是一块板子发的。
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2016-8-18 09:59:25 | 显示全部楼层
LIN的主机基本上做成功了,用逻辑分析仪可以看到发送的数据。 QQ截图20160818094751.png
这个是分析的结果,第一个是同步间隔场(13个显性电平0,)
第二个是同步场(0X55),第三个是保护ID(0X04,加上校验后是0XC4)
以上都是帧头,属于主机任务,之后就是响应了,包含发送的数据以及校验和,
符合程序里设定要发送的数据。
从机最主要的问题依然是对同步间隔场的检测,因为后面的都是普通串口发送字节,
现在从机还是检测不到同步间隔场,但是可以进USART_IT_LBD中断,上次出现的程序卡死,暂时没出现。
再研究下,有成果,还会发上来。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-8-18 22:14:53 | 显示全部楼层
shiqinghai 发表于 2016-8-18 09:59
LIN的主机基本上做成功了,用逻辑分析仪可以看到发送的数据。
这个是分析的结果,第一个是同步间隔场(13 ...

谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-12-27
在线时间
1 小时
发表于 2017-12-27 12:42:24 | 显示全部楼层
我最近一俩周也是一直在搞LIN,现在STM8上面基本可以实现功能,但是反馈接收那块还是有点问题,发送的时候需要同步检测中断接收,如果发送完再开中断接收就不行,也不知道为什么,今天打算用32来看看可否实现完整的功能。
个人认为难点在于发送的时候同步接收问题,如果是发送完成后再开中断检测断开帧的话会发现根本检测不到中断,也不知道是否我程序里操作有问题,写过LIN主节点发送报文接收从节点反馈的朋友可以一起讨论下,单独的发跟收是没有问题
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2014-8-15
在线时间
10 小时
发表于 2018-1-24 14:19:45 | 显示全部楼层
shiqinghai 发表于 2016-8-18 09:59
LIN的主机基本上做成功了,用逻辑分析仪可以看到发送的数据。
这个是分析的结果,第一个是同步间隔场(13 ...

楼主,lin发送时每发送一个字节后面都有一个字节间隔位的吗,我这里发送没看到有字节间隔位,是不是初始化配置有问题?
追随内心!!
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2018-1-24 16:41:50 | 显示全部楼层
RUN FOR EAD 发表于 2018-1-24 14:19
楼主,lin发送时每发送一个字节后面都有一个字节间隔位的吗,我这里发送没看到有字节间隔位,是不是初始 ...

字节间的间隔位,程序上应该不用管,印象中好像是的
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2018-4-15
在线时间
1 小时
发表于 2018-4-15 14:54:45 | 显示全部楼层
shiqinghai 发表于 2016-8-18 09:59
LIN的主机基本上做成功了,用逻辑分析仪可以看到发送的数据。
这个是分析的结果,第一个是同步间隔场(13 ...

好难得看到有人用逻辑分析仪来做LIN总线开发。。。我看到好多只用示波器就搞开发简直不懂他们是怎么想的。
话说你们用普通串口是怎么实现LIN Break的低电平长度的?发一个字节的0x00不够长,两个字节0x00又太长而且中间断开了不连续。我试过切换低波特率来发送Break,但是切换波特率比较耗时,导致逻辑分析仪上面识别出错。普通串口作为LIN从模式还行,作为主模式完全不符合LIN的标准。
后来全部换成了STM32F0xx+TJA1020,使用增强型串口支持LIN才解决了 LIN Break问题。
不过逻辑分析仪有个毛病,就是只能接收一部分的数据,看不到全部LIN数据。其实有个小工具用在LIN数据分析上,LIN-UART,或者叫做LIN串口工具,可以直接使用串口调试助手来查看LIN数据的。正规的LIN数据分析仪太TM贵了,光硬件就要4K以上。
回复

使用道具 举报

14

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-12-19
在线时间
307 小时
 楼主| 发表于 2018-5-24 22:29:53 | 显示全部楼层
wenshijian 发表于 2018-4-15 14:54
好难得看到有人用逻辑分析仪来做LIN总线开发。。。我看到好多只用示波器就搞开发简直不懂他们是怎么想的 ...

也是用的STM32的UART,好像支持LIN通信
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2016-4-15
在线时间
6 小时
发表于 2018-7-9 17:04:10 | 显示全部楼层
wenshijian 发表于 2018-4-15 14:54
好难得看到有人用逻辑分析仪来做LIN总线开发。。。我看到好多只用示波器就搞开发简直不懂他们是怎么想的 ...

你好
  我也用的是STM32F030 和TJA1020  能不能把LIN Break 怎么处理的发我一份?
邮箱:donghanking@163.com 谢谢
回复

使用道具 举报

26

主题

193

帖子

8

精华

金牌会员

Rank: 6Rank: 6

积分
1800
金钱
1800
注册时间
2012-8-23
在线时间
57 小时
发表于 2018-7-28 20:12:24 | 显示全部楼层
USB转LIN适配器,你值得拥有,提供LIN开发技术支持,可以QQ联系我 188298598
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-12-7
在线时间
2 小时
发表于 2018-12-7 11:41:27 | 显示全部楼层
唤醒信号(wake up)怎么检测?
回复

使用道具 举报

2

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
532
金钱
532
注册时间
2014-3-3
在线时间
51 小时
发表于 2019-1-15 10:33:33 | 显示全部楼层
看完全程受益非浅,后期一定会用到LIN  汽车      
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2018-1-31
在线时间
6 小时
发表于 2019-2-27 11:04:09 | 显示全部楼层
shiqinghai 发表于 2016-7-12 10:28
你那目前有啥资料没?我这现在有一个CSDN下的程序,需要的话可以给你来一份,省点积分

你好,能否把你的USART LIN模式相关资料借鉴一下,非常感谢!
回复

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2015-4-11
在线时间
6 小时
发表于 2019-3-14 20:22:16 | 显示全部楼层
030只有发Break的功能,没有Break检测中断,请问030怎么检测这个Break?
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-1-8
在线时间
11 小时
发表于 2019-7-18 14:09:31 | 显示全部楼层
最近也在研究,普通串口加lin收发器
回复

使用道具 举报

50

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1126
金钱
1126
注册时间
2014-8-24
在线时间
146 小时
发表于 2019-9-3 16:13:19 | 显示全部楼层
感觉这个帖子干货很多,先顶起来,mark一下
找一份喜欢的工作,这样每天工作的8个小时是快乐的。 找一个喜欢的人,这样每天工作之外的16个小时也是快乐的。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2013-8-24
在线时间
6 小时
发表于 2019-11-2 14:12:54 | 显示全部楼层
也想用STM32F030做LIN主机  标记一下先
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-11-3
在线时间
3 小时
发表于 2019-11-3 11:27:10 | 显示全部楼层
我看文档,STM32F1好像支持LIN,还去要TJA1020吗?
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2015-1-29
在线时间
8 小时
发表于 2019-11-28 11:25:45 | 显示全部楼层
waiman 发表于 2019-3-14 20:22
030只有发Break的功能,没有Break检测中断,请问030怎么检测这个Break?

030好像没有SendBreak的函数啊
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-6-25
在线时间
23 小时
发表于 2020-1-10 17:17:31 | 显示全部楼层
AirBlue 发表于 2019-11-3 11:27
我看文档,STM32F1好像支持LIN,还去要TJA1020吗?

应该是支持LIN,不是LIN_PHY。tranciever还是需要的。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2020-5-11
在线时间
11 小时
发表于 2020-5-27 17:32:55 | 显示全部楼层
haauhaau 发表于 2016-8-5 10:00
之前做一个产品,板子上也是用TJA1020,stm8s做芯片,stm8s是有一款有LIN功能,是stm8s105,但是我用003 ...

你好,最近需要调试STM8的LIN功能,资料比较少,可以发我一份代码参考一下吗?邮箱yuzhu.yao@texinsoft.com    非常感谢!
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2019-6-15
在线时间
18 小时
发表于 2020-7-10 12:04:22 | 显示全部楼层
wenshijian 发表于 2018-4-15 14:54
**** 作者被禁止或删除 内容自动屏蔽 ****

没搜索LIN-UART软件啊。能发一份么,谢谢。853602728@qq.com
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2020-10-19
在线时间
2 小时
发表于 2020-10-19 17:09:12 | 显示全部楼层
可以分享下资料么,qq416245168
回复

使用道具 举报

6

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2016-3-19
在线时间
18 小时
发表于 2020-10-27 11:30:52 | 显示全部楼层
可以分享下资料么,qq879636662
回复

使用道具 举报

5

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
416
金钱
416
注册时间
2020-8-25
在线时间
76 小时
发表于 2023-5-23 15:17:46 | 显示全部楼层
楼主,刚接触STM32 LIN通信,可以发一份资料学习一下吗?万分感谢!邮箱1531910183@qq.com
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2023-8-18
在线时间
0 小时
发表于 2023-8-18 10:09:01 | 显示全部楼层
Monsteri 发表于 2023-5-23 15:17
楼主,刚接触STM32 LIN通信,可以发一份资料学习一下吗?万分感谢!邮箱

版主学的咋样了,我最近一两周开始接触这个,可以交流请教一下吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 01:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表