基於I2C總線技術的USB接口設計

2021-01-07 電子產品世界

      1、前言

       USB(Universal Serial Bus)通用串行總線是在1994年底由康柏、IBM、Microsoft等多家 公司聯合制訂的,但是直到1999年,USB才真正被廣泛應用。同時,他也得到了各PC廠商、晶片製造商和PC外設廠商的廣泛支持,USB外設在國內外以驚人的速度發展,迄今為止,各種USB的外設已經有數千種。為PC外圍設備設計USB接口已成為大勢所趨。  

       隨著單片機技術的發展,單片機的功能日益強大,外圍電路日益複雜,其有限的管腳也就顯 得捉襟見肘。目前採用普通單片機外加USB接口晶片開發USB外設時,USB接口器件大都是採 用並行接口與單片機相連接,這樣再加上一些控制信號線,總共需要佔用單片機十餘個管腳 ,對於一般對傳輸速度要求不是很高的設備顯得有些浪費,特別是對於為產品轉型而 進行的USB接口開發,勢必會影響原來的電路連接和功能設置。因此,採用一
 
種既能保持較 高的傳輸速度,又能減少單片機引腳使用的USB接口開發方法很有必要。本文介紹一種 採用Philips公司帶I2C接口的USB接口晶片PDIUSBD11進行USB接口開發的方法,他使用高速通用I2C接口與單片機相連接。    

       2 背景介紹   

       2.1 USB背景介紹  

       USB是一些PC廠商為解決日益增加的PC外設與有限的主板插槽和埠間的矛盾制定的一種 串行通信標準。他傳輸速度快,能提供3種傳輸方式:低速模式(速率為1.5 Mb/s);中速模 式(速率為12 Mb/s);高速模式(速率為360 Mb/s以上)。數據傳輸可靠,USB設備在發送 數據時支持 數據偵錯和糾錯功能,增強了數據傳輸的可靠性。設備安裝和配置容易,安裝USB設備不必 再打開機箱,增減設備不用關閉計算機,所有USB設備支持熱插拔,系統對他進行自動配置 。易於擴展,外設接口之間採用菊花鏈形式連接通過使用Hub擴展可連接多達127個外設。能 夠採用總線供電,USB總線提供最大達5 V電壓,500 mA電流,可為小型設備供電。使用靈活,USB共有4種傳輸模式:控制傳輸(control)、同步傳輸( synchronization )、中斷傳輸 (interrupt)、批量傳輸(bulk),以適應不同設備需要。   

       2.2 I2C總線技術介紹  

       I2C總線技術是Philips公司研製出來的串行擴展技術。他是一種簡單、雙向二線制同步串 行總線,他只需要2根線(串行時鐘線SCL和串行數據線SDA)即可在連接於總線上的器件之 間傳送信息。對於並不要求很高的數據傳輸速度的外設,I2C總線的使用無疑簡化了系統 ,增加了硬體構成的靈活性,是一種高效、方便的串行擴展總線。  

       使用I2C傳輸數據有2種基本方法。第一種是採用I2C總線標準的單片機或IC器件,其內 部含有I2C接口電路,使用這種方法可直接從接口讀寫數據。第二種是採用軟體程序模擬I2C總線的時序來完成接口功能,使用這種方法可任意從單片機中選取2個I/O口,作為串 行時鐘線SCL和串行數據線SDA,使用靈活。    

       3 PDIUSBD11晶片介紹   

       3.1 PDIUSBD11 晶片特點  

       PDIUSBD11 是一款性價比很高的USB 器件,他通常用作微控制器系統中實現與微控制器進行 通 信的高速通用I2C接口。這種實現USB 接口的標準組件使得設計者可以在各種不同類型微 控制器中選擇出最合適的微控制器。這種靈活性減小了開發的時間風險以及費用,通過使用 已 有的結構減少固件上的投資。從而用最快捷的方法實 現最經濟的USB外設的解決方案。PD IUSBD11適用於電腦監視器、操縱杆、鍵盤和其他一些使用I2C或SMBUS結構的器件 。PDIUSBD11符合USB 11協議規範、I2C串行接口和SMBUS協議規範。他完全符合人機接 口設備和監視控制類協議規範。PDIUSBD11所具有的低掛起功耗連同LazyClock 輸出可以滿 足使用ACPI,OnNOW 和USB 電源管理的要求。低的操作功耗可以執行總線供電功能。此外他 還集成了許多特性包括SoftConnetTM,GoodLinkTM,可編程時鐘輸出、低頻晶振、多重功能 終端和終止寄存器集合。所有這些特性都為系統顯著節約了成本,同時使USB 功能在外設上 的應用變得容易。
 
       3.2  PDIUSBD11 內部結構

       PDIUSBD11晶片的內部結構如圖1所示。

 

       模擬收發器收發器接口可通過終端電阻 直接與USB電纜相連,  他們能以全速(12 Mb/s)傳送和接收數據。

