新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一個工程師的硬件之路

一個工程師的硬件之路

作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
本人是一個在校研究生,本科就讀于吉林大學(xué)通信工程學(xué)院,碩士正就讀于中船重工709 研究所計算機應(yīng)用專業(yè)。對硬件有著無限的熱情與愛好,對未來也有著無限的憧憬與向往。每一個人都在為自己的將來作著各種各樣的計劃,都在考慮我們未來的職業(yè),既然我們已經(jīng)選擇了硬件,那么我們就熱愛它吧,把我們的才能與熱情都奉獻(xiàn)出來,我們不僅僅能夠得到物質(zhì)的補償(赫赫,現(xiàn)在還沒有得到什么物質(zhì)補償,我想畢業(yè)后就會的),還會在精神上感到滿足與快樂(已經(jīng)有所感受了,哈哈)。我是一個還沒有踏上社會的學(xué)生,沒有豐富的項目經(jīng)驗和社會閱歷,所以凡想在此文中獲取高深的人生哲理與職業(yè)箴言,那我懇請您趕緊不要看下去,如若不然,我恐怕受到您的譏笑;僅以此文獻(xiàn)給那些剛剛踏上硬件之路和還在徘徊的同學(xué)們,我簡要的記錄了我的學(xué)習(xí)經(jīng)歷和其間自己所獲的一些心得,以避免初學(xué)者走彎路或者是少走彎路。我深知對于一個初學(xué)者來說,身邊有一個手把手的老師那該是多么幸福的一件事情,他的一句不經(jīng)意的話或許我們初學(xué)者都要花上幾天甚至是幾個月的時間去思考和驗證。但是我們身邊并非總是有一個這么樣的老師,我們就需要在網(wǎng)絡(luò)上去尋找答案了,前人的經(jīng)驗是非常值得借鑒的,我們從他們寫得一些文章中可以悟出一些東西,為我所用,或者是從中吸取精神動力等等。搞硬件的人一定要讀一讀任正非的文章,李嘉誠的文章,周立功的文章,以及網(wǎng)上流傳的其他一些文章?,F(xiàn)在還記得學(xué)習(xí)單片機的時候找到的一片文章叫做《學(xué)習(xí)單片機的八個步驟》。這些文章總是像一個指路標(biāo),指引初學(xué)者向著正確的方向走去。此文純屬無稽之談,毫無含金量,若是能夠給初學(xué)者帶來哪怕是一點點地影響,能夠為你們提供一點點地幫助,那么我將感到無限的欣慰。


我總是想用最簡短的話語來表達(dá)我的思想,說出我最想對初學(xué)者說的話,但是往往力不能及。也深知大家時間的寶貴,不愿把時間浪費在毫無意義的事情上,所以我把我最想說的話用提綱的形式列在文章的前頭了,沒有時間的話,各位看官只需看看前頭就可以了。

優(yōu)秀硬件工程師需要什么(來自網(wǎng)上文章以及自己的總結(jié)):

1. 對硬件無限的熱情(第一位,本人認(rèn)為)
2. 數(shù)字電路、模擬電路、protel 等(高頻等其他的知識我還沒有用過)
3. C 語言
4. 單片機(匯編語言)
5. FPGA(包括verilog/vhdl、sopc)
6. ARM(包括嵌入式操作系統(tǒng),建議先學(xué)UCOS,適合初學(xué)者)
7. DSP

以上并非每一種都要精通,根據(jù)自己的實際,5、6、7 可以選擇其中的一到兩種,當(dāng)然都會的話那更好。2-4 本人認(rèn)為這是基礎(chǔ),必須精通。

硬件需求配置:

1.學(xué)習(xí)單片機的話,仿真器是必不可少的,有沒有編程器倒是影響不大,建議自己買一塊即插即用的萬能板,自己搭建系統(tǒng)來試驗。這樣不用烙鐵焊接了,因為我們作為學(xué)習(xí)者,很容易焊錯器件或者是引腳。買開發(fā)板的話,就會對硬件的連接不會很了解,建議初學(xué)者自己搭建系統(tǒng)以及其他的外擴器件。這會讓你對整體的硬件連接了如指掌。全在自己的掌控之中。還有有一臺示波器的話那是再理想不過了,那會幫助我們分析解決問題,特別是在做串口實驗、中斷、I2CEEPROM 讀寫的時候。

