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