當(dāng)前位置:首頁 > 模擬 > 模擬
[導(dǎo)讀]USB作為一種新型的接口技術(shù),以其簡單易用、速度快等特點而備受青睞。本文簡單介紹USB 接口的特點和PHILIPS公司的USB接口芯片PDIUSBD12,并詳細說明USB軟硬件開發(fā)過程中應(yīng)注意的問題。

引言

  USB是近年來應(yīng)用在PC領(lǐng)域的新型接口技術(shù),是一些PC大廠商,如 Microsoft、Intel等為了解決日益增加的PC外設(shè)與有限的主板插槽和端口之間的矛盾而制定的一種串行通信的標準,自1995年在Comdex上亮相以來至今已廣泛地為各 PC廠家所支持。現(xiàn)在生產(chǎn)的PC幾乎都配備了USB接口,Microsoft 的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系統(tǒng)都增加了對 USB的支持。

  USB的主要優(yōu)點:

 ?、?nbsp; 使用方便。連接外設(shè)不必再打開機箱;允許外設(shè)熱插拔,而不必關(guān)閉主機電源。
 ?、?nbsp; 速度快。USB接口的最高傳輸率可達12 Mb/s;提供低速方式,速率為1.5 Mb/s??鄢糜诳偩€狀態(tài)控制和錯誤檢測等數(shù)據(jù)傳輸,最大理論速度也能達到1.2 Mb/s和9.6 Mb/s。
 ?、?nbsp; 連接靈活。一個USB口理論上可以連接127個USB設(shè)備。連接的方式也十分靈活,既可以使用串行連接,也可以使用集線器Hub,把多個設(shè)備連接在一起,再同PC機的USB口相接。
 ?、?nbsp; 獨立供電。USB接口提供了內(nèi)置電源。

  現(xiàn)在的USB生產(chǎn)廠商很多,幾乎所有的硬件廠商都有USB 的產(chǎn)品。USB控制器一般有兩種類型:一種是MCU集成在芯片里面的,如 Intel的8X930AX、CYPRESS的EZ-USB、SIEMENS的C541U以及 MOTOLORA、National Semiconductors等公司的產(chǎn)品;另一種就是純粹的USB接口芯片,僅處理 USB通信,如PHILIPS的PDIUSBD11(I2C接口)、 PDIUSBP11A、PDIUSBD12(并行接口),National Semiconductor的USBN9602、USBN9603、USBN9604等。前一種由于開發(fā)時需要單獨的開發(fā)系統(tǒng),因此開發(fā)成本較高;而后一種只是一個芯片與MCU接口實現(xiàn)USB通信功能,因此成本較低,而且可靠性高。本文主要介紹PHILIPS公司的PDIUSBD12器件。

1 PDIUSBD12芯片特點和內(nèi)部結(jié)構(gòu)

  PDIUSBD12是一個性能優(yōu)化的USB器件,通常用于基于微控制器的系統(tǒng)并與微控制器通過高速通用并行接口進行通信,也支持本地DMA傳輸。該器件采用模塊化的方法實現(xiàn)一個 USB接口,允許在眾多可用的微控制器中選擇最合適的作為系統(tǒng)微控制器,允許使用現(xiàn)存的體系結(jié)構(gòu)并使固件投資減到最小。這種靈活性減少了開發(fā)時間、風(fēng)險和成本, 是開發(fā)低成本且高效的USB外圍設(shè)備解決方案的一種最快途徑。 PDIUSBD12完全符合USB1.1規(guī)范,也能適應(yīng)大多數(shù)設(shè)備類規(guī)范的設(shè)計,如成像類、大容量存儲類、通信類、打印類和人工輸入設(shè)備等,因此,PDIUSBD12 非常適合做很多外圍設(shè)備,如打印機、掃描儀、外部大容量存儲器( Zip驅(qū)動器)和數(shù)碼相機等?,F(xiàn)在用SCSI實現(xiàn)的很多設(shè)備如果用 USB來實現(xiàn)可以直接降低成本。

  PDIUSBD12掛起時的低功耗以及LazyClock輸出符合ACPI 、OnNOW和USB電源管理設(shè)備的要求。低功耗工作允許實現(xiàn)總線供電的外圍設(shè)備。

  PDIUSBD12還集成了像SoftConnect、GoodLink、可編程時鐘輸出、低頻晶振和終端電阻等特性。所有這些特性都能在系統(tǒng)實現(xiàn)時節(jié)省成本,同時在外圍設(shè)備上很容易實現(xiàn)更高級的 USB功能。

