基于CAN总线的嵌入式测温系统设计

发布者:化羽2015最新更新时间:2014-11-21 来源: 21ic关键字:CAN总线  测温系统  AT89C51 手机看文章 扫描二维码
随时随地手机看文章

1.引言
温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度:如大气及空调房中温度的高低,直接影响着人们的身体健康;在大规模集成电路生产线上,环境温度不适当,会严重影响产品的质量。由此作者提出设计一种基于工业通用的CAN总线标准的嵌入式测温系统,该系统能自动监测被测对象的温度,并且能通过CAN总线对温度进行远程监视和网络控制的智能测温系统。
2.整体系统设计
根据所给的设计要求,即具有数字显示、键盘输入、温度自动采样、能通过CAN(Controller Area Network)总线与上位机进行通信、异常情况自动报警等功能。我们可以构架出此智能温度仪表的整体设计框图如下图1所示。从图中可以看出整体硬件电路设计主要


包括:微处理器8051部分、电源电路部分、温度信号输入部分、键盘输入部分、CAN总线通信部分、LED显示部分[1]。限于篇幅原因,作者在本文将重点介绍温度信号输入和CAN总线通信部分的具体电路设计。                      
3.温度输入电路设计
MAX6675是MAXIM公司生产的基于SPI(Serial Peripheral Interface) 串行外设接口总线的专用芯片,它不仅能对K型热电偶进行冷端温度补偿,还能对热电势信号进行数字化处理。可广泛用于工业、仪器仪表、自动化等领域[2]。
3.1 MAX6675的结构及工作原理
MAX6675的具体内部结构框图如图2所示。GND为地。UCC接电源的正极,该端需经外部


图2  MAX6675的内部框图
0.1μF电容接地。T-接K型热电偶的冷端,并从外部接地。T+接热电偶的热端。SCK为串行输入端,SO为串行输出端。 为片选端,当 =0(低电平)时,串行接口有效。NC为空脚。主要包括8个部分:①低噪声电压放大器A1;②电压跟随器A2;③冷端温度补偿二极管;④基准电压源;⑤数字控制器;⑥12位ADC;⑦SPI串行接口(SCK、SO、 );⑧模拟开关(S1—S5)。其工作原理如下:K型热电偶产生的热电势(e)经过A1、A2得到放大后的热电势信号U1,再经过S4送给ADC。有公式:
U1=αTΔT=αT(T-T0)
其中:αT为K型热电偶的电压温度系数。αT=41μV/℃。T和T0分别为被测温度、冷端的环境温度。与此同时,冷端温度补偿二极管将T0转换成补偿电压U2,有公式:U2=αTT0,U2通过S5送给ADC。在数字控制器的控制下,ADC首先将U1、、U2转换成数字量,再将U1、和U2相加并除以αT,即获得输出电压UO的数据,该数据就代表测量点的实际温度值T。需要指出,U2为毫伏级信号,e为微伏级信号,因此e必须首先放大成U1,二者才能相加。
3.2由MAX6675构成的测温系统
由MAX6675构成的测温系统电路如图3所示。将K型热电偶KH1的T+和T-分别接到MAX6675芯片的T+和T-的引脚上。MAX6675的 为片选端口接到CPU的P1.2引脚、SO输出端口接到CPU的P1.0引脚、SCK输入端口接到CPU的P1.1引脚[3]。


4.CAN总线通信电路及程序设计
4.1 CAN硬件电路设计
采用AT89C51单片机微控制器、独立CAN通信控制器SJA1000、CAN总线驱动器PCA82C250及复位电路IMP708组成的CAN应用节点具体电路如下图4所示[4]。为了提高系统的抗干扰能力,本设计在SJA1000和CAN总线驱动器PCA82C250之间增加了光电隔离器6N137。[page]

