工业控制网络第5章CAN总线5.1CAN总线特点5.2CAN总线通信模型5.3CAN总线帧结构5.4CAN总线的错误处理机制5.5SJA1000CAN控制器5.6CAN总线收发器PCA82C2505.7CAN总线节点设计5.1CAN总线特点一、CAN简介5.1CAN总线特点二、CAN总线特点(1)国际标准,应用广泛;(2)多主方式工作,不分主从;(3)废除站地址编码,采用报文标识符;(4)通过对报文标识符过滤即可实现点对点、一点对多点传送和全局广播等几种数据传送方式;(5)采用非破坏性总线仲裁技术,按优先级发送,大大减少总线冲突仲裁时间;5.1CAN总线特点(6)通信距离最远可达10km(5kbit/s),通信速率最高可达1Mbit/s(40m);(7)总线上节点数可达110个;(8)采用短帧结构,传输时间短,受干扰概率低;(9)CRC等检错措施,保证通信的高可靠性;(10)CAN节点具有自动关闭的功能;(11)通信介质可采用双绞线、同轴电缆或光纤;(12)CAN总线具有较高的性能价格比。5.2CAN总线通信模型1991年Bosch公司发布CAN2.0规范。CAN2.0A支持标准的11位标识符,CAN2.0B同时支持标准的11位标识符和扩展的29位标识符。5.2CAN总线通信模型5.2CAN总线通信模型一、CAN总线的物理层1.CAN总线的位编码CAN位流根据“不归零”(NRZ)方式来编码。CAN总线的数值为两种互补逻辑数值:“显性”(Dominant)或“隐性”(Recessive),“显性”数值表示逻辑“0”,而“隐性”表示逻辑“1”。当总线上两个不同的节点在同一位时间分别传送显性和隐性位时,总线上呈现显性位,即显性位覆盖了隐性位。5.2CAN总线通信模型2.CAN总线的位数值表示(ISO11898)5.2CAN总线通信模型3.最大传输距离与通信速率5.2CAN总线通信模型4.CAN总线与节点的电气连接5.2CAN总线通信模型5.位定时标称位速率(NominalBitRate)理想发送节点在没有重同步的情况下每秒发送的位数量。标称位时间(NominalBitTime)标称位时间=1/标称位速率。即:CAN总线通信时,一位数据持续的时间。5.2CAN总线通信模型位时间结构5.2CAN总线通信模型(1)同步段(SYNC_SEG)同步段用于同步总线上不同的节点,是CAN总线位时间中每一位的起始部分。(2)传播段(PROP_SEG)传播段用于补偿网络内的物理延时。(3)相位缓冲段1、2(PSEG1、PSEG2)相位缓冲段用于补偿边沿阶段的误差。(4)采样点(SamplePoint)采样点是读取总线电平并转换为一个对应的位值的一个时间点。5.2CAN总线通信模型5.2CAN总线通信模型6.同步同步使CAN总线系统的收发两端在时间上保持步调一致。由于节点的振荡器漂移,传播延迟以及噪声干扰等引起的位时间偏差称为相位误差。(1)硬同步硬同步只在总线空闲时通过一个从“隐性位”到“显性位”的跳变(帧起始)来完成,此时不管有没有相位误差,所有节点的位时间重新开始。5.2CAN总线通信模型5.2CAN总线通信模型(2)重同步在报文的随后位中,每当有从“隐性位”到“显性位”的跳变,并且该跳变落在了同步段之外,就会引起一次重同步。重同步机制可以根据跳变沿加长或者缩短位时间以调整采样点的位置,保证正确采样。重同步跳转宽度(SJW)定义为相位缓冲段1可被加长或相位缓冲段2可被缩短的上限值。5.2CAN总线通信模型5.2CAN总线通信模型5.2CAN总线通信模型二、CAN总线的数据链路层1.逻辑链路控制子层LLC(1)验收过滤通过验收过滤确定是否被接收数据帧。(2)超载通知若接收节点由于内部原因要求延迟下一个数据帧/远程帧,则发送超载帧。(3)恢复管理发送期间,对于丢失仲裁或被错误干扰的帧,LLC子层具有自动重发功能。5.2CAN总线通信模型5.2CAN总线通信模型2.介质访问控制子层MACMAC子层不存在修改的灵活性,是CAN总线协议的核心。5.2CAN总线通信模型(1)介质访问管理5.2CAN总线通信模型(2)MAC帧位填充当发送节点在发送位流中检测到5个数值相同的连续位(包括填充位)时,在实际发送位流中,自动插入一个补码位。5.3CAN总线帧结构总线上的信息以不同的固定报文格式发送。数据帧(DataFrame):数据帧携带数据从发送器至接收器;远程帧(RemoteFrame):接收单元向发送单元请求发送具有相同标识符数据所用的帧;出错帧(ErrorFram):任何单元检测到一总线错误就发出出错帧;超载帧(OverloadFrame):超载帧用以在先后的数据或远程帧之间提供一附加的延时。5.3CAN总线帧结构一、数据帧数据帧(DataFrame)由以下7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。帧起始、仲裁场和控制场定义为数据帧帧头。CRC场、应答场和帧结束定义为数据帧帧尾。5.3CAN总线帧结构1.帧起始SOF标志数据帧和远程帧的起始。由一个显性位组成。只有在总线空闲时才允许站点开始发送信号,所有站必须同步于开始发送报文的站的帧起始前沿,即硬同步。帧间空间控制场帧起始仲裁场标识符RTR位5.3CAN总线帧结构2.仲裁场在帧起始之后是仲裁场。标准帧:由12个位组成,分别为11个识别位(ID)和一个远程发送请求(RTR)位。RTR位用于区分报文是数据帧(RTR位为显性)还是远程帧(RTR位为隐性状态)。扩展帧:由11位基本ID、SRR位、IDE位和18位扩展ID组成。SRR位和IDE位皆为隐性。帧间空间控制场帧起始仲裁场标识符RTR位5.3CAN总线帧结构5.3CAN总线帧结构5.3CAN总线帧结构3.控制场在仲裁场之后是控制场,由6个位组成。控制场的第一位为识别扩展(IDE)位,该位为显性状态时,说明这是标准帧。识别扩展位的下一位为零保留位(RB0),这一保留位将由CAN协议定义为显性位。控制场的其余4位为数据长度码(DLC),说明了报文中包含的数据字节数。仲裁场控制场数据场或r1r0DLC3DLC2DLC1DLC0CRC场保留位数据长度码5.3CAN总线帧结构5.3CAN总线帧结构4.数据场控制场之后为数据场,包含正在发送的数据字节。数据场长度由上述数据长度码DLC定义(0-8字节)。首先发送的是最高字节的最高位。5.3CAN总线帧结构5.CRC场CRC场由15位CRC序列和1位隐性CRC界定符组成;CRC序列用于检测报文传输错误;CRC校验是由硬件完成的。数据场或ACK场CRC场控制场CRC序列CRC界定符5.3CAN总线帧结构6.应答场应答场由应答间隙和应答界定符两个位组成。在应答间隙期间,发送节点发出一个隐性位,任何接收到匹配CRC序列报文的节点会发回一个显性位,确认报文收到无误。应答的本质是所有接收节点检查报文的一致性。CRC场帧结束ACK场ACK间隙ACK界定符5.3CAN总线帧结构7.帧结束每一个数据帧的结束均由一标志序列界定,这个标志序列由7个隐性位组成。5.3CAN总线帧结构二、远程帧一般情况下,数据传输是由数据源节点(例如,传感器发送数据帧)自主完成的。但也可能发生终节点向源节点请求发送数据的情况,即远程数据请求。要做到这一点,终节点须发送一个标识符与所需数据帧的标识符相匹配的远程帧。随后相应的数据源节点会发送一个数据帧以响应远程帧请求。5.3CAN总线帧结构远程帧由也分为标准帧和扩展帧,由帧起始、仲裁场、控制场、CRC场、应答场、帧结束6个位场组成。远程帧与数据帧存在两点不同:(1)远程帧的RTR位为隐性状态;(2)远程帧没有数据场,所以数据长度代码的数值没有任何意义,可以为0~8范围里任何数值。当带有相同标识符的数据帧和远程帧同时发出时,数据帧将赢得仲裁,这是因为其紧随标识符的RTR位为显性。5.3CAN总线帧结构远程帧与数据帧区别,远程帧的RTR位为隐性状态;远程帧没有数据字场,所以数据长度代码的数值没有任何意义,可以为0~8范围里任何数值。当带有相同标识符的数据帧和远程帧同时发出时,数据帧将赢得仲裁,这是因为其紧随标识符的RTR位为显性。这样可使发送远程帧的节点立即收到所需数据。5.3CAN总线帧结构5.3CAN总线帧结构三、出错帧出错帧由检测到总线错误的任一节点产生。出错帧包含两个场:错误标志和错误界定符。5.3CAN总线帧结构1.错误标志错误标志包括激活错误标志和认可错误标志两种。节点发送哪种类型的出错标志,取决于其所处的错误状态。(1)激活错误标志当节点处于错误激活状态时,检测到一个总线错误时,这个节点将产生一个激活错误标志,中断当前的报文发送。激活错误标志由6个连续的显性位构成。5.3CAN总线帧结构激活错误标志由6个连续的显性位构成。这种位顺序违背了位填充规则,也破坏了应答场或帧结束的固定格式。所有其它节点会检测到错误条件并且开始发送错误标志。因此,这个显性位序列的形成就是各个节点发送的不同错误标志叠加在一起的结果。错误标志叠加序列的总长度最小为6位,最大为12位。5.3CAN总线帧结构(2)认可错误标志当节点处于错误认可状态时,检测到一个总线错误时,该节点将发送一个认可错误标志。认可错误标志包含6个连续的隐性位。2.错误界定符错误界定符由8个隐性位构成。5.3CAN总线帧结构四、超载帧1.超载帧的产生超载帧的产生可能有以下三种原因:①接收器由于内部原因需要延迟下一个数据帧或远程帧;②节点在帧空间检测到非法显性位;③节点在错误界定符或超载界定符的第8位采样到一个显性位。5.3CAN总线帧结构2.超载帧结构超载帧由两个场组成:超载标志和超载界定符。超载标志为6个显性位,超载界定符包含8个隐性位。超载帧与激活错误帧具有相同的格式,但超载帧只能在帧间空间产生,出错帧是在帧传输时发出的。节点最多可产生两条连续超载帧来延迟下一条报文的发送。5.3CAN总线帧结构五、帧间空间帧间空间将前一条帧(无论何种类型)与其后的数据帧或远程帧分离开来。5.3CAN总线帧结构1.间歇(必须有)间歇由3个隐性位组成。2.总线空闲总线空闲由任意长度的隐性位组成。3.延迟传送(错误认可节点)延迟传送由8个位的隐性位组成。5.4CAN总线的错误处理机制一、错误类型1.位错误2.填充错误3.CRC错误4.形式错误5.应答错误5.4CAN总线的错误处理机制二、错误界定规则1.错误界定5.4CAN总线的错误处理机制2.错误界定规则CAN总线上单元的错误状态是依据错误计数器的数值而界定的,错误界定规则就是指错误计数器的计数规则。1)接收节点检测到错误,接收错误计数器值增加;2)发送节点检测到错误,发送错误计数器值增加;3)报文成功发送后,发送错误计数器值减少;4)报文成功接收后,接收错误计数器值减少。5.5SJA1000CAN控制器SJA1000是PHILIPS半导体公司1997年研制的一款独立CAN控制器。SJA1000可以完成CAN总线标准中物理层和数据链路层的所有功能。SJA1000有两种不同的协议模式:BasicCAN模式和PeliCAN模式。SJA1000在汽车制造和其他的工业领域得到了十分广泛的应用。5.5SJA1000CAN控制器一、SJA1000引脚功能AD0~AD7:数据地址总线;ALE/AS:地址锁存/地址选择信号;CS:片选信号;RD/E:读允许/使能信号;WR:写允许信号;CLKOUT:时钟输出信号;Vss1、Vdd1:逻辑电路电源;XTAL1、XTAL2:时钟振荡器端;5.5SJA1000CAN控制器二、SJA1000内部功能结构5.5SJA1000CAN控制器三、SJA1000内部存储区分配操作SJA1000寄存器相当于读写片外RAM;SJA1000内部存储区包括控制段、发送缓冲器和接收缓冲器。SJA1000支持两种操作模式,即工作模式和复位模式。5.5SJA