当前位置:首页 > 电源 > 数字电源
[导读]本文介绍了一种基于CAN总线的嵌入式温度测量系统的设计,系统主要采用单片机控制,运用热电偶与MAX6675集成块组成具体的温度采集电路,将采集好的数据送入单片机进行数据处理后通过CAN总线硬件电路及软件通信程序传送给上位机,最后实现对被测对象的温度进行远程监视和网络控制的功能。

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


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

500)this.style.width=500;" border="0" />


图2  MAX6675的内部框图
0.1μF电容接地。T-接K型热电偶的冷端,并从外部接地。T+接热电偶的热端。SCK为串行输入端,SO为串行输出端。 500)this.style.width=500;" border="0" />为片选端,当 500)this.style.width=500;" border="0" />=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]。

500)this.style.width=500;" border="0" />


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

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[!--empirenews.page--]
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总线嵌入式测温系统,此系统可以作为一种通用的小型测温系统使用也可以嵌入到其他大型的工业检测与控制系统中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...

关键字: 嵌入式 物联网 技术

随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...

关键字: 嵌入式 物联网 计算机

最近看到APP上,给我推送了很多类似的回答,借此机会,也想着重新审视一下自己的学习历程,以及结合自身和大牛,分享一些学习经验,希望对大家有所启发和帮助。

关键字: APP 嵌入式 C语言

大家好,我是鲏。认识我的朋友都知道,我是一个实践派,相比研究枯燥的理论知识,我更喜欢做自己想做的项目,用技术来实现自己的想法的感觉真的很棒。所以从大学期间一直到现在,除了工作中的项目外,我依然保持着自己做项目的习惯,有坚...

关键字: 系统设计 技术选型 需求分析

万物智联时代,嵌入式技术及其应用的形态将更加丰富和多元,同时也将日益呈现深度物理融合、混合架构共存、群体智能协同、网络安全攸关等诸多新的计算特性。显然,经典的嵌入式系统体系结构、软硬件技术和开发方法都已很难应对新趋势下的...

关键字: 嵌入式 物联网 计算机

物联网是新一代信息技术的重要组成部分,是互联网与嵌入式系统发展到高级阶段的融合。通用计算机经历了从智慧平台到互联网的独立发展道路;嵌入式系统则经历了智慧物联到局域智慧物联的独立发展道路。

关键字: 嵌入式 物联网 计算机

今天,小编将在这篇文章中为大家带来工控主板的有关报道,通过阅读这篇文章,大家可以对工控主板具备清晰的认识,主要内容如下。

关键字: 工控主板 嵌入式 主板

随着工业4.0、医疗电子、智能家居、物流管理和电力控制等快速的发展和推进,嵌入式系统利用自身的技术特点,逐渐成为众多行业的标配产品。嵌入式系统具有可控制、可编程、成本低等,它在未来的工业和生活中有着广阔的应用前景。在现在...

关键字: 嵌入式 物联网 人工智能

长久来看,嵌入式只会越来越火,随着人工智能时代的发展,嵌入式必定又将迎来一次浪潮和技术的巨大变革。人工智能越是想要表达智能水平,就越要依靠嵌入式技术,嵌入式技术将朝着自动化控制和人机交互发展。嵌入式因其体积小、可靠性高、...

关键字: 嵌入式 物联网 人工智能

嵌入式软件技术到目前为止己经在很多领域起到了中流砥柱的作用,例如在电子消费、移动通讯方面,这种技术为我国的很多行业提供了更多的可能性。未来,嵌入式软件技术会为人类做出更大的贡献。伴随着计算机技术与电子技术的成熟发展,电子...

关键字: 嵌入式 软件 人工智能

数字电源

15504 篇文章

关注

发布文章

编辑精选

技术子站

关闭