基于PDIUSBDl2芯片的USB接口設(shè)計(jì)
2 硬件電路設(shè)計(jì)
由PDIUSBDl2和ADuC812構(gòu)成的USB接口電路如圖2所示。PDIUSBDl2的8位并行數(shù)據(jù)接人ADuC812的PO口,地址線A15(P2.7)作為PDIUSBDl2的片選,地址線A14(P2.6)作為PDIUSBDl2的命令或數(shù)據(jù)的選擇線。在片選信號有效的前提下(P2.7=0),當(dāng)P2.6=1時(shí),給PDIUSBDl2發(fā)命令;當(dāng)P2.6=0時(shí),給PDIUSBDl2寫數(shù)據(jù)或從PDIUSBDl2的Buffer中讀數(shù)據(jù);因此,地址0x7FFF發(fā)命令,地址0x3FFF讀寫數(shù)據(jù)。PDIUSBDl2與ADuC812的數(shù)據(jù)交換采用中斷方式(外部中斷0)。他的一個(gè)輸出(GL_N)接LED對其狀態(tài)進(jìn)行監(jiān)控,這個(gè)LED在USB被連接時(shí)會(huì)發(fā)光,在進(jìn)行數(shù)據(jù)傳輸時(shí)會(huì)閃爍,LED常亮或一直不亮說明USB接口有問題。
USB設(shè)備通過4線電纜接入主機(jī)或USB Hub,這4線分別是:Vcc(總線電源),GND(地線),D+和D一(數(shù)據(jù)線)。主機(jī)通過D+和D一上的電壓變化來檢測到設(shè)備的狀態(tài),當(dāng)沒有設(shè)備連接到USB端口時(shí),D+和D一線上的下拉電阻就將2條數(shù)據(jù)線拉到近地,當(dāng)檢測到任一條數(shù)據(jù)線電壓接近Vcc,而其他保持近地電壓,那么主機(jī)就知道該設(shè)備已經(jīng)準(zhǔn)備好了。
主機(jī)通過檢測是哪一條數(shù)據(jù)線電壓變高來確定設(shè)備是全速或低速,當(dāng)D+數(shù)據(jù)線高時(shí),就為全速;當(dāng)D一數(shù)據(jù)線低時(shí),就為低速。PDIUSBBDl2的全速模式通過軟連接(SoftConnectTM)在D十上接1個(gè)1.5k12的上拉電阻。
3 固件設(shè)計(jì)
當(dāng)設(shè)備連接到主機(jī)以后,主機(jī)通過給PDIUSBDl2的端點(diǎn)0發(fā)送包含標(biāo)準(zhǔn)USB請求的控制傳輸(即Setup包),PDIUSBDl2產(chǎn)生一個(gè)中斷給MCU(INT0),MCU通過讀PDIUSBDl2的中斷寄存器和最后一次傳輸狀態(tài)寄存器來對每一個(gè)請求作出響應(yīng),并通過PDIUSBDl2的端點(diǎn)0回送請求信息。主機(jī)從返回的信息中讀取描述數(shù)據(jù),分配和載人一個(gè)設(shè)備驅(qū)動(dòng)程序并對設(shè)備進(jìn)行配置。設(shè)備被配置好后,就可以使用配置中支持的端點(diǎn)來傳輸數(shù)據(jù)。這一部分工作由MCU來控制完成,并且該控制程序需要固化在ADuC812的內(nèi)部ROM中,稱之為固件(firmware)。
PDIUSBDl2的端點(diǎn)0有3個(gè)狀態(tài),其變化關(guān)系如圖3所示,固件程序必須利用這3種狀態(tài)關(guān)系來正確地處理控制傳輸。把主機(jī)通過PDIUSBDl2的端點(diǎn)0給設(shè)備發(fā)USB請求設(shè)為OUTs,通過端點(diǎn)0接收數(shù)據(jù)設(shè)為INs。MCU處理來自主機(jī)的Setup包(Control Out)的軟件流程圖如圖4所示,MCU通過PDIUSBDl2的控制端點(diǎn)。給主機(jī)發(fā)送描述符數(shù)據(jù)(Control In)的軟件流程圖如圖5所示。PDIUSBDl2的描述符數(shù)據(jù)必須嚴(yán)格遵循USBl.1協(xié)議第九章(Chap9)的規(guī)定,描述符數(shù)據(jù)包括設(shè)備描述符、配置描述符、接口描述符、端點(diǎn)描述符、字符串描述符。
完成PDIUSBDl2的固件(Firmware)程序后,在USB設(shè)備驅(qū)動(dòng)程序的開發(fā)中筆者使用了Jungo公司的WinDriver 5.03,應(yīng)用程序的開發(fā)使用的是VC 6.0。
4 結(jié) 語
該USB接口適合于高速數(shù)據(jù)采集系統(tǒng)與主機(jī)進(jìn)行數(shù)據(jù)通信,同時(shí),他也為便攜式系統(tǒng)提供了方便、快捷和可靠的接口解決方案。目前,USB已經(jīng)廣泛地應(yīng)用在PC的外設(shè)上,特別是USB 2.0協(xié)議推出后,數(shù)據(jù)傳輸能力和速度大大提高,使得USB數(shù)碼相機(jī)、數(shù)碼攝像機(jī)能在短時(shí)間內(nèi)完成大容量的圖像傳輸。此外,USB的突出特點(diǎn)使得他必將在更廣闊的領(lǐng)域得到應(yīng)用。
評論