《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM嵌入式系統(tǒng)的RFID驅(qū)動程序設(shè)計
基于ARM嵌入式系統(tǒng)的RFID驅(qū)動程序設(shè)計
來源:電子技術(shù)應(yīng)用2011年第8期
周 鵬,侯立剛,彭曉宏,暢 達
(北京工業(yè)大學(xué) 集成電路與系統(tǒng)研究室,北京100124)
摘要: 針對RFID系統(tǒng)的應(yīng)用需求,基于ARM9微處理器的S3C2440嵌入式系統(tǒng),實現(xiàn)了nRF905無線收發(fā)器的數(shù)據(jù)傳輸,為RFID系統(tǒng)提供了底層軟硬件接口。硬件使用基于S3C2440微控制器的嵌入式平臺和單片無線收發(fā)器nRF905;軟件使用ARM-Linux內(nèi)核,利用上層應(yīng)用程序發(fā)送接收數(shù)據(jù),底層驅(qū)動程序進行硬件間的數(shù)據(jù)傳輸。
中圖分類號: TP391.9
文獻標識碼: A
文章編號: 0258-7998(2011)08-0030-03
RFID driver design based on ARM embedded system
Zhou Peng,Hou Ligang,Peng Xiaohong,Chang Da
VLSI & System Lab, Beijing University of Technology,Beijing 100124,China
Abstract: To fulfill the application requirement of RFID system, data transfer of nRF905 is proposed based on S3C2440 ARM9 microprocessor,provided low-level software and hardware interface for RFID system. Hardware adopts S3C2440 chip-based embedded platform and the nRF905 wireless transceiver; software adopts ARM-Linux, using upper application procedure to send and receive data, low-level driver implements data transfer between hardware.
Key words : RFID;nRF905;device driver;ARM-Linux;s3c2440


    RFID具有讀取速度快、讀取距離遠、儲存信息量大、標簽上數(shù)據(jù)可加密、使用壽命長、工作環(huán)境適應(yīng)性強等多種優(yōu)點,已經(jīng)在各領(lǐng)域廣泛應(yīng)用[1]。
    將RFID技術(shù)與嵌入式系統(tǒng)相結(jié)合,將射頻識別模塊嵌入到嵌入式系統(tǒng)中,在嵌入式Linux下通過設(shè)計驅(qū)動程序?qū)崿F(xiàn)射頻模塊的收發(fā)功能。嵌入式RFID系統(tǒng)增加了RFID技術(shù)的通用性和可移植性,豐富了嵌入式系統(tǒng)通信接口外設(shè)功能,提升了嵌入式技術(shù)在無線通信領(lǐng)域的發(fā)展空間。
    當(dāng)前的嵌入式系統(tǒng)中并不支持RFID系統(tǒng),所以要進行硬件和軟件兩方面的擴展。硬件方面主要根據(jù)nRF905無線收發(fā)器的電氣特性進行接口擴展,利用基于ARM9嵌入式平臺的擴展口對nRF905進行控制;軟件方面利用Linux內(nèi)核良好的移植性和擴展性,編寫驅(qū)動程序控制射頻模塊的收發(fā)功能,在底層驅(qū)動以收集和分組數(shù)據(jù)并傳遞給上層應(yīng)用程序,由上層應(yīng)用程序與用戶進行交互。本文所研究的基于嵌入式系統(tǒng)的RFID驅(qū)動,將為嵌入式RFID系統(tǒng)提供底層軟硬件接口程序,為嵌入式內(nèi)核增添RFID管理機制,為上層應(yīng)用程序提供良好服務(wù),降低嵌入式RFID的開發(fā)難度,縮短開發(fā)周期,從而降低其成本,使RFID的應(yīng)用更加普及。
