CAN总线协议原理特点
can总线通信协议

can总线通信协议CAN总线通信协议。
CAN(Controller Area Network)总线通信协议是一种广泛应用于汽车、工业控制和其他领域的串行通信协议。
它的出现极大地推动了现代汽车电子系统的发展,提高了汽车电子系统的可靠性和安全性。
本文将对CAN总线通信协议的基本原理、特点和应用进行介绍。
首先,CAN总线通信协议采用了一种先进的非冲突、非阻塞的通信机制,能够支持多个节点同时进行通信,具有很高的抗干扰能力。
它采用了差分信号传输技术,能够有效地抵抗电磁干扰和噪声干扰,保证数据传输的稳定性和可靠性。
其次,CAN总线通信协议具有很高的实时性和可靠性。
它采用了优先级识别和非阻塞传输的机制,能够保证重要数据的及时传输,避免数据丢失和延迟。
这使得CAN总线通信协议在汽车电子系统等对实时性要求较高的领域得到了广泛的应用。
此外,CAN总线通信协议还具有很高的灵活性和可扩展性。
它采用了分布式控制的网络结构,支持多个节点同时进行通信,能够很好地适应不同系统的需求。
同时,CAN总线通信协议还支持数据帧的优先级设置和数据长度的动态调整,能够很好地适应不同数据传输需求。
在实际应用中,CAN总线通信协议被广泛应用于汽车电子系统、工业控制系统、航空航天领域等。
在汽车电子系统中,CAN总线通信协议能够实现各种传感器、执行器和控制单元之间的高效通信,提高了汽车电子系统的整体性能和可靠性。
在工业控制系统中,CAN总线通信协议能够实现各种设备之间的快速数据交换,提高了生产线的效率和稳定性。
在航空航天领域,CAN总线通信协议能够实现飞行器各个子系统之间的高效通信,提高了飞行器的整体性能和安全性。
总的来说,CAN总线通信协议作为一种先进的串行通信协议,具有很高的抗干扰能力、实时性、可靠性、灵活性和可扩展性,被广泛应用于汽车、工业控制和航空航天等领域,推动了现代电子系统的发展,提高了系统的整体性能和可靠性。
相信随着技术的不断发展,CAN总线通信协议将在更多领域得到应用,为人类社会的发展做出更大的贡献。
CAN总线协议原理特点

CAN总线协议原理特点CAN(Controller Area Network)总线协议是一种串传式通信协议,其主要应用于汽车电子系统的通信与数据传输。
相较于其他常见的通信方式,CAN总线的特点在于其高可靠性、高实时性和高带宽。
本文将深入探讨CAN总线协议的原理和特点。
一、CAN总线协议原理CAN总线协议是一种基于串传方式的网络通信协议,旨在提供一种快速、可靠且实时的通信解决方案。
它采用两线制,即CAN_H(CAN High)和CAN_L(CAN Low)线,通过差分信号传输数据。
CAN总线采用先进的调制调制解调技术,将数据转换成差分电压信号进行传输,以提高抗干扰能力。
CAN总线的通信基于主从结构。
每个节点都可以作为主节点或者从节点进行通信。
主节点通常负责控制总线上的数据通信流程,并负责初始化和同步所有从节点。
而从节点将随时准备接收数据并处理。
主节点通过给定的优先级来安排总线上的数据传输,确保高优先级的数据能够及时传输。
CAN总线协议具有以下关键特性:1. 速度灵活:CAN总线协议支持灵活的通信速率,通常可以在1kb/s至1Mb/s的范围内进行调整。
这使得CAN总线适用于不同速率要求的应用,从低速传感器数据采集到高速实时控制。
2. 高实时性:CAN总线协议针对实时应用设计,可以满足对通信延迟非常敏感的应用需求。
其通信机制包括时间触发机制和事件触发机制,在保证数据的及时传输的同时确保了高实时性。
3. 可靠性:CAN总线协议采用了多种错误检测和纠正机制,以保证数据的可靠性。
通过使用循环冗余校验(CRC)对数据进行校验,并通过重传机制来处理丢失或者冲突的数据帧,使得CAN总线在面对噪声和干扰时能够保持良好的信号完整性。
4. 高带宽:CAN总线协议的带宽适中,能够满足大多数应用的需求。
每个CAN总线可以支持多个节点,每个节点可以发送和接收不同类型的数据帧,实现多通道的数据传输。
5. 灵活性:CAN总线协议提供灵活的网络拓扑结构,可以实现星型、环形、总线和混合结构等不同拓扑形式。
CAN的工作原理

