《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于CAN總線的溫度測量節(jié)點設計
基于CAN總線的溫度測量節(jié)點設計
山西電子技術
吳 強,吳 堅 贛南師范學院
摘要: 介紹了CAN總線技術及特點,提出了一種基于CAN總線的溫度測量節(jié)點的設計,該系統(tǒng)采用單片機技術和CAN總線技術實現(xiàn),給出了溫度測量節(jié)點的硬件、軟件的設計。經(jīng)實際應用,使用CAN總線的溫度測量節(jié)點在信號傳輸?shù)膶崟r性、可靠性、傳輸距離和測量精度有著顯著的提高。
Abstract:
Key words :

摘要:介紹了CAN總線技術及特點,提出了一種基于CAN總線的溫度測量節(jié)點的設計,該系統(tǒng)采用單片機技術和CAN總線技術實現(xiàn),給出了溫度測量節(jié)點的硬件、軟件的設計。經(jīng)實際應用,使用CAN總線的溫度測量節(jié)點在信號傳輸?shù)膶崟r性、可靠性、傳輸距離和測量精度有著顯著的提高。
關鍵詞:CAN總線;節(jié)點;CAN通信

0 引言
    CAN是Controller Area Network的縮寫,即控制器局部網(wǎng),通常稱為CAN bus(CAN總線),是一種支持分布式控制的串行通信協(xié)議。CAN最初出現(xiàn)在汽車工業(yè)中,是20世紀80年代德國Boech公司為汽車的監(jiān)控、控制系統(tǒng)而設計的,主要是解決汽車中的電子控制裝置之間的通信,減少不斷增加的信號線。CAN總線的直接通信距離最遠可以達到10 km,此時通信速率為5 kbps以下;而通信速率最高可達1 Mbps,此時通信距離長為40 m。同時CAN總線的通信媒介采用雙絞線或光纖,選擇靈活,其結構較簡單,總線接口芯片支持8位、16位的CPU。
    由于CAN總線采用短幀結構,在標準格式中,短幀的字節(jié)數(shù)為8個,因此傳輸時間短,受干擾的概率低,重新發(fā)數(shù)據(jù)幀的時間短,并且每幀信息都有CBC校驗及其他檢錯措施,這樣可以保證極低的數(shù)據(jù)出錯率。CAN總線上的節(jié)點在錯誤嚴重時,可以自動關閉總線的功能,使總線上的其它操作不受到影響。由于CAN總線的數(shù)據(jù)通信具有卓越的特性及極高的可靠性,因而非常適合工業(yè)過程監(jiān)控設備互連,也是最有前途的現(xiàn)場總線之一。由于CAN總線的特點,使得其廣泛地應用于電力、航空航天、治金、交通工具、機器人、醫(yī)療設備、環(huán)境監(jiān)控和家用電器等眾多領域。本文提出基于CAN總線的溫度測量節(jié)點的設計。

1 系統(tǒng)總體結構設計
    根據(jù)系統(tǒng)的設計要求,其總體設計結構如圖1所示。整個系統(tǒng)由主站節(jié)點、分布式溫度測量節(jié)點兩部分組成。由于基于CAN總線的溫度測量節(jié)點是一種分布式、實時的通信系統(tǒng),可采用主從方式通信,其特點就是系統(tǒng)中任一節(jié)點設一為主站節(jié)點,其余均為從站節(jié)點,主站節(jié)點通過CAN總線與各個從站節(jié)點進行通信。我們只需設一個主站節(jié)點作為主監(jiān)控器,以點對點方式進行通信,其余的從站均為各個溫度測量節(jié)點。各個節(jié)點都通過CAN總線實現(xiàn)信號數(shù)據(jù)的連接,各個溫度測量節(jié)點具有較強的獨立性,具有工作可靠性、性能穩(wěn)定、測量精確、安裝調(diào)試方便、造價低廉等特點。

a.jpg



2 溫度測量節(jié)點的硬件電路設計
    CAN總線溫度測量節(jié)點主要任務是溫度采集與CAN通信,其硬件結構框圖如圖2所示。硬件電路由微處理器STC89C52、總線控制器SJA10 00、總線驅(qū)動器PCA82CS0和傳感器DS18B20四個部份組成。微處理器負責對SJA1000和DS18B20進行初始化,通過總線控制器SJA1000實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務。

b.jpg

