《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于SPI實現dsPlC與ISD語音芯片的通信設計
基于SPI實現dsPlC與ISD語音芯片的通信設計
摘要: 在很多應用場合中,需要用到語音錄放功能,如復讀機、電話自動應答裝置等。本文介紹一種簡單實用的dsPIc數字信號控制器,用來完成語音錄放功能。由于dsPIC強大的數字信號處理功能,可以提供后續的復雜處理等,具有良好的易擴展性。
Abstract:
Key words :

 

概述: 在很多應用場合中,需要用到語音錄放功能,如復讀機、電話自動應答裝置等。本文介紹一種簡單實用的dsPIc數字信號控制器,用來完成語音錄放功能。由于dsPIC強大的數字信號處理功能,可以提供后續的復雜處理等,具有良好的易擴展性。

 介紹dsPIc數字信號控制器以廈ISD4002語音芯片的功能特點;特別介紹dsPIC的SPl庫函數的功能及使用,并給出一種簡單的語音錄放電路。具有低成本、易使用等特點,有較高的實用價值。

1 dsPlC系列的簡單介紹
   
dsPIC系列是Microchip公司推出的新型16位高性能數字信號控制器。它結合了單片機的控制優點及數字信號處理器(DSP)的高速運算特性,為嵌入式系統提供了單一芯片解決方案。它繼承了PlC單片機系列的哈佛總線結構和精簡指令集(RISC)技術,以及尋址方式簡單、運行速度快、功耗低、驅動能力強等優點,同時集成了主板級的DSP功能,能夠提供強大的數字信號處理能力;此外,還提供了如UART、CAN、SPI等豐富的外圍接口,可以方便地與其他設備進行通信互聯。本文介紹使用dsPIC數字信號控制器的SPI接口與ISD語音芯片進行通信控制,使用的芯片型號為dsPIc30F6014。

2 ISD系列語音錄放芯片
    ISD系列語音芯片是美國ISD公司推出的產品。該系列芯片采用多電平直接模擬存儲(Chip Corder)專利技術,聲音不需要A/D轉換和壓縮,每個采樣直接存儲在片內的閃爍存儲器中,避免了A/D轉換的誤差;能夠真實、自然地還原語音、音樂及效果聲;避免了一般固體錄音電路量化和壓縮造成的量化噪聲和金屬聲。ISD4000系列采用CM0s技術,內含晶體振蕩器、防混疊濾波器、平滑濾波器、自動靜噪、音頻功率放大器及高密度多電平閃爍存儲陣列等,只需要很少的外圍器件即可構成一個完整的語音錄放系統。它的操作命令通過串行通信接口(SPI)或Microwire送入;采樣頻率可為4.O Hz、5.3 Hz、6.4 Hz、8.O Hz,頻率越低,錄放時間越長,但音質會有所下降;片內信息存于閃爍存儲器中,可在斷電情況下保存100年(典型值),反復錄音10萬次;器件工作電壓3 v,工作電流25~30 mA,音質好,適用于移動電話及其他便攜式電子產品。本設計使用的芯片型號為ISD4002,單片錄放時間為120 s。

3 SPI接口介紹
    SPI是由美國摩托羅拉公司推出的一種同步串行傳輸規范,常作為單片機外設芯片串行擴展接口。SPI有4個引腳:SS(從器件選擇線)、SDO(串行數據輸出線)、SDI(串行數據輸入線)和SCK(同步串行時鐘線)。SPI可以用全雙工通信方式同時發送和接收8(16)位數據,過程如下:主機啟動發送過程,送出時鐘脈沖信號,主移位寄存器的數據通過SDO移入到從移位寄存器,同時從移位寄存器中的數據通過SDI移人到主移位寄存器中。8(16)個時鐘脈沖過后,時鐘停頓,主移位寄存器中的8(16)位數據全部移人到從移位寄存器中,隨即又被自動裝入從接收緩沖器中,從機接收緩沖器滿標志位(BF)和中斷標志位(SSPIF)置“1”。同理,從移位寄存器中的8位數據全部移入到主寄存器中,隨即又被自動裝入到主接收緩沖器中.主接收緩沖器滿標志位(BF)和中斷標志位(SSPIF)置“1”。主CPU檢測到主接收緩沖器的滿標志位或者中斷標志位置1后,就可以讀取接收緩沖器中的數據。同樣,從CPU檢測到從接收緩沖器滿標志位或中斷標志位置1后,就可以讀取接收緩沖器中的數據,這樣就完成了一次相互通信過程。這里設置dsPIC30F6014為主控制器,ISD4002為從器件,通過SPI口完成通信控制的過程。

