CAN總線在測溫系統(tǒng)中的應(yīng)用
控制器局部網(wǎng)(controller area network,CAN)屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制的串行通訊網(wǎng)絡(luò),被公認為是最有前途的現(xiàn)場總線之一。本文利用MAX6675測溫芯片作為傳感器,使用CAN總線標準設(shè)計了一種智能測溫系統(tǒng)(適用范圍0℃~+1023.5℃)。該系統(tǒng)精度高(±0.5℃)、可靠性好、結(jié)構(gòu)簡單、成本低,在適用范圍內(nèi)可取代傳統(tǒng)的測溫系統(tǒng),對該系統(tǒng)稍加修改,可使它應(yīng)用于在多種測溫場合。
本文引用地址:http://m.butianyuan.cn/article/201609/303295.htm1 硬件設(shè)計
硬件電路由微處理器、CAN控制器、測溫芯片MAX6675、LED、鍵盤、復位電路、蜂鳴器等幾部分組成,如圖1所示。單片機AT89C51是硬件電路的核心,承擔CAN 控制器的初始化、數(shù)據(jù)收發(fā)控制等任務(wù);CAN總線控制器用于同上位機進行遠程通訊,能夠獨立完成CAN總線上數(shù)據(jù)的接收和發(fā)送工作;MAX6675芯片用于檢測和發(fā)送溫度數(shù)據(jù)。
圖2 測溫電路圖
MAX6675從I/O口線輸出數(shù)據(jù)的具體過程如下:P12端口輸出的低電平將CS變低,并提供時鐘信號給SCK,由SO口讀取測量結(jié)果。CS變低,將停止任何轉(zhuǎn)換過程,CS變高將啟動一個新的轉(zhuǎn)換過程。
一個完整串行接口讀操作需16個時鐘周期,在時鐘的下降沿讀16個輸出位。第15位是偽標志位,并總為0;第14位到第3位為以MSB到LSB順序排列的轉(zhuǎn)換溫度值;第2位平時為低,當熱電偶輸入開放時為高,開放熱電偶檢測電路完全由MAX6675實現(xiàn),為開放熱電偶檢測器操作,T-必須接地,并使能地點盡可能接近GND 腳;第1位為低以提供MAX6675器件身份碼,第0位為三態(tài)標志位 。
1.2 CAN總線的通信節(jié)點電路
通信節(jié)點采用PHILIPS公司生產(chǎn)的符合CAN2.0B協(xié)議的獨立CAN通信控制器SJA1000及CAN收發(fā)器PCA82C250組成與其他智能節(jié)點或上位機的通信接口,實現(xiàn)數(shù)據(jù)傳輸。CAN控制器SJA1000工作在中斷模式,通過其中斷輸出引腳向CPU申請中斷,CPU在中斷子程序內(nèi)完成對上位機命令的解釋與執(zhí)行。CAN通信節(jié)點電路如圖3所示。
圖4 溫度采集程序流程圖
2.2 CAN通訊節(jié)點設(shè)計
CAN接口通信軟件設(shè)計主要分為三部分:CAN初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收。
2.2.1 CAN控制器SJA1000的初始化
CAN初始化主要是設(shè)置SJA1000的參數(shù)。需要初始化的CAN控制寄存器有:模式寄存器、時分寄存器、接收代碼寄存器、屏蔽寄存器、總線定時寄存器、輸出控制寄存器。這些寄存器只能在CAN控制器處于復位狀態(tài)下才可寫訪。設(shè)SJA1000的首地址是0BF00H。初始化子程序如下:
CR EQU 0BF00H; 控制寄存器
CMR EQU 0BF01H; 命令寄存器
SR EQU 0BF02H; 狀態(tài)寄存器
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;設(shè)置接點號
MOVX @DPIR,A
MOV DPTR,#AMR;寫接收碼屏蔽寄存器
MOV A,#00H
MOVX @DPTR,A
MOV DPTR,#BTR0;寫總線定時寄存器0
MOV A,NBTR0;設(shè)置波特率
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 ;設(shè)定工作模式
MOVX @DfTR ,A
MOV DPTR,#CR ;寫控制寄存器
MOV A,#0EH ;開放中斷源
MOVX @DPTR,A
RET
2.2.2 CAN接收與發(fā)送數(shù)據(jù)程序
發(fā)送數(shù)據(jù)程序把數(shù)據(jù)存儲區(qū)中待發(fā)送的數(shù)據(jù)取出,組成數(shù)據(jù)幀,并將主機的ID地址填人幀頭,然后將數(shù)據(jù)幀發(fā)送到CAN 控制器的發(fā)送緩沖區(qū)。其數(shù)據(jù)幀形式如下:
幀起始→仲裁場→控制場→數(shù)據(jù)場(8B)→CRC場→ACK場→幀結(jié)束。
在接收到主機的發(fā)送請求后,發(fā)送程序啟動發(fā)送命令。數(shù)據(jù)從CAN控制器發(fā)送到總線是由CAN控制器自動完成的。數(shù)據(jù)從CAN總線到CAN控制器的接收緩沖區(qū)也是由CAN控制器自動完成的。接收程序只需從接收緩沖區(qū)讀取數(shù)據(jù),并將其存儲在數(shù)據(jù)存儲區(qū)。接收和發(fā)送數(shù)據(jù)的中斷程序流程如圖5、圖6所示。
圖5 接收數(shù)據(jù)的中斷程序流程 圖6 發(fā)送數(shù)據(jù)的中斷程序流程
3 結(jié)語
基于CAN總線的智能測溫系統(tǒng)具有測量范圍廣、精度高、環(huán)境適應(yīng)能力強等特點。該系統(tǒng)通過CAN適配器與計算機連接,可以方便地構(gòu)成分布式測控系統(tǒng)。已經(jīng)成功應(yīng)用于CNC精密成型磨削設(shè)備數(shù)控的研制項目中。此外,該智能測溫系統(tǒng)在電力、油田、樓宇、冶金等工業(yè)自動化領(lǐng)域可具有廣泛的應(yīng)用前景。
評論