嵌入式系統(tǒng)在溫度控制中的應(yīng)用_第1頁
嵌入式系統(tǒng)在溫度控制中的應(yīng)用_第2頁
嵌入式系統(tǒng)在溫度控制中的應(yīng)用_第3頁
嵌入式系統(tǒng)在溫度控制中的應(yīng)用_第4頁
嵌入式系統(tǒng)在溫度控制中的應(yīng)用_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、嵌入式系統(tǒng)在溫度控制中的應(yīng)用湖南文理學(xué)院芙蓉學(xué)院課程設(shè)計(jì)報(bào)告課程名稱: 嵌入式課程設(shè)計(jì) 專業(yè)班級: 通信1101班 學(xué)生姓名: 指導(dǎo)教師: 完成時(shí)間: 2014年 6月 5 日 報(bào)告成績: 評閱意見: 評閱教師 日期 第1章 概述 嵌入式系統(tǒng)被定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。實(shí)際上嵌入式系統(tǒng)是計(jì)算機(jī)的一種應(yīng)用形式,是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,具有軟件代碼小、高度自動(dòng)化、響應(yīng)速度快等特點(diǎn)。因此它是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。

2、特別適合于要求實(shí)時(shí)的和多任務(wù)的系統(tǒng)。 復(fù)雜的微機(jī)控制系統(tǒng)使用常規(guī)的順序程序設(shè)計(jì)方法加上中斷來實(shí)現(xiàn)功能是比較困難的,主要體現(xiàn)在以下幾個(gè)方面:(1).實(shí)時(shí)性差:由于計(jì)算機(jī)在處理中斷時(shí),一般不允許響應(yīng)低級和同級中斷,為了提高實(shí)時(shí)性,要求中斷處理程序盡量短。但是有許多實(shí)時(shí)操作的處理比較復(fù)雜,需要較長的CPU執(zhí)行時(shí)間。如果用中斷來完成這些處理,則在處理時(shí),無法響應(yīng)低級或同級中斷。如果采用中斷置標(biāo)志的方法,讓主程序來進(jìn)行處理,則一方面會(huì)增加程序的復(fù)雜性,另一方面也難以做到實(shí)時(shí)處理,因?yàn)橹鞒绦虿豢赡茉趫?zhí)行其它程序時(shí),隨時(shí)去檢查這些標(biāo)志位而轉(zhuǎn)向不同的處理程序。(2).難以實(shí)現(xiàn)并行操作的相互通信:在功能較強(qiáng)的實(shí)

3、時(shí)系統(tǒng)中,除了主程序有時(shí)需要與中斷間進(jìn)行信息交換外,各個(gè)并行操作之間有時(shí)也需相互通信。這些用常規(guī)方法是難以實(shí)現(xiàn)的。(3).結(jié)構(gòu)復(fù)雜、移植性差、維護(hù)困難:單片微機(jī)功能的復(fù)雜化,使軟件越來越復(fù)雜,特別是為了實(shí)現(xiàn)并行操作,需使用大量的中斷和標(biāo)志,使程序結(jié)構(gòu)十分混亂,難以設(shè)計(jì)和調(diào)試。同時(shí)由于程序采用線性結(jié)構(gòu),使得程序難于修改或者移植,因此缺乏靈活性、通用性和可維護(hù)性。第二章 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)設(shè)計(jì)出一個(gè)實(shí)現(xiàn)對溫度進(jìn)行測量和控制的嵌入式系統(tǒng)。系統(tǒng)具有對外界兩點(diǎn)溫度進(jìn)行采集的能力,采集的模擬信號經(jīng)A/D模塊轉(zhuǎn)換成相應(yīng)的數(shù)字量,送入微處理器進(jìn)行處理。采集到的每一路溫度都要與系統(tǒng)此路溫度設(shè)定值進(jìn)行比較,然后根據(jù)

4、結(jié)果調(diào)用合適的控制算法,并通過控制相應(yīng)的繼電器的占空比實(shí)現(xiàn)對溫度的控制、測量、運(yùn)算處理、輸出控制、顯示、通信。為此引出串行通信設(shè)計(jì)利用RS-232串行通信,實(shí)現(xiàn)了與PC機(jī)進(jìn)行通訊功能和遠(yuǎn)程加載功能??紤]到實(shí)際的應(yīng)用及成本等因素,選用的主要硬件器件有臺(tái)灣SynCMOS公司的生產(chǎn)的SM5964微控制器,數(shù)據(jù)采集部分選用了凌特公司(Linear Technology)推出的20位無延遲模數(shù)轉(zhuǎn)換器LTC2430,串行通訊部分使用MAX232芯片,液晶顯示屏選用了北京精電蓬遠(yuǎn)顯示技術(shù)公司生產(chǎn)的MGLS-12864。嵌入式操作系統(tǒng)選用了源代碼公開的C/OS-II。選用的開發(fā)環(huán)境是:Windows 2000

