編者按:MSP430單片機是TI公司的一個16位的、具有精簡指令集的、超低功耗的混合型單片機,在1996年問世,大約在1998年由利爾達公司引進我國。由于這個系列的單片機具有極低的功耗、豐富的片內(nèi)外設(shè)和方便靈活的開發(fā)手段,受到國內(nèi)廣大科技人員的歡迎。本刊從今年起,特邀請北京工業(yè)大學的張俊謨教授開設(shè)MSP430實用技術(shù)講座,在該講座中,除了對MSP430單片機做一概要介紹外,主要介紹一些用MSP430設(shè)計的實用方案,以滿足科技人員搞開發(fā)的需要。
1.MSP430系列單片機的發(fā)展
MSP430系列是一個16位的、具有精簡指令集的、超低功耗的混合型單片機,在1996年問世,由于它具有極低的功耗、豐富的片內(nèi)外設(shè)和方便靈活的開發(fā)法手段,已成為眾多單片機系列中一顆耀眼的新星?;貞汳SP430系列單片機的發(fā)展過程,可以看出有這樣三個階段:
開始階段 從1996年推出MSP430系列開始到2000年初,這個階段首先推出的有33X、32X、31X等幾個系列,爾后于2000年初又推出了11X/11X1系列。
MSP430的33X、32X、31X等系列具有LCD控制端口,對提高系統(tǒng)的集成度較有利。每一系列有ROM型(C)、OTP型(P)和EPROM型(E)等芯片。EPROM型的價格昂貴,運行環(huán)境溫度范圍窄,主要用于樣機開發(fā)。這也表明了這幾個系列的開發(fā)模式,即:用戶可以用EPROM型開發(fā)樣機;用OTP型進行小批量生產(chǎn);而ROM型適應大批量生產(chǎn)的產(chǎn)品。
2000年初,TI推出了11X/11X1系列。這個系列采用20腳封裝,內(nèi)存容量、片上功能和I/O引腳數(shù)等均受到一定的限制,但是價格較為低廉。
這時期的MSP430已經(jīng)顯露出了它的特低功耗等的一系列技術(shù)特點,但也有不盡如人意之處。它的許多重要特性,如:片內(nèi)串行通信接口、硬件乘法器、足夠的I/O引腳等,只有33X系列才具備。33X系列價格較高,比較適合于較為復雜的應用系統(tǒng)。當用戶設(shè)計需要更多考慮成本時,33X并不一定是最合適的。而片內(nèi)高精度A/D轉(zhuǎn)換器又只有32X系列才有。
尋找突破,引入Flash 技術(shù)隨著Flash 技術(shù)的迅速發(fā)展,TI公司也將這一技術(shù)引入MSP430系列中。在2000年7月推出F13X/F14X系列,在2001年7月到2002年又相繼推出F41X、F43X、F44X。
F41X、F43X、F44X系列是在13X、14X的基礎(chǔ)上,增加了液晶驅(qū)動器,將驅(qū)動LCD的段數(shù)由3XX系列的最多120段增加到160段。并且相應地調(diào)整了顯示存儲器在存儲區(qū)內(nèi)的地址,為以后的發(fā)展拓展了空間。在2000年又增加了一個MSP430FlX子系列。
MSP430系列由于具有Flash存儲器,在系統(tǒng)設(shè)計、開發(fā)調(diào)試及實際應用上都表現(xiàn)出較明顯的優(yōu)點。這是TI推出具有F1ash型存儲器MSP430單片機的開始。
TI在推出Flash系列的同時,開發(fā)了基于Flash存儲器及JTAG邊界掃描技術(shù)的廉價開發(fā)工具FET430X110,將國際上先進的JTAG技術(shù)和Flash在線編程技術(shù)引入MSP430。
這種以Flash技術(shù)與FET開發(fā)工具組合的開發(fā)方式,具有方便、廉價、實用等優(yōu)點,給用戶提供了一種較為理想的樣機開發(fā)方式。
另外,2001年,TI又公布了BOOTSTRAP技術(shù),利用它可在燒斷熔絲以后只要幾根線就可更改并運行內(nèi)部的程序。這為系統(tǒng)軟件的升級提供了又一種方便的手段。BOOTSTRAP具有很高的保密性,口令可達到32個字節(jié)的長度。
蓬勃發(fā)展階段 在前一階段,引進新技術(shù)和內(nèi)部進行調(diào)整之后,為MSP430的功能擴展打下了良好基礎(chǔ)。于是TI在2002年底和2003年期間又陸續(xù)推出了F15X和F16X系列的產(chǎn)品。
在這一新的系列中,有了兩個方面的發(fā)展。一是從存儲器方面來說,將RAM的容量大大增加,如F1611的RAM容量增加到了10KB。這樣一來,希望將實時操作系統(tǒng)(RTOS)引入MSP430的,就不會因RAM不夠而發(fā)愁了。二是從外圍模塊來說,增加了I2C、DMA、DAC12和SVS等模塊。
在2003年中,TI還推出了專門用于電量計量用的MSP430FW42X和MSP430FE42X。我們相信,由于MSP430的開放性的基本架構(gòu)和新技術(shù)的應用,新的MSP430的產(chǎn)品品種必將會不斷出現(xiàn)。
2.MSP430單片機的特點
MSP430系列單片機的迅速發(fā)展和應用范圍的不斷擴大,主要取決于以下的特點。
強大的處理能力 MSP430系列單片機是一個16位的單片機,采用了精簡指令集(RISC)結(jié)構(gòu),具有豐富的尋址方式(7種源操作數(shù)尋址、4種目的操作數(shù)尋址)、簡潔的27條內(nèi)核指令以及大量的模擬指令;大量的寄存器以及片內(nèi)數(shù)據(jù)存儲器都可參加多種運算;還有高效的查表處理方法;有較高的處理速度,在8 MHz晶體驅(qū)動下,指令周期為125μs。這些特點保證了可編制出高效率的源程序。
在運算速度方面,MSP430系列單片機能在8 MHz晶體的驅(qū)動下,實現(xiàn)125 μs的指令周期。16位的數(shù)據(jù)寬度、125 μs的指令周期以及多功能的硬件乘法器(能實現(xiàn)乘加)相配合,能實現(xiàn)數(shù)字信號處理的某些算法(如FFT等)。
MSP430系列單片機的中斷源較多,并且可以任意嵌套,使用時靈活方便。當系統(tǒng)處于省電的備用狀態(tài)時,用中斷請求將它喚醒只需6 μs。
超低功耗 MSP430單片機之所以有超低的功耗,是因為其在降低芯片的電源電壓及靈活而可控的運行時鐘方面都有其獨到之處。
首先,MSP430系列單片機的電源電壓采用的是1.8~3.6 V電壓。因而可使其在1 MHz的時鐘條件下運行時,芯片的電流會在0.1~400μA之間。
其次,獨特的系統(tǒng)時鐘系統(tǒng)的設(shè)計。在MSP430系列中有兩種不同的系統(tǒng)時鐘系統(tǒng):基本時鐘系統(tǒng)和鎖頻環(huán)(FLL和FLL+)時鐘系統(tǒng)。有的使用一個晶體振蕩器(32768Hz),有的使用兩個晶體振蕩器(一個為32768Hz,另一個為高頻振蕩器)。由系統(tǒng)時鐘系統(tǒng)產(chǎn)生CPU和各功能模塊所需的時鐘。并且這些時鐘可以在指令的控制下,打開和關(guān)閉,從而實現(xiàn)對總體功耗的控制。
由于系統(tǒng)運行時打開的功能模塊不同,即采用不同的工作模式,芯片的功耗有著顯著不同。在系統(tǒng)中共有一種活動模式(AM)和五種低功耗模式(LPM0~LPM4)。在等待方式下,耗電為0.7A,在節(jié)電方式下,最低可達0.1A。
系統(tǒng)工作穩(wěn)定上電復位后,首先由DCOCLK啟動CPU,以保證程序從正確的位置開始執(zhí)行,保證晶體振蕩器有足夠的起振及穩(wěn)定時間。然后軟件可設(shè)置適當?shù)募拇嫫鞯目刂莆粊泶_定最后的系統(tǒng)時鐘頻率。如果晶體振蕩器在用作CPU時鐘MCLK時發(fā)生故障,DCO會自動啟動,以保證系統(tǒng)正常工作;如果程序跑飛,可用看門狗將其復位。
豐富的片上外圍模塊MSP430系列單片機的各成員都集成了較豐富的片內(nèi)外設(shè)。它們分別是看門狗(WDT)、模擬比較器A、定時器A(Timer_A)、定時器B(Timer_B)、串口0、1(USART0、1)、硬件乘法器、
液晶驅(qū)動器、10位/12位ADC、14位ADC(ADCl4)、12位DAC、I2C總線、 直接數(shù)據(jù)存取(DMA)、端口0(P0)、端口1~6(P1~P6)、基本定時器(BasicTimer)等的一些外圍模塊的不同組合。其中,看門狗可以使程序失控時迅速復位;模擬比較器進行模擬電壓的比較,配合定時器,可以設(shè)計為A/D轉(zhuǎn)換器;16位定時器(Timer_A和Timer_B))具有捕獲/比較功能,大量的捕獲/比較寄存器,可用于事件計數(shù)、時序發(fā)生、PWM等;有的器件更具有可實現(xiàn)異步、同步及多址訪問的串行通信接口,可方便地實現(xiàn)多機通信等應用;具有較多的并行端口,最多達6×8條I/O口線; P0、P1、P2 端口能夠接收外部上升沿或下降沿的中斷輸入;12/14位硬件A/D轉(zhuǎn)換器有較高的轉(zhuǎn)換速率,最高可達200 kbps,能滿足大多數(shù)數(shù)據(jù)采集應用;能直接驅(qū)動液晶多達160段;實現(xiàn)兩路的12位D/A轉(zhuǎn)換;硬件I2C串行總線接口,實現(xiàn)存儲器串行擴展;以及為了增加數(shù)據(jù)傳輸速度,而采用直接數(shù)據(jù)傳輸(DMA)模塊。MSP430系列單片機的這些片內(nèi)外設(shè)為系統(tǒng)的單片解決方案提供了極大的方便。
方便高效的開發(fā)環(huán)境 目前MSP430系列有OTP型、FLASH型和ROM型三種類型的器件,這些器件的開發(fā)手段不同。對于OTP型和ROM型的器件是使用仿真器開發(fā)成功之后再燒寫或掩膜芯片;對于FLASH型則有十分方便的開發(fā)調(diào)試環(huán)境,因為器件片內(nèi)有JTAG調(diào)試接口,還有可電擦寫的FLASH存儲器,因此采用先下載程序到FLASH內(nèi),再在器件內(nèi)通過軟件控制程序的運行,由JTAG接口讀取片內(nèi)信息供設(shè)計者調(diào)試使用的方法進行開發(fā)。這種方式只需要一臺PC機和一個JTAG調(diào)試器,而不需要仿真器和編程器。開發(fā)語言有匯編語言和C語言。
適應工業(yè)級運行環(huán)境MSP430系列器件均為工業(yè)級的,運行環(huán)境溫度為-40~+85℃,所設(shè)計的產(chǎn)品適合運行于工業(yè)環(huán)境下。
3.MSP430系列與89C51系列的比較
我國的多數(shù)讀者對與89C51系列的單片機是很熟悉的,為了加深對MSP430系列單片機的認識,我們不妨將兩者進行一下比較。
首先,89C51單片機是8位單片機,其指令是采用的被稱為“CISC”的復雜指令集,共具有111條指令。而MSP430單片機是16位的單片機,采用了精簡指令集(RISC)結(jié)構(gòu),只有簡潔的27條內(nèi)核指令,大量的指令則是模擬指令;眾多的寄存器以及片內(nèi)數(shù)據(jù)存儲器都可參加多種運算。這些內(nèi)核指令均為單周期指令,功能強,運行的速度快。
其次,89C51單片機本身的電源電壓是5伏,有兩種低功耗方式:待機方式和掉電方式。正常情況下消耗的電流為24mA,在待機狀態(tài)下,其耗電電流仍為3mA;即使在掉電方式下,電源電壓可以下降到2V,但是為了保存內(nèi)部RAM中的數(shù)據(jù),還需要提供約50μA的電流。而MSP430系列單片機在低功耗方面的優(yōu)越之處,則是89C51系列不可比擬的。正因為如此,MSP430系列單片機更適合應用于使用電池供電的儀器、儀表類產(chǎn)品中。
再者,89C51系列單片機由于其內(nèi)部總線是8位的,其內(nèi)部功能模塊基本上都是8位的,雖然經(jīng)過各種努力其內(nèi)部功能模塊有了顯著增加,但是受其結(jié)構(gòu)本身的限制很大,尤其模擬功能部件的增加更顯困難。MSP430系列其基本架構(gòu)是16位的,同時在其內(nèi)部的數(shù)據(jù)總線經(jīng)過轉(zhuǎn)換還存在8位的總線,在加上本身就是混合型的結(jié)構(gòu),因而對它這樣的開放型的架構(gòu)來說,無論擴展8位的功能模塊,還是16位的功能模塊,即使擴展像模/數(shù)轉(zhuǎn)換或數(shù)/模轉(zhuǎn)換這類的功能模塊也是很方便的。這也就是為什么MSP430系列產(chǎn)品和其中功能部件迅速增加的原因。
最后,就是在開發(fā)工具方面。對于89C51來說,由于它是最早進入中國的單片機,人們對它再熟悉不過了,再加上我國各方人士的努力,創(chuàng)造了不少適合我們使用的開發(fā)工具。但是如何實現(xiàn)在線編程還是一個很大問題。對于MSP430系列而言,由于引入了Flash 型程序存儲器和JTAG技術(shù),不僅使開發(fā)工具變得簡便,而且價格也相對低廉,并且還可以實現(xiàn)在線編程。