微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN总线在测温系统中的应用

CAN总线在测温系统中的应用

时间:09-12 来源:互联网 点击:

控制器局部网(controller area network,CAN)属于现场总线的范畴,它是一种有效支持分布式控制的串行通讯网络,被公认为是最有前途的现场总线之一。本文利用MAX6675测温芯片作为传感器,使用CAN总线标准设计了一种智能测温系统(适用范围0℃~+1023.5℃)。该系统精度高(±0.5℃)、可靠性好、结构简单、成本低,在适用范围内可取代传统的测温系统,对该系统稍加修改,可使它应用于在多种测温场合。

1 硬件设计

硬件电路由微处理器、CAN控制器、测温芯片MAX6675、LED、键盘、复位电路、蜂鸣器等几部分组成,如图1所示。单片机AT89C51是硬件电路的核心,承担CAN 控制器的初始化、数据收发控制等任务;CAN总线控制器用于同上位机进行远程通讯,能够独立完成CAN总线上数据的接收和发送工作;MAX6675芯片用于检测和发送温度数据。

图2 测温电路图

MAX6675从I/O口线输出数据的具体过程如下:P12端口输出的低电平将CS变低,并提供时钟信号给SCK,由SO口读取测量结果。CS变低,将停止任何转换过程,CS变高将启动一个新的转换过程。

一个完整串行接口读操作需16个时钟周期,在时钟的下降沿读16个输出位。第15位是伪标志位,并总为0;第14位到第3位为以MSB到LSB顺序排列的转换温度值;第2位平时为低,当热电偶输入开放时为高,开放热电偶检测电路完全由MAX6675实现,为开放热电偶检测器操作,T-必须接地,并使能地点尽可能接近GND 脚;第1位为低以提供MAX6675器件身份码,第0位为三态标志位 。

1.2 CAN总线的通信节点电路

通信节点采用PHILIPS公司生产的符合CAN2.0B协议的独立CAN通信控制器SJA1000及CAN收发器PCA82C250组成与其他智能节点或上位机的通信接口,实现数据传输。CAN控制器SJA1000工作在中断模式,通过其中断输出引脚向CPU申请中断,CPU在中断子程序内完成对上位机命令的解释与执行。CAN通信节点电路如图3所示。

图4 温度采集程序流程图

2.2 CAN通讯节点设计

CAN接口通信软件设计主要分为三部分:CAN初始化、数据发送、数据接收。

2.2.1 CAN控制器SJA1000的初始化

CAN初始化主要是设置SJA1000的参数。需要初始化的CAN控制寄存器有:模式寄存器、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器。这些寄存器只能在CAN控制器处于复位状态下才可写访。设SJA1000的首地址是0BF00H。初始化子程序如下:

CR EQU 0BF00H; 控制寄存器

CMR EQU 0BF01H; 命令寄存器

SR EQU 0BF02H; 状态寄存器

IR EQU 0BF03H; 中断寄存器

ACR EQU 0BF04H; 验收码寄存器

AMR EQU 0BF05H; 验收屏蔽寄存器

BTR0 EQU 0BF06H; 总线定时寄存器0

BTR1 EQU 0BF07H; 总线定时寄存器1

OCR EQU 0BF08H; 输出控制寄存器

CANINI:MOV DPTR,#CR ;开始初始化

MOV A,#01H ;置复位请求为高

MOVX @DPTR,A

CANI1:MOVX A,@DPTR ;判复位请求有效

JNB ACC.0,CAN I1

MOV DPTR,#ACR ;写接收码寄存器

MOV A,NODE;设置接点号

MOVX @DPIR,A

MOV DPTR,#AMR;写接收码屏蔽寄存器

MOV A,#00H

MOVX @DPTR,A

MOV DPTR,#BTR0;写总线定时寄存器0

MOV A,NBTR0;设置波特率

MOVX @DPIR,A

MOV DPTR,#BTR1;写总线定时寄存器1

MOV A,NBTR1

MOVX @DPTR,A

MOV DPTR,#OCR;写输出控制寄存器

MOV A,#0FAH

MOV @DPTR,A

MOV DPTR,#CDR;写时钟分频寄存器

MOV A,#00H ;设定工作模式

MOVX @DfTR ,A

MOV DPTR,#CR ;写控制寄存器

MOV A,#0EH ;开放中断源

MOVX @DPTR,A

RET

2.2.2 CAN接收与发送数据程序

发送数据程序把数据存储区中待发送的数据取出,组成数据帧,并将主机的ID地址填人帧头,然后将数据帧发送到CAN 控制器的发送缓冲区。其数据帧形式如下:

帧起始→仲裁场→控制场→数据场(8B)→CRC场→ACK场→帧结束。

在接收到主机的发送请求后,发送程序启动发送命令。数据从CAN控制器发送到总线是由CAN控制器自动完成的。数据从CAN总线到CAN控制器的接收缓冲区也是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取数据,并将其存储在数据存储区。接收和发送数据的中断程序流程如图5、图6所示。

图5 接收数据的中断程序流程 图6 发送数据的中断程序流程

3 结语

基于CAN总线的智能测温系统具有测量范围广、精度高、环境适应能力强等特点。该系统通过CAN适配器与计算机连接,可以方便地构成分布式测控系统。已经成功应用于CNC精密成型磨削设备数控的研制项目中。此外,该智能测温系统在电力、油田、楼宇、冶金等工业自动化领域可具有广泛的应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top