1、CAN只具有CAN_High和CAN_Low两条信号线,CAN是以差分信号的形式进行通信的;
2、CAN通信有两种网络:一种是遵循ISO11898标准的高速短距离闭环网络,它的总线最大长度为40m,通信速度最高位1Mbit/s;另外一种是遵循ISO11519-2标准的低速远距离开环网络,最大传输距离为1km,最高通信速率为125kbit/s。
3、CAN的通信节点由一个CAN控制器、一个CAN接收器组成;STM32的CAN接口即为CAN控制器,为了构成完整的节点,还要外接一个CAN收发器。
4、差分信号,即信号的逻辑0和逻辑1由两根差分信号线的电压差来表示。
ISO11898规定CAN协议中处于逻辑1(隐性电平)时,CAN_High和CAN_Low线上的电压均为2.5V,即电压差Vh-Vl=0V。而在逻辑0(显性电平)时,CAN_High的电平为3.5V,CAN_Low线的电平为1.5V,即他们的电压差为Vh-Vl=2V。
5、在CAN总线中,必须处于隐性电平(逻辑1)或显性电平(逻辑0)中的一个状态。假如有两个CAN通信节点,在同一时间,一个输出隐性电平,另一个输出显性电平,总线的“线与”特性将使它处于显性电平状态,即可以认为显性具有优先的意味。
6、CAN一共有5种类型的帧(报文):数据帧(用于发送单元向接收单元传送数据的帧)、遥控帧(用于接收单元向具有相同ID的发送单元请求数据的帧)、错误帧(用于当检测出错误时向其他单元通知错误的帧)、过载帧(用于接收单元通知其尚未做好接收准备的帧)、帧间隔(用于将数据帧及遥控帧与前面的帧分离开来的帧);
7、数据帧是在CAN通信中最主要、最复杂的报文;数据帧以一个显性位(逻辑0)开始,以7个连续的隐形位(逻辑1)结束。在它们之间,分为仲裁段、控制段、数据段、CRC段和ACK段。
7.1、仲裁段的内容主要为本数据帧的ID信息。数据帧分为标准格式和扩展格式两种,区别就在于ID信息的长度,标准格式的ID为11位,扩展格式的ID为29位。
在CAN协议中,ID起着重要的作用,它决定真数据帧发送的优先级,也决定着其他设备是否会接收这个数据帧。
仲裁段除了报文ID外,还有RTR、IDE、SRR位。其中RTR(Remote Transmission Request)位用于区分数据帧和遥控帧的,在数据帧里这一位为显性(逻辑0)。IDE(Identifier Extension)位用于区分标准格式与扩展格式的,在标准格式中为显性,在扩展格式里为隐性。SRR(Substitute Remote Request)位只存在于扩展格式,它用于替代标准格式中的RTR位。SRR位为隐性位,由于RTR在数据帧为显性位,所以在两个ID相同的标准格式报文与扩展格式报文中,标准格式的优先级较高。
7.2、在控制段的r1和r0为保留位,默认设置为显性位。最主要的为DLC段,DLC段由4位组成,MSB先行,它的二级制编码用于表示本报文中的数据段含有多少个字节,DLC段表示的数字为0~8;
7.3、数据段为数据帧的核心内容,它由0~8个字节组成,MSB先行;
7.4、CAN的报文包含了一段15位的CRC校验码,一旦接收端计算出CRC跟接收到的CRC码不同,则会向发送端反馈出错信息以及重新发送。CRC部分的计算和出错处理一般由CAN控制器硬件完成或由软件控制最大重发数;在CRC校验码之后,有一个CRC界定符,它为隐性位,主要作用是把CRC校验码与后面的ACK段隔开。
7.5、ACK段包括一个ACK槽位和ACK界定符位。
8、CAN协议把每一位的时序分解为SS段、PTS段、PBS1段和PBS2段,这四段的长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是Tq,而一个完整的位由8~25个T区组成。
8.1、SS段为同步段,若总线的跳变沿被包含在SS段的范围之内,则表示节点与总线的时序同步。节点与总线同步时,采样点采集到的总线电平即可被确定为该位的电平。SS段的大小为1Tq。
8.2、PTS段为传播时间段,这个时间段用于补偿网络的物理延时时间,是总线上输入比较器延时和输出驱动器延时总和的两倍。PTS段的大小为1~8Tq;
8.3、PBS1段为相位缓冲段,主要用来补偿边沿阶段的误差,它的时间长度在重新同步的时候可以加长。PBS1段的初始大小可以为1~8Tq;
8.4、PBS2段为另一个相位缓冲段,也是用来补偿边沿阶段误差的,它的时间长度在重新同步时可以缩短。PBS2段的初始大小可以为2~8Tq。
9、STM32的所有型号芯片中都具有不行CAN控制器(Basic Extend CAN),它支持CAN协议2.0A和2.0B。bxCAN接口可以自动地接收和发送CAN报文,支持标准标识符和扩展标识符。它具有3个发送邮箱,发送报文的优先级可以使用软件,可以记录发送的时间。有两个3级深度的接收FIFO,可以使用过滤功能只接收或不接收某些ID号的报文。可以配置成自动重发。不支持使用DMA进行数据收发。

