單片機和 嵌入式,其實沒有什么標準的定義來區分他們,對于進行過單片機和嵌入式開發的開發者來說,都有他們自己的定義,接下來,我們信盈達小編就談談這兩個概念的深入理解。 什么是單片機 首先明確概念,什么是單片機,單片機是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。 對單片機而言,其實一個芯片就是全部,其他的比如單片機最小系統都是為了單片機的正常運作而加入其他元件,比如晶振,5v電源,電感電阻等。當然最小系統只能保證單片機正常運行,幾乎實現不了基于單片機的任何應用。 為了使單片機實現應用,必須要加入其他外設。比如按鍵,led燈,led屏,蜂鳴器,各種sensor。這也就是市面上很多公司都在做的單片機開發板。 總結,單片機就是完成運算、邏輯控制、通信等功能的單一模塊。也就是單片機真的姓“單”。DSP芯片也可以認為是一個單片機。當然它們性能很強大,但是功能依然很單一,總之就是處理數據、邏輯。 什么是嵌入式 那么什么是嵌入式呢,一般說嵌入式都是指嵌入式系統,IEEE(InsTItuteof Electrical and ElectronicsEngineers,美國電氣和電子工程師協會)對嵌入式系統的定義:“用于控制、監視或者輔助操作機器和設備的裝置”。 嵌入式系統是一種專用的計算機系統,作為裝置或設備的一部分。通常,嵌入式系統是一個控制程序存儲在ROM中的嵌入式處理器控制板。 嵌入式系統是將應用程序、操作系統、和計算機硬件在一起的系統,是指以應用為中心,以計算機技術為基礎,軟硬件可裁剪,其針對的用戶應用對功能、可靠性、成本、體積、功耗和使用環境有特殊要求的專用計算機系統。 嵌入式系統應該跑在什么樣的硬件上 談起嵌入式硬件或者開發板,我想很多人第一印象就是RaspberryPi,是一塊只有信用卡大小的微型電腦,別看其外表“嬌小”,內“心”卻很強大,視頻、音頻等功能通通皆有,可謂是“麻雀雖小,五臟俱全”。樹莓派推出后,很多廠商爭相推出類似產品,比如香蕉派之類的。 ARMv7相對與ARMv6指令集的另一個優勢在于,使用ARMv7的處理器的實際性能更加強勁。ARMv7相對與ARMv6的優勢還有很多,比如一些顯著的改進:實現了超標量架構、包含了SIMD操作指令、改進了分支預測算法從而極大的提高了某些性能。 嵌入式和單片機的區別 以上就是一塊基本的嵌入式核心板所具有的性能參數,和上面說到的單片機的性能參數相比較,單片機的處理能力較低,主頻大多在幾十M上下,和嵌入式動輒上百上千M的處理速度還是相差較多,此外單片機并不具有圖形界面的處理能力,也就是GPU的缺乏導致單片機幾乎不可能帶動圖形界面。 單片機的存儲空間和嵌入式處理器也不是一個等級的,單片機通常片內存儲只有幾k大小,而由于外設的限制也不太可能大范圍增加外設emmc,而嵌入式處理器通常有幾百兆的RAM,如此巨大的差別導致單片機幾乎不可能像嵌入式處理器那樣運行操作系統,甚至連TCP/IP協議棧和USB協議棧都跑不起來,一些高端的單片機比如ST公司的STM32系列,可能可以跑一些輕量級的系統os和嵌入式網絡協議棧,比如IwIP協議棧。 嵌入式處理器豐富強大的性能決定它能完成更多單片機不能完成的應用,比如網絡通信功能,視頻傳輸處理功能等,而當外設存儲增加后,嵌入式處理器能夠輕松運行各種Linux系統,以及圖形GUI界面。 在開發方式上單片機和嵌入式也有較大差別,也就是編譯過程的區別,單片機主要在Windows等圖形界面下開發,目前有很多成熟的IDE工具比如keil、IAR、以及ti的CCS等,這些工具集編譯、匯編、鏈接、仿真為一體,并且由于在Windows下開發,具有友好的用戶界面,開發者只需編寫c代碼,然后點擊編譯鏈接按鍵即可,出現錯誤還可以debug或者仿真,上手還是非常快的。 而嵌入式開發一般是在Linux下進行的,要將c代碼在自己主機上編譯完成,然后通過系統鏡像或者uboot引導將編譯好的文件燒入開發板,由于主機的處理器的x86架構,而編寫的代碼是為了運行在arm架構或sparc架構的處理器上,因此存在一個交叉編譯鏈的安裝,此外,Linux下沒有Windows那樣的IDE,也就是編譯,鏈接源代碼都需要開發者自己完成,一般都是利用GNUmake腳本編寫Makefile以及configure文件來完成,Makefile文件中編寫如何對c或者h文件編譯,也就是編譯規則以及依賴文件是什么。這些都需要開發者自己完成。并且以上過程都是在Linux下的終端也就是命令行中完成,這也給嵌入式開發增加了難度。
還想看到哪些干貨,可以留言告訴小編哦!
|