轉嵌入式系統(tǒng)項目開發(fā)流程_第1頁
轉嵌入式系統(tǒng)項目開發(fā)流程_第2頁
轉嵌入式系統(tǒng)項目開發(fā)流程_第3頁
轉嵌入式系統(tǒng)項目開發(fā)流程_第4頁
轉嵌入式系統(tǒng)項目開發(fā)流程_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.@:轉嵌入式系統(tǒng)項目開發(fā)流程本文內容來自:與日常生活中的大多數(shù)事務一樣,設計一個嵌入式產品的過程也必須從確定目的開場,對消費的產品進展明確定義。對產品進展定義主要是對產品是什么和能有什么功能進展描繪,其次是在我們的整個開發(fā)過程中,應該要撰寫一些開發(fā)文檔,大概的框架的如下:1〕產品需求文檔:描繪產品的特性2〕功能需求文檔:描繪產品必須具備的功能3〕工程說明文檔:描繪系統(tǒng)實現(xiàn)的方法和滿足需求的手段4〕硬件說明文檔:對有關硬件進展描繪5〕軟件或固件說明文檔:描繪特定處理器下設計微程序以及固件的方法6〕測試說明文檔:描繪必須測試的工程和驗證系統(tǒng)正常運行的方法其中1〕和2〕的區(qū)別是:前者是站在客戶或消費者的角度分析的需求,而后者那么是由專業(yè)人士運用專業(yè)知識對前者進展分析抽象后得到的需求。1.需求定義需求定義用來描繪產品的根本功能,對于公司來說,需求一般由該公司的市場銷售部門或該公司的主要客戶來制定;而對小公司或愛好者〔就像armjishu里的愛好者一樣〕,技術人員可以自己負責定義需求,并撰寫成文檔。通常需求定義是圍繞以下幾個因素而來:1〕系統(tǒng)的用處〔定義需要系統(tǒng)實現(xiàn)的各種功能〕2〕實際輸入輸出是何種方式實現(xiàn)的〔為元器件的選型做參考〕3〕系統(tǒng)是否需要操作界面〔涉及軟件層操作系統(tǒng)的選型〕其實對小型的嵌入式產品來說,定義需求是非常關鍵的,因為需求清楚了,就可以防止后續(xù)開發(fā)過程中出現(xiàn)的諸如隨機存儲器〔RAM〕容量缺乏或所選的CPU速度不能滿足處理的需要等一系列問題。2.處理器的選擇2.1.需要使用的I/O管腳數(shù)量多數(shù)處理器都是使用內存和外部管腳來控制輸入輸出設備的,通常處理器都會有內置ROM和RAM的,假如內置的內存就已經滿足需要,那么處理器就可以節(jié)省產生引用外部存儲器信號的引腳,這樣處理器可為輸入輸出提供較多的設備管腳〔某些處理器支持外部RAM或ROM的使用,但對外部存儲器進展訪問時,處理器一般需要占用8條到10條I/O管腳〕。還有,有些處理器帶有專用的內部定時時鐘,這類時鐘也需要使用一個端口管腳來實現(xiàn)某些定時功能;某些處理器中還具有漏極輸出和高電流輸出才能,可以方便的直接驅動繼電器或電磁鐵線圈,而不再需要額外驅動硬件的支持。當對處理器I/O管腳進展計數(shù)時,我們一定要把使用處理器內部功能〔如串行接口和定時器等〕時限制使用的某些管腳考慮在內。2.2.需要使用的接口數(shù)量嵌入式處理器的主要功能是與應用環(huán)境中的硬件進展交互操作,這不僅需要外部硬件對接口具有實時處理才能,而且還要求處理器必須以足夠快的速度對接口數(shù)據(jù)進展有效處理。舉例來說,AT91RM9200是ATMEL公司出品的一款工業(yè)級ARM9微處理器,它基于ARM920T核心,處理速度可達200MIPS,同時處理器內部配置了USB、Ethernet支持RS485的紅外串口、IIC、SPI、SSC等輸出接口,其目的是更方便的利用這些接口開發(fā)出嵌入式產品。需要注意的是,由于許多處理器具有的局限性沒有在處理器技術資料中給予足夠的說明,因此一定要仔細閱讀處理器的指標說明。例如,在閱讀資料的過程中發(fā)現(xiàn),該資料可能會說明其串行接口可以在最高波特率下工作,但仔細研究該處理器的指標數(shù)據(jù)時,可能會發(fā)現(xiàn)并非該串口接口的所有操作形式都可以在最大波特率下運行。深化理解并明確接口要求的方法:可以自己動手編寫一些程序來對接口進展實際測試,以確認某種處理器是否可以滿足應用的要求;因為,確認某個處理器是否可以滿足接口要求并非是一件簡單的任務。2.3.需要使用的內存容量決定內存容量的大小是嵌入式產品設計過程中的一個根本步驟,假如對所需內存容量估計過高,那么我們就有可能會選擇本錢較高的解決方案;反之,假如低估了所需內存容量,就有可能因系統(tǒng)需要重新設計而導致工程不能按時完工。a.RAM和ROM的區(qū)別:存儲器分為隨機存儲器〔RAM〕和只讀存儲器〔ROM〕兩種。其中ROM通常用來固化存儲一些消費廠家寫入的程序或數(shù)據(jù),用于啟動電腦和控制電腦的工作方式。而RAM那么用來存取各種動態(tài)的輸入輸出數(shù)據(jù)、中間計算結果以及與外部存儲器交換的數(shù)據(jù)和暫存數(shù)據(jù)。設備斷電后,RAM中存儲的數(shù)據(jù)就會喪失。b.隨即存儲器〔RAM〕的選擇:RAM容量的預測是比較直觀的,我們只需把所有變量數(shù)目與所有內部緩沖區(qū)的容量以及先入先出〔FIFO〕隊列長度和堆棧長度直接相加,就能得到所需RAM容量的總數(shù)。假如所需內存容量超出這類處理器的尋址范圍,那么只能通過增加外部RAM來滿足需求;然而,增加外部RAM的同時將會占用一定數(shù)量的I/O管腳來對擴展內存進展尋址,這種擴展往往會影響到處理器來實現(xiàn)應用的初衷。需要注意的一個問題是,某些微處理器限制RAM的使用,這種限制的目的是為了借用部分內存存儲器作為內部存放器組使用。除了以上因素外,所使用的開發(fā)語言也對所需RAM容量有一定的影響,某些效率較低的編譯程序可能會占用大量珍貴的RAM空間。c.只讀存儲器〔ROM〕的選擇:系統(tǒng)所需ROM的大小應該是系統(tǒng)程序代碼與所有基于ROM的數(shù)據(jù)表容量之和。預測所需ROM空間容量比較困難的部分是預測程序代碼的長度,解決這類問題的方法只能是隨著經歷的逐步積累來進步預測精度。然而,最重要的并不是準確計算程序的代碼長度,而是要清楚地估算代碼長度的上限。根據(jù)經歷,假如80%的ROM空間被代碼占用的話,那么就太擁擠了,除非能確保系統(tǒng)需求不會有任何變化,否那么至少要為可能發(fā)生的變化保存足夠的備用ROM空間。在多數(shù)情況下,我們可以試著在ROM中寫入一部分程序代碼,以便觀察代碼占用空間的情況,對于帶有內部ROM的微處理器系統(tǒng)來說,系統(tǒng)程序都只能占用有限的程序存儲器空間。d.經歷之談:ROM與RAM使用情況相類似,程序代碼長度與所選用的開發(fā)語言有關。舉例來說,使用匯編語言編制的程序要比使用C語言編制的程序占用少得多的空間。對于追求低本錢的小型系統(tǒng)來說,一般不提倡使用高級程序設計語言;這是因為雖然高級語言在使用、調試以及維護方面來的比較容易,但同時這類語言需要占用更多的內存空間和大量的處理器時鐘周期。假如開發(fā)語言選擇不當,其后果可能是把一個簡單、低本錢的單片機系統(tǒng)變?yōu)橐粋€需要使用配置假設干兆字節(jié)RAM空間的64位嵌入式處理器系統(tǒng)。2.4.需要使用的中斷數(shù)量中斷的主要用處是向中央處理器通報當前發(fā)生的某類特殊事件,這類事件包括諸如定時器超時事件、硬件引發(fā)的事件等。需要強調的是,多數(shù)系統(tǒng)設計師經常過多地使用中斷功能,實際上,中斷的主要作用只是中斷現(xiàn)行程序的執(zhí)行,中斷最適用于必需要求中央處理器立即提供效勞的事件。在需要設計和使用中斷的情況下,一定要首先確認實際需要的中斷數(shù)量,然后必須考慮到系統(tǒng)內部占用的中斷資源,假如需要使用的中斷資源超出了處理器可以接收的中斷數(shù)量,我們就應借助于某些特殊手段來減少所需中斷信號的數(shù)量。2.5.實時處理方面的考慮實時處理是一個涉及范圍很廣的題目,其主要內容與系統(tǒng)的處理速度有親密聯(lián)絡,實時事件是嵌入式微處理器需要關注的主要任務。例如:處理器跟串口進展通信時,通常通過上層軟件〔為了保證實時性,進展任務切換的時間足夠短〕,然后再占用處理器去執(zhí)行從串口拿數(shù)據(jù)的任務,并且要保證處理器的速率比串口速率快,那么處理器可以以最快的速度反響并處理串口的相關的任務,這樣就可以到達最大的實時性;另一方面,假如處理器本身就內置了串口控制器、或DMA、或LCD的控制器等,那么它就可以保證直接使用這些處理器內置的接口去控制串口、液晶屏等對象,以到達最大的實時性能。2.6.該廠商是否提供好的開發(fā)工具和環(huán)境選擇一款新的處理器,很可能就要使用一個新的開發(fā)工具和開發(fā)環(huán)境,包括軟件的編譯環(huán)境等;對于開發(fā)日程安排比較緊張的工程來說,開發(fā)人員往往無法抽出專門的時間來研究,熟悉新的開發(fā)工具,從而也無法全面掌握開發(fā)工具的使用技巧。并且,有的開發(fā)工具價格也比較昂貴,而且很可能只能從制造商那里購置,還有仿真工具也是需要付費的,這些對我們在選擇一款處理器的時候,是都應該考慮進去的本錢因素。2.7.處理器速度方面的考慮主要考慮幾個細節(jié)問題:1〕處理器速度與處理器時鐘之間的關系例:單片機8031為例,由該處理器可以適應12MHz頻率的輸入時鐘,因此就可以認為它是一個速度為12MHz的處理器了嗎?不是,實際上,由于該處理器內部邏輯電路執(zhí)行每條指令需要多種不同頻率的時鐘脈沖,因此該處理器內部時鐘電路要對輸入的12MHz時鐘12分頻處理;最終為處理器提供的只是1MHz主頻。有的時候,80MHz主頻的處理器〔80MHz輸入時鐘,80MHz執(zhí)行速度〕要比200MHz主頻的處理器〔200MHz輸入時鐘,50MHz執(zhí)行速度〕執(zhí)行速度要快得多。2〕處理器指令系統(tǒng)假如不需要執(zhí)行復雜數(shù)學運算的應用,那么RISC指令集的處理器要快;假如執(zhí)行比較復雜的操作,那么CISC指令集的處理器速度要更快。3〕芯片構造體系如今有的芯片是將多個不同功能的核封裝到一個芯片IC中,定制某種特定的功能,比方DSP,其中包括用于實現(xiàn)數(shù)字解碼、乘法運算的硬件乘法器和移相器等;然而,這類處理器也由其自身局限,往往在執(zhí)行某些普通操作之前必需要使用額外的指令來把RAM中的數(shù)據(jù)放入內部存放器,相比之下,一般處理器只允許對RAM中的數(shù)據(jù)進展直接訪問。2.8.只讀存儲器〔ROM〕的選擇多數(shù)工程工程在其開發(fā)階段一般使用可擦寫可編程只讀存儲器〔EPROM〕或快速存儲器〔FlashMemory〕;這類可擦寫可重復寫入存儲器的主要優(yōu)點是可屢次使用。一旦產品研制完畢,就可以用一次寫入設備〔OTP〕來取代EPROM存儲器,一次性寫入器件的外觀與封裝幾乎與EPROM完全一樣,惟一不同之處就是其外表沒有擦出窗口,并且價格要比EPROM低很多。但是,另外一種情況,假如該產品今后需要晉級固件,或在線編程,那么我們還是應該選擇可擦寫可編程的存儲器。還有一種是非易失的存儲器,例如制造一臺電視機,就有可能需要該設備具有記憶上次觀看最后一個頻道的功能,即使在切斷電源后,該頻道信息也不會喪失。總結:所以,根據(jù)不同的產品選擇不同的存儲器也是一門很講究的學問。2.9.電源的要求在某些設計中方案中,電源根本不存在問題,對電源唯一的要求就是可以為電路正常供電;實際上,選擇電源主要要考慮三個方面的問題:1〕要注意設計方案中是否對電源的供電方式有所限制,例如,是否像大多數(shù)家用電器那樣需要使用屋內墻上的電源插座供電,或是是使用USB接口供電2〕看系統(tǒng)是否需要使用電池供電方式,假如這樣,我們就要考慮選擇那種對驅動電流要求不高的處理器,然后再為其選擇適宜的電池。3〕休眠電流:許多微處理器都支持低功率運行形式,在這種形式下,系統(tǒng)的CPU處理器將處于休眠狀態(tài),同時所有外部設備的電源供電都被暫時切斷,以便減少系統(tǒng)的電能消耗;某些微處理器在這種方式下需要的維持電流極小,但也有一些微處理器在這種方式下并不能節(jié)省多少功率;不管怎樣,我們都要對系統(tǒng)在節(jié)點形式下的工作時間有一個估測,以便對詳細情況選擇使用的電池。總之,無論哪種情況,我們都要對系統(tǒng)需要的供電總功率做到心中有數(shù)。2.10.設備工作環(huán)境的要求環(huán)境要求主要內容是考慮溫度,濕度等;假如系統(tǒng)必須在溫度范圍較大的環(huán)境下運行,諸如用于軍事設備或汽車的控制系統(tǒng),那么處理器可選擇的范圍就要小得多;并且由于大范圍溫度變化的設備通常比較昂貴,因此在設計過程中就不能再根據(jù)一般工業(yè)級器件的價格來制定預算。2.11.使用周期本錢假如我們的產品是mp3,在一般情況下,可以不必考慮在用戶現(xiàn)場對mp3程序進展修改的問題,也不用為是否可以得到設備備件而著急,這是因為mp3是一種消費產品;換句話說,假如我們的產品是價值幾萬塊的工業(yè)設備并且需要常年不斷地運行,那么我們在產品設計過程中就必須從長計議了:a.首先,我們需要選擇一種處理器或存儲體系構造都可以晉級的器件b.考慮到程序晉級的可能,我們還要選擇較大容量的內存c.最后要注意的那么是所選處理器是否可以長期供貨,這一點的重要性遠遠大于處理器的價格除了上面的考慮之外,使用周期本錢也是在設計之初要考慮的因素??偟膩碚f,消費的部件越多,那么可以承受的前期開發(fā)本錢也就越大。假如產品是mp3,我們可能會選擇一個低價微處理器,同時投入一大筆錢來開發(fā)控制mp3的軟件。但假如我們的產品是價格昂貴的工業(yè)用設備,那么在產品的使用期內,該設備的銷售量將只有幾百臺,毫無疑問,開發(fā)這種產品最重要的就是降低開發(fā)本錢〔降低開發(fā)本錢而不是硬件本錢!〕;除此之外,工業(yè)產品的本錢也不像家用電器或消費電子產品那么敏感。綜上所述,開發(fā)工業(yè)產品當然要選擇一種便于進展開發(fā)并且有助于縮短開發(fā)過程的處理器。2.12.處理器相關資料是否豐富假如該款處理器在市場上已經用得很廣了,那么我們可以獲取更多的相關資料,觀察人家的產品是如何使用處理器的,也能在網(wǎng)絡上找到不少的相關的設計資料以及相關技術主題,這樣就進一步降低了技術門檻,確保了使用該處理器做產品可行性,減低了風險;反之,假如是廠商全新推出的處理器,因為市場上還沒有可以借鑒的產品,我們就只能從全英文的芯片手冊開場閱讀,理解這款芯片,這樣開發(fā)周期不僅變長,而且不可預知的風險也很大。3.開發(fā)本錢的預測和估計大多數(shù)工程或產品都有專人負責預測整個過程的開發(fā)本錢,對于任何工程來說,其開發(fā)本錢主要包括人力和材料開銷。預測開發(fā)本錢在很大程度上需要根據(jù)經歷,這也是為什么大型公司一般指定有經歷的高級工程師來完成這一任務的原因,除了人力和材料的開銷之外,總結下來,還有以下的開銷:1〕人力本錢〔開發(fā)人員、管理人員、銷售人員、其他行政等輔助人員〕的開銷2〕材料〔硬件物料和損耗,有時候需要投幾次PCB版才把產品穩(wěn)定下來〕的開銷3〕開發(fā)系統(tǒng)和開發(fā)工具軟件的開銷4〕硬件工具的開銷〔例如示波器、仿真器等〕對于整個工程來說,上述的開銷將直接可能導致產品本錢增加,其中人力本錢最為關鍵,尤其是在中國,呵呵4.產品開發(fā)設計文檔〔需要包括硬件和軟件兩個方面〕4.1硬件文檔撰寫思路1〕首先是需求定義或產品規(guī)格:假如這些是產品最終目的的話,那么產品對硬件和軟件的要求就是技術方案的最終目的;對硬件和軟件的要求是從定義用戶界面和系統(tǒng)功能開場的。2〕其次,根據(jù)需求,系統(tǒng)整體定義文檔中給出硬件接口的詳細定義:定義硬件最有效的方法是從需求開場描繪,由于硬件必須支持系統(tǒng)定義的所有功能,因此硬件定義是與系統(tǒng)說明不可分割的;例如,我們設計一個定時器〔事先需求說明定時器不能與個人電腦連接,故無法使用CRT顯示時間〕,我們只有兩種選擇:一種是使用發(fā)光二極管〔LED〕,另一種是使用液晶顯示器件〔LCD〕;盡管LCD的顯示效果比較好,但考慮到定時器要常年位于戶外,并且早期LCD顯示器不能在低溫下工作,最終還是選擇LED設備〔這整個過程描繪了我們硬件選型時的一個思路,這個是親密跟需求掛鉤的〕3〕一旦完成了系統(tǒng)整體說明文檔,就開場進展系統(tǒng)設計:首先要對硬件說明的內容進展細化,包括添加能讓工程師理解的設計意圖,以及軟件工程師圍繞硬件進展程序設計時需要使用的硬件信息等。完成硬件電路板說明文檔后,我們還要在該文檔中增加一個用來描繪系統(tǒng)的原始要求的前言部分,包括說明方案的設計思路和方法,除此之外,還要附上軟件工程師用來對硬件進展控制所需的各類信息,這類信息主要包括如下內容〔軟件工程所需信息〕:---內存和I/O端口地址〔假如需要,還可以提供內存映射圖〕---可用內存容量---狀態(tài)存放器每一位的定義---每個端口管腳的用處---外部設備的驅動方法〔例如,說明輸入定時器電路的時鐘頻率等〕---其他有管軟件人員設計程序需要理解的信息對于比較復雜的系統(tǒng)來說,硬件文檔中經常使用兩個獨立的部分來進展說明;其第一部分用來描繪硬件指標和工作原理,第二部分那么主要為軟件人員提供程序設計需要的信息。4.2軟件文檔撰寫思路1〕軟件文檔與硬件文檔的組織方法類似,軟件要求文檔的主要內容那么是定義軟件要實現(xiàn)的功能;一種是在簡單工程設計過程中,軟件定義也可以只對一種電路板使用的軟件給予描繪;對較復雜的工程來說,由于參與這種工程的軟件人員分別負責設計驅動不同硬件部分的代碼〔同一電路板〕,因此每個軟件人員可能會為自己的設計代碼指定不同的定義,這類軟件說明需要提供以下的內容:---闡述包括需求定義、工程指標、硬件參數(shù)等施行工程需要的內容---說明軟件之間、處理器之間或處理器與其內部器件之間使用的通信協(xié)議:其內容應包括對緩沖區(qū)接口機制、命令/應答協(xié)議、信號控制等協(xié)議的詳細說明。---借助流程圖、偽代碼或者其他可能的方法來描繪軟件的實現(xiàn)方法和過程2〕軟件與硬件所考慮的不同之處〔此經歷方便技術總監(jiān)或其他相關管理者參考,因為無論是多高深的技術管理者,要么是硬件出身,要么是軟件出身,要么就是非技術出身,armjishu里面有少數(shù)軟硬件都精通的高手〕a.軟件的靈敏性遠遠大于硬件,要讓軟件人員搞清楚某個軟件的內部格式是非常困難的任務,解決的方法:詳細定義其他程序員需要理解的編程接口詳細內容,以及其他工程人員在施行開發(fā)工程過程中需要使用的技術細節(jié)信息。b.軟件工程師只有在收到硬件說明文檔后,才有可能知道如何對系統(tǒng)硬件進展操作;而硬件人員一般不需要理解軟件程序的技術細節(jié)。c.由于軟件易于更改,因此程序內容經常會按銷售人員提供的要求發(fā)生變更,在某些情況下,軟件文檔的內容無法及時反映程序的最新變化。d.軟件經常是工程工程最后完成的部分,因此其文檔也經常因時間不夠而欠缺完好。實際上,軟件文檔是否詳細、完好,在某種程度上是與公司或客戶的要求有關的。例如,軍事或國家工程一般要求開發(fā)商就其所有軟件實現(xiàn)的功能提供全面詳細的文檔e.有個潛規(guī)那么,對軟件的要求越復雜,那么需求的正確可能性就越小,這個是經歷之談了,我們需要把準需求這個準繩來做文章,而不是陷入個人主義以及對軟件要求而憑空發(fā)揮自己不實在際的想象。f.我們可以先硬件設計,接著圍繞該硬件編制軟件。雖然實際系統(tǒng)的實現(xiàn)過程可能是軟硬件并行開發(fā),但軟件人員根本上也是圍繞著已經實現(xiàn)的硬件來進展程序設計的;對于更為復雜的系統(tǒng)來說,開發(fā)過程可能會出現(xiàn)重復。例如,某個工程的硬件工程師和軟件工程師可能會坐下來開會,共同決定使用哪種硬件來實現(xiàn)某種功能;軟件人員可能提出需要為數(shù)據(jù)緩沖區(qū)口沖內存容量,也可能要求提供某種外部設備接口,以便充分利用現(xiàn)成接口程序提供的各種驅動代碼??偟膩碚f,必須在進步軟件開發(fā)效率與硬件系統(tǒng)的復雜性與本錢之間進展權衡.5.嵌入式高手對技術的理解〔含辛茹苦這么多年的精華體驗〕有很多人認為:嵌入式系統(tǒng)性能的核心因素是軟件功能,其實,假如按照這種邏輯,系統(tǒng)設計中存在的問題就應由軟件人員來負責;其實這個觀點實際上反映了設計嵌入式產品時如何考慮劃分硬件和軟件各自應實現(xiàn)的功能,也就是這個功能是軟件實現(xiàn),還是考慮用硬件來實現(xiàn)〔硬件實現(xiàn):需要購置處理該

溫馨提示

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

最新文檔

評論

0/150

提交評論