畢業(yè)設(shè)計(jì)(論文)基于USB接口波形發(fā)生器設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于USB接口波形發(fā)生器設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于USB接口波形發(fā)生器設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于USB接口波形發(fā)生器設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于USB接口波形發(fā)生器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目 錄1 引言31.1課題背景及意義31.2課題的主要任務(wù)和技術(shù)指標(biāo)42 系統(tǒng)總體設(shè)計(jì)和工作原理52.1方案設(shè)計(jì)與論證52.2工作原理52.2.1 usb主機(jī)52.2.2 usb設(shè)備62.3 usb接口芯片72.3.1 usb主控制器芯片82.3.2 usb集線器芯片82.3.3 usb功能設(shè)備芯片82.4 usb信號(hào)92.4.1 usb信號(hào)的發(fā)送93 系統(tǒng)硬件電路的設(shè)計(jì)113.1主控制器單片機(jī)an2131qc的特點(diǎn)113.1.1芯片結(jié)構(gòu)113.2系統(tǒng)硬件模塊電路的設(shè)計(jì)133.2.1 電路總體方框圖133.2.2 usb接口單元143.2.3 ddfs控制單元143.2.4 波形輸出單元154

2、 軟件的設(shè)計(jì)與實(shí)現(xiàn)174.1軟件功能及作用174.1.1主函數(shù)174.2上位機(jī)程序設(shè)計(jì)174.2.2上位機(jī)程序功能和界面184.3設(shè)備驅(qū)動(dòng)程序194.3.1 固件程序194.3.2 波形功能程序19結(jié) 論21參 考 文 獻(xiàn)22附錄1:原理圖23附錄2:程 序(主函數(shù)部分)26致 謝351 引言當(dāng)今的計(jì)算機(jī)外部設(shè)備,都在追求高速度和高通用性。為了滿(mǎn)足用戶(hù)的需求,以intel為首的七家公司于1994年推出了usb(universal serial bus,通用串行總線)總線協(xié)議,專(zhuān)用于低、中速的計(jì)算機(jī)外設(shè)。目前,usb端口已成為了微機(jī)主板的標(biāo)準(zhǔn)端口;而在不久的將來(lái),所有的微機(jī)外設(shè),包括鍵盤(pán)、鼠標(biāo)、

3、顯示器、打印機(jī)、數(shù)字相機(jī)、掃描儀和游戲柄等等,都將通過(guò)usb與主機(jī)相連。這種連接較以往普通并口和串口的連接而言,主要的優(yōu)點(diǎn)是速度高、功耗低、支持即插即用(plug & play)和維護(hù)方便。1.1課題背景及意義 在usb產(chǎn)生之前,外設(shè)與pc機(jī)的通信主要是通過(guò)pc機(jī)主板所提供的各種接口來(lái)實(shí)現(xiàn)的,如isa接口,pci接口,ps/2接口、串行接口、并行接口等。這些老式的接口最初是由ibm公司在20世紀(jì)80年代早期設(shè)計(jì)提出的,存在很多缺陷。1.它們是非共享式接口。只支持單個(gè)外設(shè)的連接,即在同一時(shí)刻一個(gè)接口只能連接一個(gè)外設(shè);而當(dāng)前pc機(jī)接口的數(shù)量是有限的,根本無(wú)法滿(mǎn)足大量外設(shè)連接的需要。這時(shí),pc機(jī)的可

4、用接口數(shù)就顯得越來(lái)越緊張了。2.這些接口的體積龐大。它們幾乎占用了pc機(jī)主板面積的一半,而硬件廠商不可能無(wú)限制地增加主板的面積來(lái)擴(kuò)充這些老式的接口。另外,大體積的接口不利于pc機(jī)外設(shè)的小型化。3.這些接口的規(guī)格不一。當(dāng)用戶(hù)需要把一些外設(shè)連接到pc機(jī)時(shí),他們不得不面對(duì)種類(lèi)繁多的i/o擴(kuò)展槽和外部端口,這會(huì)使用戶(hù)覺(jué)得很不方便。4.這些接口采用傳統(tǒng)的i/o模式。外設(shè)被映射為cpu的i/o地址空間,并被分配一個(gè)指定的irq(中斷請(qǐng)求),或是一個(gè)dma通道。這種模式會(huì)帶來(lái)諸如i/o地址沖突、所指定的irq已被別的外設(shè)占用等諸多問(wèn)題。這時(shí)用戶(hù)需要采用手工的方法來(lái)設(shè)置一些開(kāi)關(guān)和跳線以重新配置這些設(shè)備,有些還

5、必須打開(kāi)機(jī)箱蓋,而且在設(shè)置完畢后,用戶(hù)必須重新啟動(dòng)計(jì)算機(jī)才能使這些新的配置生效。不論對(duì)外設(shè)的開(kāi)發(fā)者還是使用者來(lái)說(shuō),這個(gè)過(guò)程都是相當(dāng)繁瑣的。為了克服老式接口的上述缺陷,pc機(jī)制造商和用戶(hù)迫切需要一種新型的外設(shè)連接方式。這時(shí)usb應(yīng)運(yùn)而生,它是一種快速、雙向、同步、廉價(jià),并支持熱插拔功能的串行接口。隨著usb2.0版本的發(fā)布,usb越來(lái)越流行,它已經(jīng)成為一個(gè)標(biāo)準(zhǔn)接口,目前市場(chǎng)上出售的所有pc機(jī)都完全支持usb,而且很多外設(shè)只推出了usb版本,如移動(dòng)硬盤(pán)和電子盤(pán)等??梢灶A(yù)見(jiàn),usb的應(yīng)用肯定會(huì)越來(lái)越廣泛,其傳輸速率也越來(lái)越高。1.2 課題的主要任務(wù)和技術(shù)指標(biāo)本系統(tǒng)采用直接數(shù)字頻率合成(ddfs)技術(shù)

6、,實(shí)時(shí)將usb接收到的數(shù)據(jù)轉(zhuǎn)換成各種頻率的波形輸出,所使用的usb傳輸方式為全速同步傳輸??梢暂敵?種波形:正鋸齒波、反鋸齒波、三角波、方波和正弦波。本課題的主要工作任務(wù)為:1.采用usb總線或外部+5v電源供電,并具有供電指示燈。2.采用tlc7524完成波形數(shù)據(jù)的da轉(zhuǎn)換,并具有da轉(zhuǎn)換指示燈。3.采用dac0832完成波形幅度峰峰值的調(diào)節(jié),范圍是0v+5v,步進(jìn)值為20mv.4.采用ddfs技術(shù)完成波形頻率調(diào)節(jié),范圍是0.5hz15999.5hz,步進(jìn)值為0.5hz。5.采用全速同步端點(diǎn)8、9、10米傳輸系統(tǒng)控制命令和波形數(shù)據(jù)。6.可讀取該usb設(shè)備的各種描述符和usb總線的當(dāng)前幀號(hào)。2

