



全文預覽已結(jié)束
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
湖北工業(yè)大學碩士學位論文 摘要 2 1 世紀的控制系統(tǒng)將是網(wǎng)絡與控制結(jié)合的系統(tǒng)。隨著計算機、通信、自動控 制、微電子等技術的發(fā)展,人們對工業(yè)生產(chǎn)的智能化提出越來越高的要求,遠程 監(jiān)控工業(yè)設備勢必將成為發(fā)展趨勢。隨著制造工藝的進步,嵌入式控制芯片的成 本越來越低,功能卻越來越強大,不僅解決了嵌入式微控制器與h l t e m e t 連接的技 術問題,同時也使得這種連接費用降低到工業(yè)控制完全可以接受的程度,這促使 了嵌入式網(wǎng)絡控制技術的出現(xiàn)。 本課題的研究工作是設計和實現(xiàn)網(wǎng)絡化嵌入式控制系統(tǒng)終端平臺。通過分析 現(xiàn)有的網(wǎng)絡化控制系統(tǒng)中的兩大架構(gòu)c s 模式和b s 模式,結(jié)合各自的優(yōu)缺點, 本文采用了嵌入式哪服務器甜a v aa p p l e t 相結(jié)合的系統(tǒng)架構(gòu),既可以發(fā)揮b s 模式的靈活便捷性,又可以達到c s 模式的專業(yè)性;在操作系統(tǒng)的選取上,考慮 到控制系統(tǒng)滿足實時性的要求,本文選取了u c o s 作為系統(tǒng)支撐,并移植到了 u p t e c hs 3 c 2 4 1 0 開發(fā)板上;為了實現(xiàn)終端平臺的網(wǎng)絡化功能,移植了u c 廠r c p 口 協(xié)議棧,開發(fā)了針對網(wǎng)絡控制器d m 9 0 0 0 a 的驅(qū)動程序,構(gòu)建了e a 2 文件系統(tǒng) 以及h 耵p 服務器。 本文以工業(yè)洗衣機為控制對象,分析了其功能模塊。并將工業(yè)洗衣機作為網(wǎng) 絡化嵌入式控制的實驗對象,以常用的變頻通訊、i o 控制以及模擬量的采集為客 戶端遠程監(jiān)控的目標。在嵌入式控制器上設計了相應的網(wǎng)絡s o c k e t 監(jiān)控以及洗衣 機控制的應用程序,利用j a v a a p p l e t 開發(fā)了客戶端友好的用戶界面以及控制網(wǎng)頁, 對工業(yè)洗衣機實現(xiàn)了基于i l l t e m e t 的遠程實時監(jiān)控,實現(xiàn)了在線的變頻調(diào)速、閥門 開關量的控制和洗滌倉溫度的監(jiān)控。 最后,對網(wǎng)絡化控制系統(tǒng)進行了總結(jié)展望。分析了網(wǎng)絡化控制系統(tǒng)作為控制 系統(tǒng)的一種所具有的傳統(tǒng)控制系統(tǒng)的特點,以及處于網(wǎng)絡環(huán)境中,所具有的新特 性,提出了進一步研究的問題及主要研究工作。 本系統(tǒng)為網(wǎng)絡化嵌入式控制系統(tǒng)的進一步研究提供了軟硬件上的支持。 關鍵詞:網(wǎng)絡控制系統(tǒng),a r m 9 ,u c o s 1 i ,u c 廠r c p i p ,工業(yè)洗衣機 湖北工業(yè)大學碩士學位論文 a b s t r a c t c o n t r o ls v s t e mi n2 1 c e n t m r yw o u l db ec o m b i n a t i o n0 fn e t 柚dc o n t r 0 1 a st h e d e v e l o p m e n to fc o m p u t e r c o m m u n i c a t i o n ,a u t o c o n t r o lm e t h o d ,a n dm i c r 0 e l e c t r o n i c , m o r ea n dm o r ei n t e l l i g e n tp e 渤硼a n c eh a sb e e nr e q u i r e di nt h ei n d u s t n rm a i l u f a c t u r e , a st h er e s u l tr e m o t em o n i t o ra i l dc o n t r o li n d u s t r yt e m l i n a t o rw o u l db et h ed e v e l o p m e n t t i d e w h i l et h e 伊e a tp r o g r e s so fm a n u f a c t u r et e c h l l j c s ,c o s to fe m b e d d e dc o n t r 0 1c h j p h a sb e e nl o w e ra u l dl o w e ra sw e na sg e tm o r ea n dm o f ep o w e r f u lf i l n c t i o n ,t h ep r o b l e m 0 fe m b e d d e dm i c r o c o n t r o l l e ra c c e s s i n gi n t e m e th a sb e e ns o l v e de a s i l y c o n s e q u e n t l y e m b e d d e dn e tc o n t i d lt e c m ch a se m e r g e d r e s e a r c ha n dd e s i g no fe m b e d d e dn e tc o n t r o ls y s t e mp l a t f 0 衄h a sb e e nt h ek e v w o r ki nm yp r o j e c t b ya i l a l y z i n gp r 0a n dc o no ft w oi m p o n a n tn e ta r c h i t e c t u r e ,n 鋤e l y c sm o d e l & i v sm o d e l ,i n t e 黟a t e ds y s t e ms t n l c t u r eo fe m b e d d e dh 1 1 甲w e bs e r y e r 強dj a v aa p p l e th a v eb e e na d o p t e d ,s ot h en e x i b i l i t ya n dc o n v e n i e n c ei nb sm o d e la s w e ua st h ep r o f e s s i o n a li n ( 、sm o d e lh a v eb e e nm a i n t a i l l e ds i m u l t a n e o u s l v a st h e a p p l i c a t i o nb a s e m e n t ,t h er e a l t i m es y s t e m ,n a m e l yu ( 、o s i i ,h a sb e e nt r a n s p l a n t e di n t o t h eu p t e c hs 3 c 2 4 1 0d e v e l o p m e n tb o a r do u to ft h er e a s o ni nr e a lt i m ep e 埔d m a n c e o fn e tc o n t r o ls v s t e m f o rt h er e a l 娩a t i o no fn e tw o r kf n n c t i o ni ne m b e d d e dc o n t r o n e r p l a t f 0 姍,u c ,r c p i pa n di sa p p e n d i xu ( 1 i ? w e bs e r v e rh a v eb e e nt r a i l s p 】a n t e di n o u c o s i i ,a n dt h es p e c i a ld r i v eo fn e tc o n t r o l l e rd m 9 0 0 0 ah a sb e e nd e s i g i l e dw h i l et h e i l es v s t e m 衄2h a sb e e nb u i l d t i a k i n gt h ei n d u s t r yw a s h i n gm a c h i n ea sm ec o n t r o lo 餅e c t ,w ea n 羽y z e di 擔 f i l n c t i o nm o d e l s a st h et r i a lo b j e c ti nn e t w o r ke m b e d d e dc o n t m ls y s t e m ,i t st l l r e e t y p i c a le i g e nv a l u e :i i l v e r t e rc o m m u n i c a t i o n ,i oc o n t r o la n da d cm o n i t o fh a v eb e e n t a k e na s t h ef e m o 把c o n t r 0 it a r 譬e ti nt 王l ec i i e n t h lt h ee m b e d d e dc o n t r o l i e l c o r r e s p o n d i n gp r o g i a mf o rn e ts o c k e tm o n i t o ra n dw a s h i n gm a c h i n ec o n t r o lh a sb e e n d e s i g n e d ,w h i l et h ec l i e n tf i e n d l yg u ia n dc o n t r o lw e bp a g eh a v eb e e nd e v e l o p e di i l j a v aa p p l e tt or c a l i z et h ew a s h i n gm a c h i n er e m o t er c a i t i m em o n i t o ra n dc o n t r o l ,s ot h e o nl i n ef r e q u e n c yc o n v e r s i o ns p e e dr e g u l a t i o n ,v a l v es w i t c h觚dw a s h i n gr o o m t e n l d e r a t u r es u e i l l a n c eh a v eb e e ne x e c u t e d a tl a s t ,c o n c l u s i o na n dp e r s p e c t i v eh a v eb e e nd e d u c e d a sak i n do fc o n t r o ls y s t e m , n e tc o n t r o ls y s t e mi n h e r i tt h ee n t i r et r a d i t i o n a lc h a r a c t e “s t i c ,h o w e v e r ,i ta l s o 擘曩i n e d n e ws p e c i a l i t vd u et oi t sn e we n v i r 6 n m e n t s o m ep r o b l e ma n dt h ek e yr e s e a r c hw o r k a l s oh a v eb e e ni n t r o d u c e d m yp r o i e c th a sb u i l tas o f t & h a r ds u p p o r tf o rf h r t h e rs t u d yo nt h en e t - w o r k e m b e d d e dc o n t r o ls v s t e m k e y w o r d s :n e tc o n t r 0 1s y s t e m ,a r m 9 ,u c 0 s - i l ,u c 廠r c p l p ,i n d u s t r yw a s h i n g m a c h i n e 湖咖二堂大謦 學位論文原創(chuàng)性聲明和使用授權說明 原創(chuàng)性聲明 本人鄭重聲明:所里交的學位論文,是本人在導師指導下,獨立進行研究工作所取 得的研究成果。除文中已經(jīng)標明引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng) 發(fā)表或撰寫過的研究成果。對本文的研究做出貢獻的個人和集體,均已在文中以明確方 式標明。本聲明的法律結(jié)果由本人承擔。 ,學位論文作者簽名:莎磁,日期:髫年 氣 ,r 帥山t 二 v ,一 xi可選配置2 mn o rn a s ha m 2 9 i 1 6 0 或4 mn o rf i a s ha m 2 9 l v 3 2 0 。 在從n o rf l 峪h 引導配置下,n a n df l 峪h 可選1 2 8 m 以上容量。 u p 1 e c h2 4 1 0 開發(fā)板設計了雙重引導配置,即可從n 柚df l a s h 引導也可以從 n o rf la s h 引導,只需改變跳線電阻的焊接位置。 2 由d m 9 0 0 嶇構(gòu)成的1 0 0 me t h e rn e t 網(wǎng)卡,i u 4 5 接口,支持雙絞線對翻轉(zhuǎn); 3 1 個u s bh o s t 接口和1 個u s bd e c e 接口: 4 2 個r s 2 3 2d b 9 串口接口; 5 1 個3 2 腳l c d 薄膜線插座和1 個8 腳觸摸屏插座。薄膜線插座可以直接連接博創(chuàng) 2 4 1 0 s 開發(fā)平臺配套的液晶屏和觸摸屏。另外提供一個4 0 腳的插座可以連接其 他型號的液晶屏和觸摸屏。 6 音頻采用u d a l 3 4 1 芯片,具有放音、錄音等功能。提供耳機、線路接口和板載 m i c : 7 2 5 寸i d e 硬盤接口和c f 卡( i d e 模式) 接口; 8 s d m m c 卡接口; 9 采用m c p 2 5 1 0 和t j a l 0 5 0 芯片構(gòu)成的c a n 總線接口; 1 0 板載2 個分壓精密電位器供a d c 實驗; 1 1 提供2 路p w m 輸出和d a 電路; 1 2 2 片i i c 存儲| 器a ,r 2 4 c 0 1 : 1 3 提供3 個4 0 腳擴展插座,引出所有總線信號和未占用資源。擴展插座上包括 地址、數(shù)據(jù)、控制等l d c a lb u s 全部信號外,還有t i m e r 、u a r t 2 、c 、s p i 、i i s 、 g p i o 、a d c 等空閑或可復用資源。用戶可以自行設計合適尺寸的p c b 插在2 4 1 0 開 發(fā)板上實現(xiàn)各種擴展功能。 1 4 開發(fā)板為d c 5 v 電源輸入,具備u ) o 產(chǎn)生3 3 v 和1 8 v 的電壓。板載紐扣電池 為r t c 供電。另具備r e s e t 、j t a g 、r t c 電路。 開發(fā)板的硬件構(gòu)成如圖3 3 所示。 1 9 湖北工業(yè)大學碩士學位論文 a d ( r s 2 3 2 磅;i j0卜 i “a r 工o 一0 a r 工l l ( d s 3 c 二4 l i : c p u c :力 ? 戳毫 囂 譬霉 :0 l 要d 笈斃游? - 睦t 卜i 銹羧;建 g p i o p u m k 多f l g 潞嗲遣j f l a s hd i s k 蔓蘭! 型墜! 愁線溺鬻鵜動 i i ( s p i h l s b u s bh o s t :奠 d m 9 o a e i o o 瓢鵜誓4 s 攘t l ie 毒括播縫 國蔓疆鉉赫壤 圖3 3u p t e c hs 3 c 2 4 1of 睫件構(gòu)成 3 1 2u p t e c hs 3 c 2 4 10 軟件平臺 軟件系統(tǒng)是硬件平臺的靈魂。作為網(wǎng)絡化嵌入式控制器運行的核心,嵌入式 軟件采用何種方式對控制器性能的發(fā)揮起到了至關重要的作用。過去由于受存儲 技術和微處理器處理速度等兇素的限制,控制器的嵌入式程序一般郁是一個人循 環(huán)加上若干個中斷服務程j 乎組成。這種編程方式在處理一般的j 通用中能夠勝任, 但是在面對多任務、多叻、議、復雜應用時顯然已經(jīng)不能滿足要求。隨著內(nèi)存容量 的迅速擴大以及價格的f 降和嵌入式微處理器的處理速度的提升,操作系統(tǒng)進入 到嵌入式系統(tǒng)中已經(jīng)成為可能并已經(jīng)得到了廣泛的應用。根據(jù)控制器的需求在控 制器上移植操作系統(tǒng)是必須的也是可行的。基于操作系統(tǒng)的控制器軟件整體設計 如圖3 4 所示。 2 0 湖北工業(yè)大學碩士學位論文 , 圖3 4 嵌入式軟件整體架構(gòu) 系統(tǒng)設計中由嵌入式實時操作系統(tǒng)統(tǒng)一管理和調(diào)度各個任務,在底層編寫好 硬件驅(qū)動程序如n a n dr a s h 驅(qū)動程序、網(wǎng)絡芯片驅(qū)動程序、串口驅(qū)動程序、d 驅(qū)動程序、s d 卡驅(qū)動程序等。對于文件操作和h l t e m e t 接入,事先編寫好文件系 統(tǒng)和t c p 】 p 協(xié)議棧,各個與文件相關的任務通過寫好的a p i 函數(shù)訪問n a j l dh a s h , 與網(wǎng)絡相關的任務通過寫好的。a p i 函數(shù)訪問t c p p 協(xié)議棧操作以太網(wǎng)接入 i n t e m e t 。對于一些簡單的任務可以通過寫好的a p i 函數(shù)直接訪問硬件完成操作, 而一些對時間要求嚴格的任務或者簡單的任務可以直接對硬件操作,完成操作。 1 系統(tǒng)引導程序設計 對于p c 的體系結(jié)構(gòu),人們熟悉的是p c 中的引導加載程序b i o s ( b a s i ch l p u t o u t p u ts y s t e m ,基本輸入輸出系統(tǒng),其本質(zhì)就是一段固件程序) 和位于硬盤的m b r ( m a s t e rb o o tr e c o r d ,主引導記錄) 中系統(tǒng)引導程序( 如u l 0 和g r u b 等) 一 起組成。b i o s 在完成硬件檢測和資源分配后,將硬盤m b r 中的引導程序讀到系 統(tǒng)的內(nèi)存中,然后將控制權交給引導程序。引導程序的主要任務就是將內(nèi)核映象 從硬盤讀到內(nèi)存中,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行,即開始啟動操作系統(tǒng)。 在嵌入式系統(tǒng)中,主要使用凡a s h 作為系統(tǒng)的存儲媒介,而很少使用磁盤,因 此整個系統(tǒng)的加載啟動任務就完全由引導程序( 也稱作b 0 0 t l o a d e r ) 來完成。例 如在一個基于a r m 核的嵌入式處理器中,系統(tǒng)在復位時從o x 0 處開始執(zhí)行,而在 這個地址處安排的通常就是系統(tǒng)的引導程序。通常+ ,在嵌入式系統(tǒng)中,引導用f l a s h 會被按順序分為如圖3 5 所示的幾個區(qū)域。 2 1 湖北工業(yè)大學碩士學位論文 從低地址到高地址方向 圖3 5 嵌入式系統(tǒng)的f l a s h 分區(qū) 一般來說,b o o tl d a d e r 就是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序,它 在系統(tǒng)復位時被運行。從字面上的意義理解,它主要包括兩個功能:裝載( 1 0 a d ) 和啟動( b o o t ) 。每種不同的c p u 體系結(jié)構(gòu)都有不同的b o o t l 0 a d e r l 3 8 】。有些 b o o t l o a d e r 也支持多種體系結(jié)構(gòu)的c p u ,例如u b 0 0 t 就同時支持a r m 體系結(jié) 構(gòu)和m i p s 體系結(jié)構(gòu)。除了依賴于c p u 的體系結(jié)構(gòu)外,b o o t l o a d e r 也實際上也依 賴于具體的嵌入式板級設備的配置。這也就說對于兩塊不同的嵌入式板而言,即 使它們是基于同一c p u 而構(gòu)建的,要想讓運行在一塊班子上的b o o tl 0 a d e r 程序 也能運行在另一塊板子上,通常也都要修改b 0 0 t l 0 a d e r 的源程序。 大多數(shù)b o o t l 0 a d e r 都分為第一階段( s t a g e l ) 和第二階段( s t a g e 2 ) 兩大部分。 依賴于處理器體系結(jié)構(gòu)和板級初始化的代碼,通常都放在s t a g e l 中,用匯編語言 實現(xiàn)。它包括以下步驟: 1 1 硬件設備初始化; 2 )為加載b 0 0 t l 0 a d e r 的s t a g e 2 準備內(nèi)存( 主要是s d r a m ) 空間; 3 ) 復制b 0 0 t l o a d e r 的s t a g e 2 到內(nèi)存空間中; 4 ) 設置好堆棧,跳轉(zhuǎn)到s t a g e 2 的入口電。 而s t a g e 2 則主要用c 語言來實現(xiàn),這樣可以實現(xiàn)更復雜的功能,而且代碼會 具有很好的可讀性和可移植性。 在u c 0 s 實時操作系統(tǒng)下,由于開發(fā)模式的不同,b 0 0 t l d a d e r 的功能也有些 差異,所以在u p t e c hs 3 c 2 4 1 0 1 下的b o o t l 0 a d e r 的設計是操作系統(tǒng)移植前必須 完成的工作。對于系統(tǒng)的引導程序,其設計流程如圖3 6 : 湖北工業(yè)大學碩士學位論文 系統(tǒng)程序入口 l 上 設置中斷向量表 上 設置時鐘控制寄存器 上 初始化s d r a m 上 系統(tǒng)堆棧初始化 上 初始化運行時域 上 跳轉(zhuǎn)到操作系統(tǒng)入口 圖3 6 系統(tǒng)引導流程 1 ) 系統(tǒng)程序入口 s 3 c 2 4 1 0 的o m 0 和o m l 兩個引腳用來配置啟動方式和b a i l k 0 的總線寬度。當 o m 【1 :0 】- o o 時從n a n d f l a s h 啟動,此時b a n l 【0 不能使用;當o m 【l :0 】- 0 l 時從b a n k o 啟動,并配置為1 6 b i t 寬度,也就是從n o r f l a s h 啟動。博創(chuàng)2 4 1 0 開發(fā)板上通過電 阻跳線來選擇啟動方式,在u p t e c hs 3 c 2 4 1 0 中只能夠從n 柚df l a s h 啟動。當 s 3 c 2 4 1 0 上電時,c p u 內(nèi)部的4 k b v t e s 的s r a m 映射到了n g c s o ,即o 】【o o 0 0 0 0 0 0 開 始的地址范圍內(nèi)。然后n a i l df l a s h 中前4 k b v t e s 的內(nèi)容自動拷貝到了s 刪中,c p u 從0 x 0 0 0 0 0 0 0 0 中取指時,實際上是從s 刪中取指令。由此可以看出,b o o t l o a d e r 的s t a g e l 編譯后的大小不能超過4 k b y t e s 。 勁設置中斷向量表 中斷向量表中指定了各異常中斷及其處理程序的對應關系。它通常存放在存 儲地址的低端。在a r m 體系中,異常中斷向量表的大小為3 2 字節(jié)。其中,每個 異常中斷占據(jù)4 個字節(jié)大小,保留了4 個字節(jié)空間。每個異常中斷對應的中斷向 量表中的4 個字節(jié)的空間中存放了一個跳轉(zhuǎn)指令或者一個向p c 寄存器中賦值的數(shù) 據(jù)訪問指令。通過這兩種指令,程序?qū)⑻D(zhuǎn)到相應的異常中斷處理程序執(zhí)行處。 各異常中斷同時發(fā)生,則按照一定的優(yōu)先級來執(zhí)行。a r m 要求中斷向量表必須放 湖北工業(yè)大學碩士學位論文 置在從0 開始,連續(xù)8 4 字節(jié)的空間內(nèi)。 3 ) 設置時鐘控制寄存器 s 3 c 2 4 1 0 所需要的時鐘信號包括c p u 的f c u 【、外設總線a h b 的f c l k 以及外設 總線a p b 的p c u 【,均由時鐘控制邏輯進行設置。在s 3 c 2 4 1 0 中有兩個鎖相環(huán)( p h a s e l o c k e dl o o p s ) ,一個負責f c l k 、h c l k 和p c u ( ,另一個負責u s b 模塊( 4 8 m i z ) 。 f c l k 時鐘信號主要用于內(nèi)核a r m 9 2 0 t ;h c k l 除了給內(nèi)核提供比f c u 王低的 時鐘信號外,還給存儲控制器、中斷控制器、l c d 控制器、d m a 以及u s b 主機模 塊提供時鐘頻率;p c u 廠貝0 主要用于外設總線,如:w d t 、s 、p w m 定時器、m m c 接口、a d c 、u a i 汀、g p i o 、r t c 以及s p i 。 s 3 c 2 4 1 0 所需要的三大時鐘信號由m p l lc o n t r o lr e 酉s t e r 和c 1 0 c kd i v i d e d c o n t r o lr e 酉s t e r 設置,前者決定了s 3 c 2 4 1 0 的穩(wěn)定時鐘周期,而后者則對f c l k 、 h c 螂p c l k 所占穩(wěn)定時鐘周期的比例進行設置。 盡管時鐘控制寄存器的設置比較復雜,但是對于u c o s 來說,只需要進行兩個 簡單的操作即可,代碼也非常簡單,其代碼如下: l d rr 0 ,= m p l 【c o n l d fr 1 ,= 0 x 0 0 0 a 1 0 3 l s t rr 1 ,】 l d rr u = c l k1 ) j v n l d rr 1 ,= 0 x 0 0 0 0 0 0 0 3 s t f f l ,呷】 鍆初始化s d 黜蝴 嵌入式系統(tǒng)中片內(nèi)存儲資源一般不能滿足系統(tǒng)開發(fā)的需求,構(gòu)建一個高效的 存儲系統(tǒng)是嵌入式開發(fā)的基本工作。片外s d r 址直的控制由s 3 c 2 4 1 0 內(nèi)的存儲控 制器進行設置,其所實現(xiàn)的功能主要是通過對其特殊功能寄存器的讀寫來進行的, 包括: 曲總線寬度等待控制寄存器( b w s c o n ) ,它的設置決定了b a i l l 【宰上的s 刪 是否使用了u b l b ( 寫高f 氐字節(jié)使能) 、b a l l l 【7 上的s 洲存儲器的等待 狀態(tài)、b 蛆k 7 的數(shù)據(jù)總線寬度、b a n k o 的數(shù)據(jù)總線寬度以及存儲模式; 坊b a i l l 【控制寄存器( b a n k c o n n :n g c s o 硼g c s 5 ) + ,它的設置決定了n g c s 有效之前地址建立時間和在n o e 上芯片選擇建立時間; 曲d r a m s d r a m 刷新控制寄存器( r e f r e s h ) ; d ) b a n k 大小寄存器( b a n k s i z e ) ; 曲b a n k 6 和b a n k 7 模式設置寄存器( m r s r ) ,它的設置主要決定b 觚k 6 和 b a n k 7 的存儲模式; 湖北工業(yè)大學碩士學位論文 總體上講,s d 蝴的初始化是比較復雜的,但是對于u c o s 來說,可以大 部分使用默認值,只是根據(jù)自己的需要更改部分設置即可。 5 ) 系統(tǒng)堆棧初始化 a r m 處理器具有7 種處理器模:用戶模式、f i q 模式、瓜q 模式、管理模式、 中止模式、未定義模式和系統(tǒng)模式。除用戶模式外的其他模式稱為特權模式。特 權模式是為了響應中斷或異常,或訪問系統(tǒng)保護的資源。特權模式可以自由地訪 問系統(tǒng)資源和改變模式。每一種模式的堆棧指針寄存器( s p ) 都是獨立的( s y s t e m 和u s e r 使用相同s p 寄存器) 。因此,對程序中需要用到的每一種模式都要給s p 寄存器定義一個堆棧地址。方法是改變狀態(tài)寄存器( c p s r ) 內(nèi)的狀態(tài)位,使處理 器切換到不同的狀態(tài),然后給s 主 賦值。 一般堆棧的大小要根據(jù)需要而定,但是要盡可能給堆棧分配快速和高帶寬的 存儲器。堆棧性能的提高對系統(tǒng)性能的影響是非常明顯的。對于引導階段的堆棧 大小分配,一定要注意不能過大,否著可能會使b o o t l 0 a d e r 的編譯大小超出 4 k b y t e 。至于其對系統(tǒng)運行性能的影響,可以在s t a g e 2 階段從重分配大小。 們初始化系統(tǒng)運行時域 在嵌入式編程中,有一個很重要的概念:加載時域和運行時域。當映像文件 編譯后位于存儲器中時的地址稱為加載時地址,當映像文件運行時,其應當所處 的地址稱為運行時地址。之所以有這兩種地址,是因為映像文件在運行時,其中 的有些域是可以移動到新的存儲區(qū)域。比如,已經(jīng)初始化的r w 屬性的數(shù)據(jù)所在 的段在運行前可能保存在系統(tǒng)的r o m 中,在運行時,它被移動到刪中。 a r m 映像文件的入口點有兩種類型:一種是映像文件運行是的入口點,稱為 初始入口點( i n i t i a le n 仃yp o i n t ) ,另一種是普通的入口點( e n t r yp o i n t ) 。每個映 像文件只有一個唯一的初始入口點,它保存在e 頭文件中。普通的入口點是在 匯編程序中用e n t r y 偽操作定義。 初始入口點必須位于映像文件的運行時域內(nèi),并且包含初始入口點的運行時域 和其加載時域的地址必須是相同的( 這種域稱為固定域r o o tr e 西o n ) 。 u c o s 的b o o t l d a d e r 必須位于固定域內(nèi),即b o o t l 0 a d e r 必須位于0 x 0 0 0 0 0 0 0 0 開始的地址空間內(nèi),但是b o o t l o a d e r 的關鍵的任務之一就是把u c o s 內(nèi)核以及其 上的應用程序從r a s h 中的加載時域拷貝到s d r a m 中的運行時域中去,同時拷貝 的還有一些全局變量,以及把s d 洲中應當初始化為o 的存儲區(qū)進行設置。 7 l 跳轉(zhuǎn)到操作系統(tǒng)入口 當所有的系統(tǒng)初始化工作完成之后,就需要把程序流程轉(zhuǎn)入主應用程序: 珈p o r tm a i n 湖北工業(yè)大學碩士學位論文 b l j n a m 程序在此處使用b lm a i n ,而不是直接用b lm a j n ,其內(nèi)部是大有緣故的。 當使用前者時,實際上此時是調(diào)用了c c + + 運行時庫中的皿a i l l ( ) 函數(shù)。該函 數(shù)完成以下工作: 將非固定域( n o n r o o t ) 的執(zhí)行代碼域( r e 西o n ) 從裝載地址空間復制到運 行地址空間,此步驟實際上就是完成上述6 ) 中的將u c o s 內(nèi)核、其上應 用程序以及其他相關量從加載時域拷貝到相應的運行時域中; 將z i 域置零; 黟b 轉(zhuǎn)到ne n t r y o 運行 如果應用程序不想按這種模式運行,可以定義自己的皿a i n o 函數(shù),如直接跳 到r l e n t r y o 運行。所用的匯編代碼如下所示: i m p o r t r l = e n t r y e x p o r t m a i l l e n t r y m a i n b f te n t r y e n d 或者是用戶可以在整個u c o s 以及應用程序中都不使用c c + + 運行時庫,則用戶 可以直接跳到應用程序入口,如下: i m p o r t m a i n b li m i n 一 , 此時,應用程序入口其實也可以取其他的名字,如i m p o r t a p p ,b l a p p , 但是此兩種方式都需要用戶自己實現(xiàn)加載時域到運行時域的轉(zhuǎn)變以及z i 域的清 零。由此,建議開發(fā)者使用c c + + 運行時庫,即使用b l m a i l l 的模式,本文即 采用此方式。但是使用此方式有一個難點就是需要用戶自己實現(xiàn)一些c c + + 運行 時庫中的一些底層接口,以供c 運行時域使用。比如,如果應用程序用到了p 血t f 類的函數(shù),用戶就必須重新實現(xiàn)f p u t c o 函數(shù),以反映目標環(huán)境的特性。如果應用 程序中沒有用到p r i n t f 類的函數(shù),用戶就不必重新實現(xiàn)印u t c o 函數(shù)。通常,用戶可 能需要重新實現(xiàn)的函數(shù)包括: 靜態(tài)數(shù)據(jù)的訪問 關于地域特性和c t y p e 應用程序運行的錯誤捕捉、處理以及程序退出 應用程序運行時的存儲系統(tǒng)模型 2 b s p 的設計 湖北工業(yè)大學碩士學位論文 作為板級支持軟件包b s p 處在一個軟硬件交界的中心位置,其結(jié)構(gòu)與功能隨 系統(tǒng)應用范圍而表現(xiàn)較大的差異,可認為它屬于操作系統(tǒng)的一部分,主要目的是 為了支持操作系統(tǒng),使之能夠更好的運行于硬件主板。借用通用操作系統(tǒng)的邏輯 上分層的概念,由于嵌入式系統(tǒng)中采用微處理器、微控制器的多樣性,要求嵌入 式操作系統(tǒng)的內(nèi)核明確分成兩層,其上層一般稱為內(nèi)核;而底層則稱為硬件 抽象層或硬件適配層,都縮寫成m 虬,實際上就是板級支持層。采用這種分 層虛擬的方式,可以完成由底層向上層提供服務而隱去其細節(jié)。 i 應用程序 害 l嵌入式操作系統(tǒng) li os y s t e m l i b r a r i e s弋c p 嗯 霉 i b s p 善 。 今 各種接口 b o o t l o a d e r 害, , 害 硬件層 圖3 7 嵌入式系統(tǒng)結(jié)構(gòu) 從圖3 7 所表明的嵌入式系統(tǒng)結(jié)構(gòu)中,在硬件層之上,建立最底層的板級支持 軟件包b s p 可以直接與底層的硬件設備建立聯(lián)系。 狹義的b s p 是一些匯編語言程序和c 語言程序相結(jié)合的函數(shù)庫,為上層軟件 提供訪問硬件的手段。對u c o s 這種微內(nèi)核的操作系統(tǒng)來說,b s p 可以狹義的理 解為為底層硬件驅(qū)動程序。 1 ) u a r t 驅(qū)動開發(fā) u 觸玎( u n i v e r s a l 舡v n c h r o n o u sr e c e i v e 佃a n s m i t t e r ) 通用異步收發(fā)器是用于 控制計算機與串行設備的接口。它提供了r s 2 3 2 c 數(shù)據(jù)終端設備接口,這樣計算 機就可以和調(diào)制解調(diào)器或其他使用r s 2 3 2 c 幾口的串行設備通信了。 串口驅(qū)動開發(fā)在嵌入式軟件開發(fā)中可以說是最基礎的,它是其它軟件開發(fā)的 前提。通常在嵌入式軟件開發(fā)過程中,需要大量的調(diào)試信息,而這些信息都可以 通過串口和h o s t 上的串口終端或是串口調(diào)試助手進行信息的交互,從而大大調(diào)高 了開發(fā)的進度。 在s 3 c 2 4 1 0 中,u 砧玎提供了三個獨立的異步串行加端口,均可以操作在中 斷模式或者d m a 模式,具有可編程的波特率、紅外收發(fā)、可選的1 2 位停止位、 5 8 位的數(shù)據(jù)寬度以及奇偶校驗。 湖北工業(yè)大學碩士學位論文 在u a r t 操作中,主要是通過對u 舢玎特殊功能寄存器進行設置來對u 觸汀 進行控制的。u a r t 的特殊功能寄存器包括u a r t 的控制寄存器、狀態(tài)寄存器、 保持寄存器及波特率分頻寄存器等等。 在u a r t 的控制中,主要是通過波特率分頻寄存器對波特率u b r d n 的設置, 其值可以通過下式來決定: u b r d n = ( r l d u n d _ 0 f f ) ( m c u 叭波特率宰1 6 ) ) - 1 式中:約數(shù)因子u b r d n 的范圍為1 2 1 6 1 。 使用串口發(fā)送數(shù)據(jù)時,將待發(fā)送的數(shù)據(jù)寫入1 7 t ) ( h o 寄存器,然后通過讀取 u t r s 咖寄存器的值判斷數(shù)據(jù)是否發(fā)送完成。進行串口數(shù)據(jù)接受時,也是通過 讀取u i r s l = a t 0 寄存器的值判斷是否接受到數(shù)據(jù),如果收到數(shù)據(jù),則可以從 u 砌娜0 寄存器中讀出數(shù)據(jù)。 2 ) n a i l df l a s h 驅(qū)動開發(fā) n a n d 是目前時市場上主要的非易失性閃存技術之一。n a n d f l a s h 存儲器結(jié) 構(gòu)則提供極高的單元密度,可以達到很大的存儲容量,并且寫入和擦除的速度也 很快,使其在嵌入式系統(tǒng)中得到了廣泛的應用,但n 觚d f l a s h 存儲器需要特殊的 接口來操作,因此對它的讀寫與n o r - f l a s h ( 線性f l a s h ) 存儲器有較大的區(qū)別。如 果在c p u 中沒有提供直接與n a n d f l a s h 存儲器的接口,讀寫過程要靠軟件編程來 控制f 1 a s h 的時序來說實現(xiàn)。 在s 3 c 2 4 1 0 中提供了n 鋤d f l a s h 的控制模塊,如圖3 8 所示,只需要要對其 特殊寄存器進行設置即可以完成f l a s h 的讀寫、擦除等操作; c u 皇 a l e n c 毫 n 兄 n w r ,n g i 啪q ,0 7 在u p - c hs 3 c 2 4 1 0 中采用了韓國三星公司的l s u p p o r t f i l e s a a s c i ic o n v e 瑙i o n s ( n e l a s c i i 宰) , b b u 骶rm a n a g e m e n t ( n e t - b u 毒) , c t c p 舢d pc o 皿e c t i o nm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽高中教科研聯(lián)盟2025年高一化學第二學期期末聯(lián)考模擬試題含解析
- 2025屆吉林省長春市汽車經(jīng)濟技術開發(fā)區(qū)第六中學化學高二下期末檢測試題含解析
- 2025屆江西省吉安市永豐中學高一下化學期末質(zhì)量檢測模擬試題含解析
- 醫(yī)院通訊費用管理辦法
- 機構(gòu)工資薪酬管理辦法
- 2025年暑假八上古詩文默寫強化訓練早背晚默21-36 素材
- 財政政策與市場信心-洞察及研究
- 全國現(xiàn)代農(nóng)業(yè)發(fā)展規(guī)劃與實施策略
- 智慧學校信息管理辦法
- 云資源訪問控制機制-洞察及研究
- 2024IPv6 技術要求 第2部分:基于 IPv6 段路由(SRv6)的 IP 承載網(wǎng)絡
- 新標準日本語初級上冊第七課課練
- 《扣件式鋼管腳手架安全技術規(guī)范》JGJ130-2023
- 部編初一語文閱讀理解最全答題模板與技巧+專項訓練練習題
- 弟子規(guī)注音A4直接打印版
- 金融學原理重點總結(jié)彭興韻
- 譯林版三年級英語上冊《全冊課件》ppt
- 反恐C-TPAT程序文件整套(通用)
- ma600學員座艙圖冊用戶培訓中心
- 液壓過濾器的設計和制造
- 《義務教育英語課程標準(2022年版)》自測題、綜合測試題、初中英語新課標過關抽測試卷及優(yōu)秀答卷(共17套附答案)
評論
0/150
提交評論