4 dsPIC的SPI函數庫
    dsPIC30F6014提供了2個SPI接口模塊,每個接口模塊包括三個特殊功能寄存器和四個引腳。SPIxBUF是數據緩沖寄存器。需要注意的是,接收緩沖SPIxRBF和發送緩沖SPIxTBF共享同一個地址,即它們都是地址映射到SPIxBUF的。也就是說,當對接收或發送緩沖寄存器操作時,都只能對SPIxBUF進行操作,而不能直接對SPIxRBF或SPIxTBF進行操作。SPIxCON是控制寄存器,用來對sPI模塊的操作模式等進行配置;SPIxSTAT是狀態寄存器,用來標示SPI模塊所處的狀態。其模塊框圖如圖1所示。

      通過對控制寄存器的配置,可以將SPI模塊設置為8位或16位模式、主模式或從模式、幀同步等多種操作模式,還可以對時鐘邊沿、時鐘分頻倍數等進行配置。這里使用了以dsPIC為主,ISD為從的主從模式。Microchip提供的外圍接口庫可以方便地完成這些配置工作。
       dsPIC Language Tools Libraries是MictoChip公司提供給開發者的一套工具庫,其中主要含3個子庫.DSP庫,提供常用的DSP函數;外圍接口庫,提供對dsPIC系列所有外圍接口的驅動函數,包括SPI接口;標準C及數學函數庫,可在Microchip的官方網站下載(www.microchip. com)。我們使用其中的外圍接口庫中的SPI庫函數即可。SPI庫中主要包括以下幾個函數:
    ①configIntSPIx SPI中斷配置函數。該函數可以對sPI接口的中斷使能位以及中斷優先級進行配置,返回值為空。
    ②CloseSPlx關閉SPI接口。
    ③DataRdySPlx SPl接口數據就緒。該函數用來判斷SPI接收緩沖區中是否有數據等待讀出。若返回值為1,表示緩沖區中數據已經就緒,等待讀出;若返回值為0,則標示緩沖區為空。
    ④ReadSPIx讀SPI接口緩沖區。
    ⑤WriteSPIx向SPI接口發送緩沖區寫數據。
    ⑥OpenSPIx打開SPI接口。該函數包含2個參數:configl和config2。configl中包含對SPI接口操作模式的配置信息,將寫入控制寄存器;config2中包含SPI的狀態信息,將寫入狀態寄存器。該函數在打開SPI接口的同時完成對其的配置。
    ⑦puasSPIx函數將一個字符串數據寫入到發送緩沖區中。
    ⑧getsSPIx函數將從接收緩沖區讀人指定長度的字符串數據,并轉存到指定的空間。

      除了這8個函數以外,該庫還提供了相應的宏指令完成同樣的功能,可以在程序中方便地使用。

5 lSD4002
    ISD4002工作于SPI串行接口。SPI協議是一個同步串行數據傳輸協議,協議假定微控制器的SPI移位寄存器在SCLK的下降沿動作。對ISD4002而言,在時鐘上升沿鎖存MOSI引腳數據.存下降沿將數據送至MISO引腳.協議具體內容如下:
    ①所有串行數據傳輸開始于SS下降沿;
    ②SS在傳輸期間必須保持為低電平,在兩條指令之間保持為高電平;
    ③數據在時鐘上升沿移入,在下降沿移出;
    ④SS變低,輸入指令和地址之后,ISD才會開始錄放動作;
    ⑤指令格式是10位地址碼加6位控制碼;
    ⑥ISD的任何操作(含快進)如果遇到EOM或OVF則產生一個中斷,該中斷狀態在下一個SPI周期開始時被清除;
    ⑦使用讀指令會使中斷狀態為移出ISD的MISO引腳時,控制及地址數據也同步從MOSI移入;
    ⑧所有操作在運行位(RUN)置1時開始,置0時結束;
    ⑨所有指令都在SS上升沿開始執行。
    其時序如圖2所示。

 

 對于ISD4002,器件延時TPUD(8kHz采樣時,約為25 ms)后才能開始操作;因此,用戶發完上電指令后,必須等待TPUD.才能發出一條操作指令。下面是典型的操作。

    從00處發音,應遵循如下時序:
    發POWERUP命令;
    等待TPUD(上電延時);
    發地址值為00的SFTPLAY命令;
    發PLAY命令。
    器件會從00地址開始放音,當出現EOM時,立即中斷,停止放音。
    如果從00處錄音,則按以下時序;
    發POWER UP命令;
    等待TPUD(上電延時);
    發POWER UP命令
    等待2倍TPUD;
    發地址值為00的SETREC命令;
    發REC命令。
    器件便從00地址開始錄音,一直到出現OVF(存儲器末尾)時,錄音停止。其工作時序如圖3所示。

6 電路設計
    本電路采用dsPICC30F6014數字信號控制器,通過3個按鍵開關控制ISD4002錄放音芯片的動作。S1、S2、S3分別接到控制器外部中斷INTl、INT2、INT3上。當按下S1時,開始錄音,再次按下S1時停止錄音。如此反復即可實現多段錄音。同理,按下S2時開始放音,再次按下S2是停止放音。如此反復順序播放多段錄音。按下S3關機。

(1)硬件電路設計
   
電路原理如圖4所示。整個電路由語音錄放電路、話筒輸入電路、按鍵開關電路及LCD顯示電路構成。由于本設計輸出直接驅動普通耳機,經實驗不需外部功放電路,直接利用ISD4002內部功放輸出即可。ISD4002作為從機,其SPI接口的MOSI接控制器的SDO;MISO接控制器的SDI;SCLK接SCK;SS接控制器的SS即可。LCD用于人機交互的界面顯示。

(2)軟件設計
    程序包括主程序以及幾個子程序。主程序中,在完成初始化的工作之后,進入一個while循環,等待響應按鍵觸發的中斷,若有按鍵按下,則進入相應的中斷服務程序。在按鍵S1的中斷服務程序中,設置一個標志變量,Sl每按下一次,標志變量取反,用來控制錄音及停止錄音。同理,S2的中斷服務程序中也設置一個標志變量,控制開始放音及停止放音。S3的中斷服務程序中則發送Power-Down指令關機。程序清單中給出了主程序以及中斷服務程序,另外包括LCD驅動程序以及dsPIC的SPI函數庫等。

