自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
畢業(yè)設(shè)計(jì)論文-單片機(jī)在語(yǔ)音播放與圖片顯示中的應(yīng)用
畢業(yè)設(shè)計(jì)論文-單片機(jī)在語(yǔ)音播放與圖片顯示中的應(yīng)用
 更新時(shí)間:2008-7-26 20:30:04  點(diǎn)擊數(shù):3
【字體: 字體顏色
畢業(yè)設(shè)計(jì)論文-單片機(jī)在語(yǔ)音播放與圖片顯示中的應(yīng)用
[ 2008-1-4 11:58:00 | By: wozuishuai ]
 

摘  要:凌陽(yáng)科技公司推出的SPCE061A芯片具有語(yǔ)音播放的硬件條件,在軟件算法上凌陽(yáng)科技公司提供了大量的語(yǔ)音函數(shù)庫(kù)可供使用,這使得語(yǔ)音播放很容易實(shí)現(xiàn)。但是SPCE061A片內(nèi)的FLASH存儲(chǔ)器只有32K,在播放大量語(yǔ)音資源時(shí)需要外擴(kuò)存儲(chǔ)器。本論文討論使用凌陽(yáng)科技公司的SPR4096作為外擴(kuò)存儲(chǔ)器,與SPCE061A結(jié)合播放語(yǔ)音。在使用SPR4096時(shí)我們通過(guò)凌陽(yáng)教育推廣中心新推出的ResWriter對(duì)SPR4096進(jìn)行讀寫操作。另外,擴(kuò)展SPLC501液晶作為圖片顯示,實(shí)現(xiàn)有聲有色。本文詳細(xì)論述了整個(gè)功能的實(shí)現(xiàn),包括硬件電路與軟件算法。
關(guān)鍵詞:SPCE061A;凌陽(yáng)單片機(jī);語(yǔ)音播放;SPR4096;ResWriter;

1 引言
  凌陽(yáng)科技公司推出的SPCE061A芯片具有語(yǔ)音播放的硬件條件,而且還提供了大量的語(yǔ)音播放的函數(shù)可供調(diào)用。但是由于SPCE061A片內(nèi)的FLASH存儲(chǔ)器只有32K,在播放大量語(yǔ)音資源時(shí)需要外擴(kuò)存儲(chǔ)器。本文使用SPCE061A與SPR4096實(shí)現(xiàn)大量語(yǔ)音播放。在操作SPR4096時(shí)使用凌陽(yáng)教育推廣中心最新推出的可視化工具ResWriter進(jìn)行對(duì)SPR4096的讀寫操作,使得在播放大量語(yǔ)音資源時(shí)也變得很容易。本文詳細(xì)論述了實(shí)現(xiàn)過(guò)程。

2 芯片與模組簡(jiǎn)介
2.1 SPCE061A特性簡(jiǎn)介

  SPCE061A是凌陽(yáng)科技研發(fā)生產(chǎn)的性價(jià)比很高的一款十六位單片機(jī),使用它可以非常方便靈活的實(shí)現(xiàn)語(yǔ)音的錄放系統(tǒng),該芯片擁有8路10位精度的ADC,其中一路為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動(dòng)增益電路。這為實(shí)現(xiàn)語(yǔ)音錄入提供了方便的硬件條件。兩路10精度的DAC,只需要外接功放(SPY0030A)即可完成語(yǔ)音的播放。另外凌陽(yáng)十六位單片機(jī)具有易學(xué)易用的效率較高的一套指令系統(tǒng)和集成開(kāi)發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn)C語(yǔ)言,可以實(shí)現(xiàn)C語(yǔ)言與凌陽(yáng)匯編語(yǔ)言的互相調(diào)用,并且,提供了語(yǔ)音錄放的庫(kù)函數(shù),只要了解庫(kù)函數(shù)的使用,就會(huì)很容易完成語(yǔ)音錄放,這些都為軟件開(kāi)發(fā)提供了方便的條件:
  特性:
  ● 16位μ'nSP微處理器;
  ● 工作電壓:內(nèi)核工作電壓VDD為3.0~3.6V(CPU),I/O口工作電壓VDDH為VDD~5.5V(I/O);
  ● CPU時(shí)鐘:0.32MHz~49.152MHz;
  ● 內(nèi)置2K字SRAM;
  ● 內(nèi)置32K閃存ROM;
  ● 可編程音頻處理;
  ● 晶體振蕩器;
  ● 系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)),耗電小于2μA@3.6V
  ● 2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值);
  ● 2個(gè)10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;
  ● 32位通用可編程輸入/輸出端口;
  ● 14個(gè)中斷源可來(lái)自定時(shí)器A / B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒;
  ● 具備觸鍵喚醒的功能;
  ● 使用凌陽(yáng)音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語(yǔ)音數(shù)據(jù);
  ● 鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào);
  ● 32768Hz實(shí)時(shí)時(shí)鐘;
  ● 7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器;
  ● 聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)功能;
  ● 具備串行設(shè)備接口;
  ● 低電壓復(fù)位(LVR)功和低電壓監(jiān)測(cè)(LVD)功能;
  ● 內(nèi)置在線仿真板(ICE,In- Circuit Emulator)接口。