1 硬件電路的實現(xiàn)
    圖1是nRF905無線收發(fā)器接口擴展的硬件電路原理圖,硬件電路的實現(xiàn)主要基于S3C2440 ARM9微處理器和單片nRF905無線收發(fā)器的互聯(lián),以及根據(jù)nRF905電氣特性所做的一些外接電路。

    S3C2440是一款采用ARM920T內(nèi)核的高性能32 bit處理器,其主頻高達405 MHz,采用5級流水線和哈佛結(jié)構(gòu)。S3C2440包括兩個SPI接口,每個接口分別有兩個8 bit數(shù)據(jù)移位寄存器用于發(fā)送和接收。在SPI發(fā)送期間,數(shù)據(jù)同時發(fā)送(串行移出)和接收(串行移入)[2]。因此,利用處理器的SPI接口,可以很方便地用SPI接口與nRF905無線收發(fā)模塊進行數(shù)據(jù)傳輸。
    單片nRF905無線收發(fā)器工作在433/868/915 MHz的ISM頻段。由一個完全集成的頻率調(diào)制器、一個帶解調(diào)器的接收器、一個功率放大器、一個晶體振蕩器和一個調(diào)節(jié)器組成。其所具有的ShockBurst工作模式可以自動產(chǎn)生前導(dǎo)碼和CRC。可以通過SPI接口進行編程配置。
    nRF905采用Nordic公司的VLSI ShockBurst技術(shù)。ShockBurst技術(shù)使nRF905能夠提供高速的數(shù)據(jù)傳輸而不需要昂貴的高速MCU來進行數(shù)據(jù)處理/時鐘覆蓋。通過將與RF協(xié)議有關(guān)的高速信號處理器放到芯片內(nèi),nRF905提供給微控制器一個SPI接口,速率由專為控制器設(shè)定的接口速度決定。nRF905通過ShockBurst工作模式在RF以最大速率進行連接時,降低數(shù)字應(yīng)用部分的速率來降低在應(yīng)用中的平均電流消耗。在ShockBurst接收模式中,地址匹配(AM)和數(shù)據(jù)準備就緒(DR)信號通知微處理器一個有效的地址和數(shù)據(jù)包已經(jīng)各自接收完成。在ShockBurst發(fā)送模式中,nRF905自動產(chǎn)生前導(dǎo)碼和CRC校驗碼,數(shù)據(jù)準備就緒(DR)信號通知微處理器數(shù)據(jù)傳輸已經(jīng)完成[3]。

 


2 RFID驅(qū)動程序設(shè)計
2.1 整體驅(qū)動設(shè)計思想

    RFID驅(qū)動程序的設(shè)計采用自底而上(Down-Top)的方法。優(yōu)先設(shè)計底層部分即SPI接口的驅(qū)動程序,然后再設(shè)計上層RFID驅(qū)動。這種自低而上設(shè)計方法可以把大模塊分散為幾個小模塊,把大設(shè)計分為小設(shè)計,便于開發(fā)驗證,并且符合Linux模塊化的設(shè)計思想,是一種高效的設(shè)計方法。
    nRF905采用SPI接口與外界進行通信,因此底層SPI驅(qū)動主要完成nRF905的SPI和微處理器S3C2440的SPI模塊間的通信。上層RF驅(qū)動程序通過SPI接口向nRF905發(fā)送指令和數(shù)據(jù),最終由nRF905的主機控制器控制射頻收發(fā)器完成數(shù)據(jù)收發(fā),實現(xiàn)射頻模塊間的無線通信。