2. 學(xué)習(xí)FPGA,那么就不能像學(xué)習(xí)單片機一樣找來一片芯片就可以動手了。像51 類單片機的引腳不是很多,但是FPGA 就不一樣了,往往有幾十個甚至一百多的引腳,我用的altera 的ep1c20 有144 個引腳,全貼片工藝,所以這個時候我們就必須在市場上買一個開發(fā)板了。我用的是altera 公司的EP1C20cyclone 系列的開發(fā)板,是我們辦公室的人以前買的,現(xiàn)在正好我用。據(jù)說是5000 元,還是大學(xué)計劃時候買的。有條件用好的當(dāng)然好,但是對于我們一般初學(xué)者用的話,只要帶有常用功能的開發(fā)板就可以了,市場上1000 元左右的還是有的。

3. ARM 學(xué)習(xí)的話,當(dāng)然也離不開開發(fā)板的購買,上次給我二導(dǎo)提建議給我買一個,他很爽快的答應(yīng)了,讓我挑選一塊,我選了周立功的smartarm2200,1980 元RMB,貨現(xiàn)在還沒有來。學(xué)習(xí)arm 的話,嵌入式操作系統(tǒng)是少不了的。操作系統(tǒng)有很多,用的最多的是linux ,由之發(fā)展而來的有uclinux、armlinux 等;其次是ucos。本人建議先學(xué)習(xí)ucos,它代碼量少,容易學(xué)習(xí)。要是有altera 的nios 開發(fā)板的話,也可以學(xué)習(xí)ucos,altera 公司的nios ide 支持好幾種RTOS,其中就包括ucos,直接用就ok 了。

4.DSP屬于比較高的層次,對人的要求比較高。開發(fā)板價格應(yīng)該也不菲,我現(xiàn)在還沒有用過。各位同學(xué)看了后會發(fā)現(xiàn)學(xué)習(xí)這些東西不光是時間、精力的問題,還涉及到一個讓我們同學(xué)們很感冒的問題,那就是器件的購買,這些都需要錢,而且價格都不菲。大部分的我們是沒有這份閑錢的,同學(xué)們可以找?guī)讉€志同道合的同學(xué)一塊買,還可以一塊討論。要是學(xué)校實驗室有的話就在實驗室搞,要是導(dǎo)師有就找導(dǎo)師要,總之不要放過任何可能的機會,同志們要深知我們的命運把握在我們自己手中,既然選擇了硬件這條路,就要認(rèn)認(rèn)真真地走下去,不光要走下去,還要想方設(shè)法走的很好。以上都是我的一家之言,同學(xué)們千萬不要全信,僅給諸君一個初步的認(rèn)識,如若錯誤還請一笑了之,純當(dāng)小孩之言,無稽之談。

在啰嗦之前,我想介紹一下我辦公室的人員組成,因為這個對我有很大的影響。辦公室有四個人,一個是擁有十一年工作經(jīng)驗且已擁有自己專利的高級工程師(我的導(dǎo)師要他帶我,我習(xí)慣叫他二導(dǎo),這是我為什么在這個辦公室的原因),一個是擁有5 年經(jīng)驗熱心助人的工程師,還有兩個分別是電源和視頻方面的專家或者元老級人物。耳濡目染,自己漸漸的對硬件發(fā)生了濃厚的興趣。從單片機,F(xiàn)PGA,SOPC 硬件的搭建以及軟件編程,以及現(xiàn)在正在努力研究的ARM,我是憑著無限的熱情來做的。

