10分钟了解CAN通信原理(基于DSP28335ECAN模块)

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

  • 9
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值