色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ARM9內(nèi)核和讀寫器實現(xiàn)RFID安檢系統(tǒng)的設(shè)計

電子設(shè)計 ? 來源:微型機與應(yīng)用 ? 作者:王志亮,官洪運,王 ? 2020-03-07 08:02 ? 次閱讀

RFID射頻識別)是一種非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),識別工作無需人工干預(yù),可工作于各種惡劣環(huán)境下。RFID技術(shù)可識別高速運動物體并可同時識別多個標(biāo)簽, 操作快捷方便。非接觸IC卡是目前RFID系統(tǒng)中最常用的一種電子標(biāo)簽,它誕生于20世紀(jì)90年代初,是世界上最近幾年發(fā)展起來的一項新技術(shù),它成功地將射頻識技術(shù)和IC卡技術(shù)結(jié)合起來,解決了無源(卡中無電源)和免接觸這一難題,是電子器件領(lǐng)域的一大突破。由于存在著磁卡和接觸式IC卡不可比擬的優(yōu)點,使之一經(jīng)問世,便立即引起廣泛的關(guān)注,并以驚人的速度得到推廣應(yīng)用,如我國的第二代公民身份證、公交卡、ETC免停車付費卡等。可以說RFID技術(shù)越來越多地應(yīng)用到我國身份安檢、質(zhì)量安檢、車輛安檢、執(zhí)法安檢等諸多安檢系統(tǒng)中。

本文就是針對安檢系統(tǒng)這種工程背景下RFID通信的應(yīng)用開發(fā)。現(xiàn)在一般的RFID通信都基于串口,串口因其通用性、方面性和優(yōu)良性能得到了廣泛的應(yīng)用。由于安檢系統(tǒng)中往往涉及大量重要數(shù)據(jù)的讀取、通信以及實時更新,因此數(shù)據(jù)庫技術(shù)的引入必不可少。同時本文選擇了Linux操作系統(tǒng),眾所周知Linux同Windows相比性能更安全、更可靠,而且Linux還是一款免費的代碼開源的操作系統(tǒng),裁減內(nèi)核更方便、快捷,與其他操作系統(tǒng)相比有著許多獨特的優(yōu)勢,更加適合用作嵌入式操作系統(tǒng)。

1、 系統(tǒng)結(jié)構(gòu)介紹

RFID安檢系統(tǒng)主要包括RFID前段讀寫器、嵌入式Linux終端兩大部分,其結(jié)構(gòu)如圖1所示。

基于ARM9內(nèi)核和讀寫器實現(xiàn)RFID安檢系統(tǒng)的設(shè)計

其中嵌入式終端的CPU采用ARM9內(nèi)核,內(nèi)核執(zhí)行速率達幾百兆赫茲,可以很好地滿足RFID數(shù)據(jù)的讀取和存儲。由于嵌入式系統(tǒng)一般是一個經(jīng)過裁剪、資源極其有限的系統(tǒng),因此對于安檢系統(tǒng)中涉及到的大量數(shù)據(jù)只能存取到外圍存儲設(shè)備中,本方案中的SD卡模塊正是用來存儲數(shù)據(jù)庫的,當(dāng)RFID讀寫器讀取到指定數(shù)據(jù),便在SD卡中的相關(guān)數(shù)據(jù)庫文件中查詢,并根據(jù)查詢結(jié)果做出相關(guān)反應(yīng)并及時更新本地數(shù)據(jù)庫。

2、 Linux下串口的開發(fā)

在Linux下對串口進行配置、打開、讀寫等一系列的操作其使用方式與文件操作一樣,區(qū)別在于串口是一個終端設(shè)備。Linux中的串口設(shè)備文件存放于/dev目錄下,其中串口1、串口2一般對應(yīng)設(shè)備名依次為"/dev/ttyS0"、"/dev/ttyS1"。在使用串口之前必須設(shè)置相關(guān)配置,包括波特率、數(shù)據(jù)位、校驗位、停止位等。

串口開發(fā)的流程和串口開發(fā)過程中串口配置的流程分別如圖2(a)、圖2(b)所示。

基于ARM9內(nèi)核和讀寫器實現(xiàn)RFID安檢系統(tǒng)的設(shè)計