7、 系統(tǒng)總體設(shè)計(jì)和工作原理2.1方案設(shè)計(jì)與論證 方案1:采用模擬分立元件或單片機(jī)控制函數(shù)發(fā)生器max8038,可產(chǎn)生正弦波、方波、三角波,通過(guò)外部元件可改變輸出頻率,但采用模擬器件由于元件分散性太大,即使用單片機(jī)控制函數(shù)發(fā)生器,參數(shù)也與外部元件有關(guān),外接的電阻電容對(duì)參數(shù)影響很大,應(yīng)而產(chǎn)生的頻率穩(wěn)定度較差、精度低、抗干擾能力低、成本高而且靈活性較差,不能實(shí)現(xiàn)任意波形及波形運(yùn)算輸出等智能化的功能。方案2:采用傳統(tǒng)的直接頻率合成器。這種方法能快速實(shí)現(xiàn)頻率變換,具有低相位噪聲以及所有方法中最高的工作頻率。但由于采用大量的倍頻、分頻、混頻和濾波環(huán)節(jié),導(dǎo)致直接頻率合成器的結(jié)構(gòu)復(fù)雜,體積龐大,成本高,難以達(dá)到

8、較高的頻譜純度。更重要的是,這種方法只能實(shí)現(xiàn)正弦波,或者進(jìn)行積分,微分等方法實(shí)現(xiàn)方波,三角波等標(biāo)準(zhǔn)波形,而對(duì)于我們所要求的任意波形卻無(wú)法實(shí)現(xiàn)。方案3:usb接口波形發(fā)生器。采用直接頻率合成技術(shù),它可以實(shí)時(shí)將usb接收到的數(shù)據(jù)轉(zhuǎn)換成各種頻率的波形輸出,所使用的usb傳輸方式為全速同步傳輸。這種方法產(chǎn)生的頻率穩(wěn)定度較好,精度高,抗干擾能力強(qiáng),成本低且靈活性好。綜合考慮各種因素,選擇方案3。2.2工作原理2.2.1 usb主機(jī)在終端用戶(hù)看來(lái),usb系統(tǒng)就是外設(shè)通過(guò)一根usb電纜和pc機(jī)連接起來(lái)。usb在外設(shè)和pc機(jī)之間提供通信服務(wù),通常把外設(shè)稱(chēng)為usb設(shè)備,把其所連接的pc機(jī)稱(chēng)為usb主機(jī),且把指向

9、usb主機(jī)的數(shù)據(jù)傳輸稱(chēng)為上行通信,把指向usb設(shè)備的傳輸稱(chēng)為下行通信。在usb主機(jī)內(nèi)部含有usb主控制器,負(fù)責(zé)完成主機(jī)和usb設(shè)備之間的物理數(shù)據(jù)傳輸。目前,usb主控制器分為兩種類(lèi)型:開(kāi)放型主控制器(ohc)和通用性主控制器(uhc),這兩種主控制器執(zhí)行相同的操作,只是在處理方式上稍有差異。主控制器內(nèi)部包含一個(gè)usb根集線器,用于給usb系統(tǒng)提供一個(gè)或多個(gè)連接點(diǎn)(端口),現(xiàn)在pc機(jī)箱后面的那兩個(gè)usb端口就是由集線器提供的。進(jìn)入windows操作系統(tǒng)的“設(shè)備管理器”,并選擇“按類(lèi)型查看設(shè)備”,其中的“通用串行總線控制器”項(xiàng)列出了pc機(jī)所使用usb主控器和根集線器。usb主機(jī)中還有客戶(hù)軟件:us

10、b設(shè)備驅(qū)動(dòng)程序和界面應(yīng)用程序,用于和指定的usb設(shè)備進(jìn)行通信,以實(shí)現(xiàn)其特殊功能,如傳輸文件、播放聲音等??蛻?hù)軟件是專(zhuān)用的,根據(jù)具體設(shè)備的不同而不同,且一般需開(kāi)發(fā)人員自行編寫(xiě)。2.2.2 usb設(shè)備 按usb設(shè)備功能的不同,可以把其分為兩大類(lèi):集線器和功能設(shè)備。其中,集線器為usb系統(tǒng)提供額外的連接點(diǎn),它使得一個(gè)usb端口可以連接多個(gè)設(shè)備;功能設(shè)備為主機(jī)提供額外的功能,如usb鍵盤(pán)、數(shù)碼相機(jī)等。1.集線器集線器(hub)在usb結(jié)構(gòu)中是一個(gè)關(guān)鍵,它提供了附加的usb節(jié)點(diǎn),這些節(jié)點(diǎn)被稱(chēng)為端口。hub可以檢測(cè)出每一個(gè)下行端口的狀態(tài),并且可以給下端的設(shè)備提供電源。圖2-1是一個(gè)典型的hub。圖2-1

11、usb集線器示意圖對(duì)于usb2.0集線器,其上行端口既可采用高速傳輸速率又可采用全速傳輸速率,下行端口支持高速、全速和低速u(mài)sb設(shè)備的連接,也就是說(shuō),它可以做為高速、全速和低速集線器。當(dāng)做為高速集線器時(shí)(上行端口采用高速傳輸),不論其下行端口連接的是高速、全速還是低速u(mài)sb設(shè)備,其上行通信都是高速的,這樣可以減少低速和全速傳輸對(duì)高速u(mài)sb總線帶寬造成的影響。對(duì)于usb1.1集線器,其上行端口采用全速傳輸速率,下行端口支持全速和低速u(mài)sb設(shè)備的連接,即它可以做為全速和低速集線器。2.功能設(shè)備功能設(shè)備可以和usb主機(jī)進(jìn)行數(shù)據(jù)和控制信息的交互,并為主機(jī)提供額外的功能。在每個(gè)功能設(shè)備內(nèi)部都含有描述其功

