MSP430系統(tǒng)應用結構設計與選型
1 MSP430簡介
MSP430是TI公司推出的16位單片機系列產(chǎn)品,在電池供電的低功耗應用中具有獨特的優(yōu)勢。其工作電壓為1.8~3.6 V,正常工作時功耗可控制在200μA左右,低功耗模式可實現(xiàn)2μA甚至O.1μA的低功耗。MSP430系列單片機作為性能優(yōu)異的MCU在中國已經(jīng)得到了廣泛的應用。MSP430具有高集成度,通常在單個芯片上集成了12位的A/D轉換器、比較器、多個定時器,以及片內(nèi)USART、看門狗、片內(nèi)DCO等。一般單片就可滿足大多數(shù)的應用需要。
MSP430單片機的程序存儲器是Flash存儲器,并且支持JTAG在線編程,可以方便地實現(xiàn)程序的下載、仿真、調(diào)試和升級。
目前整合性最好的MSP430F44X系列,具有60 KB程序存儲(可記錄數(shù)據(jù)),2 KB片內(nèi)RAM,6個I/O端口(P1和P2具有中斷能力),160段液晶驅動,2個串行端口,4個定時器(其中TB帶有7個捕獲/比較器,包括看門狗),模擬比較器,硬件乘法器,8路12位A/D轉換器,頻率調(diào)整電路FLL+以及系統(tǒng)復位SVS模塊等。而基本型的 MSP430F1101 和MSP430C1101只有1 KB程序存儲、128字節(jié)片內(nèi)RAM、模擬比較器和2個定時器等。
MSP430F44X與MSP430F11X在硬件結構上、在系統(tǒng)整合上存在較大差異;MSP430F41X與MSP430F11X的差異不是很大。但這3系列芯片的價格由幾元到數(shù)十元不等,那么如何選擇系統(tǒng)芯片呢?以3種芯片為例,其系統(tǒng)功能框圖分別如圖1、圖2、圖3所示。
2 常用的MSP430應用系統(tǒng)的設計方案
在圖4所示系統(tǒng)中,有模擬輸入、脈沖采集、日歷時鐘、液晶顯示、鍵盤操作和外圍設備控制等??刹捎靡韵聨追N方案進行MSP430的選型。
(1)選用MSP430F44X系列
這個方案設計最簡單,因為目前MSP430F44X系列芯片是集成度最高的。該系列任何一款芯片都能勝任(一般程序字節(jié)不會大于32 KB)。
(2)選用MSP430F41X系列
如果程序在8 KB范圍以內(nèi),那么這是一種較好的方案。MSP430F41X系列雖然不能直接進行A/D轉換,但整個系統(tǒng)價格適中。
(3)選用MSP430F11XX系列
該系列芯片不能直接驅動液晶,且程序量較小,也沒有直接的A/D轉換能力。與前兩種方案相比,這是明顯的不足,但其價格是最低的。
在這3種方案中,如果對生產(chǎn)成本要求不高,則第1種方案最好;如果要考慮批量的生產(chǎn)成本,則第3種方案最好,性價比最高。如果使用MSP430F1121A,則批量報價不到9元,適合于大批量生產(chǎn)、成本敏感的產(chǎn)品,可得到最高的性價比。但第3種方案存在很多問題,有待解決。
3 高性價比的MSP430應用系統(tǒng)解決方法
圖4是較為經(jīng)典的MSP430應用系統(tǒng)框圖。如果使用最經(jīng)濟的MSP430系列器件MSP430F11XX系列,則要解決5個問題:模/數(shù)轉換問題、液晶顯示問題、程序量小的問題、日歷時鐘的程序化問題及串行通信問題。
3.1模/數(shù)轉換問題解決方案
MSP430F11XX系列單片機片內(nèi)有模擬比較器Comparator_A和功能強大的定時器Time_A,可以構成斜率(Slope)A/D轉換,實現(xiàn)從模擬到數(shù)字的轉換。具體原理如圖5所示(這里以電阻模擬量到數(shù)字量的轉換為例)。
在圖5中,Rref、Rmeas分別為標準的參考電阻和被測量的電阻,電容ca0起充放電作用。比較器的輸出CAOUT用于驅動定時器捕獲的發(fā)生。MSP430內(nèi)部的模擬比較器能產(chǎn)生用于比較的模擬電壓(關閉內(nèi)部參考電壓,使用外部參考電壓O.25Vcc、O.5Vcc和二極管管壓降)。比較器負端選擇O.25Vcc。
首先,標準電阻Rref對電容CAO充電到VCC,再通過參考電阻Rref放電,同時記錄定時器值T1;當電容放電到O.5Vcc時,比較器產(chǎn)生輸出,CAOUT觸發(fā)定時器產(chǎn)生捕獲動作,將定時器值T2讀出。其次,使用被測量電阻Rmeas對電容充電到Vcc,再通過Rmeas放電,同時讀取定時器值T3;當電容放電到0.5Vcc時,比較器輸出信號再次捕獲定時器數(shù)據(jù)T4,則在電容放電的線性區(qū)域可以得到被測量電阻的阻值:
對其他電壓等物理量的測量也可采用此辦法。
3.2 液晶顯示問題解決方案
MSP430F11XX沒有液晶驅動能力,必須外部擴展。如圖6所示,可以使用I/O輸出直接驅動價格低廉的液晶驅動芯片來顯示信息。如果這樣,為什么還要選用自帶液晶驅動的價格昂貴的MSP430F43X或MSP430F44X呢?
例如,用MSP430的Px.x兩個I/O口與驅動芯片的CLK、DATA進行通信,即可實現(xiàn)所需的顯示信息。可以節(jié)省本就不多的I/O端口以作他用。
3.3 程序量小問題解決方案
MSP430F11XX系列單片機最大的程序容量只有4 KB,對較為復雜的應用來說程序空間比較小。對于MSP430系列單片機有個巧妙的解決辦法:由于MSP430單片機的存儲器具有線性統(tǒng)一編址的特點,因此單片機運行的程序可以在除了片內(nèi)外圍模塊空間以外的任何存儲空間,這里RAM用作程序存儲器。又由于RAM內(nèi)容可變,故可將程序存放在外部存儲器中,在需要時調(diào)到RAM中,再執(zhí)行RAM中的程序。外部存儲器可選用串行24C系列為E2PROM,既可減小系統(tǒng)體積,又可使程序空間增加32 KB乃至更多,且系統(tǒng)總成本增加很少。24C系列E2PROM與MSP430單片機的接口,只需要2根I/O口線和2個上拉電阻。
首先,需要將存放在E2PROM中的應用程序劃分為較小的模塊。這里針對MSP430F1121A將每個模塊的大小限定在128字節(jié)內(nèi)。MSP430F1121A的片內(nèi)RAM有256字節(jié),一半用于存儲程序處理中的數(shù)據(jù),另一半用于暫存程序調(diào)度的程序。
其次,MSP430F1121A的片內(nèi)存儲器用于存放對24C系列存儲器的讀寫操作程序,以及最常用的處理程序和各種中斷服務程序等。將各個小模塊的應用程序存放在E2PROM中,同時,每個小模塊的應用程序在E2PROM中的起始位置和模塊長度在MSP430的程序存儲器中用數(shù)據(jù)表格的形式存放。每當要調(diào)用在E2PROM中的小模塊時,就在表格中查找。使用E2PROM讀程序,在E2PROM中讀出全部的小模塊程序數(shù)據(jù)到MSP430的RAM中的后128字節(jié)。
最后,將程序計數(shù)器(PC指針)壓棧,再改變PC內(nèi)容為280H(RAM的后128字節(jié)開始位置),程序將由此開始運行。該模塊運行完畢后,最后一句是RET,將剛壓棧的PC指針恢復。程序繼續(xù)運行MSP430 Flash中的主程序。
3.4 日歷時鐘程序化問題解決方案
由于MSP430系列單片機的超低功耗特性,使用其內(nèi)部定時器模塊的比較模式實現(xiàn)日歷時鐘,時鐘源使用鐘表32 768 Hz晶振產(chǎn)生的ACLK信號。將定時器模塊設置為1 s中斷一次,在中斷服務程序中編寫日歷時鐘程序。只要在編寫的過程中注意公歷的各種推算,甚至可以使用某種算法將農(nóng)歷也編寫進去。在中斷程序結束后立即進入低功耗LMP3模式,這時系統(tǒng)耗電小于1μA,比多數(shù)的專用日歷時鐘芯片的耗電還要小。選材時,只要選用精度高的晶振,做出的時鐘將是很準確的,而且使用單片機將日歷時鐘程序化從各方面講(可靠性、功耗、成本、體積等)都是很好的解決方案。
3.5串行通信問題解決方案
MSP430F11XX系列單片機片內(nèi)沒有串行通信模塊,不能直接用于異步串行通信,但由于定時器Time_A的捕獲與比較以及特殊的結構,利用其實現(xiàn)異步串行通信的位定時(波特率產(chǎn)生)以及起始位檢測等功能,可方便實現(xiàn)串行通信。
串行發(fā)送相對簡單一點:設置Time_A為比較模式,比較的數(shù)據(jù)體現(xiàn)每一位的發(fā)送時間,使用中斷,每當時間到則發(fā)送下一位,全部發(fā)送則發(fā)送完畢。
串行接收相對復雜一點:設置Time_A為捕獲模式,要捕獲到串行通信的起始位;捕獲到起始位后,將Time_A設置為比較模式,同時第一位與后面其他位的定時時間不一樣,第一位的定時時間是其他位的1.5倍。所有數(shù)據(jù)接收完畢即結束。在硬件上使用RS232或RS485都可以。
另外,也可以使用外圍模塊進行通信。例如使用半雙工或全雙工的RS485芯片進行485的信息傳遞。
4 結 論
實踐證明,在充分掌握MSP430系列各個片內(nèi)模塊的性能與特性基礎上,選用最簡單、最便宜、最常規(guī)的器件,設計高性價比的應用系統(tǒng)是非常可行的;同時隨著產(chǎn)量的增加,經(jīng)濟效益也會顯著增加。
評論