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

正文內(nèi)容

基于f2812的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)-資料下載頁(yè)

2025-05-19 15:29本頁(yè)面

【導(dǎo)讀】擬信號(hào)的采集和處理。這款DSP有豐富的片內(nèi)外設(shè),用它作為處理器進(jìn)行電路設(shè)。計(jì),可以使電路結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)單,成本低廉、開(kāi)發(fā)周期較短。系統(tǒng)選用USB作為和。據(jù)經(jīng)過(guò)DSP的處理后,通過(guò)USB上傳到PC,由上層軟件進(jìn)行進(jìn)一步的處理。信及代碼優(yōu)化等。并詳細(xì)介紹了作為通信接口的USB固件的開(kāi)發(fā)流程。

  

【正文】 LV51216,該芯片是 512K 16bit 的高速 CMOS 靜態(tài)存儲(chǔ)器,存取速度為 12ns。片外存儲(chǔ)器占用地址 0x100000~0x3FFFFF。這種器件可以按照 8 位或 16 位的方式使用,它的電平可以和通常的 器件連接,它與 DSP 的連接示意圖如圖 39 所示。 圖 39 DSP 和存儲(chǔ)器的接口示意圖 系統(tǒng)中實(shí)際采集到的圖像數(shù)據(jù)量大約有 1M 8bit,而 F2812 的片上 RAM 最大只有 64K 字,這部分空間還要來(lái)執(zhí)行程序,用于存放數(shù)據(jù) 的空間遠(yuǎn)遠(yuǎn)不能滿(mǎn)足,因此需要將數(shù)據(jù)空間擴(kuò)展到 IM 左右才能實(shí)現(xiàn)圖像數(shù)據(jù)的存儲(chǔ)。這里我們選用了 16 位的存儲(chǔ)器 IS61LV51216,在存儲(chǔ)數(shù)據(jù)時(shí)可直接將相鄰的兩個(gè) 8 位數(shù)據(jù)一起傳送到片外存儲(chǔ)器中進(jìn)行存放。相鄰的兩個(gè)數(shù)據(jù),從第一個(gè)數(shù)據(jù)開(kāi)始,低地址的數(shù)據(jù)存放在低 8 位,高地址的數(shù)據(jù)放在高 8 位,這些都是在進(jìn)行數(shù)據(jù)處理的時(shí)候完成的。 IS6lLV51216 可與 TMS320F2812 芯片箭腳直接連接,只需將 SRAM的地址線、數(shù)據(jù)線與 F2812 的地址線、數(shù)據(jù)線相連接,并輔以片選線和控制線選中該芯片即可。 F2812 與 68013 的接口設(shè)計(jì) 如圖 310 所示,將 DSP 芯片的 GPIOB 口的 16 條信號(hào)線與 USB 的數(shù)據(jù)線FD 相連,作為大批量數(shù)據(jù)傳輸通道。 GPIOA0 設(shè)置為輸出,用來(lái)控制 USB 的同步時(shí)鐘,只在同步模式時(shí)使用; GPIOAl 設(shè)置為輸出,控制 USB 的寫(xiě)時(shí)序; GPIOA2控制 USB 的硬提交管腳, USB 的 SlaveFIFO 模式默認(rèn) 512 個(gè)字節(jié)作為一個(gè)傳輸包,若分包傳輸后剩余數(shù)據(jù)不足一個(gè)包,可將此信號(hào)置 0,實(shí)現(xiàn)剩余數(shù)據(jù)的硬提XA[0… 18] XD[0… 15] XWE XWD XZCS6AND7 A[0… 18] D[0… 15] /WE /OE /CE TMS320F2812 IS61LV51216 交; GPIOA3 和 GPIOA4 設(shè)為輸出選通 USB 傳輸時(shí)使用的通道; GPIOA5 和GPIOA6 分別與 USB 的 滿(mǎn)、空信號(hào)相連,監(jiān)測(cè) USB 的 FIFO 中的數(shù)據(jù)是否為滿(mǎn)。將 F2812 芯片的 SCIB 口作為命令傳輸通道,與 USB 芯片的 SCIEl 連接 [2729]。 在上位機(jī)處理采集數(shù)據(jù)時(shí), DSP 要不斷的把大量的采集并處理好的 16 位數(shù)據(jù)通過(guò) USB 接口傳到上位機(jī)中, USB 采用 SLAVE FIFO 模式,適合大數(shù)據(jù)量的通信。為了提高 F2812 和 68013 的通信效率,傳輸時(shí),用兩塊芯片的 SCI 接口作為傳輸兩者命令和狀態(tài)的專(zhuān)用通信接口,大大提高了傳輸?shù)男省_@在 節(jié)有詳細(xì)的介紹。 圖 310 DSP 和 USB 的接口示意圖 本章小結(jié) 本章小結(jié)本章詳細(xì)論述了系統(tǒng)的硬件電路的設(shè)計(jì)方法。首先對(duì)系統(tǒng)的前端ADC 模塊進(jìn)行了分析,由兩套設(shè)計(jì)方案比較,優(yōu)選了 DSP 芯片自帶的 ADC 模塊作為系統(tǒng)的采集模塊。其次給出了系統(tǒng)的電源電路、時(shí)鐘電路、 FLAG 接口電路、復(fù)位電路等外圍電路的設(shè)計(jì)原理和電路圖。詳細(xì)介紹了 DSP 的片上存儲(chǔ)空間和外擴(kuò)總線,選擇適合系統(tǒng)需要的存儲(chǔ)擴(kuò)展區(qū)域,并給出了接口電路圖。最后根據(jù)系統(tǒng)數(shù)據(jù)傳輸?shù)奶攸c(diǎn),設(shè)計(jì)了 DSP 和 USB 的傳輸接口電路。本章是系統(tǒng)的重點(diǎn)和難點(diǎn)。 4 系統(tǒng)的軟 件設(shè)計(jì) 系統(tǒng)的開(kāi)發(fā)環(huán)境 CCS 開(kāi)發(fā)環(huán)境 CCS 開(kāi)發(fā)環(huán)境第四章系統(tǒng)的軟件設(shè)計(jì) DSP 部分的軟件設(shè)計(jì)是在 CCS2. 2FD[0~15] FLAGB FLAGC FIFOADDR1 FIFOADDR0 PKTEND SLWR IFCLK URXD0 UTXD0 GPIOB[0~15] GPIOA6 GPIOA5 GPIOA4 GPIOA3 GPIOA2 GPIOA1 GPIOA0 SCITXDB SCIRXDB ( )環(huán)境下運(yùn)行的。該代碼調(diào)試器是一種針對(duì)標(biāo)準(zhǔn) TMS320 調(diào)試接口的集成開(kāi)發(fā)環(huán)境( Integrated Development Environment,IDE),由 TI 公司在 1999 年推出, CCS 提供了基本的代碼生成工具,它們具有一系列的調(diào)試、分析能力。 CCS 支持如圖 41 所示的開(kāi)發(fā)周期的所有階段。 圖 41 CCS 開(kāi)發(fā)周期 CCS 集成開(kāi)發(fā)環(huán)境支持編輯、編譯、匯編、鏈接和調(diào)試 DSP 程序的整個(gè)開(kāi)發(fā)過(guò)程,它還允許編輯 C 代碼和匯編源代碼,還可以在 C 代碼之后顯示與之對(duì)應(yīng)的匯編指令。只需要在菜單 View 中選擇 M 恢 Source/Asm 選項(xiàng),即可看到 C之后跟著的匯編語(yǔ)句。 CCS 使用工程( Project)來(lái)管理應(yīng)用程序的設(shè)計(jì)文檔,這與 MicrosoftVisualStudio 有很大的相似之處。工程中包含有源代碼、目標(biāo)文件、庫(kù)文件、連接命令文件和頭文件。在以往的開(kāi)發(fā)工具中,編譯、匯編和 鏈接是各自獨(dú)立的執(zhí)行程序,開(kāi)發(fā)設(shè)計(jì)人員需要熟悉每個(gè)程序的相關(guān)參數(shù),且需要在 DOS窗口下鍵入這些繁瑣的命令,而在 CCS 集成開(kāi)發(fā)環(huán)境下只需要修改這些參數(shù)即可。而且 CCS 能自動(dòng)查找工程所需要的頭文件,并將它加入到工程中。 CCS 的調(diào)試工具有下列特性: 設(shè)置一個(gè)或者多個(gè)斷點(diǎn); 在斷點(diǎn)處自動(dòng)更新窗口; 使用 Watch 窗口查看變量; 查看和編輯存儲(chǔ)器、寄存器; 使用 Probe Pointg 工具在主機(jī)與目標(biāo)系統(tǒng)間傳輸數(shù)據(jù)流; 可對(duì)目標(biāo)系統(tǒng)中的信號(hào)繪圖顯示; 使用 ProfilePoint 查看執(zhí)行統(tǒng)計(jì)信息; 觀察目標(biāo)系統(tǒng)中執(zhí) 行的反匯編和 C 指令; CCS 還提供 GEL 語(yǔ)言,允許開(kāi)發(fā)者向 CCS 菜單中增加功能。 在軟件開(kāi)發(fā)的分析階段,傳統(tǒng)的調(diào)試手段對(duì)診斷實(shí)時(shí)系統(tǒng)中的錯(cuò)綜復(fù)雜問(wèn)題無(wú)能為力。 CCS 提供支持實(shí)時(shí)分析的 DSP/BIOS 插件,可以用它來(lái)實(shí)時(shí)跟蹤和監(jiān)視一個(gè) DSP 應(yīng)用程序,同時(shí)對(duì)實(shí)時(shí)性能的影響達(dá)到最小。 DSP/BIOS API 提供以下實(shí)時(shí)分析特性: 設(shè)計(jì)概念性規(guī)劃 調(diào)試、語(yǔ)法檢查、探測(cè)點(diǎn)設(shè)置和日志保存等 編程與編譯、創(chuàng)建工程文件編寫(xiě)源程序和配置文件 分析、 實(shí)時(shí)調(diào)試、 統(tǒng)計(jì)和跟蹤 程序跟蹤:顯示寫(xiě)入目標(biāo)日志的事件,并在程序執(zhí)行過(guò)程中反映動(dòng)態(tài)控制流程。 性能監(jiān)控:跟蹤統(tǒng)計(jì)目標(biāo)板資源的使用情況,如處理器負(fù)載和線程時(shí)序等。 文件流:將目標(biāo)板上的 I/O 對(duì)象與主機(jī)上的文件聯(lián) 系在一起。 CCS 支持這些片上的仿真功能,這樣可以提供給開(kāi)發(fā)者一個(gè)真實(shí)的系統(tǒng)工作過(guò)程,從而縮短開(kāi)發(fā)時(shí)間。在進(jìn)行硬件電路調(diào)試時(shí),要通過(guò) XDS 系列硬件仿真器,從而使 CCS 與目標(biāo)板( PCB 板)相連。通過(guò)仿真器和 CCS 開(kāi)發(fā)環(huán)境,還可以進(jìn)行輸出文件的燒寫(xiě),最后使程序固化在 DSP 的 FLASH 中。 USB 的固件開(kāi)發(fā)環(huán)境 USB 的固件開(kāi)發(fā)環(huán)境 USB 部分的固件設(shè)計(jì)是在 Keilu Version2 的環(huán)境下實(shí)現(xiàn)的。它是一個(gè)集成開(kāi)發(fā)環(huán)境,把項(xiàng)目箭理、源代碼編輯、程序調(diào)試等集成到一個(gè)功能強(qiáng)大的環(huán)境中。通過(guò)這個(gè)軟件可以編譯 工程中的 C 源碼,匯編工程中的匯編源程序,連接和重定位工程中的目標(biāo)文件和庫(kù)文件,創(chuàng)建 HEX 文件,調(diào)試目標(biāo)程序。 使用 Keil Software 工具時(shí)的項(xiàng)目開(kāi)發(fā)流程和其它軟件開(kāi)發(fā)項(xiàng)目的流程極其相似: 創(chuàng)建一個(gè)項(xiàng)目從器件庫(kù)中選擇目標(biāo)器件配置工具設(shè)置 用 C 語(yǔ)言或匯編語(yǔ)言創(chuàng)建源程序 用項(xiàng)目管理器生成你的應(yīng)用 修改源程序中的錯(cuò)誤 測(cè)試連接應(yīng)用。 源代碼由 uVision2 IDE 創(chuàng)建并被 C51 編譯或 A51 匯編編譯器和匯編器從源代碼生成可重定位的目標(biāo)文件。 Keil C51 編譯器完全遵照 ANSIC 語(yǔ)言標(biāo)準(zhǔn)支持C 語(yǔ)言的所有標(biāo)準(zhǔn) 特性,另外,直接支持 8051 結(jié)構(gòu)的幾個(gè)特性被添加到里面。Keil A5I 宏匯編器支持 8051 及其派生系列的全部指令集。 uVision2 源代碼級(jí)調(diào)試器是一個(gè)理想的快速可靠的程序調(diào)試器,此調(diào)試器包含一個(gè)高速模擬器,能夠模擬整個(gè) 8051 系統(tǒng)包括片上外圍器件和外部硬件。當(dāng)從器件庫(kù)中選擇器件時(shí)這個(gè)器件的特性將自動(dòng)配置。 DSP 部分的軟件設(shè)計(jì) 利用 C語(yǔ)言編寫(xiě) DSP程序時(shí),可能會(huì)遇到一些對(duì)實(shí)時(shí)性要求很高或是對(duì) DSP的底層資源進(jìn)行操作的場(chǎng)合,這些場(chǎng)合若單純利用 C 語(yǔ)言實(shí)現(xiàn)會(huì)變得非常困難或是根本沒(méi)法實(shí)現(xiàn),因此用 Nc 語(yǔ) 言和匯編語(yǔ)言混合編程。 C 語(yǔ)言與匯編語(yǔ)言混合編程有兩種方式,一種是通過(guò)關(guān)鍵字 asm 可直接在 C語(yǔ)言中嵌入?yún)R編語(yǔ)言。如需要對(duì) F2812 的 INTM 進(jìn)行關(guān)中斷、開(kāi)中斷時(shí),可以直接在 C 語(yǔ)言中插入如下代碼: asm(“ SETC INTM” ); 以上代碼實(shí)現(xiàn)設(shè)置 INTM 位為 l,即關(guān)中斷功能。這種直接在 C 語(yǔ)言中插入?yún)R編語(yǔ)言的方法十分方便,因此在利用 C 語(yǔ)言進(jìn)行 DSP 程序開(kāi)發(fā)時(shí)經(jīng)常利用。需要注意的是,使用關(guān)鍵字 asm 時(shí), C 語(yǔ)言編譯器不會(huì)對(duì)其內(nèi)容進(jìn)行任何檢查,匯編語(yǔ)言的首列一定不能是匯編指令,因此在上述的匯編指令 SETC 前需要加 入空格,否則編譯會(huì)出錯(cuò)。 另一種混合編程的方式是在 C 語(yǔ)言函數(shù)與匯編語(yǔ)言函數(shù)之間互相調(diào)用, C語(yǔ)言編寫(xiě)的函數(shù)在匯編語(yǔ)言中調(diào)用應(yīng)該加上下劃線,這種方式一般只在中斷量列表中定義對(duì)應(yīng)的 C 語(yǔ)言中斷服務(wù)程序時(shí)使用。 圖 42 DSP 數(shù)據(jù)采集和處理程序設(shè)計(jì)流程圖 在對(duì)系統(tǒng)進(jìn)行軟件設(shè)計(jì)之前,我們先對(duì)系統(tǒng)的工作流程有個(gè)比較清楚的了解,下面簡(jiǎn)單介紹一下: 1.上位機(jī)發(fā)出采集命令經(jīng) USB 芯片給 DSP,肩動(dòng)采集命令。 2.輸入信號(hào)調(diào)理模塊對(duì)輸入信號(hào)進(jìn)行調(diào)理,進(jìn)行電平轉(zhuǎn)換和濾波,以滿(mǎn)足系統(tǒng)的要求和 ADC 模塊對(duì)信號(hào)電壓的要求。 3. DSP 驅(qū)動(dòng)電機(jī),觸發(fā)要采集的信號(hào),同時(shí)軟件啟動(dòng) DSP 的序列發(fā)牛器進(jìn)行數(shù)據(jù)轉(zhuǎn)換。 4.為了減小緩存, DSP 轉(zhuǎn)換完一組信號(hào)后要判斷是空采集還是采樣有用的數(shù)據(jù),將有用的數(shù)據(jù)存儲(chǔ)到外擴(kuò) RAM 中。 5.當(dāng)采集完成后, DSP 將采集的數(shù)據(jù)通過(guò) USB 芯片傳到上位機(jī)中。 6.上位機(jī)對(duì)數(shù)據(jù)進(jìn)行顯示、分析和處理。 系統(tǒng)的軟件設(shè)計(jì)包括 DSP 程序的初始化部分、采集處理部分和 USB 部分。系統(tǒng)上電后,程序初始化要將 DSP 所有的應(yīng)用的外設(shè)及時(shí)鐘根據(jù)系統(tǒng)的需要置于初始狀態(tài),然后不斷查詢(xún) SCI 接口有無(wú)采集指令,若收到采集指令,則開(kāi)啟一個(gè) CPU 定時(shí)器(具體時(shí)間可按照系統(tǒng)要求來(lái)設(shè)定),在定時(shí)器中斷中驅(qū)動(dòng)電機(jī)向固定的光電頭出傳送圖像,此時(shí) DSP 進(jìn)行數(shù)據(jù)采集和處理,最后將處理后的有用數(shù)據(jù)送入 USB 中,具體的處理算法見(jiàn) 。 USB 部分的編程則要將采集數(shù)據(jù)送入 PC 機(jī)中,交由上位機(jī)程序?qū)?shù)據(jù)進(jìn)行具體的分析處理。軟件設(shè)計(jì)的流程見(jiàn)圖 42。 系統(tǒng)的初始化程序設(shè)計(jì) DSP 的初始化是設(shè)定 DSP 芯片工作狀態(tài)的重要步驟,只有正確進(jìn)行 DSP 的初始化,才能保證芯片的正確運(yùn)行。在調(diào)試軟件的過(guò)程中,如果發(fā)現(xiàn)程序運(yùn)行不正確,應(yīng)首先查看芯片各寄存器的初始化狀態(tài)設(shè)置 是否正確,然后再調(diào)試用戶(hù)程序,否則將會(huì)降低調(diào)試效率。 DSP 在執(zhí)行應(yīng)用程序前必須要進(jìn)行軟件初始化,主要是因?yàn)?DSP 在 RESET后,許多的寄存器的初值一般同用戶(hù)的要求不一致,例如:等待寄存器, SP,中斷定位寄存器等,需要通過(guò)初始化程序設(shè)置為用戶(hù)要求的數(shù)值。初始化程序的主要作用: 1)設(shè)置寄存器初值; 2)建立中斷向量表: 3)外圍部件初始化。 在運(yùn)行 C 程序之前,必須創(chuàng)建 C 運(yùn)行環(huán)境。這個(gè)任務(wù)由 C 引導(dǎo)程序使用名為 c_int0 的函數(shù)來(lái)執(zhí)行。運(yùn)行時(shí)支持源庫(kù)( )在名為 的模塊中包含了這個(gè)程序 的源程序。 在系統(tǒng)開(kāi)始運(yùn)行時(shí) c_int0 函數(shù)可以被轉(zhuǎn)移或者被調(diào)用,它通常由硬件復(fù)位來(lái)調(diào)用,必須將 c_int0 函數(shù)與其他的目標(biāo)模塊鏈接起來(lái)。當(dāng)使用 c 或者 cr 連接器選項(xiàng)并且包含 作為連接器輸入文件之一時(shí),以上調(diào)用將自動(dòng)實(shí)現(xiàn)。 當(dāng)鏈接 C 程序時(shí),連接器可以將可執(zhí)行輸出模塊中入口點(diǎn)的值賦給_CINT_0。然而在復(fù)位時(shí)這并不會(huì)自動(dòng)設(shè)置硬件到指向 c_into 的向量。 c_int0 函數(shù)執(zhí)行如下初始化 c 環(huán)境的任務(wù): 1.為系統(tǒng)堆棧定義一個(gè)名為 .stack 的段,并設(shè)置初始化堆棧指針; 2.初始化全局變量, 通常將 .cinit 段中的初始化表中的數(shù)據(jù)復(fù)制到為 .bs 段中的變量分配的存儲(chǔ)區(qū)來(lái)實(shí)現(xiàn)。如果在加載時(shí)為初始化變量( cr 選項(xiàng)),則加載器在程序運(yùn)行之前執(zhí)行該步驟。 3.調(diào)用函數(shù) main 運(yùn)行 C 程序。 下面是部分初始化程序,代碼初始段和看門(mén)狗初始化程序。 .ref_c_int00 .sect“ codestart” Code_start: .if WD_DISABLE=1 LB wd_disable ;跳轉(zhuǎn)到看門(mén)狗停止?fàn)顟B(tài) .else LB_c_int00 ;跳轉(zhuǎn)到運(yùn)行支持源庫(kù)( )的 模塊 .endif ;代碼起始段結(jié)束 .if WD_DISABLE=1 .test Wd_disable: SETC O
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1