新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于89C51單片機和CAN總線的供熱溫度控制器的設(shè)計研究

基于89C51單片機和CAN總線的供熱溫度控制器的設(shè)計研究

作者: 時間:2016-12-05 來源:網(wǎng)絡(luò) 收藏
建設(shè)部要求城鎮(zhèn)新建公共建筑和居民建筑,凡使用集中供熱設(shè)施的,均需設(shè)計、安裝具有分戶計量及室溫調(diào)控功能的供暖系統(tǒng)。節(jié)能型供熱溫度控制器是利用自動控制技術(shù),將節(jié)能措施與熱計量功能融為一體,從以人為本的角度提出的一種新型節(jié)能理念和方法,使集中供暖用戶既可通過控制器設(shè)定、調(diào)整并與配套設(shè)備共同完成對室內(nèi)溫度的自動控制和遠(yuǎn)程控制,又可隨時了解室內(nèi)溫度、熱消耗量,達(dá)到節(jié)約能源的目的。

1 系統(tǒng)總體結(jié)構(gòu)及方案設(shè)計

本文引用地址:http://m.butianyuan.cn/article/201612/326433.htm

一個完整的大型公建節(jié)能型供熱溫度控制器由兩部分組成:溫度測控系統(tǒng)和通信模塊系統(tǒng)。系統(tǒng)總體結(jié)構(gòu)如圖1所示。系統(tǒng)溫度測控的硬件包括:單片機、溫度傳感器、信號放大器、A/D轉(zhuǎn)換器及D/A轉(zhuǎn)換器、穩(wěn)壓器、顯示驅(qū)動芯片和數(shù)碼管等。系統(tǒng)通信模塊的硬件包括CAN控制器和CAN收發(fā)器。

1.1 溫度控制的工作原理

在溫度測控系統(tǒng)中,穩(wěn)壓器完成對單片機的供電,數(shù)碼管完成溫度的顯示。系統(tǒng)的被測參數(shù)是溫度,被測溫度首先由傳感器測量后得到mV信號,再經(jīng)放大器放大后變?yōu)?~5 V電壓信號,送入A/D轉(zhuǎn)換器轉(zhuǎn)換后,將模擬信號變?yōu)閿?shù)字信號供給單片機,在單片機內(nèi)進行數(shù)據(jù)處理。一方面,與所設(shè)定的溫度值進行比較產(chǎn)生偏差信號,單片機根據(jù)預(yù)定的PID算法計算出相應(yīng)的控制量,用控制量控制電氣閥的導(dǎo)通和關(guān)斷,實現(xiàn)溫度控制;另一方面,將實時測量得到的溫度送至數(shù)碼管顯示,同時用戶也可通過鍵盤來設(shè)定理想溫度。

1.2 CAN通信模塊的工作原理

當(dāng)CAN總線上的一個節(jié)點發(fā)送數(shù)據(jù)時,其以報文形式廣播給網(wǎng)絡(luò)中所有節(jié)點。對每個節(jié)點而言,無論數(shù)據(jù)是否是發(fā)給自己的,均對其進行接收。每組報文開頭有11位字符作為標(biāo)識符,其規(guī)定了報文的優(yōu)先級,這種格式稱為面向內(nèi)容的編址方案。在同一系統(tǒng)中標(biāo)識符是唯一的,不可能有兩個站發(fā)送具有相同標(biāo)識符的報文。當(dāng)幾個站同時競爭總線讀取時,這種配置尤為重要。當(dāng)一個站要向其他站發(fā)送數(shù)據(jù)時,該站的CPU要將發(fā)送的數(shù)據(jù)和自身的標(biāo)識符傳送給本站的CAN控制器,并處于準(zhǔn)備狀態(tài);當(dāng)收到總線分配時,轉(zhuǎn)為發(fā)送報文狀態(tài)。CAN控制器將數(shù)據(jù)根據(jù)協(xié)議組織成一定的報文格式發(fā)出,此時網(wǎng)上的其他站點處于接收狀態(tài)。每個處于接收狀態(tài)的站對接收到的報文進行檢測,判斷是否接收這些報文。通常每個CAN模塊都是南不同的功能單元構(gòu)成。CAN控制器與物理總線間需要一個接口CAN接收發(fā)送器,CAN接收發(fā)送器將來自CAN控制器的邏輯電平信號轉(zhuǎn)換為總線上的物理電平。再將總線上的物理電平轉(zhuǎn)換為CAN控制器能接收的邏輯電平信號。CAN接收發(fā)送器的上一層是CAN控制器,該控制器執(zhí)行完整的CAN協(xié)議,包括信息緩沖和接收濾波。

2 各部分模塊設(shè)計