2.2 SPR4096簡(jiǎn)介
  SPR4096是凌陽(yáng)科技公司研發(fā)生產(chǎn)的性價(jià)比很高的512K*8位的高性能FLASH存儲(chǔ)器,同時(shí)內(nèi)嵌4K*8位的SRAM。具有BMI(Bus Memory Interface)接口與SIO(Serial Interface)接口。SPR4096提供兩種電源供電VDDI與VDDQ。VDDI供電范圍在2.25V到2.75V,是對(duì)內(nèi)部的FLASH與邏輯控制器供電。VDDQ供電范圍在2.25V到3.6V,只對(duì)I/O口供電。SPR4096的最大工作頻率為5.0MHz,最大讀取電流為2mA最大擦除、燒錄電流為6mA。
  特性:
  ● 512K*8位的FLASH,256個(gè)扇區(qū),每個(gè)扇區(qū)為2K字節(jié)
  ● 可重復(fù)擦寫20000次
  ● 在自然條件下數(shù)據(jù)保存10年
  ● 4K*8位的SRAM
  ● 供電要求:
    VDDI: 2.25V-2.75V
    VDDQ:2.25V-3.6V
  ● 最大工作頻率:5.0MHz
  ● 最大擦除、燒錄電流:6.0mA
  ● 最大讀取電流:2.0mA

2.3 SPR模組介紹
2.3.1 基本特性與參數(shù)指標(biāo)

  產(chǎn)品型號(hào):SPR MODULE V1.0
  SPR模組工作電壓:3.3V
  SPR模組外形尺寸:50mm×50mm

2.3.2 主要功能
  針對(duì)凌陽(yáng)科技公司的存儲(chǔ)器芯片SPR4096/SPR1024,開(kāi)發(fā)的簡(jiǎn)易燒寫器。該燒寫器配合PC機(jī)ResWriter工具(凌陽(yáng)科技教育推廣中心提供,下文敘述),通過(guò)EZ-probe下載線,完成對(duì)SPR4096/1024存儲(chǔ)器芯片的擦除、寫入、校驗(yàn)等功能。并且在SPR模組上留有與SPCE061A單片機(jī)的接口,可以實(shí)現(xiàn)SPR模組與SPCE061A單片機(jī)組成的系統(tǒng)。

2.3.3 結(jié)構(gòu)框圖

圖 2.1 SPR模組結(jié)構(gòu)框圖
  SPR模組預(yù)留兩個(gè)接口,一個(gè)接口是EZ-probe,這是在使用ResWriter工具對(duì)SPR4096/1024進(jìn)行燒寫時(shí)連接使用的,另一個(gè)是10PIN的排線,主要提供電源以及與SPCE061A連接使用。用戶請(qǐng)注意,SPR模組電路支持SPR4096和SPR1024,但只能同時(shí)對(duì)其中一種芯片進(jìn)行使用。SPR模組有兩種基本配置,一種為電路板加SPR4096芯片,另一種為電路板加SPR1024芯片,而且在使用時(shí)必須配備下載線使用。用戶在選購(gòu)時(shí)請(qǐng)您注意確認(rèn)是SPR模組_4096還是SPR模組_1024。

2.3.4 實(shí)物圖

圖 2.2 SPR模組_4096實(shí)物圖   

圖 2.3 SPR模組_1024實(shí)物圖

2.3.5 注意事項(xiàng)
  ● SPR模組使用3.3V電源供電,注意不要使電源接反
  ● 模組必需配合下載線使用
  ● 在使用ResWriter工具對(duì)SPR4096/SPR1024芯片進(jìn)行燒寫時(shí)也需要對(duì)SPR模組供電
  ● 不能同時(shí)對(duì)SPR4096與SPR1024進(jìn)行燒寫