{{分頁}}  

       PLL片內集成了12~48 M時鐘乘法器PLL。這樣就可使用低成本的12 M晶振 ,EMI也隨之降低。PLL的工作不需要外部元件。  

       Philips串行接口引擎PSIEPhilips SIE實現了全部的USB協議層。完全由 硬體實現而不需要固件的參與。該模塊的功能包括:同步模式的識別、並行/串行轉換、位 填充/解除填充、CRC校驗/產生、PID校驗/產生、地址識別和握手評估/產生。  

       存儲器管理單元MMU和集成RAM當USB接口以12 Mb/s的速率傳輸並且I2C接口以1 Mb/s與微控制器相連時,MMU和集成RAM被用來處理這種極大的速率差異。這就允許 微控制器以他自己的速率通過I2C接口對USB信息包進行讀寫。  

       I2C控制接口這個模塊執行必要的I2C接口協議。一個I2C控制器執行簡單的編碼。一個中斷信號,當PDIUSBD11需引起注意時,用來向微控制器發出 警告。作為一個控制I2C的器件,PDIUSBD11的時鐘輸入SCL由微控制器控制。I2C接口的 傳輸速率能夠達到1 Mb/s。  

       SoftConnectTM與USB的連接是通過1.5 kΩ上拉電阻將D+(用於 高速USB器件)置為高實現的。1.5 kΩ上拉電阻集成在PDIUSBD11片內,默認狀態下不與VC C相連。連接的建立通過外部/系統微控制器發送命令來實現。這就允許系統微控制器在決定 與USB建立連接之前完成初始化時序。USB總線連接可以重新初始化而不需要拔出電纜。  

       3.3  PDIUSBD11 晶片的典型應用 

       PDIUSBD11晶片的應用示意圖如圖2所示。其外圍電路典型連接如圖3所示。  

 

       VBUS是USB的總線電源感知引腳,通過他USB接口控制晶片判斷USB設備是否接到了P C機上。外部復位引腳Reset上電復位,但PDIUSBD11晶片內部提供復位電路,因此可以將他 接到3.3V上,屏蔽其外部復位功能。Suspend引腳,他的作用是當USB設備進入掛起模式時,輸出 高電平提醒主機,主機可通過拉低該引腳的電壓來喚醒USB設備,使用中也可以直接將該引 腳接地,來屏蔽USB設備的掛起功能。INT_N引腳與單片機的連接是必不可少的,當 主機需 要與USB設備通信時,該引腳變成低電平,通知USB設備進入中斷服務程序,中斷請求結束後 他又重新變回高電平。因此他通過上拉電阻接正電源,當空閒時處於高電平狀態。

