嵌入式系統(tǒng)第2講基本概念_第1頁
嵌入式系統(tǒng)第2講基本概念_第2頁
嵌入式系統(tǒng)第2講基本概念_第3頁
嵌入式系統(tǒng)第2講基本概念_第4頁
嵌入式系統(tǒng)第2講基本概念_第5頁
已閱讀5頁,還剩106頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)應用——ARM與C/OS-Ⅱ第二講基本概念及設計方法安徽工業(yè)大學計算機學院本節(jié)提要1324嵌入式系統(tǒng)硬件基礎嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎嵌入式系統(tǒng)設計方法5一個嵌入式設計方法實例馮·諾依曼體系結構和哈佛體系結構CISC與RISC影響CPU性能的因素存儲器系統(tǒng)I/O接口一、嵌入式系統(tǒng)硬件基礎主要介紹:典型嵌入式系統(tǒng)基本組成-硬件MPU微處理器電源模塊時鐘復位FlashRAMROMUSBLCDKeyboard外圍電路Other外設1.1馮·諾依曼體系結構模型指令寄存器控制器數據通道輸入輸出中央處理器存儲器程序指令0指令1指令2指令3指令4數據數據0數據1數據2ARM7采用1.2哈佛體系結構指令寄存器控制器數據通道輸入輸出中央處理器程序存儲器指令0指令1指令2數據存儲器數據0數據1數據2地址指令地址數據ARM9采用哈佛體系結構獨立的程序存儲器和數據存儲器為數字信號處理提供了較高的性能,因此仍被廣泛使用。實時處理信號會對數據存取系統(tǒng)帶來兩方面的壓力:1)大量的數據流通過CPU;2)數據必須在一個精確的時間間隔內被處理,而不是恰巧輪到CPU時進行處理。讓兩個存儲器有不同的端口將提供較大的存儲器帶寬,數據和程序不必再競爭同一個端口,因此數據適時的移動更加容易。1.3CISC和RISCCISC:復雜指令集(ComplexInstructionSetComputer)具有大量的指令和尋址方式8/2原則:80%的程序只使用20%的指令大多數程序只使用少量的指令就能夠運行。RISC:精簡指令集(ReducedInstructionSetComputer)1979年美國加州大學伯克利分校提出,它將精選出來的指令在流水線處理器中高效執(zhí)行。目前還在發(fā)展和豐富過程中。在通道中只包含最有用的指令確保數據通道快速執(zhí)行每一條指令使CPU硬件結構設計變得更為簡單CISC與RISC的數據通道IFIDREGALUMEM開始退出IFIDALUMEMREG微操作通道開始退出單通數據通道EXEXRISC體系結構的特點大多數指令只需要執(zhí)行簡單和基本的功能,執(zhí)行過程在一個機器周期內完成;由于存儲器訪問指令執(zhí)行時間長,盡量減少這類指令,只保留Load/Store指令;芯片邏輯采用硬布線邏輯以減少指令解釋的開銷,而不采用或少采用微碼技術;減少指令數和尋址方式,簡化控制部件,提高執(zhí)行速度;指令格式固定,指令譯碼簡單;編譯開銷很大,應盡可能優(yōu)化。ARM體系結構在RISC基礎上新增的特殊技術所有的指令都可以根據前面的執(zhí)行結果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率;可用Load/Store指令批量傳送數據,以提高數據的傳輸效果;可在一條數據處理指令中同時完成邏輯處理和移位處理。RISC和CISC架構各有優(yōu)點,現代的CPU往往采用CISC的外圍,內部加入RISC特性。如超常指令集CPU就是融合了RISC和CISC的優(yōu)勢,是CPU的未來發(fā)展方向之一。1.4影響CPU性能的因素:流水線、超標量和緩存流水線技術:幾個指令可以并行執(zhí)行。提高了CPU的運行效率內部信息流要求通暢流動譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時間AddSubCmpARM7:三級流水線ARM9:五級流水線ARM10:六級流水線ARM11:八級流水線三級流水線每周期執(zhí)行一條指令的吞吐量是理想情況。由于取指的存儲器訪問和執(zhí)行的數據路徑占用都是不可同時共享的資源,對多周期指令來說,就會產生流水線阻塞。如:STR指令的數據傳送周期既需要存儲器訪問,又要占用數據通道,因此第3條指令的執(zhí)行要等第2條指令的數據傳送周期結束后才能運行。雖然第3、4條指令都在正常時鐘周期被讀出,但譯碼時間被推遲,造成第5條指令的取指延遲。decodefetchaddexcutedecodefetchstrcalc:addr時間123dataxferfetchadddecodeexcutefetchadddecodeexcutedecodefetchaddexcute45ARM的流水線設計問題縮短程序執(zhí)行時間流水線的相關問題結構相關、數據相關、控制相關等1)提高時鐘頻率。時鐘周期縮短,即每周期完成的工作量減少,就要求簡化流水線的邏輯,從而要增加流水線級數;2)減小CPI。必須改善3級流水線中阻塞狀況,從而需要解決流水線的相關問題。流水線的相關問題流水線的結構相關:指指令在流水線中重疊執(zhí)行時,產生資源沖突。在3級馮·諾依曼結構中,數據和指令在同一存儲器中,幾乎每一時鐘周期都必須訪問存儲器(取指或傳數據),因此訪問數據存儲器時就必須停止取指令存儲器。ARM的解決方案是:1)采用分離式數據cache和指令cache。此法解決了取指和數據傳送的沖突、減小了CPI2)ALU中采用單獨加法器來完成地址計算。使執(zhí)行周期的運算不再產生資源沖突。流水線的相關問題續(xù)流水線的數據相關:指當前指令需要前面指令的執(zhí)行結果。ARM的解決方案是:1)定向(旁路或短路)技術。將前面指令的執(zhí)行結果直接傳給后面需要的指令,而不必寫入寄存器。2)流水線互鎖技術。指令需要的數據因以前的指令未完成而沒有準備好時就產生管道互鎖?;ユi發(fā)生時,流水線將停止這個指令的執(zhí)行,直到數據準備好為止。流水線的控制相關:發(fā)生在流水線遇到分支指令和其它需要改變PC值的指令時。ARM的解決方案是:1)引入延時分支。2)盡早計算出分支轉移成功時的PC值。ARM的5級流水線取指:將指令從存儲器中取出,放入指令流水線中。指令譯碼:對指令譯碼,從寄存器堆中讀取寄存器操作數。執(zhí)行:把一個操作數移位,產生ALU結果。數據緩存:若需要則訪問數據存儲器;否則ALU的結果只是簡單的緩沖一個時鐘周期,使所有的指令具有同樣的流水線流程。寫回:將指令產生的結果回寫到寄存器堆,包括任何從存儲器讀取的數據。減少了在每個時鐘周期內必須完成的最大工作量,進而允許使用較高的時鐘頻率。5級流水線分為:超標量執(zhí)行superscalarmachine超標量執(zhí)行:超標量CPU采用多條流水線結構。超標量技術:就是通過重復設置多套指令執(zhí)行部件,同時處理并完成多條指令,實現并行操作來達到提高處理速度的目的。超標量處理機:一個時鐘周期內同時執(zhí)行多條指令的處理機。ARM7、ARM9、ARM11都是單周期指令機;ARM公司推出新一代處理器Cortex-A8處理器將是超標量機。

