MCP2515独立控制器

2023-11-09

1  简介

MCP2515 是一款独立控制器局域网络(Controller Area Network, CAN)协议控制器,完全支持 CAN V2.0B 技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。MCP2515 自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的报文,因此减少了主单片机(MCU)的开销。MCP2515与MCU 的连接是通过业界标准串行外设接口(SearialPeripheral Interface,SPI)来实现的。

2 数据发送:

>>器件有三个引脚----TX0RTS/TX1RTS/TX2RTS用来启动将装载在三个发送缓冲器之一中的报文立即发送出去。是否使用这些引脚由用户决定;若不使用,也可利用控制寄存器(通过SPI接口访问)来启动报文发送---------三个RTS引脚可以不用

>>报文发送时,首先将报文装载到正确的报文缓冲器和控制寄存器中。通过SPI接口设置控制寄存器中的相应位或使用发送使能引脚均可启动发送操作------常用SPI启动发送

---正常情况下,如果 CAN 报文仲裁失败或被错误帧损坏,报文会尝试次发送

3 数据接收:

>>器件上有一个多用途中断引脚及各接收缓冲器专用中断引脚,用于指示有效报文是否被接收并载入接收缓冲器。可选择使用专用中断引脚。通用中断引脚和状态寄存器(通过SPI接口访问)也可用来确定何时接收了有效报文------为了减少引脚的使用,先使用通用中断引脚检测中断的发生,再通过读状态寄存器判断是何种类型的中断。

>>通过读取相应的寄存器可以检查通讯状态和错误。会对在CAN总线上检测到的任何报文进行错误检查,然后与用户定义的滤波器进行匹配,以确定是否将报文移到两个接收缓冲器中的一个。

4  CAN报文帧

(1)标准数据帧

CAN标准数据帧与其他所有帧一样,帧以起始帧 (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)位执行期间,发送节点发出一个隐性位。任何收到无错误帧的节点会发回一个显性位(无论该节点是否配置为接受该报文与否)来确认帧收到无误。确认字段以隐性确认定界符结束,该定界符可能不允许被改写为显性位。

最后是帧结尾-------每一个数据帧和远程帧均由一标志序列界定。这个标志序列由 7 个“隐性”位组成。

>>数据帧由 7 个不同的位场组成。

(2)扩展数据帧

在扩展 CAN数据帧中(如图 2-2 所示),紧随SOF位的是 32 位的仲裁字段。仲裁字段的前 11 位为 29 位标识符的最高有效位(Most Significant bit,MSb) (基本lD)。紧随这 11 位的是替代远程请求(SubstituteRemote Request,SRR)位,定义为隐性状态。SRR位之后是 IDE 位,该位为隐性状态时表示这是扩展的CAN帧。

应该注意的是, 如果发送完扩展帧标识符的前11位后,总线仲裁无果,而此时其中一个等待仲裁的节点发出标准CAN数据帧(11 位标识符),那么,由于节点发出了显性 lDE 位而使标准 CAN 帧赢得总线仲裁。另外,扩展 CAN 帧的SRR位应为隐性,以允许正在发送标准CAN 远程帧的节点发出显性 RTR 位。

SRR和lDE位之后是标识符的其余18位(扩展lD) 及一个远程发送请求位。

为使标准帧和扩展帧都能在共享网络上发送,应将29位扩展报文标识符拆成高11 位和低 18 位两部分。拆分后可确保lDE位在标准数据帧和扩展数据帧中的位置保持一致。

仲裁字段之后是6位控制字段。控制字段前两位为保留位,必须定义为显性位---与标准数据帧相同。其余4 位为DLC,用来指定报文中包含的数据字节数。

扩展数据帧的其他部分 (数据字段、CRC 字段、确认字段、帧结尾和间断)与标准数据帧的结构相同

(3)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MCP2515独立控制器 的相关文章

  • 【语义分割】8、Self-Regulation for Semantic Segmentation

    文章目录 一 背景 二 动机 三 方法 SR F Loss Shallow to Deep SR L Loss Deep to Shallow 四 效果 论文地址 https arxiv org pdf 2108 09702 pdf 代码地
  • Spingboot 多模块引入第三方jar包

    1 在需要的模块中引入jar包 2 在此模块中的pom xml 中引用 3 要想打包部署服务器 需要在启动模块中添加配置信息 ps 启动模块要引用此模块才能将此一起jar打包部署
  • 开源的虚拟化私有云及云管平台

    免费开源的私有云及云管平台来了 除虚拟化外 还支持纳管主流的 9 大公有云及私有云平台 欢迎大家安装体验 能解决哪些问题 将几台物理服务器虚拟化成一个私有云平台 需要一个紧凑而且功能相对完整的物理机全生命周期管理工具 将 VMware vS

