完整版基于CAN总线的多点温度监测及报警系统设计毕业论文设计40论文41.docx
《完整版基于CAN总线的多点温度监测及报警系统设计毕业论文设计40论文41.docx》由会员分享,可在线阅读,更多相关《完整版基于CAN总线的多点温度监测及报警系统设计毕业论文设计40论文41.docx(43页珍藏版)》请在冰豆网上搜索。
完整版基于CAN总线的多点温度监测及报警系统设计毕业论文设计40论文41
基于CAN总线的多点温度监测及报警系统设计
摘要
本文设计的是一套基于CAN总线的多点温度检测及报警系统,主要是对粮仓的温度监控,以确保储粮的安全。
系统设计分为主控模块和监控模块。
主控监控两模块的微处理器都采用AT89S52单片机。
为了实现主控模块对监控模块的实时监测,在主控端和监控端处都设计有CAN通信电路,由控制器SJA1000和收发器82C250组成CAN通信接口。
另外,主控端的外围电路部分包括时钟电路功能模块、EEPROM存储电路模块、串口通信电路模块、译码电路功能模块、液晶显示屏模块;监控端的外围电路部分为温度传感器。
主控端的时钟芯片选用DS12887,EEPROM存储芯片选用户AT24C16,显示屏采用FM12232B液晶模块。
监控端的温度传感器采用数字传感器DS18B20,系统设置温度传感器的阐值为50℃。
本文给出了系统的结构和软硬件设计方案,可实现实时温度测量、越限报警等功能。
该系统具有可靠性好、通信速率高、抗干扰能力强等特点。
本系统还适用于在粮仓、北方暖气和热水供应中心、大面积水泥铺建等多种场合。
关键词:
CAN总线;DS18B20;AT89S52
BasedonCANbusmultipointtemperaturemonitoringandalarmingsystemdesign
ABSTRACT
Thispaperdesignsamulti-pointtemperaturedetectionandalarmsystembasedonCANbus,thissystemismainlyusedtomonitorthetemperatureofgranary,toensurethesafetyofthestoredgrain.
Thissystemisdividedintothemaincontrolmoduleandthesurveillancemodule.ThemicroprocessorofthemaincontrolmoduleandthesurveillancemodulebothuseDSPAT89S52microcontroller.Inordertoachievereal-timemonitoringandmeasuringofthesurveillancemodule,CANcommunicationscircuitsaredesignedattheportofthemaincontrolmoduleandthesurveillancemodule,whichiscomposedbythecontrollerSJA1000andthe82C250communicationsinterface.Inaddition,theexternalcircuitsectionofthemaincontrolmoduleincludestheclockcircuitmodules,EEPROMmemorycircuitmodule,serialcommunicationcircuitmodule,decodingcircuitmodules,LCDmodules;themainportionoftheexternalcircuitsectionofthesurveillancemoduleisthetemperaturesensor.TheclockchipofthemaincontrolmoduleusesDS12887,theEEPROMmemorychipcanselectAT24C16,theLCDdisplaymodulecanselectFM12232B.ThetemperaturesensorofthesurveillancemoduleusethedigitalsensorDS18B20,thelininalvalueofthetemperaturesensorissettedat50℃bythesystem.
Thispaperpresentsthearchitectureofthesystemandtheproposal,enablingthefunctionofreal-timetemperaturemeasurementandtheoff-limitedalarm.Thesystemrate,stronganti-interferenceandsoon.Thissystemcanalsobeappliedtothegranary,thenorthcentral,国际标准化组织)的OSI(OpenSystemInterconnertion,开放系统互连)七层模型中数据链路层的媒体访问控制子层以及物理层的物理信号部分。
目标层和传输层包含所有由ISOOSI模型定义的数据链路层的服务和功能。
由于CAN的数据结构简单,又是范围较小的局域网,因此不需要其他中间层,应用层数据直接取自数据链路层或直接向链路层写数据。
结构层次少有利于系统中实时控制信号的传送。
图2.2CAN协议的分层结构
CAN协议的分层结构如图2.2所示。
PMA子层和MDI子层有多种规范,由不同的组织制定,可应用在不同的领域和场合。
CAN层的定义与开放系统互连模型(OSI)一致,每一层与另一设备上相同的那一层通讯,实际的通讯发生在每一设备上的相邻的两层,而设备只通过模型物理层的物理介质互连,表2-1中展示了OSI开放式互连模型的各层。
应用层协议可以由CAN用户定义成合适特别工业领域的任何方案,已在工业控制和制造业领域得到了广泛应用的标准是DeviceNet,这是PLC和智能传感器设计的,在汽车工业,许多制造商都应用他们的标准。
表2-1OSI开放系统互连模型
7
应用层
最高层用户软件网络终端等之间用来进行信息交换如DeviceNet
6
表示层
将两个应用不同数据格式的系统信息转化为能共同理解的格式
5
会话层
依靠低层的通信功能来进行数据的有效传递
4
传输层
两通信节点之间数据传输控制操作如数据重发数据错误修复
3
网络层
规定了网络连接的建立维持和拆除的协议如:
路由和寻址
2
数据
链路层
规定了在介质上传输的数据位的排列和组织如数据校验和帧结构
1
物理层
规定通讯介质的物理特性如电气特性和信号交换的解释
CAN物理层定义了传输线和硬件的机械、电气和电信号特征及功能。
机械特征包括连接器尺寸、类型等;电气特性包括最大传输速率、最大传输距离、信号电平状态代表意义等;电信号特征包括对应电平信号的逻辑信号、信号的传输时序、数据采样方式等。
但在CAN2.0AB中对物理层部分的内容做了规定,而在ISO11898标准中的内容更加具体,但没有指明通讯介质的材料,因而用户可以根据自己的需要选择双绞线,同轴电缆或光纤,最常用的就是双绞线。
表2-2CAN总线长度与传输距离的关系
CAN总线波特率
任意两节点间的最大距离
1Mbps
40m
500kbps
130m
250kbps
270m
125kbps
530m
100kbps
620m
50kbps
1.3km
20kbps
3.3km
10kbps
6.7km
5kbps
10km
CAN网络的速度取决于总线的长度。
控制器最快能达到1Mbps,但对总线长度有限制。
对于50m长的总线,最大波特率是1Mbps,而对于150m的总线,波特率约为0.5Mbps。
CAN网络上的任意两个节点之间的最大传输距离与其位速率有关,其对应关系见表2-2所示。
图2.3总线位的数值表示
CAN总线上的电平形式中的总线数值为两种互补逻辑数值之一:
“显性”或“隐性”。
显性数值表示逻辑“0”,而“隐性”数值表示逻辑“1”。
“显性”和“隐性”同时发送时,最后总线数值将显示为“显性”。
在“隐性”状态下,
和
被固定于平均电压电平,
近似为0。
在总线空闲或“隐性”位期间,发送“隐性”状态。
“显性”状态改写“隐性”状态并发送。
总线位的数值表示如图2.3所示。
(差动传输方式)
2.2.4.2报文传输及其帧结构
图2.4数据帧标准格式中的仲裁场结构
CAN总线的数据传输由以下4个不同的帧类型所表示和控制,它们分别是[7]:
数据帧:
数据帧将数据从发送器传送到接收器。
远程帧:
总线单元发出远程帧,请求发送具有相同标识符的数据帧。
错误帧:
任何单元检测到总线错误就发出错误帧。
超载帧:
超载帧用以在相邻的数据帧或远程帧之间提供附加的延时。
数据帧和远程帧用一个帧空间与前面的帧分开。
以下将逐一对各帧的结构做详细介绍。
CAN技术规范2.0B中有两种不同的帧格式,标准帧和扩展帧。
不同之处在于每帧的标识符的长度不同:
标准帧的标识符长度为11位,而扩展帧的长度则为29位。
标准格式和扩展格式的仲裁场格式不同。
在标准格式中,仲裁场由11位标识符ID和远程发送请求位RTR组成。
11位标识符为ID.28~ID.18,如图2.4所示。
数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。
数据场的长度可为0。
数据帧的结构如表2-3所示。
表2-3数据帧结构
……
帧起始
仲裁场
控制场
数据场
CRC场
ACK场
帧结束
……
帧起始(SOF)标志数据帧和远程帧的起始,仅由一个显性位构成。
只有在总线处于空闲状态时才允许站开始发送。
所有站都必须同步于首先开始发送的那个站的帧起始前沿。
而在扩展格式中,仲裁场由29位标识符、SRR位、IDE位和RTR位组成,标识符为ID.28~ID.0,如图2.5所示。
图2.5数据帧扩展格式中的仲裁场结构
控制场由6位组成。
其结构如图2.6所示。
图2.6控制场结构
标准格式的控制场结构和扩展格式的不同。
标准格式里的控制场包括数据长度码DLC,IDE位及保留位r0;扩展格式里的控制场包括DLC和两个保留位r1和r0。
保留位必须发送显性位。
数据长度码指出数据场的字节数目。
数据长度码为4位,在控制场中发送。
数据字节的允许数目为0~8。
远程帧由6个不同的位场组成:
帧起始、仲裁场、控制场、CRC场、应答场和帧结束。
与数据帧相反,远程帧的RTR位是隐性位。
远程帧不存在数据场,DLC的数值没有意义,它可以是0~8中的任何数值,这一数值为对应数据帧的DLC。
错误帧由两个不同场组成,第一个场由来自各站的错误标志叠加得到,第二个场是出错界定符。
有两种形式的错误标志,一种是活动错误标志,另一种是认可错误标志。
活动错误标志由6个连续的显性位组成,认可错误标志由6个连续的隐性位组成。
超载帧包括两个位场:
超载标志和超载界定符。
有三种超载条件会导致超载标志的发送:
一是要求延迟下一个数据帧或远程帧的内部条件,二是在间歇场的第1位和第2位检测到显性位,三是如果CAN节点在错误界定符或超载界定符的第8位(最后一位)采样到一个显性位,节点会发送一个超载帧(不是错误帧)。
超载标志由6个显性位组成,所有形式对应于活动错误标志形式。
超载界定符由8个隐性位组成,与出错界定符具有相同的形式。
2.2.4.3报文滤波
CAN总线通过报文滤波技术,可以实现点对点、一点对多点及全局广播等多种数据传送方式[8]。
报文滤波技术实际是通过屏蔽寄存器和滤波寄存器来实现。
屏蔽寄存器设定需要校验的二进制位,滤波寄存器存储需比较的数值。
对这一概念的理解有助于深刻了解CAN协议的原理及其硬件结构,为软件的实现打下基础。
滤波寄存器和屏蔽寄存器决定是否将信息装入接收缓冲区。
信息帧仲裁场的标识符与滤波寄存器中的值比较,如果二者相等,则将信息装入相应的接收缓冲区。
屏蔽寄存器的作用是决定标识符的哪些位需要与滤波寄存器比较。
如果屏蔽寄存器的每一位为1,那么这一位会自动接收,无须与滤波寄存器的相应位进行比较。
可见如果信息标识符的高字节为11001101,屏蔽寄存器值为00001111,若滤波寄存器的值为11001101则将数据收入缓冲区。
也就是说满足下列两等式之一,则报文被接收。
(ID.10~ID.3)≡(AC.7~AC.0)
(AM.7~AM.0)≡11111111
屏蔽寄存器和滤波寄存器存放在CAN控制器中,其自动识别标识符的功能由硬件实现,但滤波寄存器和屏蔽寄存器的值需要软件设定。
3基于CAN多点温度检测系统的总体设计
3.1系统总体方案设计
温度检测系统有则共同的特点:
测量点多、环境复杂、布线分散、现场离监控室远等。
若采用一般温度传感器采集温度信号,则需要设计信号调理电路、AD转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。
这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降。
所以多点温度检测系统的设计的关键在于两部分:
温度传感器的选择和远程通信的设计。
温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。
系统采用针对传统温度测温系统测温点少,系统兼容性及扩展性较差的特点,运用分布式通讯的思想。
设计一种可以用于大规模多点温度的检测报警系统。
系统的主控模块与监控模块之间采用CAN总线进行数据传输,从而成为总线上的监控节点。
系统组成框图如下图3.1。
图3.1系统组成框图
3.2系统设计的主要器件选择
在粮库、仓库中温度是主要的参数,本设计要求设计温度参数的自动检测系统,该系统由单片机或其它微型机来完成,并实现显示温度值,当测量到的温度超过用户界限时报警。
目前CAN总线已被公认为是最有前途的几种现场总线之一。
因其高性能价格比、实现简单等突出优点深得越来越多的研发人员的青睐,CAN控制器有82C250、SJA1000及Intel8252682527等;根据当前市场、开发工具和课题的实际需要,系统的智能节点均选用ATMEL8位单片机AT89S52为微处理器,并选取PhiliPs公司的SJA1000CAN控制器以及PCA82C250总线收发器,主要考虑到SJA1000支持CAN2.0AB协议,而82C250可以支持110个CAN节点,并且国内市场上PhiliPs的产品型号比较多,购买比较方便。
3.2.1微处理器
AT89S5152系列单片机是美国ATMEL公司生产的一种低功耗、高性能的片内有4K8K快闪可编程擦除只读存储器(FPEROM)的8位COMS微控制器。
除与8031引脚和指令系统完全兼容外,又增加了许多新的功能。
AT89S52具有8K在系统可编程Flash存储器。
使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位IO口线,看门狗定时器,2个数据指针,三个16位定时器计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最新的89S系列时钟频率支持到了3MHz,包含看门狗定时器WDT、2个数据指针等新功能,极大的增强了单片机的性能,是目前取代MCS-51单片机的主流芯片之一。
故本系统选用AT89S52单片机作为微控制器。
AT89S52单片机主要性能:
●与MCS-51单片机产品兼容
●8K字节在系统可编程Flash存储器
●1000次擦写周期
●全静态操作:
0Hz~33Hz
●三级加密程序存储器
●32个可编程IO口线
●三个16位定时器计数器
●八个中断源
●全双工UART串行通道
●低功耗空闲和掉电模式
●掉电后中断可唤醒
●看门狗定时器
●双数据指针
●掉电标识符
3.2.2SJA1000控制器
SJA1000是一个独立的CAN控制器,SJA1000是PHILIPS公司早期CAN控制器PCA82C200的替代品,功能更强,增加了一种新的工作模式(PeliCAN),这种模式支持CAN2.0B协议[9]~[12]。
SJA1000主要负责把并行的数据转换成CAN的格式进行发送和接收。
它内部自带发送和接收缓冲,并有超强的错误报警和双重滤波处理。
SJA1000具有如下特点:
①完全兼容PCA82C200及其工作模式,即BASICCAN模式;
②具有扩展的接收缓冲器,64字节的FIFO结构;
③支持CAN2.0B;
④支持11位和29位识别码;
⑤位速率可达1Mbits;
⑥支持peliCAN模式及其扩展功能;
⑦24MHz的时钟频率;
⑧支持与不同微处理器的接口;
⑨可编程的CAN输出驱动配置;
⑩增强了温度范围(-40℃~+125℃)。
SJA1000的硬件结构框图如图3.2所示。
图3.2中,SJA1000由CAN核心模块、接口管理逻辑、发送缓冲区、验收滤波器单元、接收FIFO(先入先出)等几部分组成。
图3.2SJA1000的硬件结构框图
CAN核心模块负责CAN信息帧的收发和CAN协议的实现。
接口管理逻辑负责同外部主控制器的接口,该单元中的每一个寄存器都可由主控制器通过SJA1000的地址数据总线访问[13]。
发送缓冲区可存储一个完整的信息帧,长度为13字节。
主控制器可直接将标识符和数据送入发送缓冲区,然后置位命令寄存器(CMR)中的发送请求位TR,启动CAN核心模块读取发送缓冲区中的数据,按CAN协议封装成一个完整的CAN信息帧,提供给收发器发往总线。
SJA1000主要由接口管理逻辑IML、信息缓冲器(含发送缓冲器TXB和接收缓冲器RXFIFO)、位流处理器BSP、接收过滤器ASP、位时序处理逻辑BTL、错误管理逻辑EML、内部振荡器及复位电路等构成。
IML接收来自CPU的命令,控制CAN寄存器的寻址并向主控器提供中断信息及状态信息。
CPU的控制经IML把要发送的数据写入TXB,TXB中的数据由BSP处理后经BTL输出到CAN总线。
BTL始终监视CAN总线,当检测到有效的信息头“隐性电平-控制电平”的转换时启动接收过程,接收的信息首先要由位流处理器BSP处理,并由ASP过滤。
只有当接收的信息的识别码与ASP检验相符时,接收信息才最终被写入RXB或RXFIFO中。
RXFIFO最多可以缓存64字节的数据,该数据可被CPU读取。
EML负责传送层中调制器的错误管制,它接收BSP的出错报告,促使BSP和IML进行错误统计[14]。
验收滤波器单元完成接收信息的滤波,只有验收滤波器通过且无差错,才把接收的信息帧送入接收FIFO缓冲区,且置位接收缓冲区状态标志SR.0,表明接收缓冲区中己有成功接收的信息帧,接收帧的数量可通过访问接收信息计数器(RMC)得知。
接收FIFO共有64个字节,远远超过8X200的接收缓冲区,因而SJA1000的超载能力也大大加强。
3.2.3PCA82C250总线收发器
PCA82C250是PhiliPs公司的CAN控制器和物理总线间的接口,可提供对总线的差动发送和接收能力。
它与ISO11898标准完全兼容,最高速率可达IMbps,采用斜率控制可降低射频干扰,并且其未上电节点不会千扰总线。
在硬件电路中使用82C250是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线。
PCA82C250是CAN控制器和物理总线之间的接口,它最初为汽车中的高速通信(最高达1Mbps)应用设计[12]。
该器件对总线提供差动发送能力,对CAN控制器提供差动接收能力。
(1)82C250的主要特性如下:
①与ISO11898标准完全兼容
②高速(最高可达1Mbps)
③具有抗汽车环境下的瞬间干扰,保护总线能力
④采用斜率控制(SlopeControl),降低射频干扰(RFI-RadioFrequencyInterference)
⑤热保护
⑥电源和地之间的短路保护
⑦低电流待机模式
⑧未上电节点对总线无影响
⑨可连接110个节点
(2)PCA82C250的内部结构
PCA82C250的内部结构框图如图3.3所示。
图3.382C250功能框图
(3)PCA82C250的功能
首先,82C250驱动电路内部具有限流电路,可防止输出级对电源、地或负载短路[13]。
虽然短路出现时功耗增加,但不致使输出级损坏。
其次,82C250采用双线差分驱动,有助于抵制恶劣环境下的瞬变干扰。
引脚
可用于选择三种不同的工作模式:
高速、斜率控制和待机。
在高速工作模式下,发送器输出级晶体管尽可能快地启动和关闭。
在这种模式下,不采取任何措施限制上升和下降斜率,此时,建议使用屏蔽电缆以避免射频干扰问题。
通过将引脚8接地可选择高速模式。
对于较低速度或较短总线长度,可用非屏蔽双绞线或平行线作总线。
为降低射频干扰,应限制上升和下降的斜率,上升和下降的斜率可通过由引脚8至地连接的电阻进行控制,斜率正比于引脚8上的电流输出。
若引脚8接高电平,则电路进入低电平待机模式,在这种模式下,发送器被关闭,接收器转至低电流。
若检测到显性位,RXD将转至低电平,微控制器应通过引脚8将驱动器变为正常方式作为对此条件作出的反应。
由于在待机模式下接收器是慢速的,因此第一个报文将被丢失。
对于CAN控制器及带有CAN总线接口的器件,82C250并不是必须使用的器件,因为多数CAN控制器均具有配置灵活的收发器件,并允许总线故障,只是驱动能力只允许20~30个节点连接在一条总线上。
而82C250支持多达110个节点,并能以1Mbps的速率工作于恶劣电气环境下。
利用82C250还可方便地在CAN控制器与收发器之间建立光电隔离。
在实际应用中,CAN总线大都用在如汽车和工业现场控制等的环境中,环境对电路的影响很大,所以为减少这些干扰,在设计CAN总线的节点时,通常在电路中使用高速光耦,如6N137等,使SJA1000的TX0与RX0不直接与82C250的TXD和RXD相连,而是通过高速光耦与82C250相连,这样就能很好地实现总线上各CAN节点间的电气隔离。
3.2.4温度传感器的选择
温度传感器大致可以分为模拟温度传感器和数字温度传感器两类。
模拟温度传感器,其输出的信号通常是电流、电压等线性信号,要通过信号前端调理电路和AD转换电路来实现数字化,才能输入到PIC控制核心来运算。
这类常用的型号如:
热敏电阻、热电偶、热电阻、ADI公司出品的AD590、美信公司出品的MAX6613等。
模拟温度传感器根据输出的信号还可以细分为电流型和电压型。
另外,各个模拟温度传感器的精度、线性度、测量范围、价格也要根据不同的应用来考虑。
其优点是常用、采购容易、价格低廉,配合不同类型的ADC,可实现不同档次的精度需求。
缺点是电路复杂、