stm32之CAN总线基础

发布者:stampie最新更新时间:2016-09-18 来源: eefocus关键字:stm32  CAN  总线基础 手机看文章 扫描二维码
随时随地手机看文章

can总线协议概述:

  CAN是Controller Area Network的缩写,由德国博世公司开发;CAN通过ISO11891以及ISO11519进行了标准化;

      

CAN总线的特点:

    1、多主控制

      在总线空闲时,所有单元都可以开始发送消息(多主控制);

      最先访问总线的单元获得发送权(辨别方式:“CSMA/CA方式”);

      多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权;

    2、消息的发送

      在can协议中,所有消息都是以固定格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(ID)决定优先级。ID并不是表示发送消息的目的地址,而是表示访问总线的消息优先级。两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较,仲裁获胜(优先级最高)的单元继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作;

    3、系统的柔软性

      与总线相连的单元没有类似于“地址”的信息,因此在总线上增加单元时,连接在总线上的其他单元的软硬件及应用层都不需要改变;  

    4、通信速度

      根据整个网络的规模,可设定适合的通信速度。最高1Mbps;

      在同一网络中,所有单元必须设定成统一通信速度,即使有一个单元的的通信速度与其他的不一样,此单元也会输出错误信号,妨碍整个网络的通信,不同网络间则可以有不同的通信速度;

    5、远程数据请求

      可通过发送“遥控帧”,请求其他单元发送数据;

    6、错误检测功能(错误通知功能、错误恢复功能)

      所有的单元都可以检测错误(错误检测功能)

      检测出错误的单元会立即同时通知其他所有单元(错误通知功能)

      正在发生消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送(错误恢复功能);

    7、故障封闭

      CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声)还是持续数据错误(如单元内部故障、驱动器错误)。由此功能,当总线上发送持续错误时,可能引起此故障的单元从总线上隔离出去;

    8、连接

      CAN总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加,提高通信速度,则可连接的单元数减少;

CAN总线协议:

 CAN总线涵盖了OSI规定的传输层、数据链路层、物理层;

                  

物理层:

  决定了位编码方式(NRZ编码,6个位插入填充位),位时序(位时序、位的采样)、同步方式(根据同步段ss实现同步,并具有再同步功能);但具体的说:信号电平,通信速度,采样点,驱动器和总线的电气特点,连接器的形态都没有定义,需要用户自行确定;

传输层:

  定义了再发送控制;

数据链路层:

  数据链路层分LLC(逻辑链路控制 Logic Link control)子层 和MAC(媒介访问控制Media access control)子层;

    LLC子层,执行接收消息选择(点到点、广播、组播)、过载通知(通知接收准备尚为完成)、错误恢复功能(再次发送);

    MAC层: 进行数据帧化(4种帧类型),连接方式控制(竞争方式),消息仲裁(ID仲裁),故障扩散抑制(自动识别暂时错误和持续错误,排除故障节点),错误通知(CRC错误、填充位错误、位错误、ACK错误、格式错误),错误检测,应答方式(ACK, NACK),通信方式(半双工)等设置;

  MAC子层是CAN协议的核心,数据链路层的功能是将物理层的信号组成有意义的消息,并提供传送错误控制等传输控制的流程。数据链路层的功能通常是在CAN控制器的硬件中执行;

帧的概念:

  数据帧:用于发送单元想接收单元传送数据的帧;

  遥控帧(请求帧): 用于接收单元向具有相同ID的发送单元请求数据的帧;

  错误帧:用于当检测出错误时向其它单元通知错误的帧;

  过载帧:用于接收单元通知 其尚未做好接收准备的帧;

  帧间隔:用于将数据帧及遥控帧与前面的帧分离开来的帧;没有实际意义

数据帧和遥控帧 都有标准格式和扩展格式两种格式。标准格式有11个位的标识符Identifier,以后称ID),扩展格式有29个位的ID;

  数据帧:

  (1)、帧起始(标准、扩展格式相同)

    表示帧开始的段,1个位的显性位;

   (2)、总线上的电平有显性和隐性电平两种;

    总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”, 隐性电平为“1”;

    ”显性“具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平;

  (3)、仲裁段

      表示数据的优先级的段

      标准格式和扩展格式在此的构成有所不同;

      ID:

    标准格式的ID有11个位,从ID28到ID18被依次发送,禁止高7位都为隐性;

    扩展格式有29个位;基本ID从ID28到ID18,扩展ID由ID17到ID0;

  遥控帧:

  遥控帧没有数据段;没有数据段的数据帧与遥控帧的区别:RTR位;

关键字:stm32  CAN  总线基础 引用地址:stm32之CAN总线基础

上一篇:ARM数控系统高速处理串口数据的研究
下一篇:一个关于CAN出错中断重复出现的话题

推荐阅读最新更新时间:2024-03-16 15:10

