毕业设计基于CAN总线和AVR单片机的网络型温度传感.docx
《毕业设计基于CAN总线和AVR单片机的网络型温度传感.docx》由会员分享,可在线阅读,更多相关《毕业设计基于CAN总线和AVR单片机的网络型温度传感.docx(58页珍藏版)》请在冰豆网上搜索。
![毕业设计基于CAN总线和AVR单片机的网络型温度传感.docx](https://file1.bdocx.com/fileroot1/2022-12/14/2ea62ec8-c8b6-46c0-812e-dccc12841f98/2ea62ec8-c8b6-46c0-812e-dccc12841f981.gif)
毕业设计基于CAN总线和AVR单片机的网络型温度传感
祝你成功,您一定会做出一份完美的毕业设计
网络型温度传感设计
摘要
本文详细论述了网络型温度传感系统的设计和实现。
本设计针对目前我国在应用的分布式实时测控系统中,多采用的RS485总线组网本身存在的许多局限性。
提出了一种低成本并适应市场需求的,基于AVR单片机和CAN现场总线网络的网络型温度传感设计方案。
本设计采用“AD590温度传感器+AVR单片机+CAN的结构”:
以ATMEL公司的微控制器ATmega16L作为系统的核心;采用AD590作温度传感器,经过电流电压转换电路,将温度信号转换为适合AVR单片机处理的电压信号;在CAN总线系统节点的通信接口中,CAN通信控制器采用SJA1000,CAN总线收发器采用82C250;终端显示设备为点阵型液晶显示器LCD。
由此构成了完整的网络型温度传感样机。
本文将首先介绍系统的总体结构,并对各部分功能模块的工作原理和实现进行详细论述,接着介绍软件设计部分。
文章在最后介绍了系统的调试过程以及测试结果。
关键词:
网络型温度传感;AVR单片机;CAN;AD590温度传感器;液晶显示器
ADesignofTemperatureSensorNetwork
Abstract
Thisthesisdescribesthedesignandrealizationoftemperaturesensornetwork.Tomeetthedemandofthemarketofdistributedmonitoringandcontrolsystemdesign,thenetworkisbuiltbasedupontheuseofAVRmicrocontrollerATmega16L,AD590temperaturesensor,andCANbuscontrollerSJA1000andCANtransceiver82C250.ThereasonofemployingCANbusisthatCANbusisbetterthanRS485bus,whichiswidelyemployedindistributedreal-timemonitoringandcontrolsystemsinChina,intransmittingspeed,reliability,andmaintenancecost.AnATmega16Lchip,producedbytheATMELCo.,isthecoreofthesystem,anAD590chipisabletoconverttemperaturesignaltovoltagesignalwhichissuitablefortheprocessingoftheATmega16Lchip,andSJA1000and82C250chipsareusedforCANbuscommunication,inaddition,adot-matrixLCDisemployedforoutputdisplaying.
Thewholestructureofthistemperaturesensornetworkisgiveninthebeginningofthisthesis,,thenthehardwaredevelopmentaredescribedindetail.Insuccession,thethesisintroducesthesoftwaredesignofthewholenetwork,particularlyinthesoftwarefortheATmega16LandSJA1000chips.Finally,theresultsofthenetworktestareshowed
Keywords:
CANbus;AVRmicrocontroller;AD590temperaturesensor;LCD
1前言
1.1网络型温度传感简介
网络型温度传感系统能方便可靠地实现温度远程监视和控制。
总体结构可概括为:
AD590温度传感器+AVR单片机+CAN独立控制器SJA1000+CAN总线收发器PCA82C250。
按功能模块分析,它主要由信号采集与转换电路、AVR单片机控制模块、CAN网络节点通信接口模块、液晶显示模块、电源模块等部分组成。
此外系统又可归为从站和主站两个大的功能模块:
(1)从站模块。
温度传感器采集被测的温度数据,获得的电流值经过前端处理电路的放大器放大后,转换为适合AVR单片机处理的电压信号并进行AD转换,一个从站模块可以同时采集8路温度传感器的信号。
AVR单片机通过查询发送缓冲区的方式启动CAN发送功能,以报文的形式向主机发送数据,因此通过CAN总线实现与主机的实时通信功能。
(2)主站模块。
本模块中AVR单片机对CAN总线的报文接收采用中断方式,此中断为外部中断INT0。
先将接收到的报文从SJA1000中读出并存入CPU临时接收缓冲区,然后微控制器对数据进行分析和处理,并将温度等状态实时地在液晶显示器上更新显示。
综上分析,主、从站的系统框图分别如图1-1和图1-2所示,图1-3是主从站的网络拓扑结构,其结构是总线型结构,这也是CAN总线的特点:
图1-1从站的系统原理框图
图1-2主站的系统原理框图
图1-3主从站网络拓扑
1.2本课题研究的目的和意义
温度检测在工业界和日常生活中有着非常广泛的应用,是很多大型精密仪器系统最基本也是最重要的一种检测,例如这个系统可以作为生物培养液温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室环境温度监控系统等等。
传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用MCU或计算机实现自动测量、信息处理和自动控制。
另外,在实际的应用中往往需要对远距离的温度信号进行监视。
用单片机作为MCU,并设计通信网络与现场温度传感器进行数据通信,完全可以用低的成本来实现远程温度监测。
因此网络型温度传感设计应用性比较强,基于AVR单片机和CAN总线网络的网络型温度传感设计。
为工业领域应用中温度的远程监控提供一种低成本、可靠性强、稳定和精度相对较高的方案。
数字化、网络化、智能化代表着现代检测技术的发展方向。
1.3国内研究概况
目前,在我国应用的分布式实时测控系统中,多采用RS485半双工、全双工异步通信总线组网。
但是由于RS485总线本身存在的许多局限性,随着科技的发展,RS485的总线效率低、系统的实时性差、通讯的可靠性低、后期维护成本高、网络工程调试复杂、传输距离不理想(小于1.5km)、单总线可挂接的节点少、应用不灵活等先天性缺点慢慢的暴露出来。
而CAN总线在通信能力、可靠性、实时性、灵活性、易用性、传输距离远、成本低等方面有着明显的优势,以CAN总线代替RS485构建分布测控系统将是许多厂矿企业的首选。
“AVR单片机+CAN”,目前国内这种应用的例子为数并不多,从而使其更具有一定的研究价值。
将二者优势互相结合,共同组成一个数据采集准确、通讯稳定可靠的工业监测系统,在工业测量和控制领域将具有广阔的应用前景。
1.4本课题主要研究内容和要求
本课题的研究内容:
1)信号采集和转换电路设计;
2)电源模块的设计;
3)从机单元和CAN网络接口设计;
4)主控单元及CAN总线接口设计;
5)采集数据的处理与显示;
6)编写系统软件。
本次设计的网络型温度传感主要的技术特性指标如下:
1)AD通道数:
8通道,硬件部分只演示其中一路的数据采集;
2)环境温度和转换后电压值的关系式:
(T-T0)=KU(1-1)
K=20℃/mv,T为环境温度,T0为测温下限,U为放大电路转换后的电压值;
3)温度采样频率:
500Hz(每2ms启动一次AD转换);
4)CAN通信协议规范:
CAN2.0B;
5)显示:
128×64点阵LCD。
2网络型温度传感的系统设计
本章主要介绍了网络型温度传感的总体方案设计,系统组成以及各模块的一些基本状况。
从而让读者对本系统有个整体的认识。
在章节的结尾,还将对系统主要器件的选型理由,以及器件的基本特征做简单的介绍。
2.1网络型温度传感的系统结构
系统的总的结构框图如图2-1所示,本设计中的网络型温度传感系统采用了“AD590+AVR单片机+SJA1000+PCA82C250”结构,大大简化了硬件电路,充分利用了AD590精度高、MCU控制能力强和CAN网络实时可靠的特点,使得系统功能得到充分体现。
图2-1系统总结构框图
2.2系统选用的主要器件介绍
2.2.1微控制器ATmega16
考虑到本系统对信号处理功能要求不高,基于实用原则所以决定使用ATmega16作为本系统的核心控制器。
ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
ATmega16AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
(1)ATmega16产品特性:
1)高性能、低功耗的8位AVR微处理器;
2)先进的RISC结构;
3)131条指令;
4)大多数指令执行时间为单个时钟周期;
5)32个8位通用工作寄存器;
6)全静态工作;
7)工作于16MHz时性能高达16MIPS;
8)只需两个时钟周期的硬件乘法器;
9)非易失性程序和数据存储器;
10)16K字节的系统内可编程Flash,擦写寿命:
10,000次;
11)具有独立锁定位的可选Boot代码区,通过片上Boot程序实现系统内编程,真正的同时读写操作;
12)512字节的EEPROM,擦写寿命:
100,000次;
13)1K字节的片内SRAM;
14)可以对锁定位进行编程以实现用户程序的加密;
15)JTAG接口(与IEEE1149.1标准兼容);
16)符合JTAG标准的边界扫描功能;
17)支持扩展的片内调试功能;
18)通过JTAG接口实现对Flash、EEPROM、熔丝位和锁定位的编程。
(2)外设特点:
1)两个具有独立预分频器和比较器功能的8位定时器/计数器;
2)一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器;
3)具有独立振荡器的实时计数器RTC;
4)四通道PWM;
5)8路10位ADC,8个单端通道,2个具有可编程增益(1x,10x,或200x)的差分通道;
6)面向字节的两线接口;
7)两个可编程的串行USART;
8)可工作于主机/从机模式的SPI串行接口;
9)具有独立片内振荡器的可编程看门狗定时器;
10)片内模拟比较器。
(3)特殊的处理器特点:
1)上电复位以及可编程的掉电检测;
2)片内经过标定的RC振荡器;
3)片内/片外中断源。
(4)6种睡眠模式:
空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式。
(5)I/O和封装
32个可编程的I/O口;
40引脚PDIP封装,44引脚TQFP封装,与44引脚MLF封装。
(6)工作电压:
ATmega16L:
2.7-5.5V;
ATmega16:
4.5-5.5V。
(7)速度等级:
8MHzATmega16L;
0-16MHzATmega16;
ATmega16L在1MHz,3V,25°C时的功耗;
正常模式:
1.1Ma;
空闲模式:
0.35mA;
掉电模式:
<1μA。
ATmega16引脚如图2-2所示
图2-2ATmega16引脚图
2.2.2集成温度传感器AD590
集成温度传感器AD590是美国模拟器件公司生产的集成两端感温电流源。
它是电流型温度传感器,通过对电流的测量可得到所需要的温度值。
根据特性分挡,AD590的后缀以I,J,K,L,M表示。
AD590L,AD590M一般用于精密温度测量电路,其电路外形如图3-2所示,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端I0;3脚为管壳,一般不用。
集成温度传感器的电路符号如图2-3所示。
图2-3AD590的外形及电路符号
AD590温度传感器的主要特性:
(1)流过器件的电流(μA)等于器件所处环境的热力学温度(开尔文)度数,即:
IT/T=1μA/K(2-1)
式中:
IT——流过器件(AD590)的电流,单位μA;T——热力学温度,单位K。
(2)AD590的测温范围-55℃~+150℃。
(3)AD590的电源电压范围为4V-30V。
电源电压可在4V-6V范围变化,电流IT变化1μA,相当于温度变化1K。
AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会损坏。
(4)输出电阻为710MΩ。
(5)精度高。
AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线形误差±0.3℃。
AD590输出电流在远距离传输时,虽然它对导线产生的压降不敏感,但应避免传输导线回路受电磁干扰影响产生感应电势而导致回路电流变化,造成测量误差。
由于AD590的温度变化范围在-55℃~+150℃之间,经过10KΩ之后采样到的电压变化在2.182V~4.232V之间,不超过5V电压所表示的范围,因此参考电压取电源电压VCC,(实测VCC=4.98V)。
由此可计算出经过A/D转换之后的摄氏温度显示的数据。
2.2.3CAN独立控制器SJA1000
目前广泛流行的CAN总线器件有两大类:
一类是独立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一类是带有在片CAN的微控制器,如P8SC582及16位微控制器87C196CA/CB等。
本设计选用PHILIPS公司的SJA1000CAN控制器以及82C250总线收发器。
主要是考虑到SJA1000支持CAN2.0A/B规约。
而82C250可以支持110个CAN节点,并且国内市场上PHILIPS的产品型号比较多,购买比较方便。
PHILIPS公司的SJA1000是一种独立的,符合CAN2.0B协议的总线控制器,它是应用于汽车和一般工业环境的独立CAN总线控制器。
由于硬件和软件的兼容它将会替代PCA82C200,它与PCA82C200相比具有更先进的特征因此特别适合于轿车内的电子模块传感器制动器的连接和通用工业应用中特别是系统优化系统诊断和系统维护时特别重要。
SJA1000具有完成CAN通信协议所要求的全部特性。
经过简单总线连接的SJA1000可完成CAN总线的物理层和数据链路层的所有功能。
其硬件与软件设计可兼容基本CAN模式(BasicCAN)和新增加的增强CAN模式(PeliCAN)CAN2.0B协议。
SJA1000的主要特性为:
(1)管脚及电气特性与独立CAN总线控制器PCA82C200兼容;
(2)软件与PCA82C200兼容(缺省为基本CAN模式);
(3)扩展接收缓冲器(64字节FIFO),先进先出(FIFO);
(4)支持CAN2.0A协议和CAN2.0B协议;
(5)同时支持11位和29位标识符;
(6)位通讯速率为1Mbits/s;
(7)PeliCAN模式的拓展功能有:
1)可读/写访问的错误计数寄存器;
2)可编程的错误报警限额寄存器;
3)最近一次错误代码寄存器;
4)对每一个CAN总线错误的中断;
5)有具体位表示的仲裁丢失中断;
6)单次发送(无重复);
7)只听模式(无确认,无激活的错误标志);
8)支持热插拔(软件进行位速率检测);
9)验收滤波器的扩展(4字节的验收代码,4字节的屏蔽);
10)接收自身的报文(自接收请求)。
(8)采用24MHz时钟频率;
(9)支持多种微处理器接口;
(10)可编程CAN输出驱动配置,支持热插拔;
(11)工作温度范围为-40~+125℃。
SJA1000的内部结构如图2-4:
图2-4SJA1000的内部结构
SJA1000管脚图如图2-5所示
图2-5SJA1000管脚图
SJA1000的管脚说明如表2-1。
表2-1SJA1000管脚说明
符号
引脚
说明
AD7~AD0
2,1,28~23
多路地址/数据总线
ALE/AS
3
ALE输入信号(Intel模式),AS输入信号(Motorola模式)
4
片选信号输入,低电平允许访问SJA1000
(
)
5
微控制器的
信号(Intel模式)或E使能信号(Motorola模式)
6
微控制器的
信号(Intel模式)或RD(
)信号(Motorola模式)
CLKOUT
7
SJA1000产生的提供给微控制器时钟输出信号;时钟信号来源于内部振荡器且通过编程驱动;时钟控制寄存器的时钟关闭位可禁止该引脚输出。
VSS1
8
接地
XTAL1
9
输入到振荡器放大电路;外部振荡信号由此输入;注1
XTAL2
10
振荡放大电路输出;使用外部振荡信号时左开路输出:
注1
MODE
11
模式选择输入:
1=Intel模式;0=Motorola模式
VDD3
12
输出驱动的5V电压源
TX0
13
从CAN输出驱动器0输出到物理线路上
TX1
14
从CAN输出驱动器1输出到物理线路上
VSS3
15
输出驱动器接地
16
中断输出,用于中断微控制器;
在内部中断寄存器各位被置位时低电平有效;
是开漏输出,且与系统中的其它
是线或的;此引脚上的低电平可以把IC从睡眠模式中激活
符号
引脚
说明
17
复位输入,用于复位CAN接口(低电平有效);把
引脚通过电容连到VSS,通过电阻连到VDD可自动上电复位(例如,C=1μF;R=50kΩ)
VDD2
18
输入比较器的5V电压源
RX0,RX1
19,20
从物理的CAN总线输入到SJA1000的输入比较器;(控制)电平将会唤醒SJA1000的睡眠模式;如果RX1比RX0的电平高,就读显性(控制)电平,反之读隐性电平;如果时钟分频寄存器的CBP位被置位,就旁路CAN输入比较器以减少内部延时(此时连有外部收发电路);这种情况下只有RX0是激活的;
VSS2
21
输入比较器的接地端
VDD1
22
逻辑电路的5V电压源
SJA1000的读写时序分别如图2-6和2-7所示:
图2-6SJA1000Intel模式的读时序
图2-7SJA1000Intel模式的写时序
2.2.4CAN总线收发器82C250
82C250是CAN控制器与物理总线之间的接口,它最初是为汽车中的高速应用(达1Mbps)而设计的。
器件可以提供对总线的差动发送和接收功能。
82C250的主要特性如下:
(1)与ISO11898标准完全兼容;
(2)高速率(最高可达1Mbps);
(3)具有抗汽车环境下的瞬间干扰及保护总线能力;
(4)采用斜率控制,降低射频干扰;
(5)过热保护;
(6)总线与电源及地之间的短路保护;
(7)低电流待机模式;
(8)未上电节点不会干扰总线;
(9)总线至少可连接110个节点。
82C250功能框图如图2-8:
图2-882C250功能框图
82C250引脚分配图如图2-9。
图2-982C250引脚分配图
82C250引脚功能表如表2-2。
表2-282C250引脚功能表
功能描述:
PCA82C250对总线提供不同的发送能力和对CAN控制器提供不同的接收能力,完全ISO11898标准完全兼容。
限定的电流值保护接收器输出级,避免阳极和阴极的短路,尽管在默认的条件下功率消耗是增加的,这个特征值将防止发送器输出级的毁坏。
如果节点温度超过大约160度,发送器限定的电流值输出被降低,因为发送器占去大部分的功率消耗,这将导致降额功耗和较低的片内温度,IC中的其它部分在使用中将保持不变。
当总线短路的时候,热保护非常需要。
这个CANH,CANL线也被保护,防止在自动运作过程中电流的瞬变。
表2-3CAN收发真值表
表2-4管脚RS
管脚8(RS)有三种不同的工作模式可被选择:
高速,备用,斜率控制。
对于高速工作模式,发送器输出级晶体管被尽可能地快启动和关闭,在这种模式下,没有措施用于限制上升和下降的斜度,建议使用屏蔽电缆可避免RFI这种问题,通过把管脚8接地选择这种模式。
对于低速或较短的总线长度,可使用一种没有屏蔽的双绞线或平行线。
对于降低RFI,上升和下降的斜率是个限定值,上升和下降的斜率能够被编程,通过从管脚8接一个电阻至地,这个斜率和管脚8的电流输出成比例。
如果高电平被接至管脚8,电路进入低电流保护模式。
这种模式下,发送器被关闭,接收器开至低电流,如果控制位被检测(不同的总线电压<0.9V),RXD将被开至低电平。
这个微型控制器应对这个条件有所反应,通过转换收发器至正常工作状态。
(经过管脚8)因为这个接收器在备用模式下比较慢,第一条信息会丢失掉。
2.2.5汉字图形点阵型液晶显示器QC12864B
为了降低成本,同时为了简化硬件电路结构和软件设计。
本系统采用QC12864B作为显示终端。
图2-11为液晶的管脚链接的原理图
图2-11管脚链接的原理图
表2-6是对应管脚的功能说明:
表2-6QC12864B的管脚功能描述
管脚号
管脚名称
描述
1
VSS
电源地
2
VCC
电源正
管脚号
管脚名称
描述
3
VO
对比度调整
4
RS
RS=“H”,表示DB7-DB0为显示数据
RS=“L”,表示DB7-DB0为显示指令数据
管脚号
管脚名称
描述
5
R/W
R/W=“H”,E=“H”,数据被读到DB7-DB0
R/W=“L”,E=“H->L”,DB7-DB0的数据被写到IR或DR
6
E
使能信号
7-14
DB0-DB7
三态数据线
15
PSB
H:
8位或4位并口方式;L:
串口方式
16
NC
空脚
17
/RESET
复位端,低电平有效
18
VOUT
LCD驱动电压输出端
19
A
背光源正端(+5V)
20
K
背光源负端
功能特点:
QC12864B汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:
电源:
VDD3.3V~5V(内