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

正文內(nèi)容

基于usb的數(shù)據(jù)采集系統(tǒng)的研究與設(shè)計(jì)本科畢業(yè)論文-資料下載頁(yè)

2025-06-27 19:30本頁(yè)面
  

【正文】 電源供電與外接供電兩種方式;通過(guò)跳針可以選擇其中一種作為系統(tǒng)各個(gè)部分所需的電源。+5V 供電方式選擇電路如圖 37。D1 為電源指示燈,上電后 D1 點(diǎn)亮。 圖 37 +5V 電源選擇電路圖 5V 電源設(shè)計(jì)5V 電源是 MAX125 的供電電源,本設(shè)計(jì)中,選用的是 NCP1729 電壓反相器將+5V 電壓轉(zhuǎn)換為5V 電壓。連接電路如圖 38 所示。河南師范大學(xué)本科畢業(yè)論文26圖 38 5V 電源轉(zhuǎn)換電路圖 NCP1729 是 CMOS 電荷泵電壓反相器 [19],輸入電壓范圍 ~,輸出電流 50mA,工作電流僅為 122μA,且提供節(jié)省功率的關(guān)斷輸入,進(jìn)一步將電流降至 。它包含一個(gè) 35kHz 的振蕩器,推動(dòng)四個(gè)低電阻 MOSFET 開(kāi)關(guān),產(chǎn)生 26 Ω 的低輸出電阻以及 99%的電壓變換效率。NCP1729 采用節(jié)省空間的 TSOP6(SOT236)封裝。 + 電源設(shè)計(jì)+ 電源是 CY7C68013 所需芯片供電電壓。本設(shè)計(jì)中,選用的是電源轉(zhuǎn)換芯片 ,將+5V 轉(zhuǎn)換為+。連接電路如圖 39 所示。 圖 39 + 電源轉(zhuǎn)換電路圖 EEPROM 電路設(shè)計(jì)該部分電路用于存放 CY7C68013 的 PID/VID 程序。該部分電路主要芯片選用具有 I C 總線接口的 EEPROM 芯片 24LC64。24LC64 是 8K 字節(jié)的電可擦除的 PROM,其工作電壓范圍為 。24LC64 可以一次寫(xiě)入 32 字節(jié),可以任意或連續(xù)的讀出 8K 字節(jié)數(shù)據(jù)。本設(shè)計(jì)所使用 24LC64 的封裝類(lèi)型引腳如圖 310 所示。河南師范大學(xué)本科畢業(yè)論文27圖 310 24LC64 引腳其中 A2,A1,A0 為用戶(hù)配置地址,在 USB 接口硬件系統(tǒng)中,此地址必須為001,WP 為寫(xiě)保護(hù),SCL,SDA 為 I2C 總線的時(shí)鐘和數(shù)據(jù)線。J5 跳針可控制 EEPROM連接。圖 311 為 EEPROM 硬件電路。圖 311 I2C 接口的 EEPROM 電路河南師范大學(xué)本科畢業(yè)論文284 數(shù)據(jù)采集系統(tǒng)的固件程序設(shè)計(jì)本章主要介紹本系統(tǒng)的固件開(kāi)發(fā),重點(diǎn)闡述固件的開(kāi)發(fā)環(huán)境、支持工具、固件框架以及固件各模塊的具體實(shí)現(xiàn)。這里所說(shuō)的固件實(shí)際上是指運(yùn)行在 USB 控制器(CY7C68013)中的可執(zhí)行代碼。本設(shè)計(jì)所涉及到的固件,主要完成了初始化、數(shù)據(jù)傳輸、掛起和恢復(fù)等工作。 固件開(kāi)發(fā)環(huán)境本設(shè)計(jì)中 CY7C68013 的固件開(kāi)發(fā)使用了兩種支持環(huán)境:Cypress 的開(kāi)發(fā)包(EZUSB Control Panel)和 Keil C。當(dāng) USB 外設(shè)(CY7C68013 為控制器)接到主機(jī)后,通過(guò) EZUSB 控制面板將程序下載到 CY7C68013,然后才能通過(guò) Keil C 進(jìn)行調(diào)試。只有通過(guò) Keil C 文件后,才能通過(guò) EZUSB 控制面板下載固件,進(jìn)行 USB 調(diào)試。Keil C51 是美國(guó) Keil Software 公司出品的 51 系列兼容單片機(jī) C 語(yǔ)言的軟件開(kāi)發(fā)系統(tǒng)。與匯編相比,C 語(yǔ)言在功能、結(jié)構(gòu)、可讀性、可維護(hù)性上都有明顯的優(yōu)勢(shì),易學(xué)易用。且 C 語(yǔ)言最大的優(yōu)點(diǎn)是具有良好的可移植性,這使得硬件升級(jí)工作更加容易 [20]。Keil C51 軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows 界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51 生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)?;谝陨咸攸c(diǎn),本系統(tǒng)的大部分程序采用 Keil C51 開(kāi)發(fā)系統(tǒng)完成。利用該系統(tǒng)提供的 C51 編譯器,我們可以把C 文件,然后利用 USB 線和ControlPanel 工具將該文件下載到 CY7C68013 中。 固件程序的功能和架構(gòu) 固件的功能固件程序主要負(fù)責(zé)完成兩項(xiàng)任務(wù) [21]:一是作為駐留在設(shè)備中的內(nèi)部應(yīng)用程序,響應(yīng)主機(jī)的列舉請(qǐng)求,實(shí)現(xiàn)配置設(shè)備并將設(shè)備的配置信息(如支持哪些傳輸類(lèi)型和河南師范大學(xué)本科畢業(yè)論文29端點(diǎn))告知主機(jī),進(jìn)而為主機(jī)和設(shè)備之間進(jìn)行數(shù)據(jù)通信做好準(zhǔn)備工作:二是作為整個(gè)設(shè)備的控制中心,根據(jù)用戶(hù)應(yīng)用系統(tǒng)的特定要求,實(shí)現(xiàn)對(duì)外圍設(shè)備的具體控制。USB 控制器芯片借助 CPU 執(zhí)行固件程序來(lái)控制芯片的活動(dòng),以實(shí)現(xiàn)數(shù)據(jù)傳輸功能。固件的設(shè)計(jì)就是使在 USB 總線上的傳輸能獲得快速的、有效的數(shù)據(jù)傳輸速度。它的操作方式與硬件聯(lián)系緊密,包括 USB 設(shè)備的連接、列舉、重列舉、USB 協(xié)議和中斷處理等等。當(dāng)把設(shè)備連接到主機(jī)上(USB 設(shè)備連接到主機(jī)上的集線器上)時(shí),上位機(jī)可以發(fā)現(xiàn)新設(shè)備,然后建立連接。因此,編寫(xiě)固件程序的一個(gè)最主要的目的就是讓W(xué)indows 可以檢測(cè)和識(shí)別設(shè)備。實(shí)際上,針對(duì)本論文,在一個(gè) USB 傳輸中,CY7C68013 中集成的 SIE 能夠處理很多任務(wù),如解釋 USB 協(xié)議等。但是,固件并不是能包辦一切的,它必須和硬件相互配合,才能完成 USB 所要求的傳輸?shù)热蝿?wù)。USB 器件在微控制器的控制下與主機(jī)進(jìn)行通信,從而實(shí)現(xiàn) USB 的數(shù)據(jù)收發(fā),基本過(guò)程是這樣的:當(dāng) USB 外設(shè)接到主機(jī)上時(shí),主機(jī)首先列舉設(shè)備,之后通過(guò)缺省端點(diǎn)EP0 下載固件程序到其片內(nèi) RAM,接下來(lái)重列舉設(shè)備,用下載到其內(nèi)部 RAM 的固件配置設(shè)備,即用戶(hù)所設(shè)計(jì)的模式,根據(jù)用戶(hù)定義的固件程序中的 VID 和 PID,找到設(shè)備的功能驅(qū)動(dòng)程序,從而完成設(shè)備的配置過(guò)程。傳輸數(shù)據(jù)過(guò)程中,發(fā)送的數(shù)據(jù)以包的形式寫(xiě)入器件的緩沖區(qū),當(dāng)緩沖區(qū)被寫(xiě)滿(mǎn)或者數(shù)據(jù)發(fā)送完畢后,USB 設(shè)置寄存器滿(mǎn)標(biāo)志。如果主機(jī)準(zhǔn)備接受數(shù)據(jù),則向功能設(shè)備端點(diǎn)發(fā)出讀令牌包,端點(diǎn)通過(guò)判斷端點(diǎn)類(lèi)型,和是否準(zhǔn)備發(fā)送數(shù)據(jù)響應(yīng)請(qǐng)求,完成數(shù)據(jù)傳輸后通過(guò)握手包來(lái)完成整個(gè)通信過(guò)程 [22]。 FX2 固件典型架構(gòu) 編寫(xiě)固件程序比較復(fù)雜,需要調(diào)用大量函數(shù),但基本框架卻相對(duì)簡(jiǎn)單,包括以下三個(gè)基本的過(guò)程 [22]: 1) 初始化:包括處理器和 EZUSB 寄存器的初始化。 2) 主函數(shù):包括完成符合設(shè)備特定要求的代碼。 3) 中斷處理:包括處理各種中斷的程序代碼。 FX2 固件的典型流程圖如圖 所示。這個(gè)框架實(shí)現(xiàn)了與 USB 兼容的外圍設(shè)備所需的基本功能。通過(guò)逐步的擴(kuò)充,進(jìn)而健全所需要的其他功能。復(fù)位上電時(shí),河南師范大學(xué)本科畢業(yè)論文30固件先初始化一些全局變量,然后調(diào)用用戶(hù)初始化函數(shù) TD_Init(),將 USB 設(shè)備初始化為非配置狀態(tài),然后開(kāi)中斷。循環(huán)延時(shí) 1 秒后重新枚舉設(shè)備,直到端點(diǎn) 0 收到 SETUP 包退出循環(huán),進(jìn)入循環(huán)語(yǔ)句 while,程序執(zhí)行任務(wù)調(diào)度,任務(wù)調(diào)度就是依次執(zhí)行下面任務(wù): 1) 調(diào)用用戶(hù)函數(shù) TD_Poll() 。 2) 如果發(fā)現(xiàn) USB 設(shè)備請(qǐng)求,則執(zhí)行 USB 請(qǐng)求操作。3) 如果發(fā)現(xiàn) USB 空閑置位,則調(diào)用 TD_Suspend()掛起函數(shù),調(diào)用成功則內(nèi)核掛起;隨后 USB 將會(huì)測(cè)試是否出現(xiàn)遠(yuǎn)程喚醒信號(hào),如果有就調(diào)用 TD_Resume(),內(nèi)核喚醒重新進(jìn)入 while 循環(huán)。河南師范大學(xué)本科畢業(yè)論文31圖 FX2 固件的典型流程圖 固件中的函數(shù)都是通過(guò)主函數(shù)的調(diào)用來(lái)實(shí)現(xiàn)一定的功能,有些函數(shù)只是返回一個(gè)值,做為判斷一個(gè)跳轉(zhuǎn)的條件。下面是固件中的主要功能模塊。 (1)void TD_Init(void) 該函數(shù)對(duì)全局變量進(jìn)行了初始化,比如設(shè)置 CPU(增強(qiáng)型 8051)的時(shí)鐘頻率,通過(guò)配置相應(yīng)的寄存器完成端點(diǎn)的方向、類(lèi)型、緩沖區(qū)的大小和深度等配置。void TD_Init(void){河南師范大學(xué)本科畢業(yè)論文32 CPUCS = ((CPUCS amp。 ~bmCLKSPD) | bmCLKSPD1) 。 //設(shè)置 CPU 時(shí)鐘頻率為48MHz IFCONFIG |= 0x40。 // 設(shè)置 IFCLK 時(shí)鐘頻率為 48MHz EP1OUTCFG = 0xA0。 // 設(shè)置端點(diǎn) 1OUT 有效,批量傳輸 EP1INCFG = 0xA0。 // 設(shè)置端點(diǎn) 1IN 有效,批量傳輸 SYNCDELAY。 // 同步延時(shí) EP2CFG = 0xA2。 // 設(shè)置端點(diǎn) 2 有效,OUT,批量傳輸,雙重緩沖 SYNCDELAY。 EP6CFG = 0xE2。 // 設(shè)置端點(diǎn) 6 有效,IN,批量傳輸,雙重緩沖 SYNCDELAY。 EP2BCL = 0x80。 // 設(shè)置端點(diǎn) 2 的字節(jié)計(jì)數(shù) SYNCDELAY。 EP2BCL = 0x80。 // 因?yàn)槭请p重緩沖,所以寫(xiě)兩次 AUTOPTRSETUP |= 0x01。 // 使能 FX2 的雙自動(dòng)指針特性 Rwuen = TRUE。 // 使能遠(yuǎn)程喚醒功能 GpifInit (); // 初始化 GPIF 寄存器}(2)void TD_Poll(void) 在設(shè)備運(yùn)行過(guò)程中,通過(guò)設(shè)置一個(gè) while()循環(huán),該函數(shù)被不停的重復(fù)調(diào)用。這部分中的操作是完成數(shù)據(jù)采集系統(tǒng)功能的主要部分,比如數(shù)據(jù)的傳輸?shù)取5?,如果有較高中斷優(yōu)先級(jí)的中斷產(chǎn)生,就會(huì)在這個(gè)函數(shù)返回之前,先完成中斷操作。(3)BOOL TD_ Suspend(void)函數(shù) TD_ Suspend(void)會(huì)在固件程序進(jìn)入中止模式之前先被調(diào)用,該函數(shù)會(huì)把設(shè)備設(shè)置為低功率的狀態(tài)。而函數(shù) TD_ Resume(void)則跟蹤外部的回復(fù)(resume)事件,當(dāng)調(diào)用這個(gè)函數(shù)后,設(shè)備將回復(fù)至全功率模式。這兩個(gè)函數(shù)的返回值都是一個(gè) BOOL 型的值。河南師范大學(xué)本科畢業(yè)論文33 設(shè)備端點(diǎn)的配置 端點(diǎn)配置是在 TD_Init()函數(shù)中實(shí)現(xiàn)的。USB 數(shù)據(jù)通過(guò)端點(diǎn)緩沖區(qū)進(jìn)入 FX2 和從 FX2 中取出。為了保證 480Mb/s 高速的傳輸速率,外部邏輯經(jīng)常在沒(méi)有 FX2 內(nèi)嵌的 CPU 參與的情況下,直接與端點(diǎn) FIFO 交換數(shù)據(jù)。USB 設(shè)備啟動(dòng)時(shí),要配置端點(diǎn)使它獲得足夠的帶寬和 FIFO 深度,使數(shù)據(jù)傳輸更加平穩(wěn)和高速。當(dāng)應(yīng)用程序要求 CPU 處理外部邏輯和 USB 之間的數(shù)據(jù)流時(shí)(或者根本就沒(méi)有連接外部邏輯時(shí)) ,固件可以將端點(diǎn)緩沖區(qū)作為 RAM 塊或(使用特定的自動(dòng)增量指針)FIFO 訪問(wèn)[39]。這節(jié)主要對(duì)本設(shè)計(jì)中端點(diǎn)的配置進(jìn)行說(shuō)明,并介紹了在論文中用到的幾個(gè)比較重要的寄存器。 端點(diǎn)緩沖區(qū)的分配在 USB 規(guī)范中,定義了端點(diǎn)作為發(fā)送數(shù)據(jù)的起始點(diǎn)或者是接收數(shù)據(jù)的目的地。既然 USB 是一個(gè)串行總線,那么端點(diǎn)實(shí)際上也就是一個(gè)能連續(xù)被清空或者被 USB 數(shù)據(jù)填滿(mǎn)的 FIFO。CY7C68013 芯片共有七個(gè)端點(diǎn),即EP0、EP1OUT、EP1IN、EPEPEP6 和 EP8。EP0 是默認(rèn)的控制端點(diǎn)(Control Endpoint) ,而且是一個(gè)只使用 64K 字節(jié)緩沖區(qū)的雙向端點(diǎn),只能配置為控制端點(diǎn)。當(dāng)控制傳輸要求有數(shù)據(jù)階段時(shí),F(xiàn)X2 固件讀取或者填充 EP0 緩沖區(qū)。端點(diǎn) 8 根據(jù)需要可配置成雙重、三重或多重的緩沖,以適應(yīng)不同帶寬的要求。雙重(Double)緩沖的意思是說(shuō),數(shù)據(jù)的一個(gè)包可能正在被 USB 數(shù)據(jù)裝載或者清空,而同時(shí)另一個(gè)包(來(lái)自同一個(gè)端點(diǎn))可以正在由外部的接口邏輯使用。三重(Triple)緩沖區(qū)為存儲(chǔ)空間增加了第三個(gè)包緩沖區(qū),它可以由接口或者 USB 使用。多緩沖可以很大程度地改善 USB 帶寬,使突發(fā)數(shù)據(jù)傳輸趨于平穩(wěn),減少傳輸數(shù)據(jù)的兩邊互相等待的時(shí)間。端點(diǎn) 6 和 8 的配置選擇如表 41 所示。表 41 端點(diǎn) 6 和 8 的配置選擇河南師范大學(xué)本科畢業(yè)論文34 端點(diǎn)寄存器的設(shè)置 與端點(diǎn)設(shè)置相關(guān)的寄存器有 EPxCFG、FIFORESET、EPxFIFOCFG 等,8 位寄存器 EPxCFG 的各位所代表的參數(shù)如表 42 所示。表 42 EPxCFG(x=8)寄存器 上表中,各個(gè)位對(duì)應(yīng)參數(shù)的意義解釋如下: VALID:通過(guò)該位激活一個(gè)端點(diǎn)。VALID=1 時(shí)端點(diǎn)有效;VALID=0 時(shí)端點(diǎn)無(wú)效。 DIR:該位代表端點(diǎn)的方向。即定義端點(diǎn)為輸入(DIR=1)端點(diǎn)或者為輸出(DIR=0)端點(diǎn)。 TYPE[1:0]:這兩位一起決定端點(diǎn)的類(lèi)型。如表 43 所示。 SIZE:該位用來(lái)確定端點(diǎn)緩沖區(qū)的大小??梢詾?512 bytes (SIZE=0)或者 1024 bytes(SIZE=1),這里要注意的是,端點(diǎn) 4 和 8 的緩沖區(qū)的大小只能定義為 512 bytes。 BUF[1:0]:這兩位的作用是定義端點(diǎn)緩沖類(lèi)型,也就是端點(diǎn)緩沖區(qū)的深度。如表 44 所示。這里,由于端點(diǎn) 4 和 8 只能為雙緩沖區(qū),因此它們的最低兩位就直接為 0,而不能再進(jìn)行其他的配置。河南師范大學(xué)本科畢業(yè)論文35表 43 端點(diǎn)類(lèi)型定義表表 44 緩沖區(qū)深度定義 在本設(shè)計(jì)中,將 EP6 配置為大小為 1024 字節(jié)的雙緩沖區(qū)端點(diǎn)。把 EP2 配置為 OUT 端點(diǎn),EP6 配置為 IN 端點(diǎn),由于主機(jī)只讀取外部設(shè)備中的數(shù)據(jù),因此,實(shí)際用到的只一個(gè) IN 端點(diǎn) EP6,緩沖區(qū)大小為 1024 字節(jié),雙重緩沖區(qū),批量傳輸模式。根據(jù)上面的分析,對(duì)應(yīng)的寄存器 EP6CFG 的值在初始化時(shí)就設(shè)置為 0xE0。 GPIF
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1