本科毕业论文-基于CAN总线控制的温度仪表.doc_第1页
本科毕业论文-基于CAN总线控制的温度仪表.doc_第2页
本科毕业论文-基于CAN总线控制的温度仪表.doc_第3页
本科毕业论文-基于CAN总线控制的温度仪表.doc_第4页
本科毕业论文-基于CAN总线控制的温度仪表.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

摘 要随着科学技术的快速发展,工业控制和生产自动化技术的不断进步以及微处理器的广泛应用,现场总线技术日益成为国内外各个行业的关注焦点。传统的独立仪表已经不能满足目前控制系统大规模化、智能化、网络化方向发展的要求,一种新型的基于现场总线的智能仪表应运而生。CAN (Controller Area Network)现场总线作为一种自效支持分布式控制和实时控制的技术,以其稳定性好、可靠性高、抗干扰能力强、通讯速率快、维护成本低及其独特的设计,现己经成为国际上应用最为广泛的现场总线之一。本课题采用主流单片机STC89C52为微处理器,结合独立CAN控制器SJA1000设计了CAN总线的数据通信系统硬件电路,使CAN总线的通讯更加直观。本文提出了相应的通信软件模型,通信软件模型包括应用层协议模块、基本通信模块和运动控制应用模块。其中,应用层协议模块包括消息标识符的分配、数据域信息格式、数据交换方式和报文滤波机制等内容;基本通信模块包括CAN控制器的初始化、报文接收、报文发送、错误处理和中断服务程序等内容;运动控制应用模块包括输出控制命令和输入状态信息等内容。 本课题设计的数据通信系统结构简单、使用方便、设计灵活,能够满足工业控制中网络化、智能化的发展要求,对目前基于CAN总线的研究具有积极作用。关键词:CAN数据通信,SJA1000,单片机AbstractWith the rapid development of science and technology, industrial control and automation technology continues to progress as well as the microprocessor application, field bus technology has increasingly become the focus of various domestic and international industry. The traditional independent instrument can not meet the current control system of large-scale, intelligent, networked direction requirements, a novel based on the field bus in intelligent instrument emerge as the times require. CAN ( Controller Area Network ) field bus as a self efficiency support distributed control and real-time control technology, with good stability, high reliability, strong anti interference ability, fast communication rate, low maintenance cost and its unique design, now has become the most widely used one of the field bus.The subject of the use of mainstream chip STC89C52microprocessor, with independent CAN controller SJA1000design of CAN bus data communication system hardware circuit, the CAN bus communication more intuitive. This paper presents the corresponding communication model, communication software model including the application layer protocol module, basic communication module and motion control application module. Among them, the application layer protocol module includes a message identifier allocation, data domain information format, data exchange mode and message filtering mechanism of content; basic communication module includes CAN controller initialization, message receiving, sending messages, error handling and interrupt service program content; motion control application module includes an output control command and an input state information content.The design of the subject data communication system has the advantages of simple structure, convenient use, flexible design, can meet the requirements of industrial control network, intelligent development requirement, to at present based on the CAN bus has positive effects on.Key words: data communication of CAN, SJA1000, single chip microcomputer 目录摘 要IAbstract目录第一章 绪 论11.1选题背景及意义11.2国内外研究现状及其发展11.3本文组织结构2第二章 现场总线及CAN总线技术通信标准32.1 CAN总线简介32.2 CAN总线技术特点32.3 CAN总线通信协议42.3.1CAN总线的特点42.3.2 CAN总线帧格式42.3.3 CAN总线位仲裁技术特点52.4本章小结5第三章 系统硬件电路设计13.1智能仪表系统整体硬件构成13.2CAN通信模块硬件设计13.2.1SJAl000有以下基本特性:13.2.2 CAN总线收发器TJA105023.2.3 微控制器STC89C52单片机33.2.4 数字温度传感器DS18B2053.2.5 八段数码管63.2.674HC59573.3 本章小结8第四章 CAN数据通信接口模块软件设计94.1 CAN总线数据通信程序94.2 DS18B20 温度采集程序114.3 74HC595驱动数码管显示程序14结论16参考文献17致谢19附录20程序设计20第一章 绪 论1.1选题背景及意义随着微型计算机技术和嵌入式系统技术的迅速发展,工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大进步。由于对系统可靠性和灵活性的高要求,工业控制系统的发展主要表现为:控制面向多元化,系统面向分散化,即负载分散、功能分散、危险分散和地域分散。即以微型计算机(单片机或嵌入式系统)为主体,代替传统仪表的常见电子线路, 称为新一代的具有某种智能的灵巧仪表。传统模拟式仪表的各种功能是由单元 电路实现的,而在以单片机或嵌入式系统为主体的仪表中,则由软件完成众多的 数据处理和控制任务。同时,正由于现场总线的标准尚未统一,也使得现场总线的应用得以不拘一格地发挥,并将为现场总线的完善提供更加丰富的依据。控制器局部网CAN (Controller Area Network)正是在这种背景下应运而生的。CAN(Controller Area Network)是现场总线的一种,最早是德国Bosch公司在上世纪80年代推出的,主要应用于汽车内部检测以及控制系统间的数据通信。CAN总线通信协议充分考虑了工业现场环境,采用了ISO-OSI模型中的三层,即物理层,数据层和应用层。CAN总线规范已被国际标准化组织制订为国际标准ISO11898,并得到了多家著名半导体器件生产商的支持,推出了各种集成CAN协议的芯片产品。1.2国内外研究现状及其发展当今国外有许多知名的汽车制造企业,如奔驰,宝马,保时捷,劳斯莱斯等公司均已采用CAN总线来实现汽车内部电控系统与各检测和执行机构间的数据通讯。国内的一些汽车生产厂家最初虽然也尝试着在自己的产品中使用CAN,并也制造出了一些相应的产品,但在成熟度方面无疑与那些著名的厂家还有着很大的差距。CAN总线历经20多年的发展,尤其是随着其国际标准化(IS011898 )的制定,更加推动了它的发展和应用,已有INTEL, MOTOROLA, PHILIPS, SIEMENS等百余家国际大公司支持CAN总线协议。目前,国内科技水平及整体综合技术水平达到了国际80年代中期水平。随着微电子技术和计算机技术在仪器仪表产 品中的普遍采用,约15%的产品实现了智能化,达到国际90年代水平,30%的产品实现了数字化达到了国际80年代末期水平。通过科技攻关、联合开发、合资合作和引进技术消化吸收国产化等多种 形式,使我国仪器仪表行业部分中高档主导产品缩小了与国际先进水平的差距 ,并形成了生产能力。CAN总线在未来的发展前景上,将具有如下几个方向:(1) CAN总线将在未来的市场竟争中占有一定的优势。(2)与企业以太网(Ethernet)的互联。(3)与模糊控制技术和智能技术的结合。(4)与无线技术的结合。1.3本文组织结构 本文研究了基于CAN总线的数据通信系统的通信系统设计与实现。内容涉及需求分析、总体设计、硬件组成结构设计、软件设计和开发、系统仿真测试等。 第一章为绪论,简单介绍了CAN总线在国内外的应用现状,说明了本课题的研究背景和意义。 第二章概括介绍了CAN总线通信标准,包括其技术特点、报文的帧类型与格式、富有特色的位仲裁技术、报文滤波技术等。 第三章是CAN总线通信系统的硬件设计与实现和应用层通信协议模块的设计。 第四章介绍了CAN通信系统软件开发的过程,说明了在仿真测试平台上的测试情况。 第五章总结了本通信系统设计与实现的主要成果与结论,并做了下一步的工作展望。第二章 现场总线及CAN总线技术通信标准2.1 CAN总线简介CAN网络即控制器局域网(Controller Area Network) 是德国BOSCH公司为现代汽车应用领先推出的一种多主机局域网,它是一种有效支持分布式控制或实时控制的串行通讯网络,其总线规范已被ISO国际标准化组织制定为国际标准,并被公认为是最有前途的现场总线之一。CAN总线的通信介质可以是双绞线、同轴电缆或光纤,最大通信速率可达1Mbps。其应用范围遍及从高速网络到低成本的多线路网络,广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。2.2 CAN总线技术特点(1)多主机方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。(2)网络上的节点(信息)可分成不同的优先级,可以满足不同的实时要求。 (3)采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据。(4)可以点对点、一点对多点(成组)及全局广播几种传送方式接收数据。(5)直接通信距离最远可达6km(速率10Kbps以下)。(6)通信速率最高可达1MB/s(此时距离最长40m)。(7)节点数实际可达110个。(8)采用短帧结构,每一帧的有效字节数为8个。(9)每帧信息都有CRC校验及其它检错措施,数据出错率极低。(10)通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求。(11)节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。2.3 CAN总线通信协议2.3.1CAN总线的特点 CAN总线是一种有效支持分布式控制或实时控制的串行通信网络。其通讯介质可以是双绞线、同轴电缆或光纤。在汽车发动机控制部件、传感器等应用中,总线的位速率最大可达1Mbit/s。CAN总线具有以下主要特性:a无破坏性的基于优先权竞争的总线仲裁b可借助接收滤波的多地址帧传送c具有错误检测与出错帧自动重发功能d数据传送方式可分为数据广播式和远程数据请求式2.3.2 CAN总线帧格式CAN总线通信协议包括CAN2.0A和CAN2.0B两种,它们的帧格式:(1)CAN2.0A通信协议规定了4种不同的帧格式:数据帧 用于节点间传递数据,是网络信息的主体,其帧格式依次包括: 帧起始、仲裁场、控制场、数据场、CRC场、ACK场和帧结束。其中数据段长度可编程08个字节。远程帧 由在线单元发送,用于请求发送具有相同标识符的数据帧,其帧格式与数据帧基本相同,但没有数据场。出错帧 出错帧是检测总线出错的一个信号标志,由两个不同的场构成。第一个场由来自不同节点的错误标志叠加,第二个场为错误界定符。CAN协议采用CRC检验并可提供相应的错误处理功能,保证数据通讯的可靠性。超载帧 由超载标识和超载界定符组成,表明逻辑链路控制层要求的内部超载状态,并将由媒体访问控制层的一些出错条件而被启动发送。用于扩展帧序列的延迟时间。(2)CAN2.0B通信协议分为两种帧格式: 标准帧标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分。1字节1为帧信息。第7位(FF)表示帧格式,在标准帧中,FF0;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际的数据长度。2字节2、3为报文识别码,11位有效。 3字节411为数据帧的实际数据,远程帧时无效。 扩展帧1扩展帧信息为13个字节,包括两部分,信息和数据部分。前5个字节为信息部分。字节1为帧信息。第7位(FF)表示帧格式,在扩展帧中,FF 1;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际的数据长度。2字节25为报文识别码,其高29位有效。3字节613为数据帧的实际数据,远程帧时无效。2.3.3 CAN总线位仲裁技术特点只要总线空闲,任何单元都可以开始发送报文。要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时,要求快速地进行总线分配。如果2个或2个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用识别符的位形式仲裁可以解决这个冲突。CAN总线以报文为单位进行数据传送,报文的优先级结合在11位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。 2.4本章小结 首先,CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。其次,CAN总线通过CAN控制器接口芯片TJA1050的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期。另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是目前 CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。CAN (Controller Area Network)即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)和ROLLS-ROYCE(劳斯莱斯)等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。 第三章 系统硬件电路设计3.1智能仪表系统整体硬件构成 本文设计的智能仪表系统主要完成对直接现场模拟信号的采样、计算、传输和显示,将数据和参数传送到监控计算机上进行实时监控管理,并在监控计算机中进行PID调节,智能节点接收调节后的参数,即对被控对象进行控制。整个系统的工作过程如下:传感器从现场采集数据,通过中央处理器进行转换,转化量程,然后送数码管进行显示,并通过CAN总线将数据传送到监控计算机进行显示和分析,进行PID调节后的数据下传到对应节点,控制被控对象。同时,在其它节点有数据请求的情况下,可以将数据通过CAN总线送向其它智能节点。 根据系统要实现的功能及经济性和灵活性的设计要求,本设计中选取STC89C52作为中央处理器,STC89C52完成传感器数据的采集、数码管显示、数据发送等控制。运用独立的CAN控制器SJAl000结合CAN总线收发器TJA1050,SJAl000是一个独立的CAN控制器,它和以前的PCA82C200在硬件和软件上都兼容,并且具有一系列先进的功能适合于多种应用。TJA1050负责与CAN物理层的连接,接收和发送数据。解决了CAN总线虽然可连接设备数目多、传输距离远、抗干扰能力强,但不能直接与计算机相连接的问题。智能节点中,微处理器由两片单片机组成,两片单片机之间利用串口进行通信,其中一片主要负责数据的采集和显示,另一片负责SJAl000的初始化,并通过控制SJAl000实现数据的接收和发送等通信任务。利用两片单片机来实现智能节点的功能,为系统的模块化开发提供了便利。3.2 CAN通信模块硬件设计本设计中选用独立的CAN控制器,因为独立的CAN控制器使用上比较灵活,可以与多种类型的单片机、微型计算机的各类标准总线进行接口组合,而且在目前我国市面上很容易购买,并且性价比高。SJAl000是一种独立的CAN控制器,主要用于移动目标和一般工业环境中的区域网络控制。321 SJAl000有以下基本特性:引脚和电气参数与PCA82C200独立CAN控制器兼容。具有PCA82C200模式(即默认的BasicCAN模式)。有扩展的接收缓冲器64字节,先进先出(FIFO)。支持CAN 2OA和CAN 2OB协议。支持11位和29位标识码。通信位速率可达1Mbps。PeliCAN模式的扩展功能:可读写访问的错误计数寄存器;可编程的错 误报警限额寄存器;最近一次错误代码寄存器;对每一个CAN总线错误 的中断;有具体位表示的仲裁丢失中断;单次发送(无重发);只听模 式(无确认、无激活的错误标志);支持热插拔(软件进行位速率检测); 验收滤波器的扩展(4字节的验收代码,4字节的屏蔽);接收自身报文 (自接收请求);24MHz时钟频率;可与不同的微处理器接口;可编程的CAN输出驱动器配置;温度适应范围大(一40+125)。 CAN核心控制块主要是控制CAN帧的接收和发送。SJAl000的发送缓冲器可以存储一个完整的信息(扩展的或标准的),当主控制器开始一个传送时,逻辑管理接口强迫CAN核心控制块读发送缓冲器中的CAN信息。当收到一个消息时,CAN核心控制块将连续的位转换成标准的数据存放在接收过滤器中,通过可编程的过滤器SJAl000可以判定哪条消息是被主控制器接收的。所有存放在接收过滤器中的已经接收信息被保存于接收队列中。根据操作的模式,可以保存最大长度为64字节的信息。这使得用户在指定系统中断服务和中断优先级时更具有弹性,因为出现数据溢出的可能性己经被减小。322 CAN总线收发器TJA1050 通常情况下使用SJAl000独立CAN总线控制器可以完成CAN总线的通讯任务,但是所存在的不足之处就是它的驱动能力不够,因此需要外加一个TJA1050总线驱动芯片来弥补这一缺陷,使系统达到用户满意的水平。TJA1050是CAN控制器与物理总线之间的接口,它最初是为汽车中的高速应用(达1Mbps)而设计的。器件可以提供对总线的差动发送和接收功能。TJA1050的主要特性如下:与IS01 1898标准完全兼容;高速率(最高可达1Mbps); 具有抗汽车环境下的瞬间干扰及保护总线能力;采用斜率控制,降低射频干扰;过热保护;总线与电源及地之间的短路保护;低电流待机模式;未上电节点不会干扰总线;总线至少可连接1lO个节点。引脚8(Rs)允许选择三种不同的工作方式:高速、斜率控制和待机。在高速工作方式下,发送器输出晶体管已经可以以尽可能快的速度启动和关闭。在这种模式下,无需采取任何措施限制上升和下降的斜率。对于较低速度和较短的总线长度,可以用非屏蔽双绞线或平行线做总线。为降低射频干扰,应该限制上升和下降的斜率。上升和下降的斜率可以通过Rs引脚与同地连接的电阻进行控制,斜率正比于Rs引脚上的电流输出。323 微控制器STC89C52单片机STC89C52是一个低电压,高性能CMOS8位单片机带有8K字节的可反复擦写的程序存储器(PENROM)。和512字节的存取数据存储器(RAM),这种器件采用STC公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单元,有较强的功能的STC89C52单片机能够被应用到控制领域中。引脚描述VCC:电源电压 GND:地P0口:P0口是一组8位漏极开路双向I/O口,即地址/数据总线复用口。作为输出口时,每一个管脚都能够驱动8个TTL电路。当“1”被写入P0口时,每个管脚都能够作为高阻抗输入端。P0口还能够在访问外部数据存储器或程序存储器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。P0口在闪烁编程时,P0口接收指令,在程序校验时,输出指令,需要接电阻。P1口:P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时输出一个电流。闪烁编程时和程序校验时,P1口接收低8位地址。P2口:P2口是一个内部带有上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时,可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个运行期间不变。闪烁编程或校验时,P2口接收高位地址和其它控制信号。P3口:P3口是一组带有内部电阻的8位双向I/O口,P3口输出缓冲故可驱动4个TTL电路。对P3口写如“1”时,它们被内部电阻拉到高电平并可作为输入端时,被外部拉低的P3口将用电阻输出电流。P3口除了作为一般的I/O口外,更重要的用途是它的第二功能,如下表所示:端口引脚第二功能P3.0RXDP3.1TXDP3.2INT0P3.3INT1P3.4T0P3.5T1P3.6WRP3.7RDP3口还接收一些用于闪烁存储器编程和程序校验的控制信号。RST:复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。ALE/:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现。EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。需要注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:震荡器反相放大器及内部时钟发生器的输入端。XTAL2:震荡器反相放大器的输出端。324 数字温度传感器DS18B20DSI8B20是DALLAS公司的最新单线数字温度传感器,它体积小、经济实惠。是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。它的测量温度范围为-55+125。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持35.5 V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。DSI8B20可以程序设定912位的分辨率,精度为0.5。可以选择更小的封装方式,更宽的电压适用范围。分辨率设定及用户设定的报警温度存储在EPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的,性能价格比也非常出色,继“一线总线”的早期产品后,DSI8B20开辟了温度传感器技术的新概念。本次设计CAN总线数据通信的温度采集就由DSI8B20完成。将DSI8B20的GND脚接地,VDD脚接高电平,而单总线DQ脚接单片机的外部中断1脚,具体的采集电路如图所示。温度采集电路3.2.5 八段数码管 LED(Light Editing Diode)是发光二极管的缩写。LED数码管里面有8只发光二极管,分别记着a、b、c、d、e、f、g、dp,其中dp为小数点,中间的是公共端(COM)。市面上用的数码管有两种:共阳极与共阴极。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。原理图如下图所示:3.2.674HC595 74HC595是一款漏极开路输出的COMS移位寄存器,输出端口为可控制的三态输出端,亦能串行输出控制下一级级联芯片。特点:(1)高速移位时钟频率Fmax25Mhz(2)标准串行(SPI)接口(3)COMS串行输出,可用于多个设备的级联74HC595电路图如下图所示:3.3 本章小结从图中可以看出,电路主要由4部分组成:微控制器89C52、独立CAN通信控制器SJAl000、CAN总线收发器TJA1050和数码管显示。微处理器89C52负责SJAl000的初始化,并通过控制SJAl000实现数据的接收和发送等通信任务。电路中SJAl000的AD0AD7连接到89C52的P0口,CS连接到89C52的P20。P20为低电平时,CPU片外存储器地址可选中SJA I 000,CPU通过这些地址可对SJA1000执行相应的读写操作。SJAl000的PAD、WR、ALE分别与89C52的对应脚相连,J,r接89C52的INTO,89C52也可以通过中断方式访问SJAl000。第四章 CAN数据通信接口模块软件设计 4.1 CAN总线数据通信程序 通信接口模块程序主要包括三部分:初始化子程序、发送子程序和接收子程序。初始化程序主要是通过CAN控制器控制段中的寄存器写入控制字,从而确定CAN控制器的工作方式等。有三种方式进入初始化程序:一是上电复位,二是硬件复位;三是软件复位,即在运行期间通过给CAN控制器发一个复位请求,置复位请求位为1。 CAN节点的主函数模块完成的工作是:根据接收到的控制命令消息的数据域信息帧代号,做出不同的处理,例如对节点进行初始化,从CAN总线接收和发送消息,进行控制命令中的数字输出等。 CAN总线收发主程序:#include #include #include #include unsigned char code numtab16=0x24,0x6F,0xE0,0x62,0x2B,0x32,0x30,0x67,0x20,0x22,0x21,0x38,0xB4,0x68,0xB0,0xB1;void delayms(unsigned int t);/* Function: main()/ 函数名称 Description: / 函数功能、性能等的描述 Calls: delayms()/ 被本函数调用的函数清单 Called By: / 调用本函数的函数清单 Table Accessed: / 被访问的表(此项仅对于牵扯到数据库操作的程序) Table Updated: / 被修改的表(此项仅对于牵扯到数据库操作的程序) Input: / 输入参数说明,包括每个参数的作 / 用、取值说明及参数间关系。 Output: / 对输出参数的说明。 Return: / 函数返回值的说明 Others: / 其它说明 */ void main()unsigned char i;WDT_CONTR= 0x00; /关闭看门狗DISP_PORT = numtab15; /显示F,表示发送delayms(200);TestCan();while(1)DISP_PORT = numtab0; /显示0delayms(50);DISP_PORT = numtab0; /显示1delayms(50);for(i=0;i16;i+) DISP_PORT = numtabi; /循环显示0F delayms(50);/* Function: delayms()/ 函数名称 Description: delay function/ 函数功能、性能等的描述 Calls: / 被本函数调用的函数清单 Called By: / 调用本函数的函数清单 Table Accessed: / 被访问的表(此项仅对于牵扯到数据库操作的程序) Table Updated: / 被修改的表(此项仅对于牵扯到数据库操作的程序) Input: t/ 输入参数说明,包括每个参数的作 / 用、取值说明及参数间关系。 Output: / 对输出参数的说明。 Return: / 函数返回值的说明 Others: / 其它说明 */ void delayms(unsigned int t)unsigned int i,j;for(i=0;it;i+)for(j=0;j0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10);return(dat);void ds1820wr(uchar wdata)/*写数据*/uchar i=0;for (i=8; i0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1; wdata=1; uchar read_temp()/*读取温度值并转换*/uchar a,b,shi,ge;ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();wendu=b;wendu=8;wendu=wendu|a;wendu=wendu*(0.625);/温度值扩大10倍,精确到1位小数shi=wendu%1000/100;ge=wendu%100/10;4.3 74HC595驱动数码管显示程序74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。74HC595驱动数码管显示程序:#include#include #define uint unsigned int#define uchar unsigned charsbit XSDAT=P00; /数据sbit XSCLK=P01; /时钟sbit GW=P02;int count=0;code uchar TAB=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uint l=0,h=0,tt=0,d=0; void delay(uint z) /延时函数 uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);static void WR_595(uchar data num2 )/写 uchar count1; for(count1=0;count1=7;count1+) if(num2&0x80)=0x80) /*最高位为1,则向SDATA_595发送1*/ XSDAT=1; /*发出数据的最高位*/ else XSDAT=0; num2=1; /*右移位*/ XSCLK=0; /*产生上生沿*/ XSCLK=1; void disp(void) WR_595(TAB1);/显示十位小时数码管的位 ,如果显示颠倒可以调整位选WR_595(TAB2);/显示个位小时数码管的位GW=0; _nop_(); _nop_(); GW=1; /*上升沿锁存数据*/ void main() while(1)disp();delay(1); 结论论文在阐述并研究了自动控制仪表的变迁和CAN现场总线协议规则的基础上,完成了基于CAN协议的CAN通讯,CAN通讯的硬件和软件设计。成功地把SJAl000 CAN控制器应用于CAN通讯中,实现了现场信号的采集、数字信号在CAN总线上的传输等功能。在软硬件设计中还采用了一系列的抗干扰措施,使得这个系统可适应较为恶劣的工作环境。基于CAN协议的现场总线仪表与传统的仪表相比,在功能上发生了飞跃,即实现了双向数字通信的功能,其可靠性高、稳定性好、抗干扰能力强、通信速率高、维护成本低,并且具有开放性、实时性,在自动控制领域得到较广泛的应用。基于CAN协议的CAN通讯检测仪表组成的CAN现场总线控制系统在容错处理,数据交换速度及可靠性等方面都是传统仪表系统所不可比拟的,它克服了其它通信方式的一些不可弥补的缺陷:例如网络上只能有一个主节点无法构成多主结构系统;数据传输速率低,环境干扰多,致使系统较复杂,可靠性低等缺陷。CAN现场总线技术以其可靠性高、稳定性好、抗干扰能力强、通讯速率高、维护成本

温馨提示

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

评论

0/150

提交评论