65nm工藝、功耗<300mW、主頻1GHZ,主要用于視頻、游戲等超標量執(zhí)行執(zhí)行1預取指令CACHE譯碼2譯碼1執(zhí)行2執(zhí)行1預取譯碼2譯碼1執(zhí)行2流水線1流水線2數據超標量與流水線技術是兼容的,要在一個時鐘周期內同時處理多條指令,超標量處理機必須有兩條以上的流水線、多個能獨立工作的操作部件。從而帶來了多流水線的調度問題和操作部件的資源沖突問題,因而控制邏輯比較復雜。超標量執(zhí)行中的數據相關:

subr2,r1,r0;

mulr4,r3,r2;單流水線的標量處理機只有連續(xù)出現相同操作的指令序列時流水線才能不“斷流”,功能部件的效率才能充分發(fā)揮。超標量處理機正好相反,它希望相同操作的指令不要連續(xù)出現,否則會發(fā)生資源沖突。這一要求正好符合一般標量程序的特點。高速緩存(CACHE)1、為什么采用高速緩存微處理器的時鐘頻率比內存速度提高快得多,高速緩存可以提高內存的平均性能。2、高速緩存的工作原理高速緩存是一種小型、快速的存儲器,它保存部分主存內容的拷貝。CPU高速緩存控制器CACHE主存數據數據地址總線和總線橋CPU低速設備橋數據高速總線存儲器高速設備低速設備低速總線1.5存儲器系統(tǒng)RAM:隨機存取存儲器,SRAM:靜態(tài)隨機存儲器,DRAM:動態(tài)隨機存儲器