12、能和資源需求的配置,如usb帶寬、接口種類(lèi)等。在它們能夠被使用前,主機(jī)必須對(duì)其進(jìn)行配置。功能設(shè)備通常是一個(gè)獨(dú)立的外圍設(shè)備,具有單一的功能。但有的usb設(shè)備實(shí)現(xiàn)了兩個(gè)或多個(gè)不同的功能,如具有鍵盤(pán)和音效功能的傳真機(jī),這時(shí)稱(chēng)其為合成設(shè)備。對(duì)主機(jī)而言,合成設(shè)備是一個(gè)單獨(dú)的usb設(shè)備,其只有一個(gè)設(shè)備地址。對(duì)某些特殊應(yīng)用,有時(shí)需要將一個(gè)或多個(gè)功能設(shè)備嵌入到一個(gè)集線器中,并通過(guò)一根usb電纜進(jìn)行連接,這被稱(chēng)為復(fù)合設(shè)備,如集成了集線器的usb鍵盤(pán)。對(duì)主機(jī)而言,一個(gè)復(fù)合設(shè)備就是一個(gè)永遠(yuǎn)連接有一個(gè)或多個(gè)usb功能設(shè)備的集線器。3.usb的連接usb物理連接是指一個(gè)集線器下行端口和另一個(gè)集線器上行端口或usb功能設(shè)

13、備之間通過(guò)usb電纜的連接。usb高速(480mb/s)和全速(12mb/s)傳輸需要使用外殼屏蔽,而且數(shù)據(jù)線雙絞的usb電纜;而低速(1.5mb/s)電纜不需要屏蔽和雙絞。所有usb電纜都是支持熱插拔的,其插頭上usb圖標(biāo)的觸角指明了正確連接的方向。usb采用層次星型的拓?fù)溥B接結(jié)構(gòu)。通過(guò)usb集線器,一臺(tái)含有一個(gè)usb主控制器的pc機(jī)最多可以連接126個(gè)外設(shè)。連接器usb定義了兩種類(lèi)型的連接器:a系列和b系列,a系列連接器包括a型插頭和a型插座,它們相互匹配;a型插座總是作為usb主機(jī)或集線器的下行端口,所以a型插頭總是指向上行usb主機(jī)。b系列連接器也包括b型插頭和b型插座,它們相互匹配;

14、b型插座總是作為usb設(shè)備或集線器的上行端口,所以b型插頭總是指向下行usb設(shè)備或集線器。電纜usb電纜線內(nèi)部含有4根導(dǎo)線:vbus、gnd、d+和d-。其中,vbus是+5v電源線,gnd是地線,d+和d-是差分?jǐn)?shù)據(jù)線對(duì)。在usb連接器上也有4個(gè)管腳,分別對(duì)應(yīng)這四根導(dǎo)線,而且電源管腳比數(shù)據(jù)管腳長(zhǎng),以保證電源信號(hào)先于數(shù)據(jù)信號(hào)到達(dá)usb設(shè)備。這些管腳都有編號(hào),其對(duì)應(yīng)導(dǎo)線的顏色也不相同。見(jiàn)表2-1:表2-1 usb連接器的四個(gè)管腳管腳編號(hào)導(dǎo)線名稱(chēng)導(dǎo)線顏色管腳編號(hào)導(dǎo)線名稱(chēng)導(dǎo)線顏色1vbus紅3 d+綠2d-白4gnd黑 為了保證數(shù)據(jù)能在usb電纜中無(wú)錯(cuò)誤的傳輸,usb規(guī)范規(guī)定全速/高速電纜必須具有外

15、層屏蔽和銅漏線,且差分?jǐn)?shù)據(jù)線必須雙絞,對(duì)低速電纜來(lái)說(shuō),其傳輸速率較低,所以不需要以上特殊處理,且其一般不含b型插頭,而需要與usb設(shè)備永久連接。低速電纜不能傳輸高速和全速信號(hào),只是可以使用全速/高速電纜來(lái)傳輸?shù)退傩盘?hào),只是要注意其長(zhǎng)度不能超過(guò)低速電纜所允許的最大長(zhǎng)度。另外,全速/高速電纜既可以是束縛電纜也可以是分離電纜,而低速電纜必須是束縛電纜。2.3 usb接口芯片usb接口芯片(或稱(chēng)usb芯片)是一個(gè)集成了usb協(xié)議的微處理器,它能自動(dòng)對(duì)各種usb事件做出響應(yīng),以處理usb總線上的數(shù)據(jù)傳輸。按其功能,可以分為usb主控制器芯片、usb集線器芯片和usb功能設(shè)備芯片。所有的主機(jī)和設(shè)備上都至少

16、含有一塊實(shí)現(xiàn)其功能的usb芯片。2.3.1 usb主控制器芯片usb主控制器芯片負(fù)責(zé)實(shí)現(xiàn)主機(jī)和usb設(shè)備間的物理數(shù)據(jù)傳輸,它是構(gòu)成usb主機(jī)的必須部件。intel公司在1996年2月首次推出了支持usb1.0功能的440hx和440vx pci芯片組,其實(shí)現(xiàn)usb主控制器接口的模塊為82371sb。它標(biāo)志著usb主控制器芯片的正式誕生,但它是集成在pci控制器中的。世界上第一塊單片usb2.0主控制器是2001年6月nec公司發(fā)布的upd720100,它具有5個(gè)usb端口,并支持pci總線。 隨著嵌入式技術(shù)的飛速發(fā)展,usb主機(jī)已不再局限于單純的pc機(jī),其可以是含有usb主控制器的任何設(shè)備,如

17、pda,mp3播放機(jī)等2.3.2 usb集線器芯片usb集線器芯片負(fù)責(zé)將一個(gè)usb上行端口轉(zhuǎn)化為多個(gè)下行端口,它是構(gòu)成usb集線器的必需部件。也有一些集線器芯片提供了驅(qū)動(dòng)外圍電路的i/o口,可構(gòu)成usb復(fù)合設(shè)備,如intel公司在1996年11月推出的世界上第一塊usb集成芯片;8x930hx,就是一塊提供32個(gè)外部i/o口的usb1.0集線器芯片。世界上第一塊usb2.0集線器芯片是nec公司于2001年8月發(fā)布的upd720110,它支持4個(gè)下行端口。2.3.3 usb功能設(shè)備芯片usb功能設(shè)備芯片負(fù)責(zé)實(shí)現(xiàn)功能設(shè)備和usb主機(jī)間的物理數(shù)據(jù)傳輸,它是構(gòu)成usb功能設(shè)備的必需部件。按其所支持的

