CAN总线在测温系统中的应用
控制器局部网(controller area network,CAN)属于现场总线的范畴,它是一种有效支持分布式控制的串行通讯网络,被公认为是最有前途的现场总线之一。本文利用MAX6675测温芯片作为传感器,使用CAN总线标准设计了一种智能测温系统(适用范围0℃~+1023.5℃)。该系统精度高(±0.5℃)、可靠性好、结构简单、成本低,在适用范围内可取代传统的测温系统,对该系统稍加修改,可使它应用于在多种测温场合。
1 硬件设计
硬件电路由微处理器、CAN控制器、测温芯片MAX6675、LED、键盘、复位电路、蜂鸣器等几部分组成,如图1所示。单片机AT89C51是硬件电路的核心,承担CAN 控制器的初始化、数据收发控制等任务;CAN总线控制器用于同上位机进行远程通讯,能够独立完成CAN总线上数据的接收和发送工作;MAX6675芯片用于检测和发送温度数据。
![](../img/eep/emb/emb-48734yywudzg3btn.jpg)
图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所示。
![](../img/eep/emb/emb-48735bd1ckccjj0s.jpg)
图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所示。
![](../img/eep/emb/emb-48736tm2jiisudwa.jpg)
图5 接收数据的中断程序流程 图6 发送数据的中断程序流程
3 结语
基于CAN总线的智能测温系统具有测量范围广、精度高、环境适应能力强等特点。该系统通过CAN适配器与计算机连接,可以方便地构成分布式测控系统。已经成功应用于CNC精密成型磨削设备数控的研制项目中。此外,该智能测温系统在电力、油田、楼宇、冶金等工业自动化领域可具有广泛的应用前景。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)