基于MSP430F449單片機(jī)的數(shù)據(jù)通信與顯示系統(tǒng)設(shè)計(jì)
引 言
MSP430單片機(jī)是TI(TexasInstruments)公司于1996年推向市場(chǎng)的一款超低功耗 16 位MCU(Micro-ControllerUnit),采用高效精簡(jiǎn)指令集系統(tǒng),存儲(chǔ)空間統(tǒng)一編址,其最顯著的特點(diǎn)是超低的功耗以及豐富的片上外設(shè)資源。本文設(shè)計(jì)并驗(yàn)證了一種基于 MSP430F449型單片機(jī)最小系統(tǒng)的數(shù)據(jù)通信顯示系統(tǒng),采用ZigBee模塊進(jìn)行數(shù)據(jù)通信,采用12864LCD(Liquid CrystalDisplay)液晶顯示接收到的數(shù)據(jù),該設(shè)計(jì)系統(tǒng)可采用電池作為供電電源,具有功耗低、體積小等特點(diǎn),可滿足便攜式需要。最后展望了MSP430系列單片機(jī)廣闊的應(yīng)用前景。
1 硬件設(shè)計(jì)
1.1 系統(tǒng)組成
設(shè)計(jì)的通信顯示系統(tǒng)可用于電氣測(cè)量系統(tǒng),通過(guò)傳感器、信號(hào)放大濾波電路、AD 轉(zhuǎn)換電路,將有效電信息轉(zhuǎn)換為數(shù)字信號(hào)后,通過(guò) ZigBee 模塊無(wú)線發(fā)送至本顯示系統(tǒng)。通信顯示系統(tǒng)包括ZigBee 無(wú)線串口發(fā)送接收模塊、MSP430F449 主控模塊及12864 點(diǎn)陣式液晶顯示模塊三部分。電路可由電源接口供電,亦可采用兩節(jié)電池供電,方便攜帶,由于 MSP430F449 芯片供電電壓為 3.3 V,因此需增加電源芯片進(jìn)行電平轉(zhuǎn)換。
圖 1 所示為系統(tǒng)組成框圖,信號(hào)發(fā)送與接收之間的距離根據(jù)選用的ZigBee 模塊而有所不同,例如本文采用的ZigBee 模塊的無(wú)線收發(fā)距離為1.6 km。
1.2 微控制器
微控制器(MCU)在早期稱為單片微型計(jì)算機(jī),隨著應(yīng)用的深入以及單片機(jī)自身不斷的進(jìn)步,片上外設(shè)資源日趨豐富。世界上最大的模擬電路技術(shù)部件制造商德州儀器(Texas Instruments,TI)在 1996 年推出了一款超低功耗 16 位微控制器MSP430,該微控制器不僅具有超低功耗、成本低廉等特點(diǎn), 還具有靈活的開(kāi)發(fā)環(huán)境。
MSP4xx 系列屬于LCD Flash 或ROM 系列,有著十分方便的開(kāi)發(fā)調(diào)試環(huán)境,器件片內(nèi)有JTAG 調(diào)試接口,還有可電擦寫(xiě)的Flash 存儲(chǔ)器。待機(jī)喚醒時(shí)間小于 6 s,是低功耗測(cè)量和醫(yī)療應(yīng)用的理想選擇。
考慮到本設(shè)計(jì)可應(yīng)用于低功耗測(cè)量、便攜顯示設(shè)備,故選擇 MSP430F449 作為主控芯片。MSP430F449 集成了頻率鎖相環(huán)(Fuzzy Logical Control,F(xiàn)LL+)時(shí)鐘系統(tǒng),通過(guò)低頻時(shí)鐘、可選的高頻時(shí)鐘以及片內(nèi)數(shù)字控制 RC 振蕩器作為輸入, 可產(chǎn)生 4 種時(shí)鐘信號(hào),程序員通過(guò)軟件選擇控制時(shí)鐘頻率,從而實(shí)現(xiàn)最優(yōu)的系統(tǒng)低功耗,449 具有 5 種低功耗模式,通過(guò)程序狀態(tài)寄存器四位的組合操作可選擇任意模式。
1.3 通信方式
ZigBee 是基于IEEE802.15.4 標(biāo)準(zhǔn)的低功耗個(gè)域網(wǎng)協(xié)議。根據(jù)該協(xié)議規(guī)定的技術(shù)是一種短距離、低功耗的無(wú)線通信技術(shù)。具有近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本等特點(diǎn)。主要適用于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入各種設(shè)備。
本文選擇DTK 深圳中鼎泰克電子公司生產(chǎn)的UART 串口轉(zhuǎn)無(wú)線模塊DRF1605H 用于數(shù)據(jù)無(wú)線傳輸,該無(wú)線模塊已內(nèi)置ZigBee 協(xié)議,可實(shí)現(xiàn)數(shù)據(jù)的透明傳輸。
ZigBee模塊有兩種類型的節(jié)點(diǎn)Coordinator(主節(jié)點(diǎn)) 及Router(從節(jié)點(diǎn)),每個(gè)ZigBee網(wǎng)絡(luò)由一個(gè)主節(jié)點(diǎn)及N個(gè)從節(jié)點(diǎn)構(gòu)成,同一個(gè)ZigBee網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)采用相同網(wǎng)絡(luò)ID,使用該公司的ZigBee模塊配置軟件即可成功將ZigBee模塊組網(wǎng),組網(wǎng)后的ZigBee模塊即使掉電后重新上電也不會(huì)丟失參數(shù)。主從節(jié)點(diǎn)之間的數(shù)據(jù)是自動(dòng)發(fā)送的,將波特率設(shè)置為38 400 b/s,即可像串口線一樣使用該無(wú)線模塊。圖 2 所示為MSP430F449 與ZigBee 模塊的硬件連線簡(jiǎn)圖,僅需四根線即可實(shí)現(xiàn)無(wú)線接收模塊與單片機(jī)的通信。
1.4 顯示
在所有MSP430X44X 系列單片機(jī)中,都有一個(gè)外圍 LCD 控制器,可以自動(dòng)產(chǎn)生交流段信號(hào)和公共信號(hào),具有 20 字節(jié)的顯示緩存,可以驅(qū)動(dòng)段式液晶。但考慮到本設(shè)計(jì)需要多行顯示漢字及字母甚至圖像,用單片機(jī)控制12864BG 點(diǎn)陣式液晶。該液晶顯示屏主要由行驅(qū)動(dòng)器、列驅(qū)動(dòng)器及128 64 全點(diǎn)陣液
晶顯示器組成??赏瓿蓤D形顯示,也可以顯示 8 4 漢字。
LCD 有 6 個(gè)控制引腳,三態(tài) 8 位并行數(shù)據(jù)線,液晶顯示器驅(qū)動(dòng)正負(fù)極,電源、背光正負(fù)極共 20 個(gè)引腳,將 20 個(gè)引腳分別與單片機(jī)相應(yīng)的輸入輸出口相連,結(jié)合指令表以及時(shí)序編寫(xiě)主程序,方可實(shí)現(xiàn)液晶顯示功能。
2 軟件設(shè)計(jì)
2.1 主程序流程圖
看門(mén)狗定時(shí)器(Watch Dog Timer,WDT)是MSP430 系列單片機(jī)常用的一種部件,用于防止程序跑飛。主程序需首先關(guān)閉看門(mén)狗,完成所有初始化程序,設(shè)置使能中斷后進(jìn)入主循環(huán)中的低功耗模式等待串口接收數(shù)據(jù),串口一旦接收到數(shù)據(jù), 將觸發(fā)中斷并退出低功耗模式,接收到的數(shù)據(jù)通過(guò)數(shù)組存放于內(nèi)存中,隨后調(diào)用顯示子程序?qū)崿F(xiàn)液晶顯示功能。若要防止系統(tǒng)陷入死循環(huán),還需在主循環(huán)中設(shè)置看門(mén)狗計(jì)數(shù)模式, 當(dāng)程序跑飛時(shí)則無(wú)法清零看門(mén)狗計(jì)數(shù)器,同時(shí)將產(chǎn)生系統(tǒng)信號(hào)復(fù)位,脫離死循環(huán)狀態(tài)。圖 3 所示為主程序流程圖。
2.2 串口接收程序
單片機(jī)之間或單片機(jī)與 PC 機(jī)之間進(jìn)行數(shù)據(jù)的交換稱為通信,例如電力系統(tǒng)交流采樣裝置可以通過(guò)串行口接收上位機(jī)命令,將所需電壓、電流以及功率等電參數(shù)傳遞給上位機(jī)。并行通信一般用于 CPU 與存儲(chǔ)器之間的數(shù)據(jù)或地址傳送,即單片機(jī)應(yīng)用系統(tǒng)內(nèi)部通信;串行通信適于遠(yuǎn)距離通信,其傳送方向分為單工、半雙工及全雙工,MSP430 單片機(jī)的USART(Universal Synchronous/Asynchronous Receive/Transmit)外圍模塊支持異步串行通信 UART 模式和同步串行通信 SPI 模式。異步是指不同步,一般通信雙方時(shí)鐘各自獨(dú)立,實(shí)際上每次數(shù)據(jù)在傳送開(kāi)始時(shí)都會(huì)有一個(gè)觸發(fā)信號(hào),MSP430 的串行異步模式便采用一個(gè)起始位作為觸發(fā)信號(hào),以在數(shù)據(jù)傳送過(guò)程中保證時(shí)鐘基本同步。同步通信的雙方共用同一個(gè)時(shí)鐘進(jìn)行數(shù)據(jù)傳送,發(fā)送方發(fā)送速率與接收方速率完全相同,這就必須在傳送數(shù)據(jù)位的同時(shí)將時(shí)鐘信號(hào)的信息傳送給通信的另一方,其中最廣泛的同步通信標(biāo)準(zhǔn)為 SPI(Serial Peripheral Interface, SPI),主要用于微控制器和外圍器件的同步通信。本文采用 MSP430USART 模塊的UART 模式,即異步串行通信。
USART 模塊包括波特率部分、接收部分、發(fā)送部分。接收部分包括接收緩沖寄存器以及接收部件,接收緩存器存放接收到的數(shù)據(jù),等待用戶處理。發(fā)送部分包括發(fā)送緩沖寄存器以及發(fā)送部件,發(fā)送寄存器存放待發(fā)送數(shù)據(jù),發(fā)送部件將發(fā)送寄存器中的數(shù)據(jù)逐位發(fā)送出去。上述過(guò)程在波特率時(shí)鐘的節(jié)拍下完成,發(fā)送接收雙方必須有相同的波特率,在波特率發(fā)生器中調(diào)整分頻因子獲得相應(yīng)的波特率,其中分頻計(jì)數(shù)器實(shí)現(xiàn)整數(shù)部分,調(diào)整器使得小數(shù)部分盡可能準(zhǔn)確。
UART 的根本功能是正確無(wú)誤的將串行數(shù)據(jù)轉(zhuǎn)化為供計(jì)算機(jī)使用的并行數(shù)據(jù)(接收)或者將計(jì)算機(jī)使用的并行數(shù)據(jù)發(fā)送到串行線路(發(fā)送)。使用一系列標(biāo)志位進(jìn)行控制轉(zhuǎn)化過(guò)程。
UART 外圍模塊有接收和發(fā)送兩個(gè)獨(dú)立的中斷向量,使用兩個(gè)獨(dú)立的中斷向量便于CPU 的中斷處理,提高效率。此外, USART 模塊接收字符時(shí)能自動(dòng)進(jìn)行校驗(yàn)錯(cuò)誤、幀錯(cuò)誤、溢出錯(cuò)誤和打斷狀態(tài)檢測(cè)。圖 4 所示為串口接收程序流程圖。
2.3 顯示子程序
經(jīng)串口接收到的數(shù)據(jù)將存放在內(nèi)存數(shù)組中,由液晶顯示屏動(dòng)態(tài)調(diào)用并顯示,其中漢字顯示部分固定顯示在屏幕上, 顯示屏可使用液晶自定義字庫(kù)。圖 5 所示為顯示屏顯示漢字的流程圖。
顯示數(shù)據(jù)存儲(chǔ)器(Display Data RAM,DDRAM)用以存儲(chǔ)圖形顯示數(shù)據(jù),數(shù)據(jù) 1 表示顯示選擇,數(shù)字 0 表示非選擇。所謂頁(yè)地址即DDRAM 的行地址,8 行為一頁(yè),模塊共 64 行即 8 頁(yè)。讀寫(xiě)數(shù)據(jù)對(duì)頁(yè)地址沒(méi)有影響,由指令或復(fù)位信號(hào)改變。
一個(gè)漢字占用16 16 點(diǎn)陣,故寫(xiě)一個(gè)漢字需要分別對(duì)兩頁(yè)十六列進(jìn)行操作,圖 6 所示為寫(xiě)漢字子程序流程圖。
3 實(shí)驗(yàn)結(jié)果
3.1 串口接收
實(shí)驗(yàn)使用兩塊 MSP430F449 開(kāi)發(fā)板進(jìn)行調(diào)試, 采用ZigBee 模塊實(shí)現(xiàn)開(kāi)發(fā)板之間的通信,串口1 接收無(wú)線傳輸的數(shù)據(jù)后再通過(guò)串口 0 外接串口線 RS 232 將其發(fā)送至電腦端, 使用串口調(diào)試助手對(duì)其進(jìn)行顯示,實(shí)現(xiàn)分步調(diào)試。接收板需向發(fā)送板發(fā)送一個(gè)請(qǐng)求數(shù)據(jù)信號(hào)(本文為 0x01),發(fā)送板收到信號(hào)后開(kāi)始發(fā)送所需數(shù)據(jù)(本文中為 0x08),接收板串口1 接到數(shù)據(jù)后,再由串口1 發(fā)送至電腦端。圖 7 所示為串口調(diào)試助手顯示結(jié)果。
圖 7 串口調(diào)試助手接收程序
3.2 顯示
串口每接收到一個(gè)字符就將其存入數(shù)組中,再調(diào)用液晶 顯示子程序,即可實(shí)現(xiàn)整個(gè)通信顯示系統(tǒng)的功能。圖 8 所示 為部分顯示功能。