4.2 CAN通信程序设计
CAN应用节点的通信程序设计主要包括三部分:初始化子程序、发送子程序、接收子程序,各个部分的具体程序如下[5]:
(1)CAN总线初始化子程序
NODE    EQU    30H ;节点号缓冲区
NBTR0   EQU    31H ;总线定时寄存器0缓冲区
NBTR1   EQU    32H ;总线定时寄存器1缓冲区
…;定义RAM内发送TXBF、接收RXBF缓冲区,即40H与50H
…;再定义相应的控制CR、命令CMR、状态SR、中断IR寄存器,即0BF00H-0BF04H
AMR     EQU   0BF05H ;接收码屏蔽寄存器
BTR0    EQU    0BF06H ;总线定时寄存器0
BTR1    EQU    0BF07H ;总线定时寄存器1
OCR     EQU    0BF08H ;输出控制寄存器
CDR     EQU    0BF1FH ;时钟分频寄存器
   … ;定义接收RXB、发送TXB缓冲器,即0BF14H与0BF0AH
CANINI: MOV   DPTR,#CR   ;写控制寄存器
          MOV   A,#01H      ;置复位请求为高
MOVX  @DPTR, A    
  CANI1: MOVX  A, @DPTR     ;判断复位请求有效
JNB     ACC.0, CANI1
MOV    DPTR,  #ACR  ;写接收码寄存器
MOV    A, NODE       ;设置节点号
MOVX   @DPTR,  A
MOV     DPTR, #AMR  ;写接收码屏蔽寄存器
MOV    A, #00H
MOVX   @DPTR, A
MOV     DPTR, #BTR0  ;写总线定时寄存器0
MOV    A ,  NBTR0    ;设置波特率
MOVX   @DPTR, A
 … ;同上三行进行写总线定时寄存器1并设置好波特率
MOV    DPTR, #OCR   ;写输出控制寄存器
MOV     A, #OFAH
MOV     @DPTR, A
MOV     DPTR, #CDR  ;写时钟分频寄存器
MOV     A, #00H    ;将CAN工作模式设为BasicCAN模式时钟2分频
MOVX    @DPTR, A
MOV     DPTR, #CR  ;写控制寄存器
MOV     A, #0EH     ;开放中断源
MOVX    @DPTR, A
(2)CAN总线接收子程序
  RXSB: MOV     DPTR, #SR  ;读状态寄存器判断接收缓冲区满
        MOVX   A, @DPTR
        JNB      ACC.0, RXSB
  RXSB1: MOV     DPTR, #RXB  ;将接收的数据放在CPU RAM区
MOV      R0, #RXBF
MOVX     A, @DPTR
MOV      @R0, A
INC      R0
INC      DPTR
MOVX    A, @DPTR
MOV     @R0, A
MOV     B, A
      RXSB2: INC      DPTR
INC      R0
MOVX   A, @DPTR
MOV     @R0, A
DJNZ     B, RXSB2
MOV     DPTR, #CMR  ;接收完毕释放接收缓冲区
MOV     A, #04H
MOVX    @DPTR, A
MOV      DPTR, #SR  ;读此状态寄存器
MOVX    A, @DPTR
…;判断ACC.1、ACC.7、ACC.6,分别跳到DATAOVER、BUSWRONG、CNTWRONG
SJMP   RECEEND
DATAOVER:做相应的数据益处错误处理后直接跳到RECEEND
BUSWRONG:做总线错误处理后直接跳到RECEEND
CNTWRONG:做数据错误处理
RECEEND: ;接收任务结束
(3)CAN总线发送子程序
    TXSB: MOV     DPTR, #SR   ;读状态寄存器
