關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 一種數(shù)字錄音與回放系統(tǒng)實(shí)現(xiàn)方案

一種數(shù)字錄音與回放系統(tǒng)實(shí)現(xiàn)方案

作者: 時(shí)間:2006-08-23 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:提出了一個(gè)基于數(shù)字信號(hào)處理器(DSP)和閃速存儲(chǔ)器(FLASH)的,在分析FLASH特性及其編程方法的基礎(chǔ)上,設(shè)計(jì)了DSP與FLASH接口的硬件和軟件。
關(guān)鍵詞:閃速存儲(chǔ)器 DSP 回放

閃速存儲(chǔ)器(FLASH)是可快速擦寫的非易失性存儲(chǔ)器,自Intel公司于1988年推出Flash Memory技術(shù)以來(lái)就得到了非常迅速的發(fā)展。FLASH 最大的特點(diǎn)是在不加電的情況下能長(zhǎng)期保持存儲(chǔ)的信息。此外,它還具有不需要存儲(chǔ)電容器、集成度更高、制造成本低于DRAM、使用方便、讀寫靈活、訪問(wèn)速度快、功耗低等特點(diǎn)。我們結(jié)合實(shí)現(xiàn)課題,在一個(gè)以DSP為核心的語(yǔ)音處理系統(tǒng)中,從存儲(chǔ)容量、存儲(chǔ)時(shí)間、回放音質(zhì)等衡量語(yǔ)音處理系統(tǒng)優(yōu)越性的這些重要指標(biāo)出發(fā),選用FLASH作片外存儲(chǔ)器,實(shí)現(xiàn)了語(yǔ)音數(shù)據(jù)的和回放,既保證了系統(tǒng)的高性能,又減少了系統(tǒng)成本。

1 系統(tǒng)組成

實(shí)際系統(tǒng)是一個(gè)以DSP為信心的總線型網(wǎng)絡(luò),每一個(gè)單元以TMS320F206數(shù)字處理芯片作微處理器,實(shí)現(xiàn)語(yǔ)音的傳送、錄音、存儲(chǔ)和播放。框圖組成如圖1所示。

在系統(tǒng)中, 聲卡采集的語(yǔ)音數(shù)據(jù)和從網(wǎng)卡傳送過(guò)來(lái)的數(shù)據(jù)都可以存入FLASH。由于存儲(chǔ)的是數(shù)字信息,數(shù)據(jù)不會(huì)丟失和失真,因此也不會(huì)引進(jìn)任何噪聲。本系統(tǒng)使用的存儲(chǔ)器是兩片4M位的FLASH,錄音時(shí)間長(zhǎng)達(dá)2分多鐘。

2 DSP與FLASH的接口電路設(shè)計(jì)

2.1 芯片簡(jiǎn)介

系統(tǒng)使用的DSP為TMS320C2XX系列,是美國(guó)TI公司推出的16位定點(diǎn)運(yùn)算數(shù)字信號(hào)處理器。它的性價(jià)比極高,目前已成為高檔單片機(jī)的理想替代品,在通信、語(yǔ)音處理、軍事、儀器儀表、圖像處理等領(lǐng)域得到了廣泛的應(yīng)用。系統(tǒng)使用的存儲(chǔ)器是AMD公司生產(chǎn)的FLASH芯片,型號(hào)為Am29F040B。其容量為512K8bit,提供的存儲(chǔ)時(shí)間有55、70、90、120及150ns幾種,因此高速微處理器(如DSP)對(duì)其進(jìn)行操作時(shí)基本上不需要等待時(shí)間。為避免總線競(jìng)爭(zhēng),該器件有獨(dú)立的片選、寫使能與輸出使能控制,器件命令集符合JEDEC單電源供電的Flash標(biāo)準(zhǔn),用標(biāo)準(zhǔn)微處理器寫時(shí)序?qū)?Flash命令寄存器就可以控制其基本操作。Am29F040B具有省電方式,在FLASH沒(méi)有被使用時(shí)進(jìn)入此方式可以大大降低功耗。Am29F040B 還可以分扇區(qū)進(jìn)行操作,默認(rèn)劃分為8個(gè)扇區(qū),每扇區(qū)容量64K字節(jié)。