2.2 SPI驅(qū)動程序設(shè)計
    在硬件電路中,微處理器S3C2440的SPI0模塊與nRF905中的SPI接口相連接。SPI驅(qū)動的作用即完成主SPI與nRF905中從SPI的數(shù)據(jù)傳輸。為了便于驗證功能,提高項目開發(fā)效率,底層SPI驅(qū)動設(shè)計為獨立的模塊,并且進行調(diào)試,在SPI驅(qū)動設(shè)計的基礎(chǔ)上,完成上層RF驅(qū)動。
    在ARM9嵌入式平臺的內(nèi)核Linux2.6.12中,不包含SPI驅(qū)動程序,而在Linux內(nèi)核之后的版本中包含了SPI驅(qū)動。這樣,就可以移植新版本中的SPI驅(qū)動到本嵌入式平臺Linux2.6.12中。雖然這種SPI驅(qū)動通用性和功能性都較強,但其代碼量大,較多功能并不符合本設(shè)計的要求。因此,本設(shè)計選擇重新編寫SPI底層驅(qū)動,簡化其功能,建立環(huán)形緩沖區(qū),提高數(shù)據(jù)收發(fā)效率。
    SPI驅(qū)動程序作為設(shè)備文件,包含write、read、open、release、ioctl等幾個操作[4],其中關(guān)鍵性的硬件操作為讀寫操作,寫操作的主要作用是把用戶數(shù)據(jù)拷貝到內(nèi)核緩沖區(qū),并控制微控制器中的主SPI發(fā)送數(shù)據(jù)到nRF905中;讀操作與寫操作類似,而過程相反,即把主SPI接到的數(shù)據(jù)拷貝到內(nèi)核緩沖區(qū),再由內(nèi)核緩沖區(qū)拷貝到用戶空間申請好的數(shù)據(jù)結(jié)構(gòu)中。對SPI設(shè)備數(shù)據(jù)接收的監(jiān)控,驅(qū)動程序采用中斷的方式來通知系統(tǒng)SPI數(shù)據(jù)是否收發(fā)完畢,在SPI設(shè)備每發(fā)送完一組數(shù)據(jù)或接收到一組數(shù)據(jù)后,就會觸發(fā)中斷,信號由IRQ線進入,傳入CPU進行中斷處理。
    SPI驅(qū)動程序的寫過程包括建立數(shù)據(jù)結(jié)構(gòu)、建立環(huán)形緩沖區(qū),從用戶空間把數(shù)據(jù)拷貝到數(shù)據(jù)結(jié)構(gòu)中、調(diào)用write函數(shù)把數(shù)據(jù)拷貝進環(huán)形緩沖區(qū)中、寫滿后發(fā)送第一組數(shù)據(jù)到發(fā)送寄存器。當(dāng)SPI發(fā)送寄存器中的數(shù)據(jù)發(fā)送完畢后,會發(fā)出中斷信號,觸發(fā)微處理器中斷,系統(tǒng)進入中斷上下文。為了縮短中斷處理時間,提高中斷處理效率,驅(qū)動程序中采用了頂/底半部的處理方法[5],即中斷處理時間盡量地短,在中斷處理例程中調(diào)用tasklet調(diào)度函數(shù),將需要較多時間的中斷處理發(fā)到tasklet(即底半部)中處理。在tasklet中會把環(huán)形緩沖區(qū)的數(shù)據(jù)寫入發(fā)送寄存器,最終由SPI控制器發(fā)送出去。
    SPI驅(qū)動程序的讀過程和寫過程類似,SPI接收寄存器接到數(shù)據(jù)后觸發(fā)中斷。CPU接到中斷信號后進入中斷處理例程,調(diào)度tasklet進入底半部進行中斷處理,把接收寄存器中的數(shù)據(jù)拷貝到環(huán)形緩沖區(qū)中,然后喚醒正在休眠的進程,由read函數(shù)把環(huán)形緩沖區(qū)中的數(shù)據(jù)拷貝到申請好的數(shù)據(jù)結(jié)構(gòu)中,再拷貝至用戶空間。
