CAN总线的工业测控系统的应用研究 精品.doc_第1页
CAN总线的工业测控系统的应用研究 精品.doc_第2页
CAN总线的工业测控系统的应用研究 精品.doc_第3页
CAN总线的工业测控系统的应用研究 精品.doc_第4页
CAN总线的工业测控系统的应用研究 精品.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题 目:基于CAN总线的分布式工业测控系统的应用研究目录摘要、关键词绪论.11 CAN总线的技术规范及结构 .41.1 CAN总线的概述及特点 .41.2 CAN通信协议 .51.3 CAN通信器件支持 .61.3.1 CAN控制器SJA1000 .61.3.2 CAN总线收发器82C250 .102 基于CAN总线的工业测控系统的设计与实现 .112.1 系统总体方案设计 .112.2 系统硬件设计 .112.2.1 上位机CAN总线通信适配卡设计 .112.2.1.1 CAN通信控制电路设计 .122.2.1.2 双口RAM控制电路设计 .132.2.1.3 复位及看门狗电路设计 .142.2.2 智能节点设计 .152.3 系统软件设计 .162.3.1 CAN适配卡软件设计 .162.3.2 智能节点软件设计 .192.3.2.1 初始化子程序 .192.3.2.2 发送子程序 .202.3.2.3 接收子程序 .222.3.2.4 数据溢出处理子程序 .23结束语 .26致谢.27参考文献 .28附录 .29附录1 CAN适配卡硬件电路图 .29附录2 CAN适配卡参考汇编程序清单 .30附录3 智能节点参考汇编程序清单.35绪论研究背景及意义随着控制、计算机、通信和网络技术的发展,数据交换技术正在迅速覆盖着工业控制的各个层次,从工厂的现场设备层到系统的控制和管理层。信息技术的飞速发展,引起了自动化系统结构的变革,组成以网络集成自动化系统为基础的企业信息系统。现场总线是在20世纪80年代中期在国际上发展起来的。随着微处理器与计算机功能的不断增强和价格的急剧降低,计算机与计算机网络系统得到迅速发展,而处于生产过程底层的测控自动化系统,传统的方法采用一对一连线,用电压、电流的模拟量信号进行测量控制,或者采用自封闭式的集散系统,难以实现设备之间以及系统与外界之间的信息交换,使得自动化系统成为“信息孤岛”。要实现整个企业的信息集成,要实施综合自动化,就必须设计出一种能够在工业现场环境运行的、性能可靠、造价低廉的通信系统,形成工厂底层网络,完成现场自动化设备之间的多点数字通信,实现底层现场设备之间以及生产现场与外界的信息交换。现场总线就是在这种实际需求的驱动下应运而生的。它作为过程自动化、制造自动化、楼宇自动化、交通等领域现场智能设备之间的互连通信网络,沟通了生产过程现场控制设备之间以其更高控制管理层网络之间的联系,为彻底打破自动化系统的“信息孤岛”1创造了条件。现场总线控制系统既是一个开放的通信网络,又是一种全分布式控制系统2。根据IEC标准和现场总线基金会的定义:现场总线是连接智能现场设备和自动化系统的数字式双向传输、多分支结构的通信网络。这个网络使用一对简单的双绞线传输现场总线仪表与控制室之间的通信信号,而且还可以对现场总线仪表如:现场总线使用的智能传感器变迭器、智能执行器(如智能调节阀、电子马达)、可编程控制器、可编程调节器等装置均称为现场总线仪表供电。目前国际上有40多种现场总线,但影响较大的主要有Foundation Fieldbus(基金会现场总线)、CAN(控制器局域网络)、PROFIBUS(过程现场总线)、LonWorks(局域操作网络)等1。现场总线的主要优点2:(1)增强了现场级信息集成能力现场总线可以从现场设备获取大量丰富信息,能够更好的满足工厂自动化系统的信息集成要求。现场总线是数字化通信网络,它不单纯取代4到20mA信号,还可以实现设备状态、故障、参数信息传送。系统除了完成远程控制,还可完成远程参数化工作。(2)开放式、互操作性、互换性、可继承性不同厂家产品只要使用同一总线标准,就具有互操作性、互换性,因此设备具有很好的可集成性。系统为开放式,允许其他厂商场上将自己专长的控制技术,如控制算法、工艺流程、配方等集成到通用系统中去,因此,市场上将有许多面向行业特点的监控、测控系统。(3)系统可靠性高、可维护性好基于现场总线的自动化测控系统采用连接方式替代一对一I/O连线,对于大规模I/O系统来说,减少了由接线点造成的不可靠因素。同时系统具有现场级设备的在线故障诊断、报警、记录功能,可完成远程设备的参数设定、修改等参数化工作,也增强了系统的可维护性。(4)降低了系统及工程成本对大范围、大规模I/O的分布式系统来说,省去了大量的电缆、I/O模块及电缆敷设工程费用,降低了系统及工程成本。现场总线把单个分散的测控设备变成网络节点,以现场总线为纽带,把它们连接成可以相互沟通信息、共同完成自控任务的网络系统与测控系统。因而研究基于现场总线技术的智能测控节点成了研究测控的新技术和新发展的重点。由于现场总线适应了工业控制系统向分散化、网络化、智能化发展的方向,它一经产生便成为全球工业自动化技术的热点,受到全世界的普遍关注。现场总线的出现,导致目前生产的自动化仪表、集散控制系统、可编程控制器在产品的体系结构、功能结构方面的教大变革,自动化设备的制造厂家被迫面临产品更新换代的又一挑战。因而对智能测控节点的研究既是对先进技术应用的研究,也是开发市场的需要。国内外研究现状和发展趋势目前现场总线在美国和欧洲等发达国家和地区发展迅速,并已经有较多的应用范例。在亚洲远东地区,许多大学和研究机构正在利用他们自身的条件帮助用户提高对现场总线技术的认识和理解。根据市场的需求和技术的发展趋势,国外各大仪表制造厂都把发展现场总线技术和产品放在技术进步的第一步3。CAN (Controller Area Network) 总线又称控制器局域网,是一种有效支持分布式控制或实时控制的串行通信网络,最初由德国Bosch公司80年代用于汽车内部测试和控制仪器之间的数据通信。由于其卓越的性能,极高的可靠性,独特灵活的设计和低廉的价格,现已广泛应用于工业现场控制、智能大厦、小区安防、交通工具、医疗仪器、环境监控等众多领域。CAN已被公认为几种最有前途的现场总线之一4。CAN总线规范已被ISO国际标准组织制订为国际标准ISO11898,并得到了Motorola、Intel、Philips等大半导体器件生产厂家的支持,迅速推出各种集成有CAN接口的产品。截至2000年,带有CAN的微处理器芯片总量已经超过1亿片,因此在接口芯片技术方面CAN已经遥遥领先于其他所有现场总线。正是由于CAN总线的诸多优势和应用的便捷性,所以在组建现代工业测控系统中具有较大的优势。作为一种重要的现场总线,CAN也在朝标准化的方向完善和发展。目前,已经出现了CAN协议的国际标准化ISO/DISI1898(通信速率小于等于1Mbps)和ISO/DIS(通信速率小于等于125Kbps) CANopen协议5,CAN协议被国际标准化组织承认,进一步促进了CAN总线在各种测控领域中的应用。总的说来,CAN总线有强大的生命力,作为刚刚在国内兴起的技术手段,它将随着现代科技的发展,以其独到之处,成为现场测控网络,乃至更广范围内控制网络的明智选择。在我国工业控制系统,低端设备的控制系统,大多是分散式的,各测控点之间不能沟通,由操作人员来控制其协调工作,效率十分低下;中端设备大多为集中式控制系统控制,但是一旦主机出现故障,就会造成整个控制回路瘫痪。在这种应用弊端下,现场总线的出现和广泛应用就可以很好的解决这个问题。因此可以看出,现场总线的出现是顺应了工业控制体系完善发展的趋势的,具有良好的推广价值和研究价值的我国的现场技术起步很晚,起点也较低,正处于现场总线技术的初级阶段。我国现场总线的市场是巨大的,据估计近期可以达到2到3亿美元,而其潜力更令国外开发商垂涎。面对国外各路总线正以迅猛之势进军中国,尤其是中国加入WTO之后,如果迎接挑战,最大限度的跟上国际技术发展的步伐,积极吸收和引进国外现场总线的先进技术和管理经验,是急需解决的问题。在已过去的六七年里,CAN总线技术的应用水平得以不断提高,我国工业自动化水平也有很大发展。CAN总线技术必然会随着现场总线时代的到来以及我国不断的经济改革以及市场开放的巨大需求而得以更加深入的理解和更为广泛的应用。本文主要工作本文将对CAN总线的特点、CAN总线通信协议及CAN支持器件进行系统地阐述。然后根据测控系统的特点,给出基于CAN总线测控网络的总体设计方案、系统结构。接着根据系统的实际需要,主要设计PC机通信适配卡和智能节点。对适配卡和测控节点的功能模块组成,各个模块的工作原理、硬件设计、软件设计以及他们的实现方法,进行了较为深入的探讨和详细的论述。 1. CAN总线的技术规范及结构1.1 CAN总线的概述及特点控制器局域网CAN(Controller Area Network),是一种有效支持分布式控制或实时控制的串行通信网络,最初由德国Bosch公司80年代用于汽车内部测试和控制仪器之间的数据通信。由于其卓越的性能,极高的可靠性,独特灵活的设计和低廉的价格,现已广泛应用于工业现场控制、智能大厦、小区安防、交通工具、医疗仪器、环境监控等众多领域。目前,许多数字化分布式测控系统都是基于RS-485网络构建的,这种基于RS-485网络的分布式测控系统由于具有结构简单、抗干扰能力强、传输距离远、成本低等优点,而被广泛应用于各种实时分布式测控现场。但在构建复杂并且存在强干扰的实时测控网络时,必须保证系统具有良好的可靠性、抗干扰性和实时性,以及足够的通信距离。而RS-485本身具有诸多缺点,不能给出良好的解决办法。RS-485仅仅是一种半双工式通信的电气协议,其通信介质为双绞线,信号在传输的双绞线上呈现一对相异的电平信号。由RS-485构成的分布式测控系统,任何时候,只能允许一个节点向网络系统发送数据,系统中每一个节点的RS-485驱动器都有一个发送使能端DE。DE的作用是驱动器在发送数据时,控制该发送单元有效,使其向网络中的节点发送数据;数据发送完成后,则禁止驱动器的发送单元工作,使其处于高阻状态,从而影响网络中的数据传输。如果发生故障,出现几个节点同时向网络发送数据,使整个网络回路呈现短路状态,最终损坏其节点的驱动器。如果网络中的节点太多,超过了RS-485驱动器的负载能力,或者各节点之间的距离大于RS-485规定的距离,则必须使用中继器来增加网络中的节点数或延长各节点之间的距离。由于RS-485只是一种电气协议,它本身并未提供可靠高效的通信协议的实现,加之这种网络的工作方式是命令响应型,因此,为了保证数据通信的准确性和系统运行的可靠性,就必须编制完善的调度程序和通信协议,这就增加了系统开发的难度和开发周期。对于这些问题,RS-485网络本身无法给出良好的解决办法。而新兴的CAN总线技术则使这些问题得到了较好的解决,CAN具有一系列的优点如下:(1)废除了传统的站地址编码,取而代之对通信数据块进行编码,采用这种方法可使网络内节点个数在理论上不受限制,可实现多主工作方式,数据收发方式灵活,可实现点对点、一点对多点及全局广播等多种传输方式;可将DCS结构中主机的常规测试与控制功能分散到各个智能节点,节点控制器把采集到的数据通过CAN适配器发送到总线,或者向总线申请数据,主机便从原来繁重的底层设备监控任务中解放出来,进行更高层次的控制和管理功能,比如故障诊断、优化协调等;(2)提供高速数据传送,在短距离(40m)条件下具有高速(1Mbit/s)数据传输能力,而在最大距离10000m时具有低速(5kbits/s)传输能力,极适合在高速的工业应用上;(3)采用非破坏性基于优先权的总线仲裁技术,具有暂时错误和永久性故障节点的判别及故障节点的自动脱离功能,使系统其它节点的通信不受影响;同时CAN具有出错帧自动重发功能,可靠性高;(4)信号传输用短帧结构(8字节),可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,实时性好;(5)不关闭总线即可任意挂接或拆除节点,增强了系统的灵活性和可扩展性;(6)采用统一的标准和规范,使各设备之间具有较好的互操作性和互换性,并可在同一网络上连接多种不同功能的传感器(如位置、温度或压力等),系统的通用性好;(7)通讯介质可采用双绞线,无特殊要求;现场布线和安装简单,易于维护,经济性好。总之,CAN总线具有实时性强、可靠性高、结构简单、互操作性好、价格低廉等优点,克服了传统的工业总线的缺陷,是一种有效的解决方案。1.2 CAN通信协议为使设计透明灵活,遵循ISO/OSI标准模型,一般现场总线采用三层网络结构物理层、数据链路层和应用层。因为面向控制的信息比较简单,但需要快速而可靠地到达目的地,七层模式使数据转换变慢,会滞后实时控制的时间要求,七层网关的网络接口成本也较高,同时现场设备也不需要OSI地址。数据传输中流量和差错控制在数据链路层执行。报文的可靠传输在数据链路层或应用层执行。CAN总线通信接口中集成了CAN协议的物理层和数据链路层。CAN通信模型如表1-1所示。数据链路层 (包括逻辑链路控制子层LLC和媒体访问控制子层MAC) LLC子层的主要功能是:为数据传送和远程数据请求提供服务,确认由LLC子层接收的报文实际己被接收,并为恢复管理和通知超载提供信息。MAC子层的功能主要是传送规则,亦即控制帧结构、执行仲裁、错误检测、出错标定和故障界定6 。MAC子层也要确定,为开始一次新的发送,总线是否开放或者是否马上开始接收。位定时特性也是MAC子层的一部分。物理层的功能是有关全部电气特性不同的节点间的实际传输7 8。CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模式(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。随着CAN在各种领域的应用和推广,对其通信格式的标准化提出了要求。为此,1991年Philips Semiconductors制定并发布了CAN的技术规范。CAN的规范定义了模型的最下面两层:数据链路层和物理层。而对应用层没有具体规定,因此,在具体使用时还需根据不同的器件定义相应的应用接口,这给使用者提出了较高的要求,给CAN总线的推广带来一定的困难。针对上述情况,国际CAN用户协会CiA(CAN in Automation)对应用层进行了开发和规划,形成了一系列CAN家族,充分释放了CAN的巨大的内在潜力,同时为CAN技术的推广起到了极大的推动作用。CAN的高层协议(可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。可以由CAN用户自己定义成适合特别工业领域的任何方案。在CAN的基础上,目前在应用层比较常用的协议有:CANOpen、CANKingdom和DeviceNet9。其中CANOpen、CANKingdom在欧洲应用比较多,而DeviceNet在美洲应用较广。表1-1 CAN通信模型1.3 CAN通信器件支持目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如82C200,SJA1000及Intel 82526/82527等,这类独立的CAN控制器需要与微控制器MCU和总线收发器相连后接入总线网络;另一类是MCU内部集成有CAN的微控制器,如Motorola公司的MC68HC912DG128A、Philips公司的P87C591、ATMEL公司的AT89C51CC01/2、Intel公司的TN87C196CA/B以及Cygnal公司的C8051F040等。与CAN总线收发器连接后直接接入总线网络。常用的CAN总线收发器主要有Philips公司的PCA82C250/1/2、TJA1040/1和TJA1050/3/4,它可以提高总线的差动发送和接收能力,与ISO11898标准完全兼容,并有高速、斜率控制和待机三种工作方式,可根据实际情况选择。本文将以SJA1000作为CAN总线控制器,以82C250作为总线收发器,围绕其进行系统的应用研究。1.3.1 CAN控制器SJA1000 SJA1000为独立的CAN总线微控制器,是PHILIPS公司的PCA82C200的替代产品,可完成CAN总线的物理层和数据链路层的所有功能。SJA1000在软件和引脚上都是与它的前一款PCA82C200独立CAN控制器兼容的,在此基础上增加了很多新的功能。SJA1000的引脚功能如表1-2所示。为了实现软件兼容,SJA1000采用了两种工作方式:BasicCAN方式(PCA82C200兼容方式)、PeliCAN方式(扩展特性方式)。工作方式通过时钟分频寄存器中的CAN方式位来选择。上电复位默认工作方式是BasicCAN方式。BasicCAN和PeliCAN方式的区别如下:在PeliCAN方式下,SJA1000有一个重新设计的含很多新功能的寄存器组。SJA1000包含PCA82C200中的所有位,同时增加了一些新的功能位。PeliCAN方式支持CAN2.0B协议规定的所有功能(29位的标识符)。SJA1000的主要新功能如下: 标准结构和扩展结构报文的接收和发送 64字节的接收FIFO 标准和扩展帧格式都具有单/双接收滤波器含接收屏蔽和接收码寄存器 可进行读/写访问的错误计数器 可编程的错误报警限制 最近一次的错误代码寄存器 每一个CAN总线错误都可以产生错误中断 具有丢失仲裁定位功能的丢失仲裁中断 单发方式当发生错误或丢失仲裁时不重发 只听方式监听CAN总线无应答无错误标志 支持热插拔无干扰软件驱动位速率检测 硬件禁止CLKOUT输出表1-2 SJA1000引脚功能图1-1 SJA1000内部结构图SJA1000的内部结构如图1-1所示,主要由接口管理逻辑IML(Interface Management Logic)、信息缓冲器(含发送A过滤器ASP(Accept Sift Processor)、位时序处理逻辑BTL(Bit Time Logic)、错误管理逻辑EML(Error Management Logic)、内部振荡器及复位电路等构成。IML接收来自CPU的命令,控制CAN寄存器的寻址并向控制提供中断信息及状态信息。CPU的控制经IML把要发送的数据写入TXB、TXB中的数据由BSP处理后经BTL输出到CAN BUS。BTL始终监视CAN BUS,当检测到有效的信息头“隐性电平一控制电平”的转换时启动接收过程,接收的信息首先要由位流处理器BSP处理,并由ASP过滤,只有当接收的信息的识别码与ASP检验相符时,接收信息才最终被写入RXB或RXFIFO中。RXFIFO最多可以缓存64字节的数据,该数据可被CPU读取。EML负责传递层中调制器的错误管制,它接收BSP的出错报告,促使BSP和IML进行错误统计。SJA1000的寄存器结构及地址分配如表1-3所示:表1-3 BASIC CAN模式下的SJA1000的寄存器结构 表1-3是工作在BASIC CAN模式下的SJA1000的寄存器结构及地址分配表。CAN控制器工作模式的设定、数据的发送和接收等都是通过这些寄存器来实现的。时钟分频寄存器OCR用于设定SJA1000上作于BASIC CAN还是PeliCAN,还用于CLKOUT引脚输出时钟频率的设定,在上电初始化控制器时必须首先设定:在工作模式下,控制寄存器CR用于控制CAN控制器的行为,可读可写;命令寄存器CMR只能写;状态寄存器SR只能读;而IR、ACR、AMR、BTRO、BTR1、OCR在工作模式下读写无意义1011。CAN信息帧格式及单滤波方式的验收滤波器流程图如图1-2所示。格式信息内容如下:FFRTRXXDLC.3DLC.2DLC.1DLC.0FF=1,本帧为标准帧;FF=0,本帧为扩展帧。RTR=1,为远程帧;RTR=0,为数据帧。DLC.3DLC.0表示数据字节的长度,最大值为8。验收滤波原理:初始化时将标识符ID写入验收码寄存器ACR中,验收屏蔽寄存器AMR为0的位,ACR和CAN信息帧的对应位必须相等才算验收通过,AMR为1的位,CAN信息帧的对应位不验收。验收时对于标准帧;11位标识符和RTR对应ACR0的8位和ACR1的高4位。对于扩展帧:29位标识符和RTR对应4个ACR,只是ACR3和AMR3的低2位未用。图1-2 CAN帧格式及验收滤波器流程SJA1000的应用构成如下图1-3所示。图1-3 SJA1000应用结构图1.3.2 CAN总线收发器82C250CAN总线收发器的主要功能是增大通信距离,提高系统的瞬间抗干扰能力,保护总线等,82C250是CAN控制器和物理总线间的接口,它最初为汽车高速通信(最高达1Mbps)应用设计,该器件可以提供对总线的差动发送能力和对CAN控制器的差动接收能力。82C250的主要特性如下12: (1)与ISO11898标准完全兼容; (2)高速(最高达1 Mbps ); (3)具有抗环境的瞬间干扰,保护总线能力; (4)降低射频干扰的斜率控制; (5)低电流待机方式; (6)某一个节点掉电不会影响总线; (7)可有110个节点相连接; (8)带有CAN总线差动接收器和差动驱动器。2. 基于CAN总线的工业测控系统的设计与实现2.1 系统总体方案设计依据CAN总线的特性,本着可靠、通用、性价比高、实时等原则,确定出整个CAN总线分布式测控系统将由上位计算机、CAN总线适配卡和现场数据采集智能节点三部分组成。上位监控计算机采用PC兼容机,主要负责对系统数据的接收与管理、控制命令的发送以及各控制单元动态参数和设备状态实时显示;CAN总线适配卡可使PC机方便地连接到CAN总线上,实现CAN与PC机的高速数据交换;智能传感器节点和最小系统节点进行现场数据采集。传输介质选用双绞线。系统总体结构如图2-1所示。图2-1系统总体结构框图2.2 系统硬件设计根据确定的系统方案,系统的硬件部分主要是完成CAN总线适配卡和智能节点的设计。2.2.1 上位机CAN总线通信适配卡设计在CAN总线通信适配卡的设计上,我将设计一种ISA总线卡,将它插在计算机的扩展槽内,由它负责将计算机内的数据和控制参数迅速传给各个指定的CAN网络节点,也负责将各CAN网络节点的数据传输给上位计算机做进一步处理。CAN适配卡的硬件组成框图如图2-2所示,由ISA接口、双口RAM、CPU、CAN通信控制器SJA1000、CAN总线接口82C250等组成。图2-2CAN适配卡硬件框图2.2.1.1 CAN通信控制电路设计CAN通信控制电路中CAN控制器采用SJA1000,微处理器使用廉价的ATMEL公司的AT89C51单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。CAN通信控制电路如图2-3所示。为了增强CAN总线适配卡的抗干扰能力,SJA1000的TX0和RXO并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连,这样就很好地实现了总线上各CAN节点间的电气隔离。不过,应该特别说明的一点是光耦部分电路所采用的两个电源VCC和VDD必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块或带多5V隔离输出的开关电源模块。实现这些部分虽然增加了节点的复杂,但是却提高了节点的稳定性和安全性。82C250与CAN总线的接口部分也采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5的电阻与CAN总线相连,电阻可起到一定的限流作用,保护82C250免受过流的冲击。CANH和CANL与地之间并联了两个30pF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。另外,在两根CAN 总线接入端与地之间分别反接了一个保护二极管,当CAN总线有较高的负电压时通过二极管的短路可起到一定的过压保护作用。82C250的RS脚上接有一个斜率电阻,电阻大小可根据总线通讯速度适当调整,一般在16K140K之间4。图2-3CAN通信控制电路2.2.1.2 双口RAM控制电路设计要实现PC机和CAN控制器之间的数据传送,必须在PC机和适配卡上的MCU之间建立起双向的数据交换通道。通过ISA总线实现单片机系统与主机之间的数据交换有多种实现方法。本适配卡采用集成双口RAM实现数据交换。双口RAM是一种性能优越的快速通信器件,它能提供两种完全独立的端口,每个端口都有完整的地址线、数据线和控制线,对于器件两边的使用者CPU而言,它与一般的RAM无多大区别,只有在两边同时读写同一地址单元时,才会出现竞争现象。在本CAN通信适配卡中,利用双口RAM IDT7132来建立双向数据交换通道,以实现PC 机和CAN控制器之间的数据传送。PC机与扩展存储器的接口有两种方法:一种是把双口RAM当成外部设备,使用端口I/O指令进行访问。这种方法一次只能传送一个字节(或字),因而传送速度较慢,另一种是内存映像法,即把双口RAM地址配置于PC机主存储器的高端(一般为C0000HDFFFFH),以使PC机像访问主存储器一样访问双口RAM,同时使所有能够访问主存储器的指令也可以以同样的方式访问双口RAM;另一种是内存映像法,它可以以字符块为单位进行传送,因而可以实现快速访问双口RAM。正是基于这些优点,在本适配卡设计中采用了内存映射的存储器寻址方式。图2-4为双口RAM的控制电路. 其访问原理为:ISA总线共有24条地址线,可寻址16MB存储空间,地址线A12A19接到比较器74LS688的P0P7口,比较器的Q0Q5接一个六位的拨码开关,Q6、Q7接高电平。74LS688的输出接可编程逻辑器件GAL16V8。这样,当P07=Q07时,74LS688的输出为低电平,地址选择有效。另外,通过设置拨码开关,用户可以选择双口RAM在PC机存储器中的初始地址,如设置拨码开关为Q05=001011,则双口RAM在ISA总线的初始地址为D0000H。这样,通过可编程逻辑器件GAL16V8便可将ISA总线的各种信号进行逻辑组合,以形成三个控制信号,从而实现PC机对双口RAM的访问14。这三个信号为:图2-4双口RAM控制电路2.2.1.3 复位及看门狗电路设计为了监控系统的工作状况及正常运行,由MAX813组成硬件复位及看门狗电路。如图2-5所示。MAX813的主要特点如下16:(1)系统上电、掉电以及供电电压降低时,第7脚RESET产生复位输出,复位脉冲宽度的典型值为200ms,高电平有效,复位门限为4.65V。(2)如果在1.6s内没有触发该电路(即第6路无脉冲输入),则第8脚/WDO输出一个低电平信号,即看门狗电路输出信号。(3)手动复位输入,低电平有效,即第1脚/MR输入一个低电平,则第7脚RESET产生复位输出。(4)具有1.25V门限值检测器,第4脚PFI为输入,第5脚/PFO为输出。实际应用时,将第1脚/MR与第8脚/WDO相连,第7脚RESET接CPU的复位脚,第6脚WDI与CPU的P1.1相连。在工作过程中,P1.1不断输出脉冲信号。如果因某种原因CPU进入死循环,则P1.1无脉冲输出。于是1.6秒后在MAX813的第8脚/WDO输出低电平,该低电平加到第1脚/MR,使MAX813产生复位输出,使CPU有效复位,摆脱死循环的困境。另外,当电源电压低于门限值4.65V时,MAX813也产生复位输出,CPU处于复位状态,不执行任何指令,直到电源电压恢复正常,因此可有效防止因电源电压较低时CPU产生错误的动作。图2-5复位及看门狗电路2.2.2 智能节点设计本文中所设计的CAN总线系统智能节点采用AT89C51作为节点的微处理器。在CAN总线通信接口中采用PHILIPS公司的SJA1000和82C250。如图2-6所示为CAN总线系统智能节点硬件电路原理图4。从图中可以看出电路主要由四部分所构成:微控制器AT89C51、独立CAN通信控制器SJA1000、 CAN总线收发器82C250和高速光电耦合器6N137。微处理器89C51负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。SJA1000的AD0、AD7连接到89C51的P0口;CS连接到89C51的P2.4,P2.4为0的CPU片外存贮器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读写操作。SJA1000的RD、WR、ALE分别与89C51的对应引脚相连。INT接89C51的INT0,89C51也可通过中断方式访问SJA1000。与PC机CAN总线适配卡的设计思路相同,为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RXO并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连,这样就很好地实现了总线上各CAN节点间的电气隔离。不过,应该特别说明的一点是光耦部分电路所采用的两个电源VCC和VDD必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块或带多5V隔离输出的开关电源模块。实现这些部分虽然增加了节点的复杂,但是却提高了节点的稳定性和安全性。82C250与CAN总线的接口部分也采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5的电阻与CAN总线相连,电阻可起到一定的限流作用,保护82C250免受过流的冲击。CANH和CANL与地之间并联了两个30pF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。另外,在两根CAN 总线接入端与地之间分别反接了一个保护二极管,当CAN总线有较高的负电压时通过二极管的短路可起到一定的过压保护作用。82C250的Rs脚上接有一个斜率电阻,电阻大小可根据总线通讯速度适当调整,一般在16K140K之间4。图2-6CAN总线系统智能节点电路2.3 系统软件设计系统软件主要分CAN适配卡软件和智能节点两部分。2.3.1 CAN适配卡软件设计适配卡主要承担上位计算机和CAN节点之间的数据转发任务,其软件设计包括两部分。一是PC机端的应用程序接口(API)函数,采用可视化的编程工具Builder C+编写。其软件功能如图2-7所示18。图2-7 上位机软件功能框图二是适配卡上单片机端的程序设计,采用汇编语言编写。系统的程序设计为主程序、INT0和INT1中断服务程序三部分。主程序主要完成对SJA1000的初始化。SJA1000的初始化是通过在复位期间对模式寄存器MOD(CAN地址为0,滤波和复位等方式选择)、时钟分配寄存器CDR(CAN地址为31H,选择PeliCAN模式及时钟输出频率)、接收代码寄存器ACR0ACR3(复位模式CAN地址为16H19H,初始化时写入ID标识符)、接收屏蔽寄存器AMR0AMR3(复位模式CAN地址为20H23H,初始化时设置是否屏蔽ACR相应位)、总线定时寄存器BTR0(CAN地址为06H,设置波特率和同步跳转宽度)和BTR1(CAN地址为07H,定义每个位周期长度、采样位置和每个采样点的采样数目)、输出控制寄存器OCR(CAN地址为08H,选择正常输出控制模式)等写入控制字来确定其工作方式的。主程序流程图如图2-8所示。图2-8 主程序流程图INT1中断请求是由PC机将数据写入双口RAM触发的。在INT1中断服务程序中,首先读取双口RAM中的数据,然后再将数据转发给CAN控制器SJA1000,具体参见流程图2-9。图2-9 INT1中断服务程序流程图INT0中断请求是由SJA1000发送或接收完1帧信息,或接收数据超载,或产生错误中断等情况下产生的。INT0中断服务程序流程如图2-10所示。图2-10 INT0中断服务程序流程图2.3.2 智能节点软件设计CAN 总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。熟悉这三部分程序的设计就能编写出利用CAN总线进行通信的一般应用程序。当然要将CAN总线应用于通信任务比较复杂的系统中,还需详细了解有关CAN总线错误处理、总线脱离处理、接收滤波处理、波特率参数设置和自动检测以及CAN 总线通信距离和节点数的计算等方面的内容。2.3.2.1 初始化子程序SJA1000的初始化只有在复位模式下才可以进行。初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。初始化程序的流程图如图2-11所示。初始化中要注意一些具体的细节:(1)对接收屏蔽寄存器(AMR)、接收代码寄存器ACR进行写操作是要界定对什么样的报文予以接收,因此有时称它们为验收滤波器,当满足以下两个条件之一,并存在空的接收缓冲器(RBF)时,完整的报文才可被正确接收。条件之一:接收代码寄存器ACR与报文标识符的高8位在AMR为 “0”的那些位(即相关位)上对应相等。条件之二:接收屏蔽寄存器AMR=0FFH,即ACR的所有位均为不相关(或屏蔽)位。这两个寄存器也是编排标识符的基本依据。(2)总线定时寄存器BTR0进行操作,可决定波特率预分频器(BRP)和同步跳转宽度(SJW)的数值;对BTR1 进行写操作,可决定位周期的宽度、采样点的位置及在每个采样点进行采样的次数。这两个寄存器的内容可惟一确定波特率及同步跳转宽度。(3)硬件通过RX接地激活SJA1000的比较器旁路功能。在软件上应将时钟分频寄存器的CBP=1。图2-11 初始化程序流程图2.3.2.2 发送子程序信息的发送是由CAN控制器SJA1000独立完成的。主控制器(AT89C51)必须将待发送的数据按特定格式组合成一帧报文,送入SJA1000发送缓存区中,然后将命令寄存器里的发送请求标志置位。发送过程可由SJA1000的中断请求或控制段的查询状态标志控制完成。(1)中断控制的发送要利用中断来控制发送,首先应该使CAN控制器SJA1000的接收中断和主控制器AT89C51的外部中断使能。SJA1000的中断使能标志是位于BasicCAN模式的控制器寄存器和PeliCAN模式的中断使能寄存器中。当SJA1000正在发送信息时,主控制器不能向发送缓冲区写信息,所以在写一条新信息到发送缓冲器之前,主控制器必须检查寄存器的发送缓冲器状态标志TBS,以控制以下两种情况:发送缓冲区被锁定主控制器将新信息暂时存放在它自己的存储器里,并设置一个标志,表示一条信息正在等待被发送,它会一直保存到软件来处理这些临时存储的信息。该存储器可设计为存储几条等待被发送的信息。信息发送的开始会在中断服务程序中处理(程序在当前运行发送的末端被初始化)。CAN控制器收到中断(见下图的中断处理过程)时,主控制器会检查中断类型,如果是发送中断,它会检查是否有更多的信息要发送,一个正在等待的信息会从临时存储器拷贝到发送缓冲器,表示要发送更多信息的标志被清除,置位命令寄存器的发送请求TR标志,SJA1000将启动发送。发送缓冲器被释放主控制器将新信息写入发送缓冲器,并置位命令寄存器的标志发送请求TR,这将导致SJA1000启动发送。在发送成功结束时CAN控制器会产生一个发送中断。发送信息的中断控制流程如图2-12所示。图2-12 发送一条信息(中断控制)的流程(2)查询控制的发送流程图如图2-13所示。CAN控制器的发送中断对这种发送控制无效。只要SJA1000正在发送信息,发送缓冲器就被锁定,因此在将新信息放进发送缓冲器之前,主控制器必须检查状态寄存器的“发送缓冲器状态”标志TBS。发送缓冲器被锁定:定期查询状态寄存器,主控制器等待,直到发送缓冲器被释放。发送缓冲器被释放:主控制器将新信息写入发送缓冲器并置位命令寄存器中的“发送请求”标志TR,此时SJA1000将启动发送。图2-13 查询方式发送子程序流程图2.3.2.3接收子程序信息的接收也由CAN控制器SJA1000独立完成。SJA1000把收到的信息放到接收缓冲器中,然后对状态寄存器的接收缓冲器状态标志RBS和接收中断标志RI置位。这样主控制器就可以通过这两个信息知道SJA1000接收到数据,并将这条信息发送到本地的信息存储器,然后释放接收缓冲器,并对接收到的信息进行操作。接收过程同样SJA1000的终端请求或查询控制段状态标志来控制。(1)查询控制的接收流程图如图2-14所示。CAN控制器在这种类型下接收中断禁能。主控制器查询读SJA1000的状态寄存器,检查接收缓冲状态标志RBS,看是否收到一个信息,这些标志的定义位于控制段的寄存器中。接收缓冲器状态标志=“空”,也就是没有收到信息。主控制器继续当前的任务直到收到接收缓冲器状态的新请求。接收缓冲器状态标志满,也就是说受到一个或更多的信息。主控制器从SJA1000得到第一条消息,然后通过置位命令寄存器的相应位发送一个释放接收缓冲器命令。如图2-14所示,主控制器在检查更多信息前处理每个收到的信息。但这样要反复接收,反复处理,因此也可以通过再次查询接收缓冲器状态位立即接收更多的信息,而将所有受到的信息一起处理。在这种情况下,主控制器的信息存储器必须足够大,以存储多于一条的信息,在已经接收和处理一条或所有的信息后主控制器继续其他的任务。图2-14 接收信息流程图(查询控制) (2)中断控制的接收要利用中断来控制接收,首先应该使CAN控制器SJA1000的接收中断和主控制器的外部中断使能。SJA1000的中断使能标志是位于BasicCAN模式的控制寄存器和PeliCAN模式的中断使能寄存器中。如SJA1000已接收到一条信息,这条信息已通过验收滤波器,且已放在接收FIFO中,那么会产生一个接收中断,因此主控制器能立刻起作用,发送接收到的信息到信息存储器,然后通过对命令寄存器的相应标志RRB置位,发送一个释放接收缓冲器命令。在接收FIFO 里的更多信息将产生一个新的接收中断,因此在一个中断期间不可能将所有在接收FIFO中的有效信息读出。和这个方法相反,图2-15显示了一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论