熱情不是唯一的原因,還有另外一個原因就是試驗室給我提供了很好的學(xué)習(xí)環(huán)境。學(xué)習(xí)單片機的時候,試驗室有現(xiàn)成的winbond 51 單片機,有偉福仿真器,有advanced labtool 48uxp 萬能編程器,有一臺十二萬的示波器,自己買個萬能板,找本書就在上邊進(jìn)行試驗了。從簡單的led 閃爍、數(shù)碼管顯示、pwm 到中斷、串口通信(單片機與單片機通信,單片機與pc 機通信)、I2Ceeprom 讀寫、A/D轉(zhuǎn)換、溫度的測量等等,給我成就感的是每一個試驗經(jīng)過資料的查找、程序的編寫以及調(diào)試、再到后來問題的解決,那份成就感與喜悅之心只有有過這種經(jīng)歷的人才能夠體會。正是有這份熱情和愛好,常常在實驗室呆上十二三個小時,通常是晚飯在食堂吃了后直接到驗室,晚上九點半回寢室(辦公樓10 點關(guān)門)。雖說那時候沒有做過什么大項目,但是這每一個小小的實驗也是人生知識的積累,有了這些知識的積累,我想也為以后作更大的項目打下了基礎(chǔ)。

本文引用地址:http://m.butianyuan.cn/article/201611/321606.htm

剛進(jìn)實驗室的時候,我的二導(dǎo)就給了我一塊開發(fā)版,是altera 公司的nios ep1c20 cyclone 系列開發(fā)板,當(dāng)時是以大學(xué)計劃買的,5000RMB。于是就開始了我的fpga 學(xué)習(xí)之路。以前學(xué)習(xí)過verilog,當(dāng)時只是停留在純粹的理論階段,編幾個小小的程序,用quartus-ii 自帶的仿真軟件進(jìn)行一下仿真就ok 了。用仿真軟件進(jìn)行仿真,往往能夠得出你所想要的結(jié)果,但是一旦下載到芯片里邊運行的話問題就會接踵而來。和單片機機學(xué)習(xí)一樣,萬事開有難。我做的第一個實驗也是點亮led。自己編寫程序(幾行而已),編譯,引腳分配,仿真,然后就用jtag 下載線連接開發(fā)版板和pc 機,將sof 文件下載到芯片?,F(xiàn)在想起來這是多么簡單的幾個步驟,但是對于當(dāng)時的我來說,是花費了很多的時間和精力來查找資料和埋頭做實驗的。特別是引腳的分配,對著文檔只說需要這么做,然而為什么要這么做呢?當(dāng)時沒有過多的想法,只想讓我看到實驗的結(jié)果,有了結(jié)果我就有了無限的成就感和對做實驗的熱情,所以當(dāng)看到經(jīng)過我的努力,在我的第一個fpga 實驗里led 按照我的意圖來動作的時候,那種喜悅之情與當(dāng)初學(xué)習(xí)單片機時候?qū)崿F(xiàn)led 閃爍的情形是多么的相似。這也是我做實驗的一個慣例和一個經(jīng)驗,那就是邊做實驗邊看書,在實驗中發(fā)現(xiàn)問題,遇到不懂的問題或者原理在查找相關(guān)的文檔,我習(xí)慣動手,要是讓我坐在實驗室看上哪怕是1 天的純理論書籍,我的腦袋也會爆炸的,赫赫,因為沒有這么看過書,所以腦袋也一直沒有爆炸。以及后來學(xué)習(xí)ucos 嵌入式操作系統(tǒng)我也采用的這個方法,我把它叫做"階梯成就感"(在寫這篇文章的時候突然覺得這個詞語很符合這種情形,臨時想出來的)。抱著這種熱情,自己后來一點一點地深入的學(xué)習(xí)fpga,一些常規(guī)邏輯電路的設(shè)計,包括邏輯門電路、數(shù)據(jù)選擇器、編譯碼器、加減乘除運算器、移位器,到后來的稍微復(fù)雜的電路設(shè)計,包括FIFO、數(shù)字跑表、頻率計、狀態(tài)機、交通等的控制、卡式電話計費系統(tǒng)以及UART 等。


