IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32复习笔记(二十三) —— CAN协议A -> 正文阅读

[嵌入式]STM32复习笔记(二十三) —— CAN协议A

STM32复习笔记(二十三) —— CAN协议A

1.线路连接

1)使用 CAN 收发器将 CAN_Tx and CAN_Rx 信号转换为差分信号传输,总线两端须分别并联接1个120 Ω 电阻,构成闭环网络,通信速率最高 1Mbps

2)使用 CAN 收发器将 CAN_Tx and CAN_Rx 信号转换为差分信号传输,每根总线须分别串联1个2.2 KΩ 电阻,构成开环网络,通信速率最高 125Kbps

“显性”电平 与 “隐性”电平 类似于 I2C 总线 低电平 and 高电平,“显性”电平优先

2.报文传输

帧类型

数据帧,数据
远程帧,请求发送具有同一识别符的数据帧
错误帧,总线错误时发出
过载帧,在先行的 and 后续的数据帧 (or 远程帧) 之间提供附加的延时

数据帧 (or 远程帧) 通过帧间空间与前述各帧分开

1)数据帧

帧起始 仲裁段 控制段 [数据段] CRC段 应答段 帧结束,其中[数据段]长度可以为0
SSS023.001
帧起始,由1个“显性”位组成

仲裁段,由 IDENTIFIER and RTR-Bit 组成

IDENTIFIER,11位长度,高位 (ID-10) 先行,7个最高位 (ID-10 - ID-4) 必须不能全为“隐性”

RTR BIT,远程传输请求位,在数据帧中必须为“显性”位,远程帧中必须为“隐性”位
SSS023.002
控制段,由4位DATA LENGTH CODE and 2位保留位,共 6个位组成

保留位,必须被作为“显性”发送

DATA LENGTH CODE,指出数据字节数量
SSS023.003
DATA LENGTH CODE 编码 (d-“显性” r-“隐性”),数据段最多8字节
SSS023.004
数据段,最多8字节,每字节8位,高位先行

CRC段,由 CRC SEQUENCE and CRC DELIMITER 组成

CRC SEQUENCE,CRC序列

CRC DELIMITER,在 CRC SEQUENCE 之后,由1个“隐性”位组成
SSS023.005
应答段,由 ACK SLOT and ACK DELIMITER,共2个位组成

发送 station 发送2个“隐性”位,接收器正确接收到有效的信息后,在 ACK SLOT 期间响应1个“显性”位作为应答

ACK SLOT,接收到匹配 CRC SEQUENCE 的所有 stations 将在发送器的 ACK SLOT “隐性”位响应“显性”位作为应答

ACK DELIMITER,在ACK SLOT 之后,必须为“隐性”位,因此,ACK SLOT 被两个“隐性”位包围 (CRC DELIMITER and ACK DELIMITER)

帧结束,每个数据帧 and 远程帧被由7个“隐性”位组成的标志序列分隔
SSS023.006
2)远程帧

A station acting as a RECEIVER for certain data can initiate the transmission of the respective data by its source node by sending a REMOTE FRAME.

帧起始 仲裁段 控制段 CRC段 应答段 帧结束

RTR BIT,远程传输请求位,远程帧中必须为“隐性”位,在数据帧中必须为“显性”位

没有数据段,DATA LENGTH CODE 是独立的,可以在允许范围 (0 - 8) 内取任意值,无影响

RTR BIT “显性”为数据帧,RTR BIT “隐性”为远程帧
SSS023.007
3)帧间空间

DATA FRAMEs and REMOTE FRAMEs 通过帧间空间从 preceding frames (无论是什么类型,数据帧,远程帧,错误帧,过载帧) 分开,而 OVERLOAD FRAMEs and ERROR FRAMEs,multiple OVERLOAD FRAMEs 不被帧间空间分开

帧间空间,由 INTERMISSION and BUS IDLE 组成,对于“error passive”stations 已经作为前一消息的发送器,还包括 SUSPEND TRANSMISSION

对于不是“error passive”的 stations,或者此 stations 已经作为前一消息的接收器,帧间空间包括 INTERMISSION and BUS IDLE
SSS023.008
对于“error passive”stations 已经作为前一消息的发送器,帧间空间包括 INTERMISSION and BUS IDLE and SUSPEND TRANSMISSION
SSS023.009
INTERMISSION,由3个“隐性”位组成

在 INTERMISSION 期间不允许任何 station 传输数据帧 or 远程帧,唯一要做的是发送一个过载条件

BUS IDLE,空闲的时间长度是任意的