1)SRAM比DRAM快

2)SRAM比DRAM耗電多

3)DRAM存儲密度比SRAM高得多

4)DRAM需要周期性刷新ROM:只讀存儲器FLASH:閃存SRAM和DRAM1)SRAM2)DRAMCSR/WAddrDataCSR/WCASDataRASAddr輸入輸出接口I/OA/D、D/A鍵盤LCD存儲器接口設備接口例如USBUSB:UniversalSerialBus,通用串行總線大家生活中常見的與USB有關的東西有:U盤、移動硬盤、無驅型的MP3(U盤)USB接口的鍵盤、Mouse、打印機、數碼相機……即插即用,熱插撥,系統(tǒng)不需重啟便可工作,且易于擴展(127個)USB2.0以低成本實現高達480Mb/s的傳輸率(USB1.1的全速設備可達12Mb/s)接口標準統(tǒng)一、端口供電一個典型的USB通訊系統(tǒng)HOST系統(tǒng)HUBDEVICEDDEVICE應用軟件+驅動程序+接口芯片HUBU盤其他數據采集器驅動代碼+嵌入式處理器+HOST芯片HUBU盤其他數據采集器通用系統(tǒng)模型PC機中的情況嵌入式系統(tǒng)應用1324嵌入式系統(tǒng)硬件基礎嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎嵌入式系統(tǒng)設計方法5一個嵌入式設計方法實例二、嵌入式系統(tǒng)軟件基礎操作系統(tǒng)的分類嵌入式實時操作系統(tǒng)前臺與后臺多任務(嵌入式應用的普遍要求),任務優(yōu)先級,調度非占先式與占先式、可重入型函數主要介紹:3.1操作系統(tǒng)的分類(1)順序執(zhí)行系統(tǒng):系統(tǒng)內只含有一個程序,獨占CPU的運行時間,按語句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程序才能啟動運行。如DOS操作系統(tǒng)。(2)分時操作系統(tǒng):系統(tǒng)內同時可以有多個程序運行,把CPU的時間按順序分成若干片,每個時間片內執(zhí)行不同的程序。如UNIX。(3)實時操作系統(tǒng):系統(tǒng)內有多個程序運行,每個程序有不同的優(yōu)先級,只有最高優(yōu)先級的任務才能占有CPU的控制權。按實時性分類強實時系統(tǒng),其系統(tǒng)響應時間在毫秒或微秒級(數控機床);一般實時系統(tǒng),其系統(tǒng)響應時間在毫秒-幾秒的數量級上,其實時性的要求比強實時系統(tǒng)要差一些(電子菜譜的查詢)。弱實時系統(tǒng),其系統(tǒng)響應時間約為數十秒或更長(工程機械)。1)循環(huán)輪詢系統(tǒng):(PollingLoop)最簡單的軟件結構是循環(huán)輪詢,程序依次檢查系統(tǒng)的每一個輸入條件,一旦條件成立就進行相應的處理。Initialize()While(true){if(condition_1)action_1();if(condition_2)action_2();……if(condition_n)acition_n();}按軟件結構分類2)事件驅動系統(tǒng):(Event-Drivensystem)事件驅動系統(tǒng)是能對外部事件直接響應的系統(tǒng)。它包括前后臺、實時多任務、多處理器等,是嵌入式實時系統(tǒng)的主要形式。應用程序是一個無限的循環(huán),循環(huán)中調用相應的函數完成相應的操作,這部分可以看成后臺行為(background)。中斷服務程序處理異步事件,這部分可以看成前臺行為(foreground)。后臺也可以叫做任務級,前臺也叫中斷級。很多基于微處理器的產品采用前后臺系統(tǒng)設計,如電話機、玩具等。從省電的角度出發(fā),平時微處理器處在停機狀態(tài),所有的事都靠中斷服務來完成。前后臺系統(tǒng)(后臺循環(huán)、前臺中斷)ISRISR后臺前臺ISR時間代碼的臨界區(qū)也稱為臨界區(qū),指處理時不可分割的代碼。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。在進入臨界區(qū)之前要關中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開中斷(在任務切換時,地址、指令、數據等寄存器堆棧保護)。代碼的臨界區(qū)多任務(任務、進程和線程)CPU寄存器任務控制塊1任務控制塊2任務控制塊n休眠、就緒、運行、掛起、被中斷任務1任務2任務n……CPU寄存器一個任務,也稱作一個線程,是一個簡單的運行程序。每個任務都是整個應用的某一部分,每個任務被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的棧空間。多任務運行的實現實際上是靠CPU在許多任務之間轉換、調度。

