基于CAN总线的温度检测系统方案

上传人:痛*** 文档编号:98586855 上传时间:2022-05-30 格式:DOC 页数:35 大小:573.50KB
收藏 版权申诉 举报 下载
基于CAN总线的温度检测系统方案_第1页
第1页 / 共35页
基于CAN总线的温度检测系统方案_第2页
第2页 / 共35页
基于CAN总线的温度检测系统方案_第3页
第3页 / 共35页
资源描述:

《基于CAN总线的温度检测系统方案》由会员分享,可在线阅读,更多相关《基于CAN总线的温度检测系统方案(35页珍藏版)》请在装配图网上搜索。

1、 . . . 基于CAN总线的温度检测系统摘 要本设计以AT89S51单片机为核心的温度控制系统的工作原理和设计方法来研究CAN总线测控系统间数据通信、结构灵活、通用性号。我们还采用了单总线型数字式的温度传感器DS18B20,使系统具有测温误差小、分辨率高、抗干扰能力强,动态显示的方式等特点。选用SJA1000作为CAN总线的控制器与82C250芯片设计了CAN总线接口模块。82C250可以提供对总线的差动发送和接收功能,提高系统总线的节点驱动能力,增大通信距离,降低干扰。 传感器电路将感应到的温度信号以电压的形式输出到信号调理电路,信号经过调理后输入到A/D采样电路,由ADC将数字量值送给单

2、片机系统,最后单片机将采集到的数据送到CAN总线控制器,通过CAN总线收发器传上总线,完成数据采集从而实现温度控制的目的。温度检测无论在医疗电子领域还是工业控制领域应用都非常广泛,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制,医疗电子领域的生化分析仪等,部都涉与到温度控制,具有特别广阔的前景。关键字:AT89S51单片机 温度传感器DS18B20 SJA1000控制器 温度检测Based on CAN main lines temperature examination systemPicking Wanting窗体底端窗体顶端This design studies b

3、etween the CAN main line observation system take at89S51monolithic integrated circuit as the core temperature control systems principle of work and the design method the data communication, the structure nimble, the versatile numbers. We have also used single main line type number character style te

4、mperature sensor DS18B20, enables the system to have the temperature measurement error to be small, the resolution is high, ant jamming ability, dynamic demonstration characteristics and so on way. Selected SJA1000 has designed the CAN bus interface module as the CAN main lines controller and the 82

5、C250 chip. 82C250 may provide to main lines differential motion transmission and the receive function, sharpens system buss node driving force, increases the signal distance, reduces the disturbanceThe sensor electric circuit will induce the temperature signal outputs the signal recuperation electri

6、c circuit by the voltage form, the signal after the recuperation inputs to a/D sampling circuit, gives by ADC the digital size the monolithic integrated circuit system, finally the monolithic integrated circuit will gather the data delivers the CAN bus control unit, passes on the main line through t

7、he CAN main line transceiver, completes the data acquisition, thus realizes the temperature control goal.窗体顶端Regardless of the temperature examination is widespread in the medical electron domain or the industrial control domain application, the people need to each kind of heating furnace, the heat-

8、treatment furnace, the reactor and boilers temperature carry on the examination and the control, the medical electron domain biochemistry analyzer and so on, the interior involve to the temperature control, has the specially broad prospect.Key words: AT89S51 monolithic integrated circuit temperature

9、 sensor DS18B20 SJA1000 controller temperature examination目录引言 1第一章 绪 论 21.1 本设计研究的背景和实际意义21.2 研究设计相关容 21. 3 课题完成功能 3第二章 系统设计的基本方案 42.1 设计的主要思路 42.2 温度检测的总体方案设计 4第三章 CAN总线温度检测系统的硬件与设计 53.1 AT89S51单片机介绍 53.2传感器的选用DS18B20传感器83.3PCA82C250收发器,控制器SJAl000与6N137光耦合器 103.4 CAN总线接口电路设计 153.5 单片机的接口电路 16第四章 软

10、件设计 194.1 软件总流程图 204.2 系统程序设计 204.3主程序与子程序 20结论与展望 29致 30参考文献 31附录设计原理图3231 / 35引 言 自动控制系统在各个领域尤其是工业领域中有着与其广泛的应用,温度控制是控制系统中最为常见的控制类型之一。随着单片机技术的飞速发展,通过单片机对被控对象进行控制日益成为今后自动控制领域的一个重要发展方向。温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。

