打印
[STM8]

STM8 关于LIN总线从节点接收不到报文头的问题

[复制链接]
4665|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在回答这个问题之前,麻烦大家能够回答小弟的一个疑惑:一个控制器可以控制两个LIN收发器吗,也就是可以控制两个LIN节点吗?

如果可以,小弟现在有一个奇怪的问题:

基本情况:
从节点的地址是0x06,主节点发送一个报文头,报文头中的标识符是0x06,然后主节点响应,发送一个"hello"。主节点能够接收到"hello",因为我采用的带错误侦测的报文头发送,所以报文头发送应该没有问题。主节点接收也没有问题。
问题:
从节点接收不到报文头(换句话说,这两个节点这样就没法通信了)。

这个问题在手册中没有看出答案,希望有经验的朋友能够帮帮忙。(在这里再次多谢DNAutomotive这位朋友上一次的帮助)。
沙发
a7208184|  楼主 | 2011-2-23 14:51 | 只看该作者
是我没有描述清楚吗?  大家帮帮忙,我只想知道是不是一个控制器不能同时控制两个LIN节点进行相互通信。因为在一般的LIN局域网络中的结构都是一个LIN控制器+一个LIN驱动器。小弟现在很困惑呀,不知道是软件的问题,还是硬件的测试方法不对。。

使用特权

评论回复
板凳
jgphu| | 2011-2-23 16:33 | 只看该作者
你两个接口对接是可以的,不是硬件问题。其实LIN就是一个特殊点的串口,特殊的地方在它有13位同步间隔。

使用特权

评论回复
地板
a7208184|  楼主 | 2011-2-23 17:30 | 只看该作者
我有怀疑过是不是从节点地址设置不对导致的。但是数据手册有讲,所有从节点处于静默模式下,它是会接受报文头,不会接收报文头以外的数据。那是不是说明如果主节点发送的标识符与从节点的地址不一致的话,那么从节点至少能够监测到报文头,也就是能够收到报文头。不知道我的想法对不对。
    我还怀疑是不是波特率的问题,导致从节点的波特率要与主节点同步的时候,出现了错误。小弟现在不知道是哪里出现了问题,jgphu这位朋友,能够传一份关于ST系列的LIN总线的示例代码吗?谢谢了!!!!

使用特权

评论回复
5
DNAutomotive| | 2011-2-24 14:57 | 只看该作者
本帖最后由 DNAutomotive 于 2011-2-24 15:00 编辑

一个控制器是不能控制两个LIN收发器的。STM8上32k以上的芯片有两个USART控制器(LIN控制器),你手中的demo板上也有两个收发器分别与控制器相连。根据之前的描述,主节点已经被你调通了,因为LIN的收发器中是一个回路,自己发送的内容自己也会同时收到,这可以用于单个节点自我检测是否发送成功。但这个节点不能同时做从节点,你可以用demo板上另一个USART口,通过一根线将这两个收发器的LIN连起来,实现LIN的主从交互通信。

红线是你需要连接的线,两个红圈分别连接的是STM8上的两个LIN控制器,绿色圈中的是demo板上的两个收发器(需要外部供12V电源),蓝色圈是上次提到的Multiplexer。

这样才能形成一个完整的最简单的LIN网络。

使用特权

评论回复
6
a7208184|  楼主 | 2011-2-24 19:48 | 只看该作者
恩,很感谢DNAutomotive兄台的回答。我按照你的说法这样做了:

我用USART1做主节点,USART2做从节点,两个接口用一根线连起来。我的从节点配置大致是这样的。

配置为从模式,自动从同步功能。从节点地址是0x06。收发使能打开,波特率跟主节点一样,都配置为9600。使能侦测报文头中断和接收中断。

主节点现在确信是没有问题了,然后主节点发送的标识符也是0x06。 不知道为什么从节点还是进不了中断,也就是还是检测不到报文头。。

不知道有碰到过这种问题吗,很明显我觉得应该是从节点配置的问题吗,但是不知道这样配置哪里出错了,望指教下。。

使用特权

评论回复
7
DNAutomotive| | 2011-2-25 09:21 | 只看该作者
UART2收发器的12V电供了么?

使用特权

评论回复
8
a7208184|  楼主 | 2011-2-25 11:13 | 只看该作者
这个USART2收发器U16应该是芯片给他提供电源啊,不会要单独给这个收发器供电吧。而且如果USART2收发器没有供电的话,那么USART1收发器不是也没有供电,那主节点应该应该不能自测吧。不知道这样分析对不对。我现在很怀疑两个节点好像总线线路没有连接,USART2收发器才会没有反应,不知道这样分析对不对。

使用特权

评论回复
9
DNAutomotive| | 2011-2-25 17:06 | 只看该作者
看下电路图吧,demo板是只供5V电源的,LIN总线是12V,所以收发器Vs口是需要供12V的。建议到ST官网去下个L9638D的datasheet看一下。主节点能收到是因为收发器内部TX和RX之间是联通的。可是LIN总线上因为收发器没工作,所以是没有信号的。供12V的时候别忘了共地。:)

使用特权

评论回复
10
flycamelaaa| | 2023-12-27 15:20 | 只看该作者
可能是地址不匹配

使用特权

评论回复
11
powerantone| | 2023-12-27 15:21 | 只看该作者
检查从节点和主节点使用的波特率是否一致。如果波特率不匹配,可能会导致通信错误。

使用特权

评论回复
12
stormwind123| | 2023-12-27 15:21 | 只看该作者
可能是硬件问题

使用特权

评论回复
13
probedog| | 2023-12-27 15:22 | 只看该作者
检查从节点的软件配置是否正确,包括通信参数、中断设置等。错误的软件配置可能导致无法正确接收报文头。

使用特权

评论回复
14
stormwind123| | 2023-12-27 15:22 | 只看该作者
如果存在其他电磁干扰源,可能会影响LIN总线的通信质量,导致无法接收报文头。

使用特权

评论回复
15
中国龙芯CDX| | 2023-12-28 08:06 | 只看该作者
这个问题应该是中断层面报文头的问题,这个得解析

使用特权

评论回复
16
真爱吴迪迪| | 2023-12-29 15:35 | 只看该作者
是不是有外界的干扰

使用特权

评论回复
17
公羊子丹| | 2023-12-30 07:01 | 只看该作者

主电路那些环路产生的噪声会加到控制信号上

使用特权

评论回复
18
公羊子丹| | 2023-12-30 07:01 | 只看该作者

主电路那些环路产生的噪声会加到控制信号上

使用特权

评论回复
19
万图| | 2023-12-30 08:04 | 只看该作者

多次检查也会给单片机带来负荷,对功耗不利

使用特权

评论回复
20
Uriah| | 2023-12-30 09:07 | 只看该作者

在GR-SAKURA中,从IO30引脚到IO35引脚接收来自外部的中断信号

使用特权

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

本版积分规则

0

主题

76

帖子

1

粉丝