STM32之CAN控制器相关推荐

  1. STM32系列微控制器入门介绍

    文章目录 目的 基础需求 电路基础 编程语言 入门介绍 官方网站 型号选择 开发方式 开发工具 程序调试 固件烧录 资料说明 总结 目的 STM32是意法半导体(ST)推出的主要基于ARM Corte ...

  2. 9-基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT+参考英文文献)

    基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT+参考英文文献) 文章目录 基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT ...

  3. can总线程序讲解_详解stm32的CAN控制器(程序分享)

    首先简单介绍一下CAN总线,关于CAN总线是谁发明的,CAN总线的历史,CAN总线的发展,CAN总线的应用场合,这些,通通不说.这里只是以我个人理解,简单说说CAN通信.CAN总线的端点没有地址(除非 ...

  4. stm32/gd32电动车控制器资料

    stm32/gd32电动车控制器资料 电动车控制器原理图.PCB和程序 大厂成熟电机foc控制 送eg89m52的原理图和pcb ID:695652995403923

  5. STM32脉冲伺服电机控制器参考技术方案

    STM32脉冲伺服电机控制器参考技术方案 id=661871202965&

  6. 【毕业设计】9-基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT+参考英文文献)

    毕业设计]基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT+参考英文文献) 文章目录 毕业设计]基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿 ...

  7. 小白围观,超级牛的STM32 BLDC直流电机控制器设计

    2019-02-28 16:39:06 本设计是基于STM32 BLDC直流无刷电机控制器设计,并附上原理图和源码等,供网友参考学习.源代码是基于免费开源CoOS(UCOS类似)操作系统上写的,在学习 ...

  8. 【STM32】系统配置控制器相关函数和类型

    00. 目录 文章目录 00. 目录 01. 概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 附录 06. 声明 01. 概述 系统配置控制器主要用于管理对可执行代码的存储区域的 ...

  9. 使用STM32CubeMX和TrueSTUDIO开发STM32系列微控制器

    文章目录 这种方式现在已经不推荐了 关于STM32CubeMX STM32CubeMX介绍 为什么使用STM32CubeMX 下载及安装 关于TrueSTUDIO TrueSTUDIO介绍 为什么使用 ...

最新文章

  1. 27场机器学习面试后,来划个概念重点吧
  2. 我也没想到 springboot + rabbitmq 做智能家居,会这么简单
  3. 约翰霍姆金斯大学_the I-STAR Lab
  4. C#求一元二次方程的根经典案例程序
  5. 粮草先行——Android折叠屏开发技术点番外篇之运行时变更处理原则
  6. JAVASCRIPT和数据结构,算法
  7. Spring @ComponentScan
  8. 框架下载_最新安卓XDA框架插件下载仓库
  9. 如何学习angular.js
  10. 程序设计语言的特性——心理特性、工程特性、技术特性
  11. Qt6 tesseract-ocr 截图识字
  12. 吉林大学计算机学院三等奖学金,吉林大学奖学金评定方案.doc
  13. 一个小程序走完诉讼全程,腾讯云加速推动“智慧法院”方案落地
  14. html如何让文字变斜体,CSS中如何让文字变成斜体
  15. 稠密的方法之一:洗洁精6502透明液态增稠剂
  16. npack v1.1.300 beta by NEOx/[uinc]
  17. Swift语言难度大吗?适不适合零基础学习?
  18. 在线图片转为base64
  19. Spring Doc OpenAPI3.0 抛弃SpringFox拥抱SpringDoc
  20. OpenCms 带分页的新闻列表

热门文章

  1. php f4v元数据,[AS3]视频播放器处理flv,mp4,f4v元数据的问题
  2. matrix67 kmp算法讲解
  3. 开源系统_二次开发(转)
  4. 感谢 驱动精灵2011
  5. EF and our country
  6. 人工智能--Keras网络训练
  7. 一步步教你查看cuda和cudnn版本
  8. 极限内卷丨让我们偷偷的卷起来
  9. 【5G之道】第十二章:载波聚合
  10. 签到功能,用 MySQL 还是 Redis ?