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