0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN总线通信详解

智能汽车电子与软件 来源:智能汽车电子与软件 2023-03-29 10:06 次阅读

一、CAN相关芯片

1.CAN控制器

2.CAN收发器:CAN收发器的作用是负责逻辑电平和信号电平之间的转换。

即从CAN控制芯片输出逻辑电平到CAN收发器,然后经过CAN收发器内部转换将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据。

d08765a6-cd7f-11ed-bfe3-dac502259ad0.png

二、CAN的配置

void CAN1_Config_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

CAN_InitTypeDef CAN_InitStructure;

CAN_FilterInitTypeDef CAN_FilterInitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

d09e4082-cd7f-11ed-bfe3-dac502259ad0.png

d0b6ae38-cd7f-11ed-bfe3-dac502259ad0.png

三、CAN波特率计算公式

d0cccb00-cd7f-11ed-bfe3-dac502259ad0.png

CAN波特率=系统时钟/分频数/(1*tq+tBS1+tBS2)

其中

tBS1=tq*(TS1[3:0]+1)

tBS2=tq*(TS2[2:0]+1)

tq=(BRP[9:0]+1)*tPCLK

这里tq表示1个时间单元

tPCLK=APB时钟的时间周期

BRP[9:0],TS1[3:0]和TS2[2:0]在CAN_BTR寄存器中定义

总体配置保持

tBS1>=tBS2,tBS2>=1个CAN时钟周期,tBS2>=2tSJW

四、CAN的发送与CAN的接收

1、发送过程:CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。

d0e0e022-cd7f-11ed-bfe3-dac502259ad0.png

2、接收过程:CAN接收器将CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。

d0f50200-cd7f-11ed-bfe3-dac502259ad0.png

五、STM32 CAN控制器简介-发送流程和接收流程

程序选择1个空置的邮箱(TME=1)->设置标识符(ID),数据长度和发送数据->设置CAN_TIxR的TXRQ位为1,请求发送->邮箱挂号(等待成为最高优先级)->预定发送(等待总线空闲)->发送->邮箱空置

d1055c5e-cd7f-11ed-bfe3-dac502259ad0.png

FIFO空->收到有效报文->挂号_1(存入FIFO的一个邮箱,这个由硬件控制,我们不需要理会)->收到有效报文->挂号_2->收到有效报文->挂号_3->收到有效报文->溢出。

CAN收到的有效报文,存储在3级邮箱深度的FIFO中。FIFO接收到的报文数,我们可以通过查询CAN_RFxR的FMP寄存器来得到,只要FMP不为0,我们就可以从FIFO读出收到的报文。

d121ee32-cd7f-11ed-bfe3-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    2965

    浏览量

    104679
  • 控制器
    +关注

    关注

    112

    文章

    15127

    浏览量

    170822
  • CAN
    CAN
    +关注

    关注

    56

    文章

    2450

    浏览量

    458959
  • 通信
    +关注

    关注

    18

    文章

    5693

    浏览量

    134270
  • 总线
    +关注

    关注

    10

    文章

    2692

    浏览量

    87140

原文标题:CAN总线通信

文章出处:【微信号:智能汽车电子与软件,微信公众号:智能汽车电子与软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    详解汽车CAN总线

    作者:Xiaomin 概述 CAN(Controller Area Network)总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线,它起初用于实现汽车内ECU之间
    发表于 07-26 08:33

    CAN总线详解 精选资料分享

    总线技术3.运行流程:4.显性隐性:一、 CAN帧结构CAN-bus通信帧:数据帧、远程帧、错误帧、过载帧和帧间隔1.数据帧由7个段组成,其中根据仲裁段ID码长度的...
    发表于 08-20 07:03

    CAN通信总线详解

    CAN做为应用比较广泛的通信总线,受到了越来越多的客户喜欢和青睐,广泛应用于工业和汽车,常见的高层协议有CANopen,J1939,DeviceNet等,在公众号曾经分享过超过15篇有关C...
    发表于 08-31 07:14

    基于CAN总线的多ECU通信平台设计

    介绍CAN 总线及其通信协议J1939, 并设计基于CAN 总线的多ECU 通信平台的硬件结构;
    发表于 04-15 09:49 22次下载

    Linux系统下CAN总线通信的设计及实现

    本设计为光电稳定跟踪平台开发CAN 驱动,以实现CAN 总线上设备间的通信。分析了linux 下标准设备驱动机制和CAN
    发表于 08-04 08:33 30次下载

    CAN总线通信电路

    CAN总线通信电路
    发表于 10-14 13:59 6370次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>通信</b>电路

    CAN总线在多机通信中的应用

    设计了多个CAN总线通信节点,通过PCI9810-CAN适配卡上的CAN总线,组成一个局域
    发表于 10-19 14:57 67次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>在多机<b class='flag-5'>通信</b>中的应用

    CAN总线通信原理分析

    基于CAN总线系统结构构成,通过工程实践的具体应用以及对CAN控制器及收发器硬件结构的深入理解,并从通信的角度出发着重深入分析了CAN
    发表于 05-08 15:23 404次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>通信</b>原理分析

    CAN总线详解

    汽车CAN总线基础详解与基本应用情况与实例分享
    发表于 03-22 15:50 0次下载

    CAN总线通信详解

    CAN总线通信详解
    发表于 03-30 16:46 0次下载

    汽车can总线工作原理及测量方法详解

    本文首先介绍了CAN总线的总体结构,其次介绍了汽车CAN总线数据传输系统构成及工作原理,最后介绍了汽车CAN
    发表于 04-25 08:54 14.5w次阅读
    汽车<b class='flag-5'>can</b><b class='flag-5'>总线</b>工作原理及测量方法<b class='flag-5'>详解</b>

    CAN总线通信报文验收滤波、位定时与同步详解

    CAN(Controller Area NetWork)总线,即控制器局域网总线,是由德国Bosch公司于1982年开发和推出的最早用于汽车内部测量与执行部件之间的数据通信协议。在20
    的头像 发表于 05-07 16:16 9791次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>通信</b>报文验收滤波、位定时与同步<b class='flag-5'>详解</b>

    为什么要用光纤CAN转换器_基于光纤转CAN模块的CAN总线通信改造

    总线,在通讯上也会受到部分干扰,所以改造CAN总线迫在眉睫。本文首先介绍了什么是光纤及can总线,其次介绍了为什么要用光纤
    发表于 05-07 17:09 7586次阅读

    CAN总线学习笔记四:CAN总线通信

    在理解了CAN总线的自通信程序后,再来探讨CAN总线间的相互通信变得容易了许多。对于是自
    发表于 09-21 15:06 1479次阅读

    详解CAN总线通信优先级机制

    详解CAN总线CAN总线报文格式—数据帧文章中,讲解到仲裁段。仲裁段用于写明需要发送到目的CAN
    发表于 10-25 14:00 1727次阅读
    <b class='flag-5'>详解</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>通信</b>优先级机制