串口設(shè)置由下面結(jié)構(gòu)體實現(xiàn):

Struct termios {

tcflag_t c_iflag;/* input flags */

tcflag_t c_oflag;/* output flags*/

tcflag_t c_cflag;/*control flags */

tcflag_t c_lflag;/* local flags */

tcflag_t c_cc[NCSS];/* control characters */

}

按照串口配置流程,對termios結(jié)構(gòu)體設(shè)置相關(guān)參數(shù),當(dāng)串口按自己的設(shè)置要求配置成功后,即可將串口當(dāng)做普通I/O文件,使用read和write函數(shù)對串口進行讀取。

3、 sqlite3數(shù)據(jù)庫的應(yīng)用開發(fā)

sqlite3數(shù)據(jù)庫是一種嵌入式數(shù)據(jù)庫,其目標(biāo)是盡量簡單,因此拋棄了傳統(tǒng)企業(yè)級數(shù)據(jù)庫的種種復(fù)雜特性,只實現(xiàn)對于數(shù)據(jù)庫而言必備的功能。盡管簡單性是sqlite3追求的首要目標(biāo),但是其功能和性能都非常出色,具有支持SQL92標(biāo)準(zhǔn)、所有數(shù)據(jù)存放到單獨的文件中支持的最大文件可達2 TB、數(shù)據(jù)庫可以在不同字節(jié)的機器之間共享、體積小、系統(tǒng)開銷小、檢索效率高、支持多種計算機語言、源碼開放,并且可以用于任何合法用途等特性。

3.1 sqlite3數(shù)據(jù)庫的移植

sqlite3數(shù)據(jù)庫的移植過程如下所述:

(1)首先從sqlite官網(wǎng)上下載最新的sqlite3源碼包;

(2)解壓源碼包,并進入解壓目錄:

tar -zxvf sqlite-3.6.23.1.tar.gz

cd sqlite-3.6.23.1

(3)配置Configure腳本,使用相關(guān)選項生成編譯文件Makefile文件:

。/configure–-enable-share –-prefix=。/sqlite-3.6.23.1/result –-host=arm-linux

選項 -enable-share指定使用Linux的共享庫

選項 -prefix指定了安裝目錄為。/sqlite-3.6.23.1/result

選項 -host指定了編譯環(huán)境為目標(biāo)機為arm的交叉編譯環(huán)境

(4)交叉編譯,生成嵌入式終端下數(shù)據(jù)庫的管理程序和庫文件, 最終在result目錄下得到數(shù)據(jù)庫管理程序sqlite3(相當(dāng)于Windows下Access程序),提供編程所需的API的動態(tài)庫libsqlite3.so.0.8.6,編程所需的頭文件sqlite3ext.h sqlite3.h。交叉編譯的命令如下:

Make

Make install

(5)將數(shù)據(jù)庫管理程序sqlite3、提供編程所需的API的動態(tài)庫libsqlite3.so.0.8.6及其1個軟鏈接拷貝到開發(fā)板根文件系統(tǒng)相應(yīng)位置,分別在嵌入式終端的/usr/bin和/usr/lib這兩個目錄下,命令如下:

Cp result/bin/sqlite3 /arm-linux/usr/bin

Cp –l result/lib/libsqlite3.so* /arm-linux/usr/lib

(6)為了能在開發(fā)機上編譯,調(diào)用了sqlite3數(shù)據(jù)庫的API的應(yīng)用程序,需要將動態(tài)庫libsqlite3.so.0.8.6及其2個軟鏈接、2個頭文件拷貝到交叉編譯工具鏈所在目錄的適當(dāng)位置,至此sqlite3數(shù)據(jù)庫的移植和開發(fā)環(huán)境的配置已完成。只要輸入SQL語言便可以進行相關(guān)操作。

3.2 Linux下sqlite3的C語言開發(fā)

sqlite3里最常用到的是sqlite3 *類型。從數(shù)據(jù)庫打開時開始,sqlite3就要為這個類型準(zhǔn)備好內(nèi)存,直到數(shù)據(jù)庫關(guān)閉,整個過程都需要用到這個類型。數(shù)據(jù)庫打開時起,這個類型的變量就代表了所要操作的數(shù)據(jù)庫。

