當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]SPCE061A是凌陽公司設(shè)計(jì)的一種新型的十六位單片機(jī),該款單片機(jī)資源豐富,具有極高的性價(jià)比。

   摘要SPCE061A是凌陽公司設(shè)計(jì)的一種新型的十六位單片機(jī),該款單片機(jī)資源豐富,具有極高的性價(jià)比。該單片機(jī)內(nèi)置有2路DA轉(zhuǎn)換,8路AD轉(zhuǎn)換及在線仿真等豐富的功能,這些都為我們實(shí)現(xiàn)數(shù)碼錄音和播放提供良好的方便條件, K9F1208是三星公司生產(chǎn)的512M位的FLASH存儲(chǔ)芯片,利用它存儲(chǔ)凌陽格式的語音資源,可以長達(dá)32000秒語音錄放。該系統(tǒng)可以廣泛應(yīng)用于需求的錄音較長的場合。如錄音筆、自錄語音提示等應(yīng)用方案。本系統(tǒng)提供K9F1208相關(guān)的讀寫模塊。

    關(guān)鍵詞:SPCE061A  K9F1208UOM 數(shù)碼錄音

    一、 系統(tǒng)結(jié)構(gòu)

    系統(tǒng)結(jié)構(gòu)圖如下:

    本系統(tǒng)包括按鍵部分、音頻錄入部分、音頻輸出部分和K9F1208存儲(chǔ)擴(kuò)展等四部分。

    按鍵部分:按鍵1(IOA8)是錄音鍵,按鍵2(IOA9)是停止鍵,按鍵3(IOA10)是播放鍵。

    音頻錄入部分:主要是由MIC、自動(dòng)增益電路、AD轉(zhuǎn)換電路構(gòu)成,通過MIC采樣語音數(shù)據(jù),并經(jīng)內(nèi)置自動(dòng)增益電路處理、AD轉(zhuǎn)換后,編碼并存儲(chǔ)到K9F1208中。

    音頻輸出部分:主要是將SPCE061A兩路音頻輸出端通過SPY0030放大,經(jīng)喇叭播放。

    K9F1208存儲(chǔ)擴(kuò)展部分:通過SPCE061A的IO口控制,將錄音編碼后的數(shù)據(jù)存儲(chǔ)到K9F1208中。

    系統(tǒng)實(shí)現(xiàn)的功能:通過按鍵1,開始錄音,按鍵2,結(jié)束錄音或者結(jié)束放音,按鍵3,開始放音。

    二、 K9F1208介紹

    K9F1208是Samsung公司生產(chǎn)的采用NAND技術(shù)的大容量、高可靠Flash存儲(chǔ)器。該器件存儲(chǔ)容量為64M×8位,除此之外還有2048K×8位的空閑存儲(chǔ)區(qū)。該器件采用TSSOP48封裝,工作電壓2.7~3.6V。

    K9F1208對(duì)528字節(jié)一頁的寫操作所需時(shí)間典型值是200μs,而對(duì)16K字節(jié)一塊的擦除操作典型僅需2ms。8位I/O端口采用地址、數(shù)據(jù)和命令復(fù)用的方法。這樣既可減少引腳數(shù),還可使接口電路簡潔。

1概要地說明了K9F1208各個(gè)引腳的功能。

1  K9F1208 引腳定義

  

     

I/O0I/O7

數(shù)據(jù)輸入輸出端,芯片未選中為高阻態(tài)

CLE

命令鎖存使能

ALE

地址鎖存使能

CE

芯片選擇控制

RE

數(shù)據(jù)輸出控制,有效時(shí)數(shù)據(jù)送到I/O總線上

WE

I/O口控制,命令地址數(shù)據(jù)在上升沿鎖存

WP

寫保護(hù)

R/B

指示器件的狀態(tài),0為忙,1為閑。開漏輸出

Vcc

電源端

Vss

①命令鎖存使能(CLE),使輸入的命令發(fā)送到命令寄存器。當(dāng)變?yōu)楦唠娖綍r(shí),在WE上升沿命令通過I/O口鎖存到命令寄存器。
②地址鎖存使能(ALE),控制地址輸入到片內(nèi)的地址寄存器中,地址是在WE的上升沿被鎖存的。
③片選使能(CE),用于器件的選擇控制。在讀操作、CE變?yōu)楦唠娖綍r(shí),器件返回到備用狀態(tài);然而,當(dāng)器件在寫操作或擦除操作過程中保持忙狀態(tài)時(shí),CE的變高將被忽略,不會(huì)返回到備用狀態(tài)。
④寫使能(WE),用于控制把命令、地址和數(shù)據(jù)在它的上升沿寫入到I/O端口;而在讀操作時(shí)必須保持高電平。
⑤讀使能(RE),控制把數(shù)據(jù)放到I/O總線上,在它的下降沿tREA時(shí)間后數(shù)據(jù)有效;同時(shí)使用內(nèi)部的列地址自動(dòng)加1。
⑥I/O端口,用于命令、地址和數(shù)據(jù)的輸入及讀操作時(shí)的數(shù)據(jù)輸出。當(dāng)芯片未選中時(shí),I/O口為高阻態(tài)。
⑦寫保護(hù)(WP),禁止寫操作和擦除操作。當(dāng)它有效時(shí),內(nèi)部的高壓生成器將會(huì)復(fù)位。
⑧準(zhǔn)備/忙(R/B),反映當(dāng)前器件的狀態(tài)。低電平時(shí),表示寫操作或擦除操作以及隨機(jī)讀正進(jìn)行中;當(dāng)它變?yōu)楦唠娖綍r(shí),表示這些操作已經(jīng)完成。它采用了開漏輸出結(jié)構(gòu),在芯片未選中時(shí)不會(huì)保持高阻態(tài)。