5、 Server 開發(fā)工具:Keil C51 7.0、VC+ 6.0使用的語言是:匯編、C語言2.1 系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)的原理圖如圖2-1所示。主要有鍵盤輸入、數(shù)據(jù)采集、輸出控制、LCD顯示、通信及電源模塊等組成。 圖2-1 系統(tǒng)原理框圖下面介紹一下主要部分的電路圖設(shè)計(jì)。1). 鍵盤輸入電路鍵盤是一組按鍵的組合,它是常用的輸入設(shè)備,可以通過鍵盤輸入數(shù)據(jù)或者命令,實(shí)現(xiàn)簡單的人機(jī)對話。鍵盤可分為獨(dú)立聯(lián)接式和行列式(矩陣式)兩類,每類按其譯碼方式又分為編碼式及非編碼式兩類。設(shè)計(jì)中使用的是獨(dú)立聯(lián)接非編碼式鍵盤。電路圖如圖2-2所示: 圖2-2 鍵盤原理圖每個(gè)按鍵使用的是一個(gè)瞬時(shí)接觸開關(guān),這種聯(lián)接方式可以

6、容易被微處理器檢測,但由于按鍵會(huì)產(chǎn)生機(jī)械抖動(dòng),在按鍵被按下或者抬起的瞬間,一般持續(xù)515ms,因此設(shè)計(jì)中要去除鍵抖動(dòng)??梢酝ㄟ^硬件雙穩(wěn)態(tài)電路或者軟件延時(shí)來實(shí)現(xiàn),設(shè)計(jì)中采用延時(shí)20ms實(shí)現(xiàn)的。對于串鍵,采用無限處理方法。同時(shí)為了防止按一次鍵而產(chǎn)生多次處理的情況(鍵掃描和鍵處理速度較快而此時(shí)鍵還沒釋放),在有鍵按下時(shí),作一次鍵處理后還要檢測按下的鍵是否釋放。2). 數(shù)據(jù)采集電路本系統(tǒng)實(shí)現(xiàn)對兩路溫度信號的采集,為了節(jié)省硬件成本,在前向通道中采用了多路選擇開關(guān),使用了兩個(gè)多路模擬開關(guān)器件CD4052,實(shí)現(xiàn)信號的差分輸入,完成對兩路溫度信號的輪流采樣,然后將信號送入一個(gè)公共的模數(shù)轉(zhuǎn)換器LTC2430,完

7、成模數(shù)轉(zhuǎn)換。由微處理器的P1.2、P1.3兩引腳實(shí)現(xiàn)信道的選擇。電路圖如圖2-3所示: 圖2-3 數(shù)據(jù)采集原理圖對溫度的測量使用鉑(Pt)熱敏電阻(100),使用橋式電路進(jìn)行測量。鉑電阻是一種高性能的貴金屬熱電阻,具有精度高、穩(wěn)定性好、性能可靠等優(yōu)點(diǎn),鉑電阻的溫度測量范圍在-200 到 +850 之間,在小于200時(shí),非線性誤差小于0.3%,它的電阻值R和溫度t之間的關(guān)系可以近似地表示為:A,B為常數(shù),A為熱敏系數(shù)(R/)。測量時(shí)采用的是查表法來計(jì)算溫度值。對于模數(shù)轉(zhuǎn)換器LTC2430,設(shè)計(jì)中使其工作在外部時(shí)鐘驅(qū)動(dòng)模式下,工作狀態(tài)分為轉(zhuǎn)換(Conversion)、休眠(Sleep)和數(shù)據(jù)輸出(

8、DataOutput)三個(gè)狀態(tài)。此時(shí)它的數(shù)據(jù)輸出波形圖如圖2-4所示: 圖2-4 LTC2430數(shù)據(jù)輸出波形圖3).通信電路本系統(tǒng)所進(jìn)行的通信是實(shí)現(xiàn)與PC機(jī)的通信,選擇了RS232通信標(biāo)準(zhǔn)。這是因?yàn)镽S232標(biāo)準(zhǔn)是使用最為廣泛的通信標(biāo)準(zhǔn),幾乎每一臺(tái)PC機(jī)上都有兩個(gè)符合RS232標(biāo)準(zhǔn)的串行口,所以采用RS232標(biāo)準(zhǔn)有利于通用性。由于PC機(jī)使用的是RS232電平,而SM5964輸出是TTL電平,因此選用MAX232解決電平匹配的問題。電路圖如圖2-5所示: 圖2-5 通信電路原理圖SM5964的串行發(fā)送端口TXD和接收端口RXD經(jīng)MAX232芯片進(jìn)行電平轉(zhuǎn)換后,分別與PC機(jī)的數(shù)據(jù)接收端口RXD和數(shù)

9、據(jù)發(fā)送端口TXD相連接。SM5964串行通信的發(fā)送端TXD連接到的11引腳,發(fā)出的數(shù)據(jù)信號經(jīng)過MAX232芯片轉(zhuǎn)換后,由05V的TTL電平變?yōu)?12+12V的RS232電平,從14引腳輸出到PC機(jī)串行口的第二引腳。按RS232通信協(xié)議規(guī)定,PC機(jī)串行口的第二引腳為數(shù)據(jù)輸入端,這樣,發(fā)出的數(shù)據(jù)就可被PC機(jī)接收到。由PC機(jī)串行口的發(fā)送端TXD(PC機(jī)串行口的第三引腳)傳輸來的數(shù)據(jù),作為RS232電平的信號輸入到MAX232芯片的第13引腳,經(jīng)過MAX232芯片進(jìn)行電平轉(zhuǎn)換后變?yōu)門TL電平,再由MAX232的12引腳輸出到SM5964串行口的接收端口RXD。從而完成數(shù)據(jù)的雙向傳輸。在設(shè)計(jì)中,使用了兩

