浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術資料 » 集成電路

基于USB總線和89C51單片機的數(shù)據(jù)采集系統(tǒng)設計

發(fā)布時間:2008/5/28 0:00:00 訪問次數(shù):616

  
摘要:本文介紹了基于usb總線的數(shù)據(jù)采集設備的開發(fā)方法,包括硬件設計、firmware(固件)設計、基于windows驅(qū)動程序模型(wdm)的設備驅(qū)動程序設計以及應用軟件的設計,同時也介紹了基于usb的遠程數(shù)據(jù)采集系統(tǒng)。

  關鍵詞:通用串行總線;數(shù)據(jù)采集;單片機

  在工業(yè)生產(chǎn)和科學技術研究過程的各行業(yè)中,常常要對各種數(shù)據(jù)進行采集,現(xiàn)在常用的采集方式是在pc機或工控機內(nèi)安裝數(shù)據(jù)采集卡,如a/d卡及rs-422卡、rs-485卡。采集卡不僅安裝麻煩,易受機箱內(nèi)環(huán)境的影響,而且由于受計算機插槽數(shù)量和地址、中斷資源的限制,不可能掛接很多設備。而通用串行總線(universal serial bus,簡稱usb)的出現(xiàn)能很好地解決以上這些沖突。我們利用89c51單片機設計了基于usb總線的數(shù)據(jù)采集設備,并可與max485結(jié)合起來實現(xiàn)數(shù)據(jù)的遠程采集。

系統(tǒng)硬件設計
  usb數(shù)據(jù)采集系統(tǒng)硬件模塊主要由串行a/d轉(zhuǎn)換器、89c51芯片、usb接口芯片和多路模擬開關等組成。

  usb接口芯片采用national semiconductor公司的一種專用芯片usbn9602。該芯片內(nèi)部集成微處理器接口、 fifo存儲器、時鐘發(fā)生器、串行接口引擎(sie)、收發(fā)器、電壓轉(zhuǎn)換器,支持dma、微波接口。

  多路模擬輸入信號經(jīng)多路模擬開關控制將其中的一路接入串行a/d轉(zhuǎn)換器,a/d轉(zhuǎn)換器經(jīng)光電隔離后串行輸出到移位寄存器,移位寄存器將此結(jié)果轉(zhuǎn)為8位并行數(shù)據(jù),89c51系統(tǒng)通過8位的并行接口傳送a/d轉(zhuǎn)換器采集的數(shù)據(jù),存儲在fifo存儲器中;一旦fifo存滿,sie立刻對數(shù)據(jù)進行處理,然后89c51系統(tǒng)將數(shù)據(jù)從fifo存儲器中讀出,由收發(fā)器通過數(shù)據(jù)線(d+、d-)送至主機。 usbn9602與89c51的具體接口電路如圖2所示。圖中usbn9602的clkout與89c51的xtal1相連,即usbn9602的時鐘輸出為89c51提供時鐘輸入。usbn9602的復位端接rc電路以保證復位電路可靠地工作。由于晶振頻率較高,結(jié)合usbn9602內(nèi)部網(wǎng)絡,在xout端串接100mf電容及470mh電感,起穩(wěn)定內(nèi)部振蕩頻率的作用。

系統(tǒng)軟件設計

  系統(tǒng)軟件包括設備固件、 usb設備驅(qū)動程序和應用程序。

設備固件(firmware)設計

  此處固件是指固化到89c51e2prom中的程序,其主要功能是: (1)控制a/d轉(zhuǎn)換器的采樣。(2)控制芯片usbn9602接受并處理usb驅(qū)動程序的請求及應用程序的控制指令。現(xiàn)主要介紹89c51系統(tǒng)如何控制usb控制器(usbn9602)與主機的通信。

  89c51系統(tǒng)對usb控制器的操作是嚴格按照usb協(xié)議1.1進行的,按照usb協(xié)議1.1的規(guī)定,usb傳輸方式分為4種:控制傳輸,塊傳輸,同步傳輸和中斷傳輸。在實際開發(fā)中使用了控制傳輸和塊傳輸?刂苽鬏斨饕脕硗瓿芍鳈C對設備的各種控制操作,也就是用來實現(xiàn)位于主機上的usb總線驅(qū)動程序(usbd.sys)以及編寫的功能驅(qū)動程序?qū)υO備的各種控制操作。塊傳輸主要用來完成主機和設備間的大批量數(shù)據(jù)傳輸以及對傳輸數(shù)據(jù)進行錯誤檢測(若發(fā)生錯誤,它支持“重傳”功能)。

  89c51系統(tǒng)控制usb控制器的工作過程可以簡單地概括為:當usb控制器從usb總線檢測到主機啟動的某一傳輸請求后,通過中斷方式將此請求通知89c51系統(tǒng),89c51系統(tǒng)通過訪問usb控制器的狀態(tài)寄存器和數(shù)據(jù)寄存器獲得與此次傳輸有關的各種參數(shù),并根據(jù)具體的傳輸參數(shù),對usb控制器的控制寄存器和數(shù)據(jù)寄存器進行相應的操作,以完成主機的傳輸請求。