2.4 ResWriter工具簡(jiǎn)介
2.4.1 主要功能

  ResWriter工具的主要功能:
  ● SPR1024/4096 Flash Memory 燒錄器:用PC printer port通過(guò)Easy Probe 燒錄SPR1024/4096,基本操作內(nèi)容包括Blank      Check(空白檢查),Erase(刪除數(shù)據(jù)),Read(讀數(shù)據(jù)),Program(燒錄,寫入數(shù)據(jù)),Verify(校驗(yàn),檢查寫入是否正確);
  ● 文檔整合:把多個(gè)小文檔整合成一個(gè)大文檔,作為燒錄Flash的數(shù)據(jù)資料。

2.4.2 ResWriter工具的界面:

圖 2.4 Res Writer用戶界面

2.4.3 菜單介紹
  ● 界面:包括標(biāo)題欄、Menu Bar、ToolBar、Resource View Bar、View、Status Bar等。
  ● 標(biāo)題欄:<文檔名> Sunplus Res Writer;
  ● Menu Bar:見(jiàn)表一;
  ● ToolBar:包括Load Bin、Load Con、Save、Blank Check、Erase、Read、Program、Verify、Auto Operation、Help等;
  ● Resource View Bar:在開(kāi)始的地址空間顯示文檔索引表,接下來(lái)顯示讀進(jìn)來(lái)的小文檔的標(biāo)題,每個(gè)標(biāo)題對(duì)應(yīng)一段地址空間, Double Click某個(gè)小文檔標(biāo)題可以定位到對(duì)應(yīng)數(shù)據(jù)的起始地址,可以刪除某個(gè)小文檔標(biāo)題(以Popup Menu方式實(shí)現(xiàn),對(duì)應(yīng)的刪除本段數(shù)據(jù)),Index List不可刪除;
  ● View:左邊一列顯示地址,右邊十六列顯示數(shù)據(jù)(十六進(jìn)制);
  ● Status Bar:顯示Flash Type、Start Address、 End Address(由菜單"設(shè)置/操作地址"指定) 、Check Sum顯示燒錄數(shù)據(jù)的校驗(yàn)和(在Read和Program之后)、命令提示。

表 2.1菜單