18、傳輸速率,可以分為低速設(shè)備芯片、全速設(shè)備芯片和高速設(shè)備芯片。通常這些usb芯片都含有多個(gè)驅(qū)動(dòng)外圍電路的i/o口,以實(shí)現(xiàn)usb設(shè)備的特殊功能。一般來(lái)說(shuō),usb功能設(shè)備的組成結(jié)構(gòu)如下:1.cpu:負(fù)責(zé)執(zhí)行存儲(chǔ)在芯片程序存儲(chǔ)的代碼,以控制整個(gè)usb芯片的活動(dòng)。cpu可以是通用的微控制器,如8051單片機(jī);也可以是專(zhuān)用的cpu,如risc。2.程序存儲(chǔ)器:負(fù)責(zé)保存cpu執(zhí)行的程序代碼(或稱(chēng)固件)。類(lèi)型通常為rom、eprom、eeprom、flash eprom、ram中的一種,存儲(chǔ)容量一般在幾千字節(jié)左右。3.數(shù)據(jù)存儲(chǔ)器:負(fù)責(zé)保護(hù)芯片固件執(zhí)行時(shí)產(chǎn)生臨時(shí)數(shù)據(jù)。其類(lèi)型通常為ram,存儲(chǔ)容量一般在1kb 以

19、下。4.寄存器:用于存儲(chǔ)有特殊功能的、臨時(shí)性的數(shù)據(jù)。按其功能,可分為狀態(tài)寄存器、數(shù)據(jù)寄存器和控制寄存器。訪問(wèn)速度通常比數(shù)據(jù)存儲(chǔ)器快,但數(shù)量較少,一般為幾十個(gè)。5.usb接口:負(fù)責(zé)發(fā)送和接收usb總線上的數(shù)據(jù),完成位填充、nrzi(反向非歸零)編解碼等工作,也可以稱(chēng)為(串行接口引擎)。6.usb緩沖器:負(fù)責(zé)存儲(chǔ)在usb總線上發(fā)送和接收的usb數(shù)據(jù),可分為發(fā)送緩沖器和接收緩沖器。它們可以是數(shù)據(jù)存儲(chǔ)器的一部分,也可以是單獨(dú)的一塊存儲(chǔ)器,如fifo等。7.外部i/o:每種usb功能設(shè)備芯片都含有驅(qū)動(dòng)其外圍電路的i/o口,如數(shù)據(jù)總線、地址總線、i2c總線、spi接口等。8.其他部件:有些usb功能設(shè)備芯

20、片中還含有諸如定時(shí)器、看門(mén)狗、uart等特殊功能模塊。世界上第一塊支持usb1.0的功能設(shè)備芯片是intel公司在1996年11月推出的8x930ax,采用增強(qiáng)型8051cpu,并提供32個(gè)外部i/o口。cypress公司在2000年11月推出的cy7c68013是世界上第一塊usb2.0功能設(shè)備芯片,其采用增強(qiáng)型8051cpu,最多可提供40個(gè)外部i/o口。2.4 usb信號(hào)數(shù)據(jù)在usb總線上實(shí)際傳輸時(shí),使用的是nrzi編碼的差分信號(hào),這種usb信號(hào)有利于保證數(shù)據(jù)的完整性和消除噪聲干擾。usb根據(jù)數(shù)據(jù)的傳輸方向和傳輸類(lèi)型,對(duì)usb信號(hào)在d+和d-線上的電壓(或電壓差)提出了具體要求,以完成主

21、機(jī)和usb設(shè)備間的物理通信。2.4.1 usb信號(hào)的發(fā)送usb使用差分驅(qū)動(dòng)器把usb信號(hào)發(fā)送到總線上,但具體實(shí)現(xiàn)方式根據(jù)usb信號(hào)傳輸速率的不同而不同。但是,差分驅(qū)動(dòng)器必須支持三態(tài)(高電平、低電平和高阻),以滿(mǎn)足usb雙向數(shù)據(jù)和半雙工數(shù)據(jù)傳輸?shù)男枰?.低速/全速信號(hào)的發(fā)送對(duì)于低速/全速傳輸,其d+和d-線上輸出低電位的電壓必須小于vol(max):0.3v;輸出高電位時(shí)的電壓必須大于voh(min):2.8v。為盡量減少信號(hào)失真,高低電位之間的輸出擺動(dòng)應(yīng)被很好平衡,這要求在差分驅(qū)動(dòng)器中使用擺動(dòng)比率控制機(jī)制。表2-2列出了低速/全速信號(hào)的輸出電平。其中,交叉電平表示高低電位交叉點(diǎn)的電壓值;se

22、1狀態(tài)表示d+和d-線上的電壓都大于vose1(min):0.8v,它不是差分驅(qū)動(dòng)器自動(dòng)產(chǎn)生的。低速u(mài)sb設(shè)備在連接時(shí)一般使用束縛型低速電纜,它不需要外層屏蔽和數(shù)據(jù)雙絞,最大傳輸延時(shí)為18ns。在低速電纜與usb設(shè)備的連接處,其d+和d-線上通常表2-2 低速/全速信號(hào)的輸出電平狀態(tài)符號(hào)最小值/v最大值/v低電位vol0.00.3高電位voh2.83.6se1vose10.8-交叉電平vcrs1.32.0各需要一個(gè)200pf450pf的電容接地。全速u(mài)sb設(shè)備在連接時(shí)必須使用具有外層屏蔽和數(shù)據(jù)線雙絞的全速電纜,其差分特征阻抗為90(115),共模阻抗為30(130),單向最大傳輸延時(shí)為26ns

23、。通常,全速差分驅(qū)動(dòng)器的輸出阻抗為2844;但當(dāng)它是高速設(shè)備的一部分時(shí),其輸出阻抗必須大于40.5而小于49.5。2.高速信號(hào)的發(fā)送對(duì)于高速傳輸,其d+和d-線上的輸出低電位時(shí)的電壓(vhsol)必須為0v10mv;輸出高電位時(shí)的電壓(vhsoh)必須為400(110)mv。但實(shí)質(zhì)上,高速差分驅(qū)動(dòng)器使用的是差分電壓。高速u(mài)sb設(shè)備在連接時(shí)必須使用具有外層屏蔽和數(shù)據(jù)線雙絞的高速電纜,其差分特征阻抗為90(115),共模阻抗為30(130),單向最大傳輸延時(shí)為26ns。通常,高速差分驅(qū)動(dòng)器的輸出阻抗為90(110);但當(dāng)它工作在全速和低速一部分時(shí),其輸出阻抗為45(110)。 3 系統(tǒng)硬件電路的設(shè)