usb設備驅(qū)動程序設計

  usb系統(tǒng)驅(qū)動程序的設計是基于wdm(windows driver model 驅(qū)動程序模型)的。wdm采用分層驅(qū)動程序模型(見圖3所示),分為較高級的usb設備驅(qū)動程序和較低級的usb函數(shù)層。其中usb函數(shù)層由兩部分組成:較高級的通用串行總線模塊(usbd)和較低級的主控制器驅(qū)動程序模塊(hcd)。

  在上述usb分層模塊中,usb函數(shù)層由windows98提供,負責管理usb設備驅(qū)動程序和usb控制器之間的通信,加載及卸載usb驅(qū)動程序,與usb設備通用端點(endpoint)建立通信來執(zhí)行設備配置、數(shù)據(jù)與usb協(xié)議框架和打包格式的雙向轉(zhuǎn)換任務。

  目前windows98提供了多種 usb設備驅(qū)動程序,但并不針對數(shù)據(jù)采集設備,因此需用ddk開發(fā)工具設計專用的usb設備驅(qū)動程序。在本設計中由四個模塊實現(xiàn):初始化模塊、即插即用管理模塊、電源管理模塊以及i/o功能實現(xiàn)模塊。

  初始化模塊提供一個入口函數(shù)driverentry(),所有對各種irp(i/o request packet,irp請求包)的處理例程都在此入口函數(shù)中做出定義。

  即插即用管理模塊實現(xiàn)usb設備的熱拔插及動態(tài)配置。當硬件檢測到usb設備接入時,windows98查找響應的驅(qū)動程序,并調(diào)用它的driverentry例程,pnp(即插即用)管理器調(diào)用驅(qū)動程序的adddevice例程,告訴它添加了一個設備;在此處理過程中,驅(qū)動程序收到一個設備啟動請求(irp_mn_start_device)的irp。同理,當要拔除時,pnp管理器會發(fā)出一個設備刪除

  
摘要:本文介紹了基于usb總線的數(shù)據(jù)采集設備的開發(fā)方法,包括硬件設計、firmware(固件)設計、基于windows驅(qū)動程序模型(wdm)的設備驅(qū)動程序設計以及應用軟件的設計,同時也介紹了基于usb的遠程數(shù)據(jù)采集系統(tǒng)。

  關鍵詞:通用串行總線;數(shù)據(jù)采集;單片機

  在工業(yè)生產(chǎn)和科學技術研究過程的各行業(yè)中,常常要對各種數(shù)據(jù)進行采集,現(xiàn)在常用的采集方式是在pc機或工控機內(nèi)安裝數(shù)據(jù)采集卡,如a/d卡及rs-422卡、rs-485卡。采集卡不僅安裝麻煩,易受機箱內(nèi)環(huán)境的影響,而且由于受計算機插槽數(shù)量和地址、中斷資源的限制,不可能掛接很多設備。而通用串行總線(universal serial bus,簡稱usb)的出現(xiàn)能很好地解決以上這些沖突。我們利用89c51單片機設計了基于usb總線的數(shù)據(jù)采集設備,并可與max485結(jié)合起來實現(xiàn)數(shù)據(jù)的遠程采集。

系統(tǒng)硬件設計
  usb數(shù)據(jù)采集系統(tǒng)硬件模塊主要由串行a/d轉(zhuǎn)換器、89c51芯片、usb接口芯片和多路模擬開關等組成。

  usb接口芯片采用national semiconductor公司的一種專用芯片usbn9602。該芯片內(nèi)部集成微處理器接口、 fifo存儲器、時鐘發(fā)生器、串行接口引擎(sie)、收發(fā)器、電壓轉(zhuǎn)換器,支持dma、微波接口。

  多路模擬輸入信號經(jīng)多路模擬開關控制將其中的一路接入串行a/d轉(zhuǎn)換器,a/d轉(zhuǎn)換器經(jīng)光電隔離后串行輸出到移位寄存器,移位寄存器將此結(jié)果轉(zhuǎn)為8位并行數(shù)據(jù),89c51系統(tǒng)通過8位的并行接口傳送a/d轉(zhuǎn)換器采集的數(shù)據(jù),存儲在fifo存儲器中;一旦fifo存滿,sie立刻對數(shù)據(jù)進行處理,然后89c51系統(tǒng)將數(shù)據(jù)從fifo存儲器中讀出,由收發(fā)器通過數(shù)據(jù)線(d+、d-)送至主機。 usbn9602與89c51的具體接口電路如圖2所示。圖中usbn9602的clkout與89c51的xtal1相連,即usbn9602的時鐘輸出為89c51提供時鐘輸入。usbn9602的復位端接rc電路以保證復位電路可靠地工作。由于晶振頻率較高,結(jié)合usbn9602內(nèi)部網(wǎng)絡,在xout端串接100mf電容及470mh電感,起穩(wěn)定內(nèi)部振蕩頻率的作用。