Menu Item功能描述
文件/載入二進(jìn)制文件以Append的方式讀入多個(gè)要整合的*.bin文檔,作為Flash燒錄的數(shù)據(jù)資料。
文件/載入以整合文件讀入已經(jīng)整合后的*.con文檔,作為Flash燒錄的數(shù)據(jù)資料。限制:一次只能讀入一個(gè),且讀入前關(guān)閉已有的文件
文件/存儲(chǔ)以*.con方式保存整合后的文檔
文件/退出退出本軟件
查看顯示或者隱藏Tool Bar/Status Bar/Resource View Bar等
設(shè)置/芯片型號(hào)設(shè)置要燒錄的芯片(SPR1024或SPR4096)
設(shè)置/操作地址設(shè)置對(duì)Flash操作的地址空間(Start & End Address)
操作/Erase擦除整個(gè)Flash 中的數(shù)據(jù)
操作/Blank Check檢查地址空間Start & End Address之間的數(shù)據(jù)是否為空白,即是否為0xFF
操作/Read從Flash讀取地址空間Start & End Address中的數(shù)據(jù)
操作/Program把文件Start & End Address地址間的數(shù)據(jù)寫到Flash相應(yīng)的地址空間中
操作/Verify檢查Flash地址空間Start & End Address中的數(shù)據(jù)與文檔中對(duì)應(yīng)空間的數(shù)據(jù)是否一致
操作/Auto根據(jù)"燒錄選項(xiàng)"的設(shè)置,執(zhí)行相應(yīng)的燒錄過(guò)程
燒錄選項(xiàng)選擇燒錄過(guò)程:Erase -> Program -> Verify;Erase -> Program;Program -> Verify;Program Only選擇后由"操作/Auto"實(shí)現(xiàn)
幫助 

  對(duì)文件(資源)的操作說(shuō)明:
  ● Resource View包括索引表和讀進(jìn)的各個(gè)小文檔標(biāo)題,索引表紀(jì)錄整合后文檔的長(zhǎng)度(total_file_length)、小文檔的個(gè)數(shù)、各個(gè)小文檔長(zhǎng)度和某個(gè)文檔段的起始地址等信息,把索引表放在開(kāi)始的一段地址空間,作為燒錄數(shù)據(jù)的一部分。小文檔標(biāo)題紀(jì)錄本文檔名稱、起始地址和長(zhǎng)度;
  ● 索引表格式:
  在整合后的文件中,在正式的文件前面有索引表,方便用戶使用SPR4096中的資源。索引表的開(kāi)頭4個(gè)字節(jié)為"SPRW"特定校驗(yàn)字。然后是整合后文檔存放的起始地址與結(jié)束地址,分別用雙字?jǐn)?shù)據(jù)類型標(biāo)志。接下來(lái)存放的為整合前文件的個(gè)數(shù),用1個(gè)字來(lái)存放。然后依次為整合前文件的長(zhǎng)度,起始地址,結(jié)束地址。具體參考2.4.4索引表。
  ● 在Load文檔前提示用戶保存當(dāng)前的文檔,在Load文檔時(shí)檢查每個(gè)文檔的長(zhǎng)度,若這些文檔長(zhǎng)度之和+索引表的長(zhǎng)度(即整合后的文檔長(zhǎng)度:total_file_length)大于Flash的容量MaxLength(SPR1024/4096:128k/512k Bytes), 給出提示,超過(guò)MaxLength后將不能再Load文檔;
  ● 在Load Bin時(shí)如果文件名字與已有的文檔名字沖突,不能載入;
  ● 在燒錄操作之前需要檢查硬件是否正常連接;(此條不做)
  ● Blank Check后給出空白的信息,檢查過(guò)程中一旦踫到一個(gè)非空數(shù)據(jù),立即結(jié)束檢查,給出不是空白的信息;(空白數(shù)據(jù):0xFF)
  ● Read后給出信息提示用戶是否保存這段數(shù)據(jù)到*.bin文檔中,然后在Status Bar顯示Check Sum;
  ● Program之后給出是否成功的信息,在Status Bar顯示Check Sum;
  ● Verify后給出一致信息,校驗(yàn)過(guò)程中一旦踫到一個(gè)數(shù)據(jù)不一致立即結(jié)束校驗(yàn),給出不一致的信息;
  ● 執(zhí)行燒錄操作功能(Blank Check、Erase、Read、Program、Verify、Auto Operation)時(shí),有進(jìn)度顯示;
  ● 操作地址:
  ● Start Address默認(rèn)為00000H,End Address為total_file_length (整合后的文檔長(zhǎng)度:索引表的長(zhǎng)度+所有文檔的長(zhǎng)度),
  ● End Address刪除某個(gè)小文檔后,如果End Address < total_file_length,自動(dòng)更新為total_file_length,刪除某個(gè)小文檔后,若total_file_length < Start Address,自動(dòng)更新Start Address為00000H,
  ● 設(shè)置時(shí),如果Start Address < 00000H或 Start Address > End Address時(shí)給出提示,此時(shí)不修改,End Addressss < Start Address 或 End Address > total_file_length時(shí)給出提示,此時(shí)不修改;
  ● 文檔中在total_file_length與MaxLength之間數(shù)據(jù)以0xFF填充,Save時(shí)不保存這部分?jǐn)?shù)據(jù);
  ● 關(guān)閉本軟件時(shí)提示用戶保存整合后的文檔,以*.con方式保存。

2.4.4 索引表
  為了便于使用數(shù)據(jù),在燒錄的時(shí)候要對(duì)數(shù)據(jù)文件進(jìn)行索引,這樣在使用的時(shí)候就可以知道數(shù)據(jù)存放在哪些地址,可以對(duì)文件進(jìn)行操作。
  資源索引表格式:
  考慮到存儲(chǔ)語(yǔ)音資源的實(shí)際使用情況,索引表包括4個(gè)字節(jié)的特定碼,整合后文檔的起始地址、結(jié)束地址、整合前文件的總個(gè)數(shù)、整合前每個(gè)文件的起始地址、結(jié)束地址。這些項(xiàng)目依次排列。4個(gè)字節(jié)的特定碼為SPRW(Sunplus Read Write)的ASCII碼。特定碼的作用主要是從芯片讀回的數(shù)據(jù)保存成文件后,在使用ResWriter工具打開(kāi)時(shí)進(jìn)行檢測(cè)。如果文件中存在特定碼說(shuō)明芯片中的數(shù)據(jù)是使用ResWriter工具燒錄的,這樣的文件可以在ResWriter工具中正確顯示,如圖 2.5所示:

