freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用—計(jì)算機(jī)(論文)-資料下載頁(yè)

2024-12-06 04:36本頁(yè)面

【導(dǎo)讀】嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用

  

【正文】 入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用 12 圖 31 SM5964模塊圖 嵌入式操作系統(tǒng) μ C/OSII 在進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)時(shí),選擇適合自己的實(shí)時(shí)操作系統(tǒng)是至關(guān)重要的,我結(jié)合具體的應(yīng)用,考慮開(kāi)發(fā)成 本等因素,根據(jù)嵌入式操作系統(tǒng)的選取原則并基于μ C/OSII的許多特點(diǎn),選用了源代碼公開(kāi)的 實(shí)時(shí)操作系統(tǒng) μ C/OSII。 μ C/OSII 的主要特點(diǎn) 它是由 Labrosse先生編寫(xiě)的一個(gè)開(kāi)放式內(nèi)核, 主要特點(diǎn)如下: 嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用 12 ? 公開(kāi)源代碼:源代碼全部公開(kāi),這樣使系統(tǒng)變得透明,很容易就能把操作系統(tǒng)移植的各個(gè)不同的硬件平臺(tái)上,并可根據(jù)需要進(jìn)行擴(kuò)充。 ? 可移植性: μ C/OSII絕大部分源碼是用 ANSI C寫(xiě)的,可移植性( Portable)較強(qiáng)。它可以在絕大多數(shù) 8位、 16位、 32位甚至 64位微處理器、微控制器、數(shù) 字信號(hào)處理器( DSP)上運(yùn)行。 ? 可固化:μ C/OSII是為嵌入式應(yīng)用而設(shè)計(jì)的,可以嵌入到開(kāi)發(fā)者的產(chǎn)品中成為產(chǎn)品的一部分。 ? 可裁減:可以根據(jù)具體的應(yīng)用,對(duì)內(nèi)核進(jìn)行裁減,其內(nèi)核最小可達(dá)到 2KB。 ? 占先式:μ C/OSII完全是占先式( Preemptive)的實(shí)時(shí)內(nèi)核,總是運(yùn)行在就緒條件下優(yōu)先級(jí)最高的任務(wù)。大多數(shù)商業(yè)內(nèi)核也是占先式的,μC/OSII在性能上與它們類似。 ? 多任務(wù):μ C/OSII可以管理 64個(gè)任務(wù),系統(tǒng)本身保留 8個(gè),應(yīng)用程序最多可以有 56個(gè)任務(wù),賦予每個(gè)任務(wù)的優(yōu)先級(jí)必須不同。 ? 可確定性:全部μ C/OSII的函數(shù)調(diào)用與服務(wù)的執(zhí)行時(shí)間具有其可確定性。μ C/OSII的系統(tǒng)服務(wù)的執(zhí)行時(shí)間不依賴于應(yīng)用程序任務(wù)的多少。 ? 任務(wù)棧:每個(gè)任務(wù)有自己?jiǎn)为?dú)的棧,μ C/OSII允許每個(gè)任務(wù)有不同的??臻g,以便壓低應(yīng)用程序?qū)?RAM的需求。使用μ C/OSII的??臻g校驗(yàn)函數(shù),可以確定每個(gè)任務(wù)到底需要多少棧空間。 ? 系統(tǒng)服務(wù):μ C/OSII提供很多系統(tǒng)服務(wù),例如郵箱、消息隊(duì)列、信號(hào)量、塊大小固定的內(nèi)存的申請(qǐng)和釋放、時(shí)間相關(guān)函數(shù)等。 ? 中斷管理:中斷可以使正在執(zhí)行的任務(wù)暫時(shí)掛起,如果優(yōu)先級(jí)更高的任務(wù)被該中斷喚醒,則高優(yōu)先級(jí) 的任務(wù)在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可達(dá) 255層。 ? 穩(wěn)定性與可靠性:μ C/OSII自 1992年以來(lái)已經(jīng)有很多成功的商業(yè)應(yīng)用,其穩(wěn)定性和可靠性都有很好的保證。 μ C/OSII 硬件和軟件體系結(jié)構(gòu) μ C/OSII的內(nèi)核是占先式( Preemptive) 內(nèi)核,即總是讓就緒態(tài)的高優(yōu)先級(jí)的任務(wù)先運(yùn)行,中斷服務(wù)程序可以搶占 CPU,當(dāng)中斷服務(wù)程序完成時(shí),內(nèi)核讓此時(shí)優(yōu)先級(jí)最高的任務(wù)運(yùn)行。這樣使系統(tǒng)的響應(yīng)時(shí)間得到最優(yōu)化,而且是可知的。它完成了任務(wù)管理、任務(wù)間的通信和同步、內(nèi)存管理、時(shí)間管理和 中斷管理。其硬件和軟件體系結(jié)構(gòu)如圖 32所示 嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用 12 圖 32 1).任務(wù)的管理 它包括任務(wù)的創(chuàng)建、刪除、掛起和恢復(fù)等。在嵌入式系統(tǒng)中每個(gè)任務(wù)是一個(gè)無(wú)限的循環(huán),它看起來(lái)像其他 C的函數(shù)一樣,有函數(shù)返回類型,有形式參數(shù)變量,但是任務(wù)是絕不會(huì)返回的,故返回參數(shù)必須定義為 Void。格式如下: void Task1(void *ppdata) { for(;; ) { /* 用戶代碼 */ /*調(diào)用μ C/OSII的某種系統(tǒng)服務(wù) */ } } 任務(wù) 的創(chuàng)建函數(shù)如下: INT8U OSTaskCreate(void (*task)(void *pd),void *ppdata, OS_STK *ptos, INT8U prio); 其中 :task是任務(wù)代碼的指針; ppdata是當(dāng)任務(wù)開(kāi)始執(zhí)行時(shí)傳遞給任務(wù)的參數(shù)指針; ptos是分配給任務(wù)的堆棧的棧頂指針; prio是分配給任務(wù)的優(yōu)先級(jí)。 任務(wù)刪除函數(shù)為: INT8U OSTaskDel(INT8U prio)。 任務(wù)掛起函數(shù)為: INT8U OSTaskSuspend (INT8U prio)。 任務(wù)恢復(fù)函數(shù)為: INT8U OSTaskResume (INT8U prio)。 系統(tǒng)中每個(gè)任務(wù)有掛起、就緒、運(yùn)行及休眠等狀態(tài),各狀態(tài)之間的轉(zhuǎn)換關(guān)系如圖 33所示。 嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用 12 圖 33 2).任務(wù)間的通信 在μ C/OSII中,有多種方法可以保護(hù)任務(wù)之間的共享數(shù)據(jù)和提供任務(wù)之間的通信,下面介紹三種: 一是利用宏 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()來(lái)關(guān)閉中斷和打開(kāi)中斷。當(dāng)兩個(gè)任務(wù)或者一個(gè)任務(wù)和一個(gè)中斷服務(wù)子程序共享某些數(shù)據(jù)時(shí),可以采用這種方法 。 二是利用函數(shù) OSSchedLock()和 OSSchedUnlock()對(duì)任務(wù)調(diào)度函數(shù)上鎖和開(kāi)鎖,禁止任務(wù)調(diào)度。用這種方法也可以實(shí)現(xiàn)數(shù)據(jù)的共享。 三是任務(wù)間的通信和同步采用信號(hào)量、郵箱和消息隊(duì)列來(lái)實(shí)現(xiàn)的。 3).內(nèi)存管理 采用把連續(xù)的大塊按分區(qū)來(lái)管理。每個(gè)分區(qū)中包含有正整數(shù)個(gè)大小相同的內(nèi)存塊,μ C/OSII 對(duì) malloc()和 free()函數(shù)進(jìn)行了改進(jìn),使得它們可以分配和釋放固定大小的內(nèi)存塊。用戶的應(yīng)用程序可以從不同的內(nèi)存分區(qū)中取得不同大小的內(nèi)存塊,但是特定的內(nèi)存塊在釋放時(shí)必須重新放回它以前所屬于的內(nèi) 存分區(qū)。采用這種內(nèi)存管理方法,解決了內(nèi)存碎片問(wèn)題。 主要相關(guān)函數(shù):建立內(nèi)存分區(qū)( OSMemCreate()),分配內(nèi)存塊( OSMemGet()) ,釋放內(nèi)存塊( OSMemPut()) 。 4). 時(shí)間管理 μ C/OSII 要求用戶提供定時(shí)中斷來(lái)實(shí)現(xiàn)延時(shí)與超時(shí)控制等功能,這個(gè)定時(shí)中斷成為時(shí)鐘節(jié)拍,它一般每秒發(fā)生 10 至 100 次,時(shí)鐘節(jié)拍的頻率越高,系統(tǒng)的負(fù)荷越嚴(yán)重。其實(shí)際大小可由用戶的應(yīng)用程序來(lái)決定。時(shí)間管理主要是完成任務(wù)的延時(shí)及系統(tǒng)時(shí)間的更改。 嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用 12 針對(duì)應(yīng)用對(duì)內(nèi)核進(jìn)行的擴(kuò)充 由于μ C/OSII 僅是一 個(gè)實(shí)時(shí)內(nèi)核,不像其它的實(shí)時(shí)操作系統(tǒng)那樣提供給用戶的只是一些 API 函數(shù)接口,把它移植到目標(biāo)硬件平臺(tái)只是系統(tǒng)設(shè)計(jì)工作的開(kāi)始,還需要針對(duì)實(shí)際的應(yīng)用需求對(duì)其進(jìn)行功能擴(kuò)展,包括底層的硬件驅(qū)動(dòng)、文件系統(tǒng)、用戶圖形接口( GUI) 、網(wǎng)絡(luò)功能等,從而建立一個(gè)實(shí)用的 RTOS。下面僅對(duì)外設(shè)及驅(qū)動(dòng)程序進(jìn)行論述。 外設(shè)驅(qū)動(dòng)程序可以對(duì)系統(tǒng)提供訪問(wèn)外圍設(shè)備的接口,把操作系統(tǒng)(軟件)和外圍設(shè)備(硬件)分離開(kāi)來(lái)。當(dāng)外圍設(shè)備改變的時(shí)候,只需更換相應(yīng)的驅(qū)動(dòng)程序,不必修改操作系統(tǒng)的內(nèi)核以及運(yùn)行在操作系統(tǒng)的軟件。下面僅建立用到的外設(shè)驅(qū)動(dòng)程序標(biāo)準(zhǔn)接口 。 ⑴ 串行口( UART) 串行口符合 RS232 標(biāo)準(zhǔn),通信的最高速度可以達(dá)到 115200bps。建立的接口函數(shù)如下: ? Uart_Init 定義: void Uart_Init (INT16U mclk, INT16U baud); 功能:初始化串行口,設(shè)置串行口通信的波特率 參數(shù)說(shuō)明: mclk:系統(tǒng)的主時(shí)鐘頻率。 baud:所設(shè)定的串行口通信波特率 ? Uart_SendStr 定義: void Uart_SendStr(char * str,? ..); 功能:輸出字符串到 串口 參數(shù)說(shuō)明: str:輸出到串行口的字符串。 ? Uart_Getch 定義: char Uart_Getch(); 功能:接收串口的數(shù)據(jù),收到數(shù)據(jù)時(shí)返回,返回串口接收到的數(shù)據(jù)。 ? Uart_Sendch 定義: void Uart_Sendch(char data) 功能:向串口發(fā)送數(shù)據(jù) 參數(shù)說(shuō)明: data:發(fā)送的數(shù)據(jù) ⑵ 液晶顯示驅(qū)動(dòng)程序 系統(tǒng)設(shè)計(jì)中選用的 LCD 是 北京精電蓬遠(yuǎn)顯示技術(shù)公司生產(chǎn)的 MGLS12864,內(nèi)部有控制電路,在系統(tǒng)的內(nèi)存里開(kāi)辟了一塊內(nèi)存作為液晶屏顯示的后臺(tái) 緩沖區(qū)LCDBuffer,用于保存要顯示的內(nèi)容。對(duì)于不同的液晶屏顯示只需要改動(dòng) 和 中的程序即可。 液晶模塊有兩種工作模式:圖形方式和文本方式。在圖形方式下,模塊上的緩沖區(qū)映射的是液晶屏上顯示的圖形點(diǎn)陣;在文本方式下,模塊上的緩沖區(qū)對(duì)應(yīng)的是液晶屏上顯示的文本字符,包括英文字符和英文標(biāo)點(diǎn)符號(hào)。在此對(duì)漢字顯示僅作演示之用。 嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用 12 液晶屏的操作主要包括:初始化、設(shè)置工作模式(文本或者圖形)、更新顯示。接口函數(shù)如下: ? LCD_Init 定義: void LCD_Init(void); 功能:初始 化 LCD,在系統(tǒng)啟動(dòng)時(shí)此函數(shù)被調(diào)用。 ? LCD_Pritf 定義: void LCD_Printf(char *str,? )。 功能:在 LCD的文本方式下輸出字符串。 參數(shù)說(shuō)明: str:所輸出的字符串 ? LCD_ChangeMode 定義: void LCD_ChangeMode( INT8U mode); 功能:改變 LCD 的工作模式 參數(shù)說(shuō)明: mode: 設(shè)定的 LCD 的顯示模式, 0 表示文本模式, 1 表示圖形模式 ? LCD_Refresh 定義: void LCD_Refresh (INT8U col,INT8U row ,char *str ) 功能:更新 LCD 的顯示,把后臺(tái)緩沖區(qū) LCDBuffer[][]中的內(nèi)容更新到 LCD 的顯示屏上。 參數(shù)說(shuō)明: col: 顯示字符串的起始列數(shù)。 row: 顯示字符串的起始列數(shù)。 str: 需要顯示的內(nèi)容 ⑶ 鍵盤(pán)驅(qū)動(dòng)程序 鍵盤(pán)的相關(guān)驅(qū)動(dòng)函數(shù)如下: ? GetKey 定義: INT8U GetKey ( ); 功能:獲得被按下的鍵數(shù),返回值中指示出哪個(gè)鍵被按下。 ? GetScanKey 定義: INT8U GetScanKey ( ) 功能:對(duì)各個(gè)按鍵進(jìn) 行掃描,從而確定其狀態(tài)。相應(yīng)位指示其是否被按下( 1 表示按下, 0表示斷開(kāi))。 ⑷ A/D 驅(qū)動(dòng)程序 系統(tǒng)中采用 20 位模數(shù)轉(zhuǎn)換器 LTC2430,完成對(duì)溫度信號(hào)的測(cè)量,將模擬信號(hào)轉(zhuǎn)換成相應(yīng)的數(shù)字信號(hào)之后,傳給處理器進(jìn)行相關(guān)的處理。根據(jù)其轉(zhuǎn)換特性,設(shè)計(jì)的函數(shù)接口如下: ? 2430_Check 定義: INT8U 2430_Check ( ); 功能:檢查本次模數(shù)轉(zhuǎn)換是否完成。返回值為 0時(shí),正在進(jìn)行轉(zhuǎn)換,否則轉(zhuǎn)換結(jié)束。 ? 2430_ReadValue 定義: INT16U 2430_ReadValue ( ) 功能:讀取轉(zhuǎn)換結(jié)果并返回其值。 嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用 12 /硬件協(xié)同設(shè)計(jì)技術(shù) 傳統(tǒng)的嵌入式系統(tǒng)的設(shè)計(jì)方法如圖 34所示,硬件和軟件的分為兩個(gè)獨(dú)立的部分,有硬件工程師和軟件工程師按照擬定的設(shè)計(jì)流程分別完成。這種設(shè)計(jì)方法只能改善硬件 /軟件各自的性能,而有限的設(shè)計(jì)空間不可能對(duì)系統(tǒng)做出較好的性能綜合優(yōu)化。 20 世紀(jì) 90年代初,國(guó)外有些學(xué)者提出“這種傳統(tǒng)的設(shè)計(jì)方法,只是早期計(jì)算機(jī)技術(shù)落伍的產(chǎn)物,它不能求出適合于某個(gè)專用系統(tǒng)的最佳計(jì)算機(jī)應(yīng)用系統(tǒng)的解”。因?yàn)?,從理論上?lái)說(shuō),每一個(gè)應(yīng)用系統(tǒng)的,都存在一個(gè)適合于該系統(tǒng) 的硬件、軟件功能的最佳結(jié)合,如何從應(yīng)用系統(tǒng)的需求出發(fā),依據(jù)一定的指導(dǎo)原則和分配算法對(duì)硬件 /軟件功能進(jìn)行分析及合理的劃分,從而使得系統(tǒng)的整體信能、運(yùn)行時(shí)間、能量損耗。存儲(chǔ)能量達(dá)到最佳狀態(tài),已成為硬件 /軟件協(xié)同設(shè)計(jì)的重要研究?jī)?nèi)容之一。 應(yīng)用系統(tǒng)的多樣性和復(fù)雜性,使硬件 /軟件的功能劃分與分配、系統(tǒng)優(yōu)化、系統(tǒng)綜合、模擬仿真存在許多研究解決的問(wèn)題,因而使國(guó)際上這個(gè)領(lǐng)域的研究日益活躍。 系統(tǒng)協(xié)同設(shè)計(jì)與傳統(tǒng)的設(shè)計(jì)相比有以下兩個(gè)顯著的區(qū)別: ( 1) 描述硬件和軟件使用統(tǒng)一的表示形式。 ( 2) 硬件 /軟件劃分可 以選擇多種方案,直到滿足要求。 顯然,這種設(shè)計(jì)方法對(duì)于具體的應(yīng)用系統(tǒng)而言,容易獲得滿足綜合性能指標(biāo)的最佳解決方案。傳統(tǒng)方法雖然也可以改進(jìn)硬件軟件性能,但由于這種改進(jìn)是各自獨(dú)立進(jìn)行的,不一定使系統(tǒng)綜合性能達(dá)到最佳。 傳統(tǒng)的嵌入式系統(tǒng)的開(kāi)發(fā)采用的是軟件開(kāi)發(fā)與硬件開(kāi)發(fā)分離的方式,其過(guò)程可以描述如下: ( 1) 需求分析 ( 2) 軟硬件分別設(shè)計(jì)、開(kāi)發(fā)、調(diào)試、測(cè)試、 ( 3) 系統(tǒng)集成,軟硬件集成。 ( 4) 集成測(cè)試 ( 5) 若系統(tǒng)正確,則結(jié)束、否則繼續(xù)進(jìn)行。 需求分析總體設(shè)計(jì) 嵌入式系統(tǒng)硬件開(kāi)發(fā) 嵌入式系統(tǒng)軟件開(kāi)發(fā) 嵌入式系統(tǒng)集成、測(cè)試、驗(yàn)證 圖 34傳統(tǒng)嵌入式系統(tǒng)的設(shè)計(jì) 方法 嵌入式系統(tǒng)在多點(diǎn)溫度控制中的應(yīng)用 12 ( 6) 若出現(xiàn)錯(cuò)誤,需要對(duì)軟硬件分別驗(yàn)證和修改。 ( 7) 返回 3,繼續(xù)進(jìn)行集成測(cè)試。 雖然在系統(tǒng)設(shè)計(jì)的初始階段考慮了 軟硬件的接口問(wèn)題,但由于軟硬件分別開(kāi)發(fā),各自部分的修改和缺陷很容易導(dǎo)致系統(tǒng)集成出現(xiàn)錯(cuò)誤、由于設(shè)計(jì)方法的限制,這些錯(cuò)誤不但難于定位,而
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1