以上的試驗我都是采用的verilog 語言來實現(xiàn)的。當(dāng)初接觸fpga 的時候向?qū)W習(xí)VHDL,那時同學(xué)們都用verilog,以便和他們討論問題的方便,后來就改學(xué)習(xí)verilog 了,一學(xué)不要緊,發(fā)現(xiàn)自己深深地愛上了verilog,因為對于我來說,他無疑更加適合我。這也是我的一個經(jīng)驗,那就是看看你旁邊的人用的是什么工具,他們用的工具往往不是你最喜歡的或者是不是當(dāng)前最流行的和用的最廣泛的,但是你若要和他們交流討論問題的話,那你還是遷就一下,大環(huán)境是這樣的,和你旁邊的人所用工具一樣,交流起來也會順暢方便。來實驗室后,因為我們實驗室的員工用的偉福的仿真器,所以軟件當(dāng)然還是用偉福提供的。偉福的軟件不怎么好,只支持匯編,比起大名鼎鼎的keil c51 那是遜了一大截。但是在前期的時候我還是選擇了偉福的軟件,因為我不想到時候我有問題不會的時候周邊沒有人幫助我。再后來,經(jīng)過自己的摸索和向身邊的工程師們請教,偉福用的已經(jīng)很熟悉了,匯編也有了自己的一套,這個時候我開始在偉福里邊嵌入keil,用c 語言來寫程序,但是調(diào)試的時候用偉福軟件還是有缺陷,比如說不能夠單步執(zhí)行。所以再后來我下載了keil c51 軟件,從此以后我正式的在keil 的開發(fā)界面下寫程序了。當(dāng)然仿真的時候也可以在keil 環(huán)境下用偉福仿真器,我想偉福在制造他的產(chǎn)品的時候就已經(jīng)考慮到這點了,他的一些產(chǎn)品肯定要兼容主流軟件keil 的。用了keil C51 后就不想用偉福編譯軟件了,同樣的用了c 寫程序后,就不想用匯編了。但是匯編是每一個硬件研發(fā)工程師們都必需的,匯編有c 不可企及之處,有時候還非用匯編不可。匯編的運行效率高,但是寫起來很是繁瑣,繁瑣規(guī)繁瑣,當(dāng)在某些特定的時刻,匯編發(fā)揮了他不可替代的作用。比如在將usoc 移植到單片機的時候,與處理器相關(guān)的程序還真是必須用匯編來完成。


再后來,開始學(xué)習(xí)sopc。從最小系統(tǒng)硬件平臺的搭建,到簡單的led 閃爍程序的編寫,到sof 文件在芯片上跑起來,看著led 的亮與滅,心中一直充滿著無限的熱清。每一次接觸新知識都有一種發(fā)自內(nèi)心的激動,每一次接觸的新東西我都是從最簡單的led 閃爍開始,從單片機到fpga 到sopc 再到ucos,只有每天的一個小小的進(jìn)步才能讓我擁有對工作的熱情,只有這每天小小的看得見的"階梯成就感",才能激發(fā)自己對更多知識的追求。本人比較欣賞altera 公司推出的可編程片上系統(tǒng)(即sopc),她解放了我們搭建硬件系統(tǒng)的繁瑣,僅僅需要按照需求在系統(tǒng)里邊加上自己的IP 核和一些必須的外設(shè)。altera公司或者其他的第三方公司已經(jīng)為我們提供了性能和功能很完善的IP 核,我們所要做的只是將這些IP核加入到我們的系統(tǒng)里完成我們需要的功能。硬件系統(tǒng)完成后,需要在altera 公司為我們提供的nios IDE環(huán)境里邊對我們的硬件系統(tǒng)進(jìn)行軟件編程,在這里,完全用c 語言來完成我們所需要的功能。與前邊學(xué)習(xí)單片機、fpga 一樣,第一個實驗還是led 閃爍,然后慢慢的轉(zhuǎn)向一些比較復(fù)雜的功能設(shè)計上去,也無非是實現(xiàn)以前用verilog 實現(xiàn)過的一些功能。兩者的區(qū)別是:一種完全用verilog 語言來實現(xiàn)全部功能;一種需要先用sopc builder 搭建硬件系統(tǒng),然后在nios ide 中進(jìn)行軟件的編程。這兩種方法都能夠?qū)崿F(xiàn)我們需要的功能,但是后者更方便快捷,因為在這種方法里,我們使用的是"拿來主義",IP 核已經(jīng)實現(xiàn)了我們的功能,要做的僅僅是去用它而已。


