九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

[優(yōu)秀畢業(yè)論文]基于單片機(jī)+PDIUSBD12芯片的USB協(xié)議轉(zhuǎn)換系統(tǒng)設(shè)計(jì)

上傳人:仙*** 文檔編號(hào):28394504 上傳時(shí)間:2021-08-27 格式:DOC 頁(yè)數(shù):53 大小:3.55MB
收藏 版權(quán)申訴 舉報(bào) 下載
[優(yōu)秀畢業(yè)論文]基于單片機(jī)+PDIUSBD12芯片的USB協(xié)議轉(zhuǎn)換系統(tǒng)設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共53頁(yè)
[優(yōu)秀畢業(yè)論文]基于單片機(jī)+PDIUSBD12芯片的USB協(xié)議轉(zhuǎn)換系統(tǒng)設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共53頁(yè)
[優(yōu)秀畢業(yè)論文]基于單片機(jī)+PDIUSBD12芯片的USB協(xié)議轉(zhuǎn)換系統(tǒng)設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共53頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《[優(yōu)秀畢業(yè)論文]基于單片機(jī)+PDIUSBD12芯片的USB協(xié)議轉(zhuǎn)換系統(tǒng)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《[優(yōu)秀畢業(yè)論文]基于單片機(jī)+PDIUSBD12芯片的USB協(xié)議轉(zhuǎn)換系統(tǒng)設(shè)計(jì)(53頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、本科生畢業(yè)論文目錄第1章緒論11.1概述11.1.1課題研究目的11.1.2國(guó)內(nèi)外發(fā)展?fàn)顩r11.2USB接口及USB器件分析21.3系統(tǒng)方案設(shè)計(jì)41.4預(yù)期實(shí)現(xiàn)目標(biāo)4第2章USB概述及協(xié)議62.1USB體系結(jié)構(gòu)概述62.1.1USB系統(tǒng)描述62.1.2USB連接頭及其供電方式82.1.3USB系統(tǒng)軟硬件組成82.2USB編碼方式與傳輸類型92.2.1USB的編碼方式92.2.2USB傳輸92.3USB設(shè)備請(qǐng)求122.3.1USB標(biāo)準(zhǔn)請(qǐng)求格式122.3.2USB標(biāo)準(zhǔn)請(qǐng)求命令122.4USB設(shè)備的描述符132.4.1設(shè)備描述符132.4.2配置描述符142.4.3接口描述符142.4.4端點(diǎn)描述符

2、162.4.5字符串描述162.5總線協(xié)議192.6USB的枚舉過程192.7USB主機(jī)接口及系統(tǒng)的功能202.8本章小結(jié)21第3章硬件特性及電路設(shè)計(jì)223.1單片機(jī)8051介紹223.2PDIUSBD12器件與微控制器的連接243.2.1PDIUSBD12功能描述243.2.2PDIUSBD12管腳配置243.2.3單片機(jī)與PDIUSBD12的連接253.3系統(tǒng)硬件設(shè)計(jì)263.3.1單片機(jī)電路設(shè)計(jì)263.3.2外圍電路設(shè)計(jì)273.4本章小結(jié)29第4章程序設(shè)計(jì)及調(diào)試304.1概述304.1.1集成開發(fā)環(huán)境Keil簡(jiǎn)介304.1.2程序概述304.2固件程序344.2.1固件程序組成344.2.

3、2PDIUSBD12的底層操作354.2.3PDIUSBDI2命令接口程序364.2.4PDIUSBDI2的中斷服務(wù)程序374.2.5主程序424.3程序調(diào)試454.3.1Keil編譯器的使用454.3.2系統(tǒng)調(diào)試484.4本章小結(jié)51結(jié)論52參考文獻(xiàn)53致謝54附錄55附錄1電路原理圖55附錄2PCB圖56第1章緒論1.1概述1.1.1課題研究目的隨著電子科技的發(fā)展與應(yīng)用,各種計(jì)算機(jī)外圍接口不斷推陳出新,USB接口已經(jīng)成為現(xiàn)今個(gè)人計(jì)算機(jī)上最重要的接口之一,各種電子消費(fèi)產(chǎn)品也逐漸配置這種接口。USB接口是速度比較高的串行接口,具有較廣闊的發(fā)展前景和應(yīng)用潛力。USB適用于低檔外設(shè)與主機(jī)之間的高速

4、數(shù)據(jù)傳輸。從USB問世至今,USB在不斷的自我完善,并走向成熟。從普通計(jì)算機(jī)用戶、計(jì)算機(jī)工程師、到硬件芯片生產(chǎn)廠商,都已經(jīng)完全認(rèn)可了USB。傳統(tǒng)的設(shè)備主要是基于RS-232的串行接口,隨著計(jì)算機(jī)速度的提升,已經(jīng)明顯不能適應(yīng)發(fā)展的需要。不僅是速度上比較慢,而且由于其不支持熱插拔。而USB接口由于支持熱插拔,占有較少的系統(tǒng)軟件硬件資源,廠商對(duì)于USB的硬件軟件的支持也越來越完備,現(xiàn)在開發(fā)一個(gè)USB外設(shè)產(chǎn)品所需要的成本和時(shí)間大大降低了。USB技術(shù)取得了迅速的發(fā)展。單片機(jī)作為最典型的嵌入式系統(tǒng),推動(dòng)了嵌入式系統(tǒng)的發(fā)展,成為現(xiàn)代電子系統(tǒng)中重要的智能化器件。因此,USB I/O外圍設(shè)備的設(shè)計(jì)已成為電子領(lǐng)域

5、的主要技術(shù)之一1。本課題就是利用單片機(jī)設(shè)計(jì)一個(gè)功能簡(jiǎn)單的嵌入式USB外設(shè),將其與PC機(jī)連接,通過USB接口實(shí)現(xiàn)PC機(jī)與外設(shè)之間的相互通信。1.1.2國(guó)內(nèi)外發(fā)展?fàn)顩r1994年,Intel,Compaq,Digital,IBM,Microsoft,NEC,Northern Telecom等7家世界著名的計(jì)算機(jī)和通信公司成立了USB論壇,花了近兩年的時(shí)間形成了統(tǒng)一的意見,于1995年11月正式制定了USB 0.9通用串行總線(Universal Serial Bus)規(guī)范。在1996年,一些規(guī)模型經(jīng)營(yíng)的公司,他們的PC機(jī)、監(jiān)視器,開始配備了USB接口。原有的所有接口和插槽依然保留,只增加一個(gè)USB接

6、插件,其目的是為了在擴(kuò)展新的用途時(shí)使用。直到1997年,真正符合USB技術(shù)標(biāo)準(zhǔn)的外設(shè)才開始出現(xiàn)。直至Windows98推出之前,推出的USB功能模塊并不多,原因除了因?yàn)閭鹘y(tǒng)的通信接口,如RS232,IEEE488等,一時(shí)難以退出應(yīng)用領(lǐng)域外,一些早期的USB應(yīng)用探索者步履艱難,抱怨的主因是宿主平臺(tái)的實(shí)用性。Windows98對(duì)USB驅(qū)動(dòng)軟件(USBD)完善,使其可提供對(duì)USB的強(qiáng)有力的支持,對(duì)USB技術(shù)的發(fā)展起到重要推進(jìn)作用。自此,市場(chǎng)上涌現(xiàn)出大批的USB產(chǎn)品。USB1.0是目前推出的在支持USB的計(jì)算機(jī)與外設(shè)上普遍采用的標(biāo)準(zhǔn)。目前普遍采用的USB1協(xié)議主要應(yīng)用在中低速外圍設(shè)備上,它提供的傳輸速

