基于can总线数据传输系统

上传人:痛*** 文档编号:93129428 上传时间:2022-05-19 格式:DOC 页数:36 大小:2.22MB
收藏 版权申诉 举报 下载
基于can总线数据传输系统_第1页
第1页 / 共36页
基于can总线数据传输系统_第2页
第2页 / 共36页
基于can总线数据传输系统_第3页
第3页 / 共36页
资源描述:

《基于can总线数据传输系统》由会员分享,可在线阅读,更多相关《基于can总线数据传输系统(36页珍藏版)》请在装配图网上搜索。

1、.页眉.西南科技大学毕业设计(论文)题目名称:基于CAN总线的数据传输系统年 级:2003级 本科 专科学生学号:20035125学生姓名:杨敬国 指导教师:韩雪梅学生单位:信息工程学院 技术职称:讲师学生专业:生物医学工程 教师单位:信息工程学院西 南 科 技 大 学 教 务 处 制.页脚.页眉.基于CAN总线的数据传输系统摘要: CAN(控制器局域网)属于现场总线,是一种有效支持分布式和实时控制的串行通信网络。在基于CAN总线的数据传输系统的总体设计中,采用了模块化结构设计,主要对数据采集模块和 CAN 总线通讯模块进行了软硬件的设计开发。本设计以蒸汽锅炉的温度信号作为系统采集的源信号进行

2、设计,其中温度传感器芯片MAX6675的应用,大大简化了系统硬件电路的设计。智能节点模块的设计中采用了通用的AT89S51单片机和目前流行的CAN总线外围器件如SJA1000,PCA82C250等器件。最后,对本设计的主要工作进行了总结,对系统的完善与相关理论和技术的发展进行了展望。关键词:数据传输;CAN总线;温度信号;智能控制CAN Highway-based Data Transmission SystemAbstract: CAN is a kind of field-bus and a serial communication network which supports distr

3、ibuted and real-time control effectively. The modular structure is applied into the design of the data transmission system based on CAN-bus. The design focuses on the software and hardware of data-gathering module and CAN field-bus communication module. In the design, the source signal for the syste

4、m is the temperature signals of the steam boiler. The use of the IC MAX6675 has mostly narrowed down the design of hardware. In the design of the intelligent part, the MCU AT89S51 and the popular CAN periphery IC SJA1000 and PCA82C250 are used. Finally, the summary of the work in this paper and the

5、prospect of correlative theory and techniques are given.Key words: data transmission, CAN field-bus, temperature signal, intelligent control目 录第1章 绪 论11.1 课题背景及意义11.2 国内外数据采集技术发展及应用状况11.2.1 现场总线技术与控制系统的发展概况11.2.2 数据采集技术及数据采集系统的发展状况31.3本设计主要完成的工作4第2章 总体方案介绍52.1 CAN总线简介及工作原理52.2 系统总体设计思路52.3 各模块功能介绍72

6、.3.1 数据采集模块72.3.2 数据传输节点72.4 本章小结7第3章 数据传输系统的硬件设计83.1 微处理器的选择及其电路设计83.2 数据采集模块的设计93.2.1方案1热电偶测温93.2.2 方案2 MAX6675测温103.2.3 MAX6675工作原理103.2.4 MAX6675工作时序113.2.5 MAX6675与AT89S51的接口电路123.3 CAN 总线通讯模块设计123.3.1 CAN 器件的选用123.3.2 CAN 控制器的选用133.3.3 CAN 收发器的选用143.4 CAN 通讯模块电路设计153.5本章小结16第4章 数据传输系统的软件设计174.

7、1总体软件功能分析与模块划分174.2 CAN 总线初始化程序设计174.2.1 初始化分析174.2.2 初始化主程序184.3 CAN 总线报文发送程序设计204.3.1 报文发送分析204.3.2报文发送主程序204.4 CAN 总线报文接收程序设计224.4.1 报文接收分析224.4.2 报文接收主程序23第5章 系统调试265.1 硬件调试265.2 软件调试275.3 联合调试27总 结27参考文献28附录1:节点电路30附录2:上位指示电路31附录3:实物图32.页眉.第1章 绪 论1.1 课题背景及意义信息时代的到来,对社会的各个领域都产生了深刻的变革和巨大的影响。尤其在工业

8、自动化方面开始强调工业生产过程自动化和工业信息管理自动化。而今,信息控制一体化己经成为自动化领域的主体,是信息社会的基础和平台。随着数字通信技术、网络技术和微处理技术的迅猛发展,把传统的由数字信号和模拟信号混合的系统变成全数字信号系统成为可能,现场总线就是在这种背景下产生的,由于它适应了工业控制系统向分散化、网络化和智能化的发展方向,所以,一经产生便成为全球工业自动化的焦点,它的出现同时导致了现场总线控制系统FCS (Field-bus Control System)的产生,带来了自动控制技术领域里的一次产业革命。针对目前工业现场普遍采用的自动控制系统如DCS(Distribute Contr

9、ol System)集散式控制系统来说,它在控制现场需要大量的传感器、执行器、调节器等相关设备,他们相对分散且分布在较广泛的范围内,连线过多不便于安装和维护,而且远距离传输导致信号衰减,局域通讯网络采用RS485方式,使系统开放性差,组态比较繁琐,不具备在线调试功能,抗干扰能力差,给安全平稳运行带来隐患。针对这一系列弊端,本设计提出了应用可靠性强、稳定性好、抗干扰能力强、通信速率快、造价低、维护成本低的CAN总线控制系统。本课题“基于CAN总线的数据传输系统”就是针对这一问题提出的。它的提出对提高企业经济效益,促进企业的发展具有极强的现实意义。1.2 国内外数据采集技术发展及应用状况1.2.1

