0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式工程師入門技巧

工程師人生 ? 來源:網(wǎng)絡整理 ? 作者:工程師吳畏 ? 2018-09-12 10:29 ? 次閱讀

【如何才算嵌入式工程師入門了?】

嵌入式應用工程師是一個軟硬件兼顧的職業(yè)。當然,到了具體的工作崗位可能會有嵌入式硬件工程師和嵌入式軟件工程師之分等。不管怎么細分,只要是做嵌入式應用開發(fā)的,你設計的軟件就要在硬件上跑,你不熟悉硬件平臺可以嗎?你設計的硬件,也要考慮軟件上面的事情,沒有一定軟件設計思維也是不行的。

對于一個嵌入式應用開發(fā)的入門者來說,是沒有軟件和硬件的偏向之分的,至少我是這樣認為。因為對于基礎的技能,必要有一個全面的掌握,這樣你才能在嵌入式開發(fā)的道路上走得更遠,才能具備從入門走向優(yōu)秀的可能。

那么,如何才算是嵌入式工程師入門了呢?

我認為,至少能夠獨立設計和制作出一款嵌入式應用系統(tǒng),就算是很少很小的系統(tǒng)也可以。

那么,要完成一款嵌入式應用小系統(tǒng),你至少要做下面的一些工作:

1. 設計并確定系統(tǒng)的功能模塊,形成設計概要文檔。

2. 選擇嵌入式微處理器,確定系統(tǒng)的功能框圖。

3. 對主控芯片的引腳進行定義,形成引腳功能分配表。

4. 根據(jù)功能框圖,對主要的元器件進行選型。

5. 設計并確定各個功能模塊的電路原理圖。

6. 利用Protel電路設計軟件,設計電路原理圖。

7. 原理核查無誤,開始設計PCB圖,并形成BOM表。

8. 選擇合適的廠商,委托其制作電路板,并購買電子元器件。

9. 焊接電路板,并進行簡單的測試,確保不短路、無虛焊等。

10. 編寫程序,對各個功能模塊進行測試,確定都能正常跑起來。

11. 編寫和測試相應的應用程序。

12. 整理資料,形成開發(fā)文檔,如有必要,還可以記錄自己的開發(fā)心得。

也許有人要問,入個門真的要這么復雜嗎?現(xiàn)在有很多培訓機構,上來就學習操作系統(tǒng)移植、驅動程序編寫、項目應用開發(fā),既高端又快速。我也不否認,這也是一條嵌入式應用快速成長的途徑。如果你具備了上面描述的能力之后,再去接受培訓,那不是更容易理解培訓內容,成長的不是更快嗎?

《大學》里面有句話:“物有本末、事有終始,知所先后,則近道矣”。我始終認為,對于一個初學者或者人門的人,必須有扎實的基礎,才能真正的從入門邁向優(yōu)秀。

【入門都需要學習哪些基礎技能呢?】

對于一個入門的初學者來說,再努力也不為過。我想要達到上面所描述的能力,成為一個真正嵌入式應用開發(fā)的入門者,可能要掌握下面幾項基礎知識和必備技能,大家可以參考一下:

《1》理解三門基礎課程:電路分析模擬電路和數(shù)字電路

嵌入式系統(tǒng),上面都是電子元器件,都離不開電流和電壓。在學習這些課程的時候,你可能覺得毫無用處。但當你去設計一個系統(tǒng),或者處理一個系統(tǒng)的硬件故障時,你可能會發(fā)現(xiàn)需要借助這些課程的知識了。

在讀書的時候,我最討厭這三門課,而且當時覺得都是理論,毫無實際用處。特別是電路分析,相當?shù)某橄?。對于這三門課,我并不認為在開始就要把它們讀透,當然你有這個毅力和能力最好不過。對于初學者,我倒覺得可以采用迭代學習的方法。

在初學的時候,最起碼要把基本的東西弄懂。相對來說,電路分析要求沒有太多,懂得簡單的電路分析方法就夠了。模電和數(shù)電要求會多一些,最起碼半導體、三極管、典型的運放電路、振蕩電路、濾波電路、電源電路、A/D轉換電路、數(shù)字編碼電路等等這些常用的電路要掌握。不然,你在設計電路的時候,就是無米之炊了。

在將來設計和處理問題的時候,如有需要,就回頭找資料,翻書本,既可以吸收學習新的知識,又可能加深鞏固舊的內容。如此反復以往,在不久的將來,一定能都透徹理解這些課程,而且會有新的理解和深刻的認識。ADI公司的工程師寫了一本書《嵌入式系統(tǒng)中模擬設計》,我認為不錯,有興趣的不妨看看。