CPU只有一個,輪番服務于一系列任務中的某一個。多任務運行使CPU的利用率得到最大的發(fā)揮,并使應用程序模塊化。在實際應用中,多任務的最大特點是,開發(fā)人員可以將很復雜的應用程序層次化。任務的狀態(tài)休眠、就緒、運行、掛起、被中斷系統(tǒng)內核(Kernel)與調度(Scheduler)多任務系統(tǒng)中,內核負責管理各個任務,或者說為每個任務分配CPU時間,并且負責任務之間的通信。內核提供的基本服務是任務切換。內核本身也增加了應用程序的額外負荷,代碼空間增加ROM用量,內核本身的數據結構增加了RAM的用量。內核本身對CPU的占用時間一般在2到5個百分點之間。調度(Scheduler)是內核的主要職責之一,就是要決定該輪到哪個任務運行了。多數實時內核是基于優(yōu)先級調度法的。每個任務根據其重要程度的不同被賦予一定的優(yōu)先級?;趦?yōu)先級的調度法指,CPU總是讓處在就緒態(tài)的優(yōu)先級最高的任務先運行。非占先式與占先式非占先式(non-preemptive)非占先式調度法也稱作合作型多任務(cooperativemultitasking),各個任務彼此合作共享一個CPU。中斷服務可以使一個高優(yōu)先級的任務由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務以后控制權還是回到原來被中斷了的那個任務,直到該任務主動放棄CPU的使用權時,那個高優(yōu)先級的任務才能獲得CPU的使用權。非占先式內核的一個特點是幾乎不需要使用信號量保護共享數據。運行著的任務占有CPU,而不必擔心被別的任務搶占。非占先式內核的最大缺陷在于其響應高優(yōu)先級的任務慢,任務已經進入就緒態(tài),但還不能運行,也許要等很長時間,直到當前運行著的任務釋放CPU。內核的任務級響應時間是不確定的,不知道什么時候最高優(yōu)先級的任務才能拿到CPU的控制權,完全取決于應用程序什么時候釋放CPU。非占先式(Non-Preemptive)低優(yōu)先級任務ISR高優(yōu)先級任務(1)(2)(3)(4)(5)(6)(7)中斷服務程序使高優(yōu)先級任務就緒低優(yōu)先級任務釋放CPU使用權TIME當系統(tǒng)響應時間很重要時,要使用占先式(preemptive)內核。最高優(yōu)先級的任務一旦就緒,總能得到CPU的控制權。當一個運行著的任務使一個比它優(yōu)先級高的任務進入了就緒態(tài),當前任務的CPU使用權就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務立刻得到了CPU的控制權。使用占先式內核時,應用程序不應直接使用不可重入型函數。如果調入不可重入型函數時,低優(yōu)先級的任務CPU的使用權被高優(yōu)先級任務剝奪,不可重入型函數中的數據有可能被破壞。占先式(preemptive)占先式(Preemptive)低優(yōu)先級任務ISR高優(yōu)先級任務(1)(2)(3)(4)(5)(6)中斷服務程序使高優(yōu)先級任務就緒高優(yōu)先級任務得到CPU使用權TIME可以被一個以上的任務調用,而不必擔心數據的破壞。可重入型函數任何時候都可以被中斷,一段時間以后又可以運行,而相應數據不會丟失??芍厝胄秃瘮抵皇褂镁植孔兞?,即變量保存在CPU寄存器中或堆棧中。一個不可重入型函數的例子intTemp;Voidswap(int*x,int*y){ Temp=*x;*X=*Y;*y=Temp;}可重入型函數一個可重入型函數的例子:Voidswap(int*x,int*y){intTemp;

Temp=*x;*X=*Y;*y=Temp;}任務優(yōu)先級靜態(tài)優(yōu)先級應用程序執(zhí)行過程中諸任務優(yōu)先級不變,則稱之為靜態(tài)優(yōu)先級。在靜態(tài)優(yōu)先級系統(tǒng)中,諸任務以及它們的時間約束在程序編譯時是已知的動態(tài)優(yōu)先級應用程序執(zhí)行過程中,任務的優(yōu)先級是可變的,則稱之為動態(tài)優(yōu)先級。實時內核應當避免出現優(yōu)先級反轉問題。優(yōu)先級反轉(PriorityInversion)優(yōu)先級反轉發(fā)生在一個高優(yōu)先級的任務被迫等待一段不確定時間,圖1中3個任務分別為task1、task2和task3,其優(yōu)先級由高到低。從圖1可知,當task3占有由信號量(semaphore)保護的某種共享資源而進入臨界區(qū)執(zhí)行時,task1就緒,由于系統(tǒng)的搶占式調度策略,出現task1搶占task3執(zhí)行。task1執(zhí)行一段時間后也進入臨界區(qū),但此時task3仍占有此臨界資源的信號量,task1被阻塞,等待task3釋放此信號量。在經過這么一段時間后,task2已處于就緒狀態(tài),于是系統(tǒng)調度task2執(zhí)行。如果task3在task2的執(zhí)行期間一直沒有能夠被調度執(zhí)行的話,那task1和task3將一直等到task2執(zhí)行完后才能執(zhí)行,task1更要等到task3釋放它所占有的信號量才能執(zhí)行;如果這段時間超出task1的最后期限,task1的調度出現了問題,此時輕則任務被長時間阻塞,重則造成系統(tǒng)崩潰。優(yōu)先級反轉原因可歸納為:高優(yōu)先級的任務task1由于要等待被低優(yōu)先級任務task3占有的臨界資源而被task2阻塞,而此時具有中優(yōu)先級的任務task2搶占了task3的CPU時間,導致task2先于task1執(zhí)行。信號量(Semaphore)信號量是60年代中期EdgserDijkstra發(fā)明的。信號量實際上是一種約定機制,在多任務內核中普遍使用.信號量用于:控制共享資源的使用權(滿足互斥條件)標志某事件的發(fā)生使兩個任務的行為同步信號與信號量在英文中都叫做Semaphore,并不加以區(qū)分,它有兩種類型,二進制型(binary)和計數器型(counting)二值信號量(0、1)計數式信號量信號量是一個可以用來控制多個進程存取共享資源的計數器。它經常作為一種鎖定機制來防止當一個進程正在存取共享資源時,另一個進程也存取同一資源。

