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

位置:51電子網(wǎng) » 技術(shù)資料 » 接口電路

基于VC的USB接口通信程序設(shè)計(jì)

發(fā)布時(shí)間:2008/8/23 0:00:00 訪問(wèn)次數(shù):705

  0 引言

  隨著信息技術(shù)的迅速發(fā)展,數(shù)據(jù)采集和處理技術(shù)廣泛應(yīng)用于雷達(dá)、通信、遙測(cè)、遙感等領(lǐng)域。而在早期的計(jì)算機(jī)系統(tǒng)上通常使用串口或并口來(lái)發(fā)送數(shù)據(jù),每個(gè)接口都需要占用計(jì)算機(jī)內(nèi)部很多的資源,傳統(tǒng)的接口一般采用pci總線或rs-232串行總線。pci總線有較高的傳輸速率,可達(dá)132 mbit/s,也可以即插即用,但是它們的擴(kuò)充槽有限且插拔不方便;rs-232串行總線連接比較方便,但是傳輸速率太慢,不易用于高速傳送數(shù)據(jù)和傳送大量數(shù)據(jù)。usb(通用串行總線)集中了pci和rs-232串行總線的優(yōu)點(diǎn),具有方便的即插即用和熱插拔特性以及較高的傳輸速率,因此,將usb技術(shù)應(yīng)用于數(shù)據(jù)采集是非常合適的,可以達(dá)到數(shù)據(jù)采集系統(tǒng)的高速度處理。目前,usb已經(jīng)推出了其協(xié)議的2.0版本,速率高達(dá)480 mbit/s。

  本文研發(fā)了一套基于usb接口的數(shù)據(jù)采集系統(tǒng),整個(gè)系統(tǒng)的設(shè)計(jì)涉及到硬件、設(shè)備固件(firmware)、usb設(shè)備驅(qū)動(dòng)程序及客戶應(yīng)用軟件。下面分別加以說(shuō)明。

  1 usb接口芯片

  本文介紹的usb數(shù)據(jù)采集系統(tǒng)采用了cypress公司ez-usb fx2系列的cy7c68013-128ac芯片,它同時(shí)集成了8051微控制器和usb2.0收發(fā)器,在提高集成度的同時(shí)也加快了數(shù)據(jù)傳輸?shù)乃俣取T谙到y(tǒng)中,cy7c68013-128ac既是數(shù)據(jù)采集控制器又是usb控制器,ez-usb fx2系列有3種型號(hào):cy7c68013-56pvc、cy7c68013-100ac、cy7c68013-128ac。該系列的芯片都是針對(duì)usb2.0的,并且與usb1.1兼容。其中,cy7c68013-128ac是128腳,tpqf封裝,功能非常完善,與另外兩種相比,主要是增加了16位地址總線和8位數(shù)據(jù)總線以及更多的io口,因此,cy7c68013-128ac的可擴(kuò)展性最好。圖1是該芯片的內(nèi)部結(jié)構(gòu)圖。

  2 usb的固件和驅(qū)動(dòng)程序設(shè)計(jì)

  2.1固件

  固件是儲(chǔ)存在程序內(nèi)存中的代碼,它使得usb接口芯片與主機(jī)和外設(shè)中其他電路能夠通信。cypress公司給出了一個(gè)固件庫(kù)和固件框架(frame works),均是用keil c51開(kāi)發(fā)的。固件庫(kù)提供了一些常量、數(shù)據(jù)結(jié)構(gòu)、宏、函數(shù)來(lái)簡(jiǎn)化用戶對(duì)芯片的使用;固件框架實(shí)現(xiàn)了初始化芯片、處理usb標(biāo)準(zhǔn)設(shè)備請(qǐng)求以及掛起狀態(tài)下的電源管理等功能。該框架不添加任何代碼,編碼后產(chǎn)生的.hex文件載入芯片就能與主機(jī)進(jìn)行基本的usb通信,只是不能完成特定的任務(wù)。對(duì)于用戶而言,主要的工作就是選擇適當(dāng)?shù)膫鬏敺绞,添加需要使用的端點(diǎn)(endpoint),考慮到本系統(tǒng)要求實(shí)現(xiàn)一定數(shù)量數(shù)據(jù)的快速采集,并要迅速地將采集到的數(shù)據(jù)傳輸和進(jìn)行分析處理,并且對(duì)數(shù)據(jù)的完整性要求較高,我們采用了塊傳輸方式(bulk transfers),在td-init()函數(shù)中添加初始化代碼,亦即選擇塊傳輸方式和選擇端點(diǎn)2、6分別為輸出、輸入端口,在td-poll()函數(shù)中添加功能代碼,以實(shí)現(xiàn)發(fā)送和接收數(shù)據(jù)功能,關(guān)鍵代碼分別如下:

  2.2 usb設(shè)備驅(qū)動(dòng)程序

  usb設(shè)備驅(qū)動(dòng)程序主要是使操作系統(tǒng)能夠識(shí)別usb設(shè)備,建立起主機(jī)端與設(shè)備端之間的通信,它們之間的通信是通過(guò)windows提供的api函數(shù)實(shí)現(xiàn)的,這些函數(shù)可以控制顯示器、處理信息、訪問(wèn)存儲(chǔ)器、讀寫(xiě)磁盤(pán)和其他設(shè)備。

  
