欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

STM32嵌入式數(shù)據(jù)采集存儲(chǔ)系統(tǒng)設(shè)計(jì):從ADC、DMA到FatFs文件系統(tǒng)的完整實(shí)現(xiàn)

STM32嵌入式數(shù)據(jù)采集存儲(chǔ)系統(tǒng)設(shè)計(jì):從ADC、DMA到FatFs文件系統(tǒng)的完整實(shí)現(xiàn) 1. 項(xiàng)目概述從需求到實(shí)現(xiàn)的系統(tǒng)化思考最近在做一個(gè)工業(yè)環(huán)境監(jiān)測(cè)的小項(xiàng)目核心需求是把幾個(gè)傳感器的數(shù)據(jù)穩(wěn)定地采集上來(lái)然后存起來(lái)方便后續(xù)分析。這個(gè)需求聽(tīng)起來(lái)簡(jiǎn)單但真動(dòng)手做你會(huì)發(fā)現(xiàn)從選型、硬件設(shè)計(jì)到軟件架構(gòu)每一步都有不少門道。我最終選擇了STM32作為主控因?yàn)樗阅茏銐?、生態(tài)成熟、成本可控非常適合這類嵌入式數(shù)據(jù)采集場(chǎng)景。這個(gè)系統(tǒng)本質(zhì)上是一個(gè)典型的嵌入式數(shù)據(jù)采集與存儲(chǔ)DAQ系統(tǒng)它要解決的核心問(wèn)題是如何在資源受限的單片機(jī)環(huán)境下可靠、準(zhǔn)確、高效地完成“感知-處理-記錄”這一鏈條。對(duì)于剛接觸STM32或者嵌入式數(shù)據(jù)采集的朋友來(lái)說(shuō)可能會(huì)覺(jué)得無(wú)從下手ADC采樣速率怎么定數(shù)據(jù)存哪里SD卡還是Flash怎么保證存儲(chǔ)不丟數(shù)據(jù)通信接口選哪個(gè)這一連串的問(wèn)題其實(shí)都指向了系統(tǒng)設(shè)計(jì)的核心——在有限的資源下做出合理的權(quán)衡。我這次搭建的系統(tǒng)涵蓋了從傳感器信號(hào)調(diào)理、STM32的ADC/DMA采集、內(nèi)部Flash或外部SD卡存儲(chǔ)到通過(guò)串口/USB上傳數(shù)據(jù)的完整鏈路。它不僅是一個(gè)可以跑起來(lái)的Demo更是一套經(jīng)過(guò)實(shí)際項(xiàng)目驗(yàn)證的、包含硬件選型原理、軟件驅(qū)動(dòng)編寫(xiě)、數(shù)據(jù)管理策略的完整解決方案。無(wú)論你是學(xué)生做課設(shè)、工程師做原型驗(yàn)證還是愛(ài)好者DIY智能設(shè)備這套思路都能給你提供一個(gè)扎實(shí)的起點(diǎn)。2. 系統(tǒng)整體設(shè)計(jì)與核心思路拆解2.1 需求分析與方案選型考量做任何系統(tǒng)第一步永遠(yuǎn)是搞清楚要什么。對(duì)于數(shù)據(jù)采集存儲(chǔ)系統(tǒng)我們需要明確幾個(gè)關(guān)鍵指標(biāo)采集對(duì)象電壓、電流、溫度、壓力等、精度與分辨率需要多精確、采樣率多快采一次、數(shù)據(jù)量總共要存多少每秒產(chǎn)生多少、供電與續(xù)航是否電池供電、數(shù)據(jù)導(dǎo)出方式是否需要實(shí)時(shí)上傳。比如我的環(huán)境監(jiān)測(cè)項(xiàng)目需要采集三路信號(hào)一路溫度慢變信號(hào)1Hz采樣足矣一路光照強(qiáng)度中速10Hz還有一路噪聲模擬量需要一定的動(dòng)態(tài)捕捉計(jì)劃用500Hz。總數(shù)據(jù)量不大但要求設(shè)備能離線運(yùn)行一周。基于這些需求硬件核心選STM32F103C8T6俗稱的“藍(lán)莓派”或最小系統(tǒng)板它擁有3個(gè)ADC、豐富的定時(shí)器、多個(gè)USART和SPI/I2C接口性價(jià)比極高。存儲(chǔ)方案上我評(píng)估了三種常見(jiàn)選項(xiàng)STM32內(nèi)部Flash、外部SPI Flash如W25Q64、SD卡通過(guò)SPI或SDIO。內(nèi)部Flash容量有限64KB芯片實(shí)際可用約50KB左右且擦寫(xiě)次數(shù)有限約1萬(wàn)次適合存儲(chǔ)量小、更新不頻繁的配置參數(shù)或最終計(jì)算結(jié)果。外部SPI Flash容量適中8MB-16MB常見(jiàn)讀寫(xiě)速度較快但需要額外芯片。SD卡容量巨大GB級(jí)別成本低通用性強(qiáng)但文件系統(tǒng)如FATFS稍復(fù)雜且物理接口在震動(dòng)環(huán)境下可能不穩(wěn)??紤]到我要存儲(chǔ)一周的原始數(shù)據(jù)數(shù)據(jù)量會(huì)超過(guò)1MB因此選擇了**SD卡SPI模式**作為主存儲(chǔ)方案內(nèi)部Flash僅用來(lái)存儲(chǔ)系統(tǒng)配置信息。通信接口方面為了調(diào)試和導(dǎo)出數(shù)據(jù)USART串口是必須的可以連接電腦串口助手。同時(shí)我預(yù)留了USB Device接口可以將單片機(jī)模擬成U盤MSC或者虛擬串口VCP方便直接拷貝數(shù)據(jù)文件或進(jìn)行高速數(shù)據(jù)流上傳這比單純的串口要方便得多。2.2 硬件架構(gòu)與核心電路設(shè)計(jì)要點(diǎn)硬件是整個(gè)系統(tǒng)的基石設(shè)計(jì)不合理軟件再怎么優(yōu)化也白搭。我的核心板是STM32F103最小系統(tǒng)圍繞它需要搭建傳感器接口電路、存儲(chǔ)模塊電路和通信接口電路。1. 傳感器信號(hào)調(diào)理電路這是保證采集精度的關(guān)鍵。很多傳感器輸出是微弱的電壓或電流信號(hào)或者輸出范圍與STM32的ADC輸入范圍通常0-3.3V不匹配。例如我用的PT100溫度傳感器需要通過(guò)運(yùn)放搭建的恒流源和儀表放大器電路將微小的電阻變化轉(zhuǎn)換成適合ADC采集的電壓信號(hào)。對(duì)于噪聲傳感器輸出的0-5V信號(hào)則需要一個(gè)簡(jiǎn)單的電阻分壓電路將其衰減到3.3V以內(nèi)。這里必須注意阻抗匹配和濾波。ADC輸入端對(duì)驅(qū)動(dòng)能力有要求如果信號(hào)源阻抗太高會(huì)導(dǎo)致采樣不準(zhǔn)通常需要在輸入端加一個(gè)電壓跟隨器運(yùn)放緩沖。同時(shí)必須在信號(hào)進(jìn)入ADC引腳前加入RC低通濾波例如1kΩ電阻和0.1uF電容濾除高頻噪聲這是抗混疊濾波的基本要求。2. 存儲(chǔ)模塊電路SD卡 SPI模式SD卡有兩種通信模式SDIO4線和SPI通常3線或4線。SPI模式硬件連接簡(jiǎn)單對(duì)單片機(jī)要求低雖然速度不如SDIO但對(duì)于我們的數(shù)據(jù)記錄應(yīng)用寫(xiě)入速度通常在幾百KB/s以內(nèi)完全足夠。接線如下STM32的PA5(SCK)、PA6(MISO)、PA7(MOSI)作為SPI1引腳再任意選一個(gè)GPIO如PA4作為片選CS。關(guān)鍵點(diǎn)在于電源和上拉電阻。SD卡工作電壓是3.3V必須確保供電穩(wěn)定。在SD卡的CMD、DAT0-DAT3SPI模式下只用DAT0即MISO線上通常需要接10kΩ左右的上拉電阻到3.3V以確保信號(hào)穩(wěn)定特別是在熱插拔如果支持或長(zhǎng)線連接時(shí)。此外SD卡座最好選擇帶彈性和檢測(cè)腳的方便插拔和檢測(cè)卡是否存在。3. 通信與調(diào)試接口USART1PA9-TX PA10-RX引出連接到USB轉(zhuǎn)TTL模塊這是最基礎(chǔ)的調(diào)試和命令通道。USB接口采用Micro-USBDPA12和D-PA11直接連接STM32不需要外部PHY芯片。這里USB電源管理需要注意如果設(shè)備希望通過(guò)USB總線供電要在USB的5V輸入線上加一個(gè)合適的限流保護(hù)電路如果設(shè)備是電池供電并通過(guò)USB通信則需要一個(gè)電源路徑管理芯片防止電池電流倒灌入U(xiǎn)SB主機(jī)。注意PCB布局時(shí)模擬部分傳感器、運(yùn)放、ADC輸入和數(shù)字部分單片機(jī)、SD卡、USB的地線要分開(kāi)布線最后在電源入口處單點(diǎn)連接形成“星型接地”能極大降低數(shù)字噪聲對(duì)模擬信號(hào)的干擾。3. 核心模塊驅(qū)動(dòng)與軟件框架搭建3.1 底層驅(qū)動(dòng)ADC、DMA與定時(shí)器的黃金組合單純用STM32的ADC采集并不難難的是如何高效、不丟數(shù)據(jù)地持續(xù)采集。這里就要祭出“定時(shí)器觸發(fā)ADC DMA傳輸”這個(gè)經(jīng)典組合拳。我的目標(biāo)是以固定的500Hz采樣率采集一路模擬信號(hào)。首先配置一個(gè)基本定時(shí)器如TIM6產(chǎn)生更新中斷UIF。將定時(shí)器的時(shí)鐘源設(shè)為系統(tǒng)時(shí)鐘72MHz設(shè)置預(yù)分頻器PSC和自動(dòng)重載值A(chǔ)RR使得更新事件頻率正好為500Hz。計(jì)算過(guò)程定時(shí)器計(jì)數(shù)頻率 72MHz / (PSC 1)。如果我們?cè)O(shè)置PSC7199則計(jì)數(shù)頻率為10kHz。要產(chǎn)生500Hz更新則ARR應(yīng)設(shè)置為 (10kHz / 500Hz) - 1 19。這樣TIM6就會(huì)每2ms產(chǎn)生一次觸發(fā)信號(hào)。然后配置ADC1。工作模式選擇“掃描模式”如果多通道或“單次模式”單通道但最關(guān)鍵的是將“外部觸發(fā)轉(zhuǎn)換源”設(shè)置為“定時(shí)器6觸發(fā)輸出事件”TIM6_TRGO。這樣每次定時(shí)器更新事件到來(lái)就會(huì)自動(dòng)啟動(dòng)一次ADC轉(zhuǎn)換實(shí)現(xiàn)了精準(zhǔn)的定時(shí)采樣不依賴任何軟件延時(shí)或中斷精度由硬件時(shí)鐘保證。最后也是最重要的配置DMA直接存儲(chǔ)器訪問(wèn)。ADC轉(zhuǎn)換完成的數(shù)據(jù)需要被搬走如果每次轉(zhuǎn)換完都進(jìn)中斷讓CPU來(lái)讀那么在500Hz下CPU負(fù)擔(dān)就很重且在高頻時(shí)可能丟失中斷。DMA就是為了解放CPU而生的。我們配置DMA1的某個(gè)通道與ADC1對(duì)應(yīng)將外設(shè)地址設(shè)為ADC數(shù)據(jù)寄存器ADC1-DR的地址內(nèi)存地址設(shè)為我們定義的一個(gè)數(shù)組比如uint16_t adc_buffer[1024]數(shù)據(jù)寬度為半字16位并開(kāi)啟循環(huán)模式。這樣每次ADC轉(zhuǎn)換完成DMA硬件會(huì)自動(dòng)把數(shù)據(jù)從ADC-DR搬到adc_buffer中完全無(wú)需CPU干預(yù)。我們只需要在內(nèi)存數(shù)組快滿的時(shí)候比如半滿或全滿時(shí)通過(guò)DMA半傳輸/傳輸完成中斷來(lái)判定去處理這批數(shù)據(jù)即可。這種“定時(shí)器觸發(fā) ADC轉(zhuǎn)換 DMA搬運(yùn)”的模式構(gòu)建了一個(gè)高效的數(shù)據(jù)生產(chǎn)流水線。CPU只需要間歇性地去處理已經(jīng)打包好的數(shù)據(jù)塊大部分時(shí)間可以休眠或者處理其他任務(wù)極大地提高了系統(tǒng)效率和實(shí)時(shí)性。3.2 存儲(chǔ)模塊FatFs文件系統(tǒng)移植與優(yōu)化SD卡存儲(chǔ)不是簡(jiǎn)單的寫(xiě)扇區(qū)我們需要一個(gè)文件系統(tǒng)來(lái)管理數(shù)據(jù)文件FatFs是一個(gè)輕量、通用、被廣泛移植的FAT文件系統(tǒng)模塊。將其移植到STM32上需要提供底層的磁盤讀寫(xiě)接口disk I/O。移植步驟下載FatFs源碼將ff.c,ff.h,ffconf.h,diskio.c,diskio.h加入工程。在diskio.c中實(shí)現(xiàn)五個(gè)底層函數(shù)disk_initialize初始化SD卡、disk_status獲取狀態(tài)、disk_read讀扇區(qū)、disk_write寫(xiě)扇區(qū)、disk_ioctl控制命令如獲取扇區(qū)大小、數(shù)量。這些函數(shù)需要調(diào)用你寫(xiě)好的SD卡SPI驅(qū)動(dòng)。在ffconf.h中根據(jù)需求配置FatFs功能比如支持長(zhǎng)文件名_USE_LFN、代碼頁(yè)_CODE_PAGE、扇區(qū)大小等。為了節(jié)省資源我通常只開(kāi)啟必需功能。關(guān)鍵優(yōu)化與避坑經(jīng)驗(yàn)寫(xiě)入速度瓶頸SPI模式下單次寫(xiě)一個(gè)扇區(qū)通常512字節(jié)速度較慢。FatFs的f_write函數(shù)在內(nèi)部會(huì)有緩存管理。為了最大化寫(xiě)入速度應(yīng)該每次寫(xiě)入盡可能多的數(shù)據(jù)。我的策略是DMA搬運(yùn)來(lái)的ADC數(shù)據(jù)先在一個(gè)RAM緩沖區(qū)里攢著等攢夠4KB或8KB多個(gè)扇區(qū)再調(diào)用一次f_write寫(xiě)入文件。這比每采一個(gè)點(diǎn)就寫(xiě)一次文件要快幾十倍。文件系統(tǒng)掛載與檢查每次上電應(yīng)先調(diào)用f_mount掛載文件系統(tǒng)。如果掛載失敗FR_NO_FILESYSTEM可能卡是空的需要調(diào)用f_mkfs進(jìn)行格式化。格式化會(huì)清空所有數(shù)據(jù)所以產(chǎn)品中要慎用最好通過(guò)按鍵組合或特定命令觸發(fā)。電源安全與數(shù)據(jù)完整性SD卡寫(xiě)操作期間突然斷電可能導(dǎo)致文件系統(tǒng)損壞。雖然FatFs有f_sync函數(shù)可以強(qiáng)制將緩存數(shù)據(jù)寫(xiě)回磁盤但最根本的還是要從硬件上保證電源穩(wěn)定并在軟件檢測(cè)到電壓過(guò)低時(shí)立即停止寫(xiě)入、關(guān)閉所有文件并調(diào)用f_sync。文件名與時(shí)間戳為了讓數(shù)據(jù)文件有條理我會(huì)用實(shí)時(shí)時(shí)鐘RTC或者上電后的運(yùn)行時(shí)間作為文件名的一部分例如DATA_20240515_143025.CSV。這樣一眼就能看出文件的創(chuàng)建時(shí)間。3.3 數(shù)據(jù)流管理與應(yīng)用層設(shè)計(jì)有了穩(wěn)定的采集流水線和可靠的存儲(chǔ)后端就需要一個(gè)“調(diào)度中心”來(lái)管理數(shù)據(jù)流。我設(shè)計(jì)了一個(gè)簡(jiǎn)單的生產(chǎn)者-消費(fèi)者模型。生產(chǎn)者就是前面提到的ADCDMA。我設(shè)置DMA緩沖區(qū)大小為2048個(gè)樣本。當(dāng)DMA傳輸完成一半1024個(gè)樣本時(shí)產(chǎn)生“半傳輸完成中斷”當(dāng)全部傳完2048個(gè)樣本時(shí)產(chǎn)生“傳輸完成中斷”。在中斷服務(wù)函數(shù)ISR中絕不進(jìn)行復(fù)雜操作如文件寫(xiě)入只做一件事設(shè)置一個(gè)標(biāo)志位并切換當(dāng)前用于存儲(chǔ)數(shù)據(jù)的“目標(biāo)緩沖區(qū)指針”。比如定義兩個(gè)緩沖區(qū)BufferA和BufferB。初始時(shí)DMA往BufferA寫(xiě)。當(dāng)半傳輸中斷發(fā)生意味著B(niǎo)ufferA的前一半1024樣本已滿我設(shè)置flag_half 1并將后續(xù)DMA目標(biāo)地址指向BufferB的后半部分這是一個(gè)雙緩沖技巧需要仔細(xì)配置DMA的存儲(chǔ)地址。通過(guò)這種方式ISR的執(zhí)行時(shí)間極短。消費(fèi)者在主程序的超級(jí)循環(huán)main loop中不斷檢查flag_half和flag_full這兩個(gè)標(biāo)志。一旦發(fā)現(xiàn)某個(gè)標(biāo)志被置位就知道有一塊數(shù)據(jù)1024個(gè)樣本已經(jīng)準(zhǔn)備好了。此時(shí)將這塊數(shù)據(jù)從緩沖區(qū)中復(fù)制出來(lái)以防被DMA覆蓋然后進(jìn)行必要的處理比如將原始的ADC值0-4095根據(jù)校準(zhǔn)參數(shù)換算成實(shí)際的物理量如電壓、溫度。處理完成后將格式化好的數(shù)據(jù)例如轉(zhuǎn)換成CSV格式的字符串追加到文件寫(xiě)入隊(duì)列或直接寫(xiě)入SD卡如果采用攢批寫(xiě)入策略。應(yīng)用層任務(wù)除了核心的數(shù)據(jù)采集存儲(chǔ)循環(huán)主循環(huán)還要處理其他任務(wù)比如串口命令解析接收來(lái)自電腦的指令如“開(kāi)始記錄”、“停止記錄”、“讀取配置”、“擦除數(shù)據(jù)”等。狀態(tài)指示通過(guò)LED閃爍頻率表示系統(tǒng)狀態(tài)快閃正在記錄慢閃待機(jī)常亮錯(cuò)誤。USB連接檢測(cè)與枚舉當(dāng)USB線插入STM32需要響應(yīng)主機(jī)枚舉并初始化MSC或VCP設(shè)備。這種基于標(biāo)志位和狀態(tài)機(jī)的設(shè)計(jì)使得程序結(jié)構(gòu)清晰各模塊耦合度低實(shí)時(shí)性也能得到保障。4. 關(guān)鍵功能的代碼級(jí)實(shí)現(xiàn)詳解4.1 ADC多通道掃描與DMA雙緩沖配置對(duì)于需要同時(shí)采集多路信號(hào)的情況比如我的溫度、光照、噪聲三路STM32的ADC支持掃描模式。這里以ADC1的通道0、1、2為例采用DMA雙緩沖實(shí)現(xiàn)連續(xù)掃描采集。首先配置ADC的掃描模式和連續(xù)轉(zhuǎn)換模式// ADC1 初始化片段 ADC_InitTypeDef ADC_InitStructure; ADC_InitStructure.ADC_Mode ADC_Mode_Independent; // 獨(dú)立模式 ADC_InitStructure.ADC_ScanConvMode ENABLE; // 啟用掃描模式 ADC_InitStructure.ADC_ContinuousConvMode ENABLE; // 啟用連續(xù)轉(zhuǎn)換 ADC_InitStructure.ADC_ExternalTrigConv ADC_ExternalTrigConv_None; // 軟件觸發(fā)或改為定時(shí)器觸發(fā) ADC_InitStructure.ADC_DataAlign ADC_DataAlign_Right; // 數(shù)據(jù)右對(duì)齊 ADC_InitStructure.ADC_NbrOfChannel 3; // 要轉(zhuǎn)換的通道數(shù)量 ADC_Init(ADC1, ADC_InitStructure); // 配置規(guī)則組通道及其采樣時(shí)間 ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5); // 通道0第1個(gè)轉(zhuǎn)換 ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_55Cycles5); // 通道1第2個(gè)轉(zhuǎn)換 ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 3, ADC_SampleTime_55Cycles5); // 通道2第3個(gè)轉(zhuǎn)換接下來(lái)是DMA雙緩沖配置的關(guān)鍵。我們定義兩個(gè)緩沖區(qū)adc_bufferA[6]和adc_bufferB[6]每個(gè)通道2個(gè)樣本用于乒乓緩沖。目標(biāo)是讓DMA在寫(xiě)滿A后自動(dòng)切換到B同時(shí)產(chǎn)生中斷通知我們處理A。#define ADC_CONVERTED_BUFFER_SIZE 6 // 3通道 * 2雙緩沖因子 uint16_t adc_bufferA[ADC_CONVERTED_BUFFER_SIZE]; uint16_t adc_bufferB[ADC_CONVERTED_BUFFER_SIZE]; // DMA1 通道1 配置 (ADC1對(duì)應(yīng)DMA1通道1) DMA_InitTypeDef DMA_InitStructure; DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr (uint32_t)(ADC1-DR); DMA_InitStructure.DMA_MemoryBaseAddr (uint32_t)adc_bufferA; // 初始目標(biāo)地址為A DMA_InitStructure.DMA_DIR DMA_DIR_PeripheralSRC; // 從外設(shè)ADC讀 DMA_InitStructure.DMA_BufferSize ADC_CONVERTED_BUFFER_SIZE; DMA_InitStructure.DMA_PeripheralInc DMA_PeripheralInc_Disable; // 外設(shè)地址固定 DMA_InitStructure.DMA_MemoryInc DMA_MemoryInc_Enable; // 內(nèi)存地址遞增 DMA_InitStructure.DMA_PeripheralDataSize DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode DMA_Mode_Circular; // 循環(huán)模式 DMA_InitStructure.DMA_Priority DMA_Priority_High; DMA_InitStructure.DMA_M2M DMA_M2M_Disable; DMA_Init(DMA1_Channel1, DMA_InitStructure); // 開(kāi)啟DMA的“半傳輸完成”和“傳輸完成”中斷 DMA_ITConfig(DMA1_Channel1, DMA_IT_TC | DMA_IT_HT, ENABLE);在DMA中斷服務(wù)函數(shù)中volatile uint8_t dma_flag 0; // 0:無(wú)數(shù)據(jù) 1:半緩沖(A半)就緒 2:全緩沖(A)就緒 3:半緩沖(B半)就緒... uint16_t *current_target_buffer adc_bufferA; void DMA1_Channel1_IRQHandler(void) { if(DMA_GetITStatus(DMA1_IT_TC1)) { // 傳輸完成整個(gè)緩沖區(qū)填滿 DMA_ClearITPendingBit(DMA1_IT_TC1); if(current_target_buffer adc_bufferA) { dma_flag 2; // A緩沖區(qū)滿 // 在循環(huán)模式下DMA會(huì)自動(dòng)回到起始地址繼續(xù)所以我們需要在軟件層面切換“活動(dòng)”緩沖區(qū)指針 // 更常見(jiàn)的做法是在中斷里不切換指針而是根據(jù)中斷類型和當(dāng)前指針位置計(jì)算哪一半數(shù)據(jù)有效 } } if(DMA_GetITStatus(DMA1_IT_HT1)) { // 半傳輸完成緩沖區(qū)填滿一半 DMA_ClearITPendingBit(DMA1_IT_HT1); if(current_target_buffer adc_bufferA) { dma_flag 1; // A緩沖區(qū)前半滿 } } }更穩(wěn)健的雙緩沖實(shí)現(xiàn)是使用DMA的“循環(huán)模式雙緩沖”特性如果MCU支持或者手動(dòng)管理兩個(gè)緩沖區(qū)指針。在主循環(huán)中根據(jù)dma_flag的值就知道該去處理adc_bufferA的前半部分、后半部分還是整個(gè)緩沖區(qū)。4.2 FatFs文件寫(xiě)入與時(shí)間戳管理在應(yīng)用層當(dāng)采集到一批數(shù)據(jù)后我們需要將其寫(xiě)入SD卡。為了提高效率我采用“緩沖區(qū)攢批寫(xiě)入”策略。定義一個(gè)應(yīng)用層的寫(xiě)緩沖區(qū)file_buffer大小為4KB8個(gè)扇區(qū)。FIL file; // FatFs 文件對(duì)象 FRESULT fr; // FatFs 操作結(jié)果 UINT bw; // 實(shí)際寫(xiě)入的字節(jié)數(shù) char file_buffer[4096]; // 應(yīng)用層寫(xiě)緩沖區(qū) int buffer_index 0; // 緩沖區(qū)當(dāng)前索引 // 初始化SD卡和文件系統(tǒng) fr f_mount(fs, , 1); // 掛載 if(fr FR_NO_FILESYSTEM) { // 可以在這里提示用戶格式化但產(chǎn)品中慎用自動(dòng)格式化 // fr f_mkfs(, 0, 0); } // 創(chuàng)建帶時(shí)間戳的文件名假設(shè)有RTC提供時(shí)間 RTC_TimeTypeDef rtc_time; RTC_DateTypeDef rtc_date; char filename[32]; sprintf(filename, %04d%02d%02d_%02d%02d%02d.csv, rtc_date.year, rtc_date.month, rtc_date.date, rtc_time.hours, rtc_time.minutes, rtc_time.seconds); fr f_open(file, filename, FA_CREATE_ALWAYS | FA_WRITE); if(fr ! FR_OK) { // 錯(cuò)誤處理點(diǎn)亮錯(cuò)誤LED } // 寫(xiě)入CSV表頭 f_puts(Timestamp,Temperature(C),Light(Lux),Noise(dB)\n, file); f_sync(file); // 確保表頭寫(xiě)入磁盤在數(shù)據(jù)攢批函數(shù)中void append_data_to_buffer(uint32_t timestamp, float temp, float light, float noise) { // 將數(shù)據(jù)格式化為一行CSV字符串 int len sprintf(file_buffer[buffer_index], %lu,%.2f,%.2f,%.2f\n, timestamp, temp, light, noise); buffer_index len; // 如果緩沖區(qū)快滿了比如剩余空間小于一行最大可能長(zhǎng)度則寫(xiě)入文件 if(buffer_index (sizeof(file_buffer) - 64)) { flush_buffer_to_file(); } } void flush_buffer_to_file(void) { if(buffer_index 0) { fr f_write(file, file_buffer, buffer_index, bw); if(fr ! FR_OK || bw ! buffer_index) { // 寫(xiě)入錯(cuò)誤處理 } buffer_index 0; // 重置緩沖區(qū)索引 // 可以在這里選擇性調(diào)用 f_sync但頻繁sync會(huì)影響速度 } }在主循環(huán)中定期例如每處理10批數(shù)據(jù)或在系統(tǒng)空閑時(shí)調(diào)用flush_buffer_to_file()。在系統(tǒng)停止記錄或進(jìn)入低功耗前必須調(diào)用flush_buffer_to_file()和f_sync(file)確保所有數(shù)據(jù)落盤最后再f_close(file)。4.3 串口命令控制與協(xié)議設(shè)計(jì)一個(gè)實(shí)用的數(shù)據(jù)采集系統(tǒng)需要能遠(yuǎn)程控制。我設(shè)計(jì)了一個(gè)簡(jiǎn)單的基于ASCII字符的串口協(xié)議格式為$CMD,ARG1,ARG2,...*CRC\r\n。例如開(kāi)始記錄命令$START,500*CRC\r\n500表示采樣率。首先在串口中斷服務(wù)函數(shù)中接收字符填入環(huán)形緩沖區(qū)Ring Buffer#define UART_RX_BUF_SIZE 128 uint8_t uart_rx_buf[UART_RX_BUF_SIZE]; uint16_t uart_rx_read_idx 0; uint16_t uart_rx_write_idx 0; void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) { uint8_t ch USART_ReceiveData(USART1); // 簡(jiǎn)單的環(huán)形緩沖區(qū)寫(xiě)入 uint16_t next (uart_rx_write_idx 1) % UART_RX_BUF_SIZE; if(next ! uart_rx_read_idx) { // 非滿 uart_rx_buf[uart_rx_write_idx] ch; uart_rx_write_idx next; } // 如果收到回車符\n可以設(shè)置一個(gè)“命令就緒”標(biāo)志 if(ch \n) { cmd_ready_flag 1; } } }在主循環(huán)中檢查cmd_ready_flag然后從環(huán)形緩沖區(qū)中讀取一行數(shù)據(jù)進(jìn)行解析void parse_uart_command(void) { char cmd_line[64]; int idx 0; // 從環(huán)形緩沖區(qū)讀取直到遇到\n或緩沖區(qū)空 while(uart_rx_read_idx ! uart_rx_write_idx idx sizeof(cmd_line)-1) { char c uart_rx_buf[uart_rx_read_idx]; uart_rx_read_idx (uart_rx_read_idx 1) % UART_RX_BUF_SIZE; if(c \r) continue; // 忽略回車 if(c \n) { cmd_line[idx] \0; break; } cmd_line[idx] c; } cmd_line[idx] \0; // 解析命令 if(strncmp(cmd_line, $START, 6) 0) { // 解析參數(shù)例如采樣率 int rate atoi(cmd_line[7]); set_sample_rate(rate); start_logging(); usart_printf(OK, logging started at %d Hz\r\n, rate); } else if(strncmp(cmd_line, $STOP, 5) 0) { stop_logging(); flush_buffer_to_file(); f_sync(file); usart_printf(OK, logging stopped\r\n); } else if(strncmp(cmd_line, $STATUS, 7) 0) { // 返回系統(tǒng)狀態(tài)存儲(chǔ)空間、采樣率、電池電壓等 usart_printf(Status: Sampling%dHz, FreeSpace%luKB\r\n, current_sample_rate, get_sd_free_space()); } // ... 其他命令 }這種文本協(xié)議簡(jiǎn)單直觀便于用任何串口工具如Putty、SecureCRT或上位機(jī)軟件進(jìn)行調(diào)試和控制。對(duì)于更復(fù)雜或要求可靠性的場(chǎng)景可以升級(jí)為二進(jìn)制協(xié)議并加入更嚴(yán)格的校驗(yàn)。5. 系統(tǒng)調(diào)試、優(yōu)化與問(wèn)題排查實(shí)錄5.1 硬件調(diào)試從電源噪聲到信號(hào)完整性問(wèn)題硬件調(diào)試是第一步也是最容易踩坑的一步。我遇到過(guò)幾個(gè)典型問(wèn)題問(wèn)題一ADC采樣值跳動(dòng)大不穩(wěn)定?,F(xiàn)象即使輸入一個(gè)穩(wěn)定的基準(zhǔn)電壓ADC讀出的值也在最后幾位不停跳動(dòng)。排查檢查電源用示波器測(cè)量STM32的VDDA模擬供電引腳發(fā)現(xiàn)上面有幾十mV的高頻毛刺。原因是數(shù)字部分如SD卡、單片機(jī)核心的電流突變通過(guò)電源平面耦合到了模擬部分。檢查參考電壓VREF引腳是否連接穩(wěn)定如果使用VDDA作為參考那么VDDA的噪聲會(huì)直接反映在ADC結(jié)果上。檢查輸入信號(hào)傳感器輸出信號(hào)本身是否干凈可能在信號(hào)調(diào)理電路部分引入了噪聲。解決在VDDA和VSSA之間并聯(lián)一個(gè)10uF鉭電容和一個(gè)0.1uF陶瓷電容盡量靠近芯片引腳。最好能為模擬部分ADC、運(yùn)放提供獨(dú)立的LDO供電與數(shù)字電源隔離。確保VREF通過(guò)一個(gè)低ESR的電容如1uF0.1uF緊密退耦到地。在ADC輸入引腳增加RC低通濾波如1kΩ 0.1uF截止頻率約1.6kHz能有效濾除高頻噪聲。對(duì)于慢變信號(hào)電容可以加大到1uF。軟件上可以采用過(guò)采樣和求平均的方法。連續(xù)采樣16次或64次然后取平均值可以有效提高有效分辨率抑制隨機(jī)噪聲。問(wèn)題二SD卡初始化失敗或讀寫(xiě)不穩(wěn)定?,F(xiàn)象disk_initialize經(jīng)常返回失敗或者偶爾能識(shí)別但f_open或f_write失敗。排查電氣連接用萬(wàn)用表檢查SD卡座的電源腳電壓是否為穩(wěn)定的3.3V在SD卡讀寫(xiě)瞬間用示波器看電壓是否有大幅跌落應(yīng)小于0.1V。檢查所有信號(hào)線CLK, MOSI, MISO, CS是否連通有無(wú)虛焊。上拉電阻SPI模式下SD卡的DIMOSI、DOMISO、CS線上都需要上拉電阻通常10kΩ否則在空閑時(shí)信號(hào)線浮空容易受干擾。時(shí)序與速度SD卡在初始化階段需要低速通常400kHz初始化成功后可以切換到高速如18MHz。檢查SPI時(shí)鐘相位和極性CPOL/CPHA是否正確通常模式0CPOL0 CPHA0或模式3CPOL1 CPHA1都行但要和卡驅(qū)動(dòng)代碼一致。電源時(shí)序有些SD卡對(duì)電源上電速度有要求。確保在單片機(jī)IO口初始化完成、輸出高阻態(tài)或確定電平后再給SD卡上電。解決在SD卡的VCC引腳附近增加一個(gè)100uF的電解電容提供瞬時(shí)大電流能力。確認(rèn)并焊接好所有上拉電阻。在SD卡驅(qū)動(dòng)代碼中增加重試機(jī)制。如果初始化失敗不是立即報(bào)錯(cuò)而是延時(shí)幾百毫秒后重試1-2次。降低SPI初始化的時(shí)鐘分頻確保在低速下完成識(shí)別。5.2 軟件調(diào)試邏輯錯(cuò)誤與性能瓶頸分析軟件問(wèn)題往往更隱蔽。分享幾個(gè)我調(diào)試過(guò)程中遇到的“坑”。問(wèn)題一DMA數(shù)據(jù)錯(cuò)位或丟失?,F(xiàn)象多通道掃描時(shí)緩沖區(qū)里三個(gè)通道的數(shù)據(jù)順序亂了或者偶爾會(huì)少一個(gè)數(shù)據(jù)。原因DMA和ADC的配置時(shí)序問(wèn)題。如果在ADC還沒(méi)有完全穩(wěn)定例如剛上電或喚醒時(shí)就開(kāi)啟DMA和連續(xù)轉(zhuǎn)換前幾個(gè)數(shù)據(jù)可能是無(wú)效的。另外在切換DMA目標(biāo)緩沖區(qū)時(shí)如果計(jì)算錯(cuò)了內(nèi)存地址增量也會(huì)導(dǎo)致數(shù)據(jù)錯(cuò)位。解決嚴(yán)格按照順序初始化先配置GPIO和ADC基本參數(shù)然后配置DMA最后使能DMA再使能ADC。在啟動(dòng)連續(xù)轉(zhuǎn)換前可以先軟件觸發(fā)幾次ADC轉(zhuǎn)換并丟棄結(jié)果讓ADC穩(wěn)定。在DMA中斷中處理數(shù)據(jù)時(shí)要清楚當(dāng)前中斷對(duì)應(yīng)的是哪個(gè)緩沖區(qū)的哪一半。使用一個(gè)狀態(tài)機(jī)或清晰的標(biāo)志位體系來(lái)管理。問(wèn)題二文件寫(xiě)入速度慢導(dǎo)致數(shù)據(jù)丟失?,F(xiàn)象當(dāng)采樣率較高如1kHz時(shí)主循環(huán)來(lái)不及將數(shù)據(jù)寫(xiě)入SD卡DMA緩沖區(qū)很快被覆蓋丟失數(shù)據(jù)。分析SD卡在SPI模式下寫(xiě)一個(gè)扇區(qū)512字節(jié)通常需要幾毫秒到十幾毫秒。如果每采一個(gè)點(diǎn)2字節(jié)就寫(xiě)一次文件開(kāi)銷巨大。解決增大DMA緩沖區(qū)從1024樣本增大到4096樣本給文件寫(xiě)入留出更多時(shí)間。應(yīng)用層攢批寫(xiě)入如前所述在RAM中攢夠4KB或8KB數(shù)據(jù)再一次性寫(xiě)入將多次小IO合并成一次大IO效率提升顯著。使用更快的文件操作f_write比f(wàn)_printf快關(guān)閉文件時(shí)再調(diào)用f_sync而不是每次寫(xiě)入都調(diào)用。優(yōu)化主循環(huán)結(jié)構(gòu)確保文件寫(xiě)入操作不會(huì)長(zhǎng)時(shí)間阻塞主循環(huán)。如果寫(xiě)入時(shí)間真的過(guò)長(zhǎng)可以考慮使用RTOS創(chuàng)建一個(gè)專門的文件寫(xiě)入任務(wù)通過(guò)消息隊(duì)列接收數(shù)據(jù)塊。問(wèn)題三系統(tǒng)運(yùn)行一段時(shí)間后死機(jī)?,F(xiàn)象設(shè)備連續(xù)運(yùn)行幾小時(shí)后停止響應(yīng)。排查看門狗首先檢查是否開(kāi)啟了獨(dú)立看門狗IWDG或窗口看門狗WWDG。如果沒(méi)有加上它這是解決死鎖的最后防線。堆棧溢出檢查.map文件看為任務(wù)分配的堆棧是否足夠。在中斷和函數(shù)調(diào)用嵌套很深的地方容易導(dǎo)致棧溢出破壞內(nèi)存??梢赃m當(dāng)增大堆棧大小或者在代碼中減少大型局部數(shù)組的定義將其改為全局或靜態(tài)變量。內(nèi)存泄漏在反復(fù)打開(kāi)/關(guān)閉文件、動(dòng)態(tài)申請(qǐng)內(nèi)存如果用了malloc的地方檢查是否有資源未釋放。在嵌入式系統(tǒng)中盡量使用靜態(tài)內(nèi)存分配。中斷沖突檢查是否有中斷服務(wù)函數(shù)執(zhí)行時(shí)間過(guò)長(zhǎng)或者中斷優(yōu)先級(jí)設(shè)置不當(dāng)導(dǎo)致高優(yōu)先級(jí)中斷餓死低優(yōu)先級(jí)中斷包括系統(tǒng)滴答定時(shí)器SysTick使得整個(gè)系統(tǒng)“卡住”。解決加入看門狗是必須的。使用調(diào)試器或輸出日志在死機(jī)前檢查關(guān)鍵變量的狀態(tài)。也可以在不同任務(wù)的關(guān)鍵點(diǎn)翻轉(zhuǎn)不同的GPIO引腳用邏輯分析儀觀察看程序是在哪個(gè)環(huán)節(jié)停住的。5.3 低功耗設(shè)計(jì)與電源管理技巧對(duì)于電池供電的設(shè)備功耗至關(guān)重要。STM32在低功耗方面做得很好。1. 運(yùn)行模式下的功耗優(yōu)化降低系統(tǒng)時(shí)鐘在滿足采樣和處理需求的前提下盡量降低系統(tǒng)主頻。使用內(nèi)部HSI RC振蕩器代替外部HSE晶振可以節(jié)省一點(diǎn)功耗但精度會(huì)下降。外設(shè)時(shí)鐘門控不用的外設(shè)如多余的TIM、USART、SPI等一定要在RCC寄存器中關(guān)閉其時(shí)鐘RCC_APBxPeriphClockCmd(DISABLE)。GPIO配置未使用的GPIO引腳應(yīng)設(shè)置為模擬輸入上拉下拉電阻都關(guān)閉這是功耗最低的狀態(tài)。對(duì)于輸出引腳如果控制外部電路要確保在不工作時(shí)輸出狀態(tài)不會(huì)導(dǎo)致外部電路產(chǎn)生不必要的電流消耗。2. 利用睡眠模式我們的系統(tǒng)是間歇性工作的采集-存儲(chǔ)-休眠??梢栽谥餮h(huán)中當(dāng)處理完所有任務(wù)檢查完DMA標(biāo)志、寫(xiě)完數(shù)據(jù)、處理完命令后讓CPU進(jìn)入睡眠模式Sleep Mode。此時(shí)CPU停止但外設(shè)如定時(shí)器、ADC、DMA仍在運(yùn)行。當(dāng)下一次定時(shí)器觸發(fā)ADC轉(zhuǎn)換或者串口收到數(shù)據(jù)產(chǎn)生中斷時(shí)CPU會(huì)被喚醒繼續(xù)工作。void enter_sleep_mode(void) { // 確保所有必要的中斷已使能如定時(shí)器中斷、串口中斷 __WFI(); // 執(zhí)行等待中斷指令進(jìn)入睡眠 // 被中斷喚醒后程序從這里繼續(xù)執(zhí)行 }3. 停機(jī)模式Stop Mode的深度應(yīng)用如果采集間隔很長(zhǎng)比如每分鐘采一次那么連定時(shí)器和ADC都可以關(guān)閉進(jìn)入更省電的停機(jī)模式Stop Mode。此時(shí)所有時(shí)鐘停止SRAM和寄存器內(nèi)容保持功耗可降至微安級(jí)別。喚醒源可以配置為外部中斷如RTC鬧鐘、按鍵。喚醒后系統(tǒng)需要重新初始化時(shí)鐘和外設(shè)。這種模式設(shè)計(jì)起來(lái)更復(fù)雜需要仔細(xì)規(guī)劃喚醒后的初始化流程。實(shí)測(cè)對(duì)比在我的系統(tǒng)中全速運(yùn)行72MHz所有外設(shè)活動(dòng)電流約50mA。進(jìn)入睡眠模式后定時(shí)器和ADC仍在工作以500Hz采樣電流降至15mA左右。如果進(jìn)入停機(jī)模式僅RTC運(yùn)行電流可降至20uA以下這對(duì)于電池供電設(shè)備意義重大。6. 項(xiàng)目總結(jié)與擴(kuò)展思考經(jīng)過(guò)這一輪從硬件到軟件的完整實(shí)現(xiàn)這個(gè)STM32數(shù)據(jù)采集存儲(chǔ)系統(tǒng)已經(jīng)能夠穩(wěn)定可靠地工作。它不僅僅是一個(gè)簡(jiǎn)單的代碼堆砌更是一次對(duì)嵌入式系統(tǒng)設(shè)計(jì)全流程的實(shí)踐從明確需求、器件選型、原理圖設(shè)計(jì)、PCB布局到底層驅(qū)動(dòng)編寫(xiě)、中間件移植、應(yīng)用邏輯開(kāi)發(fā)最后到系統(tǒng)調(diào)試和優(yōu)化。每一個(gè)環(huán)節(jié)都有需要注意的細(xì)節(jié)和可以優(yōu)化的空間。我個(gè)人最大的體會(huì)是“穩(wěn)定性和可靠性”是嵌入式產(chǎn)品的生命線。無(wú)論是硬件上的電源濾波、信號(hào)完整性還是軟件中的錯(cuò)誤處理、看門狗、數(shù)據(jù)校驗(yàn)都是為了應(yīng)對(duì)復(fù)雜真實(shí)的物理世界。比如SD卡寫(xiě)入你不能假設(shè)每次f_write都能成功必須檢查返回值并有重試或報(bào)警機(jī)制。再比如ADC采樣電磁干擾無(wú)處不在硬件濾波和軟件濾波必須雙管齊下。這個(gè)系統(tǒng)還有很大的擴(kuò)展?jié)摿?。例如可以增加無(wú)線傳輸模塊如ESP8266 Wi-Fi或NB-IoT將采集到的數(shù)據(jù)實(shí)時(shí)上傳到云平臺(tái)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。存儲(chǔ)方面可以引入循環(huán)存儲(chǔ)策略當(dāng)SD卡存滿后自動(dòng)覆蓋最早的數(shù)據(jù)實(shí)現(xiàn)長(zhǎng)時(shí)間無(wú)人值守記錄。在數(shù)據(jù)處理上可以在STM32內(nèi)部實(shí)現(xiàn)一些簡(jiǎn)單的邊緣計(jì)算算法比如對(duì)噪聲數(shù)據(jù)進(jìn)行FFT分析只將頻譜特征或超標(biāo)報(bào)警信息存儲(chǔ)和上傳從而大大減少數(shù)據(jù)量。對(duì)于想復(fù)現(xiàn)或借鑒這個(gè)項(xiàng)目的朋友我的建議是分模塊攻克循序漸進(jìn)。不要試圖一下子把所有功能都做出來(lái)??梢韵茸孉DC和串口打印工作起來(lái)再加入DMA然后移植FatFs實(shí)現(xiàn)SD卡讀寫(xiě)最后完善命令控制和低功耗。每完成一個(gè)步驟都進(jìn)行充分的測(cè)試。調(diào)試時(shí)善用STM32的GPIO來(lái)“打點(diǎn)”用邏輯分析儀捕捉時(shí)序這些工具能幫你快速定位問(wèn)題所在。嵌入式開(kāi)發(fā)就是這樣在不斷的調(diào)試和解決問(wèn)題中你對(duì)系統(tǒng)的理解會(huì)越來(lái)越深。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色五月激情综合| 99热在线看片| 五月天开心网| 五月开心婷婷| 五月婷婷av| 无码人妻精品一区二区蜜桃色欲| 99热综合网| 天天草天天爱| 婷婷五月激情网| 99五月香婷婷丁香在线视频| 99综合视频一体| 欧美xx激情视频在线观看| 婷久久| 黄桃AV无码免费一区二区三区| 亚洲夜夜操| 涩五月婷婷| 在线中文AV| www.黄色片-久久成人国产精品在线播放-999AV| 婷婷爱综合| 女同激情久久av久久| 中文成人在线| 色狠狠色噜噜AV天堂五区| 中文av网| 丁香五月伊人| 99在线视频免费| 狠狠999| 91精品婷婷国产综合| 久久九九激情五月天| 婷婷综合色色| 婷色五月天| 久色五月| 丁香五月婷婷色情综合| 午夜做爱影院| 十月丁香九月婷婷综合| 天天爽天天摸| 天天操综合网站| 五月丁香六月欧美综合| www.夜夜夜| 久久综合中文| 狠狠草天天草| 色狠狠六月| 色色婷婷五月| 五月激情另类| 五月婷婷六月婷| 69五月天视频| 激情综合丁| 亚洲 在线 性爱 | 91啪啪视频| 色情丁香五月婷婷精品| 97香蕉碰碰人妻国产欧美| 色久丁香五| 六月丁香五月天| 欧美综合五月丁香六月婷| 五月香蕉综合| 天天色天天噜| 深爱婷婷丁香五月激情| 97色色综合| 免费视频99| 婷婷六月综合激情| 99碰超| 超碰女人天堂| 成人精品视频99在线观看免费| 色欲一区二区三区精品A片| 图片区 小说区 区 亚洲五月| 被强行糟蹋的女人A片| 狠狠五月天| 色噜噜狠狠色综无码久久合欧美| 五月久久丁香| 六月丁香啪啪啪| www.婷婷五月天,com| 欧美97色| 五月丁香六月婷婷手机无线| 狠狠干狠狠干| 图片区 小说区 区 亚洲五月 | 激情av| 婷婷丁香六月| 变态另类色图| 久久久久妻| 亚洲另类婷婷五月丁香在线播放| 天天影视色综合网| 久久东京热婷婷五月| 人人草人人爱| 久久网婷婷| 成人免费在线电影| 襙比视频| 婷婷久热| 久久亭亭电影| 26uuu四色| 五月丁香五月天现场视频| AV五月婷婷露脸| 97碰久久| 色99www.| 互月天综合| 99a级片| 色五月丁香五月| 精品人妻午夜一区二区三区四区 | 天天操人人干| 国产精品岛国片在线观看免费| 日良久久| 色色色com| 热99在线| 婷婷射综合| 色之综合网| 五月丁香中文字幕| 精品少妇人妻AV无码专区偷人| 亚洲激情六月丁香| 日 日干 日日做| 一本色道久久综合狠狠躁小说| 色色五月婷婷| 色婷婷www| 久久成人天| 丝袜激情网| 国产真人做爰视频免费| 五月婷婷高清| WWW.99热| 色婷婷狠| 9月色婷婷| 亚洲乱码日产精品BD| 人妻激情视频| 激情五月丁香六月综合AVXXXX| 性色五月天| 99爱在线精品视频免费观看| 色色欧美色色| 精品国产人人爱人人| 亚洲久久激情| 丁香五月97视频| 97色色色色色色色| 综合激情在线视频| 丁香色五月天| 伦乱人妻| 99久久极情精品一区| 国产亚洲精品AAAAAAA片| 色五月综合97| 国产在这里只有精品| 性色做爰片在线观看WW| 久久久月丁香| 午夜69成人做爰视频| 天天肏高清在线| 夜夜骑福利资源| 欧美电影在线播放| 6月丁香婷婷激情| 国产毛片精品一区二区色欲黄A片| 亚洲综合一区二区| 97干网站| 亚洲成人色五月婷婷综合| 激情婷婷丁香五月天| 丁香五月停停av| 五月丁香综合伦理片| 丁香六月欧美| 开心四月婷婷在线色播播| www.日日夜夜.com| 99在线免费视| 伊人香大香蕉视频| 日本va欧美va国产激情| 日本视频99| 99热综合网| 色五月婷婷91在线| 欧美色99| 夜夜天天久久婷婷| 麻豆忘忧草午夜| 色婷婷综合网站| www.久久久久久久久久.com| 激情 婷婷| 久久综合中文字幕| av在线资源| 激情五月天无码| 欧美性做爰大片免费看办公室 | 激情AV在线| 亚洲综合另类| 九九99视频精品| 欧美经典片免费观看大全| 久热久色| 久久五月热| 九色啦蜜臀| 在线观看av网站| 无码区婷婷五月花开| 超碰在线免费| 日本强伦片中文字幕免费看| 日婷婷久久开心| 婷婷久久在线| 激情六月婷婷| 丁香五月亚综合图片| 激情婷婷视频在线| 五月丁香六月色| 色五月涩涩婷婷蜜桃| 99精品网| 久久五月天综合| 97视频.干com| 蜜臀久久99精品久久久久久酒店| 午夜九九九九九九九九九九九九九| 婷婷六月激情| H亚洲| 五月婷婷视频| 国产一级婬片毛片| 成人五月天丁香婷| 9视频在线成人网站| 26uuu| 丁香色六月婷婷| 亚洲日本韩国| 九九九色综合| 激情深爱五月| 人人射av| 丁香六月激| 影音先锋91在线资源站| 97色在线| 综合图片色色| w婷婷五月婷婷w| 久久综合中文字幕| 天天综合网色欲香| 婷婷色情 | 色碰碰| 99久久婷婷五月天| 激情综合五月色在线| 91丁香婷婷综合资源| 99热91| 青青草成人网| 成人超碰Av| 亚洲操逼网| 伊人婷婷大香蕉在线| 2017狠狠干| www.五月婷婷久久.com| 99久久99视频只有精品| www.91色| 91九色熟女| 丁香五月婷婷色综合| 激情综合五月| 91成人品| 91操片| 可以免费看的av网站| 五月天社区| 色婷在线视频| 97久久久免费福利网址| 色婷婷第四色| 五月婷婷综合天天操| www色色com| 色天堂A| 五月天婷婷青青草| www五月天激情com| 蜜桃五月天| 啪啪干伊人婷婷| 国产67194| www一起操| 月丁香久久久| 六月婷在线| 99天堂在线观看免费视频| 狠狠操狠狠| 99热人人| 激情五月天小说网| 色色色综合网| 激情内射人妻1区2区3区| 99热国产这里只有精品| 99碰碰| 99热超碰在线| 婷婷五月天小说| 国产成人网站在线观看| 九九热在线精品视频| www.99色| 乱岳熟女50岁| 丁香五月激情图片婷婷| Caoporn公开| 五月丁香六月停停停| 丁香五月婷中字在线| 国产成人网站在线观看| 大地资源色婷婷视频在线| 色播综合| 色和综合网| 91 影音先锋| 九九色情网站| 激情久久网 | 九九热色视频| 五月丁香在线婷婷蜜桃| 天天夜夜爽| 亚洲成人婷婷| 久久婷婷五月| 96精品成人无码A片观看金桔| 大地资源色婷婷视频在线| 国产乱妇无乱码大黄AA片| 亚洲精品久久久久久久久久飞鱼| 久久六月综合| 久色网| 激情丁香婷婷五月天| 日操五月婷| 婷婷丁香五月天在线| 97热这里只有精品| 激情第四色| 老妇六区| 婷婷五月综激情| 99热在线观看免费中文| 天天摸天天日天天舔| 五月激情小说网| 亚洲在线资源| 色五月丁香com| 91在线日本| 天天日天天添| 亚洲热视频| 婷婷伊人中文字幕| 激情六月婷婷啪啪| 大香蕉久久| 激情激情激情网| 精品人妻久久久久久| 俺去也五月天婷婷| 9999综合99综合人| 婷婷丁香五月天欧美| 六月丁香六月婷婷欧美| 99热这里只有精品8| 20253AV| 伊人婷婷综合| 激情综合色婷婷六月天| 色九区| 9999热精品| 久久天天天| 天天天天天天噜| 五月丁香啪| 26UUU在线观看| 国产精品视频免费看| 极品人妻VIDEOSSS人妻| 大香蕉伊人99| 亚洲五月花| 午夜一区| 五月丁香综合啪啪| 国产精品美女| 99免费偷拍视频| 丁香伊人激情| a在线观看| 噜噜色五月| 高清无码中文字幕aVDV| 99网| 翔田千里aV中文字幕| 色播激情五月天| 天天插天天插| 99综合色色色| 色中色综合| 偷偷操99| 99热这里有精品| 日本人妻伦在线中文字幕| 激情婷婷久久| 91人操人人人操人| 五月天另类图片区99| 开心五月婷| 欧美日韩aaa| 欧美网站视频4399| 97色色色| 亚洲婷婷基地| 亚洲成人高清在线| 色婷婷婷婷| 日狠狠| 综合在线观看99| site:esunnet.com| 乱岳熟女50岁| 九九免费在线视频| 玖玖99婷婷| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 热久久999| 久1色色| 激情第四色| 国产67194| 色婷网| 26UUU欧美激情一区二区| 色色色色色色色色色色色色色色,网站| 久青草影院| 深爱五月月天| 日韩在线看AV| 色深爱五月| 激情黄色小说五月天| 国产真实乱了老女人视频| 热无码A∨| 超碰人人色| 色婷丁香五月| 丁香五月婷婷免费视频| 人妻自慰高清合集| 欧美操逼天堂| 99这里| 99 频99热国里只有精品| 亚洲操b| 99热九九这里只有精品| 八戒青柠影视剧在线观看| 五月丁香婷婷综合在线| 伊人丁香在线| 青青草原伊人网| 亲子乱AV一区二区三区下载| 99色色| 新激情五月开心五月婷婷五月丁香五月| 精品香蕉99久久久久网站 | 天天草比天天爽| 五月天色色色色色| 五月婷婷六月色| 婷婷丁香色五月天久久88| 极品人妻VIDEOSSS人妻| 天天做夜夜爽| 狠狠五月激情在线| Av免费网站在线| 9l视频自拍九色9l视频在线观看| 天天搞夜夜叫| 91色碰| 日韩在线视频中文字幕| 四色 爱 婷婷 精品 亚洲 五月天| 色级停停| 大香蕉精品视频| 五月丁香六月在线欧美| 成人五月天视频播放| 99色 | A短视频免费在线观看| 婷婷五月色亚洲| 51精品国内探花| 婷婷激情在线| 国产精品成人av在线观看春天| 国产精品人妻在线网址| 日韩黄在免| 五月丁香婷婷免费视频| 99re热| 亚洲色区17| 色色色成人网| 最新va在线播放| 色色网站在线免费观看视频| 日本一级特黄大片AAAAA级| 五月丁香影视| 91操片| 午夜电影网VA内射| 五月婷六月综合在线观看| 色婷小说| 粉嫩AV久久一区二区三区| 五月激情婷婷国产精品久久久久久| 亚洲婷婷视频| 91色色色18| 99视频热99| 这里只有精彩视频| 久久久精品AV| 五月婷婷综合丁香视频| 婷婷五月天男人影院色色网| 色爱综合视频| 色九月| 九九re视频在线视频| 图片区 小说区 区 亚洲五月| 久久久久激情网| 激情黄色小说五月天| 久久香蕉影院| 狼人狠狠操| 亚洲成AV人片在线观看| AA片在线观看视频在线播放| 天天肏夜夜肏| 亚洲操操操| 大香蕉天堂| 免费不卡狠操美女视频网 | 亚洲中文字幕AV在线| 99A片| 99热这里只有精品9| 婷婷丁香成人网址| 日韩按摩二区| 五月丁香六月婷婷亚洲| 丁香五月天激情小说| 九九色中文| 99黄色在线视频精品熟女| 曰本aaaaaa丈片| 色.五月综合网| 青青草免费公开视频| 成年人丁香五月| 亚洲综合色色| 激情五月婷婷五月| 久综合网| 亚洲精品又粗又大又爽A片 | 人妻内射一区二区在线视频| 成人.在线日韩| 国产AV一区二区三区最新精品| 精品人妻一区二区| 国产精品99久久久久久久女警 | 五月停视频天堂| 久久A极片| 丰满少妇乱A片无码| 亚洲视频在线观看| 抽插特写| 奇米网大香蕉| a在线观看| 狠狠爱综合| 玖玖国产视频一区| 婷婷五月天六月综合| 视频这里只有精品16| 久热这里只有精品66| 五月天激情网页| 99久久大片| 91色情播放| 色五月激情五月天| 亚洲激情av| 色五月天综合网| 久久婷婷视频| 九久久九精品视频| 色五月婷婷自拍| 日韩成人网址| www激情网| 色色色色色色色色网站| 婷婷天堂站| 99热这里只有精品9| 国产乱人偷精品人妻A片| www.91五月| 六月色婷婷综合影视| 97亚洲婷婷| ww亚洲ww在线观看| 色婷婷裸体色性在线| 丁香婷婷基地| 亚洲欧美婷婷五月色综合| 亚洲精品V天堂中文字幕| 爱久综合| 激情小说视频图片| 97精品欧美91久久久久久久| 97人人操人| 日韩成人中文字幕| 天天天天天天天操| 色播婷婷五月天| 被男人添B超爽视频| 综合另类激情| 777色婷婷爱五月| 激情九九这里只有精品| 婷婷久久综合久| 婷婷色情 | 偷偷操99| 丁香五月六月欧美| 久久五月天婷婷| 果冻传媒A片一二三区| 色玖玖综合网| 99九九精品| 九九在线精点品| 五月婷婷精品视频| 亚洲色婷婷婷婷人人爽| 五月99久久| 国产精产国品一二三在观看| 91九色精品女同系列| 五月天婷爱综合| 久久婷婷网| 五月天婷婷婷| 青青热久久综合| 色色五月天婷婷丁香| 亚洲精品一区中文字幕乱码| 在线中文av| 91色情播放| 涩五月婷婷| 久久精品99久久| 六月天丁婷婷| 色婷婷成人做爰A片免费看网站| 久婷婷五月综合欧美| 夜夜操夜夜姧| 亚洲五月天激情| 婷婷五月天毛片| 思思热在线视频99| 国产露脸150部国语对白| 久久五月丁香婷婷| 超碰99资源站| 99超碰在线观看| 99视频网| 99热99精品在线观看| 99久久国产成人精品| 五月丁香婷婷色色色| 五月丁香激情六月| 人人人操 超碰| 丁香五月自拍| 五月婷在线| PORNY九色9l自拍视频成人| 日韩色五月| 国产激情一区| 中出内射的人妻视频| 婷婷综合五月天| www.日本久久videos| 99热1| av在线免费网站| 九九碰九九爱97| 超碰日日操| 日本少妇AA一级特黄大片| 色噜噜丁香| 99成人精品| 人妻熟女一区二区AV| 天堂AV三级| 夜夜干夜夜操| www.25五月婷婷| 丁香桃色网| 丁香五月婷婷啪啪| 操人无码| 九热视频这里只有精品| 狠狠爱丁香婷| 丁香五月天资源网| 九色91国产| 91操熟女| 狠狠色婷婷7| 五月天激情婷婷| 啪啪婷婷五月天激情| 夜夜爽77777妓女免费下载 | 超碰av在线| 亚洲精品婷婷| 天天开心AV色综合婷婷五月天| 超碰婷婷色| 日韩在线aaa| 亚洲免费视频网站| 大香蕉九九| 婷婷五月天成人娱乐| 熟妇人妻中文字幕无码老熟妇| 五月婷婷六月丁香综合视频在线| 色色婷婷综合| 亚洲激情另类| 色婷婷黄色网络| 亚洲经典三级| 99热在线只有精品| 成人做爰A片免费看网站找不到了| 亚洲综合五月天| 伊人六月丁香婷婷| 人妖色AV色综合| 综合色色网| 五月色 亚洲| 婷婷丁香红五月91C| 婷婷五月天成人网| 色婷婷五月基地在线| 婷婷六月偷拍| 玖玖色综合| 色五月色综合| 色五月天堂| 欧洲电影在线观看免费版英语版| 天天噜噜| 五月丁香久久久日婷婷久久婷婷日| 91黄色五月天视频| 婷婷天天色| 婷婷色网站| 妇激情基地| 日本在线播放97| www.99婷婷| 99久久er| 99热这里只有精品26| 五月丁香婷婷激情爱爱| 五月丁香六月婷婷网| 激情综合色婷婷啪啪六月天| 色婷网| 99日热在线视频| 色色色色色色色色五月先| 日逼免费视频| 色很很96| 26.uuu丁香五月婷婷| 最近中文字幕2019视频1| 99色视频| 狠狠色 综合色区| www.99色| 欧美色色干| 五月婷A V在线| 激情綜合W W W,激情五月天| 亚洲成人五月| 五月天激情婷婷小说| 99久久精| 五月丁香婷婷综合久久| 99热www| 国产成人AV| 五月天婷婷激情在线色图| 在线综合91| 亚洲啪啪视频| 色视频五月天| 五月天婷婷青青草| 色插综合网| 久久99这里只有精品| 五月天婷婷綜合院| 久久中国毛毛片爱久久| 人碰人人人玩91| 女人高潮内射99精品| 依人大香蕉| 91婷婷色 | 99re在线观看| 成人 在线 日韩| 蜜桃人妻无码AV天堂三区| 久久久久人妻中文| 色狠狠色狠狠| 五月丁香激情深爱婷婷| 99热这里只有精品50| 五月婷成人网| 五月丁香六月婷婷不卡免费无码 | 亚洲久艹| 丁香熟女乱| 久久男人网婷婷| 91色性感五月婷婷丁香| 丁香五月婷婷激情97| 成人美女网| 被强行糟蹋的女人A片| 超碰久热| 国产AV一区二区三区最新精品| 另类激情综合| 久久伊人五月天| 99激情视频| 国产毛片精品一区二区色欲黄A片| 亚洲九九视频| 亚洲乱码日产精品BD在线观看| 婷婷五月天成人| 天天日天天操心| 风流少妇A片一区二区蜜桃| 欧美成人AAA片一区国产精品| 亚洲亚洲人成综合网络| 这里只有精品96| 欧美一级a | 婷婷爱综合| 婷婷综合激情五月综合| 另类五月激情| 91超级碰在线视频| 天天拍天天操| 热热色色五月天婷婷| 婷婷五月综合色小姐小说| 亚洲成人无码免费| 色狠狠综合网| 狠狠五月天婷婷| 99色在线观看| 先锋资源婷婷| 六月丁香网| 在线看AV| 天堂A∨在线| 色小说婷婷五月天天天| 婷婷日日夜夜| 色爱综合网| 性色做爰片在线观看WW| 激情骚五月| 欧美日朝成人| 婷婷五月天性| 生活片五区| 极品人妻VIDEOSSS人妻| 亚洲国产色婷婷| 99久久九九| 五月天激情综合10p| 色色综合激情| 亚洲精品无AMM毛片| 大香AV| 天天舔夜夜操www com| 亚洲成人va| 中文字幕在线日亚州9| 欧美性生交XXXXX无码小说| 久草嫩草在线观看| tingtingjiqingwuyue| 五月丁香淫淫婷婷婷| 99久热| 欧美一级毛卡片无码| 色色色99| 婷婷丁香五月在线播放| 可以免费观看的av| 99免费青青蜜臀| 激情五月天综合网站网站网站| 久 久9 9 热 视 频| 精品久久久人妻| 99久久久精品| 婷婷五月丁香综合激情小说| 大香蕉99| 伊人丁香五月婷婷潮吹| 色播五月丁香婷婷| 六月激情婷婷| 五月天婷婷亚洲| 天天综合亚洲综合| 五月天激情国产综合婷婷婷| 2015超碰| 特级片神马电影| 思思热在线观看| 成人Av在线大片| 开心激情播播五月天| 日本欧美成人片AAAA| 九九精品99| 能看的av网站| 99热九九九九| 5月婷婷六月丁香| 五月天激情网图片| 五月丁香色| 五月天婷婷小说| 五月丁香婷婷激情图片| 天天干-天天日| 婷婷综合激情| 丁香五月亚洲AV| 生活片五区| 99伊人性爱在线影院| 情久久综合五月天| 婷婷五月天综合久久日美女| 日韩av干| 99国产在线精品视频| 丁香亭亭久久| 日本va欧美va国产激情| WWW久久久| 久热一本| 国产ava| 99啪啪网| 97性视频| 日本久久婷| 国産精品| 伊人99热| 色狠狠五月天| 另类专区在线观看| 婷婷五月成人有| 4399成人黄A片| 男人天堂伊人五月丁香| 国产亚洲99久久精品| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 天天操天天操综合| 五月天电影网| 色狠狠色噜噜噜a天堂一区| 丁香五月婷婷激情四射深爱激情| 影音先锋 婷婷| 久久五月天激情| 色婷婷六月天在线| 丁香九月综合在线| 伊人色综合久久久| 色五月天丁香| 欧美日韩99| 天天日日天天| 亚洲成人日韩无码精品| 色香欲综合| WWW.久久久久久久| 欧美色色色色色| 九九热这里都是精品6| 久久在线视频免费观看| 91久久婷婷人人澡草| 人碰91| 亚洲欧洲国产精品| 99色精品视频| 96丁香婷婷九月蜜桃综合久久| 九一99| 天天se在线视频| 五月婷婷天| 婷婷亚洲激情在线观看视频 | 中文乱子伦视频| 人人操人人干AV| 26uuu国产| 激情五月六月丁香| av免费在线网站| 色色色色色色色色网站| 五月的丁香六月的婷婷| www.色情五月天.com| Av九九| 激情图片婷婷| 黄页免费一级视频懂色| 67194国产| 久噜久噜| 99久久久久久| 久久久久久久久久久久久9| 色色性爱视频| 五月丁香婷婷在线综合蜜桃| 日本性视频| 色色五月天激情| 一级A片天天操夜夜操| 人人性久久| 国产FREESEXVIDEOS性中国| 99九九精品| 九九热视频精品2| 五月婷婷激情在线| 久热9| 亚洲欧州色情在线观看| 97综合在线| 久久99久久99www| 99网| 青青草成人网| 五月丁香六月婷婷综合免| 亚洲五月天色色| 韩国真做片在线观看| 五月综合激情视频在线| 天天爽,天天操。| 123草逼网| 国内自拍97在线| 久久五月天综合| 天天影院色| 97色色色色色色色色色色色色色| 激情久久久久久| 雪千夏麻豆| 欧美日韩aaa| a久久| 亚洲色vA| 婷婷在线五月天观看| 久久九九@| 1024AV视频| 99国产精品久久久久久久久久久 | 色婷综合| 操操操97| 婷婷中文字幕| www.色99| 日韩 中文 欧美| 日本五月天一页| 色婷婷精品小视频| 五月婷婷综合激情| 久久久性爱网| 婷婷五月丁香香蕉| 亚洲天堂制| www.色多多婷| 国产精产国品一二三在观看| 亚洲精品婷婷| 久久综合九九| 99久久99久久| 狠狠插狠狠操| 色婷视频| 五月丁香婷婷三级| 色国产五月| 久久五月视频| 草综合网| 丁香 婷婷 激情 综合 五月| 任你日视频| 青青草原伊人网| 1234操逼网| 一区二区三区四区牛| 色播激情| 丁香五月天亚洲综合| 色婷婷成人色网| 操操操97| 丁香五月婷婷av影院| 丁香五月婷婷激情四射深爱激情| 97在线观视频免费观看| 年轻的妺妺伦理HD中文| 无码少妇高潮喷水A片免费| 丁香五月影院| 欧类av怡春院| 亚洲精品一二三| 五月婷婷伊| 婷婷丁香大香蕉| 婷婷五月丁香激情图片| 日日噜噜久久婷婷五月天| 中文字幕综合色| 91久久国产综合久久| 黄色五月婷| 91婷婷色| 亚洲欧美成人在线| 九玖视频这里只有精品| 五月婷婷丁香啪啪| 亚洲AV激情五月综合网| 伍月激情天| 五月婷婷综合色拍| 色五狠狠| 婷婷五月天狠狠色| 亚洲天堂99| www.久久久久| 丁香五月影| 久久五月情| 日本精品99| aaaaaa片| 色五月丁香六月婷婷| www婷婷| 超碰av在线| 激情久久久| 久777| 色在线99| 丁香五月天激情婷婷丁香六月| 五月丁香999| 五月网网站| 久99久在线观看| 九九久久综合| 成人AV播放| 在线观看中文字幕亚洲| 天天色伊人| 九九色热| 欧洲色| 91大神在线免费看视频全集男男一起操| 在线天堂9| 久久在这里有精品| 五月成人网站| 中文字幕在线日亚州9| 婷婷五月另类网站| 依人大香蕉| 丁香婷婷婷五月| 性爱视频99| 丁香色色五月| 99er这里只有精品| 日本社区五月天激情| 26uuu精品国产| 丁香五月婷婷香| 99re热视频这里只有综合亚洲| 色噜噜在线| 91综合国免费久入| 久热精品免费视频4| 五月婷婷丁香综合| 26uuu欧美激情另类| 丁香五月综合| 五月丁香天堂| 丁香久久AV| 棕合影院色色| 无语停婷丁香网| 夜夜躁狠狠| 天天肏天天肏天天肏| 97很鲁在线视频| 99碰碰| 丁香婷婷噜噜| 日本不卡高字幕在线2019| 伊人9在线| 狠狠狠狠狠草| 99热这里只有精品99| 五月天丁香综合在线| 天天模,夜夜模夜夜爽| 久久婷婷内射| 特黄三级又爽又粗又大| 狠狠另类视频| 国产在线中文字幕| 91九九热| 五月丁香六月激情网| 五月婷在线观看| 99热99日天天干| 激情丁香五月激情婷婷| 人人草成人视频| 久久精品亚洲热| 香蕉久久国产AV一区二区| 另类视频一区| 六月婷婷综合激情| 六月丁香AV| 深爱丁香激情| 白人荫道BBWBBB大荫道| 激情视频网址| 五月天伊人综合| 久久99久久久| 婷婷成人五月天成人文学小说| 亚洲乱码日产精品BD| Av性爱网站| 9l视频自拍9l九色成人| 亚洲天堂久久| 99视频自拍| 九热久| 超碰男人色| 99热线观看9| 亚洲最大视频| 9超碰在线| 九九热在线视频观看| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 日本婷久久| 五月天婷婷基地综合网| 五月婷婷丁香六月 | 天天插综合网| 国产欧美日韩性爱| 婷婷五月天精品| 五月丁香美女视频| 深爱激情综合| 久鲁鲁色网| 亚洲中文字幕在线观看| 丁香五月婷婷六月婷| 国产午夜精品AV一区二区麻豆| 色五月无码| 中国女人做爰A片| 色婷婷色久综| 亚洲六月色| 骚货艹网站视频| 亚洲婷婷综合视频| 色色a| 男人天堂99| 天天狠天天叉| 五月丁香亭亭成人电影| 搡BBBB搡BBB搡18 | 五月色网| 正宗黄色毛片| 久激情网| 精品国产人人爱人人| 亚洲亚洲人成综合网络| 色久激情在线| 伊人青涩网| 九九五月天| 久久婷出差欧美色两性综合网| 国产日产亚系列精品版优势| 丁香五月综合在线视频| 丁香五月123| 91九九| 奸逼视频| 激情综合婷婷久久| 五月丁香久久网| 婷婷五月蜜桃成人桃色丁香| 淫五月停停| 天天色天天操天天射| 91一起操| 五月天激情美女久久| 97色色色| 五月丁香六月综合情在线观看| 久久AV无码精品人妻系列试探| 四月婷婷丁香| 成人婷99最新| 亚洲精品V天堂中文字幕| 亚洲精品午夜国产va久久成人| 九九热啪啪| 免费无码毛片一区二区A片| 99热.com| 久久久精品视频79| 色99最新网址| 亚洲综合五月天婷婷丁香| 天天在线久久综合| 日韩成人电影av| 99色在线视频| 人人干av| 久热2025无码| 哇嘎成人久久| 国产又黄又爽又色的免费| 丁香婷婷深情五月亚洲| 欧美va精品va老师va| 日本偷拍九九九| 夜夜撸夜夜骑| 天天做天天爱天天爽综合网| 噜噜噜噜噜在线| 婷婷五月丁香激情图片| 五月丁香影院| 狠狠操狠狠| www.日韩艹| 色综合色综合网| 大香伊人婷婷影院| 亚洲人妻av伦理| 97极品在线| 狠狠色激情综合| 天天色播| 国产中文字幕在线视频免费观看| 久热无码| 大香蕉婷婷五月| 激情五月婷在线精品| 玖玖视频福利| 超碰猛烈的性猛交| 在线综合亚洲欧美65| 狠狠狠狠狠狠| 色婷婷五月综合在线| 国产色五月婷婷| 激情五月激情综合俺也去婷婷小说| 丁香五月天天| 2018夜夜草| 超碰99在线观看| 欧美视频五区| 亚洲色情在线| 六月婷婷私欲| 色情五月丁香婷婷网| 香蕉操亚洲| 色天堂操| 开心婷婷五月综合| 午夜天堂一区人妻| 久久综合激情| 97天堂| 六月婷婷久久| 思思热在线视频精品| 亚洲另类噜噜| 国产精品色一哟哟| 婷婷六月网| 99爱在线| 性色播| 性色欲情 网站| 99在线观看视频| 操日视频| 亚洲婷婷久久综合| 亚洲综合成人网站| 五月婷久草| 九 九九九AV| 伊综合蕉| 婷婷五月天综合久久日| 新激情婷婷| 激情四射亚洲| 97五月婷| 丁香色色五月| 久久久五月天婷婷成人网| 色九九中文字幕| 97人人操人人插| 日韩五月婷婷久久| www.夜夜爱.com| 日韩三级视频一区二区| www.com在线操视频免费观看| 婷婷五月综合社区在线| 9色操| 色婷婷五月成人网| 婷婷激情五月天小说| 婷婷五月天毛片| 色婷婷天堂| 黄色五月婷婷| 丁香五月天AV在线| 激情婷婷内射| 激情五月婷婷伊人| 久久五月婷天天干| 激情五月婷婷网| 欧美人与性动交CCOO| 91干| 婷婷五月天最新综合你懂的| 狠狠艹狠狠艹| 欧美黑人巨大猛烈cuckold| 少妇久久诱惑视频| 午夜电影网VA内射| 5月婷婷五月天| 99精品视频在线| 九月久久婷婷| 色婷五月天| 久久五月天精品视频| 婷婷五月AA五月在线| 五月天黄色激情小说| 婷婷色正月| 久婷婷婷| 五月丁香影院| 亚洲AV成人一区二区在线观看| 超碰色人妾| 色五月婷婷中文字幕| 丁香六月激情综合网| 五月深爱网| 8区视频在线| 欧美交换配乱吟粗大25P| 变态 另类 在线 | 天天搡日日搡aaaaⅩ| 五月婷婷开心亚洲无| 亚洲99手机免费看视频 | 91九色国产熟女| 久热91| 国产黄色在线观看| 国产成人亚洲综合亚洲| 少妇激情基地| 99久久精品网| 97干在线观看视频| 国产成人精品亚洲线观看| 一本九九色| 99五月丁香丁| 天天做天天爱天天做| 激情婷婷| 色婷婷亚洲综合天堂| 嫩草视频在线观看| 婷婷玉月丁香五月在线视频| 天天插天天插| www.五月天| 91超级碰在线| 天天做综合网色综合| 久久婷婷综合基地| 色婷婷五月综合激情中文字幕| 99久在线精品99re5热视频| 丁香六月 婷婷六月| 五月婷婷av| www.五月天| 综合AV在线| 丁香成人色情五月天| 天天搞天天爽| 涩 五月 婷婷 狠狠| 色亚洲婷婷| 久久久97| 婷久久综合| 日日婷婷不卡| www.久久| 色五月自偷自拍婷婷婷婷| 丁香五月婷婷色综合基地| 久久九区| 9久9久| 五月天激情久色| 九九成人| 国产精品成人AV在线| 亚洲欧美999| 国产精品18久久久| 成人电影一区| 九九青草热| 丁香婷婷综合影院| 在线色五月婷婷| 天天爱天天操| 九九色大香蕉| 亚洲天堂aaa| 婷婷大香焦| 成人五月天在线视频在线观看| 五月天堂色| 色色影院黄大片| 天天做天天爱天天玩夜夜爽| 国产毛多水多女人A片| 伊人久久婷婷| 99九九综合久久九九| 综合99在线| 久久综合激情婷婷激情| 伊人在线视频| www.激情五月天.com| 色吧五月婷婷| 天天噜日日噜综合无码| 亚洲VA口| 午夜日韩久久久网站| 色播五月婷婷五月| 丁香五月亚洲综合| 91大屁股| 五月丁香亭亭电影久久| 天天色,天天操,天天射| 亚洲综合激情五月久久| 婷婷爱在线观看| 伊人五月天在线| 五月天综合在线| 亚洲超碰在线| 狠狠色色| 亚洲激情五月| 五月欧美色播| 欧美婷婷| 精品国产va久久久久久久| 91九九| 美女要搞搞天天搞搞搞网站| 成人做爰A片免费看网站找不到了 噼里啪啦在线观看免费完整版视频 | 色.五月综合网| 久8色色| 热婷婷久| 五月天最新网| 超碰色婷婷|