新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于K9F6408U0A和SPDS202A的數碼錄音系統設計

        基于K9F6408U0A和SPDS202A的數碼錄音系統設計

        作者: 時間:2017-06-08 來源:網絡 收藏

        1 的性能簡介

        的最大優點在于其命令、數據和地址均可通過8條I/O口線與主控制器進行通信。這樣就大大簡化了系統的連線,增強了系統的穩定性。除8條I/O口線外, 還包括以下幾條控制線,從而可方便地實現系統主控制器對 K9F6408U0A 的控制。它們分別為:

        本文引用地址:http://www.104case.com/article/201706/351233.htm

        CLE:命令鎖存使能端,高電平有效。在WE信號的上升沿,命令信號可通過I/O口鎖入命令寄存器。

        ALE:地址鎖存使能端,高電平有效。在WE信號的上升沿,地址信號可通過I/O口鎖入地址寄存器。

        CE:片選線,低電平有效。在頁編程或塊擦除操作期間或器件處于忙狀態時,CE高電平將被忽略。

        WE:寫使能口,命令、地址和數據在WE信號的上升沿被鎖定。

        RE:讀使能口,在該口的下降沿將數據送到I/O口線上,并使內部列地址寄存器增1。

        WP:寫保護口,低電平有效。當其為低時,編程和擦除操作禁止。

        R/B:操作狀態指示信號。為低時,表示正在編程、擦除或讀操作,操作結束后變高。

        2 簡介

        是臺灣SUNPLUS公司生產的性價比很高的語音芯片,它可以非常方便地與主機接口,主機通過發命令碼來控制語音芯片的錄音、放音等功能。它具有以下特點:

        ●為單片音頻/語音編碼/*芯片,采用SACM-S480或SACM-S3200壓縮和解壓算法。具有8kHz采樣率,其數據低碼率為4.8kbps或32kbps;

        ●具有數字音量控制功能;

        ●具有FLASH管理功能,可在內部自動管理FLASH數據,其標準FLASH接口最多可以連接4片FLASH,共64Mbit。

        ●利用UART接口可以方便地與PC機及其它 RS232 器件接口,并可容易地上傳或下載數據;

        ●內嵌鎖相環電路;

        ●內嵌高品質10位8kHz ADC和DAC;

        ●功耗低,采用2.8V~3.6V工作電壓。

        由于具有以上特點,因此只需增加極少的外圍電路就可構成大容量的語音錄放系統。

        3 系統的構成

        以SPDS202A為核心,以華邦公司的 W78E58 為主控制器的系統結構圖如圖1所示, W78E58 與 MCS-51 系列單片機兼容,其內置的32kflash EEPROM可作為程序存儲器,而內置的256字節SRAM很適合 K9F6408U0A 的磁編程操作。

        圖2所示為 W78E58 和SPDS202A硬件接口電路。圖中,TADCE為片選信號線,可在其上升沿鎖存命令/數據。TADSEL1和TADSEL0是命令選擇信號線,其功能如表1所列。


        表1 命令選擇信號線的功能


        TADD7~TADD0為8位數據線。它在工作時,主控制器的SPDS202A發送三個字節的數據,其中,第一個字節總是0FFh,第二個字節為命令碼低字節,第三個字節命令碼高字節;然后再由主控制器接收從SPDS202A返回的兩個字節的數據。二者之間的通信程序如下(用C51編寫):

        Void Mcu_202_Comm(void) /*MUC和SPDS202A通信程序*/

        {via=0xFF; /*第一字節送0FFh*/

        SendOneData( ); /*調用發送一字節數據子程序*/

        Via=CMDL; /*第二字節送命令碼低字節*/

        SendOneData( );

        Via_CMDH; /*第三字節送命令碼高字節*/

        SendOneData( );

        ECHOL=ReadOneData( ); /*讀返回數據*/

        ECHOH=ReadOneData( );

        }

        下面以錄音功能的實現程序為例,可以很清楚地說明系統是如何工作的。

        Void Record(void)

        {CMDL=0x00; /*發送錄音命令碼*/

        CMDH=0x10;

        Mcu_202_Comm( );

        If(Err=1) /*如果發生錯誤,則返回*/

        {Err=0;

        return;

        }

        }

        可以看出,系統是通過主控制器向SPDS202A發送一系列控制命令碼來實現其功能的。

        4 復制功能的實現

        為了能夠保存和備份所錄信息,應當考慮實現一種拷貝功能,即將一片 K9F6408U0A 上的信息完全復制到另一片上。實現這一功能的硬件接口電路如圖3所示。圖中,兩片 K9F6408U0A 除片選線分開外,其余信號線均復用。采用如下程序可實現復制功能:

        void Copy(void)

        {FCEB2=1;

        FCEB1=0; /*選中第一片FLASH*/

        For(RowAdd2=0;RowAdd264;RowAdd2+ +)

        {for(RowAdd1=0;RowAdd1256;RowAdd1+ +)

        {BlockErase ( );} /*調用塊擦除子函數,將第一片FLASH內容擦除*/

        }

        for(F1RowAdd2=0,F2RowAdd2=0;(F1RowAdd264)

        (F2RowAdd264);F1RowAdd2+ +,

        F2RowAdd2+ +)

        For(F1RowAdd1=0,F2RowAdd1=0;

        (F1RowAdd1256) (F2RowAdd2256);

        F1RowAdd1+ +,F2RowAdd1+ +)

        For(F1ColAdd=0,F2ColAdd=0;(F1ColAdd256) (F2ColAdd256);F1ColAdd=F1COAdd+128;F2ColAdd=F2ColAdd+128)

        {CE1=1;

        CE2=0;

        SetPointer=0x00;

        F1RdData( ); /*調用從第一片FLASH讀數據子函數*/

        CE2=1;

        CE1=0;

        SendData( );/*調用向第二片FLASH頁寄存器送數據子函數*/

        CE1=1;

        CE2=0;

        SetPointer=0x01; /*設置頁寄存器指針指向頁寄存器后半部分*/

        F1RdData( );

        CE1=1;

        CE2=0;

        SendData( );

        FwrData( ); /*執行頁編程命令,將數據寫入第二片FLASH*/

        }

        }

        }

        }

        5 結束語

        系統可在一片64Mbit FLASH上記錄長達3.7小時的語音信息。同時,為了能夠保存所記錄的信息,還可利用本文介紹的拷貝方法實現兩片FLASH之間的拷貝。該系統可廣泛應用于需要長時間語音記錄的場合。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 绩溪县| 武安市| 于都县| 基隆市| 红桥区| 资中县| 哈巴河县| 姚安县| 晋江市| 威信县| 平谷区| 烟台市| 陆川县| 福海县| 四子王旗| 荣成市| 民县| 乌恰县| 张掖市| 额尔古纳市| 永福县| 横山县| 乌鲁木齐县| 宁化县| 平顶山市| 杨浦区| 克山县| 巴马| 八宿县| 鱼台县| 嫩江县| 博野县| 荔波县| 乐山市| 抚松县| 尖扎县| 林甸县| 苍梧县| 雷山县| 辽宁省| 柘城县|