1.1 主要特性

  ◇ 符合USB 1.1協(xié)議規(guī)范;
  ◇ 集成了SIE、FIFO存儲器、收發(fā)器和電壓調(diào)整器的高性能USB接口芯片;
  ◇ 適應(yīng)大多數(shù)設(shè)備類規(guī)范的設(shè)計;
  ◇ 與任何微控制器/微處理器有高速(2MB/s)的并行接口;
  ◇ 完全自動DMA操作;
  ◇ 集成了320 B的多配置FIFO存儲器;
  ◇ 主端點有雙緩存配置,增加吞吐量,容易實現(xiàn)實時數(shù)據(jù)傳輸;
  ◇ 在塊傳輸模式下有1MB/s的數(shù)據(jù)傳輸率,在同步傳輸模式下有 1Mb/s的數(shù)據(jù)傳輸率;
  ◇ 具有總線供電能力,有非常好的EMI性能;
  ◇ 在掛起時有可控制的LazyClock輸出;
  ◇ 可通過軟件控制USB總線連接SoftConnect;
  ◇ 在USB傳輸時有閃亮的USB連接指示燈GoodLink;
  ◇ 時鐘頻率輸出可編程;
  ◇ 符合ACPI、OnNOW和USB電源管理要求;
  ◇ 具有內(nèi)部上電復(fù)位和低電壓復(fù)位電路;
  ◇ 有SO18和TSSOP28封裝;
  ◇ 能在-40~+85 ℃工業(yè)級工作;
  ◇ 片內(nèi)8kV靜電保護;
  ◇ 雙電壓工作:(3.3±0.3)V或擴大的5 V電壓范圍(3.6~5.5 V);
  ◇ 多中斷模式,方便塊傳輸和同步傳輸。

1.2 內(nèi)部結(jié)構(gòu)

  PDIUSBD12的內(nèi)部框圖如 圖 1 所示。


