數(shù)字時鐘的嵌入式系統(tǒng)的設(shè)計_第1頁
數(shù)字時鐘的嵌入式系統(tǒng)的設(shè)計_第2頁
數(shù)字時鐘的嵌入式系統(tǒng)的設(shè)計_第3頁
數(shù)字時鐘的嵌入式系統(tǒng)的設(shè)計_第4頁
數(shù)字時鐘的嵌入式系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于嵌入式操作系統(tǒng)的數(shù)字電子鐘系統(tǒng)設(shè)計一嵌入式背景介紹隨著信息化、智能化、網(wǎng)絡(luò)化的發(fā)展以及計算機技術(shù)的發(fā)展,嵌入式技術(shù)也獲得了廣闊的發(fā)展空間,嵌入式技術(shù)目前已成為通信和消費類產(chǎn)品的共同發(fā)展方向。嵌入式技術(shù)的應(yīng)用到處可見,應(yīng)用十分廣泛。如家庭中的數(shù)字電視、機頂盒、DVD、超級VCD智能手機等;辦公室中的復(fù)印機、打印機、掃描儀、鍵盤燈;手持設(shè)備也用到了嵌入式技術(shù),包括MP3、GPS手機、數(shù)碼相機、數(shù)碼攝像機等;汽車電子產(chǎn)品:電子地圖、導(dǎo)航、車載GPS等。其他領(lǐng)域,如通信、機器人等都應(yīng)用到了嵌入式技術(shù),由此可以看出,嵌入式系統(tǒng)的發(fā)展已日趨成熟了。嵌入式系統(tǒng)被定義為:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ)、

2、軟件硬件可剪裁、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)是現(xiàn)代多學科互相融合的產(chǎn)物,嵌入式系統(tǒng)無多余軟件,并且以固態(tài)化出現(xiàn),硬件亦無多余存儲器,有可靠性高、成本低、體積小、功耗少等特點。嵌入式系統(tǒng)又是知識密集,投資規(guī)模大,產(chǎn)品更新?lián)Q代快,且具有不斷創(chuàng)新特征、不斷發(fā)展的系統(tǒng)。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件和嵌入式軟件系統(tǒng)組成,它是集軟硬件于一體的可獨立工作的“器件”。嵌入式處理器主要由一個單片機或微控制器組成。而這些嵌入式微處理器目前多是8位、16位和32位的,與64位的高性能處理器相比,具有很強的經(jīng)濟性。相關(guān)支撐硬件包括顯示卡、存儲介質(zhì)、通訊

3、設(shè)備、IC卡或信用卡的讀取設(shè)備等。嵌入式系統(tǒng)有別于一般的計算機處理系統(tǒng),它不具備像硬盤那樣大容量的存儲介質(zhì),而大多使用閃存作為存儲介質(zhì)。嵌入式軟件包括與硬件相關(guān)的底層軟件、操作系統(tǒng)、圖形界面、通訊協(xié)議、數(shù)據(jù)庫系統(tǒng)等、標準化瀏覽器和應(yīng)用軟件等。隨著計算機技術(shù)、信息技術(shù)和網(wǎng)絡(luò)技術(shù)以及其他技術(shù)的發(fā)展,嵌入式系統(tǒng)將向著更加小、更快速、功耗更低以及互聯(lián)網(wǎng)的方向發(fā)展。本系統(tǒng)的功能是可調(diào)數(shù)字時鐘,LED顯示時間,通過鍵盤和觸摸屏均可以校對時鐘。通過對本課題的設(shè)計達到如下目的:1.熟悉ARM芯片cortex-m3定時/計數(shù)器,中斷的應(yīng)用。 2.掌握給予嵌入式操作系統(tǒng)us/os的編程方法。 3.熟悉時鐘時,分,

