一種基于MSP43O單片機的日程管理系統(tǒng)
0 引言
日程管理系統(tǒng)是指在指定的時間自動實現(xiàn)提示、放音、錄音等功能,例如清晨吹起床號和自動定時上下課響鈴等。該系統(tǒng)廣泛應(yīng)用在學校、部隊、工廠等部門。早期的司號儀系統(tǒng)存在諸多的缺點。如抗干擾能力差、播放音質(zhì)不好、錄音時間不長。給日常教學、工作到來極大不便。隨著生活水平和需求的不斷提高,人們對產(chǎn)品的智能化要求越來越高.老式的司號儀智能化不夠高必將被淘汰,采用單片機控制的日程管理系統(tǒng)以其系統(tǒng)穩(wěn)定、智能控制、操作簡便、價格便宜等優(yōu)點得到廣泛應(yīng)用。
1 系統(tǒng)結(jié)構(gòu)及功能
系統(tǒng)的組成和程序流程如圖l所示,整個系統(tǒng)共有七個部分組成,分別是:主控部件、電源部件、時鐘部件、錄放音部件、輸入部件、顯示部件、和擴展部件。主控部件選用的是MSP430F149超低功耗16位單片機,MSP430單片機采用FLASH存儲體,此單片機采用了FLASH在線編程JTAG技術(shù),可以利用片內(nèi)的FLASH方便的實現(xiàn)軟件升級,以達到系統(tǒng)升級的目的。設(shè)定的狀態(tài)直接通過在系統(tǒng)編程存入FLASH存儲體,掉電可保護,功耗低,其抗干擾能力極強,各種響應(yīng)的設(shè)定值均存儲在FLASH存儲體中,強電磁干擾環(huán)境也不會影響到存儲的狀態(tài)。單片機通過I/O口接受按鍵輸入,通過調(diào)用時鐘實現(xiàn)定時響應(yīng),管理錄音段及號音,并控制錄放音、液晶顯示和擴展口。
電源部件為各部件工作提供工作電源,全系統(tǒng)需要4種電源電壓分別是:+3V、+5V、+12V、一12V。
時鐘部件提供全系統(tǒng)時間基準,單片機定時和中斷。為了實現(xiàn)系統(tǒng)的定時錄音和放音,必須有一個穩(wěn)定的時鐘。SD2003A是一種具有內(nèi)置晶振、支持I2C總線接口的高精度實時時鐘芯片。該系列芯片可保證時鐘精度為±4 ppm(在25±l℃下),即年誤差小于2分鐘。SD2003A的電源由電池提供,當單片機掉電后,SD2003A照樣工作。當單片機恢復(fù)工作時,調(diào)用SD2003A內(nèi)部時鐘。
錄放音部件實現(xiàn)語音等信息的存儲和播放。錄放音部件選用的是ISD公司ISD4000系列語音處理芯片,它的工作電壓3V,單片錄放時間最??蛇_16分鐘,音質(zhì)好,適用于移動電話及其他便攜式電子產(chǎn)品中。芯片采用CMOS技術(shù),內(nèi)含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動靜噪及高密度多電平閃爍存貯陣列。芯片設(shè)計是基于所有操作必須由微控制器控制.操作命令可通過串行通信接口(SPI或Microwire)送入。采樣頻率可為4.0,5.3,6.4,8.O kHz,頻率越低,錄放時間越長,而音質(zhì)則有所下降,片內(nèi)信息存于閃爍存貯器中,可在斷電情況下保存100年(典型值),反復(fù)錄音10萬次。
輸入部件主要用于實現(xiàn)定時時間的修改、錄音放音的轉(zhuǎn)換、時鐘芯片的時間調(diào)整、繼電器的響應(yīng)控制等。輸入采用4×4掃描鍵盤,由MSP430單片機通過軟件控制實現(xiàn)輸入。顯示部件采用M12864-11A5液晶顯示器,主要用于顯示操作進程,使使用者能夠清楚的看到每步操作的作用,增強了人機對話功能。
考慮到管理系統(tǒng)應(yīng)用的廣泛性,系統(tǒng)增加擴展部件,利用繼電器組實現(xiàn)一些對大功率器件的控制功能。繼電器的一端是弱電,一端是強電,因此我們采用了光電隔離控制的方法,從而有效地控制大功率輸出部件對系統(tǒng)的干擾。
2 系統(tǒng)的技術(shù)實現(xiàn)
主控模塊對繼電器和按鍵的控制是用I/O口直接控制的。同時預(yù)留了大量外部接口,這主要用于將來升級。主控部分采用了大量的分支跳轉(zhuǎn)表,對鍵盤輸入的值根據(jù)不同的環(huán)境,選擇相對應(yīng)的程序進行響應(yīng)。因此整個系統(tǒng)僅僅使用了5個按鍵就可以實現(xiàn)所有的功能,其它鍵作為快捷控制鍵和特殊功能鍵。
該主控部分的單片機通過I2C通信協(xié)議對SD2003時鐘芯片進行控制,調(diào)用SD2003的時鐘,從而實現(xiàn)定時響應(yīng);而液晶顯示模塊是用并行通訊方式進行控制的,AO高時為指令,低時為數(shù)據(jù)。
它與ISD4004語音片采用SPI同步通信協(xié)議,對4004語音芯片控制,以下是SPI協(xié)議的控制時序,SPI協(xié)議由三根線構(gòu)成,MISO信號輸入,MOSI信號輸出,UCLK時鐘線組成,其通訊方式如圖2所示。
SPI協(xié)議是一個同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI移位寄存器在SCLK的下降沿動作,因此對ISD4004而言,在時鐘上升沿鎖存MOSI引腳的數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO引腳。從時序圖可以看出,SPI協(xié)議的實現(xiàn)比較容易,MSP430Fll49單片機利用其內(nèi)部定時器,采用3個I/O口,用軟件可實現(xiàn)SPI協(xié)議。
由于放音及錄音有很多種,因此,我們必須找到一種良好的算法來進行這項工作,因此,我們采用了通過基于信息地址表(以下簡稱MAT)的管理方式對錄音片進行操作,真正實現(xiàn)了可對任意段進行刪除、重錄、添加任意時間長度的錄音的功能。
ISD4004有能力讀回每次錄音結(jié)束時的內(nèi)部信息指針,據(jù)此建立一個簡單的MAT表,將每條信息的位置存入另外的不揮發(fā)性數(shù)字存儲器中。這樣,可按需要重放任一條指定信息。MAT表是信息管理體系的一個重要組成部分,它跟蹤每一條信息的開始地址以及每一個信息碎塊的開始和結(jié)束地址。
在本應(yīng)用中,錄音部分MAT表的建立是這樣的:通常,尋址ISD4004需要12位地址,加上片選4片4004,則需要14位地址,假設(shè)將最低5位地址恒為O,只需9位地址就可以尋址300個存貯塊中的任意一塊,每塊長度為6.4秒。此例中,MAT表占用600字節(jié)的存貯空間,每個字對應(yīng)著ISD4004的一個存儲塊。隨著錄音和刪除反復(fù)進行,具體對應(yīng)關(guān)系也許會改變。下面說明工作原理。
MAT表中的一個表項的數(shù)值或者表示該項與ISD的存儲塊尚無關(guān)聯(lián),或者表示ISD某個存儲塊的狀態(tài)。第15位(最高位)有特殊作用:置l表示對應(yīng)的存儲塊是某條信息的起始塊。其余各位就是存儲塊的地址。級聯(lián)時,MAT中BITl2、BITl3是用來指示哪一片器件。這樣,表項有四種可能值:
(1)表項值為全O:表示該項與1SD的存儲塊尚無關(guān)聯(lián)。
(2)表項值的Bit15為l:表示對應(yīng)的存儲塊是某段信息的起始塊。
(3)表項值的Bitl5為O,其余各位是有效地址:表示對應(yīng)的存儲塊是某條信息的其中一塊,但不是起始塊。
(4)第2種情況的特例:我們約定,1SD的第一個存儲塊總是某條信息的起始塊,因此對應(yīng)表項值為(1000 0000…)。
錄入若干段信息后,隨著ISD4004空間的使用,MAT表自頂向下逐漸建立起相應(yīng)表項。每使用了一個存儲塊就建立一字節(jié)的MAT表項。MAT表的特點是:①對應(yīng)于同一條信息的所有表項在MAT中總是連續(xù)放置的。②對于由若干個MAT表項組成的一條信息,它的各個存儲塊的地址值總是從小到大,但不一定緊緊相連。
重放時,微控制器從MAT表頭開始,向下搜索Bit 15為1的表項。要重放第幾條信息,就去尋找第幾個這樣的表項.以重放#3信息為例,微控制器停留在第三個Bit 15為l的表項,該項指向#3信息的第一個存儲塊。從該表項中,微控制器得到ISD中03信息第一個存儲塊的塊號是10,#03信息的重放由SPI送入第1O塊的地址(即塊號乘以8)后開始。
去掉MAT表的相關(guān)表項就可刪除該信息。例如刪除#3信息,對照表l,#3信息占用了MAT表的第6、7、8字,為了刪除#3信息,須將其對應(yīng)的最后一個表項之后的所有表項往后移動3字,然后把MAT表已分配的最后三個表項值置為全O。
3 結(jié)論
基于MSP430單片機的日程管理系統(tǒng)具有以下特點。
(1)錄音:在指定時間開啟錄音,錄音時間不小于30分鐘。錄音源為收音機(默認)、麥克風(選擇音源時,采用手控);
(2)吹號:在指定時間吹號,號音種類有15種,每個號音的時間是一定的,累計號音時間在10分鐘左右;
(3)放音:在指定時間,按指定時長放音,音源為錄音、錄音機、收音機??蛇x擇播放的次數(shù),在播放期間,如有其他指令,則停止播放執(zhí)行新指令;
(4)電鈴:在指定時間開啟電鈴,持續(xù)時間(固定為5秒)可設(shè)定;
(5)關(guān)燈(開燈):在指定時間關(guān)燈(開燈)。
該系統(tǒng)功能強大,人機接口人性化,外觀美觀。已在部分院校推廣使用。