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