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

正文內(nèi)容

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

2024-07-22 18:51 上一頁面

下一頁面
 

【正文】 如果設備所需的USB資源得以滿足,主機就會查找驅動,當正確找到驅動后,主機給設備發(fā)送配置命令,配置完畢后,這個USB設備就枚舉成功了。 USB的設備描述符標準的USB描述符包括設備(Device)描述符、配置(Configuration)描述符、接口(Interface)描述符、端點(Endpoint)描述符以及字符串(String)描述符,字符串描述符不是必須的。接口描述符包含了與端點通信所需要的信息,它可以有零個或多個端點描述符。配置描述符描述了一個特定的設備配置信息,主機使用Set_Configuration請求來選擇一個配置,用Get_Configuration請求來返回一個配置。接口描述符總是作為配置描述符的一部分被返回,主機不能通過Get_Descriptor請求直接獲取接口描述符。端點0不需要描述符,它也不能直接由Get_Descriptor請求來獲得。某些設備的功能類似或者提供類似的服務,USB協(xié)議就將它們歸為一類,并且定義了特定的請求,稱為類請求。表21 SETUP包格式大?。˙)11222域bmRequestTypebRequestwValuewIndexwLength,bmRequestType表示設備請求類型,D7:數(shù)據(jù)傳輸方向, 0=主機到設備,1=設備到主機;D6…5:類型,0=標準,1=類型,2=廠商,3=保留;D4…0:接收方,0=設備,1=接口,2=端點,3=其它;4…31=保留。本章介紹了USB協(xié)議的相關內(nèi)容,包括USB傳輸要件,USB傳輸中的事務、信息包和聯(lián)絡信號,USB的傳輸結構,USB的總線枚舉過程,USB的設備描述符以及USB請求。其中硬件部分的收發(fā)器的作用是驅動和接收USB的差分數(shù)據(jù),串行輸入引擎SIE的作用是前端硬件和USB標準中相關規(guī)定的協(xié)議內(nèi)容,即包識別、數(shù)據(jù)編碼和譯碼、填充和去填充、CRC錯誤校驗、數(shù)據(jù)串并和并串轉換等。單片機通過8位并行接口傳送經(jīng)過A/D轉換的采集數(shù)據(jù),存儲在FIFO存儲器中。要實現(xiàn)一個USB設備,首先面對的問題就是選擇一種適合的USB控制芯片。 內(nèi)嵌通用微控制器的USB控制芯片可以說是在通用微控制器的基礎上擴展了USB功能。 這些USB控制芯片只負責處理USB相關的通信工作,而且必須由外部微控制器的控制才能正常工作。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道的模擬量進轉換器進行轉換。表31CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7數(shù)字量輸出及控制線:11條 ST為轉換啟動信號:當ST上跳沿時,所有內(nèi)部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。OE=1,輸出轉換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。因ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ.START: 啟動脈沖輸入端。OE: 允許輸出端。 (2)初始化時,使ST和OE信號全為低電平。 (6)當EOC變?yōu)楦唠娖綍r,這時給OE為高電平,轉換的數(shù)據(jù)就輸出給單片機了。 圖33 AT89C51管腳圖主要特性:(1)4K字節(jié)可編程FLASH存儲器(壽命:1000寫/擦循環(huán))(2)全靜態(tài)工作:0Hz24KHz(3)三級程序存儲器保密鎖定(4)128*8位內(nèi)部RAM(5)32條可編程I/O線(6)兩個16位定時器/計數(shù)器(7)6個中斷源(8)可編程串行通道(9)低功耗的閑置和掉電模式(10)片內(nèi)振蕩器和時鐘電路 PDIUSBD12介紹PDIUSBD12是一款性價比很高的USB器件,它通常用作微控制器系統(tǒng)中實現(xiàn)與微控制器進行通信的高速通用并行接口。,它還符合大多數(shù)器件的分類規(guī)格:成像類、海量存儲器件、通信器件、打印設備以及人機接口設備。此外它還集成了許多特性包括SoftConnetTM、GoodLinkTM、可編程時鐘輸出、低頻晶振和終止寄存器。圖34 PDIUSBD12內(nèi)部結構說明:模擬收發(fā)器:集成的收發(fā)器接口可通過終端電阻直接與USB電纜相連。位時鐘恢復:位時鐘恢復電路使用4X過采樣規(guī)則,從進入的USB數(shù)據(jù)流中恢復時鐘,能跟蹤USB規(guī)定范圍內(nèi)的抖動和頻漂。默認狀態(tài)下不與VCC相連,其連接的建立是通過外部/系統(tǒng)微控制器發(fā)送命令來實現(xiàn)的。SoftConnectTM是PHILIPS半導體一項尚未獲批準的專利技術。隨后與PDIUSBD12之間成功的傳輸(帶應答)將關閉LED。該特性降低了現(xiàn)場支持和熱線的成本。對一個微控制器而言,PDIUSBD12看起來就像一個帶8位數(shù)據(jù)總線和一個地址(占用2個位置)的存儲器件,PDIUSBD12支持多路復用和非復用的地址和數(shù)據(jù)總線;支持主端點與本地共享RAM之間直接讀取的DMA傳輸;還支持單周期和突發(fā)模式的DMA傳輸。典型的,對DMA控制器的傳輸模式,字節(jié)計數(shù)寄存器和地址計數(shù)器進行正確的編程。在單周期DMA中,DMREQ在每單個應答后直到被DMACK_N重新激活之前保持無效。多路地址/數(shù)據(jù)總線ALE接單片機的ALE腳,這樣使用傳送指令可以與D12接口,對D12操作就象對D12操作一樣,此時忽略A0(命令口和數(shù)據(jù)口地址線)的輸入。CLKOUT是D12的時鐘輸出,可以通過固件編程改變其頻率,在調(diào)試固件時,可作為參考。89C51的ALE和PD12的ALE相接,表示采用單獨地址和數(shù)據(jù)總線配置。設備應用程序從緩沖區(qū)里取數(shù)據(jù)顯示,通過數(shù)值來說明USB接口的采集速率比一般的串行總線速度高。指向通道0地址啟動A/D轉換延時等待A/D轉換結束讀A/D轉換值,存內(nèi)存指向下一個通道地址8個通道轉換?完?繼續(xù)YESNO圖41 A/D轉換程序流程圖 固件的開發(fā)Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil C51的工具包中,uVision是C51 for Windows的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。ABS文件由OH51轉換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。因此,編寫固件程序的一個最主要的目的就時讓Windows可以檢測和識別設備。主機首先要發(fā)令牌包給USB設備(這里是PDIUSBD12),PDIUSBD12接收到令牌包后就給單片機發(fā)中斷。PDIUSBD12的命令字分為三種:初始化命令字、數(shù)據(jù)流命令字和通用命令字。 PDIUSBD12固件程序的編寫USB設備啟動流程如下:1. USB設備接入USB口,發(fā)出連接USB命令;2. 主機發(fā)出讀設備描述符兩次;3. 主機根據(jù)設備描述符—廠商ID、產(chǎn)品ID,啟動相應設備驅動程序;4. 設備驅動程序初始化USB設備;①讀設備描述符;②讀配置描述符;③選擇接口、端點(管道),確定傳輸方式。在發(fā)出連接USB命令后,主機先讀取設備描述符,然后發(fā)出設置USB地址SETUP包,設置USB地址后,進行主機客戶驅動與設備初始化。 固件結構本數(shù)據(jù)采集系統(tǒng)的固件有著如下圖42的積木式結構:主循環(huán):發(fā)送USB請求、讀入數(shù)據(jù)、采集通道和處理USB總線事件等等標準請求 廠商請求中斷服務程序PDIUSBD12 命令接口硬件提取層 數(shù)據(jù)采集系統(tǒng)固件結構圖42 數(shù)據(jù)采集系統(tǒng)固件結構 固件設計的目標就是使PDIUSBD12在USB上達到最大的傳輸速率。 圖45 數(shù)據(jù)采集系統(tǒng)的固件結構 由于這種結構,主循環(huán)不關心數(shù)據(jù)是來自USB串口還是并口,它只檢查循環(huán)緩沖區(qū)內(nèi)需要處理的新數(shù)據(jù)。主循環(huán)向協(xié)議處理程序發(fā)出請求。:這部分代碼的處理由PDIUSBD12產(chǎn)生的中斷,在中斷服務程序中,它將數(shù)據(jù)從PDIUSBD12的內(nèi)部FIFO取回到CPU存儲器并建立正確的事件標志,以通知主循環(huán)程序進行處理。 固件的編程實現(xiàn) 底層函數(shù)最底層為兩個面向硬件電路的函數(shù):outportb( ),inportb( ),用以完成CPU和D12之間的數(shù)據(jù)傳輸,這是所有其它函數(shù)的基礎。在ISR函數(shù)的入口固件使用ReadInterruptRegister()來決定中斷源,根據(jù)中斷源進入相應的子程序進行處理。 D12_INT_SUSPENDCHANGE) = 1; if(i_st amp。 D12_INT_ENDP1OUT) ep1_rxdone(); if(i_st amp。這些過程是很重要的,它確保了在MCU準備好服務D12之前,D12不會進行操作。/* 數(shù)據(jù)采集子程序 */void adc_handler(void){ unsigned char ADC_DATA; ADC_DATA=IN_PORT; D12_WriteEndpoint(3, 1, amp。設備驅動程序包括兩層:函數(shù)驅動程序層和總線驅動程序層,函數(shù)驅動程序一方面通過IRP及API函數(shù)與應用程序通信,另一方面調(diào)用相應的總線驅動程序,總線驅動程序完成和外設硬件通信。2)在驅動程序類型中選擇WDM Driver,WDM Function Driver,在硬件設備所支持的總線類型中選擇USB(WDM Only),在USB Vendor ID(廠商識別碼)中填寫0741,在USB Product ID(產(chǎn)品識別碼)中填寫0821。6)在I/O請求IRP處理方式中選擇None,即IRP不排隊。 在使用DriverWizard生成驅動程序框架、模塊及部分程序源代碼后,開發(fā)者只需完成圖2中三個控制代碼所對應的三個功能模塊的編程:模塊USBDIO_IOCTL_ID_CODE_Handler的功能是從控制端點0讀取數(shù)據(jù),模塊USBDIO_IOCTL_TEST_COMMAND_Handler的功能是向控制端點0發(fā)送一個控制命令,模塊USBDIO_IOCTL_DMA_COMMAND_Handler的功能是向控制端點0發(fā)送一個要求USB設備進行DMA傳輸?shù)目刂泼?,下面是第一個模塊的編程實例?! LONG numData?! tatus=STATUS_INSUFFICIENT_RESOURCES?!   return status。  bRequest:1字節(jié),用來指定請求?! ∫陨献侄蔚膽靡呀?jīng)在程序注釋中標出,在此不再贅述。USB設備驅動程序的調(diào)用為了完成對驅動程序的調(diào)用,筆者使用VC++,程序包共由五個功能模塊組成,用戶通過調(diào)用這些模塊即可方便的完成對USB外設的控制及讀寫,這些模塊如下:1)int CTRLReadData(unsigned char usbSelect,unsigned char *rbuffer,unsigned char numData),主要功能是讀取ISP1581控制端點0發(fā)來的數(shù)據(jù),數(shù)據(jù)存放在緩沖區(qū)rbuffer中。5)int DMAWrite(unsigned char usbSelect, unsigned char *rbuffer, int len, int waitTime),主要功能是計算機批量寫數(shù)據(jù)到ISP1581,而ISP1581將以DMA方式寫數(shù)據(jù)到外部RAM。要編寫USB設備的驅動程序,必須要有能夠編譯WDM驅動程序的軟件環(huán)境,建議使用Visual C++來編制該驅動程序。應用程序的實現(xiàn)用戶應用程序是系統(tǒng)與用戶的接口,它通過通用驅動程序完成對外設的控制和通信。 NNYY成功失敗檢測USB設備設置設備參數(shù)啟動A/D模塊請求上傳數(shù)據(jù)包報告數(shù)據(jù)丟失獲得有效數(shù)據(jù)包下組數(shù)據(jù)準備就緒顯示錯誤信息返回存儲、顯示數(shù)據(jù)延遲至下組數(shù)據(jù)包準備就緒啟動USB設備 圖54 應用程序流程圖 用戶應用程序的主要功能為:開啟或關閉USB設備、檢測USB設備、設置USB數(shù)據(jù)傳輸管道、設置A/D狀態(tài)和數(shù)據(jù)采集端口、實時從USB接口采集數(shù)據(jù)、顯示并分析數(shù)據(jù)。當應用程序接收到此消息后,便從它提交的內(nèi)存中讀取數(shù)據(jù)并顯示和存盤。早在1995年,就已經(jīng)有PC機帶有USB接口了,但由于缺乏軟件及硬件設備的支持,這些PC機的USB接口都閑置未用。本論文所完成的工作和分析可概括為以下幾點:。3. 。為了實現(xiàn)高速數(shù)據(jù)傳輸。,雖然程序的可讀性相對較好,但它的執(zhí)行效率卻不如匯編語言的執(zhí)行效率高。 參考文獻[1] [M].北京:人民郵電出版社,[2] 許永和,[M].北京:北京航空航天大學出版社,[3]李全利,[M].北京:高等教育出版社,[4] USB固件編程與驅動開發(fā)[M].北京:北京航空航天大學出版社,[5]邊海龍,[M].北京:人民郵電出版社,[6][M].西安:西安電子科技大學出版社,[7] WDM設備驅動程序開發(fā)指南[M].孫義,:機械工業(yè)出版社,[8]劉炳文,李鳳華編著Visual Basic Win32 API程序設計[M].北京:清華大學出版社,[9][M].西安:西安電子科技大學出版社,[10]Jan Axelson編著;[M].北京:中國電力出版社, 附錄英文原文HAVE39
點擊復制文檔內(nèi)容
數(shù)學相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1