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

正文內(nèi)容

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

2025-08-05 18:51上一頁面

下一頁面
  

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