`

CAN协议(一)

 
阅读更多
     控制器局域网协议CAN是德国博世公司开发的一套串行总线通讯协议,特别适用于智能设备之间的互联来构成智能系统或子系统。CAN是一种基于广播通讯机制的协议,这种机制通过使用一种面向消息的传输协议来实现,在这种协议下,不定义具体的站点和站点地址,只定义消息。而通过消息标识符来区别不同的消息。而且很容易向一个CAN网络中添加一个节点,当这一节点仅作为接收者时甚至不需要对己有的节点的软硬件做任何的改动。
        CAN遵循ISO/OSI标准模型,定义了OSI模型的数据链路层(包括逻辑链路控制子层LLC和媒体访问子层MAC)和物理层。其中MAC(媒体访问控制子层)是其核心层。MAC子层可分为完全独立工作的两个部分,即发送部分和接收部分。
   
              图1   CAN总线模型
        物理层是实现电器控制单元与总线相连的电路。电器控制单元的总数取决于总线的电力负载。信号使用差分电压传送,两条信号线被称为CAN_H和CAN_L。静态时均是2.5v左右,此时状态表示为逻辑“1”,也可以叫做隐性。用CAN_H比CAN_L高表示逻辑“0”,称为显性,此时通常电压值为CAN_H=3.5V和CAN_L=1.5V。
     
                    图2物理层逻辑电平
        CAN总线是一种串行数据通信总线,其通信速率最高可达1Mb/s。CAN系统内两个任意节点之问的最大传输距离与其位速率有关。当CAN的传输速率达1Mb/s时,最大传输距离为40米,对一般实时控制现场来说足够使用。
        CAN采用了CSMA/CD机制实现总线访问。利用CSMA访问总线,可对总线上信号进行检测,只有当总线处于空闲状态时,才允许发送。在CAN总线上发送的每一条报文都具有唯一的一个11位或29位数字的ID。CAN总线状态取决于二进制数“0”而不是“1”,所以ID号越小,则该报文拥有越高的优先权,因此一个为全“0”标识符的报文具有总线上的最高级优先权。
        CAN的标准消息帧结构为CAN 2.0A的消息帧格式,也就是CAN消息帧的标准格式,它有11位标识符。基于CAN2.0A的网络只能接收这种格式的消息。
          
                                                          图3标准数据帧格式
               
                                                图4 扩展数据帧格式
数据帧数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。其中数据场长度可为0。
帧起始(SOF):标志数据帧和远程帧的开始,它仅由一个“显性”位构成,只有在总线处于空闲状态时,才允许开始发送。所有站必须同步于首先开始发送的那个站的帧起始前沿。
仲裁场:在标准格式中,仲裁场由11位标识符和TRR位组成;在扩展格式中,仲裁场由29位标识符和SRR位、标识位以及RTR位组成。
RTR位(远程传输请求位):在数据帧中,RJR位必须是“显性”电平,而在远程帧中,RTR位必须是“隐性”电平。
SRR位(替代远程请求位):在扩展格式中始终为“隐性”位。
DIE位(标识符扩展位):IDE位对于扩展格式属于仲裁场;对于标准格式属于控制场。IDE在标准格式中为“显性”电平,而在扩展格式中为“隐性”电平。
控制场:由6位组成。在标准格式中,一个信息帧中包括DLC、发送“显性”电平的DIE位和保留位r0。在扩展格式中,一个信息帧包括DLC和两个保留位r1和r0,这两个位必须发送“显性”电平。
DLC(数据长度码):数据场的字节数目由数据长度码给出。数据长度码为4位,在控制场中被发送。
数据场:由数据帧中被发送的数据组成,可包括0到8个字节。
CRC场:包括CRC序列和CRC界定符。
应答场:包括两位,即应答间隙和应答界定符。在应答场中发送站送出两个“隐性”位。一个正确接收到有效报文的接收器,在应答间隙期间,将此信息通过传送一个“显性”位报告给发送器。所有接收到匹配CRC序列的站,通过在应答间隙内把“显性”位写入发送器的“隐性”位来报告。应答界定符是应答场的第二位,并且必须是“隐性”位。
帧结束:每个数据帧和远程帧均由7个“隐性”位组成的标志序列界定。
分享到:
评论

相关推荐

    CAN2.0B 协议(中文版)

    CAN总线通信时目前使用最普片的一种总线!其通信协议CAN2.0B为主流协议。

    CAN总线协议入门

    4. CAN总线协议栈,兼容OSI模型(物理,数据链路,网络,传输,会话,表示层,应用层); 5. CAN总线的电平信号,0-3.5V, 以2.5V为高低电平区分; 6. CAN传输距离和传输速率kbps的关系:位速率越快,传输距离越短;...

    CAN总线与CANopen协议.pdf

    CAN 总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能 力,可以作为现场总线应用于电磁噪声较大的场合。由于 CAN 总线本身只定义 ISO/OSI 模型中的第一层(物理层)和第二层(数据链路层),通常...

    CAN232P说明书 USB转CAN协议

    波仕CAN232P是世界上最小的、也是使用最简便的通用串口/CAN转换器、实现了USB、RS-232、RS-485、RS-422与CAN协议的透明转换。产品本身自己带通信设置功能。CAN232P是波仕新一代专利产品,谨防假冒!专利号:...

    CAN2.0中文协议

    这是一个CAN2.0开发文档,描述了CAN协议。

    CAN协议全解析书籍,一本就够

    CAN协议全解析 CAN协议全解析 CAN协议全解析 CAN协议全解析 CAN协议全解析 CAN协议全解析 CAN协议全解析 CAN协议全解析

    CAN协议代码

    对CAN协议的基本通信,采用LOOP方式,只需一个开发板即可进行测试。 测试MCU:STM32F103ZET6 测试工具:KEIL5

    汽车CAN-BUS通讯协议:CAN通讯协议1

    汽车CAN-BUS通讯协议:CAN通讯协议第一部分

    CAN 总线协议应用与学习

    但CAN协议只定义了模型的最下面两层:数据链路层和物理层,仅保证了节点间无差错的数据传输。CAN的应用层协议必须由CAN 用户自行定义,或采用一些国际组织制订的标准协议。应用最为广泛的是DeviceNet和CANopen,分别...

    CAN通信协议V2.0中文版

    CAN总线协议规范,2.0版本(包括A、B两部分),已经是很全的一份资料了,带书签方便查阅。

    CAN协议基础

    CAN—Controller Area Network—是20世纪80年代初德国Bosch公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发的一种串行通信协议

    CanFestival协议栈从站实现和源码简析

    @风离蓝 可以关注他的博客...CanFestival协议栈是用于嵌入式Canopen通信开发的常用协议源码之一,使用过的 不错,架构和逻辑层次比较清晰,因此方便开发人员进行后期应用扩展和源代码设计;

    can J1939协议中文版第一部分

    can J1939协议中文版第一部分《商用车控制系统局域网络(CAN)通信协议 第1部分:物理层 250千比特-秒 屏蔽双绞线》

    CAN2.0中文通信协议.pdf

    《CAN2.0中文通信协议》 周立功翻译全中文,译自BOSCH公司 CAN 协议 V2.0。 供大家学习,参考。

    ISO11898-can原版协议

    分两个包,一个是老版,一个是包含了canfd的,都打包到一起了,想看哪个看哪个。ISO 11898-1 2015.12.15 ISO 11898-5-2007 2007-06-15 ISO 11898-1-2003

    理解CAN2.0协议

    两本中文资料 ,一个是周立功的 can2.0 ,一本是can协议完全讲解手册 ,配合看,保证让你理解can2.0 .觉得好记得顶一下哦 .本来想免费的 .可是我资源分不多了,给个友情价 ,两本5分 .先看can协议完全手册,在看can2.0.

    对于CAN总线的初学者非常合适的资源,CAN总线协议入门

    CAN总线协议的入门级资料,比较详尽的对CAN总线协议进行了描述。对于CAN总线的初学者来说,是一本非常好的资料,深入浅出,言简意赅。

    can通信协议

    CAN是控制器局域网络(Controller Area Network)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。本文档时关于CAN的应用层协议。

    15.附件8:如何解析和破解车载CAN协议--DBC协议.pdf

    原始数据的获取:一般除了德系车以外,汽车上面一般都只有一条CAN总线,并且联到 了汽车的OBD口CAN引脚上,波特率500K的高速CAN,这个时候可以直接在OBD口读取CAN 数据。一般的德系车如大众,汽车上面有多达5-6条CAN...

Global site tag (gtag.js) - Google Analytics