CAN的工作原理CAN(Controller Area Network)是一种广泛应用于汽车、工业控制和通信领域的串行通信协议。
它的工作原理是基于一种分布式通信机制,可以同时连接多个节点,实现高效的数据传输和控制。
CAN的工作原理可以简单概括为以下几个方面:1. 物理层:CAN总线采用双绞线作为传输介质,通常使用差分信号传输方式。
这种方式可以有效地反抗电磁干扰,提高通信的可靠性。
CAN总线上的每一个节点都通过一个传输线连接到总线上。
2. 数据链路层:CAN总线采用一种基于帧的通信协议,数据传输以帧为单位进行。
每一个CAN帧由四个部份组成:起始位、帧类型位、数据位和CRC校验位。
起始位用于同步节点的时钟,帧类型位用于标识数据帧或者远程帧,数据位用于传输实际的数据,CRC校验位用于检测数据传输的错误。
3. 帧传输:CAN总线上的节点可以同时发送和接收数据。
当一个节点要发送数据时,它首先检查总线上是否有其他节点正在发送数据,如果没有,则它可以开始发送数据。
发送节点会将数据和标识符封装成一个CAN帧,并通过总线发送出去。
其他节点在接收到这个CAN帧后,会检查标识符,如果匹配,则接收数据。
4. 碰撞检测:由于CAN总线是一种共享总线结构,多个节点可能同时发送数据,导致碰撞。
为了解决碰撞问题,CAN总线采用了非破坏性的碰撞检测机制。
当一个节点发送数据时,它会同时监听总线上的数据,如果检测到其他节点同时发送数据,那末发送节点会住手发送,并等待一个随机的时间后重新发送。
5. 优先级:CAN总线上的每一个节点都有一个惟一的标识符,用于标识节点的优先级。
当多个节点同时发送数据时,具有更低标识符的节点具有更高的优先级,可以优先发送数据。
这种优先级机制可以确保重要数据的及时传输。
总的来说,CAN的工作原理基于分布式通信机制,通过物理层和数据链路层的协议实现数据的高效传输和控制。
它具有高可靠性、抗干扰能力强、支持多节点等特点,因此在汽车、工业控制和通信领域得到广泛应用。
can总线 原理

can总线原理
CAN总线是一种广泛应用于车载网络和工业控制系统中的串
行通信协议。
它基于CSMA/CD(载波监听多路访问/冲突检测)和差分信号传输技术,能够实现高效可靠的数据传输。
CAN总线的原理如下:
1. 物理层:CAN总线采用差分信号传输技术,使用两根同轴
电缆来传输数据和信号。
其中一根电缆传输高电平信号,另一根电缆传输低电平信号,两根电缆之间的电压差代表着传输的数据。
2. 数据帧:在CAN总线中,数据被封装成帧进行传输。
每个
数据帧由两部分组成:标识符(Identifier)和数据域(Data Field)。
标识符用于区分不同的消息和设备,数据域用于存
储实际传输的数据。
3. 仲裁机制:当多个设备同时发送数据帧时,CAN总线通过
仲裁机制来确定哪一个设备具有发送优先权。
仲裁机制使用位级别的比较来确定标识符的优先级,标识符的低位优先级高。
4. 帧有效性检测:CAN总线中每个设备都会对发送的数据帧
进行错误检测,以确保传输的可靠性。
这包括检查接收的数据帧是否有误码、位错误、位略符错误和CRC(循环冗余校验)错误。
5. 错误处理:当CAN总线上发生错误时,每个设备能够通过
错误报告机制获得有关错误类型和位置的信息,并采取相应的
措施进行纠正或处理。
总的来说,CAN总线通过差分信号传输、仲裁机制、帧有效性检测和错误处理等机制,可以实现高效可靠的数据传输,广泛应用于车载网络和工业控制系统中。
CAN总线的原理及使用教程

