




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、嵌入式系統(tǒng)在溫度控制中的應(yīng)用湖南文理學(xué)院芙蓉學(xué)院課程設(shè)計報告課程名稱: 嵌入式課程設(shè)計 專業(yè)班級: 通信1101班 學(xué)生姓名: 指導(dǎo)教師: 完成時間: 2014年 6月 5 日 報告成績: 評閱意見: 評閱教師 日期 第1章 概述 嵌入式系統(tǒng)被定義為:以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機(jī)系統(tǒng)。實(shí)際上嵌入式系統(tǒng)是計算機(jī)的一種應(yīng)用形式,是將先進(jìn)的計算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,具有軟件代碼小、高度自動化、響應(yīng)速度快等特點(diǎn)。因此它是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。
2、特別適合于要求實(shí)時的和多任務(wù)的系統(tǒng)。 復(fù)雜的微機(jī)控制系統(tǒng)使用常規(guī)的順序程序設(shè)計方法加上中斷來實(shí)現(xiàn)功能是比較困難的,主要體現(xiàn)在以下幾個方面:(1).實(shí)時性差:由于計算機(jī)在處理中斷時,一般不允許響應(yīng)低級和同級中斷,為了提高實(shí)時性,要求中斷處理程序盡量短。但是有許多實(shí)時操作的處理比較復(fù)雜,需要較長的CPU執(zhí)行時間。如果用中斷來完成這些處理,則在處理時,無法響應(yīng)低級或同級中斷。如果采用中斷置標(biāo)志的方法,讓主程序來進(jìn)行處理,則一方面會增加程序的復(fù)雜性,另一方面也難以做到實(shí)時處理,因為主程序不可能在執(zhí)行其它程序時,隨時去檢查這些標(biāo)志位而轉(zhuǎn)向不同的處理程序。(2).難以實(shí)現(xiàn)并行操作的相互通信:在功能較強(qiáng)的實(shí)
3、時系統(tǒng)中,除了主程序有時需要與中斷間進(jìn)行信息交換外,各個并行操作之間有時也需相互通信。這些用常規(guī)方法是難以實(shí)現(xiàn)的。(3).結(jié)構(gòu)復(fù)雜、移植性差、維護(hù)困難:單片微機(jī)功能的復(fù)雜化,使軟件越來越復(fù)雜,特別是為了實(shí)現(xiàn)并行操作,需使用大量的中斷和標(biāo)志,使程序結(jié)構(gòu)十分混亂,難以設(shè)計和調(diào)試。同時由于程序采用線性結(jié)構(gòu),使得程序難于修改或者移植,因此缺乏靈活性、通用性和可維護(hù)性。第二章 系統(tǒng)的設(shè)計與實(shí)現(xiàn)設(shè)計出一個實(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è)計利用RS-232串行通信,實(shí)現(xiàn)了與PC機(jī)進(jìn)行通訊功能和遠(yuǎn)程加載功能。考慮到實(shí)際的應(yīng)用及成本等因素,選用的主要硬件器件有臺灣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è)計系統(tǒng)的原理圖如圖2-1所示。主要有鍵盤輸入、數(shù)據(jù)采集、輸出控制、LCD顯示、通信及電源模塊等組成。 圖2-1 系統(tǒng)原理框圖下面介紹一下主要部分的電路圖設(shè)計。1). 鍵盤輸入電路鍵盤是一組按鍵的組合,它是常用的輸入設(shè)備,可以通過鍵盤輸入數(shù)據(jù)或者命令,實(shí)現(xiàn)簡單的人機(jī)對話。鍵盤可分為獨(dú)立聯(lián)接式和行列式(矩陣式)兩類,每類按其譯碼方式又分為編碼式及非編碼式兩類。設(shè)計中使用的是獨(dú)立聯(lián)接非編碼式鍵盤。電路圖如圖2-2所示: 圖2-2 鍵盤原理圖每個按鍵使用的是一個瞬時接觸開關(guān),這種聯(lián)接方式可以
6、容易被微處理器檢測,但由于按鍵會產(chǎn)生機(jī)械抖動,在按鍵被按下或者抬起的瞬間,一般持續(xù)515ms,因此設(shè)計中要去除鍵抖動??梢酝ㄟ^硬件雙穩(wěn)態(tài)電路或者軟件延時來實(shí)現(xiàn),設(shè)計中采用延時20ms實(shí)現(xiàn)的。對于串鍵,采用無限處理方法。同時為了防止按一次鍵而產(chǎn)生多次處理的情況(鍵掃描和鍵處理速度較快而此時鍵還沒釋放),在有鍵按下時,作一次鍵處理后還要檢測按下的鍵是否釋放。2). 數(shù)據(jù)采集電路本系統(tǒng)實(shí)現(xiàn)對兩路溫度信號的采集,為了節(jié)省硬件成本,在前向通道中采用了多路選擇開關(guān),使用了兩個多路模擬開關(guān)器件CD4052,實(shí)現(xiàn)信號的差分輸入,完成對兩路溫度信號的輪流采樣,然后將信號送入一個公共的模數(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時,非線性誤差小于0.3%,它的電阻值R和溫度t之間的關(guān)系可以近似地表示為:A,B為常數(shù),A為熱敏系數(shù)(R/)。測量時采用的是查表法來計算溫度值。對于模數(shù)轉(zhuǎn)換器LTC2430,設(shè)計中使其工作在外部時鐘驅(qū)動模式下,工作狀態(tài)分為轉(zhuǎn)換(Conversion)、休眠(Sleep)和數(shù)據(jù)輸出(
8、DataOutput)三個狀態(tài)。此時它的數(shù)據(jù)輸出波形圖如圖2-4所示: 圖2-4 LTC2430數(shù)據(jù)輸出波形圖3).通信電路本系統(tǒng)所進(jìn)行的通信是實(shí)現(xiàn)與PC機(jī)的通信,選擇了RS232通信標(biāo)準(zhǔn)。這是因為RS232標(biāo)準(zhǔn)是使用最為廣泛的通信標(biāo)準(zhǔn),幾乎每一臺PC機(jī)上都有兩個符合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è)計中,使用了兩
10、個發(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與微處理器的連接方式有兩種:一種是直接訪問方式,一種為間接控制方式。直接訪問方式就是將液晶顯示模塊的接口作為存儲器或者I/O設(shè)備直接掛在計算機(jī)總線上,計算機(jī)以訪問存儲器或者I/O設(shè)備的方式操作液晶顯示模塊的工作。而間接控制方式是計算機(jī)通過自身的或者系統(tǒng)中的并行口與液晶顯示模塊連接,通過對接口的操作達(dá)到對液晶顯示模塊的控制
11、。設(shè)計中我采用了間接控制方式,這種方式的特點(diǎn)是電路簡單,控制時序有軟件實(shí)現(xiàn),可以實(shí)現(xiàn)高速計算機(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). 輸出控制及報警指示電路輸出控制電路采用12V直流繼電器對外電路進(jìn)行控制,通過控制繼電器的吸合時間來實(shí)現(xiàn)對溫度的控制,繼電器是與強(qiáng)電控制電路(大電流、高電壓)聯(lián)系在一起,會對應(yīng)用系統(tǒng)產(chǎn)生嚴(yán)重干擾,使系統(tǒng)不
12、能正常工作。為了消除干擾,在微機(jī)接口與繼電器之間分別加了光耦,使系統(tǒng)主機(jī)部分的地與強(qiáng)電控制電路的地隔開。當(dāng)溫度超限或者系統(tǒng)出現(xiàn)致命錯誤時,系統(tǒng)會發(fā)出報警指示且實(shí)現(xiàn)在LCD上顯示。2.2系統(tǒng)的軟件設(shè)計與實(shí)現(xiàn)2.2.1 設(shè)計總述系統(tǒng)軟件是以RTOS為平臺的,RTOS作為一種專門為嵌入式微處理器設(shè)計的模塊化、高性能的實(shí)時操作系統(tǒng),提供了一種基于開放系統(tǒng)標(biāo)準(zhǔn)的完善的多任務(wù)環(huán)境。它作為嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺,是一段嵌入在目標(biāo)代碼中的軟件,在嵌入式系統(tǒng)啟動后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運(yùn)行于其上的各個任務(wù),RTOS根據(jù)各個任務(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í)時內(nèi)核與硬件隔離開,實(shí)現(xiàn)了操作系統(tǒng)內(nèi)核與設(shè)備無關(guān),提高了應(yīng)用系統(tǒng)的可靠性。內(nèi)核層是一個是實(shí)時多任務(wù)操作系統(tǒng)(RTOS)內(nèi)核。內(nèi)核層上面是高層驅(qū)動和庫函數(shù),提供通用的API、I/O管理器。應(yīng)用程序?qū)邮怯脩舻牟煌娜蝿?wù)。2.2.2 任務(wù)的劃分系統(tǒng)中每個任務(wù)均有以下三部分組成:應(yīng)用程序、任務(wù)堆棧以及任務(wù)控制塊。其中只有應(yīng)用程序被燒入ROM,而任務(wù)本身則被置于RAM,待系統(tǒng)運(yùn)行時再予建立。任務(wù)堆棧用以存儲CPU的寄存器內(nèi)容。當(dāng)某任務(wù)由運(yùn)行態(tài)變?yōu)槠渌鼱顟B(tài)時,CPU寄存器內(nèi)容壓入相應(yīng)
14、任務(wù)堆棧,反之則將相應(yīng)任務(wù)堆棧內(nèi)容置入CPU寄存器。作為系統(tǒng)中定義的一個數(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è)計時,要考慮以下問題:1).任務(wù)間的關(guān)系:這包括兩個方面,一方面是任務(wù)間的同步和通信,這可通過信號量、郵箱等通信方法實(shí)現(xiàn)。另一方面,資源共享,通過信號量或其它方法實(shí)現(xiàn)。我在系統(tǒng)設(shè)計中使用了信號量和中斷的開啟,實(shí)現(xiàn)上述功能。2). 定時或者延時:一個任務(wù)可能需要每隔一段時間執(zhí)行一次操作。如溫度采樣計算任務(wù),在設(shè)計中每秒分別對各路溫度采樣一次,然后進(jìn)行計算。這種定時操作可以而且必須使用操作系
15、統(tǒng)的定時系統(tǒng)來實(shí)現(xiàn)。3). 等待操作:在任務(wù)程序設(shè)計中,應(yīng)盡量避免使用程序詢問方法,而用中斷方式來實(shí)現(xiàn)等待操作,除非程序執(zhí)行時間小于任務(wù)調(diào)度時間。另外為防止發(fā)生意外情況使等待事件不發(fā)生而引起任務(wù)無限等待的情況,都加了等待超時處理功能。 根據(jù)要實(shí)現(xiàn)的功能,我將系統(tǒng)劃分為如下6個任務(wù):按鍵處理、LCD顯示、串行通信、輸出任務(wù)、控制運(yùn)算、信號采集處理。從系統(tǒng)設(shè)計方面,可以劃分為人機(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í)時性要求及重要程度,分別置它們的優(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 這幾個優(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)必須做出及時的處理,因此在系統(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)、錯誤指示及其它各種信息需要及時的通知用戶,當(dāng)有關(guān)的信息發(fā)生改變時,需要調(diào)用此任務(wù)更新顯示。3.串行通信任務(wù)在設(shè)計中,通信任務(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é)束后,都會發(fā)信號給控制運(yùn)算處理任務(wù)進(jìn)行處理,控制運(yùn)算處理任務(wù)接到信號后,對信號分析之后,對要處理的測量結(jié)果進(jìn)行轉(zhuǎn)換查表等處
18、理,算出實(shí)際溫度值,一方面調(diào)用基于時間最優(yōu)的PID控制算法加以決策處理,發(fā)信號給輸出任務(wù)加以控制,另一方面也發(fā)信號給LCD顯示任務(wù)更新顯示。6.信號的采集處理此任務(wù)采用定時方式對各路溫度信號進(jìn)行采集,負(fù)責(zé)通道的選擇,對LTC2430轉(zhuǎn)換結(jié)果進(jìn)行讀取,根據(jù)設(shè)定,取轉(zhuǎn)換結(jié)果的前16位,用一個無符號整數(shù)進(jìn)行保存,然后存于各路溫度存儲區(qū)。并發(fā)信號給控制運(yùn)算任務(wù)進(jìn)行轉(zhuǎn)換。2.2.3 人機(jī)交互模塊的詳細(xì)設(shè)計在實(shí)現(xiàn)中人機(jī)交互模塊包含兩部分:鍵盤輸入和LCD顯示。2.2.3.1 任務(wù)的實(shí)現(xiàn)鍵盤是最重要的一種輸入設(shè)備。一般在設(shè)計應(yīng)用系統(tǒng)時,需要按鍵較少時采用獨(dú)立式按鍵鍵盤,而在需要按鍵較多時,采用行列式鍵盤。但
19、行列式鍵盤不僅硬件接線復(fù)雜,鍵號的判斷和識別程序也較為繁瑣。在此介紹使用軟件將多個按鍵功能壓縮至3個按鍵上,該鍵盤在硬件上使用獨(dú)立式按鍵鍵盤的硬件結(jié)構(gòu),而在軟件上實(shí)現(xiàn)了使用矩陣式鍵盤的功能。該鍵盤不僅在硬件上接口簡單,軟件實(shí)現(xiàn)也非常容易。其實(shí)現(xiàn)原理是:對于矩陣式鍵盤,如果它有3行4列,則可以構(gòu)成一個34 鍵盤,共有12個功能鍵。在設(shè)計的鍵盤中,行線使用一個按鍵實(shí)現(xiàn),行線數(shù)由該鍵的按鍵次數(shù)確定,列線則由其它幾個按鍵提供。假如一個鍵盤使用3個按鍵,3個按鍵中1個用于提供行線,設(shè)置其它2個鍵的功能,當(dāng)該鍵按鍵次數(shù)為1時,其它2個鍵為P11、P12功能,而當(dāng)該鍵按鍵次數(shù)為2時,其它2個鍵為P21、P2
20、2功能,當(dāng)該鍵按鍵次數(shù)為3 時,其它2個鍵又為P31、P32功能,根據(jù)此原理,使用3個按鍵可以實(shí)現(xiàn)N行2列共N2個鍵的功能,這里的N為用做行線的鍵即功能設(shè)置鍵的按鍵次數(shù)。將該鍵的按鍵次數(shù)存于一內(nèi)存單元(或寄存器)中,每按一次,該單元加1,讀出該單元內(nèi)容,就可知道其它2個鍵處于何種功能。共定義了8個功能鍵:單選擇鍵,確認(rèn)鍵,數(shù)值增加鍵,數(shù)值減少鍵,左移、右移、上移、下移鍵。程序流程圖如圖所示LCD顯示任務(wù)只是接收其它任務(wù)發(fā)來的信號量,經(jīng)分析判斷后刷新相應(yīng)的顯示區(qū)。其實(shí)現(xiàn)簡單在此不再敘述。2.3.3 串行通信模塊的詳細(xì)設(shè)計串行通信模塊是系統(tǒng)設(shè)計中的一個重要部分。它要實(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ū)動程序設(shè)計1. 系統(tǒng)串行口工作方式和波特率的計算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).波特率的計算串行口工作在方式0和方式2時,其波特率為固定值。工作在方式1和方式3時波特率可變,與溢出率有關(guān),設(shè)計中常用定時/計數(shù)器1作為波特率發(fā)生器。計數(shù)器的工作模式共有4種,模式0模式3,但是當(dāng)串行口選擇工作模式1時,計數(shù)器必須工作在模式2,自動載入計數(shù)模式,在模式2的計時下,使用的計數(shù)器寄存器為推理,而TH1則是在做自動載入計時值的設(shè)定。波特率的計算公式為:波特率= (2-1)設(shè)計時我們是先定出波特率再求TH1的值,將上式加以整理可得:TH1=
23、256- (2-2) 在設(shè)計中,串行口(工作在)工作方式1且允許接收,通過語句SCON=0x50來實(shí)現(xiàn)。計數(shù)器工作在模式2能夠自動載入計數(shù)值,通過語句TMOD=TMOD|0x20來實(shí)現(xiàn)。為便于使用 ,我設(shè)計了初始化串行口函數(shù)void Uart_Init (INT16U mclk, INT16U baud),利用此函數(shù)可根據(jù)系統(tǒng)工作頻率和設(shè)定波特率完成串行口的初始化。2. 串行口輸入輸出驅(qū)動設(shè)計采用異步通信時,如波特率為1200,則每傳送一個字符約需10ms,所以串行口的接收和發(fā)送應(yīng)采用中斷方式來實(shí)現(xiàn),否則會浪費(fèi)大量的CPU時間。為了可靠的接收和發(fā)送數(shù)據(jù),專門設(shè)定了接收和發(fā)送緩沖區(qū),在具體實(shí)現(xiàn)時
24、,緩沖區(qū)采用環(huán)形緩沖區(qū),它的大小按照任務(wù)的執(zhí)行時間、通信速率和報文長短來定,一般為16至255字節(jié),在系統(tǒng)中其值設(shè)為30。 1).串行口輸入程序和串行口輸入中斷流程圖如圖2-10所示 圖2-10串行口輸入程序和串行口輸入中斷流程圖 2). 串行口輸出程序和串行口輸出中斷程序流程圖如圖2-11所示 圖2-11串行口輸出程序和串行口輸出中斷程序流程圖3.任務(wù)調(diào)用接口在應(yīng)用程序設(shè)計中,只需分別調(diào)用函數(shù)Uart_Init()、Uart_SendStr()、Uart_Getch()、Uart_Sendch()等函數(shù)接口,即可完成對串口的操作,實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。4.3.4.2 串行通信應(yīng)用程序的設(shè)計在
25、系統(tǒng)中串行通行程序是專門用于接收PC機(jī)發(fā)送來的讀寫命令,根據(jù)命令的不同,完成不同的操作,既可以對系統(tǒng)當(dāng)前的運(yùn)行狀態(tài)或參數(shù)進(jìn)行改變,也可以把PC機(jī)需要的數(shù)據(jù)信息打包發(fā)送。在設(shè)計中,為簡單起見,系統(tǒng)作為從機(jī),只能被動接收PC機(jī)發(fā)來命令,對命令幀分析處理之后執(zhí)行,可以改變系統(tǒng)當(dāng)前的運(yùn)行方式和參數(shù)。當(dāng)需要向PC激發(fā)信息時,它要按要求把相關(guān)信息組幀發(fā)送,如當(dāng)前繼電器狀態(tài)、第一路溫度值、第二路溫度值等。關(guān)于幀的類型和組幀格式,詳細(xì)內(nèi)容在下一章中論述。它的流程圖如圖4-12所示。圖2-12 串行通信流程圖2.2.5 溫度測量及控制模塊詳細(xì)設(shè)計數(shù)據(jù)信號的采集處理是把實(shí)際過程中的模擬量、開關(guān)量以及其它信息量通過
26、相關(guān)的方式送入計算機(jī),再由計算機(jī)進(jìn)行存儲和進(jìn)一步的處理(如計算、顯示、控制等)。模擬量的采集是將模擬量轉(zhuǎn)換成數(shù)字量并送入計算機(jī)。然后調(diào)用處理算法將這些數(shù)字量存儲并進(jìn)行二次計算處理,一方面要輸出顯示便于觀察,另一方面調(diào)用相關(guān)的控制模塊,對被測對象進(jìn)行控制??刂颇K通常采用合理的控制算法,對被控對象進(jìn)行控制,使其滿足用戶的要求。此模塊完成對溫度信號的采集處理、控制運(yùn)算和輸出控制功能,是最重要的一個模塊。系統(tǒng)要實(shí)現(xiàn)對兩路溫度進(jìn)行采集控制,其電路圖見圖4-3。溫度信號經(jīng)兩個模擬轉(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ù)時間,使每次轉(zhuǎn)換均有效,只要將其轉(zhuǎn)換結(jié)果進(jìn)行正確的讀出即可。其數(shù)據(jù)輸出格式如圖4-4所示,當(dāng)最高位EOC為低電平時,表示本次轉(zhuǎn)換完成可以讀取結(jié)果。對于溫度的計算,采用了查表法。獲得LTC2430轉(zhuǎn)換結(jié)果之后,通過線性插值及標(biāo)度變換之后,可以計算出當(dāng)前的實(shí)際溫度值。以上的采集處理過程相應(yīng)容易實(shí)現(xiàn),在此模塊中,主要是控制部分軟件的設(shè)計,設(shè)計中采用了時間最優(yōu)控制和PID算法相結(jié)合的控制方法,取得很好的效果,其實(shí)現(xiàn)如下。1).控制算法在工業(yè)過程控制中,應(yīng)用最廣泛的控制方法應(yīng)該是PID控制,它是
28、按偏差的比例(P)、積分(I)和微分(D)組合而成的控制規(guī)律。比例控制簡單易行,積分的加入能消除靜差,微分能提高,改善系統(tǒ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ù)。溫度變化是個慢過程,如單純采用PID控制,當(dāng)有較大擾動或大幅度改變給定值時,會產(chǎn)生較大的偏差,此時在積分項的作用下,往往會產(chǎn)生較大的超調(diào)和長時間的波動。因此在系統(tǒng)中
29、又采用了PID算法與時間最優(yōu)控制相結(jié)合的控制方式。時間最優(yōu)控制是Pontryagin于1956年提出的一種最優(yōu)控制方法。它是研究滿足約束條件下獲得允許控制的方法,也叫最大值原理。用最大值原理可以設(shè)計出控制變量只在|u(t)|1范圍內(nèi)取值的時間最優(yōu)控制系統(tǒng)。而在工程上控制變量只取±1兩個狀態(tài),而且依照一定的法則加以切換,使系統(tǒng)從一個初始狀態(tài)轉(zhuǎn)到另一個狀態(tài)所經(jīng)歷的過渡時間最短,這種類型的最優(yōu)切換系統(tǒng),稱為開關(guān)控制(Bang-Bang)系統(tǒng),即: 當(dāng)時,。當(dāng)時,。 為tkT時控制器的輸出,為系統(tǒng)的最大輸出,e(k)為溫度測量值與給定值之差,當(dāng)偏差大于零時,控制器輸出最大值,控制對象加熱當(dāng)偏
30、差小于等于零時,控制器輸出0,停止加熱這種算法具有控制簡單、實(shí)現(xiàn)方便等優(yōu)點(diǎn),但當(dāng)偏差接近零時,系統(tǒng)容易發(fā)生振蕩因此,采用PID算法與時間最優(yōu)控制相結(jié)合的雙??刂品绞?,控制規(guī)律為: 時,采用時間最優(yōu)控制 時,采用PID控制 規(guī)定一閾值(偏差區(qū)域),當(dāng)偏差大于時,實(shí)行時間最優(yōu)控制,即BangBang控制;而在閾值以內(nèi),實(shí)行PID控制這樣,既可以發(fā)揮BangBang控制快速消除大偏差的優(yōu)點(diǎn),又能發(fā)揮PID控制精度高,超調(diào)小的優(yōu)點(diǎn),從而使靜態(tài)、動態(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ù)Ti和微分時間常數(shù)Td。它們分別對控制性能的影響如下:² 比例系數(shù)Kp:它控制著系統(tǒng)調(diào)整的反應(yīng)速度,減少靜差,如Kp太小,系統(tǒng)動作緩慢,Kp加大,可以使系統(tǒng)動作靈敏,調(diào)節(jié)速度加快。但Kp偏大,可能使系統(tǒng)震蕩次數(shù)增多,調(diào)節(jié)時間加長。Kp過大,可使系統(tǒng)不穩(wěn)定。² 積分時間常數(shù)Ti: PID調(diào)節(jié)中的的積分項主要作用是消除靜差。Ti減少時,積分項作用增大,系統(tǒng)調(diào)節(jié)速度加快,但易使系統(tǒng)趨于不穩(wěn)定,震蕩次數(shù)較多。Ti增大,積分項對系統(tǒng)性能的影響減少,跟蹤速度減慢。當(dāng)Ti合適時,過渡度特性比較理想。² 微分時間常數(shù)Td: 微分控制可以
32、改善調(diào)節(jié)的動態(tài)特性,如減少超調(diào)量,縮短調(diào)節(jié)時間。當(dāng)Td偏大或者偏小時,超調(diào)量和調(diào)節(jié)時間都會增大,只有當(dāng)Td合適時,才能得到比較滿意的結(jié)果。在做PID參數(shù)整定時,首先根據(jù)系統(tǒng)要求應(yīng)選擇合適的采樣周期,采樣周期確定之后,比例系數(shù)Kp、積分時間常數(shù)Ti和微分時間常數(shù)Td的整定可以根據(jù)一定的算法,比如擴(kuò)充臨界比例系數(shù)法、擴(kuò)充響應(yīng)曲線法以及PID歸一化參數(shù)整定法來設(shè)定。但是在現(xiàn)場系統(tǒng)不允許振蕩或外加擾動信號,以上方法在現(xiàn)場不能使用。實(shí)際上在現(xiàn)場主要根據(jù)經(jīng)驗整定參數(shù),應(yīng)遵循以下規(guī)則:² 在進(jìn)行PID參數(shù)調(diào)節(jié)時,調(diào)節(jié)幅度要??;² 在調(diào)節(jié)時,需要各參數(shù)協(xié)同調(diào)節(jié);² 系統(tǒng)反映(溫度
33、變化)速度慢,可調(diào)大比例系數(shù)Kp,增大微分時間常數(shù)Td,減少積分時間常數(shù)Ti;² 有振蕩現(xiàn)象時,可減少比例系數(shù)Kp,減少微分時間常數(shù)Td。對于的確定,可根據(jù)具體情況來確定。3).程序流程圖在設(shè)計中,為2。程序流程圖如圖4-14所示 圖2-14 溫度控制流程圖2.2.6 遠(yuǎn)程加載程序的設(shè)計此功能模塊就是利用“在系統(tǒng)編程” (In-System Programming,簡稱ISP)技術(shù),可以實(shí)現(xiàn)對系統(tǒng)進(jìn)行在線升級。所謂“在系統(tǒng)編程”技術(shù)是指在用戶設(shè)計的微控制器系統(tǒng)中為配置新的系統(tǒng)功能而對器件進(jìn)行重新編程,并在線地將程序代碼(固件)下載到程序存儲器中的一種編程技術(shù)。它的出現(xiàn)是對傳統(tǒng)編程方法
34、的重大突破。在設(shè)計中,PC機(jī)利用串口向系統(tǒng)發(fā)送各種命令,如片擦除、頁擦除、編程等命令,系統(tǒng)正確接收之后分析執(zhí)行,從而完成加載升級功能。其詳細(xì)設(shè)計如下。1).相關(guān)寄存器簡介本設(shè)計中選用了SynCMOS公司的SM5964作為主控制器,利用串口即可方便地實(shí)現(xiàn)ISP功能,SM5964處理器是以80C52為內(nèi)核,芯片有64KB Flash 存儲器,其中可用于實(shí)現(xiàn)ISP功能的程序空間為N512 字節(jié)(N= 0,1,8 ),為實(shí)現(xiàn)ISP功能,專門設(shè)計了5個專用特殊功能寄存器。分別如下: 系統(tǒng)控制寄存器(SCONF,BFH)WDRRRRRISPEOMEALE1SCONF的位2(ISPE)是ISP功能的使能位,
35、該位置置1使能ISP功能,置0禁止ISP功能。這可以防止由于軟件設(shè)計失誤而造成的芯片擦除操作。 FLASH控制寄存器(FCR,F7H)STARTRRRRRF1F0START:ISP功能起始位,置1時,執(zhí)行由位1、位0(F1、F0)所制定的ISP功能。置0時,空操作。START位被置1后,SM5964內(nèi)部硬件電路會鎖存地址和數(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í)行成功時向PC機(jī)發(fā)送AAH命令,當(dāng)執(zhí)行失敗時,向PC機(jī)發(fā)送55H,通知PC機(jī)重新執(zhí)行。 功能 命令 校驗和 命令執(zhí)行成功 AAH 56H 執(zhí)行命令失敗 55H ABH 3).程序設(shè)計系統(tǒng)工作轉(zhuǎn)到ISP功能狀態(tài)時,首先對串口進(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)輸承包協(xié)議書
- 爭當(dāng)新時代好少年演講稿
- 甄進(jìn)明-IT行業(yè)-項目管理是企業(yè)管理的一項戰(zhàn)略決策培訓(xùn)
- 《長城》第一課時教學(xué)設(shè)計
- 小米小米電視發(fā)布會
- 周期性動眼神經(jīng)麻痹的臨床護(hù)理
- 2025屆陜西省渭南市富平縣數(shù)學(xué)七下期末監(jiān)測試題含解析
- 廣西南寧中學(xué)春季學(xué)期2025屆七年級數(shù)學(xué)第二學(xué)期期末考試試題含解析
- 黑龍江省五常市部分學(xué)校2025屆八年級數(shù)學(xué)第二學(xué)期期末監(jiān)測試題含解析
- 五年級語文教師下學(xué)期工作總結(jié)模版
- 第五單元 單元作業(yè)設(shè)計 小學(xué)語文部編版三年級下冊
- 城市規(guī)劃設(shè)計計費(fèi)指導(dǎo)意見(2004年)
- 常見病觀察及護(hù)理要點(diǎn)
- (高清版)TDT 1059-2020 全民所有土地資源資產(chǎn)核算技術(shù)規(guī)程
- 成人氧氣吸入療法-中華護(hù)理學(xué)會團(tuán)體標(biāo)準(zhǔn)
- 2022年全國統(tǒng)一高考化學(xué)試卷和答案解析(全國甲卷)
- 2022年1月上海春季高考英語真題(學(xué)生版+解析版+聽力音頻)
- 【物流產(chǎn)業(yè)集群發(fā)展研究文獻(xiàn)綜述4800字】
- 中國傳統(tǒng)音樂與西方音樂的對比與融合
- 急性淋巴結(jié)炎的護(hù)理查房
- 胖東來薪酬管理制度
評論
0/150
提交評論