圖2所示為K9F1208的寫時(shí)序流程。

由圖2可看出,進(jìn)行寫操作時(shí)先要寫入命令字80H,通知K9F1208要進(jìn)行寫操作,然后順序?qū)懭肽康牡刂泛痛龑懭氲臄?shù)據(jù)。應(yīng)該注意的是,地址只需寫入一次,便可以連續(xù)寫入多個(gè)字節(jié)數(shù)據(jù)。地址指針的調(diào)整是由K9F1208內(nèi)部邏輯控制的,不用外部干預(yù)。寫入操作是以頁為單位(1~528字節(jié))進(jìn)行的,即每次連續(xù)寫入能超過528個(gè)字節(jié)。這是由于K9F1208的工作方式?jīng)Q定的:寫入的數(shù)據(jù)先保存至Flash內(nèi)部的頁寄存器(528字節(jié))中,然后再寫入存儲(chǔ)單元。數(shù)據(jù)寫完之后還要給K9F1208發(fā)出1個(gè)寫操作指令10H,通知其將頁寄存器中的數(shù)據(jù)寫入存儲(chǔ)單元,隨后就應(yīng)該對(duì)狀態(tài)引腳進(jìn)行查詢。如果該引腳為低,表明此次寫操作結(jié)束。最后的步驟是數(shù)據(jù)校驗(yàn),如果采用了ECC校驗(yàn)?zāi)J剑瑒t此步驟可以省略。

其它操作如讀操作、擦除操作等過程均與此類似,可參考相關(guān)的器件說明文檔。限于篇幅,這里不再多述。

    三、 SPCE061A簡介

    SPCE061A是臺(tái)灣凌陽公司生產(chǎn)的性價(jià)比很高的一款十六位單片機(jī),使用它可以非常方便的實(shí)現(xiàn)語音的錄放系統(tǒng),該芯片擁有8路10位精度的AD,其中1路AD為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動(dòng)增益電路。這為實(shí)現(xiàn)語音錄入提供了方便的硬件條件。2路10位精度的DA,只需要外接功放(SPY0030)即可完成語音的播放。另外,凌陽十六位單片機(jī)具有易學(xué)易用的效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn)C語言,可以實(shí)現(xiàn)C語言與凌陽匯編語言的互相調(diào)用,并且,提供了語音錄放的庫函數(shù),只要了解庫函數(shù)的使用,就會(huì)很容易完成語音錄放,這些都為軟件開發(fā)提供了方便的條件。

    凌陽的音頻格式有許多種,比較常用的有如下幾種

模塊名稱

語音壓縮編碼率類型

資料采樣率

SACM_A2000

16Kbit/s20 Kbit/s,24 Kbit/s

16KHz

SACM_S480/S720

4.8 Kbit/s7.2 Kbit/s

16KHz

SACM_S240

2.4 Kbit/s

24KHz

SACM_MS01

音樂合成(16Kbits/s,20 Kbits/s24 Kbits/s

16KHz

SACM_DVRA2000

16 Kbit/s的資料率,8 K的采樣率,用于ADC信道錄音功能

16KHz


凌陽不同音頻格式壓縮比:
SACM-A2000:壓縮比為8:1,8:1.25,8:1.5
SACM-S480: 壓縮比為80:3,80:4.5
SACM-S240: 壓縮比為80:1.5

    壓縮比越大,存儲(chǔ)空間占用越小,更加節(jié)約資源。例如本系統(tǒng)采用的是SACM_A2000格式中的16Kbit/s壓縮編碼率,則就可以計(jì)算出512Mbit的存儲(chǔ)器可以存儲(chǔ)512M/16K = 32000秒= 8小時(shí)53分鐘多。

四、硬件系統(tǒng)設(shè)計(jì)

K9F1208的硬件圖如上圖所示,它與SPCE061A單片機(jī)接口的方法為:K9F1208的數(shù)據(jù)總線IO0~7與SPCE061A的IOA0~7相連,用單片機(jī)的IOB0作為讀允許信號(hào)(RE),IOB1作為寫允許信號(hào)(WE),IOB2作為片選信號(hào)(CS),IOB3作為地址鎖存允許信號(hào)(ALE),IOB4作為命令鎖存允許信號(hào)(CLE)。因?yàn)椴恍枰獙懕Wo(hù),本系統(tǒng)把寫保護(hù)引腳(WP)接到了高電平。RDY/B信號(hào)線不用,本例是懸空處理,K9F1208的狀態(tài)通過Read Status操作來實(shí)現(xiàn)。