圖 2.5 打開(kāi)整合后文件圖
  如果沒(méi)有特定碼,那么芯片中的數(shù)據(jù)就不是通過(guò)ResWriter進(jìn)行燒錄的(SPR1024/SPR4096可以通過(guò)SPCE061A等單片機(jī)進(jìn)行讀寫操作,也可以使用AllWriter工具進(jìn)行讀寫操作),那么數(shù)據(jù)文件在ResWriter工具中顯示是沒(méi)有意義的。整合后文件的起始地址便于引用,結(jié)束地址便于檢查資源是否超出存儲(chǔ)范圍。整合前文件的起始、結(jié)束地址便于直接訪問(wèn)整合前的文件?紤]到文件名實(shí)際用處不大,整合后資源長(zhǎng)度可以通過(guò)結(jié)束地址與起始地址計(jì)算得出,在索引表中沒(méi)有保留。
  索引表格式如下:
     #define  DWORD long int
     #define  WORD unsigned int
     typedef struct     //整合后的文件
     {
      DWORD StartAddress;
      DWORD EndAddress;
     }CONFLILE;
     
     typedef struct     //整合前的小文件
     {
      DWORD length;
      DWORD StartAddress;
      DWORD EndAddress;
     }UNCONFILE;
     
     typedef struct     //索引表
     {
      "SPRW" ;  //特定碼SPRW
      CONFLILE Index1;
      WORD unconfilenumber;  //所有整合前小文件的個(gè)數(shù)
      UNCONFILE Index2[unconfilenumber];
     }INDEX;
  如圖 2.6所示:在地址0x00000-0x00003為4字節(jié)的特定碼,在地址0x00004-0x00007為4字節(jié)的整合后文件的起始地址,在地址0x00008-0x0000B為4字節(jié)的整合后文件的結(jié)束地址,在地址0x0000C-0x0000D為2字節(jié)的整合前文件總數(shù)。然后每4字節(jié)分別為整合前第一個(gè)文件的長(zhǎng)度、起始地址、結(jié)束地址,一直到最后一個(gè)整合前文件的長(zhǎng)度、起始地址、結(jié)束地址。索引表結(jié)束,然后是文件的數(shù)據(jù)。

圖 2.6 索引表圖示
  舉例說(shuō)明:如圖 2.7所示:53、50、52、57為特征碼SPRW的ASCII碼。00 00 00 3E為整合后文件的起始地址,00 00 A2 CF 為整合后文件的結(jié)束地址,00 04 為整合前文件的總個(gè)數(shù),本例中為4個(gè)文件,再接下來(lái)每4個(gè)字節(jié)為一組分別為整合前第一個(gè)文件的長(zhǎng)度、起始地址、結(jié)束地址,整合前第二個(gè)文件的長(zhǎng)度、起始地址、結(jié)束地址……索引表結(jié)束,然后是文件的數(shù)據(jù),如圖藍(lán)色部分為文件數(shù)據(jù)的開(kāi)始。

圖 2.7 舉例說(shuō)明索引表圖

2.5 SPLC501模組簡(jiǎn)介
  由于SPLC501模組是大學(xué)計(jì)劃推出的較早的模組,如果讀者對(duì)這個(gè)模組的使用存在問(wèn)題可以到凌陽(yáng)大學(xué)計(jì)劃網(wǎng)站www.unsp.com.cn下載相關(guān)資料參考。

3 系統(tǒng)總體方案介紹
  系統(tǒng)的結(jié)構(gòu)框圖如圖 3.1所示。

圖 3.1 系統(tǒng)的結(jié)構(gòu)框圖
  在聲音的處理上主要采用凌陽(yáng)科技的語(yǔ)音壓縮格式,將需要播放的聲音壓縮存在SPR模組里面,然后通過(guò)61板將語(yǔ)音資源取出播放出來(lái)。在圖片的處理上,采用SPLC501液晶模組,使用配套的DM Tool工具將需要顯示的圖片實(shí)現(xiàn)提取出圖片資源燒寫到SPCE061A中,然后通過(guò)61板控制SPLC501A播放出來(lái)。