系統(tǒng)軟件設計

  系統(tǒng)軟件包括設備固件、 usb設備驅(qū)動程序和應用程序。

設備固件(firmware)設計

  此處固件是指固化到89c51e2prom中的程序,其主要功能是: (1)控制a/d轉(zhuǎn)換器的采樣。(2)控制芯片usbn9602接受并處理usb驅(qū)動程序的請求及應用程序的控制指令。現(xiàn)主要介紹89c51系統(tǒng)如何控制usb控制器(usbn9602)與主機的通信。

  89c51系統(tǒng)對usb控制器的操作是嚴格按照usb協(xié)議1.1進行的,按照usb協(xié)議1.1的規(guī)定,usb傳輸方式分為4種:控制傳輸,塊傳輸,同步傳輸和中斷傳輸。在實際開發(fā)中使用了控制傳輸和塊傳輸?刂苽鬏斨饕脕硗瓿芍鳈C對設備的各種控制操作,也就是用來實現(xiàn)位于主機上的usb總線驅(qū)動程序(usbd.sys)以及編寫的功能驅(qū)動程序?qū)υO備的各種控制操作。塊傳輸主要用來完成主機和設備間的大批量數(shù)據(jù)傳輸以及對傳輸數(shù)據(jù)進行錯誤檢測(若發(fā)生錯誤,它支持“重傳”功能)。

  89c51系統(tǒng)控制usb控制器的工作過程可以簡單地概括為:當usb控制器從usb總線檢測到主機啟動的某一傳輸請求后,通過中斷方式將此請求通知89c51系統(tǒng),89c51系統(tǒng)通過訪問usb控制器的狀態(tài)寄存器和數(shù)據(jù)寄存器獲得與此次傳輸有關的各種參數(shù),并根據(jù)具體的傳輸參數(shù),對usb控制器的控制寄存器和數(shù)據(jù)寄存器進行相應的操作,以完成主機的傳輸請求。

usb設備驅(qū)動程序設計

  usb系統(tǒng)驅(qū)動程序的設計是基于wdm(windows driver model 驅(qū)動程序模型)的。wdm采用分層驅(qū)動程序模型(見圖3所示),分為較高級的usb設備驅(qū)動程序和較低級的usb函數(shù)層。其中usb函數(shù)層由兩部分組成:較高級的通用串行總線模塊(usbd)和較低級的主控制器驅(qū)動程序模塊(hcd)。

  在上述usb分層模塊中,usb函數(shù)層由windows98提供,負責管理usb設備驅(qū)動程序和usb控制器之間的通信,加載及卸載usb驅(qū)動程序,與usb設備通用端點(endpoint)建立通信來執(zhí)行設備配置、數(shù)據(jù)與usb協(xié)議框架和打包格式的雙向轉(zhuǎn)換任務。

  目前windows98提供了多種 usb設備驅(qū)動程序,但并不針對數(shù)據(jù)采集設備,因此需用ddk開發(fā)工具設計專用的usb設備驅(qū)動程序。在本設計中由四個模塊實現(xiàn):初始化模塊、即插即用管理模塊、電源管理模塊以及i/o功能實現(xiàn)模塊。

  初始化模塊提供一個入口函數(shù)driverentry(),所有對各種irp(i/o request packet,irp請求包)的處理例程都在此入口函數(shù)中做出定義。

  即插即用管理模塊實現(xiàn)usb設備的熱拔插及動態(tài)配置。當硬件檢測到usb設備接入時,windows98查找響應的驅(qū)動程序,并調(diào)用它的driverentry例程,pnp(即插即用)管理器調(diào)用驅(qū)動程序的adddevice例程,告訴它添加了一個設備;在此處理過程中,驅(qū)動程序收到一個設備啟動請求(irp_mn_start_device)的irp。同理,當要拔除時,pnp管理器會發(fā)出一個設備刪除

相關IC型號

熱門點擊

 

推薦技術資料

DS2202型示波器試用
    說起數(shù)字示波器,普源算是國內(nèi)的老牌子了,F(xiàn)QP8N60... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡技術有限公司
付款方式


 復制成功!