10、 现场总线技术与控制系统的发展概况信息技术的飞速发展,引起了现场总线技术的产生。现场总线技术发展的同时又推动了控制系统的向前发展。现场总线系统即应用在生产现场,在控制设备之间实现双向、串行、多节点通信的数字通信系统。它是在 80 年代后期发展起来的一种先进的现场工业控制技术。它综合了数字通信技术、计算机技术、自动控制技术、网络技术和智能仪表等多种技术手段,从根本上突破了传统的点对点式的模拟信号或数字模拟信号控制的局限性。构成一种全分散、全数字化、智能、双向、互连、多变量、多节点的通信与控制系统。 现场总线的基础是智能现场设备,本设计中即为智能数据传输系统,分散在各个工业现场的智能数据传输系统通

11、过数字现场总线连为一体,并与控制室中的监控设备一起共同构成现场总线控制系统。现场总线控制系统FCS通过遵循一定的国际标准,可以将不同厂商的现场总线产品集成在同一套FCS中,具有互换性和互操作性。FCS 把传统DCS 的控制功能进一步下放到现场智能数据采集器,由现场智能数据采集器完成数据采集、数据处理、控制运算和数据输出等功能。现场智能数据采集器的数据,通过现场总线传到控制室的监控设备上。控制室的监控设备用来监视各个现场设备的运行状态,保存各智能数据采集器上传的数据,同时完成一定的控制功能。因此FCS更好地体现了“信息集中,控制分散”的概念。而且FCS连线简单,将大大降低安装和连线的费用,现场装

12、置的智能化将增强现场设备的功能,减少一半甚至一半以上的I/O设备,并提供更多的信息流动。由于结构上的改变,FCS比DCS节约硬件设备,同时减少大量电缆,使施工、调试大大简化。总之,现场总线是高可靠性、低成本、组态简单、可互换、可互操作性、分散控制、运行方便、数据库一致的开放式系统。FCS是控制体系结构的一场革命,它将影响今后几十年内自动控制技术的发展。FCS将成为自动控制系统的主流。现场总线的产生导致了传统控制系统结构的变革,形成了新型的网络集成式全分布控制系统,即现场总线控制系统。这是继基地式气动仪表控制系统、电动单元组合式模拟仪表控制系统、集中式控制系统和集散式控制系统之后的新一代控制系统

13、。 1. 基地式气动仪表控制系统 由于 50 年代以前生产规模小,检测控制仪表尚处于发展的初级阶段,所以采用的是安装在生产设备现场、只具备简单测控功能的基地式气动仪表,其信号仅在本仪表内起作用,各测控点只能成为封闭状态。2. 电动单元组合式模拟仪表控制系统 随着生产规模的扩大,操作人员需要综合掌握多点的运行参数和信息进而实行操作控制,于是出现气动、电动系列的单元组合式仪表和集中控制室。生产现场各处的参数通过统一的模拟信号送往集中控制室,操作人员可以在控制室纵观生产流程各处的状况,可以把各单元仪表的信号按需要组合成复杂的控制系统。3. 集中式数字控制系统 模拟信号的传递需要一对一的物理连接;信号

14、变化缓慢,提高计算速度与精度的开销和难度都较大,信号传输的抗干扰能力也较差。于是出现用数字信号取代模拟信号的直接数字控制。由于当时数字计算机技术尚不发达、价格昂贵,所以需要用一台计算机取代控制室的几乎所有仪表盘,即集中式数字控制系统。4. 集散式控制系统 随着计算机可靠性提高、价格大幅度下降,出现了数字调节器、可编程控制器以及由多个计算机递阶构成的集中、分散相结合的集散式控制系统。这就是今天正在被许多企业采用的 DCS 系统。DCS 系统中测量变送仪表一般为模拟仪表。因而它是一种模拟数字混合系统。这种系统在功能、性能上较模拟仪表、集中式数字控制系统有很大的进步,可在此基础上实现装置级、车间级的

15、优化控制。但是在 DCS 系统形成过程中,由于受计算机系统早期存在的系统封闭这一缺陷的影响,各厂家的产品自成系统、不同厂家的设备不能互连在一起,难以实现互换与互操作,组成更大范围信息共享的网络系统存在很多困难。5. 现场总线控制系统 新型的现场总线控制系统突破了 DCS 系统中通信由专用网络的封闭系统实现的缺陷,把基于封闭、专用的解决方案变成基于公开化、标准化的解决方案。1.2.2 数据采集技术及数据采集系统的发展状况数据采集属于信息科学的一个重要分支,它是以传感器技术、信号检测和处理技术、电子技术、计算机科学等技术为基础而形成的一门综合应用技术学科。人类从诞生开始就离不开信息活动,但是信息真