10、個(gè)發(fā)光二極管D7和D8監(jiān)視通信的工作狀態(tài)。4). LCD顯示電路對于LCD MGLS-12864,內(nèi)置HD61202圖形液晶顯示模塊,廠家為其設(shè)置了7條指令來完成對它的控制,有兩條指令用于顯示狀態(tài)的設(shè)置,其余指令用于數(shù)據(jù)讀/寫操作,在此不對其進(jìn)行詳細(xì)的說明。MGLS-12864與微處理器的連接方式有兩種:一種是直接訪問方式,一種為間接控制方式。直接訪問方式就是將液晶顯示模塊的接口作為存儲(chǔ)器或者I/O設(shè)備直接掛在計(jì)算機(jī)總線上,計(jì)算機(jī)以訪問存儲(chǔ)器或者I/O設(shè)備的方式操作液晶顯示模塊的工作。而間接控制方式是計(jì)算機(jī)通過自身的或者系統(tǒng)中的并行口與液晶顯示模塊連接,通過對接口的操作達(dá)到對液晶顯示模塊的控制

11、。設(shè)計(jì)中我采用了間接控制方式,這種方式的特點(diǎn)是電路簡單,控制時(shí)序有軟件實(shí)現(xiàn),可以實(shí)現(xiàn)高速計(jì)算機(jī)與液晶顯示模塊的接口。電路圖如下圖所示,以 P2口作為數(shù)據(jù)口,P3.3為/CSA,P3.4為/CSB,實(shí)現(xiàn)左右兩區(qū)的顯示和切換。P3.5為D/I,P3.6為R/W,P3.7為E,三者產(chǎn)生控制LCD數(shù)據(jù)與狀態(tài)的讀寫等信號。電位器用于顯示對比度的調(diào)節(jié)。電路圖如圖2-6所示: 圖2-6 顯示電路原理圖5). 輸出控制及報(bào)警指示電路輸出控制電路采用12V直流繼電器對外電路進(jìn)行控制,通過控制繼電器的吸合時(shí)間來實(shí)現(xiàn)對溫度的控制,繼電器是與強(qiáng)電控制電路(大電流、高電壓)聯(lián)系在一起,會(huì)對應(yīng)用系統(tǒng)產(chǎn)生嚴(yán)重干擾,使系統(tǒng)不

12、能正常工作。為了消除干擾,在微機(jī)接口與繼電器之間分別加了光耦,使系統(tǒng)主機(jī)部分的地與強(qiáng)電控制電路的地隔開。當(dāng)溫度超限或者系統(tǒng)出現(xiàn)致命錯(cuò)誤時(shí),系統(tǒng)會(huì)發(fā)出報(bào)警指示且實(shí)現(xiàn)在LCD上顯示。2.2系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)2.2.1 設(shè)計(jì)總述系統(tǒng)軟件是以RTOS為平臺(tái)的,RTOS作為一種專門為嵌入式微處理器設(shè)計(jì)的模塊化、高性能的實(shí)時(shí)操作系統(tǒng),提供了一種基于開放系統(tǒng)標(biāo)準(zhǔn)的完善的多任務(wù)環(huán)境。它作為嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺(tái),是一段嵌入在目標(biāo)代碼中的軟件,在嵌入式系統(tǒng)啟動(dòng)后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運(yùn)行于其上的各個(gè)任務(wù),RTOS根據(jù)各個(gè)任務(wù)的要求進(jìn)行資源管理、消息管理、任務(wù)調(diào)度、異常處理等工作。(圖2-

13、7 軟件體系結(jié)構(gòu))硬件抽象層內(nèi)核其它API包網(wǎng)絡(luò)圖形I/O應(yīng)用程序系統(tǒng)軟件的體系結(jié)構(gòu)如圖2-7所示。硬件抽象層(HAL)把實(shí)時(shí)內(nèi)核與硬件隔離開,實(shí)現(xiàn)了操作系統(tǒng)內(nèi)核與設(shè)備無關(guān),提高了應(yīng)用系統(tǒng)的可靠性。內(nèi)核層是一個(gè)是實(shí)時(shí)多任務(wù)操作系統(tǒng)(RTOS)內(nèi)核。內(nèi)核層上面是高層驅(qū)動(dòng)和庫函數(shù),提供通用的API、I/O管理器。應(yīng)用程序?qū)邮怯脩舻牟煌娜蝿?wù)。2.2.2 任務(wù)的劃分系統(tǒng)中每個(gè)任務(wù)均有以下三部分組成:應(yīng)用程序、任務(wù)堆棧以及任務(wù)控制塊。其中只有應(yīng)用程序被燒入ROM,而任務(wù)本身則被置于RAM,待系統(tǒng)運(yùn)行時(shí)再予建立。任務(wù)堆棧用以存儲(chǔ)CPU的寄存器內(nèi)容。當(dāng)某任務(wù)由運(yùn)行態(tài)變?yōu)槠渌鼱顟B(tài)時(shí),CPU寄存器內(nèi)容壓入相應(yīng)

