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

正文內(nèi)容

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

2025-07-14 16:54本頁(yè)面
  

【正文】 和黑盒測(cè)試一般來(lái)說(shuō),軟件測(cè)試有兩種基本的測(cè)試方式,即白盒測(cè)試方法和黑盒測(cè)試方法,嵌入式軟件測(cè)試也不例外。白盒測(cè)試或基于代碼的測(cè)試檢查的是程序的內(nèi)部設(shè)計(jì)。根據(jù)源代碼的組織結(jié)構(gòu)查找軟件缺陷,一般要求軟件測(cè)試人員對(duì)軟件的結(jié)構(gòu)和作用有詳細(xì)的了解。白盒測(cè)試和代碼覆蓋率密切相關(guān),可以在白盒測(cè)試的同時(shí)計(jì)算出測(cè)試的代碼覆蓋率,保證測(cè)試的充分性。把100%的代碼都測(cè)試到是幾乎不可能的,所以要選擇最主要的代碼進(jìn)行白盒測(cè)試。由于嚴(yán)格的安全性和可行性的要求,嵌入式軟件測(cè)試同非嵌入式軟件測(cè)試相比,通常要求要有更高的代碼覆蓋率。對(duì)于嵌入式軟件,白盒測(cè)試一般在目標(biāo)硬件上進(jìn)行,更為實(shí)際的方式是在開(kāi)發(fā)環(huán)境中通過(guò)硬件仿真進(jìn)行,所以選取的測(cè)試工具應(yīng)該支持在宿主環(huán)境中的測(cè)試。黑盒測(cè)試在有些情況下也稱為功能測(cè)試。這種測(cè)試方法根據(jù)軟件的用途和外部特征查找軟件缺陷,不需要了解程序的內(nèi)部結(jié)構(gòu)。黑盒測(cè)試的最大優(yōu)點(diǎn)在于不依賴于代碼,而是從實(shí)際使用的角度進(jìn)行測(cè)試,通過(guò)黑盒測(cè)試可以發(fā)現(xiàn)白盒測(cè)試發(fā)現(xiàn)不了的問(wèn)題。因?yàn)楹诤袦y(cè)試與需求密切相關(guān),需求規(guī)格說(shuō)明的質(zhì)量會(huì)直接影響到測(cè)試結(jié)果。黑盒只能限制在需求的范圍內(nèi)進(jìn)行。在進(jìn)行嵌入式軟件測(cè)試時(shí),要把系統(tǒng)的預(yù)期用途作為重要依據(jù),根據(jù)需求對(duì)負(fù)載、定時(shí)、性能的要求,判斷軟件是否滿足這些需求規(guī)范。為了保證正確的測(cè)試,還需要檢驗(yàn)軟硬件之間的接口。嵌入式軟件測(cè)試的一個(gè)重要方面是極限測(cè)試。在使用環(huán)境中,通常要求嵌入式軟件的失效過(guò)程要平衡,所以,黑盒測(cè)試不僅要檢查軟件工作過(guò)程,也要檢查軟件的失效過(guò)程。2).目標(biāo)環(huán)境測(cè)試和宿主環(huán)境測(cè)試在嵌入式軟件測(cè)試中,常常要在基于目標(biāo)的測(cè)試和基于宿主的測(cè)試之間做出折衷?;谀繕?biāo)的測(cè)試消耗較多的經(jīng)費(fèi)和時(shí)間,而基于宿主的測(cè)試代價(jià)較小,但必竟是在模擬的環(huán)境中進(jìn)行的。目前是把更多的測(cè)試轉(zhuǎn)移到宿主環(huán)境中進(jìn)行,但是,目標(biāo)環(huán)境的復(fù)雜性和獨(dú)特性不可能完全模擬。在兩個(gè)環(huán)境中可以發(fā)現(xiàn)不同的軟件缺陷,重要的是對(duì)目標(biāo)環(huán)境和宿主環(huán)境的測(cè)試內(nèi)容有所選擇。在宿主環(huán)境中,可以進(jìn)行邏輯或界面的測(cè)試、其它非實(shí)時(shí)的測(cè)試和與硬件無(wú)關(guān)的測(cè)試。在模擬或宿主環(huán)境中的測(cè)試消耗的時(shí)間通常比較少,用調(diào)試工具可以更快的完成高度和測(cè)試任務(wù)。而與時(shí)間問(wèn)題有關(guān)的白盒測(cè)試、中斷測(cè)試、硬件接口測(cè)試只能在目標(biāo)環(huán)境中進(jìn)行。在軟件測(cè)試周期中,基于目標(biāo)的測(cè)試是在比較晚的“硬件\軟件集成測(cè)試”階段開(kāi)始的,如果不更早的在模擬環(huán)境中進(jìn)行白盒測(cè)試,而是等到“硬件\軟件集成測(cè)試”階段進(jìn)行全部的白盒測(cè)試,將耗費(fèi)更多的財(cái)力和人力。第四章 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)在這一章中,根據(jù)第二章和第三章的論述,設(shè)計(jì)出一個(gè)實(shí)現(xiàn)對(duì)溫度進(jìn)行測(cè)量和控制的嵌入式系統(tǒng)。系統(tǒng)具有對(duì)外界兩點(diǎn)溫度進(jìn)行采集的能力,采集的模擬信號(hào)經(jīng)A/D模塊轉(zhuǎn)換成相應(yīng)的數(shù)字量,送入微處理器進(jìn)行處理。采集到的每一路溫度都要與系統(tǒng)此路溫度設(shè)定值進(jìn)行比較,然后根據(jù)結(jié)果調(diào)用合適的控制算法,并通過(guò)控制相應(yīng)的繼電器的占空比實(shí)現(xiàn)對(duì)溫度的控制、測(cè)量、運(yùn)算處理、輸出控制、顯示、通信。為此引出串行通信設(shè)計(jì)利用RS232串行通信,實(shí)現(xiàn)了與PC機(jī)進(jìn)行通訊功能和遠(yuǎn)程加載功能??紤]到實(shí)際的應(yīng)用及成本等因素,選用的主要硬件器件有臺(tái)灣SynCMOS公司的生產(chǎn)的SM5964微控制器,數(shù)據(jù)采集部分選用了凌特公司(Linear Technology)推出的20位無(wú)延遲模數(shù)轉(zhuǎn)換器LTC2430,串行通訊部分使用MAX232芯片,液晶顯示屏選用了北京精電蓬遠(yuǎn)顯示技術(shù)公司生產(chǎn)的MGLS12864。嵌入式操作系統(tǒng)選用了源代碼公開(kāi)的μC/OSII。選用的開(kāi)發(fā)環(huán)境是:Windows 2000 Server 開(kāi)發(fā)工具:Keil C51 、VC++ 使用的語(yǔ)言是:匯編、C語(yǔ)言 系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)的原理圖如圖41所示。主要有鍵盤輸入、數(shù)據(jù)采集、輸出控制、LCD顯示、通信及電源模塊等組成。 圖41 系統(tǒng)原理框圖下面介紹一下主要部分的電路圖設(shè)計(jì)。1). 鍵盤輸入電路鍵盤是一組按鍵的組合,它是常用的輸入設(shè)備,可以通過(guò)鍵盤輸入數(shù)據(jù)或者命令,實(shí)現(xiàn)簡(jiǎn)單的人機(jī)對(duì)話。鍵盤可分為獨(dú)立聯(lián)接式和行列式(矩陣式)兩類,每類按其譯碼方式又分為編碼式及非編碼式兩類。設(shè)計(jì)中使用的是獨(dú)立聯(lián)接非編碼式鍵盤。電路圖如圖42所示: 圖42 鍵盤原理圖每個(gè)按鍵使用的是一個(gè)瞬時(shí)接觸開(kāi)關(guān),這種聯(lián)接方式可以容易被微處理器檢測(cè),但由于按鍵會(huì)產(chǎn)生機(jī)械抖動(dòng),在按鍵被按下或者抬起的瞬間,一般持續(xù)5~15ms,因此設(shè)計(jì)中要去除鍵抖動(dòng)。可以通過(guò)硬件雙穩(wěn)態(tài)電路或者軟件延時(shí)來(lái)實(shí)現(xiàn),設(shè)計(jì)中采用延時(shí)20ms實(shí)現(xiàn)的。對(duì)于串鍵,采用無(wú)限處理方法。同時(shí)為了防止按一次鍵而產(chǎn)生多次處理的情況(鍵掃描和鍵處理速度較快而此時(shí)鍵還沒(méi)釋放),在有鍵按下時(shí),作一次鍵處理后還要檢測(cè)按下的鍵是否釋放。2). 數(shù)據(jù)采集電路本系統(tǒng)實(shí)現(xiàn)對(duì)兩路溫度信號(hào)的采集,為了節(jié)省硬件成本,在前向通道中采用了多路選擇開(kāi)關(guān),使用了兩個(gè)多路模擬開(kāi)關(guān)器件CD4052,實(shí)現(xiàn)信號(hào)的差分輸入,完成對(duì)兩路溫度信號(hào)的輪流采樣,然后將信號(hào)送入一個(gè)公共的模數(shù)轉(zhuǎn)換器LTC2430,完成模數(shù)轉(zhuǎn)換。、。電路圖如圖43所示: 圖43 數(shù)據(jù)采集原理圖對(duì)溫度的測(cè)量使用鉑(Pt)熱敏電阻(100Ω),使用橋式電路進(jìn)行測(cè)量。鉑電阻是一種高性能的貴金屬熱電阻,具有精度高、穩(wěn)定性好、性能可靠等優(yōu)點(diǎn),鉑電阻的溫度測(cè)量范圍在200 ℃到 +850 ℃之間,在小于200℃時(shí),%,它的電阻值R和溫度t之間的關(guān)系可以近似地表示為:A,B為常數(shù),A為熱敏系數(shù)(ΔR/℃)。測(cè)量時(shí)采用的是查表法來(lái)計(jì)算溫度值。對(duì)于模數(shù)轉(zhuǎn)換器LTC2430,設(shè)計(jì)中使其工作在外部時(shí)鐘驅(qū)動(dòng)模式下,工作狀態(tài)分為轉(zhuǎn)換(Conversion)、休眠(Sleep)和數(shù)據(jù)輸出(DataOutput)三個(gè)狀態(tài)。此時(shí)它的數(shù)據(jù)輸出波形圖如圖44所示: 圖44 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解決電平匹配的問(wèn)題。電路圖如圖45所示: 圖45 通信電路原理圖SM5964的串行發(fā)送端口TXD和接收端口RXD經(jīng)MAX232芯片進(jìn)行電平轉(zhuǎn)換后,分別與PC機(jī)的數(shù)據(jù)接收端口RXD和數(shù)據(jù)發(fā)送端口TXD相連接。SM5964串行通信的發(fā)送端TXD連接到的11引腳,發(fā)出的數(shù)據(jù)信號(hào)經(jīng)過(guò)MAX232芯片轉(zhuǎn)換后,由0~5V的TTL電平變?yōu)?2~+12V的RS232電平,從14引腳輸出到PC機(jī)串行口的第二引腳。按RS232通信協(xié)議規(guī)定,PC機(jī)串行口的第二引腳為數(shù)據(jù)輸入端,這樣,發(fā)出的數(shù)據(jù)就可被PC機(jī)接收到。由PC機(jī)串行口的發(fā)送端TXD(PC機(jī)串行口的第三引腳)傳輸來(lái)的數(shù)據(jù),作為RS232電平的信號(hào)輸入到MAX232芯片的第13引腳,經(jīng)過(guò)MAX232芯片進(jìn)行電平轉(zhuǎn)換后變?yōu)門TL電平,再由MAX232的12引腳輸出到SM5964串行口的接收端口RXD。從而完成數(shù)據(jù)的雙向傳輸。在設(shè)計(jì)中,使用了兩個(gè)發(fā)光二極管D7和D8監(jiān)視通信的工作狀態(tài)。4). LCD顯示電路對(duì)于LCD MGLS12864,內(nèi)置HD61202圖形液晶顯示模塊,廠家為其設(shè)置了7條指令來(lái)完成對(duì)它的控制,有兩條指令用于顯示狀態(tài)的設(shè)置,其余指令用于數(shù)據(jù)讀/寫操作,在此不對(duì)其進(jìn)行詳細(xì)的說(shuō)明。MGLS12864與微處理器的連接方式有兩種:一種是直接訪問(wèn)方式,一種為間接控制方式。直接訪問(wèn)方式就是將液晶顯示模塊的接口作為存儲(chǔ)器或者I/O設(shè)備直接掛在計(jì)算機(jī)總線上,計(jì)算機(jī)以訪問(wèn)存儲(chǔ)器或者I/O設(shè)備的方式操作液晶顯示模塊的工作。而間接控制方式是計(jì)算機(jī)通過(guò)自身的或者系統(tǒng)中的并行口與液晶顯示模塊連接,通過(guò)對(duì)接口的操作達(dá)到對(duì)液晶顯示模塊的控制。設(shè)計(jì)中我采用了間接控制方式,這種方式的特點(diǎn)是電路簡(jiǎn)單,控制時(shí)序有軟件實(shí)現(xiàn),可以實(shí)現(xiàn)高速計(jì)算機(jī)與液晶顯示模塊的接口。電路圖如下圖所示,以 P2口作為數(shù)據(jù)口,,,實(shí)現(xiàn)左右兩區(qū)的顯示和切換。,,三者產(chǎn)生控制LCD數(shù)據(jù)與狀態(tài)的讀寫等信號(hào)。電位器用于顯示對(duì)比度的調(diào)節(jié)。電路圖如圖46所示: 圖46 顯示電路原理圖5). 輸出控制及報(bào)警指示電路輸出控制電路采用12V直流繼電器對(duì)外電路進(jìn)行控制,通過(guò)控制繼電器的吸合時(shí)間來(lái)實(shí)現(xiàn)對(duì)溫度的控制,繼電器是與強(qiáng)電控制電路(大電流、高電壓)聯(lián)系在一起,會(huì)對(duì)應(yīng)用系統(tǒng)產(chǎn)生嚴(yán)重干擾,使系統(tǒng)不能正常工作。為了消除干擾,在微機(jī)接口與繼電器之間分別加了光耦,使系統(tǒng)主機(jī)部分的地與強(qiáng)電控制電路的地隔開(kāi)。當(dāng)溫度超限或者系統(tǒng)出現(xiàn)致命錯(cuò)誤時(shí),系統(tǒng)會(huì)發(fā)出報(bào)警指示且實(shí)現(xiàn)在LCD上顯示。(原理圖略) 系統(tǒng)的移植移植是指使一個(gè)實(shí)時(shí)操作系統(tǒng)能夠在某個(gè)微處理器平臺(tái)上運(yùn)行。每個(gè)實(shí)時(shí)嵌入式操作系統(tǒng)都支持很多種處理器,為了使其在具體的硬件平臺(tái)上工作,必須根據(jù)具體的硬件平臺(tái)完成移植工作。為了便于用戶的使用,嵌入式操作系統(tǒng)生產(chǎn)商一般提供一些通用的板級(jí)支持包(Board Support Package,BSP)(有的稱為硬件抽象層(Hardware Abstract Layer, HAL)),用戶只需選擇與自己相近的BSP進(jìn)行修改,可以很容易完成移植工作。μC/OSII沒(méi)有提供BSP,需要用戶獨(dú)立完成此工作。由于在設(shè)計(jì)時(shí)已經(jīng)充分考慮了可移植性,移植工作并不太復(fù)雜,要根據(jù)具體硬件平臺(tái),、。要使其正常運(yùn)行, 處理器首先需滿足以下要求:178。 處理器的C編譯器能產(chǎn)生可重入代碼;178。 用C語(yǔ)言就可以打開(kāi)和關(guān)閉中斷;178。 處理器支持中斷,并且能夠產(chǎn)生定時(shí)中斷(通常在10Hz至100Hz之間);178。 處理器支持能夠容納一定數(shù)量數(shù)據(jù)(可能是幾千字節(jié))的硬件堆棧;178。 處理器有將堆棧指針和其他CPU寄存器讀出和存儲(chǔ)到堆?;騼?nèi)存中的指令。針對(duì)本論文論文中選用的SM5964微處理器和開(kāi)發(fā)工具Keil C51 ,進(jìn)行移植時(shí),重點(diǎn)考慮函數(shù)的重入和任務(wù)棧的結(jié)構(gòu)及大小的確定。對(duì)三個(gè)文件進(jìn)行的修改如下。1). 中與處理器和編譯器相關(guān)的代碼 /* 與編譯器相關(guān)數(shù)據(jù)類型 */typedef unsigned char BOOLEAN; typedef unsigned char INT8U; //無(wú)符號(hào)8位數(shù)typedef signed char INT8S; //有符號(hào)8位數(shù)typedef unsigned int INT16U; //無(wú)符號(hào)16位數(shù)typedef signed int INT16S; //有符號(hào)16位數(shù)typedef unsigned long INT32U; //無(wú)符號(hào)32位數(shù)typedef signed long INT32S; //有符號(hào)32位數(shù)typedef float FP32; //單精度浮點(diǎn)數(shù)typedef double FP64; //雙精度浮點(diǎn)數(shù)typedef unsigned char OS_STK; //棧單元寬度為8比特/ * 處理器相關(guān)代碼 (大模式) */define OS_ENTER_CRITICAL() EA=0 //關(guān)中斷define OS_EXIT_CRITICAL() EA=1 //開(kāi)中斷define OS_STK_GROWTH 0 //堆棧從下往上增長(zhǎng) 1=向下,//0=向上define OS_TASK_SW() OSCtxSw() /*因?yàn)槲⑻幚砥鳑](méi)有軟中斷指令,所以用程序調(diào)用代替*/2).在此文件中主要是完成任務(wù)初始化函數(shù)OSTaskStkInit ( )的編寫,每個(gè)任務(wù)在創(chuàng)建時(shí),要初始化自己的任務(wù)堆棧,任務(wù)堆棧的結(jié)構(gòu)類似系統(tǒng)發(fā)生一次中斷后的堆棧結(jié)構(gòu),在進(jìn)行任務(wù)切換時(shí),它要用來(lái)存儲(chǔ)與本任務(wù)相關(guān)的所有信息。其它5個(gè)函數(shù)需要聲明,因在此用不到, 沒(méi)有實(shí)際內(nèi)容。如果需要使用可以進(jìn)行編程。void *OSTaskStkInit (void (*task)(void *pd), void *ppdata, void *ptos, INT16U opt) reentrant{ OS_STK *stk; ppdata = ppdata; opt = opt。 /*opt沒(méi)被用到,保留此語(yǔ)句防止報(bào)警產(chǎn)生 */ stk = (OS_STK *)ptos; //用戶堆棧最低有效地址 *stk++ = 15。 //用戶堆棧長(zhǎng)度 *stk++ = (INT16U)task amp。 0Xff; //任務(wù)地址低8位 *stk++ = (INT16U)task 8; //任務(wù)地址高8位 *stk++ = 0x00; //PSW *stk++ = 0x0A; //ACC *stk++ = 0x0B; //B *stk++ = 0x00; //DPL *stk++ = 0x00; //DPH *stk++ = 0x00; //R0 *stk++ =
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1