11、数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行围的温度检测。采用单片机AT89S51对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。 本文采用DS18B20测温芯片作为传感器,使用CAN总线标准,设计温度测试体统,该系统精度高,可靠性好,结构简单,成本底,

12、用于各种检测温度场合。窗体底端第一章 绪 论1.1 本设计研究的背景和实际意义CAN总线是德国一家公司在20世纪80年代初为解决汽车量的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。CAN能灵活有效地支持具有较高安全等级的分布式控制其数据传输速度可达1Mbps,在汽车、煤矿安全检测、自动化仪表、智能楼宇、机械制造等领域应用广泛。本文介绍了一种基于CAN总线的智能温、湿度检测系统,可应用于不同的工业自动化领域。CAN 即控制器局域网络,属于工业现场总线的畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能与独特的设计,CAN总线越来越受到人

13、们的重视。由于CAN总线本身的特点,CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。CAN(Controller Area Network控制器局域网)是一种有效的支持分布式控制和实施控制的总线式串行通信网络,其可靠性远高于已经1日的现场通信技术,具有强有力的检错功能以与优先权和仲裁功能,可以很容易的实现多个单片机的挂载,并且价格低廉,结构灵活,维护方便,已经成为国际上应用最广泛的现场总线之一。另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是目前 CAN总线应用于众多领域,具有强劲的市场竞争力的重要

14、原因。CAN通信的特点:(1)CAN是到目前为止唯一具有国际标准且成本较低的现场总线;(2)CAN废除了传统总线的站地址编码,对通信数据块进行编码,为多主方式工作,不分主从,通信方式灵活,通过报文标识符通信,可使不同的节点同时接收到一样的数据,无需站地址等节点信息。(3)CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则有可能出现这种情况)。(4)CAN只需通过报文滤波即可实现点对点、一点对多点即全局广播等方式传

15、送接收数据,无需专门的“调度”。(5)CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可lambs(此时通信距离最长为40m);(6)CAN上的节点数最多可达110个(主要取决于总线驱动电路)。(7)CAN采用短帧结构,单帧最大长度仅150位,传输时间短,从而保证了通信的实时性,受干扰概率低。(8)CAN的每帧信息都有CRC校验与其他检错措施,降低了数据出错率,保证了数据通信的可靠性。(9)CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。(10)CAN的通信介质可使用双绞线作为传输介质,价格低廉,可靠性强。1.2 研究设计相关容 随着

16、科技的进步和时代的发展,温度在人们的生产和生活中扮演的角色越来越重要。因此在现代的生产和生活中对温度进行监测便有了十分重要的意义。但是,目前常用的温度监测系统大多存在至少两大缺点:其一,使用的通信网络可靠性低,抗干扰能力差,成本高;其二,线路上传送的是模拟信号,易受干扰和损耗。为了克服这些缺点,本文提出了将目前最有前途之一的CAN总线技术与数字化传感器技术结合起来的设计思想,实现了基于CAN总线的智能化温度检测系统。温度测量控制系统在工业、农业与人们的日常生活中扮演着越来越重要的角色,它对人们的生活具有很大的影响,所以温度检测系统的设计与研究有十分重要的意义。温度是生产过程和科学试验中普遍存在

17、的物理量,许多领域都需要对温度进行监控。温度检测对于国民经济等各领域有着非常重要的意义和价值,因此良好的温度检测系统对于温度检测来说就显得尤为重要。本文研究的温度检测系统就是为了完成本单位温度检测工作。由于工作要求精度高,测量围广,需要研制一种方便的以精密铂电阻为标准传感器的高精度数字温度检测系统。精度问题是本系统需要解决的一个非常重要的问题,要求检测精度达到0.05。用DSl8820温度传感器对测量点的温度进行采集,可测量多点温DSl8820温度,单片机负责将采集到的各温度值进行处理,然后将测量值传输到CAN总线上,多个CAN总线通信系统可构成CAN总线通信网络,彼此进行通信,温度监测系统作

18、为网络中的一个智能节点,CAN总线系统很容易扩展成多点的温度监测网络,以实现对较大系统的温度实时监测任务。1.3 课题完成功能 利用AT89S51单片机、SJA1000CAN控制器设计开发基于智能节点的CAN网络,实时监测各个节点状态并发送状态信息。第二章 系统设计的基本方案2.1 设计的主要思路整个系统智能节点和一台主控制器组成。主控制器和智能节点通过CAN总线连成网络。智能节点每个1秒采集一次温度值,将采集到的温度值在本机显示并通过CAN总线传输到主控制器。主控制器接收智能节点的温度值并显示,并可通过CAN总线向智能节点发送温度。2.2 温度检测的总体方案设计 根据应用场合的需要,本温度测