14、任務(wù)堆棧,反之則將相應(yīng)任務(wù)堆棧內(nèi)容置入CPU寄存器。作為系統(tǒng)中定義的一個(gè)數(shù)據(jù)結(jié)構(gòu),任務(wù)控制塊的內(nèi)容包括任務(wù)堆棧的地址、任務(wù)當(dāng)前狀態(tài)、任務(wù)優(yōu)先權(quán)等。操作系統(tǒng)通過查詢?nèi)蝿?wù)控制塊內(nèi)容實(shí)現(xiàn)對任務(wù)的管理。在進(jìn)行任務(wù)劃分設(shè)計(jì)時(shí),要考慮以下問題:1).任務(wù)間的關(guān)系:這包括兩個(gè)方面,一方面是任務(wù)間的同步和通信,這可通過信號量、郵箱等通信方法實(shí)現(xiàn)。另一方面,資源共享,通過信號量或其它方法實(shí)現(xiàn)。我在系統(tǒng)設(shè)計(jì)中使用了信號量和中斷的開啟,實(shí)現(xiàn)上述功能。2). 定時(shí)或者延時(shí):一個(gè)任務(wù)可能需要每隔一段時(shí)間執(zhí)行一次操作。如溫度采樣計(jì)算任務(wù),在設(shè)計(jì)中每秒分別對各路溫度采樣一次,然后進(jìn)行計(jì)算。這種定時(shí)操作可以而且必須使用操作系

15、統(tǒng)的定時(shí)系統(tǒng)來實(shí)現(xiàn)。3). 等待操作:在任務(wù)程序設(shè)計(jì)中,應(yīng)盡量避免使用程序詢問方法,而用中斷方式來實(shí)現(xiàn)等待操作,除非程序執(zhí)行時(shí)間小于任務(wù)調(diào)度時(shí)間。另外為防止發(fā)生意外情況使等待事件不發(fā)生而引起任務(wù)無限等待的情況,都加了等待超時(shí)處理功能。 根據(jù)要實(shí)現(xiàn)的功能,我將系統(tǒng)劃分為如下6個(gè)任務(wù):按鍵處理、LCD顯示、串行通信、輸出任務(wù)、控制運(yùn)算、信號采集處理。從系統(tǒng)設(shè)計(jì)方面,可以劃分為人機(jī)交互模塊、串行通信模塊、溫度測量及控制模塊和遠(yuǎn)程加載模塊。系統(tǒng)軟件結(jié)構(gòu)圖如圖2-8所示。 圖2-8 系統(tǒng)軟件架構(gòu)C/OS-II的任務(wù)調(diào)度是按優(yōu)先級進(jìn)行的, 根據(jù)各任務(wù)的實(shí)時(shí)性要求及重要程度,分別置它們的優(yōu)先級為4、5、6、

16、7、8、9。其中0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1、OS_LOWEST_PRIO 這幾個(gè)優(yōu)先級保留以被系統(tǒng)使用。優(yōu)先級序號越低,任務(wù)的優(yōu)先級越高。任務(wù)間的通信和同步是利用信號量和開關(guān)中斷來實(shí)現(xiàn)的。下面對各任務(wù)作簡要的介紹。1 按鍵處理任務(wù)此任務(wù)主要完成鍵盤掃描工作。用戶可以通過鍵盤對系統(tǒng)進(jìn)行控制,如改變運(yùn)行狀態(tài)、修改相關(guān)的參數(shù)等,系統(tǒng)必須做出及時(shí)的處理,因此在系統(tǒng)中把它的優(yōu)先級設(shè)為最高,一旦有鍵被按下,系統(tǒng)就能夠作出響應(yīng)完成相應(yīng)的功能。2.LCD顯示任務(wù)此任務(wù)用于刷新LCD顯示的工作。系統(tǒng)的運(yùn)行狀態(tài)、各路的溫度值

17、、PID相關(guān)參數(shù)大小、各繼電器的狀態(tài)、錯(cuò)誤指示及其它各種信息需要及時(shí)的通知用戶,當(dāng)有關(guān)的信息發(fā)生改變時(shí),需要調(diào)用此任務(wù)更新顯示。3.串行通信任務(wù)在設(shè)計(jì)中,通信任務(wù)一方面接收PC發(fā)來讀寫命令幀,對其進(jìn)行分析處理后,做出相應(yīng)的響應(yīng),從而實(shí)現(xiàn)PC機(jī)對其進(jìn)行控制;另一方面也要把相關(guān)信息按要求組成相應(yīng)的幀,發(fā)送給PC機(jī)。4.輸出任務(wù)此任務(wù)完成對各路繼電器進(jìn)行控制,從而實(shí)現(xiàn)溫度調(diào)節(jié)。根據(jù)控制運(yùn)算任務(wù)決策結(jié)果,負(fù)責(zé)各繼電器占空比的調(diào)節(jié)。5.控制運(yùn)算此任務(wù)是最重要的一環(huán),當(dāng)任一路溫度轉(zhuǎn)換結(jié)束后,都會(huì)發(fā)信號給控制運(yùn)算處理任務(wù)進(jìn)行處理,控制運(yùn)算處理任務(wù)接到信號后,對信號分析之后,對要處理的測量結(jié)果進(jìn)行轉(zhuǎn)換查表等處

18、理,算出實(shí)際溫度值,一方面調(diào)用基于時(shí)間最優(yōu)的PID控制算法加以決策處理,發(fā)信號給輸出任務(wù)加以控制,另一方面也發(fā)信號給LCD顯示任務(wù)更新顯示。6.信號的采集處理此任務(wù)采用定時(shí)方式對各路溫度信號進(jìn)行采集,負(fù)責(zé)通道的選擇,對LTC2430轉(zhuǎn)換結(jié)果進(jìn)行讀取,根據(jù)設(shè)定,取轉(zhuǎn)換結(jié)果的前16位,用一個(gè)無符號整數(shù)進(jìn)行保存,然后存于各路溫度存儲(chǔ)區(qū)。并發(fā)信號給控制運(yùn)算任務(wù)進(jìn)行轉(zhuǎn)換。2.2.3 人機(jī)交互模塊的詳細(xì)設(shè)計(jì)在實(shí)現(xiàn)中人機(jī)交互模塊包含兩部分:鍵盤輸入和LCD顯示。2.2.3.1 任務(wù)的實(shí)現(xiàn)鍵盤是最重要的一種輸入設(shè)備。一般在設(shè)計(jì)應(yīng)用系統(tǒng)時(shí),需要按鍵較少時(shí)采用獨(dú)立式按鍵鍵盤,而在需要按鍵較多時(shí),采用行列式鍵盤。但