《2》掌握常用的元器件的選用方法與其典型的電路應用

俗語講:巧婦難為無米之炊。一個理論知識豐富的工程師,如果對元器件的原理和應用不熟悉,是很難設計出好的嵌入式應用系統(tǒng)的。這就猶如一個好的醫(yī)生,能夠正確分析病理,找到病癥,可以不懂藥物,開不出藥方,一樣治不好病。

這個能力如何才能具備呢?

只能靠平時不斷積累,而且是貫穿整個嵌入式開發(fā)生涯,我想別無他法了。

在這個地方,我有一個經(jīng)驗可以和大家分享:養(yǎng)成做開發(fā)筆記的習慣。

拿一個好的筆記本,無論是學習還是開發(fā)過程中,遇到新的元器件應用,就將其記錄在本子上。這個記錄至少包括:元器件的引腳圖,封裝圖,重要的電氣特性,結構原理,應用電路,如果涉及接口編程的,要把核心的程序記錄下來,最好還能將你的開發(fā)體會記錄下來,或者將別人的開發(fā)經(jīng)驗也可記錄下來。

倘若能夠一直堅持下去,這個筆記本就會成為你的一個嵌入式應用開發(fā)寶典。日后在設計系統(tǒng)的時候,需要什么元器件,翻一下筆記本,就什么都有了,總比你去翻數(shù)據(jù)手冊強,要知道一本數(shù)據(jù)手冊可有好幾百頁的。

《3》熟練掌握一款電路設計軟件以及電路設計原則

嵌入式應用系統(tǒng)首選要通過硬件表現(xiàn)出來,有了硬件平臺才能在上面編寫代碼,實現(xiàn)應用。要制作硬件平臺,首選要設計硬件電路。這就要求你能熟練使用電路設計軟件,以及懂得一些軟件設計的規(guī)則。

目前常用的電路設計軟件有不少,不過常用的也就是Protel,也有很多公司用Designer,不過兩者很接近,會用其中一款,掌握另外一款很容易。對于工具軟件,只要多用就會熟練的了?,F(xiàn)在網(wǎng)上教程很多,很容易學習的。我在網(wǎng)上有一個文章《物聯(lián)網(wǎng)硬件技術實訓-攻略手冊(2016版)》,不過講的是Protel99軟件的使用。這是一個99年的軟件工具,你可不要小看它,短小精悍,現(xiàn)在還有不少公司的工程師在使用能。初學者就應該從簡單和經(jīng)典的入手。

對于電路設計原則,網(wǎng)上有很多文章,也有不少書籍。對于初學者來說,不會涉及高速和高頻的電路,在布局走線和地線設計上沒有太多的講究,只要合理、美觀就可以了,當然線不能太細,線寬也不能太窄,起碼要符合制版公司的生產(chǎn)要求。這也是一個積累的過程,隨著你學習的深入,設計經(jīng)驗的豐富,這部分知識也就悄悄的多起來了。

電路板設計出來了,還要親自發(fā)出去生產(chǎn)一下,通過這個過程,你會了解到生產(chǎn)電路板的一些工藝要求,以及體會一個設計者如何與生產(chǎn)者溝通。在這個過程中,你知道了選擇多厚的板,為什么要開鋼網(wǎng),什么叫郵票孔,怎么樣拼板,要不要飛針測試,面積大的電路板原來還有菲林費。..。..。

《3》必須精通C語言程序設計和典型的設計思路

如果你不去做系統(tǒng)移植的工作,C語言基本可以滿足你對硬件系統(tǒng)的所有編程要求。C語言是嵌入式系統(tǒng)開發(fā)的一個工具,對工具使用的熟練程度,直接影響系統(tǒng)的開發(fā)程度。所以,我認為必須要精通C語言程序設計,而不是會或者掌握。嵌入式C語言程序設計和標準的C語言程序設計還是有一些不同的地方,這個大家需要體會一下。在標準C語言應用中,宏定義、條件編譯、頭文件這些知識點并不被重視,但在嵌入式系統(tǒng)中卻確隨處可見。在嵌入式開發(fā)中,很多時候要對寄存器進行操作,所以在指針方面的應用也會很多。如果是數(shù)據(jù)采集或者物聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)膽?,可以涉及到到大?shù)組的處理,而在進行協(xié)議解析的時候,又要在大數(shù)組中,對很多小字段進行處理,對于RAM區(qū)不足的處理器,你還不能夠定義小數(shù)組來處理小字段,只能運用指針設計算法。