2.3 RFID驅(qū)動程序設(shè)計
    完成SPI底層驅(qū)動后,上層RFID驅(qū)動的內(nèi)容主要是對nRF905配置寄存器進行配置,包括發(fā)送接收數(shù)據(jù)的字節(jié)數(shù)、目標地址、工作模式、時鐘頻率等通過nRF905自定義的SPI指令寫入寄存器中。因此要對SPI驅(qū)動中的write/read函數(shù)進行封裝,通過調(diào)用SPI驅(qū)動中的函數(shù)完成整體驅(qū)動的寄存器配置和數(shù)據(jù)傳輸功能。
    RFID驅(qū)動程序作為設(shè)備文件,同樣分為write、read、open、release、ioctl等幾個操作。RFID驅(qū)動程序的寫操作過程:首先將用戶空間中的數(shù)據(jù)拷貝至數(shù)據(jù)結(jié)構(gòu)中;然后使nRF905進入Standby模式,調(diào)用SPIwrite函數(shù)對數(shù)據(jù)寄存器和地址寄存器進行配置,把發(fā)送數(shù)據(jù)和目標地址寫入本地nRF905,之后進入ShockBurst發(fā)送模式,由本地nRF905向目標nRF905發(fā)送數(shù)據(jù);最后進程進入休眠狀態(tài),等待數(shù)據(jù)準備信號DR觸發(fā)中斷,由中斷處理例程喚醒進程,完成數(shù)據(jù)發(fā)送。圖2為RFID的發(fā)送流程圖。

    RFID的讀操作將判斷緩沖區(qū)是否為空,如果不為空,就把緩沖區(qū)中的數(shù)據(jù)拷貝至數(shù)據(jù)結(jié)構(gòu)中,并拷至用戶空間中;如果為空,進程就會進入休眠,等待緩沖區(qū)接收到數(shù)據(jù)后,進入中斷喚醒進程。在進入ShockBurst RX模式后,本地nRF905會自動監(jiān)測空中的信息,在nRF905發(fā)現(xiàn)和接收頻率相同的載波時,載波檢測信號CD被置高,觸發(fā)中斷,在中斷例程中只是延時一段時間,等待nRF905接收到有效的目的地址時,地址匹配信號置高。當(dāng)nRF905接收到有效的數(shù)據(jù)包后,數(shù)據(jù)準備就緒信號DR會觸發(fā)中斷,進入中斷例程,進入Standby模式,把接收到的數(shù)據(jù)通過SPI接口讀入緩沖區(qū)內(nèi),而后喚醒進程,把緩沖區(qū)中的數(shù)據(jù)拷貝至用戶空間中。當(dāng)所有的數(shù)據(jù)被讀出后,nRF905的AM和DR信號線會被置低。nRF905切換到下一狀態(tài)。RFID驅(qū)動接收流程如圖3所示。

3 功能測試
    測試主要分為兩部分,首先對底層SPI接口部分做調(diào)試,然后在此基礎(chǔ)上,對RFID驅(qū)動進行功能測試。
    硬件方面,利用S3C2440開發(fā)板的擴展口與nRF905模塊連接,擴展口中用到的GPIO資源在驅(qū)動程序中設(shè)置。另外,用RS-232串口將開發(fā)板與PC機相連,利用內(nèi)核的Debug功能[6],通過PC機對開發(fā)板進行控制,完成驅(qū)動加載和應(yīng)用程序的運行。
    軟件方面,基于S3C2440的嵌入式平臺需要完整的嵌入式操作系統(tǒng)資源,包括bootloader、kernel、文件系統(tǒng)。在對內(nèi)核進行剪裁后,將bootloader、kernel、文件系統(tǒng)通過JTAG燒入NAND Flash中。操作系統(tǒng)要保證內(nèi)核、文件系統(tǒng)以及硬件設(shè)備正常運行。
3.1 SPI驅(qū)動功能測試
    SPI驅(qū)動測試主要測試驅(qū)動程序的功能,測試驅(qū)動程序是否能夠控制SPI主從設(shè)備正確傳輸數(shù)據(jù)。資源包括S3C2440開發(fā)平臺、Linux2.6.12內(nèi)核源碼包、示波器。系統(tǒng)運行后,加載SPI驅(qū)動,運行編寫的上層應(yīng)用程序進行數(shù)據(jù)收發(fā),并用示波器觀察波形。
