UCOS II照明系統設計_第1頁
UCOS II照明系統設計_第2頁
UCOS II照明系統設計_第3頁
UCOS II照明系統設計_第4頁
UCOS II照明系統設計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

III.專業課程設計基于μC/OSⅡ的照明系統設計學院:工學院專業班級:通信工程13秋2班姓名:魯博文學號:13150222小組成員:張彥昭、魯博文指導教師:徐振、周麗婕完成日期2016年9月目錄219641引言 1220421.1課程設計目的 2182561.2本論文章節安排 28282總體方案與設計 3120322.1任務分析 388482.2方案設計 3253382.2.1硬件設計 344432.2.2軟件設計 4134543系統硬件設計 521443.1光敏傳感器模塊 5151963.2蜂鳴器模塊 689613.3LCD顯示屏模塊 716523.4DS18B20溫度傳感器模塊 9308154系統軟件設計 10193324.1μC/OSⅡ操作系統 1077664.2軟件任務設計 11113425調試結果及性能分析 13280475.1調試過程 13115196設計總結 1422277參考文獻 152596附錄 16《現代通信技術》課程設計PAGEPAGE201引言照明工具是人們日常生活、工作以及學習中必不可少工具之一。隨著人民生活水平的不斷提高,人們對工作和生活環境的要求越來越高,同時對照明系統的要求也越來越高。照明領域的能源消耗在總的能源消耗中占了相當大的比例,節約能源和提高照明質量是當務之急。照明用電作為電力消耗的重要部分,已經占到了電力消耗的10%左右,并且隨著我國國民經濟的迅猛發展和人民生活水平的不斷提高,照明用電還將不斷增加。傳統照明技術受到了強烈沖擊。一方面,由于信息技術和計算機的發展對照明技術的變化提供了技術支撐;另一方面,由于能源的緊缺,國家對照明節能越來越重視,新型的照明技術得以迅速發展,以滿足使用者節約能源、舒適性、方便性的要求。μC/OS-II是一種基于優先級的搶占式多任務實時操作系統,包含了實時內核、任務管理、時間管理、任務間通信同步(信號量,郵箱,消息隊列)和內存管理等功能。它可以使各個任務獨立工作,互不干涉,很容易實現準時而且無誤執行,使實時應用程序的設計和擴展變得容易,使應用程序的設計過程大為減化。μC/OS-II是一個完整的、可移植、可固化、可裁剪的搶占式實時多任務內核。μC/OS-II已經在世界范圍內得到廣泛應用,包括很多領域,如手機、路由器、集線器、不間斷電源、飛行器、醫療設備及工業控制上。實際上,μC/OS-II已經通過了非常嚴格的測試,并且得到了美國航空管理局(FederalAviationAdministration)的認證,可以用在飛行器上。這說明μC/OS-II是穩定可靠的,可用于與人性命攸關的安全緊要(safetycritical)系統。除此以外,μC/OS-II的鮮明特點就是源碼公開,也便于移植和維護。多任務系統中,內核負責管理各個任務,或者說為每個任務分配CPU時間,并且負責任務之間的通訊。內核提供的基本服務是任務切換。μC/OS-II可以管理多達64個任務。由于它的作者占用和保留了8個任務,所以留給用戶應用程序最多可有56個任務。賦予各個任務的優先級必須是不相同的。這意味著μC/OS-II不支持時間片輪轉調度法(round-robinscheduling)。μC/OS-II為每個任務設置獨立的堆??臻g,可以快速實現任務切換。μC/OS-II近似地每時每刻總是讓優先級最高的就緒任務處于運行狀態,為了保證這一點,它在調用系統API函數、中斷結束、定時中斷結束時總是執行調度算法,μC/OS-II通過事先計算好數據簡化了運算量,通過精心設計就緒表結構使得延時可預知。1.1課程設計目的基于對用戶照明需求以及方便程度的調查,建立了“智能照明燈”模型.此款“智能燈”可以根據光強改變自己的運行狀態,為人們的生活提供方便。本文簡要介紹了以實時操作系統μC/OS-II為基礎的智能燈的硬件設計方案,詳細介紹了其軟件的實現過程,并給出了主函數源代碼,最后介紹了本智能照明系統的優勢所在。1.2本論文章節安排針對本論文《基于μC/OSⅡ的照明系統設計》,本文章節安排為:第一章介紹μC/OSⅡ系統和課程設計目的。第二章主要介紹照明系統的總體方案設計。第三章主要介紹照明系統的硬件部分設計。第四章是本次論文的重點,介紹照明系統兩個任務的軟件部分設計。第五、六章為系統調試以及個人對本次課程設計的感想。最后是本論文的參考文獻和附錄代碼。2總體方案與設計2.1任務分析本次設計基于MINISTM32F103開發板,通過移植μC/OSⅡ操作系統,在該系統上主要建立兩個任務,第一個任務是利用光敏傳感器所感應到的光照強度,通過ADC模塊進行模數轉換,在LCD顯示屏上顯示出來,光強越大電壓越小,同時設定為根據光照強度變化的電壓條件小于2v時利用蜂鳴器進行報警并使LED紅燈長亮;任務二是通過DS18B20溫度傳感器感應溫度變化,在溫度達到30攝氏度的時候報警使LED綠燈閃爍,這兩個任務互相獨立,最終實現基于μC/OSⅡ的照明系統設計。2.2方案設計2.2.1硬件設計如圖2.1為照明系統硬件部分的結構設計框圖。MINISTM32MINISTM32光敏傳感器μC/OS光敏傳感器μC/OSⅡ操作系統蜂鳴器DS18B20溫度傳感器ADC轉換模塊DS18B20溫度傳感器ADC轉換模塊圖2.1系統設計結構圖開始2.2.2軟件設計開始MINISTM32開發板系統初始化MINISTM32開發板系統初始化μC/OSⅡμC/OSⅡ操作系統任務一任務一任務二任務二DS18B20測溫度光敏測光強DS18B20測溫度光敏測光強模數轉換模數轉換溫度>30攝氏度?溫度>30攝氏度?電壓值<2v?電壓值<2v?是是LED1閃爍蜂鳴器報警LED0長亮LED1閃爍蜂鳴器報警LED0長亮結束結束圖2.2系統運行流程圖如圖2.2為系統整體運行的流程圖。3系統硬件設計3.1光敏傳感器模塊光敏傳感器內裝有一個高精度的光電管,光電管內有一塊由”針式二管”組成的小平板,當向光電管兩端施加一個反向的固定壓時,任何光了對它的沖擊都將導致其釋放出電子,結果是,當光照強度越高,光電管的電流也就越大,電流通過一個電阻時,電阻兩端的電壓被轉換成可被采集器的數模轉換器接受的0-3.3V電壓,然后采集以適當的形式把結果保存下來簡單的說,光敏傳感器就是利用光敏電阻受光線強度影響而阻值發生變化的原理向機器人主機發送光線強度的模擬信號。光敏電阻器又叫光感電阻,其工作原理是基于內光電效應。光敏電阻是利用半導體的光電效應制成的一種電阻值隨入射光的強弱而改變的電阻器;入射光強,電阻減小,入射光弱,電阻增大。光敏電阻器一般用于光的測量、光的控制和光電轉換(將光的變化轉換為電的變化)。它是基于半導體光電效應工作的。圖3.1光敏傳感器模塊光敏傳感器原理圖如圖3.1。光敏電阻無極性,純粹是一個電阻元件。使用時可以加直流電壓,也可以加交流電壓。光敏電阻的工作原理:光照時,電阻很??;無光照時,電阻很大。光照越強,電阻越小;光照停止,電阻又恢復原值。光譜范圍:從紫外線區到紅外線區。優點:靈敏度高,體積小,性能穩定,價格較低。光敏電阻不受光照時的電阻稱為暗電阻,此時流過的電流稱為暗電流。在受到光照時的電阻稱為亮電阻,此時電流稱為亮電流。暗電阻越大越好,亮電阻越小越好。3.2蜂鳴器模塊蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。在該設計中主要用到的是有源蜂鳴器,這里的“源”不是指電源,而是指震蕩源。也就是說,有源蜂鳴器內部帶震蕩源,所以只要通電就會叫而無源內部不帶震蕩源,所以如果用直流信號無法令其鳴叫。必須用2K-5K的方波去驅動它有源蜂鳴器往往比無源的貴,就是因為里面多個震蕩電路。圖3.2有源蜂鳴器原理圖如圖3.2有源蜂鳴器原理圖所示,一般驅動蜂鳴器的方法有兩種:一種是PWM輸出口直接驅動,另一種是利用I/O定時翻轉,電平產生的驅動波形對蜂鳴器進行驅動。通常為了增加驅動能力使蜂鳴器響聲更大,可加三極管驅動。蜂鳴器的實物圖如圖3.3所示,控制蜂鳴器的端口為PA12引腳,當PA12引腳輸入低電平時,蜂鳴器會鳴叫。由于蜂鳴器的工作電流一般比較大,以致于MCU的I/O是無法直接驅動的,所以要利用放大電路來驅動,其中的三極管Q1(8050)就是用來放大電流以驅動蜂鳴器的。圖3.3有源蜂鳴器實物圖3.3LCD顯示屏模塊ALIENTEKMiniSTM32開發板載有目前比較通用的液晶顯示模塊接口,還有其比較有特色的兼容性接口,不僅支持ALIENTEK各種尺寸(2.4、2.8、3.5、4.3、7寸等)的TFTLCD,還支持OLED顯示器。同時,該接口支持電阻觸摸屏以及電容觸摸屏等不同類型的觸摸屏接口,其原理圖如圖3.4所示。TFT_LCD是一個通用的液晶模塊接口。OLED是一個給OLED顯示模塊供電的接口,它和TFT_LCD拼接在一起。當使用TFTLCD時,我們接到TFT_LCD上(靠右插)就可以了,而當我們使用ALIENTEK的OLED模塊時,則接OLED排針做電源,同時會連接到TFT_LCD上(靠左插)的部分管腳,從而實現OLED與MCU的連接。ALIENTEKMiniSTM32的LCD接口兼容ALIENTEK各種尺寸的TFTLCD模塊,包括:2.4寸(320*240,電阻屏)、2.8寸(320*240,電阻屏)、3.5寸(480*320,電阻屏)、4.3寸(800*480,電容屏)、7寸(800*480,電容屏)等,同時還兼容ALIENTEK的0.96寸OLED模塊。彩色LCD顯示器:對于筆記本電腦或者桌面型的LCD顯示器需要采用的更加復雜的彩色顯示器而言,還要具備專門處理彩色顯示的色彩過濾層。通常,在彩色LCD面板中,每一個像素都是由三個液晶單元格構成,其中每一個單元格前面都分別有紅色,綠色,或藍色的過濾器。這樣,通過不同單元格的光線就可以在屏幕上顯示出不同的顏色。圖3.4LCD顯示模塊LCD克服了CRT體積龐大、耗電和閃爍的缺點,但也同時帶來了造價過高、視角不廣以及彩色顯示不理想等問題。CRT顯示可選擇一系列分辨率,而且能按屏幕要求加以調整,但LCD屏只含有固定數量的液晶單元,只能在全屏幕使用一種分辨率顯示(每個單元就是一個像素)。為了創造更優質畫面構造,新技術采用了用獨有TFT型Active素子進行驅動。大家都知道,異常復雜的液晶顯示屏幕中最重要的組成部分除了液晶之外,就要數直接關系到液晶顯示亮度的背光屏,以及負責產生顏色的色濾光鏡。在每一個液晶像素上加裝上了Active素子來進行點對點控制,使得顯示屏幕與全統的CRT顯示屏相比有天壤之別,這種控制模式在顯示的精度上,會比以往的控制方式高得多,所以就在CRT顯示屏會上出現圖像的品質不良,色滲以及抖動非常厲害的現象,但在加入了新技術的LCD顯示屏上觀看時其畫面品質卻是相當賞心悅目的。隨著技術的日新月異,LCD技術也在不斷發展進步。目前各大LCD顯示器生產商紛紛加大對LCD的研發費用,力求突破LCD的技術瓶頸,進一步加快LCD顯示器的產業化進程、降低生產成本,實現用戶可以接受的價格水平。3.4DS18B20溫度傳感器模塊溫度傳感器是利用一些金屬、半導體等材料與溫度有關的特性而制成。這些特性包括熱膨脹、電阻、電容、磁性、熱電勢、熱噪音、彈性及光學特性等[4]。DS18B20數字溫度傳感器接線方便,封裝成后可應用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等。主要根據應用場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環測溫,鍋爐測溫,機房測溫,農業大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用各種狹小空間設備數字測溫和控制領域。DS18B20溫度傳感器電路如圖3.5所示。圖3.5DS18B20溫度感應器電路圖4系統軟件設計4.1μC/OSⅡ操作系統μC/OS-II是一種基于優先級的搶占式多任務實時操作系統,包含了實時內核、任務管理、時間管理、任務間通信同步(信號量,郵箱,消息隊列)和內存管理等功能。它可以使各個任務獨立工作,互不干涉,很容易實現準時而且無誤執行,使實時應用程序的設計和擴展變得容易,使應用程序的設計過程大為減化。μC/OS-II是一個完整的、可移植、可固化、可裁剪的搶占式實時多任務內核。μC/OS-II絕大部分的代碼是用ANSII的C語言編寫的,包含一小部分匯編代碼,使之可供不同架構的微處理器。實際上,μC/OS-II已經通過了非常嚴格的測試,并且得到了美國航空管理局(FederalAviationAdministration)的認證。μC/OS-II的鮮明特點就是源碼公開,便于移植和維護。μC/OS-II可以大致分成核心、任務處理、時間處理、任務同步與通信等4個部分。1)核心部分(OSCore.c)是操作系統的處理核心,包括操作系統初始化、操作系統運行、中斷進出的前導、時鐘節拍、任務調度、事件處理等多部分。能夠維持系統基本工作的部分都在這里。2)任務處理部分(OSTask.c)任務處理部分中的內容都是與任務的操作密切相關的。包括任務的建立、刪除、掛起、恢復等等。因為μC/OS-II是以任務為基本單位調度的,所以這部分內容也相當重要。3)時鐘部分(OSTime.c)μC/OS-II中的最小時鐘單位是timetick(時鐘節拍)。任務延時等操作是在這里完成的。4)任務同步和通信部分為事件處理部分,包括信號量、郵箱、郵箱隊列、事件標志等部分;主要用于任務間的互相聯系和對臨界資源的訪問。本實驗的軟件部分設計嚴格遵守了μC/OSⅡ操作系統的設計原則。4.2軟件任務設計任務一:光敏傳感器所感應到的光照強度,通過ADC模塊進行模數轉換,在LCD顯示屏上顯示出來,光強越大電壓越小,同時設定為根據光照強度變化的電壓條件小于2v時利用蜂鳴器進行報警并使LED0紅燈長亮。任務一流程圖如圖4.1所示。圖4.1任務一流程圖任務二:DS18B20溫度傳感器感應溫度變化,在溫度達到30攝氏度的時候報警使LED1綠燈閃爍。任務二流程圖如圖4.2所示。圖4.2任務二流程圖 5調試結果及性能分析5.1調試過程將硬件根據電路原理圖正確連接,光敏傳感器的AO端口連接PA0,正極接5v,負極接GND;蜂鳴器的IO端口接PB8,正極接3.3v,負極接GND;DS18B20溫度傳感器的IO口接PC1,正極接5v,負極接GND;分別進行兩個任務,調試結果如圖5.1、5.2所示。圖5.1光線強度顯示顯示圖5.2溫度測試顯示6設計總結在這次實驗的過程中,我通過查閱大量有關資料,與老師交流經驗和自學,并向老師請教等方式,使自己學到了不少知識,也經歷了不少艱辛,但收獲同樣巨大。在整個實踐學習中,我懂得了許多東西,也培養了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習、工作、生活有非常重要的影響。這次的課程設計讓我真正體會到,嵌入式系統與我們的生活息息相關,不僅了解了μC/OSⅡ操作系統,光敏傳感器,DS18B20溫度傳感器以及所用到的ADC等模塊的結構與功能,而且對嵌入式設計產生了更濃厚的興趣。每次實驗都是一次挑戰。完成這次試驗后,我覺得也是完成了對自己的一次挑戰。我要感謝我的搭檔在課程設計的過程中的幫助和鼓勵,以及老師耐心的指導,不怕麻煩,耐心的幫助我解決問題。這次實驗設計讓我認識到了自己的不足之處,要學習的東西還有很多,有時粗心就會犯下眼高手低的毛病。通過這次實驗設計,讓我懂得了學習是一個長期積累的過程,在以后的工作、生活中都應該不斷的學習,努力提高自己的知識和綜合素質。這次實驗讓我受益匪淺,希望在下學期的畢業設計中我能做得更好。參考文獻[1]唐小峰.新型景觀照明控制系統設計[D].西安電子科技大學,2011[2]李西,趙曉軍,陳雷,等.嵌入式與物聯網技術在溫室監測系統中的應用[J].自動化技術與應用,2013,32(1):25-29.[3]王江紅,胡湘娟,陽泳.基于STM32的溫濕度監控系統設計[J].科技創新與應用,2016(4):23-23.[4]李波.基于UCOS-Ⅱ嵌入式系統項目的開發[J].電子制作,2013(7):81-81.[5]陳果,馮靜.ucos系統及其消息隊列詳析[J].電子元器件應用,2011(3):38-42.附錄MAIN主函數代碼#include"led.h"#include"delay.h"#include"sys.h"#include"includes.h"#include"usart.h"#include"lcd.h"#include"ds18b20.h"#include"beep.h"#include"usart.h"#include"hc05.h"#include"usart2.h" #include"string.h" #include"key.h"#include"adc.h"voidstart_task(void*pdata); #definevibrate_TASK_PRIO 5#definevibrate_STK_SIZE 64OS_STKvibrate_TASK_STK[vibrate_STK_SIZE];voidvibrate_task(void*pdata);#definetemperature_TASK_PRIO 4#definetemperature_STK_SIZE 64OS_STKtemperature_TASK_STK[temperature_STK_SIZE];voidtemperature_task(void*pdata);intmain(void){ delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); OSInit(); OSTaskCreate(start_task,(void*)0,(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO); OSStart(); }voidstart_task(void*pdata){OS_CPU_SRcpu_sr=0; pdata=pdata; OS_ENTER_CRITICAL(); OSTaskCreate(vibrate_task,(void*)0,(OS_STK*)&vibrate_TASK_STK[vibrate_STK_SIZE-1],vibrate_TASK_PRIO); OSTaskCreate(temperature_task,(void*)0,(OS_STK*)&temperature_TASK_STK[temperature_STK_SIZE-1],temperature_TASK_PRIO); OSTaskSuspend(START_TASK_PRIO); OS_EXIT_CRITICAL(); }voidvibrate_task(void*pdata) { u16adcx; floattemp; delay_init(); uart_init(9600); LED_Init(); LCD_Init(); BEEP_Init(); Adc_Init(); POINT_COLOR=RED; LCD_ShowString(60,50,200,16,16,"MiniSTM32"); LCD_ShowString(60,70,200,16,16,"ADCTEST"); LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(60,110,200,16,16,"2016/9/22"); POINT_COLOR=BLUE;//éè??×?ì??aà?é? LCD_ShowString(60,130,200,16,16,"ADC_CH1_VAL:"); LCD_ShowString(60,150,200,16,16,"ADC_CH1_VOL:0.000V"

溫馨提示

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

評論

0/150

提交評論