信號量的值是與相應資源的使用情況有關的。當它的值大于0時,表示當前可用資源的數量;當它的值小于0時,其絕對值表示等待使用該資源的進程個數,即在該信號量隊列的節(jié)點個數。

設信號量為S,P操作順序執(zhí)行下述兩個動作:①信號量的值減1,即S=S-1;②如果S≥0,則該進程繼續(xù)執(zhí)行;如果S<0,則把該進程的狀態(tài)置為阻塞態(tài),把相應的鏈表節(jié)點連入該信號量隊列的末尾并放棄處理機,進行等待(直至其它進程在S上執(zhí)行V操作,把它釋放出來為止)。V操作順序執(zhí)行下述兩個動作:①S值加1,即S=S+1;②如果S>0,則該進程繼續(xù)運行;如果S≤0,則釋放信號量隊列上的第一個PCB(即信號量指針項所指向的PCB)所對應的進程(把阻塞態(tài)改為就緒態(tài)),執(zhí)行V操作的進程繼續(xù)運行。死鎖Deadlock死鎖指兩個任務無限期地互相等待對方控制著的資源。設任務T1正獨享資源R1,任務T2在獨享資源R2,而此時T1又要獨享R2,T2也要獨享R1,于是哪個任務都沒法繼續(xù)執(zhí)行,發(fā)生了死鎖。最簡單的防止發(fā)生死鎖的方法是讓每個任務都:先得到全部需要的資源再做下一步的工作用同樣的順序去申請多個資源釋放資源時使用相反的順序任務同步信號量是實現任務同步的主要手段。全程變量或共享內存郵箱或消息隊列任務間的通訊(IntertaskCommunication)消息郵箱郵箱是μC/OS-II中另一種通訊機制,它可以使一個任務或者中斷服務子程序向另一個任務發(fā)送一個指針型的變量。該指針指向一個包含了特定"消息"的數據結構。消息隊列消息隊列與其他方式的一些比較:1、信號量使用方便,可以解決很多任務間的協(xié)調問題,但是信號量所傳遞的信息有限,而內存共享雖然傳遞信息可以大些,但是不標準。消息隊列作為一種折忠方式用于線程之間的信息交換。2、消息隊列允許許多的消息排隊,而每個信息可以有不同長度,而傳統(tǒng)管道中的數據僅僅是一個數據流,沒有邊界。(注:Vxworks中采用管道方式)全程變量用全程變量時,必須保證每個任務或中斷服務程序獨享該變量。中斷服務中保證獨享的唯一辦法是關中斷。如果兩個任務共享某變量,各任務實現獨享該變量的辦法可以是關中斷再開中斷,或使用信號量1324嵌入式系統(tǒng)硬件基礎嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎嵌入式系統(tǒng)設計方法5一個嵌入式設計方法實例嵌入式系統(tǒng)的軟/硬件框架嵌入式系統(tǒng)設計步驟系統(tǒng)需求分析:確定設計任務和設計目標,并提煉出設計規(guī)格說明書,作為正式設計指導和驗收的標準。系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,如輸入輸出信號、操作方式等;非功能需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。體系結構設計:描述系統(tǒng)如何實現所述的功能和非功能需求,包括對硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型等。一個好的體系結構是設計成功與否的關鍵。硬件/軟件協(xié)同設計:基于體系結構,對系統(tǒng)的軟件、硬件進行詳細設計。為了縮短產品開發(fā)周期,設計往往是并行的。應該說,嵌入式系統(tǒng)設計的工作大部分都集中在軟件設計上,采用面向對象技術、軟件組件技術、模塊化設計是現代軟件工程經常采用的方法。系統(tǒng)集成:把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進行調試,發(fā)現并改進單元設計過程中的錯誤。系統(tǒng)測試:對設計好的系統(tǒng)進行測試,看其是否滿足規(guī)格說明書中給定的功能要求。嵌入式開發(fā)工具與開發(fā)環(huán)境

