嵌入式開發(fā)的設(shè)計模式及發(fā)展趨勢
經(jīng)過20多年的發(fā)展,單片機(jī)品種不斷增多,功能不斷增強(qiáng),應(yīng)用范圍不斷擴(kuò)大,開發(fā)時間(Time to Market)要求越來越短。為了節(jié)省時間,嵌入式微處理器在16位和32位應(yīng)用場合得到使用,大量的微機(jī)程序可直接引用。
在軟件開發(fā)上,由匯編語言編程、高級語言C語言編程,轉(zhuǎn)向在實時操作系統(tǒng)(Real Time Operating System,簡稱RTOS)之上編程。
在硬件設(shè)計上,由使用分立元件和微機(jī)接口芯片轉(zhuǎn)向更加集成化的設(shè)計模式——CPU+PLD+AD/DA。
CPU即 MCU或MPU, PLD即可編程邏輯器件。模數(shù)混合的集成電路很難設(shè)計生產(chǎn),現(xiàn)階段AD/DA即模數(shù)和數(shù)模轉(zhuǎn)換器等模擬電路還采用傳統(tǒng)的設(shè)計方法。PLD芯片可以在系統(tǒng)編程ISP(In System Programming),硬件已經(jīng)軟化,隨時可以進(jìn)行修改。
1999年全國大學(xué)生電子設(shè)計競賽和許多產(chǎn)品的硬件設(shè)計已采用這種設(shè)計模式。為進(jìn)一步縮短開發(fā)時間、加強(qiáng)管理,平臺觀念已逐步引入到產(chǎn)品的設(shè)計開發(fā)過程中。從隨意性開發(fā)轉(zhuǎn)向平臺開發(fā)模式是嵌入式應(yīng)用軟硬件設(shè)計開發(fā)的發(fā)展趨勢。
軟件開發(fā)
單片機(jī)生產(chǎn)廠家不斷增多,單片機(jī)品種層出不窮。單片機(jī)廣泛選擇是當(dāng)今產(chǎn)品開發(fā)的一個重要環(huán)節(jié)。每個單片機(jī)系列的指令系統(tǒng)不同,與指令系統(tǒng)對應(yīng)的匯編助記符就不同。匯編語言的不兼容性使得在一種單片機(jī)上編制的程序,在另一種單片機(jī)上不能運行,單片機(jī)重新選型后程序必須重新編制。匯編語言的難記、難讀及易搞混,每個匯編程序員深有同感。自己編制的程序過一段時間修改時,往往要重讀很大部分,經(jīng)過長時間回憶才能找到問題所在。修改別人留下的匯編源程序,若程序的注釋說明不詳細(xì)、程序的思路不清晰、子程序使用不夠多的話,還不如自己重新編制。
用C語言編程是單片機(jī)軟件開發(fā)的必然趨勢。C語言是一種編譯型程序設(shè)計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。 C語言有功能豐富的庫函數(shù)、運算速度快、編譯效率高、可移植性好,而且可以直接實現(xiàn)對系統(tǒng)硬件的控制。C語言是一種結(jié)構(gòu)化程序設(shè)計語言,支持當(dāng)前程序設(shè)計中廣泛采用的由頂向下結(jié)構(gòu)化程序設(shè)計技術(shù)。
采用C語言也不必對單片機(jī)和硬件接口的結(jié)構(gòu)有很深入的了解,編譯器可以自動完成變量存儲單元的分配,編程者專注于應(yīng)用軟件部分的設(shè)計即可,這樣大大加快了軟件的開發(fā)速度。采用C語言可以很容易地進(jìn)行單片機(jī)的程序移植工作,有利于產(chǎn)品中單片機(jī)的重新選型。
采用C語言,可針對單片機(jī)常用的接口芯片編制通用的驅(qū)動函數(shù),針對常用的功能模塊、算法等編制相應(yīng)的函數(shù)。這些函數(shù)經(jīng)過歸納整理可形成專家?guī)旌瘮?shù),供廣大的單片機(jī)愛好者使用、完善,這樣可大大提高國內(nèi)單片機(jī)軟件設(shè)計水平。C語言可讀性的特點,更容易使大家借鑒前人的開發(fā)經(jīng)驗,提高自己的軟件設(shè)計水平。
對于C語言生成代碼的時空效率,一般來講,程序代碼長度增加20%,程序執(zhí)行速度約減慢20%。這在片內(nèi)程序存儲器不斷擴(kuò)大、晶振頻率不斷提高的今天,已不是主要考慮的問題。
況且,這是和優(yōu)秀的匯編程序員編制代碼的比較。當(dāng)然,非常注重代碼效率的場合可以是以C語言為主,匯編語言為輔。匯編語言掌握到只要可以讀懂程序,在時間要求比較嚴(yán)格的模塊中進(jìn)行程序的優(yōu)化即可。在可移植性方面,單片機(jī)C語言都符合ANSI C標(biāo)準(zhǔn),差別主要是有關(guān)片內(nèi)資源的不同配置及使用,這可以通過采用不同的頭文件,經(jīng)過少量的加工就可以實現(xiàn)。
隨著國內(nèi)單片機(jī)開發(fā)工具研制水平的提高,現(xiàn)在的單片機(jī)仿真器普遍支持C語言程序調(diào)試,為單片機(jī)編程使用C語言提供了便利的條件。單片機(jī)的C語言相對微機(jī)的C語言要好學(xué)得多,它沒有微機(jī) C語言有關(guān)文件的使用,也不必掌握標(biāo)準(zhǔn)輸入輸出設(shè)備有關(guān)的格式要求。
評論