2.1 溫度傳感器DS18B20
    DS18B20是美國DALLAS公司推出的第一片支持“一線總線”接口的溫度傳感器,該傳感器只需一個端口引腳進行通信,就可以實現(xiàn)多點分布的應用,具有低功耗、高性能、抗干擾強等優(yōu)點。其傳感器的特性為:
    (1)溫度測量范圍寬,能測到-55℃~125℃的溫度,在-10℃~+85℃時精度為正負0.5℃。
    (2)提供9—12位的測量分辯率,對應的溫度精度分別為0.5℃、0.25℃、0.125℃和0.0625℃,實現(xiàn)了高精度的測量。
    (3)接口方式獨特,僅需一條信號線就可以實現(xiàn)與微處理器的雙向通信。
    (4)測量出的溫度能直接轉化成串行數(shù)字信號供CPU處理,同時還傳送CRC校驗碼,具有很強的抗干擾糾錯能力。
    溫度傳感器的電路設計由單片機的引腳P3.5與傳感器DS18B20的DQ腳相連,實現(xiàn)微處理器與傳感器的雙向數(shù)據(jù)的通信。同時DQ單總線外接一4.7 k的上拉電阻。溫度傳感器的電路圖如圖3所示。

c.jpg


2.2 CAN通信電路的設計
    CAN通信電路是整個系統(tǒng)實現(xiàn)通信的關鍵部分,系統(tǒng)中各個節(jié)點和節(jié)點控制器是通過CAN通信電路接入CAN總線網(wǎng)絡上的,實現(xiàn)信號數(shù)據(jù)的傳輸。CAN通信電路采用STC89C52處理器、PHILIPS公司的總線控制器SJA1000、NXP公司的總線收發(fā)器82C250和高速光電耦合器6N137等器件組成。在CAN通信電路中微處理器負責對SJA1000進行初始化,各信號通過CAN總線控制器實現(xiàn)信號數(shù)據(jù)的接收和發(fā)送等通信任務。同時為了增加CAN總線節(jié)點的抗干擾能力,更好地實現(xiàn)了總線上各CAN節(jié)點間的電氣隔離,SJA1000的TX和RX引腳通過連接光耦6N137后再與總線收發(fā)器PCA82C250相連,總線收發(fā)器82C250的TXD和RXD分別接光耦6N137的輸出OUT和輸入IN端,再通過具有差動發(fā)送和接收功能的總線終端CAN_H和CAN_L連接入總線電纜中,完成通信的傳輸。

3 溫度測量節(jié)點的軟件設計
    溫度測量節(jié)點的軟件設計包括CAN總線初始化、發(fā)送子程序及中斷接收程序軟件設計和溫度傳感器DS18B20的程序設計。其節(jié)點流程圖如圖4所示。

d.jpg


3.1 CAN初始化程序
    CAN初始化即初始化CAN節(jié)點。要保證通信正確可靠則必須先對控制器SJA1000進行初始化參數(shù)設置。初始化設置是通過微處理器對SJA1 000的寄存器進行初始化,這些初始化包括控制寄存器的配置、命令寄存器的配置、狀態(tài)寄存器的配置、中斷管理寄存器的設置、總線定時寄存器的配置、輸出控制寄存器的設置以及時鐘分頻寄存器的設置等。
    系統(tǒng)上電后,對CAN初始化只有在復位模式下才可以開始,初始化設置完成后,CAN控制器就可以回到工作狀態(tài),即進入工作模式,執(zhí)行正常的通信任務。CAN控制器初始化流程圖如圖5所示。

e.jpg


3.2 CAN通信電路程序
    CAN總線節(jié)點要完成通信任務則還必須包括發(fā)送子程序及中斷接收程序。發(fā)送子程序負責各節(jié)點報文的發(fā)送任務。發(fā)送時只需將待發(fā)送的數(shù)據(jù)信息按特定的格式組合成一幀報文,送入CAN控制器SJA1000的發(fā)送緩沖器中,啟動SJA1000發(fā)送即可完成發(fā)送報文任務。在向SJA1000發(fā)送緩沖器發(fā)送報文之前,可先做一些判斷,判斷其是否正在接收數(shù)據(jù)、先前發(fā)送是否成功以及發(fā)送緩沖器是否鎖定等等,以確保數(shù)據(jù)發(fā)送的可靠性。
    中斷接收程序主要是負責節(jié)點報文的接收以及其它中斷情況的處理。當進入中斷后要進行是否有數(shù)據(jù)的判斷,以防干擾誤中斷。
3.3 溫度傳感器的程序設計
    溫度測量節(jié)點電路上電后也要進行初始化設置,初始化完成后,溫度測量節(jié)點中的溫度傳感器對采集到的數(shù)據(jù)信息實時處理、現(xiàn)場數(shù)據(jù)實時顯示,并判斷采集的信息是否超過正常值,如出現(xiàn)異常,則報警提示并通過CAN通信電路進行通信。

4 結束語
    本設計應用性很強,在實際應用中表明,其溫度測量的精度和穩(wěn)定性都得到很好的提高,準確地反應了工作狀況和實際狀況,達到了預期目標。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。