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