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

正文內(nèi)容

基于usb接口的便攜數(shù)據(jù)采集儀(編輯修改稿)

2025-07-24 18:57 本頁面
 

【文章內(nèi)容簡介】 硬件電路設(shè)計(jì)一個(gè)實(shí)用的USB數(shù)據(jù)采集系統(tǒng)包括A/D轉(zhuǎn)換器、微控制器以及USB通信接口等。為了擴(kuò)展其用途,還可以加上多路模擬開關(guān)和數(shù)字I/O端口。采用Cygnal公司內(nèi)置USB接口的高性能微控制器芯片C8051F340,簡化了硬件部分的設(shè)計(jì)。因?yàn)镃8051F340是帶USB接口的單片機(jī),所以整個(gè)硬件部分是一般單片機(jī)應(yīng)用系統(tǒng)的開發(fā),僅需要外加輸入信號(hào)處理電路就可實(shí)現(xiàn)。這在一定層次上縮小了數(shù)據(jù)采集系統(tǒng)的體積,并降低了成本。其中,在元器件選擇和方案設(shè)計(jì)過程中應(yīng)遵循以下原則:(1) 數(shù)據(jù)采集系統(tǒng)在滿足需要的前提下,選擇低功耗、小體積的元器件,以延長使用時(shí)間、縮小儀器的體積。 電路設(shè)計(jì)力求簡潔、可靠,盡量采用集成度高的芯片,減少外圍元器件的數(shù)量。(2) 設(shè)計(jì)中應(yīng)預(yù)留進(jìn)一步開發(fā)的空間。(3) 適當(dāng)?shù)膬r(jià)格,包括元器件價(jià)格和開發(fā)系統(tǒng)的一次性投資,降低成本。 系統(tǒng)原理圖另外,我們將USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)為一個(gè)可通過USB電纜自供電而不靠外界供電的自供電設(shè)備。設(shè)置好引線之后,C8051F340就在外部電源的模式下開始工作。為實(shí)現(xiàn)自供電方式,我們只需停止外部電源的輸入,連上跳線的兩個(gè)引腳。該數(shù)據(jù)采集系統(tǒng)的調(diào)試接口。將串行適配器EC2通過該接口連接到C8051F340,可實(shí)現(xiàn)在線調(diào)試和FLASH編程的寫入和擦除。(EC2的說明和使用請參見Cygnal公司的產(chǎn)品數(shù)據(jù)手冊)。USB(通用串行總線)連接器。通過它就可將USB接口和C8051F340芯片連接起來。我們將USB電纜的一端接上這個(gè)連接器,另一端接在計(jì)算機(jī)的USB通訊口上。這樣就能實(shí)現(xiàn)數(shù)據(jù)傳輸任務(wù)。 主要的電路元器件圖第3章USB數(shù)據(jù)采集系統(tǒng)的固件設(shè)計(jì)開發(fā)一個(gè)USB設(shè)備,軟件設(shè)計(jì)是必不可少的。USB應(yīng)用系統(tǒng)軟件設(shè)計(jì)分為三部分:USB外設(shè)端的單片機(jī)固件(Firmware)程序、主機(jī)操作系統(tǒng)上的客戶驅(qū)動(dòng)程序以及主機(jī)應(yīng)用軟件。單片機(jī)固件響應(yīng)各種來自系統(tǒng)的USB標(biāo)準(zhǔn)請求,完成各種數(shù)據(jù)的交換工作和事件處理工作;而客戶驅(qū)動(dòng)程序則讓主機(jī)可以識(shí)別USB設(shè)備,并通過應(yīng)用軟件來讀取USB設(shè)備,完成通信功能。主機(jī)應(yīng)用軟件通過客戶驅(qū)動(dòng)程序與系統(tǒng)進(jìn)行通信,由系統(tǒng)產(chǎn)生USB數(shù)據(jù)的傳送動(dòng)作,可用Visual Basic, Visual C++或Delphi等軟件來開發(fā)并生成采集應(yīng)用軟件及其相關(guān)使用說明,方便用戶快捷地使用本數(shù)據(jù)采集系統(tǒng)。固件編程是USB設(shè)備開發(fā)過程里的主要工作。固件的主要任務(wù)是初始化單片機(jī)和外設(shè),發(fā)送USB請求,響應(yīng)主機(jī)的標(biāo)準(zhǔn)設(shè)備請求。根據(jù)設(shè)備的功能分類完成各種數(shù)據(jù)交換請求。初始化編程主要完成USB控制器的初始化、端點(diǎn)初始化,交叉開關(guān)和I/O口初始化、系統(tǒng)時(shí)鐘設(shè)置,控制器使能。初始化后,USB設(shè)備可隨時(shí)插入主機(jī)中,主機(jī)將遵循USB協(xié)議對設(shè)備進(jìn)行識(shí)別和初始化。主機(jī)識(shí)別到設(shè)備之后對設(shè)備進(jìn)行配置,調(diào)用相應(yīng)的驅(qū)動(dòng)程序,配上上位機(jī)軟件進(jìn)行相關(guān)通信操作。這一章描述了基于C8051F340的USB數(shù)據(jù)采集系統(tǒng)的固件開發(fā),這里主要說明開發(fā)的步驟和流程圖,并輔以相應(yīng)的代碼段。所有的示例代碼均以C語言形式給出。 固件的開發(fā)環(huán)境Keil uVision2是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),是目前應(yīng)用最廣泛的單片機(jī)軟件系統(tǒng)開發(fā)工具,它支持匯編、C語言以及混合編程,同時(shí)具備強(qiáng)大的軟件仿真和硬件仿真功能。與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil uVision2軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢。雖然Keil C51優(yōu)化交叉編譯器是完全符合ANSI美國國家標(biāo)準(zhǔn)協(xié)會(huì)標(biāo)準(zhǔn)的編譯器,但為了支持8051系列的MCU,還是加入了一些擴(kuò)展內(nèi)容。C51編譯器的擴(kuò)展內(nèi)同包括:數(shù)據(jù)類型、指針、重入函數(shù)、中斷服務(wù)程序。 USB通信程序本設(shè)計(jì)使用的是由Silicon lab公司提供的USBXpress開發(fā)套件。通過開發(fā)套件提供的USBXpress庫,我們得以大大簡化了USB固件程序和PC機(jī)端驅(qū)動(dòng)程序的開發(fā)。USBXpress通過一系列函數(shù)實(shí)現(xiàn)單片機(jī)端的應(yīng)用程序接口(API)。USBXpress提供了10個(gè)USB器件API函數(shù),如表1所示。在對單片機(jī)C8051F340進(jìn)行編程時(shí),只需要將USBXpress提供的API函數(shù)的封裝庫USBX—,并在主程序中用“include”命令包含USB—API h頭文件(申明了USBX—),可以像調(diào)用普通函數(shù)一樣調(diào)用USBXpress提供的10個(gè)USB器件API函數(shù),從而實(shí)現(xiàn)對USB數(shù)據(jù)包的讀寫。因?yàn)檫@些函數(shù)中已經(jīng)實(shí)現(xiàn)了各種細(xì)節(jié)性的問題,我們只需要像調(diào)用一個(gè)接口一個(gè)調(diào)用這些函數(shù)就可以很方便地實(shí)現(xiàn)這些函數(shù)的功能。 表1 USB器件API函數(shù)序號(hào)API函數(shù)名稱API函數(shù)功能1USB_Clock_Start()初始化USB總線時(shí)鐘2USB_Init()使能USB接口3Block_Write()寫數(shù)據(jù)塊到USB主機(jī)4Block_Read()從USB主機(jī)讀取數(shù)取塊5Get_Interrupt_Source()獲取API中斷的原因6USB_Int_Enable()使能API中斷7USB_Int_Disable()禁止API中斷8USB_Disable()關(guān)閉USB接口9US1_Suspend()掛起USB中斷10USB_Get_Library_Version()獲取USBXpress固件庫版本本系統(tǒng)中主要用到了初始化、讀、寫、中斷這四個(gè)函數(shù):初始化USB_Init()函數(shù);塊寫函數(shù)Block_Write();塊讀函數(shù)Block_Read()。 單片機(jī)與PC機(jī)的USB通信原理框圖大多數(shù)情況下,C8051F340單片機(jī)的上層應(yīng)用程序通過調(diào)用USBXpress提供的USB器件API函數(shù),就可以很方便地訪問下層的USB硬件。USB的所有處理程序都是通過USB的中斷服務(wù)程序完成的。進(jìn)入U(xiǎn)SB中斷后,程序調(diào)用Get_Interrupt_Source()函數(shù)獲得USB中斷的進(jìn)入程序。然后根據(jù)不同的入口情況,來進(jìn)行相應(yīng)的處理。比如收到數(shù)據(jù)之后,讀取相應(yīng)的緩沖區(qū)內(nèi)容到內(nèi)存中;收到初始化命令時(shí),復(fù)位單片機(jī)內(nèi)的各個(gè)狀態(tài)參數(shù)。 USB通信流程圖當(dāng)C8051F340單片機(jī)對USB主機(jī)進(jìn)行寫操作時(shí),直接調(diào)用Block_Write()函數(shù)即可;但是當(dāng)C8051F340單片機(jī)對USB主機(jī)進(jìn)行讀操作時(shí),讀操作的實(shí)現(xiàn)流程還要依靠USB總線處于何種工作方式。例如,當(dāng)USB總線處于中斷傳輸模式時(shí),只有USB API中斷發(fā)生時(shí),USB器件才能獲取USB主機(jī)數(shù)據(jù),完成C8051F340單片機(jī)對USB主機(jī)的讀操作,也即Block_Write()函數(shù)的調(diào)用一般放在USBAPI中斷服務(wù)程序中進(jìn)行。 主程序設(shè)計(jì)Main文件中包含固件的主程序和一些初始化子程序。主程序調(diào)用所有的初始化子程序,然后進(jìn)入一個(gè)無限的循環(huán),不停地用從主機(jī)處獲得的信息來更新輸出數(shù)據(jù)包,不停地用從數(shù)據(jù)采集系統(tǒng)上獲得的信息來更新輸入數(shù)據(jù)包。這個(gè)文件包含了一個(gè)中斷服務(wù)子程序ISR,當(dāng)模數(shù)轉(zhuǎn)換器(ADC)每完成一個(gè)轉(zhuǎn)換就調(diào)用一次該ISR。這個(gè)ISR通過改變多路選擇開關(guān)寄存器的值,在片內(nèi)壓力傳感器和數(shù)據(jù)采集通道之間不停地轉(zhuǎn)換ADC的線路,從而來完成數(shù)據(jù)的實(shí)時(shí)采集和更新。以下為具體一路ADC實(shí)現(xiàn)的程序:void Adc_
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1