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

正文內(nèi)容

基于dsp數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)(參考版)

2025-06-30 17:19本頁面
  

【正文】 最直接的方法就是每次對C程序編譯時(shí)都生成匯編清單,由于DSP處理器基本上都是單周期指令,因此直接從匯編指令的數(shù)目就可以算出周期數(shù)。對于編寫好的C程序,可以利用CCS工作環(huán)境下的代碼分析菜單(Profiler)了解所要優(yōu)化的代碼段所占用的處理器周期數(shù)。最后一步匯編程序一級(jí)的優(yōu)化,隨具體應(yīng)用而異,而且與所選用的DSP處理器有關(guān),這里主要討論的是C程序的優(yōu)化。2.改寫C程序,優(yōu)化代碼,目標(biāo)集中在高效率上。隨著越來越多的DSP軟件的開發(fā)環(huán)境使用C語言。……SECTIONS{ .reset :BEGIN PAGE=0 .vectors :VECTORS PAGE=0 .cinit :FLASHJ PAGE=0 .text :FLASHA PAGE=0 .stack :RAMM0M1 PAGE=1.bss :RAML0L1 PAGE=1.const load= FLASHB PAGE 0,run=RAML0L1 PAGE 1{……} .econst: load=FLASHB PAGE=0,run=RAML0L1 PAGE 1{……} .sysmem :RAMH0 PAGE=1……}在現(xiàn)代的通用程序設(shè)計(jì)中,一方面由于處理器速度和存儲(chǔ)器容量得到極大的提高,另一方面由于軟件越來越復(fù)雜,因此,程序設(shè)計(jì)追求的首要目標(biāo)清晰度和可理解性。因此,在設(shè)計(jì)命令文件時(shí),需要根據(jù)實(shí)際的硬件組成結(jié)構(gòu)編寫命令文件。2.MEMORY指令描述實(shí)際物理存儲(chǔ)空間的分配情況。同時(shí)還要了解編程時(shí)用了哪些“段”,這些“段”定位到實(shí)際物理存儲(chǔ)空間的哪個(gè)位置。編譯時(shí),不需要了解具體的硬件資源,所有“段”均從0地址開始,鏈接時(shí)解決“段”的重新定位問題。常用的 偽指令有MEMORY和SECTIONS。}if(n=data_len)USB_PKTEND=0。DELAY_NS(50)。DELAY_NS(100)。DELAY_NS(50)。i++){ while(USB_FULL=0)。for(int i=0。在寫數(shù)據(jù)的同時(shí)又牽扯到USB的寫時(shí)序的問題,只有時(shí)序正確才能切實(shí)實(shí)現(xiàn)DSP和USB芯片之間的數(shù)據(jù)傳輸問題,下面簡單介紹下DSP的讀寫控制算法:……USB_WR=1。USB采用SLAVE FIFO模式,當(dāng)FIFO滿了512個(gè)字節(jié)時(shí),會(huì)自動(dòng)提交到上位機(jī)去。如在本系統(tǒng)的軟件設(shè)計(jì)中,在函數(shù)InitSysCtrl()中,通過下面的設(shè)置:=1;將SCIB的時(shí)序打開。在系統(tǒng)中我們將BRR的值設(shè)為7A0H,由表41可知,波特率為2400,通過實(shí)驗(yàn)證明傳輸?shù)木_度良好。表41SCI波特率選擇理想的波特率BRR實(shí)際波特率誤差百分比%24001952(7A0H)240004800976(3D0H)47989600487(1E7H)960619200243(00F3H)1921138400121(0079H)38422在SCI傳輸過程中,波特率越低,誤碼率越低。在器件時(shí)鐘頻率確定的情況下,SCI使用16位的波特率選擇寄存器設(shè)置SCI的波特率,因此SCI可以采用64K種不同的波特率進(jìn)行通信,不同配置時(shí)的波特率選擇如表41所示。當(dāng)然這些指令代碼可以自己制定協(xié)議來編碼。YNN初始化ADC寄存器產(chǎn)生ADC觸發(fā)信號(hào)最大轉(zhuǎn)換通道值MAXCONV裝載到SEQ CNTR3~0位轉(zhuǎn)換開始,每次轉(zhuǎn)換, SEQ CNTR3~0位自動(dòng)減1當(dāng)前轉(zhuǎn)換完成,結(jié)果存到對的ADCRESULT寄存器當(dāng)中所有轉(zhuǎn)換完成?(SEQ CNTR3~0=0?)將ADCRESULT寄存器的數(shù)據(jù)讀出清楚中斷標(biāo)志位INT SEQ1采集結(jié)束?結(jié)束圖44 ADC的軟件流程圖(連續(xù)轉(zhuǎn)換模式下) SCI部分軟件設(shè)計(jì)為了簡化編程的復(fù)雜性,我們用異步串口SCI作為DSP和USB的指令通信接口,來傳輸上位機(jī)指令要求和DSP對可能產(chǎn)生幾種錯(cuò)誤情況的指令代碼。而另外一種情況,若CON_TRUN置0,則一次序列轉(zhuǎn)換完成后,排序指針停在最后狀態(tài)CONVl5,SEQCNRn繼續(xù)續(xù)保持0。在這種情況下,為了避免覆蓋先前轉(zhuǎn)換的結(jié)果,因此必須保證在下一個(gè)轉(zhuǎn)換序列開始之前讀走結(jié)果寄存器的值。當(dāng)排序器從通道CONV00開始按順序變換時(shí),SEQ CNTRn的值從裝載值開始向下計(jì)數(shù),直到SEQ CNTRn等于0。每次轉(zhuǎn)換的結(jié)果保存在相應(yīng)的結(jié)果寄存器中,這些寄存器由低地址向高地址依次進(jìn)行填充。采樣和保持器B轉(zhuǎn)換結(jié)果保存到下一個(gè)寄存器ADCRESULTI,結(jié)果寄存器每次增加2[22]。轉(zhuǎn)換器首先轉(zhuǎn)換采樣和保持器A中鎖存的電壓量,然后轉(zhuǎn)換采樣和保持器B中鎖存的電壓量。如圖43是同步采樣模式下的時(shí)序圖,在這個(gè)例子中,ACQ_PS3位設(shè)置為0001b。 .ref_c_int00 .sect“codestart”Code_start: .if WD_DISABLE=1 LB wd_disable ;跳轉(zhuǎn)到看門狗停止?fàn)顟B(tài) .else LB_c_int00 ;跳轉(zhuǎn)到運(yùn)行支持源庫() .endif ;代碼起始段結(jié)束 .if WD_DISABLE=1 .testWd_disable: SETC OBJMODE ;Set OBJMIDE for 28x object code EALLOW ;仿真讀取使能 MOVZ DP,7029h6 ;將數(shù)據(jù)段WDCR寄存器所在頁植裝載數(shù)據(jù)段 MOV 7029,h,0068h ;看門狗控制寄存器的WDDIS位置1,屏蔽看門狗 EDIS ;Disable EALLOW protected register access LB_c_int00 ; .endif .end A/D轉(zhuǎn)換部分的軟件實(shí)現(xiàn)ADC模塊的采樣采用軟件觸發(fā)方式,在CPU定時(shí)器中斷中肩動(dòng)采樣,采用同步方式采樣16個(gè)通道,并采用每次轉(zhuǎn)換結(jié)束中斷的方式來紀(jì)錄采樣結(jié)果(右移8位),并用軟件啟動(dòng)下一次ADC中斷。3.調(diào)用函數(shù)main運(yùn)行C程序。c_int0函數(shù)執(zhí)行如下初始化c環(huán)境的任務(wù):1.,并設(shè)置初始化堆棧指針;2.初始化全局變量。當(dāng)鏈接C程序時(shí),連接器可以將可執(zhí)行輸出模塊中入口點(diǎn)的值賦給_CINT_0。在系統(tǒng)開始運(yùn)行時(shí)c_int0函數(shù)可以被轉(zhuǎn)移或者被調(diào)用,它通常由硬件復(fù)位來調(diào)用,必須將c_int0函數(shù)與其他的目標(biāo)模塊鏈接起來。這個(gè)任務(wù)由C引導(dǎo)程序使用名為c_int0的函數(shù)來執(zhí)行。初始化程序的主要作用:1)設(shè)置寄存器初值;2)建立中斷向量表:3)外圍部件初始化。在調(diào)試軟件的過程中,如果發(fā)現(xiàn)程序運(yùn)行不正確,應(yīng)首先查看芯片各寄存器的初始化狀態(tài)設(shè)置是否正確,然后再調(diào)試用戶程序,否則將會(huì)降低調(diào)試效率。軟件設(shè)計(jì)的流程見圖42。系統(tǒng)上電后,程序初始化要將DSP所有的應(yīng)用的外設(shè)及時(shí)鐘根據(jù)系統(tǒng)的需要置于初始狀態(tài),然后不斷查詢SCI接口有無采集指令,若收到采集指令,則開啟一個(gè)CPU定時(shí)器(具體時(shí)間可按照系統(tǒng)要求來設(shè)定),在定時(shí)器中斷中驅(qū)動(dòng)電機(jī)向固定的光電頭出傳送圖像,此時(shí)DSP進(jìn)行數(shù)據(jù)采集和處理,最后將處理后的有用數(shù)據(jù)送入U(xiǎn)SB中。6.上位機(jī)對數(shù)據(jù)進(jìn)行顯示、分析和處理。4.為了減小緩存,DSP轉(zhuǎn)換完一組信號(hào)后要判斷是空采集還是采樣有用的數(shù)據(jù),將有用的數(shù)據(jù)存儲(chǔ)到外擴(kuò)RAM中。2.輸入信號(hào)調(diào)理模塊對輸入信號(hào)進(jìn)行調(diào)理,進(jìn)行電平轉(zhuǎn)換和濾波,以滿足系統(tǒng)的要求和ADC模塊對信號(hào)電壓的要求。另一種混合編程的方式是在C語言函數(shù)與匯編語言函數(shù)之間互相調(diào)用,C語言編寫的函數(shù)在匯編語言中調(diào)用應(yīng)該加上下劃線,這種方式一般只在中斷量列表中定義對應(yīng)的C語言中斷服務(wù)程序時(shí)使用。這種直接在C語言中插入?yún)R編語言的方法十分方便,因此在利用C語言進(jìn)行DSP程序開發(fā)時(shí)經(jīng)常利用。C語言與匯編語言混合編程有兩種方式,一種是通過關(guān)鍵字asm可直接在C語言中嵌入?yún)R編語言。當(dāng)從器件庫中選擇器件時(shí)這個(gè)器件的特性將自動(dòng)配置。Keil A5I宏匯編器支持8051及其派生系列的全部指令集。源代碼由uVision2 IDE創(chuàng)建并被C51編譯或A51匯編編譯器和匯編器從源代碼生成可重定位的目標(biāo)文件。 修改源程序中的錯(cuò)誤178。 用C語言或匯編語言創(chuàng)建源程序178。使用Keil Software工具時(shí)的項(xiàng)目開發(fā)流程和其它軟件開發(fā)項(xiàng)目的流程極其相似:178。它是一個(gè)集成開發(fā)環(huán)境,把項(xiàng)目箭理、源代碼編輯、程序調(diào)試等集成到一個(gè)功能強(qiáng)大的環(huán)境中。通過仿真器和CCS開發(fā)環(huán)境,還可以進(jìn)行輸出文件的燒寫,最后使程序固化在DSP的FLASH中。 CCS支持這些片上的仿真功能,這樣可以提供給開發(fā)者一個(gè)真實(shí)的系統(tǒng)工作過程,從而縮短開發(fā)時(shí)間。178。178。DSP/BIOS API提供以下實(shí)時(shí)分析特性:178。在軟件開發(fā)的分析階段,傳統(tǒng)的調(diào)試手段對診斷實(shí)時(shí)系統(tǒng)中的錯(cuò)綜復(fù)雜問題無能為力。 觀察目標(biāo)系統(tǒng)中執(zhí)行的反匯編和C指令;178。 可對目標(biāo)系統(tǒng)中的信號(hào)繪圖顯示;178。 查看和編輯存儲(chǔ)器、寄存器;178。 在斷點(diǎn)處自動(dòng)更新窗口;178。CCS的調(diào)試工具有下列特性:178。在以往的開發(fā)工具中,編譯、匯編和鏈接是各自獨(dú)立的執(zhí)行程序,開發(fā)設(shè)計(jì)人員需要熟悉每個(gè)程序的相關(guān)參數(shù),且需要在DOS窗口下鍵入這些繁瑣的命令,而在CCS集成開發(fā)環(huán)境下只需要修改這些參數(shù)即可。CCS使用工程(Project)來管理應(yīng)用程序的設(shè)計(jì)文檔,這與MicrosoftVisualStudio 。設(shè)計(jì)概念性規(guī)劃調(diào)試、語法檢查、探測點(diǎn)設(shè)置和日志保存等編程與編譯、創(chuàng)建工程文件編寫源程序和配置文件分析、實(shí)時(shí)調(diào)試、統(tǒng)計(jì)和跟蹤圖41 CCS開發(fā)周期CCS集成開發(fā)環(huán)境支持編輯、編譯、匯編、鏈接和調(diào)試DSP程序的整個(gè)開發(fā)過程,它還允許編輯C代碼和匯編源代碼,還可以在C代碼之后顯示與之對應(yīng)的匯編指令。該代碼調(diào)試器是一種針對標(biāo)準(zhǔn)TMS320調(diào)試接口的集成開發(fā)環(huán)境(Integrated Development Environment,IDE),由TI公司在1999年推出,CCS提供了基本的代碼生成工具,它們具有一系列的調(diào)試、分析能力。本章是系統(tǒng)的重點(diǎn)和難點(diǎn)。詳細(xì)介紹了DSP的片上存儲(chǔ)空間和外擴(kuò)總線,選擇適合系統(tǒng)需要的存儲(chǔ)擴(kuò)展區(qū)域,并給出了接口電路圖。首先對系統(tǒng)的前端ADC模塊進(jìn)行了分析,由兩套設(shè)計(jì)方案比較,優(yōu)選了DSP芯片自帶的ADC模塊作為系統(tǒng)的采集模塊。為了提高F2812和68013的通信效率,傳輸時(shí),用兩塊芯片的SCI接口作為傳輸兩者命令和狀態(tài)的專用通信接口,大大提高了傳輸?shù)男?。將F2812芯片的SCIB口作為命令傳輸通道,與USB芯片的SCIEl連接[2729]。 F2812與68013的接口設(shè)計(jì)如圖310所示,將DSP芯片的GPIOB口的16條信號(hào)線與USB的數(shù)據(jù)線FD相連,作為大批量數(shù)據(jù)傳輸通道。相鄰的兩個(gè)數(shù)據(jù),從第一個(gè)數(shù)據(jù)開始,低地址的數(shù)據(jù)存放在低8位,高地址的數(shù)據(jù)放在高8位,這些都是在進(jìn)行數(shù)據(jù)處理的時(shí)候完成的。XA[0…18]XD[0…15]XWEXWDXZCS6AND7A[0…18]D[0…15]/WE/OE/CETMS320F2812IS61LV51216圖39 DSP和存儲(chǔ)器的接口示意圖系統(tǒng)中實(shí)際采集到的圖像數(shù)據(jù)量大約有1M8bit,而F2812的片上RAM最大只有64K字,這部分空間還要來執(zhí)行程序,用于存放數(shù)據(jù)的空間遠(yuǎn)遠(yuǎn)不能滿足,因此需要將數(shù)據(jù)空間擴(kuò)展到IM左右才能實(shí)現(xiàn)圖像數(shù)據(jù)的存儲(chǔ)。片外存儲(chǔ)器占用地址0x100000~0x3FFFFF。由于F2812芯片具有內(nèi)置的128KB的Flash,只需外擴(kuò)其它存儲(chǔ)器用來保存一些配置參數(shù)、狀態(tài)數(shù)據(jù)和分析數(shù)據(jù)等。本文設(shè)計(jì)的系統(tǒng)中復(fù)位時(shí)將XMP/MC置0,從內(nèi)部boot ROM來引導(dǎo)復(fù)位向量。系統(tǒng)可以通過boot ROM來引導(dǎo),而后由軟件將MP/MC置1,這樣就可以訪問7區(qū)了。在這種情況下,從內(nèi)部bootROM來引導(dǎo)復(fù)位向量,而7區(qū)不能被訪問。在這種情況下,必須確實(shí)將復(fù)位向量指向一個(gè)有效的可執(zhí)行代碼的存儲(chǔ)器位置。下面是XMP/MC信號(hào)對XINTF的影響:復(fù)位時(shí),XMP/MC引腳的值被采樣,并被鎖入XINTF的配置寄存器XINTFCNF2。在一個(gè)讀訪問和寫訪問中,等待的狀態(tài)數(shù)、選通信號(hào)建立時(shí)間均可以被指定[25]。在這種方式下,同一個(gè)存儲(chǔ)器可被連到倆個(gè)區(qū)或者可用外部解碼邏輯來區(qū)分這倆個(gè)區(qū)。2.F2812的外部存儲(chǔ)空間TMS320F2812的外部接口如圖38所示,可分為5個(gè)固定的存儲(chǔ)映像區(qū)域,每個(gè)外部接口XINTF區(qū)都有一個(gè)片選信號(hào),用于訪問某一個(gè)特定的區(qū)域。用戶可以選擇從內(nèi)部FLASH存儲(chǔ)器引導(dǎo)程序,也可以根據(jù)需要建立自己的引導(dǎo)程序,使用Zone7空間進(jìn)行程序引導(dǎo),將程序存放在外部空間。F2812芯片內(nèi)部有一個(gè)Boot ROM存儲(chǔ)器,它是掩模型片內(nèi)存儲(chǔ)器,并在出廠時(shí)固化了Boot Loader軟件。每個(gè)模塊都能獨(dú)立訪問,而且每個(gè)模塊都能映射到程序和數(shù)據(jù)空間[9]。M0和M1同時(shí)映射到程序和數(shù)據(jù)空間,所以M0和M1既可以執(zhí)行程序也可以存放數(shù)據(jù)變量。每個(gè)空間的長度都是1K字,其中M0映射到0x00 0000~0x00 03FF空間,M1映射到到0x00 0400~0x00 07FF空間。F2812通過32位數(shù)據(jù)地址和22位程序地址控制整個(gè)存儲(chǔ)器及外設(shè),最大可尋址4G個(gè)字(每個(gè)字16位)
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1