對于簡單的嵌入式應用系統(tǒng),我們可自己從頭到尾自己編寫一個系統(tǒng)應用程序,而對于復雜的嵌入式應用系統(tǒng),就需要移植一個操作系統(tǒng)來進行任務管理了。對于嵌入式初學者來說,能達到前者水平就可以了。要自己獨立編寫一個合理的應用程序也不是一個簡單的事情。目前這方面的資料和書籍有很多,我三兩句也講不清楚,不妨推薦兩本書給大家參考一下:

1.安德魯。凱尼格的《C陷阱與缺陷》

2.周航慈的《基于嵌入式實時操作系統(tǒng)的程序設計技術(第2版)》

《4》理解51單片機的原理結構并進行編程訓練

對于這一點有不少人會提出質疑,也有人認為沒有必要,這是在浪費時間,這說的有一定道理。但對于初學者,我認為還是要從最簡單、最經(jīng)典的入手。首先,51單片機的結構簡單但是極具代表性,很多嵌入式微處理器都由51內核演變過來;其二,關于51單片機的學習資料很多也很容易獲得,學習成本很低;其三,當前不少SOC片上系統(tǒng)都是采用51內核作為處理部分,不見得過時。

當前不管是簡單的8微處理器還是32為ARM處理器,都是一種“內核+外設”的結構,其中的差異是內核的性能高低和外設的復雜程度。當然,51單片機也是“內核+外設”的結構,只不過性能低,外設少而已。雖然在實際應用中已經(jīng)很少了,但作為學習平臺,特別是入門學習那是相當合適的。我相信當前很多高校都還在用51單片機作為主流的教學平臺呢。

51單片機雖小,但五臟俱全。4個8位的I/O端口,其中P3口作為復用端口;2個外部中斷輸入,2個定時計數(shù)器,1個串行接口。內部有5路中斷,由IE寄存器進行使能選擇,由IP寄存器進行優(yōu)先級設定??雌饋砼c現(xiàn)有主流的處理器結構好像相差不大,只是少了一些外設,中斷處理好像有些差別等等。

就我個人的經(jīng)驗來看,熟悉51單片機的原理和應用之后,再去接觸當前的主流單片機或32位的ARM處理器(沒有上操作系統(tǒng)的32為處理器只不過是款復雜的單片機),是相當容易上手的。當然,你不從51單片機入手,直接找一個主流的8位單片機入門學習也是可以的?,F(xiàn)在很多微處理器提供的集成開發(fā)環(huán)境都很智能了,可以輔助你生成一些程序框架。就開發(fā)者而言,能夠加快你開發(fā)的進度。然而,對于初學者來說,由于集成開發(fā)環(huán)境輔助做了一些工作,封裝了部分的代碼,反而不利于對知識的理解和學習。

《5》掌握一款主控微處理器的開發(fā)并掌握常用接口模塊的設計

上面說的51單片機學習只是讓你能更好的入門而已。在實際的應用開發(fā)中,用到51單片機的場合并不多,所以,還得掌握一款主流微處理器的開發(fā)。由于有了前面單片機的學習基礎,再去掌握一款新的微處理器會很容易。在這個部分,主要的精力不再是微處理器本身的學習,而是借助這個微處理器去進行一個經(jīng)典應用和常用接口模塊的學習。

如果說元器件電路模塊是硬件資源的積累,那么,常用接口模塊驅動程序則是軟件資源的積累。

將來在你的產(chǎn)品設計中,可能用到很多新的芯片和元器件,只要它的接口是SPI接口、IIC接口、設置串口等你熟悉的接口,那么對于你來說,它就是一個舊芯片和元器件。因為微處理器面對的不是芯片,而是接口。對外設芯片的操作本質上就是通過數(shù)據(jù)接口設置外設芯片的寄存器而已。不管是多么先進或多么新穎的外設芯片,只要用的典型接口,那么通過接口驅動程序建立數(shù)據(jù)通道,按照數(shù)據(jù)手冊對寄存器進行操作,很快就可以應用自如了。

所以說,熟練的掌握各種接口的編程和常用模塊的設計,是多么的關鍵。

《6》掌握一些常用工具的使用并具備一定的焊接能力