JTAG(JointTestActionGroup,聯合測試行動小組)是一種國際標準測試協(xié)議(IEEE1149.1兼容),主要用于芯片內部測試。現在多數的高級器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標準的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數據輸入和數據輸出線。

JTAG最初是用來對芯片進行測試的,基本原理是在器件內部定義一個TAP(TestAccessPort,測試訪問口)通過專用的JTAG測試工具對內部節(jié)點進行測試。JTAG測試允許多個器件通過JTAG接口串聯在一起,形成一個JTAG鏈,能實現對各個器件分別測試。現在,JTAG接口還常用于實現ISP(In-Systemprogrammable,在線編程),對FLASH等器件進行編程。

JTAG編程方式是在線編程,傳統(tǒng)生產流程中先對芯片進行預編程現再裝到板上因此而改變,簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快工程進度。JTAG接口可對PSD芯片內部的所有部件進行編程.

開發(fā)平臺簡介網口JTAGUSB串口0擴展板接口ARM微處理器S3C44B0X擴展口2網卡JTAG仿真器ARM3000開發(fā)板集成開發(fā)環(huán)境運行平臺開始新工程編輯源代碼交叉編譯連接仿真調試程序下載臺式/筆記本式PC機并口JTAG仿真器網絡接口JTAG接口USB接口串口0ARM3000開發(fā)板串口USB接口以太網口ARMSDTDebugArmDvkARM7處理器執(zhí)行監(jiān)測結果超級終端ARM3000開發(fā)板實驗流程結束嵌入式軟件開發(fā)流程嵌入式系統(tǒng)軟件開發(fā)是在傳統(tǒng)軟件工程方法基礎上,增加了實時、并發(fā)等設計技術。幾種常用的開發(fā)方法指令集模擬器一種利用PC機端的仿真開發(fā)軟件模擬調試的方法。駐留監(jiān)控軟件駐留監(jiān)控程序運行在目標板上,PC機端調試軟件可通過并口、串口、網口與之交互,以完成程序執(zhí)行、存儲器及寄存器讀寫、斷點設置等任務JTAG仿真器通過ARM芯片的JTAG邊界掃描口與ARM核進行通信,不占用目標板的資源,是目前使用最廣泛的調試手段在線仿真器使用仿真頭代替目標板上的CPU,可以完全仿真ARM芯片的行為。但結構較復雜,價格昂貴,通常用于ARM硬件開發(fā)中本節(jié)提要1324嵌入式系統(tǒng)硬件基礎嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎嵌入式系統(tǒng)設計方法5一個嵌入式設計方法實例工程機械體系結構可靠設計環(huán)境分析成本計算芯片選擇設計接口調試…關鍵技術主要系統(tǒng)平地機環(huán)境可靠性實驗裝載機攪拌機挖掘機