只要总线被认定为空闲,任何等待发送消息的 station 就会访问总线,在发送其他消息期间,有消息被挂起,对于这样的消息,其传送起始于 INTERMISSION 之后的第1个位

总线上检测到的“显性”的位可被解释为帧的起始

SUSPEND TRANSMISSION,“error passive”stations 发送消息后,站就在下一消息开始传送之前或总线空闲之前发出8个“隐性”的位跟随在 INTERMISSION 的后面,若与此同时另一 station 开始发送消息 (由另一 station 引起),则此 station 就作为这个消息的接收器

3.位定时要求

标称位速率,为一理想的发送器在没有重新同步的情况下每秒发送的位数量

标称位时间,标称位速率的倒数 (1/标称位速率),即发送一个位所需的时间

由 同步段 and 传播时间段 and 相位缓冲段1 and 相位缓冲段2 组成
SSS023.010
同步段 (SYNC_SEG),用于同步总线上不同的节点,这一段内要有一个跳变沿

传播段 (PROP_SEG),用于补偿网络内的物理延时时间,它是总线上输入比较器延时和输出驱动器延时总和的两倍

相位缓冲段1 and 相位缓冲段2 (PHASE_SEG1 and 2),用于补偿边沿阶段的错误,这两个段可以通过重新同步加长或缩短

采样点 (SAMPLE POINT),是读总线电平并解释各位值的一个时间点,采集点位于相位缓冲段1 (PHASE_SEG1)

信息处理时间 (INFORMATION PROCESS TIME),是一个以采样点作为起始的时间段,采集点用于计算后续位的位电平

时间份额 (TIME QUANTUM),是派生于振荡器周期的固定时间单元,存在有一个可编程的预分频器,取值范围为1 - 32 及之间的整数

以最小时间份额为起点,时间份额的长度为

时间份额 = m * 最小时间份额 (m 为预分频器值)

时间段的长度 (Length of Time Segments)

同步段为1个时间份额
传播段可设置为 1,2,…,8 个时间份额
相位缓冲段1可设置为 1,2,…,8 个时间份额
相位缓冲段2为相位缓冲段1和信息处理时间之间的最大值
信息处理时间小于或等于2个时间份额

一个位时间总的时间份额值可以设置在 8 - 25 的范围

同步 (SYHCHRONIZATION)

硬同步 (HARD SYHCHRONIZATION)

硬同步后,内部的位时间从同步段重新开始,因此,硬同步强迫由于硬同步引起的沿处于重新开始的位时间同步段之内

重新同步跳转宽度 (RESYHCHRONIATION JUMP WIDTH)

重新同步的结果,使相位缓冲段1增长,或使相位缓冲段2缩短,相位缓冲段加长或缩短的数量有一个上限,此上限由重新同步跳转宽度给定,重新同步跳转宽度应设置于1和最小值之间 (此最小值为4,PHASE_SEG1)

时钟信息可以从一位值转换到另一位值的跳变中得到,后续位有固定的最大数值,其数值相同,这个属性提供了总线单元在帧期间重新和位流同步的可能性,(这里有一个属性,即,只有后续位的一固定最大值才具有相同的数值,这个属性使总线单元在帧期间重新同步于位流成为可能,可用于重新同步的两个过渡过程之间的最大长度为29个位时间)

一个沿的相位误差,由相关于同步段的沿的位置给出,以时间份额量度,相位误差定义如下

e = 0 如果沿处于同步段里
e > 0 如果沿位于采集点之前
e < 0 如果沿处于前一个位的采集点之后

重新同步

当引起重新同步沿的相位误差的幅值小于或等于重新同步跳转宽度的设定值时,重新同步和硬同步的作用相同,当相位错误的量级大于重新同步跳转宽度时
如果相位误差为正,则相位缓冲段1被增长,增长的范围为与重新同步跳转宽度相等的值
如果相位误差为负,则相位缓冲段2被缩短,缩短的范围为与重新同步跳转宽度相等的值

同步的原则

硬同步和重新同步都是同步的两种形式,遵循以下规则

1)在一个位时间里只允许一个同步
2)仅当采集点之前探测到的值与紧跟沿之后的总线值不相符合时,才把沿用作于同步
3)总线空闲期间,有一“隐性”转变到“显性”的沿,无论何时,硬同步都会被执行
如果仅仅是将“隐性”转化为“显性”的沿用作于重新同步使用,则其他符合规则1和规则2的所有从“隐性”转化为“显性”的沿可以用作为重新同步,有一例外情况,即,当发送一“显性”位的节点不执行重新同步而导致一“隐性”转化为“显性”沿,此沿具有正的相位误差,不能作为重新同步使用

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:43:26  更:2021-11-09 19:43:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:26:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码