STM32:I2C接口读写EEPROM(AT24C02)试验例程
硬件平台:stm32f10xZET6 开发环境:keil MDK uVisionv4.10 开发语言:C、ST_lib_3.5固件库 EEPROM:电可擦可编程只读存储器。 【stm32f10xZET6开发板的I2C外设物理层特点】 (1)两条串行总线:一条双向数据线(SDA),一条时钟线(SCL); (2)从设备地址唯一; (3)支持总线仲裁; (4)三种速率传输模式: 标准模式100kbit/s 快速模式400kbit/s 高速模式3.4Mbit/s (目前大多I2C设备尚不支持高速模式) (5)片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整; (6)连接到相同总线的IC数量受到总线的最大电容400pF限制;
[单片机]
基于CAN控制器的对等式单片机多机系统的通信
    摘要: 针对单片机多机系统主从式通信的缺点,提也了利用CAN控制器实现单片机多机系统对等式通信,并对其硬件组成原理、通信程序的设计做了详细的分析。     关键词: 单片机多机系统 “对等式”通信 控制器局域网(CAN) 关于单片机的多机通信,许多文章及相关书籍都有介绍,但就其多机通信的方式而言大多为“主从式”,这一通信方式限制了单片机功能的发挥及广泛的应用。虽然文献 利用巧秒的硬件手段实现了单片机多机之间的“对等式”通信,但其通信方式实质上仍是“主从式”。本文介绍了一种基于CAN控制器的单片机多机系统,从本质上实现了任意两机之间直接相互通信,从而克服了“主从式”多机通信的缺点。 1 CAN技术简
[应用]
详解STM32的DMA功能
本文将介绍STM32的DMA功能; ①DMA介绍 ②STM32F4-DMA功能框图及详解 ③DMA的增量设置、模式、中断 ①DMA介绍 DMA是direct memory access的缩写,即直接存储器访问;DMA是通过硬件在RAM和IO设备之间开辟一条通道,使得采集到的数据直接存到RAM,使得数据的传输不需要经过CPU读数据再将数据放入RAM、这样极大提高了CPU的效率。 ②STM32F4-DMA功能框图及详解 外设通道: STM32F4具有2个DMA控制器,每个DMA控制器有8个数据流,每个数据流可以从8个外设请求中选择一个作为该数据流的外设通道;外设通道就是数据流的源地址或者目标地址;外设通道的选择可以通过DMA数
[单片机]
详解<font color='red'>STM32</font>的DMA功能
stm32 UCGUI 完美移植
UCGUI是一种嵌入式应用中的图形支持系统。它设计用于为任何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制器的图形用户接口,它适用单任务或是多任务系统环境, 并适用于任意LCD控制器和CPU下任何尺寸的真实显示或虚拟显示。 它的设计架构是模块化的,由不同的模块中的不同层组成,由一个LCD驱动层来包含所有对LCD的具体图形操作。UCGUI可以在任何的CPU上运行,因为它是100%的标准C代码编写的。 类似程序还有国产的一个MINIGUI ( http://www.minigui.com/zhcn/ ),MiniGUI 是一个自由软件项目。其目标是提供一个快速、稳定、跨操作系统的图形用户界面
[单片机]
<font color='red'>stm32</font> UCGUI 完美移植
如何画出STM32系列单片机的原理图
关于STM32F1系列单片机的一个常识: 看上图得知,根据Flash存储器的大小,把STM32F1分为了4种类型,分别是“低密度”“中密度”“高密度”“超高密度”,然后还有一种“互联型”。我们使用的STM32F103VET6的FLASH大小是512K,所以属于“高密度”型的。 我们这次要做的,就是把单片机STM32F103VET6的原理图画出来。 画的时候,要看STM32F103的datasheet。这个datasheet可以在ST的官网上找到。记住,是数据手册,不是参考手册。ST的官网是支持中文的,方便英文不好的朋友浏览。 打开ST的官方网站,看上图第一个红色矩形框里面的路径,依次到这一页。然后点击“数据手册”: 文
[单片机]
如何画出<font color='red'>STM32</font>系列单片机的原理图
STM32入门编程总结2
上手思路,第一步先查芯片datasheet,一切以官网资料为准,可以在STM32 Cube MX软件里选择 ACCESS TO MCU SELECTOR ,在左上角输入 STM32F103C8后,点击 datasheet 自动打开 芯片手册,点击另存为保存到桌面慢慢看。1看封装,2看供电,3看GPIO,4看中断,FLASH大小+USART也瞅瞅看。建议先搜个官方开发板原理图混个脸熟,软件项目文件打开后先编译一遍能否 0 error (s) 0 warning(s)。 最小系统,3.3V供电电路(2.0-3.6V)+复位电路(低电平复位)+8M晶振 + 启动选择电路(BOOT0 、BOOT1)+调试下载SWD接口(PA13、PA
[单片机]
STM32 f103 实现命令终端
文件说明 uart.c 实现输入反显及命令识别 cmd.c 实现命令函数及命令查找 main.c 进入shell模式 uart.c #include usart.h /**************************************************************************** * 名 称:void USART1_Configuration(void) * 功 能:配置USART1参数 * 入口参数: * 出口参数:无 * 说 明: * 调用方法:无 ************************************************
[单片机]
SD NAND在STM32应用上的保姆级教程
SD NAND与正点原子精英板的连接 由于正点原子精英板没有SD NAND接口,只有TF卡接口,所以SD NAND需要用到转接板来连接。 SD NAND正常运行现象 本次实验的程序是正点原子的SD卡实验例程,先用读卡器把SD NAND接到电脑上,并复制一个文件进去,再插到开发板上; 用送的数据线连接USB UART接口,下载好程序,打开电脑上的串口助手,按下KEY0,即可读取到数据, 具体实验步骤和现象可以看例程文件夹中的readme, 另外LED-DS0闪烁也表示SD NAND芯片在正常运行, SD NAND芯片用的是MK-米客方德的工业级芯片MKDV1GIL-AS;MK-米客方德家还有其他各种型号的SD NAN
[单片机]
SD NAND在<font color='red'>STM32</font>应用上的保姆级教程
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved