<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          S3C2440-IIS放音

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          S3C2440A的Inter-IC Sound(IIS)總線接口作為一個編解碼接口連接外部8/16位立體聲音頻解碼IC用于迷你碟機(jī)和可攜式應(yīng)用。IIS總線接口支持IIS總線數(shù)據(jù)格式和MSB-justified數(shù)據(jù)格式。該接口對FIFO的訪問采用了DMA模式取代了中斷。它可以在同一時間接受和發(fā)送數(shù)據(jù)。S3C2440一共有5個引腳用于IIS:IISDO,IISDI,IISSCLK,IISLRCK和CDCLK。前兩個信號用于數(shù)字音頻信號的輸入輸出,另外3個引腳都與音頻信號的頻率有關(guān),可見要用好IIS,就要把信號頻率設(shè)置正確。IISSCLK為串行時鐘,每一個時鐘信號傳送一位音頻信號,因此IISSCLK的頻率=聲道數(shù)*采樣頻率*采樣位數(shù),如采樣頻率為44.1kHz,采樣的位數(shù)為16位,聲道數(shù)2個(左,右兩個聲道),則IISSCLK的頻率=32fs=1411.2kHz。IISLRCK為幀時鐘,用于切換左右聲道,如IISLRCK為高電平表示正在傳輸?shù)氖亲舐暤罃?shù)據(jù),為低表示傳輸?shù)氖怯衣暤罃?shù)據(jù)。因此IISLRCK的頻率應(yīng)該正好等于采樣頻率。由于IIS只負(fù)責(zé)數(shù)字音頻信號的傳輸,而要真正實(shí)現(xiàn)音頻信號的放錄還需要額外的處理芯片(在這里我們使用UDA1341),CDCLK為該芯片提供系統(tǒng)同步時鐘,即編解碼時鐘,主要用于音頻的A/D,D/A采樣時的采樣時鐘,一般CDCLK為256fs或384fs。UDA1341使用L3接口,通過L3接口可以實(shí)現(xiàn)UDA1341和S3C2440控制信息的傳遞。L3指3根線,L3DATA(數(shù)據(jù)線,用于傳輸數(shù)據(jù)),L3MODE(模式線,用于選擇模式),L3CLOCK(時鐘線,用于傳輸時鐘)。先傳輸?shù)刂纺J綌?shù)據(jù),再傳輸數(shù)據(jù)模式數(shù)據(jù)。L3MODE為低時是地址模式,L3MODE為高時是數(shù)據(jù)傳輸模式。L3DATA和L3CLOCK相互作用,完成8位數(shù)據(jù)的傳輸,傳輸?shù)捻樞蚴窍鹊臀粩?shù)據(jù),再高位數(shù)據(jù)。地址模式用于選擇設(shè)備和定義目標(biāo)寄存器,在這種模式下,8位數(shù)據(jù)的含義是:高6位是設(shè)備地址(UDA1341的地址為000101),低兩位是后面數(shù)據(jù)模式的類型(00:DATA0,01:DATA1,10:STATUS)。

          下面這個程序完成從WAV音頻文件中提取出數(shù)組。

          #include <stdio.h>
          #include<stdlib.h>
          #include <string.h>
          #include <memory.h>
          int main(){
          FILE *stream, *fp;
          unsigned char *music;
          char ch[5];
          int start, end, num, t, i, j, r;
          if(((stream = fopen("D:music.wav","rb")) == NULL) || ((fp = fopen("D:music.h","wb+")) == NULL)){
          printf("%s","cannot open output file.");
          return 1;
          }
          fseek(stream,0,SEEK_SET);
          start = ftell(stream); //獲得文件的起始地址
          fseek(stream,0,SEEK_END);
          end = ftell(stream); //獲得文件的結(jié)束地址
          fseek(stream,0,SEEK_SET);
          music = (unsigned char *)malloc(end-start); //動態(tài)分配一個buffer
          fwrite("unsigned char music[",1,20,fp);
          fwrite("]={",1,3,fp);
          fwrite("", 2, 1, fp);
          num = (end - start - 0x2c) / 16; //m每行16個
          t = (end - start - 0x2c) % 16;
          fread(music, 1, end - start, stream);
          for(i = 0; i < num; i++){
          for(j = 0; j < 16; j++){
          memset(ch,0,5);
          r = (int)music[i*16+j+0x2c]; //從0x2c開始是音頻數(shù)據(jù)
          r &= 0xff;
          sprintf(ch,"0x%02x",r); //先轉(zhuǎn)化成一定格式
          fwrite(ch,sizeof(ch),1,fp);
          fwrite(",",1,1,fp);
          }
          fwrite("",1,2,fp);
          }
          for(i = 0; i < t; i++){
          memset(ch,0,5);
          r = (int)music[i*16+j+0x2c];
          r &= 0xff;
          sprintf(ch,"0x%02x",r);
          fwrite(ch,sizeof(ch),1,fp);
          if(i != t-1)
          fwrite(",",1,1,fp);
          }
          fwrite("};",1,2,fp);
          fclose(stream);
          fclose(fp);
          system("pause");
          return 0;
          }

          上一頁 1 2 下一頁

          關(guān)鍵詞: S3C2440IIS放

          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();