概述
我以為這樣比沒有意義,做嵌入式系統最大特征是“嵌入”二字,也就是說你的控制系統是嵌入于你的控制對象之中,所以首先是服從于對象的需求和特征,脫離對象空論誰好誰壞有何依據?
每個MCU都有其存在的價值,每個使用者的選擇都有其道理,AVR開始時是以單時鐘周期指令為賣點,相對于當時 12個時鐘的經典51確實有優勢,而且基于CMOS的特征,時鐘越高功耗越大,所以它在能耗上似乎明顯占優。
可隨著技術的改進,51現在已經早就有了4時鐘周期,`2時鐘周期乃至單時鐘周期的芯片了,此時AVR的速度優勢已不存在。
如果考慮最高時鐘限制,讀者可以比較一下,似乎AVR的速度還不如某些51快。
如果考慮開發成本,那就更難說了。
至于ARM,有其優勢、有其劣勢,關鍵看你依附的對象需要什么?你的產品最終定位如何?
如果產品利潤空間較大,MCU所占成本有限,不妨提高檔次,也算是個宣傳素材,同時為后續升級留有余地。
如果產品需精打細算,數量龐大,省1分錢都能帶來巨大的利潤,那MCU則是夠用即可,哪怕開發再不方便,那也只是一次開支,何況中國的工程師并不貴 : (
所以,學習單片機無所謂選那款,關鍵在于你能否掌握其本質,快速的觸類旁通,你的產品是否成功就在于你能否最佳的選擇好符合嵌入對象特征的MCU。
一點拙見,僅供參考!
ARM Vs 8051
1.8051是8位的ARM是32的
2.速度:.ARM的主頻可以達到700M而8051超過50M就很了不起了
3.ARM運算處理能力強, 8051側重處理邏輯運算,算術浮點運行比較差。
4.ARM的硬件資源豐富,8051硬件資源比較單一和簡單。
5.ARM的FLASH和RAM超大,8051太小,干不了大活。
我們拿Keil官方的MCB950開發板和米爾科技的MYD-LPC1857開發板做一個比較,兩者分別是基于8051單片機和ARM Cortex-M3處理器。
+----------------+----------------+-------------------------+
| 功能 | MCB950 |MYD-LPC1857 |
| 架構 | 8051 | ARM Cortex-M3 |
|主頻 | 12 MHz | 180MHz |
| 內部RAM | 0.5KB | 136KB |
| 內部FLASH| 8KB |1MB |
+----------------+----------------+-------------------------+
ARM Vs AVR
我感覺AVR最大的特點就是同時可以操作兩條指令,其實AVR就是RISC精簡指令的一個優化,
但AVR不能像ARM一樣可以運行多種操作系統,雖然可以運行操作系統,總體載能不如ARM,但是感覺其應用相對ARM比較簡單,很容易上手,ARM的運算能力雖然強于AVR,但是感覺要與操作系統配合使用才能體現其優勢,可是嵌入操作系統又是一個相對復雜的系統,需要花費較多的時間去理解、消化,感覺ARM的最大優勢是運算能力強大、移植性強,一般應用在較高檔的儀器、設備中;這也是我想要學習ARM的原因。
3.比較AVR和ARM,談談相同與區別
我看到hyloo的發問,本來想回答的,但一想,寫了很多,倒算別人的酷貼,不太劃算,所以決定自開一貼,順便揚揚名^_^。AVR我用過2個月,ARM我只看過2本書,所以,說的有錯請各位指教。
這里我們討論的AVR和ARM都是泛指,就是說,包括所有機器指令集和這兩個體系的都通用的眾多芯片,不單單指某項技術或者某塊芯片。
首先是相同點,兩者都是現代的CPU設計范例,基于RISC的指導思想,在體系設計初期時就充分考慮到了CPU內核面積,速度,高級語言支持等很多因素。又吸取了51、x86等20年前就商業化的體系所暴露出的問題,所以從現代眼光來看,都是非常先進的設計。最重要,GCC對ARM和AVR都提供了相當好支持,而且可以免費使用。網上,特別是外國網上都有很多開放資源可以參考。兩者在國內都屬于市場引入階段。銷售方面,各有兩大著名國內MCU公司做代理,而且巧合的是都是來自廣東的奸商(哈,開玩笑,勿當真)。
AVR和ARM的區別就比較多了:
ARM是IP核,可供各大芯片商集成到各自的設計中,好比是軟件語言中的C++,如果你想換一家廠商或者某家的貨太貴,都會有其它的廠商來競爭,至少從理論上,你不會被一家廠商套住。
AVR這方面就差點,ATMEL一家,別無分號。你只能在他的系列中選一個型號,無法選廠家。好比是軟件語言中的Java,雖然現在免費(指Java的SDK,不是AVR)或價格低,但市場前景更多的掌握在廠商手中。
實際產品成本方面,AVR優于ARM,畢竟AVR是8位機,配什么外設都便宜,由于速度比ARM低,PCB版也好設計,20MHz的數字電路基本上只要通就行了,不用過多考慮信號完整性什么的。而ARM的速度能輕易上100MIPS,32位的CPU也不是吹的,速度上AVR根本沒法比,不過帶來的問題就多了,要4層PCB,而且外設也貴多了。
功能方面,ARM大大優于AVR,ARM可以做PDA,手機,AVR顯然不行,最糟糕的是ARM上可以跑Linux,Linux可以做多少事啊,雖說國內實際在ARM平臺上跑出Linux而又愿意公開技術的人幾乎沒有(我正在努力朝這個方向發展),但前途絕對是光明的。功能上的優勢意味著ARM比AVR有著更廣的應用范圍,所以,雙龍耿先生所說的“中學用AVR”如果是對的話,大學里就應該用ARM。
外設方面AVR稍強,實際上我們可以看到Atmel公司的基于ARM核的AT91M55800A包括了很多AVR的外設,但還缺TWI/I2C,可變增益ADC,EEPROM等好用的部件。但毫無疑問,ARM的外擴外設能力比AVR強的多,所以外設方面算平手吧
操作系統和軟件源碼資源方面,ARM拜Linux之賜,比AVR有優勢點。但AVR上的嵌入式操作系統也不是沒有,uC/OS-II就不錯,如果能在Mega8515等便宜的芯片上跑起來的話,我看350元的ARM版也難賣,這一點雙龍不知有沒有計劃?
調試手段方面,ARM應該優于AVR,AVR就一個JTAG接口的仿真器我個人還可以買一下,但所支持芯片有限,ARM方面書上有相當多的方法調試,這里我不熟也缺經驗,就不瞎說了。
最后來個有個性的結尾,鑒于GCC對AVR和ARM的支持都很好,所以我決定都好好學,這里順便給GCC打個廣告,大家也看得出RISC的MCU最好還是直接使用C語言,GCC編譯器顯然是最明智的選擇。
ARM Vs MSP430
MSP430會向著專用,更低電壓,更低功耗的方向發展,不求功能大而全。應該會有更多的型號出現以供不同場合的測量使用。430的編程方法是在低功耗模式與任務之間切換來降低系統功耗,滿足便攜和節能的要求。
ARM是基于軟核的高級精簡指令機,高端應用方面比如嵌入式系統的主板開發,要求各種接口齊備,硬件的軟實現相對容易降低成本,普及使用。ARM需要跑操作系統,如ucos,wince,linux等等,主要由于嵌入式系統開發往往是多任務,實時性強。ARM Vs Coldfire
嵌入式處理器講求的不是速度冷火不會慢慢死掉,它有相當悠久的傳統和光輝的歷史,只不過ARM在國內的市場做得太好了,冷火的知名度就受到很大的影響。其實華恒的冷火系列開發板賣的如火如荼的時候, ARM在國內還沒有形成氣候,只是在2003年的時候,ARM7、ARM9才開始風靡起來,當時在嵌入式領域,最熱門的關鍵詞應該就是2410開發板了,呵呵。
冷火最早的時候是68K,最初應用于APPLE上,比INTEL的8088還早。1992年的時候,68K芯片的銷售量幾乎是當時市面上所有其他嵌入式處理器(包括ARM、MIPS、PowerPC)銷量的總合。即使是現在,我們知道,我們做的一個IP機頂盒的客戶,對華恒來說是比較大的客戶了,他們走量是以十K為單位的,在飛思卡爾那邊就還算是小客戶,呵呵,冷火系列芯片不過時,現在在國內只不過是知名度的問題。
冷火系列的處理器型號有很多,各自的特點不同
我就說一下MCF52X系列吧,前一段時間華恒和飛思卡爾一起做技術培訓、市場推廣,我也就需要研究MCF52X了。
這款處理器主要用在控制方面,最大的特點就是成本優勢,不要看這一顆芯片的價格好像不高,但是它芯片內部的SDRAM和FLASH,完全能夠勝任小巧緊湊的RTOS的運行需求,做成低端產品的整機成本就非常具有成本優勢了。
Coldfire產品現在有四個系列V1/2/3/4 高端的V3/V4國內應用很少看到。
目前國內用得較多的是V2內核系列。在這一系列內具體型號分類也很多。樓上提到的CF5213為單片式方案。其他很多型號的芯片為外擴程序/數據存儲器方式。
最小的單片式的CF5211配置為:
主頻80MHZ max
內帶MAC和硬件除法器
16KB SRAM,128KB FLASH 程序存儲器
4-ch/32-bit + 4-ch/16-bit 定時器
8-ch 12-bit ADC
3-ch UART
I2C;QSPI
BDM/JTAG調試接口,免費128K版CW支持
64PIN LQFP封裝的1萬片公開參考價格 US$4.99
ARM Vs DSP
1.ARM處理器有包括系統模式,用戶模式等工作模式,并且每種模式下都有相應的專有通用寄存器,因此可以快速地實現不同模式的切換,這對于操作系統來說是非常有益的,但是DSP,沒有這方面的考慮。另外,由于ARM內核與片內外設通過VPB相連,因此兩者相對獨立,這樣,ARM的片內外設的搭配也更加靈活。
不知道說得對不對,畢竟,對DSP得了解不多。歡迎指正2.主要是兩個的作用不一樣。ARM是32位RISC芯片,手機數碼產品和工控上用,可以理解成CPU,可以上個OS也可以直接當單片機用。而DSP是作數字信號處理的,以TI的東西為例,2000做控制,5000處理靜態圖象,6000處理動態圖象,8000是多DSP聯合控制用的。
3.ARM是一個公司的名字,DSP=DIGITAL Signal Processing
ARM公司設計了多種CPU核心,是以32位RISC核心為主,以ARM設計的CPU核心做的芯片被俗稱為“ARM芯片”,但嚴格地說通常的ARM芯片應該是指以ARM設計的CPU核心做的單片機,以ARM設計的CPU核心制作的SOC芯片一般不被稱為ARM芯片。
所以樓主所說的ARM芯片就是一種高級的通用單片機。
DSP=DIGITAL Signal Processing,即數字信號處理;與“ARM芯片”這個俗稱一樣,“DSP芯片”是TI公司生產的一系列帶DSP功能單片機的俗稱。
總結一下,“DSP芯片”是帶DSP功能的單片機,“ARM芯片”是帶或不帶DSP功能的單片機;
如一定要講區別,若不考慮DSP功能,“DSP芯片”比“ARM芯片”在功能上弱很多,如樓上講的多種模式、跑OS、MMU、多種外設等許多差別。
4.ARM(ADVANCED RISC Machines)是微處理器行業的一家知名企業,設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟件。ARM架構是面向低預算市場設計的第一款RISC微處理器,基本是32位單片機的行業標準,它提供一系列內核、體系擴展、微處理器和系統芯片方案,四個功能模塊可供生產廠商根據不同用戶的要求來配置生產。由于所有產品均采用一個通用的軟件體系,所以相同的軟件可在所有產品中運行。目前ARM在手持設備市場占有90以上的份額,可以有效地縮短應用程序開發與測試的時間,也降低了研發費用。這里有一篇介紹ARM結構體系發展介紹。
DSP(DIGITAL singnal processor)是一種獨特的微處理器,有自己的完整指令系統,是以數字信號來處理大量信息的器件。一個數字信號處理器在一塊不大的芯片內包括有控制單元、運算單元、各種寄存器以及一定數量的存儲單元等等,在其外圍還可以連接若干存儲器,并可以與一定數量的外部設備互相通信,有軟、硬件的全面功能,本身就是一個微型計算機。DSP采用的是哈佛設計,即數據總線和地址總線分開,使程序和數據分別存儲在兩個分開的空間,允許取指令和執行指令完全重疊。也就是說在執行上一條指令的同時就可取出下一條指令,并進行譯碼,這大大的提高了微處理器的速度 。另外還允許在程序空間和數據空間之間進行傳輸,因為增加了器件的靈活性。其工作原理是接收模擬信號,轉換為0或1的數字信號,再對數字信號進行修改、刪除、強化,并在其他系統芯片中把數字數據解譯回模擬數據或實際環境格式。它不僅具有可編程性,而且其實時運行速度可達每秒數以千萬條復雜指令程序,遠遠超過通用微處理器,是數字化電子世界中日益重要的電腦芯片。它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。由于它運算能力很強,速度很快,體積很小,而且采用軟件編程具有高度的靈活性,因此為從事各種復雜的應用提供了一條有效途徑。根據數字信號處理的要求,DSP芯片一般具有如下主要特點:
(1)在一個指令周期內可完成一次乘法和一次加法;
(2)程序和數據空間分開,可以同時訪問指令和數據;
(3)片內具有快速RAM,通常可通過獨立的數據總線在兩塊中同時訪問;
(4)具有低開銷或無開銷循環及跳轉的硬件支持;
(5)快速的中斷處理和硬件I/O支持;
(6)具有在單周期內操作的多個硬件地址產生器;
(7)可以并行執行多個操作;
(8)支持流水線操作,使取指、譯碼和執行等操作可以重疊執行。
當然,與通用微處理器相比,DSP芯片的其他通用功能相對較弱些。
區別是什么?:ARM具有比較強的事務管理功能,可以用來跑界面以及應用程序等,其優勢主要體現在控制方面,而DSP主要是用來計算的,比如進行加密解密、調制解調等,優勢是強大的數據處理能力和較高的運行速度。
都酷了就再補充點兒,還是隨便說說
DSP的優勢主要是速度,它可以在一個指令周期中同時完成一次乘法和一次加法,這非常適合快速傅立葉變換的需求。DSP有專門的指令集,主要是專門針對通訊和多媒體處理的;而ARM使用的是RISC指令集(當然ARM的E系列也支持DSP指令集)是通用處理用的。一個非常形象的比喻是ARM是高級房車,而DSP是高級跑車。不過也有一種雙核芯片是用DSP取指并做運算,當浮點運算量較大時ARM協助處理平時ARM只負責外圍控制。
不同應用需求的驅動也是一個原因吧
任何技術要能良好發展,總離不開市場的驅動.arm可以稱為高性能的單片機,傳統的單片機性能無法滿足要求后,人們就開始尋求更高性能的單片機,于是在這批用慣了單片機的用戶的需求驅動下,arm開始逐漸發展.而dsp是面向那些追求高速計算的用戶準備的.這是兩個獨立發展的方向,每種技術都保持自己的個性,發展到現在.一家之言,呵呵.
5.
存儲器架構和指令集特點不一樣
單片機為了存儲器管理的方便(便于支持操作系統),一般采用指令、數據空間統一編碼的馮·諾依曼結構。 DSP為了提高數據吞吐的速度,基本上都是指令、數據空間獨立的哈佛結構。
單片機對于數字計算方面的指令少得多,DSP為了進行快速的數字計算,提高常用的信號處理算法的效率,加入了很多指令,比如單周期乘加指令、逆序加減指令(FFT時特別有用,不是ARM的那種逆序),塊重復指令(減少跳轉延時)等等,甚至將很多常用的由幾個操作組成的一個序列專門設計一個指令可以一周期完成(比如一指令作一個乘法,把結果累加,同時將操作數地址逆序加1),極大的提高了信號處理的速度。由于數字處理的讀數、回寫量非常大,為了提高速度,采用指令、數據空間分開的方式,以兩條總線來分別訪問兩個空間,同時,一般在DSP內部有高速RAM,數據和程序要先加載到高速片內ram中才能運行。DSP為提高數字計算效率,犧牲了存儲器管理的方便性,對多任務的支持要差的多,所以DSP不適合于作多任務控制作用。
ARM Vs FPGA
首先我只能給意見,不強求你的選擇權。
第二我只能告訴你如果學完FPGA和ARM都掌握以后是什么樣子情況。了解上面兩點以后往下看。
(呵呵,我和你正好是反過來的,我是做的FPGA,到了公司也是做FPGA,但是由于硬件架構問題不得不學習ARM)
我覺得FPGA和ARM孰輕孰重沒得比較。但是殊途同歸,用經典FPGA結構處理不了的問題就要用ARM來處理,這個是沒辦法的。器件的最終用途就是幫我們解決問題。
選擇1.如果你決定主攻ARM,你學FPGA的優勢在于你已經懂ARM了,所以你學習EDA以后有一個優勢:
CPU和FPGA的聯合的架構,這個是一種解決方案,而且普遍被嵌入式所使用(你非要拿手機給我舉例我也沒辦法,笑~~)因為系統總是分層的,CPU永遠工作在應用層,作為FPGA而言,雖然工作在鏈路層(幫CPU存儲數據,速率匹配,接口實現等等)但是這個架構中FPGA需要比CPU跑的更穩定。這個架構的好出就是靈活。CPU外部接口隨意擴展,只要自己編寫FPGA的程序實現接口就可以。
優勢:在了解系統核心算法的前提下,更加了解系統架構。這個是有好處的,因為在使用系統之前肯定是要先架構系統。在上面CPU和FPGA架構下面。FPGA從CPU角度看來充當了內存。從底層角度看來FPGA充當了驅動,那么在這種接口下面,FPGA如果不起來,那么ARM啟動也只是半殘。不能發揮ARM的所有功能。
(我在給軟件程序員講FPGA和pxa255協同工作原理,他們對于FPGA可以復用地址或者透明雙塊內存表示驚奇,可以對同一個地址讀寫出不同的結果表示驚訝,因為他們不了解FPGA的工作方式。FPGA的靈活性他們體會不到。但是你可以。)
選擇2:你主攻FPGA方面。
我覺得學校么,對FPGA和ARM都存在一定量的誤解,就好像學生或者少數老師會認為:“linux和windows是差不多的東西”“VHDL是按照VC改出來的”等等,這些可能一定意義上面是對的(而且這個一定意義幾乎一個反例就能被推翻)。FPGA現在的功能很強,DSP和CPU都是可以內嵌的。而且是軟核這點非常好。FPGA現在普及不開的原因主要是成本,本身技術已經成熟。
那么你的優勢就在于:你了解FPGA以后,將軟內核嵌入到FPGA內部,此時公司不需要另外找人為你的ARM或者CPU進行配置。
參考網站,可以了解FPGA到底是發展到什么情況:
xilinx的市場解決方案:http://china.xilinx.com/technology/
altera的市場解決方案:http://www.altera.com.cn/technology/tc-index.html
一句話總結:殊途同歸,英雄不問出處,所以學什么,選擇什么路不重要,重要的是怎么走和自己的興趣。
ARM、DSP、FPGA之間的區別
ARM(Adanced RISC Machines)是一個公司名字,也是一種處理器的通稱,還可以認為是一種技術名字。主要銷售晶片設計技術的授權。目前,采用ARM技術知識產權(IP)核的微處理器,即我們通常說的ARM微處理器,已遍及工業控制、消費類電子產品、通信系統、網絡系統、無線系統等各類產品市場,基于ARM技術的微處理器應用約占據了32位RISC微處理器75%以上的市場份額,ARM技術正在逐步滲入到我們生活的各方面。ARM公司是專門從事基于RISC技術晶片設計開發的公司,作為知識產權供應商,本身不直接從事晶片生產,靠轉讓設計許可由合作公司生產各具特色的晶片,世界各大半導體生產商(RFID射頻快報注:如PHILIPS、TI、Intel、BroadCom、ATMEL等)從ARM公司購買其設計的ARM微處理器核,根據各自不同的應用領域,加入適當的外圍電路,從而形成自己的ARM微處理器晶片進入市場。目前,全世界有幾十家大的半導體公司都使用ARM公司的授權,因此既使得ARM技術獲得更多的第三方工具、制造、軟件的支持,又使整個系統成本降低,使產品更容易進入市場被消費者所接受,更具有競爭力。ARM架構是面向低預算市場設計的第一款RISC微處理器,基本是32位單片機的行業標準,它提供一系列內核、體系擴展、微處理器和系統芯片方案,四個功能模塊可供生產廠商根據不同用戶的要求來配置生產。由于所有產品均采用一個通用的軟件體系,所以相同的軟件可在所有產品中運行,可以有效地縮短應用程序開發與測試的時間,也降低了研發費用。
DSP(digital singnal processor)是一種獨特的微處理器,有自己的完整指令系統,是以數字信號來處理大量信息的器件。一個數字信號處理器在一塊不大的芯片內包括有控制單元、運算單元、各種寄存器以及一定數量的存儲單元等等,在其外圍還可以連接若干存儲器,并可以與一定數量的外部設備互相通信,有軟、硬件的全面功能,本身就是一個微型計算機。DSP采用的是哈佛設計,即數據總線和地址總線分開,使程序和數據分別存儲在兩個分開的空間,允許取指令和執行指令完全重疊。也就是說在執行上一條指令的同時就可取出下一條指令,并進行譯碼,這大大的提高了微處理器的速度。另外還允許在程序空間和數據空間之間進行傳輸,因為增加了器件的靈活性。其工作原理是接收模擬信號,轉換為0或1的數字信號,再對數字信號進行修改、刪除、強化,并在其他系統芯片中把數字數據解譯回模擬數據或實際環境格式。它不僅具有可編程性,而且其實時運行速度可達每秒數以千萬條復雜指令程序,遠遠超過通用微處理器,是數字化電子世界中日益重要的電腦芯片。它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。由于它運算能力很強,速度很快,體積很小,而且采用軟件編程具有高度的靈活性,因此為從事各種復雜的應用提供了一條有效途徑。根據數字信號處理的要求,DSP芯片一般具有如下主要特點:
(1)在一個指令周期內可完成一次乘法和一次加法;
(2)程序和數據空間分開,可以同時訪問指令和數據;
(3)片內具有快速RAM,通常可通過獨立的數據總線在兩塊中同時訪問;
(4)具有低開銷或無開銷循環及跳轉的硬件支持;
(5)快速的中斷處理和硬件I/O支持;
(6)具有在單周期內操作的多個硬件地址產生器;
(7)可以并行執行多個操作;
(8)支持流水線操作,使取指、譯碼和執行等操作可以重疊執行。
當然,與通用微處理器相比,DSP芯片的其他通用功能相對較弱些。
FPGA是英文Field Programmable Gate Array(現場可編程門陣列)的縮寫,它是在PAL、GAL、PLD等可編程器件的基礎上進一步發展的產物,是專用集成電路(ASIC)中集成度最高的一種。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。用戶可對FPGA內部的邏輯模塊和I/O模塊重新配置,以實現用戶的邏輯。它還具有靜態可重復編程和動態在系統重構的特性,使得硬件的功能可以像軟件一樣通過編程來修改。作為專用集成電路(ASIC)領域中的一種半定制電路,FPGA既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。可以毫不夸張的講,FPGA能完成任何數字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用FPGA來實現。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬件描述語言自的設計一個數字系統。通過軟件仿真,我們可以事先驗證設計的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時修改設計而不必改動硬件電路。使用FPGA來開發數字電路,可以大大縮短設計時間,減少PCB面積,提高系統的可靠性。FPGA是由存放在片內RAM中的程序來設置其工作狀態的,因此工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,采用不同的編程方式。加電時,FPGA芯片將EPROM中數據讀入片內編程RAM中,配置完成后,FPGA進入工作狀態。掉電后,FPGA恢復成白片,內部邏輯關系消失,因此,FPGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的編程數據,可以產生不同的電路功能。因此,FPGA的使用非常靈活。可以說,FPGA芯片是小批量系統提高系統集成度、可靠性的最佳選擇之一。目前做FPGA比較領先的有XILINX、ALTERA公司。
ARM具有比較強的事務管理功能,可以用來跑界面以及應用程序等,其優勢主要體現在控制方面,
而DSP主要是用來計算的,比如進行加密解密、調制解調等,優勢是強大的數據處理能力和較高的運行速度。
FPGA可以用VHDL或verilogHDL來編程,靈活性強,由于能夠進行編程、除錯、再編程和重復操作,因此可以充分地進行設計開發和驗證。當電路有少量改動時,更能顯示出FPGA的優勢,其現場編程能力可以延長產品在市場上的壽命,而這種能力可以用來進行系統升級或除錯。FPGA目前的趨勢是有代替前兩者的可能,在FPGA內部置入乘法器和DSP塊,就具有高速的DSP處理能力。在FPGA內置入硬核CPU或軟核CPU(Xilinx有powerpc硬核的產品,有microblaze軟核。Altera有NIOS II軟核)就可以成為既有能實現數字邏輯有適應嵌入式開發的綜合性器件了。
dsp-數據處理;cpu-控制;fpga-接口轉換
FPGA---通過編程實現電路
DSP--通過編程指導處理單元完成數據處理及控制
CPU嘛,復雜的東東
我覺得fpga就是一種可編程的器件,用它也可以實現DSP或者是cpu只不過可能性能達不到要求.
dsp用作數字信號處理,
而cpu是一種控制器,有許多種,比方說通用的如奔騰,還有單片機等.
cpu是一種電路,而fpga是一種相對于asic的電路實現方法.
在很大程度上dsp與床鋪有些類似,都是進行運算處理數據的,內部結構比較復雜,fpga是可以控制的邏輯器件,可以根據需求進行編程。
就工作頻率上來說,pc機上的cpu以GHz為計量單位;而你見過哪款fpga芯片的頻率超過1GHz的,基本上,目前的500MHz就封頂了。
單片機低速
DSP高速
FPGA超高速
FPGA可編程器件,用戶可以根據各自的需要實現接口協議,協議解析,數據處理,控制,優點是用戶可隨心所欲的編程。
DSP其實就是內部嵌有CPU和一些專用數字處理模塊(微引擎,乘法電路)的asic,專用于高速的數據信號處理。但是其主要執行過程還是由軟件實現的。
CPU就是毫無疑問的中央處理器了,它根據用戶給出的指令,進行它的操作,其實里面的最基本的還是加乘操作。
因為DSP和CPU都是專用集成電路,所以內部時鐘頻率可以做的很高,密度可以做的很高,特別是CPU,往往都代表了半導體的最新最高工藝。FPGA雖然在執行頻率上沒有DSP和CPU那么高,工藝可能也沒有那么先進,但是FPGA可以通過并行處理和流水線,達到比CPU和DSP更高的數據處理能力。而且現在FPGA也內嵌了DSP模塊和CPU,可以設計成片上系統。對于對CPU要求不高的單板,只要使用FPGA內的CPU就可以了,不需要另外再貼塊CPU芯片了。因為三種器件各有其優勢,所以是誰也沒有辦法替代誰。主要的競爭在FPGA與DSP,低端CPU之間展開。
DSP是軟件實現算法
FPGA是硬件實現算法,所以FPGA的處理速度會更高
FPGA比DSP快的一個重要原因是FPGA可以實現并行運算,而DSP由于硬件結構條件限制,主要還是依靠軟件來提取指令執行,理解為還是串行執行
-
dsp
+關注
關注
552文章
7962瀏覽量
348308 -
FPGA
+關注
關注
1626文章
21678瀏覽量
602035 -
mcu
+關注
關注
146文章
17019瀏覽量
350374 -
嵌入式系統
+關注
關注
41文章
3570瀏覽量
129252 -
米爾科技
+關注
關注
5文章
227瀏覽量
20921
發布評論請先 登錄
相關推薦
評論