7、度有低速1.5Mbps和全速12Mbps兩種??煞謩e支持顯示器、Modem、鼠標(biāo)、鍵盤、掃描儀、打印機(jī)、光驅(qū)及大范圍的多媒體設(shè)備。從國(guó)外的發(fā)展來看,人們對(duì)USB有著極大的重視程度,這從USB規(guī)范的改進(jìn)速度之快及國(guó)際市場(chǎng)上基于USB的產(chǎn)品普及的范圍可見一斑。從1994年公布V1.0FDR版本,短短一年時(shí)間版本增訂了五次。說明技術(shù)人員正大力研究改善USB的性能。市場(chǎng)上基于USB的外設(shè)己囊括了所有的數(shù)字產(chǎn)品。可見國(guó)外在這方面已作了很多工作,并且目前也正以很快的速度發(fā)展2。 國(guó)內(nèi)對(duì)于USB的研究在這幾年才剛剛起步。市場(chǎng)上也可以見到各種USB產(chǎn)品,也有少量的專門討論USB開發(fā)的國(guó)內(nèi)網(wǎng)站。比較專業(yè)的穩(wěn)定的

8、網(wǎng)站有USB開發(fā)網(wǎng)(),但因?yàn)樵谇皫啄赀€很少有人做這方面的工作,所以在相關(guān)網(wǎng)站上開發(fā)USB的文章量少,更新速度慢;國(guó)內(nèi)知名高校的BBS(比如水木華:),上面相關(guān)的文章詢問USB的人多,但回答問題的人僅限于幾個(gè)。對(duì)USB芯片進(jìn)行開發(fā)、技術(shù)服務(wù)和應(yīng)用方案設(shè)計(jì)的公司更是寥寥無幾。雖然在網(wǎng)上做調(diào)研所得到的信息并不完全,但由此可以看出國(guó)內(nèi)對(duì)USB技術(shù)研究的需求及欠缺。1.2USB接口及USB器件分析USB(Universal Serial Bus通用串行總線),是一種快速、靈活的總線接口。與其它通信接口比較,USB接口的最大特點(diǎn)是易于使用,這也是USB的主要設(shè)計(jì)目標(biāo)。作為一種高速總線接口,USB適用于多

9、種設(shè)備,如數(shù)碼相機(jī)、MP3播放機(jī)、高速數(shù)據(jù)采集設(shè)備等。易于使用還表現(xiàn)在USB接口支持熱插拔,并且所有的配置過程都由系統(tǒng)自動(dòng)完成,無需用戶干預(yù)。USB接口支持1.5Mb/s(低速)和12Mb/s(全速)的數(shù)據(jù)傳輸速率,扣除用于總線狀態(tài)、控制和錯(cuò)誤監(jiān)測(cè)等的數(shù)據(jù)傳輸,USB的最大理論傳輸速率仍達(dá)1.2Mb/s或9.6Mb/s,遠(yuǎn)高于一般的串行總線接口。USB接口芯片價(jià)格低廉,這也大大促進(jìn)USB設(shè)備的開發(fā)與應(yīng)用。在進(jìn)行一個(gè)USB設(shè)備開發(fā)之前,首先要根據(jù)具體使用要求選擇合適的USB控制器。目前,市場(chǎng)上供應(yīng)的USB控制器主要有兩種:帶USB接口的單片機(jī)(MCU)或純粹的USB接口芯片。帶USB接口的單片機(jī)

10、從應(yīng)用上又可以分成兩類,一類是從底層設(shè)計(jì)專用于USB控制的單片機(jī),另一類是增加了USB接口的普通單片機(jī),如Cypress公司的EZUSB(基于8051),選擇這類USB控制器的最大好處在于開發(fā)者對(duì)系統(tǒng)結(jié)構(gòu)和指令集非常熟悉,開發(fā)工具簡(jiǎn)單,但對(duì)于簡(jiǎn)單或低成本系統(tǒng)。其價(jià)格因素也是在實(shí)際選擇過程中需要考慮的因素。純粹的USB接口芯片僅處理USB通信,必須有一個(gè)外部微處理器來進(jìn)行協(xié)議處理和數(shù)據(jù)交換。這類典型產(chǎn)品有Philips公司的PDIUSBD12(并行接口),NS公司USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特點(diǎn)是價(jià)格便宜、接口方便、可靠性高,

11、尤其適合于產(chǎn)品的改型設(shè)計(jì)(硬件上僅需對(duì)并行總線和中斷進(jìn)行改動(dòng),軟件則需要增加微處理器的USB中斷處理和數(shù)據(jù)交換程序,PC機(jī)的USB接口通信程序,無需對(duì)原有產(chǎn)品系統(tǒng)結(jié)構(gòu)作很大的改動(dòng))2。PDIUSBD12是在USB協(xié)議設(shè)備端使用最多的芯片之一。此芯片是帶有并行總線的全速USB接口器件,可與任何微控制器實(shí)現(xiàn)高速并行接口(2Mb/s),并用于許多外設(shè)。這種實(shí)現(xiàn)USB接口的標(biāo)準(zhǔn)組件,可以使設(shè)計(jì)者在不同類型的微控制器中選擇最合適的微控制器,使用已有的結(jié)構(gòu)和減少固件上的投資,從而用最快捷的方法實(shí)現(xiàn)最經(jīng)濟(jì)的USB設(shè)備,它具有以下特性:1、符合USB1.0版規(guī)范;2、高性能USB接口器件,集成了SIE, FI

12、FO存儲(chǔ)器,收發(fā)器以及電壓調(diào)整器;3、可以與任何外部微控制器/微處理起實(shí)現(xiàn)高速并行接(2MB/s);4、集成320B多結(jié)構(gòu)的FIFO存儲(chǔ)器;5、完全自治的直接內(nèi)存存?。―MA)操作;6、可以通過軟件控制與USB的連接;7、采用GoodLink技術(shù)的連接指示器,在通信時(shí)使LED閃爍;8、可編程的時(shí)鐘頻率輸出;9、多中斷模式實(shí)現(xiàn)批量和同步傳輸3。1.3系統(tǒng)方案設(shè)計(jì)以單片機(jī)原理,硬件資源的功能應(yīng)用,PDIUSBD12芯片功能與接口設(shè)計(jì),USB1.0協(xié)議等理論知識(shí)為基礎(chǔ),設(shè)計(jì)出完整的系統(tǒng)原理圖。根據(jù)原理圖,將硬件系統(tǒng)資源焊接成PCB板。根據(jù)系統(tǒng)功能,設(shè)計(jì)編寫固件程序,下載后進(jìn)行調(diào)試,實(shí)驗(yàn)板在單片機(jī)控制

13、下能單獨(dú)工作后,然后和上位機(jī)進(jìn)行聯(lián)機(jī)調(diào)試,通過USB接口實(shí)現(xiàn)與上位機(jī)的相互通信。本課題涉及的理論知識(shí)主要是USB1.0協(xié)議,重點(diǎn)在于硬件設(shè)計(jì),難點(diǎn)在于編程和整機(jī)的調(diào)試。經(jīng)過論證,在實(shí)現(xiàn)設(shè)計(jì)要求的前提下,為了降低系統(tǒng)的成本,選用接口級(jí)芯片PDIUSBD12,控制器選取8051,它有64k的存儲(chǔ)容量,對(duì)于固件程序已經(jīng)足夠使用了;而且這款單片機(jī)支持在線編程,通過串口下載程序,這給程序的下載和使用帶來來方便。程序設(shè)計(jì)采用C語言進(jìn)行編程,軟件仿真采用Keil C51。1.4預(yù)期實(shí)現(xiàn)目標(biāo)通過硬件電路和驅(qū)動(dòng)程序(包括設(shè)備端和上位機(jī)端的驅(qū)動(dòng)程序)實(shí)現(xiàn)以下目的:1、保證電路連接的正確性和可行性。完成以單片機(jī)與U

14、SB接口芯片為主要芯片的電路板;2、完成程序的編寫,主要是設(shè)備端的固件編程;3、通過硬件調(diào)試,單片機(jī)能獨(dú)立控制電路板上元件工作;4、實(shí)現(xiàn)電路板與上位PC機(jī)雙向傳輸。這需要與上位機(jī)進(jìn)行聯(lián)機(jī)調(diào)試,主要在軟件部分實(shí)現(xiàn)。第2章USB概述及協(xié)議USB以USB主機(jī)為核心,以外圍的USB設(shè)備為功能,組成了USB系統(tǒng)模型。主機(jī)是USB的核心,每次USB數(shù)據(jù)通信都必須是由USB主機(jī)來發(fā)起的,主機(jī)管理著USB設(shè)備。USB物理上是一個(gè)含有兩條電源線(VCC,GND)和兩條以差分方式產(chǎn)生信號(hào)的線(D+,D-),傳輸率可達(dá)12Mbps的串行接口,一個(gè)PC主機(jī)可以連接多達(dá)127個(gè)外圍設(shè)備。USB協(xié)議是以令牌包為主的通信協(xié)

