[推薦]我看單片機(jī)工程師(alloy518原創(chuàng))
看了這么多,我也想說說,我也是做單片機(jī)的,CPLD用過,F(xiàn)PGA沒有弄過,不會VHDL, 我用的是Verilog。我本科是學(xué)的計算機(jī),但是軟件方面確實(shí)不開竅,記得畢業(yè)設(shè)計的時候 被師兄責(zé)備為C都不會,從大二暑假參加電子競賽開始搞硬件,到現(xiàn)在大概有5年了吧,也做 了大概10來個項(xiàng)目了,基本上都是用的單片機(jī)或者是單片機(jī)+CPLD的主控結(jié)構(gòu),也寫過兩本 單片機(jī)的教程。一直想學(xué)習(xí)ARM,但是處于時間、金錢的原因,也只是停留在認(rèn)識的基礎(chǔ)上而已,沒有實(shí)踐的經(jīng)驗(yàn)這么多年來,用的最多的還是單片機(jī),我比較偏愛ATMEL公司的產(chǎn)品,雖然有功耗大的 缺點(diǎn),但是誰叫我第一塊單片機(jī)就是用的AT89C51呢,記得當(dāng)年停產(chǎn)的時候,我和教研室的 一個同學(xué)還感嘆了半天呢。市場上項(xiàng)目還是挺多的,單片機(jī)還是很好用的,因?yàn)樵诘投丝刂?nbsp;系統(tǒng)中,單片機(jī)基本上就可以勝任,51單片機(jī)比較便宜,而且現(xiàn)在也有很多高級51系列單片機(jī),集成了很多功能,例如IIC、USB、CAN、MP3、MMC等,程序空間和內(nèi)存也越來越大,64K+1K也很常見的,跑一些小的操作系統(tǒng)也可以了,例如uc/OS就可以,也可以移植TCP/IP協(xié)議 ,支持網(wǎng)絡(luò)通信,所以51系列單片機(jī)完全可以應(yīng)用于現(xiàn)在很多的場合,而且隨著ISP和IAP在 51單片機(jī)上的應(yīng)用,開發(fā)起來也越來越容易,我現(xiàn)在做簡單的開發(fā)用編程器(并口線)+串口就足夠了。
其缺點(diǎn)主要是保密性能太差,另外MIPS性能不高,即使用了X2功能,也很差。但 是51系列單片機(jī)的Keil環(huán)境,確實(shí)非常好用,自己也可以做一個MON來配合調(diào)試(說到MON,我想說我做MON-51遇到的一個問題:我的MON-51運(yùn)行起來之后就不能夠stop了,只能夠退出 debug,大家誰知道是怎么回事情,告訴我一聲,謝謝),非常方便。AVR單片機(jī)MIPS非???,集成度比51要高,有些產(chǎn)品連外部晶體都不用,而且還有tiny等小封裝系列,可以用于低 成本,小體積的場合。而且AVR的保密性能比51要好一些,其缺點(diǎn)就是外部擴(kuò)展比較麻煩,除了和51兼容的幾款之外,基本上都要軟件模擬時序,這也難怪,人家做AVR的目的就是單 片化嘛:)AVR的ICCAVR和ICCTiny都還可以,用ISP下載也很方便,但是我沒有用過AVR的仿真 器,因?yàn)樘F了:(不知道怎么樣,我調(diào)試基本上都是通過串口的,因?yàn)樽龅捻?xiàng)目也不太大。
MSP單片機(jī)算是16位吧,用在儀表上比較多,我做過一個熱表的項(xiàng)目,它的最大特點(diǎn)是低功 耗,開發(fā)使用簡單的Jtag來下載就可以了。PIC的單片機(jī)沒有用過,也就不說了。整體來看,我認(rèn)為很多場合都可以使用單片機(jī),并不是非要用ARM內(nèi)核、PowerPC等等,因?yàn)樗鼈冇胁煌奶攸c(diǎn),所以以后很長一段時間,單片機(jī)還將有很大的用武之地,估計我們這輩子是看不到單片機(jī)被淘汰了,所以我們不必?fù)?dān)心沒有工作做,我們完全可以讓我們的下一代去學(xué)習(xí)ARM什么的吧:)
說說我對單片機(jī)開發(fā)的看法吧,這只是我自己的看法,說的不對的地方,大家別拍我,因?yàn)槲乙仓皇且粋€研究生:)
1、搞單片機(jī)的絕對是有工作做的,沒有必要為自己只會單片機(jī)就耿耿于懷;因?yàn)閱纹瑱C(jī) 要用好了,也是很不容易的沒有個2-3年時間,沒有5-6項(xiàng)目的開發(fā)經(jīng)驗(yàn),很難說真正把單片 機(jī)學(xué)會了,我覺得我現(xiàn)在也就是會用而已,遠(yuǎn)遠(yuǎn)說不到用好了,記得以前在21ic上看到過一 個用于檢驗(yàn)單片機(jī)開發(fā)者功底的系統(tǒng),有時間找出來貼;
2、搞單片機(jī)絕對不能夠只會單片機(jī)本身,因?yàn)槿绻皇煜纹瑱C(jī)的話,你是什么都做不了的,計算機(jī)這個行業(yè),除非你研究計算機(jī)本身,否則你就的把它應(yīng)用到實(shí)踐場合中去,所以你必須對它的應(yīng)用環(huán)境有所了解。單片機(jī)系統(tǒng)這么多外圍芯片,你必須知道在什么場合應(yīng)該用什么來實(shí)現(xiàn)你的功能。所以學(xué)習(xí)單片機(jī)的人除了單片機(jī),對什么通信原理、數(shù)字電路、模擬電路什么的也應(yīng)該至少有所了解。
3、單片機(jī)是計算機(jī)處理器的一個分支,我建議大家有時間找本計算機(jī)組成原理好好看看,我碰到過好多用單片機(jī)的人,連計算機(jī)的基本知識都不知道,怎么做設(shè)計阿,推薦一本書 《inter微處理器全系列:結(jié)構(gòu)、編程與接口》(第五版),這本書是我本科時候帶過我的兩 位導(dǎo)師和一位博士師兄翻譯的,里面錯誤雖然有一些,但是大體還是不錯的,當(dāng)然,你要是能夠看原版那就更好了,算是我給他們做個小小的廣告吧:)
4、多看書,多上網(wǎng),多看看別人的設(shè)計思路和系統(tǒng),開闊視野,為以后自己的系統(tǒng)設(shè)計打好基礎(chǔ)
最后說說我覺得初中級單片機(jī)工程師應(yīng)該達(dá)到的水平吧,呵呵,我覺得自己應(yīng)該算是在初級和中級之間吧:)
1、對單片機(jī)應(yīng)用場合有充分的了解,能夠在應(yīng)用項(xiàng)目中選擇合適的單片機(jī)和外圍芯片的 型號;能夠根據(jù)系統(tǒng)指標(biāo)很快的設(shè)計出一個應(yīng)用系統(tǒng)的體系結(jié)構(gòu);在深圳那邊,做一個項(xiàng)目也給你的時間也就是一個星期左右,因?yàn)檫@些東西誰都能做,主要看誰能夠做的又快又好;
2、熟練使用ASM和C等相應(yīng)的單片機(jī)語言,有良好的編程風(fēng)格和一定的編程技巧;
3、能夠進(jìn)行簡單的PCB版圖設(shè)計,至少能夠設(shè)計出有一定抗干擾能力的單片機(jī)電路板;
4、對控制、信號系統(tǒng)有所了解,知道必要的算法;
5、熟悉計算機(jī)方向的簡要開發(fā),能夠使用計算機(jī)開發(fā)工作做一些簡單的主機(jī)端軟件;
6、對模擬、數(shù)字電路、總線等比較熟悉,能夠使用它們進(jìn)行單片機(jī)的外圍接口;
一句話,時刻努力學(xué)習(xí),不僅僅學(xué)習(xí)單片機(jī)本身!





