USB接口信號(hào)發(fā)生器
USB接口信號(hào)發(fā)生器,usb,接口,信號(hào)發(fā)生器
生畢業(yè)設(shè)計(jì)(論文)中期報(bào)告
系別
班級(jí)
學(xué)生
姓名
指導(dǎo)
教師
課題名稱:USB接口波形發(fā)生器
簡(jiǎn)述開題以來所做的具體工作、取得的進(jìn)展及下一步主要工作:
所做的工作:
1. 在圖書館和網(wǎng)絡(luò)上查找相關(guān)資料,了解USB的原理和工程開發(fā)的過程,為深入研究做好準(zhǔn)備。
2. 查找各器件的管腳圖及其原理,列元件清單,購(gòu)買器件。
3. 根據(jù)之前的準(zhǔn)備進(jìn)行電路的焊接工作,從元器件的特性,電路的外觀上合理的布局,完成硬件電路焊接。
4.對(duì)電路進(jìn)行調(diào)試。
取得的進(jìn)展:
各模塊電路已基本實(shí)現(xiàn),獲得的指標(biāo)和設(shè)想差距不大。
下一步的主要工作:
1. 解決調(diào)試中出現(xiàn)的問題,并且分析其原因。
2. 記錄調(diào)試數(shù)據(jù),整理資料,準(zhǔn)備寫論文。
3. 總結(jié)之前所作的工作,為畢業(yè)答辯做好充分的準(zhǔn)備。
學(xué)生簽字:
年 月 日
指導(dǎo)教師的建議與要求:
設(shè)計(jì)思路清晰,進(jìn)度安排合理,同時(shí)希望在以后的制作過程中要抓緊時(shí)間
完成后期的工作。
指導(dǎo)教師簽字:
年 月 日
天津工程師范學(xué)院
畢業(yè)設(shè)計(jì)(論文)任務(wù)書
題 目
(包括副標(biāo)題)
USB接口波形發(fā)生器
教師姓名
職 稱
系 別
學(xué)生姓名
學(xué) 號(hào)
班 級(jí)
成果形式
A論文 B設(shè)計(jì)說明書 C實(shí)物 D軟件 E作品
■ □ ■ □ □
任務(wù)下達(dá)時(shí)間
08.11.13
1.畢業(yè)設(shè)計(jì)(論文)課題任務(wù)的內(nèi)容和要求:
(包括原始數(shù)據(jù)、技術(shù)要求、工作要求以及圖紙、程序、實(shí)物等要求)
1、 畢業(yè)設(shè)計(jì)主要內(nèi)容
(1)了解USB原理與工程開發(fā)的流程。
(2)深入研究并掌握電路基本功能及相關(guān)程序。
(3)編程實(shí)現(xiàn)其各種功能。
2、技術(shù)指標(biāo)
(1)、頻率范圍是0.5Hz~15999.5Hz,步進(jìn)值為0.5Hz。
(2)、幅度峰峰值范圍是0V~+5V,步進(jìn)值為20mV。
(3)、可讀取該USB設(shè)備的各種描述符和USB總線的當(dāng)前幀號(hào)。
3、技術(shù)要求
(1)方案設(shè)計(jì)明確,程序運(yùn)行穩(wěn)定。
(2)論文寫作規(guī)范,用詞恰當(dāng),內(nèi)容充實(shí)(10000字以上);
(3)提交的全部材料必須符合學(xué)院下達(dá)的文件格式;
2.畢業(yè)設(shè)計(jì)(論文)工作進(jìn)度計(jì)劃:
周 次
工作內(nèi)容
早進(jìn)入階段
第一周
第二~三周
第四~五周
第六~七周
第八~九周
第十~十二周
下達(dá)畢業(yè)設(shè)計(jì)任務(wù)書,收集資料,初步確定USB控制芯片的型號(hào)并了解它的工作原理
初步了解USB工程開發(fā)的原理和系統(tǒng)構(gòu)成,進(jìn)一步學(xué)習(xí)
確定硬件電路設(shè)計(jì)方案,購(gòu)買元器件并完成硬件電路的制作
進(jìn)行軟件編程和調(diào)試。
對(duì)電路的軟件及硬件進(jìn)行整體調(diào)試。
翻譯相關(guān)英文資料,完成論文初稿交老師批閱此次畢業(yè)設(shè)計(jì)將
于明年二月底正式開始,預(yù)計(jì)為期十二周完成
修改并完成論文,撰寫答辯提綱,準(zhǔn)備答辯。
教研室(學(xué)科組)主任簽字:
畢 業(yè) 設(shè) 計(jì) 開 題 報(bào) 告
USB接口波形發(fā)生器
系 別:
班 級(jí): 1
學(xué)生姓名:
指導(dǎo)教師:
2008年 12 月 13日
開題報(bào)告填寫要求
1.開題報(bào)告作為畢業(yè)設(shè)計(jì)答辯委員會(huì)對(duì)學(xué)生答辯資格審查的依據(jù)材料之一,應(yīng)在指導(dǎo)教師指導(dǎo)下,由學(xué)生在畢業(yè)設(shè)計(jì)工作前期完成,經(jīng)指導(dǎo)教師簽署意見、專家組及系主任審查后生效;
2.開題報(bào)告必須用黑墨水筆工整書寫或按教務(wù)處統(tǒng)一設(shè)計(jì)的電子文檔標(biāo)準(zhǔn)格式(可從教務(wù)處網(wǎng)頁(yè)上下載)打印,禁止打印在其它紙上后剪貼;
3.畢業(yè)設(shè)計(jì)的開題報(bào)告應(yīng)包括以下內(nèi)容:
(1)主要技術(shù)指標(biāo);
(2)工作思路;
(3)課題的準(zhǔn)備情況及進(jìn)度計(jì)劃;
(4)參考文獻(xiàn)。
4.開題報(bào)告的撰寫應(yīng)符合科技文獻(xiàn)規(guī)范,且不少于2000字;參考文獻(xiàn)應(yīng)不少于15篇,包括中外文科技期刊、教科書、專著等。
5.開題報(bào)告正文字體采用宋體小四號(hào),1.5倍行距。附頁(yè)為A4紙型,左邊距3cm,右邊距2cm,上下邊距為2.5cm,字體采用宋體小四號(hào),1.5倍行距。
6.“課題性質(zhì)”一欄:
理工類:A.理論研究 B.應(yīng)用研究 C工程設(shè)計(jì) D.軟件開發(fā) E.其它
經(jīng)管文教類:A.理論研究 B.應(yīng)用研究 C.實(shí)證研究 D.藝術(shù)創(chuàng)作 E.其它
“課題來源”一欄:
A.科研立項(xiàng) B.社會(huì)生產(chǎn)實(shí)踐 C.教師自擬 D.學(xué)生自選
“成果形式”一欄:
A.論文 B.設(shè)計(jì)說明書 C.實(shí)物 D.軟件 E.作品
畢業(yè)設(shè)計(jì)開題報(bào)告
課題題目
課題性質(zhì)
A B C D E
□ ■ □ □ □
課題來源
A B C D
□ □ □ ■
成果形式
A B C D E
■ □ □ □ ■
同組同學(xué)
無
開題報(bào)告內(nèi)容(可另附頁(yè))
指導(dǎo)教師意見(課題難度是否適中、工作量是否飽滿、進(jìn)度安排是否合理、工作條件是否具備等)
課題難度適中、工作量飽滿、進(jìn)度安排合理、工作條件具備
指導(dǎo)教師簽名:
月 日
專家組及系里意見(選題是否適宜、各項(xiàng)內(nèi)容是否達(dá)到畢業(yè)設(shè)計(jì)(論文)大綱要求、整改意見等)
專家組成員簽字: 教學(xué)主任(簽章):
月 日
開題報(bào)告附頁(yè):
USB接口波形發(fā)生器
一、 主要技術(shù)指標(biāo):
USB是一種應(yīng)用在計(jì)算機(jī)領(lǐng)域的新型接口技術(shù),最早由Compaq、Intel、Microsoft等多家公司于1994年11月共同提出的,其目的是使用USB來取代PC機(jī)現(xiàn)有的各種外圍接口,使外設(shè)的連接具有單一化、即插即用、熱插拔等特點(diǎn)。它的出現(xiàn)大大簡(jiǎn)化了PC機(jī)和外設(shè)的連接過程,使PC機(jī)接口的擴(kuò)展變得更加容易??梢哉f,USB是計(jì)算機(jī)外設(shè)連接技術(shù)的重大變革?;谶@一思想,做了這個(gè)USB接口波形發(fā)生器,它采用直接數(shù)字頻率合成(DDFS)技術(shù),實(shí)時(shí)將USB接收到的數(shù)據(jù)轉(zhuǎn)換成各種頻率的波形輸出,所使用的USB傳輸方式為全速同步傳輸。可以輸出5種波形:正鋸齒波、反鋸齒波、三角波、方波和正弦波。它實(shí)現(xiàn)的主要功能是:
(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.5Hz~15999.5Hz,步進(jìn)值為0.5Hz。
(5)、采用全速同步端點(diǎn)8、9、10米傳輸系統(tǒng)控制命令和波形數(shù)據(jù)。
(6)、可讀取該USB設(shè)備的各種描述符和USB總線的當(dāng)前幀號(hào)。
二、工作思路:
1、系統(tǒng)的組成
本系統(tǒng)硬件電路可分為三大部分:以AN2131QC為核心的USB接口控制單元、以可編程邏輯器件EPM7064為核心的DDFS控制單元、以數(shù)模轉(zhuǎn)換器TLC7524和DAC0832為核心的波形輸出單元。系統(tǒng)框圖如下:
單片機(jī)
USB接口
可編程邏輯
器件
列隊(duì)緩沖器
D/A轉(zhuǎn)換
運(yùn)算放大
示波器
PC機(jī)
2、系統(tǒng)硬件設(shè)計(jì):
·USB接口單元
USB接口單元的主要實(shí)現(xiàn)芯片為Cypress公司的AN2131QC,負(fù)責(zé)完成硬件系統(tǒng)和PC機(jī)之間的數(shù)據(jù)傳輸。
·DDFS控制單元
DDFS控制單元的主要實(shí)現(xiàn)芯片為Altera公司的EPM7064,負(fù)責(zé)控制系統(tǒng)輸出波形的頻率。
·波形輸出單元
波形輸出單元的主要實(shí)現(xiàn)芯片為TI公司的TLC7524和美國(guó)國(guó)家半導(dǎo)體公司的DAC0832,負(fù)責(zé)對(duì)波形數(shù)據(jù)進(jìn)行D/A轉(zhuǎn)換。
課題的準(zhǔn)備情況及進(jìn)度計(jì)劃
1.查找和翻閱了一定數(shù)量的參考文獻(xiàn)和相關(guān)資料并學(xué)習(xí)了USB2.0原理與工程開發(fā)?;敬_定了畢業(yè)設(shè)計(jì)的主要研究路線以及應(yīng)該著重解決的關(guān)鍵問題。
主要研究路線:本課題從系統(tǒng)要求分析入手,將整個(gè)系統(tǒng)分成三個(gè)部分,分析和討論了各個(gè)部分的電路原理和實(shí)現(xiàn)方法。詳細(xì)討論了系統(tǒng)的各種工作情況,并得到了系統(tǒng)各個(gè)部分的主要構(gòu)成。
根據(jù)對(duì)畢業(yè)設(shè)計(jì)工作的了解,擬定了初步的進(jìn)度計(jì)劃。
序號(hào)
畢業(yè)設(shè)計(jì)階段性工作及成果
時(shí)間安排
1
初步了解USB工程開發(fā)的原理和系統(tǒng)構(gòu)成,進(jìn)一步學(xué)習(xí)
2008.12-2009.1
2
確定硬件電路設(shè)計(jì)方案,購(gòu)買元器件并完成硬件電路的制作與調(diào)試
2009.1-2009.2
3
進(jìn)行軟件編程和調(diào)試
2009. 2-2009.3
4
對(duì)電路的軟件及硬件進(jìn)行整體調(diào)試
2009. 3-2009.4
5
翻譯相關(guān)英文資料,完成論文初稿交老師
2009. 4-2009.5
6
修改并完成論文,撰寫答辯提綱,準(zhǔn)備答辯
2009. 5-2009.6
三、參考文獻(xiàn)
[1] 尹勇,王洪成編著 單片機(jī)開發(fā)環(huán)境μVision 2使用指南 2004
[2] 李英偉 編著 USB 2.0原理與工程開發(fā) 2007
[3] 武安河 編著 Windows 2000/XP WDM設(shè)備驅(qū)動(dòng)程序開發(fā) 2005
[4] 周立功 編著 USB 2.0與OTG規(guī)范及開發(fā)指南 2004
[5] 蕭世文 編著 USB 2.0硬件設(shè)計(jì) 2002
[6] 廖濟(jì)林 編著 USB 2.0應(yīng)用系統(tǒng)開發(fā)實(shí)例精講 2006
[7] 薛園園 編著 USB應(yīng)用開發(fā)技術(shù)大全 2007
[8] 許永和編著 健蓮科技改編 USB外圍設(shè)備設(shè)計(jì)與應(yīng)用 2002
[9] 張弘編著 USB接口設(shè)計(jì) 2002
[10] 胡曉軍,張愛成編著 USB接口開發(fā)技術(shù) 2005
[11] 李肇慶 廖峰 劉建存編著 USB接口技術(shù) 2004
[12] 劉韜,樓興華編著 FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例導(dǎo)航 2005
[13] 錢峰編著 EZ-USB FX2單片機(jī)原理、編程及應(yīng)用 2006
[14] 許永和編著 8051單片機(jī)USB接口程序設(shè)計(jì) 2004
[15] 劉兵 編著 微型計(jì)算機(jī)通信與接口技術(shù) 2008
[16] 厲榮衛(wèi)主編 微機(jī)原理與接口技術(shù) 2006
[17] 馬偉 編著 計(jì)算機(jī)USB系統(tǒng)原理及其主/從機(jī)設(shè)計(jì) 2004
[18] (美) Hyde John 著 USB設(shè)計(jì)應(yīng)用實(shí)例 2003
[19] 網(wǎng)絡(luò)資源:http://www.21ic.com、http://www.mcufans.com
畢業(yè)設(shè)計(jì)(論文)指導(dǎo)檢查工作記錄表
系別
班級(jí)
學(xué)生姓名
指導(dǎo)教師
課題名稱
USB接口波形發(fā)生器
時(shí)間
內(nèi)容及指導(dǎo)記錄
指導(dǎo)教師
簽字
08.11.13
下達(dá)畢業(yè)設(shè)計(jì)任務(wù)書
08.12.13
開題報(bào)告
第一周
方案論證
第二周
方案修改、方案確定
第三周
設(shè)計(jì)電路
第四周
設(shè)計(jì)電路
第五周
設(shè)計(jì)電路方案確定
第六周
購(gòu)買電子元器件
第七周
提交中期報(bào)告
第八周
制作電路、軟件編程、調(diào)試電路
第九周
制作電路、軟件編程、調(diào)試電路
第十周
撰寫畢業(yè)設(shè)計(jì)、提交畢業(yè)設(shè)計(jì)初稿
第十一周
修改畢業(yè)設(shè)計(jì)、畢業(yè)論文答辯
第十二周
畢業(yè)論文答辯、總結(jié)、按照學(xué)院要求提交全部標(biāo)準(zhǔn)材料
注:本表格同畢業(yè)設(shè)計(jì)(論文)一同裝訂成冊(cè),由所在單位歸檔保存。
摘 要
本系統(tǒng)介紹USB接口波形發(fā)生器的設(shè)計(jì)。它采用直接數(shù)字頻率合成(DDFS)技術(shù),實(shí)時(shí)將USB接收到的數(shù)據(jù)轉(zhuǎn)換成各種頻率的波形輸出,所使用的USB傳輸方式為全速同步傳輸。它可以輸出正鋸齒波、反鋸齒波、三角波、方波和正弦波5種波形。其硬件電路由以USB控制芯片AN2131QC為核心的USB接口單元、以可編程邏輯器件EPM7064為核心的DDFS單元、以數(shù)模轉(zhuǎn)換器TLC7524和DAC0832為核心的波形輸出單元三大部分構(gòu)成。其中,USB接口單元負(fù)責(zé)完成硬件系統(tǒng)和PC機(jī)之間的數(shù)據(jù)傳輸,DDFS控制單元負(fù)責(zé)控制系統(tǒng)輸出波型的頻率,波形輸出單元負(fù)責(zé)對(duì)波形數(shù)據(jù)進(jìn)行DA轉(zhuǎn)換,并負(fù)責(zé)控制輸出波形幅度峰峰值。它的系統(tǒng)軟件包括Keil C51語言編寫的AN2131QC芯片固件程序、Visual C++語言編寫的USB設(shè)備驅(qū)動(dòng)程序和Win32應(yīng)用程序。其波形頻率范圍是0.5Hz~15999.5Hz,步進(jìn)值為0.5Hz,幅度范圍是0V~+5V,步進(jìn)值為20mV。
關(guān)鍵詞: USB接口;任意波形;DDFS;波形發(fā)生器;Visual C++語言
ABSTRACT
This system introduces the design of USB interface wave form generator. It uses direct digital frequency synthesizer (DDFS) techniques, real-time will be received USB data into various frequency waveform output, used for full-speed USB transfer mode asynchronous transfer. It can output is sawtooth, anti-aliasing wave, triangle wave, square wave and sine wave . The hardware circuit to USB controller chip by AN2131QC at the core of the USB interface unit to EPM7064 programmable logic device as the core unit DDFS to DAC TLC7524 and the DAC0832 output waveform at the core constitute the majority of unit three. Which, USB interface unit is responsible for the completion of the hardware systems and PC data transfer between machines, DDFS control unit control system is responsible for the frequency of the output waveform, waveform output unit is responsible for the waveform data DA conversion, and is responsible for control of output waveform peak-to-peak amplitude. Its system software, including the Keil C51 language AN2131QC firmware chip, Visual C + + language prepared USB device drivers and Win32 applications. It’s frequency adjustment range is 0.5Hz ~ 15999.5Hz, step value of 0.5Hz and amplitude of the adjustment range of 0V ~ +5 V, step value of 20mV.
Key words: USB interface; Arbitrary Waveform; DDFS; waveform generator; Visual C+ + Language
英文資料及中文翻譯
PDIUSBD12----USB interface device with parallel bus
The PDIUSBD12 is a cost and feature optimized USB device. It is normally used in microcontroller based systems and communicates with the system microcontroller over the high-speed general purpose parallel interface. It also supports local DMA transfer.This modular approach to implementing a USB interface allows the designer to choose the optimum system microcontroller from the available wide variety. This flexibility cuts down the development time, risks, and costs by allowing the use of the existing architecture and minimize firmware investments.This results in the fastest way to develop the most cost effective USB peripheral solution.The PDIUSBD12 fully conforms to the USB specification Rev. 2.0 (basic speed). It is also designed to be compliant with most device class specifications: Imaging Class, Mass Storage Devices, Communication Devices, Printing Devices, and Human Interface Devices.Assuch, the PDIUSBD 12 is ideally suited for many peripherals like Printer, Scanner, External Mass Storage (Zip Drive), Digital Still Camera, etc. It offers an immediate cost reduction for applications that currently use SCSI implementations.The PDIUSBD12 low suspend power consumption along with the Lazy Clock output allowsfor easy implementation of equipment that is compliant to the ACPI(TM),OnNOW(TM), and USB power management requirements. The low operating power allows the implementation of bus powered peripherals. In addition; it also incorporates features like SoftConnect(TM), GoodLink(TM), programmable clock output, low frequency crystal oscillator, and integration of termination resistors. All of these features contribute to significant cost savings in the system implementation and at the same time ease the implementation of advanced USB functionality into the peripherals.
1. DMA transfer
Direct Memory Address (DMA) allows an efficient transfer of a block of data between thehostandlocalsharedmemory.UsingaDMAcontroller, data transfer between the
PDIUSBD12’s main endpoint (endpoint 2) and local shared memory can happen autonomously without local CPU intervention.
Preceding any DMA transfer, the local CPU receives from the host the necessary setup information and programs the DMA controller accordingly. Typically, the DMA controller is set up for demand transfer mode and the byte count register and the address counter are programmed with the right values. In this mode, transfers occur only when the PDIUSBD12 requests them and are terminated when the byte count register reaches zero. After the DMA controller has been programmed, the DMA enable bit of the PDIUSBD12 is set by the local CPU to initiate the transfer.
The PDIUSBD12 can be programmed for single-cycle DMA or burst mode DMA. In single-cycle DMA, the DMREQ pin is deactivated for every single acknowledgement by the DMACK_N before being re-asserted. In burst mode DMA, the DMREQ pin is kept active for the number of bursts programmed in the device before going inactive.This process continues until the PDIUSBD12 receives a DMA termination notice through pin EOT_N. This will generate an interrupt to notify the local CPU that DMA operation is completed.
For DMA read operation,the DMREQ pin will only be activated whenever the buffer is full, signalling that the host has successfully transferred a packet to the PDIUSBD12.With the double buffering scheme, the host can start filling up the second buffer while the first buffer is being read out. This parallel processing increases the effective throughput.When the host does not fill up the buffer completely (lessthan64 bytesor 128 bytes for single direction ISO configuration), the DMREQ pin will be deactivatedat the last byte of the buffer regardless of the current DMA burst count. It will be re-asserted on the next packet with a refreshed DMA burst count.
Similarly, for DMA write operations, the DMREQ pin remains active whenever the buffer is not full. When the buffer is filled up, the packet is sent over to the host on the next IN token and DMREQ will be reactivated if the transfer was successful. Also, the double buffering scheme here will improve throughput. For non-isochronous transfer (bulk and interrupt), the buffer needs to be completely filled up by the DMA writeoperation before the data is sent to the host. The only exception is at the end of DMA transfer, when the reception of pin EOT_N will stop DMA write operation and the buffer content will be sent to the host on the next IN token.
For isochronous transfers, the local CPU and DMA controller have to guarantee that they are able to sink or source the maximum packet size in one USB frame (1 ms).
The assertion of pin DMACK_Nautomatically selects the main endpoint (endpoint 2), regardless of the current selected endpoint. The DMA operation of the PDIUSBD12 can be interleaved with normal I/O access to other endpoints.
DMA operation can be terminated by resetting the DMA enable register bit or the assertion of EOT_N together with DMACK_N and either RD_N or WR_N.
The PDIUSBD12 supports DMA transfer in single address mode and it can also work in dual address mode of the DMA controller. In the single address mode, DMA transfer is done via the DREQ, DMACK_N, EOT_N, WR_N and RD_N control lines.
In the dual address mode, pins DMREQ, DMACK_N and EOT_N are not used; instead CS_N, WR_N and RD_N control signals are used. The I/O mode Transfer
Protocol of PDIUSBD12 needs to be followed. The source of the DMAC is accessed during the read cycle and the destination during the write cycle. Transfer needs to be done in two separate bus cycles, storing the data temporarily in the DMAC.
Command description
2. Command procedure
There are three basic types of commands: Initialization, Data Flow and General Commands. Respectively, these are used to initialize the function; for data flow between the function and the host; and some general commands.
2.1 Initialization commands
Initialization commands are used during the enumeration process of the USB network. These commands are used to enable the function endpoints. They are also used to set the USB assigned address.
⑴ Set Address/Enable
Code (Hex):D0
Transaction: write 1 byte
This command is used to set the USB assigned address and enable the function.
⑵ Set endpoint enable
Code (Hex):D8
Transaction: write 1 byte
Thegeneric/Isochronous endpoints can only been abled when the function is enabled via the Set Address/Enable command.
⑶ Set mode
Code (Hex):F3
Transaction: write 2 bytes
The Set mode command is followed by two data writes. The first byte contains the configuration bits. The second byte is the clock division factor byte.
⑷ CLOCK DIVISION
The value indicates the clock division factor for CLKOUT. The FACTOR output frequency is 48 MHz/(N+1) where N is the Clock Division Factor. The reset value is 11. This will produce the output frequency of 4 MHz which can then be programmed up or down by the user. The minimum value is 1 giving the range of frequency from 4 to 24 MHz. The minimum value of N is 0, giving a maximum frequency of 48 MHz.The maximum value of N is 11 giving a minimum frequency of 4 MHz.The PDIUSBD12 design ensures no glitching during frequency change. The programmed value will not be changed by a bus reset.
⑸ Set DMA
Code (Hex): FB
Transaction: read/write 1 byte
The set DMA command is followed by one data write/read to/from the DMA configuration register.DMA Configuration register: During DMA operation, the two-byte buffer header (status and byte length information) is not transferred to/from the local CPU. This allows DMA data to be continuous and not interleaved by chunks of this headers.For DMA read operations, the header will be skipped by the PDIUSBD12. For DMA write operations, the header will be automatically added by the PDIUSBD12. This provides for a clean and simple DMA data transfer.
2.2 Data flow commands
Data flow commands are used to manage the data transmission between the USB endpoints and the external microcontroller. Much of the data flow is initiated via an interrupt to the microcontroller. The microcontroller utilizes these commands to access and determine whether the endpoint FIFOs have valid data.
⑴ Read interrupt register
Code (Hex):F4
Transaction: read 2 bytes
This command indicates the origin of an interrupt. The endpoint interrupt bits (bits 0 to 5) are cleared by reading the endpoint last transaction status register through Read Last Transaction Status command. The other bits are cleared after reading the interrupt registers.
⑵ Select Endpoint
Code (Hex):00 to 05
Transaction: read 1 byte (optional)
The Select Endpoint command initializes an internal pointer to the start of the selected buffer. Optionally, this command can be followed by a data read, which returns this byte.
FULL/EMPTY: A ‘1’ indicates the buffer is full, ‘0’ indicates an empty buffer.
STALL: A ‘1’ indicates the selected endpoint is in the stall state.
Fig 11. Select Endpoint command: bit allocation.
⑶ Read Endpoint status
Code (Hex):80 to 85
Transaction: read 1 byte
⑷ Read last transaction status register
Code (Hex):40 to 45
Transaction: read 1 byte
The Read Last Transaction Status command is followed by one data read that returns the status of the last transaction of the endpoint. This command also resets the corresponding interrupt flag in the interrupt register, and clears the status, indicating that it was read.This command is useful for debugging purposes. Since it keeps track of every transaction, the status information is overwritten for each new transaction.
⑸ Read buffer
Code (Hex):F0
Transaction: read multiple bytes (max. 130)
The Read Buffer command is followed by a number of data reads, which returns the contents of the selected endpoint data buffer. After each read, the internal buffer pointer is incremented by 1.The buffer pointer is not reset to the top of the buffer by the Read Buffer command.This means that reading or writing a buffer can be interrupted by any other command (except for Select Endpoint).
The data in the buffer are organized as follows:
* byte 0: reserved; can have any value
* byte 1: number/length of data bytes
* byte 2: data byte 1
* byte 3: data byte 2
* etc.
The first two bytes will be skipped in the DMA read operation. Thus, the first read will get Data byte 1, the second read will get Data byte 2, etc. The PDIUSBD12 can determine the last byte of this packet through the EOP termination of the USB packet.
⑹ Write buffer
Code (Hex):F0
Transaction: write multiple bytes (max. 130)
The Write Buffer command is followed by a number of data writes, which load the endpoints buffer. The data must be organized in the same way as described in the Read Buffer command. The first byte (reserved) should always be ‘0’.During DMA writes operation, the first two bytes will be bypassed. Thus, the first write will write into Data byte 1, the second write will write into Data byte 2, etc.
For non-isochronous transfer(bulk or interrupt), the buffer should be completely filled before the data is sent to the host and a switch to the next buffer occurs. The exception is at the end of DMA transfer indicated by activation of EOT_N, when the current buffer content (completely full or not) will be sent to the host.
Remark: There is no protection against writing or reading over a buffer’s boundary or against writing into an OUT buffer or reading from an IN buffer. Any of these actions could cause an incorrect operation.Data in an OUT buffer are only meaningful after asuccessful transaction.The exception is during DMA operation on the main endpoint (endpoint 2), in which case the pointer is automatically pointed to the second buffer after reaching the boundary (double buffering scheme).
⑺ Clear buffer
Code (Hex):F2
Transaction: none
When a packet is received completely, an internal endpoint buffer full flag is set. All Subsequent packets will be refused by returning a NAK.When the microcontroller has read the data, it should free the buffer by the Clear Buffer command. When the buffer
is cleared, new packets will be accepted.
⑻ Validate buffer
Code (Hex): FA
Transaction: none
When the microprocessor has written data into an IN buffer, it should set the buffer full flag by the Validate Buffer command. This indicates that the data in the buffer are valid and can be sent to the host when the next IN token is received.
⑼ Set endpoint status
Code (Hex):40 to 45
Transaction: write 1 byte
A stalled control endpoint is automatically unstalled when it receives a SETUP token, regardless of the content of the packet. If the endpoint should stay in its stalled state, the microcontroller can re-stall it.When a stalled endpoint is unstalled (either by the Set Endpoint Status command or by receiving a SETUP token), it is also re-initialized. This flushes the buffer and if it is an OUT buffer it waits for a DATA 0 PID, if it is an IN buffer it writes a DATA 0 PID.Even when unstalled, writing Set Endpoint Status to ‘0’ initializes the endpoint.
2.3 General commands
Send resume
Code (Hex):F6
Transaction:none
Sends an upstream resume signal for 10 ms.This command is normally issued when the device is in suspend. The RESUME command is not followed by a data read or write.
Read current frame number
Code (Hex):F5
Transaction:read 1 or 2 bytes
This command is followed by one or two data reads and returns the frame number of the last successfully received SOF. The frame number is returned Least Significant byte first.
PDIUSBD12帶并行總線的USB接口器件
PDIUSBD12是一款性價(jià)比很高的USB器件,它通常用作微控制器系統(tǒng)中實(shí)現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口,它還支持本地的DMA傳輸。這種實(shí)現(xiàn)USB接口的標(biāo)準(zhǔn)組件使得設(shè)計(jì)者可以在各種不同類型微控制器中選擇出最合適的微控制器。這種靈活性減小了開發(fā)的時(shí)間,風(fēng)險(xiǎn)以及費(fèi)用(通過使用已有的結(jié)構(gòu)和減少固件上的投資),從而用最快捷的方法實(shí)現(xiàn)最經(jīng)濟(jì)的USB外設(shè)的解決方案。PDIUSBD12完全符合USB1.1版的規(guī)范,它還符合大多數(shù)器件的分類規(guī)格,成像類海量存儲(chǔ)器件,通信器件,打印設(shè)備以及人機(jī)接口設(shè)備。同樣地,PDIUSBD12理想地適用于許多外設(shè)。例如,打印機(jī),掃描儀,外部的存儲(chǔ)設(shè)備(Zip驅(qū)動(dòng)器)和數(shù)碼相機(jī)等等。它使得當(dāng)前使用SCSI的系統(tǒng)可以立即降低成本。PDIUSBD12所具有的低掛起功耗連同LazyClock輸出可以滿足使用ACPI,OnNOW和USB電源管理的要求,低的操作功耗可以應(yīng)用于使用總線供電的外設(shè)。此外它還集成了許多特性,包括SoftConnetTM,GoodLinkTM,可編程時(shí)鐘輸出,低頻晶振和終止寄存器集合。所有這些特性都為系統(tǒng)顯著節(jié)約了成本,同時(shí)使USB功能在外設(shè)上的應(yīng)用變得容易。
1. DMA傳輸
直接存儲(chǔ)器尋址(DMA)允許在主端點(diǎn)和本地共享存儲(chǔ)器間實(shí)現(xiàn)數(shù)據(jù)塊的有效傳輸。使用DMA控制器,PDIUSBD12的主端點(diǎn)和本地共享存儲(chǔ)器間的數(shù)據(jù)傳輸可自主進(jìn)行而不需要本地CPU的干預(yù)。要處理任何DMA傳輸,本地CPU從主機(jī)接收必要的SETUP信息并對(duì) DMA控制器進(jìn)行相應(yīng)的編程,典型的對(duì)DMA控制器的傳輸模式,字節(jié)計(jì)數(shù)寄存器和地址計(jì)數(shù)器進(jìn)行正確的編程。在該模式下,PDIUSBD12發(fā)出請(qǐng)求時(shí)開始傳輸。當(dāng)字節(jié)計(jì)數(shù)器減少為零時(shí)終止。在DMA控制器編程之后,本地CPU在初始化傳輸時(shí)將PDIUSBD12中的DMA使能位置位。
PDIUSBD12可編程為單周期DMA或突發(fā)模式DMA。在單周期DMA中,DMREQ在每單個(gè)應(yīng)答后直到被DMACK_N重新激活之前保持無效。在突發(fā)模式DMA中,DMREQ在器件中突發(fā)編程時(shí)一直保持有效。該過程持續(xù)到PDIUSBD12通過EOT_N接收到一個(gè)DMA終止信息。這時(shí)產(chǎn)生一個(gè)中斷指示本地CPU DMA操作已經(jīng)完成。
在DMA讀操作時(shí)DMREQ僅當(dāng)緩沖區(qū)完全表示主機(jī)成功的發(fā)送了一個(gè)信息包到PDIUSBD12時(shí)才有效。由于具有雙緩沖配置,主機(jī)可以在第一個(gè)緩沖區(qū)被讀出時(shí)對(duì)第二個(gè)緩沖區(qū)進(jìn)行填充,這種并行的處理有效的增加了數(shù)據(jù)吞吐量。當(dāng)主機(jī)沒有完全填滿緩沖區(qū)的情況下(單向ISO配置時(shí)小于64或128字節(jié)),DMREQ會(huì)在緩沖區(qū)的最后一個(gè)字節(jié)時(shí)無效 而不管當(dāng)前的DMA突發(fā)計(jì)數(shù)。在更新了DMA突發(fā)計(jì)數(shù)的下一個(gè)包發(fā)送時(shí),DMREQ再次被激活。
DMA的寫操作與之相似,當(dāng)緩沖區(qū)未裝滿時(shí),DMREQ一直有效。當(dāng)緩沖區(qū)填滿時(shí),在下一個(gè)IN標(biāo)志將信息包送入主機(jī)。當(dāng)傳輸完成之后,DMREQ變?yōu)闊o效。同樣的,雙緩沖配置在這也改善了數(shù)據(jù)的吞吐量。在非同步傳輸中,批量模式和中斷。在數(shù)據(jù)被發(fā)送到主機(jī)之前,緩沖區(qū)需要通過DMA寫操作完全裝滿。唯一的例外是,在DMA傳輸結(jié)束時(shí),EOT_N接收的信號(hào)將會(huì)停止DMA寫操作并且在下一個(gè)IN標(biāo)志置位時(shí)將緩沖區(qū)的內(nèi)容傳送到主機(jī)。
在同步模式中,本地CPU和DMA控制器必須保證它們?cè)谝粋€(gè)USB幀(1ms)中能夠吞吐的最大信息包的規(guī)模。DMACK_N的激活將自動(dòng)選擇主端點(diǎn)(端點(diǎn)2)而不管當(dāng)前選擇的端點(diǎn)。PDIUSBD12的DMA操作可通過普通的I/O對(duì)其它端點(diǎn)的存取實(shí)現(xiàn)交叉存取。DMA操作可通過以下方式終止:復(fù)位DMA使能寄存器位或EOT_N加上DMACK_N以及 RD_N/WR_N的激活。
PDIUSBD12支持單地址模式中的DMA傳輸,也可以在DMA控制器的雙地址模式中工作。在單地址模式中DMA通過DREQ DMACK_N,EOT_N,WR_N和RD_N控制線實(shí)現(xiàn)傳輸。在雙地址模式中DMREQ,DMACK_N和EOT_N未用,取而代之的是CS_N,WR_N和RD_N控制信號(hào)。需要遵循PDIUSBD12的I/O模式傳輸協(xié)議。在讀周期中對(duì)DMAC信號(hào)源進(jìn)行訪問,在寫周期對(duì)目標(biāo)進(jìn)行訪問,傳輸需要兩個(gè)單獨(dú)的總線周期來儲(chǔ)存暫存在DMAC中的數(shù)據(jù)。
2. 命令描述
有3種基本的類型的命令:初始化,數(shù)據(jù)流和通用命令。
2.1 初始化命令
初始化命令在USB網(wǎng)絡(luò)進(jìn)行枚舉處理時(shí)使用,這些命令用于使能端點(diǎn)的功能,還可用來設(shè)置USB配的地址。
⑴設(shè)置地址/使能
命令:D0h
處理:寫1字節(jié)
該命令用于設(shè)置USB分配的地址和使能功能。
地址 寫入的值即為地址
使能 置1使能該功能
⑵設(shè)置端點(diǎn)使能
命令:D8h
處理:寫1字節(jié)
通過設(shè)置設(shè)置地址/使能命令后才可使能普通/同步端點(diǎn)
普通/同步
端點(diǎn) 值1表示普通/同步端點(diǎn)使能
⑶設(shè)置模式
命令:F3h
處理:寫2字節(jié)
設(shè)置模式命令后跟2個(gè)寫入的數(shù)據(jù),第一個(gè)字節(jié)包含配置字節(jié)信息,第二個(gè)字節(jié)是時(shí)鐘分頻因素字節(jié)。
配置字節(jié)
無LazyClock:1 表示CLKOUT不會(huì)切換到LazyClock,0表示CLKOUT在Suspend腳變高之后切換到LazyClock,LazyClock頻率是30KHz±40%,編程值將不過會(huì)被總線復(fù)位所改變。
時(shí)鐘運(yùn)行:1表示內(nèi)部時(shí)鐘和PLL即使在掛起狀態(tài)下仍然運(yùn)行,0表示只要不需要時(shí),內(nèi)部時(shí)鐘晶振和PLL就停止運(yùn)行,為了滿足嚴(yán)格的掛起電流要求,該位需要設(shè)置為0,已編程的值不會(huì)被總線復(fù)位所改變。
中斷模式:1表示報(bào)告所有的錯(cuò)誤和“NAKing”并產(chǎn)生一個(gè)中斷。0表示只有OK被報(bào)告。編程值不會(huì)被總線復(fù)位所改變。
SoftConnect:1表示如果VBUS可用,上行數(shù)據(jù)上拉電阻就被連接,0表示不連接。已編程的值不會(huì)被總線復(fù)位所改變。
端點(diǎn)配置:該2位設(shè)置端點(diǎn)配置如下:
模式 0 非同步模式
模式 1 同步輸出模式
模式 2 同步輸入模式
模式 3 同步輸入/輸出模式
⑷時(shí)鐘分頻系數(shù)字節(jié)
時(shí)鐘分頻系數(shù):該值用來表示CLKOUT的時(shí)鐘分頻系數(shù),用N表示分頻系數(shù),那么輸出頻率就為48MHz/(N+1),復(fù)位值為11。這產(chǎn)生4MHz的輸出頻率,然后可由用戶自行調(diào)節(jié)。當(dāng)N為0時(shí),得到最大頻率48MHz,當(dāng)N取最大11時(shí),得到最小頻率4MHz。PDIUSBD12的設(shè)計(jì)確保了在改變頻率時(shí)不會(huì)出現(xiàn)干擾,已編程的值不會(huì)被總線復(fù)位所改變。
SET_TO_ONE:該位需要在任何DMA讀或?qū)懖僮髦爸脼?。該位在上電復(fù)位值為0。復(fù)位后可將其一直設(shè)為1。
僅有SOF中斷模式:將該位置1后,僅當(dāng)幀時(shí)鐘的起始(SOF)時(shí)刻引起中斷的產(chǎn)生 而不管引腳中斷模式的設(shè)置狀態(tài)設(shè)置(DMA位5)
⑸設(shè)置 DMA
命令:FBh
處理:讀/寫1字節(jié)
設(shè)置DMA命令后跟1個(gè)字節(jié)數(shù)據(jù)寫入/讀出 DMA配置寄存器
DMA配置寄存器
在DMA操作中,兩字節(jié)的緩沖區(qū)頭(狀態(tài)和字節(jié)長(zhǎng)度信息)不參與傳送。這就允許了DMA數(shù)據(jù)的連續(xù)性,不插入信息頭。DMA讀操作時(shí),信息頭被PDIUSBD12跳過,在DMA寫操作時(shí),信息頭由PDIUSBD12自動(dòng)添加,這就提供了一個(gè)簡(jiǎn)潔的DMA數(shù)據(jù)傳輸。
DMA突發(fā)串:選擇DMA操作的突發(fā)串長(zhǎng)度
00 單周期 DMA
01 突發(fā)串 4 周期 DMA
10 突發(fā)串 8 周期 DMA
11 突發(fā)串 16 周期 DMA
DMA使能:向該位寫入1會(huì)通過激活DMREQ啟動(dòng)DMA操作,在激活DMREQ之前需要裝滿(DMA讀操作)或清空(DMA寫操作)主端點(diǎn)緩沖區(qū)。在單周期DMA模式中,DMREQ在突發(fā)串?dāng)?shù)目耗盡后無效,然后下一個(gè)突發(fā)串時(shí)重新激活,這個(gè)過程一直持續(xù)到EOT_N和DMACK_N以及RD_N或WR_N一起被激活。此時(shí)將該位置0并終止DMA操作,DMA操作也可通過直接向該位寫入0來終止。
DMA方向:該位決定了DMA傳輸時(shí)數(shù)據(jù)流的方向,1表示從外部共享存儲(chǔ)器到PDIUSBD12(DMA寫操作),0表示從PDIUSBD12到外部共享存儲(chǔ)器(DMA讀操作)。
自動(dòng)重裝:當(dāng)該位設(shè)為1,DMA操作會(huì)自動(dòng)重新啟動(dòng)。
中斷腳模式:0表示正常的中斷腳模式,中斷寄存器所有位的邏輯或產(chǎn)生中斷,當(dāng)該位寫入1時(shí)表示中斷會(huì)在USB總線上行數(shù)據(jù)流出現(xiàn)幀時(shí)鐘(SOF)起始位時(shí)產(chǎn)生中斷。其它中斷仍然有效。
端點(diǎn)索引4中斷使能:該位為1表示只要端點(diǎn)緩沖區(qū)包含一個(gè)有效的信息包就會(huì)產(chǎn)生中斷,通常在DMA操作時(shí)關(guān)閉以減少不必要的CPU響應(yīng)。
端點(diǎn)索引5中斷使能:該位為1表示只要端點(diǎn)緩沖區(qū)有效,見緩沖區(qū)生效命令,就會(huì)產(chǎn)生中斷,通常在DMA操作時(shí)關(guān)閉以減少不必要的CPU響應(yīng)。
2.2 數(shù)據(jù)流命令
數(shù)據(jù)流命令用于管理USB端點(diǎn)和外部微控制器之間的數(shù)據(jù)傳輸,通過微控制器中斷初始化大量的數(shù)據(jù)流。微控制器利用這些命令訪問和決定端點(diǎn)的FIFO是否含有有效的數(shù)據(jù)。
⑴讀中斷寄存器
命令:F4h
處理:讀2字節(jié)
中斷寄存器字節(jié)1
中斷寄存器字節(jié) 2
該命令指示中斷的來源,通過讀端點(diǎn)最后處理狀態(tài)寄存器將端點(diǎn)中斷位(位0~5)清零,其它位在讀中斷寄存器后被清零。
總線復(fù)位:在總線復(fù)位后將產(chǎn)生一個(gè)中斷將該位置1。總線復(fù)位與通過RESET_N腳的硬件
復(fù)位基本相同,有一點(diǎn)除外,就是總線復(fù)位產(chǎn)生一個(gè)中斷并且器件在默認(rèn)地址0處使能。
掛起改變:當(dāng)PDIUSBD12沒有收到3個(gè)SOF時(shí),將會(huì)進(jìn)入掛起狀態(tài)并將掛起改變位置位。任何掛起或喚醒狀態(tài)的改變都會(huì)將該位置位并產(chǎn)生中斷。
DMA EOT:該位表示DMA操作已結(jié)束。
⑵選擇端點(diǎn)
命令:00-05h
處理:可選讀1字節(jié)
選擇端點(diǎn)命令將內(nèi)部指針初始化到選擇的緩沖區(qū)起始位置??蛇x的該命令可跟一個(gè)返回的讀出字節(jié)。
滿/空 1表示緩沖區(qū)已滿,0 表示緩沖區(qū)為空。
停止 1表示選擇的端點(diǎn)處于停止?fàn)顟B(tài)。
⑶讀端點(diǎn)狀態(tài)
命令:80-85h
處理:讀1字節(jié)
⑷讀最后處理狀態(tài)寄存器
命令:40-45h
處理:讀1字節(jié)
讀最后處理狀態(tài)寄存器命令后跟一個(gè)數(shù)據(jù)返回端點(diǎn)最后處理的狀態(tài),該命令同時(shí)復(fù)位中斷寄存器中的相應(yīng)位并將狀態(tài)清零表示已經(jīng)讀取,由于它保留了每次處理的記錄,所以該命令在以調(diào)試為目的時(shí)很有用。在每次新的處理之后會(huì)將原來的狀態(tài)信息覆蓋。
數(shù)據(jù)接收/發(fā)送成功:1表示數(shù)據(jù)已經(jīng)成功地接收或發(fā)送。
SETUP信息包:1表示最后成功接收的信息包有一個(gè)SETUP標(biāo)志,對(duì)IN緩沖區(qū)進(jìn)行讀總為0。
數(shù)據(jù)0/1包:1表示最后成功接收/發(fā)送包含有一個(gè)DATA1 PID。
前一狀態(tài)未讀:1表示在前一狀態(tài)被讀出之前發(fā)生了第二個(gè)事件。
⑸讀緩沖區(qū)
命令:F0h
處理:讀多個(gè)字節(jié),最大130
讀緩沖區(qū)命令后,返回一系列從選擇的端點(diǎn)數(shù)據(jù)緩沖區(qū)讀出的數(shù)據(jù),每讀一個(gè)字節(jié),內(nèi)部緩沖區(qū)指針自動(dòng)加一,讀緩沖區(qū)命令不會(huì)將緩沖區(qū)指針復(fù)位到緩沖區(qū)起始端,這意味著可被其它的命令所中斷(選擇端點(diǎn)命令除外)。
緩沖區(qū)數(shù)據(jù)結(jié)構(gòu)如下
字節(jié)1:保留;可為任意值
字節(jié)2:數(shù)據(jù)字節(jié)的數(shù)目/長(zhǎng)度
字節(jié)3:數(shù)據(jù)字節(jié)1
字節(jié)4:數(shù)據(jù)字節(jié)2
……
頭兩個(gè)字節(jié)在DMA讀操作中可跳過。因此第一個(gè)讀出的字節(jié)是數(shù)據(jù)字節(jié)1。第二個(gè)讀出的是數(shù)據(jù)字節(jié)2等等。PDIUSBD12可通過USB信息包的EOP終止來決定包的最后一個(gè)字節(jié)。
⑹寫緩沖區(qū)
命令:F0h
處理:寫多個(gè)字節(jié),最大130
寫緩沖區(qū)命令后跟一系列需要寫入端點(diǎn)緩沖區(qū)的數(shù)據(jù),數(shù)據(jù)的結(jié)構(gòu)必須與前面描述的讀緩沖區(qū)命令一樣。第一個(gè)字節(jié)(保留)總為0。在DMA寫操作中,頭兩個(gè)字節(jié)會(huì)被繞過,因此,第一個(gè)寫入的字節(jié)是數(shù)據(jù)字節(jié)1。第二個(gè)寫入的是數(shù)據(jù)字節(jié)2等等。在非同步傳輸(批量或中斷)中,數(shù)據(jù)被發(fā)送到主機(jī)之前緩沖區(qū)必須被完全填滿并切換到下一個(gè)緩沖區(qū)。例外的情況是,當(dāng)前的緩沖區(qū)內(nèi)容將要被發(fā)送到主機(jī)時(shí),由有效的EOT_N指示DMA傳輸?shù)慕Y(jié)束。
⑺清緩沖區(qū)
命令:F2h
處理:無
當(dāng)一個(gè)信息包完全接收之后,內(nèi)部端點(diǎn)緩沖區(qū)滿標(biāo)志置位,所有后續(xù)的包將被返回的NAK拒絕,當(dāng)微控制器已讀取數(shù)據(jù),它應(yīng)當(dāng)通過清緩沖區(qū)命令來釋放緩沖區(qū),當(dāng)緩沖區(qū)清空之后新的信息包就可被接受了。
⑻使緩沖區(qū)有效
命令:Fah
處理:無
當(dāng)微控制器已將數(shù)據(jù)寫入IN緩沖區(qū),它應(yīng)當(dāng)通過使緩沖區(qū)有效命令設(shè)置緩沖區(qū)滿標(biāo)志,這表示緩沖區(qū)內(nèi)的數(shù)據(jù)有效并可在接收到下一個(gè)IN標(biāo)志時(shí)將其送入主機(jī)。
⑼設(shè)置端點(diǎn)狀態(tài)
命令:40-45h
處理:寫1字節(jié)
當(dāng)一個(gè)停止控制的端點(diǎn)接收到SETUP標(biāo)志時(shí)自動(dòng)解除停止,而不管信息包的內(nèi)容如何,如果端點(diǎn)應(yīng)當(dāng)停在停止?fàn)顟B(tài),微控制器可以重新停止它。
當(dāng)一個(gè)停止的端點(diǎn)解除了停止,設(shè)置端點(diǎn)命令或接收到一個(gè)SETUP標(biāo)志,它同時(shí)被重新初始化將緩沖區(qū)刷新,如果是OUT緩沖區(qū)就等待一個(gè)DATA 0 PID,如果是IN緩沖區(qū)就寫入一個(gè)DATA 0 PID,即使在解除停止時(shí),將設(shè)置端點(diǎn)狀態(tài)寫為0,也將初始化端點(diǎn)。
停止 1 表示端點(diǎn)處于停止?fàn)顟B(tài)
2.3普通命令
發(fā)送恢復(fù)
命令:F6h
處理:無
發(fā)送一個(gè)上行數(shù)據(jù)流恢復(fù)信號(hào)10ms,該命令通常用于器件處于掛起狀態(tài)時(shí),恢復(fù)命令后不跟讀出或?qū)懭氲臄?shù)據(jù)
讀當(dāng)前幀數(shù)目
該命令后跟1到2個(gè)讀出的字節(jié)并返回最后成功接收的SOF幀數(shù)目,幀數(shù)目為返回的低位字節(jié)。
12
收藏