<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 互連技術 > 正文

    I2C通信協議:了解I2C Primer、 PMBus和SMBus

    發布時間:2021-12-02 來源:ADI 責任編輯:wenwei

    【導讀】I2C,即Inter-Integrated Circuit,是一種常用的串行通信協議,用于在器件之間——特別是兩個或兩個以上不同電路之間建立通信。I2C Primer是最常用的I2C。本文將介紹I2C Primer的基本特性和標準,并重點說明在通信實現過程中如何正確使用該協議。從I2C的基本原理出發,我們將介紹其變體子集——系統管理總線(SMBus)和電源管理總線(PMBus)——的可用性及二者的區別。這三種協議各有專門的功能,旨在滿足不同的客戶需求。


    為何重要?


    I2C 有利于設計人員在系統的眾多節點之間建立簡單、雙向、靈活的通信。I2C僅使用兩條雙向線來發送和接收信息,從而降低了復雜性。它還允許設計人員配置多個主節點系統IC之間的通信。I2C對管理系統和電源的開發人員也很有利,讓他們能夠在盡可能短的時間內創建高質量的產品。


    "溝通(通信)對那些致力于溝通(通信)的人有用。"


    —John Powell


    通信協議在組織設備之間通信時扮演著重要角色。它基于系統要求而以不同方式進行設計。此類協議具有明確的、為實現成功通信而協商一致的規則。


    如果您曾經使用LED顯示器、傳感器甚至加速度計模塊之類的東西構建過系統,那么您很可能已經使用過I2C。I2C支持多個節點連接單個主器件和多個主器件連接多個節點的特性。如果您希望物盡其用,讓一個微控制器將數據記錄到單個存儲卡,或向單個LCD顯示文本,則此特性非常有用。


    除了最常用的I2C Primer,I2C還有兩個變體,分別專注于系統和電源應用,稱為系統管理總線(SMBus)和電源管理總線(PMBus)。


    根據定義,Inter-Integrated Circuit (I2C)——也稱為Inter IC——是一種硬件通信協議,它通過一條多主器件、多節點、串行通信總線進行同步通信。同步通信意味著兩個(或兩個以上)交換數據的器件共享一條公共時鐘線。I2C廣泛用于將低速外圍IC連接到處理器和微控制器。I2C總線由飛利浦公司設計,它讓位于同一電路板上的器件之間可以輕松通信。


    I2C Primer


    接口


    使用一條串行數據(SDA)線、一條串行時鐘(SCL)線和一個公共接地來承載所有通信,最大程度地減少連接。


    1.png

    圖 1. 集成電路彼此直接通信


    每個I2C器件有兩條線路:


    ●    SDA是供主器件和節點發送和接收數據的線路。

    ●    SCL是承載時鐘信號的線路。SCL總是由I2C主器件生成。規范對時鐘信號的低相位和高相位有最短周期要求。


    I2C總線僅使用兩條雙向線路:每個器件的SDA和SCL用于簡單的IC間通信。


    2.png

    圖 2. I2C 上拉電阻連接


    硬件最重要的注意是在SDA和SCL上加入上拉電阻。I2C器件通過開集或開漏引腳連接到總線,將線路拉低。當沒有數據傳輸時,I2C總線處于高電平空閑狀態;線路被被動拉高。要傳輸數據,須切換線路,即先拉低再釋放(又變為高電平)。數據位在時鐘下降沿傳輸。


    開漏輸出需要一個上拉電阻(圖2中的Rp)才能正確輸出高電平。上拉電阻連接在輸出引腳和高電平所需的輸出電壓(圖2中的VDD)之間。


    對于VCC和VDD (5 V)的典型值,4700 Ω是最常用的上拉電阻值。


    作為參考,屏蔽2 AWG雙絞線電纜的電容范圍為100 pF?m至240pF?m。因此,I2C鏈路的最大總線長度約為1米(100 kBaud時)或10米(10 kBaud時)。非屏蔽電纜的電容通常要小得多,但只能用在以其他方式加以屏蔽的外殼內。


    表1總結了I2C的關鍵特性。


    表1. I2C匯總

    1638151960436398.png


    理論上,尋址模式的最大節點數為27或210,但有16個地址保留用于特殊用途。


    I2C 是同步的,因此位的輸出通過主器件和節點之間共享的時鐘信號與位的采樣同步。時鐘信號始終由主器件控制。


    保留I2C節點地址


    有16個保留I2C地址。這些地址對應于以下兩種模式之一:0000 XXX或1111 XXX。表2顯示了為特殊目的而保留的I2C地址。


    表2. I2C保留地址

    1638151943575466.png


    I2C 工作原理


    I2C 數據在消息中傳輸,消息被分解為數據幀。讀寫協議包含地址幀(即節點的二進制地址)和另一個數據幀,后者包含所傳輸的數據、開始和停止條件、重復起始位、讀?寫位以及每個數據幀之間的應答?不應答位。


    時序規格表


    I2C 時序表也很重要,因為工程師利用它可以設計出與總線要求兼容的IC。每個數據速率都有自己的時序規格,主器件和節點必須遵守該規格才能正確傳輸數據。


    表3顯示了時序規格表上給出的符號和參數。


    表3. I2C時序規格表示例

    1638151928342056.png


    1638151916124664.jpg

    圖 3. I2C 消息


    I2C 傳輸子協議


    總線上的傳輸要么是讀操作,要么是寫操作。讀取和寫入協議建立在一系列子協議之上,例如起始和停止條件、重復起始位、地址字節、數據傳輸位和應答?不應答位。


    起始條件


    顧名思義,起始條件總是在傳輸開始時出現,并由主器件發起。這樣做是為了喚醒總線上的空閑節點器件。SDA線從高電平切換到低電平,然后SCL線從高電平切換到低電平。參見圖4。


    重復起始條件


    在不發出停止條件的情況下,起始條件可以在傳輸期間重復。這是一種特殊情況,稱為重復起始,用于改變數據傳輸方向、重復嘗試傳輸、同步多個IC,甚至控制串行存儲器。參見圖5。


    地址幀


    地址幀包含7位或10位序列,具體取決于可用性(參見數據手冊)。參見圖6。


    不像SPI,I2C沒有節點選擇線路,因此它需要另一種方法來讓節點知道數據正向其發送,而不是向另一個節點發送。這是通過尋址來實現的。地址幀始終是新消息中起始位之后的第一幀。


    主器件將其想要與之通信的節點地址發送到其所連接的每個節點。然后,每個節點將主器件所發送的地址與其自己的地址進行比較。如果地址匹配,它便向主器件發送一個低電壓ACK位。如果地址不匹配,則節點什么也不做,SDA線保持高電平。


    讀?寫位


    地址幀的最后一位告知節點,主器件是想要將數據寫入其中還是從中接收數據。如果主器件希望將數據發送到節點,則讀?寫位處于低電平。如果主器件請求從節點得到數據,則該位處于高電平。參見圖7。


    ACK?NACK位


    消息中的每一幀后面都跟隨一個應答?不應答位。如果成功接收到一個地址幀或數據幀,則接收器件會向發件者返回一個ACK位。


    圖例:在下面的圖中,白色框表示節點,藍色框表示主器件。參見圖8。


    1638151896705630.png

    圖 4. 起始條件 


    1638151885533682.jpg

    圖 5. 重復起始條件


    1638151868220114.jpg

    圖 6. 地址幀


    1638151857763268.jpg

    圖 7. 讀 / 寫位


    1638151844571661.jpg

    圖 8. 應答 / 不應答位


    數據幀


    主器件檢測到來自節點的ACK位之后,就準備發送第一數據幀。數據幀總是8位長,并以MSB優先方式發送。每個數據幀之后緊接著一個ACK?NACK位,以驗證該幀是否已成功接收。主器件或節點(取決于誰發送數據)必須收到ACK位,然后才能發送下一數據幀。參見圖9。


    停止條件


    發送完所有數據幀之后,主器件可以向節點發送停止條件以停止傳輸。停止條件是指SCL線上的電壓從低電平變為高電平,然后在SCL線保持高電平的情況下,SDA線上的電壓從低電平變為高電平。


    在SCL線從低電平切換到高電平后,SDA線從低電平切換到高電平。參見圖10。


    I2C傳輸步驟:寫入


    有關寫入單個數據的I2C傳輸的示例,請參見圖11。


    第1步


    主器件將SDA線從高電平切換到低電平,然后將SCL線從高電平切換到低電平,以將起始條件發送到每個相連的節點。


    第2步


    主器件將其想要與之通信的節點的7位或10位地址以及寫操作位發送給每個節點。


    例如,7位地址為0x2D,加上寫操作位(相當于0),結果將是0x5A。


    第3步


    每個節點將主器件所發送的地址與其自己的地址進行比較。如果地址匹配,節點便將SDA線拉低一位的時間,以返回一個ACK位。如果來自主器件的地址與節點自己的地址不匹配,則節點讓SDA線保持高電平不變。


    在SCL的第九個脈沖期間拉低SDA線路可以發送ACK位,保持浮空高電平則為NACK。


    第4步


    主器件發送或接收數據幀。


    第5步


    傳輸完每個數據幀之后,接收器件再向發送者返回一個ACK位,以確認成功接收該幀。


    第6步


    若要停止數據傳輸,主器件應將SCL切換為高電平,然后將SDA切換為高電平,從而發送停止條件。


    1638151812149756.png

    圖 9. 數據幀 


    1638151798127850.png

    圖 10. 停止條件


    1638151784758614.png

    圖 11.寫入單個位置的 I2C 傳輸的數據手冊示例


    1638151771636710.jpg

    圖 12. 讀取單個位置的 I2C 傳輸的數據手冊示例


    I2C數據傳輸步驟:讀取


    第1步


    主器件將SDA線從高電平切換到低電平,然后將SCL線從高電平切換到低電平,以將起始條件發送到每個相連的節點。


    第2步


    主器件將其想要與之通信的節點的7位或10位地址以及寫操作位發送給每個節點。


    例如,7位地址為0x2D,加上寫操作位(相當于0),結果將是0x5A。


    第3步


    每個節點將主器件所發送的地址與其自己的地址進行比較。如果地址匹配,節點便將SDA線拉低一位的時間,以返回一個ACK位。如果來自主器件的地址與節點自己的地址不匹配,則節點讓SDA線保持高電平不變。


    第4步


    經過初始啟動、尋址和應答之后,主器件已經知道目標節點及指向的地址,因此某些器件具有重復起始條件來清理事務。


    注意:僅用于閱讀目的!


    第5步


    主器件將其想要與之通信的節點的7位或10位地址以及讀操作位 發送給每個節點。


    例如,7位地址為0x2D,加上讀操作位(相當于1),結果將是0x5B。


    第6步


    每個節點將主器件所發送的地址與其自己的地址進行比較。如果地址匹配,節點便將SDA線拉低一位的時間,以返回一個ACK位。如果來自主器件的地址與節點自己的地址不匹配,則節點讓SDA線保持高電平不變。


    第7步


    得到ACK位之后,主器件接收來自節點的數據幀。


    第8步


    傳輸完每個數據幀之后,主器件再向發送者返回一個ACK位,以確認成功接收該幀,或者如果讀取請求已經完成,則主器件返回NACK。


    第9步


    若要停止數據傳輸,主器件應將SCL切換為高電平,然后將SDA切換為高電平,從而發送停止條件。


    單個主器件和多個節點


    I2C使用尋址,所以單個主器件可以控制多個節點。使用7位地址可提供128 (27)個唯一地址。使用10位地址很罕見,但可提供1024 (210)個唯一地址。要將多個節點連接到單個主器件,請使用4.7 kΩ上拉電阻連接這些節點,并將SDA和SCL線連接到VCC


    多個主器件和多個節點


    多個主器件可以連接到單個節點或多個節點。如果同一系統中有多個主器件,那么當兩個主器件爭著在同一時間通過SDA線發送或接收數據時,就會出現問題。


    為了解決這個問題,每個主器件在傳輸消息之前,需要檢測SDA線是低電平還是高電平。


    如果SDA線為低電平,則說明總線由另一個主器件控制,該主器件應等待。如果SDA線為高電平,則它可以安全傳輸消息。要將多個主器件連接到多個節點,請按照圖13所示,使用4.7 kΩ上拉電阻將SDA和SCL線連接到VCC


    16.png

    圖 13. 連接多個節點的多個主器件


    仲裁


    若干I2C多主器件可以連接到同一I2C總線并同時運行。通過不斷監視SDA和SCL有無起始和停止條件,它們可以確定總線是否空閑。如果總線正忙,主器件將延遲掛起的I2C傳輸,直至停止條件指示總線再次空閑。


    但是,可能發生兩個主器件同時開始傳輸的情況。在傳輸過程中,主器件不斷監視SDA和SCL。如果其中一個檢測到SDA為低電平,而它應該為高電平,則該主器件將認為另一主器件處于活動狀態,因而立即停止傳輸。此過程稱為仲裁。兩個主器件都會生成起始位并繼續各自的傳輸。


    如果主器件恰好選擇相同的邏輯電平,則什么也不會發生。


    一旦主器件嘗試施加不同的邏輯電平,則將信號拉低的主器件將被宣布為獲勝者;失敗者將檢測到邏輯不匹配,因而放棄傳輸。


    請花點時間理解一下這種安排的簡單性和有效性:


    ●    獲勝者繼續傳輸而不中斷——沒有數據損壞,沒有驅動器爭用,不需要重新啟動事務。

    ●    理論上,失敗者可以在仲裁過程中監視節點地址,如果恰好是被尋址的節點,它可以做出適當的響應。

    ●    如果相互競爭的主器件均請求同一節點的數據,則仲裁過程不會不必要地中斷任一事務——不會檢測到不匹配,節點會將其數據輸出到總線,多個主器件可以接收到數據。


    時鐘延展


    也稱為時鐘同步。


    注意:I2C規范沒有為時鐘延展規定任何超時條件——也就是說,任何器件都可以根據需要保持SCL。


    在I2C通信協議中,時鐘速度和信號始終由主器件產生。I2C主器件產生的信號提供主器件和節點連接之間的同步。


    在某些情況下,節點或子節點不是以全狀態工作,在接收主器件生成的時鐘之前,需要減慢速度。這是通過一種稱為"時鐘延展"的機制來實現的。


    在時鐘延展期間,為了降低總線速度,允許節點壓低時鐘。而在主器件方面,在其變為高電平狀態后,必須回讀時鐘信號。然后,它必須等待,直至線路達到高電平狀態。


    帶寬


    雖然時鐘延展是一種常見做法,但它對帶寬有影響。使用時鐘延展時,共享總線的總帶寬可能會顯著降低。即使使用這種技術,總線性能仍然必須可靠且快速。有必要考慮使用時鐘延展的估計影響,尤其是在多個器件共享I2C總線的情況下。


    1638151728722839.jpg

    圖 14. 微控制器數據手冊


    通過時鐘延展,I2C節點器件可以強制主器件進入等待狀態。當節點器件需要更多時間來管理數據時,例如存儲接收到的數據或準備發送另一字節的數據時,它可能會執行時鐘延展。這通常發生在節點器件接收并確認收到一個字節的數據之后。


    哪些I2C節點器件需要時鐘延展?


    是否需要時鐘延展取決于節點器件的功能。這里有兩個例子:


    ●    處理器件(如微處理器或微控制器)可能需要額外的時間來處理中斷,接收和管理數據,以及執行適當的功能。

    ●    較簡單的器件(如EEPROM)不在內部處理數據,因此不需要時鐘延展來執行任何功能。


    I2C 數據手冊示例概述


    不同公司和制造商采用不同方法來創建數據手冊。圖13顯示了一個簡單的數據手冊示例和基本I2C細節,包括寄存器和電子規格。


    1638151711752941.jpg

    圖15. 微控制器存儲器映射


    表4顯示了最常用的I2C寄存器。名稱和描述可能因數據手冊而異,但功能和用法相同。


    表4. I2C寄存器描述

    1638151694979510.png


    I2C的創建可能因使用情況而異。表5顯示了基本I2C驅動程序API要求的示例。


    表5. I2C驅動開發

    1638151680436810.png


    SMBus


    眾所周知,SMBus可用于需要對參數進行關鍵監控的應用。它最常見的應用是計算機主板和嵌入式系統。對于溫度、電源電壓、風扇監控和?或控制集成芯片,它有額外的監控規范。


    SMBus是一種2線總線,類似于飛利浦公司于1980年代開發的I2C總線。兩個主要信號是時鐘(SMBCLK)和數據(SMBDAT)。I2C Primer和SMBus相互兼容,但存在明顯差異,例如:


    ●    SMBus邏輯電平閾值是固定的,與器件的電源電壓不成比例。因此,具有不同電源電壓的器件可以在同一Primer上運行。例如,一個SMBus可能具有多個由1.8 V、3.3 V和5 V電源供電的器件。

    ●    它們都以最高100 kHz的相同速度運行,但I2C Primer有400 kHz和2 MHz兩個版本。

    ●    SMBus規定了最低時鐘速度,并限制了時鐘在一個事務中可以延展的量。違反超時限制會導致所有SMBus器件復位其I?O邏輯以允許總線重啟。這種設計增強了總線的魯棒性。

    ●    二者的超時也不同。I2C Primer沒有超時,而SMBus有超時——對于10 kHz最低時鐘速度,可以考慮35 ms的超時。

    ●    分組差錯校驗(PEC)最初是為SMBus定義的。在每個事務的末尾添加一個分組錯誤碼字節。

    ●    其余的一些差異涉及傳輸類型、警報線、暫停線、關斷或上電。


    SMBus器件每次收到其自己的地址時,無論在做什么,它都必須應答(ACK),這是一個明確要求,目的是確保主器件可以準確地判斷總線上哪些器件處于活動狀態。


    所有SMBus事務都通過指定的SMBus協議之一執行。


    SMBus還有一個可選信號SMBALERT#,節點器件可以使用該信號快速通知主器件或系統主機,它有主器件需要的信息,例如報告故障情況。


    1638151662377965.jpg

    圖16. SMBus拓撲結構


    SMBus上拉電路


    22.png

    圖17. SMBus上拉電路


    SMBus地址


    SMBus地址有7個二進制位,通常表示為前4位、后3位以及最后一個字母b,例如0001 110b。這些地址占據總線上一個8位字段的高7位。然而,該字段的最低位另有含義,不屬于SMBus地址的范圍。


    1638151636452174.jpg

    圖18. 節點地址


    7位目標地址從主器件發送到總線上的一個或多個器件(例如通過廣播地址)。


    請注意,起始條件和停止條件是轉換,而不是位,在符號上方未顯示位計數。在事務圖中顯示時,重復起始也是一個轉換,而不是一位,在符號上方也不顯示位計數。


    1638151614327939.jpg

    圖19. SMBus消息


    SMBus時序測量


    表6. SMBus參數

    1638151597230401.png


    PMBus:重新定義電源管理


    除了SMBus之外,還有一個變體PMBus,它是一種開放標準電源管理協議。這種靈活且高度通用的標準允許基于模擬和數字技術的器件之間進行通信,并提供真正的互操作性,由此將能降低電源系統設計的復雜性并縮短產品上市時間。


    PMBus用于帶有電源控制和管理器件的電源的數字管理。它具有支持電源管理要求的命令和結構。這意味著I2C Primer和PMBus在電氣要求和命令語義上是兼容和可互操作的。


    電源管理的基本參數之一是過壓電平監控,PMBus提供了設置和讀取該值的命令。PMBus可以附加在I2C Primer和SMBus的已有特性上,充當現有標準(尤其是SMBus)之上的協議層。


    I2C 規范僅描述了2線總線的物理層、時序和流控制。I2C規范沒有(像SMBus協議那樣)描述消息的格式,也沒有描述消息的內容。


    PMBus規范是一個完整的電源管理協議。它說明了如何將比特和字節從一個器件傳送到另一個器件(即傳輸)。它還描述了一種命令語言,賦予這些比特和字節以意義。


    尋址


    對于冗余系統,一旦電源安裝到系統中,最多有三個信號來設置電源的地址位置:地址2、地址1和地址0。對于非冗余系統,電源器件地址位置應為B0h。


    硬件


    針對基于I2C VDD的電源和驅動(對于VDD = 3.3 V),電源中的器件應 與SMBus 2.0高功率規范兼容。該總線應以3.3 V運行。


    電源


    電源內部的電路應從備用輸出獲得電源。對于冗余電源,器件應從"邏輯或"器件的系統側供電。只要系統中的電源或并聯冗余電源接通交流電源,PMBus器件就應處于開啟狀態。


    上拉電阻


    電源內部的SCL或SDA線上只能使用弱上拉電阻。主要上拉電阻由系統提供,可以連接到3.3 V或5 V。對于系統設計,主要上拉電阻應位于電源外部,并從備用電源軌獲取電源。


    數據速度


    電源中的PMBus器件應以100 kbps SMBus全速運行,并盡可能避免使用時鐘延展,因為它會減慢總線速度。


    總結


    表8概述并總結了I2C Primer、SMBus(高功率和低功率)、PMBus的信號、時序和電氣規格。


    I2C Primer、SMBus和PMBus有何關系?


    SMBus最初開發用于協助電池管理系統,使用I2C硬件,但增加了第二級軟件,最終允許器件熱插拔,而無需重新啟動系統。PMBus擴展了SMBus,定義了一組專門用于管理功率轉換器的器件命令,暴露了器件的測量電壓、電流、溫度等屬性。一般而言,I2C Primer、SMBus和PMBus器件可以共享總線而不會發生什么大問題。


    I2C、SMB、PMB的優勢


    ●    僅使用兩條線

    ●    具有ACK?NACK位

    ●    廣為人知的協議

    ●    支持多個主器件和多個節點

    ●    硬件不如UART復雜

    ●    廣泛使用的方法


    缺點


    ●    數據傳輸速率比SPI慢

    ●    數據幀的大小限制為8位

    ●    實現所需的硬件比SPI復雜


    1638151573959872.png

    圖20. SMBus時序測量


    表7. PMBus尋址

    1638151556926709.png


    用例


    ●    傳感器讀取

    ●    傳感器寫入

    ●    EEPROM、溫度傳感器、觸摸屏、接近傳感器

    ●    傳輸和控制用戶指引的操作

    ●    與多個微控制器通信

    ●    消費類電子設備

    ●    系統管理

    ●    電源管理

    ●    調試


    表8. I2C Primer、SMBus和PMBus規格總結

    1638151536428694.png

    1638151522160477.png


    參考電路


    “I2C通信的優勢和局限” 。Total Phase,2016年8月。


    Afzal, Sal。 “I2C Primer:什么是I2C?(第一部分)” 。ADI公司。


    Afzal, Sal。 “I2C時序:定義和規范指南(第2部分)” 。ADI公司。


    Campbell, Scott。 “I2C通信協議基礎” 。Circuit Basics。


    “I2C快速指南“。ADI公司。


    “I2C是什么?” I2C 總線。



    免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。


    推薦閱讀:


    為應用選擇合適的射頻放大器指南

    ADALM2000實驗:放大器輸出級

    通過之前的模塊構建運算放大器

    ADALM2000實驗:從三角波生成正弦波

    降額曲線和最大電流(下)

    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    熟妇人妻无码中文字幕| 国产亚洲精品a在线无码| 无码爆乳护士让我爽| 国产成人亚洲综合无码| 精品国产a∨无码一区二区三区| 亚洲AV无码一区二区三区性色| 久久亚洲国产成人精品无码区| www日韩中文字幕在线看| 无码专区天天躁天天躁在线| 手机在线观看?v无码片| 亚洲精品99久久久久中文字幕 | 无码av中文一二三区| 中文字幕天天躁日日躁狠狠躁免费| 无码一区二区三区| 久久久久成人精品无码中文字幕| 无码AV天堂一区二区三区| 色噜噜狠狠成人中文综合| 日韩人妻无码精品久久久不卡 | 国产在线无码精品电影网| 久久无码AV中文出轨人妻| 亚洲中文字幕无码永久在线| 亚洲高清无码专区视频| 亚洲av无码成人黄网站在线观看| 久久亚洲春色中文字幕久久久| 日韩精品少妇无码受不了| 高清无码午夜福利在线观看| 无码AV动漫精品一区二区免费| 亚洲av中文无码乱人伦在线r▽| 日本阿v网站在线观看中文| 88久久精品无码一区二区毛片| 中文字幕1级在线| 中文字幕一区二区人妻| 国产AV无码专区亚洲A∨毛片| 无码国产精品一区二区免费式影视| 天堂√中文最新版在线| AV无码免费永久在线观看| 亚洲欧洲精品无码AV| 无码人妻久久一区二区三区蜜桃| 中文在线资源天堂WWW| 久久中文精品无码中文字幕| 少妇无码AV无码专区在线观看|