圖2是usb設(shè)備驅(qū)動(dòng)程序的整體結(jié)構(gòu)圖。

  

  usb設(shè)備驅(qū)動(dòng)的整體結(jié)構(gòu)包括如下5個(gè)主要部分:usb應(yīng)用程序接口、usb設(shè)備驅(qū)動(dòng)函數(shù)、usb中斷服務(wù)程序、usb回調(diào)接口程序、usb標(biāo)準(zhǔn)事件處理程序。
2.2.1 usb應(yīng)用程序接口

  usb應(yīng)用程序接口主要功能是對(duì)usb驅(qū)動(dòng)器進(jìn)行軟硬件初始化、打開(kāi)端口、關(guān)閉端口、讀端口、寫(xiě)端口和端口控制操作。當(dāng)設(shè)備驅(qū)動(dòng)器裝入系統(tǒng)設(shè)備表時(shí),i/o系統(tǒng)就調(diào)用該應(yīng)用程序接口。

  usb應(yīng)用程序接口的一個(gè)例程主要包含:

  a)對(duì)usb端口安裝、初始化和硬件配置(usb_init())。初始化步驟為:將usb設(shè)備驅(qū)動(dòng)器安裝到i/o系統(tǒng)設(shè)備表中,獲取usb控制器使用的中斷號(hào),初始化usb驅(qū)動(dòng)器數(shù)據(jù)結(jié)構(gòu)與usb端口狀態(tài)寄存器,啟動(dòng)usb標(biāo)準(zhǔn)事件處理程序。

  b)打開(kāi)usb端口(usb_open())。usb_open函數(shù)允許應(yīng)用程序打開(kāi)一個(gè)usb端口和選擇dma數(shù)據(jù)傳輸方式。

  c)關(guān)閉usb端口(usb_close())。usb_close函數(shù)允許應(yīng)用程序關(guān)閉一個(gè)端口,并關(guān)閉dma通道。

  d)對(duì)usb端口進(jìn)行讀操作(usb_read())。usb_read函數(shù)允許應(yīng)用程序從輸出端口或控制端口讀取一定量的數(shù)據(jù)。

  e)對(duì)usb端口進(jìn)行寫(xiě)操作(usb_write())。usb_write函數(shù)與usb_read函數(shù)功能類似,允許應(yīng)用程序?qū)憯?shù)據(jù)到輸入端口或控制端口。

  f)對(duì)usb設(shè)備進(jìn)行i/o控制操作(usb_ioctl())。

  2.2.2 usb中斷服務(wù)程序

  usb控制器產(chǎn)生單一中斷,多個(gè)端口共享。每個(gè)端口產(chǎn)生ack、nack/error中斷;輸

  0 引言

  隨著信息技術(shù)的迅速發(fā)展,數(shù)據(jù)采集和處理技術(shù)廣泛應(yīng)用于雷達(dá)、通信、遙測(cè)、遙感等領(lǐng)域。而在早期的計(jì)算機(jī)系統(tǒng)上通常使用串口或并口來(lái)發(fā)送數(shù)據(jù),每個(gè)接口都需要占用計(jì)算機(jī)內(nèi)部很多的資源,傳統(tǒng)的接口一般采用pci總線或rs-232串行總線。pci總線有較高的傳輸速率,可達(dá)132 mbit/s,也可以即插即用,但是它們的擴(kuò)充槽有限且插拔不方便;rs-232串行總線連接比較方便,但是傳輸速率太慢,不易用于高速傳送數(shù)據(jù)和傳送大量數(shù)據(jù)。usb(通用串行總線)集中了pci和rs-232串行總線的優(yōu)點(diǎn),具有方便的即插即用和熱插拔特性以及較高的傳輸速率,因此,將usb技術(shù)應(yīng)用于數(shù)據(jù)采集是非常合適的,可以達(dá)到數(shù)據(jù)采集系統(tǒng)的高速度處理。目前,usb已經(jīng)推出了其協(xié)議的2.0版本,速率高達(dá)480 mbit/s。

  本文研發(fā)了一套基于usb接口的數(shù)據(jù)采集系統(tǒng),整個(gè)系統(tǒng)的設(shè)計(jì)涉及到硬件、設(shè)備固件(firmware)、usb設(shè)備驅(qū)動(dòng)程序及客戶應(yīng)用軟件。下面分別加以說(shuō)明。

  1 usb接口芯片

  本文介紹的usb數(shù)據(jù)采集系統(tǒng)采用了cypress公司ez-usb fx2系列的cy7c68013-128ac芯片,它同時(shí)集成了8051微控制器和usb2.0收發(fā)器,在提高集成度的同時(shí)也加快了數(shù)據(jù)傳輸?shù)乃俣。在系統(tǒng)中,cy7c68013-128ac既是數(shù)據(jù)采集控制器又是usb控制器,ez-usb fx2系列有3種型號(hào):cy7c68013-56pvc、cy7c68013-100ac、cy7c68013-128ac。該系列的芯片都是針對(duì)usb2.0的,并且與usb1.1兼容。其中,cy7c68013-128ac是128腳,tpqf封裝,功能非常完善,與另外兩種相比,主要是增加了16位地址總線和8位數(shù)據(jù)總線以及更多的io口,因此,cy7c68013-128ac的可擴(kuò)展性最好。圖1是該芯片的內(nèi)部結(jié)構(gòu)圖。

  2 usb的固件和驅(qū)動(dòng)程序設(shè)計(jì)

  2.1固件

  固件是儲(chǔ)存在程序內(nèi)存中的代碼,它使得usb接口芯片與主機(jī)和外設(shè)中其他電路能夠通信。cypress公司給出了一個(gè)固件庫(kù)和固件框架(frame works),均是用keil c51開(kāi)發(fā)的。固件庫(kù)提供了一些常量、數(shù)據(jù)結(jié)構(gòu)、宏、函數(shù)來(lái)簡(jiǎn)化用戶對(duì)芯片的使用;固件框架實(shí)現(xiàn)了初始化芯片、處理usb標(biāo)準(zhǔn)設(shè)備請(qǐng)求以及掛起狀態(tài)下的電源管理等功能。該框架不添加任何代碼,編碼后產(chǎn)生的.hex文件載入芯片就能與主機(jī)進(jìn)行基本的usb通信,只是不能完成特定的任務(wù)。對(duì)于用戶而言,主要的工作就是選擇適當(dāng)?shù)膫鬏敺绞,添加需要使用的端點(diǎn)(endpoint),考慮到本系統(tǒng)要求實(shí)現(xiàn)一定數(shù)量數(shù)據(jù)的快速采集,并要迅速地將采集到的數(shù)據(jù)傳輸和進(jìn)行分析處理,并且對(duì)數(shù)據(jù)的完整性要求較高,我們采用了塊傳輸方式(bulk transfers),在td-init()函數(shù)中添加初始化代碼,亦即選擇塊傳輸方式和選擇端點(diǎn)2、6分別為輸出、輸入端口,在td-poll()函數(shù)中添加功能代碼,以實(shí)現(xiàn)發(fā)送和接收數(shù)據(jù)功能,關(guān)鍵代碼分別如下:

  2.2 usb設(shè)備驅(qū)動(dòng)程序

  usb設(shè)備驅(qū)動(dòng)程序主要是使操作系統(tǒng)能夠識(shí)別usb設(shè)備,建立起主機(jī)端與設(shè)備端之間的通信,它們之間的通信是通過(guò)windows提供的api函數(shù)實(shí)現(xiàn)的,這些函數(shù)可以控制顯示器、處理信息、訪問(wèn)存儲(chǔ)器、讀寫(xiě)磁盤(pán)和其他設(shè)備。

  