24、計(jì)3.1主控制器單片機(jī)an2131qc的特點(diǎn)ez-usb系列usb接口芯片是anchor公司最早的產(chǎn)品(從1999年開(kāi)始anchor成為cypress公司的一個(gè)銷(xiāo)售部門(mén)),它支持12mb/s的全速傳輸,可使用4種usb傳輸模式:控制傳輸、中斷傳輸、塊傳輸和同步傳輸,完成兼容usb1.1協(xié)議。該系列芯片的典型應(yīng)用是mp3播放機(jī)、掃描儀、打印機(jī)和數(shù)碼相機(jī)等設(shè)備。3.1.1芯片結(jié)構(gòu)ez-usb系列芯片的顯著特點(diǎn)是固件升級(jí)容易,它是在主機(jī)上而不是在芯片內(nèi)部存儲(chǔ)固件。當(dāng)連接并接通電源時(shí),設(shè)備驅(qū)動(dòng)程序會(huì)發(fā)送這些固件到芯片的ram中,所以在升級(jí)固件時(shí),不需替換芯片或使用特殊的程序。這樣做的不利之處是增加了固

25、件代碼和設(shè)備驅(qū)動(dòng)的復(fù)雜性,但cypress公司為用戶(hù)提供了很多范例代碼和一個(gè)可用的設(shè)備驅(qū)動(dòng)程序,并為該系列芯片提供了開(kāi)發(fā)裝置an2131-dk001,以縮短產(chǎn)品的開(kāi)發(fā)周期。ez-usb為塊傳輸、控制傳輸和中斷傳輸提供了16個(gè)端點(diǎn):ep0inep7in和ep0outep7out,它們的數(shù)據(jù)長(zhǎng)度均為64字節(jié);為同步傳輸提供了16個(gè)端點(diǎn):ep8inep15in和ep8outep15out,它們的最大數(shù)據(jù)長(zhǎng)度為1024字節(jié)。其中,ep0用于控制端點(diǎn),ep1ep7均可用于塊端點(diǎn),ep1inep7in用于中斷端點(diǎn),ep8ep15均為同步端點(diǎn)。ez-usb系列芯片的上述特性決定了它具有一種非常獨(dú)特的結(jié)構(gòu),以

26、80管腳的an2131qc為例,其主要包括usb收發(fā)器、anchor core、增強(qiáng)型8051、8kb的片內(nèi)ram、2kb的fifo存儲(chǔ)器、i/o口、數(shù)據(jù)總線、地址總線和i2c接口。圖3-1是ez-usb系列芯片的結(jié)構(gòu)圖。1.anchor core在ez-usb系列芯片內(nèi)部有一個(gè)anchor core,它由串行接口引擎(sie)和usb接口兩部分組成。sie負(fù)責(zé)和usb收發(fā)器、usb接口進(jìn)行數(shù)據(jù)交換,以完成串行數(shù)據(jù)的編解碼、差錯(cuò)控制、位填充等與usb協(xié)議有關(guān)的功能。這樣,客戶(hù)在編寫(xiě)8051固件代碼時(shí)就不用過(guò)多考慮usb的傳輸協(xié)議了。當(dāng)ez-usb上電時(shí),先由anchor core完成usb設(shè)備

27、的列舉,它把8051的固件代碼下載至芯片內(nèi)部的ram中,并啟動(dòng)8051。之后,8051運(yùn)行該固件程序,并進(jìn)行usb設(shè)備的重列舉。完成后,用戶(hù)就可以使用該設(shè)備了。i/o端口外部存儲(chǔ)器+5vd+d-gndusb連接器usb收發(fā)器串行接口引擎(sie)usb接口程序和數(shù)據(jù)存儲(chǔ)器通用微處理器(增強(qiáng)型8051)地址總線數(shù)據(jù)總線ez-usb圖3-1 ez-usb系列芯片的結(jié)構(gòu)2.增強(qiáng)型8051ez-usb系列芯片采用增強(qiáng)型8051內(nèi)核,其性能是標(biāo)準(zhǔn)8051的5倍,負(fù)責(zé)控制芯片的外圍連接,以使它們可以和anchor core完成usb數(shù)據(jù)交換。簡(jiǎn)單的說(shuō),可以認(rèn)為ez-usb是一個(gè)具有usb功能的增強(qiáng)型805

28、1單片機(jī),用戶(hù)必須編寫(xiě)8051固件程序?qū)λM(jìn)行控制,其指令集和標(biāo)準(zhǔn)8051完全兼容。增強(qiáng)型8051內(nèi)核給用戶(hù)開(kāi)發(fā)帶來(lái)了很大的方便,如果熟悉8051,那么就很容易掌握ez-usb,即便以前不了解8051,用戶(hù)也可以很容易得到其相關(guān)資料和編程工具。為了進(jìn)一步節(jié)省產(chǎn)品的開(kāi)發(fā)周期,還可以使用keil公司提供的c編譯器c51,其比原有匯編語(yǔ)言要簡(jiǎn)單得多,不足之處是它的代碼冗余度較高,不如匯編語(yǔ)言精簡(jiǎn)。3.ramez-usb系列芯片內(nèi)部具有4kb或8kb的ram,它們兼做程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,增強(qiáng)型8051的固件代碼就存儲(chǔ)在該區(qū)域中。ram在斷電后不能保存數(shù)據(jù),同樣,ez-usb斷電后存儲(chǔ)在ram中的固

29、件也會(huì)消失。為了解決這個(gè)問(wèn)題,ez-usb在每一次上電時(shí),將自動(dòng)從主機(jī)或外部的eeprom中自動(dòng)加載8051固件代碼。用戶(hù)也可以自己加載8051固件代碼,并可以多次加載、隨時(shí)加載。這給開(kāi)發(fā)人員帶來(lái)了極大的方便,他們可以隨時(shí)更改或升級(jí)固件代碼,而不需使用額外的編程器和其它的開(kāi)發(fā)裝置。這種機(jī)制的不利之處是延長(zhǎng)了usb設(shè)備的列舉時(shí)間,增加了驅(qū)動(dòng)程序的復(fù)雜性。4.其它組件ez-usb系列芯片內(nèi)部還包含i2c總線,以便其能從外部eeprom中下載8051的固件代碼。如果芯片支持usb同步輸出,其內(nèi)部還會(huì)包含有容量為2kb的fifo緩沖區(qū),該系列芯片采用3.3v供電,且可使用usb總線電源,它們具有44腳

