久久99国产亚洲高清-久久99国产亚洲高清观看首页-久久99国产亚洲精品观看-久久99国产一区二区-久久99国产一区二区三区-久久99国产综合精品

樹人論文網(wǎng)一個(gè)專業(yè)的學(xué)術(shù)咨詢網(wǎng)站?。?!
樹人論文網(wǎng)

基于AUTOSAR的電動(dòng)汽車中央控制單元CAN通信軟件開發(fā)

來源: 樹人論文網(wǎng)發(fā)表時(shí)間:2021-08-17
簡要:摘要: 隨著人們對(duì)于汽車安全性和舒適性要求的日益提高,汽車電子技術(shù)不斷發(fā)展,日益復(fù)雜的汽車功能需求使得汽車 ECU 軟件代碼量急劇增加。軟件與硬件之間的高度耦合使得開發(fā)工作

  摘要: 隨著人們對(duì)于汽車安全性和舒適性要求的日益提高,汽車電子技術(shù)不斷發(fā)展,日益復(fù)雜的汽車功能需求使得汽車 ECU 軟件代碼量急劇增加。軟件與硬件之間的高度耦合使得開發(fā)工作大量重復(fù)且復(fù)用性低,極大增加了企業(yè)研發(fā)和維護(hù)成本。以 AUTOSAR 架構(gòu)為基礎(chǔ),進(jìn)行以電動(dòng)汽車中央控制單元為硬件平臺(tái)的 CAN 通信模塊軟件開發(fā),提升軟件的復(fù)用性和開發(fā)效率,降低軟件更新和硬件升級(jí)的研發(fā)成本。

