怎樣混好電子這行?(MCU、ARM、DSP,嵌入式)
很多初學(xué)者,甚至是混了好幾年的老手,都在抱怨,電子這行怎么競爭這么大啊? 頹廢,這完全在抹殺自己的激情,沒了激情,搞電子,完全就是在浪費生命。其實,競爭真的大嗎??對比一下,難道做業(yè)務(wù)的競爭不大,做管理的競爭不大,現(xiàn)在這個社會,哪個領(lǐng)域,哪個行業(yè),競爭都大,所以,假如你想逃避競爭,那你就不用活了,當(dāng)然,你本身家庭很好,父輩好有米的話,那另當(dāng)別論!所以, 不管什么行業(yè),競爭大不大的問題,都不用問了。答案都是:競爭大,但是必須面對,我們要自己面對的競爭越小,那么你的技術(shù)能力應(yīng)該是越牛X。搞電子的人要跟得上時代,但是人的腦袋會隨著年齡的增大而遲鈍,所以這就造成了電子人才(特別是搞電子軟件)的一種生老病死的自然規(guī)律。也就是說,一般40歲左右的技術(shù)人才,有三種出路,第一,自己創(chuàng)業(yè)了或者是技術(shù)管理層,完全脫離技術(shù),請幾個二十來歲的新手,讓他們?nèi)グl(fā)掘腦袋,自己在一旁,靠著自己的經(jīng)驗,嘴巴說說可以了。第二,轉(zhuǎn)行了,這個不好評論,不知是禍?zhǔn)歉。第三,繼續(xù)做技術(shù),但是這種會很累,天天逼著自己學(xué)習(xí),還吃力不討好,也不敢輕易換工作了,因為此時編程思維固定,工作激情缺乏,學(xué)習(xí)能力偏低,一個新的工作環(huán)境很難讓他適應(yīng),這種情況,假如不是元老級人物,或者已經(jīng)是個技術(shù)負(fù)責(zé)人,那么很容易被一個新手所代替。也就是說,搞了十多年技術(shù)之后,這批人將慢慢的淡出這個行業(yè),新老交替,長江后浪推前浪。所以真正的技術(shù)人才永遠(yuǎn)都缺,前提是你真的有能力。所以,只要有能力,你永遠(yuǎn)都吃香的,永遠(yuǎn)都不怕競爭,就不應(yīng)該擔(dān)心競爭大不大的問題,而是擔(dān)心自己牛不牛的問題。
怎樣學(xué)好單片機(jī)?
我大二就開始自學(xué)單片機(jī)(我們學(xué)校的單片機(jī)課程是大三開的,匯編版),那時候,我完全不懂什么是單片機(jī),照著書上的原理圖自己用萬用板焊接,按鍵,數(shù)碼管,串口,電位器,溫度傳感器,等等都不懂,反正就是照焊,不懂的,找網(wǎng)絡(luò)。程序一點都不懂,哈哈,還是照搬,寫好編譯,燒錄進(jìn)去,行了,但是還是不懂。哈哈。但是這就給自己一個很大的自信心,記住,搞電子的人,永遠(yuǎn)都是成就感第一,雖然不懂,做出來了,還是很有成就的。慢慢的,到了大三,開始學(xué)單片機(jī)和C語言了,老話,上課要專心。此時,重要的一點是,學(xué)了理論,要付之于實踐,我以前就經(jīng)常跑實驗室,回去宿舍,也搞搞單片機(jī),編編程序,調(diào)試調(diào)試開發(fā)板等等。這段時間很重要,同樣一起上課,為什么有些人就不適合搞電子,因為此時,他們都沒有動手,忘得太快了。學(xué)單片機(jī),是軟硬件的綜合體。并不是單單會點匯編或者C語言就說會單片機(jī),這頂多只能說會編程而已。因為大部分單片機(jī)系統(tǒng)都是不帶操作系統(tǒng)的裸機(jī)系統(tǒng),那么沒有所謂的操作系統(tǒng)和應(yīng)用軟件,沒有操作系統(tǒng)層所封出來的一些接口可用,也就是說,需要架一個簡單的前后臺系統(tǒng),只會寫應(yīng)用軟件,就比較難使用單片機(jī),因為他們對這些只有硬件,沒有軟件接口的東西,無從下手。所以,學(xué)單片機(jī),首先學(xué)會硬件,也就是簡單的電阻電容電感,三極管,二極管,比較器,等等相關(guān)的基礎(chǔ)元器件特性及其應(yīng)用。個人覺得,大學(xué)教程的模電數(shù)電很重要,先模后數(shù),模電是數(shù)電的基礎(chǔ),也是電子這塊的基礎(chǔ),顯得特別重要。然后數(shù)電就要吸取其思想,很多數(shù)電所介紹的集成IC,比如門電路,計數(shù)器,觸發(fā)器,比較器,運(yùn)算器等等,現(xiàn)在工業(yè)很少見的了,但是,其設(shè)計思想是值得學(xué)習(xí)的。理解單片機(jī)內(nèi)部的人就清楚,單片機(jī)或者其他的主控(ARM DSP等)的內(nèi)部其實也就是這些東東高度集成而來的。所以,學(xué)單片機(jī)的時候或者之前,先抽時間學(xué)習(xí)一下模電數(shù)電,學(xué)到自己有所理解的程度,就可以學(xué)一下單片機(jī)編程,C語言或者匯編都可以,看個人愛好,C語言移植方便,好維護(hù),編程快速,但是缺點是其編譯出來的CODE比較占空間,一般用于移植性通用型要求高的嵌入式軟件領(lǐng)域,或者比較大的單片機(jī)項目,或者要求開發(fā)速度而對價格不敏感的產(chǎn)品。而匯編剛好相反,對利潤薄,成本低,開發(fā)難度不大的行業(yè)使用,比如小家電。不過現(xiàn)在的MCU也很便宜的,幾塊錢都幾十k的FLASH ROM,在現(xiàn)在技術(shù)人工那么貴的情況下,估計還是C語言比較迎合市場。學(xué)習(xí)這些理論知識的同時,都需要動手做實驗,不怕搞錯,最怕就是懶得搞。
會編程之后,怎樣切入單片機(jī)?
初學(xué)者學(xué)了編程語言的之后,又或者搞純軟件想轉(zhuǎn)單片機(jī)的人,都會有個共同的特點就是,下一步不知道如何入手?那么我就會問,你懂硬件嗎?要求不高,略懂就好,不求很精,因為硬件這東西是越老越辣,越久越醇,鍛煉多了,自然會精。假如你一點都不懂,那請看上面的一段,學(xué)硬件基礎(chǔ)去吧。假如略懂,那么你現(xiàn)在的切入點就是在五花八門的單片機(jī)中找一款合適的入門單片機(jī),初學(xué)者做任何決定都是以“易入手”為標(biāo)準(zhǔn),入手了,就不怕你以后跑不快,力求找些通用的MCU,資料多,軟件平臺也多,容易上手,比較51核的,雖然簡單,但是它是鼻祖,學(xué)起來方便,只要懂了這個鼻祖,其他的再復(fù)雜的東西,也不過它繁殖出來的,不會太難。一下子搞太難的東西,不單學(xué)不會,還會打擊自己的脆弱的心靈。
選好了單片機(jī),那就搭開發(fā)平臺,首先是軟件開發(fā)平臺,針對不同的單片機(jī)內(nèi)核或者型號,有不同平臺,通用性51核的KEIL51,AVR的IAR ICC,還有很多不同廠家的開發(fā)平臺,不一一列舉。其次就是單片機(jī)硬件平臺了,也就是開發(fā)板,不同的單片機(jī)器引腳和外圍都稍有不同,所以開發(fā)板也有針對性,網(wǎng)上很多賣開發(fā)板的,都希望做的很通用,支持很多種型號的MCU,價格也不高,假如怕麻煩,怕焊接出錯的初學(xué)者,可以買,關(guān)鍵是現(xiàn)在的開發(fā)板便宜,幾十塊錢很漂亮,以前那個年代動不動幾百塊,流血啊。當(dāng)然,我更推薦是自己焊接,特別是自我感覺硬件還可以的人,趁此機(jī)會鍛煉一下焊工,還有,會對電路理解更深的。其實各種各樣的開發(fā)板都是一樣的,只要你焊接遵循以下原則:首先,焊接最小工作環(huán)境,電源電路,復(fù)位電路,振蕩電路(現(xiàn)在很多MCU都集成內(nèi)部晶振,精度也可以,頻率也比較高)。然后就是其他的常用的外設(shè)電路,按鍵輸入(按鍵多的話,可以用矩陣,學(xué)學(xué)矩陣掃描),串口(UART),AD/DA,蜂鳴器,數(shù)碼管,點陣顯示屏,電機(jī)驅(qū)動,溫度傳感器等等,這些資料很多的了,幾十年來,初學(xué)者都是學(xué)這些。
這些外圍電路,網(wǎng)上資料多得是,隨便找?guī)追輰Ρ纫幌戮陀辛。找個萬用板,就可以動手焊了。不成功的,測量單片機(jī)工作電壓正不正常,晶振有沒有起振,復(fù)位電路有沒有搞錯等等,再不成功,焊多一塊,哈哈。有了軟硬件平臺,就可以一個實驗一個實驗的動手,開始是模仿,后來就改動,再后來就完全自己搞一個有新意的,從0開始寫code,做第一個屬于你自己的project。順便說一下,單片機(jī)的編程和純軟件的編程,除了編程思想和大部分語法可以沿用之外,其他的,寄存器配置和部分語法都有針對性,要花點時間去學(xué)的。學(xué)會了51之后,假如有時間可以學(xué)一下AVR PIC MSP430 等等其他內(nèi)核的單片機(jī)或者功能更強(qiáng)大的51核單片機(jī),宏晶,笙泉等等,作為一種提高的練習(xí)。
ARM、DSP等主控難嗎?
ARM 、DSP等,其實也屬于單片機(jī)一類,只不過它的內(nèi)核牛X一點而已,兩種東西我都搞過,用了一段時間,但是,假如你就單單讓他作為一種普通的單片機(jī)來用,那說明你不會用。首先說ARM芯片吧,它的內(nèi)核就是ARM內(nèi)核,它的主頻高很多,普通的都有幾百M.。CPU緩存大,分有很多級的流水處理線,這樣大大提高了CPU利用率。這種IC的資源足以讓一個嵌入式操作系統(tǒng)正常跑起來,WINCE, LINUX, UCOS 等等,一個操作系統(tǒng)移植到里面去,跑起來,然后就自己利用操作系統(tǒng)的接口寫一些應(yīng)用軟件,就可以直接控制器其強(qiáng)大的外設(shè)了。當(dāng)然了,這中間還有另外一種工程師在工作,就是嵌入式驅(qū)動工程師,他是專門針對硬件接口寫驅(qū)動的,封出來的接口就給上層的人使用,這種工作有點類似搞單片機(jī)的。很多人想從搞軟件直接搞ARM,那么我的建議的是,除非你能力很強(qiáng)大,可以直接搞ARM,否則的話,先學(xué)單片機(jī),再學(xué)ARM吧。DSP,中文名叫數(shù)字處理器,看它的名字就知道了,它就是用來處理數(shù)據(jù)的,他的數(shù)據(jù)處理能力,比ARM強(qiáng)大的多,一般來說接口沒有ARM豐富,它的接口都是有針對性的,快速的存儲,快速的訪問,這都是為了快速的處理數(shù)據(jù)而作準(zhǔn)備的。它的主頻也是幾百M,DMA就肯定有的了。一般來說,圖片處理,視頻處理,網(wǎng)絡(luò)數(shù)據(jù)處理等等多是用DSP的。就是因為它是用來做數(shù)據(jù)處理,那么精通DSP的人,一定要精通各種數(shù)據(jù)處理的算法,什么傅里葉等等,假如你將DSP看做一款MCU來搞,那太浪費了,100塊的東西當(dāng)幾塊錢的來用。要用好它,物盡其用,那真的很難,要精通算法才行。
嵌入式軟件是什么東東?
嵌入式軟件分為嵌入式操作系統(tǒng)軟件,嵌入式應(yīng)用軟件。大部分的嵌入式軟件都寄宿在ARM內(nèi)核的芯片上,三星,飛利浦等等都有ARM內(nèi)核的IC,做計算機(jī)軟件的人,很容易的就轉(zhuǎn)做嵌入式軟件,但是要做嵌入式驅(qū)動軟件的話,就有點難了,因為這個涉及到硬件接口,一般都是搞單片機(jī)的人轉(zhuǎn)過去做的。這幾年,這個東西很火,用在數(shù)碼產(chǎn)品,比如MID,掌上電腦等,我在凌陽的時候,剛畢業(yè)進(jìn)來的應(yīng)屆畢業(yè)生都懂linux了,那個壓力啊,哈哈,是學(xué)校專門開課的,可想而知,想逃避競爭的人,不用想了。
談?wù)凱CB。
搞電子的人,不管你面對但是MCU,ARM, DSP,甚至是其他雜交變異品種,有一種東西是離不開的,那就是電路板。所以的元器件要發(fā)揮作用,都得焊在一個適當(dāng)?shù)碾娐钒迳厦妗ROTEL99 或者 PADS 或者DXP,這些都差不多,越后來出的,功能越強(qiáng)大,畫一些復(fù)雜的,比如嵌入式領(lǐng)域的板,一般都用功能強(qiáng)大的畫板軟件。還是那句話,畫PCB圖不難,但是要精就不簡單了,這里涉及到電路原理圖的設(shè)計問題和很多布線的原則,走線大小,間距,角度等等,一般的mcu控制板,對這些都不是很敏感的。但是電源板,高頻的,或者rf無線收發(fā)的板就對這種東西很注重了,干擾和抗干擾都要考慮到,濾波電容什么地方放,多大啊,什么的,都要注意。在大功率領(lǐng)域,線寬也比較講究,大電流的時候,銅皮不夠大,或者不夠厚,會發(fā)熱,很容易導(dǎo)致板燒毀,甚至元器件爆炸。還有很多很多注意的,這個又屬于專門一個純硬件領(lǐng)域,要自己多多學(xué)習(xí)相關(guān)知識,平時也要多練習(xí)才行的。
一口氣說了一大堆,總結(jié)一下:搞電子,要先打好模電數(shù)電基礎(chǔ),在學(xué)編程語言,然后就開始動手,再動手。數(shù)電模電好比基石,編程就是磚頭,永遠(yuǎn)都需要你這個建筑師傅來砌才行的。最后,說明一點,技術(shù)是個無底洞,我也只不過茫茫技術(shù)海洋的一滴無名小水珠。全部觀點和經(jīng)驗都是我自己的總結(jié),不能說完全對,只能說,我是這樣過來的。
編輯:admin 最后修改時間:2018-05-18