最近一段時間在學(xué)習(xí)ucos 嵌入式操作系統(tǒng),主要是運用在FPGA 里面。nios 已經(jīng)為我們移植好了,不需要修改任何文件。在nios 用戶界面里進(jìn)行一些相應(yīng)的設(shè)置,就可以用它了。altera 公司為我們提供的模板里邊有幾個很好的例子,任務(wù)管理、信號量、郵箱傳遞、事件標(biāo)志、時間管理等都為我們提供了很好的模板,我們需要作的是認(rèn)真的閱讀它,研究它,必要的話對模板進(jìn)行一些改寫來完成自己的功能,這是模仿的更高的一個境地了,把他的一些東西進(jìn)行吸收轉(zhuǎn)化成為自己的東西,我想這是一個硬件愛好者和初學(xué)者非常樂于做的事情。


在進(jìn)行fpga 學(xué)習(xí)的時候,我遇到過事情停滯不前,沒有進(jìn)展,心情沮喪的時候。那個時候?qū)Φ讓佑布粺o所知,連對基本的原理圖也看不懂,更別說程序在開發(fā)板上是怎么運行的了。再到后來進(jìn)行nios 開發(fā)的時候,這種沮喪感與日俱增,每天一點進(jìn)步也沒有,那是一個很漫長的日子,現(xiàn)在想起來,依然慶幸自己沒有絕望,沒有對自己熱愛的硬件失去信心。后來事件出現(xiàn)了轉(zhuǎn)機。有一次我和我辦公室的一個工程師聊天,談到了我的空惑,他建議我先學(xué)習(xí)單片機,自己搭建硬件平臺從最小系統(tǒng)做起。這個工程師熱心助人,學(xué)習(xí)方面的問題他總是很耐心的為我解答,讓我受益匪淺,我很慶幸能夠在這種環(huán)境當(dāng)中學(xué)習(xí),雖說我不在高校,但是研究所為我提供的學(xué)習(xí)環(huán)境與硬件設(shè)施我想不是每個高校學(xué)生能夠享受到的。我想說的是,遇到問題的時候,當(dāng)我們感覺事情沒法進(jìn)展下去的時候,我們不妨換一種方式,多與周邊的人聊聊天。在我的環(huán)境里,我的導(dǎo)師是一個擁有近30 年硬件開發(fā)經(jīng)驗的資深研究員,才開始的時候我什么都不懂(赫赫,感覺現(xiàn)在依然什么都不懂,東西越學(xué)越多,總也學(xué)不完),但是我總喜歡跑到我導(dǎo)師的辦公室和他瞎聊。他和藹可親,容易接近,和他交流的時候總是給我一些職業(yè)和人生方面的忠告,這些忠告將會伴隨著我的人生。


人生總是有很多坎坷,我們的學(xué)習(xí)也是的。在這個時候我們就要看看任正非寫給華為員工的一封信《要快樂的度過充滿困難的一生》,在那里我們可以找到好好活下去的理由;當(dāng)看中了某件事情的時候,我們就需要鼓足勇氣,滿腔熱情地去迎接它,遇到困難的時候多和別人交流,或者是去網(wǎng)上看看李嘉誠的寫給青年的《are you ready》,在那里我們可以學(xué)到謙虛、勇氣、智慧、毅力。


最后送給我們的初學(xué)者一句話?!妒ソ?jīng)》中馬太福音里的一句話:凡有的,還要加給他叫他多余;沒有的,連他所有的也要奪過來。



關(guān)鍵詞: 工程師硬件之

評論


技術(shù)專區(qū)

關(guān)閉