30、、48腳和80腳三種封裝形式,最多可支持24個(gè)i/o口,16根地址總線和8根數(shù)據(jù)總線,芯片最小面積只有1英寸2,占用很少的電路板空間。5.應(yīng)用范圍ez-usb系列芯片的典型應(yīng)用是mp3播放機(jī)、掃描儀、打印機(jī)和數(shù)碼相機(jī)等設(shè)備。為了滿(mǎn)足不同用戶(hù)的需要,cypress公司為ez-usb提供了多種不同的類(lèi)型芯片,如設(shè)備只需使用usb塊傳輸且需8位數(shù)據(jù)總線和較高數(shù)據(jù)傳輸速率,就可選用an2131sc。圖3-2是80腳an2131qc的封裝形式,它是該系列芯片中引腳最多、功能最強(qiáng)的一款,其它型號(hào)都是它的簡(jiǎn)化。 圖3-2 80腳an2131qc的封裝形式3.2系統(tǒng)硬件模塊電路的設(shè)計(jì) 3.2.1 電路總體方框

31、圖單片機(jī)串行通信可編程邏輯器件列隊(duì)緩沖器d/a轉(zhuǎn)換運(yùn)算放大示波器pc機(jī)圖3-3是電路總體方框圖。 圖3-3 硬件原理框圖3.2.2 usb接口單元usb接口單元的主要實(shí)現(xiàn)芯片為cypress公司的an2131qc,負(fù)責(zé)完成硬件系統(tǒng)和pc機(jī)之間的數(shù)據(jù)傳輸。其中,an2131qc的discon#和usb d+管腳間接有1.5k電阻,以選擇全速u(mài)sb傳輸:pc1用于控制tlc7524的工作狀態(tài),以決定是否輸出波形;數(shù)據(jù)總線d0d7負(fù)責(zé)將主機(jī)發(fā)出的數(shù)據(jù)輸出到idt7202,以供tlc7524進(jìn)行da轉(zhuǎn)換;pc4pc7用于向epm7064發(fā)出ddfs頻率控制字,以選擇波形輸出的頻率;pb0pb7用于向d

32、ac0832提供數(shù)據(jù),以控制波形輸出的幅度;pa6和pa7用于控制發(fā)光二極管led1與led2的點(diǎn)亮和熄滅,以指示硬件系統(tǒng)是否正在工作。圖3-4是usb接口原理圖。圖3-4 usb接口單元部分3.2.3 ddfs控制單元ddfs控制單元的主要芯片為altera公司的epm7064,負(fù)責(zé)控制系統(tǒng)輸出波 型的頻率。圖3-5是ddfs控制單元。圖3-5 ddfs控制單元其中,epm7064的clock和data管腳負(fù)責(zé)以串行數(shù)據(jù)方式接收an2131qc發(fā)出的頻率控制字(設(shè)為m),共15位,高位在前,低位在后。因系統(tǒng)波形采樣點(diǎn)數(shù)為64點(diǎn),所以最終輸出波形的頻率為: =0.48828125其中,為epm

33、7064所選用的頻率,本例為4.096mhz。因此系統(tǒng)輸出的最低頻率為0.488hz(約0.5hz),最高頻率為15999.5hz,頻率分辨率為0.5hz,相對(duì)誤差為2.4%。表3-1列出了幾種典型頻率所對(duì)應(yīng)的控制字。表3-1 典型輸出頻率所對(duì)應(yīng)的控制字控制字輸出頻率/hz控制字(m)輸出頻率/hz10.48840962000157.3281924000255124.51638480002048124.532767159波形輸出單元波形輸出單元的主要實(shí)現(xiàn)芯片為ti公司的tlc7524和美國(guó)國(guó)家半導(dǎo)體公司的dac0832,它們的輸出形式均為電流。為了得到電壓信號(hào),使用了運(yùn)算放大

34、器op07和op27。本系統(tǒng)中,tlc7524的片選信號(hào)和dac寄存器寫(xiě)選通信號(hào)。都與an2131qc芯片的pc1連接,這時(shí),只要pc1管腳輸出低電平,tlc7524就開(kāi)始進(jìn)行da轉(zhuǎn)換,并將fifo存儲(chǔ)器idt7202輸出的數(shù)據(jù)直接寫(xiě)入dac寄存器,系統(tǒng)輸出的波形也就隨之變化。dac0832工作于直通方式:即數(shù)據(jù)允許鎖存信號(hào)ile接高電平,片選信號(hào)、數(shù)據(jù)傳送信號(hào)和寫(xiě)選通信號(hào)與均接低電平。這時(shí),dac0832會(huì)實(shí)時(shí)將an2131qc芯片pb口的輸出數(shù)據(jù)轉(zhuǎn)換成模擬量,以控制tlc7524的參考電壓ref。圖3-6是波形輸出單元。圖3-6 波形輸出單元4 軟件的設(shè)計(jì)與實(shí)現(xiàn)4.1軟件功能及作用 an2

35、131qc芯片的固件程序控制整個(gè)硬件系統(tǒng)的運(yùn)行,并負(fù)責(zé)處理pc機(jī)發(fā)來(lái)的各種usb請(qǐng)求。本例固件開(kāi)發(fā)所使用的編程語(yǔ)言為德國(guó)keil公司的c51編譯器,集成開(kāi)發(fā)環(huán)境為uvision2。固件共包含8個(gè)程序文件:main.c、function.c、delayms.a51、dscrptr.a51、jmptable.a51、testheader.h、testregs.inc。其中,頭文件testheader.h、testregs.inc對(duì)an2131qc中的各種寄存器進(jìn)行了定義;testheader.h定義了通用的ez-usb常量、數(shù)據(jù)類(lèi)型和宏;dscrptr.a51定義了系統(tǒng)所使用的各種usb描述符;d

36、elayms.a51中包含了延時(shí)1ms子程序和芯片掛起處理子程序;jmptable.a51文件定義了ez-usb的int2中斷跳轉(zhuǎn)表;main.c是固件運(yùn)行的主程序文件,負(fù)責(zé)處理各種usb設(shè)備請(qǐng)求;function.c中包含各種功能函數(shù)的定義,用于完成系統(tǒng)的主要功能,如處理usb同步傳輸?shù)取?.1.1 主函數(shù)main.c是固件運(yùn)行的主程序文件,負(fù)責(zé)處理主機(jī)發(fā)出的各種usb設(shè)備請(qǐng)求,圖4-1所示是其流程圖。該程序首先初始化所有的內(nèi)部狀態(tài)的變量,然后調(diào)用td_init(以前綴“td_”開(kāi)頭的函數(shù)均在function.c文件中定義)用戶(hù)函數(shù)進(jìn)行初始化,并打開(kāi)中斷,最后固件程序開(kāi)始列舉usb設(shè)備,直至

