1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      使用SPCE061A擴展K9F1208實現數碼錄音及播放

      更新時間: 2007-02-03 12:12:40來源: 粵嵌教育瀏覽量:1065

      一、 系統結構

          系統結構圖如下:

          本系統包括按鍵部分、音頻錄入部分、音頻輸出部分和K9F1208存儲擴展等四部分。

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

          音頻錄入部分:主要是由MIC、自動增益電路、AD轉換電路構成,通過MIC采樣語音數據,并經內置自動增益電路處理、AD轉換后,編碼并存儲到K9F1208中。

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

          K9F1208存儲擴展部分:通過SPCE061A的IO口控制,將錄音編碼后的數據存儲到K9F1208中。

          系統實現的功能:通過按鍵1,開始錄音,按鍵2,結束錄音或者結束放音,按鍵3,開始放音。

       

      二、 K9F1208介紹

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

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

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



      圖2所示為K9F1208的寫時序流程。

          由圖2可看出,進行寫操作時先要寫入命令字80H,通知K9F1208要進行寫操作,然后順序寫入目的地址和待寫入的數據。應該注意的是,地址只需寫入一次,便可以連續寫入多個字節數據。地址指針的調整是由K9F1208內部邏輯控制的,不用外部干預。寫入操作是以頁為單位(1~528字節)進行的,即每次連續寫入能超過528個字節。這是由于K9F1208的工作方式決定的:寫入的數據先保存至Flash內部的頁寄存器(528字節)中,然后再寫入存儲單元。數據寫完之后還要給K9F1208發出1個寫操作指令10H,通知其將頁寄存器中的數據寫入存儲單元,隨后就應該對狀態引腳進行查詢。如果該引腳為低,表明此次寫操作結束。的步驟是數據校驗,如果采用了ECC校驗模式,則此步驟可以省略。

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

      三、 SPCE061A簡介

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

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

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

      四、硬件系統設計


          K9F1208的硬件圖如上圖所示,它與SPCE061A單片機接口的方法為:K9F1208的數據總線IO0~7與SPCE061A的IOA0~7相連,用單片機的IOB0作為讀允許信號(RE),IOB1作為寫允許信號(WE),IOB2作為片選信號(CS),IOB3作為地址鎖存允許信號(ALE),IOB4作為命令鎖存允許信號(CLE)。因為不需要寫保護,本系統把寫保護引腳(WP)接到了高電平。RDY/B信號線不用,本例是懸空處理,K9F1208的狀態通過Read Status操作來實現。

      五、軟件設計

          本系統軟件設計流程如圖4所示。

          本軟件系統設計簡單。主要是因為凌陽的十六位單片機開發環境使用方便,并支持C語言與匯編語言的互相調用,且提供豐富的凌陽語音函數庫,只要我們了解這些函數的使用方法,我們就可以很容易的實現語音的錄放。
          本系統底層驅動部分包括K9F1208的讀寫、擦除使用的是匯編語言編寫的。上層部分包括語音的錄放是由C語言完成的。提供獨立的K9F1208的讀、寫、擦除代碼模塊。需要源代碼的請到凌陽科技大學計劃網站( http://www.unsp.com.cn )下載。

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

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

          SACM-DVR相關的API函數如下所示:
      int SACM_DVR_Initial(int Init_Index) //初始化
      void SACM_DVR_ServiceLoop(void) //獲取資料,填入譯碼隊列
      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模塊的狀態
      void SACM_DVR _InitDecode(void) //開始譯碼
      void SACM_DVR _Decode(void) //獲取語音資料并譯碼,中斷播放
      SACM_DVR_StopDecoder(); //停止解碼
      unsigned int SACM_DVR _ TestQueue(void) //獲取語音隊列狀態
      int SACM_DVR _Fetchqueue(void) //獲取錄音編碼數據
      void SACM_DVR_FillQueue(unsigned int encoded-data) //填充資料到語音隊列,等待播放
      int GetResource(long Address) ——(Manual)
          中斷服務函數:
      Call F_FIQ_Service_ SACM_DVR //語音播放
      Call F_IRQ1_Service_ SACM_DVR //語音錄制

      六、結束語

          凌陽公司的SPCE061A的結構特點及其相關的一些開發平臺為我們實現語音的錄入和播放提供了極其方便的條件。本系統只是實現SPCE061A的一個基本應用,設計者只要對該系統的電路、程序稍加改動,就可以實現語音復讀機、跟讀機、留言機、以及電話錄音儀等功能。




      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日本久久综合久久鬼色 | 理论片第一页一区二区 | 永久免费人成在线观看 | 日本在线观看一区二区三区 | 日本一区二区人妖 | 思思热免费在线精品视频 |