MOVX    A, @DPTR   ;判断发送缓冲区状态
JNB       ACC.2, TXSB
MOV      R1, #TXBF
MOV      DPTR, #TXB
TX1: MOV      A, @R1       ;向发送缓冲区10填入标示符
MOVX    @DPTR, A
INC       R1
INC       DPTR
MOV      A, @R1       ;向发送缓冲区11填入数据长度
MOVX     @DPTR, A
MOV      B, A
TX2:  INC       R1
INC       DPTR
MOV      A, @R1    ;向发送缓冲区12到19送数据
MOVX     @DPTR, A
DJNZ      B, TX2
MOV      DPTR, #CMR  ;置CMR.0为1请求发送
MOV      A, #01H
MOVX    @DPTR, A
5.设计总结
    根据上述的嵌入式温度测量系统设计出的测温系统能通过热电偶实现自动温度信号采集,再由MAX6675将此信号转换成12位的数字信号输入到微处理器,让微处理器对它进行自动处理后送到LED显示器显示出来,也可以通过CAN总线送向上位机,实现远程测量温度和网络监视控制的功能。整个系统采用12位的高速的模数转换系统,使其温度测量误差可以达到小于0.1°C,同时系统也具有良好的实时性[6]。本文作者创新点:运用嵌入式系统设计思想和方法、结合相应的测温精度和实时性、采用CAN工业通信总线标准,设计出一种基于CAN总线的嵌入式测温系统,此系统可以作为一种通用的小型测温系统使用也可以嵌入到其他大型的工业检测与控制系统中。

关键字:CAN总线  测温系统  AT89C51 引用地址:基于CAN总线的嵌入式测温系统设计

上一篇:基于nRF24E1的无线点菜系统架构
下一篇:基于DS1620和AT89C2051的数字温度计的设计

推荐阅读最新更新时间:2024-03-16 13:46

基于PWM模式输出的TMP04型数字式温度传感器的测温系统
  1 引言   数字式温度 传感器 主要的输出模式有PWM、SPI、I2C、SMBus等,当今主流的单片机几乎都支持这种接口方式,文中以PWM输出模式为例,讨论了PIC单片机对于这种输出模式的测温方案。PWM模式输出的数字温度 传感器 如TMP03/04、TPM05/06等,都是将 传感器 件测得的温度信息数字化后,经过一定的输出编码,调制成占空比与温度成正比的数字脉冲信号单线输出。输出信号接入微处理器后,只需测得数字脉冲信号的占空比就可由软件运算得到相应的温度信息。而对于微处理器来说,输入信号占空比的计算方式多种多样以PCI系列单片机为例,在PIC16、PIC17、PIC18中均可由CCP模块的捕捉功能、RB端口电平变化中断
[单片机]
基于PWM模式输出的TMP04型数字式温度传感器的<font color='red'>测温</font><font color='red'>系统</font>
CAN总线模块在机场跑道灯光控制中的应用
 系统介绍:   民航机场跑道灯,边线灯等是飞机安全着陆的重要条件,每当日光不足或者夜间,跑道灯一定要点亮以给准备着陆的飞机指示跑道的方向和轮廓,引导飞机安全着陆。当这些灯光部分损坏,会给飞机安全带来严重的后果。如何自动巡回检测这些灯光的工作状态是一个机场安全的重要课题。   具有专利技术的机场跑道单灯监控装置是可以同时监视从同一个供电的调光器控制的近百盏灯的装置。若干调光器联合工作构成了机场的跑道照明系统,而配套的若干监控装置也可以同时构成一套完整的监控系统。   设计要求:   1.将若干监控装置传来的灯状态信息集中并采集到数据库中(其中每个监控装置传送近百个灯状态)并通过软件动态显示在计算机屏幕上。每个灯根据故障或正