37、在端點(diǎn)0上接收到setup令牌包時(shí)為止。一旦接收到setup令牌包,并將重復(fù)執(zhí)行下面的任務(wù)分配過(guò)程。1.調(diào)用函數(shù)td_poll,以完成用戶(hù)指定的任務(wù)。2. 判斷是否有usb設(shè)備請(qǐng)求(setup令牌包)。如果有,則調(diào)用parse control trans-fer函數(shù)進(jìn)行相應(yīng)的處理;如果沒(méi)有,則繼續(xù)向下執(zhí)行。3.檢測(cè)usb總線是否空閑。如果空閑,則調(diào)用程序td_suspend返回值后,它將調(diào)用ez-usb_suap,以使8051處于空閑狀態(tài)。這時(shí),只有usb總線活動(dòng)或芯片wakeup#管腳活動(dòng),才可能將8051重新激活。4.8051被激活后,固件程序?qū)⑹紫日{(diào)用ezusb_resume函數(shù),以使8

38、051從空閑狀態(tài)中恢復(fù)出來(lái),然后在調(diào)用td_resume函數(shù)來(lái)處理用戶(hù)指令。4.2上位機(jī)程序設(shè)計(jì)visual c+是一種功能強(qiáng)大、簡(jiǎn)單易學(xué)的程序設(shè)計(jì)語(yǔ)言。它不但保留了原先basic語(yǔ)言的全部功能,而且還增加了面向?qū)ο蟪绦蛟O(shè)計(jì)功能。不需要設(shè)計(jì)者編寫(xiě)大量的代碼去描述界面外觀和位置,只要把預(yù)先建立的控件直接應(yīng)用到屏幕上,簡(jiǎn)上電復(fù)位初始化狀態(tài)變量調(diào)用td_init()使能中斷是否接收到setup包n延時(shí)1s、重列舉y調(diào)用td_po11()是否接收到setup包yy執(zhí)行設(shè)備要求nnusb總線空閑?標(biāo)志是否有效y調(diào)用td_suspend()falsetrue掛起處理器調(diào)用td_resume()圖4-1 系

39、統(tǒng)流程圖化了設(shè)計(jì)過(guò)程,應(yīng)用簡(jiǎn)單信息交互方便。它不僅可以方便快捷地編制適用于數(shù)據(jù)處理、多媒體等方面的程序,而且利用activex控件mscomm還能十分方便地開(kāi)發(fā)出使用計(jì)算機(jī)串口的計(jì)算機(jī)通信程序。利用vc進(jìn)行windows應(yīng)用程序開(kāi)發(fā)的一個(gè)顯著特點(diǎn)就是應(yīng)用程序與操作系統(tǒng)的聯(lián)系非常密切。4.2.2 上位機(jī)程序功能和界面上位機(jī)部分的功能主要是完成人機(jī)交互,實(shí)現(xiàn)上位機(jī)對(duì)檢測(cè)儀的控制;將界面中的人機(jī)交互動(dòng)作轉(zhuǎn)變?yōu)闄C(jī)器可以識(shí)別的二進(jìn)制數(shù)據(jù),并通過(guò)串行接口發(fā)出控制指令,并承擔(dān)將單片機(jī)上串的數(shù)據(jù)處理后進(jìn)行顯示等任務(wù),實(shí)現(xiàn)檢測(cè)信息的交互。上位機(jī)部分采用visual c+編寫(xiě)程序完成界面設(shè)計(jì),界面內(nèi)有以下幾個(gè)功能

40、區(qū)域可供操作者點(diǎn)擊:坐標(biāo)區(qū)、坐標(biāo)指針實(shí)時(shí)區(qū)、station區(qū)(line、sine、free功能鍵)、頻率振幅顯示區(qū)、編輯提示區(qū)。圖4-2為其上位機(jī)界面。上位機(jī)visual c+編寫(xiě)界面中使用了文本控件、命令按紐控件、標(biāo)題控件、sstab控件、mscom控件等,對(duì)其屬性進(jìn)行了相關(guān)設(shè)置。 使用了visual c+中的對(duì)話(huà)*.show、*.hide和mscomm1_oncomm等系統(tǒng)函數(shù)。在模塊級(jí)范圍內(nèi)聲明了一個(gè)公共數(shù)組作為數(shù)據(jù)傳遞和存儲(chǔ)使用,在子模塊中使用局域變量。這樣的設(shè)計(jì)使各個(gè)模塊中數(shù)值可以直接傳遞,且不會(huì)造成過(guò)多的系統(tǒng)消耗,使全局和模塊直接的關(guān)系直觀,邏輯清晰。圖4-2 上位機(jī)界面上位機(jī)部分

41、采用visual c+編寫(xiě)程序完成界面設(shè)計(jì),界面內(nèi)有以下幾個(gè)功能區(qū)域可供操作者點(diǎn)擊:坐標(biāo)區(qū)、坐標(biāo)指針實(shí)時(shí)區(qū)、station區(qū)(line、sine、free功能鍵)、頻率振幅顯示區(qū)、編輯提示區(qū)。4.3設(shè)備驅(qū)動(dòng)程序usb設(shè)備驅(qū)動(dòng)的組要功能是是win32應(yīng)用程序能正確訪問(wèn)本波形發(fā)生器的硬件設(shè)備。本系統(tǒng)中將an2131qc的固件代碼存放在主機(jī)上,當(dāng)系統(tǒng)上電或usb連接時(shí),再將它下載至芯片的ram中,由增強(qiáng)型8051執(zhí)行。這需要使用兩個(gè)驅(qū)動(dòng)程序:一個(gè)是loaderwave.sys,專(zhuān)用于下載芯片的固件程序;另一usbwave.sys,用于實(shí)現(xiàn)本波形發(fā)生器的具體功能。4.3.1 固件程序loaderwav

42、e.sys的主要任務(wù)是將固件程序下載至an2131qc芯片的ram中,由增強(qiáng)型8051執(zhí)行。loaderwave.sys中不包含分發(fā)例程,且電源管理例程和即插即用例程由同一函數(shù)testpnpirp來(lái)處理,其主要實(shí)現(xiàn)文件有兩個(gè):testinit.c和testpnp.c。另外,還有兩個(gè)c文件需要參加編譯:loader.c和tagtest.h,它們都是an2131qc芯片固件程序。其中,loader.c實(shí)現(xiàn)了將數(shù)據(jù)下載至an2131qc芯片ram中的供應(yīng)商自定義請(qǐng)求,由cypress公司提供;tagtest.c為本系統(tǒng)所使用的芯片固件。為將keil c51語(yǔ)言編譯連接所得到的intel十六進(jìn)制記錄(

43、.hex文件)轉(zhuǎn)換為c代碼(.c文件),需使用cypress公司提供的hex2c工具,它是一個(gè)win32控制臺(tái)應(yīng)用程序,用法為hex2c varname。其中,參數(shù)intel_hexfile_name指明輸入文件名,即由keil工具建立的.hex文件,本例中為tagtest.hex;參數(shù)c_filename指明輸出的c文件名,本例中為tagtest.c。4.3.2 波形功能程序usbwave.sys,是本波形發(fā)生器運(yùn)行時(shí)所使用的驅(qū)動(dòng)程序,負(fù)責(zé)完成上位機(jī)win32應(yīng)用程序和系統(tǒng)硬件設(shè)備間的數(shù)據(jù)傳輸。 結(jié) 論自開(kāi)題以來(lái),我常常到圖書(shū)館查閱相關(guān)的書(shū)籍,期刊,通過(guò)互聯(lián)網(wǎng)查詢(xún)有關(guān)usb工程開(kāi)發(fā)的相關(guān)知識(shí)