掌握一些常用的軟硬件工具,是調試必備的技能。對于初學者來說,不要急著去研究頻譜分析儀、數(shù)字毫伏表這些高端的工具,只需要掌握普通常用的工具就足夠了。硬件上面,萬用表示波器是必須要掌握的,能用數(shù)字電源信號發(fā)生器那是最好的了。對于一些特殊的工具,等你做到相應的應用的時候再去使用都不晚,當你要設計一個高精度的熱電偶數(shù)據(jù)采集器,你才會使用到熱電偶校準器。除了硬件工具之外,我們還得掌握一些常用的軟件工具,最典型的就是“串口助手”了,如果你要做以太網(wǎng)方面的應用,你還得會使用以太網(wǎng)抓包工具,抓取網(wǎng)絡上的數(shù)據(jù)包進行數(shù)據(jù)分析。

另外,你還需要具備一定的焊接能力,至少能焊接0.65mm間距的SSOP封裝的芯片?,F(xiàn)在也有不少芯片采用QFN封裝的,看起來很難焊,實際上掌握了要點,手工焊接也是很快的。不用說對于初學者,就是是在小企業(yè)的嵌入式工程師來說,可能都沒有專門的焊接人員配備給你,所以,很多時候都得自己焊接元器件,最起碼在進行硬件調試的時候,要拆下來,焊接上去的時候,你總不能等別人幫忙,或者老是去麻煩別人呀。

《7》自己親自設計一個學習板并進行程序開發(fā)

我覺得這是每一個嵌入式應用開發(fā)入門者的成人禮。當你能夠按照上面所描述的步驟完整這個過程的時候,說明你已經(jīng)正真的踏進了嵌入式應用開發(fā)的門檻。然而,完成嵌入式工程師入門僅僅是一個事業(yè)的開端,后面還需不斷進取,在入門的基礎上,進行操作系統(tǒng)的移植、驅動程序的編寫、實際項目的磨練,小步快跑,迭代升級,才能向一個真正優(yōu)秀嵌入式工程師邁進。

【小結及其他】

嵌入式應用開發(fā)涉及的知識點很多,初次接觸往往感到無從下手。沒錯,與一些高級編程語言“易懂難精”的情況相比,嵌入式應用開發(fā)的入門是比較難的,但是,隨著知識的積累和經(jīng)驗的豐富,后面的路會越走越寬,越走越順。廣大的嵌入式應用開發(fā)入門者應該充滿信心。我一直都認為嵌入式應用開發(fā)就像一場馬拉松,必須一步一個腳印,積蓄能量,逐步進階,才能越走越遠的。

有一些朋友會參加知名培訓機構的嵌入式課程,一開始就在功能復雜的開發(fā)平臺上學習移植操作系統(tǒng),編寫底層驅動程序,切入大型嵌入式系統(tǒng)項目開發(fā)等等,起步很快,學習的內容也很潮,做得實驗也很高端,當然在他們之中,有很多人是相當出色,工作也會非常優(yōu)秀。然而,他們的起點很高,效果可能也很好,但是,我始終認為還是要有一些扎實的基礎作為支撐的。如果在一場馬拉松中沒有足夠的能量儲備,一旦跑得太快,后面可能會跑得不遠。

