現(xiàn)代顯示技術的基本特點是將各種非電置的信息,如聲、光、熱、力、數(shù)、氣氛等的信息源通過一定的傳感器、處理器進行感知和處理,傳輸給顯示裝置,再由顯示裝置進行處理、轉(zhuǎn)換,最后經(jīng)由顯示器件轉(zhuǎn)換為人類視覺可識別的信息。在顯示的過程中,TFT彩色液晶顯示模塊可以提供更大的信息量。而觸摸屏是一種使電子設備改頭換面的設備,它賦予電子設備以嶄新的面貌,是極富吸引力的全新多媒體交互設備。
總體設計
任何一種基于微控制器的系統(tǒng)設計都包含了硬件設計和軟件設計兩個大的方面。硬件設計主要根據(jù)系統(tǒng)的功能要求選擇不同的器件和芯片完成電路的搭建:軟件設計是根據(jù)硬件的設計編寫驅(qū)動代碼和控制代碼來完成特定的功能。硬件設計與軟件設計結合起來才是一個完整的系統(tǒng)設計。
系統(tǒng)硬件框圖根據(jù)系統(tǒng)的設計要求(1)能顯示溫度、濕度和時間信息:(2)時間信息在外部斷電后可以保持;(3)能將溫度、濕度和時間等信息進行語音提示;(4)可以對時間進行設置。提出系統(tǒng)的硬件框圖如下圖所示。
系統(tǒng)軟件設計思想要完成這樣一個系統(tǒng),一般都會使用到微控制器的中斷系統(tǒng)?;诖?,系統(tǒng)軟件的設計思想如下:(1)開機檢測系統(tǒng)狀態(tài),完成相應的初始化(在初始化中打開中斷);(2)進入正常工作狀態(tài);(3)等待中斷觸發(fā),在不同的中斷中完成不同的功能。
硬件設計
微控制器的選擇與最小系統(tǒng)設計在整個系統(tǒng)中,微控制器是一個很重要的核心器件,它主要完成傳感器信號的加工與處理、時間信號的加工與處理、顯示信號的加工與處理以及人機交互信息的加工與處理。這些信息量是非常大的。
目前市面上單片機的種類與型號是最豐富的,從系統(tǒng)需求和筆者的經(jīng)驗出發(fā),選擇高速、高性能的MSP430系列單片機中的2系列單片機作為主控制器。
在2系列單片機中,性價比相對比較高的是MSP430F24X(1)、MSP430F241(×)中的64腳封裝的幾種型號。它們的管腳是完全兼容的,區(qū)別是片內(nèi)資源的不同。
根據(jù)利爾達公司的LSD-FET430UIF這種型號的仿真頭的使用說明和MSP430單片機的特性和管腳定義繪制最小系統(tǒng)板原理圖如下圖所示。
該最小系統(tǒng)板主要是完成MSP430單片機管腳的引出,采用DC3簡易牛角插座;同時,對于UART串口使用了一片MAX3232芯片進行電平轉(zhuǎn)換,配合DB9插座,從而可以和PC機進行通信。之所以采用這種插座引出的方式,是為了實現(xiàn)模塊化,方便調(diào)試、檢測和進行替換。
溫度與濕度信息獲取模塊的設計溫度與濕度信息都是模擬量,因此必須使用相應的傳感器及相關器件組成一定的模塊將其轉(zhuǎn)變成單片機可以識別的數(shù)字量。目前市面上溫度和濕度傳感器的品種有很多,已經(jīng)出現(xiàn)了溫濕度一體化的傳感器,通過調(diào)研,筆者選定了瑞士盛世瑞恩公司的SHT數(shù)字溫濕度傳感器。SHT數(shù)字溫濕度傳感器最大的特點是:①全標定輸出,無需標定即可互換使用;②兩線制數(shù)字接口,無需額外電路。
實時時鐘模塊的設計實時時鐘信號的獲取有多種途徑,可以利用單片機自身的內(nèi)部定時器或者中斷產(chǎn)生,也可以使用專用的時鐘芯片獲得。而無論使用哪一種方式,都必須考慮到斷電后時鐘繼續(xù)工作的問題。
這個時候,采用專用的時鐘芯片來解決這個問題是最簡便的方法,本設計中直接使用PCF8563來完成實時時鐘模塊的設計。
PCF8563是低功耗的CMOS實時時鐘/日歷芯片,它提供一個可編程時鐘輸出,一個中斷輸出和掉電檢測器,所有的地址和數(shù)據(jù)通過12C總線接口串行傳遞。最大總線速度為400Kbits/s,每次讀寫數(shù)據(jù)后,內(nèi)嵌的字地址寄存器會自動產(chǎn)生增量。
語音提示模塊的設計目前市面上有多種類型的語音芯片。
對于用量不大的使用者來說,最常見的語音芯片主要分為兩大類:一類以Flash為存儲器,需要將語音信號進行錄入后才可以播放,以后也可以修改語音信號,以ISD系列芯片為代表;一類將語音信號固化在ROM中,通過輸入相應的控制和數(shù)據(jù)代碼只能進行放音操作。在本系統(tǒng)中,選擇使用第二類芯片。具體的型號是北京宇音天下科技有限公司采用自主核心技術開發(fā)的OSYN06188嵌入式中文語音合成芯片。
OSYN06188的特點是:通過UART接收待合成的文本,可直接通過PWM輸出方式驅(qū)動揚聲器,亦可外接單支三極管驅(qū)動揚聲器,即可實現(xiàn)文本到聲音(TTS)的轉(zhuǎn)換。支持國家標準GB2312所有漢字。
人機交互模塊的設計人機交互模塊是系統(tǒng)設計中非常重要的組成部分,主要包括了信息顯示終端與輸入終端這兩個部分。
在這樣一個系統(tǒng)中,信息顯示終端必然選擇平板顯示器件;在平板顯示器件中要么選擇數(shù)碼管/LED點陣,要么選擇液晶顯示模塊。輸入終端可以選擇獨立式鍵盤、矩陣式鍵盤;當選擇使用了液晶顯示模塊后還可以選擇觸摸屏作為輸入終端。
本系統(tǒng)選擇4.7TFT真彩色液晶顯示模塊做為顯示終端,與之配套的觸摸屏做為輸入終端來完成人機交互模塊的設計。
1.漢字顯示:標準漢字的點陣為15列16行,在沒有硬件漢字庫的情況下使用軟件對漢字進行取模操作,然后將顯示模數(shù)據(jù)送液晶顯示器件進行顯示。筆者選用的4.7液晶顯示模塊中自帶了集通數(shù)碼科技的GT21標準漢字字庫芯片。GT21芯片采用了SPI總線,使用相對簡單方便。
2.觸摸屏:觸摸屏是一種極富吸引力的全新交互設備,它極大的簡化了系統(tǒng)的使用,使各種類型的系統(tǒng)展現(xiàn)出更大的魅力。觸摸屏的三大主要種類是:電阻式觸摸屏、聲表面波式觸摸屏、電容式觸摸屏。其中電阻式觸摸屏自進入市場以來,就以穩(wěn)定的質(zhì)量,可靠的品質(zhì)及環(huán)境的高度適應性占據(jù)了廣大的市場,占有90%的市場量,已成為市場上的主流產(chǎn)品。本系統(tǒng)即選用電阻式觸摸屏。從工作原理來看,要完成電阻式觸摸屏的驅(qū)動與控制,必須具備以下兩個條件。(1)完成電極電壓的切換;(2)采集接觸點處的電壓值(即A/D)。
此時可以通過使用模擬開關與MSP430內(nèi)部自帶的AD轉(zhuǎn)換器來實現(xiàn)電阻式觸摸屏的驅(qū)動與控制,但是這樣會增加系統(tǒng)硬件設計的難度以及軟件編寫的難度。因此選擇使用觸摸屏專用控制芯片AD7843是一種簡單、有效的解決方式。
3.基于觸摸屏的人機交互模塊的硬件設計:根據(jù)所選擇的器件,最終完成的硬件設計如下圖所示。
在圖中左側(cè)的接口也使用了DC3-10腳插座,與MSP430F2XX最小系統(tǒng)板是一一對應的。連接采用FC3-10芯的排線進行連接。
軟件設計
系統(tǒng)工作流程與大多數(shù)的微控制器一樣,MSP430系列單片機支持匯編與C語言的編程,另外MSP430系列單片機還支持C++語言的編程。由于C語言的優(yōu)異特性,筆者選用C語言進行編程。目前針對MSP430系列單片機的開發(fā)環(huán)境中,相對使用比較多的是IAREmbeddedWorkbench。
1MSP430系列單片機低功耗程序結構:由于MSP430系列單片機的在超低功耗的特殊性能,使得基于MSP430系列單片機的編程有自己獨到且方便的方面。本系統(tǒng)程序設計選擇如下圖所示結構。
低功耗的實現(xiàn)是由程序狀態(tài)寄存器(SR)中的控制位進行控制的。它實現(xiàn)了5種低功耗模式:LPMO、LPM1、LPM2、LPM3、LPM40任何一種低功耗模式都只能與活動模式進行切換,如下圖所示。
程序代碼編寫程序代碼要根據(jù)不同模塊、不同硬件連接方式進行編寫。
1Flash驅(qū)動:MSP430系列單片機的Flash分為程序Flash和信息Flash。程序Flash按512字節(jié)分段,信息Flash按64字節(jié)分段。MSP430系列單片機可以對自身的Flash進行讀寫操作,因此可以將系統(tǒng)設置、狀態(tài)信息保存在自身的Flash中,從而省去相應的外設。
值得注意的是,F(xiàn)lash的擦除是按段進行的。因此,要改變某一字節(jié)的Flash中的內(nèi)容必須按照以下幾個步驟進行。(1)將相應段中的內(nèi)容讀入到內(nèi)存中保存起來;(2)修改相應字節(jié)的內(nèi)容;(3)段擦除;(4)寫入修改后的信息。
2硬件乘法器驅(qū)動:硬件乘法器是一個外圍器件,它的運算過程與CPU無關,軟件通過訪問相關的寄存器就可以得到最終的運算結果。(1)操作數(shù)1寄存器(OPI)不能直接訪問,只能通過4個寄存器MPY、MPYS、MAC或MACS來間接訪問,這4個寄存器又代表了不同的乘法操作,分別為無符號乘法運算、有符號乘法運算、無符號乘加運算以及無符號乘加運算:(2)操作數(shù)2寄存器(OP2)可以直接訪問:(3)當數(shù)據(jù)寫入OP2寄存器時,立即開始相應的運算,運算結果放入RESHI、RESLO以及SUMEXT這3個寄存器中。
3USCI驅(qū)動:所謂的USCI指的就是UniversalSerialCommunICationInter-face,通用串行通信接口。MSP430系列單片機提供的USCI包括了硬件的UART、SPI和IIC。
這幾種接口有些口線是復用的,有些寄存器也是復用的,在驅(qū)動編寫中要根據(jù)當前不同的器件及其接口在這幾個寄存器UCAxCTLO(USCI_AxControlRegistero)、UCAxCTLl(USCI_AxControlRegis-terl)、UCBxCTLO(USCI_BxControlRegisterO)、UCBxCTLl(USCI_BxCon-trolRegisterl)(x=l或2)中進行USCI工作模式的選擇。
使用USCI驅(qū)動時,可以使用中斷方式也可以使用查詢方式進行操作。
以查詢方式為例,如果通過USCIBO發(fā)送一個字節(jié),那么使用如下語句:
第二行代碼的作用就是等待發(fā)送操作完成。