(1)打開數(shù)據(jù)庫API接口函數(shù)

int sqlite3_open(文件名, sqlite3 *);

用這個函數(shù)開始數(shù)據(jù)庫操作。需要傳入兩個參數(shù),其中之一是數(shù)據(jù)庫文件名,例如:/home/test.db文件名不需要一定存在,如果此文件不存在,sqlite3會自動建立;如果存在,就嘗試把它當(dāng)數(shù)據(jù)庫文件打開。

sqlite3 * 參數(shù)即前面提到的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。函數(shù)返回值表示操作是否正確,如果是SQLITE_OK則表示操作正常。相關(guān)的返回值sqlite3定義了一些宏,具體這些宏的含義可以參考sqlite3.h文件。

(2)關(guān)閉數(shù)據(jù)庫API接口函數(shù)

int sqlite3_close(sqlite3 *);

如果前面用sqlite3_open開啟了一個數(shù)據(jù)庫,結(jié)尾時不要忘了用這個函數(shù)關(guān)閉數(shù)據(jù)庫。

(3)執(zhí)行SQL語句API接口

由于嵌入式sqlite3數(shù)據(jù)庫支持SQL語言,因而調(diào)用C中相關(guān)執(zhí)行函數(shù)就如同在終端下操作數(shù)據(jù)庫一樣方面快捷,下面是具體的API函數(shù):

這就是執(zhí)行一條sql語句的函數(shù)。

Int sqlite3_exec(sqlite3 * db, const char *sql,sqlite3_callback,Void * ,char ** errmsg);

參數(shù)1是調(diào)用打開數(shù)據(jù)庫函數(shù)sqlite3_open()打開的數(shù)據(jù)庫對象。

參數(shù)2 是一條待執(zhí)行的SQL語句,其語法格式同標(biāo)準(zhǔn)SQL語言規(guī)范一樣,如創(chuàng)建 table時插入的記錄如下:

create table student(id varchar(10) primary key, age smallint);

此語句創(chuàng)建了名為student的表,表中定義了id(學(xué)號)和年紀(jì)兩個變量,其中id是主鍵。

Insert into student values(12345678,21);

此語句向student表中插入一組數(shù)據(jù)(12345678,21),其中學(xué)號為12345678,學(xué)生年齡為21。

對于數(shù)據(jù)庫的其他操作,如數(shù)據(jù)庫更新、修改、查找等用法同上。

參數(shù)3 sqlite3_callback是自定義的回調(diào)函數(shù),對執(zhí)行結(jié)果的每一行都執(zhí)行一次這個函數(shù)。

參數(shù)4 void *是調(diào)用者所提供的指針,你可以傳遞任何一個指針參數(shù)到這里,這個參數(shù)最終會傳到回調(diào)函數(shù)里,如果不需要傳遞指針給回調(diào)函數(shù),可以填NULL。

參數(shù)5 char ** errmsg是錯誤信息。sqlite3里面有很多固定的錯誤信息。執(zhí)行sqlite3_exec之后,如果執(zhí)行失敗則可以查閱這個指針,即可知道執(zhí)行過程中錯誤發(fā)生的位置。

3.3 串口同sqlite3通信測試與分析

為了驗證sqlite3數(shù)據(jù)庫在嵌入式Linux[3-4]終端下的執(zhí)行效率和穩(wěn)定性,為此做了一個簡單的測試實驗:通過上位機程序向嵌入式Linux終端的串口定時發(fā)送字符串;嵌入式Linux終端接收到字符串便立即寫入到下位機的數(shù)據(jù)庫中。自后查看數(shù)據(jù)中的數(shù)據(jù),看看有沒有遺漏和誤碼。上位機的程序使用VC6.0開發(fā),整個程序界面只設(shè)了一個按鍵,按下按鍵,上位機就向嵌入式Linux終端不停地發(fā)送字符串?dāng)?shù)據(jù),按鍵響應(yīng)程序設(shè)計如下:

void CSendDlg::OnButton_Click()