4 系統(tǒng)硬件設(shè)計(jì)
4.1 電源板電路模塊分析

  圖 4.1是電源部分的電路,4.5V直流電壓經(jīng)過(guò)SPY0029后產(chǎn)生3.3V給整個(gè)系統(tǒng)供電。
  SPY0029是凌陽(yáng)公司設(shè)計(jì)的電壓調(diào)整IC,采用CMOS工藝。SPY0029具有靜態(tài)電流低、驅(qū)動(dòng)能力強(qiáng)、線性調(diào)整出色等特點(diǎn)。
  圖 4.1圖中的VDDH3為SPCE061A的I/O電平參考,接SPCE061A的51腳,這種接法使得I/O輸出高電平為3.3V;VDDP為PLL鎖相環(huán)電源,接SPCE061A的7腳;VDD和VDDA分別為數(shù)字電源與模擬電源,分別接SPCE061A的15腳和36腳;AVSS1是模擬地,接SPCE061A的24腳;VSS是數(shù)字地,接SPCE061A的38腳; AVSS2接音頻輸出電路的AVSS2。

圖 4.1電源電路圖

4.2 CPU語(yǔ)音輸出電路
  SPCE061A內(nèi)置2路10位精度的DAC,只需要外接功放電路即可完成語(yǔ)音的播放。
  圖 4.2是音頻輸出電路圖。可以直接聽(tīng)喇叭輸出的聲音。圖中的SPY0030也是凌陽(yáng)公司的產(chǎn)品。它的詳細(xì)說(shuō)明可以參見(jiàn)SPY0030 data sheet。和LM386相比,SPY0030還具有下述優(yōu)勢(shì),比如LM386工作電壓需在4V以上, SPY0030僅需2.4V即可工作(兩顆電池即可工作);LM386輸出功率100mW以下, SPY0030約700mW。其他特性請(qǐng)參考data sheet。

圖 4.2 CPU語(yǔ)音輸出電路

4.3 SPR模組電路
  原理圖如圖 4.3所示:

圖 4.3 SPR模組硬件原理圖
  SPR模組的硬件電路主要分成3大部分,下面分別介紹:
  第一部分:ResWriter工具對(duì)SPR4096/SPR1024進(jìn)行燒寫的下載緩沖電路如圖 4.4所示:

圖 4.4 燒寫SPR4096/SPR1024硬件電路
  此部分電路主要是控制SCK、SDA信號(hào)的作用,通過(guò)74HC244可以控制SDA信號(hào)的高低電平,這樣可以使用ResWriter工具發(fā)出符合燒寫芯片的時(shí)序信號(hào),完成對(duì)芯片的擦除、寫入與校驗(yàn)功能。
  第二部分:SPR4096的工作電路,如圖 4.5所示:

圖 4.5 SPR4096工作電路
  此部分工作電路是為了使SPR4096存儲(chǔ)器工作的外圍電路,通過(guò)SCK、SDA與控制芯片/電路相連。
  第三部分:SPR1024的工作電路,如圖 4.6所示:

圖 4.6 SPR1024工作電路
  此部分工作電路是為了使SPR1024存儲(chǔ)器工作的外圍電路,通過(guò)SCK、SDA與控制芯片/電路相連。
  另外,SPR模組還有跳線、接口電路,如圖 4.7所示:

圖 4.7 SPR模組的接口跳線電路
 
5 系統(tǒng)軟件設(shè)計(jì)
  在軟件設(shè)計(jì)上,由于語(yǔ)音資源存放在外部的存儲(chǔ)器上,只能采用手動(dòng)的方式播放語(yǔ)音。另外,需要對(duì)圖片的顯示,在播放語(yǔ)音的同時(shí)需要刷新圖片,這樣采用在中斷中填充語(yǔ)音隊(duì)列的方法來(lái)實(shí)現(xiàn)。
  下面是主函數(shù)流程圖:

圖 5.1 主函數(shù)流程圖
  在主函數(shù)中首先初始化SIO,這樣可以獲得存儲(chǔ)在SPR4096上的語(yǔ)音資源的起始地址與結(jié)束地址,這樣便于語(yǔ)音控制。
A2000語(yǔ)音播放函數(shù)設(shè)計(jì),由于語(yǔ)音資源存儲(chǔ)在外擴(kuò)存儲(chǔ)器SPR4096上,語(yǔ)音播放采用手動(dòng)播放方式。手動(dòng)語(yǔ)音播放,關(guān)鍵在于語(yǔ)音資源的取得,需要得到語(yǔ)音資源的地址。下面分析一下剛剛燒錄文件的數(shù)據(jù)格式,如圖:

