0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >设计应用 > STM32 CAN通讯的基本知识及硬件设计

STM32 CAN通讯的基本知识及硬件设计

来源: 21ic
2021-03-02
类别:设计应用
eye 34
文章创建人 拍明

原标题:STM32 CAN通讯的基本知识及硬件设计

一、STM32 CAN通讯的基本知识

1. CAN通讯概述

CAN(Controller Area Network,控制器局域网络)是一种国际标准的串行通信协议,由德国BOSCH公司开发,并最终成为国际标准(ISO11519以及ISO11898)。它是国际上应用最广泛的现场总线之一,具有高可靠性和多主控制等特点,广泛应用于汽车电子、工业自动化等领域。

image.png


2. CAN协议帧类型

CAN协议定义了多种类型的帧,其中数据帧是最常用且复杂的帧类型。数据帧一般由7个段构成,包括帧起始、仲裁段、控制段、数据段、CRC段、应答段和帧结束。具体说明如下:


* **帧起始(SOF)**:1bit,显性信号,表示数据帧(或远程帧)的开始。

* **仲裁段**:包括标识符位(Identifier field-ID)和远程发送请求位(Remote TransferRequest,RTR)。标准帧的ID位是11位,范围是0x000~0x7FF;而扩展帧的ID是29位。ID决定报文的优先级高低,也决定拓扑结构的节点是否接收此ID的帧数据。远程发送请求位用于区分该帧是数据帧还是远程帧,显性信号(0)代表数据帧,隐性信号(1)代表远程帧。

* **控制段**:标准帧中由扩展标识符位(Identifier Extension bit-IDE,1bit)、保留位0(Reseved bit0-r0,1bit)、数据长度编码位(Data Length Code-DLC,4bits)组成;扩展帧由两个保留位(Reseved bit,2bit)、数据长度编码位(Data Length Code-DLC,4bits)组成。

* **数据段**:发送数据的内容,最多8个字节(64bit),实际长度会写到前面的数据长度编码位DLC里。

* **循环校验段(CRC Field)**:包括循环校验序列和界定符。循环校验序列用于校验传输是否正确。

* **确认段(ACK Field)**:包括确认位和界定符。确认位在节点收到正确的CRC序列时,发送端的ACK位被置位。

* **帧结束(End of Frame-EOF)**:7位长度,隐性信号,表示帧的结束。

3. CAN通讯物理层

CAN总线物理层主要有两种形式:


* 一种是遵循ISO11898标准的高速、短距离“闭环网络”,总线最大长度为40m,通信速度最高为1Mbps,总线的两端各要求有一个“120欧”的电阻。

* 另一种是遵循ISO11519-2标准的低速、远距离“开环网络”,最大传输距离为1km,最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个“2.2千欧”的电阻。

4. CAN通讯节点组成

CAN通讯节点由一个CAN控制器及CAN收发器组成。控制器与收发器之间通过CAN_Tx及CAN_Rx信号线相连,收发器与CAN总线之间使用CAN_High及CAN_Low信号线相连。这种差分信号传输方式具有抗干扰能力强、能有效抑制电磁干扰、时序定位精确等优点。

5. STM32 CAN控制器简介

STM32系列微控制器内置了CAN控制器,支持CAN 2.0A和CAN 2.0B Active版本协议。其中,CAN 2.0A只能处理标准数据帧,扩展帧的内容会识别为错误;CAN 2.0B Active则可以处理标准数据帧和扩展数据帧。STM32的CAN控制器通过硬件自动处理帧格式、错误检测、自动重传等功能,降低了CPU处理CAN通信的开销。

二、STM32 CAN通讯的硬件设计

1. 硬件电路设计

在进行STM32 CAN通讯的硬件设计时,需要考虑CAN控制器的引脚配置、时钟开启等前置工作。此外,还需要根据应用需求选择合适的CAN收发器,并将其与STM32的CAN控制器正确连接。同时,在CAN总线的两端需要接入120欧的终端电阻,以匹配总线阻抗,减少回波反射,提高数据通信的抗干扰能力以及可靠性。

2. 波特率配置

波特率是指每秒传输的位数,是CAN通讯中的一个重要参数。在STM32中,可以通过设置位时序参数(如同步段、传播段、相位缓冲段等)来确定合适的波特率。这些参数的设置会影响到CAN通讯的可靠性和实时性,因此需要根据具体的应用需求进行配置。

3. 过滤器配置

STM32的CAN控制器提供了多个可配置的过滤器组,用于筛选接收到的报文。通过配置过滤器的模式、位宽、标识符等参数,可以确定哪些报文可以被接收,哪些报文需要被忽略。这有助于减少CPU处理CAN通信的开销,并提高系统的实时性。

4. 发送和接收流程

在STM32中进行CAN通讯时,发送和接收流程是关键的部分。发送流程包括选择一个空置的邮箱、设置报文的ID、数据长度以及要发送的数据、请求发送等步骤。接收流程则包括配置过滤器、等待接收中断或轮询接收FIFO的状态、读取接收到的报文等步骤。

综上所述,STM32 CAN通讯的基本知识及硬件设计涉及多个方面,包括CAN协议帧类型、物理层特性、通讯节点组成、STM32 CAN控制器简介以及硬件电路设计、波特率配置、过滤器配置和发送接收流程等。在实际应用中,需要根据具体的需求和场景进行选择和配置。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: STM32 CAN通讯

相关资讯

资讯推荐
云母电容公司_云母电容生产厂商

云母电容公司_云母电容生产厂商

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告