freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于s3c2410聲音頻譜分析系統(tǒng)設(shè)計-資料下載頁

2025-06-27 19:35本頁面
  

【正文】 2)應(yīng)用程序應(yīng)用程序通過Linux下C編程實現(xiàn),主要功能是遵循RS485協(xié)議,調(diào)用系統(tǒng)函數(shù)write()定時向下位傳感器模塊發(fā)送命令,調(diào)用系統(tǒng)函數(shù)read()讀取返回字符串,通過對字符串的處理,提取有用信息保存到文本文件中。打開串口設(shè)備采集到數(shù)據(jù)后,利用fopen()打開或者創(chuàng)建一個文本文件,通過mount/dev/sdal掛接U盤,調(diào)用系統(tǒng)時間函數(shù)localtime()來顯示時間,利用fprintf()函數(shù)按照設(shè)定的格式向文件中寫入數(shù)據(jù)。最后編寫Makefile文件,利用GUN下的gcc工具來編譯應(yīng)用程序。基于S3C2410聲音頻譜分析系統(tǒng)的軟件設(shè)計主要包括LCD顯示程序的設(shè)計、ADC驅(qū)動程序的設(shè)計和FFT部分的程序設(shè)計。下面分別詳細(xì)介紹一下LCD的顯示程序,ADC驅(qū)動程序的和FFT部分的程序。LCD控制器的功能是顯示驅(qū)動信號,進(jìn)而驅(qū)動LCD。用戶只需要通過讀寫一系列的寄存器,完成設(shè)置和顯示驅(qū)動。在驅(qū)動LCD設(shè)計的過程中首要的是設(shè)置LCD控制器,而在設(shè)置LCD控制器中最重要的一步則是幀緩沖區(qū)(FrameBuffer)的指定。用戶所要顯示的內(nèi)容皆是從緩沖區(qū)中讀出,從而顯示到屏幕上的。幀緩沖區(qū)的大小由屏幕的分辨率和顯示色彩數(shù)決定。驅(qū)動幀緩沖的實現(xiàn)是整個驅(qū)動研發(fā)過程的重點。S3C2410中的LCD控制器可支持STN和TFT兩種液晶。對于STN 液晶平板,該LCD控制器可支持4位雙掃描、4位單掃描和8位單掃描三種顯示類型,支持4級和16級灰度級單色顯示模式,支持256色和4096色顯示,可接多種分辨率的LCD,例如640480、320240和160160等,在256色顯示模式時,最大可支持409610220482048和10244096顯示。TFT液晶平板可支持1248bpp(bits per pixel)調(diào)色板顯示模式和16bpp非調(diào)色板真彩顯示。幀緩沖區(qū)是出目前Linux ,這種接口將顯示設(shè)備抽象為幀緩沖區(qū)設(shè)備區(qū)。幀緩沖區(qū)為圖像硬件設(shè)備提供了一種抽象化處理,他代表了一些視頻硬件設(shè)備,允許應(yīng)用軟件通過定義明確的界面來訪問圖像硬件設(shè)備。這樣軟件無須了解所有涉及硬件底層驅(qū)動的東西(如硬件寄存器)。他允許上層應(yīng)用程式在圖像模式下直接對顯示緩沖區(qū)進(jìn)行讀寫和I/O控制等操作。通過專門的設(shè)備節(jié)點可對該設(shè)備進(jìn)行訪問,如/dev/fb*。用戶能將他看成是顯示內(nèi)存的一個映像,將其映射到進(jìn)程地址空間之后,就能進(jìn)行讀寫操作,而讀寫操作能反映到LCD。幀緩沖設(shè)備對應(yīng)的設(shè)備文件是/dev/fb*。如果系統(tǒng)有多個顯卡,Linux還支持多個幀緩沖設(shè)備,最多可達(dá)32個,即/dev/fb0~/dev/fb31。而/dev/fb則指向當(dāng)前的幀緩沖設(shè)備,通常情況下,默認(rèn)的幀緩沖設(shè)備為/dev/fb0。幀緩沖設(shè)備也屬于字符設(shè)備,采用“文件層驅(qū)動層”的接口方式。在文件層為之定義了以下數(shù)據(jù)結(jié)構(gòu)。Static struct file_operations fb_fops={ower: THIS_MODULE,read: fb_read, /*讀操作*/write: fb_write, /*寫操作*/ioct1: fb_ioct1, /*I/O操作*/mmap: fb_mmap, /*映射操作*/open: fb_open, /*打開操作*/release: fb_release, /*關(guān)閉操作*/}其成員函數(shù)都在linux/driver/video/,其中的函數(shù)對具體的硬件進(jìn)行操作,對寄存器進(jìn)行設(shè)置,對顯示緩沖進(jìn)行映射。主要結(jié)構(gòu)體更有以下幾個?!?Struct fb_fix_screeninfo:記錄了幀緩沖設(shè)備和指定顯示模式的不可修改信息。他包含了屏幕緩沖區(qū)的物理地址和長度。 ● Struct fb_var_screeninfo:記錄了幀緩沖設(shè)備和指定顯示模式的可修改信息。他包括顯示屏幕的分辨率、每個像素的比特數(shù)和一些時序變量。其中變量xres定義了屏幕一行所占的像素數(shù),yres定義了屏幕一列所占的像素數(shù),bits_per_pixel定義了每個像素用多少個位來表示。● Struct fb_info:Linux為幀緩沖設(shè)備定義的驅(qū)動層接口。他不僅包含了底層函數(shù),而且更有記錄設(shè)備狀態(tài)的數(shù)據(jù)。每個幀緩沖設(shè)備都和一個fb_info結(jié)構(gòu)相對應(yīng)。其中成員變量modename為設(shè)備名稱,fontname為顯示字體,fbops為指向底層操作的函數(shù)的指針。ADC驅(qū)動程序主要實現(xiàn)讀取外部模擬信號,并轉(zhuǎn)換為數(shù)字量,供應(yīng)用程序調(diào)用的功能。ADC驅(qū)動程序可以有兩種編寫模式——中斷模式和查詢模式。中斷模式就是在ADCCON Bit[15]為1時產(chǎn)生一個中斷,并進(jìn)入中斷處理函數(shù)完成相應(yīng)功能;而查詢模式則是不間斷的跟蹤ADCCON Bit[15],當(dāng)其為1就立即調(diào)用相應(yīng)函數(shù)完成數(shù)據(jù)處理功能。這兩種方式在ADC單獨運行時都可以正常工作,但是當(dāng)加入觸摸屏驅(qū)動時,就需要注意資源沖突的問題。關(guān)于這個問題,我們會在觸摸屏驅(qū)動程序中分析。這里我們采用查詢模式ADC驅(qū)動。編寫設(shè)備驅(qū)動程序需要分配設(shè)備號,為了不和其他設(shè)備沖突,我們把主設(shè)備號設(shè)為0,讓系統(tǒng)自動分配設(shè)備號。static int adcMajor=0:然后來看接口定義。所謂接口,就是驅(qū)動程序和操作系統(tǒng)交互的一種方式。Linux操作系統(tǒng)統(tǒng)一了這種方式,并把它規(guī)范為接口。static struct file_operations s3c2410_fops={owner:THIS_MODULE,open:s3c24 0 ade_open,read:s3c2410_adc_read,write:s3c2410_adc_write,release:s3c2410_adc_release,};驅(qū)動程序主要就是為了實現(xiàn)上面的這些接口函數(shù)。根據(jù)不同的應(yīng)用,還可以增加很多不同功能的接口。下面詳細(xì)介紹ADC驅(qū)動中的各個接口。首先是打開設(shè)備,主要完成以下任務(wù):使能ADC時鐘:CLKCON|=(115);設(shè)置默認(rèn)通道號和分頻系數(shù):adcdev.channel=l:adcdev.prescale=19;并告訴系統(tǒng)打開了一個設(shè)備(即計數(shù)器加1):MOD_INC_USE_COUNT;return 0;讀取接口主要用來完成AD采樣的取值功能,并將其拷貝至用戶空間供應(yīng)用程序使用。在讀取之前首先獲得自旋鎖,使得系統(tǒng)讀取相應(yīng)寄存器時不被外界打擾(即不準(zhǔn)其他進(jìn)程使用該寄存器):spin_lock_irq(amp。(adcdev.lock));然后使觸摸屏無效,因為觸摸屏的響應(yīng)可能影響到ADC的值:ADCTSC=0:接下來選擇需要的通道號和分頻系數(shù):START—ADTAIN(adcdev.channel,adcdev.prescale):下面就準(zhǔn)備讀取AD轉(zhuǎn)換的值了。首先要確定AD轉(zhuǎn)換是否已經(jīng)開始,通過檢查ADCCON寄存器最低位是否為0來判斷:如果非0,則持續(xù)查詢直到為0。while(ADCCONamp。Ox01):再來確定AD轉(zhuǎn)換是否已經(jīng)結(jié)束。這又可以通過查看ADCCON最高位是否為1來判斷:如果非l,則持續(xù)查詢直到為1.while(ADCCONamp。Ox8000):最后就是讀取ADCDAT0寄存器,并將值復(fù)制到用戶空間,使能觸摸屏,解鎖。在定義好FFT從設(shè)后,定義相應(yīng)的數(shù)據(jù)存儲結(jié)構(gòu)FFTtypedef struct{int control_reg;int realin_reg;int imag_in_reg;jnl flag_reg;im real_out_reg;int imag_out_reg;}FFT;FFT_train *myfft=(void *)USER_LOGIC_FFT_ LOGIC _O_ BASE;USER_LOGIC_FFT_ LOGIC _O_ BASE是一個地址宏常量,當(dāng)把FFT從設(shè)成功加入到S3C2410 builder中,工程編譯成功后。按照streaming數(shù)據(jù)流的時序進(jìn)行編程,例如如果要產(chǎn)生一個時鐘脈沖,只需要編寫如下語句:myfftcontrol_reg=myfftcontrol_reg |oxl;myfftcontrol_reg=myfftcontrol_reg amp。0xfffe便可以得到時鐘脈沖,對于其他的控制信號同樣可以這樣得到。系統(tǒng)消耗時間包括采樣時間,F(xiàn)FT處理時間和顯示數(shù)據(jù)處理時間。由于FFT處理有以前的軟件處理變?yōu)镕FTIP內(nèi)核來實現(xiàn),所以系統(tǒng)的運行時間大大減少。這里按照上面構(gòu)造的FFT從設(shè),單獨給1024個數(shù)據(jù)點進(jìn)行FFT運算,利用里面的計時寄存器進(jìn)行計時。因此采用FFT IP內(nèi)核設(shè)計后,系統(tǒng)的執(zhí)行效率大大提高。但是ARM9系統(tǒng)的功耗大,發(fā)熱高,功耗問題也是嵌入式手持設(shè)備必須考慮的問題之一。如果是在功耗有限制的場合,ARM9是比較好的選擇。結(jié)論 本論文從硬件和軟件兩個方面研究了嵌入式聲音采集和頻譜分析系統(tǒng)的優(yōu)化設(shè)計和實現(xiàn)問題。本文設(shè)計的聲音采集和處理系統(tǒng)包括ARM S3C2410嵌入式系統(tǒng)芯片、各種類型的串行輸出模數(shù)轉(zhuǎn)換芯片進(jìn)行模數(shù)轉(zhuǎn)換、LCD和FFT部分。論文闡述了系統(tǒng)引導(dǎo)程序的概念及作用,完成了ARMS3C2410的引導(dǎo)程序設(shè)計;利用了ARM S3C2410所特有的快速中斷機(jī)制和DAC接口,完成了聲音采集過程的程序設(shè)計;詳細(xì)介紹了數(shù)據(jù)的Flash存儲、與PC機(jī)的通訊功能的設(shè)計實現(xiàn),并對實驗數(shù)據(jù)進(jìn)行了分析。在實現(xiàn)了整個系統(tǒng)的設(shè)計目標(biāo)基礎(chǔ)上,從硬件和軟件兩方面,對系統(tǒng)提出了改進(jìn)方案。構(gòu)建了基于S3C2410實現(xiàn)聲音采集和處理的硬件結(jié)構(gòu)。采用了FFT內(nèi)核,實現(xiàn)了對所采集的聲音進(jìn)行的頻譜分析,加快系統(tǒng)進(jìn)行數(shù)據(jù)處理的速度。在算法上,本文研究了實數(shù)的FFT變換及基音周期估計方法。對于聲音信號的周期檢測,可以探討更好的優(yōu)化方法,以使基音周期估計更加精確。這些改進(jìn)對頻譜分析的精度更高,頻率更高,同時使成本會增加,所以在實際的應(yīng)用中,需要綜合考慮改進(jìn)算法和增加硬件的投入來滿足頻譜分析的要求。最后希望在不斷改進(jìn)下開發(fā)出具有體積小、成本低的產(chǎn)品,可運用于便攜式信號采集、顯示、處理,聲音信號的頻譜分析,環(huán)境監(jiān)測,故障診斷等領(lǐng)域。參考文獻(xiàn)[1] 鄒思軼.嵌入式Linux設(shè)計與應(yīng)用[M].北京:清華大學(xué)出版社,2002.[2] 魏忠,蔡勇,雷紅衛(wèi).嵌入式開發(fā)詳解[M].西安:電子工業(yè)出版社,2003.[3] 王學(xué)龍.嵌入式Linux系統(tǒng)設(shè)計與應(yīng)用[M].北京:清華大學(xué)出版社,2001.[4] 杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2004.[5] CMRUS UDGIC,EP73xx user’s Guide,2002.[6] PHlLIP,UDAl341 user’s Guide.[7] 馬忠梅,李善平.ARMamp。LINUX嵌入式系統(tǒng)教程[M].北京航空航天大學(xué),2004.[8] 孫天澤.嵌入式設(shè)計及Linux驅(qū)動開發(fā)指南一基于ARM9處理器[M].北京:電子工業(yè)出版社,2005.[9] 科恩.時頻一分析:理論與應(yīng)用[M] .居憲譯.西安:西安交通大學(xué)出版社,2000.[10] 陳渝,李明,楊曄.源碼開放的嵌入式系統(tǒng)軟件分系與實踐—基于Skyeye和ARM開發(fā)平臺[M].北京航空航天大學(xué)出版社.2004.[11] 閻石.?dāng)?shù)字電子技術(shù)基礎(chǔ)[M].高等教育出版社,1989.[12] 高光天,薛天字,孟慶昌.模數(shù)轉(zhuǎn)換器應(yīng)用技術(shù)[M].科學(xué)出版社,2001.[13] 清華大學(xué)電子學(xué)教研組.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2001.[14] 潘松,黃繼業(yè).ARM9技術(shù)實用教程[M].北京:清華大學(xué)出版社,2005.[15] 仁愛鋒,初秀琴,常存基.于FPGA的嵌入式系統(tǒng)設(shè)計[M] .西安電子科技大學(xué)出版社,2004.[16] 潘松,黃繼業(yè).現(xiàn)代DSP技術(shù)[M].西安:電子科技大學(xué),2003.[17] 費浙平.基于Linux嵌入式系統(tǒng)程序開發(fā)要點(二)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003,9.[18] Alessandro Ruibini.Linux設(shè)備驅(qū)動程序[M].北京:中國電力出版社,2000.[19] Instruments Catalogue.U.S.National Instruments,2003.[20] Signal Processing Toolset User Manual.Lfsa:National Instruments Corporation,2001.致  謝本論文是在我的導(dǎo)師山傳文老師的悉心指導(dǎo)下完成的。老師淵博的專業(yè)知識,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,平易近人的人格魅力對我影響深遠(yuǎn)。本論文從選題到完成,每一步都是在老師的指導(dǎo)下完成的,傾注了老師大量的心血,在此對老師所給予的認(rèn)真、細(xì)致、專業(yè)的指導(dǎo)表示崇高的敬意和衷心的感謝!在這里還要感謝感謝輔導(dǎo)員趙老師和孟老師的指導(dǎo)和幫助,對我的支持和鼓勵。在四年的學(xué)習(xí)期間,得到了學(xué)校領(lǐng)導(dǎo),老師和同學(xué)的關(guān)心和幫助,在此表示深深的感謝。同時特別感謝我的同學(xué)是他們讓我在大學(xué)里度過了美好的時光。最后感謝我的母校北華大學(xué)四年來對我的大力栽培,感謝母校給我提供學(xué)習(xí)鍛煉的機(jī)會和場
點擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1