19、控系统主要完成的功能有:对热电偶温度传感器Pt100的信号进行检测;利用数字温度传感器DS18B20对温度的检测;现场LED显示数字温度信号以与键盘控制功能;主站通过CAN总线与下位机通信,实现对整个系统的监控。系统主要由:监控模块、测温模块、现场显示模块和CAN 总线通信等部分组成。设计方案原理图如下:第三章 CAN总线温度检测系统的硬件与设计3.1 AT89S51单片机介绍 AT89S51是一个低功耗,高性能CMOS 8位单片机,片含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易

20、失性存储技术制造,兼容标准MCS-51指令系统与80C51引脚结构,芯片集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51方框图AT89S51方框图如上图,AT89S51提供一下标准功能:4K字节Flash闪速存储器,128字节部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片振荡器与时钟电路。同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RA

21、M,定时/计数器,串行通信口与诊断系统工作。掉电方式保存RAM中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。AT89S51单片机引脚图 AT89S51具有如下特点:40个引脚,4k Bytes Flash片程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉

22、电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 1主要特性: (1) 8031 CPU与MCS-51 兼容 (2) 4K字节可编程FLASH存储器(寿命:1000写/擦循环) (3) 全静态工作:0Hz-33MHz (4) 三级程序存储器锁定 (5) 128*8位部RAM (6) 32条可编程I/O线 (7) 两个16位定时器/计数器 (8) 6个中断源 (9) 可编程串行通道 (10) 低功耗的闲置和掉电模式 (11) 片振荡器和时钟电路 2管脚说明: VCC:供电电压。 GND

23、:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个部上拉电阻的8位双向I/

24、O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为

25、低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的容读入到部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读

26、入到部总线。上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。89C51的P

27、0/P1/P2/P3口作为输入时都是准双向口。接下来让我们再看另一个问题,从图中可以看出这四个端口还有一个差别,除了P1口外P0P2P3口都还有其他的功能。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。

28、此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入

29、与部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。 3.2 传感器的选用DS18B20传感器DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms完成9位和12位的数字量,并且从DS18B20读出的信息或写

30、入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 DS18B20产品的特点(1) 只要求一个端口即可实现通信。(2) 在DS18B20中的每个器件上都有独一无二的序列号。(3) 实际应用中不需要外部任何元器件即可实现测温。(4) 测量温度围在55。C到125。C之间。(5) 数字温度计的分辨率用户可以从9位到12位选择。(6)

31、部有温度上、下限告警设置。DS18B20 外形结构图DS18B20部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。 由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序

32、。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 下图表示DS18B20的方框图,上图已经给出了引脚说明。64位只读存储器存储器件的唯一片序列号。高速暂存器含有两个字节的温度寄存器,这两个寄存器用来存储温度传感器输出的数据。除此之外,高速暂存器提供一个直接的温度报警值寄存器(TH和TL),和一个字节的配置寄存器。配置寄存器允许用户将温度的精度设定为9,10,11或12位。TH、TL和配置寄存器是非易失性的可擦除的程序寄存器(EEPR

33、OM),所以存储的数据在器件掉电时不会消失。 DS18B20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯。当全部器件经由一个3态端口(DQ引脚在DS18B20上的情况下)与总线连接的时候,控制线需要连接一个上拉电阻。在这个总线系统中,微控制器(主器件)依靠每个器件独有的64位片序列码辨认总线上的器件和记录总线上的器件地址。由于每个装置有一个独特的片序列码,总线可以连接的器件数码事实上是无限的。单总线协议,包括指令的详细解释和“时序”。 DS18B20的写时序仍然分为写0时序和写1时序两个过程。DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS

34、18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之就得释放单总线。DS18B20的写时序 DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20的读时隙是从主机把单总线拉低之后,在15秒之就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的读时序3.3 PCA82C250收发器,控制器SJAl000与6N137光耦合器CAN总线驱动器PCA82C250CAN总线驱动器PCA82C250主要提供CAN控制器与物理总线之间的接口。它