4 結(jié) 語(yǔ)
MSP430 系列單片機(jī)以其卓越的性能和較高的性價(jià)比在 許多領(lǐng)域得到了越來(lái)越廣泛的應(yīng)用,通過(guò)適當(dāng)?shù)倪x型,可以 將 430 芯片廣泛用于便攜式智能檢測(cè)控制儀器的開(kāi)發(fā)、各種數(shù) 據(jù)采集系統(tǒng)的開(kāi)發(fā)、各種智能控制儀表、醫(yī)療儀器等方面。該 系列超低功耗單片機(jī)的應(yīng)用從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè) 計(jì)思想和設(shè)計(jì)方法,將其應(yīng)用于智能化儀器儀表方面,大大 提高了儀器儀表的智能化程度,簡(jiǎn)化了其硬件結(jié)構(gòu),提高了儀 表的精度和準(zhǔn)確度,減小了體積,提高了性價(jià)比。例如文獻(xiàn) [1] 使用 MSP430 單片機(jī)設(shè)計(jì)了一種自動(dòng)肺活量測(cè)試儀,采用單片 機(jī)自帶的 A/D 轉(zhuǎn)換功能,簡(jiǎn)化了電路設(shè)計(jì),使得儀器小型化 成為現(xiàn)實(shí)。文獻(xiàn) [2] 詳細(xì)介紹了一種使 MSP430 作為主控制器 的溫控器軟硬件設(shè)計(jì)方法。文獻(xiàn) [3] 使用 MSP430 單片機(jī)設(shè)計(jì) 了一種用于酒精測(cè)試的電子鼻系統(tǒng),用于識(shí)別和檢測(cè)酒后駕車(chē) 的司機(jī)呼吸氣體中酒精的濃度。
TI 公司的 MSP430 單片機(jī)具有功耗超低、處理能力強(qiáng)大、 片內(nèi)外設(shè)豐富、系統(tǒng)工作穩(wěn)定、開(kāi)發(fā)環(huán)境便捷等顯著優(yōu)勢(shì)。將 其應(yīng)用于電力系統(tǒng)的測(cè)量顯示中,特別是低功耗的環(huán)境需求中, 與其他類型單片機(jī)相比具有更好的應(yīng)用效果和更廣泛的應(yīng)用 前景。
近年來(lái),TI 公司針對(duì)某些特殊應(yīng)用領(lǐng)域,利用 MS4P30 的超低功耗特性,推出了一些專用單片機(jī),大大簡(jiǎn)化了系統(tǒng)的 設(shè)計(jì)。如 MSP430FZXX 系列單片機(jī),其主要特色在于具有超 低功耗 (2.2 V 的編程電壓 ) 和更高速度處理能力 (16 MHz), 引腳數(shù)和體積大大減小,同時(shí)又新增了 DIP 封裝,這使得它 成為小型和手持設(shè)備等系統(tǒng)設(shè)計(jì)的理想選擇。