19、行列式鍵盤不僅硬件接線復(fù)雜,鍵號的判斷和識(shí)別程序也較為繁瑣。在此介紹使用軟件將多個(gè)按鍵功能壓縮至3個(gè)按鍵上,該鍵盤在硬件上使用獨(dú)立式按鍵鍵盤的硬件結(jié)構(gòu),而在軟件上實(shí)現(xiàn)了使用矩陣式鍵盤的功能。該鍵盤不僅在硬件上接口簡單,軟件實(shí)現(xiàn)也非常容易。其實(shí)現(xiàn)原理是:對于矩陣式鍵盤,如果它有3行4列,則可以構(gòu)成一個(gè)34 鍵盤,共有12個(gè)功能鍵。在設(shè)計(jì)的鍵盤中,行線使用一個(gè)按鍵實(shí)現(xiàn),行線數(shù)由該鍵的按鍵次數(shù)確定,列線則由其它幾個(gè)按鍵提供。假如一個(gè)鍵盤使用3個(gè)按鍵,3個(gè)按鍵中1個(gè)用于提供行線,設(shè)置其它2個(gè)鍵的功能,當(dāng)該鍵按鍵次數(shù)為1時(shí),其它2個(gè)鍵為P11、P12功能,而當(dāng)該鍵按鍵次數(shù)為2時(shí),其它2個(gè)鍵為P21、P2

20、2功能,當(dāng)該鍵按鍵次數(shù)為3 時(shí),其它2個(gè)鍵又為P31、P32功能,根據(jù)此原理,使用3個(gè)按鍵可以實(shí)現(xiàn)N行2列共N2個(gè)鍵的功能,這里的N為用做行線的鍵即功能設(shè)置鍵的按鍵次數(shù)。將該鍵的按鍵次數(shù)存于一內(nèi)存單元(或寄存器)中,每按一次,該單元加1,讀出該單元內(nèi)容,就可知道其它2個(gè)鍵處于何種功能。共定義了8個(gè)功能鍵:單選擇鍵,確認(rèn)鍵,數(shù)值增加鍵,數(shù)值減少鍵,左移、右移、上移、下移鍵。程序流程圖如圖所示LCD顯示任務(wù)只是接收其它任務(wù)發(fā)來的信號量,經(jīng)分析判斷后刷新相應(yīng)的顯示區(qū)。其實(shí)現(xiàn)簡單在此不再敘述。2.3.3 串行通信模塊的詳細(xì)設(shè)計(jì)串行通信模塊是系統(tǒng)設(shè)計(jì)中的一個(gè)重要部分。它要實(shí)現(xiàn)與PC機(jī)通信,接收PC機(jī)發(fā)來

21、的命令幀,在確認(rèn)正確后進(jìn)行分析執(zhí)行,并向PC機(jī)發(fā)送相關(guān)信息和數(shù)據(jù)。通信協(xié)議的詳細(xì)規(guī)定見下一章。2.2.4.1 串口設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)1. 系統(tǒng)串行口工作方式和波特率的計(jì)算1).串行口的工作方式串行口的工作方式由串行口控制寄存器SCON來確定。特殊功能寄存器SCON字節(jié)地址為98H,可以位尋址。通過對SCON.7和SCON.6進(jìn)行設(shè)置可以確定串行口的工作方式,它有四種工作方式,如表2 - 1所示。 表2 - 1 串行口工作方式SM0(SCON.7)SM1(SCON.6)方式 功能說明000移位寄存器方式(用于I/O口擴(kuò)展)0118位UART,波特率可變(T1溢出率/N)1029位UART,波特率為

22、fosc/64或fosc/321139位UART,波特率可變(T1溢出率/N)SCON結(jié)構(gòu)如圖2-9所示。 圖2-9串行口控制字寄存器SCON2).波特率的計(jì)算串行口工作在方式0和方式2時(shí),其波特率為固定值。工作在方式1和方式3時(shí)波特率可變,與溢出率有關(guān),設(shè)計(jì)中常用定時(shí)/計(jì)數(shù)器1作為波特率發(fā)生器。計(jì)數(shù)器的工作模式共有4種,模式0模式3,但是當(dāng)串行口選擇工作模式1時(shí),計(jì)數(shù)器必須工作在模式2,自動(dòng)載入計(jì)數(shù)模式,在模式2的計(jì)時(shí)下,使用的計(jì)數(shù)器寄存器為推理,而TH1則是在做自動(dòng)載入計(jì)時(shí)值的設(shè)定。波特率的計(jì)算公式為:波特率= (2-1)設(shè)計(jì)時(shí)我們是先定出波特率再求TH1的值,將上式加以整理可得:TH1=

