历史上的今天
返回首页

历史上的今天

今天是:2025年12月08日(星期一)

正在发生

2022年12月08日 | STM32CubeMX 之 CAN通讯

2022-12-08 来源:zhihu

一、CAN总线简介

CAN是控制器局域网络(Controller Area Network,CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,是国际上应用最广泛的现场总线之一。


CAN控制器通过组成总线的2根线(CAN-H和CAN-L)的电位差来确定总线的电平,信号是以两线之间的“差分”电压形式出现,这点与RS485类似,但两者电平值不同。CAN总线电平分为显性电平和隐性电平。


CAN总线采用两种互补的逻辑数值“显性”和“隐性”。其中,“显性”数值表示逻辑“0”,而“隐性”表示逻辑“1”。


当总线上同时出现“显性”位和“隐性”位时,最终呈现在总线上的是“显性”位。 在“隐性”状态下,VCAN_H和VCAN_L被固定于平均电压电平,Vdiff近似为零,此时VCAN_H和VCAN_L的标称值为2.5V。“显性”位以大于最小阀值的差分电压表示,此时VCAN_H的标称值为3.5V,VCAN_L的标称值为1.5V,如下图所示:

二、CAN帧结构

CAN总线节点上的节点发送数据,是以报文的形式广播给网络中所有节点。收发器接收到数据就把数据传送给控制器,再由控制器检查判断是不是所需数据,不是则忽略。

● 网络上任何一个节点在任何时候都可以发送数据;

● 多个节点发送数据,优先级低主动退出发送;

● 短帧结构,每帧数据信息为0~8字节(具体用户定义),对数据编码而不是地址编码;

● CAN每帧都有CRC校验和其他检验措施,严重错误的情况下具有自动关闭输出的功能。

至于报文传输,则由以下5个不同的帧类型所表示和控制:

● 数据帧:数据帧携带数据从发送器至接收器。

● 远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。

● 错误帧:任何单元检测到总线错误就发出错误帧。

● 帧间隔:数据帧(或远程帧)通过帧间空间与前述的各帧分开。

● 过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供附加的延时。


三、硬件设计

现在很多单片机中内置CAN总线协议控制器,只要外接总线驱动芯片和适当的抗干扰电路就可以很方便地建立一个CAN总线智能测控节点。

驱动芯片如下:

四、软件设计

这里以STM32L431单片机为例,建立STM32CubeMX工程,使能CAN接口,设置时钟及分配系数等参数,如下图所示:

STM32L431的系统时钟为80M,上图中设置的波特率为100kbps。计算方法如下:

CAN波特率为 = 系统时钟/Prescaler/ (SJW+BS1+BS2) = 80MHz/32/(1+16+8) = 100KHz

使能接收中断:

生成代码后,添加CAN滤波器配置函数,如下:

编写接收中断函数和发送数据函数:

在主函数中调用滤波器配置函数,启动CAN总线,使能接收中断,并循环发送测试数据:

通过USB转CAN的工具可以在电脑端查看数据是否成功。可以看到,数据可以正常发送。


推荐阅读

史海拾趣

Advanced Milliwave Laboratories Inc公司的发展小趣事

随着技术的不断成熟和产品的不断优化,AML开始积极拓展市场。公司参与了多个国际电子展会,与全球各地的客户建立了联系。通过展示其独特的技术优势和高质量的产品,AML逐渐在微波技术领域建立了良好的品牌形象。同时,AML还加强了与合作伙伴的合作关系,共同开拓市场,实现互利共赢。

岑科(CENKER)公司的发展小趣事

在过去,国内企业在车载信号传输领域的共模电感选择有限,主要依赖进口品牌。岑科意识到这一市场的巨大空缺后,决定借助自主研发设备的优势进行研发工作。经过两三年的攻关,岑科成功研发出了ACML系列共模电感。这一系列产品在温度特性上表现优异,可在-40℃到150℃的范围内正常工作,并适用于CAN-BUS、CAN-FD、A2B及以太网等多种场景。岑科的这一研发成果不仅填补了国内市场空白,还实现了国产替代,为汽车电子行业的发展做出了重要贡献。

Bytesonic Corporation公司的发展小趣事

1984年,台湾的电子行业正迎来蓬勃发展的黄金时期。在这一年的10月,Bytesonic Corporation在台湾台北正式成立,标志着这家电子公司正式踏入竞争激烈的电子市场。初创时期,公司面临着资金短缺、技术匮乏等多重挑战,但凭借着创始人的远见卓识和团队的拼搏精神,公司逐渐在市场中站稳了脚跟。

DIOTEC公司的发展小趣事

多年来,DIOTEC一直致力于半导体技术的研发和创新。公司不断推出具有竞争力的新产品,以满足市场的不断变化。同时,DIOTEC还积极关注行业发展趋势,及时调整产品战略和市场布局。正是这种持续的创新和进取精神,使得DIOTEC能够在竞争激烈的电子行业中保持领先地位。

Autotrol公司的发展小趣事

Autotrol公司成立于1964年,最初是一家领先的可定制小功率齿轮马达生产商。在初创时期,公司面临着激烈的市场竞争和技术挑战。然而,Autotrol凭借其卓越的技术实力和创新能力,成功开发出一系列具有竞争力的齿轮马达产品,逐渐在市场中脱颖而出。公司不断完善产品线,推出了永久磁铁同步电动机、滞后电动机和直流齿轮马达等,这些产品以其高效、稳定的性能赢得了客户的信赖。

HTSEMI( Jin Yu Semiconductor )公司的发展小趣事

为了加速国际化进程,金宇半导体于2020年制定了详细的国际化战略。公司首先在欧洲设立了研发中心,以吸引更多国际顶尖人才加入。随后,金宇半导体又通过一系列并购整合动作,收购了多家在特定领域具有领先技术的海外企业。这些并购不仅增强了金宇半导体的技术实力和市场影响力,还为其在全球范围内的业务拓展提供了有力支持。通过国际化战略的实施,金宇半导体正逐步成为一家具有全球竞争力的半导体企业。

问答坊 | AI 解惑

现急需红外线发射接收感应开关

红外线发射接收感应开关 要求: 1、 模组由发射管和接收管组成,状态转换时(模组对人体感应到和感应不到两种状态)由一红色LED闪烁一下来指示,模组前面加一个红外线滤光片(可由一具有红外线滤光片作用的塑料外壳替代),不受其他家电红外线遥控 ...…

查看全部问答>

单片机汉字显示器件12232F

概述 12232F是一种内置8192个16*16点汉字库和128个16*8点ASCII字符集图形点阵液晶显示器,它主要由行驱动器/ 列驱动器及128×32全点阵液晶显示器组成。可完成图形显示,也可以显示7.5×2个(16×16点阵)汉字.与外部CPU接口采用并行或串行方式控制。 ...…

查看全部问答>

μC/OS-II and μC/OS-View

μC/OS-II 移植到Atmega128上的官方文档,对于要做移植的朋友是个很好参考~~~…

查看全部问答>

.net 在wince智能设备开发中, 如何在datagrid中加一列checkbox

.net 在wince智能设备开发中     如何在datagrid中加一列checkbox…

查看全部问答>

【 信号处理】级联信号处理器的FPGA实现

级联信号处理器的FPGA实现 需要的下过去看看 摘要:现代通信系统中,数字化已成为发展的必然趋势,数字信号处理则是数字系统中的重要环节。在数字信号处理方面提出一种级联信号处理器的FPGA实现方案,用以取代昂贵的专用数字处理芯片。首先对级联 ...…

查看全部问答>

【QT基础】windows下图标制作

  QT是跨平台的程序设计库,在windows下的程序往往想要有一个好看的图标,方法如下:     1、有无图标的区别:     2、首先要准备好.ico图标 下面这个是可以转换的网站:http://www.ico.la/old.html 可以格式 ...…

查看全部问答>

MOS管为什么会被静电击穿?

replyreload += \',\' + 1328453;我们在实际电子产品设计调试过程中,经常会有这样的疑问,MOS管为什么会被静电击穿?静电击穿是指击穿MOS管G极的那层绝缘层吗?击穿就一定短路了吗?JFET管静电击穿又是怎么回事? Timson,如果您要查看本帖隐藏内 ...…

查看全部问答>

几个功能函数的调用(包括adc,uart,timer)

#include \"msp430g2553.h\" #include \"UART.h\" void main(void) {           WDTCTL = WDTPW + WDTHOLD;                   // Stop watchdo ...…

查看全部问答>

关于MSP430F5529视频观看

怎么这个视频看着看着就要什么机构域名登陆了呢?没得就登不进去,这可怎么办呢?…

查看全部问答>

IC封装中BSC的意思?

IC封装小知识: 经常看到IC封装中使用BSC,那么BSC到底是什么意思呢? BSC的全称是Basic Spacing between Centers(中心基本距离),一般用在说明IC两引脚中心的基本间距。这是一个无误差的,理论的真实位置尺寸。 …

查看全部问答>