我是一家私企的硬件工程師,因工作需要,我會的嵌入式MCU有51、STC、PIC、WINBOND和ARM7。而且幾乎每一種我都成功的開發過產品。最近同樣也是因工作需要,我需要選用一款超低功耗的MCU,于是我選中了MSP430單片機。下面就我的知識、就我學430單片機的心得對這些嵌入式MCU做一比較。一方面希望對初學者朋友提供一點幫助;另一方面想通過此文章感謝利達公司駐西安辦事處的工作人員。 開發軟件環境上,51、STC、WINBOND都使用KEIL C;PIC單片機使用MPLAB;MSP430單片機使用IAR Embedded Workbench;ARM7使用ADS或者Linux。由于功能、性能上ARM和單片機差距較大,所以在這里最主要比較單片機的差異方面。 軟件開發環境實現的功能基本都差不多,我就在界面上比較一下吧。我會的第一個就是KEIL C,個人覺得這個軟件各方面都挺好,如果說有不足,就是在做LCD開發時人些字會是亂碼,不過打上補丁后就很好用了。后來因工作需要也學會了MPLAB,這個軟件在功能上倒沒什么,就是寫程序時那個界面右邊空出一大塊來,一編譯,編譯信息的一個新界面就跳出來,而且是全屏。這個軟件還存在一個問題,就是如果使用C語言寫程序,那么編譯器還得單獨安裝,所以個人感覺這個沒KEIL C和IAR Embedded Workbench做的人性化,它們編譯的提示信息基本都在底部,而且自動向上滾動,還有都集成了匯編和C兩種編譯器。同樣最近我也學了IAR Embedded Workbench,個人感覺這個這個界面給人的第一感覺就是自然,用起來也很快能上手。 軟件名稱 版本 界面友好度 缺點 KEIL C V8.08a 一般 開發LCD程序時需打補丁 MPLAB V8.00 差 不集成C語言編譯器 IAR Embedded Workbench For MSP430 3.40A 好 (暫未發現)
從硬件結構上比較,51單片機和MSP430單片機都采用馮?諾依曼結構,而PIC單片機則采用哈佛結構。這兩種結構各有優點,很難說出誰好誰壞。 哈佛結構是一種將程序指令存儲和數據存儲分開的存儲器結構。中央處理器首先到程序指令存儲器中讀取程序指令內容,解碼后得到數據地址,再到相應的數據存儲器中讀取數據,并進行下一步的操作(通常是執行)。程序指令存儲和數據存儲分開,可以使指令和數據有不同的數據寬度,如Microchip公司的PIC16芯片的程序指令是14位寬度,而數據是8位寬度。馮?諾伊曼結構也稱普林斯頓結構,是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數據的寬度相同,如英特爾公司的8086中央處理器的程序指令和數據都是16位寬。 從功能上比較51單片機屬于基本型,功能相對單一,雖然51內核的MCU相對比較多,但卻是不同廠家的,所以使用起來局限性很大。這點很難和PIC單片機和MSP430單片機相比。PIC單片機分為低檔、中檔和高檔單片機,而且每一系列可選型號也較多。MSP430單片機同樣也有MSPX1XX、MSPX2XX、MSPX3XX、MSPX4XX等系列,且每一系列可選型號也很多。從低功耗方面比較,51的可選型號幾乎沒有,PIC單片機是低功耗的最低功耗也達個位數uA級,但MSP430單片機則是超低功耗的,最低功耗可達到0.6uA。需要說明一點的是,在執行了休眠指令后,PIC單片機每次喚醒都需要復位一次,所以在超低功耗方面MSP430單片機表現要好點。 單片機類型 功能 系列化程序 低功耗 51 一般 差 差 PIC 好 好 一般 MSP430 好 好 好 當然MSP430單片機也有它的缺點,在我使用過程中,最大的不便就是位操作。下面舉一例子,功能就是判斷一引腳如果是高電平,那么就輸入低電平為例,三種單片機代碼如下:
51單片機 功能:如果P1^0為高則輸出低 代碼: Sbit DR=P1^0; If(DR) DR=0;
PIC單片機 功能:如果RB0為高則輸出低 代碼: #define DR RB0 TRISB=0X00; If(DR) { TRISB|=0X01 DR=0; }
MSP430單片機 功能:如果P1^0為高則輸出低 代碼: P1DIR=0X00; If(P1IN&=0x01) { P1DIR|=0X01; P1OUT&=0XFE; } 從上面實現同一功能的三段代碼可以看出: 單片機類型 程序可讀性 位操作 51 好 容易 PIC 一般 一般 MSP430 差 差
下面我說下我在學習這三種單片機過程中的時間長短。學習51單片機時,當時還在上學,為了興趣買了塊學習板后就開始對著上面的例子一個又一個讀它、改它。一年后我用51單片機完成了我的畢業設計。學習PIC單片機則是為了一個產品的需要,我選取了最小體積的PIC12F508單片機。也是從網上買了個ICD仿真器和開發板,一個月后我的新產品就調通了。在這個產品的升級產品中我決定選用超低功耗的MSP430單片機,在網上找了一下就找到了利爾達,聯系了下沒想到利爾達住西安辦事處的人就來了,并幫我一塊選芯片、搭環境。從拿到仿真器到調通程序就用了兩天,算上加業務功能不到一周時間就完成了,F在我的產品馬上就要評估了,在此我特別感謝利爾達公司駐西安辦事處的工作人員,沒有他們我的新產品不可能這么快出來。 經過上面從開發環境、結構、功能等方面比較了51、PIC、MSP430三種單片機。總的來說,從學習、上手方面51是最好的選擇。功能、應用方面則優先考慮MSP430單片機。
|