2.2 接口電路設(shè)計(jì)

接口電路設(shè)計(jì)主要考慮的是存儲(chǔ)器地址空間的分配以及寫入和讀出的時(shí)序要求。在系統(tǒng)中,共需要1M地址空間。我們使用了兩片F(xiàn)LASH,而DSP的地址線只有 16根,最大只能提供64K的尋址空間,所以必須分頁(yè)使用,才能合理分配地址空間。為此,我們將每一片存儲(chǔ)空間分成32頁(yè),每頁(yè)16K字節(jié),片A每頁(yè)地址從#8000h~#0bfffh,片B每頁(yè)地址從#000~#0ffffh。基于上述分析,DSP與FLASH的接口電路如圖2所示。

圖中只現(xiàn)出了DSP與一片F(xiàn)LASH的接口電路,因?yàn)榱硪黄笸‘?,只是通過(guò)不同的譯碼得到不同的片選而已。DSP用D0~D4選擇分頁(yè),A12~A15通過(guò)適當(dāng)?shù)淖g碼來(lái)分配兩片F(xiàn)LASH的尋址空間。

3 FLASH編程方法

通過(guò)把特定的命令或命令序列寫入到FLASH命令寄存器就可對(duì)FLASH實(shí)現(xiàn)各種操作。表1給出了有效命令的定義,如果寫入的地址和數(shù)據(jù)值不正確或者寫入的順序不對(duì),則會(huì)使器件復(fù)位到讀陣列數(shù)據(jù)狀態(tài)。表中除xxx指任意值外,其它值皆為16進(jìn)制數(shù),RA指要讀出的存儲(chǔ)器地址,RD指讀出的數(shù)據(jù),PA指編程寫入存儲(chǔ)器的地址,PD指編程寫入存儲(chǔ)器的數(shù)據(jù)。編程時(shí),地址在WE#或CE#的下降沿鎖定,而數(shù)據(jù)在WE#或CE#的上升沿鎖定,SA指扇區(qū)地址。

表1給出了所有操作命令的定義。在本系統(tǒng)中,DSP對(duì)FLASH的控制主要用到的讀、刷新和編程操作,下面分別予以說(shuō)明。

表1 Am29F040B命令定義表

命令序列周期數(shù)總 線 周 期 序 列
123456
地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)
1RARD          
復(fù)位1xxxF0          
自動(dòng)選擇廠商ID號(hào)4555AA2AA5555590X0001    
器件ID號(hào)4555AA2AA5555590X01A4    
扇區(qū)保護(hù)確認(rèn)4555AA2AA5555590SA
X02
00    
01    
編程4555AA2AA55555A0PAPD    
芯片刷新6555AA2AA5555580555AA2AA5566610
扇區(qū)刷新6555AA2AA 5555580555AA2AA55SA30
刷新懸掛1xxxB0          
刷新繼續(xù)1xxx30          

3.1 讀陣列數(shù)據(jù)

讀操作很簡(jiǎn)單,只需要一個(gè)總線周期,直接把FLASH相應(yīng)單元的數(shù)據(jù)讀出即可。上電后,器件自動(dòng)處于讀陣列數(shù)據(jù)狀態(tài);在完成刷新和編程操作后,器件也處于讀陣列數(shù)據(jù)狀態(tài);給器件寫復(fù)位命令也可以使器件復(fù)位到讀陣列數(shù)據(jù)狀態(tài)。讀操作主要用于回放錄音內(nèi)容。

3.2 字節(jié)編程命令序列

