1、摘 要现场总线 FF(Field Bus)的概念起源于 70 年代,现场总线已经发展成为集计算机网络、通信技术、现场控制、生产管理等内容为一体的现场总线控制系统 FCS(Field-bus Control System) 。它将通信线一直延伸到生产现场生产设备,用于过程和制造自动化的现场设备或现场仪表互连的现场通信网络,将传统的 DCS 三层网络结构变成两层网络结构,降低了成本,提高了可靠性,实现了控制管理一体化的结构体系。本文介绍了 CAN 总线技术,以及 CAN 总线在以摩托罗拉 16 位单片机 MC9S12 为中央控制器的某汽车仪表系统中的应用,并对该系统总体结构及其中 CAN 通信模块
2、的软硬件设计作了说明。关键词:现场总线,PROFIBUS-DP,CAN 总线,MC9S12,汽车,仪表AbstractFieldbus FF (Field Bus) concept originated in the 70s, Fieldbus has developed into computer networks, communication technology, field control, production management, etc. as one of the field bus control system FCS (Field-bus Control System).
3、 Communication line will extend to the production site has been producing equipment for process and manufacturing automation equipment or field instrument field-site communication network interconnection, the traditional DCS network structure into a two-tier network architecture, reduce costs, Impro
4、ve the reliability, control and management to achieve the integration of architecture.This paper introduces the CAN Bus technology as well as the application of CAN Bus in MOTOROLA-16-bit single chip MC9S12 central controller for a car instrument system. It also explains the system in the overall st
5、ructure and the design of the software and hardware CAN communication modules.Keyword:Field Bus, CAN Bus ,Car instrument1.1 现场总线的定义:目前,公认的现场总线技术概念描述如下:现场总线是安装在生产过程区域的现场设备/仪表与控制室内的自动控制装置/系统之间的一种串行、数字式、多点通信的数据总线。其中,“生产过程“ 包括断续生产过程和连续生产过程两类。或者,现场总线是以单个分散的、数字化、智能化的测量和控制设备作为网络节点,用总线相连接,实现相互交换信息,共同完成自动控制功
6、能的网络系统与控制系统。1.2 现场总线技术产生的意义(1)现场总线(Fieldbus)技术是实现现场级控制设备数字化通信的一种工业现场层网络通信技术;是一次工业现场级设备通信的数字化革命。现场总线技术可使用一条通信电缆将现场设备(智能化、带有通信接口)连接,用数字化通信代替 4-20mA/24VDC 信号,完成现场设备控制、监测、远程参数化等功能。(2)传统的现场级自动化监控系统采用一对一连线的、4-20mA/24VDC 信号,信息量有限,难以实现设备之间及系统与外界之间的信息交换,使自控系统成为工厂中的“信息孤岛“ ,严重制约了企业信息集成及企业综合自动化的实现。(3)基于现场总线的自动化
7、监控系统采用计算机数字化通信技术,使自控系统与设备加入工厂信息网络, 构成企业信息网络底层,使企业信息沟通的覆盖范围一直延伸到生产现场。在 CIMS 系统中,现场总线是工厂计算机网络到现场级设备的延伸,是支撑现场级与车间级信息集成的技术基础。 1.3 现场总线技术的应用展望现场总线技术的产生促进了现场设备的数字化和网络化,使现场控制的功能更加强大。由于采用了现场总线技术而带来了过程控制系统的开放性,使得系统成为具有测量、控制、执行和过程诊断等综合能力的控制网络。为更好适应工业过程控制的需要,今后现场总线技术会从以下几个方面发展:(1)基于现场总线的一次仪表和二次仪表的研制现在,生产自动化仪表的
8、厂家必须向现场总线靠拢,开发出具有现场总线结构的一次及二次仪表。检测、变换、补偿、控制、告警、趋势分析等功能可以分散在现场解决,简化上层系统,彻底实现分散控制、集中管理以提高系统的可靠性和稳定性。(2)基于现场总线网络设备的软、硬件开发系统的开放性和通信问题是分散控制系统的突出问题,它需要解决不同厂家软、硬件产品能否集中到一个系统的问题。如 Lon Works 总线技术的产品,只要遵循 Lon Talk 标准,几百家不同产品均可连接在一个系统中,所以要进行网络设备的研制必须遵循现场总线的统一标准。(3)开放的组态技术研究目前现场总线系统的组态是比较复杂的,需要组态的参数多,各参数之间的关系比较
9、复杂,所以研究开放的组态技术也是现场总线的发展趋势。开放的组态技术的研究主要还包括网络拓扑结构、网络设备、网段互联等。在异构网连接的网关路由的开发方面,Lon Works 具有独特的优势。(4)网络设计与网络管理技术的增强网络设计的重点是从物理形态上考虑通信网络和输入、输出线缆网络的布置,减少信息的往返传递是现场总线系统中网络设计和系统组态的一条重要原则。因此,网络设计时应优先将相互间信息交换量大的节点放在同一条支路里。网络管理技术主要还包括网络管理软件、网络数据操作与传输。现场总线的出现形成了低层网络,应同时提供与企业网、国际互联网相连接的可能性。(5)基于现场总线技术的全开放控制系统集成技
10、术的开发自动化系统与设备将朝着现场总线体系结构的方向发展,并且涉及的应用领域十分广阔,几乎覆盖了所有的过程控制领域。(6)控制网络与数据网络的结合2.1 CAN 总线简述 控制局域网 CAN (controllerareanetwork)是国际上应用最广泛的现场总线之一,是德国 Bosch 公司为解决汽车中众多的控制与测试仪器之间的数据交换而开发的一种通讯协议,它作为汽车环境中的微控制器通讯,在车载各电子控制装置 ECU 之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入 CAN 控制装置。CAN 是一种多主方式的串行通讯总线,基本设计规范
11、要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到 10Km 时,CAN 仍可提供高达 50 kbit/s 的数据传输速率。它是一种有效支持分布式控制或实时控制的串行通讯网络。CAN 的应用范围遍及从高速网络到低成本的多线路网络。在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达 1 Mbps。CAN 网络具有反映快 ,可靠度高的特性,应用于要求实时处理的场合,例如汽车刹车防锁死系统安全气囊等。今天此项通信协议已得到广泛应用,成为现代汽车设计中必须采用的装置,奔驰、宝马、大众、沃尔沃及雷诺汽车都将 CAN 作为控制器联网的手段。
12、2.2CAN 总线的特点及通讯协议2.2.1CAN 总线的特点:CAN 总线是一种有效支持分布式控制或实时控制的串行通信网络。其通讯介质可以是双绞线、同轴电缆或光纤。在汽车发动机控制部件、传感器等应用中,总线的位速率最大可达 1Mbit/s。无破坏性的基于优先权竞争的总线仲裁可借助接收滤波的多地址帧传送具有错误检测与出错帧自动重发功能数据传送方式可分为数据广播式和远程数据请求式2.2.2 CAN 总线优点(1)多主控制:在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权(CSMA/CA)。多个单元同时开始发送时,发送高优先级 D。(2)消息的发送:在 CAN
13、协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(D)决定优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。消息的单元可获得发送权(3)系统的柔软性:与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。(4)通信速度:根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度。即使有一
14、个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。(5)远程数据请求可通过发送“请求帧”请求其他单元发送数据。(6)错误检测功能错误通知功能错误恢复功能:所有的单元都可以检测错误(错误检测功能)。检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。(7)故障封闭:CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,
15、当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。(8)连接:CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。3.1CAN 的工作原理当 CAN 总线上的一个节点(站)发送数据时, 它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的 11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的
16、报文。当几个站同时竞争总线读取时,这种配置十分重要。CAN 总线通信协议包括 CAN2.0A 和 CAN2.0B 两种,它们的帧格式如下3.1.1 CAN2.0A 通信协议规定了四种不同的帧格式,数据帧 : 用于节点间传递数据,是网络信息的主体,其帧格式依次包括: 帧起始、仲裁场、控制场、数据远程帧 : 由在线单元发送,用于请求发送具有相同标识符的数据帧,其帧格式与数据帧基本相同,但没有数据场出错帧: 出错帧是检测总线出错的一个信号标志,由两个不同的场构成。第一个场由来自不同节点的错误标志叠加,第二个场为错误界定符。CAN 协议采用 CRC 检验并可提供相应的错误处理功能,保证数据通讯的可靠性
17、。超载帧: 由超载标识和超载界定符组成,表明逻辑链路控制层要求的内部超载状态,并将由媒体访问控制层的一些出错条件而被启动发送。用于扩展帧序列的延迟时间。3.1.2 CAN2.0B 通信协议分为两种帧格式标准帧:标准帧信息为 11 个字节,包括两部分:信息和数据部分。前 3 个字节为信息部分,扩展帧:扩展帧信息为 13 个字节,包括两部分,信息和数据部分。前 5 个字节为信息部分。字节 1 为帧信息。第 7 位(FF)表示帧格式,在扩展帧中,FF 1;第 6 位(RTR)表示帧的类型,RTR=0 表示为数据帧,RTR=1 表示为远程帧; DLC 表示在数据帧时实际的数据长度。4.1 总体方案设计
18、该系统以摩托罗拉 16 位单片机 MC9S12DP256 为中央控制器,并含有CAN 通信模块、LIN 通信模块、数据采集模块及数据存储模块等。发动机及底盘部分通过 CAN 总线与中央控制器相连,仪表板部分及车身模块通过 LIN 总线与中央控制器相连,本文重点介绍的是 CAN 通信模块的设计。4.1.1 CAN 通信模块硬件设计中央控制器 MC9S12DP256 内部带有 5 路 CAN 控制器,msCAN 是 Motorola Scaleable CAN 的缩写,而 msCAN12 模块则是在 MC9S12 系列 MCU 上的具体实现。它总线控制器的所有功能服从 CAN2.0A/B 协议,集
19、成了除收发器外CANmsCAN12 基本特点如下 (1) 模块化结构(2) 实现了 CAN2.0A/B 协议,支持标准和扩展帧格式(3) 支持远程请求帧(4) 双缓冲接收存储方案(5) 带有本地优先级排队机制的三缓冲区发送存储方案(6) 可屏蔽、可重组标识符验收过滤器(7) 内置低通滤波器的可编程唤醒功能(8) 可编程环路检测模式支持模块自(9) 时钟源可程控选择 CPU 总线时钟或晶体振荡器采用 msCAN12 的 CAN 总线系统如图 1 所示:CAN 节点 1 CAN 节点 2 CAN 节点 3微控制器CAN 控制器基于 CAN 的应用系统CAN 总线收发器 CAN 总线收发器带有 CA
20、N 控制器的 I/O 接口CAN 总线收发器图 1 含有 MC9S12 及其他节点的典型 CAN 总线网络系统CAN 收发器采用摩托罗拉的 CAN 通信物理接口芯片 MC33388,它的主要特点是:静态电流低至 15uA波特率范围为 10125 kbps发生总线错误时可自动调整至单线模式,错误消失后可自动恢复正常状态支持单总线传输模式总线对地、电源具有短路保护功能具有总线驱动器过热保护功能支持无遮蔽双绞线传输无功节点不影响总线状态工作温度范围为401254.1.2 CAN 数据通信接口模块软件设计通信接口模块程序主要包括三部分:初始化子程序、发送子程序和接收子程序。初始化程序主要是通过 CAN
21、 控制器控制段中的寄存器写入控制字,从而确定CAN 控制器的工作方式等。有三种方式进入初始化程序:一是上电复位,二是硬件复位;三是软件复位,即在运行期间通过给 CAN 控制器发一个复位请求,置复位请求位为 1。在复位期间必须初始化的寄存器有控制寄存器 CTL、发送控制寄存器 TCR、接收中断允许寄存器 RIER、总线定时寄存器 BTR、验收控制寄存器 IDAC、验收寄存器 IDAR、验收屏蔽寄存器 DMR 等。主节点 CAN数据接收采用中断方式,MCU 内部的 CAN 控制器具有双缓冲接收结构,对总线数据具有一定的缓存能力,通常系统采用主程序查询方式对接收数据进行处理,并用广播方式发送,对特殊
22、数据采用远程帧申请方式,这样更有利于程序对多个任务的结构化管理,程序流程图如图 2 所示CAN 总线以报文为单位进行数据传输,节点对总线的访问采取位仲裁方式。报文起始发送节点标识符可分为功能标识符和地址标识符。CAN 协议的最大特点是打破了传统的节点地址编码方式,而扩展了对通讯数据进行编码的方式。采用这种方式可使不同的节点同时接收到相同的数据。总线采用 CAN2.0B 协议,数据标识符用 29 位二进制表示,即可定义 229 个不同的数据类型,即使对未来更复杂的汽车控制网络其容量也足够了。标识符的值越小,帧数据的优先级越高。通过数据链路控制,每个接收器完成帧接收滤波确定此帧数据是否有效。CAN
23、 控制器监听总线电平决定发送接收是否有效,实际汽车应用中一般采用不冗余的通讯线路,而 CAN 协议提供强大的出错诊断机制,在保证数据通讯的可靠性方面起了重要作用。开始CAN 初始化产生接收中断广播数据调用接收子程序读入数据释放缓冲区数据处理返回判断产生完毕YYNCAN 通信程序流程图 25.1 参考文献1 史久根 张培仁 陈真勇,CAN 现场总线系统设计技术,北京:国防工业出版社,2002 杨国田 白焰,摩托罗拉 68HC12 系列微控制器原理、应用与开发技术,北京:中国电力出版社,20033 李刚炎 宋叶琼 金海松,CAN 及其在轿车中央控制系统中的应用,武汉汽车工业大学学报,20004阳宪惠.现场总线技术及其应用M.清华大学出版社,19995夏继强 刑春香,现场总线工业控制网络技术,北京航空航天大学出版社,20056PROFIBUS International.PROFIBUS Specification (Edition1.0),19887邬宽明.CAN 总线原理和应用系统设计.北京:北京航空航天大学出版社,19668Robert Bosch GmbH.CAN Specification(Version 2.0).1991CAN 总线的应 用学院:电信学院专业:控制工程学号:1104210222