历史上的今天
今天是:2024年10月17日(星期四)
2018年10月17日 | 56。CAN通信基础知识介绍
2018-10-17 来源:eefocus
一。什么是CAN?

(二)CAN协议的特点



(三)我们使用ISO11898标准,物理层特征如图所示
125K-1Mbps的高速标准

电路图
通过TJA1050收发芯片

逻辑电平指的是CAN_RX和CAN_TX上的电平
CAN_H和CAN_L的电平指的是指经过电平转换芯片TJA1050以后转换出来的电平,是通过差分信号来传输信号的。
隐形电平:指CAN_H与CAN_L相等,都等于2.5V的时候,它们之间的压差是0V,对应逻辑“1”。
显性电平:指CAN_H与CAN_L有2V左右的压差,CAN_H是3.5V,CAN_L是1.5V,对应逻辑“0”。
总线上的电平必居其一,要么是显性要么是隐形。
(四)CAN通信是以以下5种类型的帧进行的

CAN通信是以帧为单位进行传输的。其中数据帧是最复杂的也是最重要的。
(五)数据帧的组成


R表示隐形电平,也就是STM32输出的高电平“1”,对应到总线上压差0V
D表示显性电平,也就是STM32输出的低电平“0”,对应到总线上压差2V
(六)数据帧解析

扩展格式有 11+18共29位的扩展ID。对于扩展格式IDE位读出来一定是“1”


CRC的值的计算是:SOF帧起始+仲裁段+控制段+数据段
校验的时候也是把这些相加,然后跟CRC去对比,来判断我们收到的数据是不是正确的。

接收单元在接收正常以后会发送一个ACK给发送单元,发送单元会根据这个ACK来确定是不是发送成功。
帧结束:由7个位的隐形位组成,也就是7个“1”。
总线仲裁

前面说过显性电平占优,也就是“0”是占优的。这里逐个位进行比较,从ID段开始。
这个图中单元2发出的0多,就抢占了优先权,单元1转为接收单元。
位时序
波特率的概念

位时序中各个段的作用和Tq数如下表

在STM32中只有PBS1和PBS2,其中PBS1包含了传播时间段,变为2-16Tq。
一个位的组成

这些都是硬件自动去处理的,我们只要设置好:传播时间段,相位缓冲段1,相位缓冲段2,再同步补偿宽度。
(七)重点要掌握的4个知识点
1. 标识符(ID): 不表示目的地址,而是表示优先级。有标准标识符和扩展标识符,标准标识符有11个位,扩展标识符有29个位。最高的7位不允许全部设置为“1”
2. 数据帧的构成:由7个段构成。
3. 总线仲裁:连续发送0最多的占的优先级就高,也是根据ID来仲裁的。
4. 位时序:知道位时序以后就可以设置波特率。1M的波特率,Tq=0.1us,10个Tq刚好是1us,波特率刚好是1M。
上一篇:58.外部SRAM实验
下一篇:55.SPI接口原理与配置
史海拾趣
|
我在project.reg 里添加了如下内容 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\FontPath] \"FontPath\"=\"\\\\Hard Disk\\\\Font\" ; 字库文件所在目录 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\FontLink\\SystemL ...… 查看全部问答> |
|
本以为解决了,结果还不行! 目前的情况: 计算机发信号给LED显示屏,中间用433无线模块传输。发送端通过232转485接无线模块,接收端模块通过485接显示屏。正常。但因为433模块不好用,所以客户想用我们的超级无线传输模块。但是,他要求,用我们 ...… 查看全部问答> |
|
使用AD采样一个电压信号,开机后显示数值710稳定,过了大约5分钟数值变为692 这是怎么回事?使用的是内部1.5V基准 有同鞋遇到过同样的问题没?… 查看全部问答> |
|
【设计工具】利用 Xilinx FPGA 打造出高端比特精度和周期精度浮点 DSP 算法实现方案 系统要求和可用 FPGA 的当前趋势使浮点实现方法变得更加重用。本白皮书和视频说明了(与其它设计流程的不同之处)DSP 系统生成器 13.3 如何为用户提供针对比特精度、周期精度、单精度、双精度和定制精度浮点 ...… 查看全部问答> |




