說到嵌入式硬件開發,不得不先理解什么是嵌入式。
度娘給出的答案是:
嵌入式系統是一種專用的計算機系統,作為裝置或設備的一部分。通常,嵌入式系統是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手表、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含操作系統,但大多數嵌入式系統都是由單個程序實現整個控制邏輯。
很多人對此還是不了解,那么,如何理解“嵌入式”呢?
從硬件上,將基于CPU的處圍器件,整合到CPU芯片內部,早期的基于X86體系結構下的計算機,CPU只是有運算器和累加器的功能,而目前很多控制器芯片早已集成到CPU內部,例如早期PC機有顯卡,而現在多數嵌入式處理器都帶有LCD控制器,某種意義上就相當于顯卡。
從軟件上,就是在定制操作系統內核里將應用一并選入,編譯后將內核下載到ROM中。而在定制操作系統內核時所選擇的應用程序組件就是完成了軟件的“嵌入”。
綜上所述,嵌入式是一個綜合性的學科。
基于嵌入式的開發,基本上分為四層:硬件層、驅動層、操作系統層和應用層。其中應用層的開發最為簡單,也是需求量最大的,也是公司里利潤最高的部分。操作系統層的開發主要是移植相關,很少有人自己寫操作系統。不過華為的鴻蒙系統,還是很值得我們期待的。驅動層的開發比較難。需要能看懂電路圖還要對操作系統內核十分的精通。最后,說說硬件開發,它是整個嵌入式系統的根本,是基礎。嵌入式硬件開發在很大程度上決定了嵌入式產品的性能。硬件工程師就像是設計師和建筑師,負責整個建筑的設計和建設。軟件工程師則是負責房間的裝修,錦上添花。
嵌入式硬件開發流程如圖1所示。
圖1 硬件開發流程
嵌入式硬件開發首先要了解產品需求。嵌入式產品的硬件形態各異,CPU從簡單的4位、8位單片機到32位的ARM處理器,以及其它專用的IC。另外,依據產品的不同需求,外圍電路也不相同。硬件開發需要根據用戶需求綜合選定所需要的芯片以及傳感器,這一階段的工作還要分析整個系統設計的可行性,考慮設備的采購是否容易,開發周期是否適合,開發過程中是否會有一些潛在的風險,以及可能的應對策略,需要提前進行規劃。接下來,進行硬件的總體設計,編寫硬件的詳細設計方案文檔。在一些小公司或者創業型公司初期可能不是很重視詳細設計文檔的編寫,但,事實上,這些方案文檔對于后期debug、產品的升級以及更新換代起到非常大的作用,在寫方案文檔的同時,也會梳理一下思路,比如:電路、復位等一些比較重要的部分,會讓硬件設計人員在寫文檔的時候反復推敲。接下來,根據詳細設計熟練運用設計工具進行硬件電路原理圖設計,畫PCB圖,根據需要可能需要畫至少四層以上的板,有一些主流的PCB板設計軟件,比如:PADS,Candence 和Protel,需要熟練掌握,畫好的PCB圖,接下來要進行仿真測試,根據仿真結果進行調整PCB板布局布線。沒有什么大的問題時,可以進行PCB加工文件制作和PCB打樣。一般先打出三到五塊樣板。拿到樣板,先檢查一下有沒有明顯的短路或者斷裂。檢查通過,將前期采購的元器件和PCB空板交由生產廠家進行焊接(如果PCB 電路不復雜,為了加快速度,也可以直接手工焊接元器件)。然后進行實際測試、修改、調試等工作,測試的時候,需要對照產品的需求說明,一項一項進行測試,確認是否符合預期的要求,如果達不到要求,則需要對硬件產品進行調試和修改,直到符合產品需求文檔。測試沒有什么大問題的時候,就可以批量生產硬件產品。
最終要開發出一款完整的、符合產品需求的硬件產品。