44、。并不時(shí)向這方面理論掌握扎實(shí)和實(shí)踐經(jīng)驗(yàn)豐富的老師和同學(xué)請(qǐng)教學(xué)習(xí),請(qǐng)求指導(dǎo)解決課題進(jìn)行中遇到的種種問(wèn)題,直到徹底弄懂為止。此課題,基于usb接口波形發(fā)生器設(shè)計(jì):主要針對(duì)an2131qc單片機(jī)的實(shí)驗(yàn)和開(kāi)發(fā),通過(guò)對(duì)an2131qc單片機(jī)的學(xué)習(xí),來(lái)了解usb的工程開(kāi)發(fā),同時(shí)通過(guò)畫(huà)電路pcb的制作,掌握制版的一些知識(shí)。在軟件編程中,對(duì)cpld的編程是一個(gè)難點(diǎn),需要對(duì)cpld的管腳定義有所了解。畢業(yè)設(shè)計(jì)過(guò)程中主要進(jìn)行了an2131qc單片機(jī)電路的設(shè)計(jì),首先確定了設(shè)計(jì)任務(wù),其次查找資料,研究設(shè)計(jì)方案,進(jìn)行方案比較并確定了一個(gè)最佳方案,然后就開(kāi)始設(shè)計(jì)工作,畫(huà)電路圖和pcb板,焊接電路并調(diào)試。設(shè)計(jì)包括硬件的設(shè)計(jì)

45、和軟件的設(shè)計(jì),其硬件設(shè)計(jì)中主要是外圍電路和單片機(jī)的結(jié)合,使得整個(gè)實(shí)驗(yàn)板可以完成多項(xiàng)功能。在這些日子的學(xué)習(xí)和思考中,我品嘗了“書(shū)到用時(shí)方恨少”的苦惱,也感受到了學(xué)以致用的快樂(lè)。通過(guò)自己動(dòng)手進(jìn)一步發(fā)現(xiàn)理論與實(shí)際存在這一定的距離,在實(shí)施過(guò)程中遇到了很多預(yù)先沒(méi)有想到的困難。在今后的理論學(xué)習(xí)中要加強(qiáng)與實(shí)際動(dòng)手的聯(lián)系,能把先進(jìn)的理論更快的運(yùn)用于實(shí)際工作中。參 考 文 獻(xiàn)1 尹勇,王洪成編著 單片機(jī)開(kāi)發(fā)環(huán)境vision 2使用指南 2004 2 李英偉 編著 usb 2.0原理與工程開(kāi)發(fā) 20073 武安河 編著 windows 2000/xp wdm設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā) 20054 周立功 編著 usb 2.

46、0與otg規(guī)范及開(kāi)發(fā)指南 20045 蕭世文 編著 usb 2.0硬件設(shè)計(jì) 2002 6 廖濟(jì)林 編著 usb 2.0應(yīng)用系統(tǒng)開(kāi)發(fā)實(shí)例精講 20067 薛園園 編著 usb應(yīng)用開(kāi)發(fā)技術(shù)大全 2007 8 許永和編著 健蓮科技改編 usb外圍設(shè)備設(shè)計(jì)與應(yīng)用 20029 張弘編著 usb接口設(shè)計(jì) 2002 10 胡曉軍,張愛(ài)成編著 usb接口開(kāi)發(fā)技術(shù) 200511 李肇慶 廖峰 劉建存編著 usb接口技術(shù) 2004 12 劉韜,樓興華編著 fpga數(shù)字電子系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)實(shí)例導(dǎo)航 2005 13 錢(qián)峰編著 ez-usb fx2單片機(jī)原理、編程及應(yīng)用 2006 14 許永和編著 8051單片機(jī)usb接

47、口程序設(shè)計(jì) 2004 15 劉兵 編著 微型計(jì)算機(jī)通信與接口技術(shù) 200816 厲榮衛(wèi)主編 微機(jī)原理與接口技術(shù) 2006 17 馬偉 編著 計(jì)算機(jī)usb系統(tǒng)原理及其主從機(jī)設(shè)計(jì) 200418 (美) hyde john 著 usb設(shè)計(jì)應(yīng)用實(shí)例 2003 19 網(wǎng)絡(luò)資源:、附錄1:原理圖附錄2:程 序(主函數(shù)部分)#include testheader.h#define allocate_extern #include testregs.h#include #definedelay_count0x9248#definem

48、in(a,b) (a)(b)?(a):(b)#define writedelay() char writedelaydummy = 0;volatile boolgotsud;boolrwuen;boolselfpwr;volatile boolsleep;extern code devicedscrdevicedscr; extern code configdscrconfigdscr;extern code stringdscrstringdscr;void parsecontroltransfer(void);void td_init(void);void td_poll(void);b

49、ool td_resume(void);bool td_suspend(void);bool dr_getdescriptor(void);bool dr_setconfiguration(void);bool dr_getconfiguration(void);bool dr_setinterface(void);bool dr_getinterface(void);bool dr_getstatus(void);bool dr_clearfeature(void);bool dr_setfeature(void);bool dr_vendorcmnd(void);void usbdisco

50、nnect(bool renum);void delay(word ms);extern void delay1ms(void); extern void ezusb_susp(void); void ezusb_resume(void);configdscr* getconfigdscr(byte configidx);stringdscr* ezusb_getstringdscr(byte stridx);void main(void) dword j = 0; sleep = false;rwuen = false; selfpwr = true; gotsud = false;td_init(); eusb = 1; eicon |= 0x20; usbbav = usbbav | 1 & bmbreak; usbien |= bmsudav | bmsutok | bmsusp | bmures;ea = 1; #ifndef

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論