15、議,12Mbps的總線帶寬被分割成1ms的幀,所有任務(wù)以時(shí)分傳輸(TDM)來分享總線。2.1USB體系結(jié)構(gòu)概述2.1.1USB系統(tǒng)描述一個(gè)USB系統(tǒng)主要被定義為三個(gè)部分: USB的互連; USB的設(shè)備; USB的主機(jī)。 USB的互連是指USB設(shè)備與主機(jī)之間進(jìn)行連接和通信的操作,主要包括以下幾方面: 總線的拓?fù)浣Y(jié)構(gòu):USB設(shè)備與主機(jī)之間的各種連接方式; 內(nèi)部層次關(guān)系:根據(jù)性能疊置,USB的任務(wù)被分配到系統(tǒng)的每一個(gè)層次; 數(shù)據(jù)流模式:描述了數(shù)據(jù)在系統(tǒng)中通過USB從產(chǎn)生方到使用方的流動(dòng)方式;USB的調(diào)度:USB提供了一個(gè)共享的連接。對(duì)可以使用的連接進(jìn)行了調(diào)度以支持同步數(shù)據(jù)傳輸,并且避免的優(yōu)先級(jí)判別的

16、開銷。USB連接了USB設(shè)備和USB主機(jī),USB的物理連接是有層次性的星型結(jié)構(gòu)。每個(gè)網(wǎng)絡(luò)集線器是在星型的中心,每條線段是點(diǎn)點(diǎn)連接。從主機(jī)到集線器或其功能部件,或從集線器到集線器或其功能部件,從圖2.1中可看出何USB系圖2.1 總線的拓?fù)浣Y(jié)構(gòu)拓?fù)浣Y(jié)構(gòu)。其中,USB集線器Hub是一組設(shè)備的連接點(diǎn),主機(jī)中有一個(gè)被嵌入的Hub叫根Hub(root Hub)。主機(jī)端通常是指PC主機(jī)或是另外再附加USB端口的擴(kuò)充卡,主機(jī)通過根Hub提供若干個(gè)連接點(diǎn)。集線器除了擴(kuò)增系統(tǒng)的連接點(diǎn)外,還負(fù)責(zé)中繼(repeat)上游或下游的信號(hào)以及控制各個(gè)下游端口的電源管理。當(dāng)PC上電時(shí),所有USB設(shè)備與Hub都默認(rèn)地址為0,

17、PC機(jī)啟動(dòng)程序向USB查詢,地址1分配給發(fā)現(xiàn)的第一個(gè)設(shè)備,地址2分配給第二個(gè)設(shè)備或Hub,如此重復(fù)尋找并分配地址,直到所有設(shè)備賦完地址,并加載相應(yīng)的的驅(qū)動(dòng)程序。當(dāng)設(shè)備突然被拔移后,PC機(jī)通過D+或D-的電壓變化檢測(cè)到設(shè)備被移除掉后,將其地址收回,并列入可使用的地址名單中。在任何USB系統(tǒng)中,只有一個(gè)主機(jī)。USB和主機(jī)系統(tǒng)的接口稱作主機(jī)控制器,主機(jī)控制器可由硬件、固件和軟件綜合實(shí)現(xiàn)。根集線器是由主機(jī)系統(tǒng)整合的,用以提供更多的連接點(diǎn)。USB的設(shè)備如下所示: 網(wǎng)絡(luò)集線器,向USB提供了更多的連接點(diǎn);功能器件:為系統(tǒng)提供具體功能,如ISDN的連接,數(shù)字的游戲桿或揚(yáng)聲器。USB設(shè)備提供的USB標(biāo)準(zhǔn)接口的

18、主要依據(jù): 對(duì)USB協(xié)議的運(yùn)用; 對(duì)標(biāo)準(zhǔn)USB操作的反饋,如設(shè)置和復(fù)位;標(biāo)準(zhǔn)性能的描述性信息。2.1.2USB連接頭及其供電方式為了避免連接錯(cuò)誤,USB定義了兩種不同規(guī)格的星形USB連接頭:序列A與B連接頭,其中序列A接頭用來連接下游的設(shè)備。每個(gè)連接頭內(nèi)擁有4個(gè)針腳,其中兩個(gè)是用來傳遞差分?jǐn)?shù)據(jù)的,另兩個(gè)則用于USB設(shè)備的電源供給。USB的供電方式有兩種:1、總線供電集線器電源由上游連接端口供應(yīng),最多只能從上游端消耗500mA。一個(gè)4個(gè)連接端口的集線器,每個(gè)下游端口最多消耗為100mA,外圍電路消耗100mA。2、自我供電集線器集線器本身有電源,可以提供給本身的控制器以及下游端口至少500mA的

19、電流,集線器最多可從上游端消耗100mA。2.1.3USB系統(tǒng)軟硬件組成USB系統(tǒng)的軟硬件資源可以分為3個(gè)層次:功能層、設(shè)備層和接口層。功能層提供USB設(shè)備所需的特定的功能,主機(jī)端的這個(gè)功能由用戶軟件和設(shè)備類驅(qū)動(dòng)程序提供,而設(shè)備就由功能單元來實(shí)現(xiàn)。設(shè)備層主要提供USB基本的協(xié)議棧,執(zhí)行通用的USB的各種操作和請(qǐng)求命令。從邏輯上講,就是USB系統(tǒng)軟件與USB邏輯設(shè)備之間的數(shù)據(jù)交換。接口層涉及的是具體的物理層,其主要實(shí)現(xiàn)物理信號(hào)和數(shù)據(jù)包的交互,即在主機(jī)端的USB主控制器和設(shè)備的USB總線接口之間傳輸實(shí)際的數(shù)據(jù)流。無論在軟件還是硬件層次上,USB主機(jī)都處于USB系統(tǒng)的核心。主機(jī)系統(tǒng)不僅包含了用于和U

20、SB外設(shè)進(jìn)行通信的USB主機(jī)控制器及用于連接的 USB接口(SIE),更重要的是,主機(jī)系統(tǒng)是USB系統(tǒng)軟件和USB客戶軟件的載體。USB主機(jī)軟件系統(tǒng)可以分為三個(gè)部分: 1、客戶軟件部分(CSW),在邏輯上和外設(shè)功能部件部分進(jìn)行資料的交換;2、USB系統(tǒng)軟件部分(即HCDI),在邏輯和實(shí)際中作為HCD和USBD之間的接口;3、USB主機(jī)控制器軟件部分(即HCD和USBD),用于對(duì)外設(shè)和主機(jī)的所有USB有關(guān)部分的控制和管理,包括外設(shè)的SIE部分、USB資料發(fā)送接收器(Transreceiver)部分及外設(shè)的協(xié)議層等2。2.2USB編碼方式與傳輸類型2.2.1USB的編碼方式USB采用不歸零翻轉(zhuǎn)(N

21、on Return to Zero Invert,簡(jiǎn)稱NRZI)編碼方式,對(duì)于不同步的脈沖信號(hào)也能產(chǎn)生同步的數(shù)據(jù)存取,能有效地解決USB纜線信號(hào)延遲產(chǎn)生的誤差。NRZI的編碼規(guī)則是:當(dāng)數(shù)據(jù)位為“1”時(shí)電平保持不變,為“0”時(shí)電平翻轉(zhuǎn)。如果原始的串行數(shù)據(jù)中含有連續(xù)6個(gè)“1,就在其后填充一個(gè)“0。在NRZI解碼的過程中發(fā)現(xiàn)連續(xù)的6個(gè)“1”時(shí),則移走其后原填入的“0。NRZI編碼、位填充過程分析如下:原數(shù)據(jù) 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1位填充 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1NRZI碼 0 1 1 1 0 1 0 0 0 1