3.2 RFID驅(qū)動程序測試
    在測試SPI驅(qū)動成功后,重新啟動系統(tǒng),待系統(tǒng)成功運行后,加載RFID驅(qū)動程序,運行為其編寫的測試程序,測試兩nRF905無線模塊間的通信。S3C2440的GPIO資源與nRF905信號線對應(yīng)關(guān)系如下:
    Power down模式:    PWR    GPJ12
    載波檢測輸出:    CD        GPG6
    地址匹配輸出:    AM        GPB9
    數(shù)據(jù)就緒輸出:    DR        GPG1
    SPI主入從出:    MISO    GPE11
    SPI主出從入:    MOSI    GPE12
    SPI時鐘:        SCK        GPE13
    SPI使能:        CSN        GPB10
    發(fā)送/接收使能:    TRX_CE    GPG8
    發(fā)送/接收模式:    TX_EN    GPG0
    兩個平臺分別為:ARM9嵌入式平臺和MSP430單片機平臺。在ARM平臺運行發(fā)送測試程序,而單片機平臺運行接收測試程序,之后交換。接收端將接收到發(fā)送端發(fā)送的數(shù)據(jù),并將數(shù)據(jù)在PC機終端顯示。
    當(dāng)ARM發(fā)送端的應(yīng)用程序中發(fā)送字符串“aaaaaaaa”時,單片機端的nRF905模塊接收寄存器中收到轉(zhuǎn)換后的ASCII碼“97”;當(dāng)ARM端作為接收端而單片機作為發(fā)送端時,ARM端運行接收程序后,在用戶空間即顯示終端上顯示了接收到的數(shù)據(jù)“abcd…”。表明此RFID驅(qū)動程序成功實現(xiàn)了控制nRF905無線收發(fā)器進行數(shù)據(jù)接收傳輸?shù)墓δ堋?br/>     本文介紹了一種基于ARM9 S3C2440嵌入式平臺擴展RFID驅(qū)動的設(shè)計方案,設(shè)計了硬件擴展電路和相應(yīng)的驅(qū)動程序,通過了并測試。實現(xiàn)了嵌入式平臺間的RFID短距離即時通信功能。嵌入式RFID驅(qū)動將推動RFID技術(shù)在應(yīng)用領(lǐng)域中的發(fā)展,將會支持更多的射頻硬件,根據(jù)此驅(qū)動可以開發(fā)更多的應(yīng)用程序,滿足多種需求。