35、最初是为汽车中的高速应用(达1Mbps)而设计的,可提供对总线的差动发送和接收功能。PCA82C250收发器CAN总线控制器 SJAl000是PHILIPS公司推出的一种高性能的CAN总线控制器,它不仅和PCA82C200的基本CAN模式(Basie CAN)兼容,而且还增强CAN模式 (Pelican),这种模式支CAN20B协议。SJA1000的主要性能特点如下: 引脚与PCA82C200独立CAN控制器兼容 电器特性与PCA82C200独立CAN控制器兼容 具有BasicCAN模式 有扩展的接收缓冲器64字节,先进先出(FIFO)。 支持CAN2.0A/B协议 支持11位(标准帧)和29

36、位标识码(扩展帧) 通信位速率最高可达1Mbps PeliCAN模式的扩展功能有 可读写访问的错误计数寄存器 可编程的错误报警限额寄存器 最近一次错误代码寄存器 对每一个CAN总线错误的中断 有具体位表示的仲裁丢失中断 单次发送(无重发) 只听模式(无确认、无激活的错误标志) 支持热插拔 验收滤波器的扩展 接收自身报文 24MHz时钟频率 输入电压:5.0VDC+/-5% 可与不同的微处理器接口 可编程的CAN输出驱动器配置 温度适应围:-40+125 SJAl000以一块可编程芯片上的逻辑电路的组合来实现这些功能,提了与模块控制器与微控制器的接口,通过对它的编程,CPU可设置它的工作方式,控

37、制它的工作状态,与CAN驱动器PCA82C250进行数据的接收和发送。SJA1000的功能框图如表下所示。SJA1000的功能框图SJA1000型独立CAN总线控制器由以下几部分构成;(1) 接口管理逻辑:它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。(2) 发送缓冲器:有13字节长。它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由SBP读出。(3) 接收缓冲器(RXB、RXFIFO):它是CPU和接收滤波器之间的接口,用来存储从CAN总线接收并通过了滤波的报文。接收缓冲器RXB是提供给CPU可访问的1

38、3字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。有了这个FIFO,可以在CPU处理一个报文的同时继续接收其他到来的报文。(4) 接收滤波器:它把报文头中的标识符和接收滤波寄存器中的容进行比较,以判断文报文是否被接收。如果被接收,报文存入RXFIFO。(5) 位流处理器:它是一个控制发送缓冲器、RXFIFO并行数据和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。(6) 位定时逻辑不:它将SJA1000同步于CAN总线上的位流。(7) 错误管理逻辑:它按照CAN协议完成错误界定。6N137光耦合器 6N13

39、7光耦合器是一款用于单通道的高速光耦合器。在6N137光耦合器的电源管脚旁应有个0.1uF的去耦电容。在选择电容类型时,应尽量选择高频特性好的电容器,如瓷电容或钽电容,并且尽量靠近6N137光耦合器的电源管脚;另外,输入使能管脚在芯片部已有上拉电阻,无需再外接上拉电阻。3.4 CAN总线接口电路设计CAN 总线通信控制器的硬件电路结构如下所示。主要包括主控制器、时钟保持电路、非易失性EEPROM存储器、CAN总线接口电路和RS232 接口电路。主控制器采用性价比高、结构简单、便于编程的AT89S51 单片机,主要用于对CAN 控制器SJA1000 与RS232 串口的初始化,并通过对CAN 控

40、制器SJA1000 与RS232 串口的控制操作实现现场CAN 总线与管理层中央服务器PC 的数据交换等通信任务。 CAN 总线接口电路的构成主要由CAN 通信控制器SJA1000、高速光耦6N137 CAN 总线驱动器82C250 组成。SJA1000 作为CAN 总线协议转换的控制器,它建BASICCAN 协议,并提供对CAN2.0B 协议的支持。通过对片寄存器的读、写操作,主控制器单片机能够设置CAN 总线通信模式,实现数据的发送与接SJA1000 在逻辑上实现了传输数据的编码和解码,若要与物理线路连接,还必须助总线驱动器82C250,以增强CAN总线的差动发送和接收驱动能力。为了增强C