圖 5.2 語(yǔ)音文件的數(shù)據(jù)格式
  在上圖的前4個(gè)字節(jié)為"SPRW"的ASCII碼,主要的目的在于讀取Flash中的文件作為特征碼使用(請(qǐng)參考2.4.4節(jié)索引表部分),在接下來(lái)的4個(gè)字節(jié)為整合后文件的起始地址00 00 00 56(由于SPR4096的最大地址為0x7ffff,所以使用4個(gè)字節(jié)標(biāo)識(shí),即兩個(gè)字的長(zhǎng)度),然后是整合后文件的結(jié)束地址。整合的概念,就是將多個(gè)資源小文件通過(guò)特定的數(shù)據(jù)格式編成一個(gè)索引表加在資源文件的開(kāi)始,然后是資源文件1,資源文件2……ResWriter工具在用戶打開(kāi)文件時(shí)自動(dòng)的完成上述過(guò)程,稱為整合。ResWriter工具是對(duì)整合后的文件進(jìn)行燒錄。在接下來(lái)2個(gè)字節(jié)(00 01)的數(shù)據(jù)表示整合的文件有1個(gè)資源。
  以上是整合后文件的一些信息,再接下來(lái)分別是添加的語(yǔ)音資源的長(zhǎng)度信息,文件起始存儲(chǔ)地址,文件結(jié)束存儲(chǔ)地址。在本例編程中主要關(guān)心的就是語(yǔ)音資源文件起始地址、結(jié)束地址。由圖 5.2可見(jiàn)第一個(gè)文件(未整合的)的起始地址存放在0x0012、0x0013(第13、14個(gè)字節(jié)),在程序中可以依次求得語(yǔ)音資源。參考下面手動(dòng)播放語(yǔ)音的函數(shù)。
   ulCon_AddrHighest = SP_SIOReadAByte(BASE_START_ADDRESS + SndIndex*12); // 第一個(gè)播放文件地址
   ulCon_AddrHighest = ulCon_AddrHighest << 24;
   ulCon_AddrHigh =SP_SIOReadAByte(BASE_START_ADDRESS + SndIndex*12+1);
   ulCon_AddrHigh = ulCon_AddrHigh << 16;
   ulCon_AddrLow = SP_SIOReadAByte(BASE_START_ADDRESS + SndIndex*12+2);
   ulCon_AddrLow = ulCon_AddrLow << 8;
   ulCon_AddrLowest = SP_SIOReadAByte(BASE_START_ADDRESS + SndIndex*12+3);
   ulCon_StartAddr = ulCon_AddrHighest | ulCon_AddrHigh // 開(kāi)始地址
        | ulCon_AddrLow | ulCon_AddrLowest;
  其中BASE_START_ADDRESS定義為0x0012,每個(gè)地址采用4個(gè)字節(jié)存儲(chǔ),在分別取得地址后通過(guò)移位然后或操作得到地址。參數(shù)SndIndex是由調(diào)用函數(shù)傳遞過(guò)來(lái)的,意義在于使用第幾段語(yǔ)音資源。比如使用第一段語(yǔ)音資源,那么傳過(guò)來(lái)0就可以了,與采用自動(dòng)方式播放語(yǔ)音類似。BASE_START_ADDRESS 是整合后文件的信息長(zhǎng)度,在取得整合前文件的信息的時(shí)候要跳過(guò)這一段數(shù)據(jù),即BASE_START_ADDRESS + SndIndex*12為第一段整合前數(shù)據(jù)文件的起始地址的最高字節(jié)(地址采用4個(gè)字節(jié)表示)。
SPCE061A播放語(yǔ)音的原理如圖 5.3所示:

圖 5.3 使用SPCE061A實(shí)現(xiàn)播放語(yǔ)音
手動(dòng)播放語(yǔ)音的實(shí)現(xiàn),如圖 5.4所示:

  圖 5.4 手動(dòng)播放語(yǔ)音
  語(yǔ)音播放的解碼部分放在1KHz的中斷中進(jìn)行,這樣可以在播放語(yǔ)音的時(shí)候不影響圖片的顯示。
  在中斷中的函數(shù)代碼如下:
   void BMP_Play_IRQ_Service(void)
   {
    IRQ1KHz_Couter++;    //Counter自加1,用于計(jì)時(shí),在主函數(shù)中判斷時(shí)間到
    while(SACM_A2000_TestQueue() != 1)
    {
     if(ulCon_StartAddr >= ulCon_EndAddr)
     {
      ulCon_StartAddr = ulStart_Save;
      SACM_A2000_Initial(0);  //放音初始化
      SACM_A2000_InitQueue();
      SACM_A2000_InitDecoder(3);
     }
     uiRet = SP_SIOReadAWord(ulCon_StartAddr);
     SACM_A2000_FillQueue(uiRet);
     ulCon_StartAddr++;
     ulCon_StartAddr++;
    }
    SACM_A2000_Decoder();
    *(unsigned int *)0x7012 = 0x0001;
   }
  如果解碼隊(duì)列為空,那么進(jìn)行填充隊(duì)列操作,否則只進(jìn)行解碼操作,然后請(qǐng)看門狗退出中斷。
  