随机推荐

  • bottle 文件服务器,python bottle 框架基础教程:文件上传

    文件上传 需要注意的是前端html的form表单中 要添加 enctype multipart form data 属性 否则无法上传文件 在后端 用request files方法 获取到表单传上来的文件 首先把对象赋值给一个变量名 如up
  • Android开发过程中的一些问题

    1 Can t toast on a thread that has not called Looper prepare 就是Android子线程中不能直接使用Toast显示提示信息的问题 加入Looper prepare 和Looper
  • java static 静态方法的使用 注意事项

    定义为 static function1 function1 中不能引用this或super 在android 中这样用的话 会出现以下的报错 W dalvikvm 2783 JNI WARNING instance fieldID 0x5
  • DC-6靶机渗透测试

    文章目录 DC 6靶机渗透测试 方式一 1 信息收集 1 1 主机扫描 1 2 端口扫描 1 3 目录扫描 2 暴力破解 3 漏洞利用 4 提权 方式二 1 漏洞利用 方式三 1 漏洞利用 方式四 1 漏洞利用 DC 6靶机渗透测试 方式一
  • MySQL 数据库————连接查询

    目录 一 多表连接查询 1 内连接 inner join 2 左连接 left join 3 右连接 right join 二 存储过程 1 简介 2 优点 3 语法 参数分类 带参数的存储过程 修改存储过程 删除存储过程 一 多表连接查询
  • VS2019安装和使用(C语言)

    VS2019视频 VS2022视频 博主看视频做的笔记 视频讲解比较详细更容易上手 一 下载 VS2019官网下载 分为三个版本 个人用户下载Community 2019足够了 登录微软账号免费 点击下载后跳转新页面可能要等一会才能弹出下载
  • 线性代数的深入理解

    线性代数笔记 关于矩阵理解 reference 矩阵理解 图片来源 b站上的教程 线性变换 所谓变换 其实就是空间里从一个点 元素 对象 到另一个点 元素 对象 的跃迁 矩阵是线性空间中的线性变换的一个描述 在一个线性空间中 只要我们选定一
  • 可正反插USB-C双口转HDMI/VGA带PD快充音视频产品设计方案AG9321MCQ设计参考电路

    ALGOLTEK AG9321MCQ系列为HDMI和VGA转换器提供USB C型 显示端口备用 的单片机解决方案 并提供电源传输 AG9321MCQ系列支持带片上Rp Rd的双USB C型插座 符合USB电源传输规范3 0 集成的10位AD
  • 【数据结构与算法】2、链表(简单模拟 Java 中的 LinkedList 集合,反转链表面试题)

    目录 一 链表基本概念和基本代码实现 二 链表 动态数组整合 面向接口编程 三 clear 四 add int index E element 1 找到 index 位置的节点 2 get int index 和 set int index
  • 前端入坑(四)--------react(如何从API获取数据)

    Hey Welcome to day 4 Hopefully you ve had time to follow along and do the exercises from the last few days And if I ve d
  • GIT : 记录IntelliJ IDEA 合并冲突时的一个bug(冲突解决后代码和本地仓库一样时导致merge失败)

    目录 目录 IntelliJ IDEA版本 问题描述 解决办法 IntelliJ IDEA版本 IntelliJ IDEA 2017 1 4 x64 问题描述 我们在用git开发是经常遇到冲突的情况 一般发生在协同开发时 一个文件被两个人同
  • Unity-Transform.eulerAngles

    Description The rotation as Euler angles in degrees The x y and z angles represent a rotation z degrees around the z axi
  • ReactJS之属性和状态的对比

    1 都是纯JS对象 2 都会触发render的执行 3 都有确定性 状态 state 是由组件本身进行维护和修改的 组件外部是无法进行修改的 属性 props 组件自身具有的特性 是无法被自身修改的 但是父组件是可以修改子组件的属性 子组件
  • 贝叶斯网络是神经网络吗,贝叶斯网络和神经网络

    深度信念网络与深度贝叶斯网络有什么区别 1 贝叶斯网络是 一种概率网络 它是基于概率推理的图形化网络 而贝叶斯公式则是这个概率网络的基础 贝叶斯网络是基于概率推理的数学模型 所谓概率推理就是通过一些变量的信息来获取其他的概率信息的过程 基于
  • 内网穿透NPS及NPC搭建(使用docker实现)

    客户端及服务端下载 NPS 1 启动NPS服务器容器 端口映射需要注意 docker run td rm p 10180 8080 p 10124 8024 p 10150 10179 10150 10179 name nps q01231
  • 遥感NDVI估算植被覆盖度

    遥感NDVI估算植被覆盖度 植被覆盖度是指植被 包括叶 茎 枝 在地面的垂直投影面积占统计区总面积的百分比 容易与植被覆盖度混淆的概念是植被盖度 植被盖度是指植被冠层或叶面在地面的垂直投影面积占植被区总面积的比例 两个概念主要区别就是分母不
  • php+redis实现对200w用户的即时推送服务

    欢迎加入 新群号码 99640845 怎么实现对200w用户的即时推送 这个推送可以理解为调用第三方的接口 push sms之类的东西 当时先写了一个demo 直接读取DB然后单个推送 结果 可想而知 于是设计一套基于redis php多进
  • EfficientNet的解读与Tensorflow 2.0实现

    EfficientNet论文解读 Efficient Net是Google在2019年发表的一篇论文 系统的研究了如何在给定资源的条件下 如何平衡扩展网络的深度 广度以及图像的分辨率这三者的关系 来取得最好的图像识别精度 作者提出了一种新的
  • part1:推荐一些适合练手、课程设计、毕业设计的python小项目源码,无任何下载门槛

    人生苦短 我用python 随着python这些年的流行 很多人开始使用python来实现各种功能 下面推荐一些适合用来练手 大学生课程设计作业 大学生毕业设计的python小项目 尤其适合新手 源码 说明文档 打包后的exe文件 都已经被
  • MCP2515独立控制器

    1 简介 MCP2515 是一款独立控制器局域网络 Controller Area Network CAN 协议控制器 完全支持 CAN V2 0B 技术规范 该器件能发送和接收标准和扩展数据帧以及远程帧 MCP2515 自带的两个验收屏蔽