…軟件選擇開發(fā)…攤鋪機壓路機四、嵌入式設計方法實例——工程機械監(jiān)控器需求分析與評估功能定義與軟硬件選型概要設計與軟硬件劃分軟硬件協(xié)同詳細設計集成調試維護與升級設計步驟工程機械方面應用

工程機械六大市場領域,均符合國家經濟發(fā)展四大戰(zhàn)略所規(guī)定的資金投向,500億投資,一個企業(yè)僅裝載機銷售7000臺。發(fā)展國家基礎設施建設西部大開發(fā)發(fā)展城鄉(xiāng)化可持續(xù)發(fā)展交通運輸能源工業(yè)原材料工業(yè)農林水利城鄉(xiāng)建設國防工程建設工程機械4.1需求分析與評估瀝青路面施工機群資源配置不合理,施工過程施工過程質量、進度控制不到位;設備運行狀況不能及時掌握,故障不能及時排除;分期付款控制技術;智能控制,動力平衡,安全操作存在突出問題監(jiān)控器最重要,及時掌握設備運行狀況,并進行必要故障診斷;其次是智能控制,動力平衡,安全操作;GPS定位與GSM通訊,是一個很好演示,盡量選用汽車使用模塊;協(xié)同控制,機群化資源配置,并提高施工過程施工過程質量,控制進度,目前僅僅是一個發(fā)展方向,還不實用。監(jiān)控器成本,建議控制在2000-3000元,才有競爭力。開發(fā)時間,6個月主要需求4.2功能定義與軟硬件選型8-10臺單機智能化,攪拌機、裝載機、自卸機、攤鋪機、壓路機等,設計具有GPS(GlobalPositionSystem)/GSM監(jiān)控器;建立通訊網絡設立機群化控制中心,數據庫、顯示屏、施工調度算法、工藝文件管理等;單機智能化采用監(jiān)控器,網絡通訊采用現成設備,中繼站或短消息,控制中心PC,數據庫Ms-SQL,投影儀等;其中這里討論智能化監(jiān)控器機群通訊與定位方案設備制造商設備使用商Internet中央控制室攪拌站GPS移動通訊車無線電臺Wirelessnet無線電臺壓路機無線電臺攤鋪機無線電臺轉運車GPS自卸卡車機群智能化通訊方案圖GPSGPSGPS“”表示因特網“”表示無線以太網“”表示物料轉運方向該課題的研究目標研究智能化的監(jiān)控器:可視化,多級界面可控化,具有人機接口內嵌的故障診斷,結合數據庫進行通訊功能通過實際測試,提高其可靠性,產品化降低成本,提高性能,最終取代國外產品4.3概要設計與軟硬件劃分國外同類產品工程機械智能監(jiān)控器的功能監(jiān)控器的硬件選型——CPU32位CPU將成為未來各種電子設備的核心ARM系列具有精簡指令集,在各種行業(yè)中已經獲得了廣泛的應用各種開發(fā)、仿真支持工具比較完善,國內也應經形成了開發(fā)熱潮監(jiān)控器的硬件設計方法-1接口:串行口、CAN總線是主要的通訊接口功能:首先是自動顯示狀態(tài)參數、報警,并具有通訊功能以通用硬件平臺為基礎首先平臺對于監(jiān)控器開發(fā)適用:人機接口、通訊擴展等已有的研發(fā)工作使我們的開發(fā)更為快捷而且硬件可以裁減、擴充監(jiān)控器的硬件設計方法在這一平臺上我們進行功能裁減、擴充