時代不斷進步,科技不斷發(fā)展。嵌入式應用工程師也應該與時俱進,密切關注行業(yè)動向,偶爾要去參加一下芯片廠商舉辦的產(chǎn)品發(fā)布會或講座,更新知識,認識同行;每年去看看一些大型的電子展會,開拓思維,開開眼界。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    嵌入式熱門領域有哪些?

    通過物聯(lián)網(wǎng)連接各種物理設備和傳感器,促使它們之間實現(xiàn)信息的交換和數(shù)據(jù)的共享。從智能家居到智能城市,物聯(lián)網(wǎng)的應用不斷擴展,為嵌入式系統(tǒng)工程師帶來了廣泛的就業(yè)機會和發(fā)展前景。 自動駕駛 自動駕駛技術作為
    發(fā)表于 07-16 09:23

    嵌入式軟件工程師如何提升自己?

    嵌入式軟件工程師如何提升自己? 作為一名嵌入式軟件工程師,在這個充滿機遇和挑戰(zhàn)的領域里,如何提升自己顯得非常重要,它決定了你未來的發(fā)展方向和成就。接下來,我們一起探討一下。 1.奠定扎
    發(fā)表于 06-12 11:20

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件
    發(fā)表于 05-16 11:00

    一款適合嵌入式工程師使用的在線工具

    一款適合嵌入式工程師使用的在線工具,工具有如下功能,如下圖所示: 1. 報文校驗功能,如下圖所示 2. UDP服務端測試工具:該UDP服務端工具可以理解為 “UDP服務端” 或者 “服務器
    發(fā)表于 04-09 22:20

    嵌入式工程師需要掌握哪些技術?

    嵌入式工程師需要掌握哪些技術? 嵌入式系統(tǒng)是當今科技領域中的重要組成部分,它們存在于我們生活的方方面面,從智能手機到汽車控制系統(tǒng),從家電到醫(yī)療設備。因此,對于那些想要進入嵌入式行業(yè)的
    發(fā)表于 03-04 16:38

    嵌入式人工智能的就業(yè)方向有哪些?

    的發(fā)展方向有很多,門檻高低不一樣。下面給大家列舉一些相應崗位所需具備的技能: 一:嵌入式Linux,C語言開發(fā)工程師,Linux軟件開發(fā)工程師 LinuxC語言開發(fā) LinuxC語言開發(fā)進階 Linux
    發(fā)表于 02-26 10:17

    一名嵌入式工程師的漲薪經(jīng)歷

    下面是一位嵌入式工程師的漲薪經(jīng)歷,希望可以幫助到你,幫到其他的在校學生。 ? 階段 1 大一到大三這個階段我與大多數(shù)學生相同: ? 一、學習本專業(yè)知識(電子信息類專業(yè)) 二、學習嵌入式軟件開發(fā)需要
    的頭像 發(fā)表于 01-05 08:39 ?348次閱讀

    嵌入式軟件工程師常用的

    最近我換工作了,看見不同嵌入式軟件工程師用的平臺都不一樣,所以我整理了一下。PlatformIO:多平臺支持:PlatformIO支持多種嵌入式平臺,包括Arduino、ESP8266、ESP32
    的頭像 發(fā)表于 12-24 08:00 ?523次閱讀
    <b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>工程師</b>常用的

    有沒有誰做過DSP、微型逆變器/微逆變/大型工業(yè)逆變器、嵌入式軟件的軟硬件高級工程師

    急需 DSP、微型逆變器/微逆變/大型工業(yè)逆變器、嵌入式軟件等豐富經(jīng)驗的軟件高級工程師、硬件高級工程師,深圳,面議面議,自薦/推薦請聯(lián)系我。歡迎來詢zsrfwk@163.com
    發(fā)表于 12-14 17:32

    嵌入式硬件和軟件哪個好?

    嵌入式硬件和軟件哪個好? 嵌入式軟硬件工程師哪個更有前途呢?一起來看看。 嵌入式是分為軟硬件工程師的,首先我們先來看看
    發(fā)表于 12-05 15:17

    中高級【嵌入式驅動工程師】年薪50w內可談

    中高級【嵌入式驅動工程師】 年薪50w以內可談 工作?地點:北京市 了解更多 ?5年以上內核驅動開發(fā)經(jīng)驗 ??需要有國產(chǎn)化操作系統(tǒng)/芯片平臺的驅動開發(fā)經(jīng)驗(必須) 交換機/交換芯片驅動開發(fā)經(jīng)驗
    發(fā)表于 11-23 13:35

    嵌入式系統(tǒng)的原理(簡介與入門)

    電子發(fā)燒友網(wǎng)站提供《嵌入式系統(tǒng)的原理(簡介與入門).pdf》資料免費下載
    發(fā)表于 11-17 14:36 ?2次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)的原理(簡介與<b class='flag-5'>入門</b>)

    如何成為一名優(yōu)秀的嵌入式工程師

    如何成為一名優(yōu)秀的嵌入式工程師?嵌入式學習的第一步,首先是C語言。 1.理解內存管理:C語言不同于高級語言,它不會自動管理內存。因此,你需要理解并掌握如何使用malloc()、free()等函數(shù)
    發(fā)表于 11-07 15:36

    嵌入式開發(fā)入門學習

    電子發(fā)燒友網(wǎng)站提供《嵌入式開發(fā)入門學習.doc》資料免費下載
    發(fā)表于 10-26 09:37 ?1次下載
    <b class='flag-5'>嵌入式</b>開發(fā)<b class='flag-5'>入門</b>學習

    面向嵌入式工程師的MPLAB XC8用戶指南

    電子發(fā)燒友網(wǎng)站提供《面向嵌入式工程師的MPLAB XC8用戶指南.pdf》資料免費下載
    發(fā)表于 09-25 11:27 ?1次下載
    面向<b class='flag-5'>嵌入式</b><b class='flag-5'>工程師</b>的MPLAB XC8用戶指南