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ì)論文)(存儲(chǔ)版)

  

【正文】 輸數(shù)據(jù),其他端點(diǎn)都是單向數(shù)據(jù)傳輸。每一個(gè)傳輸類型的傳輸包括一個(gè)或多個(gè)階段(Stage),一個(gè)階段即一種類型的事務(wù)。③STALL:表示3種意義,即不支持的控制要求、控制要求失敗或端點(diǎn)失敗??刂苽鬏?shù)脑O(shè)置事務(wù)傳輸結(jié)構(gòu)如圖21所示:圖21 控制傳輸結(jié)構(gòu)示意圖控制傳送的數(shù)據(jù)階段,由一個(gè)以上的輸入或輸出事務(wù)構(gòu)成,遵守和批處理傳送相同的協(xié)議規(guī)則。中斷傳輸必須在指定的時(shí)間內(nèi)完成,它一般應(yīng)用于鼠標(biāo)、鍵盤、游戲桿等HID(Human Interface Device)類設(shè)備以及集線器的狀態(tài)報(bào)表中。這個(gè)過(guò)程即稱為USB的總線枚舉。⑧ 掛起為了節(jié)省電源,當(dāng)總線保持空閑狀態(tài)超過(guò)3ms以后,設(shè)備驅(qū)動(dòng)程序就會(huì)進(jìn)入掛起狀態(tài),在掛起狀態(tài)時(shí),設(shè)備的消耗電流不超過(guò)500181。各個(gè)描述符的樹(shù)狀結(jié)構(gòu)如圖25所示:圖25 描述符的樹(shù)狀結(jié)構(gòu)設(shè)備描述符描述了一個(gè)USB設(shè)備的總體信息,它在枚舉過(guò)程中主機(jī)從設(shè)備讀取的第一個(gè)描述符。接口描述符由9個(gè)字節(jié)組成,分為9個(gè)字段。但是只有類請(qǐng)求是不能滿足眾多USB廠商的需求的,所以,USB協(xié)議允許一個(gè)供應(yīng)商為它的設(shè)備自定義特殊的請(qǐng)求,此類請(qǐng)求稱為廠商請(qǐng)求。本章為本設(shè)計(jì)下面內(nèi)容的展開(kāi)奠定了基礎(chǔ)。一旦存滿,串行接口引擎SIE立刻對(duì)數(shù)據(jù)進(jìn)行處理,包括同步模式識(shí)別、并/串轉(zhuǎn)換、位填充/不填充、CRC校驗(yàn)、PID確認(rèn)、地址識(shí)別以及握手鑒定,處理完畢后數(shù)據(jù)由模擬收/發(fā)器通過(guò)D+、D發(fā)送至PC。這些控制器芯片的優(yōu)點(diǎn)是開(kāi)發(fā)者已經(jīng)熟悉了這些通用微控制器的結(jié)構(gòu)和指令集,所以開(kāi)發(fā)起來(lái)救比較容易。A,B和C為地址輸入線,用于選通IN0-IN7上的一路 圖32 ADC0809的內(nèi)部邏輯結(jié)構(gòu)模擬量輸入。D7-D0為數(shù)字量輸出線。OE端控制輸出鎖存器的三態(tài)門。 AT89C51AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。同樣地,PDIUSBD12理想地適用于許多外設(shè),例如:打印機(jī)、掃描儀、外部的存儲(chǔ)設(shè)備、Zip驅(qū)動(dòng)器和數(shù)碼相機(jī)等等,它使得當(dāng)前使用SCSI的系統(tǒng)可以立即降低成本。電壓調(diào)整器:。這就允許系統(tǒng)微控制器在決定與USB建立連接之前完成初始化時(shí)序。處于掛起狀態(tài)時(shí),LED將會(huì)關(guān)閉。DMA傳輸:直接存儲(chǔ)器尋址(DMA)允許在主端點(diǎn)和本地共享存儲(chǔ)器間實(shí)現(xiàn)數(shù)據(jù)塊的有效傳輸。在突發(fā)模式DMA中,DMREQ器件中突發(fā)編程時(shí)一直保持有效。 A/D與單片機(jī)接口電路 圖35 ADC0809與89C51的接口電路、寫(xiě)控制線來(lái)控制轉(zhuǎn)換器的模擬輸入通道地址鎖存、啟動(dòng)和允許輸出。當(dāng)前端的電壓信號(hào)不斷變化的同時(shí),在PC上可以觀察到數(shù)據(jù)的變化,這就表明利用USB接口在數(shù)字采集系統(tǒng)中進(jìn)行數(shù)據(jù)傳輸是能夠?qū)崿F(xiàn)的,而且能夠很好的實(shí)現(xiàn)。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。USB固件程序程序由三部分組成:①初始化單片機(jī)和所有的外圍電路(包括PDIUSBD12);②主循環(huán)部分;③中斷服務(wù)程序。PDIUSBD12數(shù)據(jù)手冊(cè)給出了各種命令的代碼和地址。其余端點(diǎn)依此類推。這樣主循環(huán)程序?qū)W⒂跀?shù)據(jù)的處理,而ISR能夠以最大可能的速度進(jìn)行數(shù)據(jù)的傳輸。ISR通過(guò)設(shè)定事件標(biāo)志“EPPFLAGS”和Setup包數(shù)據(jù)緩沖區(qū)“CONROL_XFER”與主循環(huán)進(jìn)行通信。中斷服務(wù)處理的部分代碼如下://USB中斷處理usb_isr() interrupt 0{ DISABLE; fn_usb_isr(); ENABLE;}void fn_usb_isr(){ unsigned int i_st; = 1; i_st = D12_ReadInterruptRegister(); if(i_st != 0) { if(i_st amp。 D12_INT_ENDP2IN) main_txdone(); if(i_st amp。ADC_DATA); IN_PORT=0x00; if() { DISABLE; = 0; ENABLE; ADC_IN_ID =0x7FF8+GenEpBuf[3]; }}定時(shí)器事件標(biāo)志?總線復(fù)位?掛起改變?建立包?更新LED狀態(tài)采集按鍵狀態(tài)總線復(fù)位處理掛起改變處理調(diào)用協(xié)議處理程序主循環(huán)初始化I/O口、定時(shí)器和中斷,重新連接到USB總線循環(huán)NoYesYesYesYesNoNoNo圖47 主循環(huán)流程/* 主程序循環(huán) */ while(TRUE){ if(){ //數(shù)據(jù)采集處理 DISABLE; = 0; ENABLE; if() adc_handler(); } if () { //設(shè)備復(fù)位中斷處理 DISABLE; = 0; ENABLE; D12SUSPD = 1; } if () { //掛起改變中斷處理 DISABLE; = 0; ENABLE; if(D12SUSPD == 1) { //掛器處理 D12SUSPD = 0; P0 = 0xFF; P1 = 0xFF; P2 = 0xFF; P3 = 0xFF; D12SUSPD = 1; PCON |= 0x02; while (1); } } if (){ //Setup包中斷處理 DISABLE; = 0; ENABLE; control_handler(); D12SUSPD = 1; } } // End Main Loop 第五章 USB設(shè)備驅(qū)動(dòng)及應(yīng)用程序設(shè)計(jì) USB設(shè)備驅(qū)動(dòng)程序USB總線是1995年微軟、IBM等公司推出的一種新型通信標(biāo)準(zhǔn)總線,特點(diǎn)是速度快、價(jià)格低、獨(dú)立供電、支持熱插拔等,、能滿足包括視頻在內(nèi)的多種高速外部設(shè)備的數(shù)據(jù)傳輸要求,由于其眾多的優(yōu)點(diǎn),USB總線越來(lái)越多的被應(yīng)用到計(jì)算機(jī)與外設(shè)的接口中,芯片廠家也提供了多種USB接口芯片供設(shè)計(jì)者使用,為了開(kāi)發(fā)出功能強(qiáng)大的USB設(shè)備,設(shè)計(jì)者往往需要自己開(kāi)發(fā)USB設(shè)備驅(qū)動(dòng)程序,驅(qū)動(dòng)程序開(kāi)發(fā)一直是WINDOWS開(kāi)發(fā)中較難的一個(gè)方面,但是通過(guò)使用專門的驅(qū)動(dòng)程序開(kāi)發(fā)包能減小開(kāi)發(fā)的難度,提高工作效率,本文使用Compuware 。3)增加USB設(shè)備端點(diǎn),設(shè)置端點(diǎn)2為批量輸入/輸出傳輸方式?! TSTATUS USBDIODevice::USBDIO_IOCTL_ID_CODE_Handler(KIrp I)  {  NTSTATUS status = STATUS_SUCCESS。  }  else  {  () =numData。  wValue:2字節(jié),主機(jī)用來(lái)傳輸信息給設(shè)備,開(kāi)發(fā)者可以根據(jù)情況自己定義。2)int CTRLSendTestCommand(unsigned char usbSelect,unsigned short int testCommand),主要功能是發(fā)送測(cè)試命令,變量testCommand定義了測(cè)試命令。應(yīng)用程序主要通過(guò)對(duì)驅(qū)動(dòng)程序中函數(shù)的利用來(lái)實(shí)現(xiàn)對(duì)USB設(shè)備的操作控制。當(dāng)PDIUSBD12的FIFO緩沖區(qū)存滿后,PDIUSBD12自動(dòng)將數(shù)據(jù)打包即時(shí)請(qǐng)求讀入數(shù)據(jù),由SIE自動(dòng)發(fā)送數(shù)據(jù)包。1998年后,隨著微軟在Windows 98中內(nèi)置了對(duì)USB接口的支持模塊,加上USB設(shè)備的日漸增多,USB接口才逐步走進(jìn)了實(shí)用階段。最大傳輸率可以達(dá)到12Mbps,是指主機(jī)控制器最大的處理能力,而一個(gè)USB設(shè)備不可能擁有這么高的帶寬,它的帶寬由主機(jī)的總線驅(qū)動(dòng)程序管理。選擇編程語(yǔ)言也是提高設(shè)備傳輸率的方法之一。sandrO71]site. uottawa. ca, 2 teid, atifW abed] mcrlab. uottawa. CaAbstract In this paper, we present our work to extend a well known 3D graphic modeler Blender to support haptic modeling and rendering. The extension tool is named HAMLAT (Haptic Application Markup Language Authoring Tool). We describe the modifications and additions to the Blender source code which have been used to create HAMLAT Furthermore, we present and discuss the design decisions used when developing HAMLAT, and also an implementation road map which describes the changes to the Blender sourc??梢允褂盟俣雀斓奶幚砥鳌L剿髁薖DIUSBD12固件編程的思想,將PDIUSBD12的固件設(shè)計(jì)成完全的中斷驅(qū)動(dòng),MCU有更多的時(shí)間處理其它工作。它是一種應(yīng)用在PC領(lǐng)域的新型接口技術(shù)。用戶應(yīng)用程序的流程如圖54所示。由于應(yīng)用程序中涉及到與硬件打交道的底層函數(shù),會(huì)大量的引用Win32 API函數(shù),在Visual C++環(huán)境下開(kāi)發(fā)是比較直觀和順乎邏輯的。驅(qū)動(dòng)程序安裝過(guò)程是:將USB設(shè)備加電,連入計(jì)算機(jī)的USB接口,這時(shí)候會(huì)看到Windows操作系統(tǒng)提示發(fā)現(xiàn)新硬件,提問(wèn)是否安裝驅(qū)動(dòng)程序,選擇是,然后選擇驅(qū)動(dòng)程序所在文件夾?! mRequestType  bRequest  wValue  wIndex  wLength 圖53 USB設(shè)置數(shù)據(jù)格式  BmRequestType:1字節(jié),用來(lái)指定數(shù)據(jù)流動(dòng)的方向,請(qǐng)求的類型,以及接收者。  if(pUrb==NULL)  {  () =0。圖52定義控制代碼9)最后選擇完成并確認(rèn)生成新的項(xiàng)目信息,向?qū)С绦蚓蜁?huì)在usbdio目錄中生成一個(gè)名為USBDIO的項(xiàng)目文件,其中包括了ISP1581驅(qū)動(dòng)程序框架、模塊及部分源代碼。該驅(qū)動(dòng)程序的主要功能包括:從控制端點(diǎn)0讀取規(guī)定個(gè)數(shù)的數(shù)據(jù)、向端點(diǎn)0發(fā)出控制命令、從端點(diǎn)2批量讀數(shù)據(jù)、向端點(diǎn)2批量寫(xiě)數(shù)據(jù),++,使用開(kāi)發(fā)包中的向?qū)С绦駾riverWizard就可以方便的生成驅(qū)動(dòng)程序框架、模塊及部分程序源代碼,開(kāi)發(fā)者只需要在功能模塊中加入自己的實(shí)現(xiàn)程序就能完成復(fù)雜的USB設(shè)備驅(qū)動(dòng)程序設(shè)計(jì),下面介紹使用DriverWizard生成ISP1581驅(qū)動(dòng)程序的過(guò)程:1)啟動(dòng)DriverWizard,選擇DriverWorks Project創(chuàng)造一個(gè)名為USBDIO的VC++項(xiàng)目。如果建立標(biāo)志被置位,它向協(xié)議層發(fā)送一個(gè)器件請(qǐng)求進(jìn)行處理。 D12_INT_ENDP1IN) ep1_txdone(); if(i_st amp。它將數(shù)據(jù)從PDIUSBDI2的內(nèi)部FIFO取回到CPU存儲(chǔ)器,并建立正確的事件標(biāo)志以通知主循環(huán)程序。:為了進(jìn)一步簡(jiǎn)化PDIUSBD12的編程,固件定義了一套壓縮了所有訪問(wèn)PDIUSBD12功能的命令接口,以對(duì)PDIUSBD12芯片進(jìn)行操作。后臺(tái)ISR中斷服務(wù)程序和前臺(tái)主程序循環(huán)之間的數(shù)據(jù)交換通過(guò)事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來(lái)實(shí)現(xiàn),例如PDIUSBD12的批量輸出端點(diǎn)可使用循環(huán)的數(shù)據(jù)緩沖區(qū),當(dāng)PDIUSBD12從USB收到一個(gè)數(shù)據(jù)包,那么就對(duì)CPU產(chǎn)生一個(gè)中斷請(qǐng)求,CPU立即響應(yīng)中斷在ISR中固件將數(shù)據(jù)包從PDIUSBD12內(nèi)部緩沖區(qū)移到循環(huán)數(shù)據(jù)緩沖區(qū),并在隨后清零PDIUSBD12的內(nèi)部緩沖區(qū),以使能接收新的數(shù)據(jù)包CPU可以繼續(xù)它當(dāng)前的前臺(tái)任務(wù)直到完成然后返回到主循環(huán)檢查循環(huán)緩沖區(qū)內(nèi)是否有新的數(shù)據(jù)并開(kāi)始其它的前臺(tái)任務(wù)。作為配置操作的一部分,主機(jī)會(huì)設(shè)備設(shè)備的配置值,如果必要的話會(huì)選擇合適的接口備選設(shè)備。單片機(jī)與PDIUSBD12的通信主要是靠單片機(jī)給PDIUSBD12發(fā)命令和數(shù)據(jù)來(lái)實(shí)現(xiàn)的。固件程序一般放入MCU中,當(dāng)把設(shè)備連接到主機(jī)上時(shí),上位機(jī)可以發(fā)現(xiàn)新設(shè)備,然后建立連接。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。 圖36 PDIUSBD12與89C51的連接電路 在該數(shù)據(jù)采集系統(tǒng)中,用ADC0809采集05V的電壓信號(hào),經(jīng)A/D轉(zhuǎn)換后將數(shù)字量存入預(yù)先設(shè)定的緩沖區(qū)里,利用接口芯片D12將數(shù)據(jù)送至USB總線上。如果一直亮或者一直暗,表示USB接口有問(wèn)題,如果D12掛起,則LED關(guān)閉。PDIUSBD12可編程為單周期DMA或突發(fā)模式DMA。并行和DMA接口:一個(gè)普通的并行接口定義成易于使用,快速而且可以主流的微控制器直接連接的接口。當(dāng)PDIUSBD12成功地枚舉和配置后,LED指示將一直點(diǎn)亮。SoftConnectTM:+(用于高速USB器件)設(shè)置為高實(shí)現(xiàn)的。PDIUSBD12內(nèi)部結(jié)構(gòu)如圖34所示。這種靈活性減小了開(kāi)發(fā)的時(shí)間風(fēng)險(xiǎn)以及費(fèi)用(通過(guò)使用已有的結(jié)構(gòu)和減少固件上的投資),從而用最快捷的方法實(shí)現(xiàn)最經(jīng)濟(jì)的USB外設(shè)的解決方案。 (5)是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號(hào)來(lái)判斷。D7DO: 轉(zhuǎn)換所得八位輸出數(shù)據(jù),D7是最高位,而DO是最低位。OE為輸出允許信號(hào),用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。 ADC0809ADC0809允許的最大時(shí)
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1