16、正成为科学研究对象并发展成为一门科学,确是始自于 20 世纪 40 年代中期。发展至今数据采集技术已经成为一种专门的技术,在工业领域得到了广泛的应用。数据采集是工业控制的基础部分,无论是集中式数字控制系统、集散式控制系统、还是现场总线控制系统,都必须首先将多个地点的诸如温度、湿度、光照、压力、机械振动和流量等模拟量转换成数字量,才能利用智能仪表的数字计算功能进行相关处理,因此数据采集的性能在很大程度上决定了控制系统的性能。20世纪70年代中后期,随着微型机的发展,诞生了采集器、仪表和计算机融为一体的数据采集系统。20世纪80年代随着计算机的普及应用,数据采集系统得到了极大的发展,开始出现了通用

17、的数据采集与自动测试系统。20世纪80年代后期,数据采集系统发生了极大的变化,工业计算机、单片机和大规模集成电路的组合,用软件管理使系统的成本降低、体积减小、功能成倍增加、数据处理能力大大加强。20世纪90年代至今,在国际上,技术先进国家的数据采集技术已经在军事、航空、电子设备、宇航技术及工业等领域被广泛应用。随着现场总线技术和网络技术的发展,数据采集系统向分布式系统结构和智能化方向发展,可靠性不断提高,可以更好地实现生产环节的在线实时数据采集与监控。1.3本设计主要完成的工作本设计主要完成了以下几方面的工作:1. 对国内外数据采集技术及数据传输系统的发展状况进行了阐述和分析;2. 对工业控制

18、系统的特点及其现场总线的应用进行了总结;对本设计选用的 CAN 总线进行了简单的分析;3. 对数据传输系统的软硬件进行了详细设计;4. 对系统进行调试;第2章 总体方案分析2.1 CAN总线简介及工作原理控制器局域网CAN(Control Area Network)最初是由德国BOSCH公司为解决汽车监控系统中的诸多复杂技术和难题而设计的数字信号通信协议。它属于总线式串行通信网络。由于它采用了许多新技术和独特的设计思想,与同类产品相比,CAN总线在数据通信方面具有可靠、实时和灵活的优点。其应用范围遍及从高速网络到低成本的多线路网络等控制领域。当 CAN 总线上的一个仪表发送数据时,它以报文形式

19、广播给网络中所有仪表。对每个仪表来说,其报文开头的 N 个位称为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个仪表发送具有相同标识符的报文。当几个仪表同时竞争总线读取时,这种配置十分重要。当一个仪表要向其它仪表发送数据时,该仪表的 CPU 将要发送的数据和自己的标识传送给本仪表的 CAN 芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN 芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它仪表处于接收状态。每个处于接收状态的仪表对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于 CAN

20、总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置,可以很容易地在 CAN 总线中加进一些新仪表而无需在硬件或软件上进行修改。当所提供的新仪表是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制都有自己独立的传感器。2.2 系统总体设计思路根据CAN总线的工作原理,CAN总线数据传输系统的设计应该主要由锅炉温度信号的数据采集模块和数据传输模块组成。其中数据传输通过CAN总线来实现。按照应用的实例,智能节点应该由微控制器,CAN总线控制器和CAN总线收发器三部分组成。其中CAN总

21、线收发器负责建立CAN总线控制器和物理总线之间的连接,控制逻辑电平信号从CAN总线控制器到达物理总线的物理层,从而完成数据的传输任务。所以确定本设计总的系统结构图如图2-1所示:120120RRCAN总线(双绞线)微 处 理 器CAN 控制器高速光耦隔离微 处 理 器上 位显 示CAN控 制 器CAN 控 制 器高速光耦隔离高速光耦隔离CAN 收 发 器CAN收 发 器CAN收 发 器信 号 输 入信 号 输 入图2-1 系统总体结构图本数据传输系统由三个独立的模块组成,两个是独立的CAN智能数据采集节点,一个是上位显示模块。这三者通过CAN总线来进行它们之间的数据通信。由于CAN总线具有多主

22、通信的特性,所以这两个智能节点之间没有主次之分,在特定条件(软件控制)下两路数据都有权优先通信。系统结构的合理与否,对系统的可靠性、性能价格比等有直接影响。主要是软件、硬件功能的合理分配。原则上要尽可能“以软代硬”,只要软件能做到的就不要用硬件。其次要考虑系统的结构布局及接口特性。整个系统可以分为硬件和软件两大部分:1硬件部分微处理器和CAN控制器是数据采集与传输的核心。微处理器完成数据的采集和处理,CAN控制器通过CAN总线实现与上位显示部分的通信。结构图如图2-1。2软件部分软件部分主要是CAN总线通信程序的设计。为了保证在特定的工作环境下,系统能稳定、可靠地完成工作。所以在系统设计中加入

