我是靠谱客的博主 痴情彩虹,最近开发中收集的这篇文章主要介绍10分钟了解CAN通信原理(基于DSP28335ECAN模块)1.Can 的逻辑是由差分信号来决定的2.can的速度和数据量还有挂载的设备比串口多3.can通信一帧里包含的内容4.can通信配置流程5.远程帧和数据帧的区别:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.Can 的逻辑是由差分信号来决定的

当两根线的压差为2.5v时代表着逻辑0显性电平

两根线的压差为0v时代表着逻辑1隐形电平

2.can的速度和数据量还有挂载的设备比串口多

3.can通信一帧里包含的内容

起始位是显性电平(逻辑0)+11位的id号+RTR远程帧+控制段+数据段+校验段+应答段+停止段

仲裁段:邮件的标题、ID号11位,扩展帧的标识符是29位

控制端:后四位确定要发送的字节数最多发8个字节

数据段:最多8字节

校验段:16位,会自动打包

应答段:2位,察看是否有应答

停止段:7位

仲裁:只要显性不要隐形

筛选器:第一种模式:不要第一位是1的等等   选择所关心的几位 比如一定要第一位是1、第二位是2这种都能给到主机

              第二种模式一定要001或者一定要009这种

can的传输速率:波特率:一秒传输多少位

4.can通信配置流程

初始化发送邮箱和接收邮箱(一共有32邮箱,可以配置哪些是发送邮箱和接收邮箱),包括配置引脚,配置波特率,工作模式,控制寄存器配置数据的字节数。

(1).配置引脚

EALLOW;

GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0;            // Enable pull-up for GPIO18 (CANRXA)

GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0;            // Enable pull-up for GPIO19 (CANTXA)

/* Set qualification for selected CAN pins to asynch only */


//   GpioCtrlRegs.GPAQSEL2.bit.GPIO30 = 3;   // Asynch qual for GPIO30 (CANRXA)

  GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 3;   // Asynch qual for GPIO18 (CANRXA)

/* Configure eCAN-A pins using GPIO regs*/

  GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 2;        // Configure GPIO18 for CANRXA operation


  GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 2;

//配置eCAN的RX和TX分别为eCAN的接收和发送引脚

ECanbShadow.CANTIOC.all = ECanbRegs.CANTIOC.all;

ECanbShadow.CANTIOC.bit.TXFUNC = 1;

ECanbRegs.CANTIOC.all = ECanbShadow.CANTIOC.all;


ECanbShadow.CANRIOC.all = ECanbRegs.CANRIOC.all;

ECanbShadow.CANRIOC.bit.RXFUNC = 1;

ECanbRegs.CANRIOC.all = ECanbShadow.CANRIOC.all;

EDIS;

(2).配置波特率

正常模式下CCR和CCe均应该等于0,如果要配置波特率,需要先把它们都置为1,在配置完成之后应该把CCE和CCR还原为0

(3).配置工作模式和发送的字节

EALLOW;

ECanbShadow.CANMC.all = ECanbRegs.CANMC.all;

//工作在非测试模式

ECanbShadow.CANMC.bit.STM = 0;

//工作在ecan模式

ECanbShadow.CANMC.bit.SCB = 1;

ECanbRegs.CANMC.all = ECanbShadow.CANMC.all;

EDIS;
        //数据长度 8个BYTE

        ECanbMboxes.MBOX16.MSGCTRL.bit.DLC = 8;

(4).初始化发送邮箱和接收邮箱并且设置邮箱的ID号

ecan提供32个邮箱,每个邮箱占据8个地址,一个地址16位,只有在该邮箱被禁止时才能修改邮箱的ID

用于接收到单元向具有相同ID的发送的单元请求数据的帧。

5.远程帧和数据帧的区别:

由总线上的节点发出,用于请求其他节点发送具有同一标识符的数据帧。当某个节点需要数据时,可以发送远程帧请求另一节点发送相应数据帧。与数据帧相比,远程帧没有数据场,由6个段组成,结构如图所示。同理分为标准格式和扩展格式,且RTR位为1(隐性电平)

此时采用.bit形式可能产生寻址上面的错误,所以用shadow

最后

以上就是痴情彩虹为你收集整理的10分钟了解CAN通信原理(基于DSP28335ECAN模块)1.Can 的逻辑是由差分信号来决定的2.can的速度和数据量还有挂载的设备比串口多3.can通信一帧里包含的内容4.can通信配置流程5.远程帧和数据帧的区别:的全部内容,希望文章能够帮你解决10分钟了解CAN通信原理(基于DSP28335ECAN模块)1.Can 的逻辑是由差分信号来决定的2.can的速度和数据量还有挂载的设备比串口多3.can通信一帧里包含的内容4.can通信配置流程5.远程帧和数据帧的区别:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部