CAN总线的原理及使用教程一、CAN总线的原理1.数据链路层:CAN总线采用的是二进制多播通信方式,即发送方和接收方之间没有直接的连接关系,所有节点共享同一个总线。
在一个CAN总线系统中,每个节点都可以发送和接收信息。
当一个节点发送消息时,所有其他节点都能接收到该消息。
2.帧格式:CAN总线使用的是基于帧的通信方式,每个消息都被封装在一个CAN帧中。
帧由起始标志、ID、数据长度码、数据和校验字段组成。
其中,ID是唯一标识符,用来区分不同消息的发送者和接收者。
数据长度码指示了消息中数据的长度。
校验字段用于检测数据的完整性。
3. 传输速率:CAN总线的传输速率可根据需求进行配置,通常可选的速率有1Mbps、500Kbps、250Kbps等。
高速传输速率适用于对实时性要求较高的应用,而低速传输速率适用于对实时性要求不高的应用。
4.错误检测:CAN总线具有强大的错误检测能力,能够自动检测和纠正错误。
它采用了循环冗余校验(CRC)算法,通过对数据进行校验,确保数据的完整性。
如果数据传输过程中发生错误,接收方能够检测到错误,并通过重新请求发送来纠正错误。
二、CAN总线的使用教程1. 硬件连接:在使用CAN总线之前,需要先进行硬件连接。
将所有节点的CANH和CANL引脚连接到同一个总线上,并通过双终端电阻将CANH和CANL引脚与Vcc和地连接。
确保所有节点的通信速率和电气特性相匹配。
2.软件设置:使用相应的软件工具对CAN总线进行配置。
根据具体需求,设置通信速率、总线负载、数据帧格式等参数。
还需要为每个节点分配唯一的ID,用于区分发送者和接收者。
3.数据传输:使用软件工具编写代码,实现消息的发送和接收。
发送消息时,需要指定ID、数据长度和数据内容。
接收消息时,需要监听总线上的消息,并根据ID判断是否为自己需要的消息。
通过合理的逻辑处理,实现节点之间的数据交换和通信。
4.错误处理:CAN总线在数据传输过程中可能会发生错误,如位错误、帧错误等。
CAN总线介绍