22、 1 1 1 1 1 1 0 0 0 2.2.2USB傳輸U(kuò)SB總線是一種串行總線,即它的資料是一個(gè)bit一個(gè)bit來傳送的。雖然USB總線是把這些bit形式的資料打成資料包來傳送,但資料的同步也是必不可少的。USB1.0協(xié)議規(guī)定,USB的標(biāo)準(zhǔn)脈沖時(shí)鐘為12MHz,而其總線時(shí)鐘為1ms,即每隔1ms,USB器件應(yīng)為USB線纜產(chǎn)生一個(gè)時(shí)鐘脈沖序列。這個(gè)脈沖序列稱為幀開始資料包(SOF),主機(jī)利用SOF來同步USB資料的發(fā)送和接收。為實(shí)現(xiàn)多外設(shè)、多信道地同時(shí)工作,USB總線使用資料包的方式來傳輸資料和控制信息。USB數(shù)據(jù)傳輸中的每一個(gè)資料包都以一個(gè)同步字段開始,它的最后兩個(gè)bit作為PID字段開始

23、的標(biāo)志。緊跟在同步字段之后的一段8bit的脈沖序列稱為PID(資料包標(biāo)識(shí)字段),PID字段的前四位用來標(biāo)記該資料包的類型,后四位則作為對(duì)前四位的校驗(yàn)。PID字段被分為標(biāo)記PID(共有IN、OUT、SETUP或SOF四種)、資料PID(DATA0或DATA1)、握手PID(ACK、NAK或STALL)及特殊PID等。主機(jī)根據(jù)PID字段的類型來判斷一個(gè)資料包中所包含的數(shù)據(jù)類型,并執(zhí)行相應(yīng)的操作。當(dāng)一個(gè)USB外設(shè)初次連接時(shí),USB系統(tǒng)會(huì)為這臺(tái)外設(shè)分配唯一的USB地址,這個(gè)地址通過地址寄存器(ADDR)來標(biāo)記,以保證資料包不會(huì)傳送到別的USB外設(shè)。7bit的ADDR使得USB系統(tǒng)最大尋址為127臺(tái)設(shè)備

24、(ADDR字段)。由于一臺(tái)USB外設(shè)可能具有多個(gè)信道,因而在ADDR字段后會(huì)有一個(gè)附加的端點(diǎn)字段(EndpointField,簡(jiǎn)標(biāo)為ENDP)來標(biāo)記不同的信道。所有的USB外設(shè)都必須支持Endpoint0信道,用0000來標(biāo)記。對(duì)于高速設(shè)備,可以最大支持16個(gè)信道,而低速設(shè)備在Endpoint0之外僅能有一個(gè)信道。數(shù)據(jù)域位作為一次USB數(shù)據(jù)傳輸?shù)闹行哪康?,在一個(gè)USB資料包中可以包含01203Byte的資料。而幀數(shù)量字段則包含在幀開始資料包中,對(duì)有的應(yīng)用場(chǎng)合,可以用幀數(shù)量字段作為資料的同步信號(hào)。為保證控制、塊傳送及中斷傳送中資料包的正確性,CRC校驗(yàn)字段被引用到如標(biāo)記、資料、幀開始(SOF)這

25、樣的資料包中。CRC校驗(yàn)(資料冗余校驗(yàn))可以給予資料以100% 的正確性檢驗(yàn)。在USB系統(tǒng)中,有四種形式的資料包:信令包(Token Packets)、DATA 資料包(DATA Packets)、幀開始包(SOF Packets)和握手包(Handshake Packets)。每個(gè)資料包的結(jié)束都會(huì)有兩個(gè)bit寬的EOP字段作為資料包結(jié)束的標(biāo)志(圖7-18),EOP在差模信號(hào)中表現(xiàn)為D+和D-都處于“0”狀態(tài)。對(duì)于高速USB外設(shè)而言,這個(gè)脈沖寬度在160175ns之間,而低速設(shè)備則在1.251.50s之間。無論其后是否有其它的資料包,USB線纜都會(huì)在EOP字段后緊跟1bit的總線空閑位。USB

26、主機(jī)或外設(shè)利用EOP來判斷一個(gè)資料包的結(jié)束。為了滿足不同外設(shè)和用戶的要求,USB提供了四種傳輸方式:控制傳輸;同步傳輸;中斷傳輸;批傳輸。它們?cè)跀?shù)據(jù)格式、傳輸方向、數(shù)據(jù)包容量限制、總線訪問限制等方面有著各自不同的特征:1、控制傳輸(Control Transfer):可靠的,非周期的,由主機(jī)軟件發(fā)起的請(qǐng)求或者回應(yīng)的傳送,通常用于命令事務(wù)和狀態(tài)事務(wù)。2、同步傳輸(Isochronous Transfer);在主機(jī)和設(shè)備之間的周期性的,連續(xù)的通信,一般用于傳送與時(shí)間相關(guān)的信息。這種類型保留了將時(shí)間概念包含于數(shù)據(jù)中的能力。但并不意味著用于同步傳送的數(shù)據(jù)的時(shí)間是很重要的,即傳送并不一定很急。3、中斷傳

27、輸(Interrupt Transfer):小規(guī)模數(shù)據(jù)的,低速的,固定延遲的傳送。4、批量傳輸(Bulk Transfer):非周期的,大包的,可靠的傳送。典型用于傳送可以利用任何帶寬的數(shù)據(jù),這些數(shù)據(jù)沒有帶寬時(shí),是可以容忍等待。對(duì)于PDIUSBD12,端點(diǎn)的工作方式可通過Set Mode命令配置為4種不同的模式,分別為:1、模式0(Non-ISO模式):非同步傳輸;2、模式1(ISO-OUT模式):同步輸出傳輸;3、模式2(ISO-IN模式):同步輸入傳輸;4、模式3(ISO-IO模式): 同步輸入輸出傳輸。端點(diǎn)2在有些方面是比較特別的,端點(diǎn)2是進(jìn)行吞吐大量數(shù)據(jù)的主要端點(diǎn),一般稱其為主端點(diǎn),主

28、端點(diǎn)執(zhí)行主機(jī)的特性以減輕傳輸大量數(shù)據(jù)的任務(wù),具體包括:1、雙緩沖;2、支持DMA;3、可以配置為同步傳輸或非同步(批量和中斷)傳輸。2.3USB設(shè)備請(qǐng)求USB的標(biāo)準(zhǔn)設(shè)備請(qǐng)求是用來完成USB設(shè)備枚舉的命令,USB設(shè)備必須對(duì)標(biāo)準(zhǔn)設(shè)備請(qǐng)求作出響應(yīng),不管該設(shè)備是否已經(jīng)被分配了一個(gè)默認(rèn)的地址或者該設(shè)備目前正在被配置。所有的標(biāo)準(zhǔn)設(shè)備請(qǐng)求都是使用默認(rèn)的管道來傳輸?shù)摹?.3.1USB標(biāo)準(zhǔn)請(qǐng)求格式USB的設(shè)備請(qǐng)求由八個(gè)字節(jié)組成,格式定義如表2.1所示。2.3.2USB標(biāo)準(zhǔn)請(qǐng)求命令USB標(biāo)準(zhǔn)請(qǐng)求有11個(gè)命令,如下:1、 獲取狀態(tài)請(qǐng)求:該命令用于返回特定接受者的狀態(tài)。2、 清除特性請(qǐng)求:該命令用于清除或禁用接受者的

29、某些特性。3、 設(shè)置特性請(qǐng)求:該命令是主機(jī)用來啟用或激活命令接受者某些特性。4、 設(shè)置地址請(qǐng)求:該命令用于主機(jī)給設(shè)備分配地址。5、 獲取描述請(qǐng)求:該命令用于主機(jī)獲取設(shè)備的特定描述符。6、 設(shè)置描述符請(qǐng)求:主機(jī)利用該命令來修改設(shè)備中的有關(guān)描述或增加新的描述符等。7、 獲取配置請(qǐng)求:主機(jī)利用該命令獲得設(shè)備當(dāng)前的配置值。8、 設(shè)置配置請(qǐng)求:主機(jī)通過該命令來指示設(shè)備采用要求的配置。9、 獲取接口請(qǐng)求:主機(jī)利用該命令來獲取當(dāng)前的某個(gè)接口的接口描述符的編號(hào)。10、 設(shè)置接口請(qǐng)求:主機(jī)可以通過該命令來要求設(shè)備用某個(gè)接口描述符來描述接口。11、 同步幀請(qǐng)求:該命令用于設(shè)備設(shè)置和報(bào)告一個(gè)端點(diǎn)的同步幀。表2.1U