4、秒計時方法,掌握編程技巧。4.掌握鍵盤的基本工作原理,鍵的識別,鍵抖動和重鍵問題的解決,鍵盤工作方法和鍵盤程序的編程。5.掌握七段碼LED的結(jié)構(gòu),七段碼LED的工作方式和顯示程序的編程。二軟硬件的設(shè)計1.設(shè)計要求利用cortex-m3,uc/os,七段碼LED,按鍵及常用外圍器件,設(shè)計一個基于嵌入式操作系統(tǒng)的數(shù)字電子鐘系統(tǒng),具體要求如下:(1).設(shè)計基于嵌入式操作系統(tǒng)的數(shù)字電子鐘系統(tǒng)的硬件框圖。(2).設(shè)計定時程序。(3).在LED上顯示時間,通過按鍵切換,分別顯示時,分,秒,設(shè)計顯示程序。(4).可用鍵盤進行校對時間,設(shè)計鍵盤程序。2.硬件環(huán)境概述嵌入式系統(tǒng)主要由嵌入式微處理器和操作系統(tǒng)組成

5、。硬件主要包括:微處理器,ROM,DRAM,人機交互接口,A/D、D/A轉(zhuǎn)換電路,觸摸屏等。嵌入式系統(tǒng)的核心部件是各種類型的嵌入式處理器,嵌入式開發(fā)硬件平臺的選擇主要是嵌入式處理器的選擇。在一個系統(tǒng)中使用什么樣的嵌入式處理器內(nèi)核主要取決于應(yīng)用的領(lǐng)域、用戶的需求、成本、開發(fā)的難易程度等因素。確定了使用哪種嵌入式處理器內(nèi)核以后,接下來就是綜合考慮系統(tǒng)外圍設(shè)備的需求情況一選擇一款合適的處理器。本系統(tǒng)采用基于ARM的S3C44B0X的微處理器,通過系統(tǒng)總線將CPU、電源管理模塊、存儲器、控制器、LCD控制器、中斷控制器連接在一起,通過外設(shè)總線和A/D轉(zhuǎn)換器、看門狗定時器、通過I/O控制器、PWM定時器

6、等連接在一起。S3C44B0X的160個引腳中,71個引腳可以通過編程的方法定義多功能輸入/輸出引腳。I/O端口有兩種編制方式,鍵盤模塊輸入數(shù)字型數(shù)據(jù)或選擇控制設(shè)備的操作模式,LCD通過數(shù)據(jù)總線寄存器及使能信號與處理器連接實現(xiàn)觸摸屏驅(qū)動X、Y通道連接。硬件設(shè)計原理圖如下:STM32原理圖如下圖:3.軟件環(huán)境概述嵌入式系統(tǒng)的軟件一般由嵌入式操作系統(tǒng)和應(yīng)用軟件組成,編譯過程是一起進行的。而操作 系統(tǒng)的軟件又與硬件緊密相關(guān),必須與具體應(yīng)用相結(jié)合才能發(fā)揮其優(yōu)勢,即必須結(jié)合實際系 統(tǒng)的需求進行合理的裁剪。所以,如果能夠建立相對通用的軟硬件基礎(chǔ),然后在其上開發(fā)出 需要的系統(tǒng),是一種比較好的發(fā)展模式。從某種

7、程度上來說,嵌入式系統(tǒng)是指能夠運行操作系統(tǒng)的軟硬件綜合體。就實時嵌入式操作系統(tǒng)(operation system)而言,它可大致分為商用嵌入式OS與 源碼開放的嵌入式OS,前者如WindRiver公司的Vxworks、ISI公司的pSOS和Q uantum公司的QNX等,后者如免費的嵌入式Linux,以及本文中所用到的uC/OS 。盡管這些嵌入式RTOS形式多樣,但一般都具有以下特點:1)可裁剪的微內(nèi)核結(jié)構(gòu),高效的多任務(wù)優(yōu)先級管理,s級的中斷處理(Windows下 的中斷最快是55s/次),更加有利于工業(yè)控制效率的提高;2)支持多處理器并行處理及任務(wù)間通信(這一點對于電力系統(tǒng)并行計算有可借鑒之

8、處);3)具有共享內(nèi)存,有利于實時數(shù)據(jù)庫的實現(xiàn);4)靈活的引導(dǎo)方式(支持從ROMflash本地盤網(wǎng)絡(luò)引導(dǎo)),引導(dǎo)操作系統(tǒng)事件 更短,甚至可以一上電在秒級的時間內(nèi)就跳轉(zhuǎn)至用戶程序處等等。從這些特點可看出,在工業(yè)控制等領(lǐng)域以嵌入式RTOS作為軟件平臺將比Windows、UNI X、OS2等商用操作系統(tǒng)更有其特殊的優(yōu)勢。例如東北電網(wǎng)的SCADA與EMS中就采 用了VXM實時操作系統(tǒng)。目前國際上已有幾百個成熟的實時嵌入式操作系統(tǒng),而我國在這方面起步較晚。這里將比較 兩種實時操作系統(tǒng)以說明選擇uC/OS-的原因。uCLinux是專為無MMU微處理器打造的嵌入式Linux操作系統(tǒng)。它是由Linux2. 0