41、AN 总线节点的抗干扰能力,防止线路间串扰,SJA1000 的TX0 和RXO 并不是直接与82C250 的TXD 和RXD 相连,而是通过高速光耦6N137 后再与82C250 相连;另外,CAN 总线驱动器采用带隔离的DC/DC 模块单独供电,实现了通信控制器与CAN 总线的隔离,提高系统的可靠性。这里我们采用PCA82C250 作为驱动收发器5,它是CAN控制器和物理传输线路之间的接口。它们可以用高达1Mbs的位速率实现在两条差动电压总线电缆上的数据传输。82C250的CANH 和CANL 引脚各自通过一热敏电阻CAN 总线相连,当过流时电阻发热阻值变大,保护82C250 免受过流的冲击

42、。CANH CANL 与地之间并联两个小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。 RS232 接口电路主要用于主控制器单片机与管理层中央服务器PC 的双向数据传送。由于采用了标准的RS232 串行通信,结构简单、成本低。CAN 总线系统电路主由四部分所构成:微控制器AT89S51,CAN 控制器SJA1000,CAN 总线收发器82C250 和高速光电耦合器6N137 微处理器。CAN 总线系统硬件电路原理图89S51 负责SJA1000 的初始化,通过控制SJA1000 实现数据的接收和发送等通信任务。SJA1000 的AD0 Dl7 连接到AT89S51 的PO口,CS

43、 连接到AT89S51 的P20,P20 为0 的CPU 片外存贮器地址可选中SJAI000,CPU 通过这些地址可对SJAl000执行相应的读写操作。SJAl000的RD、WR、ALE 分别与AT89S51 的对应引脚相连。INT 接A89S51 的INT0,89S51 也可通过中断方式访问SJA1000。SJAI000和82C250分别使用物理隔离的电源供电,是为了增强系统的抗干扰能力和可靠性。不过应该特别说明的一点是光耦部分电路所采用的两个电源VCC 和VDD 必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块或带多5V 隔离输出的开关电源模块实现。这些部分

44、虽然增加了节点的复杂,但是却提高了节点的稳定性和安全性。控制器的其它外围电路还有电源模块、非易失性EEPROM存储器、时钟保持电路、LED 指示灯和看门狗等。通过简单的串行接口与单片机进行通信,用于给各节点控制器校时。同时,控制器还配置了4 个LED 指示灯,分别用于系统上电、CAN 通信、RS232 通信和系统通信故障的指示,以方便系统的调试和对控制器运行状况的监测。3.5 单片机的接口电路 单片机时钟电路: AT89S51中有一个用于构成部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈的元件的片外石英晶体和瓷谐振器一起构成自激振荡器

45、,振荡电路参见下图外接石英品体(或瓷谐振器)与电容C1, C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序与温度稳定性,如果使用石英品体,我们推荐电容使用30pF士10pF,而如使用瓷谐振器建议选择40pF士l0pF。用户也可以采用外部时钟。采用外部时钟的电路如下图所示。这种情况下,外部时钟脉冲接到XTAL1端,即部时钟,发生器的输入端,XTAL2则悬空。 单片机复位电路: 当在AT89S51单片机的RST引脚引入高电平并保持2个机器周期时,单片机部就执行复位操作(如果RST引脚

46、保持高电平,单片机就处于循环复位状态)。 实际应用中,复位操作有两种基本操作:一种是上电复位,另一种是上电与按键均有效的复位。上电复位要求接通电源后,单片机自动实验复位操作。常用的开机复位电路如图所示。开机瞬间RST引脚获得高电平,随着电容C1的充电,RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。该电路典型的电阻和电容参数为:晶振频率为12MHz时,C1为10F,R1为8.2K;晶振频率为6MHz时,C1为22F,R1为1K开机与按键均有效的复位电路如下图所示。开机复位原理与上图一样,另外在单片机运行期间,还可以利用按键完成复位

47、操作。晶振频率为6MHz时,R2为200。时钟电路 单片机部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机部产生时钟脉冲信号。电容器C1和C2的作用是稳定频率和快速起振,电容值在530pF,典型值为30pF。外部时钟方式是把外部已有的时钟信号引入到单片机。此方式常用于多片单片机同时工作,以便于各单片机的同步。一般要求外部信号高电平的持续时间大于20ns,且为频率低于12MHz的方波。

48、DS18B20接口电路在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。我们采用的是第一种连接方法,如图所示,把DS18B20的数据线与单片机的13管脚连接,再加上上拉电阻。第四章 软件设计4.1 软件总流程图4.2 系统程序设计CAN 总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。熟悉这三部分程序的设计就能编写出利用CAN总线进行通信的一般应用程序,当然要将CAN总线

