ARM、DSP、FPGA的技術特點和區別
在嵌入式開發領域,ARM是一款非常受歡迎的微處理器,其市場覆蓋率極高,DSP和FPGA則是作為嵌入式開發的協處理器,協助微處理器更好的實現產品功能。
那三者的技術特點以及區別是什麼呢?下文就此問題略做總結。
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晶片的其他通用功能相對較弱些。
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的 XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
區別是什麼?
ARM具有比較強的事務管理功能,可以用來跑介面以及應用程式等,其優勢主要體現在控制方面,而DSP主要是用來計算的,比如進行加密解密、調製解調等,優勢是強大的資料處理能力和較高的執行速度。FPGA可以用VHDL或verilogHDL來程式設計,靈活性強,由於能夠進行程式設計、除錯、再程式設計和重複操作,因此可以充分地進行設計開發和驗證。當電路有少量改動時,更能顯示出FPGA的優勢,其現場程式設計能力可以延長產品在市場上的壽命,而這種能力可以用來進行系統升級或除錯。
想第一時間獲取嵌入式乾貨,請加公眾號baiwenkeji
有問題歡迎加WEI信討論交流:13266630429,驗證:CSDN