求:can总线通信如何实现两个节点互相收发,希望是keil.c程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求:can总线通信如何实现两个节点互相收发,希望是keil.c程序相关的知识,希望对你有一定的参考价值。

can控制器:sja1000,温度传感器:ds18b20,MCU是:stc89c52
实现的功能:
1:节点1将采集到的温度向节点2发送数据,节点2可以接受,且通过RS232显示在电脑上
2:通过电脑串口RS232向节点2写数据,且通过can总线发送到节点1上。

参考技术A 一般不管在哪里,都别直接要程序,即使要了,也不会有人给。
你应该自己学着写,碰到问题了再问,这样就具体的某个细节问题,大家才好回答你。

这个要求包含如下几个方面:
1)单片机通过RS232与电脑之间发送、接收数据;
2)51单片机对SJA1000的配置、控制、读写;
3)CAN的节点通讯(协议);
4)51单片机对DS18B20的温度采集。

这些,你会哪些,不会哪些,至少自己一点一点的去啃一下,才有意义追问

一对一的已经做好了,实现了上面全部功能。现在是一对多的不懂,主要是通信协议方面。比如我有一个主节点,三个从节点,分别是1,2,3,现在我想从串口发送01 25 89,表示只发送给1号从节点,但是2,3节点不会受到影响。发送00 25 89这三个数据,三个节点都会收到数据,这些功能怎么实现?只要实现思路就行了。

追答

CAN是没有所谓的“主、从”之分的。
CAN是通过前导标签来决定总线的使用权的。如果竞争失败,就转成从模式,接受总线信息。

这个…………更多的,我不想从网上复制过来,建议你好好看一下CAN的基本通信原理,这对于你掌握CAN有很大的好处。
你先看一下基本原理,我们可以再深入讨论,不然我只复制些基本理论,未免太浪费了。

CAN总线标准帧


CAN总线是一种串行数据通信协议,其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。

CAN总线结构

CAN总线规范采用了ISO-OSI(Open System Interconnection Reference Model,开放式通信系统互联参考模型)的三层网络结构,有三种不同的器件与之相对应。

对应物理层的是收发器;

对应数据链路层的是CAN控制器;

应用层上主要是用户特殊的应用,对应的器件是微控制器。

CAN总线标准帧 

 

标准帧 11位标识符。

帧类型 数据帧、远程帧、错误帧和过载帧

  • 数据帧:数据帧携带数据从发送器至接收器。总线上传输的大多是这个帧。

  • 远程帧:由总线单元发出,请求发送具有同一识别符的数据帧。数据帧(或远程帧)通过帧间空间与其他各帧分开。

  • 错误帧:任何单元一但检测到总线错误就发出错误帧。

  • 过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。 

帧以起始帧(SOF)位开始, SOF 为显性状态,允许所有节点的硬同步。SOF之后是仲裁字段,由12个位组成,分别为11个标识位和一个远程发送请求(Remote TransmissionRequest, RTR)位。RTR 位用于区分报文是数据帧

(RTR 位为显性状态)还是远程帧(RTR 位为隐性状态)。

仲裁字段之后是控制字段,由6 个位组成。控制字段的第一位为标识扩展(Identifier Extension,IDE)位,该位应是显性状态来指定标准帧。标识扩展位的下一位为零保留位(RB0),CAN 协议将其定义为显性位。控制

字段的其余4 位为数据长度码(Data Length Code,DLC),用来指定报文中包含的数据字节数(0 到8 字节)。

控制字段之后为数据字段,包含要发送的任何数据字节。数据字段长度由上述DLC 定义(0 到8 字节)。

数据字段之后为循环冗余校验(CRC)字段,用来检测报文传输错误。CRC 字段包含一个15 位的CRC 序列,之后是隐性的CRC 定界位。

最后一个字段是确认字段(ACK),由2 个位组成。在确认时隙(ACK Slot)位执行期间,发送节点发出一个隐性位。任何收到无错误帧的节点会发回一个显性位(无论该节点是否配置为接受该报文与否)来确认帧收到无误。确认字段以隐性确认定界符结束,该定界符可能不允许被改写为显性位。


 

版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号


扫描二维码关注杭州卿萃科技FPGA极客空间


 


 

以上是关于求:can总线通信如何实现两个节点互相收发,希望是keil.c程序的主要内容,如果未能解决你的问题,请参考以下文章

CAN总线每帧含多少字节

详解CAN总线:CAN节点硬件构成方案

详解CAN总线:CAN节点硬件构成方案

详解CAN总线:CAN节点硬件构成方案

can接收丢帧 autosar

qt上 上下位机can总线通信