嵌入式系統學習心得

首先我聲明,我是基於嵌入式系統平台級設計的,硬體這個方向我相對來講比較有發言權,如果是其它方面所要具備的基本技能還要和我們培訓中心其它專業級講師溝通。他們的方面上我只能說是知道些,但不是太多,初級的問題也可以問我。

對於硬體來講有幾個方向,就單純信號來分為數字和模擬,模擬比較難搞,一般需要很長的經驗積累,單單一個阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著技術的發展,出現了模擬電路數位化,比如手機的modem射頻模組,都採用成熟的套片,而當年國際上只有兩家公司有此技術,自我感覺模擬功能不太強的人,不太適合搞這個,如果真能搞定到手機的射頻模組,只要達到一般程度可能月薪都在15k以上。

另一類就是數字部分了,在大方向上又可分為51/arm的單片機類,dsp類,fpga類,國內fpga的工程師大多是在ic設計公司從事ip核的前端驗證,這部分不搞到門級,前途不太明朗,即使做個ic前端驗證工程師,也要搞上幾年才能勝任。dsp硬體接口比較定型,如果不向驅動或是算法上靠攏,前途也不會太大。而arm單片機類的內容就較多,業界產品占用量大,套用人群廣,因此就業空間極大,而硬體設計最體現水平和水準的就是接口設計這塊,這是各個高級硬體工程師相互pk,判定水平高低的依據。而接口設計這塊最關鍵的是看時序,而不是簡單的連線,比如pxa255處理器i2c要求速度在100kbps,如果把一個i2c外圍器件,最高還達不到100kbps的與它相接,必然要導致設計的失敗。這樣的情況有很多,比如51單片機可以在匯流排接lcd,但為什麼這種lcd就不能掛在arm的匯流排上,還有arm7匯流排上可以外接個winband的sd卡控制器,但為什麼這種控制器接不到arm9或是xscale處理器上,這些都是問題。因此接口並不是一種簡單的連線,要看時序,要看參數。 一個優秀的硬體工程師應該能夠在沒有參考方案的前提下設計出一個在成本和性能上更加優秀的產品,靠現有的方案,也要進行適當的可行性裁剪,但不是胡亂的來,我遇到一個工程師把方案中的5v變1.8v的dc晶片,直接更換成ldo,有時就會把cpu燒上幾個。前幾天還有人希望我幫忙把他們以前基於pxa255平台的手持gps設備做下程式最佳化,我問了一下情況,地圖是存在sd卡中的,而sd卡與pxa255的mmc控制器間採用的spi接口,因此導致地圖讀取速度十分的慢,這種情況是設計中嚴重的缺陷,而不是程式的問題,因此我提了幾條建議,讓他們更新試下再說。因此想成為一個優秀的工程師,需要對系統整體性的把握和對已有電路的理解,換句話說,給你一套電路圖你終究能看明白多少,看不明白80%以上的話,說明你離優秀的工程師還差得遠哪。其次是電路的調試能力和審圖能力,但最最基本的能力還是原理圖設計pcb繪製,邏輯設計這塊。這是指的硬體設計工程師,從上面的硬體設計工程師中還可以分出ecad工程師,就是專業的畫pcb板的工程師,和emc設計工程師,幫人家解決emc的問題。硬體工程師再往上就是板級測試工程師,就是c語功底很好的硬體工程師,在電路板調試過程中能通過自已編寫的測試程式對硬體功能進行驗證。然後再交給基於作業系統級的驅動開發人員。