編程命令要復(fù)雜一些,每一個(gè)單元的寫入都需要四個(gè)總線周期。頭兩個(gè)解鎖命令,緊接著是編程建立命令,最后才是要寫入單元的地址和數(shù)據(jù)。圖3是編程操作的基本流程。如何判斷是否已經(jīng)正確寫入呢?器件內(nèi)部提供了一個(gè)嵌入式編程算法,通過(guò)查詢DQ7或DQ6位可以得知編程操作狀態(tài)。嵌入式編程算法完成后,器件自動(dòng)返回讀陣列數(shù)據(jù)狀態(tài),地址不再鎖定。字節(jié)編程命令是進(jìn)行錄音的基礎(chǔ)。這里需要特別指出的是:編程時(shí)不能將存儲(chǔ)單元的任一位從“0”改成“1”,只有刷新操作才可以。因此,在FLASH的某一段存儲(chǔ)區(qū)已經(jīng)錄音后,如果不刷新,則這一段存儲(chǔ)區(qū)不能再進(jìn)行錄音操作。

3.3 芯片刷新命令

芯片刷新操作需要6個(gè)總線周期。頭兩個(gè)依然是解鎖命令,然后是刷新建立命令,接著兩個(gè)附加解鎖寫周期,最后是芯片刷新命令。刷新操作與編程操作不同之處在于:刷新操作對(duì)整個(gè)芯片是一次性完成而編程則需要一個(gè)單元一個(gè)單元地寫入。當(dāng)然,如果不希望芯片全部刷新,可以采用扇區(qū)刷新命令。刷新完成與否也可以通過(guò)查詢DQ7、DQ6或DQ2位來(lái)判斷。圖4給出刷新操作流程。

編程操作和刷新操作都需要進(jìn)行數(shù)據(jù)查詢,統(tǒng)稱為寫操作狀態(tài)查詢,用以判斷寫操作是否已經(jīng)正確完成。Am29F040B提供了DQ2、DQ3、DQ5、DQ6以及DQ7幾個(gè)位用于寫操作狀態(tài)查詢,表2給出了這些位的功能。

表2 寫操作狀態(tài)

操 作DQ7DQ6DQ5DQ3DQ2
標(biāo)準(zhǔn)方式編程DQ7#0、1交替0N/A不變化
刷新00、1交替010、1交替
刷新懸掛方式讀刷新
懸掛扇區(qū)
1不變化0N/A0、1交替
讀非刷新
懸掛扉區(qū)
DataDataDataDataData
刷新懸掛編程DQ7#0、1交替0N/AN/A

根據(jù)具體情況可以查詢不同的位。需要注意的是:使用DQ7和DQ2查詢狀態(tài)信息時(shí)需要一個(gè)有效地址,而如果DQ5位讀出為1則說(shuō)明編程或刷新操作已經(jīng)超出最大時(shí)序限制。在筆者的實(shí)際應(yīng)用中,編程操作查詢DQ7位。當(dāng)讀出DQ7位與寫入的DQ7位一致時(shí),則說(shuō)明寫入成功,可以繼續(xù)寫入下一單元;刷新操作時(shí),則查詢?nèi)我粏卧ㄒ话闳∽詈笠粋€(gè)單元)是否已經(jīng)是0FFh,如果是則刷新正確完成。

解決了DSP與FLASH的硬件接口電路和DSP對(duì)FLASH的軟件編程方法后,通過(guò)適當(dāng)?shù)某绦蚩刂?,就可以?shí)現(xiàn)系統(tǒng)的數(shù)字錄音與回放功能。既可以錄下 DSP網(wǎng)絡(luò)中接收到的語(yǔ)音數(shù)據(jù),也可以通過(guò)聲卡采樣錄下說(shuō)話人的話音。該系統(tǒng)應(yīng)用到語(yǔ)音教室,能順利地實(shí)現(xiàn)學(xué)生機(jī)的跟讀和復(fù)讀,而且錄音內(nèi)容只要不刷新,即使掉電也不會(huì)丟失。在其它電子產(chǎn)品中,這種方法也可以得到有效的應(yīng)用。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