{{分頁}}    

       4  固件程序設計  

       單片機與PDIUSBD11的通信主要是 靠單片機給PDIUSBD11發命令和數據來實現的。 PDI USBD11的命令字分為3種:初始化命令字、數據流命令字 和通用命令字。PDIUSBD11給出了各種命 令的代碼和地址。單片機先給PDIUSBD11的命令地址發命令,根據不同命令的要求再 發送或讀出不同的數據。  

       當單片機使用專門的I2C接口與PDIUSBD11晶片連接時,可以直接進行輸入、輸出通信。但 如果只使用2個普通的I/O口連接時,需要用軟體模擬I2C接口與PDIUSBD11晶片進行通信 ,可將模擬I2C傳輸部分編成子程序,使用時直接調用即可。具體編程方法可參照I2C總 線規範。  

       USB單片機控制程序通常由3部分組成:  

       (1) 初始化單片機和所有的外圍電路(包括PDIUSBD11晶片);  

       (2) 主循環部分,其任務是可以中斷的;  

  (3) 中斷服務程序,其任務是對時間敏感的,必須馬上執行。   

       4.1 初始化程序設計  

       在編寫初始化程序時需要注意,由於PDIUSBD11晶片採用Philips的SoftConnectTM技術設計。與USB的連接通過1.5 kΩ上拉電阻將D+(用於高速USB器件)置為高實現。1.5kΩ上拉電阻集成在PDIUSBD11片內,默認狀態下不與VCC相連。連接的建立通過 單片機發送命令來實現。這就允許系統微控制器在決定與建立USB連接之前完成初始化時序 。USB總線連接可以重新初始化而不需要拔出電纜。所以在固件程序中需要編寫晶片初始化 程序,以確保設備能順利進行USB連接。初始化程序範例如下:
    
 

       按不同的應用方式(如遠程喚醒、掛起功能等),可在Set Mode的第一個字為PDIUS BD11晶片設置不同的模式。 

       4.2 中斷服務程序 

       根據USB協議,任何傳輸都是由主機(host)開始的,單片機作他的前臺工作,等待中斷。主機首先要發令牌包給USB設備(這裡是PDIUSBD11),PDIUSBD11接收到令牌包後就給單片 機發中斷,單片機檢測到INT_N引腳變成低電平後進入中斷服務程序,首先讀PDIUSBD11的中斷寄存器,判斷USB令牌包的類型,然後執行相應的操作。因此,USB單片機程序主要就 是中斷 服務程序的編寫。中斷服務程序流程圖如圖4所示。PDIUSBD11晶片可支持4個端點(EP0~3),其中端點0用來對應預設控制通道並初始化和操縱配置設備,同時提供設備配置信息的 讀取和支持控制傳輸。端點1~3則用於支持塊傳輸和中斷傳輸等。

 

       具體的固件程序內容可參考文獻[4],PDIUSBD12晶片是Philips公司的一款帶並口的USB接口晶片,目前應用較廣。  

       用PDIUSBD11晶片開發的USB接口,數據的傳輸速率是由單片機的I2C接口速率決定的。經測試其傳輸速率可達500 kb/s,遠高於普通串口的傳輸速率,保持了USB接口的高速性,能滿足一般的非大容量存儲設備的需要。    

       5 結語   

       使用單片機外加USB接口晶片開發USB接口,適用於為現有產品開發USB接口,能儘量避免對 原有電路及程序的修改,降低了開發成本和風險。在對速度要求不太高的情況下,可採用Ph ilips公司的USB接口晶片PDIUSBD11,他特有的I2C接口設計可以減少與單片機的引腳連接 ,簡化外圍電路設計。雖然只有2根數據線負責數據的雙向傳輸,但仍保證了較高的傳輸速 率,能滿足一般的對速度要求不太高的設備的需要。
 
參考文獻
[1]PDIUS BD11 Data Sheet[S].
[2]USB Specification V11[S].
[3]I2C總線規範[S].
[4]周立功.PDIUSBD12 USB固件編程與驅動開發[M].北京:北京航空航天大 學出版社,2003.  

 