四、軟件設(shè)計(jì)

本系統(tǒng)軟件設(shè)計(jì)流程如圖4所示。

本軟件系統(tǒng)設(shè)計(jì)簡單。主要是因?yàn)榱桕柕氖粏纹瑱C(jī)開發(fā)環(huán)境使用方便,并支持C語言與匯編語言的互相調(diào)用,且提供豐富的凌陽語音函數(shù)庫,只要我們了解這些函數(shù)的使用方法,我們就可以很容易的實(shí)現(xiàn)語音的錄放。
本系統(tǒng)底層驅(qū)動(dòng)部分包括K9F1208的讀寫、擦除使用的是匯編語言編寫的。上層部分包括語音的錄放是由C語言完成的。提供獨(dú)立的K9F1208的讀、寫、擦除代碼模塊。需要源代碼的請(qǐng)到凌陽科技大學(xué)計(jì)劃網(wǎng)站( http://www.unsp.com.cn )下載。

在使用過程中,建議遵循以下規(guī)則:

1、初始化過程
使用函數(shù)InitSamsungFlash() 初始化K9F1208。   
2、寫過程
先用函數(shù)InitWriteSamsungFlash()初始化寫操作,然后使用函數(shù) FillSamsungFlash(Data)往K9F1208寫入數(shù)據(jù),最后用函數(shù)StopWriteSamsungFlash()結(jié)束寫數(shù)過程。
3、讀過程
先用函數(shù)InitReadSamsungFlash()初始化讀操作,然后使用函數(shù)ExtractSamsungFlash()從K9F1208讀出數(shù)據(jù),最后用函數(shù)StopReadSamsungFlash()結(jié)束讀數(shù)過程。
4、注意每次讀/寫操作都要調(diào)用初始化和結(jié)束函數(shù) 
5、為了避免錯(cuò)誤,請(qǐng)不要交迭使用讀/寫操作
6、當(dāng)program/erase錯(cuò)誤發(fā)生的時(shí)候, 用戶必須根據(jù)自己的文件系統(tǒng)自行處理。        請(qǐng)參考_SP_FillSamsungFlash和_SamsungEraseBlock。

SACM-DVR相關(guān)的API函數(shù)如下所示:
int SACM_DVR_Initial(int Init_Index)     //初始化
void SACM_DVR_ServiceLoop(void)     //獲取資料,填入譯碼隊(duì)列
void SACM_DVR_Encode(void)      //錄音
SACM_DVR_StopEncoder();      //停止編碼
SACM_DVR_InitEncoder(RceMonitorOn)               //初始化解碼器
void SACM_DVR_Stop(void)      //停止錄音
void SACM_DVR_Play(void)      //開始播放
unsigned int SACM_DVR _Status(void)     //獲取SACM_DVR模塊的狀態(tài)
void SACM_DVR _InitDecode(void)     //開始譯碼
void SACM_DVR _Decode(void)      //獲取語音資料并譯碼,中斷播放
SACM_DVR_StopDecoder();      //停止解碼
unsigned int SACM_DVR _ TestQueue(void)    //獲取語音隊(duì)列狀態(tài)
int SACM_DVR _Fetchqueue(void)     //獲取錄音編碼數(shù)據(jù)
void SACM_DVR_FillQueue(unsigned int encoded-data)   //填充資料到語音隊(duì)列,等待播放
int  GetResource(long Address) ——(Manual)        
中斷服務(wù)函數(shù):
Call F_FIQ_Service_ SACM_DVR      //語音播放
Call F_IRQ1_Service_ SACM_DVR      //語音錄制

五、結(jié)束語

凌陽公司的SPCE061A的結(jié)構(gòu)特點(diǎn)及其相關(guān)的一些開發(fā)平臺(tái)為我們實(shí)現(xiàn)語音的錄入和播放提供了極其方便的條件。本系統(tǒng)只是實(shí)現(xiàn)SPCE061A的一個(gè)基本應(yīng)用,設(shè)計(jì)者只要對(duì)該系統(tǒng)的電路、程序稍加改動(dòng),就可以實(shí)現(xiàn)語音復(fù)讀機(jī)、跟讀機(jī)、留言機(jī)、以及電話錄音儀等功能。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