硬件行業知識體系概要【轉】

轉的,學硬件的大牛,真不錯編程

http://bbs.csdn.net/topics/390487802網絡

最近有很多軟件領域的牛人進軍硬件行業,但不知從何處入手。相信每一個人面對一個龐大的知識體系時都同樣迷茫。最佳的應對策略就是找一個最貼近本身需求 的切入點,而後向四面八方鋪開去逐漸認識整個知識網絡。我隨便寫一個帖子就是爲了讓你在這個知識網裏面找到本身如今的位置,而後有目的有方向地選擇下一 步。

  簡單來說硬件的體系像軟件同樣也分層。

  最底層是包含電學現象在內的微觀物理現象,幾乎是純粹的抽象理論集合,能看得見摸得着的實物很少。好比半導體摻雜特定雜質後,其原子核俘獲自由電子的 能力加強或減弱。由此帶來的PN結的應用。再好比帶電粒子在磁場中的受力狀況(洛侖茲力),由此延伸出陰極射線管、霍爾效應等應用。還有通電導線以及螺線 管產生的磁場形狀,這個應用就多了去了。再好比波動的發射源與接收點之間距離變化形成接收到的頻率變化(多普勒效應),由此延伸出測速雷達之類的應用…… 基本上從初中物理到大學物理,全部與電相關的知識都涵蓋在裏面。物理與數學做爲基礎學科與這些基本物理現象一脈相承,是整個硬件行業乃至軟件行業的基石。 如今不少硬件工程師並不熟悉這些基礎學科,這在解決問題時會給他們帶來很大的侷限,一是沒法迅速找到最合適的方案,二是沒法分析手中的方案前因後果是什 麼,怎樣優化現有方案。

  向上一層是分立電子元件。電阻、電容、電感、二極管這些稱爲無源器件,三極管、場效應管這些是有源器件,這些器件的特性反應在輸出信號隨着輸入信號變 化的特性上,而要這些特性體現出來,必須在輸入信號以外另行提供電源,所以叫作有源器件。分立電子元件是板級硬件工程師選材的基本單位。

  這一層分爲理論和實踐兩個方面,實踐不難,找幾個典型的電子元件摸一摸,拿萬用表測一下。之後看見了能認識就行。理論這方面,合格的模電工程師必須熟 練掌握這些元件的自身特性和典型應用。數字硬件工程師每每不太注重這些基本知識,有人不會畫N-MOSFET和P-MOSFET的電路符號,有人不懂計算 晶體三極管的靜態工做點。還有人RC電路的零狀態響應理解不夠透徹,不懂怎樣計算數字集成電路的復位阻容網絡時間常數。這些多少都會構成硬傷。學習這一層 理論最好參考通用的大學《電工學》教材,高等教育出版社上下冊。若是對上面講過的最底層的物理學有足夠深刻的瞭解,會大大增進你對分立電子元件的認識。比 如對電阻率、電磁感應的認識可以幫助你理解爲什麼簡簡單單的一根導線都要衍伸出雜散電容電感這麼多亂七八糟的問題,到底何時要看成等勢體去看待,什麼時 候要考慮它的位置和形狀。高速電路工程師和射頻工程師常常要面對這些問題。你的目標是哪一個羣體?

  再上一層是集成電子元件。也就是包含集成電路(IC)和各式集成傳感器在內的電子元件。上述一層的分立元件用導線和電路板鏈接起來會帶來體積龐大、特 性離散、溫度分佈不均、導線距離過長形成信號反射等諸多問題。因此傑克·基爾比和和羅伯特·諾伊思纔想到把它們微縮到很小的半導體基材上。幾乎全部集成電 路都是有源器件。集成電子元件有兩個方向,上游的是芯片級的微電子產業,也就是設計、生產電子元器件的。他們側重前面講過的基礎學科。板級硬件工程師選修 的課程,對他們而言是必修。好比光繪之類與流片工藝相關的全部知識。細分也有不少不一樣的職業,這裏不贅述。下游的就是板級硬件工程師,他們是拿着上游產業 生產出來的成品去應用的。

  我讀初中的時候翻書看了幾個邏輯門元件說明,就瞎尋思有沒有一本書上面囊括了世界上全部型號的集成電路,那時候我覺得一個合格的工程師必須在腦子裏記 住全部集成電路的使用說明才能幹活。而實際上天天都有新的集成電路被研製出來,型號多得那些專門賣元件的網站都很難更新過來。因此總有你不認識的陌生型 號,但這不表明你不能作一名合格的工程師。若是你熟練掌握了基本分立元器件的原理和常見電路結構,那麼新的集成電路拿在手裏看,最基本的結構也無非是這些 東西,只是從新組合了一遍而已。

  集成電子元件這一層一樣分爲理論與實踐兩個方面,這一層的實踐,初期就是拿幾個常見的芯片認識一下封裝。常見的封裝類別會認就OK了。接下來就要去看理論,最後回過頭來實踐就是針對你所選具體IC的實戰應用了。

  理論方面,上面說的《電工學》那套教材裏也涉及了運算放大器、數字邏輯方面的知識。像邏輯運算式的化簡這些知識不管在使用4000系列邏輯集成電路的 時候仍是在作CPLD/FPGA設計的時候都會體現出它的重要性,寫程序的時候也少不了邏輯運算。掌握這一層知識,重點除了底層的基礎以外就是英語。你和 集成電路打交道的時候多數是在看說明文檔。你須要的東西到底要知足什麼條件,你選到的東西到底具有什麼條件,怎麼使用,都靠這些。英語對於軟件工程師而言 應該不是大問題,畢竟搞軟件的時候多數人都見過RTFM這個詞了,老外對沒頭沒腦的提問者常說的一句 話:Read the fucking manual!

  特別指出,集成電路這一層包含了可編程元器件,包括微控制器、CPLD/FPGA、DSP、獨立的處理器(CPU、GPU等)、存儲器以及定製的可編 程混合信號電路等等。對於這些可編程器件,就有了更高的一層,也就是硬件抽象層(HAL)。這一層屬於軟件,模擬工程師就不用碰了。可是數字工程師,尤爲 是嵌入式操做系統工程師操做底層硬件的時候必須和它打交道。寫驅動的工程師有時候不得不翻閱硬件手冊去了解本身所用的硬件模塊具有什麼物理特性,接下來才 能繼續編寫本身的代碼。這一層往上就是軟件工程師的地盤了,那個領域枝繁葉茂,我也無法接着講了。

  多數但願學習硬件的人都是帶着具體需求來的。可能手中有個項目須要作一個平臺,或者是對某個特定的器件很是感興趣。這樣的話最好的切入點就是你手裏這 個具體的東西。看一看它屬於上述的哪一層,而後向外輻射開來,瞭解它的前因後果。從相關的實物開始創建對整個行業的感性認識。對實物熟悉了再去學習背後的 理論。不一樣的理論最終在大腦裏相互交匯起來組成一套有條理的理論體系。

  不少硬件工程師從小學起就開始學習了,一路動手學過來的。學好硬件,最原始的動力來自於對天然科學的好奇心,還要享受動手的樂趣。這些都不是一晚上之間 就能掌握的,學個差很少少說要兩三年,並且硬件領域也有不一樣分支,相互之間有時候甚至能夠說隔行如隔山。精力有限,你能掌握多少取決於你有毅力走多遠。學習

相關文章
相關標籤/搜索