23、256- (2-2) 在設(shè)計(jì)中,串行口(工作在)工作方式1且允許接收,通過語句SCON=0x50來實(shí)現(xiàn)。計(jì)數(shù)器工作在模式2能夠自動(dòng)載入計(jì)數(shù)值,通過語句TMOD=TMOD|0x20來實(shí)現(xiàn)。為便于使用 ,我設(shè)計(jì)了初始化串行口函數(shù)void Uart_Init (INT16U mclk, INT16U baud),利用此函數(shù)可根據(jù)系統(tǒng)工作頻率和設(shè)定波特率完成串行口的初始化。2. 串行口輸入輸出驅(qū)動(dòng)設(shè)計(jì)采用異步通信時(shí),如波特率為1200,則每傳送一個(gè)字符約需10ms,所以串行口的接收和發(fā)送應(yīng)采用中斷方式來實(shí)現(xiàn),否則會(huì)浪費(fèi)大量的CPU時(shí)間。為了可靠的接收和發(fā)送數(shù)據(jù),專門設(shè)定了接收和發(fā)送緩沖區(qū),在具體實(shí)現(xiàn)時(shí)

24、,緩沖區(qū)采用環(huán)形緩沖區(qū),它的大小按照任務(wù)的執(zhí)行時(shí)間、通信速率和報(bào)文長短來定,一般為16至255字節(jié),在系統(tǒng)中其值設(shè)為30。 1).串行口輸入程序和串行口輸入中斷流程圖如圖2-10所示 圖2-10串行口輸入程序和串行口輸入中斷流程圖 2). 串行口輸出程序和串行口輸出中斷程序流程圖如圖2-11所示 圖2-11串行口輸出程序和串行口輸出中斷程序流程圖3.任務(wù)調(diào)用接口在應(yīng)用程序設(shè)計(jì)中,只需分別調(diào)用函數(shù)Uart_Init()、Uart_SendStr()、Uart_Getch()、Uart_Sendch()等函數(shù)接口,即可完成對串口的操作,實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。4.3.4.2 串行通信應(yīng)用程序的設(shè)計(jì)在

25、系統(tǒng)中串行通行程序是專門用于接收PC機(jī)發(fā)送來的讀寫命令,根據(jù)命令的不同,完成不同的操作,既可以對系統(tǒng)當(dāng)前的運(yùn)行狀態(tài)或參數(shù)進(jìn)行改變,也可以把PC機(jī)需要的數(shù)據(jù)信息打包發(fā)送。在設(shè)計(jì)中,為簡單起見,系統(tǒng)作為從機(jī),只能被動(dòng)接收PC機(jī)發(fā)來命令,對命令幀分析處理之后執(zhí)行,可以改變系統(tǒng)當(dāng)前的運(yùn)行方式和參數(shù)。當(dāng)需要向PC激發(fā)信息時(shí),它要按要求把相關(guān)信息組幀發(fā)送,如當(dāng)前繼電器狀態(tài)、第一路溫度值、第二路溫度值等。關(guān)于幀的類型和組幀格式,詳細(xì)內(nèi)容在下一章中論述。它的流程圖如圖4-12所示。圖2-12 串行通信流程圖2.2.5 溫度測量及控制模塊詳細(xì)設(shè)計(jì)數(shù)據(jù)信號的采集處理是把實(shí)際過程中的模擬量、開關(guān)量以及其它信息量通過

26、相關(guān)的方式送入計(jì)算機(jī),再由計(jì)算機(jī)進(jìn)行存儲(chǔ)和進(jìn)一步的處理(如計(jì)算、顯示、控制等)。模擬量的采集是將模擬量轉(zhuǎn)換成數(shù)字量并送入計(jì)算機(jī)。然后調(diào)用處理算法將這些數(shù)字量存儲(chǔ)并進(jìn)行二次計(jì)算處理,一方面要輸出顯示便于觀察,另一方面調(diào)用相關(guān)的控制模塊,對被測對象進(jìn)行控制??刂颇K通常采用合理的控制算法,對被控對象進(jìn)行控制,使其滿足用戶的要求。此模塊完成對溫度信號的采集處理、控制運(yùn)算和輸出控制功能,是最重要的一個(gè)模塊。系統(tǒng)要實(shí)現(xiàn)對兩路溫度進(jìn)行采集控制,其電路圖見圖4-3。溫度信號經(jīng)兩個(gè)模擬轉(zhuǎn)換開關(guān)CD4052之后,以差分式輸入模擬轉(zhuǎn)換器LTC2430的輸入端子,轉(zhuǎn)換后的數(shù)字量送入微控制器SM5964,從而完成信號

27、的采集。由于20位模數(shù)轉(zhuǎn)換器LTC2430采用了專有的無延遲Delta Sigma結(jié)構(gòu),消除了數(shù)字濾波器的接續(xù)時(shí)間,使每次轉(zhuǎn)換均有效,只要將其轉(zhuǎn)換結(jié)果進(jìn)行正確的讀出即可。其數(shù)據(jù)輸出格式如圖4-4所示,當(dāng)最高位EOC為低電平時(shí),表示本次轉(zhuǎn)換完成可以讀取結(jié)果。對于溫度的計(jì)算,采用了查表法。獲得LTC2430轉(zhuǎn)換結(jié)果之后,通過線性插值及標(biāo)度變換之后,可以計(jì)算出當(dāng)前的實(shí)際溫度值。以上的采集處理過程相應(yīng)容易實(shí)現(xiàn),在此模塊中,主要是控制部分軟件的設(shè)計(jì),設(shè)計(jì)中采用了時(shí)間最優(yōu)控制和PID算法相結(jié)合的控制方法,取得很好的效果,其實(shí)現(xiàn)如下。1).控制算法在工業(yè)過程控制中,應(yīng)用最廣泛的控制方法應(yīng)該是PID控制,它是