23、了高速的光电耦合隔离模块,以起到抗干扰的作用。2.3 各模块功能介绍2.3.1 数据采集模块数据采集模块的主要功能是实现数据的采集和处理。其中它包括一个信号输入部分和信号处理部分。信号输入部分功能是提供系统所传输的信号源。信号的处理由微控制器来实现,而微控制器一般是采用单片机。所以,数据采集模块应该是一个信号发生与调理电路与单片机的接口电路。2.3.2 数据传输节点数据传输节点主要完成前端所采集数据的传输功能。单片机通过程序控制将数据传输给CAN总线控制器。然后,CAN总线控制器再把数据进行一定的处理后发送给CAN总线收发器。为了保证数据传输的可靠性和真实性,在CAN控制器和CAN收发器之间加

24、入了高速的光电耦合器件来完成抗干扰的功能。在传输节点的基础上加入LED的指示电路,就构成了基本的上位指示模块。2.4 本章小结本章对CAN总线的原理进行了分析,对系统的总体设计思路进行了阐述并对各个模块的具体作用进行了简单的介绍,确定了系统设计的总体方案。第3章 数据传输系统的硬件设计系统的硬件电路主要由数据采集节点电路和上位显示电路两个模块组成。节点电路主要是数据输入电路和数据通信电路组成。输入电路由温度传感器芯片MAX6675搭建而成;数据通信电路由微处理器,CAN控制器和CAN收发器等组成。上位显示电路主要是在数据通信电路的基础上,运用LED来指示数据传输的状态,是一种低级的显示模式。3

25、.1 微处理器的选择及其电路设计在智能数据采集电路中,微处理器是核心,因此,在硬件设计时首先要考虑的是微处理器的选择,然后再确定与之配套的外围设备电路。单片机的出现,引起了仪器仪表结构的根本性变革。以单片机为主体取代传统仪器仪表的常规电子线路,可以容易地将计算机技术与测量控制技术结合在一起,组成新一代的“智能仪器”。在测量控制仪表中采用单片机技术使之成为智能仪器后,能解决许多传统仪表不能或不易解决的难题,同时还能简化仪表电路,提高仪表可靠性,降低仪表成本以及加快新产品的开发速度。本设计中,数据采集电路采用单片机作为微处理器。微处理器原则上只要能够满足实时控制调节需要的处理器都可以使用,但考虑到

26、硬件设计的兼容性和成本,可采用 51 系列单片机或兼容的 51 单片机。从工厂实际生产的角度来说,最好使用内嵌 CAN 控制器的单片机,可以减少使用成本和占用设备空间的开销。但从设计的角度来说,这样设计的系统灵活性欠佳,协议无法有效的扩展和改进。所以本设计最终选择使用美国 ATMEL 公司的 AT89S51单片机。 AT89S51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32个IO 口线,看门狗(WDT),两个数据指针,两个16 位定时计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,

27、并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3.2 数据采集模块的设计数据采集模块以温度信号的采集来进行设计。其中蒸汽锅炉温度信号的采集可以由热电偶或温度传感器芯片MAX6675所搭建的电路来实现的。为了更好的完成信号的采集,本设计是在详细了解了蒸汽锅炉的温度范围(1501000摄氏度)以及温度芯片的技术特点以后提出的。以下介绍了采用MAX6675的依据和它的技术特点以及它与微处理器的接口电路。图3-1 AT89S51接线电路3.2.1

28、方案1热电偶测温热电偶虽然是常用的测量温度的方式,但将热电偶应用在基于单片机的嵌入式系统领域时,存在着以下几方面的问题。非线性:热电偶输出热电势与温度之间的关系为非线性关系,因此在应用时必须进行线性化处理。冷补偿:热电偶输出的热电势为冷端保持为0时与测量端的电势差值,而在实际应用中冷端的温度是随着环境温度而变化的,故需进行冷端补偿。数字化输出:与嵌入式系统接口必然要采用数字化输出及数字化接口,而作为模拟小信号测温元件的热电偶显然法直接满足这个要求。因此,若将热电偶应用于嵌入式系统时,须进行复杂的信号放大、A/D转换、查表线性线、温度补偿及数字化输出接口等软硬件设计。如果能将上述的功能集成到一个

29、集成电路芯片中,即采用单芯片来完成信号放大、冷端补偿、线性化及数字化输出功能,则将大大简化热电偶在嵌入式领域的应用设计。3.2.2 方案2 MAX6675测温 MAX6675是一个集成了热电偶放大器、冷端补偿、A/D转换器及SPI串口的热电偶放大器与数字转换器。恰好能解决热电偶应用在基于单片机的嵌入式系统中存在的需要复杂的信号放大、A/D转换、查表线性线、温度补偿及数字化输出接口等软硬件设计的问题。而且它的测温范围(01024摄氏度)所以,本设计最终选择了MAX6675作为温度信号采集的芯片。这样既弥补了热电偶测温的缺陷,又简化了电路的设计,从而降低了设计的难度。3.2.3 MAX6675工作