相關焦點

  • 基於I2C總線性能問答集錦
    [答:Bruce] I2C總線理論上傳輸速度可以為100KHz(標準)、400KHz(快速)和3.4MHz(高速)。 目前還沒有成熟的3.4MHz速率的產品。 I2C總線是板內總線,總線內部有地址管理和仲裁機制,在總線容量、slave地址等技術指標正確的情況下,數據的完整性和安全性是有保證的[問:david_liao] SDA SCL 的pull up 電阻是否有特定的要求?
  • Linux驅動之I2C總線
    i2c_regster_board_info(int busnum, struct i2c_board_info const*info, unsigned n)函數功能:註冊分配初始化好的i2c_board_info對象到內核中,內核根據這個信息初始化註冊i2c_client;參數:busnum:i2c外設所在的I2C總線編號,cw210開發板的at』24c02通過原理圖可知連接到
  • RT-Thread I2C總線設備學習筆記
    這是RTT官方設計的一個軟體框架,學習一個新東西,還是一樣,我個人主張帶著需求去學習,而不是漫無目的的去學,有了需求驅動,並且是一個努力付出就可以擁有的成果,那麼這還不容易嘛!如何看懂時序圖(以SPI/I2C為例)淺談總線通信機制(通信基礎+串口+I2C)我們接下來將基於小熊派開發平臺進行實踐。
  • 基於DSP和USB技術的數據採集與處理系統
    1 引言  採用dsp(數位訊號處理器)作為控制器,而採用usb(通用串行總線)和上位機相連接將是數據採集處理系統的一種可能的發展趨勢。  1.2 通用串行總線usb  usb(通用串行總線)協議是一些pc大廠商為了解決日益增加的pc外設與有限的主板插槽之間的矛盾而制定的一種串行通信標準。usb接口是一個快速的、雙向的、同步的、低成本的、動態的串行連接接口,支持主機和並發存取外設之間的數據交換。所連的外設通過主機調度和基於令牌的協議共享usb帶寬。
  • 基於USB2I2C接口的CMOS圖像傳感器在線調試系統
    本文引用地址:http://www.eepw.com.cn/article/201610/307184.htmUSB(Universal Serial Bus)總線接口是一種PC機與外圍設備間高速通信接口,具有速率快,熱插拔等特性,可以廣泛應用於與計算機通信;I2C(Inter-Integrated Circuit Bus)總線以兩根連線實現全雙工同步數據傳送
  • 基於FPGA的航空總線協議接口設計
    高可靠性1553B已成為我國航空航天領域廣泛採用的軍用總線標準。由於1553B總線協議控制器基本依賴於進口的專用器件,價格昂貴,還受到限制,並且這些器件需要外圍的硬體電路配合工作,如果完成整個總線接口板的設計,還需要單獨的MCU,集成度不高,這樣就在某種程度上限制了設計能力。隨著嵌入式技術的發展,可編程片上系統設計SoPC技術已廣泛應用於諸多領域。
  • RT-Thread設備框架使用指南——I2C 總線設備
    訪問 I2C 總線設備一般情況下 MCU 的 I2C 器件都是作為主機和從機通訊,在 RT-Thread 中將 I2C 主機虛擬為 I2C總線設備,I2C 從機通過 I2C 設備接口和 I2C 總線通訊,相關接口如下所示:函數原型功能簡介rt_device_find()根據 I2C 總線設備名稱查找設備獲取設備句柄
  • TMS320VC5410A I/O口的多種擴展與I2C接口模擬
    在這裡要注意:在配置hpi接口為通用i/o口時,在硬體設計上需要將5410a的第92引腳(hpiena)懸空或者接地,來禁止hpi接口。 2 模擬i2c接口與tlv320aic23的通信 2.1 i2c接口和tlv320aic23簡介 i2c(inter-integrated circuit)總線是一種由philips公司開發的兩線式串行總線,用於連接微控制器及其外圍設備。
  • 基於PCI總線的GP-IB接口電路設計
    摘要: 主要介紹作為從設備如何根據PCI總線協議設計PCI總線接口電路,從而實現基於PCI總線的GP-IB接口電路設計,重點闡述PCI總線接口狀態機的設計。
  • I2C總線要點總結
    TWI(雙線接口)或 TWSI(雙線串行接口),本質上是在 Atmel 和其他供應商的各種系統晶片處理器上實現的同一總線。I2C 拓撲結構從概念上,I2C 總線有兩根線 SDA/SCL 就可以連一堆晶片,實現很多的應用。連接拓撲極簡!
  • usb接口類型有哪些_usb接口類型大全
    通用串行總線(UniversalSerialBus,縮寫:USB)是連接計算機系統與外部設備的一種串口總線標準,也是一種輸入輸出接口的技術規範,被廣泛地應用於個人電腦和行動裝置等信息通訊產品,並擴展至攝影器材、數位電視(機頂盒)、遊戲機等其它相關領域。
  • USB3.0接口技術與電路設計
    摘 要:USB作為一種新型的接口技術,以其簡單易用、速度快等特點而備受青睞。本文簡要介紹USB 接口的特點、硬體結構、數據流傳送以及外設控制器的實現方式。並詳細說明利用51單片機結合PHILIPS公司的PDIUSBD12帶並行總線的USB接口器件設計帶DMA工作模式的可供視頻信號傳輸的多功能USB接口電路的過程。
  • 基於CH371的USB接口虛擬示波器設計
    作者Email: violit@netease.com 摘要:本文介紹一款USB接口的虛擬示波器的設計方案,重點介紹了USB總線接口晶片CH371的原理及應用,降低了USB系統開發的門檻,並達到令人滿意的效果
  • USB接口擴展與差分信號仿真
    (3)USB總線接口層:主要用於實現USB主機和USB設備之間的數據傳輸。在USB協議中,USB總線接口使用NRZI編碼(反向非歸零編碼)來傳輸數據,USB主控制器和USB集線器將數據接收或發送,並自動進行解碼或編碼,這部分一般由USB系統硬體自動完成。
  • 乾貨總結:I2C總線詳細要點
    TWI(雙線接口)或 TWSI(雙線串行接口),本質上是在 Atmel 和其他供應商的各種系統晶片處理器上實現的同一總線。I2C 拓撲結構 從概念上,I2C 總線有兩根線 SDA/SCL 就可以連一堆晶片,實現很多的應用。連接拓撲極簡!
  • usb接口4個引腳各是什麼功能?
    USB,是英文Universal Serial Bus(通用串行總線)的縮寫,是一個外部總線標準,用於規範電腦與外部設備的連接和通訊。是應用在PC領域的接口技術。USB接口支持設備的即插即用和熱插拔功能。USB是在1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯合提出的。
  • 基於LonWorks總線的智能家居系統設計
    摘要:提出了一種基於LonWorks現場總線技術的智能家居系統的設計方案。該方案將LonWorks總線技術應用於智能家居系統,系統中的控制和採集節點由單片機和神經元晶片組成,單片機作為主控制器,神經元晶片作為通信協議處理器和上位機進行通信。
  • 基於虛擬儀器1553B總線模塊故障診斷系統設計
    摘要:分析1553B總線模塊設計原理基礎上,通過對1553B總線模塊故障樹的定性和定量分析,構建基於故障樹的故障診斷系統。描述基於虛擬儀器技術的故障診斷系統實現方案並設計相應的單元測試集,提高故障定位的精確度。
  • 基於BlueCore2External藍牙晶片的USB接口設計
    摘 要:根據藍牙規範v1.1對藍牙的HCI傳輸層進行了簡單的介紹,並提出一套基於BlueCore2External晶片來實現USB接口的方案。
  • CAN、I2S、I2C、SPI、SSP總線對比
    )總線技術是Motorola公司推出的一種同步串行接口,Motorola公司生產的絕大多數MCU(微控制器)都配有SPI硬體接口,如68系列MCU。較之目前許多RS-485基於R線構建的分布式控制系統而言, 基於CAN總線的分布式控制系統在以下方面具有明顯的優越性:  首先,CAN控制器工作於多主方式,網絡中的各節點都可根據總線訪問優先權(取決於報文標識符)採用無損結構的逐位仲裁的方式競爭向總線發送數據,且CAN協議廢除了站地址編碼,而代之以對通信數據進行編碼,這可使不同的節點同時接收到相同的數據,這些特點使得