[工业控制]
<font color='red'>CAN总线</font>模块在机场跑道灯光控制中的应用
采用AT89C51单片机实现动态车辆检测器系统的设计
引言 随着经济的发展,不停车收费系统(ETC)已在我国悄然兴起。不停车收费系统主要是由通讯、监控、收费三大系统组成。整个系统可靠运行的一个重要环节就是车辆检测器。在不停车收费系统中它是检测驶向通讯区域的车辆并命令天线进行通信的传感器,具有进入检测、车速检测、车型判别等功能;它是检测出离开通信区域的车辆、根据ETC车道控制器的判断控制栏杆、路侧显示器的传感器,具有进入检测功能;它具有检测车辆通过,控制清除针对该车辆的路侧显示器的显示内容以及控制针对后续车辆的显示的功能,并命令栏杆关闭的功能。 考虑到性能、价格、技术复杂性、可靠性、维护要求、适用范围等因素,我们这种车辆检测器是基于地感线圈原理研制的。 1、动态车辆检测器设计
[单片机]
采用<font color='red'>AT89C51</font>单片机实现动态车辆检测器<font color='red'>系统</font>的设计
stm32 调试can总线丢帧的问题
问题出现的背景 需要写一个新的电机的驱动,使用can通讯,驱动比较简单,很快就写好了。自己单独测试一个电机的时候没有问题,正反转测什么的都很正常。本以为事情会很顺利,但是在测两个电机的时候,却发现很严重的问题,经常左电机不装或者是右电机不转。 问题的解决步骤 方案一: 1. 遇到这种问题通常都是加上一个延时,觉得可能就是发的太快了,时许上可能有问题,但是我们的系统是一个实时的系统延时的时间不能太长。 2. 经过测试发现加延时可能较小出现这种问题的概率,但是不能解决这个问题,最终车子还是无法正常运行,没办法这个方案不行。 分析: 既然加延时不行的话,只能去找为什么电机不装。使用can转usb将数据抓出来之后,发
[单片机]
stm32 调试<font color='red'>can总线</font>丢帧的问题
蓝牙CAN总线分析仪的软硬件的设计与特点
针对CAN总线通信质量、测试和验证的需要,以及传统CAN分析仪的复杂性,且必须选择PC机作为显示终端的不足,论证了一种基于ARM单片机和智能手机的CAN总线分析仪设计。该分析仪采用以ARM单片机为核心的硬件电路完成对CAN网络的实时数据收集和监控;采用蓝牙通信方式实现分析仪与智能手机的通信并以智能手机为终端完成数据分析。文章对分析仪硬件、软件和智能手机页面进行了具体设计,提出了一种新的波特率自动检测方法,最后给出了所设计的CAN总线分析仪的实际试验结果,可实现CAN总线波特率自动检测、正常监测以及CAN总线状态分析的功能。 CAN(controller area network)控制器局域网络是一种实时性强、灵活性好、标准化程
[测试测量]
蓝牙<font color='red'>CAN总线</font>分析仪的软硬件的设计与特点
红外遥控多功能电子钟设计方案
  本方案以AT89C51单片机为核心,软件部分采用C语言模块化设计,具有显示年、月、日、时、分、秒和温度以及闹钟和整点报时的功能,并且可通过家电通用的红外遥控器进行基本时间的调整和闹钟的设定。全部信息可通过1602点阵式液晶直观显示,方便使用,具有一定的市场前景。   目前,单片机进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。本文以AT89C51单片机为主控芯片,DS1302为时钟控制芯片、DS18B20为温度采集芯片和LCD液晶显示模块为显示器进行多功能电子钟系统的设计,系统具有时间、星期、温度、闹铃等功能,并可以实现红外遥控时间校准。该电路采用AT89C51单片机作为核心,功
[单片机]
红外遥控多功能电子钟设计方案
基于CAN总线的蓄电池组充放电集散控制系统的设计
引 言 随着高科技及其产业的迅速发展,大存储容量的 蓄电池组 能源系统已经越来越被人们所重视,在诸如电动汽车、大功率UPS、电厂及变电站直流系统、通信系统等很多领域中都得到广泛应用。 蓄电池组是由一定数量的单体电池串联组成的,在使用过程中可能会有百次直至千次的充、放电。各单体蓄电池过充电、过放电或者放电不足均易引起电池的故障,某个单体蓄电池的故障也会导致整个蓄电池组的故障和损坏。因此,在线实时检测蓄电池组 充放电 各单体蓄电池的充放电电压、充放电时的温升以及整个蓄电池组的充放电电流、电压等参数,及时找出损坏或性能显著降低的蓄电池,对于延长电池的使用寿命、降低成本特别是提高直流供电系统的可靠性至关重要。鉴于上述情
[工业控制]
基于<font color='red'>CAN总线</font>的蓄电池组充放电集散控制<font color='red'>系统</font>的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved