现场总线CAN综述报告
2015-05-04
CAN是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。
现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
一. CAN总线的产生与发展
控制器局部网(CAN-CONTROLLER AREA NETWORK)是BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局部网将在我国迅速普及推广。
随着计算机硬件、软件技术及集成电路技术的迅速发展,工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大进步。由于对系统可靠性和灵活性的高要求,工业控制系统的发展主要表现为:控制面向多元化,系统面向分散化,即负载分散、功能分散、危险分散和地域分散。
分散式工业控制系统就是为适应这种需要而发展起来的。这类系统是以微型机为核心,将 5C 技术--COMPUTER(计算机技术)、CONTROL(自动控制技术)、COMMUNICATION(通信技术)、CRT(显示技术)和 CHANGE(转换技术)紧密结合的产物。它在适应范围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。
典型的分散式控制系统由现场设备、接口与计算设备以及通信设备组成。现场总线(FIELDBUS)能同时满足过程控制和制造业自动化的需要,因而现场总线已成为工业数据总线领域中最为活跃的一个领域。现场总线的研究与应用已成为工业数据总线领域的热点。
尽管目前对现场总线的研究尚未能提出一个完善的标准,但现场总线的高性能价格比将吸引众多工业控制系统采用。同时,正由于现场总线的标准尚未统一,也使得现场总线的应用得以不拘一格地发挥,并将为现场总线的完善提供更加丰富的依据。控制器局部网 CAN正是在这种背景下应运而生的。
由于CAN为愈来愈多不同领域采用和推广,导致要求各种应用领域通信报文的标准化。为此,1991 年 9 月 PHILIPS SEMICONDUCTORS 制订并发布了 CAN技术规范(VERSION2.0)。该技术规范包括A和B 两部分。2.0A给出了曾在CAN技术规范版本1.2 中定义的CAN报文格式,而2.0B给出了标准的和扩展的两种报文格式。此后,1993 年11 月ISO正式颁布了道路交通运载工具--数字信息交换--高速通信控制器局部网(CAN)国际标准(ISO11898),为控制器局部网标准化、规范化推广铺平了道路。
二. CAN总线特点
CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。
CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由11 位或29 位二进制数组成,因此可以定义211或229 个不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为8 个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8 个字节不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC 检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的
重视,并已公认为最有前途的现场总线之一。
另外,CAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。CAN总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。CAN总线插卡可以任意插在PC AT XT兼容机上,方便地构成分布式监控系统。
三. CAN 总线技术介绍
3.1位仲裁
要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时,要求快速地进行总线分配。实时处理通过网络交换的紧急数据有较大的不同。一个快速变化的物理量,如汽车引擎负载,将比类似汽车引擎温度这样相对变化较慢的物理量更频繁地传送数据并要求更短的延时。CAN 总线以报文为单位进行数据传送,报文的优先级结合在11 位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。
总线读取中的冲突可通过位仲裁解决。当几个站同时发送报文时,站1 的报文标识符为011111;站2 的报文标识符为0100110;站3 的报文标识符为0100111。所有标识符都有相同的两位01,直到第3 位进行比较时,站1 的报文被丢掉,因为它的第3 位为高,而其它两个站的报文第3 位为低。站2 和站3 报文的4、5、6 位相同,直到第7 位时,站3 的报文才被丢失。注意,总线中的信号持续跟踪最后获得总线读取权的站的报文。在此例中,站2 的报文被跟踪。这种非破坏性位仲裁方法的优点在于,在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文
的接收站,并且不会在总线再次空闲前发送报文。
CAN具有较高的效率是因为总线仅仅被那些请求总线悬而未决的站利用,这些请求是根据报文在整个系统中的重要性按顺序处理的。这种方法在网络负载较重时有很多优点,因为总线读取的优先级已被按顺序放在每个报文中了,这可以保证在实时系统中较低的个体隐伏时间。
对于主站的可靠性,由于CAN 协议执行非集中化总线控制,所有主要通信,包括总线读取(许可)控制,在系统中分几次完成。这是实现有较高可靠性的通信系统的唯一方法
3.2 CAN 与其它通信方案的比较
在实践中,有两种重要的总线分配方法:按时间表分配和按需要分配。在第一种方法中 ,不管每个节点是否申请总线,都对每个节点按最大期间分配。由此,总线可被分配给每个站并且是唯一的站,而不论其是立即进行总线存取或在一特定时间进行总线存取。这将保证在总线存取时有明确的总线分配。在第二种方法中,总线按传送数据的基本要求分配给一个站 ,总线系统按站希望的传送分配(如:Ethernet CSMA/CD)。因此,当多个站同时请求总线存取时,总线将终止所有站的请求,这时将不会有任何一个站获得总线分配。为了分配总线,多于一个总线存取是必要的。CAN实现总线分配的方法,可保证当不同的站申请总线存取时,明确地进行总线分配。这种位仲裁的方法可以解决当两个站同时发送数据时产生的碰撞问题。不同于Ethernet 网络的消息仲裁,CAN 的非破坏性解决总线存取冲突的方法,确保在不传送有用消息时总线不被占用。甚至当总线在重负载情况下,以消息内容为优先的总线存取也被证明是一种有效的系统。虽然总线的传输能力不足,所有未解决的传输请求都按重要性顺序来处理。在CSMA/CD 这样的网络中,如Ethernet,系统往往由于过载而崩溃,而这种情况在CAN中不会发生。
3.3 CAN 的报文格式
在总线中传送的报文,每帧由7 部分组成,见图3。CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11 位,扩展格式为29 位。在标准格式中,报文的起始位称为帧起始(SOF),然后是由11 位标识符和远程发送请求位(RTR)组成的仲裁场。
RTR 位标明是数据帧还是请求帧,在请求帧中没有数据字节。控制场包括标识符扩展位(IDE),指出是标准格式还是扩展格式。它还包括一个保留位 (ro),为将来扩展使用。它的最后四个字节用来指明数据场中数据的长度(DLC)。数据场范围为0~8 个字节,其后有一个检测数据错误的循环冗余检查(CRC)。
应答场(ACK)包括应答位和应答分隔符。发送站发送的这两位均为隐性电平(逻辑1),这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文。报文的尾部由帧结束标出。在相邻的两条报文间有一很短的间隔位,如果这时没有站进行总线存取,总线将处于空闲状态。
3.4 数据错误检测
不同于其它总线,CAN 协议不能使用应答信息。事实上,它可以将发生的任何错误用信号发出。CAN协议可使用五种检查错误的方法,其中前三种为基于报文内容检查。
3.4.1 循环冗余检查(CRC)
在一帧报文中加入冗余检查位可保证报文正确。接收站通过CRC 可判断报文是否有错。
3.4.2 帧检查
这种方法通过位场检查帧的格式和大小来确定报文的正确性,用于检查格式上的错误。
3.4.3.应答错误
如前所述,被接收到的帧由接收站通过明确的应答来确认。如果发送站未收到应答,那么表明接收站发现帧中有错误,也就是说,ACK场已损坏或网络中的报文无站接收。CAN协议也可通过位检查的方法探测错误。
3.4.4 总线检测
有时,CAN 中的一个节点可监测自己发出的信号。因此,发送报文的站可以观测总线电平并探测发送位和接收位的差异。
3.4.5 位填充
一帧报文中的每一位都由不归零码表示,可保证位编码的最大效率。然而,如果在一帧报文中有太多相同电平的位,就有可能失去同步。为保证同步,同步沿用位填充产生。在五个生。在五个连续相等位后,发送站自动插入一个与之互补的补码位;接收时,这个填充位被自动丢掉。例如,五个连续的低电平位后,CAN 自动插入一个高电平位。CAN通过这种编码规则检查错误,如果在一帧报文中有6 个相同位,CAN 就知道发生了错误。如果至少有一个站通过以上方法探测到一个或多个错误,它将发送出错标志终止当前的发送。这可以阻止其它站接收错误的报文,并保证网络上报文的一致性。当大量发送数据被终止后,发送站会自动地重新发送数据。作为规则,在探测到错误后23 个位周期内重新开始发送。在特殊场合,系统的恢复时间为31 个位周期。
但这种方法存在一个问题,即一个发生错误的站将导致所有数据被终止,其中也包括正确的数据。因此,如果不采取自监测措施,总线系统应采用模块化设计。为此,CAN 协议提供一种将偶然错误从永久错误和局部站失败中区别出来的办法。这种方法可以通过对出错站统计评估来确定一个站本身的错误并进入一种不会对其它站产生不良影响的运行方法来实现,即站可以通过关闭自己来阻止正常数据因被错误地当成不正确的数据而被终止。
3.4.6 CAN可靠性
为防止汽车在使用寿命期内由于数据交换错误而对司机造成危险,汽车的安全系统要求数据传输具有较高的安全性。如果数据传输的可靠性足够高,或者残留下来的数据错误足够低的话,这一目标不难实现。从总线系统数据的角度看,可靠性可以理解为,对传输过程产生的数据错误的识别能力。
残余数据错误的概率可以通过对数据传输可靠性的统计测量获得。它描述了传送数据被破坏和这种破坏不能被探测出来的概率。残余数据错误概率必须非常小,使其在系统整个寿命周期内,按平均统计时几乎检测不到。计算残余错误概率要求能够对数据错误进行分类 ,并且数据传输路径可由一模型描述。如果要确定CAN的残余错误概率,我们可将残留错误的概率作为具有80~90 位的报文传送时位错误概率的函数,并假定这个系统中有5~10 个站,并且错误率为1/1000,那么最大位错误概率为10—13 数量级。例如,CAN 网络的数据传输率最大为1Mbps,如果数据传输能力仅使用50%,那么对于一个工作寿命4000小时、平均报文长度为 80 位的系统,所传送的数据总量为9×1010。在系统运行寿命期内,不可检测的传输错误的统计平均小于10—2 量级。换句话说,一个系统按每年365 天,每天工作8 小时,每秒错误率为0. 7 计算,那么按统计平均,每1000 年才会发生一个不可检测的错误。
四.应用举例
某医院现有5 台16T/H德国菲斯曼燃气锅炉,向洗衣房、制剂室、供应室、生活用水、暖气等设施提供5kg/cm2 的蒸汽,全年耗用天然气1200 万m3,耗用20 万吨自来水。医院采用接力式方式供热,对热网进行地域性管理,分四大供热区。其中冬季暖气的用气量很大,据此设计了基于CAN现场总线的分布式锅炉蒸汽热网智能监控系统。现场应用表明:该楼宇自动化系统具有抗干扰能力强,现场组态容易,网络化程度高,人机界面友好等特点。
五.存在问题
目前现场总线技术在我国的应用已取得很大进展,但也存在一些问题,制约了其推广。
在工程应用方面,工程投资比较大。虽然各种现场总线都把节省费用当成自己的主要优点,但在实际应用中现场总线的投资比传统控制系统要大。一是试用的系统规模太小;二是试用的系统并不分散或者是利用原有布线的改造项目,因此无法充分发挥现场总线节省电缆的优势。
其次,调试和运行维护比较难。由于现阶段熟练掌握现场总线的应用技术和开发技术的人才少,企业在调试和运行时经常会遇到困难。因此,企业在选择系统集成商时,应选择技术力量比较强,比较有经验的单位。
再者,与传统控制系统相比优点不明显。以智能化现场仪表为基础的现场总线系统与传统系统相比,其优点不仅在于控制方面,更多的在于自诊断、自校正等自动管理方面。但是,目前国内用的系统大多数太小,没有把管理自动化和远程诊断功能纳入系统,因此无法发挥现场总线系统降低运行维护费用的优势。
在技术方面,当总线切断时,系统有可能产生不可预知的后果,用户希望这时系统的效能可以降低,但不能崩溃,这一点目前许多现场总线不能保证;现有的防爆规定限制了总线长度和总线上所挂设备的数量,也就限制了现场总线节省电缆优点的发挥;系统组态参数过分复杂,不容易掌握。但组态参数设定得好坏,对系统性能影响很大。
在应用中,现场总线的开放、互联性及互操作性决定了与之俱来的不可避免的安全问题。
外部网是一个由现场总线实现的自动化系统,是和企业的Intranet 紧密结合在一起的,存在着与In ternet普通应用相同的种种威胁,包括窃听、盗取资料、非法获取控制权、进行破坏、阻碍通信等。要解决这些问题,必须建立起一套适合企业的针对现场总线应用的安全策略。
在Intranet内部,人们容易放松警惕。由于现场总线多应用于化工、电气及楼宇自动化控制中,这些场合都要求系统连续运行,因此现场总线可能受到的攻击时间与普通应用相比长得多。
基于安全情况,可以考虑将各子系统设计得较为独立,使一个子系统受到破坏不会影响到整个系统;采用通信控制器将总线与以太网相联,改善通信控制器的功能,可以起到一定程度的安全防范作用,包括拒绝非法访问,危险时将总线与以太网隔离等;进行合理的冗余设计,以提高系统稳定性。
六.结论
综上所述,现场总线并不是为解决传统控制系统不能解决的问题而出现的,它的主要优点是更灵活、更开放,并为采用新型系统维护方式和企业管理模式提供了可能。但对于以价格为首选条件的场合,系统规模较小、控制对象分布比较集中的场合,以及没有扩展设备智能诊断和管理要求的场合,现场总线并不一定是最佳选择。
参考文献
[1]饶运涛等,现场总线CAN原理与应用技术,北京:北京航空航天大学出版社,2007.8
[2]邬宽明, CAN总线原理和应用系统设计. 北京:北京航空航天大学出版社,2002.3
[3] 韩兵,现场总线控制系统应用实例. 北京:北京航空航天大学出版社,2006.8