30、原理根据热电偶测温原理, 热电偶的输出热电势不仅与测量端的温度有关,而且与冷端的温度有关,在以往的应用中,有很多种冷端补偿方法,如冷端冰点法或电桥补偿法等,但调试都比较麻烦。另外,由于热电偶的非线性, 以往是采用微处理器表格法或线性电路等方法来减小热电偶本身非线性带来的测量误差, 但这些都增加了程序编制及调试电路的难度。而MAX6675 对其内部元器件的参数进行了激光修正, 从而对热电偶的非线性进行了内部修正。同时, MAX6675 内部集成的冷端补偿电路、非线性校正电路、断线检测电路都给K型热电偶的使用带来了极大的方便。该器件采用8引脚SO贴片封装。引脚功能如表3-1表3-1 MAX6675

31、引脚功能引 脚名 称功 能1GND接地端2T-K型热电偶负极3T+K型热电偶正极4VCC正电源端5SCK串行时钟输入6CS片选端,CS为低时、启动串行接口7SO串行信息输出8N.C.空引脚 3.2.4 MAX6675工作时序当MAX6675 的CS 引脚从高电平变为低电平时, MAX6675 将停止任何信号的转换并在时钟SCK 的作用下向外输出已转化的数据。相反,当CS 从低电平变回高电平时, MAX6675 将进行新的转换。在 CS 引脚从高电平变为低电平时, 第一个字节D15 将出现在引脚SO。一个完整的数据读的过程需要16 个时钟周期,数据的读取通常在SCK的下降沿进行。 MAX6675

32、 的输出数据为16 位,其中D15 始终无用, D14D3 对应于热电偶模拟输入电压的数字转换量, D2 用于检测热电偶是否断线(D2 为1 表明热电偶断开) , D1 为MAX6675 的标识符, D0 为三态。需要指出的是:在以往的热电偶电路设计中,往往需要专门的断线检测电路, 而MAX6675 已将断线检测电路集成于片内,从而简化了电路设计。3.2.5 MAX6675与AT89S51的接口电路图3-2 MAX6675与AT89S51接口电路为了正确使用MAX6675 芯片,设计时还必须注意:利用输出数据中的D2 进行断偶检测时, 热电偶的输入负极T- 必须接地, 且应尽可能地靠近 MAX

33、6675 的引脚地(即PIN1);由于冷端温度是由MAX6675 本身检测的, 因此,为了提高测量的精确度,电路板的地线尽可能地大;由于热电偶信号为微弱信号,因此要尽可能地采取措施防止噪声干扰,所以在电源与地线之间要接一个小电容。本设计用一个0.1uF的电容。3.3 CAN 总线通讯模块设计3.3.1 CAN 器件的选用由第 2 章对 CAN 总线技术的研究和分析可知,开发应用 CAN 总线技术的关键是 CAN 总线协议的实现。由于 CAN 总线的突出优点,目前国外许多 IC器件生产厂商竞相推出各种 CAN 总线器件产品。这些总线控制器主要由实现CAN 总线协议和微控制器接口电路二部分组成。对

34、于不同型号的 CAN 总线控制器,实现 CAN 协议部分电路的结构和功能大都相同,只是与微控制器接口部分的结构及方式存在一些差异。CAN 通讯模块主要由微处理器,CAN 控制器和 CAN 收发器三部分组成。3.3.2 CAN 控制器的选用 目前在CAN总线节点设计上被广泛采用的CAN控制器芯片为Philips的SJA1000和Intel的82527两种CAN控制器芯片。1.Intel 82527 CAN控制器 它支持CAN2.0,包括标准的和扩展的数据和远程帧;可程控全局屏蔽,包括标准和扩展信息标识符;具有15个报文缓冲区,每个数据长度为8字节,包括14个TX/RX缓冲区,一个带可程控屏蔽的R

35、X缓冲区;可变CPU接口,包括多路8位总线(Intel或Motorola方式)、多路16位总线、8位非多路总线(同步/异步)以及串行接口;位速率可程控,并有可程控的时钟输出;可变中断结构;可对输出驱动器和输入比较器结构进行设置; 两个8位双向I/O口。 2.Phillips SJA1000 CAN控制器标准结构和扩展结构报文的接收和发送;64字节的接收FIFO;标准和扩展帧格式都具有单/双接收滤波器含接收屏蔽和接收码寄存器;可进行读/写访问的错误计数器;可编程的错误报警限制;最近一次的错误代码寄存器;每一个CAN总线错误都可以产生错误中断具有丢失仲裁定位功能的丢失仲裁中断;单发方式 当发生错误

36、或丢失仲裁时不重发;只听方式(监听CAN总线,无应答,无错误标志);支持热插拔(无干扰软件驱动位速率检测)。选用独立式CAN总线控制器允许设计时充分的灵活性。而SJA1000是独立的CAN 控制器,它主要用于移动目标和一般工业环境中的区域网络控制,是 Philips 半导体公司 PCA82C200 CAN控制器(BasicCAN)的替代产品,而且它增加了一种新的操作模式PeliCAN,这种模式支持具有很多新特性的 CAN2.0B 协议。它具有与 PCA28C200 独立 CAN 控制器兼容的引脚和电气参数;有扩展的 64 字节接收缓冲器;支持CAN2.0A 和 CAN2.0B 协议;支持 11

