CAN(控制器局域网)总线性能特点•CAN属于总线式串行通信网络,其数据通信具有突出的可靠性、实时性和灵活性。特点如下:•多主方式:P8•信息分级,高优先级先传输•非破坏性总线仲裁技术•通信方式:点对点、一点对多点、全局广播•通信距离、速率距离(40M-10KM),速率(1Mb/s-5Kb/s)•节点数:取决于总线驱动电路,可达110个;报文标识符2032种•传输格式:短帧结构•检错:CRC校验•通信介质选择灵活•节点自动关闭输出功能(出错严重)技术规范•基本概念:•报文:格式不同,长度不同•信息路由(CAN节点不使用任何有关系统结构的信息)-系统灵活性:节点接入灵活-报文通信:标识符ID(不指出报文的目的,描述数据的含义),报文滤波-成组:接收,激活-数据相容性:借助成组和出错处理达到•位速率:不同系统不同速率;系统给定,速率惟一且固定•优先权:标识符定义•远程数据请求•(需要数据的节点)发送远程帧→请求(有该数据的节点)→发送数据帧•该数据帧与对应远程帧具有相同标识符ID•多主站•仲裁•CAN总线以报文为单位进行数据传送,报文的优先级结合在11位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。•如:当几个站同时发送报文时,站1的报文标识符为011111,站2的报文标识符为0100110,站3的报文标识符为0100111。所有标识符都有相同的两位01,直到第3位进行比较时,站1的报文被丢掉,因为它的第3位为高,而其它两个站的报文第3位为低。站2和站3报文的4、5、6位相同,直到第7位时,站3的报文才被丢掉(逐位仲裁)。•注意:标识符ID相同时,数据帧优先于远程帧。•这种非破坏性位仲裁方法的优点在于:在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。•安全性:出错率极低•检错措施:发送自检、循环冗余校验、位填充和报文格式检查。•出错标注和恢复时间•已损报文→检出节点标注→失效→自动重发•恢复时间最多为29个位时间。•故障界定•连接:单元总数受限于延迟时间和总线的电气负载。•单通道:借助数据重同步实现信息传输。•总线数值表示:显性或隐性电平,显位优先。•应答:回答相容报文,标注不相容报文。•睡眠方式及唤醒•-睡眠方式:无任何内部活动•-唤醒:任何总线激活或者系统的内部条件•-专用唤醒报文:rrrrrrdrrrr,r为隐位,d为显位。CAN协议的分层结构LLC:为数据传送和远数据链路层程请求提供服务2.0AMAC:传送规则、位定时物理层:有关全部电气特性不同在节点间的实际传送物理层:位定时、位编码、同步MAC子层:核心。响应报文帧、仲裁、2.0B应答、错误检测和标定。LLC子层:管理报文滤波、超载通知、恢复管理报文传送及其帧结构•报文发送器:发出报文的单元•实际有效时刻:帧结束末尾一直未出错,报文有效;报文受损,按优先权自动重发。•报文接收器:不是报文发送器,总线非空闲•实际有效时刻:帧结束的最后一位一直未出错,有效。•位填充规则•一帧(帧起始、仲裁场、控制场、数据场、CRC序列)报文中的每一位都由非归零码表示,可保证位编码的最大效率。然而,如果在一帧报文中有太多相同电平的位,就有可能失去同步。•为保证同步,同步沿用位填充产生。在五个连续相等位后,发送站自动插入一个与之互补的补码位;接收时,这个填充位被自动丢掉。例如,五个连续的低电平位后,CAN自动插入一个高电平位。CAN通过这种编码规则检查错误,如果在一帧报文中有6个相同位,CAN就知道发生了错误。•固定格式:数据帧、远程帧和其余位场、出错帧、超载帧,不进行位填充。•报文传送的帧类型•数据帧:携带数据由发送器至接收器。由7个不同的位场组成。•CAN2.0B中,标准帧:11位标识符•扩展帧:29位标识符•控制器兼容:支持标准,接受扩展•-帧起始:标志数据帧和远程帧的起始,仅由一个显位构成。站同步•-仲裁场:由标识符的远程发送请求位(RTR)组成。•CAN2.0A:11位。RTR位在数据帧中必须是显位,在远程帧中必须为隐位。•CAN2.0B:•标准格式:11位RTR。•扩展格式:29位标识符、SRR位、标识位及远程发送请求位组成。•标准格式与扩展格式冲突的解决:SRR代替RTR并在其位置上发送,二者基本ID相同。SRR位为隐位。•IDE位:•标准格式:控制场显性电平发送•扩展格式:仲裁场隐性电平•-控制场•由6位组成,包括数据长度码和两个保留位(必须发送显性位)。•数据长度码指出数据场的字节数目,长度码为4位,在控制场中发送。数据字节的允许使用数目为0-8。•-数据场•由数据帧中被发送的数据组成,包括0-8个字节,每个字节8位。首先发送的是最高有效位。•-CRC场•包括CRC序列、CRC界定符•CRC序列由循环冗余码求得的帧检查序列组成,适用于位数小于127的帧。•CRC界定符只包含一个隐位。•-应答场(ACK)•两位(应答间隙、应答界定符)•发送器送出两个隐位→接收器(正确接收)发送一个显位报告(应答间隙)•所有接收到匹配CRC序列的站,通过在应答间隙内把显位写入发送器的隐位来报告。•应答界定符(第2位)必须是隐位。•-帧结束•每个数据帧和远程帧均由7个隐位组成的标志序列界定。•远程帧•由6个不同分位场组成:帧起始、仲裁场、控制场、CRC场、应答场、帧结束。•注意:远程帧的RTR位是隐位,不存在数据场。•出错帧•由两个位场组成。第一个场为错误叠加标志,第二个场为错误界定符。•错误认可节点→终止出错帧•错误标志:活动错误标志、认可错误标志•活动错误标志:6个连续显位•工作方式:检测出错(错误激活节点)→发送活动错误标志标注→违背填充规则或固定形式→其他站发送出错标志→叠加•长度在6~12位之间•认可错误标志:6个连续隐位•工作方式:检测出错(错误认可站)→发送错误认可标志标注→等待6个相同极性的连续位→完成•出错界定符:8个隐位•超载帧•包括两个位场:超载标志和超载界定符•导致发送超载标志的条件:•-要求延迟下一个数据帧或远程帧的接收器的内部条件•起点:期望间歇场的第一位时间•-在间歇场检测到显位•起点:检测到显位的后一位•超载标志由6个显位组成。其形式破坏了间歇场的固定格式,从而所有其他站检测到超载条件,并发送超载标志。•超载界定符由8个隐位组成。•帧间空间•数据帧和远程帧同前面的帧相同,不管是何种帧均以称之为帧间空间的位场分开。但在超载帧和出错帧前面没有帧间空间。•帧间空间包括间歇场和总线空闲场。•间歇场由3个隐位组成,间歇期间不允许启动发送数据帧或远程帧,仅起标注超载条件的作用。•总线空闲周期可为任意长度。总线开放•报文发送期间,待发报文紧随间歇场从第一位开始发送。•暂停发送场:错误认可站发完一个报文后,在开始下一次报文发送或认可总线空闲之前,紧随间歇场后送出8个隐位。•错误类型和界定•5种错误类型•-位错误:总线位数值与送出的位数值不同。例外:在仲裁场的填充位流期间或应答间隙送出隐位而检测到显位;送出认可错误标注的发送器检测到显位。•-填充错误:位填充方法编码时,出现第六个连续相同的位电平。•-CRC错误:接收器计算结果与接收到的CRC序列不相同。•-形式错误:固定形式的位场中出现一个或多个非法位。•-应答错误:应答间隙发送器未检测到显位。•检测到CRC错误时,出错标志在应答界定符后面那一位开始发送,其余错误由检出站在下一位开始发送出错标志。•3种故障状态:错误激活(活动错误标志)、错误认可(认可错误标志)、总线关闭(不允许单元对总线有任何影响)。•故障界定计数规则:•1、接收器检出错误时,接收器出错计数加1(发送活动错误标志或超载标志期间的位错误除外)。•2、接收器在送出错误标志后的第一位检出一个显位时,接收计数+8。•3、发送器发送一个错误标志时,发送计数+8。两个例外:•4、发送器送出一个活动错误标志或超载标志时,检测到位错误,发送计数+8。•5、接收器送出一个活动错误标志或超载标志时,检测到位错误,发送计数+8。•6、在送出活动错误标志、认可错误标志或超载错误标志后,检测第11个连续显位后(活动错误标志或超载标志),或紧随认可错误标志检测到第8个连续显位后,以及附加的8个连续的显位的每个序列后,接收、发送计数+8。•7、成功发送,发送计数-1。•8、成功接收,接收计数-1(1—127)。若大于127,其值为119—127之间的一个。•9、发送、接收计数≥128,节点为错误认可。•10、发送计数≥256,节点为总线关闭状态。•11、发送、接收计数均≤127时,错误认可节点再次变为错误激活节点。•12、监测到总线上11个连续的隐位发生128次后,总线关闭节点变为两个错误计数器均值为0的错误激活节点。•错误计数数值大于96时,总线被严重干扰。•特殊:仅一节点在线,发报无应答,检错重发,该节点变为错误认可,但不会关闭总线。位定时与同步•正常位速率:在非重同步情况下,借助理想发送器每秒发生的次数。•正常位时间:正常位速率的倒数。可分为如下几个时间段:同步段、传播段、相位缓冲段1、相位缓冲段2。•同步段:用于同步总线上的各节点。跳变沿•传播段:用于补偿网络内的传输延迟时间,它是信号在总线上传播时间、输入比较器延迟和驱动器延迟之和的两倍。•相位缓冲段1和相位缓冲段2:用于补偿沿的相位误差,通过重同步,时间段可变。•采样点:读仲裁电平并理解,位于相位缓冲段1的终点。•信息处理时间:由采样点开始,保留用于计算子序列位电平的时间。•时间份额:由振荡器周期派生出的一个固定时间单元。•正常位时间中各时间段长度数值:同步段为一个时间份额,传播段1-8个,相位缓冲段1为1-8个,相位缓冲段2为相位缓冲•段1与信息处理时间的最大值,信息处理时间长度≤2个时间份额。总数为8-25。•硬同步:内部位时间从同步段重新开始。•重同步跳转宽度:1-4个时间份额。•沿相位误差:由沿相对于同步段的位置给定,以时间份额度量。•重同步:相位误差≤重同步跳转宽度编程值时,同硬同步;相位误差重同步跳转宽度且e0,则相位缓冲段1延长总数为重同步跳转宽度。相位误差重同步跳转宽度且e0,则相位缓冲段2缩短总数为重同步跳转宽度。同步规则•两种形式:硬同步、重同步。•1、在一个位时间仅允许一种同步。•2、采样数值与总线数值不符,沿过后立即有一个沿用于同步。•3、总线空闲期间,隐跳显,执行硬同步。•4、履行1和2的隐跳显执行重同步。•例外:对于具有正相位误差的隐跳显,沿用于重同步,发送显位的节点则不执行。•总线驱动方式:单线上拉、单线下拉、双线。•接收方式:差分比较器•总线状态:隐性、显性•CAN总线通过CAN控制器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。•CAN的通信协议主要由CAN控制器完成。CAN控制器主要由实现CAN总线协议部分和与微控制器接口部分电路组成。CANopen高层协议•CANOpen是一种基于CAN的高层协议,是一种具有灵活配置功能的标准嵌入式网络。•CANopen是CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen被认为是在基于CAN的工业系统中占领导地位的标准。CANopen协议集基于所谓的“通信子集”,该子集规定了基本的通信机制及其特性。大多数重要的设备类型,例如数字和模拟的输入输出模块,驱动设备,操作设备,控制器,可编程控制器或编码器,都在称为设备子集的协议中进行描述。设备子集定义了不同类型的标准设备及其相应的功能。依靠CANopen协议集的支持,可以对不同厂商的设备通过总线进行配置。协议构成•CANo