9、內(nèi)核發(fā)展來的,內(nèi)核代碼小于512 kb。uC/OS-內(nèi)核編譯過后大約為61 0kb。uC/OS-內(nèi)核是針對實時系統(tǒng)的要求設(shè)計實現(xiàn)的,可以滿足較高 的實時性要求。而uCLinux僅針對嵌入式處理器進行了改良,實時性不如uC/OS-優(yōu)越。uCLinux繼承了Linux內(nèi)核的特點,支持文件系統(tǒng)和網(wǎng)絡(luò)能力,并 提供了一些API接口函數(shù),而uC/OS-只是一個實時內(nèi)核,要建立一個 實用的系統(tǒng),還需要進行擴展。由于該系統(tǒng)設(shè)計對實時性要求很高,所以本文選擇uC/OS-內(nèi)核進行移植。嵌入式系統(tǒng)中,軟件和硬件緊密配合,協(xié)調(diào)工作,共同完成系統(tǒng)預(yù)定的功能。根據(jù)OSI的七層模型可以確定鏈路層和物理層有硬件實現(xiàn),其他各

10、層由軟件實現(xiàn)。(三)系統(tǒng)的實現(xiàn) 由于嵌入式應(yīng)用軟件是通過并發(fā)的任務(wù)來運作的,應(yīng)用軟件開發(fā)的系統(tǒng)設(shè)計將系統(tǒng)劃分為多個并發(fā)執(zhí)行的任務(wù),通過相互間通信建立聯(lián)系。根據(jù)需求劃分任務(wù)是比較重要的一步,通用部分可以劃分為各個功能子模塊。本文中設(shè)計的保護測控系統(tǒng),劃分成數(shù)據(jù)采集、液晶操作、鍵盤處理、循環(huán)計算程序、保護 量計算、繼電器出口等任務(wù),每一個任務(wù)根據(jù)相互之間的關(guān)系及數(shù)據(jù)流設(shè)置優(yōu)先級以及執(zhí)行 頻率,這些設(shè) 置好之后都由內(nèi)核實現(xiàn)調(diào)度和任務(wù)之間的通信。同時還要根據(jù)實際情況設(shè)置中斷的優(yōu)先級。在以uC/OS-為操作系統(tǒng)的項目中,系統(tǒng) 可能要處理各種不同的中斷請求,如果某個中斷處理程序需要調(diào)用uC/OS-的各種P

11、ost函數(shù)向任務(wù)發(fā)出消息,那么uC/OS-中的中斷服務(wù)程序的寫法是:1)保存全部CPU寄存器;2)調(diào)用OSIntEnter或OSIntNesting直接加1;3)執(zhí)行用戶代碼做中斷服務(wù);4)調(diào)用OSIntExit;5)恢復(fù)所有CPU寄存器;6)執(zhí)行中斷返回指令。這種方式實際上是將這個中斷處理加入了任務(wù)調(diào)度系統(tǒng),也就是說這個中斷可以引起任務(wù)的 切換,也叫“標準中斷”。如果在中斷處理中沒有調(diào)用各種Post函數(shù)的話,則可以用原 來沒有操作系統(tǒng)時的寫法:1)保存中斷處理程序需要用到的CPU寄存器;2)執(zhí)行中斷處理;3)恢復(fù)保存了的CPU寄存器;4)執(zhí)行中斷返回指令。按照這種方法定義的中斷永遠不會引起任