6 驗(yàn)證方案
  步驟一:使用10Pin排線將SPR模組與61板的正電源、IOB0、IOB1、負(fù)電源對(duì)應(yīng)相連,61板I/O口選擇3.3V。
  步驟二:使用EZ-probe與SPR模組EZ-probe接口相連。
  步驟三:按照下圖設(shè)置SPR模組跳線:

圖 6.1 跳線設(shè)置
  步驟四:?jiǎn)?dòng)ResWriter工具,打開(kāi)語(yǔ)音文件想大聲說(shuō)愛(ài)你.16K(SPR Module配套資料\SPR Module Demo\SLAMDUNK\voice路徑下),點(diǎn)擊自動(dòng)燒寫按鈕。如圖:

圖 6.2 打開(kāi)語(yǔ)音文件

圖 6.3 打開(kāi)語(yǔ)音文件后ResWriter工具視圖

圖 6.4 點(diǎn)擊自動(dòng)燒寫工具按鈕

圖 6.5 自動(dòng)燒錄過(guò)程

圖 6.6 自動(dòng)校驗(yàn)過(guò)程

圖 6.7 完成自動(dòng)燒錄
  注意:如果沒(méi)有正確燒錄,那么主要的原因是電源沒(méi)有接入或者跳線選擇錯(cuò)誤。
  步驟五:按照下圖選擇跳線:

圖 6.8 跳線選擇
  步驟六:將液晶模組、SPR模組與61板按照下圖連接起來(lái),如圖:

圖 6.9 硬件連接圖
  步驟七:使用IDE將工程文件(SPR Module配套資料\SPR Module Demo\SLAMDUNK路徑下)下載到61板上運(yùn)行,現(xiàn)象是同時(shí)播放聲音與圖片(無(wú)需任何操作)。
  注意:如果沒(méi)能聽(tīng)見(jiàn)語(yǔ)音播放,請(qǐng)注意硬件連線喇叭是否接好,跳線是否設(shè)置好。

7 結(jié)語(yǔ)
  通過(guò)上面的應(yīng)用方案可以看到,在需要存儲(chǔ)大量資源包括語(yǔ)音資源可以采用凌陽(yáng)科技有限公司的存儲(chǔ)器來(lái)解決。凌陽(yáng)科技推出的存儲(chǔ)器保存資料安全可靠,配備可視化工具使用方便。在與單片機(jī)相連時(shí)采用并行串行可選的方式傳遞數(shù)據(jù),給用戶帶來(lái)了極大的方便。在方案中看到通過(guò)工具燒錄的資源可以通過(guò)索引表來(lái)使用語(yǔ)音資源,而且可以播放語(yǔ)音資源,進(jìn)行語(yǔ)音的錄放,在不同的壓縮格式中都可以較長(zhǎng)時(shí)間的播放語(yǔ)音。在需要顯示圖片的時(shí)候可以考慮使用凌陽(yáng)科技提供的SPLC501液晶,而且已經(jīng)有了底層驅(qū)動(dòng)程序,用戶只需要直接調(diào)用顯示函數(shù)即可完成顯示。

8 參考文獻(xiàn)
[1]  羅亞非.凌陽(yáng)16位單片機(jī)應(yīng)用基礎(chǔ)[M]. 北京:北京航空航天大學(xué)出版社,2003
[2]  凌陽(yáng)大學(xué)計(jì)劃網(wǎng)站www.unsp.com.cn

 
  • 上一篇: 用MSP430實(shí)現(xiàn)的嵌入式因特網(wǎng)終端設(shè)計(jì)
  • 下一篇: 畢業(yè)設(shè)計(jì)論文-16位單片機(jī)的語(yǔ)音電子門鎖系統(tǒng)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1