從8位、16位微控制器到ARM處理器
——
作者 Mark Moran, IAR東區(qū)經(jīng)理
前言:
ARM7 SoC(Systems-on-chip)價格的下調(diào),給了那些考慮使用此種芯片的嵌入式開發(fā)人員更好的選擇。降價節(jié)省的費用將在短期內(nèi)和長期內(nèi)得到檢驗,同時得到檢驗的還有那些因采用ARM7而對價格下降施壓的其他因素。一些移植的問題也將在選擇開發(fā)軟件時考慮到,短期或長期使用對整個開發(fā)以及最終產(chǎn)品費用的影響。ARM7提供了非常好的機會推動那些原來使用8位或16位機的開發(fā)人員轉(zhuǎn)而使用32位處理器。
“從經(jīng)濟的角度上說,他是愚蠢的!”,這句話是1992年美國大選時克林頓批評布什的非官方競選標語,它或許能恰當?shù)挠玫酵瑫r代的嵌入式系統(tǒng)設(shè)計中去,因為研發(fā)人員不得不從各個能想到的角度去使成本最低。國內(nèi)外的競爭使得產(chǎn)品利潤越來越低,而設(shè)計的最終期限讓人期待,上市逾早,市場愈容易占領(lǐng),利潤也逾大。成本、性能、上市時間是鐵三角關(guān)系,而這三角關(guān)系會一直困擾、折磨著產(chǎn)品的設(shè)計研發(fā)工程師,即使是調(diào)和三者的關(guān)系都非常的困難。
去年的嵌入式市場,基于ARM7TDMI內(nèi)核的SoC(級芯片)微控制器吸引了很多人的注意。它們集成了更多的外設(shè),價格也更具有競爭力,小型的封裝,通用的外設(shè),可配置的存儲器以及快的令人瞠目的頻率。本文將把注意力基本放在ARM7 SoC上,檢查它對“鐵三角”關(guān)系的沖擊,并且討論那些有時在目標相沖突的時候必須被加以考慮以獲得最佳的利潤的因素。在考慮是否會在設(shè)計中選擇某一部分的時候,研發(fā)人員必須考慮短期的和長期的不同。
在短期,主要的因素是芯片價格,功能以及開發(fā)的費用。長期的因素包括潛在的芯片替代,軟件維護的費用:程序缺陷的維護以及功能的擴展。我們將把注意力依次集中到這些因素,看看ARM結(jié)構(gòu)是如何在價格和性能方面朝著有利的方向前進。
ARM7 SoC的性價比達到前所未有的高度,這并不是什么秘密。ARM7 SoC主要的比較對象是傳統(tǒng)的8位、16位的微控制器。長時間占據(jù)低端市場的8位微控制器正越來越感受到ARM7 SoC的壓力。例如,一片傳統(tǒng)的8位微控制器,10 MIPS的執(zhí)行速度,帶有64K的Flash,4K的RAM,ADC,3個定時器,EEPROM,SPI,UART,芯片引腳在40到46之間,僅僅購買幾片的話,價格大約在7.5美元。而除了RAM容量不同外,其他配置一樣的ARM7 SoC,僅僅購買幾片的話,價格大約在4美元到5.5美元。當然,不可能與種類繁多的8位微控制器一件一件的進行比較,但是,上面比較的是主要的部分,你或許希望有1K的EEPROM,然而ARM7 SoC是沒有的。從另一方面說,那些隊成本特別在意的人或許會希望ARM7內(nèi)有16K的RAM。與16位的控制器比較也存在類似的情況。當采用單片機設(shè)計最終的產(chǎn)品,每片多花費2到3美元可導致公司在此產(chǎn)品退出市場前總共要多花費幾萬或者幾十萬英鎊。
許多8位機的資深研發(fā)人員通常會對要閱讀ARM7的手冊感到頭疼。相比ARM7寄存器的設(shè)置,8位機的控制寄存器的設(shè)置顯得相當簡單。的確,當寫ARM7片內(nèi)外設(shè)的驅(qū)動時,需要處理更多的寄存器。本文作者也曾試著看那些設(shè)備的驅(qū)動是否可以省時省力在合理的框架內(nèi)編寫,可是最終的曙光在最后被遮擋:ARM的寄存器數(shù)量有時會因設(shè)備的狀態(tài)、創(chuàng)建和消除例子而膨脹。換言之,8位機可能有一個R/W寄存器來處理,而要達到同樣的效果,ARM結(jié)構(gòu)或許需要三個寄存器處理。另外一件與“寄存器膨脹”相關(guān)的是向量中斷控制器(VIC),VIC擁有一些寄存器來控制優(yōu)先級以及配置中斷。這是學習曲線上的一次性投入,好消息是一旦研發(fā)人員熟練的寫各個寄存器來設(shè)置以及清除sfr,那么對ARM外設(shè)的操作就會和8位、16位一樣得心應(yīng)手。
在價格的比較中,我們提到對成本特別敏感的使用者通常會希望ARM有8K、16K甚至32K的RAM,而且要比帶有4KRAM的8位或16位機更加便宜。這開啟了一個有趣的可能性,那就是在合并了像TCP/IP堆棧,嵌入式文件系統(tǒng)以及用戶圖形界面后,可以大大增進產(chǎn)品的性能。它也把使用RTOS比用8位、16位機變得更加有吸引力。聰明的讀者或許要指出購買RTOS是一筆額外的費用,違反了把設(shè)置成本最小化的思想。然而事實上是所用的RTOS值的花錢,同時它在產(chǎn)品的維護與升級方面表現(xiàn)出巨大的潛力,可以省去不菲的費用。一旦如何使用RTOS的學習曲線被克服,使用這樣的工具往往可以使軟件設(shè)計更加的系統(tǒng)化。功能的外擴通常會相當?shù)娜菀?,而且在增加?yīng)用的時候,可以按有關(guān)要求做較少的衰減測試。簡而言之,軟件的開發(fā)是費力又費錢的,軟件的維護更是如此,所有可以減少此種費用的方法都是很好的事情。
大多數(shù)RTOS的賣主都有白皮書或其他信息,很容易地可以幫助研發(fā)人員決定某個RTOS是否適合他們的應(yīng)用。從8位、16位領(lǐng)域轉(zhuǎn)過來的研發(fā)人員,過去習慣于在沒有RTOS的情況下達到目的他們會發(fā)現(xiàn)大多數(shù)ARM7 SoC擁有足夠的資源使用RTOS而無須擔心成本底線??傊?,如果你懷疑RTOS對你產(chǎn)品效益的長期利益,現(xiàn)在你可以全力以赴的用它了,因為它無須額外的存儲器。
嵌入式系統(tǒng)另外的一個引人注目的成本是研發(fā)工具。現(xiàn)在有許多高水平的語言開發(fā)工具供選擇,并且每天都有新的面市。這些工具從沒有初始費用的GNU工具到各種不同價格不同性能的付費工具。盡管ARM7 SoC擁有良好的價格與資源配置,從8位、16位轉(zhuǎn)過來的研發(fā)人員在使用這些工具幾年后,將很好的回憶起所有的寫出高效代碼的范例。
內(nèi)存仍舊是影響成本最大的因素。值得牢記的是ARM編譯器實際上是兩個,一個為ARM,另外一個為Thumb指令模式。擁有較高的代碼密度的Thumb指令結(jié)構(gòu)是節(jié)約資源以及成本的鑰匙。使用Thumb模式代碼緊湊程度至少等于,在許多例子還要優(yōu)于8位、16位控制器所能達到的程度。
ARM7 SoC的使用者值得認真地評估編譯器的效率而先不管它增加的成本,盡管編譯的結(jié)果可靠,GNU編譯器并非在代碼優(yōu)化方面做得最好。高質(zhì)量的代碼優(yōu)化值得考慮,ARM7 SoC的一個普通應(yīng)用就是典型的代表。這樣的應(yīng)用分別需要128K和256K字節(jié)的Flash,16K的SRAM,4通道的10位ADC,2個UART、SPI、I2C,可以在線編程以及跟蹤調(diào)試,LQTP64封裝。在北美,購買5K的話,每片大約分別需要6.09美元與6.84美元,一件0.75美元的差價,如果賣出5000件那就是要多支出3750美元。經(jīng)過一般編譯器優(yōu)化后需要256K的代碼,在經(jīng)過有高度優(yōu)化能力的編譯器編譯后可以只用128K。
一旦有更多的外設(shè)集成到芯片,性價比相差就更大了。例如,帶有CAN控制器的ARM芯片才多花費0.85美元。這些進一步減少編譯器的花費所占的比重,這些工具每年可以節(jié)省12500美元到2000美元。
最近上市的ARM7 SoC內(nèi)帶DAC,引腳加多,帶有128K存儲器的要比256K存儲器的ARM芯片低2.52美元。這樣,用量5K工具的花費更少,大約在1190片就可以收回成本,整個下來可以節(jié)省9601美元。
最后,一種內(nèi)帶USB控制器的新型ARM7 SoC帶有128K存儲器的要比256K存儲器的ARM芯片低2.78美元,整個下來可以節(jié)省10900美元。當然,個別的情況會有出入,但是很清楚的是高質(zhì)量的編譯器不但可以節(jié)省下它自己的費用,而且從長遠來看,還可以為公司增加收入,如下表所示。
外設(shè) 帶有128k Flash與256K Flash的差價 假設(shè)編譯器3K美元,收回成本的芯片數(shù)目 購買開發(fā)工具總共可以節(jié)省的費用
4通道,10位ADC
2個UAR,WDG,2個I2C,2個SPI,IAP,ISP,LQFP64 0.75美元 4000 750
8通道,10位ADC
2個UAR,2個I2C,2個SPI,4個16位的定時器,6通道的PWM,DAC WDG,LQFP64 9.34-7.49=1.85美元
本例是128K的Flash與64K Flash比較 1.622 6248
4通道,12位ADC
WDG,RTC,4個UART,2個I2C,2個SPI,5個16位的定時器,USB,LQFP64 14.16-11.38=2.73美元 1079 10900
另外,高質(zhì)量編譯器的使用者一般希望能夠從廠家得到直接的技術(shù)支持。而如前面所述,軟件已經(jīng)成為整個項目中勞動密集型、最費錢的環(huán)節(jié),編譯器可以節(jié)省重復性勞動。進一步說,在競爭激烈的現(xiàn)在,上市時間至關(guān)重要,即便是晚上幾天,幾周之內(nèi)損失的利益都會超過開發(fā)工具的費用。
在軟件開發(fā)的預(yù)算中,調(diào)試通常占據(jù)重要的角色。有多少軟件工程師就幾乎有相同數(shù)量的軟件調(diào)試思想與方法。不過,大多數(shù)人傾向于采用好用且準確的JTAG調(diào)試方法而不采用傳統(tǒng)的嵌入式調(diào)試技術(shù)。因為價格與時鐘頻率的問題,in-circuit仿真器已經(jīng)不再被采用。市場上有各種各樣的JTAG調(diào)試器,在考慮采用哪個調(diào)試器時,有三種重要的因素決定著調(diào)試器的價格:速度,跟蹤能力以及front-end軟件特性。對于大多數(shù)ARM7 SoC來說,各種調(diào)試器的價格有幾百英鎊的差距可供選擇。有些可以達到每秒128K比特的速度,這些調(diào)試器一般可以和同時代的編譯器聯(lián)合使用。跟蹤調(diào)試的能力因需要跟蹤宏單元執(zhí)行而使調(diào)試器價格相差幾千美元,它是影響調(diào)試器價格的主要因素。高級調(diào)試軟件的特性,例如精確控制中斷觸發(fā)以及其他類似的特性,通??梢栽谟布{(diào)試器上發(fā)現(xiàn)。大多數(shù)情況,包括ARM7 SoCs,許多研發(fā)人員傾向于使用一個物美價廉且易學易用的調(diào)試器。
如同諺語所說,所有的事情,除了死亡與納稅之外,在生命里都沒有保證。然而,可以打賭的是,將來ARM結(jié)構(gòu)應(yīng)用將越來越廣泛。ARM主要芯片廠商,如Atmel, Cirrus Logic, Intel, Freescale, Oki, Philips, Samsung, Sharp, STMicroelectronics, Texas Instruments以及其他提供某種ARM結(jié)構(gòu)的廠家,完全可以確保嵌入式市場。唯一可能使設(shè)計者做噩夢的是許多人預(yù)言ARM將會如現(xiàn)在的8051一樣,曾經(jīng)風光無限,早晚會淡出市場。
ARM結(jié)構(gòu)另外一個非常吸引人的優(yōu)點是有無盡的發(fā)展空間。ARM7的MIPS不夠的話?可以換ARM9或者ARM11!精挑細選的工具集會支持這些結(jié)構(gòu)。需要比討論的更廉價的芯片碼?盡管沒有正式的公布,市場上強烈的暗示基于Cortex內(nèi)核的運行改造的Thumb指令結(jié)構(gòu),此結(jié)構(gòu)就是大家所知的Thumb-II,將要繼續(xù)在芯片價格上施壓。一美元可以買到一片32位CPU嗎?現(xiàn)在還不知道,不過可以推斷以當前的趨勢,在不久的將來芯片的價格會達到這樣的價格。
參考資料:1)www.iar.com
2)www.bmrtech.com
評論