37、 位和 29 位标识码;温度适应范围大(40125)。这些特点完全满足设计要求,因此本设计中 CAN 控制器选用 SJA1000。表 3-2 SJA1000 重要引脚功能符 号引 脚功 能AD0 AD72,1,28 23地址/数据复用总线ALE3ALE 信号(INTEL方式)或AS信号(Motorola 方式)/CS4片选输入,低电平允许访问SJA1000/RD5微控制器的读信号(Intel 方式)或E 信号(Motorola方式)/WR6微控制器的写信号(Intel 方式)或读写信号(Motorola)方式XTAL19振荡放大器输入外部振荡放大器信号经此引脚输入XTAL210振荡放大器输出使

38、用外部振荡信号时此引脚必须开路MODE11方式选择输入端1=Intel 方式0=Motorola 方式TX013由输出驱动器0 至物理总线的输出端TX114由输出驱动器1 至物理总线的输出端/INT16中断输出端用于向微控制器提供中断信号/RST17复位输入端用于重新启动CAN 接口低电平有效RX0,RX119,20由物理总线至SJA1000输入比较器的输入端显性电平将唤醒处于睡眠方式的SJA1000 当RX0高于RX1时读出为隐性电平否则为显性电平了解器件重要引脚的功能有助于理解硬件电路的搭建和软件编写的思路,所以这里表3-2介绍了CAN控制器SJA1000的主要引脚信息。3.3.3 CAN

39、 收发器的选用目前较为先进的CAN总线收发器是德州仪器公司 (TI) 日前推出的一款5V 控制器局域网 (CAN) 收发器,它不但性能得到改进而且还可提供12kV HBM ESD 保护功能,同时可靠性增强了6倍。这款收发器可灵活应用于诸如具有 CAN 控制器的 TMS320F24XX、TMS320LF24XX 及 TMS320LF28XX 系列5V 或 3.3V DSP。另外,SN65HVD251 不仅可用于 DSP,也可与独立的 CAN 控制器及具有 CAN 控制器的微控制器共同使用。该器件专门针对采用符合 ISO 11898 标准的 CAN 高速串行通信物理层等应用,能以高达 1 Mbps

40、 的速度提供到总线的差动传输功能,以及到 CAN 控制器的差动接收。但它的价格昂贵,而且它很多突出的特性在本系统中并不会得到充分的应用,所以本设计并没有选用这款CAN总线收发器。PCA82C250是Phillips公司生产的一款CAN总线收发器。它的价格便宜,性能优良。它是连接 CAN 总线控制器和物理总线的接口,可以为总线提供差动的发送功能,为 CAN 控制器提供差动的接收功能,一个限流电路可防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。由于CAN总线控制器选用了Phillips的器件,所以在同样满足设计要求的情况下,本

41、设计选用了PCA82C250作为CAN总线收发器。它的引脚和封装图如表3-3:表 3-3 PCA82C250重要引脚功能 封装符 号管 脚功 能TXD1发送数据输入RXD2接收数据输出CANL3低电平CAN 电压输入/输出CANH4高电平CAN 电压输入/输出Rs5斜率电阻输入3.4 CAN 通讯模块电路设计本设计中CAN通讯模块由AT89S51、独立CAN控制器SJA1000、CAN总线收发器PCA82C250和高速光电耦合器6N137四部分所构成。AT89S51负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。SJA1000的AD0AD7连接到AT89S51

42、的P0口,CS连接到AT89S51的P2.0,P2.0为0的CPU片外存储器地址可选中SJA1000。CPU通过这些地址可对SJA1000执行相应的读写操作。SJA1000的RD、WR、ALE分别与AT89S51的对应引脚相连接,INT接AT89S51的INT0,AT89S51也可通过中断方式访问SJA1000。具体的电路原理图如图3-3所示:图3-3 CAN通信模块电路为了增强CAN总线智能数据采集器的抗干扰能力,SJA1000的TX0、RX0并不是直接与PCA82C250的TXD和RXD相连,而是通过高速光耦6N137后,与PCA82C250相连。这样就很好的实现了总线上各CAN智能数据采

43、集节点间的电气隔离。不过应该特别说明的一点是,光耦部分电路所采用的两个电源VCC和VDD必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块或带5V隔离输出的开关电源模块实现。PCA82C250与CAN总线的接口部分也采用了一定的安全和抗干扰措施。PCA82C250的CANH和CANL引脚各自通过一个匹配的电阻与CAN总线相连,电阻可起到一定的限流作用,保护PCA82C250免受过流的冲击。CANH和CANL与地之间并联了两个小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。当引脚 TXD 由于硬件或软件程序的错误而持久地为低电平时,“TXD 控制超时”

44、定时器电路可以防止总线进入这种持久的支配状态(阻塞所有网络通信)。这个定时器是由引脚 TXD 的负跳沿触发。如果引脚 TXD 的低电平持续时间超过内部定时器的值,发送器会被禁能,使总线进入隐性状态。 定时器由引脚 TXD 的正跳沿复位。3.5本章小结本章对智能数据采集的硬件电路进行了详细设计。首先选择了符合数据传输系统的单片机 AT89S51,并对其具体电路进行了详细设计;然后对数据采集模块进行了详细设计;最后重点对 CAN 总线通讯模块进行了详细设计。因为上位显示模块是在通信模块的基础上进行设计,所以设计中未做详细的介绍如想详细了解请参考附录2的电路内容。第4章 数据传输系统的软件设计4.1

