新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CAN總線在測溫系統中的應用

        CAN總線在測溫系統中的應用

        作者: 時間:2016-09-12 來源:網絡 收藏

        控制器局部網(controller area network,CAN)屬于現場總線的范疇,它是一種有效支持分布式控制的串行通訊網絡,被公認為是最有前途的現場總線之一。本文利用MAX6675測溫芯片作為傳感器,使用CAN總線標準設計了一種智能測溫系統(適用范圍0℃~+1023.5℃)。該系統精度高(±0.5℃)、可靠性好、結構簡單、成本低,在適用范圍內可取代傳統的測溫系統,對該系統稍加修改,可使它應用于在多種測溫場合。

        本文引用地址:http://www.104case.com/article/201609/303295.htm

        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的通信節點電路

        通信節點采用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精密成型磨削設備數控的研制項目中。此外,該智能測溫系統在電力、油田、樓宇、冶金等工業自動化領域可具有廣泛的應用前景。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 社旗县| 开鲁县| 漳平市| 启东市| 关岭| 三门县| 保山市| 南平市| 东乡| 灵石县| 资溪县| 巴楚县| 灵武市| 佛教| 屏南县| 铜陵市| 海盐县| 四会市| 乐昌市| 泸水县| 景泰县| 霍城县| 顺昌县| 大石桥市| 新郑市| 奉化市| 安塞县| 定安县| 泰和县| 营口市| 鄂托克前旗| 思南县| 衡水市| 丰原市| 大足县| 林芝县| 九江市| 河源市| 渭南市| 平乡县| 临桂县|