2.1 主要芯片選擇

系統(tǒng)單片機采用8位AT89C51,因控制器所需的單片機,無需在語音、圖像進行大規(guī)模的數(shù)據(jù)處理,且對速度要求較低,無需高位單片機。溫度傳感器該產(chǎn)品采用美國Dallas公司生產(chǎn)的DS18B20數(shù)字式溫度傳感器。選用此類溫度傳感器可省去信號放大部分及A/D轉(zhuǎn)換器,使得該溫度控制器結(jié)構(gòu)變得簡單、清晰。穩(wěn)壓器采用三端LM7805供給單片機電源。LM7805為正穩(wěn)壓電路,TO-220封裝,可提供多種固定的輸出電壓,應(yīng)用范圍廣。D/A轉(zhuǎn)換器選擇DAC0832.其是8分辨率的D/A轉(zhuǎn)換集成芯片與微處理器完全兼容。顯示芯片采用PS7219,是一種新型的串行接口的8位數(shù)字靜態(tài)顯示芯片,可與任何單片機方便接口,并可同時驅(qū)動8位LED.

2.2 單片機溫度采集電路

溫控系統(tǒng)包括單片機最小系統(tǒng)和測溫傳感器。單片機最小系統(tǒng)中,復(fù)位電路采用12 MHz晶振,復(fù)位電路由復(fù)位按鈕控制,同時提供單片機AT89C51、CAN控制器SJA1000和顯示接口器件PS7219的復(fù)位信號。單片機溫度采集電路如圖2所示,從RST引出線,分別與各芯片的復(fù)位信號線相連采用上電復(fù)位模式。

2.3 數(shù)模轉(zhuǎn)換電路

對輸出信號進行數(shù)模轉(zhuǎn)換中,DAC0832采用單緩沖工作方式。DAC0832的兩級寄存器的寫信號WR1和WR2均由單片機的WR引腳控制。當(dāng)單片機的地址線選擇DAC0832后,只要輸出WR控制信號,便可同時完成數(shù)字陽的輸入鎖存和D/A轉(zhuǎn)換輸出。由于DAC0832是電流輸出型,所以為了得到電壓信號,需在DAC0832的輸出端接入運算放大器。接入一級運算放大器可得到負(fù)的電壓信號,接入二級運算放大器,得到正的電壓信號。數(shù)模轉(zhuǎn)換電路如圖3所示。

2.4 CAN通信模塊電路

SJA1000作為CAN的控制部分,在與單片機連接時,其數(shù)據(jù)線AD0~AD7與單片機的輸入輸出管腳P0口連接,片選信號CS接地,低電壓允許訪問,RST、1NT、WR、WD、ALE管腳分別與單片機的相應(yīng)管腳連接,控制器的收發(fā)端RX0、TX0分別接收發(fā)器CTM1050的收發(fā)端RXD、TXD引腳相連。系統(tǒng)通信模塊電路如圖4所示。

2.5 電源電路及溫度顯示、按鍵電路

當(dāng)穩(wěn)壓器LM7805對單片機進行供電時,220 V交流市電通過電源變壓器變換為交流低壓,再經(jīng)橋式整流電路和濾波電容C1的整流和濾波,在固定式三端穩(wěn)壓器LM7805的Vin和GND兩端形成一個并不穩(wěn)定的直流電壓。此直流電壓經(jīng)LM7805的穩(wěn)壓和C3的濾波便在穩(wěn)壓電源的輸出端產(chǎn)生了精度高、穩(wěn)定度好的直流輸出電壓。單片機AT89C51的P1.6作串行數(shù)據(jù)輸出,連接到PS7219的DIN腳,P1.7和P1.5通過程序分別模擬PS7219的時鐘脈沖CLK及數(shù)據(jù)加載LOAD信號。PS7219的SA~SG,SDP端連接到各LED數(shù)碼管對應(yīng)的a~f及dp端,DIG1~DIG3分別接3位LED數(shù)碼管的共陰極,從而實現(xiàn)位選。PS7219應(yīng)緊靠LED顯示器放置,且連線盡可能短,兩個GND引腳均必須連接到地線上。系統(tǒng)只設(shè)4個按鍵,分別是功能鍵、增加鍵、減小鍵和確定鍵。在按鍵的線路連接中,每個按鍵并聯(lián)一個0.1μF電容,目的是實現(xiàn)消抖。

3 程序設(shè)計

3.1 系統(tǒng)主程序設(shè)計