30、SB設(shè)備請(qǐng)求格式偏移值字段名稱字段長(zhǎng)度字段取值說明0設(shè)備請(qǐng)求類型1位圖請(qǐng)求特性:D7:數(shù)據(jù)傳輸方向0=主機(jī)到設(shè)備1=設(shè)備到主機(jī)D6.5:類型0=標(biāo)準(zhǔn);1=類型2=廠商;3=保留D4.0:接受方0=設(shè)備;1=接口2=端點(diǎn);3=其他4.31=保留1設(shè)備請(qǐng)求1數(shù)值USB設(shè)備請(qǐng)求2值2值根據(jù)不同的請(qǐng)求,以字節(jié)為單位來定義4索引2字段編號(hào)索引根據(jù)不同的請(qǐng)求,以字節(jié)為單位來定義6長(zhǎng)度2計(jì)數(shù)如果傳輸一組數(shù)據(jù),指出要傳輸?shù)淖止?jié)數(shù)2.4USB設(shè)備的描述符USB設(shè)備描述符是說明設(shè)備的通用信息,這包括對(duì)設(shè)備及所有設(shè)備設(shè)置全程起作用的信息。2.4.1設(shè)備描述符一個(gè)USB總線設(shè)備只能有一個(gè)設(shè)備描述表。設(shè)備描述表的結(jié)構(gòu)如

31、表2.2所示:表2.2設(shè)備描述符偏移值字段名稱字段大小字段取值說明0bLength1數(shù)字描述符的大小=12H1bDescriptorType1常數(shù)設(shè)備描述符類型=01H2bcdUSB2BCDUSB規(guī)劃發(fā)布號(hào)4bDeviceClass1類型類型代碼(由USB指定)5bDeviceSubClass1子類型子類型代碼(由USB分配)6bDeviceProtocol1協(xié)議協(xié)議代碼(由USB分配)7bMaxPacketSize01數(shù)字端點(diǎn)0最大分組大?。ㄖ挥?,16,32或64有效)8idVendor2ID供應(yīng)商ID(由USB分配)10idProduct2ID產(chǎn)品ID(由廠商分配)12bcdDevice

32、2BCD設(shè)備出廠編碼14iManufacture1索引廠商描述符字符串索引15iProduct1索引產(chǎn)品描述符字符串索引16iSerialNumber1索引設(shè)備序列號(hào)字符串索引17bNumConfiguations1數(shù)字可能的配置數(shù)2.4.2配置描述符配置描述符定義了設(shè)備的配置信息,結(jié)構(gòu)如表2.3所示。2.4.3接口描述符接口描述符說明了接口所提供的配置,接口描述符的結(jié)構(gòu)如表2.4所示。表2.3配置描述符偏移值字段名稱字段大小字段取值說明0bLength1數(shù)字描述符的大小=09H1bDescriptorType1常數(shù)配置描述符類型=02 H2wTotalLength2數(shù)字此設(shè)置信息的總長(zhǎng)(包括

33、設(shè)置,接口,端點(diǎn)和設(shè)備類及廠商定義的描述表)4bNumInterfaces1數(shù)字此設(shè)置所支持的接口個(gè)數(shù)5bConfigurationValue1數(shù)字作為Set Configuration的一個(gè)參數(shù)選擇配置值6iConfiguration1索引用于描述該配置字符串描述符的索引7bmttributes1位圖配置特性:D7:總線供電D6:自供電D5:遠(yuǎn)程喚醒D40;保留(復(fù)位為0)8MaxPower1mA在此設(shè)置下的總線電源耗費(fèi)量,以2mA為一個(gè)單位表2.4接口描述符偏移值字段名稱字段大小字段取值說明0bLength1數(shù)字描述符的大小=09H1bDescriptorType1常數(shù)接口描述符的類型=0

34、4H2bNumInterfaces1數(shù)字接口的編號(hào)3bAlternate Setting1數(shù)字用于為上一個(gè)字段選擇可供替換的設(shè)置4bNumEndpoint1數(shù)字使用的端點(diǎn)數(shù)目(端點(diǎn)0除外)5bInterface Class1類型類型代碼(由USB分配)6bInterfaceSubClass1子類型子類型代碼(由USB分配)7bInterface Protocal1協(xié)議協(xié)議代碼(由USB分配)8iInterface1索引字符串描述符的索引2.4.4端點(diǎn)描述符端點(diǎn)描述符包括了端點(diǎn)的類型,大小等信息。USB設(shè)備中的每一個(gè)端點(diǎn)都有自己的描述符。端點(diǎn)描述符的結(jié)構(gòu)如表2.5所示。2.4.5字符串描述字符串

35、描述是可選的。如果一個(gè)設(shè)備不支持字符串描述符,在設(shè)備,配置和接口描述符內(nèi)的所用字符串描述符的索引都必須為0。字符串描述符的結(jié)構(gòu)如表2.6所示。表2.5端點(diǎn)描述符偏移值字段名稱字段大小字段取值說明0bLength1數(shù)字描述符的大小=07H1bDescriptorType1常數(shù)接口描述符的類型=05H2bEndpointAddress1端點(diǎn)USB設(shè)備的端點(diǎn)地址:Bit 0.3: 端點(diǎn)號(hào)Bit 4.6: 保留,復(fù)位為0Bit 7:方向,對(duì)于控制端點(diǎn)可以忽略0:OUT端點(diǎn); 1:IN端點(diǎn)3bmAttributes1位圖端點(diǎn)屬性,當(dāng)進(jìn)行配置時(shí)采用以下的配置值Bit0.1 傳輸類型00 控制01 同步02

36、 批量03 中斷其他位保留4wMaxPacketSize2數(shù)字本端點(diǎn)接受或發(fā)送的最大信息包的大小6bInterval1數(shù)字輪詢數(shù)據(jù)傳傳送端點(diǎn)的時(shí)間間隔。 表2.6字符串描述符偏移值字段名稱字段大小字段取值說明0bLength1數(shù)字描述符的大小1bDescriptorType1常數(shù)字符串描述符的類型2bStringN數(shù)字UNICODE編碼字符串各個(gè)描述符的樹狀結(jié)構(gòu)如圖2.2所示:圖2.2USB描述符層次結(jié)構(gòu)所有的USB設(shè)備都有缺省控制管道,缺省控制管道的最大包長(zhǎng)在描述表中得到了說明。設(shè)置描述表中包括設(shè)置與接口的定義,但其中不包括端點(diǎn)描述表。除了最大包長(zhǎng)度信息外,缺省管道的特性由USB規(guī)范定義,并

37、且對(duì)所有的USB總線設(shè)備都一樣4。2.5總線協(xié)議USB總線屬一種輪訊方式的總線,主機(jī)控制端口初始化所有的數(shù)據(jù)傳輸。 每一總線執(zhí)行動(dòng)作最多傳送三個(gè)數(shù)據(jù)包。按照傳輸前制定好的原則,在每次傳送開始時(shí),主機(jī)控制器發(fā)送一個(gè)描述傳輸運(yùn)作的種類、方向,USB設(shè)備地址和終端號(hào)的USB數(shù)據(jù)包,這個(gè)數(shù)據(jù)包通常稱為標(biāo)志包(token packet)。USB設(shè)備從解碼后的數(shù)據(jù)包的適當(dāng)位置取出屬于自己的數(shù)據(jù)。數(shù)據(jù)傳輸方向不是從主機(jī)到設(shè)備就是從設(shè)備到主機(jī)。在傳輸開始時(shí),由標(biāo)志包來標(biāo)志數(shù)據(jù)的傳輸方向,然后發(fā)送端開始發(fā)送包含信息的數(shù)據(jù)包或表明沒有數(shù)據(jù)傳送。接收端也要相應(yīng)發(fā)送一個(gè)握手的數(shù)據(jù)包表明是否傳送成功。發(fā)送端和接收端之間

