實時系統(tǒng)設(shè)計與分析試驗報告模板(大試驗版)_第1頁
實時系統(tǒng)設(shè)計與分析試驗報告模板(大試驗版)_第2頁
實時系統(tǒng)設(shè)計與分析試驗報告模板(大試驗版)_第3頁
實時系統(tǒng)設(shè)計與分析試驗報告模板(大試驗版)_第4頁
實時系統(tǒng)設(shè)計與分析試驗報告模板(大試驗版)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE1實時系統(tǒng)設(shè)計與分析實驗報告學(xué)院軟件學(xué)院年級2005級班級三班學(xué)號3005218077姓名王盡宇2008年4目錄一、實驗內(nèi)容…………………….1二、實驗過程…………………….X三、實驗結(jié)果…………………….X軟件學(xué)院2005級實時系統(tǒng)設(shè)計與分析試驗報告PAGE6一、實驗內(nèi)容:1、試驗題目:普通型自動噴灌機(手持操作控制器部分)2、試驗要求:自動噴灌機可以在種植大棚內(nèi)的天車軌道上往復(fù)運行,在運行過程中通過噴水裝置實現(xiàn)對一定面積內(nèi)的農(nóng)作物進行灌溉。噴水裝置共有左右兩個噴管,每個噴管上各有十個噴頭,控制系統(tǒng)應(yīng)可以分別控制每個噴管的開閉,自動噴灌機停止時兩個噴管都是關(guān)閉的,而自動噴灌機運行時可分別設(shè)定每個噴管的狀態(tài)為:雙向運行時均開啟噴水、僅正向運行時開啟噴水、僅反向運行時開啟噴水、雙向運行時均不噴水。由于每個噴管的水流量是固定的,因此噴水量是靠噴灌機的行進速度來調(diào)節(jié)的,控制系統(tǒng)應(yīng)可以預(yù)先設(shè)定噴灌機的運行速度,并且可以分別設(shè)定正向與反向運行時不同的運行速度。自動噴灌機的噴灌工作模式有兩種,手動啟動和定時啟動。其中手動啟動又分為啟動正向運行與啟動反向運行;定時啟動則是預(yù)先設(shè)定一個周期時間,噴灌機進行倒計時,時間到自動開始一次往復(fù)運行,并開始下一次倒計時,如此不斷循環(huán)。另外手動啟動還可以通過遙控器實現(xiàn),遙控器只有啟動正向運行和停止兩個功能。任何時刻可以通過停止操作停止噴灌機的運行。按鍵需求:正向行進速度加減鍵2個反向行進速度加減鍵2個左右噴管工作狀態(tài)選擇鍵2個定時噴灌的間隔時間設(shè)置鍵2個(小時、分鐘各一個)參數(shù)設(shè)定完成鍵1個,取消鍵1個噴灌管沖洗命令鍵1個(預(yù)留)噴灌管轉(zhuǎn)換命令鍵2個(預(yù)留)正向啟動、反向啟動、停止鍵3個手操控制器主開關(guān)1個:扳鍵開關(guān) 顯示內(nèi)容:正向行進速度xx.x米/分,0.5行顯示 反向行進速度xx.x米/分,0.5行顯示 左右噴灌模式雙向、正向、反向、停止,1行漢字顯示定時噴灌的間隔時間和當(dāng)前倒計時時間xx時xx分,各0.5行顯示當(dāng)前工作狀態(tài)顯示,1行漢字顯示 提供8列*4行16*16點陣LCD顯示(0.5行可顯示8*8字符)操作方式:按鍵修改速度、時間、工作狀態(tài),修改后30秒不按取消鍵將自動確認,按確認或正向、反向、停止鍵立即確認并執(zhí)行相應(yīng)動作,另外按停止鍵可實現(xiàn)重新開始倒計時。二、實驗過程:(設(shè)計思路,功能劃分,任務(wù)分配,實驗解決方案等等,具體要求請參考系統(tǒng)說明書。。。)1、設(shè)計思路:開機后,TaskStart初始化系統(tǒng)創(chuàng)建4個任務(wù)Task0、Task1、Task2、Task3,并掛起Task2,Task3和TakStart。Task0任務(wù)作為控制性任務(wù)從中央控制器中讀取系統(tǒng)參數(shù)顯示在屏幕上,完成后掛起。Task1任務(wù)監(jiān)聽鍵盤輸入并設(shè)置信號量,根據(jù)中央控制器的同步信號設(shè)置兩個變量。其中一個變量用于記錄是否是默認啟動即修改后30秒內(nèi)沒輸入,如果有則繼續(xù)等待30秒,該變量清零;若無則喚醒Task2任務(wù)。Task2任務(wù)向中央控制器提交信息。另一個變量用于喚醒Task0,每分鐘從中央控制器讀取系統(tǒng)狀態(tài)參數(shù)。在車輛行時過程中,Task1只會喚醒Task0或?qū)νV规I做出響應(yīng),調(diào)用Task3任務(wù)。Task3向中央控制器發(fā)出停止信號,并重置信號量和兩個時間變量。2、功能劃分: 顯示系統(tǒng)狀態(tài):開機后從中央控制器中讀取系統(tǒng)參數(shù)并顯示到屏幕上。靜止時,顯示修改結(jié)果和倒計時剩余時間;運行時,每分鐘從中央控制器讀取一次系統(tǒng)狀態(tài)參數(shù)。 監(jiān)聽功能:監(jiān)聽鍵盤輸入并根據(jù)不同的輸入修改系統(tǒng)參數(shù),并監(jiān)聽中央控制器發(fā)出的同步信號,以此作為時間計數(shù)器調(diào)度相應(yīng)任務(wù)。 啟動功能:將修改后的系統(tǒng)參數(shù)提交給中央控制器。 終止功能:向中央控制器發(fā)出停車信號,并重置倒計時和相關(guān)變量。3、任務(wù)分配: 1>變量設(shè)置: #difinestructureSystemParameters{ INT8UPOS_DIRECTION_SPEED=0;\\0到6級正向速度的等級 INT8UNEG_DIRECTION_SPEED=0;\\0到6級 負向速度的等級 INT8ULEFT_NOZZLE_STATE=1; \\左噴頭狀態(tài) INT8URIGHT_NOZZLE_STATE=1; \\右噴頭狀態(tài) INT8USTART_DIRECTION; \\啟動方向,1表示正向,2為反向,0為停止\*倒計時的時間。默認值是30分鐘*\ INT8UTIMING_HOUR=0; INT8UTIMING_MINITE=30; \*判斷為何種確認情況:值為0表示按“確認”、“正向”或“反向”鍵的修改;值為1表示按默認啟動的修改;值為2表示按“停止”鍵的修改*\ INT8USTART_WAY;}#difineINT8UWAITINGTIME=0;\\修改數(shù)據(jù)后的未再按鍵時間#difineINT8USTATETIME=0;\\ 記錄時間每分鐘喚醒task0#difineINT8UWHETHER_RUNNING=0;\\0表示靜止,1表運行#difineSystemParameterssystemParameters,ready;2>分配任務(wù): TaskStart任務(wù),優(yōu)先級為3,功能為初始化系統(tǒng)并創(chuàng)建其他應(yīng)用任務(wù)后掛起。初始化系統(tǒng)初始化系統(tǒng)創(chuàng)建4個任務(wù)掛起Task2、Task3掛起自身圖-1TaskStart的流程圖 Task0任務(wù),優(yōu)先級為4,功能為顯示系統(tǒng)的狀態(tài)參數(shù)或?qū)⒁恍薷臑榈闹担\行后被掛起。顯示信號量中的信息顯示信號量中的信息掛起自身從中央控制器中讀取數(shù)據(jù)存入信號量中將信號量存入ready變量中開始是否到一分鐘是否圖-2Task0的流程圖 Task1任務(wù),優(yōu)先級為7,功能為監(jiān)聽是否有鍵盤輸入并根據(jù)相應(yīng)的輸入修改與之相關(guān)的參數(shù);接收由中央控制器發(fā)來的同步信號作為時鐘。它是手持控制器的調(diào)度任務(wù),分別根據(jù)同步信號的發(fā)來的次數(shù)和不同的鍵盤輸入信號做出相應(yīng)的調(diào)度來喚醒其他的任務(wù)。修改信號量修改信號量喚醒Task0判斷是否有輸入從ready中恢復(fù)信號量的值有輸入其他鍵判斷輸入的是什么喚醒Task3確認、正向、反向、停止取消鍵30秒內(nèi)無輸入開始圖-3Task1的流程圖 Task2任務(wù),優(yōu)先級為5,功能為根據(jù)相應(yīng)信號量,將帶有參數(shù)的信號量提交給中央控制器,根據(jù)情況可對信號量添加必要的值,成后掛起。提交信號量中的信息到中央控制器提交信號量中的信息到中央控制器掛起自身讀取信號量的信息補全信息判斷信息是否完整完整不完整圖-4Task2的流程圖 Task3任務(wù),優(yōu)先級為6,功能為向中央控制器發(fā)出停車信號并重置信號量,完成后掛起。 重置信號量中的信息重置信號量中的信息掛起自身發(fā)出停車信號圖-5Task3的流程圖3>相關(guān)函數(shù):3.1OSTaskCreate()建立一個新任務(wù)。任務(wù)的建立可以在多任務(wù)環(huán)境啟動之前,也可以在正在運行的任務(wù)中建立。中斷處理程序中不能建立任務(wù)。一個任務(wù)可以為無限循環(huán)的結(jié)構(gòu)。函數(shù)原型:INT8UOSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio);參數(shù)說明:task是指向任務(wù)代碼首地址的指針。Pdata指向一個數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來在建立任務(wù)時向任務(wù)傳遞參數(shù)。返回值:OSTaskCreate()的返回值為下述之一:OS_NO_ERR:函數(shù)調(diào)用成功。OS_PRIO_EXIST:具有該優(yōu)先級的任務(wù)已經(jīng)存在。OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級大于OS_LOWEST_PRIO。OS_NO_MORE_TCB:系統(tǒng)中沒有OS_TCB可以分配給任務(wù)了。3.2OSTaskSuspend()無條件掛起一個任務(wù)。調(diào)用此函數(shù)的任務(wù)也可以傳遞參數(shù)OS_PRIO_SELF,掛起調(diào)用任務(wù)本身。當(dāng)前任務(wù)掛起后,只有其他任務(wù)才能喚醒被掛起的任務(wù)。任務(wù)掛起后,系統(tǒng)會重新進行任務(wù)調(diào)度,運行下一個優(yōu)先級最高的就緒任務(wù)。喚醒掛起任務(wù)需要調(diào)用函數(shù)OSTaskResume()。任務(wù)的掛起是可以疊加到其他操作上的。例如,任務(wù)被掛起時正在進行延時操作,那么任務(wù)的喚醒就需要兩個條件:延時的結(jié)束以及其他任務(wù)的喚醒操作。又如,任務(wù)被掛起時正在等待信號量,當(dāng)任務(wù)從信號量的等待對列中清除后也不能立即運行,而必須等到被喚醒后。函數(shù)原型:INT8UOSTaskSuspend(INT8Uprio);參數(shù)說明:prio為指定要獲取掛起的任務(wù)優(yōu)先級,也可以指定參數(shù)OS_PRIO_SELF,掛起任務(wù)本身。此時,下一個優(yōu)先級最高的就緒任務(wù)將運行。返回值:OSTaskSuspend()的返回值為下述之一:OS_NO_ERR:函數(shù)調(diào)用成功。OS_TASK_SUSPEND_IDLE:試圖掛起μC/OS-II中的空閑任務(wù)(Idletask)。此為非法操作。OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級大于OS_LOWEST_PRIO或沒有設(shè)定OS_PRIO_SELF的值。OS_TASK_SUSPEND_PRIO:要掛起的任務(wù)不存在。3.3OSTaskResume()喚醒一個用OSTaskSuspend()函數(shù)掛起的任務(wù)。OSTaskResume()也是唯一能“解掛”掛起任務(wù)的函數(shù)。函數(shù)原型:NT8UOSTaskResume(INT8Uprio);參數(shù)說明:prio指定要喚醒任務(wù)的優(yōu)先級。返回值:OSTaskResume()的返回值為下述之一:OS_NO_ERR:函數(shù)調(diào)用成功。OS_TASK_RESUME_PRIO:要喚醒的任務(wù)不存在。OS_TASK_NOT_SUSPENDED:要喚醒的任務(wù)不在掛起狀態(tài)。OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級大于或等于OS_LOWEST_PRIO。4>任務(wù)調(diào)度: 首先TaskStart運行初始化系統(tǒng)并創(chuàng)建其他四個任務(wù)Task0、Task1、Task2、Task3,掛起Task2、Task3和TaskStart。Task0從中央控制器中獲得系統(tǒng)狀態(tài)參數(shù)并顯示到屏幕上之后掛起。此時Task1的優(yōu)先級最高開始運行,它監(jiān)聽手持控制器是否有輸入,如果有判斷輸入的是那個鍵以采取相應(yīng)的操作修改信號量,并喚醒Task0顯示修改后的值。如此往復(fù),直到遇到執(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論