《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 電子元件 > 業(yè)界動(dòng)態(tài) > 教程:如何用FPGA實(shí)現(xiàn)CAN總線通信控制器

教程:如何用FPGA實(shí)現(xiàn)CAN總線通信控制器

2023-01-30
來(lái)源:FPGA技術(shù)江湖
關(guān)鍵詞: 通信控制器 FPGA CAN總線

  CAN 總線(Controller Area Network)是控制器局域網(wǎng)的簡(jiǎn)稱,是 20 世紀(jì) 80 年代初德國(guó) BOSCH 公司為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議。目前,CAN 總線已經(jīng)被列入 ISO 國(guó)際標(biāo)準(zhǔn),稱為 ISO11898。CAN 總線已經(jīng)成為工業(yè)數(shù)據(jù)通信的主流技術(shù)之一。

  CAN 總線作為數(shù)字式串行通信技術(shù),與其他同類技術(shù)相比,在可靠性、實(shí)時(shí)性和靈活性方面具有獨(dú)特的技術(shù)優(yōu)勢(shì),主要特點(diǎn)如下:

  CAN 總線是一種多主總線,總線上任意節(jié)點(diǎn)可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息而不分主次,因此可在各節(jié)點(diǎn)之間實(shí)現(xiàn)自由通信。

  CAN 總線采用非破壞性總線仲裁技術(shù)。但多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)會(huì)主動(dòng)退出發(fā)送,而最高優(yōu)先級(jí)的節(jié)點(diǎn)可以不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省總線沖突的仲裁時(shí)間。即使在網(wǎng)絡(luò)負(fù)載很重的情況下也不會(huì)發(fā)生網(wǎng)絡(luò)癱瘓情況。

  CAN 總線的通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維,選擇靈活。

  CAN 總線的通信速率可達(dá) 1Mbit/s(此時(shí)通信距離最長(zhǎng)為 40 米),通信距離最遠(yuǎn)可達(dá) 10km(速率在 5kbit/s 以下)。

  CAN 總線上的節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),可以滿足不同級(jí)別的實(shí)時(shí)要求,高優(yōu)先級(jí)的數(shù)據(jù)可以在 134μs 內(nèi)得到傳輸。

  CAN 總線通過(guò)報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送數(shù)據(jù),無(wú)需專門(mén)的調(diào)度。

  CAN 總線的數(shù)據(jù)采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,具有極好的檢錯(cuò)效果。

  CAN 總線采用 CRC 檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證了數(shù)據(jù)通信的可靠性。

  CAN 總線上的器件可被置于無(wú)任何內(nèi)部活動(dòng)的睡眠方式,相當(dāng)于未連接到總線上,可以有效降低系統(tǒng)功耗。

  CAN 總線上的節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出的功能,以使總線上其他節(jié)點(diǎn)的操作不受影響。CAN 總線卓越的特性、極高的可靠性和獨(dú)特的設(shè)計(jì),特別適合工業(yè)過(guò)程中監(jiān)控設(shè)備的互連,因此,越來(lái)越受到工業(yè)界的重視,并被公認(rèn)為是最有前途的現(xiàn)場(chǎng)總線之一。另外,CAN 總線協(xié)議已被國(guó)際標(biāo)準(zhǔn)化組織認(rèn)可,技術(shù)比較成熟,控制的芯片已經(jīng)商品化,性價(jià)比高,特別適用于分布式測(cè)控系統(tǒng)之間的數(shù)通訊。

  CAN 總線插卡可以任意插在 PC AT XT 兼容機(jī)上,方便地構(gòu)成分布式監(jiān)控系統(tǒng)。因此,用 FPGA 實(shí)現(xiàn) CAN 總線通信控制器具有非常重要的應(yīng)用價(jià)值。本篇將通過(guò)一個(gè)實(shí)例講解利用 FPGA 實(shí)現(xiàn) CAN 總線通信控制器的實(shí)現(xiàn)方法。

  第三篇內(nèi)容摘要:本篇會(huì)介紹程序的仿真與測(cè)試以及總結(jié)等相關(guān)內(nèi)容。

  四、程序的仿真與測(cè)試

  CAN 總線通信控制器的仿真程序,需要模擬數(shù)據(jù)的發(fā)送和接收。

  下面是測(cè)試程序的部分代碼:

  //連接 can_top 模塊

  can_top i_can_top(

  .cs_can_i(cs_can),

  .clk_i(clk),

  .rx_i(rx_and_tx),

  .tx_o(tx),

  .irq_on(irq),

  .clkout_o(clkout)

  );

  //產(chǎn)生 24 MHz 時(shí)鐘

  iniTIal

  begin

  clk=0;

  forever #21 clk = ~clk;

  end

  //初始化

  iniTIal

  begin

  start_tb = 0;

  cs_can = 0;

  rx = 1;

  extended_mode = 0;

  tx_bypassed = 0;

  rst_i = 1'b0;

  ale_i = 1'b0;

  rd_i = 1'b0;

  wr_i = 1'b0;

  port_0_o = 8'h0;

  port_0_en = 0;

  port_free = 1;

  rst_i = 1;

  #200 rst_i = 0;

  #200 start_tb = 1;

  end

  //產(chǎn)生延遲的 tx 信號(hào)(CAN 發(fā)送器延遲)

  always

  begin

  wait (tx);

  repeat (4*BRP) @ (posedge clk); // 4 TIme quants delay

  #1 delayed_tx = tx;

  wait (~tx);

  repeat (4*BRP) @ (posedge clk); // 4 TIme quants delay

  #1 delayed_tx = tx;

  end

  assign rx_and_tx = rx & (delayed_tx | tx_bypassed); // When this signal is on, tx is not

  looped back to the rx.

  //主程序

  initial

  begin

  wait(start_tb);

  //設(shè)置總線時(shí)序寄存器

  write_register(8'd6, {`CAN_TIMING0_SJW, `CAN_TIMING0_BRP});

  write_register(8'd7, {`CAN_TIMING1_SAM, `CAN_TIMING1_TSEG2, `CAN_TIMING1_TSEG1});

  // 設(shè)置時(shí)鐘分頻寄存器

  extended_mode = 1'b0;

  write_register(8'd31, {extended_mode, 3'h0, 1'b0, 3'h0}); // Setting the normal mode (not

  extended)

  //設(shè)置接收代碼和接收寄存器

  write_register(8'd16, 8'ha6); // acceptance code 0

  write_register(8'd17, 8'hb0); // acceptance code 1

  write_register(8'd18, 8'h12); // acceptance code 2

  write_register(8'd19, 8'h30); // acceptance code 3

  write_register(8'd20, 8'h0); // acceptance mask 0

  write_register(8'd21, 8'h0); // acceptance mask 1

  write_register(8'd22, 8'h00); // acceptance mask 2

  write_register(8'd23, 8'h00); // acceptance mask 3

  write_register(8'd4, 8'he8); // acceptance code

  write_register(8'd5, 8'h0f); // acceptance mask

  #10;

  repeat (1000) @ (posedge clk);

  //開(kāi)關(guān)復(fù)位模式

  write_register(8'd0, {7'h0, ~(`CAN_MODE_RESET)});

  repeat (BRP) @ (posedge clk);

  // 在復(fù)位后設(shè)置總線空閑

  repeat (11) send_bit(1);

  test_full_fifo; // test currently switched on

  send_frame; // test currently switched off

  bus_off_test; // test currently switched off

  forced_bus_off; // test currently switched off

  send_frame_basic; // test currently switched off

  send_frame_extended; // test currently switched off

  self_reception_request; // test currently switched off

  manual_frame_basic; // test currently switched off

  manual_frame_ext; // test currently switched off

  $display(“CAN Testbench finished !”);

  $stop;

  end

  在測(cè)試過(guò)程中通過(guò)多個(gè)任務(wù)來(lái)分別驗(yàn)證程序的各個(gè)功能模塊。下面的程序用于驗(yàn)證強(qiáng)制關(guān)閉總線任務(wù):

  //強(qiáng)制關(guān)閉總線任務(wù)

  task forced_bus_off; // Forcing bus-off by writinf to tx_err_cnt register

  begin

  //切換到復(fù)位模式

  write_register(8'd0, {7'h0, `CAN_MODE_RESET});

  // 設(shè)置時(shí)鐘分頻寄存器

  write_register(8'd31, {1'b1, 7'h0}); // Setting the extended mode (not normal)

  // 寫(xiě)數(shù)據(jù)到寄存器中

  write_register(8'd15, 255);

  // 切換復(fù)位模式

  write_register(8'd0, {7'h0, ~(`CAN_MODE_RESET)});

  #2500000;

  // 切換復(fù)位模式

  write_register(8'd0, {7'h0, `CAN_MODE_RESET});

  // 寫(xiě)數(shù)據(jù)到寄存器中

  write_register(8'd15, 245);

  //關(guān)閉復(fù)位模式

  write_register(8'd0, {7'h0, ~(`CAN_MODE_RESET)});

  #1000000;

  end

  endtask // forced_bus_off

  下面的程序驗(yàn)證如何發(fā)送一個(gè)基本格式的幀數(shù)據(jù):

  //發(fā)送一個(gè)基本格式的幀

  task manual_frame_basic;

  begin

  // 切換到復(fù)位模式

  write_register(8'd0, {7'h0, (`CAN_MODE_RESET)});

  //設(shè)置寄存器

  write_register(8'd4, 8'h28); // acceptance code

  write_register(8'd5, 8'hff); // acceptance mask

  repeat (100) @ (posedge clk);

  // 切換復(fù)位模式

  write_register(8'd0, {7'h0, ~(`CAN_MODE_RESET)});

  // 模塊復(fù)位后設(shè)置總線空閑

  repeat (11) send_bit(1);

  write_register(8'd10, 8'h55); // Writing ID[10:3] = 0x55

  write_register(8'd11, 8'h57); // Writing ID[2:0] = 0x2, rtr = 1, length = 7

  write_register(8'd12, 8'h00); // data byte 1

  write_register(8'd13, 8'h00); // data byte 2

  write_register(8'd14, 8'h00); // data byte 3

  write_register(8'd15, 8'h00); // data byte 4

  write_register(8'd16, 8'h00); // data byte 5

  write_register(8'd17, 8'h00); // data byte 6

  write_register(8'd18, 8'h00); // data byte 7

  write_register(8'd19, 8'h00); // data byte 8

  tx_bypassed = 1; // When this signal is on, tx is not looped back to the rx.

  fork

  begin

  self_reception_request_command;

  end

  begin

  #2200;

  repeat (1)

  //開(kāi)始發(fā)送數(shù)據(jù)

  begin

  send_bit(0); // 幀起始

  send_bit(0); // ID

  send_bit(1); // ID

  send_bit(0); // ID

  send_bit(1); // ID

  send_bit(0); // ID

  send_bit(1); // ID

  send_bit(0); // ID

  send_bit(1); // ID

  send_bit(0); // ID

  send_bit(1); // ID

  send_bit(0); // ID

  send_bit(1); // RTR

  send_bit(0); // IDE

  send_bit(0); // r0

  send_bit(0); // DLC

  send_bit(1); // DLC

  send_bit(1); // DLC

  send_bit(1); // DLC

  send_bit(1); // CRC

  send_bit(1); // CRC

  send_bit(0); // CRC stuff

  send_bit(0); // CRC 6

  send_bit(0); // CRC

  send_bit(0); // CRC

  send_bit(0); // CRC

  send_bit(1); // CRC stuff

  send_bit(0); // CRC 0

  send_bit(0); // CRC

  send_bit(1); // CRC

  send_bit(0); // CRC

  send_bit(1); // CRC 5

  send_bit(1); // CRC

  send_bit(0); // CRC

  send_bit(1); // CRC

  send_bit(1); // CRC b

  send_bit(1); // CRC DELIM

  send_bit(0); // ACK

  send_bit(1); // ACK DELIM

  send_bit(1); // EOF

  send_bit(1); // EOF

  send_bit(1); // EOF

  send_bit(1); // EOF

  send_bit(1); // EOF

  send_bit(1); // EOF

  send_bit(1); // EOF

  send_bit(1); // INTER

  send_bit(1); // INTER

  send_bit(1); // INTER

  end // repeat

  end

  join

  //從接收緩沖中讀取數(shù)據(jù)

  read_receive_buffer;

  release_rx_buffer_command;

  read_receive_buffer;

  release_rx_buffer_command;

  read_receive_buffer;

  #4000000;

  end

  endtask // manual_frame_basic

  五、總結(jié)

  本篇通過(guò)一個(gè)實(shí)例講解如何用 FPGA 實(shí)現(xiàn) CAN 總線通信控制器。首先講解了 CAN 總線協(xié)議的有關(guān)內(nèi)容,然后介紹了一種常用的 CAN 通信控制器 SJA1000 的主要特點(diǎn)。接下來(lái)講解程序的主要框架和具體代碼。最后通過(guò)一個(gè)測(cè)試程序驗(yàn)證了程序。這個(gè)實(shí)例為讀者實(shí)現(xiàn)自己的 CAN總線通信控制器提供了一個(gè)可以應(yīng)用的案例。



更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          亚洲欧美日韩国产综合精品二区| 日韩一级网站| 国产一区二区三区四区三区四| 久久婷婷国产综合尤物精品| 久久经典综合| 欧美日韩在线高清| 亚洲另类视频| 美女诱惑一区| 亚洲国产免费看| 国产一区二区三区奇米久涩| 亚洲欧美文学| 国产精品老牛| 激情久久中文字幕| 美女91精品| 亚洲伦伦在线| 欧美人成网站| 国产精品综合| 欧美视频网站| 销魂美女一区二区三区视频在线| 你懂的视频一区二区| 伊人成人网在线看| 久久人人九九| 91久久国产自产拍夜夜嗨| 国产精品久久久久久模特| 欧美日韩岛国| 性一交一乱一区二区洋洋av| 一区在线电影| 国产精品v欧美精品v日韩精品| 一区二区三区|亚洲午夜| 欧美日韩国产免费观看| 销魂美女一区二区三区视频在线| 亚洲国产精品一区二区第四页av| 久久久久se| 亚洲一区高清| 99国产成+人+综合+亚洲欧美| 久久综合一区| 久久国产精品免费一区| 国产欧美短视频| 亚洲黄网站黄| 亚洲国内欧美| 最新日韩欧美| 亚洲国内在线| 亚洲免费不卡| 中文久久精品| 亚洲精品资源| 亚洲区第一页| 亚洲精品国产精品国自产观看| 欧美日一区二区在线观看 | 黑人一区二区三区四区五区| 欧美在线播放一区二区| 在线综合欧美| 在线免费高清一区二区三区| 欧美精品亚洲精品| 欧美三级乱码| 1024成人| 亚洲精品国产系列| 国产婷婷精品| 国产日韩综合| 国产精品xvideos88| 欧美国产视频在线观看| 欧美精品成人| 另类国产ts人妖高潮视频| 免费毛片一区二区三区久久久| 亚洲欧美日韩国产一区| 欧美大香线蕉线伊人久久国产精品| 久久一区欧美| 国产精品www994| 亚洲国产婷婷| 久久久久久久久久码影片| 欧美激情亚洲| 99视频+国产日韩欧美| 国产偷久久久精品专区| 香蕉久久夜色| 激情五月***国产精品| 国产亚洲毛片| 亚洲欧美在线网| 亚洲高清资源综合久久精品| 在线午夜精品| 久久亚洲图片| 国产欧美69| 亚洲高清网站| 亚洲一区尤物| 欧美黄色精品| 在线视频精品一区| 欧美日韩理论| 国产精品亚洲欧美| 激情欧美一区| 欧美一区二区三区在线免费观看| 狠狠综合久久| 久久精品日产第一区二区 | 精品91在线| 国产亚洲激情| 伊人狠狠色j香婷婷综合| 久久精品欧洲| 国产亚洲精品久久久久婷婷瑜伽| 欧美涩涩网站| 久久久久se| 亚洲一区二区在线看| 极品中文字幕一区| 噜噜噜91成人网| 亚洲激情午夜| 狠狠色伊人亚洲综合网站色| 性娇小13――14欧美| 99riav1国产精品视频| 亚洲网站在线| 好吊色欧美一区二区三区四区| 久久精品人人| 老鸭窝亚洲一区二区三区| 99精品国产福利在线观看免费| 亚洲欧美亚洲| 久久裸体视频| 亚洲尤物影院| 小嫩嫩精品导航| 午夜一区二区三区不卡视频| 在线综合视频| 国产精品日韩久久久| 欧美日韩综合| 韩国一区二区三区在线观看| 久久中文精品| 欧美国产先锋| 狠狠色丁香久久综合频道| 午夜久久福利| 国产精品国产精品| 国产一区二区三区四区hd| 国产一在线精品一区在线观看| 欧美综合二区| 久久精品中文| 欧美精品二区| 在线欧美一区| 亚洲欧洲视频| 亚洲黄色毛片| 亚洲免费影视| 午夜日韩在线| 亚洲精品系列| 国产精品人人爽人人做我的可爱| 中文高清一区| 玖玖视频精品| 在线播放一区| 国产日韩久久| 久久久久久色| 国产综合激情| 国产区日韩欧美| 欧美成人综合| 亚洲精品资源| 久久精精品视频| 欧美精品一线| 一区二区三区|亚洲午夜| 久久精精品视频| 激情综合网址| 国产麻豆综合| 欧美日韩喷水| 亚洲一区二区动漫| 久久久久se| 亚洲看片一区| 欧美1区3d| 99视频日韩| 久久亚裔精品欧美| 伊人久久大香线蕉综合热线| 亚洲一区网站| 在线观看视频免费一区二区三区| 国产精品一区二区欧美| 欧美日韩一区综合| 蜜桃av一区| 日韩亚洲不卡在线| 欧美另类综合| 久久黄色影院| 午夜亚洲性色福利视频| 亚洲精品视频一区二区三区| 欧美三级第一页| 久久久福利视频| 国产伦精品一区二区三区| 国自产拍偷拍福利精品免费一| 老鸭窝亚洲一区二区三区| 亚洲人成人一区二区三区| 午夜精品久久99蜜桃的功能介绍| 国产欧美日韩亚洲| 99riav国产精品| 亚洲无线视频| 欧美三级乱码| 欧美极品一区| 久久久久久亚洲精品不卡4k岛国| 99在线观看免费视频精品观看| 国产精品v亚洲精品v日韩精品| 亚洲欧美日韩精品久久久| 一区二区激情| 一区二区三区高清视频在线观看| 国内精品美女在线观看 | 午夜国产精品视频| 欧美国产免费| 欧美日韩影院| 欧美日韩天堂| 欧美三级不卡| 黄色精品网站| 伊人成人在线| 国精品一区二区三区| 欧美日韩国产欧| 狠狠入ady亚洲精品经典电影| 国产精品成人观看视频免费| 国产精品黄色| 亚洲高清免费| 国产欧美综合一区二区三区| 中文网丁香综合网| 国产精品日本欧美一区二区三区| 国产日韩一区二区三区在线播放 | 国产精品啊v在线| 亚洲视频在线二区| 激情综合中文娱乐网| 亚洲高清视频一区二区| 日韩一区二区免费看| 一区二区91| 性色av一区二区怡红| 欧美在线日韩| 亚洲第一毛片| 亚洲一区二区毛片| 欧美日韩视频| 国产欧美短视频| 美女网站久久| 激情久久中文字幕| 亚洲欧美春色| 欧美日韩一区综合| 亚洲精品美女久久7777777| 国产精品毛片在线| 国产精品theporn| 国产一区二区三区免费不卡 | 99精品久久久| 欧美日本久久| 国产嫩草一区二区三区在线观看 | 好吊视频一区二区三区四区 | 欧美中日韩免费视频| 你懂的成人av| 日韩图片一区| 欧美精品一卡| 香蕉久久夜色| 在线不卡欧美| 欧美在线日韩| 国产欧美日韩综合一区在线播放| 欧美在线国产| 亚洲专区在线| 久久经典综合| 国产伦精品一区二区三区视频孕妇 | 性色一区二区| 国产综合自拍| 久久精精品视频| 亚洲精品欧美| 亚洲图片欧洲图片日韩av| 久久亚洲图片| 欧美亚洲三区| 在线综合亚洲| 激情亚洲成人| 欧美日韩久久| 亚洲一区二区动漫| 亚洲日韩视频| 一区在线电影| 狠狠噜噜久久| 国产精品va| 国产精品二区二区三区| 玖玖玖国产精品| 久久精品人人| 免费亚洲婷婷| 国产一区成人| 亚洲专区在线| 国产精品免费一区二区三区观看| 亚洲成人原创| 亚洲精品精选| 在线观看欧美一区| 永久域名在线精品| 亚洲一区二区精品在线| 亚洲经典在线看| 玖玖国产精品视频| 毛片一区二区| 欧美影视一区| 欧美日韩福利| 亚洲婷婷在线| 亚洲无玛一区| 亚洲高清久久| 日韩视频中文| 国产美女诱惑一区二区| 亚洲一区图片| 久久永久免费| 国产精品av久久久久久麻豆网| 免费在线日韩av| 99视频一区| 激情成人综合| 99视频精品| 亚洲在线观看| 欧美激情视频一区二区三区免费| 老司机精品福利视频| 久久国产一二区| 欧美日韩亚洲一区二区三区在线| 欧美大香线蕉线伊人久久国产精品| 母乳一区在线观看| 女同一区二区| 欧美午夜欧美| 国产精品免费在线| 国产私拍一区| 亚洲一区3d动漫同人无遮挡| 亚洲男人影院| 欧美日韩综合网| 99精品免费| 久久夜色精品| 国产一区二区在线观看免费播放| 亚洲欧美日韩精品在线| 欧美福利网址| 老司机精品视频网站| 国内久久精品| 国产伦精品一区二区三区四区免费 | 欧美黄污视频| 欧美/亚洲一区| 欧美精品99| 久久精品中文| 欧美凹凸一区二区三区视频| 伊人久久大香线蕉综合热线| 欧美午夜视频| 欧美日本国产精品| 午夜久久99| 西西裸体人体做爰大胆久久久| 欧美精品国产| 亚洲一区日韩在线| 久久在线91| 一区二区三区我不卡| 久久婷婷影院| 国产精品国产一区二区| 激情综合网址| 亚洲视频免费| 欧美三区美女| 国内精品美女在线观看| 亚洲国产高清视频| 亚洲国产片色| 激情欧美日韩| 欧美.www| 亚洲精品一级| 在线电影一区| 国产精品vip| 亚洲女人av| 国产精品免费一区二区三区观看| 欧美日韩国产探花| 欧美一区免费视频| 奶水喷射视频一区| 欧美三级小说| 久久国产精品高清| 亚洲国产高清视频| 欧美 日韩 国产在线| 欧美+日本+国产+在线a∨观看| 久久久久久久久久久一区| 一区免费视频| 99国产精品久久久久久久| 国产一区清纯| 国产精品一区亚洲| 欧美日本韩国一区二区三区| 欧美黄色精品| 国产乱码精品一区二区三区不卡| 欧美亚洲三区| 欧美日韩久久| 亚洲经典视频在线观看| 国产日韩在线一区二区三区| 欧美日韩日本国产亚洲在线| 99亚洲精品| 巨乳诱惑日韩免费av| 久久久久国内| 国产乱人伦精品一区二区| aa国产精品| 99国内精品久久久久久久软件| 香蕉精品999视频一区二区| 欧美精品网站| 在线成人国产| 欧美日韩一区二区三区免费| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 一本久道综合久久精品| 亚洲一区二区毛片| 欧美一区综合| 亚洲在线黄色| 亚洲看片网站| 一区二区三区国产盗摄| 久久最新视频| 香蕉精品999视频一区二区| 国产欧美日韩综合一区在线观看| 欧美日韩1080p| 久久婷婷国产综合尤物精品| 免费亚洲网站| 亚洲欧美国产精品桃花| 亚洲激情在线| 亚洲私人影院| aa级大片欧美三级| 乱码第一页成人| 亚洲一区二区三区色| 欧美日韩另类综合| 国产色综合网| 国产精品s色| 国产日韩欧美三区| 一本综合精品| 午夜精品网站| 亚洲一级影院| 欧美久久在线| 欧美私人啪啪vps| 亚洲视频狠狠| 欧美黄色aaaa| 午夜亚洲激情| 亚洲综合欧美日韩| 性欧美暴力猛交另类hd| 久久精品91|