45、总体软件功能分析与模块划分数据传输系统软件的主要功能如下:A.系统初始化B.CAN总线报文发送C.CAN总线报文接收4.2 CAN 总线初始化程序设计4.2.1 初始化分析CAN 总线通讯模块的初始化主要是对 CAN 控制器的初始化。独立的CAN 控制器SJA1000 必须在上电或硬件复位后设置CAN 通讯。在由主控制器操作期间它可能会发送一个软件复位请求,SJA1000 会被重新配置再次初始化CAN 控制器的初始化要点是:1. 工作模式为 PeliCAN 模式,帧格式采用扩展帧2. 通信波特率为 50kbps3. 采用双滤波验收,即 4 字节的接收代码寄存器 ACR0ACR3 分为前后两组,

46、前组为接收节点(目标节点)的 ID,后组为发送节点的 ID,这样报文由谁发送、发送给谁都直接明了4. 在初始化有关寄存器前,必须使 SJA1000 由工作模式进入复位模式,否则无法完成初始化操作。4.2.2 初始化主程序按照上述初始化要点,绘制 CAN 控制器的初始化程序流程图如图4-1所示,根据流程图用汇编语言实现如下:CAN_INIT:MOV DPTR, #MODE ;指向模式寄存器MOV A,#09H ;进复位模式,对 SJA1000 进行初始化MOVX DPTR,AMOV DPTR,#CDR ;指向时钟分频器寄存器MOV A,#88H ;PeliCAN 模式,关闭时钟输出(CLKOUT

47、)MOVX DPTR,AMOV DPTR,#IER ;指向中断允许寄存器MOV A,#0DH ;开放发送中断、超载中断和错误警告中断MOVX DPTR,AMOV DPTR,#AMR ;指向接收屏蔽寄存器 0MOV R6,#4开始初始化禁止主控制器中断复位模式配置验证代码寄存器配置验收屏蔽寄存器所有中断使能进入工作模式配置输出控制寄存器配置总线定时寄存器完成初始化图4-1初始化程序流程图MOV R0,#DAMR ;接收屏蔽寄存器内容在片内 RAM 中的首地址AMR:MOV A,R0MOVX DPTR,A ;接收屏蔽寄存器赋初值INC DPTRDJNZ R6,AMRMOV DPTR,#ACR ;接

48、收代码寄存器MOV R6,#4MOV R0,#DACR ;接收代码寄存器内容在片内 RAM 中的首地址ACR:MOV A,R0MOVX DPTR,A ;接收代码寄存器赋初值INC DPTRDJNZ R6,ACRMOV DPTR,#BTR0 ;总线定时寄存器 0MOV A,#03HMOVX DPTR,AMOV DPTR,#BTR1 ;总线定时寄存器 1MOV A,#0FFH ;16MHz 晶振情况下,设置波特率为 80kbps.MOVX DPTR,AMOV DPTR,#OCR ;输出控制寄存器MOV A,#0AAHMOVX DPTR,AMOV DPTR,#RBSA ;接收缓存器起始地址寄存器MO

49、V A,#0 ;设置接收缓存器 FIFO 起始地址为 0MOVX DPTR,AMOV DPTR,#TXERR ;发送错误计数寄存器MOV A,#0 ;清除发送错误计数寄存器MOVX DPTR,AMOV DPTR,#ECC ;错误代码捕捉寄存器MOVX A,DPTR ;清除错误代码捕捉寄存器MOV DPTR,#MODE ;方式寄存器MOV A,#08H ;设置单滤波接收方式,并返回工作状态MOVX DPTR,ARET4.3 CAN 总线报文发送程序设计 4.3.1 报文发送分析报文的发送采用查询法。将待发送信息按 SJA1000 的要求送入系统发送缓冲区,由于本系统采用 PeliCAN 模式和扩

50、展帧,因此缓冲区总共为 13 字节,包括帧信息、ID 码及 8 字节数据。按流程图图4-2的要求进行报文的发送。需要注意的是,在将系统发送缓冲区数据移至 CAN 控制器发送缓冲区前,必须判断缓冲区是否被锁定。如果缓冲区被锁定,则不能写入数据。状态寄存器的TS 和RS 标志能检测CAN 控制器是否已达到空闲状态,TBS 标志和TCS 标志可以检查报文是否成功发送。4.3.2报文发送主程序根据流程图用汇编语言编写程序如下,由于篇幅限制,这里 SJA1000 初始化配置省略。TDATA_CAN:MOV DPTR,#SR ;指向状态寄存器TDATA_CAN_0:MOVX A,DPTR ;读状态ANL