主程序模塊的主要工作是上電后對系統(tǒng)初始化和構(gòu)建系統(tǒng)整體軟件框架,其中初始化包括對單片機的初始化、D/A芯片初始化和溫度傳感器初始化等。隨后等待溫度設(shè)定,若溫度設(shè)定后,判斷系統(tǒng)運行鍵是否按下,若系統(tǒng)運行,則依次調(diào)用各相關(guān)模塊,循環(huán)控制直到系統(tǒng)停止運行。圖5所示為主程序流程圖。

由于常規(guī)PID控制器控制效果不佳,溫度測量控制中存在非線性、時變、干擾和純滯后問題,而增量式PID算法具有計算誤差小、切換無沖擊和可靠性高的特點,所以本系統(tǒng)采用該算法。數(shù)字增量式PID的輸出為:

△u(k)=a0e(k)-a1e(k-1)+a2e(k-2) (1)

其中,Kp為比例系數(shù);TI為積分時間常數(shù);TD為微分時間常數(shù)

3.2 溫度傳感器測溫子程序

溫度傳感器DS18B20的操作協(xié)議:初始化DS1820(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。其操作程序流程如圖6所示。其中任何一步失敗時自動重新初始化。

3.3 CAN通信模塊子程序

CAN通信的軟件設(shè)計主要包括3部分:CAN節(jié)點初始化、報文發(fā)送和報文接收。AT89C51通電或復(fù)位后,調(diào)用復(fù)位程序給SJA1000的復(fù)位端RST提供復(fù)位信號,使SJA1000進入復(fù)位模式,SJA1000的初始化只有在復(fù)位模式下才可進行。初始化程序主要包括以下寄存器的設(shè)計:(1)通過時鐘分頻寄存器定義:是使用BasIC CAN模式或Peli CAN模式;是否能使CLKOUT輸出時鐘頻率;是否旁路CAN輸入比較器;TX1輸出是否用專門的接收中斷輸出。(2)通過驗收碼寄存器和屏蔽寄存器定義接收報文的驗收碼與對報文之間進行比較的相關(guān)位定義驗收屏蔽碼。(3)通過總線定時寄存器定義總線的位速率、位周期內(nèi)的采樣點和一個位周期內(nèi)的采樣數(shù)量。(4)通過輸出寄存器定義CAN總線輸出管腳TX0、TX1的輸出模式、配置。最后,要清除SJA1000的復(fù)位請求標(biāo)志進入工作模式,方可進行報文的發(fā)送和接收。

單片機將要發(fā)送的報文送到SAJ1000發(fā)送緩沖區(qū),然后將SJA1000命令寄存器的發(fā)送請求標(biāo)志位(TR)置位,發(fā)送過程南其獨立完成。在新報文寫入發(fā)送緩沖區(qū)前,必須先檢查狀態(tài)寄存器的發(fā)送緩沖器狀態(tài)標(biāo)志(TBS),若為“1”,發(fā)送緩沖器被釋放,可將新的報文寫入發(fā)送緩沖器。否則,發(fā)送緩沖器被鎖定,新報文不能被寫入。

報文接收也由SJA1000獨立完成。收到的報文通過接收濾波器放在FIFO隊列中,第1條報文進入接收緩沖器,由狀態(tài)寄存器的接收緩沖器狀態(tài)標(biāo)志位(RBS)和接收中斷標(biāo)志位(RI)標(biāo)出。單片機從接收緩沖器取走1條報文后,通過置位SAJ1000的命令寄存器來釋放接收緩沖器。

4 軟件調(diào)試

硬件設(shè)計和軟件的編程后,將針對要實現(xiàn)的功能編寫程序在Keil C51中將編譯無誤的程序運行,對整個系統(tǒng)而言,首先要對鍵盤輸入和數(shù)碼顯示進行調(diào)試,就是整個硬件電路對照電路圖進行檢查,查找錯焊、虛焊、漏焊等錯誤。檢查無誤后,便開始運行電路,為保證穩(wěn)定的電源供給,給PC機的USB接口提供5 V直流電源。將結(jié)果與要實現(xiàn)的理想狀態(tài)對照,再通過結(jié)果對硬件電路進行檢驗和修改,并將所編程序進行適當(dāng)優(yōu)化,如圖7所示。運行結(jié)果證明整個系統(tǒng)穩(wěn)定、可靠,滿足了設(shè)計要求。

5 結(jié)束語

本方案采用了基于89C51單片機和CAN總線的設(shè)計方法,給出了供熱溫度控制器的總體設(shè)計方案,以及主要電路原理圖的引腳連接,并根據(jù)功能要求和實際電路設(shè)計了系統(tǒng)軟件,給出了主要程序的流程圖。最終對單片杌進行了軟硬件聯(lián)調(diào),實現(xiàn)了相應(yīng)功能。



關(guān)鍵詞: 89C51單片

評論


技術(shù)專區(qū)

關(guān)閉