參考文獻
[1] 董麗華.RFID技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社,2008.
[2] SAMSUNG.S3C2440A user’s manual reltminary[OL]. Revision0,2004.
[3] NORDIC Semiconductor.nRF905_rev1_1[OL].2004:1-36.
[4] 劉淼.嵌入式系統(tǒng)接口設(shè)計與Linux驅(qū)動程序開發(fā)[M]. 北京:北京航空航天大學(xué)出版社,2006.
[5] Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman. Linux device drivers[M].Sebastopol:O’Reilly Media,2005.
[6] BOVERT D P,MARCO C著.深入理解Linux內(nèi)核(第三版)[M].陳莉君,張瓊聲,張宏偉,譯.北京:中國電力出版社,2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品免费在线| 午夜精品在线视频| 9色porny自拍视频一区二区| 国产午夜精品一区理论片飘花| 久久影视三级福利片| 亚洲女女做受ⅹxx高潮| 亚洲精品少妇30p| 久久精品道一区二区三区| 亚洲视频在线一区| 亚洲精品视频啊美女在线直播| 激情久久五月天| 国产美女精品人人做人人爽| 欧美日韩性生活视频| 欧美大片va欧美在线播放| 久久久久国产精品麻豆ai换脸| 亚洲字幕在线观看| 亚洲视频福利| 亚洲精品久久视频| 亚洲盗摄视频| 久久精品理论片| 性做久久久久久| 亚洲午夜一二三区视频| 99pao成人国产永久免费视频| 在线观看成人av电影| 国产一区二区三区高清播放| 国产精品视频yy9299一区| 欧美视频在线观看免费| 欧美日韩精品免费看| 欧美剧在线观看| 欧美日本成人| 欧美另类女人| 欧美精品大片| 欧美精品七区| 亚洲尤物影院| 亚洲综合日本| 午夜精品久久久久久久久久久久久 | 欧美精品国产精品| 欧美视频中文在线看 | 久久精品国亚洲| 牛牛国产精品| 欧美日韩免费区域视频在线观看| 国产精品超碰97尤物18| 国产视频一区二区在线观看| 在线看片一区| 一本色道久久综合狠狠躁的推荐| 亚洲欧美一区二区三区久久| 亚洲国产导航| 亚洲午夜精品福利| 久久久999精品免费| 欧美高清不卡| 国产精品视频不卡| 亚洲盗摄视频| 亚洲一区制服诱惑| 亚洲国产视频一区| 亚洲综合三区| 欧美gay视频激情| 国产精品日韩一区| 亚洲成人在线网| 亚洲一区二区三区三| 亚洲激情不卡| 西西裸体人体做爰大胆久久久| 噜噜噜91成人网| 国产精品裸体一区二区三区| 尤物视频一区二区| 亚洲一二三区精品| 亚洲日本一区二区| 欧美一区二区三区四区在线观看地址| 欧美电影免费网站| 国产深夜精品福利| 日韩一级精品视频在线观看| 久久精品一区二区国产| 亚洲自拍偷拍麻豆| 欧美精品激情在线| 影音先锋日韩精品| 亚洲欧美久久久| 亚洲手机视频| 免费看亚洲片| 国产日韩欧美另类| 中文欧美日韩| 亚洲一区二区3| 亚洲激情影视| 欧美一区二区大片| 欧美日本一区二区高清播放视频| 国产亚洲aⅴaaaaaa毛片| 99精品国产在热久久婷婷| 亚洲国产另类精品专区| 欧美在线视频全部完| 欧美日韩精品伦理作品在线免费观看| 狠狠色综合网| 亚洲综合电影一区二区三区| 日韩一区二区精品葵司在线| 久久蜜桃av一区精品变态类天堂| 国产精品久久久久一区二区三区共| 亚洲人成绝费网站色www| 久久精品国产77777蜜臀| 午夜欧美精品| 欧美先锋影音| 日韩午夜激情| 日韩午夜激情| 免费观看久久久4p| 国产综合一区二区| 午夜精品久久久久久| 亚洲欧美日韩国产中文在线| 欧美日韩成人在线视频| 亚洲高清免费| 亚洲日韩中文字幕在线播放| 久久人人超碰| 国产在线欧美| 欧美影片第一页| 久久国产视频网| 国产精品一区在线观看你懂的| 中国女人久久久| 中文国产亚洲喷潮| 欧美日韩国产大片| 亚洲精品欧美日韩| 亚洲精品美女在线| 欧美国产三区| 亚洲激情视频在线| 亚洲精品视频二区| 欧美国产欧美亚州国产日韩mv天天看完整| 黄色国产精品| 亚洲激情成人在线| 欧美激情中文字幕乱码免费| 在线日本高清免费不卡| 亚洲电影成人| 免费观看不卡av| 亚洲高清免费| 亚洲麻豆视频| 欧美日韩国产首页在线观看| 亚洲人成在线观看网站高清| 亚洲靠逼com| 欧美午夜不卡| 亚洲在线观看视频| 欧美专区中文字幕| 极品av少妇一区二区| 亚洲黄色视屏| 欧美久久在线| 中文日韩在线视频| 欧美诱惑福利视频| 国产综合欧美| 亚洲黄色在线视频| 欧美二区在线播放| 日韩视频三区| 性欧美暴力猛交69hd| 国产偷自视频区视频一区二区| 午夜精品www| 牛人盗摄一区二区三区视频| 亚洲精品社区| 亚洲欧美日韩区| 韩日精品视频| 一本色道久久综合亚洲精品按摩| 国产精品国产馆在线真实露脸| 午夜国产一区| 欧美激情影院| 亚洲性夜色噜噜噜7777| 久久精品一区二区国产| 亚洲第一区中文99精品| 一区二区高清视频| 国产日本欧美一区二区| 亚洲黑丝在线| 国产精品久久久久久久久动漫| 亚洲欧美另类在线观看| 麻豆av福利av久久av| 亚洲精品女人| 久久精品一本久久99精品| 91久久中文字幕| 欧美一区二区视频观看视频| 激情国产一区| 亚洲视频一区二区在线观看| 国产一区二区三区在线观看视频 | 9久草视频在线视频精品| 国产精品美女久久久浪潮软件| 久久精品99无色码中文字幕| 欧美日韩国产精品一区二区亚洲| 亚洲欧美一区二区三区久久| 欧美高清视频一区二区| 亚洲主播在线播放| 欧美不卡视频| 午夜精品国产精品大乳美女| 欧美激情一区二区三区高清视频 | 欧美精品福利视频| 欧美一级播放| 欧美日韩影院| 亚洲激精日韩激精欧美精品| 国产精品理论片| 亚洲精品视频在线| 国产午夜精品视频| 亚洲视频一区在线| 亚洲丰满在线| 久久国产精品毛片| 99视频精品免费观看| 蜜臀a∨国产成人精品| 亚洲一区二区三区四区中文| 欧美成人一区二区三区| 亚洲欧美在线x视频| 欧美三级乱人伦电影| 亚洲国产一区二区三区在线播 | 99在线热播精品免费99热| 久久一区二区视频| 亚洲欧美日韩精品久久|