《工业机器人遥操作控制系统设计——嵌入式伺服控制器设计.docx》由会员分享,可在线阅读,更多相关《工业机器人遥操作控制系统设计——嵌入式伺服控制器设计.docx(65页珍藏版)》请在三一办公上搜索。
1、工学学士论文 摘要摘要随着科技的发展,机器人越来越广泛的应用于工业和生活。本课题是工业机器人遥操作控制系统设计之嵌入式伺服控制器的设计,通过对上位机命令和反馈信号的处理,实现对其进行有线遥控及运动轨迹的示教再现。本设计主要由硬件设计和软件设计两方面组成。在硬件方面,微处理器采用TI公司的MSP430系列超低功耗的混合信号控制器MSP430F449,采用CAN总线与上位机通讯,并经过隔离放大信号实现对驱动器的控制并采集光电编码器反馈的信号。软件部分也主要包括主程序,总线通讯程序和自动控制程序等。本设计综合了多方面的专业知识,利用嵌入式系统发展了机器人的控制性能,用硬件实现控制算法,同时完成任务的
2、合理调度、实时控制和通信功能,促进机器人和工业的全面接轨。关键词:工业机器人;控制器;嵌入式 ABSTRACTWith the development of science and technology, robots are applied to industry and life more and more widely. This task is on the design of embedded servo controller of the teleoperation control system of a industrial robot. Through dealing with
3、 the command from the host microprocessor and the feedback signal, it realizes the wired remote control and the reoccurrence of the original orbit.The design mainly consists of two parts: hardware and software design. In terms of hardware, the ultra-low powered mixed signal controller MSP430 of the
4、MSP430 series produced by TI Inc is chosen as the main microprocessor, CAN bus is used to communicate with the host microprocessor, for the goal of controlling the drive through isolating and amplifying the signal and collecting the feedback signal from the optical encoder. In terms of software, it
5、consists of the main program, bus communication program, automatic control program and so on.This design combines a variety of professional knowledge, embedded system is used to develop the control performance of the robot, hardware is used to complete the control algorithm and all above is for disp
6、atching the tasks reasonably, real-time controlling and communicating, promoting the full integration of robots and industry.Keywords: industrial robot; controller; embedded工学学士论文 目录目录1 绪论11.1机器人和机器人学11.2 机器人的分类11.3 工业机器人的发展22设计概述82.1 工业机器人的基本组成82.2 机器人的自由度102.3课题组总框架102.4控制器的功能及设计思路113 硬件设计与选型133.1
7、 MPS430单片机概述133.2 CAN总线接口设计163.3光电编码器的反馈信号353.4伺服驱动器的控制384 系统软件设计444.1MSP430集成开发调试环境444.2主程序设计454.3 CAN总线通讯程序设计475 设计总结50参考文献52致谢54附录一(设计组总框图)55附录二(本设计原理图)56附录三(外文文献翻译)57工学学士论文 绪论1 绪论1.1机器人和机器人学人们从一开始制作物品时,就有用各种方式制作机器人的想法。尽管从原理上讲,类人机器人是机器人,并具有与机器人相同的设计与控制原理,但本设计研究的机器人是工业用机械手型机器人。如果将常规的机器人操作手与挂在多用车或牵
8、引车上的起重机进行比较,可发现两者非常相似。它们都具有许多连杆,这些连杆通过关节依次连接,这些关节有驱动器驱动。在上述两个系统中,操作器的“手”都能在空中运动并可以运动到工作空间的任何位置,它们都能承载一定的负荷,并都用一个中央控制器控制驱动器。然而,它们一个称为机器人,另一个称为操作机(也就是起重机),两者最根本的不同是起重机是由人来控制驱动器,而机器人操作手是由计算机编程控制,正是通过这一点可以区别一台设备到底是简单的操作机还是机器人。通常机器人设计成由计算机或类似装置来控制,机器人的动作受计算机监控的控制器所控制,该控制器本身也运行某种类型的程序。机器人学是人们设计和应用机器人的技术和知
9、识1。机器人系统不仅由机器人组成,还需要其他装置和系统连同机器人一起来共同完成必需的任务。机器人可以用于生产制造、水下作业、空间探测、帮助残疾人甚至娱乐等方面。通过编程和控制,许多场合均可以应用机器人。机器人学是一门交叉学科,它得益于机械工程、电气与电子工程、计算机科学、生物学以及其他学科。1.2 机器人的分类机器人的分类方法很多,这里依据两个有代表性的分类方法列举机器人的分类。首先,机器人按应用可分为工业机器人、极限作业机器人和娱乐机器人。工业机器人有搬运、焊接、装配、喷漆、检查等机器人,主要用于现代化的工厂和柔性加工系统中。极限作业机器人主要是指用在人们难以进入的核电站、海底、宇宙空间进行
10、作业的机器人,也包括建筑、农业机器人等。娱乐机器人包括弹奏乐器的机器人、舞蹈机器人、玩具机器人等(具有某种程度的通用性),也有根据环境而改变动作的机器人。其次,按照控制方式机器人可分为操作机器人、程序机器人、示教再现机器人、智能机器人和综合机器人。操作机器人的典型代表是在核电站处理放射性物质时远距离进行操作的机器人。在这种场合,相当于人手操纵的部分称为主动机械手,进行类似动作的部分称为从动机械手。两者基本是类似的,但从动机械手要大些,是用经过放大的力进行作业的机器人;主动机械手要小些。也有一方面用显微镜进行观察,一方面进行精密作业的机器人。程序机器人按预先给定的程序、条件、位置进行作业。示教再
11、现机器人同盒式磁带的录放一样,机器人将所教的操作过程自动地记录在磁盘、磁带等存储器中,当需要再现操作时,可重复所教过的动作过程。示教方法有直接示教与遥控示教。智能机器人不仅可以进行预先设定的动作,还可以按照工作环境的变化改变动作。综合机器人是由操纵机器人、示教再现机器人、智能机器人组合而成的机器人,如火星机器人。1997年7月4日,“火星探险者”(Mars Pathfinder)在火星上着陆,着陆体是四面体形状,着陆后三个盖子的打开。它在能上、下、左、右动作的摄像机平台上装有两台摄像机,通过立体观测而得到空间信息。整个系统可以看作是由地面指令操纵的操作机器人。1.3 工业机器人的发展1.3.1
12、 全球机器人的发展状况1954年,美国戴沃尔最早提出了工业机器人的概念2,并申请了专利。该专利的要点是借助伺服技术控制机器人的关节,利用人手对机器人进行动作示教,机器人能实现动作的记录和再现。这就是所谓的示教再现机器人,现有的机器人差不多都采用这种控制方式。图1.1 Unimate工业机器人和Versatran工业机器人1958年,被誉为“工业机器人之父”的Joseph F. Engel Berger创建了世界上第一个机器人公司Unimation(Universal Automation)公司,并参与设计了第一台Unimate机器人,如图1.1所示。这是一台用于压铸作业的五轴液压驱动机器人,手
13、臂的控制由一台专用计算机完成。它采用分离式固体数控元件,并装有存储信息的磁鼓,能够记忆完成180个工作步骤。与此同时,另一家美国公司AMF公司也开始研制工业机器人,即Versatran(Versatile Transfer)机器人,如图1.1所示。它主要用于机器之间的物料运输,采用液压驱动。该机器人的手臂可以绕底座回转,沿垂直方向升降,也可以沿半径方向伸缩。一般认为,Unimate和Versatran是世界上最早的工业机器人(见图1.1)。这两种工业机器人的控制方式和数控机床大致相似,但外形特征迥异,主要有类似人的手和臂组成。工业机器人的发展历史可用表1.1来说明。表1.1 工业机器人的发展历
14、史年代领域事件1955理论Denavit和Hartenberg发展了齐次变换1961工业美国专利2998237,George devol的“编程技术”、“传输”(基于Unimate机器人)1961技术第一台Unimate机器人安装,用于压铸1961技术有传感器的机械手MH-1,由Ernst在麻省理工学院发明1961工业Versatran圆柱坐标机器人商业化1965理论L.G.Roberts将齐次变换矩阵应用于机器人1965技术MIT的Roborts演示了第一个具有视觉传感器的、能识别与定位简单积木的机器人系统1967理论日本成立了人工手研究会(现改名为仿生机构研究会),同年召开了日本首届机器人
15、学术会1968技术斯坦福研究院发明带视觉的、由计算机控制的行走机器人Shakey1969技术VCSheinman及其助手发明斯坦福机器臂1970理论在美国召开了第一届国际工业机器人学术会议。1970年以后,机器人的研究得到迅速广泛的普及1970技术ETL公司发明带视觉的自适应机器人1971工业日本工业机器人协会(JIRA)成立1972理论RPPaul用DH矩阵计算轨迹 1972理论DEWhitney发明操作机的协调控制方式1973理论 辛辛那提米拉克隆公司的理查德豪恩制造了第一台由小型计算机控制的工业机器人,它是液压驱动的,能提升的有效负载达45kg1975工业美国机器人研究院成立1975工业
16、Unimation公司公布其第一次利润1976技术在斯坦福研究院完成用机器人的编程装配1978工业C.Rose及其同事成立了机器人智能公司,生产出第一个商业视觉系统1980工业工业机器人真正在日本普及,故称该年为“机器人元年”。随后,工业机器人在日本得到了巨大发展,日本也因此而赢得了“机器人王国”的美称随着计算机技术和人工智能技术的飞速发展,使机器人在功能和技术层次上有了很大的提高,移动机器人和机器人的视觉和触觉等技术就是典型的代表。由于这些技术的发展,推动了机器人概念的延伸。20世纪80年代,将具有感觉、思考、决策和动作能力的系统称为智能机器人。这是一个概括的、含义广泛的概念。这一概念不但指
17、导了机器人技术的研究和应用,而且又赋予了机器人技术向深广发展的巨大空间。水下机器人、空间机器人、空中机器人、地面机器人、微小型机器人等各种用途的机器人相继问世,许多梦想成为了现实。将机器人的技术(如传感技术、智能技术、控制技术等)扩散和渗透到各个领域,便形成了各式各样的新机器机器人化机器。当前,与信息技术的交互和融合又产生了“软件机器人”、 “网络机器人”的名称,这也说明了机器人所具有的创新活力。美国的机器人技术一直处于世界领先水平。在19671974年的几年时间里,因为政府对机器人发展的重视不够,且机器人处于发展初期,价格昂贵,适用性不强,所以发展缓慢。此后,由于美国机器人协会、制造工程师协
18、会积极主动地进行机器人技术推广工作,且美国为了高效生产,适应市场多变的需要,以机器人为核心的柔性自动化生产线恰好具有这些优点,所以机器人技术得以迅猛发展。日本机器人的发展经过了20世纪60年代的摇篮期,70年代的实用化时期以及80年代的普及、提高期三个基本阶段。在1967年,日本东京机械贸易公司首次从美国AMF公司引进Versatran机器人。1968年,日本川崎重工业公司与美国Unimation公司缔结国际技术合作协议,引进Unimation机器人。1970年,日本机器人实现国产化。从此,日本进入了开发和应用机器人技术时期。几年后,美国反而要从日本进口机器人。1983年,美国从日本进口的机器
19、人占美国总数的78%。1.3.2我国工业机器人的发展状况我国工业机器人起步于20世纪70年代初,经过30多年的发展,90年代进入了适用化期,先后研制出了点焊、弧焊、装配、喷漆、切割、搬运、包装、码垛等各种用途的工业机器人,并实现了一批机器人应用工程,形成了一批机器人产业化基地,为我国机器人产业的腾飞奠定了基础。目前我国机器人研究的主要内容如下:1)示教再现型工业机器人产业化技术研究这些研究主要包括:关节式、侧喷式、顶喷式、龙门式喷涂机器人产品的标准化,通用化、模块化、系列化设计;柔性仿形喷涂机器人产品的标准化、通用化、模块化、系列化设计;弧焊机器人用激光视觉焊缝跟踪装置的开发;焊接机器人的离线
20、示教编程及工作站系统动态仿真;电子行业用装配机器人产品标准化、通用化、模块化、系列化设计;批量生产机器人所需的专用制造、装配、测试设备和工具的研究开发。2)智能机器人开发研究这些研究主要包括:遥控加局部自主系统构成和控制策略研究;智能移动机器人的导航和定位技术研究;面向遥控机器人的虚拟现实系统;人机交互环境建模系统;基于计算机屏幕的多机器人遥控技术。3)机器人化机械研究开发这些研究开发主要包括:并联机构机床(VMT)与机器人化加工中心(RMC)开发研究;机器人化无人值守和具有自适应能力的多机遥控操作的大型散料输送设备。4)以机器人为基础的重组装配系统这些研究主要包括:开放式模块化装配机器人;面
21、向机器人装配的设计技术;机器人柔性装配系统设计技术;可重构机器人柔性装配系统设计技术;装配力觉、视觉技术;智能装配策略及其控制技术。5)多传感器信息融合与配置技术该技术主要包括:机器人的传感器配置和融合技术在水泥生产过程控制和污水处理自动控制系统中的应用;机电一体化智能传感器的设计应用。61工学学士论文 设计概述2设计概述2.1 工业机器人的基本组成工业机器人由三大部分六个子系统组成。三大部分是机械部分、传感部分和控制部分3。六个子系统是驱动系统、机械结构系统、感受系统、机器人环境交互系统、人机交互系统和控制系统,可用图2.1来表示。人机交互系统控制系统机械机构系统机器人环境交互系统感受系统驱
22、动系统图2.1 机器人系统组成六个子系统的作用分述如下:1驱动系统要使机器人运行起来,需给各个关节即每个运动自由度安置传动装置,这就是驱动系统。驱动系统可以是液压传动、气动传动、电动传动,或者把它们结合起来应用的综合系统;可以是直接驱动或者是通过同步带、链条、轮系、谐波齿轮等机械传动机构进行间接驱动。2.机械结构系统工业机器人的机械结构系统由基座、手臂、末端操作器三大件组成。每一大件都有若干自由度,构成一个多自由度的机械系统。若基座具备行走机构,则构成行走机器人;若基座不具备行走及腰转机构,则构成单机器人臂(Single Robot Arm)。手臂一般由上臂、下臂和手腕组成。末端操作器是直接装
23、在手腕上的一个重要部件,它可以是二手指或多手指的手爪,也可以是喷漆枪、焊具等作业工具。3.感受系统感受系统由内部传感模块和外部传感模块组成,用以获取内部和外部环境状态中有意义的信息。智能传感器的使用提高了机器人的机动性、适应性和智能化的水准。人类的感受系统对感知外部世界信息是极其灵巧的,然而,对于一些特殊的信息,传感器比人类的感受系统更有效。4.机器人环境交互系统机器人环境交互系统是实现工业机器人与外部环境中的设备相互联系和协调的系统。工业机器人与外部设备集成为一个功能单元,如加工制造单元、焊接单元、装配单元等。当然,也可以是多台机器人、多台机床或设备、多个零件存储装置等集成为一个执行复杂任务
24、的功能单元。5.人机交互系统人机交互系统是使操作人员与机器人控制并与机器人进行联系的装置,例如,计算机的标准终端,指令控制台,信息显示板,危险信号报警器等。该系统归纳起来分为两大类:指令给定装置和信息显示装置。6.控制系统控制系统的任务是根据机器人的作业指令程序以及从传感器反馈回来的信号支配机器人的执行机构去完成规定的运动和功能。假如工业机器人不具备信息反馈特征,则为开环控制系统;若具备信息反馈特征,则为闭环控制系统。根据控制原理,控制系统可分为程序控制系统、适应性控制系统和人工智能控制系统。根据控制运动的形式,控制系统可分为点位控制和轨迹控制。2.2 机器人的自由度正如在工程力学课程中学到的
25、,为了确定点在空间的位置,需要指定三个坐标,就像沿直角坐标轴的x,y和三个坐标。同样地,如果考虑一个三自由度的三维装置,在它的工作区内可以将任意一点放到所期望的位置。同样,要确定一个刚体(一个三维物体,而不是一个点)在空间的位置,首先需要在该刚体上选择一个点应指定该点的位置,因此需要三个数据来确定该点的位置。然而,即使物体的位置已确定,仍有无数种方法来确定该物体的姿态。为了完全定位空间的物体,除了确定物体上的所选点的位置外,还须确定该物体的姿态。这就意味着需要六个数据才能完全确定刚体物体的位置和姿态。基于同样的理由,需要六个自由度才能将物体放置到空间的期望位姿。如果少于六个自由度,机器人的能力
26、将受到很大的限制。为了说明这个问题,考虑一个三自由度机器人,它只能沿x,y和z轴运动。在这种情况下,不能指定机械手的姿态。此时,机器人只能夹持物体做平行于坐标轴的运动,姿态保持不变。再假设一个机器人有五个自由度,可以绕三个坐标轴旋转,但只能沿x和y轴运动。这时虽然可以任意地指定姿态,但只能沿x和y轴而不可能沿z轴给部件定位。具有七个自由度的系统没有唯一解。这就意味着,如果一个机器人有七个自由度,那么机器人可以有无穷多种方法在期望位置为部件定位和定姿。为了使控制器知道具体怎么做,必须有附加的决策程序使机器人能够从无数种方法中只选择出一种。例如,可以采用最优程序来选择最快或最短路径到达目的地。为此
27、,计算机必须检验所有的解,从中找出最短或最快的响应并执行之。2.3课题组总框架本课题组是一个完整的工业机器人遥操作嵌入式伺服控制系统设计,由示教操作器、规划器和嵌入式伺服控制器组成,总体框图见附录一。操作器是操作人员控制工业机器人的人际交互系统,在操作端,操作者通过操纵杆、键盘等人机交互设备发出命令,一方面这些控制命令通过通信环节送往远端的机器人系统,另一方面通过总线通信,现场机器人的运动状态信息都可以反馈到操作端。操作作者向远端机器人发出的指令既可以是低级的运动指令,也可以是高级的任务级指令。 规划器主要负责路径规划,即根据作业任务确定实时计算和生成运动轨迹。接收从操作器接受任务,完成路径规
28、划,在发出给控制器命令。在规划中,不仅要规定机器人的起始点和终止点,而且要给出中间点(路径点)的位姿及路径点之间的时间分配,即给出两个路径点之间的运动时间。控制器除了接收上位机发出的命令外,主要负责控制驱动器和完成以速度为反馈信号的闭环控制。详细信息见下一节。2.4控制器的功能及设计思路2.4.1 控制器的功能控制器的功能主要包括用硬件实现智能控制算法, 同时完成任务的合理调度、实时控制和网络功能,使控制器具有良好的稳定性、较好自适应性、高可靠性、快速性、高的跟踪精度4。控制器采用的参数自调整在线插值模糊控制算法可以实现误差无限分档和比例因子在线调整。首先,接收上位机命令, 监视机器人状态。然
29、后,运用矢量控制算法完成关节电机的运动控制并完成单关节的位置闭环,主控制器将关节转动的角位移、角加速度等命令参数,每个伺服周期进行一次位置、速度的检查, 如果未达到指定的位置, 则继续运动或者加速, 将要达到指定位置时会自动的按照设定的加速度进行减速, 完成关节空间的位置闭环控制。这样不仅克服了运动超调的现象, 而且使得系统加减速时运行平稳5。2.4.2 控制器的设计思路本课题是一个完整的工业机器人遥操作嵌入式伺服控制系统设计的一部分嵌入式伺服控制器的软硬件电路原理设计,主要包括以下内容:(1) 控制信号输出电路的设计分析、设计机器人各控制元件的特性及控制方式,选择合适的驱动控制电路实现对机器
30、人各自由度的控制。并根据从上位机传来的操作指示,发出相应的控制信号。(2) 与上位机连接的通信电路的设计利用CAN总线完成遥操作器、规划器与嵌入式伺服控制器之间可靠的双向数据传输,从而实现机器人的遥操作,保证数据传输的准确性、可靠性和实时性。(3) 反馈信号的采集与处理利用光电编码器输出的信息,经过合理的处理,得到电机的转向、转速等信息。将处理后的信号通过CAN总线上报给规划器,使规划器作出相应调整,以保证电机运转的准确性,可靠性。工学学士论文 硬件设计与选型3 硬件设计与选型3.1 MPS430单片机概述3.1.1 MPS430单片机系列概述TI公司的MSP430系列单片机是一种超低功耗的混
31、合信号控制器,其中包括一系列器件,它们针对不同的应用而由各种不同的模块组成。这些微控制器被设计为可用电池工作。而且可以有很长使用时间的应用。它们具有16位RISC结构,CPU中的16个寄存器和常数发生器使MSP430微控制器能达到最高的代码效率;灵活的时钟源可以使器件达到最低的功率消耗;数字控制的振荡器(DCO)可使器件从低功耗模式迅速唤醒,在少于6us的时间内激活到活跃的工作方式6。 MSP430系列单片机具有丰富的片内外设,有极其广阔的应用范围。 MSP430系列单片机具有以下一些共同的特点。 1)低电压、超低功耗 MSP430系列单片机,在1.83.6V电压、1MHz的时钟条件下运行。耗
32、电电流(在0.1400 uA之间)因不同的工作模式而不同;具有16个中断源,并且可以任意嵌套,使用灵活方便;用中断请求将CPU唤醒只要6us,可编制出实时性特别高的源代码;可将CPU置于省电模式,以用中断方式唤醒程序。 2)强大的处理能力 MSP430系列单片机,为16位RISC结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理方法;有较高的处理速度,在8MHz晶体驱动下,指令周期为125us。这些特点保证了可编制出高效率的源程序。 3)系统工作稳定 上电复位后,首先由DC
33、OCLK启动CPU,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用作CPU时钟MCLK时发生故障,DCO会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。 4)丰富的片内外设MSP430系列单片机的各成员都集成了较丰富的片内外设。它们分别是以下一些模块的不同组合:外围模看门狗(WDT) 定时器A(Timer-A) 定时器B(Timer-B)比较器 串口0、1(USART0、1) 硬件乘法器液晶驱动器 10位/12位ADC 14位ADC(ADCl4)端口0(P0) 端口16(P1
34、P6) 基本定时器(Basic Timer)以上外围模块再加上多种存储器方式就构成了不同型号的器件。其中,看门狗可以使程序失控时迅速复位;比较器进行模拟电压的比较,配合定时器可以设计为A/D转换器;定时器具有捕获/比较功能,可用于事件计数、时序发生、PWM等;有的器件更具有两个串口,可方便地实现多机通信等应用;具有较多的并行端口,最多达68条I/O口线,而且I/O口线具有中断能力;12/14位硬件A/D转换器有较高的转换速率,最高可达200 kbps,能满足大多数数据采集应用;能直接驱动液晶多达120段。MSP430系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。 5)方便高效的
35、开发环境目前MSP430系列有4种类型器件:OTP型、FLASH型、EPROM型和ROM型。这些器件的开发手段不同。对于OTF型和ROM型的器件是用相对应的EPROM型器件作为开发片,或使用仿真器开发成功之后再烧写或掩膜芯片;而对于FLASH型则有十分方便的开发调试环境,因为器件片内有JTAG调试接口,还有可电擦写的FLASH存储器,因此采用先下载程序到FLASH内,再在器件内通过软件控制程序的运行,由JTAG接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台PC机和一个JTAG调试器,而不需要仿真器和编程器。开发语言可选择汇编语言和C语言。3.1.2 MSP430F449概述
36、MSP430F449芯片(图3.1)是MSP430芯片中功能较多的一款MCU。MSP430F449的特点是7:1)低工作电压:1.8V3.6V。2)超低功耗:活动模式280uA1Mz,2.2V;待机模式1.1uA;掉电模式(RAM数据保持)0.1uA。3)5种节电模式。4)从待机到唤醒不到6us。5)12位A/D转换器带有内部参考源、采样保持、自动扫描特性。6)16位精简指令结构(RISC),150us指令周期。7)带有3个捕获/比较器的16位定时器有:定时器A和定时器B。8)2个串行通信模块USART0/1,可软件选择UART/SPI模式。片内比较器配合其他器件可构成单斜边A/D转换器。9)
37、可编程电压检测器。10)线串行编程,不需要外部编程电压。11)驱动液晶能力可达160段。12)可编程的保险熔丝可保护设计者密码。13)FLASH存储器多达60KB,RAM多达2KB。图3.1 MSP430F449引脚图3.2 CAN总线接口设计3.2.1 CAN总线简介3.2.1.1概述对于一般控制,设备间连锁可以通过串行网络完成。因此,BOSCH公司开发了CAN总线(Controller Area Network)8,并已取得国际标准化组织认证(ISO11898),其总线结构可参照 ISO/OSI参考模型。同时,国际上一些大的半导体厂商也积极开发出支持CAN总线的专用芯片。通过CAN总线,传
38、感器、控制器和执行器由串行数据线连接起来。它不仅仅是将电缆按树形结构连接起来,其通信协议相当于ISO/OSI参考模型中的数据链路层,网络可根据协议探测和纠正数据传输过程中因电磁干扰而产生的数据错误。CAN网络的配制比较容易,允许任何站之间直接进行通信,而无需将所有数据全部汇总到主计算机后再行处理。3.2.1.2 CAN的工作原理当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案9。在同一系统中标识符是唯一的,不可能有两个站发
39、送具有相同标识符的报文。当几个站竞争总线读取时,这种配置十分重要。主机CAN控制器CAN收发器CAN收发器CAN控制器CAN收发器CAN控制器节点1节点2CAN收发器CAN控制器节点3CAN-Bus图3.2 CAN总线应用系统当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立
40、高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。3.1.2.3 位仲裁要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时,要求快速地进行总线分配。实时处理通过网络交换的紧急数据有较大的不同。一个快速变化的物理量,如汽车引擎负载,将比类似汽车引擎温度这样相对变化较慢的物理量更频繁地传送数据并要求更短的
41、延时。CAN总线以报文为单位进行数据传送,报文的优先级结合在11位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。如图3.2所示,当几个站同时发送报文时,站1的报文标识符为011111;站2的报文标识符为0100110;站3的报文标识符为0100111。所有标识符都有相同的两位01,直到第3位进行比较时,站1的报文被丢掉,因为它的第3位为高,而其它两个站的报文第3位为低。站2和站3报文的4、5、6位相同,直到第7位时,站3的报文才被丢失。注意,总线中的信号持续跟踪最后获得总线读取权的站的报文。在此例中,站2的
42、报文被跟踪。这种非破坏性位仲裁方法的优点在于,在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送。CAN具有较高的效率是因为总线仅仅被那些请求总线悬而未决的站利用,这些请求是根据报文在整个系统中的重要性按顺序处理的。这种方法在网络负载较重时有很多优点,因为总线读取的优先级已被按顺序放在每个报文中了,这可以保证在实时系统中较低的个体隐伏时间。对于主站的可靠性,由于CAN协议执行非集中化总线控制,所有主要通信,包括总线读取(许可)控制,在系统中分几次完成。这是实现有较高可靠性的通信系统的唯
43、一方法。3.2.1.4 CAN的报文格式在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一不同是标识符(ID)长度不同,标准格式11位,扩展格式29位。在标准格式中,报文的起始位称为帧起始(SOF),然后是由11位标识符和远程发送请求位(RTR)组成的仲裁场。RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。控制场包括标识符扩展位(IDE),指出是标准格式还是扩展格式。它还包括一个保留位(ro),为将来扩展使用。它的最后四个字节用来指明数据场中数据的长度(DLC)。数据场范围为08个字节,其后有一个检测数据错误的循环冗余检查(CRC)。应答场(ACK)包括应答位和应
44、答分隔符。发送站发送的这两位均为隐性电平(逻辑1),这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文。报文的尾部由帧结束标出。在相邻的两条报文间有一很短的间隔位,如果这时没有站进行总线存取,总线将处于空闲状态。3.2.1.5 数据错误检测不同于其它总线,CAN协议不能使用应答信息。事实上,它可以将发生的任何错误用信号发出。CAN协议可使用五种检查错误的方法,其中前三种为基于报文内容检查。1)循环冗余检查(CRC)在一帧报文中加入冗余检查位可保证报文正确。接收站通过CRC可判断报文是否有错。2)帧检查这种方法通过位场检查帧的格式和
45、大小来确定报文的正确性,用于检查格式上的错误。3)应答错误如前所述,被接收到的帧由接收站通过明确的应答来确认。如果发送站未收到应答,那么表明接收站发现帧中有错误,也就是说,ACK场已损坏或网络中的报文无站接收。CAN协议也可通过位检查的方法探测错误。4)总线检测有时,CAN中的一个节点可监测自己发出的信号。因此,发送报文的站可以观测总线电平并探测发送位和接收位的差异。5)位填充一帧报文中的每一位都由不归零码表示,可保证位编码的最大效率。然而,如果在一帧报文中有太多相同电平的位,就有可能失去同步。为保证同步,同步沿用位填充产生。在五个连续相等位后,发送站自动插入一个与之互补的补码位;接收时,这个
46、填充位被自动丢掉。例如,五个连续的低电平位后,CAN自动插入一个高电平位。CAN通过这种编码规则检查错误,如果在一帧报文中有6个相同位,CAN就知道发生了错误。如果至少有一个站通过以上方法探测到一个或多个错误,它将发送出错标志终止当前的发送。这可以阻止其它站接收错误的报文,并保证网络上报文的一致性。当大量发送数据被终止后,发送站会自动地重新发送数据。作为规则,在探测到错误后23个位周期内重新开始发送。在特殊场合,系统的恢复时间为31个位周期。但这种方法存在一个问题,即一个发生错误的站将导致所有数据被终止,其中也包括正确的数据。因此,如果不采取自监测措施,总线系统应采用模块化设计。为此,CAN协议提供一种将偶然错误从永久错误和局部站失败中区别出来的办法。这种方法可以通过对出错站统计评估来确定一个站本身的错误并进入一种不会对其它站产生不良影响的运行方法来实现,即站可以通过关闭自己来阻止正常数据因被错误地当成不正确的数据而被终止。3.2.1.6 CAN的可靠性为防止汽车在使用寿命期内由于数据交换错误而对司机造成危险,汽车的安全系统要求数据传输具有较高的安全性。如果数据传输的可靠性