49、应用于通信任务比较复杂的系统中还需详细了解有关CAN总线错误处理总线脱离处理接收滤波处理波特率参数设置和自动检测以与CAN总线通信距离和节点数的计算等方面的容。程序用语言编写,简洁明了且有详细的注释,并写成头文件的形式,可移植更强。4.3 主程序与子程序包括定时发送、中断接收、温度显示。/*头文件*/#include “reg51.h”#include“intrins.h”#include“absacc.h”#include “sja1000reg.h”#include “sja1000.h”#include “ds18b20.h”/*数据类型*/#define uchar unsigned

50、char#define uint unsigned int/*管脚定义*/#define SEG_WORDPORT P1/段码#define SEG_DIGPORT P2/位码uchar code Seg_Code10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*函数声明*/void Cpu_Init(void);void Display_Seg(uchar wd_h,uchar wd_l);/*数据定义*/*主程序*/main()uchar *Tempcode;Delay(0,0);/0.524sDelay(0,0);/0.524s

51、/复位后延时等待系统外围复位完成Cpu_Init();/CPU初始化Sja1000_Init();/SJA1000初始化DQ=0; /DS18B20开始工作while(1)Tempcode=DS18B20_RdTemp(); /读温度值Display_Seg(*(Tempcode+1),*Tempcode);/显示/*CPU初始化*/void Cpu_Init()EA=0;IT0=1; EX0=1;/开外部中断0TMOD=0X01; ET0=1; /开定时中断0TH0=0X3C; TL0=0XB0;/方式1,50ms定时TR0=1;EA=1;/开总中断LED=0; /led亮SW_JDQ=1;

52、/继电器开,加热/*数码管显示*/void Display_Seg(uchar wd_h,uchar wd_l)uchar buf4;/显示单元uchar I;uchar dig=0x01;wd=(wd_h&0x07)*16+(wd_l&0xf0)4);/温度值if(wd!=85)/屏蔽85度,因开机为85?buf3=Seg_Codekw&0xf0;/控制温度的十位buf2=Seg_Codekw&0x0f;/控制温度的个位buf1=Seg_Codewd/10%10;/测量温度的十位buf0=Seg_Codewd%10;/测量温度的个位for(i=0;i4;i+)/4个数码管SEG_WORDPO

53、RT=0xff;/清屏SEG_DIGPORT=digI;/位码SEG_WORDPORT=bufi;/段码Delay(50,125);/延时 /*外部0中断*/void int0()interrupt 0/接收中断Sja1000_RX();/SJA1000接收/*定时0中断*/void time0() interrupt 1 /定时发送uchar n;TR0=0;TH0=0X3C; TL0=0XB0;TR0=1;n+;if(n=20)/1sn=0;Sja1000_TX();/SJA1000发送sja1000reg.h头文件用伪指令“define”来定义外部地址。/*PeliCAN模式SJA100

54、0的部寄存器地址的定义*/#define SJA_ADR 0X0000/片选直接接高#define MODE XBYTESJA_ADR+00/模式寄存器#define CMR XBYTESJA_ADR+01/命令寄存器#define SR XBYTESJA_ADR+02/状态寄存器#define IR XBYTESJA_ADR+03/中断寄存器#define IER XBYTESJA_ADR+04/中断使能寄存器#define BTR0 XBYTESJA_ADR+06/时序寄存器0#define BTR1 XBYTESJA_ADR+07/时序寄存器1#define OCR XBYTESJA_A

55、DR+08/输出控制寄存器#define TEST XBYTESJA_ADR+09/测试寄存器#define ALC XBYTESJA_ADR+11/仲裁丢失捕捉寄存器#define ECC XBYTESJA_ADR+12/错误代码捕捉寄存器#define ELWR XBYTESJA_ADR+13/错误报警限额寄存器#define RXERR XBYTESJA_ADR+14/RX错误计数器#define TXERR XBYTESJA_ADR+15/TX错误计数器/#define TXB XBYTESJA_ADR+16/报文发送缓冲区(操作模式下)/#define RXB XBYTESJA_ADR+16/报文接收缓冲区(操作模式下)#define TXSFFXBYTESJA_ADR+16/TX标准帧报文缓冲区(操作模式下)#define TXID1XBYTESJA_ADR+17/TX ID1(操作模式下)#define TXID2XBYTESJA_ADR+18/TX ID2(操作模式下)#define TXDATA1XB

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