擴展性能I/O接口預留,A/D口預留,必要時可以擴展采集數據總線預留,便于使用總線擴展芯片擴展接口監(jiān)控器的硬件結構ARM為CPU,8M內存,16MFLASH存儲器兩個UART分別連接GPS、GSM模塊USB高速下載,JTAG調試口擴展CAN總線接口監(jiān)控器的軟件需求分析監(jiān)控器軟件的特點:圖形界面重要:數字化儀表、模擬顯示儀表加強操作性能:可以控制、菜單顯示多種方式報警:聲、圖像顯示通訊功能強大:本地通訊和近遠程通信操作系統(tǒng)選型分析操作系統(tǒng)選型主要考慮如下幾個方面:車輛設備要求實時操作系統(tǒng)外設很多,所以必須支持多任務根據不同的車輛軟件可裁剪開發(fā)工具要完善,能夠快捷的開發(fā)監(jiān)控器的軟件設計方法采用COS-II作為操作系統(tǒng)它是一個實時內核支持多任務管理擴展的文件管理系統(tǒng)擴展的各種設備驅動免費使用工程機械智能監(jiān)控器體系結構設計智能化監(jiān)控器的指導思想功能和可靠性是工程機械監(jiān)控器的兩大要素,必須在兩者之間尋找一個契合點??煽啃栽O計要求:一體化設計,軟件精簡基本功能軟件考慮:模板設計,實用簡單

解決的方法:列舉各種功能,保留必要,去除冗余,插接可靠構件設計,對象封裝,功能的模塊化,軟件的模板化,便于調用。使技術人員能夠快速編程學習4.4軟硬件協(xié)同詳細設計劃分功能模塊:系統(tǒng)驅動模塊、通訊模塊、圖形顯示模塊、數據處理模塊等,在大的模塊下面又分為小的模塊。根據功能加減模塊:比如機群智能化就要求具有GPS和GSM功能模塊,而在以后的復雜機器中還要有控制功能模塊等。模塊化設計方法

首先作出一臺機器的軟件,對其進行提煉作為系統(tǒng)模板:比如首先設計攤鋪機的軟件,根據它提煉功能模塊,并設計壓路機和裝載機的軟件。軟件模板要求結構清晰,可以根據該模板并參考程序添加代碼,完成專用機型的軟件。模板化使用方法監(jiān)控器的功能要求能實時接受總線信息(CAN),簡單處理后在液晶屏上動態(tài)刷新能夠針對信息進行故障診斷、可以自動報警(液晶屏)接受GPS地理位置信息,確定當前位置定時發(fā)送GSM信息,包括地理、狀態(tài)信息,接收中心站的GSM指令手動輸入故障和需要停機時間監(jiān)控器的功能模塊1.GPS數據處理:使用NMEA01832.GSM數據處理:使用AT指令集3.CAN總線數據處理4.鍵盤消息處理5.數據顯示6.GSM數據發(fā)送:使用GSM模塊NationalMarineElectronicsAssociation全國海洋電子協(xié)會[美]軟件的實現和技巧采用多任務任務一:串行口掃描由于GPS每秒向串行口發(fā)送數據,GSM指令也送入串行口,因此系統(tǒng)掃描串行口,處理進入信息。任務二:CAN總線掃描系統(tǒng)每隔幾個毫秒掃描CAN總線的SJA1000內部寄存器,查詢是否有新的信息。任務三:鍵盤掃描 作為人機接口的重要部分,鍵盤掃描可以手工輸入指令,查詢系統(tǒng)信息。軟件的實現和技巧CAN總線消息的管理

溫馨提示

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

評論

0/150

提交評論