7 總 結
    該電路易于實現,功能簡單實用,可擴展性較好;輸出聲音清晰、自然。如要增加錄音時間,可選用ISD4000系列的其他芯片,程序基本相同。另外,在設計過程中有以下幾點事項需要注意:
    ①在SPI的數據傳輸中,不同芯片所定義的傳輸順序可能不同,因此要注意是先傳高位還是先傳低位。ISD4002要求先傳高位數據,如果與主芯片所定義的順序相反,則只要把指令碼反過來傳即可。
          ②由于ISD4002要求在時鐘前半個周期把數據放在傳輸線上,因此,在使用dsPIC的SPI函數庫時需要注意SPI初始化。在本設計中,使用的配置為SPl—CKE—ON&CLK_P0L_ACTIVE_HIGH。
    以上兩點可能會幫助解決一些常見問題。

 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区国产一区| 久久婷婷av| 欧美在线二区| 亚洲夜间福利| 日韩视频三区| 亚洲日产国产精品| 1024亚洲| 欧美激情精品久久久久久久变态| 欧美成人在线免费观看| 夜夜嗨av一区二区三区四区| 在线观看91精品国产麻豆| 国产婷婷一区二区| 国产欧美激情| 国产日本欧美一区二区三区| 国产九九视频一区二区三区| 国产精品视频免费在线观看| 国产精品日本精品| 国产精品久久久久久影视| 欧美日韩国产黄| 欧美日韩卡一卡二| 欧美三级电影一区| 欧美系列精品| 国产精品视频在线观看| 国产欧美日韩一区二区三区| 国产日韩欧美一二三区| 国产视频在线观看一区二区三区| 老色鬼久久亚洲一区二区| 久久精品免费播放| 午夜精品剧场| 久久久久久久综合狠狠综合| 久久视频精品在线| 免费在线欧美黄色| 欧美激情一区二区三区高清视频| 欧美一区=区| 性久久久久久久久久久久| 亚洲欧美日韩综合| 久久国产婷婷国产香蕉| 久久最新视频| 欧美国产先锋| 国产精品成人免费| 国产欧美日韩免费| 极品尤物一区二区三区| 在线观看成人一级片| 亚洲精品裸体| 亚洲一区精品电影| 欧美专区在线观看| 亚洲精品系列| 亚洲欧美日本国产有色| 久久久精品动漫| 欧美成年人在线观看| 欧美久久精品午夜青青大伊人| 久久精品国产99| 久久尤物电影视频在线观看| 欧美大片在线观看| 欧美视频在线一区二区三区| 国产精品社区| 亚洲第一精品夜夜躁人人爽| 日韩一级黄色av| 欧美有码视频| 99热在线精品观看| 欧美一区二区久久久| 久久一区二区视频| 欧美视频免费在线| 狠狠综合久久av一区二区小说 | 亚洲一区在线免费| 欧美一区二区日韩一区二区| 噜噜噜躁狠狠躁狠狠精品视频| 久久理论片午夜琪琪电影网| 欧美人在线观看| 国产欧美一区二区三区视频| 最新中文字幕亚洲| 欧美一区二区三区视频免费| 日韩亚洲综合在线| 欧美一区二区三区的| 亚洲国产女人aaa毛片在线| 亚洲视频一二区| 久久午夜精品| 国产精品国产三级国产aⅴ9色| 欧美日韩亚洲高清| 国产综合久久久久久鬼色| 亚洲三级视频在线观看| 欧美在线观看一二区| 在线视频日本亚洲性| 玖玖精品视频| 国产精品影院在线观看| 亚洲国产成人91精品| 欧美一区二区黄| 亚洲手机视频| 欧美成人xxx| 国产一区二区在线观看免费播放 | 美女爽到呻吟久久久久| 国产精品福利网| 亚洲人成小说网站色在线| 久久丁香综合五月国产三级网站| 久久精品夜色噜噜亚洲a∨| 亚洲视频精品| 美女视频黄a大片欧美| 欧美黄免费看| 欧美日韩视频免费播放| 在线精品国精品国产尤物884a| 狠狠狠色丁香婷婷综合久久五月| 国精品一区二区三区| 亚洲天堂视频在线观看| 亚洲最黄网站| 欧美激情综合在线| 亚洲国产精品va在线看黑人 | 麻豆av一区二区三区久久| 国产精品国产三级国产专区53 | 麻豆精品视频| 国产欧美日韩专区发布| 亚洲香蕉网站| 亚洲资源在线观看| 欧美日韩调教| 日韩午夜剧场| 中文精品视频| 欧美精品一区二区三区视频| 亚洲国产毛片完整版| 亚洲国产欧美不卡在线观看| 久久久噜噜噜| 激情综合自拍| 亚洲人成网在线播放| 欧美激情精品久久久六区热门 | 91久久中文| 亚洲精品免费电影| 欧美激情精品久久久久久蜜臀| 国产精品爽黄69| 亚洲欧美激情一区| 欧美粗暴jizz性欧美20| 国内自拍亚洲| 久久精品视频在线观看| 久久伊伊香蕉| 亚洲国产精品久久久久| 亚洲精品视频免费在线观看| 欧美精品久久99久久在免费线| 国产精品视频一二三| 在线亚洲一区二区| 亚洲欧美视频一区二区三区| 国产精品一区二区在线观看网站 | 伊人一区二区三区久久精品| 欧美在线电影| 蜜桃久久av一区| 精品成人一区二区| 亚洲精品少妇| 欧美视频国产精品| 亚洲女人天堂av| 久久久亚洲高清| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲午夜精品久久久久久浪潮| 久久久精彩视频| 国产一区二区欧美| 亚洲国产一区二区三区在线播| 欧美一区网站| 国产午夜精品久久久久久免费视| 99日韩精品| 亚洲综合视频网| 国产亚洲人成a一在线v站| 亚洲成人在线网站| 欧美精品色一区二区三区| 日韩午夜av| 欧美中文字幕视频在线观看| 一区二区三区在线观看视频| 亚洲免费精彩视频| 欧美午夜精品久久久久久久| 性欧美18~19sex高清播放| 蜜桃久久精品一区二区| 一本色道久久综合狠狠躁篇的优点| 亚洲裸体在线观看| 欧美午夜电影在线| 欧美在现视频| 欧美精品一区二区三区蜜臀| 在线视频一区观看| 久久久精品久久久久| 91久久精品美女| 亚洲欧美日韩国产另类专区| 激情成人综合网| 亚洲一区二区三区在线看| 国产一区二区三区在线观看免费| 香蕉久久久久久久av网站| 免费黄网站欧美| 久久久久免费| 日韩亚洲一区在线播放| 午夜视频在线观看一区二区| 精品96久久久久久中文字幕无| 欧美一级免费视频| 免费在线观看一区二区| 亚洲一区二区三区四区五区午夜 | 久久久综合网| 一本久久青青| 美女国内精品自产拍在线播放| 国产综合色精品一区二区三区| 午夜精品一区二区三区在线| 久久理论片午夜琪琪电影网| 一区二区高清| 免费成人在线视频网站| 亚洲一卡久久| 欧美日本成人| 亚洲国产精品一区二区三区| 国产精品久久久久久久9999| 亚洲裸体视频| 在线成人激情黄色|