<tr id="tp1vn"><td id="tp1vn"><dl id="tp1vn"></dl></td></tr>
  1. <p id="tp1vn"></p>
  2. <sub id="tp1vn"><p id="tp1vn"></p></sub>
    <u id="tp1vn"><rp id="tp1vn"></rp></u>
    <meter id="tp1vn"></meter>
      <wbr id="tp1vn"><sup id="tp1vn"></sup></wbr>
      日韩第一页浮力,欧美a在线,中文字幕无码乱码人妻系列蜜桃 ,国产成人精品三级麻豆,国产男女爽爽爽免费视频,中文字幕国产精品av,两个人日本www免费版,国产v精品成人免费视频71pao
      網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

      車輛診斷目的與UDS協(xié)議詳解及C++實(shí)現(xiàn)示例

      0
      分享至


      1. 車輛診斷的目的

      車輛診斷的核心目標(biāo)是快速、準(zhǔn)確地判斷車輛或某個電子控制單元(ECU)的故障類型及故障原因,從而指導(dǎo)維修人員高效完成修復(fù)。現(xiàn)代汽車普遍裝備了車載自診斷系統(tǒng)(OBD),該系統(tǒng)實(shí)時監(jiān)控傳感器、執(zhí)行器、ECU自身以及通信網(wǎng)絡(luò)的電氣與邏輯故障。當(dāng)檢測到異常時,OBD會生成對應(yīng)的故障碼(DTC)并點(diǎn)亮儀表盤上的故障指示燈(MIL)。維修人員通過診斷儀(Tester)連接到OBD接口(如標(biāo)準(zhǔn)OBD-II 16針接口),與車輛的ECU進(jìn)行交互,讀取故障碼、實(shí)時數(shù)據(jù)流(信號值)、執(zhí)行動作測試(如主動控制噴油器)或執(zhí)行特殊功能(如寫入VIN碼、重置學(xué)習(xí)值)。這種標(biāo)準(zhǔn)化的診斷方法避免了盲目拆檢,極大提升了維修效率和準(zhǔn)確性。

      2. 常見診斷協(xié)議與UDS概述

      在汽車診斷領(lǐng)域,常見的協(xié)議包括:

      • ISO 14230 :基于K線(Keyword Protocol 2000)

      • ISO 15031 :與OBD-II排放相關(guān)診斷(如SAE J1979)

      • ISO 15765 :基于CAN總線的診斷傳輸層(DoCAN)

      • ISO 14229 :統(tǒng)一診斷服務(wù)( UDS ),是目前最廣泛應(yīng)用的 應(yīng)用層協(xié)議 ,它獨(dú)立于底層物理鏈路(CAN、LIN、以太網(wǎng)等),定義了診斷請求/響應(yīng)的格式、服務(wù)類型及ECU的行為規(guī)范。

      UDS協(xié)議中,診斷儀扮演客戶端(Client),ECU扮演服務(wù)器(Server)。所有診斷交互均以請求-響應(yīng)模式進(jìn)行。

      3. UDS診斷方法:請求與響應(yīng)格式 3.1 服務(wù)標(biāo)識符(SID)

      每個UDS服務(wù)都有一個唯一的服務(wù)標(biāo)識符(Service Identifier, SID),占1字節(jié),范圍0x00~0x3F。常見服務(wù)示例:

      • 0x10 :診斷會話控制

      • 0x22 :通過標(biāo)識符讀取數(shù)據(jù)(ReadDataByIdentifier)

      • 0x2E :通過標(biāo)識符寫入數(shù)據(jù)

      • 0x19 :讀取故障碼信息

      • 0x14 :清除診斷信息

      3.2 報(bào)文格式
      • 請求報(bào)文[SID] + [子功能或參數(shù)...]

      • 正響應(yīng)報(bào)文[SID + 0x40] + [請求中后續(xù)參數(shù)(可選)] + [響應(yīng)數(shù)據(jù)]

      • 負(fù)響應(yīng)報(bào)文0x7F + [請求的SID] + [負(fù)響應(yīng)碼(NRC)]

      示例(讀取油門開度)

      • 請求: 22 01 0A
        22 = SID(ReadDataByIdentifier), 01 0A = 數(shù)據(jù)標(biāo)識符(DID),代表“油門踏板開度”(制造商自定義)。

      • 正響應(yīng): 62 01 0A 00 23
        62 = 0x22+0x4001 0A = 回顯DID, 00 23 = 油門開度數(shù)據(jù)(35%)。

      • 負(fù)響應(yīng): 7F 22 11
        7F = 負(fù)響應(yīng)標(biāo)志, 22 = 被拒絕的服務(wù), 11 = NRC 0x11 (服務(wù)不支持)。

      4. UDS傳輸方法:基于CAN總線的ISO 15765-2

      絕大多數(shù)汽車ECU使用CAN總線通信,每個CAN幀的數(shù)據(jù)場最多8字節(jié)。而UDS報(bào)文可能超過8字節(jié)(例如讀取VIN碼需17字節(jié)數(shù)據(jù))。ISO 15765-2(也稱為傳輸層協(xié)議)定義了如何將長UDS報(bào)文分段為多個CAN幀,并規(guī)定了四種幀類型

      幀類型

      縮寫

      高4位值

      用途

      單幀

      SF

      0x0

      用于短報(bào)文(≤7字節(jié)UDS數(shù)據(jù))

      首幀

      FF

      0x1

      長報(bào)文的第一個幀,指示總數(shù)據(jù)長度

      流控幀

      FC

      0x3

      接收方控制發(fā)送方的發(fā)送速率

      連續(xù)幀

      CF

      0x2

      后續(xù)數(shù)據(jù)段,帶序列號


      4.1 幀結(jié)構(gòu)詳情

      • 單幀(SF) :Byte0高4位=0,低4位=UDS報(bào)文長度(1-7),后續(xù)字節(jié)為UDS數(shù)據(jù),不足7字節(jié)補(bǔ)0。

      • 首幀(FF) :Byte0高4位=1,低4位與Byte1組成12位長度值(最大4095),之后6字節(jié)放UDS數(shù)據(jù)開頭。

      • 流控幀(FC) :Byte0高4位=3,低4位=流控狀態(tài)(FS:0=繼續(xù)發(fā)送,1=暫停,2=溢出);Byte1=塊大小(BS);Byte2=最小間隔時間(STmin);其余填充0。

      • 連續(xù)幀(CF) :Byte0高4位=2,低4位=序列號(SN,從1開始遞增,溢出后歸0),后續(xù)7字節(jié)為UDS數(shù)據(jù)剩余部分。

      4.2 多幀傳輸示例(讀取17字節(jié)VIN碼)

      請求:22 F1 90(讀取VIN碼) 正響應(yīng)數(shù)據(jù)共20字節(jié):62 F1 90 57 30 4C 30...。由于超過7字節(jié),ECU使用多幀發(fā)送:

      1. 首幀10 14 62 F1 90 57 30 4C0x1014 =長度20,后6字節(jié)為數(shù)據(jù)前6字節(jié))

      2. 診斷儀回復(fù) 流控幀30 00 00 00 00 00 00 00 (FS=0繼續(xù),BS=0表示發(fā)送完所有CF,STmin=0)

      3. 連續(xù)幀121 30 30 30 34 33 4D 42 (SN=1)

      4. 連續(xù)幀222 35 34 31 33 32 36 00 (SN=2,最后補(bǔ)0對齊)

      5. UDS時間管理

      為保證診斷通信的實(shí)時性和魯棒性,UDS定義了多組時間參數(shù):

      5.1 應(yīng)用層時間參數(shù)

      • P2_Client :診斷儀發(fā)送請求后等待響應(yīng)的時間上限(典型值50ms)

      • P2_Server :ECU收到請求到發(fā)出響應(yīng)的處理時間上限(典型值50ms)

      • P2_Client *:當(dāng)ECU需要更多處理時間(發(fā)送NRC 0x78時),診斷儀需等待的擴(kuò)展時間(典型值5000ms)

      5.2 網(wǎng)絡(luò)層時間參數(shù)(ISO 15765-2)

      參數(shù)

      含義

      典型值

      N_As

      發(fā)送節(jié)點(diǎn)發(fā)送一幀所需時間(CAN幀實(shí)際發(fā)送時長)

      取決于波特率

      N_Ar

      接收節(jié)點(diǎn)發(fā)送一幀(如流控幀)所需時間

      ≤20ms

      N_Bs

      發(fā)送節(jié)點(diǎn)等待流控幀的超時時間

      1000~2000ms

      N_Br

      接收節(jié)點(diǎn)等待發(fā)送流控幀前的間隔

      ≤100ms

      N_Cs

      發(fā)送節(jié)點(diǎn)發(fā)送連續(xù)幀之間的間隔(由STmin決定)

      STmin值

      N_Cr

      接收節(jié)點(diǎn)等待連續(xù)幀的超時時間

      1000ms

      這些參數(shù)可根據(jù)網(wǎng)絡(luò)負(fù)載和ECU性能調(diào)整,確保通信不因卡死或丟幀而失效。

      6. C++代碼示例:UDS客戶端模擬(讀取DID)

      以下代碼實(shí)現(xiàn)了一個簡化的UDS客戶端,演示:

      • 構(gòu)建UDS請求報(bào)文(單幀場景)

      • 模擬發(fā)送到CAN總線(實(shí)際項(xiàng)目需替換真實(shí)驅(qū)動)

      • 接收并解析正響應(yīng)/負(fù)響應(yīng)(含單幀自動解析)

      • 處理簡單的傳輸層:針對短報(bào)文僅使用單幀。

      注意:為聚焦UDS邏輯,代碼中未實(shí)現(xiàn)完整的多幀重組,但提供了擴(kuò)展接口注釋。

      #include  
                
      #include
      #include
      #include
      #include
      #include

      // 輔助工具:打印字節(jié)數(shù)組
      void printHex(const std::vector& data, const std::string& prefix) {
      std::cout << prefix << ": ";
      for (auto b : data) {
      printf("%02X ", b);
      }
      std::cout << std::endl;
      }

      // 負(fù)響應(yīng)碼(NRC)定義
      enum class NRC : uint8_t {
      Ok = 0x00,
      ServiceNotSupported = 0x11,
      SubFunctionNotSupported = 0x12,
      IncorrectMessageLength = 0x13,
      ConditionsNotCorrect = 0x22,
      RequestOutOfRange = 0x31,
      SecurityAccessDenied = 0x33,
      GeneralReject = 0x10
      };

      // 簡單模擬的ECU(實(shí)際項(xiàng)目中使用真實(shí)的CAN驅(qū)動和UDS棧)
      class SimulatedECU {
      public:
      // 預(yù)定義DID映射表(DID -> 數(shù)據(jù))
      std::map> didDatabase = {
      {0x010A, {0x00, 0x23}}, // 油門開度35%
      {0xF190, {0x57, 0x30, 0x4C, 0x30, 0x30, 0x30, 0x30, 0x34, 0x33, 0x4D, 0x42, 0x35, 0x34, 0x31, 0x33, 0x32, 0x36}} // VIN模擬數(shù)據(jù)
      };

      // 處理UDS請求,返回響應(yīng)報(bào)文(原始UDS,未加傳輸層封裝)
      std::vector handleRequest(const std::vector& request) {
      if (request.empty()) return buildNegativeResponse(0x00, NRC::GeneralReject);
      uint8_t sid = request[0];
      switch (sid) {
      case 0x22: { // ReadDataByIdentifier
      if (request.size() < 3) return buildNegativeResponse(sid, NRC::IncorrectMessageLength);
      uint16_t did = (request[1] << 8) | request[2];
      auto it = didDatabase.find(did);
      if (it == didDatabase.end()) {
      return buildNegativeResponse(sid, NRC::RequestOutOfRange);
      }
      // 構(gòu)建正響應(yīng): SID+0x40, DID, Data
      std::vector response;
      response.push_back(sid + 0x40);
      response.push_back(request[1]);
      response.push_back(request[2]);
      response.insert(response.end(), it->second.begin(), it->second.end());
      return response;
      }
      default:
      return buildNegativeResponse(sid, NRC::ServiceNotSupported);
      }
      }

      private:
      std::vector buildNegativeResponse(uint8_t reqSid, NRC nrc) {
      return {0x7F, reqSid, static_cast(nrc)};
      }
      };

      // UDS客戶端(僅處理單幀傳輸,即<=7字節(jié)UDS報(bào)文)
      class UDSClient {
      public:
      UDSClient(SimulatedECU& ecu) : ecu(ecu) {}

      // 發(fā)送UDS請求(單幀),并等待響應(yīng)(模擬阻塞接收)
      bool sendRequest(const std::vector& udsRequest, std::vector& udsResponse) {
      if (udsRequest.size() > 7) {
      std::cerr << "Error: This example only supports single-frame (UDS <=7 bytes). Use multi-frame for larger.\n";
      return false;
      }

      // 1. 封裝為單幀CAN幀(實(shí)際項(xiàng)目中使用CAN驅(qū)動發(fā)送)
      std::vector canFrame(8, 0);
      canFrame[0] = 0x00 | (udsRequest.size() & 0x0F); // 單幀,低4位為長度
      std::copy(udsRequest.begin(), udsRequest.end(), canFrame.begin() + 1);
      printHex(canFrame, "Tx CAN Frame (SF)");

      // 模擬傳輸延遲
      std::this_thread::sleep_for(std::chrono::milliseconds(10));

      // 2. ECU處理請求(內(nèi)部模擬產(chǎn)生UDS響應(yīng))
      std::vector udsResp = ecu.handleRequest(udsRequest);
      // 3. 模擬ECU返回單幀CAN幀(實(shí)際收幀從驅(qū)動讀取)
      std::vector rxCanFrame(8, 0);
      if (udsResp.size() <= 7) {
      rxCanFrame[0] = 0x00 | (udsResp.size() & 0x0F);
      std::copy(udsResp.begin(), udsResp.end(), rxCanFrame.begin() + 1);
      } else {
      // 演示多幀: 此處簡化,僅打印提示
      std::cerr << "Multi-frame response detected, but not fully implemented in this example.\n";
      // 實(shí)際應(yīng)實(shí)現(xiàn)首幀/流控/連續(xù)幀解析,此處直接嘗試截取前7字節(jié)會丟失數(shù)據(jù),故返回false
      return false;
      }
      printHex(rxCanFrame, "Rx CAN Frame (SF)");

      // 4. 從CAN幀中提取UDS響應(yīng)(跳過第一個字節(jié)的長度指示)
      uint8_t len = rxCanFrame[0] & 0x0F;
      udsResponse.assign(rxCanFrame.begin() + 1, rxCanFrame.begin() + 1 + len);
      return true;
      }

      // 解析響應(yīng)并打印結(jié)果
      void parseResponse(const std::vector& response) {
      if (response.empty()) {
      std::cout << "Empty response.\n";
      return;
      }
      uint8_t firstByte = response[0];
      if (firstByte == 0x7F) { // 負(fù)響應(yīng)
      if (response.size() >= 3) {
      uint8_t reqSid = response[1];
      uint8_t nrc = response[2];
      std::cout << "Negative Response: SID=0x" << std::hex << (int)reqSid
      << ", NRC=0x" << (int)nrc << std::dec << std::endl;
      // 可映射NRC枚舉
      } else {
      std::cout << "Malformed negative response.\n";
      }
      } else if ((firstByte & 0x40) != 0) { // 正響應(yīng)(SID+0x40的特征)
      uint8_t origSid = firstByte - 0x40;
      std::cout << "Positive Response for SID=0x" << std::hex << (int)origSid << std::dec << std::endl;
      // 根據(jù)服務(wù)類型解析數(shù)據(jù),此處簡單打印
      printHex(response, "Response data");
      // 示例:如果是0x22服務(wù),提取DID和數(shù)據(jù)
      if (origSid == 0x22 && response.size() >= 3) {
      uint16_t did = (response[1] << 8) | response[2];
      std::cout << " DID=0x" << std::hex << did << std::dec << std::endl;
      if (response.size() > 3) {
      std::cout << " Data bytes: ";
      for (size_t i = 3; i < response.size(); ++i) {
      printf("%02X ", response[i]);
      }
      std::cout << std::endl;
      }
      }
      } else {
      std::cout << "Unknown response format.\n";
      }
      }
      };

      // 演示主函數(shù)
      int main() {
      SimulatedECU ecu;
      UDSClient client(ecu);

      // 案例1: 讀取油門開度 DID=0x010A
      std::vector request1 = {0x22, 0x01, 0x0A}; // UDS請求: 讀數(shù)據(jù)服務(wù),DID=0x010A
      std::vector response1;
      if (client.sendRequest(request1, response1)) {
      client.parseResponse(response1);
      } else {
      std::cout << "Request1 failed.\n";
      }

      std::cout << "\n---\n";

      // 案例2: 讀取不存在的DID,觸發(fā)負(fù)響應(yīng)
      std::vector request2 = {0x22, 0xFF, 0xFF}; // 無效DID
      std::vector response2;
      if (client.sendRequest(request2, response2)) {
      client.parseResponse(response2);
      } else {
      std::cout << "Request2 failed.\n";
      }

      return 0;
      }
      代碼輸出示例(期望):

      Tx CAN Frame (SF) : 03 22 01 0A 00 00 00 00 
      Rx CAN Frame (SF) : 05 62 01 0A 00 23 00 00
      Positive Response for SID=0x22
      Response data: 62 01 0A 00 23
      DID=0x10A
      Data bytes: 00 23
      ---
      Tx CAN Frame (SF) : 03 22 FF FF 00 00 00 00
      Rx CAN Frame (SF) : 03 7F 22 31 00 00 00 00
      Negative Response: SID=0x22, NRC=0x31
      7. 總結(jié)

      車輛診斷的本質(zhì)是通過標(biāo)準(zhǔn)化的協(xié)議(如UDS)與ECU進(jìn)行高效、可靠的信息交換。本文詳細(xì)講解了:

      • 診斷的目的以及OBD的基本作用;

      • UDS應(yīng)用層中請求/正響應(yīng)/負(fù)響應(yīng)的報(bào)文格式;

      • 基于CAN的ISO 15765-2傳輸層如何通過單幀、首幀、連續(xù)幀和流控幀承載超過8字節(jié)的診斷數(shù)據(jù);

      • 時間管理參數(shù)對于通信魯棒性的重要性。

      最后給出的C++示例雖然簡化了傳輸層,但清晰展示了UDS客戶端的核心邏輯:構(gòu)建請求、發(fā)送、接收和解析響應(yīng)。實(shí)際開發(fā)中,需要集成完整的CAN驅(qū)動,實(shí)現(xiàn)多幀傳輸?shù)牟鸢c重組以及時間監(jiān)控機(jī)制。掌握這些知識,將有助于開發(fā)專業(yè)的汽車診斷工具或嵌入式診斷棧。

      特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關(guān)推薦
      熱點(diǎn)推薦
      一瓶水?dāng)[在國宴桌上,瓶子很樸素,但人家真去了人民大會堂

      一瓶水?dāng)[在國宴桌上,瓶子很樸素,但人家真去了人民大會堂

      一口娛樂
      2026-05-16 00:28:34
      海外談中國:特朗普訪華期間 巨大車頂?shù)募t旗SUV特種車輛引關(guān)注

      海外談中國:特朗普訪華期間 巨大車頂?shù)募t旗SUV特種車輛引關(guān)注

      hawk26講武堂
      2026-05-16 10:10:38
      建議你一定養(yǎng)一個:頂嘴、拖拉、愛發(fā)脾氣的孩子,長大有好處

      建議你一定養(yǎng)一個:頂嘴、拖拉、愛發(fā)脾氣的孩子,長大有好處

      禾禾媽愛學(xué)習(xí)
      2026-05-15 14:42:17
      市場監(jiān)管總局:覆蓋拼多多、淘寶、京東等平臺,發(fā)現(xiàn)1415批次產(chǎn)品不合格

      市場監(jiān)管總局:覆蓋拼多多、淘寶、京東等平臺,發(fā)現(xiàn)1415批次產(chǎn)品不合格

      封面新聞
      2026-05-15 20:52:02
      后悔萬分啊!大廠員工哭訴被精神小妹“崩走”3000元,評論區(qū)炸鍋

      后悔萬分啊!大廠員工哭訴被精神小妹“崩走”3000元,評論區(qū)炸鍋

      火山詩話
      2026-05-16 09:38:31
      大瓜!曝某童星被抓踩縫紉機(jī),團(tuán)隊(duì)接管賬號打掩護(hù),網(wǎng)傳是張一山

      大瓜!曝某童星被抓踩縫紉機(jī),團(tuán)隊(duì)接管賬號打掩護(hù),網(wǎng)傳是張一山

      喜歡歷史的阿繁
      2026-05-16 06:58:46
      【英超】沃特金斯雙響,維拉4比2利物浦鎖定歐冠門票

      【英超】沃特金斯雙響,維拉4比2利物浦鎖定歐冠門票

      體壇周報(bào)
      2026-05-16 07:58:13
      普通家庭最大的通病,是把托舉的順序搞反了

      普通家庭最大的通病,是把托舉的順序搞反了

      洞見
      2026-05-15 10:08:02
      看是御姐,臉還能打,肉卻 “軟趴趴” 了

      看是御姐,臉還能打,肉卻 “軟趴趴” 了

      飛娛日記
      2026-03-13 11:31:29
      “閉嘴,xx養(yǎng)的”東契奇你咋又罵人!!

      “閉嘴,xx養(yǎng)的”東契奇你咋又罵人!!

      柚子說球
      2026-05-15 10:27:06
      伊朗沒料到,打了一仗,沒滅掉以色列,反在自家門口造出個更狠的

      伊朗沒料到,打了一仗,沒滅掉以色列,反在自家門口造出個更狠的

      共工之錨
      2026-05-14 00:06:08
      “大車時代”狂飆:誰殺死了汽車輕量化

      “大車時代”狂飆:誰殺死了汽車輕量化

      汽車預(yù)言家
      2026-05-15 17:13:25
      中國送特朗普一份大禮,剛坐上返程飛機(jī),特朗普開始發(fā)文:很滿意

      中國送特朗普一份大禮,剛坐上返程飛機(jī),特朗普開始發(fā)文:很滿意

      獨(dú)步天涯
      2026-05-16 07:52:24
      俄羅斯超大艦隊(duì)進(jìn)入東海

      俄羅斯超大艦隊(duì)進(jìn)入東海

      烽火觀天下
      2026-05-14 10:58:42
      就吃了三天!骨頭縫里的寒氣被“連根拔起”!老寒腿自己發(fā)熱了

      就吃了三天!骨頭縫里的寒氣被“連根拔起”!老寒腿自己發(fā)熱了

      房產(chǎn)衫哥
      2026-05-14 12:26:33
      最新:烏克蘭“風(fēng)暴陰影”導(dǎo)彈摧毀頓涅茨克的俄軍基地!

      最新:烏克蘭“風(fēng)暴陰影”導(dǎo)彈摧毀頓涅茨克的俄軍基地!

      項(xiàng)鵬飛
      2026-05-15 18:30:53
      山東榴蓮僅退款后續(xù)來了:女子被行政拘留7日,不道歉商家會起訴

      山東榴蓮僅退款后續(xù)來了:女子被行政拘留7日,不道歉商家會起訴

      映射生活的身影
      2026-05-15 15:43:54
      張柏芝給19歲大兒子提新車,不選豪車偏選國產(chǎn),當(dāng)媽的心思藏不住

      張柏芝給19歲大兒子提新車,不選豪車偏選國產(chǎn),當(dāng)媽的心思藏不住

      觀察鑒娛
      2026-05-15 13:53:47
      馬斯克黃仁勛在空軍一號熱聊照曝光,喝了可樂,皮衣黃疑似用三星

      馬斯克黃仁勛在空軍一號熱聊照曝光,喝了可樂,皮衣黃疑似用三星

      譯言
      2026-05-16 10:38:32
      騎士兩大敗因出爐,哈登直言不諱!米切爾還很自信,阿特金森該批

      騎士兩大敗因出爐,哈登直言不諱!米切爾還很自信,阿特金森該批

      魚崖大話籃球
      2026-05-16 11:11:21
      2026-05-16 11:59:00
      新能源自動駕駛 incentive-icons
      新能源自動駕駛
      專注于半導(dǎo)體行業(yè)資訊
      977文章數(shù) 347關(guān)注度
      往期回顧 全部

      汽車要聞

      高爾夫GTI刷新紐北紀(jì)錄 ID. Polo GTI迎全球首秀

      頭條要聞

      美國媒體在天壇里尋找俄勒岡木材 被指非常耐人尋味

      頭條要聞

      美國媒體在天壇里尋找俄勒岡木材 被指非常耐人尋味

      體育要聞

      35歲坎特,干了一件這輩子最吵的事

      娛樂要聞

      張嘉譯和老婆的差距讓人心酸

      財(cái)經(jīng)要聞

      造詞狂魔賈躍亭

      科技要聞

      漲的是車價(jià),要的是老命

      態(tài)度原創(chuàng)

      時尚
      數(shù)碼
      藝術(shù)
      教育
      游戲

      0緩震的鞋,怎么就火了?

      數(shù)碼要聞

      蘋果“產(chǎn)品百科”應(yīng)用Mactracker迎25周年,新增對比和收藏記錄

      藝術(shù)要聞

      19位當(dāng)代畫家油畫作品欣賞

      教育要聞

      武漢大學(xué)第1專業(yè),就業(yè)現(xiàn)狀與報(bào)考性價(jià)比分析!#金榜同行人

      《星球大戰(zhàn):舊共和國》重啟計(jì)劃遭EA董事會否決

      無障礙瀏覽 進(jìn)入關(guān)懷版 主站蜘蛛池模板: 久久综合五月丁香久久激情| 免费92淫黄看电影| 1024香蕉视频在线播放| 国产精品丝袜一区二区三区| 少妇爆乳无码专区av无码| 日韩av熟女人妻一区二| a男人的天堂久久a毛片| 亚洲无 码A片在线观看| 在线观看欧美一区二区三区| 无码高潮爽到爆的喷水视频app| 啊啊舔穴午夜免费视频| 亚洲欧美日韩中字综合| 亚洲国产亚洲综合在线尤物| 亚洲成av 人片在线观看无码 | 国产精品亚洲色婷婷99久久精品| 欧美交a欧美精品喷水| 久久久久久久久久久久中文字幕| 宅男撸| 一区二区偷拍美女撒尿视频| 中文字幕人妻系列| 九九视频精品免费观看6| 极品少妇被弄得高潮不断| 精品国产一区二区三区av性色| 无码3p| 亚洲人成色77777| 波多野结衣视频一区二区| 亚洲日本一区二区三区在线| 国产国拍亚洲精品午夜不卡17| 国产美女视频一区二区| 免费特级毛片| 国产成人精品亚洲午夜麻豆| 国产欧美日韩精品丝袜高跟鞋| 亚洲区1区3区4区中文字幕码| 亚洲日韩国产精品综合在线观看| 无码少妇一区二区三区免费| 中文字幕av无码不卡| 国产人妻777人伦精品hd| 亚洲欧美日韩精品久久亚洲区色播| jizz.jizz| 91?精品?免费在线观看| 亚洲欧美洲成人一区二区三区 |