51、A,#10HJNZ TDATA_CAN_0 ;判是否正在接收,使则等待TDATA_CAN_1:MOVX A,DPTR ;再次读入 CAN 线状态ANL A,#08HJZ TDATA_CAN_1 ;判上次发送是否成功,不成功则等待YNNY开始启动SJA1000发送读取SJA1000状态寄存器的值向SJA1000发送缓冲区写入数完成SJA1000初始化配置延时200毫秒将发送请求位置1判断TBS&TCS=1?判断TBS&TCS=1?返回启动发送成功返回启动发送失败图4-2报文发送程序流程图TDATA_CAN_2:MOVX A,DPTRANL A,#04HJZ TDATA_CAN_2 ;判发送缓冲区

52、是否锁定,0:被锁定MOV DPTR,#TXB ;指针指向 CAN 控制器发送缓冲区MOV R0,#CANTXBUF ;指针指向系统通信缓冲区MOV A,R0 ;取出数据MOVX DPTR,A ;写入发送缓冲区ANL A,#0FH ;从首字节的低 4 位得到数据场字节数ADD A,#4 ;+4 的验收代码MOV R1,A ;作为数据搬家的总字节数TDATA_CAN_3:INC DPTRINC R0MOV A,R0MOVX DPTR,ADJNZ R1,TDATA_CAN_3MOV DPTR,#CMR ;命令寄存器MOV A,#01H ;启动发送位有效MOVX DPTR, ;启动发送RET4.4

53、CAN 总线报文接收程序设计4.4.1 报文接收分析接收子程序负责读取接收缓冲区的值,并进行其它情况的处理。报文的接收可以使用查询方式和中断方式。两者在思路上相似,不过采用中断方式进行接收,在实时性方面要大大优于查询方式。无论是中断方式还是查询方式,在确定 CAN 节点的接收缓冲区有接收数据的时候,都会采取读取接收缓冲区的数据并保存,然后释放接收缓冲区,最后执行预先定义的操作。为提高报文接收的实时性,本设计接收报文采用了中断法。即当 CAN 总线控制器接收到一帧有效报文(通过滤波验收),其 INT 引脚跳变为低电平,触发微处理器的外部中断 0,通过中断子程序将报文读入微处理器。其程序流程如图4

54、-3所示。4.4.2 报文接收主程序 根据流程图用汇编语言编写程序如下:REC_CAN:PUSH ACC ;保护现场MOV DPTR,#SR ;状态寄存器MOV A,DPTR ;读取总线状态ANL A,#0C3H ;总线正常且有数据否CLR RECOK ;清已成功接收标志CLR HUISONG ;清该报文回送标志YNYNNYN读CAN总线状态清中断,恢复总线清溢出标志并释放接收缓冲区设置成功接受报文标志释放错误捕捉寄存器清回送标志释放仲裁丢失寄存器释放接收缓冲区设置回送标志中断返回从接收缓冲区读入数据清除中断数据是否溢出?接收缓冲区是否有数据?总线是否关闭?是否要回送?Y图4-3中断接收程序流

55、程图JNZ REC_CAN_1 ;是,则继续REC_CAN_0:POP ACC ;否则,恢复现场后直接返回RETI ;中断返回REC_CAN_1:ANL A,#80H ;取总线关闭状态位JZ REC_CAN_2 ;总线没有关闭则转MOV DPTR,#IR ;否则说明总线关闭MOVX A,DPTR ;读中断寄存器以清除中断位MOV DPTR,#MODE ;模式寄存器MOV A,#0MOVX DPTR,A ;恢复总线POP ACCRETI ;中断返回REC_CAN_2:MOV DPTR,#IR ;中断寄存器MOVX A,DPTR ;读中断寄存器以清除中断位PUSH 01H ;现场保护MOV R1,

56、A ;暂存ANL A,#08H ;取数据溢出位状态JZ REC_CAN_3 ;数据不溢出则转MOV DPTR,#CMR ;命令寄存器MOVX DPTR,A ;清除数据溢出和释放接收缓冲区POP 01HPOP ACCRETI ;中断返回在接收FIFO 满了但还接收其他报文的时侯,就会通过置位状态寄存器中的数据超载状态位通知主控制器有数据超载的情况,SJA1000 会产生一个数据超载中断。如果运行在数据超载的状态下,由于主控制器没有足够的时间及时从接收缓冲器收到的报文而变得极度超载。一个表示数据丢失的数据超载信号可能会导致系统矛盾。通常一个系统应该设计成:收到的信息要被足够快地传输和处理避免产生数

57、据超载。如果数据超载不能避免,那么主控制器应该执行一个特殊的处理程序来处理这些情况。第5章 系统调试5.1 硬件调试在硬件设计从布线到焊接安装完成之后,就开始进入了硬件调试阶段。首先,应该排除元气件的失效而有可能带来的故障。造成元气件故障的原因主要有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。经过用万用表短路蜂鸣测试,电路中采用的元气件引脚并无断路和短路情况。所以排除了元气件发生故障的可能性。其次,就是检查电路中的连线是否与设计中的一致。方法是用数字万用表进行短路测试。测试中主要包括错线、开路和短路的问题。首先将电路板认真对照原理图,看两者是否一致。其中特别注意了电源系统的检查,来防止电源短路和极性错误,并重点检查了地址总线、数据总线和控制总线这些系

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!