圖2是usb設(shè)備驅(qū)動(dòng)程序的整體結(jié)構(gòu)圖。

  

  usb設(shè)備驅(qū)動(dòng)的整體結(jié)構(gòu)包括如下5個(gè)主要部分:usb應(yīng)用程序接口、usb設(shè)備驅(qū)動(dòng)函數(shù)、usb中斷服務(wù)程序、usb回調(diào)接口程序、usb標(biāo)準(zhǔn)事件處理程序。
2.2.1 usb應(yīng)用程序接口

  usb應(yīng)用程序接口主要功能是對(duì)usb驅(qū)動(dòng)器進(jìn)行軟硬件初始化、打開(kāi)端口、關(guān)閉端口、讀端口、寫(xiě)端口和端口控制操作。當(dāng)設(shè)備驅(qū)動(dòng)器裝入系統(tǒng)設(shè)備表時(shí),i/o系統(tǒng)就調(diào)用該應(yīng)用程序接口。

  usb應(yīng)用程序接口的一個(gè)例程主要包含:

  a)對(duì)usb端口安裝、初始化和硬件配置(usb_init())。初始化步驟為:將usb設(shè)備驅(qū)動(dòng)器安裝到i/o系統(tǒng)設(shè)備表中,獲取usb控制器使用的中斷號(hào),初始化usb驅(qū)動(dòng)器數(shù)據(jù)結(jié)構(gòu)與usb端口狀態(tài)寄存器,啟動(dòng)usb標(biāo)準(zhǔn)事件處理程序。

  b)打開(kāi)usb端口(usb_open())。usb_open函數(shù)允許應(yīng)用程序打開(kāi)一個(gè)usb端口和選擇dma數(shù)據(jù)傳輸方式。

  c)關(guān)閉usb端口(usb_close())。usb_close函數(shù)允許應(yīng)用程序關(guān)閉一個(gè)端口,并關(guān)閉dma通道。

  d)對(duì)usb端口進(jìn)行讀操作(usb_read())。usb_read函數(shù)允許應(yīng)用程序從輸出端口或控制端口讀取一定量的數(shù)據(jù)。

  e)對(duì)usb端口進(jìn)行寫(xiě)操作(usb_write())。usb_write函數(shù)與usb_read函數(shù)功能類似,允許應(yīng)用程序?qū)憯?shù)據(jù)到輸入端口或控制端口。

  f)對(duì)usb設(shè)備進(jìn)行i/o控制操作(usb_ioctl())。

  2.2.2 usb中斷服務(wù)程序

  usb控制器產(chǎn)生單一中斷,多個(gè)端口共享。每個(gè)端口產(chǎn)生ack、nack/error中斷;輸

相關(guān)IC型號(hào)

熱門(mén)點(diǎn)擊

 

推薦技術(shù)資料

耳機(jī)放大器
    為了在聽(tīng)音樂(lè)時(shí)不影響家人,我萌生了做一臺(tái)耳機(jī)放大器的想... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!