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

正文內(nèi)容

基于usb總線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(doc畢業(yè)設(shè)計(jì)論文)(更新版)

  

【正文】 只需稍做修改就能正常使用,具體是將類改為USB,即Class=USB,由于本驅(qū)動(dòng)程序使用符號(hào)鏈接名打開設(shè)備,所以刪除ClassGUID選項(xiàng),注意設(shè)備標(biāo)識(shí)符必需為:%DeviceDesc%=USBDIO_DDI, USB\VID_0471amp。  }  對(duì)象I包含了應(yīng)用程序下傳的IRP內(nèi)容,包括命令或數(shù)據(jù)等參數(shù),函數(shù)BuildVendorRequest用來分配并初始化一個(gè)用于廠商請(qǐng)求的URB(USB Request Block),該URB將作為下傳IRP的一個(gè)參數(shù),通過函數(shù)SubmitUrb發(fā)送給總線驅(qū)動(dòng)程序,以便完成與硬件的通信?! umData=*(PUCHAR)()。7)在接口的打開方式中選擇Symbolic link:UsbdioDevice,即應(yīng)用程序以符號(hào)鏈接名打開設(shè)備。USB總線驅(qū)動(dòng)程序已經(jīng)由操作系統(tǒng)提供,驅(qū)動(dòng)程序開發(fā)的重點(diǎn)是函數(shù)驅(qū)動(dòng)程序。初始化后,進(jìn)入循環(huán),輪詢各種狀態(tài)。 D12_INT_ENDP0IN) ep0_txdone(); if(i_st amp。具體代碼如下:void outportb(unsigned char port, unsigned char val){unsigned char xdata *ext_address;ext_address=0xff00 + port;*ext_address = val;} unsigned char inportb(unsigned char port){unsigned char c;unsigned char xdata *ext_address;ext_address=0xff00 + port;c = *ext_address ;return c;} 命令接口在D12的數(shù)據(jù)手冊(cè)中定義了一套壓縮了所有訪問PDIUSBD12功能的命令集,命令接口部分就是將各命令用函數(shù)的形式加以實(shí)現(xiàn)。由于所有的標(biāo)準(zhǔn)器件級(jí)別和廠商請(qǐng)求都是在協(xié)議處理程序中進(jìn)行處理,ISR得以保持它的效率。外圍設(shè)備可使用PDIUSBD12 在USB上傳輸數(shù)據(jù),這些設(shè)備的CPU要忙于處理許多設(shè)備控制和數(shù)據(jù)處理等任務(wù)。USB設(shè)備在正常使用以前,必須由主機(jī)配置設(shè)備。單片機(jī)進(jìn)入中斷服務(wù)程序,首先讀PDIUSBD12的中斷寄存器,判斷USB令牌包的類型,然后執(zhí)行相應(yīng)的操作。 采用PDIUSBD12的固件設(shè)計(jì) 固件編程的主要工作固件是FIREWARE的對(duì)應(yīng)中文詞,它實(shí)際上是單片機(jī)的程序文件,其編寫語(yǔ)言可以采用C語(yǔ)言或是匯編語(yǔ)言。Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。其AO腳接高電平用于控制命令或數(shù)據(jù)輸入到PDIUSBD12,也就是編程中outportcmd()和outportdata()函數(shù)。因?yàn)闆]有使用DMA傳輸方式,所以沒有用到DMACK_N、EOT_N和DMREQ_N等DMA引腳。在該模式下,PDIUSBD12發(fā)出請(qǐng)求時(shí)開始傳輸,當(dāng)字節(jié)計(jì)數(shù)器減少為零時(shí)終止。存儲(chǔ)器管理單元(MMU)和集成RAM:在以12MB/S的速率傳輸并與微控制器并口相連時(shí),MMU和集成RAM作為USB之間速度差異和緩沖區(qū)。GoodLinkTM:GoodLinkTM技術(shù)可提供可提供良好的USB連接指示。PHILIPS串行接口引擎(PSIE):PSIE實(shí)現(xiàn)了全部的USB協(xié)議層,且完全由硬件實(shí)現(xiàn)而不需要固件的參與。集合所有這些特性都為系統(tǒng)顯著節(jié)約了成本,同時(shí)使USB功能在外設(shè)上的應(yīng)用變得容易。它還支持本地的DMA傳輸。 (3)送通道的地址到A、B、C端口上。在時(shí)鐘脈沖頻率為640kHz時(shí),START脈寬應(yīng)大于100ns200ns 。EOC為轉(zhuǎn)換結(jié)束信號(hào)。如果選擇了這種設(shè)計(jì)方按,那么必須再選擇一個(gè)微控制器芯片,這樣就增加了設(shè)備的體積。從芯片大的構(gòu)架來分,市面上所有的USB控制器芯片可以分為不需要外接微控制器的芯片和需要外接微控制器的芯片。協(xié)議引擎部分的主要作用是操作控制管道(端點(diǎn)0)的消息流、USB標(biāo)準(zhǔn)中相關(guān)內(nèi)容規(guī)定的最底層協(xié)議和數(shù)據(jù)接受與發(fā)送。bRequest表示USB設(shè)備請(qǐng)求值,標(biāo)準(zhǔn)請(qǐng)求有11個(gè)命令。端點(diǎn)描述符由7個(gè)字節(jié)組成,分為6個(gè)字段。當(dāng)主機(jī)請(qǐng)求獲取一個(gè)配置描述符的時(shí)候,與配置描述符相關(guān)的所有接口、端點(diǎn)描述符都會(huì)一并返回。不同的描述符從不同的層級(jí)來表示設(shè)備的屬性。④ 設(shè)備默認(rèn)狀態(tài)設(shè)備收到一個(gè)復(fù)位信號(hào)后,連接到主機(jī)的所有設(shè)備的地址為默認(rèn)地址(00H),主機(jī)會(huì)首先發(fā)送一個(gè)獲取設(shè)備描述符的請(qǐng)求,設(shè)備通過這個(gè)默認(rèn)地址向主機(jī)發(fā)送第一次設(shè)備描述符。USB總線枚舉過程中,USB設(shè)備需要經(jīng)歷后4種狀態(tài)。任何剩下的數(shù)據(jù)都作為剩余在最后的事務(wù)中被發(fā)送。 USB的傳輸結(jié)構(gòu)USB的傳輸結(jié)構(gòu)描述的是各個(gè)類型USB傳輸?shù)臅r(shí)序、數(shù)據(jù)包和特征。在控制傳輸、批量傳輸和中斷傳輸中都有一個(gè)相位是聯(lián)絡(luò)數(shù)據(jù)包,它包含的是聯(lián)絡(luò)信息。不同的傳輸類型使用不同的管道,此外管道還可以被分為消息管道(Message Pipe)和流管道(Stream Pipe)消息管道是指具有某種USB定義格式的數(shù)據(jù)流,是雙向的管道;而流管道則是不具有USB定義格式的數(shù)據(jù)流,不具有雙向性。通常情況下,設(shè)備端點(diǎn)是一個(gè)內(nèi)存區(qū)域,或者是控制芯片的一個(gè)緩存器,端點(diǎn)的作用是數(shù)據(jù)緩存。以圖形的方式動(dòng)態(tài)的顯示采樣數(shù)據(jù)。采用常用的AT89C51作為系統(tǒng)的CPU: ADC0809芯片作為AD轉(zhuǎn)換芯片。用戶可以直接使用這個(gè)總線電源。并加載適合的驅(qū)動(dòng)程序。 USB串行總線優(yōu)勢(shì)通用串行總線USB( UniversalS erialB us)是1995年康柏、微軟、IBM,D EC等公司為解決傳統(tǒng)總線不足而推廣的一種新型的通信標(biāo)準(zhǔn)。價(jià)格昂貴。USB通訊技術(shù)的出現(xiàn),使高傳輸速度、強(qiáng)糾錯(cuò)能力、易擴(kuò)展性、方便的即插即用,有機(jī)的結(jié)合在一起。該系統(tǒng)用傳統(tǒng)的USB總線取代了RS232串行總線,通過對(duì)USB協(xié)議和設(shè)備構(gòu)架的充分理解,對(duì)以單片機(jī)89C51和USB接口芯片D12為主的數(shù)據(jù)采集系統(tǒng)進(jìn)行了硬件設(shè)計(jì)和軟件編程,并在此設(shè)計(jì)的基礎(chǔ)上給出相應(yīng)的原理圖。本論文所闡述的數(shù)據(jù)采集系統(tǒng)采用了集成了微處理器的USB接口芯片PDIUSBDI2來完成采樣控制并與PC機(jī)應(yīng)用程序完成系統(tǒng)通信功能,由應(yīng)用程序完成用戶命令及數(shù)據(jù)的顯示。軟件編程主要分為三部分:一是為滿足獲得最大傳輸速率和運(yùn)行效率的固件程序編程。 課題背景現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對(duì)數(shù)據(jù)采集的要求日益普遍,在瞬態(tài)信號(hào)測(cè)量、圖像處理等一些測(cè)量中,都需要進(jìn)行數(shù)據(jù)采集。 課題的提出對(duì)于數(shù)據(jù)采集系統(tǒng)而言有兩個(gè)關(guān)鍵性問題:一是控制A/D轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)目刂破鳎皇遣杉到y(tǒng)與上位機(jī)PC的傳輸方式。本課題旨在使用新型的通用串行總線USB完成數(shù)據(jù)采集系統(tǒng)的構(gòu)架,充分發(fā)揮USB總線接口簡(jiǎn)潔、使用方便的優(yōu)勢(shì)。USB從傳統(tǒng)I/O模式的栓桔中解放出來,開辟了一條外設(shè)同PC機(jī)連接的方法。:和其它老式的PC接口相比,USB接口小且薄,更適合于外設(shè)體積的小型化。USB總線協(xié)議復(fù)雜等。固件中主要完成對(duì)USB協(xié)議規(guī)定的諸多標(biāo)準(zhǔn)請(qǐng)求以及用戶自定義請(qǐng)求的響應(yīng)。為用戶使用該種型號(hào)的USB接口芯片進(jìn)行設(shè)備開發(fā)提供一個(gè)基礎(chǔ)和工作平臺(tái)。每個(gè)設(shè)備必須將端點(diǎn)0設(shè)置為控制端點(diǎn)。事務(wù)根據(jù)其數(shù)據(jù)流方向以及傳輸目的,可以分為3類:輸入、輸出與設(shè)置。②NAK(Negative Acknowledge):表示設(shè)備在忙中。每一個(gè)控制傳輸都必須有設(shè)置與狀態(tài)階段,數(shù)據(jù)階段則是選擇性的。 批量傳輸?shù)膫鬏斀Y(jié)構(gòu)如圖22所示:圖22 批量傳輸結(jié)構(gòu)示意圖中斷傳輸中斷傳輸適用于小批量的、點(diǎn)式、非連續(xù)的數(shù)據(jù)傳輸應(yīng)用的場(chǎng)合。之后,主機(jī)會(huì)通過此通道向設(shè)備發(fā)送一系列的標(biāo)準(zhǔn)USB 請(qǐng)求以獲取所需的信息,設(shè)備必須響應(yīng)這些請(qǐng)求并且采取適當(dāng)?shù)膭?dòng)作。⑦ 設(shè)備配置主機(jī)依照讀取的USB設(shè)備描述符來進(jìn)行配置,如果設(shè)備所需的USB資源得以滿足,主機(jī)就會(huì)查找驅(qū)動(dòng),當(dāng)正確找到驅(qū)動(dòng)后,主機(jī)給設(shè)備發(fā)送配置命令,配置完畢后,這個(gè)USB設(shè)備就枚舉成功了。接口描述符包含了與端點(diǎn)通信所需要的信息,它可以有零個(gè)或多個(gè)端點(diǎn)描述符。接口描述符總是作為配置描述符的一部分被返回,主機(jī)不能通過Get_Descriptor請(qǐng)求直接獲取接口描述符。某些設(shè)備的功能類似或者提供類似的服務(wù),USB協(xié)議就將它們歸為一類,并且定義了特定的請(qǐng)求,稱為類請(qǐng)求。本章介紹了USB協(xié)議的相關(guān)內(nèi)容,包括USB傳輸要件,USB傳輸中的事務(wù)、信息包和聯(lián)絡(luò)信號(hào),USB的傳輸結(jié)構(gòu),USB的總線枚舉過程,USB的設(shè)備描述符以及USB請(qǐng)求。單片機(jī)通過8位并行接口傳送經(jīng)過A/D轉(zhuǎn)換的采集數(shù)據(jù),存儲(chǔ)在FIFO存儲(chǔ)器中。 內(nèi)嵌通用微控制器的USB控制芯片可以說是在通用微控制器的基礎(chǔ)上擴(kuò)展了USB功能。當(dāng)ALE線為高電平時(shí),地址鎖存與譯碼器將A,B,C三條地址線的地址信號(hào)進(jìn)行鎖存,經(jīng)譯碼后被選中的通道的模擬量進(jìn)轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。OE: 允許輸出端。 (6)當(dāng)EOC變?yōu)楦唠娖綍r(shí),這時(shí)給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機(jī)了。,它還符合大多數(shù)器件的分類規(guī)格:成像類、海量存儲(chǔ)器件、通信器件、打印設(shè)備以及人機(jī)接口設(shè)備。圖34 PDIUSBD12內(nèi)部結(jié)構(gòu)說明:模擬收發(fā)器:集成的收發(fā)器接口可通過終端電阻直接與USB電纜相連。默認(rèn)狀態(tài)下不與VCC相連,其連接的建立是通過外部/系統(tǒng)微控制器發(fā)送命令來實(shí)現(xiàn)的。隨后與PDIUSBD12之間成功的傳輸(帶應(yīng)答)將關(guān)閉LED。對(duì)一個(gè)微控制器而言,PDIUSBD12看起來就像一個(gè)帶8位數(shù)據(jù)總線和一個(gè)地址(占用2個(gè)位置)的存儲(chǔ)器件,PDIUSBD12支持多路復(fù)用和非復(fù)用的地址和數(shù)據(jù)總線;支持主端點(diǎn)與本地共享RAM之間直接讀取的DMA傳輸;還支持單周期和突發(fā)模式的DMA傳輸。在單周期DMA中,DMREQ在每單個(gè)應(yīng)答后直到被DMACK_N重新激活之前保持無效。CLKOUT是D12的時(shí)鐘輸出,可以通過固件編程改變其頻率,在調(diào)試固件時(shí),可作為參考。設(shè)備應(yīng)用程序從緩沖區(qū)里取數(shù)據(jù)顯示,通過數(shù)值來說明USB接口的采集速率比一般的串行總線速度高。Keil C51的工具包中,uVision是C51 for Windows的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。因此,編寫固件程序的一個(gè)最主要的目的就時(shí)讓W(xué)indows可以檢測(cè)和識(shí)別設(shè)備。PDIUSBD12的命令字分為三種:初始化命令字、數(shù)據(jù)流命令字和通用命令字。在發(fā)出連接USB命令后,主機(jī)先讀取設(shè)備描述符,然后發(fā)出設(shè)置USB地址SETUP包,設(shè)置USB地址后,進(jìn)行主機(jī)客戶驅(qū)動(dòng)與設(shè)備初始化。 圖45 數(shù)據(jù)采集系統(tǒng)的固件結(jié)構(gòu) 由于這種結(jié)構(gòu),主循環(huán)不關(guān)心數(shù)據(jù)是來自USB串口還是并口,它只檢查循環(huán)緩沖區(qū)內(nèi)需要處理的新數(shù)據(jù)。:這部分代碼的處理由PDIUSBD12產(chǎn)生的中斷,在中斷服務(wù)程序中,它將數(shù)據(jù)從PDIUSBD12的內(nèi)部FIFO取回到CPU存儲(chǔ)器并建立正確的事件標(biāo)志,以通知主循環(huán)程序進(jìn)行處理。在ISR函數(shù)的入口固件使用ReadInterruptRegister()來決定中斷源,根據(jù)中斷源進(jìn)入相應(yīng)的子程序進(jìn)行處理。 D12_INT_ENDP1OUT) ep1_rxdone(); if(i_st amp。/* 數(shù)據(jù)采集子程序 */void adc_handler(void){ unsigned char ADC_DATA; ADC_DATA=IN_PORT; D12_WriteEndpoint(3, 1, amp。2)在驅(qū)動(dòng)程序類型中選擇WDM Driver,WDM Function Driver,在硬件設(shè)備所支持的總線類型中選擇USB(WDM Only),在USB Vendor ID(廠商識(shí)別碼)中填寫0741,在USB Product ID(產(chǎn)品識(shí)別碼)中填寫0821。 在使用DriverWizard生成驅(qū)動(dòng)程序框架、模塊及部分程序源代碼后,開發(fā)者只需完成圖2中三個(gè)控制代碼所對(duì)應(yīng)的三個(gè)功能模塊的編程:模塊USBDIO_IOCTL_ID_CODE_Handler的功能是從控制端點(diǎn)0讀取數(shù)據(jù),模塊USBDIO_IOCTL_TEST_COMMAND_Handler的功能是向控制端點(diǎn)0發(fā)送一個(gè)控制命令,模塊USBDIO_IOCTL_DMA_COMMAND_Handler的功能是向控制端點(diǎn)0發(fā)送一個(gè)要求USB設(shè)備進(jìn)行DMA傳輸?shù)目刂泼?,下面是第一個(gè)模塊的編程實(shí)例。  status=STATUS_INSUFFICIENT_RESOURCES。  bRequest:1字節(jié),用來指定請(qǐng)求。USB設(shè)備驅(qū)動(dòng)程序的調(diào)用為了完成對(duì)驅(qū)動(dòng)程序的調(diào)用,筆者使用VC++,程序包共由五個(gè)功能模塊組成,用戶通過調(diào)用這些模塊即可方便的完成對(duì)USB外設(shè)的控制及讀寫,這些模塊如下:1)int CTRLReadData(unsigned char usbSelect,unsigned char *rbuffer,unsigned char numData),主要功能是讀取ISP1581控制端點(diǎn)0發(fā)來的數(shù)據(jù),數(shù)據(jù)存放在緩沖區(qū)rbuffer中。要編寫USB設(shè)備的驅(qū)動(dòng)程序,必須要有能夠編譯WDM驅(qū)動(dòng)程序的軟件環(huán)境,建議使用Visual C++來編制該驅(qū)動(dòng)程序。 NNYY成功失敗檢測(cè)USB設(shè)備設(shè)置設(shè)備參數(shù)啟動(dòng)A/D模塊請(qǐng)求上傳數(shù)據(jù)包報(bào)告數(shù)據(jù)丟失獲得有效數(shù)據(jù)包下組數(shù)據(jù)準(zhǔn)備就緒顯示錯(cuò)誤信息返回存儲(chǔ)、顯示數(shù)據(jù)延遲至下組數(shù)據(jù)包準(zhǔn)備就緒啟動(dòng)USB設(shè)備 圖54 應(yīng)用程序流程圖 用戶應(yīng)用程序的主要功能為:開啟或關(guān)閉USB設(shè)備、檢測(cè)USB設(shè)備、設(shè)置USB數(shù)據(jù)傳輸管道、設(shè)置A/D狀態(tài)和數(shù)據(jù)采集端口、實(shí)時(shí)從USB接口采集數(shù)據(jù)、顯示并分析數(shù)據(jù)。早在1995年,就已經(jīng)有PC機(jī)帶有USB接口了,但由于缺乏軟件及硬件設(shè)備的支持,這些PC機(jī)的USB接口都閑置未用。3. 。,雖然程序的可讀性相對(duì)較好,但它的執(zhí)行效率卻不如匯編語(yǔ)言的執(zhí)行效率高
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1