12、務(wù)切換,稱為“快中斷”。用戶應(yīng)用程序API函數(shù)驅(qū)動程序(與硬件中的設(shè)備對應(yīng))硬件(LCD、USB、FLASH和網(wǎng)卡等)基于uC/OS-II的RTOS內(nèi)核圖2:系統(tǒng)結(jié)構(gòu)主要軟件設(shè)計如下:1. 主程序 主程序的主要功能是進行定時器/計數(shù)器初始化編程,然后通過反復(fù)調(diào)用子程序的方法,等待定時中斷的到來。流程框圖如圖3-1所示。主程序如下:#include "stm32f10x.h"#include "SysParaSet.h"#include "KeyScan.h"extern u8 KeySta,KeyChanFlag;extern u8

13、TimeCountA,TimeCountB,Time3Flag;extern u8 SecData,MinuData,SecDataPart2,MinuDataPart2;u8 CountA,KeyCountA;u8 LEDDispA,LEDDispB,LEDDispC,LEDDispD;int main(void)int a=0,b=0,c=0,d=0; NVIC_Configuration(); /初始化 GPIOConfiguration(); D3Off; D4Off; D5Off; D6Off; D7Off; D8Off;KeyCountA = 0;Time3Flag = 0;for

14、(CountA=0;CountA<5;CountA+)D3On;D4On;D5On;D6On;D7On;D8On;delay_ms(1000);D3Off;D4Off;D5Off;D6Off;D7Off;D8Off;delay_ms(1000);EXTI9_5_Config();EXTI15_10_Config();TIMER3_Init();ADInit();while (1) /主循環(huán)KeyScan();if(KeyChanFlag = 0x01)switch (KeySta)case 0x07:KeyCountA+;if(KeyCountA > 0x04)KeyCountA

15、= 0;while(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_4) = 0);break;default:break;KeyChanFlag = 0x00; LEDDispA = 0; /LEDA顯示0LEDDispB = 0; /LEDB顯示0LEDDispC = 0; /LEDC顯示0LEDDispD = 0; /LEDD顯示0 for(d=0;d<10;d+) /在for循環(huán)下實現(xiàn)計數(shù),d為秒 LEDDispA=a;/LEDA顯示a所對應(yīng)的值 LEDDispB=b;/LEDB顯示b所對應(yīng)的值 LEDDispC=c;/LEDC顯示c所對應(yīng)的值 LED

16、DispD=d;/LEDD顯示d所對應(yīng)的值 delay_ms(50);/延時 /*實現(xiàn)60進制技術(shù),即為秒的設(shè)計*/if(d=9) /當d等于9時,進位,即c=c+1 c=c+1; if(c=6)/當c=6時,說明秒的部分已完成0-59的計數(shù),先將秒的部分清零,再進位 c=0; d=0; b=b+1;/分的部分進一位 /*實現(xiàn)60進制技術(shù),即為分的設(shè)計*/ if(b=10)/當b=10時,b已經(jīng)完成0-9的計數(shù),也是先清零,再進位 c=0; d=0; b=0; a=a+1; if(a=6)/當a=6時,說明分的部分已完成0-59的計數(shù),全部清零 a=0; b=0; c=0; d=0; 2. 定

17、時中斷程序 采用中斷方式進行溢出次數(shù)累計,計滿20次即到秒計時。從秒到分,從分到時的計時,可通過數(shù)值比較實現(xiàn)。流程框圖如圖3-2所示。3. 設(shè)計鍵盤子程序(KEY) 采用獨立按鍵掃描法,設(shè)計鍵盤程序。用軟件方法解決按鍵抖動問題。鍵盤程序框圖如圖3-3所示。三、結(jié)束語本系統(tǒng)中還有許多問題存在,由于我剛接觸嵌入式系統(tǒng),對其了解的不是很深,只是在老師原先給的數(shù)碼管動態(tài)顯示的那個程序的基礎(chǔ)上改的。我并沒有用外部中斷去實現(xiàn)計時器,而是在主程序中用C語言區(qū)實現(xiàn),在主程序中寫還是比較簡單的,只是一開始要想好設(shè)計思路。我的設(shè)計想法是整個計數(shù)在d的循環(huán)計數(shù)上實現(xiàn)的,所以整個分,秒的計數(shù)都是在for循環(huán)里實現(xiàn)的。要注意的是,在秒已經(jīng)完成0-59計數(shù)后是要先清零在進位,否則

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論