28、按偏差的比例(P)、積分(I)和微分(D)組合而成的控制規(guī)律。比例控制簡單易行,積分的加入能消除靜差,微分能提高,改善系統(tǒng)的動(dòng)態(tài)性能。采用了數(shù)字PID的方式進(jìn)行調(diào)節(jié),其框圖如圖4-13所示。圖4-13 PID控制框圖下面是增量式PID控制算法公式。為了抑制飽和效應(yīng)的發(fā)生,控制系統(tǒng)采用了積分分離式的PID控制算法。 (4-3)即: (4-4)在上式中,為系統(tǒng)采樣周期,為積分時(shí)間常數(shù),為微分時(shí)間常數(shù),為比例系數(shù),為積分系數(shù),為微分系數(shù)。溫度變化是個(gè)慢過程,如單純采用PID控制,當(dāng)有較大擾動(dòng)或大幅度改變給定值時(shí),會(huì)產(chǎn)生較大的偏差,此時(shí)在積分項(xiàng)的作用下,往往會(huì)產(chǎn)生較大的超調(diào)和長時(shí)間的波動(dòng)。因此在系統(tǒng)中

29、又采用了PID算法與時(shí)間最優(yōu)控制相結(jié)合的控制方式。時(shí)間最優(yōu)控制是Pontryagin于1956年提出的一種最優(yōu)控制方法。它是研究滿足約束條件下獲得允許控制的方法,也叫最大值原理。用最大值原理可以設(shè)計(jì)出控制變量只在|u(t)|1范圍內(nèi)取值的時(shí)間最優(yōu)控制系統(tǒng)。而在工程上控制變量只取±1兩個(gè)狀態(tài),而且依照一定的法則加以切換,使系統(tǒng)從一個(gè)初始狀態(tài)轉(zhuǎn)到另一個(gè)狀態(tài)所經(jīng)歷的過渡時(shí)間最短,這種類型的最優(yōu)切換系統(tǒng),稱為開關(guān)控制(Bang-Bang)系統(tǒng),即: 當(dāng)時(shí),。當(dāng)時(shí),。 為tkT時(shí)控制器的輸出,為系統(tǒng)的最大輸出,e(k)為溫度測量值與給定值之差,當(dāng)偏差大于零時(shí),控制器輸出最大值,控制對象加熱當(dāng)偏

30、差小于等于零時(shí),控制器輸出0,停止加熱這種算法具有控制簡單、實(shí)現(xiàn)方便等優(yōu)點(diǎn),但當(dāng)偏差接近零時(shí),系統(tǒng)容易發(fā)生振蕩因此,采用PID算法與時(shí)間最優(yōu)控制相結(jié)合的雙模控制方式,控制規(guī)律為: 時(shí),采用時(shí)間最優(yōu)控制 時(shí),采用PID控制 規(guī)定一閾值(偏差區(qū)域),當(dāng)偏差大于時(shí),實(shí)行時(shí)間最優(yōu)控制,即BangBang控制;而在閾值以內(nèi),實(shí)行PID控制這樣,既可以發(fā)揮BangBang控制快速消除大偏差的優(yōu)點(diǎn),又能發(fā)揮PID控制精度高,超調(diào)小的優(yōu)點(diǎn),從而使靜態(tài)、動(dòng)態(tài)性能指標(biāo)較為理想 2).參數(shù)的整定數(shù)字PID調(diào)節(jié)器參數(shù)的整定是根據(jù)控制對象對控制性能的要求,調(diào)整調(diào)節(jié)器的參數(shù),使控制過程滿足要求。在系統(tǒng)采樣周期確定的情況下

31、,需要調(diào)整的參數(shù)有比例系數(shù)Kp、積分時(shí)間常數(shù)Ti和微分時(shí)間常數(shù)Td。它們分別對控制性能的影響如下:² 比例系數(shù)Kp:它控制著系統(tǒng)調(diào)整的反應(yīng)速度,減少靜差,如Kp太小,系統(tǒng)動(dòng)作緩慢,Kp加大,可以使系統(tǒng)動(dòng)作靈敏,調(diào)節(jié)速度加快。但Kp偏大,可能使系統(tǒng)震蕩次數(shù)增多,調(diào)節(jié)時(shí)間加長。Kp過大,可使系統(tǒng)不穩(wěn)定。² 積分時(shí)間常數(shù)Ti: PID調(diào)節(jié)中的的積分項(xiàng)主要作用是消除靜差。Ti減少時(shí),積分項(xiàng)作用增大,系統(tǒng)調(diào)節(jié)速度加快,但易使系統(tǒng)趨于不穩(wěn)定,震蕩次數(shù)較多。Ti增大,積分項(xiàng)對系統(tǒng)性能的影響減少,跟蹤速度減慢。當(dāng)Ti合適時(shí),過渡度特性比較理想。² 微分時(shí)間常數(shù)Td: 微分控制可以

