




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、【摘要】自從電子技術發展起來之后,ARM因其體積小、低功耗、低成本、高性能的優勢,正以驚人的速度向前發展,在工業控制、消費類電子產品和成像安全產品、無線網絡與通訊等領域得到了廣泛應用,極大地改進了這些行業的生產效率,提高了生產力。除此以外,ARM微處理器及技術還應用到許多不同的領域,并會在將來取得更加廣泛的應用,ARM技術在許多不同領域的地位日益鞏固。本文主要是通過對ARM9系列工作原理的描述,繼而利用ADS開發軟件,在CodeWarrior IDE集成開發環境下編寫程序,最后利用編寫I2S主函數實現串口設置和初始化,中斷,錄/放音功能,并通過JTAG仿真,最終在超級終端中查看結果。【關鍵詞】
2、:ARM, 程序編寫,錄/放功能ABSTRACTDevelops after the electronic technology, because ARM its volume small, low power loss, low cost, high performance superiority, is developing forward by the astonishing speed, in the industrial control, the expense class electronic products and image formation domains and so
3、on security product, wireless network and communication obtained the widespread application, improved these profession production efficiency enormously, enhanced the productive forces. Except for this, the ARM microprocessor and the technology also apply to many different domains, and will obtain th
4、e more widespread application ARM technology in the future to be day by day consolidated in many different domain statuses. This article is mainly through to the ARM9 series principle of work description, subsequently using the ADS development software, in CodeWarrior under the IDE integrated develo
5、pment environment the write program, finally uses compiles the I2S main function to realize the serial port establishment and the initialization, the interrupt, records/the playback function, and through the JTAG simulation, examines the result finally in the super terminal.【KEY WORD】:ARM, Programmi
6、ng , records/the playback function目 錄一、引言 1頁二、ARM體系結構介紹 2頁(一)ARM920T硬件平臺簡介 2頁(二)ARM ADS軟件介紹 2頁三、I2S音頻接口的設計原 3頁(一)數字音頻基礎 3頁(二)I2S音頻接口 4頁(三)WAV聲音格式 5頁(四)I2S調用 6頁(五)錄放音流程圖 7頁(六)電路設計原理 10頁(七)設計步驟 12頁 四、總結 19頁五、參考文獻 19頁六、致謝 19頁一、引言嵌入式系統的出現至今已經有30多年的歷史了,嵌入式技術也歷經了幾個發展階段。進入90年代后,以計算機和軟件為核心的數字化技術取得了迅猛發展,不僅廣泛
7、滲透到社會經濟、軍事、交通、通信等相關行業,而且深入到家電、娛樂、藝術、社會文化等各個領域,掀起了一場數字化技術革命。早期的嵌入式系統只是為了實現某些特定功能,使用一個循環控制對外界的請求進行處理。不可否認,這對于簡單的系統而言是足夠的,但是當我們的系統變得日漸復雜龐大的時候,如果我要增添一項功能的時候,很可能不得不重新進行系統的設計,這無疑會增加開發的成本和系統復雜度。使用這種方式開發規模較大、功能復雜的嵌入式系統是不可想象的。20世紀80年代初期嵌入式操作系統的出現使得快速便捷地開發規模較大的嵌入式系統成為現實,自這一時期開始就出現了各種各樣的商用嵌入式操作系統,從而形成了目前多種形式的商
8、用嵌入式操作系統百家爭鳴的局面。基于嵌入式操作系統之上的系統才能夠真正符合嵌入式系統定義中的軟件可裁剪、功能的可擴展、高可靠性等特征。區別于嵌入式系統,我們將不使用嵌入式操作系統的基于MCU(微控制器)、MPU(微處理器)和DSP的循環控制系統稱之為前后臺系統。嵌入式系統在應用數量上遠遠超過了各種通用計算機系統,一臺通用計算機的外部設備中就包含了5-10個微處理器,鍵盤、鼠標、軟驅、硬盤、顯示卡、顯示器、Modem、網卡、聲卡、打印機、掃描儀、數字相機、USB集線器等均是由嵌入式系統控制的。在制造工業、過程控制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等方面均是嵌入式計算
9、機的應用領域。嵌入式系統是將先進的計算機技術、半導體技術和電子技術和各個行業的具體應用相結合后的產物,這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。 縱觀嵌入式系統的發展過程,可以看出嵌入式系統由簡單的無操作系統的循環控制程序向具有強大功能的基于操作系統的方向發展,從獨立的系統向基于網絡的系統發展。進入90年代后,以計算機和軟件為核心的數字化技術取得了迅猛發展,不僅廣泛滲透到社會經濟、軍事、交通、通信等相關行業,而且深入到家電、娛樂、藝術、社會文化等各個領域,掀起了一場數字化技術革命。多媒體技術與Internet的應用迅速普及,消費電子、計算機、通信(3C)一
10、體化趨勢日趨明顯,嵌入式技術已再次成為一個研究熱點。本課題主要以ARM920T為核心,舍棄大而復雜的模擬電路以及繁多的元器件,對ARM920T嵌入式音頻接口系統主體部分的電路進行模仿設計,配置相應的外設及接口電路,只要寫入簡單的程序,就可以使以前的電路簡單很多,卻同樣可以實現串口設置和初始化,中斷,錄/放音功能。 二、ARM體系結構介紹(一)ARM920T的簡介ARM9內核采用了與StrongARM相同的五級流水線、提供1.1MIPS/MHz的哈佛結構、全性能的MMU單元、可配置的數據Cache和可分立和指令和數據高速AHB接口。 1五級流水線 ARM920T處理器使用流水線來增加處理器指令流
11、的速度。這樣可以使幾個操作同時進行,并使處理和存儲器系統連續操作,能提供1.1MIPS/MHz的指令執行速度。流水線使用5個階段,因此指令分5個階段執行:取址譯碼執行存儲寫。 2ARM920T處理器結構 ARM920T處理器功能方框圖如圖1:圖1 ARM920T處理器功能方框圖(二)ARM ADS軟件介紹ARM ADS全稱為ARM Developer Suite。是ARM公司推出的新一代ARM集成開發工具。現在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。它除了可以安裝在Windows NT4,Windows 2000,Windows 98和Windows 95操作系統下
12、,還支持Windows XP和Windows Me操作系統。 ADS由命令行開發工具,ARM運行時庫,GUI開發環境(Code Warrior和AXD),實用程序和支持軟件組成。有了這些部件,用戶就可以為ARM系列的RISC處理器編寫和調試自己的開發應用程序了。CodeWarrior集成開發環境(IDE)為管理和開發項目提供了簡單多樣化的圖形用戶界面。用戶可以使用ADS的CodeWarrior IDE為ARM和Thumb處理器開發用C,C+,或ARM匯編語言的程序代碼。通過提供下面的功能,CodeWarrior IDE縮短了用戶開發項目代碼的周期。ADS的CodeWarrior IDE是基于M
13、etrowerks CodeWarrior IDE 4.2版本的。它經過適當的裁剪以支持ADS工具鏈。針對ARM的配置面板為用戶提供了在CodeWarrior IDE集成環境下配置各種ARM開發工具的能力。三、I2S(Inter IC Sound)音頻接口的設計原理(一)數字音頻基礎 1.采樣頻率和采樣精度 在數字音頻系統中,通過將聲波波形轉換成一連串二進制數據再現原始聲音。這個過程中使用的設備是A/D轉換器,即ADC。ADC以上萬次每秒的速率對聲波進行采樣,每次采樣都記錄下了始聲波在某一時刻的狀態,稱之為樣本。 每秒采樣的數目稱為采樣頻率,單位為Hz。采樣頻率越高,所能描述的聲波頻率就越高。
14、系統對于每個樣本均會分配一定的存儲位(Bit 數)來表達聲波的聲波振幅狀態,稱之為采樣精度。采樣頻率和精度共同決定聲音還原的質量。 人耳的聽覺范圍通常是20Hz 20kHz。根據奈奎斯特采樣定理,用兩倍于一個正弦波的頻率進行采樣能夠真實的還原該波形;因此,當采樣頻率高于40kHz時,可以保證不產生失真。CD音頻的采樣規格為16位、44kHz,就是根據以上原理制定的。 2.音頻編碼 脈沖編碼調制PCM(Pulse Code Modulation)編碼的方法是對語言信號進行采樣,然后對每個樣值進行量化編碼。對語音量化和編碼就是一個PCM編碼過程。ITU-T的64kb/s語音編碼標準G711采用 P
15、CM編碼方式,采樣頻率為8kHz。每個樣值用8位非線性的律或A律進行編碼,總速率為64kb/s。 CD音頻即是使用PCM編碼格式,采樣頻率為8kHz,對采樣值采用16位編碼。 使用PCM編碼的文件在Windows系統中保存的文件格式為大家熟悉的wav格式,實驗中用到的就是一個采樣頻率為44.100kHz、16位的立體聲文件twav。 在PCM 基礎上發展起來的還有自適應差分脈沖編碼調制ADPCM(Adaptive Differential Pulse Code Modulation)。ADPCM編碼的方法是對輸入樣值進行自適應預測,然后對預測誤差進行量化編碼。CCITT的32kb/s語音編碼標
16、準 G721采用 ADPCM編碼方式,對每個語音采樣值相當于使用4位進行編碼。 其他編碼方式還有線性預測編碼LPC(Linear Predictive Coding)、低時延碼激勵線性預測編碼LD-CELP(Low Delay-Code Excited Linear Prediction)等。 目前流行的一些音頻編碼格式還有MP3(MPEG Audio Layer-3)、WMA(Windows Media Audio)和RA(Real Audio)。它們有一個共同特點就是,壓縮比高,主要針對網絡傳輸,支持邊讀、邊放。 (二)I2S音頻接口 I2S是一種串行總線設計技術,是SONY和PHILIP
17、S公司等電子巨頭共同推出的接口標準,主要針對數字音頻處理技術和設備,例如便攜CD機、數字音頻處理器等。I2S將音頻數據與時鐘信號分離,避免由時鐘帶來的抖動問題,因此系統中不再需要消除抖動的器件。 I2S總線僅處理音頻數據,對其他信號(如控制信號等)單獨傳送。基于減少引腳數目和布線的目的,I2S總線只由3根串行線組成;即分時復用的數據通道線(Serial Data,SD)、字選擇線(Word Select,WS)和時鐘線(Continuous Serial Clock,CSK)。使用I2S技術設計的系統連接配置參見圖2: 圖2 I2S系統連接配置圖I2S總線接口的基本時序參見圖3圖3 I2S總線
18、接口的基本時序WS信號線指示左通道或右通道的數據將被傳輸,SD信號線按高有效位MSB到低有效位LSB的順序傳送字長的音頻數據。MSB總在WS切換后的第一個時鐘發送。如果數據長度不匹配,那么接收器和發送器將對其自動截取或填充。關于I2S總線的其它細節可參見I2S bus specification。 在實驗中,I2S總線接口由處理器S3C2410的I2S模塊和音頻芯片UDA1341硬件來實現。需要關注的是對I2S模塊和UDA1341芯片正確的配置,音頻數據的傳輸相對來說比較簡單。 (三)WAV聲音格式 WAV聲音格式文件是Windows環境下的一種常用音頻文件格式,它依循著一種稱為“資源互換文件
19、格式”(Resources Interchange File Format)的格式,簡稱RIEF。RIEF可以看做是一種樹狀結構,其基本構成單位為chunk,猶如樹狀結構中的節點,每個chunk由“辨別碼”、“數據大小”及“數據”所組成。 WAV為WAVEFORM(波形)的縮寫。“RIEF”的格式辨別碼為“WAVE”。整個文件由兩個chunk所組成:辨別碼“fmt”(注意,最后一個是空白字符!)及“data”。 在“fmt”的chunk下包含了一個PCMWAVEFORMAT數據結構,在“fmt”chunk之后是原始聲音的采樣數據,該這些數據是可以直接送到I2S總線的數字音頻符號。 一個典型的W
20、AV格式文件結構如圖4所示:圖4 典型的WAV格式文件結構圖它包含8字節RIFF頭、4字節數據類型“WAVE”、“fmt”chunk(共0x18即十進制的24字節)和“data”chunk。因此,WAV文件中從下式中的sizeoff開始的四字節表示聲音數據的大小,dataoff開始的位置為具體的聲音數據。 sizeoff=0x8+0x4+0x18+0x4 dataoff=0x8+0x4+0x18+0x8 (四)I2S調用 1.void uda1341_init(void):UDA1341音頻CODEC初始化函數 2.void dma_init(unsigned char Buf, int si
21、ze,int bplay):BDMAO控制寄存器設置,用于I2S錄放音。其中Buf為音頻數據緩沖區指針,size為音頻數據字節數,bplay為1時初始化BDMAO為放音方式,bplay為0時初始化BDMAO為錄音方式。3.void iis_init(int bplay): I2S控制器初始化函數,bplay為1時初始化I2S為放音方式,bplay為0時初始化I2S為錄音方式,本實驗采用16bit雙聲道采樣,采樣頻率為22KHz。 4.void iis_play(unsigned char Buf, int size):放音函數,Buf為音頻數據緩沖區指針,size為音頻數據字節數。 5.voi
22、d iis_record(unsigned char Buf, int size):錄音函數,Buf為音頻數據緩沖區指針,size為音頻數據字節數。(五)錄放音流程圖 播放WAV文件流程圖A如下所示,錄音流程圖如下圖B所示:A 放音流程圖 B 錄音流程圖程序如下:void Record_Iis(void) unsigned int save_B, save_E, save_PB, save_PE; Uart_TxEmpty(0); &
23、#160; ChangeClockDivider(1,1); /1:2:4 ChangeMPllValue(0x96,0x5,0x1); /FCLK=135428571Hz, PCLK=3.385714MHz Uart_Init(33857142,115200);
24、Uart_Printf(" Record test using UDA1341 n"); save_B = rGPBCON; save_E = rGPECON;
25、; save_PB = rGPBUP; save_PE = rGPEUP; IIS_PortSetting(); /Record Buf initialize, Non-cacheable area =
26、160;0x31000000 0x33feffff rec_buf = (unsigned short *)0x31000000; pISR_DMA2 = (unsigned)DMA2_Rec_Done; pISR_EINT0 = (unsigned)Muting; rINTMSK =
27、60;(BIT_DMA2); Init1341(RECORD); /- DMA2 Initialize rDISRCC2 = (1<<1) + (1<<0);
28、160; /APB, Fix rDISRC2 = (U32)IISFIFO); /I
29、ISFIFO rDIDSTC2 = (0<<1) + (0<<0); /PHB, Increment rDIDST2
30、0;= (int)rec_buf; /0x31000000 rDCON2 = (1<<31)+(0<<30)+(1<<
31、29)+(0<<28)+(0<<27)+(1<<24)+(1<<23)+(1<<22)+(1<<20)+REC_LEN; /Handshake, sync PCLK, TC int, single tx, single service, I2SSDI, I2S Rx request,
32、60; /Off-reload, half-word, 0x50000 half word. rDMASKTRIG2 = (0<<2) + (1<<1) + 0; /-stop, DMA2 channel on, No-sw trigger
33、/IIS Initialize /Master,Rx,L-ch=low,IIS,16bit ch,CDCLK=256fs,IISCLK=32fs rIISMOD = (0<<8) + (1<<6) + (0<<5) + (0<<4) + (1<<3) + (0<<2)
34、160;+ (1<<0); rIISPSR = (2<<5) + 2; /Prescaler_A/B=2 <- FCLK 135.4752MHz(1:2:4),11.2896MHz(256fs),44.1KHz rIISCON = (0<<5) + (1<<4) + (1<<3)
35、+ (0<<2) + (1<<1); / DMA disable,Rx DMA enable,Tx idle,Rx not idle,prescaler enable,stop rIISFCON = (1<<14) + (1<<12); &
36、#160;/Rx DMA,Rx FIFO -> start piling. Uart_Printf("Press any key to start record!n"); Uart_Getch(); Uart_Printf("Recording.n"); &
37、#160;/Rx start rIISCON |= 0x1; while(!Rec_Done); rINTMSK = BIT_DMA2; Rec_Done = 0; /IIS Stop Delay(10);&
38、#160; /For end of H/W Rx rIISCON = 0x0;
39、; /IIS stop rDMASKTRIG2 = (1<<2); /DMA2 stop rIISFCON
40、60; = 0x0; /For FIFO flush Uart_Printf("End of Record!n"); Uart_Printf("Press&
41、#160;any key to play recorded datan"); Uart_Printf("If you want to mute or no mute push the 'EIN0' key repeatedlyn"); Uart_Getch();
42、60; size = REC_LEN * 2; Uart_Printf("Size = %dn",size); Init1341(PLAY); pISR_DMA2 = (unsigned)DMA2_Done; rINTMSK = (BIT_DMA2 |
43、 BIT_EINT0); /DMA2 Initialize rDISRCC2 = (0<<1) + (0<<0);
44、; /AHB, Increment rDISRC2 = (int)rec_buf; /0x31000000 rDIDSTC
45、2 = (1<<1) + (1<<0); /APB, Fixed rDIDST2 = (U32)IISFIFO);
46、 /IISFIFO rDCON2 = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(
47、0<<22)+(1<<20)+(size/2); /Handshake, sync PCLK, TC int, single tx, single service, I2SSDO, I2S request, /Auto-reload, half-word, size/2
48、 rDMASKTRIG2 = (0<<2)+(1<<1)+0; /-stop, DMA2 channel on, No-sw trigger /IIS Initialize /Master,Tx,L-ch=low,iis,16bit ch.,CDCLK=256fs,
49、IISCLK=32fs rIISMOD = (0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (0<<2) + (1<<0); / rIISPSR = (4<<5)&
50、#160;+ 4; /Prescaler_A/B=4 for 11.2896MHz rIISCON = (1<<5)+(0<<4)+(0<<3)+(1<<2)+(1<<1); / DMA enable,Tx
51、60;DMA disable,Tx not idle,Rx idle,prescaler enable,stop rIISFCON = (1<<15) + (1<<13); / DMA,Tx FIFO -> start piling. Uart_Print
52、f("Press any key to exit!n"); rIISCON |= 0x1; /IIS Tx Start while(!Uart_GetKey();
53、0; /IIS Tx Stop Delay(10); /For end of H/W Tx rIISCON = 0x0;
54、 /IIS stop rDMASKTRIG2 = (1<<2); /DMA2 stop rIISFCON = 0x0; /For FIFO flush size
55、 = 0; rGPBCON = save_B; rGPECON = save_E; rGPBUP = save_PB; rGPEUP = save_PE; rINTMSK = (BIT_DMA2 | BIT
56、_EINT0); ChangeMPllValue(0xa1,0x3,0x1); / FCLK=202.8MHz Uart_Init(0,115200); mute = 1;(六)電路設計原理1.S3C2410外圍模塊I
57、2S說明S3C2410數字音頻接口模塊由I2S(Inter-IC Sound)音頻總線接口和UDA1341音頻編解碼器(CODEC)組成。S3C2410內置一個I2S總線控制器,該總線專責于音頻設備之間的數據傳輸,為數字立體聲提供一個序列連接至標準編碼解碼器,它實現了到一個外部8/16位立體聲音頻CODEC IC的接口。支持I2S總線數據格式和MSB-justified數據格式。此控制器包含FIFO,支持DMA傳輸模式。I2S總線控制器結構如圖5:圖5 I2S總線控制器結構兩個3比特預除器(IPSR):一個(IPSR_A)用于產生I2S總線接口的主時鐘,另外一個(IPSR_B)用作外部CODEC時鐘產生器。 16字節FIFO:在發送數據時,數據被寫進TXFIFO,在接收數據時,數據從RXFIFO中讀取。 主I2SCLK產生器(SCLKG):在主模式,由主時鐘產生串行位時鐘。 通道產生器和狀態機(CHNC):I2SCLK和I2SLRCK由通道狀態機產生并控制。 16比特移位寄存器(SFTR):在發送數據時,并行數據經由SFTR變成串行數據輸出,在接收數據時,串行數據由SFTR轉變成并行數據。 2.音頻芯片UDA1341TS說明 電路中使用的音頻芯片是PHILIPS公司的UDA1341TS音頻數字信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務個人年度考核工作總結
- 新質生產力社評
- 《餐廳消防基本知識》課件
- 2025年班主任度小結與班主任度工作總結模版
- 《供應鏈管理案例分析》課件
- 客戶信息管理系統
- 2025【住宅預售合同】住宅買賣合同(預售)
- 2025飲品店加盟合同
- 《英語聽力技巧》課件
- 2025版權代理銷售合同范本
- 神經系統疾病的康復課件
- 樁側摩阻力ppt(圖文豐富共28)
- 幕墻材料運輸方案
- 項目經理年度考核評價表
- 9E燃機系統培訓演3.25
- 2022年山東省臨沂市中考生物試題及答案解析
- 起重信號工、司索工安全教育培訓試題帶答案
- 廢舊塑料回收再生資源利用項目建議書
- 玻璃纖維生產工藝流程培訓
- 無砟軌道底座板首件施工總結(最新)
- 作文紙模板帶字數
評論
0/150
提交評論