比較AVR和ARM,談?wù)勏嗤c區別
AVR我用過(guò)2個(gè)月,ARM我只看過(guò)2本書(shū),所以,說(shuō)的有錯請各位指教。
這里我們討論的AVR和ARM都是泛指,就是說(shuō),包括所有機器指令集和這兩個(gè)體系的都通用的眾多芯片,不單單指某項技術(shù)或者某塊芯片。
首先是相同點(diǎn),兩者都是現代的CPU設計范例,基于RISC的指導思想,在體系設計初期時(shí)就充分考慮到了CPU內核面積,速度,高級語(yǔ)言支持等很多因素。又吸取了51、x86等20年前就商業(yè)化的體系所暴露出的問(wèn)題,所以從現代眼光來(lái)看,都是非常先進(jìn)的設計。最重要,GCC對ARM和AVR都提供了相當好支持,而且可以免費使用。網(wǎng)上,特別是外國網(wǎng)上都有很多開(kāi)放資源可以參考。兩者在國內都屬于市場(chǎng)引入階段。銷(xiāo)售方面,各有兩大著(zhù)名國內MCU公司做代理,而且巧合的是都是來(lái)自廣東的奸商(哈,開(kāi)玩笑,勿當真)。
AVR和ARM的區別就比較多了:
ARM是IP核,可供各大芯片商集成到各自的設計中,好比是軟件語(yǔ)言中的C++,如果你想換一家廠(chǎng)商或者某家的貨太貴,都會(huì )有其它的廠(chǎng)商來(lái)競爭,至少從理論上,你不會(huì )被一家廠(chǎng)商套住。
AVR這方面就差點(diǎn),ATMEL一家,別無(wú)分號。你只能在他的系列中選一個(gè)型號,無(wú)法選廠(chǎng)家。好比是軟件語(yǔ)言中的Java,雖然現在免費(指Java的SDK,不是AVR)或價(jià)格低,但市場(chǎng)前景更多的掌握在廠(chǎng)商手中。
實(shí)際產(chǎn)品成本方面,AVR優(yōu)于A(yíng)RM,畢竟AVR是8位機,配什么外設都便宜,由于速度比ARM低,PCB版也好設計,20MHz的數字電路基本上只要通就行了,不用過(guò)多考慮信號完整性什么的。而ARM的速度能輕易上100MIPS,32位的CPU也不是吹的,速度上AVR根本沒(méi)法比,不過(guò)帶來(lái)的問(wèn)題就多了,要4層PCB,而且外設也貴多了。
功能方面,ARM大大優(yōu)于A(yíng)VR,ARM可以做PDA,手機,AVR顯然不行,最糟糕的是ARM上可以跑Linux,Linux可以做多少事啊,雖說(shuō)國內實(shí)際在A(yíng)RM平臺上跑出Linux而又愿意公開(kāi)技術(shù)的人幾乎沒(méi)有(我正在努力朝這個(gè)方向發(fā)展),但前途絕對是光明的。功能上的優(yōu)勢意味著(zhù)ARM比AVR有著(zhù)更廣的應用范圍,所以,雙龍耿先生所說(shuō)的“中學(xué)用AVR”如果是對的話(huà),大學(xué)里就應該用ARM。
外設方面AVR稍強,實(shí)際上我們可以看到Atmel公司的基于A(yíng)RM核的AT91M55800A包括了很多AVR的外設,但還缺TWI/I2C,可變增益ADC,EEPROM等好用的部件。但毫無(wú)疑問(wèn),ARM的外擴外設能力比AVR強的多,所以外設方面算平手吧
操作系統和軟件源碼資源方面,ARM拜Linux之賜,比AVR有優(yōu)勢點(diǎn)。但AVR上的嵌入式操作系統也不是沒(méi)有,uC/OS-II就不錯,如果能在Mega8515等便宜的芯片上跑起來(lái)的話(huà),我看350元的ARM版也難賣(mài),這一點(diǎn)雙龍不知有沒(méi)有計劃?
調試手段方面,ARM應該優(yōu)于A(yíng)VR,AVR就一個(gè)JTAG接口的仿真器我個(gè)人還可以買(mǎi)一下,但所支持芯片有限,ARM方面書(shū)上有相當多的方法調試,這里我不熟也缺經(jīng)驗,就不瞎說(shuō)了。
最后來(lái)個(gè)有個(gè)性的結尾,鑒于GCC對AVR和ARM的支持都很好,所以我決定都好好學(xué),這里順便給GCC打個(gè)廣告,大家也看得出RISC的MCU最好還是直接使用C語(yǔ)言,GCC編譯器顯然是最明智的選擇。
評論