概述
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.远程帧和数据帧的区别:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复