32、改善調(diào)節(jié)的動(dòng)態(tài)特性,如減少超調(diào)量,縮短調(diào)節(jié)時(shí)間。當(dāng)Td偏大或者偏小時(shí),超調(diào)量和調(diào)節(jié)時(shí)間都會(huì)增大,只有當(dāng)Td合適時(shí),才能得到比較滿意的結(jié)果。在做PID參數(shù)整定時(shí),首先根據(jù)系統(tǒng)要求應(yīng)選擇合適的采樣周期,采樣周期確定之后,比例系數(shù)Kp、積分時(shí)間常數(shù)Ti和微分時(shí)間常數(shù)Td的整定可以根據(jù)一定的算法,比如擴(kuò)充臨界比例系數(shù)法、擴(kuò)充響應(yīng)曲線法以及PID歸一化參數(shù)整定法來設(shè)定。但是在現(xiàn)場系統(tǒng)不允許振蕩或外加擾動(dòng)信號,以上方法在現(xiàn)場不能使用。實(shí)際上在現(xiàn)場主要根據(jù)經(jīng)驗(yàn)整定參數(shù),應(yīng)遵循以下規(guī)則:² 在進(jìn)行PID參數(shù)調(diào)節(jié)時(shí),調(diào)節(jié)幅度要?。?#178; 在調(diào)節(jié)時(shí),需要各參數(shù)協(xié)同調(diào)節(jié);² 系統(tǒng)反映(溫度

33、變化)速度慢,可調(diào)大比例系數(shù)Kp,增大微分時(shí)間常數(shù)Td,減少積分時(shí)間常數(shù)Ti;² 有振蕩現(xiàn)象時(shí),可減少比例系數(shù)Kp,減少微分時(shí)間常數(shù)Td。對于的確定,可根據(jù)具體情況來確定。3).程序流程圖在設(shè)計(jì)中,為2。程序流程圖如圖4-14所示 圖2-14 溫度控制流程圖2.2.6 遠(yuǎn)程加載程序的設(shè)計(jì)此功能模塊就是利用“在系統(tǒng)編程” (In-System Programming,簡稱ISP)技術(shù),可以實(shí)現(xiàn)對系統(tǒng)進(jìn)行在線升級。所謂“在系統(tǒng)編程”技術(shù)是指在用戶設(shè)計(jì)的微控制器系統(tǒng)中為配置新的系統(tǒng)功能而對器件進(jìn)行重新編程,并在線地將程序代碼(固件)下載到程序存儲(chǔ)器中的一種編程技術(shù)。它的出現(xiàn)是對傳統(tǒng)編程方法

34、的重大突破。在設(shè)計(jì)中,PC機(jī)利用串口向系統(tǒng)發(fā)送各種命令,如片擦除、頁擦除、編程等命令,系統(tǒng)正確接收之后分析執(zhí)行,從而完成加載升級功能。其詳細(xì)設(shè)計(jì)如下。1).相關(guān)寄存器簡介本設(shè)計(jì)中選用了SynCMOS公司的SM5964作為主控制器,利用串口即可方便地實(shí)現(xiàn)ISP功能,SM5964處理器是以80C52為內(nèi)核,芯片有64KB Flash 存儲(chǔ)器,其中可用于實(shí)現(xiàn)ISP功能的程序空間為N512 字節(jié)(N= 0,1,8 ),為實(shí)現(xiàn)ISP功能,專門設(shè)計(jì)了5個(gè)專用特殊功能寄存器。分別如下: 系統(tǒng)控制寄存器(SCONF,BFH)WDRRRRRISPEOMEALE1SCONF的位2(ISPE)是ISP功能的使能位,

35、該位置置1使能ISP功能,置0禁止ISP功能。這可以防止由于軟件設(shè)計(jì)失誤而造成的芯片擦除操作。 FLASH控制寄存器(FCR,F7H)STARTRRRRRF1F0START:ISP功能起始位,置1時(shí),執(zhí)行由位1、位0(F1、F0)所制定的ISP功能。置0時(shí),空操作。START位被置1后,SM5964內(nèi)部硬件電路會(huì)鎖存地址和數(shù)據(jù)總線,并保持住PC指針直到START位置0。不必對此位的狀態(tài)進(jìn)行查詢。位F1、F0:ISP功能選擇位如下所示 F 1:0 ISP功能 00 字節(jié)編程 01 片保護(hù) 10 頁擦除 11 片擦除 FLASH 高位地址寄存器(FAH ,F4H)和低位地址寄存器(FAL, F5H

36、) FAH & FAL為ISP功能提供16位的FLASH地址。 FLASH數(shù)據(jù)寄存器(FDAT, F6H) FDAT寄存器為ISP功能提供8位數(shù)據(jù)。2).協(xié)議的約定PC機(jī)側(cè)的詳細(xì)情況見下一章。在實(shí)現(xiàn)中,系統(tǒng)只是根據(jù)PC機(jī)發(fā)來命令執(zhí)行相應(yīng)的功能,根據(jù)命令執(zhí)行情況向PC機(jī)返回執(zhí)行結(jié)果(執(zhí)行成功還是失?。?,當(dāng)執(zhí)行成功時(shí)向PC機(jī)發(fā)送AAH命令,當(dāng)執(zhí)行失敗時(shí),向PC機(jī)發(fā)送55H,通知PC機(jī)重新執(zhí)行。 功能 命令 校驗(yàn)和 命令執(zhí)行成功 AAH 56H 執(zhí)行命令失敗 55H ABH 3).程序設(shè)計(jì)系統(tǒng)工作轉(zhuǎn)到ISP功能狀態(tài)時(shí),首先對串口進(jìn)行初始化,然后接收PC機(jī)發(fā)來的命令幀(有的包含數(shù)據(jù)),確認(rèn)正確接收之后,分析執(zhí)行。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論