`

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个“隐性”位组成的标志序列界定。
分享到:
评论

相关推荐

    CAN总线协议中文版周立功版本

    CAN总线协议是一种车载总线标准,广泛应用于汽车电子、工业自动化、医疗设备等领域。 CAN总线协议的主要特点是: 1. serielle 式通信:CAN总线协议采用串行通信方式,通过一个总线连接多个设备,实现设备之间的...

    CAN协议,系统结构和帧结构 .zip_CAN 文档_CAN总线协议_can 协议_can协议

    提供的文档《CAN协议,系统结构和帧结构 - Pejoicen - 博客园.pdf》将详细阐述这些概念,是学习CAN协议的宝贵资料。 了解这些基本概念后,开发者能够更好地理解和实施基于CAN协议的通信系统,从而有效地集成和控制...

    CAN协议全文英文版,主要为博世发布的标准版,想深耕可以下载

    博世公司在 1986 年发布了 CAN 协议的第一个版本,标志着 CAN 协议的诞生。随着技术的发展和应用的广泛,CAN 协议不断地被改进和升级。1991 年,博世公司发布了 CAN 协议的第二个版本,即我们今天所看到的 CAN ...

    can入门教程 can协议

    “CAN入门教程.pdf”这份文档很可能是瑞萨电子提供的关于CAN协议的基础教程,涵盖了CAN协议的基本原理、配置、编程和实际应用案例,对于初学者来说是一份宝贵的参考资料。 总的来说,了解和掌握CAN协议,不仅可以...

    CAN协议控制器的Verilog实现,can协议完全讲解,Vivado

    在Verilog中实现CAN协议控制器是一个复杂的任务,因为这涉及到对CAN协议的深入理解和硬件描述语言的应用。以下是一些关键知识点: 1. **CAN协议结构**:CAN协议分为两种帧类型,数据帧和远程帧。数据帧用于传输实际...

    CAN协议完全讲解_CAN 入门书

    - 为了保证数据传输的正确性,CAN协议规定在连续的5个相同电平后插入一个相反电平的位。 #### 五、标准规格与兼容性 - **ISO标准化**: - CAN协议有两个主要的ISO标准:ISO11898和ISO11519-2。 - ISO11898主要...

    CAN协议完全讲解

    CAN协议,即Controller Area Network(控制器局域网络),是一种国际标准化的串行通信协议,最初由德国博世公司于1986年开发,用于解决汽车中电子控制装置之间的通信问题。其后,CAN协议被ISO国际标准化组织制定为...

    MCGS与CAN协议

    这一过程不仅需要对MCGS有深入的理解,还需要掌握CAN协议的基本原理及其实现方法。在实际应用中,这些步骤可能会因为具体需求的不同而有所调整,但总体框架是一致的。对于想要将MCGS与CAN协议结合使用的工程师来说,...

    CAN协议英文原版.7z

    5. **位填充**:为防止连续相同位的出现导致误码率增加,CAN协议引入了位填充规则,每连续5个相同的位后自动插入一个相反的位,提高抗干扰能力。 6. **远程帧**:CAN协议支持远程帧,允许节点请求其他节点发送数据...

    CAN协议控制器的Verilog实现.rar_FPGA 仿真_VERILOG can总线_can协议FPGA教程_fpga实现C

    4. `can_acf.v` - ACF(Acceptance Code Filter)是CAN协议的一部分,用于过滤接收到的消息,只让符合条件的帧通过。 5. `can_btl.v` - BTL(Bit Timing Layer)处理CAN总线的位定时,这是CAN协议的关键部分,确保了...

    车载 福克斯can协议及模拟器

    【车载福克斯CAN协议及模拟器】涉及到的是汽车电子技术中的关键部分——控制器局域网络(Controller Area Network,简称CAN),这是一种多主通信协议,广泛应用于汽车内部各个电子控制单元(ECU)之间的数据交换。...

    CAN总线协议(英文版)

    7. **应用层**:应用层并非CAN协议标准的一部分,而是由用户或特定行业定义的,如汽车行业的J1939或工业自动化领域的CANopen。 提供的两个文件名——"can_bus_protocol_2.0b.pdf"和"BOSCH_CAN_V20_spec.pdf"可能...

    CAN协议入门教程

    现在,我们将聚焦于CAN协议本身,深入探讨这一协议的重要知识点。 首先,CAN(Controller Area Network)协议是一种被广泛应用于各种设备和机器内部通信的网络协议,最初由德国博世公司开发,旨在减少复杂的线束...

    CAN协议中文版

    为了适应这样的需求,CAN协议定义了两种报文格式,即标准格式和扩展格式,以应对不同的应用需求。 标准格式使用11位的地址范围来定义报文的识别位,而扩展格式则将地址范围扩展到29位。这样的扩展使得更多的应用...

    CAN总线协议配置示例代码

    一、CAN协议概述 CAN总线协议最初由Bosch公司开发,主要设计目标是提高汽车电子系统的可靠性。CAN协议分为物理层、数据链路层和应用层。其中,物理层定义了信号传输介质和电气特性;数据链路层则包括帧结构、错误...

    简易CAN应用协议

    简易CAN协议尤其适合节点数量不多、对通信可靠性要求较高、控制结构相对简单的场合。 在协议的实现中,CAN协议栈的构建是基础。它通常由物理层、数据链路层以及应用层三个层次组成。物理层定义了CAN网络的电气特性...

    CAN-FD相关协议介绍.pdf

    CAN-FD(Controller Area Network Flexible Data Rate,灵活数据速率控制器局域网络)是一种基于 CAN 2.0 的改进型协议,旨在解决传统 CAN 总线的性能瓶颈问题。下面是 CAN-FD 相关协议的详细介绍: 一、为什么需要...

    CAN Bootloader协议.pdf

    CAN Bootloader协议是一种用于CAN (Controller Area Network) 总线上的引导程序协议,它允许通过CAN总线来刷写固件,实现设备程序的更新或恢复。Bootloader协议为嵌入式设备提供了初始的运行环境,以便在设备启动时...

    CAN协议 ISO11898-1_2_3_4_5全套协议+CAN协议中文版.zip

    这个压缩包包含的是CAN协议的ISO11898系列标准的完整集合,以及一个由周立功编译的中文版解读。这些资源对于理解和应用CAN通信协议至关重要。 首先,我们来看ISO11898系列协议: 1. **ISO11898-1**:这是CAN协议的...

Global site tag (gtag.js) - Google Analytics