基于AUTOSAR的電動(dòng)汽車中央控制單元CAN通信軟件開發(fā)

  董碧成; 石春; 吳剛, 儀表技術(shù) 發(fā)表時(shí)間:2021-08-05

  關(guān)鍵詞: 汽車電子; AUTOSAR 架構(gòu); 中央控制單元; CAN 通信軟件

  0 引言

  隨著汽車電子技術(shù)的發(fā)展,其應(yīng)用取代了大部分傳統(tǒng)的機(jī)械部件,逐步深入到汽車的各個(gè)角落,成為驅(qū)動(dòng)汽車執(zhí)行動(dòng)作的核心。日益復(fù)雜的功能需求,使得汽車 ECU ( Electronic Control Unit) 數(shù) 量 逐 漸 增 加。 ECU 的軟件代碼量也隨著功能的增加日趨龐大,軟件維護(hù)和管理工作繁重。與此同時(shí),每當(dāng)硬件升級(jí)或更換硬件平臺(tái)時(shí),軟件需要進(jìn)行大量地修改甚至重新設(shè)計(jì),使得軟件開發(fā)周期延長,開發(fā)成本大大提高[1]。

  在此背景下,全球最大規(guī)模的幾家汽車企業(yè)、零部件供應(yīng)商以及電子、半導(dǎo)體、軟件系統(tǒng)公司,于 2003 年聯(lián)合成立了一個(gè)汽車開放系統(tǒng)架構(gòu)聯(lián)盟———AUTOSAR( AUTomotive Open Source ARchitecture) 聯(lián)盟,并推出了一個(gè)開放化、標(biāo)準(zhǔn)化的汽車嵌入式系統(tǒng)軟件架構(gòu)———AUTOSAR 規(guī)范。其主要目標(biāo)涵蓋了軟件升級(jí)更新、開發(fā)可重用軟件、加快軟件開發(fā)維護(hù)以及優(yōu)化可擴(kuò)展系統(tǒng)成本等多個(gè)方面,較好地解決了 ECU 軟件開發(fā)過程中的突出問題[2]。

  1 AUTOSAR 介紹

  AUTOSAR 采用模塊化的分層軟件設(shè)計(jì),從軟件架構(gòu)視圖角度可分為應(yīng)用層、運(yùn)行時(shí)環(huán)境和基礎(chǔ)軟件層,如圖 1 所示。應(yīng)用層由軟件組件單元構(gòu)成,包含與硬件無關(guān)的應(yīng)用軟件組件、傳感器軟件組件和執(zhí)行器軟件組件等。運(yùn)行時(shí)環(huán)境為系統(tǒng)提供基礎(chǔ)的通信服務(wù),支持應(yīng)用層軟件組件之間的通信,以及應(yīng)用層軟件組件到下層基礎(chǔ)軟件層之間的通信,運(yùn)行時(shí)環(huán)境將應(yīng)用層軟件與下層基礎(chǔ)軟件層分割開來?;A(chǔ)軟件層主要提供基礎(chǔ)軟件服務(wù)、標(biāo)準(zhǔn)化系統(tǒng)功能和應(yīng)用接口,由服務(wù)層、ECU 抽象層、微控制器抽象層和復(fù)雜驅(qū)動(dòng)組成[3]。

  AUTOSAR 架構(gòu)通過將硬件層進(jìn)行抽象,得到微控制器抽象層,隱藏了硬件接口細(xì)節(jié),達(dá)到將硬件與上層軟件分離的效果,實(shí)現(xiàn)水平層解耦。當(dāng) ECU 硬件平臺(tái)進(jìn)行更新?lián)Q代時(shí),只需要將微控制器抽象層接口函數(shù)進(jìn)行修改,上層代碼可以實(shí)現(xiàn)復(fù)用,大大減少了開發(fā)時(shí)間和成本,提升了軟件的復(fù)用性。

  2 CAN 通信模塊設(shè)計(jì)分析

  2. 1 CAN 通信模塊軟件架構(gòu)

  CAN 通信模塊包括了 AUTOSAR COM、PDU Router、CAN Interface 和 CAN Driver 幾個(gè)模塊。根據(jù) AUTOSAR 分層設(shè)計(jì)思想和 AUTOSAR 規(guī)范對(duì) CAN 通信模塊設(shè)計(jì)的要求,設(shè)計(jì)出如圖 2 所示的軟件框架。OSEK OS 是個(gè)靜態(tài)的實(shí)時(shí)操作系統(tǒng),主要為應(yīng)用層軟件提供服務(wù),在 CAN 通信中為需要周期執(zhí)行的函數(shù)提供服務(wù)。 OSEK OS 位于系統(tǒng)服務(wù)層,操作系統(tǒng)需要直接操作下層硬件,貫穿了 ECU 抽象層和微控制器抽象層。

  AUTOSAR COM 模塊主要起到信號(hào)接口和數(shù)據(jù)網(wǎng)關(guān)的作用,負(fù)責(zé)發(fā)送上層傳遞的信號(hào)和信號(hào)組,解析從底層接收的數(shù)據(jù)并通知上層。上層只需要傳遞數(shù)據(jù)和接收數(shù)據(jù),無需關(guān)心傳輸和接收的具體過程[4]。

  PDU Router 簡稱 PDUR,PDUR 模塊主要是起一個(gè)過渡兼容的作用,對(duì)上提供統(tǒng)一的接口,屏蔽下層網(wǎng)絡(luò)細(xì)節(jié),對(duì)下層兼容多種車載總線,如 CAN、LIN 和 FlexRay 等。PDUR 模塊提供 I-PDU 的網(wǎng)關(guān)功能,使得不同的總線之間可以進(jìn)行通信[5]。CAN Interface 簡稱 CAN IF,CAN IF 模塊主要是處理上層模塊和底層驅(qū)動(dòng)之間的 PDU 數(shù)據(jù)流傳遞,為上層模塊提供統(tǒng)一接口,并通過特定的接口函數(shù)來管理 CAN 硬件[6]。

  CAN Driver 模塊為 CAN 通信軟件的最底層,是直接訪問 CAN 通信相關(guān)硬件的模塊,通過對(duì)硬件抽象,向上層 CAN IF 模塊提供與硬件無關(guān)的函數(shù)接口[7]。

  2. 2 CAN 通信模塊開發(fā)步驟

  CAN 通信模塊各層軟件開發(fā)步驟如圖 3 所示。通過 AUTOSAR 規(guī)范中對(duì)分層架構(gòu)設(shè)計(jì)和對(duì) CAN 模塊開發(fā)的要求,確定基礎(chǔ)數(shù)據(jù)類型和定義數(shù)據(jù)結(jié)構(gòu),規(guī)范各文件主要作用并確定相互包含結(jié)構(gòu),設(shè)計(jì)相應(yīng)的通知機(jī)制和錯(cuò)誤處理機(jī)制。

  3 軟件設(shè)計(jì)

  3. 1 AUTOSAR COM 模塊設(shè)計(jì)

  COM 模塊從上層接收到的數(shù)據(jù)稱為信號(hào)或信號(hào)組,信號(hào)組由復(fù)雜的或者功能類似需要同步發(fā)送的信號(hào)組合而成。COM 模塊的信號(hào)類型如表 1 所示。

  COM 模塊為上層需要傳遞的信號(hào)和信號(hào)組確定唯一的編號(hào)信息,并為類型相同的信號(hào)集中定義運(yùn)行時(shí)緩沖區(qū),用來存儲(chǔ)信號(hào)值的最新數(shù)據(jù)。信號(hào)和信號(hào)組在 COM 模塊都會(huì)被封裝在交互層數(shù)據(jù)協(xié)議單元( IPDU) 之中,進(jìn)而完成數(shù)據(jù)向下層模塊傳遞。COM 模塊為信號(hào)定義了 5 種傳輸屬性,一個(gè) I-PDU 可以包含多個(gè)信號(hào),每個(gè)信號(hào)可以選擇一種傳輸屬性,這個(gè)傳輸屬性定義了在信號(hào)寫訪問時(shí)觸發(fā)包含此信號(hào) I-PDU 的傳輸情況。信號(hào)的傳輸屬性如表 2 所示。

  I-PDU 有 4 種傳輸模式,各傳輸模式的含義如表 3 所示。

  在 COM 模塊的數(shù)據(jù)處理過程中,涉及到很多數(shù)據(jù)類型,這些數(shù)據(jù)類型包裝在結(jié)構(gòu)體中進(jìn)行使用。COM 模塊使用的數(shù)據(jù)結(jié)構(gòu)體包括: COM 模塊配置參數(shù)結(jié)構(gòu)體、發(fā)送信號(hào)結(jié)構(gòu)體、接收信號(hào)結(jié)構(gòu)體、發(fā)送 I-PDU 結(jié)構(gòu)體、接收 I-PDU 結(jié)構(gòu)體、發(fā)送信號(hào)組結(jié)構(gòu)體和接收信號(hào)組結(jié)構(gòu)體等。

  發(fā)送信號(hào)結(jié)構(gòu)體類型 Com_TxSignalType 的設(shè)計(jì)及部分成員的含義:

  問觸發(fā) I-PDU 傳輸?shù)膸追N模式* / const PduIdType ComIpduRefIndex; /* 所屬的 I-PDU 的索引* / P2CONST( Com _ FilterType,AUTOMATIC,COM _ APPL _ CONST) ComFilter; /* 信號(hào)的過濾配置參數(shù),在發(fā)送端用于確定傳輸模式條件 TMC* / …/* 省略部分參數(shù)* / } Com_TxSignalType;

  結(jié)構(gòu)體 Com_TxSignalType 中所包含的成員較多,進(jìn)行了部分省略。發(fā)送信號(hào)主要包含用于在信號(hào)發(fā)送時(shí)的各項(xiàng)參數(shù)以及跟信號(hào)相關(guān)的回調(diào)函數(shù)。定義的 ComErrorNotification 是一個(gè)函數(shù)指針類型,主要用于在信號(hào)發(fā)送時(shí),如果包含信號(hào)的 I-PDU 沒有激活,就會(huì)調(diào)用這個(gè)回調(diào)函數(shù)通知錯(cuò)誤。ComNotification 則用于信號(hào)成功發(fā)送到總線上時(shí)通知上層使用。ComFilter 是一個(gè)指向過濾參數(shù)的結(jié)構(gòu)體指針,在接收信號(hào)時(shí)用于接收過濾,在發(fā)送信號(hào)時(shí)用于計(jì)算判斷傳輸模式條件 TMC。TMC 的值會(huì)影響 I-PDU 發(fā)送模式選擇 TMS 的值。

  發(fā)送的信號(hào)最后會(huì)封裝在 I-PDU 之中進(jìn)行傳輸,發(fā)送 I-PDU 結(jié)構(gòu)體類型 Com_TxIPduType 的設(shè)計(jì)及部分成員的含義:

  typedef struct { const uint16 ComIPduHandleId; /* I-PDU 的標(biāo)識(shí) ID* / const Com_IPduSignalProcessingType ComIPduSignalProcessing; /* 信號(hào)的確認(rèn)和指示的處理模式,直接模式和延遲模式* / const Com_IPduType ComIPduType; /* I-PDU 類型* / const Com_SignalIdType ComIPduSignalsRefNumber; /* I-PDU 所有包含信號(hào)的數(shù)量* / P2CONST( Com_SignalIdType,AUTOMATIC,COM_APPL_CONST) ComIPduSignalsRef; /* 指向此 I-PDU 所包含的信號(hào)的指針* / const uint16 ComPduIdRef; /* 底層 PDU 標(biāo)識(shí) ID* / P2CONST( Com_TxModeType,AUTOMATIC,COM_APPL_CONST) ComTxModeTrue; /* I-PDU 發(fā)送方式 TRUE 的結(jié)構(gòu)體指針* / P2CONST( Com_TxModeType,AUTOMATIC,COM_APPL_CONST) ComTxModeFalse; /* I-PDU 發(fā)送方式 FALSE 的結(jié)構(gòu)體指針* / …/* 省略部分參數(shù)* / } Com_TxIPduType;

  結(jié)構(gòu)體 Com_TxIPduType 定義了發(fā)送 I-PDU 傳輸中的參 數(shù),其 中 ComTxModeTrue 和 ComTxModeFalse 是 COM 模塊為 I-PDU 定義的兩種發(fā)送方式,這兩種發(fā)送方式的參數(shù)需要靜態(tài)配置,根據(jù) I-PDU 所有包含信號(hào)的 TMC 值來確定 I-PDU 發(fā)送模式選擇 TMS。兩種發(fā)送方式都可以定義 I-PDU 在傳輸時(shí)所需要的時(shí)間參數(shù)。

  COM 模塊發(fā)送信號(hào)的流程如圖 4 所示。

  通過調(diào)用 Com_SendSignal( ) 函數(shù)不會(huì)立即觸發(fā) IPDU 的傳輸,只是更新存儲(chǔ)在 I-PDU 緩沖區(qū)中的信號(hào)數(shù)據(jù),I-PDU 的發(fā)送通過 OSEK OS 實(shí)時(shí)操作系統(tǒng)的任務(wù)調(diào)用 Com_MainFunctionTx( ) 函數(shù)進(jìn)行處理。Com_ MainFunctionTx( ) 函數(shù)會(huì)對(duì)所有需要發(fā)送的 I-PDU 進(jìn)行循環(huán)判斷,結(jié)合 I-PDU 的傳輸模式和發(fā)送中需要滿足的 時(shí) 間 參 數(shù) 綜 合 判 斷 是 否 需 要 調(diào) 用 PduR _ ComTransmit( ) 函數(shù)傳輸該 I-PDU 到下層。

  在接收數(shù)據(jù)時(shí),下層會(huì)調(diào)用 Com_RxIndication( ) 回調(diào)函數(shù)通知 COM 模塊接收到 I-PDU 數(shù)據(jù),并將接收到的 PDU 數(shù)據(jù)信息復(fù)制到 COM 模塊定義的 I-PDU 緩沖區(qū)中,更新相關(guān)的 I-PDU 屬性參數(shù)。

  上層通過 Com_ReceiveSignal( ) 函數(shù)獲取存儲(chǔ)在 COM 模塊的信號(hào)緩沖區(qū)中的數(shù)據(jù),圖 5 為軟件執(zhí)行流程。

  3. 2 PDU Router 模塊設(shè)計(jì)

  PDU Router( 簡稱 PDUR) 模塊位于通信軟件中間,擁有多個(gè)上層和多個(gè)下層,在 CAN 通信軟件中, PDUR 模塊上層為 COM 模塊,下層為 CAN Interface 模塊。PDUR 模塊主要包括兩個(gè)部分,PDU 路由表和 PDU 路由引擎。PDU 路由表靜態(tài)定義了每個(gè) I-PDU 的路由路徑,根據(jù)路由表來確定 I-PDU 的上下層模塊信息; PDU 路由引擎是根據(jù) PDU 路由表進(jìn)行操作的實(shí)際代碼,實(shí)現(xiàn) I-PDU 信息的路由傳遞。

  COM 模 塊 通 過 調(diào) 用 PduR _ ComTransmit ( ) 將 I-PDU傳遞到 PDUR 模塊,PDUR 模塊根據(jù)靜態(tài)定義的路由表,查找 I-PDU 的目的模塊,然后調(diào)用相關(guān)下層 CanIf_Transmit( ) 函數(shù)實(shí)現(xiàn)傳輸。在完成傳輸之后,下層調(diào)用 PduR_CanIfTxConfirmation( ) 函數(shù)通知 PDUR模塊,PDUR 模塊根據(jù)路由表查找上層模塊信息,進(jìn)而完成通知上層,此過程如圖 6 所示。下層在接收到 IPDU 數(shù)據(jù)時(shí),操作過程與發(fā)送完成的確認(rèn)過程類似。

  3. 3 CAN Interface 模塊設(shè)計(jì)

  CAN Interface( 簡稱 CAN IF) 模塊位于 CAN Driver 層之上,提供特定的接口函數(shù)來管理 CAN 硬件。CAN IF 模塊對(duì) CAN 控制器郵箱結(jié)構(gòu)進(jìn)行抽象,得到硬件對(duì)象句柄( HOH) 、硬件發(fā)送句柄( HTH) 和硬件接收句柄( HRH) 。郵 箱 結(jié) 構(gòu) 是 CAN 硬 件 緩 沖 區(qū),包 含 了 CAN 幀的 ID、長度和數(shù)據(jù)等信息。HOH 定義為一個(gè)常數(shù),表示可用的 CAN 控制器郵箱編號(hào),定義為發(fā)送使用的是 HTH,定義為接收使用是 HRH。

  CAN IF 模 塊 CanIf _ Transmit ( ) 函 數(shù) 接 收 來 自 PDUR 模塊的 I-PDU,根據(jù)傳入的 I-PDU ID 獲取靜態(tài)配置的底層 CAN 幀信息,組包合成 CAN 協(xié)議數(shù)據(jù)單元,同硬件發(fā)送句柄 HTH 一起傳遞給下層發(fā)送函數(shù)進(jìn)行發(fā)送,發(fā)送流程如圖 7 所示。

  當(dāng)下層 Can_Write( ) 返回 CAN_BUSY 時(shí),表明指定的硬件緩沖區(qū)沒有空間,此時(shí) CAN IF 模塊將發(fā)送失敗的數(shù)據(jù)存儲(chǔ)在 CAN IF 模塊定義的緩沖區(qū),等待 CAN 硬件緩沖區(qū)空閑時(shí)進(jìn)行發(fā)送。當(dāng) CAN Driver 模塊成功發(fā)送報(bào)文時(shí),會(huì)在 CAN 發(fā)送中斷中調(diào)用 CanIf_ TxConfirmation( ) 通知 CAN IF 模塊,此函數(shù)再調(diào)用上層回調(diào)函數(shù)通知上層發(fā)送完成,并查詢 CAN IF 緩沖區(qū)是否有待發(fā)送數(shù)據(jù),如果存在待發(fā)送數(shù)據(jù)就會(huì)請(qǐng)求底層傳輸。

  在底層 CAN 接收中斷中,會(huì)調(diào)用 CAN IF 層 CanIf _RxIndication( ) 通知 CAN IF 層接收到了數(shù)據(jù),此函數(shù)會(huì)判斷接收的數(shù)據(jù)是否需要軟件過濾,并檢查數(shù)據(jù)長度,然后判斷是否調(diào)用上層回調(diào)函數(shù)通知上層接收到新數(shù)據(jù)。

  3. 4 CAN Driver 模塊設(shè)計(jì)

  CAN Driver 模塊是最底層的硬件驅(qū)動(dòng)模塊,通過操作硬件寄存器實(shí)現(xiàn)對(duì)硬件的控制。Can_Write( ) 是 CAN Driver 模塊的發(fā)送函數(shù),具體流程如圖 8 所示。

  當(dāng)硬件郵箱空閑時(shí)正常完成發(fā)送,當(dāng)在被占用情況下會(huì)返回 CAN_BUSY,CAN IF 模塊會(huì)根據(jù)返回值存儲(chǔ)沒能完成發(fā)送的數(shù)據(jù)信息。

  在 CAN 中斷處理函數(shù)中,會(huì)根據(jù)中斷標(biāo)志位判斷出現(xiàn)的是發(fā)送中斷還是接收中斷,然后調(diào)用不同的上層回調(diào)函數(shù),完成發(fā)送確認(rèn)和接收指示操作,具體流程如圖 9 所示。

  4 軟件測試

  軟件測試是軟件開發(fā)的重要一環(huán),在軟件設(shè)計(jì)時(shí),需要進(jìn)行功能測試和系統(tǒng)測試。在各模塊的函數(shù)功能設(shè)計(jì)中,為函數(shù)設(shè)置不同的輸入輸出測試用例,來完成函數(shù)功能測試,測試結(jié)果可在編譯軟件中調(diào)試查看。

  系統(tǒng)測試采用中央控制單元作為硬件平臺(tái)。中央控制單元作為電動(dòng)汽車整車控制系統(tǒng)的核心,兼具整車控制與遠(yuǎn)程監(jiān)控功能。中央控制單元主控芯片選用了 恩 智 浦 公 司 的 ARM 內(nèi) 核 32 位 微 控 制 器 MK60DN512VLQ10。測試 工 具 包 括 12 V 電 源、USB CAN 分析儀、上位機(jī)軟件和 JLINK 調(diào)試工具等,軟件環(huán)境為 μVision V5. 24. 2. 0。

  在測試過程中通過在應(yīng)用層定義信號(hào),在各層配置文件中進(jìn)行參數(shù)配置,并定義信號(hào)所屬的 I-PDU 以及發(fā)送和接收信號(hào)的 CAN 報(bào)文 ID、幀類型、幀格式和長度等。將 PC 機(jī)與 USB CAN 分析儀和 JLINK 調(diào)試工具連接, CAN 總線波特率配置為250 kbit/s,使用編譯器軟件將編譯好的程序下載至中央控制單元。通過 USB CAN 分析儀進(jìn)行報(bào)文數(shù)據(jù)的解析,由 ECANTools 上位機(jī)軟件進(jìn)行顯示。圖10 為 ECANTools 軟件 CAN 通信測試數(shù)據(jù)接收和發(fā)送界面,幀 ID 為 0x18FFFFFF 和0x18FFFFFA 是中央控制單元發(fā)出的報(bào)文,幀 ID 為 0x18FFFF0A 是 ECANTools 軟件模擬其他 ECU 發(fā)送給中央控制單元的報(bào)文。經(jīng)過測試驗(yàn)證,中央控制單元可以正常收發(fā) CAN 報(bào)文,且數(shù)據(jù)信息和報(bào)文格式都符合預(yù)期。

  5 結(jié)束語

  本文根據(jù) AUTOSAR 規(guī)范要求,完成了 AUTOSAR CAN 通信模塊軟件的開發(fā),并在中央控制單元硬件平臺(tái)進(jìn)行測試應(yīng)用。軟件開發(fā)按照分層和模塊化的設(shè)計(jì)思想,層與層之間隱藏設(shè)計(jì)細(xì)節(jié),實(shí)現(xiàn)了解耦,能夠較好提升軟件復(fù)用性,為后續(xù)軟件開發(fā)減少時(shí)間和成本,提高開發(fā)效率。

人妻丰满熟妇A无码区| 亚洲国产精品成人AV在线| 成人AV鲁丝片一区二区免费| 欧美精品一区二区精品久久| 2021久久天天躁狠狠躁夜夜 | 亚洲日产韩国一二三四区| 好硬好涨老师受不了了| 亚洲AV综合色一区二区三区| 国产中国男男GayGay| 亚洲AⅤ爽爽香蕉久久影片| 国产人澡人澡澡澡人碰视| 午夜亚洲AV日韩AV无码大全 | 人妻内射.PORN| 波多野结衣亚洲AV手机在线| 日本人妻和黑人又粗又长又黄| 超碰人人透人人爽人人看| 日韩一区国产二区欧美三区| 抖抈短视频APP下载| 天天躁日日躁狠狠躁婷婷| 国产乱码一区二区三区爽爽爽| 亚洲AV乱码一区二区三区在线观看 | 51FUN吃瓜网-热心群众| 欧美free叉叉叉叉极品少妇| JAPANESE性公交车| 日本少妇XXX做受| 公交车后车座疯狂的做的细节| 玩肥熟老妇BBWXXX视频| 国产精品天天看天天狠| 亚洲产国偷v产偷v自拍浪潮AV| 精品噜噜噜噜久久久久久久久| 亚洲熟妇色XXXXX成熟| 麻花传媒MV一二三区别在哪里看| 97久久婷婷五月综合色D啪蜜芽| 亲孑伦视频一区二区三区| 成人区人妻精品一区二区三区| 少妇高潮喷水久久久影院| 国产麻豆放荡AV剧情演绎| 亚洲国产成人综合在线不卡| 久久婷婷五月综合国产| AⅤ精品一区二区三区| 日本熟妇人妻XXXX| 国产精品WWW夜色视频| 亚洲第一无码精品一区| 久久熟妇一区二区三区紧湿| 51无人区码一码二码三码| 日本动漫爆乳H动漫无遮挡| 国产JJIZZ女人多水喷水| 亚洲AV日韩AV高潮喷无码| 久久久无码精品午夜| 97人人超碰国产精品最新o| 日韩 无码 偷拍 中文字幕| 国产精品久久久天天影视香蕉| 亚洲成A人片在线播放| 麻豆TV入口在线看| 宝宝锕~进去就不痛了在线观看| 思思久久99热只有频精品66| 国精产品一品二品国精破解| 一面亲上边一面膜| 欧美最猛黑人xxxx黑人猛交| 国产成年无码久久久久毛片| 亚洲爆乳成AV人在线视菜奈实| 久久综合给合久久国产免费| OM老熟女HDXⅩXXX69| 调教后把奶头拴在跑步机上虐| 精品人妻一区二区三区Av| 99久久国语露脸精品国产| 特黄 做受又硬又粗又大视频| 狠狠色噜噜狠狠狠狠色综合久| 中国东北熟女老太婆内谢| 日产乱码一二三区别免费麻豆| 国产欧美日韩精品丝袜高跟鞋| 亚洲综合激情另类专区| 国产综合无码一区二区色蜜蜜 | 亚洲国产精品一区二区第一页 | AV无码人妻一区二区三区牛牛| 色欲色香天天天综合网WWW| 好吊妞人成视频在线观看强行| 中国CHAIN同志GAY片国产| 日文中字乱码一二三区别在| 狠狠色婷婷久久一区二区| 337P大胆啪啪私拍人体| 思思久久99热只有频精品66| 精品亚洲国产成人AV在线| JJZZJJZZ高潮喷水妇女| 午夜精品久久久久久久无码| 久久综合激激的五月天| 大胆GOGO高清在线观看| 亚洲浮力影院久久久久久| 欧美精品黑人成人另类视频| 国产乱来乱子视频| 中文字幕人成无码人妻综合社区 | 98在线视频噜噜噜国产| 我们还没在书房试过| 久久久久亚洲AV成人片一区| 成年黄网站18禁免费观看一区| 亚洲顶级裸体AV片| 破外女第一次出血毛片免费| 国产又爽又黄又舒服又刺激视频| 主人 跪好 知道错了吗| 无码AV最新高清无码专区| 乱码AV麻豆丝袜熟女系列| 国产AV一区二区三区传媒| 亚洲综合大片6999| 色综合色欲色综合色综合色综合R| 久激情内射婷内射蜜桃人妖| 差差差很疼30分钟视频| 亚洲国产综合无码一区二区BT下| 人妻内射一区二区在线视频| 激情伊人五月天久久综合| 啊灬用力灬啊灬啊灬啊灬| 亚洲国产精品无码7777一线| 人人妻人人爽人人澡欧美二区| 婚后失控BY南城非梦| 边做边爱MP3在线播放免费观看| 亚洲乱码一卡二卡四卡乱码新区| 日本免费人成视频在线观看| 久久97超碰人人澡人人爱| 大香伊人久久精品一区二区| 一本色道久久综合亚洲精品 | 少妇高潮抽搐无码久久AV| 久久综合狠狠综合久久| 国产精品成人99久久久久| √天堂网WWW最新版| 性色AⅤ一二三天美传媒| 欧洲一卡2卡3卡4卡乱码视频 | 二男一女一起日B| 一二三四在线看日本高清| 婷婷综合缴情亚洲狠狠| 免费一看一级毛片少妇丰满2| 国产熟妇与子伦HD| 宝宝腿趴开一点就不会疼的原因| 亚洲日本乱码在线观看| 天天天欲色欲色WWW免费| 男人的又粗又长又硬有办法吗| 国内最真实的XXXX人伦| 成人无码区免费AⅤ片| 一区二区欧美视频| 午夜亚洲AⅤ无码高潮片| 欧美性性性性性色大片免费的| 精品人妻一区二区三区免费| 国产★蜜臀AV无码8MAV| 91人妻人人澡人人爽| 亚洲精品国产AV天美传媒 | 国产精品自在线拍国产| ASS中国人体欣赏PICS| 亚洲娇小与黑人巨大video| 少妇高潮呻吟在线观看| 女人双腿搬开让男人桶| 精品欧洲AV无码一区二区三区| 高清国语自产拍免费视频| 2022精品久久久久久中文字幕| 亚洲国产一区二区三区波多野结衣| 熟女高潮精品一区二区三区| 欧美和日本操逼视频| 久久精品国产精品国产精品污| 国产精品99久久久久久人| А√天堂中文最新版在线下载种子| 亚洲午夜性春猛交ⅩXXX| 无码午夜人妻一区二区不卡视频| 人喾交性专区免费看| 麻豆丰满少妇CHINESE| 好儿子用力插你的亲妈| 国产CHINESE男男GAY| JAPANESE国产永久| 伊人伊成久久人综合 成人| 亚洲AV无码国产剧情| 熟女俱乐部五十路六十路AV| 琪琪午夜伦伦电影理论片| 老师掀起裙子让我挺进| 精品国产AⅤ无码一区二区蜜桃| 国产韩国精品一区二区三区久久| 把女人弄爽特黄A大片片| 中文激情在线一区二区 | 久久露脸国产精品| 国色天香看片影院| 国产成人亚洲影院在线 | 女人大荫蒂毛茸茸视频| 久久久久久精品人妻免费网站| 国产午夜精品一区二区三区漫画 | 中文字幕爆乳巨爆乳系列无码| 亚洲国产一卡2卡3卡4卡5公司 | 精品无码一区二区三区电影| 国产精品无码一区二区三区| 大香煮伊在2020一二三久| GAY国产GV又粗又长又大| 孕妇泬出白浆18P| 亚洲无人区一码二码三码区别| 亚洲AV无码精品色午夜蛋壳| 挺进大幂幂的滋润花苞御女天下| 日韩人妻高清精品专区| 热爆料-热门吃瓜-黑料不打烊| 男人强撕开奶罩揉捏我奶头视频| 久久久久久人妻一区二区三区| 精品精品国产高清A级毛片| 国产又黄又爽胸又大免费视频| 国产精品JIZZ视频| 给丰满少妇按摩到高潮| 成 年 人 黄 色 大 片大 全| CF穿越火线女去衣看奶| 51CG9热心的朝阳群众|