CAN总线介绍CAN总线,即控制器区域网络(Controller Area Network),是一种国际标准的串行通信协议,用于在汽车和工业领域中进行高速数据传输。
CAN总线的设计目标是提供一个可靠、高效、实时的通信方式,以满足复杂系统的需求。
下面将详细介绍CAN总线的特点、结构、工作原理以及应用领域。
一、CAN总线的特点:1.高可靠性:CAN总线采用差分信号传输,具有较强的抗干扰能力,能够在恶劣的工作环境下保持稳定的通信质量。
2.高效性:CAN总线采用了固定格式的数据帧和强大的错误检测与修复机制,使得数据传输更加高效可靠。
3.实时性:CAN总线支持实时性要求较高的应用,可以实现微秒级的数据传输延迟。
4.灵活性:CAN总线可以连接多个节点,节点之间可以通过CAN总线进行双向通信,同时支持错误检测与错误恢复。
5.易于应用:CAN总线采用了开放式的标准协议,有着广泛的支持和应用经验,易于集成和开发。
二、CAN总线的结构:1. 主控器(Master):负责总线管理,包括数据的发送和接收、帧结构的解析、错误处理等。
2. 从控器(Slave):负责接收主控器发送的数据帧,并根据需要进行相应的处理和响应。
3.总线线缆:用于在各个节点之间传输数据和控制信息的物理介质。
4. 高速传输率:CAN总线通常有两种速率可选,分别是高速CAN(1Mbps)和低速CAN(125kbps)。
三、CAN总线的工作原理:1.数据帧格式:CAN总线的数据帧包括了4个主要部分:起始符、控制字段、数据字段和结束符。
其中,控制字段包括了帧类型、帧长度、帧优先级、帧标识符等信息。
2.帧结构与地址:CAN总线通过帧标识符来区分不同的数据帧,并根据优先级进行数据传输,同时可以通过标识符来实现多个不同类型的数据帧。
3.错误检测与修复:CAN总线采用循环冗余校验(CRC)方法进行错误检测和修复,可以检测到传输过程中的位错误、帧错误等,并进行相应的错误恢复措施。
CAN总线协议原理特点
CAN总线协议原理特点CAN总线协议是一种用于数据通信的高效、可靠的网络协议。
它最初是为了汽车电子设备之间的通信而设计的,但现在已经广泛应用于工业自动化、机械控制、仪器仪表等领域。
本文将对CAN总线协议的原理和特点进行详细介绍。
一、CAN总线协议原理:1.总线结构:CAN总线采用了主从结构,主节点控制网络中的通信过程,从节点负责执行主节点的命令。
主节点负责管理总线资源,包括数据发送和接收、仲裁和错误处理等。
2.数据帧格式:CAN总线协议使用了一种特殊的数据帧格式,即CAN数据帧。
它包括起始位、帧ID、数据段、CRC校验和终止位等字段。
起始位用于帧的同步,帧ID用于区分不同的报文类型,数据段用于携带数据,CRC校验用于检测传输错误。
3.仲裁机制:CAN总线采用了仲裁机制来解决多个节点同时发送消息时的冲突问题。
当节点准备发送消息时,首先会监听总线上的信号。
如果没有其他节点同时发送消息,则该节点可以开始发送;如果检测到总线上有其他节点同时发送消息,则会根据帧ID的优先级进行冲突检测,优先级高的节点可以继续发送,优先级低的节点则回退。
4.错误处理:CAN总线协议具有高度可靠性,当发生错误时,能够及时检测和处理。
协议定义了多种错误类型,包括位错误、格式错误、仲裁错误等。
节点在发送和接收数据时会进行错误检测,如果发现错误,则会中断当前传输,并进行错误处理。
5.线性总线:CAN总线是一种线性总线结构,即所有的节点都连接在同一根物理线上。
这样可以简化系统的布线和维护,并提高了数据传输的效率和可靠性。
二、CAN总线协议特点:1.高效性:CAN总线协议使用了时间触发机制和仲裁机制,能够快速响应事件并及时传输数据。
它具有低延迟、高带宽和高网络利用率的特点,适用于高速传输和实时性较强的应用。
2.可靠性:CAN总线协议具有高度可靠性,能够自动检测和纠正错误,并具有冗余容错机制。
它能够检测位错误、格式错误和仲裁错误等,并通过无冗余位的CRC校验码来保证数据传输的准确性。
CAN总线的通信原理
CAN总线的通信原理CAN(Controller Area Network)总线是一种用于数据传输的通信协议,广泛应用于汽车、工业控制领域等。
它的通信原理基于分布式网络结构、多主机架构、基于事件的通信和冲突检测与错误恢复等特点。
首先,CAN总线采用分布式网络结构,能够连接多个节点设备。
每个设备通过总线(BUS)来进行数据交互,包括传感器、执行器、控制单元等。
基于总线的结构使得设备能够直接与总线进行通信,而无需经过中央控制器的转发,从而提高了通信的效率和速度。
其次,CAN总线采用多主机架构。
在CAN总线上可以同时连接多个设备,每个设备都可以充当主机或者从机。
这种多主机的架构意味着任何一个设备都有机会发送消息,而其他设备则可以接收这些消息。
这种多主机的结构使得CAN总线的通信更具灵活性和实时性。
另外,CAN总线采用基于事件的通信方式。
每个设备在发送数据之前都需要向总线发送一个请求,该请求包含了设备ID和发送时间等信息。
其他设备在接收到请求后可以判断是否有冲突发生。
如果没有冲突,设备就可以发送数据到总线上,其他设备可以接收该数据。
这种基于事件的通信方式使得CAN总线能够实时地处理各种通信事件,并确保通信的可靠性。
此外,CAN总线还采用冲突检测与错误恢复机制。
当两个设备同时发送数据时,可能会发生冲突,导致数据损坏或丢失。
CAN总线通过在数据帧中添加冲突检测与错误恢复位来解决这个问题。
每个设备在发送数据时都会监听总线上的数据,如果发现有其他设备正在发送数据,则会立即停止发送。
这种冲突检测机制可以避免数据冲突,提高数据传输的可靠性。
另外,CAN总线还具有错误恢复的机制。
如果在数据传输过程中发生错误,接收设备会通过检查帧的检验和位来检测错误。
如果错误被检测到,接收设备会发送错误帧给发送设备,发送设备会重新发送该数据。
这种错误恢复机制可以保证数据的完整性和准确性。
总的来说,CAN总线的通信原理基于分布式网络结构、多主机架构、基于事件的通信和冲突检测与错误恢复等特点。
can总线的工作原理
can总线的工作原理
CAN总线是一种常见的数据通信协议,广泛应用于汽车和工
业控制系统等领域。
它的工作原理如下:
1. 消息帧与帧格式:CAN总线通信基于消息帧的发送和接收。
每个消息帧由识别码(ID)和数据组成。
ID用于标识消息的
优先级和内容,数据则存储实际的信息。
CAN总线采用一种
基于事件触发的机制,只有当总线上没有其他节点在发送消息时,当前节点才能发送消息。
2. 仲裁机制:CAN总线使用一种分布式仲裁机制,以确保各
个节点之间的通信顺序。
当两个以上的节点准备发送消息时,会根据消息帧的ID来进行仲裁。
ID的低位优先级高,因此具
备低ID的节点在仲裁中具有更高的优先级。
3. 错误检测:CAN总线具有强大的错误检测和纠正机制。
每
个节点在发送消息时,会实时监测总线上的电压变化情况。
如果检测到总线上有其他节点发送了错误的帧,节点将一直等待,并重新尝试发送消息。
这种自适应机制使得CAN总线具有较
高的消息可靠性。
4. 实时性能:CAN总线以固定的时间间隔来发送消息,以确
保实时性的要求。
节点在一个时间窗口内发送消息,并在下一个时间窗口前接收消息。
通过控制时间窗口的大小和频率,可以满足不同应用场景中对实时性的要求。
总而言之,CAN总线通过消息帧的发送和接收来进行数据通
信。
它采用分布式仲裁机制、强大的错误检测和纠正机制,以及固定的时间间隔来保证通信的可靠性和实时性。
can总线工作原理
can总线工作原理CAN总线工作原理。
CAN(Controller Area Network)总线是一种串行通信协议,广泛应用于汽车、工业控制以及其他领域的数据通信中。
它具有高可靠性、高抗干扰能力和高实时性的特点,因此在工业控制和汽车电子系统中得到了广泛的应用。
CAN总线的工作原理主要包括数据帧格式、消息优先级、错误处理等几个方面。
首先,我们来看数据帧格式。
CAN总线采用了一种基于事件驱动的通信机制,数据传输采用的是帧格式,包括标准帧和扩展帧两种。
标准帧包含11位标识符,扩展帧包含29位标识符。
数据帧由起始位、标识符、控制位、数据域、CRC校验、帧结束位等部分组成。
其次,消息优先级是CAN总线的重要特性之一。
CAN总线采用的是基于标识符的消息优先级机制,标识符越小的消息具有更高的优先级。
这种机制保证了重要消息的及时传输,提高了系统的实时性。
另外,CAN总线还具有强大的错误处理能力。
它采用了一种双重错误处理机制,包括位级错误处理和消息级错误处理。
位级错误处理通过循环冗余校验(CRC)来检测和纠正数据传输中的错误,而消息级错误处理则通过错误报文重传机制来保证数据传输的可靠性。
总的来说,CAN总线的工作原理是基于帧格式、消息优先级和错误处理等几个方面的设计。
它的高可靠性、高抗干扰能力和高实时性使其成为了工业控制和汽车电子系统中不可或缺的通信协议。
通过对CAN总线工作原理的深入理解,我们可以更好地应用它在实际的工程项目中,提高系统的稳定性和可靠性。
希望以上内容能够帮助您更好地了解CAN总线的工作原理,如果还有任何疑问,欢迎随时与我联系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
四、CAN数据帧的标准格式和扩展格式
标准格式:
仲裁区 S O F R T R I D E 控制区 数据区
11 位标识
r 0
DLC
扩展格式
仲裁区 S O F S I R D R E R T R r 1 控制区 r 0 数据区
11 位标识
18位标识
DLC
标准CAN(2.0A) 和扩展CAN(2.0B)
1
CAN总线
©西安交通大学 陶唐飞
2
CAN 总 线
CAN(Controller Area Network)即控制器局域网,可 以归属于工业现场总线的范畴,通常称为CAN bus,即CAN 总线,是目前国际上应用最广泛的开放式现场总线之一。 CAN 最初出现在汽车工业中,80年代由德国Bosch公司 最先提出。最初动机是为了解决现代汽车中庞大的电子控制 装置之间的通讯,减少不断增加的信号线。 与一般的通信总线相比,CAN总线的数据通信具有突出 的可靠性、实时性和灵活性,它在汽车领域上的应用最为广 泛,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BM W(宝马)、volkswagen (大众)等都采用了CAN总线来实现汽 车内部控制系统与各检测和执行机构间的数据通信。
14
CAN总线 位仲裁技术
报文标识符 站1报文
01111110000
丢掉
01001100000 01001100000
站2报文
站3报文
01001100000
跟踪
010011100001
010011100001
丢掉
所有标识符都有相同的两位01,直到第3位进行比较时,站1 的报文被丢掉,因为它的第3位为高,而其它两个站的报文第3 位为低。站2和站3报文的4、5、6位相同,直到第7位时,站3的 报文才被丢失。
7
(4) 可以点对点、一点对多点(成组)及全局广播几种传送方式 接收数据。 (5)直接通信距离最远可达6km(速率10Kbps以下)。 (6)通信速率最高可达1MB/s(此时距离最长30m)。 (7)节点数实际可达110个。 (8)采用短帧结构,每一帧的有效字节数为8个。 (9)每帧信息都有CRC校验及其它检错措施,数据出错率极低。 (10)通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉 价的双绞线即可,无特殊要求。 (11)节点在错误严重的情况下,具有自动关闭总线的功能,切断 它与总线的联系,以使总线上的其他操作不受影响。
当计数器达到96时,它将向节点微控制器发出中断,提 示当前通信质量较差。
当计数值达到127时,该节点假定其处于“被动出错状 态”,即继续接收信息,且停止要求对方重发信息。 当计数达到255时,该节点脱离总线,不再工作,且只 有在硬件复位后,才能恢复工作状态。
主动错误状态
错误状态类型
16
CAN总线 位仲裁技术
缺点
由于CAN总线采用的是固定优先级,当所有的节点都 随机的向总线发送数据时,具有低优先级的节点是比 具有高优先级的节点具有较大的发送失败几率。
每次具有较低优先级的节点都会在总线竞争中失败, 从而导致它一个数据都发不出去,或者发送的数据有 较大的延时。
17
错误处理
10
数据帧的标准格式和扩展格式
帧起始(SOF)仅由一显位构成。所有站都必须同步于首先 发送的那个帧起始前沿; 仲裁场(标准格式)由11位标识符ID28~ ID18、远程发送 请求位RTR(Remote Transmission Request BIT)组成, 其中ID高七位不可全为1(隐性); 仲裁场(扩展格式)由29位标识符ID28~ ID0、SRR位、识 别符扩展位IDE(Identifier Extension Bit)位、RTR位组成; SRR是隐性位,它用于替代标准格式的RTR位。 IDE=1(隐性)代表扩展格式。IDE位在扩展格式中位于仲 裁场而在标准格式中位于控制场。
21
CAN 控制器与收发器
CAN控制器的作用
完成CAN规范所规定的物理层和数据链路层大部分功能。 有微处理器接口,易于连接单片机。 结构分两种类型,独立CAN控制器或集成CAN控制器的单 片机: 独立CAN控制器:Philips的SJA1000、82C200、 8XC592、8XCE598;Intel的82526、82527等。 集成CAN控制器的单片机:Philips的80C591/592/598、 XAC37;Motorola的Pow2、PC555;Intel的196CA/CB ;Silicon Lab的C8051F040~047等 都遵循CAN2.0规范。
15
CAN总线 位仲裁技术
优点 在网络最终确定哪一个站的报文被传送以前,报文的起始 部分已经在网络上传送了。 所有未获得总线读取权的站都成为具有最高优先权报文的 接收站,并且不会在总线再次空闲前发送报文。 CAN具有较高的效率是因为总线仅仅被那些请求总线悬而 未决的站利用,这些请求是根据报文在整个系统中的重要性 按顺序处理的。
12
CAN总线 位仲裁技术
只要总线空闲,任何单元都可以开始发送报文。
要对数据进行实时处理,就必须将数据快速传送,这就要 求数据的物理传输通路有较高的速度。在几个站同时需要 发送数据时,要求快速地进行总线分配。 如果2 个或2 个以上的单元同时开始传送报文,那么就会有 总线访问冲突。通过使用识别符的位形式仲裁可以解决这 个冲突。 CAN总线以报文为单位进行数据传送,报文的优先级结合 在11位标识符中,具有最低二进制数的标识符有最高的优 先级。这种优先级一旦在系统设计时被确立后就不能再被 更改。总线读取中的冲突可通过位仲裁解决。
8
三、CAN总线报文及结构
标准帧 11位标识符 扩展帧 29位标识符 帧类型 数据帧、远程帧、错误帧和过载帧
数据帧:数据帧携带数据从发送器至接收器。总线上传 输的大多是这个帧。 远程帧:由总线单元发出,请求发送具有同一识别符的 数据帧。数据帧(或远程帧)通过帧间空间与其他各帧分 开。 错误帧:任何单元一但检测到总线错误就发出错误帧。 过载帧:过载帧用以在先行的和后续的数据帧(或远程 帧)之间提供一附加的延时。
19
主动错误状态是可以正常参加总线通信的状态。 处于主动错误状态的单元检测出错误时,输出主动错误 标志。 被动错误状态 被动错误状态是易引起错误的状态。 处于被动错误状态的单元虽能参加总线通信,但为不妨 碍其它单元通信,接收时不能积极地发送错误通知。 处于被动错误状态的单元即使检测出错误,而其它处于 主动错误状态的单元如果没发现错误,整个总线也被认 为是没有错误的。 处于被动错误状态的单元检测出错误时,输出被动错误 标志。
4
二、CAN的工作原理、特点
1.CAN 的工作原理
CAN总线标准包括物理层、数据链路层,其中链路层定 义了不同的信息类型、总线访问的仲裁规则及故障检测与故 障处理的方式。 当CAN 总线上的一个节点(站)发送数据时,它以报文形 式广播给网络中所有节点。
每组报文开头的11位字符为标识符(CAN2.0A),定义了 报文的优先级,这种报文格式称为面向内容的编址方案。 当一个节点要向其它节点发送数据时,该节点的CPU 将 要发送的数据和自己的标识符传送给本节点的CAN芯片,并 处于准备状态;当它收到总线分配时,转为发送报文状态。
3
一、CAN 总 线
1993年CAN 成为国际标准ISO11898(高速应用)和ISO11 519(低速应用)。
CAN的规范从CAN 1.0 规范(标准格式)发展为兼容CAN 1.2 规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为 扩展格式),目前应用的CAN器件大多符合CAN2.0规范。 由于CAN总线的特点,得到了Motorola,Intel,Philip, Siemence,NEC等公司的支持,它广泛应用在离散控制领域, 其应用范围目前已不仅局限于汽车行业,已经在自动控制、 航空航天、航海、过程工业、机械工业、纺织机械、农用机 械、机器人、数控机床、医疗器械及传感器等领域中得到了 广泛应用。
数据帧的标准格式和扩展格式
仲裁场 IDE/r1 r0 控制场 DLC3 DLC2 DLC1 DLC0 数据场或 CRC场
保留位
数据长度码
控制场由6个位组成 数据长度码DLC3~DLC0指示数据场的字节数,0~8,其它 数值不允许使用。 保留位r1和r0必须为0,IDE(标准格式)=0 数据场:0~8个字节,8位/字节,MSB先发 CRC场由15位CRC序列和1位CRC界定符组成。CRC界定 符为一隐性位。
13
CAN总线 位仲裁技术
仲裁的机制确保信息和时间均不会损失。当具有相同识别符 的数据帧和远程帧同时初始化时,数据帧优先于远程帧。
CAN总线采用非归零(NRZ)编码,所有节点以“线与”方式 连接至总线。如果存在一个节点向总线传输逻辑0,则总线 呈现逻辑0状态,而不管有多少个节点在发送逻辑1。CAN 网络的所有节点可能试图同时发送,但其简单的仲裁规则确 保仅有一个节点控制总线、并发送信息。低有效输出状态 (0)起决定性作用。 仲裁期间,每一个发送器都对发送位的电平与被监控的总线 电平进行比较。如果电平相同,则这个单元可以继续发送。 如果发送的是一“隐性”电平(逻辑1)而监测到一“显性” 电平(逻辑0),那么该单元就失去了仲裁,必须退出发送状 态。
20
CAN 控制器与收发器
CAN总线规范采用了ISO-OSI(Open System Interconnection Reference Model,开放式通信系统互联参 考模型)的三层网络结构,有三种不同的器件与之相对应。 对应物理层的是收发器;
对应数据链路层的是CAN控制器;
应用层上主要是用户特殊的应用,对应的器件是微控 制器。
CAN控制器内臵TX和RX出错计数器,根据出错是全局 的还是本地的,计数器以此决定加1还是加8; 每当收到信息,出错计数器就会增加或减少。 如果每次收到的信息是正确的,则计数器减1;