圖1  PDIUSBD12內(nèi)部結(jié)構(gòu)框圖

 ?、?nbsp; 模擬收發(fā)器。集成的收發(fā)器直接通過終端電阻與USB電纜接口。

  ②  電壓調(diào)整器。片上集成的1個3.3 V電壓調(diào)整器為模擬收發(fā)器供電,也提供連接到外部1.5 kΩ上拉電阻的輸出電壓。作為選擇,PDIUSBD12提供集成1.5 kΩ上拉電阻的SoftConnect技術(shù)。

 ?、?PLL。片上集成1個6~48 MHz的倍頻PLL(鎖相環(huán)),允許使用6 MHz的晶振,EMI也由于使用低頻晶振而減小。PLL的工作不需要外部器件。

 ?、?nbsp; 位時鐘恢復(fù)。位時鐘恢復(fù)電路用4倍過采樣原理從輸入的USB 數(shù)據(jù)流中恢復(fù)時鐘,能跟蹤USB規(guī)范中指出的信號抖動和頻率漂移。

  ⑤  PHILIPS串行接口引擎PSIE。PHILIPS的SIE完全實現(xiàn)USB協(xié)議層??紤]到速度,它是全硬件的, 不需要固件(微程序)介入。這個模塊的功能包括:同步模式識別、并 /串轉(zhuǎn)換、位填充/不填充、CRC校驗、PID確認、地址識別以及握手鑒定。

 ?、?SoftConnect。高速設(shè)備與USB的連接是靠把D+通過1個1.5 kΩ的上拉電阻接到高電平來建立的。在PDIUSBD12中,這個上拉電阻是集成在芯片內(nèi)的,缺省是沒有連接到VDD,這個連接是靠外部 MCU發(fā)一個命令來建立的。這使得系統(tǒng)微處理器可以在決定建立 USB連接之前完成初始化。重新初始化USB總線連接也可以不用拔掉電纜來完成。

 ?、?nbsp; GoodLink。GoodLink是靠一個引腳接發(fā)光二極管實現(xiàn)的。在 USB設(shè)備枚舉時LED指示燈將立即閃亮;當(dāng)PDIUSBD12被成功枚舉并配置時, LED指示燈將會始終亮;經(jīng)過PDIUSBD12的USB數(shù)據(jù)傳輸過程中, LED將一閃一閃,傳輸成功后LED熄滅;在掛起期間,LED熄滅。這種特性可以使我們知道 PDIUSBD12的狀態(tài),方便電路調(diào)試。

 ?、?nbsp; 存儲器管理單元MMU和集成RAM。MMU和集成RAM能緩沖USB(工作在 12Mb/s)數(shù)據(jù)傳輸和微控制器之間并行接口之間的速度差異,這允許微控制器以自己的速度讀寫USB包。

 ?、?nbsp; 并行和DMA接口。并行接口容易使用、速度快并且能直接與主微控制器接口。對于微控制器,PDIUSBD12可以看成是一個有8位數(shù)據(jù)總線和1位地址線的存儲設(shè)備。 PDIUSBD12支持多路復(fù)用和非多路復(fù)用的地址和數(shù)據(jù)總線。在主端點(端點 2)和局部共享存儲器之間也可使用DMA(直接存儲器存?。﹤鬏?。它支持單周期模式和塊傳送模式兩種DMA傳輸。

2  PDIUSBD12的引腳說明及典型連接

2.1  PDIUSBD12引腳說明

  PDIUSBD12引腳如 圖 2 所示,引腳如 表 1 所列。

 



圖2  PDIUSBD12的引腳圖

表1  PDIUSBD12引腳說明




2.2 PDIUSBD12的典型連接

  PDIUSBD1與80C51的連接電路如 圖 3 所示。在這個例子中, ALE始終接低電平,說明采用單獨地址和數(shù)據(jù)總線配置。A0 腳接80C51的任何I/O引腳,控制是命令還是數(shù)據(jù)輸入到PDIUSBD12 。80C51的P0口直接與PDIUSBD12的數(shù)據(jù)總線相連接,CLKOUT 時鐘輸出為80C51提供時鐘輸入。

 



圖3  PDIUSBD12與80C51的連接電路圖

3  軟件設(shè)計

3.1 單片機方面軟件設(shè)計

  對于單片機控制程序,目前沒有任何廠商提供自動生成固件(firmware)的工具,因此所有程序都要由自己手工編制。USB單片機控制程序通常由三部分組成:第一、初始化單片機和所有的外圍電路(包括PDIUSBD12);第二、主循環(huán)部分,其任務(wù)是可以中斷的;第三、中斷服務(wù)程序,其任務(wù)是對時間敏感的,必須馬上執(zhí)行。根據(jù)USB協(xié)議,任何傳輸都是由主機(host)開始的,這樣,單片機作它的前臺工作,等待中斷。主機首先要發(fā)令牌包給USB設(shè)備(這里是PDIUSBD12),PDIUSBD12接收到令牌包后就給單片機發(fā)中斷,單片機進入中斷服務(wù)程序,首先讀PDIUSBD12的中斷寄存器,判斷 USB令牌包的類型,然后執(zhí)行相應(yīng)的操作。因此,USB單片機程序主要就是中斷服務(wù)程序的編寫。在USB單片機程序中要完成對各種令牌包的響應(yīng),其中比較難處理的是SETUP包,主要是端口0的編程。

  單片機與PDIUSBD12的通信主要是靠單片機給PDIUSBD12發(fā)命令和數(shù)據(jù)來實現(xiàn)的。 PDIUSBD12的命令字分為三種:初始化命令字、數(shù)據(jù)流命令字和通用命令字。PDIUSBD12給出了各種命令的代碼和地址。單片機先給PDIUSBD12的命令地址發(fā)命令,根據(jù)不同命令的要求再發(fā)送或讀出不同的數(shù)據(jù)。因此,可以將每種命令做成函數(shù),用函數(shù)實現(xiàn)各個命令,以后直接調(diào)用函數(shù)即可。

  在編寫USB的單片機程序時,需要注意:

  ① 單片機的中斷應(yīng)設(shè)置為電平觸發(fā);中斷后一定要讀上次傳輸狀態(tài)寄存器(命令40-45H),以清除中斷寄存器中的中斷標志。這樣,PDIUSBD12的中斷輸出才能變回高電平,這一點非常重要。
 ?、?在接收到Setup包后,一定要調(diào)用ACK setup命令重新使能端口0。
 ?、?在向IN端點寫完數(shù)據(jù)后,一定調(diào)用Validate Buffer(命令FAH),指明緩沖區(qū)中的數(shù)據(jù)有效,可以發(fā)送到主機。
 ?、?nbsp; 當(dāng)讀完數(shù)據(jù)后,一定調(diào)用Clear Buffer(命令F2H),以保證可以接收新的包。
 ?、?nbsp; 可以通過調(diào)用Read Chip ID(命令FDH)檢查PDIUSBD12是否工作。該命令要讀兩個字節(jié)數(shù)據(jù)。

  USB初始化過程為:

  ① Set Address Enable;
 ?、?nbsp; Set Endpoint Enable(此時LED亮);
 ?、?Disconnect;
 ?、?nbsp; delay(1~2 s);
 ?、?Connect(即用43h參數(shù)調(diào)用Set Mode,此時LED滅);
  ⑥ Read Interrupt Register。

  完成初始化工作后,就可作其它的前臺工作了,并在前臺判斷是否有 Setup包(通過一個變量,當(dāng)中斷服務(wù)程序檢測到有Setup包時,設(shè)置該變量),然后執(zhí)行響應(yīng)的控制傳輸。

  在調(diào)試USB單片機程序時,還要特別注意Windows對USB設(shè)備的枚舉順序:

 ?、?GetDeviceDescriptor。主機主要對Length域感興趣,發(fā)送內(nèi)容一定要正確,特別是第 2字節(jié)type一定為0x01,即Device;否則,主機將不響應(yīng),或者再重復(fù)2次后放棄??蓹z查一下對EP0的RX、TX的設(shè)置次序。

  ② SetAddress。一般為02或03。

 ?、?連續(xù)3次GetDeviceDescriptor,讀取全部設(shè)備描述符,一般為 18 B,分為多次傳輸。如果不正確,主機將不響應(yīng)或重復(fù)2次后放棄。

 ?、?GetConfigDescriptor。注意第2字節(jié)一定為0x02,即config 。

  ⑤  GetStringDescriptor(可能沒有),根據(jù)在設(shè)備描述符中是否有 String索引而定。一般先讀取LanguageID,再讀取product string。

 ?、?nbsp; 讀取全部ConfigDescriptor,次數(shù)根據(jù)描述符的大小決定(端點個數(shù)不同,描述符大小不同),如果不正確,主機將不響應(yīng)或再重復(fù)2次后放棄。

 ?、?如果以上步驟都正確,主機將找到新設(shè)備,提示安裝驅(qū)動程序;否則找到未知設(shè)備,不可用。安裝驅(qū)動程序后,以后的每次PlugIn,枚舉次序與以上步驟略有不同,之后會有 SetConfiguration、GetConfiguration和GetInterface等調(diào)用。

3.2 主機方面軟件設(shè)計

  Windows98 提供了多種USB設(shè)備的驅(qū)動程序,但好像還沒有一種是專門針對數(shù)據(jù)采集系統(tǒng)的,所以必須針對特定的設(shè)備來編制驅(qū)動程序。盡管系統(tǒng)已經(jīng)提供了很多標準接口函數(shù),但編制驅(qū)動程序仍然是USB開發(fā)中最困難的一件事情,通常采用Windows DDK來實現(xiàn)。目前有許多第三方軟件廠商提供了各種各樣的生成工具,像 Compuware的driver works,Blue Waters的Driver Wizard等,它們能夠很容易地在幾分鐘之內(nèi)生成高質(zhì)量的USB 的驅(qū)動程序。作為WIN98和WIN2K推薦的一項新技術(shù)來說,USB的驅(qū)動程序和以往的直接跟硬件打交道的 WIN95的VXD方式的驅(qū)動程序不同。它是WDM類型的。

  在調(diào)試USB設(shè)備時,可使用UsbView程序檢測設(shè)備是否能被Windows枚舉并配置,如果成功, 還可在該程序中查看設(shè)備描述符、配置描述符和端點描述符是否正確。之后可以使用Driver Wizard生成一個通用驅(qū)動程序,在Windows提示安裝驅(qū)動程 序時,選擇Driver Wizard生成的驅(qū)動程序。其實Driver Wizard生成的僅是一個Windows控制臺的應(yīng)用程序,它會調(diào)用安裝Driver Wizard時安裝在系統(tǒng)中的通用USB驅(qū)動程序。使用該程序就可測試設(shè)備是否能夠正確傳輸數(shù)據(jù)以及傳輸速度。該程序也可作為最終產(chǎn)品USB傳輸部分的框架;如果不能滿足要求,也可用WDM重新編制驅(qū)動程序,用調(diào)試好的USB設(shè)備來開發(fā)、調(diào)試主機軟件。

4 應(yīng)用實例

  本文介紹一個高速數(shù)據(jù)采集系統(tǒng),以AD公司的ADμC812為系統(tǒng)控制器。該單片機本身就是高度集成的高精度12位數(shù)據(jù)采集系統(tǒng),在其片內(nèi)不僅組合了可重新編程非易失性閃速/電擦除程序存儲器的高性能8位(與8051兼容)MCU,還包含了高性能的自校準多通道(8個輸入通道)12位ADC和兩個12位 DAC,且內(nèi)核與8051指令集兼容。PDIUSBD12作為 ADμC812的存儲器外設(shè),接口比較簡單。需要注意的地方是引腳必須接高電平,否則將不能接收任何命令和數(shù)據(jù);EOT_N必須通過電阻接到USB 的+5 V,以正確檢測到USB連接;INT_N引腳加1個上拉電阻,+5 V接到VDD引腳;在VOUT3.3引腳加 1μF(電解電容)和0.1μF兩個退耦電容。

結(jié)束語

  PDIUSBD12是一個性能優(yōu)化的USB器件,它的SoftConnect 和GoodLink技術(shù)使開發(fā)和調(diào)試USB設(shè)備時非常方便,在性能、速度、方便性以及成本上都具有很大的優(yōu)勢。因此,使用PHILIPS公司的PDIUSBD12可以快速開發(fā)出高性能的 USB設(shè)備。

參考文獻

1 Philips Corp. PDIUSBD12 Users Manual
2  Universal Serial Bus Specification,Compaq,Intel,Micrisoft,NEC,Revision 1.1 eptember 23, 1998
3 劉丁,毛德柱,王云飛. USB在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用. 電子技術(shù)應(yīng)用
4  晁建剛,陳善廣,薛亮. 基于USB接口技術(shù)的外設(shè)應(yīng)用設(shè)計. 嵌入式系統(tǒng)論文集,2000.11

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