嵌入式系統(tǒng)設(shè)計(jì)的過程
按照常規(guī)的工程設(shè)計(jì)方法, 嵌入式系統(tǒng)的設(shè)計(jì)可以分成 3 個(gè)階段: 分析, 設(shè)計(jì)和實(shí)現(xiàn)。分析階段是確定要解決的問題及需要完成的目標(biāo), 也常常被稱為需求階段; 設(shè)計(jì)階段主要是解決如何在給定的約束條件下完成用戶的要求; 實(shí)現(xiàn)階段主要是解決如何在所選擇的硬件和軟件基礎(chǔ)上進(jìn)行整個(gè)軟、硬件系統(tǒng)的協(xié)調(diào)實(shí)現(xiàn)。在分析階段結(jié)束后, 開發(fā)者通常面臨的一個(gè)棘手的問題就是硬件平臺(tái)和軟件平臺(tái)的選擇, 因?yàn)樗暮脡闹苯佑绊懼鴮?shí)現(xiàn)階段任務(wù)的完成。
通常, 硬件和軟件的選擇包括處理器、硬件部件、操作系統(tǒng)、編程語言、軟件開發(fā)工具、硬件調(diào)試工具、軟件組件等。在上述選擇中, 處理器往往是最重要的, 操作系統(tǒng)和編程語言也是非常關(guān)鍵的。處理器的選擇常常會(huì)限制操作系統(tǒng)的選擇,操作系統(tǒng)的選擇又會(huì)限制開發(fā)工具的選擇。
硬件平臺(tái)的選擇
處理器的選擇
嵌入式系統(tǒng)的核心部件是各種類型的嵌入式處理器。據(jù)不完全統(tǒng)計(jì), 目前全世界嵌入式處理器的品種總量已經(jīng)超過 1000 多種, 流行體系有 30 幾個(gè)系列。但與全球 PC 市場不同的是。沒有一種微處理器和微處理器公司可以主導(dǎo)嵌入式系統(tǒng), 僅以 32 位的CPU 而言, 就有 100 種以上嵌入式微處理器。由于嵌入式系統(tǒng)設(shè)計(jì)的差異性很大, 因此選擇是多樣化的。ARM 是近年來在嵌入式系統(tǒng)有影響力的微處理器架構(gòu),ARM的設(shè)計(jì)非常適用于小型的嵌入式設(shè)備。
設(shè)計(jì)者在選擇處理器時(shí)要考慮的主要因素有:
① 處理性能。一個(gè)處理器的性能取決于多個(gè)方面的因素,如時(shí)鐘頻率,內(nèi)部寄存器的大小,指令是否對(duì)等處理所有的寄存器等。對(duì)于許多需用處理器的嵌入式系統(tǒng)設(shè)計(jì)來說,目標(biāo)不是在于挑選速度最快的處理器,而是在于選取能夠完成作業(yè)的處理器和I/O子系統(tǒng)。如果是面向高性能的應(yīng)用設(shè)計(jì),那么建議考慮某些新的處理器,其價(jià)格相對(duì)低廉,如IBM和Motorola Power PC。
② 技術(shù)指標(biāo)。當(dāng)前,許多嵌入式處理器都集成了外圍設(shè)備的功能,減少了芯片的數(shù)量,降低了整個(gè)系統(tǒng)的開發(fā)費(fèi)用。開發(fā)人員首先考慮的是,系統(tǒng)所要求的一些硬件能否無需過多的膠合邏輯(GL,Glue Logic)就可以連接到處理器上。其次是考慮該處理器的一些支持芯片,如DMA控制器,內(nèi)存管理器,中斷控制器,串行設(shè)備、時(shí)鐘等的配套。
③ 功耗。嵌入式微處理器最大并且增長最快的市場是手持設(shè)備、電子記事本、PDA、手機(jī)、GPS導(dǎo)航器、智能家電等消費(fèi)類電子產(chǎn)品。這些產(chǎn)品中選購的微處理器,典型的特點(diǎn)是要求高性能、低功耗。許多CPU生產(chǎn)廠家已經(jīng)進(jìn)入了這個(gè)領(lǐng)域。今天,用戶可以買到一顆嵌入式的微處理器,其速度像筆記本中的Pentium一樣快;而它僅使用普通電池供電即可,并且價(jià)格很便宜。如果用于工業(yè)控制,則對(duì)這方面的考慮較弱。
④ 軟件支持工具。僅有一個(gè)處理器,沒有較好的軟件開發(fā)工具的支持也是不行的,因此選擇合適的軟件開發(fā)工具對(duì)系統(tǒng)的實(shí)現(xiàn)會(huì)起到很好的作用。
⑤ 是否內(nèi)置調(diào)試工具。處理器如果內(nèi)置調(diào)試工具可以大大縮小調(diào)試周期,降低調(diào)試的難度。
⑥ 供應(yīng)商是否提供評(píng)估板。許多處理器供應(yīng)商可以提供評(píng)估板來驗(yàn)證理論是否正確,決策是否得當(dāng)。
硬件選擇的其它因素
首先, 需要考慮的是生產(chǎn)規(guī)模。如果生產(chǎn)規(guī)模比較大, 可以自己設(shè)計(jì)和制備硬件, 這樣可以降低成本。反之, 最好從第三方購買主板和 I/O 板卡。
其次, 需要考慮開發(fā)的市場目標(biāo), 如果想使產(chǎn)品盡快發(fā)售, 以獲得競爭力, 就要盡可能購買成熟的硬件。反之, 可以自己設(shè)計(jì)硬件, 降低成本。
另外, 軟件對(duì)硬件的依賴性, 即軟件是否可以在硬件沒有到位的時(shí)候并行設(shè)計(jì)或先行開發(fā)也是硬件選擇的一個(gè)考慮因素。
最后, 只要可能, 盡量選擇使用普通的硬件。在 CPU 及架構(gòu)的選擇上, 一個(gè)原則是: 只要有可替代的方案, 盡量不要選擇 LINUX尚不支持的硬件平臺(tái)。
3、軟件平臺(tái)的選擇
嵌入式軟件的開發(fā)流程, 主要涉及代碼編程、交叉編譯、交叉連結(jié)、下載到目標(biāo)板和調(diào)試等幾個(gè)步驟, 因此軟件平臺(tái)的選擇也涉及操作系統(tǒng)、編程語言和集成開發(fā)環(huán)境 3 個(gè)方面。
① 操作系統(tǒng)提供的開發(fā)工具。有些實(shí)時(shí)操作系統(tǒng)(RTOS)只支持該系統(tǒng)供應(yīng)商的開發(fā)工具,因此,還必須向操作系統(tǒng)供應(yīng)商獲取編譯器、調(diào)試器等;而有些操作系統(tǒng)使用廣泛,且有第三方工具可用,因此,選擇的余地比較大。
② 操作系統(tǒng)向硬件接口移植的難度。操作系統(tǒng)到硬件的移植是一個(gè)重要的問題,是關(guān)系到整個(gè)系統(tǒng)能否按期完工的一個(gè)關(guān)鍵因素。因此,要選擇那些可移植性程度高的操作系統(tǒng),避免操作系統(tǒng)難以向硬件移植而帶來的種種困難,加速系統(tǒng)的開發(fā)進(jìn)度。
③ 操作系統(tǒng)的內(nèi)存要求。均衡考慮是否需要額外花錢去購買RAM或EEPROM來迎合操作系統(tǒng)對(duì)內(nèi)存的較大要求。
④ 開發(fā)人員是否熟悉此操作系統(tǒng)及其提供的API。
⑤ 操作系統(tǒng)是否提供硬件的驅(qū)動(dòng)程序,如網(wǎng)卡等。
⑥ 操作系統(tǒng)的可剪裁性。有些操作系統(tǒng)具有較強(qiáng)的可剪裁性,如嵌入式Linux、Tornado/VxWorks等等。
⑦ 操作系統(tǒng)的實(shí)時(shí)性能。
[NextPage]
集成開發(fā)環(huán)境考慮的因素
集成開發(fā)環(huán)境IDE(Integrated Development Environment)應(yīng)考慮以下因素:
① 系統(tǒng)調(diào)試器的功能。系統(tǒng)調(diào)試特別是遠(yuǎn)程調(diào)試是一個(gè)重要的功能。
② 支持庫函數(shù)。許多開發(fā)系統(tǒng)提供大量使用的庫函數(shù)和模板代碼,如大家比較熟悉的C++編譯器就帶有標(biāo)準(zhǔn)的模板庫。它提供了一套用于定義各種有用的集裝、存儲(chǔ)、搜尋、排序?qū)ο蟆Ec選擇硬件和操作系統(tǒng)的原則一樣:除非必要,盡量采用標(biāo)準(zhǔn)的 glibc。
③ 編譯器開發(fā)商是否持續(xù)升級(jí)編譯器。
④ 連接程序是否支持所有的文件格式和符號(hào)格式。
硬件調(diào)試工具的選擇
好的軟件調(diào)試程序可以有效地發(fā)現(xiàn)大多數(shù)的錯(cuò)誤,但是如果再選擇一個(gè)好的硬件調(diào)試就會(huì)達(dá)到事半功倍的效果。常用的硬件調(diào)試工具有以下幾種:
① 實(shí)時(shí)在線仿真器(ICE,In-Circuit Emulator)。用戶從仿真插頭向ICE看,ICE應(yīng)是一個(gè)可被控制的MCU。ICE是通過一根短電纜連接到目標(biāo)系統(tǒng)上的。該電纜的一端有一個(gè)插件,插到處理器的插座上,而處理器則插到這個(gè)插件上。ICE支持常規(guī)的調(diào)試操作,如單步運(yùn)行、斷點(diǎn)、反匯編、內(nèi)存檢查、源程序級(jí)的調(diào)試等等。
② 邏輯分析儀。邏輯分析儀最常用于硬件調(diào)試,但也可用于軟件調(diào)試。它是一種無源器件,主要用于監(jiān)視系統(tǒng)總線的事件.
③ ROM仿真器。ROM仿真器用于插入目標(biāo)上的ROM插座中的器件,用于仿真ROM芯片。可以將程序下載到ROM仿真器中,然后調(diào)試目標(biāo)上的程序,就好像程序燒結(jié)在PROM中一樣,從而避免了每次修改程序后直接燒結(jié)的麻煩。
④ 在線調(diào)試OCD或在線仿真(on-chip emulator)
特別的硅基材料以及定制和CPU引腳的串行連接,在這種特殊的CPU芯片上使用OCD (On-Chip Debugging),才能發(fā)揮出OCD的特點(diǎn)。用低端適配器就可以把OCD端口和主工作站以及前端調(diào)試軟件連接起來。從OCD的基本形式看來,它的特點(diǎn)和單一的ROM監(jiān)測器是一致的,但是不像后者那樣,需要專門的程序以及額外的通信端口。
嵌入式領(lǐng)域CPU選擇參考:
ARM:三星 Micrel
PPC:Freescale IBM
X86:Intel
IDE參考:
Tornado + vxworks:windriver
linux:montavista
ads:freescale(motorola)
我個(gè)人感覺現(xiàn)在在嵌入式系統(tǒng)設(shè)計(jì)中一個(gè)比較頭疼的問題就是方案的選型,很多好的產(chǎn)品之所以成功,很大一部分功勞就是它成功的選型。這方面是一個(gè)不斷積累的過程。CPU的選型是所有選型中的重中之重,很重要。國內(nèi)有些廠家在生長消費(fèi)類產(chǎn)品時(shí),一味選擇便宜的cpu和硬件模塊,而忽視一些其它模塊(軟件模塊)的重要性,導(dǎo)致研發(fā)周期變長,甚至流產(chǎn),所以我們?cè)谧鲈O(shè)計(jì)時(shí),一定要全盤考慮清楚。總體說來,電子產(chǎn)品的設(shè)計(jì)有如下一些選型:
設(shè)計(jì)工具(原理圖和pcb):考慮protel容易上手,建議用它。cadence功能強(qiáng)大,也可以考慮,其它的有powerpcb等。
設(shè)計(jì)平臺(tái):windows xp + linux(架站和軟件維護(hù))
cpu:處理性能、技術(shù)指標(biāo)(膠合邏輯)、功耗、軟件支持工具、是否內(nèi)置調(diào)試器、是否提供評(píng)估板、價(jià)格
操作系統(tǒng)選擇:開發(fā)工具(gcc、gdb,是否有第三方工具等)、硬件接口移植難度、內(nèi)存要求、API是否容易熟悉、是否提供硬件驅(qū)動(dòng)(網(wǎng)口)、是否可以剪裁、實(shí)時(shí)性能、價(jià)格等
IDE選擇:是否容易上手、是否持續(xù)更新、編譯調(diào)試器功能是否強(qiáng)大。
硬件仿真器:一般做開發(fā)應(yīng)用。
新聞熱點(diǎn)
疑難解答
圖片精選