{

state=1;

while(1)

{

str.Format("第%3d條記錄",state);//格式化字符串格式

m_Port.WriteToPort(str,str.GetLength());//向串口發(fā)送字符串

state++;

Sleep(100);//延時100 ms

}

可見程序是個定時100 ms便發(fā)送一條字符串的循環(huán),而且發(fā)送的每一條字符串事先通過str.Format格式化為固定長度,本例中是11 B。按下按鍵后發(fā)送的第一條字符串為:"第1條記錄",每發(fā)送一條字符串里面的數(shù)字加"1",這樣寫到數(shù)據(jù)庫中就可以很清楚地查看有沒有遺漏和誤碼,而且可以通過修改Sleep函數(shù)的延時參數(shù)檢測出嵌入式Linux終端下sqlite3數(shù)據(jù)庫操作的速度。

下位機嵌入式Linux終端的程序設(shè)計為:先創(chuàng)建一個數(shù)據(jù)庫文件test.db,接著就是一個死循環(huán),串口不停地查找有沒有數(shù)據(jù)寫入,當(dāng)檢測到數(shù)據(jù)時,便寫入到test.db中,若寫入有誤,則立即跳出循環(huán),終止程序。

char sql[100]="create table receive(name varchar(40))";

qlite3_open("/var/sd/test.db",&db);//在SD卡中創(chuàng)建

test.db文件

sqlite3_exec(db,sql,0,0,&errmsg);//在test.db文件中插入

表receiver

fd=open_port(fd,1)//打開串口1

set_opt(fd,9600,8,'N',1)//配置串口屬性,開始通信

while(1)

{

n=0;

i=0;

bzero(read_buf, sizeof(read_buf));

if( (n=read(fd, read_buf, sizeof(read_buf)))

Continue;//未讀到數(shù)據(jù)則繼續(xù)查找串口

printf("recever %d words ",n);//輸出讀到的字符數(shù)

sprintf(sql,"insert into receive values(%s)",read_buf);

result =sqlite3_exec(db,sql,0,0,errmsg);//插入數(shù)據(jù)

到數(shù)據(jù)庫中

if(result==SQLITE_OK)

printf("第%3d條數(shù)據(jù)寫入成功",++i);

//若插入成功則提示

else break;//若插入不成功,則跳出循環(huán)

}

測試結(jié)果如圖3所示。

基于ARM9內(nèi)核和讀寫器實現(xiàn)RFID安檢系統(tǒng)的設(shè)計

整個測試根據(jù)上位機串口發(fā)送的頻率不同做了多組實驗,每組實驗寫入1 000個數(shù)據(jù),最終結(jié)果分析如下:上位機在定時80 ms左右或大于80 ms的情況下發(fā)送數(shù)據(jù)時,數(shù)據(jù)庫寫入的誤碼率為零;當(dāng)定時時間小于80 ms時,隨著定時時間變小誤碼率會越來越高。通過數(shù)據(jù)分析可知原因有以下幾點:一是數(shù)據(jù)庫本身寫入需用時幾十毫秒,二是SD卡并非高速讀寫設(shè)備,當(dāng)數(shù)據(jù)還未完全寫入數(shù)據(jù)庫時若有新數(shù)據(jù)發(fā)過來,則下次讀寫將會發(fā)生難以估計的錯誤。實驗還得出了當(dāng)把數(shù)據(jù)庫文件寫入到系統(tǒng)Flash上的總耗時約為50 ms,比寫入SD卡中約少30 ms。不過就80 ms左右的一次讀寫速度而言,嵌入式數(shù)據(jù)庫sqlite3執(zhí)行效率和穩(wěn)定性非常可觀,現(xiàn)在一般的RFID讀寫器通過串口執(zhí)行一條指令的時間也需幾十毫秒的時間,因而使用sqlite3數(shù)據(jù)庫在執(zhí)行速率和穩(wěn)定性上對于安檢系統(tǒng)中RFID讀寫數(shù)據(jù)的處理可以很好地達到要求,而且sqlite3還支持?jǐn)?shù)據(jù)加密,安全性同樣非常出色。

