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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

13、ag;extern u8 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;Time

14、3Flag = 0;for(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 > 0x

15、04)KeyCountA = 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)下實(shí)現(xiàn)計(jì)數(shù),d為秒 LEDDispA=a;/LEDA顯示a所對(duì)應(yīng)的值 LEDDispB=b;/LEDB顯示b所對(duì)應(yīng)的值 LEDDispC=c;/LED

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論