初學(xué)者之路—硬件學(xué)習(xí)經(jīng)驗(yàn)
2011年12月29日 10:20 來(lái)源:本站整理 作者:秩名 我要評(píng)論(0)
本人是一個(gè)在校研究生,本科就讀于吉林大學(xué)通信工程學(xué)院,碩士正就讀于中船重工709 研究所計(jì)算機(jī)應(yīng)用專業(yè)。對(duì)硬件有著無(wú)限的熱情與愛(ài)好,對(duì)未來(lái)也有著無(wú)限的憧憬與向往。搞硬件的人一定要讀一讀任正非的文章,李嘉誠(chéng)的文章,周立功的文章,以及網(wǎng)上流傳的其他一些文章?,F(xiàn)在還記得學(xué)習(xí)單片機(jī)的時(shí)候找到的一片文章叫做《學(xué)習(xí)單片機(jī)的八個(gè)步驟》。這些文章總是像一個(gè)指路標(biāo),指引初學(xué)者向著正確的方向走去。此文純屬無(wú)稽之談,毫無(wú)含金量,若是能夠給初學(xué)者帶來(lái)哪怕是一點(diǎn)點(diǎn)地影響,能夠?yàn)槟銈兲峁┮稽c(diǎn)點(diǎn)地幫助,那么我將感到無(wú)限的欣慰。
我把我最想說(shuō)的話用提綱的形式列在文章的前頭了,沒(méi)有時(shí)間的話,各位看官只需看看前頭就可以了。
優(yōu)秀硬件工程師需要什么:
1. 對(duì)硬件無(wú)限的熱情(第一位,本人認(rèn)為)
2. 數(shù)字電路、模擬電路、protel 等(高頻等其他的知識(shí)我還沒(méi)有用過(guò))
3. C 語(yǔ)言
4. 單片機(jī)(匯編語(yǔ)言)
6. ARM(包括嵌入式操作系統(tǒng),建議先學(xué)UCOS,適合初學(xué)者)
7. DSP
以上并非每一種都要精通,根據(jù)自己的實(shí)際,5、6、7 可以選擇其中的一到兩種,當(dāng)然都會(huì)的話那更好。2-4 本人認(rèn)為這是基礎(chǔ),必須精通。
硬件需求配置:
1. 學(xué)習(xí)單片機(jī)的話,仿真器是必不可少的,有沒(méi)有編程器倒是影響不大,建議自己買一塊即插即用的萬(wàn)能板,自己搭建系統(tǒng)來(lái)試驗(yàn)。這樣不用烙鐵焊接了,因?yàn)槲覀冏鳛閷W(xué)習(xí)者,很容易焊錯(cuò)器件或者是引腳。買開發(fā)板的話,就會(huì)對(duì)硬件的連接不會(huì)很了解,建議初學(xué)者自己搭建系統(tǒng)以及其他的外擴(kuò)器件。這會(huì)讓你對(duì)整體的硬件連接了如指掌。全在自己的掌控之中。還有有一臺(tái)示波器的話那是再理想不過(guò)了,
那會(huì)幫助我們分析解決問(wèn)題,特別是在做串口實(shí)驗(yàn)、中斷、I2CEEPROM 讀寫的時(shí)候。
2. 學(xué)習(xí)FPGA,那么就不能像學(xué)習(xí)單片機(jī)一樣找來(lái)一片芯片就可以動(dòng)手了。像51 類單片機(jī)的引腳不是很多,但是FPGA 就不一樣了,往往有幾十個(gè)甚至一百多的引腳,我用的altera 的ep1c20 有144 個(gè)引腳,全貼片工藝,所以這個(gè)時(shí)候我們就必須在市場(chǎng)上買一個(gè)開發(fā)板了。我用的是altera 公司的EP1C20 cyclone 系列的開發(fā)板,是我們辦公室的人以前買的,現(xiàn)在正好我用。據(jù)說(shuō)是5000 元,還是大學(xué)計(jì)劃時(shí)
候買的。有條件用好的當(dāng)然好,但是對(duì)于我們一般初學(xué)者用的話,只要帶有常用功能的開發(fā)板就可以了,市場(chǎng)上1000 元左右的還是有的。
3. ARM 學(xué)習(xí)的話,當(dāng)然也離不開開發(fā)板的購(gòu)買,上次給我二導(dǎo)提建議給我買一個(gè),他很爽快的答應(yīng)了,讓我挑選一塊,我選了周立功的smartarm2200,1980 元RMB,貨現(xiàn)在還沒(méi)有來(lái)。學(xué)習(xí)arm 的話,嵌入式操作系統(tǒng)是少不了的。操作系統(tǒng)有很多,用的最多的是linux ,由之發(fā)展而來(lái)的有uclinux、armlinux 等;其次是ucos。本人建議先學(xué)習(xí)ucos,它代碼量少,容易學(xué)習(xí)。要是有altera 的nios 開發(fā)板的話,也可以學(xué)習(xí)ucos,altera 公司的nios ide 支持好幾種RTOS,其中就包括ucos,直接用就ok 了。
4. DSP屬于比較高的層次,對(duì)人的要求比較高。開發(fā)板價(jià)格應(yīng)該也不菲,我現(xiàn)在還沒(méi)有用過(guò)。
各位同學(xué)看了后會(huì)發(fā)現(xiàn)學(xué)習(xí)這些東西不光是時(shí)間、精力的問(wèn)題,還涉及到一個(gè)讓我們同學(xué)們很感冒的問(wèn)題,那就是器件的購(gòu)買,這些都需要錢,而且價(jià)格都不菲。大部分的我們是沒(méi)有這份閑錢的,同學(xué)們可以找?guī)讉€(gè)志同道合的同學(xué)一塊買,還可以一塊討論。要是學(xué)校實(shí)驗(yàn)室有的話就在實(shí)驗(yàn)室搞,要是導(dǎo)師有就找導(dǎo)師要,總之不要放過(guò)任何可能的機(jī)會(huì),同志們要深知我們的命運(yùn)把握在我們自己手中,既然選擇了硬件這條路,就要認(rèn)認(rèn)真真地走下去,不光要走下去,還要想方設(shè)法走的很好。
熱情不是唯一的原因,還有另外一個(gè)原因就是試驗(yàn)室給我提供了很好的學(xué)習(xí)環(huán)境。學(xué)習(xí)單片機(jī)的時(shí)候,試驗(yàn)室有現(xiàn)成的winbond 51 單片機(jī),有偉福仿真器,有advanced labtool 48uxp 萬(wàn)能編程器,有一臺(tái)十二萬(wàn)的示波器,自己買個(gè)萬(wàn)能板,找本書就在上邊進(jìn)行試驗(yàn)了。從簡(jiǎn)單的led 閃爍、數(shù)碼管顯示、pwm 到中斷、串口通信(單片機(jī)與單片機(jī)通信,單片機(jī)與pc 機(jī)通信)、I2Ceeprom 讀寫、A/D轉(zhuǎn)換、溫度的測(cè)量等等,給我成就感的是每一個(gè)試驗(yàn)經(jīng)過(guò)資料的查找、程序的編寫以及調(diào)試、再到后來(lái)問(wèn)題的解決,那份成就感與喜悅之心只有有過(guò)這種經(jīng)歷的人才能夠體會(huì)。正是有這份熱情和愛(ài)好,常常在實(shí)驗(yàn)室呆上十二三個(gè)小時(shí)。雖說(shuō)那時(shí)候沒(méi)有做過(guò)什么大項(xiàng)目,但是這每一個(gè)小小的實(shí)驗(yàn)也是人生知識(shí)的積累,有了這些知識(shí)的積累,我想也為以后作更大的項(xiàng)目打下了基礎(chǔ)。
剛進(jìn)實(shí)驗(yàn)室的時(shí)候,我的二導(dǎo)就給了我一塊開發(fā)版,是altera 公司的nios ep1c20 cyclone 系列開發(fā)板,當(dāng)時(shí)是以大學(xué)計(jì)劃買的,5000RMB。于是就開始了我的fpga 學(xué)習(xí)之路。以前學(xué)習(xí)過(guò)verilog,當(dāng)時(shí)只是停留在純粹的理論階段,編幾個(gè)小小的程序,用quartus-ii 自帶的仿真軟件進(jìn)行一下仿真就ok 了。
用仿真軟件進(jìn)行仿真,往往能夠得出你所想要的結(jié)果,但是一旦下載到芯片里邊運(yùn)行的話問(wèn)題就會(huì)接踵而來(lái)。和單片機(jī)機(jī)學(xué)習(xí)一樣,萬(wàn)事開有難。我做的第一個(gè)實(shí)驗(yàn)也是點(diǎn)亮led。自己編寫程序(幾行而已),編譯,引腳分配,仿真,然后就用jtag 下載線連接開發(fā)版板和pc 機(jī),將sof 文件下載到芯片。現(xiàn)在想起來(lái)這是多么簡(jiǎn)單的幾個(gè)步驟,但是對(duì)于當(dāng)時(shí)的我來(lái)說(shuō),是花費(fèi)了很多的時(shí)間和精力來(lái)查找資料和埋頭做實(shí)驗(yàn)的。特別是引腳的分配,對(duì)著文檔只說(shuō)需要這么做,然而為什么要這么做呢?當(dāng)時(shí)沒(méi)有過(guò)多的想法,只想讓我看到實(shí)驗(yàn)的結(jié)果,有了結(jié)果我就有了無(wú)限的成就感和對(duì)做實(shí)驗(yàn)的熱情,所以當(dāng)看到經(jīng)過(guò)我的努力,在我的第一個(gè)fpga 實(shí)驗(yàn)里led 按照我的意圖來(lái)動(dòng)作的時(shí)候,那種喜悅之情與當(dāng)初學(xué)習(xí)單片機(jī)時(shí)候?qū)崿F(xiàn)led 閃爍的情形是多么的相似。這也是我做實(shí)驗(yàn)的一個(gè)慣例和一個(gè)經(jīng)驗(yàn),那就是邊做實(shí)驗(yàn)邊看書,在實(shí)驗(yàn)中發(fā)現(xiàn)問(wèn)題,遇到不懂的問(wèn)題或者原理在查找相關(guān)的文檔,我習(xí)慣動(dòng)手,要是讓我坐在實(shí)驗(yàn)室看上哪怕是1 天的純理論書籍,我的腦袋也會(huì)爆炸的,赫赫,因?yàn)闆](méi)有這么看過(guò)書,所以腦袋也一直沒(méi)有爆炸。以及后來(lái)學(xué)習(xí)ucos 嵌入式操作系統(tǒng)我也采用的這個(gè)方法,我把它叫做"階梯成就感"(在寫這篇文章的時(shí)候突然覺(jué)得這個(gè)詞語(yǔ)很符合這種情形,臨時(shí)想出來(lái)的)。抱著這種熱情,自己后來(lái)一點(diǎn)一點(diǎn)地深入的學(xué)習(xí)fpga,一些常規(guī)邏輯電路的設(shè)計(jì),包括邏輯門電路、數(shù)據(jù)選擇器、編譯碼器、加減乘除運(yùn)算器、移位器,到后來(lái)的稍微復(fù)雜的電路設(shè)計(jì),包括FIFO、數(shù)字跑表、頻率計(jì)、狀態(tài)機(jī)、交通等的控制、卡式電話計(jì)費(fèi)系統(tǒng)以及UART 等。
以上的試驗(yàn)我都是采用的verilog 語(yǔ)言來(lái)實(shí)現(xiàn)的。當(dāng)初接觸fpga 的時(shí)候向?qū)W習(xí)VHDL,那時(shí)同學(xué)們都用verilog,以便和他們討論問(wèn)題的方便,后來(lái)就改學(xué)習(xí)verilog 了,一學(xué)不要緊,發(fā)現(xiàn)自己深深地愛(ài)上了verilog,因?yàn)閷?duì)于我來(lái)說(shuō),他無(wú)疑更加適合我。這也是我的一個(gè)經(jīng)驗(yàn),那就是看看你旁邊的人用的是什么工具,他們用的工具往往不是你最喜歡的或者是不是當(dāng)前最流行的和用的最廣泛的,但是你若要和他們交流討論問(wèn)題的話,那你還是遷就一下,大環(huán)境是這樣的,和你旁邊的人所用工具一樣,交流起來(lái)也會(huì)順暢方便。來(lái)實(shí)驗(yàn)室后,因?yàn)槲覀儗?shí)驗(yàn)室的員工用的偉福的仿真器,所以軟件當(dāng)然還是用偉福提供的。偉福的軟件不怎么好,只支持匯編,比起大名鼎鼎的keil c51 那是遜了一大截。但是在前期的時(shí)候我還是選擇了偉福的軟件,因?yàn)槲也幌氲綍r(shí)候我有問(wèn)題不會(huì)的時(shí)候周邊沒(méi)有人幫助我。再后來(lái),經(jīng)過(guò)自己的摸索和向身邊的工程師們請(qǐng)教,偉福用的已經(jīng)很熟悉了,匯編也有了自己的一套,這個(gè)時(shí)候我開始在偉福里邊嵌入keil,用c 語(yǔ)言來(lái)寫程序,但是調(diào)試的時(shí)候用偉福軟件還是有缺陷,比如說(shuō)不能夠單步執(zhí)行。所以再后來(lái)我下載了keil c51 軟件,從此以后我正式的在keil 的開發(fā)界面下寫程序了。當(dāng)然仿真的時(shí)候也可以在keil 環(huán)境下用偉福仿真器,我想偉福在制造他的產(chǎn)品的時(shí)候就已經(jīng)考慮到這點(diǎn)了,他的一些產(chǎn)品肯定要兼容主流軟件keil 的。用了keil C51 后就不想用偉福編譯軟件了,同樣的用了c 寫程序后,就不想用匯編了。但是匯編是每一個(gè)硬件研發(fā)工程師們都必需的,匯編有c 不可企及之處,有時(shí)候還非用匯編不可。匯編的運(yùn)行效率高,但是寫起來(lái)很是繁瑣,繁瑣規(guī)繁瑣,當(dāng)在某些特定的時(shí)刻,匯編發(fā)揮了他不可替代的作用。比如在將usoc 移植到單片機(jī)的時(shí)候,與處理器相關(guān)的程序還真是必須用匯編來(lái)完成。
再后來(lái),開始學(xué)習(xí)sopc。從最小系統(tǒng)硬件平臺(tái)的搭建,到簡(jiǎn)單的led 閃爍程序的編寫,到sof 文件在芯片上跑起來(lái),看著led 的亮與滅,心中一直充滿著無(wú)限的熱清。每一次接觸新知識(shí)都有一種發(fā)自內(nèi)心的激動(dòng),每一次接觸的新東西我都是從最簡(jiǎn)單的led 閃爍開始,從單片機(jī)到fpga 到sopc 再到ucos,只有每天的一個(gè)小小的進(jìn)步才能讓我擁有對(duì)工作的熱情,只有這每天小小的看得見(jiàn)的"階梯成就感",才能激發(fā)自己對(duì)更多知識(shí)的追求。本人比較欣賞altera 公司推出的可編程片上系統(tǒng)(即sopc),她解放了我們搭建硬件系統(tǒng)的繁瑣,僅僅需要按照需求在系統(tǒng)里邊加上自己的IP 核和一些必須的外設(shè)。altera公司或者其他的第三方公司已經(jīng)為我們提供了性能和功能很完善的IP 核,我們所要做的只是將這些IP核加入到我們的系統(tǒng)里完成我們需要的功能。硬件系統(tǒng)完成后,需要在altera 公司為我們提供的nios IDE 環(huán)境里邊對(duì)我們的硬件系統(tǒng)進(jìn)行軟件編程,在這里,完全用c 語(yǔ)言來(lái)完成我們所需要的功能。與前邊學(xué)習(xí)單片機(jī)、fpga 一樣,第一個(gè)實(shí)驗(yàn)還是led 閃爍,然后慢慢的轉(zhuǎn)向一些比較復(fù)雜的功能設(shè)計(jì)上去,也無(wú)非是實(shí)現(xiàn)以前用verilog 實(shí)現(xiàn)過(guò)的一些功能。兩者的區(qū)別是:一種完全用verilog 語(yǔ)言來(lái)實(shí)現(xiàn)全部功能;一種需要先用sopc builder 搭建硬件系統(tǒng),然后在nios ide 中進(jìn)行軟件的編程。這兩種方法都能夠?qū)崿F(xiàn)我們需要的功能,但是后者更方便快捷,因?yàn)樵谶@種方法里,我們使用的是"拿來(lái)主義",IP 核已經(jīng)實(shí)現(xiàn)了我們的功能,要做的僅僅是去用它而已。
最近一段時(shí)間在學(xué)習(xí)ucos 嵌入式操作系統(tǒng),主要是運(yùn)用在FPGA 里面。nios 已經(jīng)為我們移植好了,不需要修改任何文件。在nios 用戶界面里進(jìn)行一些相應(yīng)的設(shè)置,就可以用它了。altera 公司為我們提供的模板里邊有幾個(gè)很好的例子,任務(wù)管理、信號(hào)量、郵箱傳遞、事件標(biāo)志、時(shí)間管理等都為我們提供了很好的模板,我們需要作的是認(rèn)真的閱讀它,研究它,必要的話對(duì)模板進(jìn)行一些改寫來(lái)完成自己的功能,這是模仿的更高的一個(gè)境地了,把他的一些東西進(jìn)行吸收轉(zhuǎn)化成為自己的東西,我想這是一個(gè)硬件愛(ài)好者和初學(xué)者非常樂(lè)于做的事情。
在進(jìn)行fpga 學(xué)習(xí)的時(shí)候,我遇到過(guò)事情停滯不前,沒(méi)有進(jìn)展,心情沮喪的時(shí)候。那個(gè)時(shí)候?qū)Φ讓佑布粺o(wú)所知,連對(duì)基本的原理圖也看不懂,更別說(shuō)程序在開發(fā)板上是怎么運(yùn)行的了。再到后來(lái)進(jìn)行nios 開發(fā)的時(shí)候,這種沮喪感與日俱增,每天一點(diǎn)進(jìn)步也沒(méi)有,那是一個(gè)很漫長(zhǎng)的日子,現(xiàn)在想起來(lái),依然慶幸自己沒(méi)有絕望,沒(méi)有對(duì)自己熱愛(ài)的硬件失去信心。后來(lái)事件出現(xiàn)了轉(zhuǎn)機(jī)。有一次我和我辦公室的一個(gè)工程師聊天,談到了我的空惑,他建議我先學(xué)習(xí)單片機(jī),自己搭建硬件平臺(tái)從最小系統(tǒng)做起。這個(gè)工程師熱心助人,學(xué)習(xí)方面的問(wèn)題他總是很耐心的為我解答,讓我受益匪淺,我很慶幸能夠在這種環(huán)境當(dāng)中學(xué)習(xí),雖說(shuō)我不在高校,但是研究所為我提供的學(xué)習(xí)環(huán)境與硬件設(shè)施我想不是每個(gè)高校學(xué)生能夠享受到的。我想說(shuō)的是,遇到問(wèn)題的時(shí)候,當(dāng)我們感覺(jué)事情沒(méi)法進(jìn)展下去的時(shí)候,我們不妨換一種方式,多與周邊的人聊聊天。
上周熱點(diǎn)文章排行榜
- 奧哲與數(shù)環(huán)通達(dá)成合作,共筑企業(yè)數(shù)字化一站式轉(zhuǎn)型新生態(tài)
- 顛覆性創(chuàng)新技術(shù)——特斯拉土壤修復(fù)機(jī)器人!
- 三季度全球芯片代工市場(chǎng):臺(tái)積電第一,中芯國(guó)際營(yíng)收破20億美
- 科技看點(diǎn):小馬智行上市 我國(guó)5G基站總數(shù)達(dá)414.1萬(wàn)個(gè) 我國(guó)前10月
- 光刻機(jī)巨頭拋出重磅信號(hào) 阿斯麥(ASML)股價(jià)大幅上漲
- 射頻芯片企業(yè)前三季度業(yè)績(jī)PK:業(yè)績(jī)普降承壓前行,集成化、5
上周資料下載排行榜
論壇熱帖
- LF開頭請(qǐng)問(wèn)這個(gè)是什么封裝元器件 jf_77000477
- 【飛凌嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板開箱評(píng)測(cè) jf_43382582
- 【書籍評(píng)測(cè)活動(dòng)NO.52】基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化 ElecFans小喇叭
- 求一份CS32L010的相關(guān)資料(數(shù)據(jù)手冊(cè)、用戶手冊(cè)、Pack包和例程等),謝謝 jf_43621189
- 請(qǐng)問(wèn)如何關(guān)閉獨(dú)立看門狗 jf_39582415
- 【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+閱讀濾波器章節(jié)部分筆記 james_87
熱門博文
論壇熱帖
熱評(píng)
- IR將功率半導(dǎo)體觸角伸往消費(fèi)市場(chǎng)
- 多功能算術(shù)/邏輯運(yùn)算單元(ALU) ,什么是多功能
- 動(dòng)態(tài)ip、靜態(tài)ip、pppoe撥號(hào)的區(qū)別
- ARM與MIPS的比較
- ThunderBolt端口驅(qū)動(dòng)及NET改WAP方法
- ds18b20中文資料詳解
- 滴滴人臉識(shí)別怎么破解
- 超級(jí)計(jì)算機(jī)榜單重新排名 中國(guó)天河二號(hào)已淪為世界第
- 電阻色環(huán)表_色環(huán)電阻識(shí)別方法
- iphone6概念機(jī)圖片曝光_iphone6上市時(shí)
博文
帖子
- 【書籍評(píng)測(cè)活動(dòng)NO.51】具身智能機(jī)器人系統(tǒng) | 了解AI的下一個(gè)浪潮! ElecFans小喇叭
- 請(qǐng)教關(guān)于CS1239低側(cè)采樣如何獲得使用更高的Gain? jf_94221193
- 高頻條件下的耦合線圈出現(xiàn)負(fù)值的原因是什么 jf_42363055
- 請(qǐng)問(wèn)如何關(guān)閉獨(dú)立看門狗 jf_39582415
- ads1291雙電源供電時(shí),Thermal Pad接AVSS嗎? ggfx
- 【米爾-Xilinx XC7A100T FPGA開發(fā)板試用】+03.SFP光口測(cè)試(zmj) 卿小小_9e6
- DAC7621的reference性能精度,可以使用外部輸入ref嗎? 萬(wàn)物死
- 【「HarmonyOS NEXT啟程:零基礎(chǔ)構(gòu)建純血鴻蒙應(yīng)用」閱讀體驗(yàn)】+1-7章有感 夜孤影
- DIY了一臺(tái)無(wú)人機(jī),用全志T113芯片 文小二
- 電子產(chǎn)品結(jié)構(gòu)與導(dǎo)熱材料解決方案 jf_86221244
用戶評(píng)論
查看全部 條評(píng)論
查看全部 條評(píng)論>>