本文介紹了此RFID安檢系統(tǒng)的硬件框架和軟件設(shè)計,實現(xiàn)了RFID安檢系統(tǒng)基于嵌入式Linux下的串口通信以及數(shù)據(jù)庫的應(yīng)用。最后通過實驗證明并確定了其在速率、穩(wěn)定性方面的可行性,對于當(dāng)今大多數(shù)RFID安檢系統(tǒng)的開發(fā)具有一定的參考價值。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RFID
    +關(guān)注

    關(guān)注

    388

    文章

    6144

    瀏覽量

    237764
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11295

    瀏覽量

    209348
  • 讀寫器
    +關(guān)注

    關(guān)注

    3

    文章

    656

    瀏覽量

    38842
收藏 人收藏

    評論

    相關(guān)推薦

    一種基于ARM9和MF RC531的高性能讀寫器設(shè)計

    日益增長的交易數(shù)據(jù)的要求。針對以上問題,設(shè)計了一種基于ARM9和MF RC531的高性能讀寫器,能夠進一步提高票卡刷卡效率,節(jié)約乘客進出站時間,提高票卡讀寫數(shù)據(jù)準(zhǔn)確性,為實現(xiàn)
    發(fā)表于 07-19 07:02

    采用FPGA實現(xiàn)RFID讀寫器設(shè)計

    控制管理、防偽等眾多領(lǐng)域,甚至軍事用途都具有廣泛的應(yīng)用前景。RFID系統(tǒng)一般包括應(yīng)用系統(tǒng)(PC主機)、讀寫器和電子標(biāo)簽三個部分。RFID電子
    發(fā)表于 07-29 07:58

    采用ARM實現(xiàn)雙頻RFID讀寫系統(tǒng)設(shè)計

    雙頻系統(tǒng),使系統(tǒng)兼具低頻可穿透性和高頻良好的距離、速度、抗沖突性等方面的優(yōu)勢。鑒于目前國內(nèi)市場上應(yīng)用最為廣泛的射頻卡和讀寫器實現(xiàn)方法,本文采用ARM
    發(fā)表于 07-29 06:04

    RFID讀寫器操作距離怎么變長?

    無線射頻識別(RFID)讀寫器讀寫距離取決于諸多因素,如RFID讀寫器的傳輸功率、讀寫器的天線
    發(fā)表于 08-05 07:05

    生產(chǎn)線RFID系統(tǒng)超高頻讀寫器的設(shè)計

    根據(jù)生產(chǎn)線特定需要,介紹了一種基于ARMRFID超高頻讀寫器系統(tǒng),使用LPC2138微控制和射頻收發(fā)芯片ADF7020 作為
    發(fā)表于 05-27 16:16 ?45次下載

    基于GPRS的無線RFID讀寫器的研究與開發(fā)

    針對目前RFID讀寫器無法隨身攜帶,實現(xiàn)遠程的IC卡讀寫操作的問題,采用GPRS無線網(wǎng)絡(luò)作為數(shù)據(jù)傳輸?shù)妮d體,實現(xiàn)了無線
    發(fā)表于 09-30 17:31 ?38次下載
    基于GPRS的無線<b class='flag-5'>RFID</b><b class='flag-5'>讀寫器</b>的研究與開發(fā)

    ARM9芯片適用于超高頻讀寫器的PIE編碼以及MILLER2解碼的實現(xiàn)方式

    由于ARM9芯片集成了很多擴展接口,同時進行操作系統(tǒng)移植等更高層次的設(shè)計也變得很容易,但對時序邏輯處理較難。因而本文提出了基于ARM9的UHF RFID
    發(fā)表于 06-29 09:30 ?2524次閱讀
    <b class='flag-5'>ARM9</b>芯片適用于超高頻<b class='flag-5'>讀寫器</b>的PIE編碼以及MILLER2解碼的<b class='flag-5'>實現(xiàn)</b>方式

    基于RFID的防偽讀寫器是如何設(shè)計實現(xiàn)

    傳統(tǒng)的RFID防偽應(yīng)用模式只考慮利用標(biāo)簽的唯一編碼來實現(xiàn)防偽驗證,由于無線信道的開放性,系統(tǒng)難以防止來自非法讀寫器的標(biāo)簽數(shù)據(jù)惡意讀取和假數(shù)據(jù)欺騙。
    發(fā)表于 01-03 11:45 ?1977次閱讀
    基于<b class='flag-5'>RFID</b>的防偽<b class='flag-5'>讀寫器</b>是如何設(shè)計<b class='flag-5'>實現(xiàn)</b>的

    rfid讀寫器的組成部分包括什么_rfid讀寫器的主要功能

    本文首先介紹了RFID讀寫器的概念,其次闡述了rfid讀寫器的組成部分,最后介紹了rfid讀寫器
    發(fā)表于 04-10 09:14 ?2w次閱讀

    rfid讀寫器有哪些技術(shù)指標(biāo)_rfid讀寫器的發(fā)展趨勢

    本文主要闡述了rfid讀寫器的技術(shù)指標(biāo),另外還分析了rfid讀寫器往后的發(fā)展趨勢。
    發(fā)表于 04-10 09:23 ?4297次閱讀

    rfid讀寫器的作用_rfid讀寫器怎么使用

    本文首先闡述了rfid讀寫器的作用,其次介紹了RFID讀寫器頻率,最后介紹了rfid讀寫器的使用
    發(fā)表于 04-10 09:36 ?6419次閱讀

    RFID讀寫器的使用方法

    RFID讀寫器通過天線與RFID電子標(biāo)簽進行無線通信,可以實現(xiàn)對標(biāo)簽識別碼和內(nèi)存數(shù)據(jù)的讀出或?qū)懭氩僮鳌5湫偷?b class='flag-5'>RFID
    發(fā)表于 05-07 14:42 ?5657次閱讀
    <b class='flag-5'>RFID</b><b class='flag-5'>讀寫器</b>的使用方法

    RFID讀寫器有哪些種類如何選擇?

    RFID讀寫器可分為固定式讀寫器和手持讀寫器,各種各樣的讀寫器擴大了RFID的應(yīng)用范圍。如何選擇
    發(fā)表于 01-05 09:31 ?2264次閱讀

    RFID讀寫器的種類和應(yīng)用

    RFID讀寫器可分為固定式讀寫器和手持讀寫器,各種各樣的讀寫器擴大了RFID的應(yīng)用范圍。如何選擇
    的頭像 發(fā)表于 01-04 20:59 ?1746次閱讀
    <b class='flag-5'>RFID</b><b class='flag-5'>讀寫器</b>的種類和應(yīng)用

    基于ARM9內(nèi)核的嵌入式檢測系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于ARM9內(nèi)核的嵌入式檢測系統(tǒng)設(shè)計.pdf》資料免費下載
    發(fā)表于 10-12 09:48 ?0次下載
    基于<b class='flag-5'>ARM9</b><b class='flag-5'>內(nèi)核</b>的嵌入式檢測<b class='flag-5'>系統(tǒng)</b>設(shè)計
    主站蜘蛛池模板: 香蕉尹人综合精品| 久久精品日本免费线| 国产成人欧美日韩在线电影| 精品国产99久久久久久麻豆| 国产色欲一区二区精品久久呦| 国产色精品久久人妻无码看片| 给个男人都懂的网址2019| 国产精品亚洲视频在线观看| 国模啪啪久久久久久久| 久久天堂视频| 色多多污网站在线观看| 亚洲精品成人久久久影院| 2018三级网站免费观看| 成人在线观看视频免费| 国产一卡在线观看完整版| 乱辈通奷XXXXXHD猛交| 欧美一区二区三区男同| 性肥胖BWBWBW| 99视频一区| 极品少妇小泬50PTHEPON| 欧美高清69hd| 亚洲AV精品乱码专区| 97国内精品久久久久久久影视| 国产精品久久久久久熟妇吹潮软件| 久草热8精品视频在线观看| 人妻中文字幕乱人伦在线| 一个人免费完整在线观看影院 | 欧美一区二区三区男同| 亚洲精品影院久久久久久| jizz黑丝| 蜜臀AV色欲A片无码一区| 亚洲视频在线观看视频| 调教美丽的白丝袜麻麻视频| 免费看亚洲| 最新在线黄色网址| 精品人妻伦九区久久AAA片69| 思思re热免费精品视频66| 扒开女人下面使劲桶动态图| 久久亚洲成a人片| 亚洲无碼网站观看| 韩国电影real在线观看完整版|