38、的USB數(shù)據(jù)傳輸,在主機(jī)和設(shè)備的端口之間,可視為一個(gè)通道。存在兩種類型的通道:流和消息。流的數(shù)據(jù)不像消息的數(shù)據(jù),它沒有USB所定義的結(jié)構(gòu),而且通道與數(shù)據(jù)帶寬、傳送服務(wù)類型,端口特性(如方向和緩沖區(qū)大?。┯嘘P(guān)。多數(shù)通道在USB設(shè)備設(shè)置完成后即存在。USB中有一個(gè)特殊的通道缺省控制通道,它屬于消息通道,當(dāng)設(shè)備一啟動(dòng)即存在,從而為設(shè)備的設(shè)置、查詢狀況和輸入控制信息提供一個(gè)入口。 事務(wù)預(yù)處理允許對(duì)一些數(shù)據(jù)流的通道進(jìn)行控制,從而在硬件級(jí)上防止了對(duì)緩沖區(qū)的高估或低估,通過發(fā)送不確認(rèn)握手信號(hào)從而阻塞了數(shù)據(jù)的傳輸速度。當(dāng)不確認(rèn)信號(hào)發(fā)過后,若總線有空閑,數(shù)據(jù)傳輸將再做一次。這種流控制機(jī)制允許靈活的任務(wù)安排,可使

39、不同性質(zhì)的流通道同時(shí)正常工作,這樣多種流通??稍诓煌g隔進(jìn)行工作,傳送不同大小的數(shù)據(jù)包5。2.6USB的枚舉過程USB設(shè)備接入計(jì)算機(jī)后,設(shè)備需要經(jīng)過初始化和枚舉才能被計(jì)算機(jī)識(shí)別,初始化主要有MCU完成,而枚舉是在計(jì)算機(jī)的控制下完成的。枚舉過程如下:1、設(shè)備連接。USB設(shè)備接入U(xiǎn)SB總線。2、設(shè)備上電。USB設(shè)備可以使用總線供電,也可以使用外部總線供電。3、主機(jī)檢測(cè)到設(shè)備,發(fā)出復(fù)位。設(shè)備連接到總線后,主機(jī)拉電阻檢測(cè)到有新的設(shè)備接入,然后向端口發(fā)送一個(gè)復(fù)位信號(hào)。4、設(shè)備默認(rèn)狀態(tài)。設(shè)備要從總線上接收到一個(gè)復(fù)位的信號(hào)后,才可以對(duì)總線的處理操作作出響應(yīng)。設(shè)備接收到復(fù)位信號(hào)后,使用默認(rèn)的地址(00H)來對(duì)

40、其進(jìn)行尋址。5、地址分配。當(dāng)主機(jī)接收到有設(shè)備對(duì)默認(rèn)地址(00H)響應(yīng)的時(shí)候,就對(duì)設(shè)備分配一個(gè)空閑的地址。以后設(shè)備就只對(duì)該地址進(jìn)行響應(yīng)。6、讀取USB設(shè)備描述符。主機(jī)讀取USB設(shè)備描述符,確認(rèn)USB設(shè)備的屬性。7、設(shè)備配置。主機(jī)依照讀取的USB設(shè)備描述符來進(jìn)行配置,如果設(shè)備所需的USB資源得以滿足,就發(fā)送配置命令給USB設(shè)備,表示配置完成。8、掛起。為了節(jié)省電源,當(dāng)總線保持空閑狀態(tài)超過3ms以后,設(shè)備驅(qū)動(dòng)程序就會(huì)進(jìn)入掛起狀態(tài)。完成以上步驟后,USB設(shè)備即可以使用。在枚舉過程中,設(shè)備不一定要求進(jìn)入掛起狀態(tài)。2.7USB主機(jī)接口及系統(tǒng)的功能從具體的USB主機(jī)的實(shí)現(xiàn)角度上來講,在遵行USB協(xié)議1.0的

41、基礎(chǔ)上,目前有2套工業(yè)標(biāo)準(zhǔn):1、通用式主機(jī)控制器接口(簡(jiǎn)寫成UHCI),由Inter公司提出。2、開放式主機(jī)控制器接口(簡(jiǎn)寫成OHCI或Open HCI),由Compaq等公司提出。UHCI和OHCI實(shí)現(xiàn)USB主機(jī)的功能基本上是一樣的。只是具體的實(shí)現(xiàn)過程有些不同,兩者均由2部分組成,即主機(jī)控制器(Host Control,簡(jiǎn)寫成HC)和主機(jī)控制器驅(qū)動(dòng)(Host Control Driver,簡(jiǎn)寫成HCD)。主機(jī)控制器更多的是面向硬件部分及其廠商,怪頂了主機(jī)控制器硬件與PC系統(tǒng)內(nèi)存之間的接口、主機(jī)控制器在PCI總線上的接口定義、主機(jī)USB事務(wù)的各種功能模塊以及提供給用戶交互的各種寄存器定義等;主

42、機(jī)控制器驅(qū)動(dòng)更多的是基于軟件層次的標(biāo)準(zhǔn),是USB協(xié)議棧與USB主機(jī)控制器硬件之間聯(lián)系的接口,直接負(fù)責(zé)主機(jī)控制器硬件的配置和管理,一般這部分軟件廠商提供。按照USB的規(guī)定以及USB系統(tǒng)的組成的需要,USB主機(jī)完成的主要功能包括以下幾個(gè)方面:1、檢測(cè)USB設(shè)備的連接和斷開。通過USB電纜信號(hào)線的電平變換來實(shí)現(xiàn)該功能,并得到主機(jī)控制器的處理。2、管理主機(jī)和設(shè)備之間標(biāo)準(zhǔn)的控制管道。以保證端點(diǎn)0和缺損管道的正常通信。3、收集設(shè)備的狀態(tài),統(tǒng)計(jì)總線的活動(dòng)。USB的總線上最多可以同時(shí)掛接127個(gè)設(shè)備,這么多的設(shè)備都要正常的工作,就是靠主機(jī)來進(jìn)行管理的,同時(shí)主機(jī)會(huì)根據(jù)收集到的各種設(shè)備和總線信息來執(zhí)行某些操作。4

43、、控制和管理主機(jī)控制器與設(shè)備之間的電器接口,包括為端口提供一點(diǎn)數(shù)量的電流1。2.8本章小結(jié)在本章中,簡(jiǎn)要的介紹了相關(guān)的USB1.0協(xié)議內(nèi)容,根據(jù)本次課題設(shè)計(jì)的要求,重點(diǎn)介紹了USB體系,軟硬件組成、編碼方式與傳輸類型、總線協(xié)議以及主機(jī)系統(tǒng)功能等內(nèi)容。它們是開發(fā)USB設(shè)備,進(jìn)行通信的應(yīng)用的基礎(chǔ)。實(shí)際應(yīng)用中,這里的大部分工作由控制器完成。第3章硬件特性及電路設(shè)計(jì)3.1單片機(jī)8051介紹本課題設(shè)計(jì)USB系統(tǒng)比較簡(jiǎn)單,單片機(jī)執(zhí)行的功能不多,在確保實(shí)驗(yàn)功能的情況下,為了降低成本,因此選用性價(jià)比高的8051單片機(jī)。 MCS-51是Intel公司生產(chǎn)的一個(gè)單片機(jī)系列名稱。屬于這一系列的單片機(jī)有多種。8051

44、便是其中一種性價(jià)比高的單片機(jī)。8051單片機(jī)內(nèi)部結(jié)構(gòu)按其功能部件劃分可以看出由8大部分組成的。這8大部分是: 1、一個(gè)8位中央處理機(jī)CPU。 2、128個(gè)字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM。3、4KB的片內(nèi)程序只讀存儲(chǔ)器ROM或EPROM。4、18個(gè)特殊功能寄存器SFR。 5、4個(gè)8位并行輸入輸出I/O接口: P0口、 P1口、 P2口、 P3口(共32線), 用于并行輸入或輸出數(shù)據(jù)。 6、1個(gè)串行I/O接口。 7、2個(gè)16位定時(shí)器/計(jì)數(shù)器。 8、1個(gè)具有5個(gè)中斷源, 可編程為2個(gè)優(yōu)先級(jí)的中斷系統(tǒng)。 它可以接收外部中斷申請(qǐng), 定時(shí)器/計(jì)數(shù)器中斷申請(qǐng)和串行口中斷申請(qǐng)。本課題選用的8051單片機(jī)芯片為40

45、個(gè)引腳,它是HMOS工藝制造的芯片,采用雙列直插(DIP)方式封裝。1、主電源引腳Vcc和Vss VCC(40腳):接+5V電源正端; VSS(20腳):接+5V電源地端。 2、外接晶體引腳XTAL1和XTAL2XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部, 它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳接地;XTAL2(18腳):接外部晶體的另一端。在單片機(jī)內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。3、控制信號(hào)或與其它電源復(fù)用引腳4、I/O口線引腳排列(1)

46、P0口8位、漏極開路的雙向I/O口。當(dāng)使用片外儲(chǔ)存器及外擴(kuò)I/O口時(shí),P0口做為低字節(jié)地址/數(shù)據(jù)復(fù)線。在編程時(shí),P0口可用于接收指令代碼字節(jié);在程序校檢時(shí),P0口可輸出指令字節(jié)(這是需要外加上拉電阻)。(2)P0口也可作為通用I/O使用,變成準(zhǔn)雙向口。當(dāng)作為普通輸入時(shí),應(yīng)將輸出鎖存器置1。P0口可驅(qū)動(dòng)8個(gè)TTL負(fù)載。P1口8位、準(zhǔn)雙口I/O,具有內(nèi)部上拉電阻。 P1口是為用戶準(zhǔn)備的I/O雙向口。在編程和校檢時(shí),可用做輸入低8位地址;用做輸入時(shí),應(yīng)先將輸出鎖存器置1;P1口可驅(qū)動(dòng)4個(gè)TTL負(fù)載。 P1口的P1.0和P1.1具有替代功能。(3)P2口8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。當(dāng)使用片

47、外儲(chǔ)存器或外擴(kuò)I/O端口時(shí),P2口輸出高8位地址;在編程校檢時(shí),P2口可接收高字節(jié)地址和某些控制信號(hào);P2口也可作為I/O口使用。用做輸入時(shí),應(yīng)先將輸出鎖存器置1;P2口可驅(qū)動(dòng)4個(gè)TTL負(fù)載。(4)P3口8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。P3口可作為普通I/O口。用作輸入時(shí),應(yīng)先將輸出鎖存器置1;在編程校檢時(shí),P3口接收某些控制信號(hào);可驅(qū)動(dòng)4個(gè)TTL。P3口還提供各種替代功能。整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,8051設(shè)有

48、穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止6。3.2PDIUSBD12器件與微控制器的連接3.2.1PDIUSBD12功能描述PHILIPS公司推出的PDIUSBD12是一款性價(jià)比很高的USB器件。它通常用做微控制器系統(tǒng)中實(shí)現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口,而且還支持本地的DMA傳輸。PDIUSBD12完全符合USB1.0協(xié)議規(guī)范。PDIUSBD12所具有的低掛起功耗連同LazyClock輸

49、出可以滿足使用ACPI、OnNOW和USB電源管理的要求。低的操作功耗可以應(yīng)用于使用總線供電的外設(shè)。1、PHILIPS串行接口引擎PSIE實(shí)現(xiàn)了全部的USB協(xié)議層,且完全由硬件實(shí)現(xiàn)而不需要固件的參與。該模塊的功能包括:同步模式的識(shí)別,并行/串行的轉(zhuǎn)換,位填充/解除填充,CRC校驗(yàn)/產(chǎn)生,PID校驗(yàn)/產(chǎn)生,地址識(shí)別和握手評(píng)估/產(chǎn)生。2、SoftConnect技術(shù)SoftConnect與USB的連接是通過1.5k上拉電阻將D+設(shè)置為高電平實(shí)現(xiàn)的。1.5k上拉電阻集成在PDIUSBD12片內(nèi),默認(rèn)狀態(tài)下不與電源相連,其連接的建立是通過外部/系統(tǒng)微控制器發(fā)送命令實(shí)現(xiàn)的。3、GoodLink技術(shù)Good

50、Link技術(shù)可以提供良好的USB連接指示。在枚舉過程中,LED指示燈根據(jù)通信狀況間歇閃爍。配置完成并裝安驅(qū)動(dòng)程序后指示燈將一直亮7。3.2.2PDIUSBD12管腳配置PDIUSBD12的管腳排列如圖3.1所示: 圖3.1PDIUSBD12管腳排列圖3.2.3單片機(jī)與PDIUSBD12的連接單片機(jī)與PDIUSBD12的連接如圖3.2所示:對(duì)上圖中的電路說明如下:1、電路中使用A0作為命令數(shù)據(jù)選擇位2、端點(diǎn)2使用批量傳輸(Bulk),所以DMACK_N和EOT_N接上拉電阻,否則,PDIUSBD12將不能接受任何數(shù)據(jù);3、單片機(jī)外接晶振,所以PDIUSBD12的CLKOUT腳空;4、從圖上可以看

51、出,當(dāng)選擇命令時(shí),PDIUSBD12的地址為0xf1ff;當(dāng)選擇數(shù)據(jù)時(shí)PDIUSBD12的地址為0xf0ff;5、單片機(jī)使用P0口進(jìn)行輸入輸出,由于P0是開漏的,所以,需要接上拉電阻,在電路中使用排阻;6、GL_N通過一個(gè)電阻和LED串接到VCC,在USB設(shè)備枚舉期間,燈一直閃爍,當(dāng)USB設(shè)備枚舉成功后,燈會(huì)滅,安裝完驅(qū)動(dòng)程序后,燈一直亮著,傳送數(shù)據(jù)期間,燈會(huì)閃爍;圖3.2 PDIUSBD12與單片機(jī)連接圖7、USB_D+,USB_D-線上的1M上拉電阻下拉電阻對(duì)實(shí)際沒有什么影響,它們主要在噪聲比較大的情況下,起到抗干擾的作用;8、采用總線供電,總開關(guān)S1負(fù)責(zé)電源的連接與斷開,LED指示整個(gè)電

52、路是否有電。在這種方式下,確保電路的正確連接很重要,否則,容易損壞計(jì)算機(jī)4。在使用的同時(shí),應(yīng)注意一個(gè)問題。由于PHILIPS公司生產(chǎn)的PDIUSBD12芯片自身存在一個(gè)小小的問題,即當(dāng)片選沒有選中時(shí)它的第14角仍然會(huì)輸出低電平的中斷信號(hào),由于它接單片機(jī)的P3.3,所以與矩陣鍵盤共用的P3.3口有沖突,使用PDIUSBD12芯片時(shí)請(qǐng)將該芯片左邊的INT1兩線柱短接。在不使用該芯片時(shí)不用接。3.3系統(tǒng)硬件設(shè)計(jì)3.3.1單片機(jī)電路設(shè)計(jì)單片機(jī)最小系統(tǒng)主要包括其供電系統(tǒng),時(shí)鐘電路和復(fù)位電路。本次單片機(jī)的系統(tǒng)供電電路和時(shí)鐘電路都做了簡(jiǎn)化處理,單片機(jī)的系統(tǒng)復(fù)位電路采用手動(dòng)復(fù)位。單片機(jī)電路如圖3.4所示。對(duì)電

53、路說明如下:1、單片機(jī)采用外接晶振的方法,是外接晶振,頻率為11.0592MHz;2、復(fù)位電路采用按鍵復(fù)位;3、PDIUSBD12使用單片機(jī)的外部中斷0。在程序里將單片機(jī)和PDIUSBD12設(shè)置為相同的中斷方式,即電平中斷。然后由PDIUSBD12自動(dòng)清除中斷腳上的低電平,以便接受下次中斷8。3.3.2外圍電路設(shè)計(jì)本次課題的外圍硬硬件系統(tǒng)資源包括:串口通信、6位動(dòng)態(tài)數(shù)碼顯示、8位流水燈、蜂鳴器、4*4矩陣鍵盤、溫度傳感器、液晶顯示器接口、PDIUSBD12芯片接口等。每個(gè)元件與單片機(jī)都有單獨(dú)的電路連接,他們均以單片機(jī)為控制核心。使單片機(jī)能獨(dú)立的控制每個(gè)元件的正常工作。再通過PDIUSBD12芯

54、片,USB接口,上位機(jī)能與單片機(jī)實(shí)現(xiàn)通信,上位機(jī)發(fā)送信息到單片機(jī),單片機(jī)根據(jù)上位機(jī)信息控制外圍電路的工作;外圍設(shè)備發(fā)送信息到單片機(jī),單片機(jī)反饋到上位機(jī),在上位機(jī)的控制界面上顯示狀態(tài)信息。其整體框圖如圖3.5所示。根據(jù)整體框圖,將每個(gè)分塊電路設(shè)計(jì)成整體電路原理圖,生成PCB圖(見附錄)。整個(gè)電路圖的設(shè)計(jì)是在Protel 99的軟件環(huán)境下完成的。圖3.4 單片機(jī)電路上位機(jī)USB接口PDIUSBD128051單片機(jī)4*4矩陣鍵盤串口通信蜂鳴器8位流水燈液晶顯示器6位動(dòng)態(tài)數(shù)碼顯示溫度傳感器圖3.5整體框圖3.4本章小結(jié)本章介紹了單片機(jī),PDIUSBD12芯片的基礎(chǔ)知識(shí),根據(jù)課題需求,重點(diǎn)討論了PDIU

55、SBD12芯片在批量傳輸時(shí)與單片機(jī)的接法。外圍硬件資源根據(jù)框圖設(shè)計(jì)出實(shí)驗(yàn)電路圖,這些電路是做出單片機(jī)實(shí)驗(yàn)板,上位機(jī)軟件能夠正確運(yùn)行的基礎(chǔ)。 第4章程序設(shè)計(jì)及調(diào)試4.1概述4.1.1集成開發(fā)環(huán)境Keil簡(jiǎn)介單片機(jī)開發(fā)中出必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要邊成CPU可以執(zhí)行的機(jī)器碼有兩種方法,一中是手工匯編,另一種是機(jī)器匯編,目前已經(jīng)極少使用匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變成機(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普通使用匯編語言到逐漸使用高級(jí)語言開發(fā),單片機(jī)的開發(fā)軟件也不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-

56、51系列單片機(jī)的軟件,這從近年來個(gè)仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,同過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體

57、會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)9。4.1.2程序概述軟件程序是固件編程。固件是FIREWARE的對(duì)應(yīng)中文詞,它實(shí)際上是單片機(jī)的程序文件,其編寫語言可以采用C語言或是匯編語言.它的操作方式與硬件聯(lián)系緊密,包括USB設(shè)備的連接USB協(xié)議、中斷處理等,它不是單純的軟件,而是軟件和硬件的結(jié)合,開發(fā)者需要對(duì)端口、中斷和硬件結(jié)構(gòu)非常熟悉。固件程序一般放入MCU中,當(dāng)把設(shè)備連接到主機(jī)上(USB連接線插入插孔)時(shí),上位機(jī)可以發(fā)現(xiàn)新設(shè)備,然后建立連接。因此,編寫固件程序的一個(gè)最主要的目的就時(shí)讓W(xué)indows可以檢測(cè)和

58、識(shí)別設(shè)備。在設(shè)計(jì)USB系統(tǒng)的過程中,固件程序的編寫是非常重要的一個(gè)環(huán)節(jié),它直接影響到開發(fā)產(chǎn)品的數(shù)據(jù)傳輸速度。固件設(shè)計(jì)的目標(biāo)就是使PDIUSBD12在USB上達(dá)到最大的傳輸速率。PDIUSBD12設(shè)計(jì)成完全的中斷驅(qū)動(dòng)。當(dāng)CPU處理前臺(tái)任務(wù)時(shí),USB的傳輸可以在后臺(tái)進(jìn)行,這樣就確保了最佳的傳輸速率和更好的軟件結(jié)構(gòu),同時(shí)簡(jiǎn)化了編程和調(diào)試。后臺(tái)ISR(中斷服務(wù)程序)和前臺(tái)主程序的循環(huán)之間的數(shù)據(jù)交換可以通過事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來實(shí)現(xiàn),其原理如圖所示:圖4.1前后臺(tái)工作原理對(duì)于這種結(jié)構(gòu),主循環(huán)不關(guān)心數(shù)據(jù)是來自USB,串口還是并口,其只檢查循環(huán)緩沖區(qū)內(nèi)需要處理的數(shù)據(jù)。這樣,主循環(huán)可以專注于數(shù)據(jù)的處理,而IS

59、R能夠以最大的可能的速率進(jìn)行數(shù)據(jù)的傳輸10。固件程序采用51單片機(jī)的C語言進(jìn)行編寫,采用Keil開發(fā)環(huán)境。它的積木結(jié)構(gòu)如圖所示,圖中的箭頭表示數(shù)據(jù)的傳輸方向。 圖4.2固件結(jié)構(gòu)和數(shù)據(jù)流方向硬件提取層:對(duì)單片機(jī)的I/O口,數(shù)據(jù)總線等硬件接口進(jìn)行操作。命令接口層:對(duì)PDIUSBD12器件進(jìn)行操作的模塊子程序集。中斷服務(wù)程序:當(dāng)PDIUSBD12向單片機(jī)發(fā)出中斷請(qǐng)求時(shí),讀取PDIUSBD12的中斷傳輸來的數(shù)據(jù),并設(shè)定時(shí)間標(biāo)志“EPPFLAGS”和Setup包數(shù)據(jù)緩沖區(qū)“CONROL_XFER”進(jìn)行通信。標(biāo)準(zhǔn)請(qǐng)求處理程序:對(duì)USB的標(biāo)準(zhǔn)請(qǐng)求進(jìn)行處理。廠商請(qǐng)求處理:對(duì)用戶添加的廠商請(qǐng)求進(jìn)行處理,這一部分

60、可選。主循環(huán)程序:發(fā)送USB請(qǐng)求,處理USB總線事件和用戶功能處理等。固件程序的主要部分是前臺(tái)的主循環(huán)(main.c)和后臺(tái)的中斷服務(wù)程序ISR,固件程序定義了兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu):事件標(biāo)志(EPPFLAGS)和數(shù)據(jù)緩沖區(qū)(CONTROL_XFER),它們是主循環(huán)和中斷服務(wù)例程之間的橋梁,兩者之間的數(shù)據(jù)交換通過它們來實(shí)現(xiàn)。其任務(wù)分配為:ISR負(fù)責(zé)全部與PDIUSBD12的接口操作并更新這兩個(gè)數(shù)據(jù)結(jié)構(gòu),如從PDIUSBD12收發(fā)數(shù)據(jù),設(shè)置事件標(biāo)志等;主循環(huán)負(fù)責(zé)初始化,處理位于數(shù)據(jù)緩沖區(qū)的數(shù)據(jù),清除時(shí)間標(biāo)志以及其他總線事務(wù),如掛起、復(fù)位等。1、USB事件標(biāo)志結(jié)構(gòu)體 USB事件標(biāo)志結(jié)構(gòu)體,用符號(hào)定義了USB傳送過程中事件標(biāo)志位,并賦予初值,事件標(biāo)志在運(yùn)行中隨狀態(tài)的改變而改變,下面是事件標(biāo)志:typedef union _epp_flagsstruct _flagsunsigned char bus_reset :1; /總線復(fù)位標(biāo)志unsigned char suspend :1; /掛起改變標(biāo)志unsigned char setup_packet :1; /收到SETUP包unsigned char remote_wakeup :1; /遠(yuǎn)程喚醒標(biāo)志(未使用)unsigned

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!