亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

MRAM工業(yè)嵌入式存儲(chǔ)實(shí)戰(zhàn):MR25H40CDF與STM32F031C6驅(qū)動(dòng)開(kāi)發(fā)

MRAM工業(yè)嵌入式存儲(chǔ)實(shí)戰(zhàn):MR25H40CDF與STM32F031C6驅(qū)動(dòng)開(kāi)發(fā) 1. 為什么 MRAM 在工業(yè)嵌入式場(chǎng)景里越來(lái)越受關(guān)注1.1 從 EEPROM 和 Flash 的痛點(diǎn)說(shuō)起做過(guò)工業(yè)設(shè)備的人大概都有過(guò)這樣的經(jīng)歷設(shè)備在現(xiàn)場(chǎng)跑了幾個(gè)月突然某天斷電重啟后參數(shù)全丟了或者日志文件寫(xiě)壞導(dǎo)致整個(gè)文件系統(tǒng)掛掉。追根溯源問(wèn)題往往出在存儲(chǔ)介質(zhì)上。傳統(tǒng)方案里小容量參數(shù)存儲(chǔ)用 EEPROM大容量數(shù)據(jù)和代碼存儲(chǔ)用 NOR Flash 或 NAND Flash這套組合用了十幾年穩(wěn)定是穩(wěn)定但有幾個(gè)繞不開(kāi)的硬傷。EEPROM 的寫(xiě)入速度慢得讓人著急字節(jié)寫(xiě)入典型值在 5ms 到 10ms 量級(jí)如果設(shè)備需要在掉電瞬間保存一批關(guān)鍵數(shù)據(jù)這個(gè)速度根本來(lái)不及。而且 EEPROM 的擦寫(xiě)壽命雖然標(biāo)稱(chēng) 100 萬(wàn)次但實(shí)際在高溫環(huán)境下會(huì)大幅縮水工業(yè)級(jí) 85℃ 場(chǎng)景下能到 10 萬(wàn)次就算不錯(cuò)了。NOR Flash 呢擦除必須按扇區(qū)來(lái)寫(xiě)入前要先擦除擦除時(shí)間長(zhǎng)而且擦寫(xiě)壽命通常只有 10 萬(wàn)次左右頻繁寫(xiě)日志的場(chǎng)景下很快就到壽命上限。MRAMMagnetoresistive Random Access Memory磁性隨機(jī)存儲(chǔ)器的出現(xiàn)恰好把這些痛點(diǎn)一次性解決了。它的寫(xiě)入速度是納秒級(jí)的和 SRAM 一個(gè)量級(jí)擦寫(xiě)壽命理論上無(wú)限實(shí)測(cè)可以輕松做到 10^14 次以上非易失特性讓它斷電后數(shù)據(jù)不丟而且不需要擦除操作可以直接覆蓋寫(xiě)。這幾個(gè)特性疊加在一起對(duì)于工業(yè)數(shù)據(jù)采集、參數(shù)存儲(chǔ)、掉電保護(hù)、日志記錄這些場(chǎng)景來(lái)說(shuō)簡(jiǎn)直是量身定做的。1.2 MR25H40CDF 這顆芯片到底強(qiáng)在哪MR25H40CDF 是 Everspin 出品的一款 4Mbit512KB容量的 SPI MRAM。我第一次拿到這顆芯片的規(guī)格書(shū)時(shí)最直觀的感受是它的接口設(shè)計(jì)非??酥啤獦?biāo)準(zhǔn) SPI 接口支持 Mode 0 和 Mode 3最高時(shí)鐘頻率 40MHz指令集和普通 SPI Flash 高度兼容基本上你原來(lái)怎么操作 W25Q 系列換成它只需要改幾個(gè)指令碼。但它的內(nèi)在和 Flash 完全不同。MR25H40CDF 的存儲(chǔ)單元是磁性隧道結(jié)MTJ通過(guò)電子自旋方向來(lái)存儲(chǔ)數(shù)據(jù)而不是電荷。這意味著它沒(méi)有電荷泄漏問(wèn)題不需要刷新寫(xiě)入前不需要擦除寫(xiě)入延遲極低。規(guī)格書(shū)上標(biāo)稱(chēng)的寫(xiě)入周期時(shí)間是 35ns這個(gè)數(shù)字在 SPI 接口下會(huì)被總線速度限制但即便如此40MHz 時(shí)鐘下連續(xù)寫(xiě)入的吞吐率也能達(dá)到 5MB/s 左右比 EEPROM 快了三個(gè)數(shù)量級(jí)。工作電壓范圍 2.7V 到 3.6V工業(yè)級(jí)溫度范圍 -40℃ 到 85℃部分批次可以做到 105℃。封裝是 8 引腳 SOIC 或者 DFN引腳定義和標(biāo)準(zhǔn) SPI Flash 完全一致CS、SO、SI、SCK、VDD、VSS、WP、HOLD。WP 和 HOLD 引腳在 MRAM 里功能有所簡(jiǎn)化但引腳位置兼容PCB 設(shè)計(jì)時(shí)可以直接替換 Flash 的焊盤(pán)。1.3 STM32F031C6 作為主控的適配性分析STM32F031C6 是 ST 的入門(mén)級(jí) Cortex-M0 芯片48MHz 主頻32KB Flash4KB SRAM封裝是 LQFP48。選它來(lái)搭配 MR25H40CDF乍一看有點(diǎn)小馬拉大車(chē)的意思——4KB SRAM 的芯片去驅(qū)動(dòng) 512KB 的存儲(chǔ)能行嗎實(shí)際用下來(lái)這個(gè)組合在工業(yè)場(chǎng)景里非常合理。STM32F031C6 自帶一個(gè)硬件 SPI 接口最高時(shí)鐘可以配置到 24MHzPCLK 48MHz 二分頻雖然跑不滿(mǎn) MR25H40CDF 的 40MHz 上限但 24MHz 下連續(xù)讀寫(xiě)的吞吐率也有 3MB/s對(duì)于參數(shù)存儲(chǔ)、日志緩沖、配置管理這些場(chǎng)景完全夠用。而且 F031C6 的功耗極低運(yùn)行模式下約 100μA/MHz配合 MRAM 的微安級(jí)待機(jī)電流整個(gè)存儲(chǔ)子系統(tǒng)在電池供電的工業(yè)傳感器節(jié)點(diǎn)里可以做到很長(zhǎng)的續(xù)航。更重要的是STM32F031C6 的 SPI 外設(shè)支持 DMA 請(qǐng)求雖然 M0 的 DMA 通道有限配合 MRAM 的連續(xù)讀寫(xiě)特性可以實(shí)現(xiàn)零拷貝的數(shù)據(jù)流。我在一個(gè)振動(dòng)采集項(xiàng)目里用 SPIDMA 把 MRAM 當(dāng)作環(huán)形緩沖區(qū)ADC 采樣數(shù)據(jù)直接通過(guò) DMA 寫(xiě)入 MRAMCPU 幾乎不參與實(shí)測(cè)下來(lái)非常穩(wěn)。注意STM32F031C6 的 SPI1 默認(rèn)引腳是 PA5(SCK)、PA6(MISO)、PA7(MOSI)片選需要自己用 GPIO 控制。硬件 NSS 在 M0 系列上有些坑建議直接用軟件片選后面會(huì)詳細(xì)說(shuō)。2. 硬件設(shè)計(jì)從原理圖到 PCB 的實(shí)操細(xì)節(jié)2.1 引腳連接與電平匹配MR25H40CDF 和 STM32F031C6 都是 3.3V 供電電平直接匹配不需要電平轉(zhuǎn)換芯片。這一點(diǎn)比某些 1.8V 的 MRAM 型號(hào)省事很多。具體的引腳連接關(guān)系如下表MR25H40CDF 引腳功能STM32F031C6 引腳備注CS片選PA4 (GPIO)軟件控制低有效SCK時(shí)鐘PA5 (SPI1_SCK)24MHz 以?xún)?nèi)SO數(shù)據(jù)輸出PA6 (SPI1_MISO)推挽復(fù)用SI數(shù)據(jù)輸入PA7 (SPI1_MOSI)推挽復(fù)用WP寫(xiě)保護(hù)接 VDD 或 GPIO不用時(shí)上拉HOLD保持接 VDD 或 GPIO不用時(shí)上拉VDD電源3.3V加 0.1μF 去耦VSS地GND單點(diǎn)接地這里有個(gè)細(xì)節(jié)值得展開(kāi)說(shuō)。WP 和 HOLD 引腳在 MR25H40CDF 上的行為和 Flash 不完全一樣。Flash 的 WP 引腳在特定指令下會(huì)鎖死狀態(tài)寄存器而 MRAM 的 WP 引腳功能更簡(jiǎn)單主要是硬件級(jí)別的寫(xiě)保護(hù)。如果你不需要硬件寫(xiě)保護(hù)直接上拉到 VDD 就行。HOLD 引腳用于暫停 SPI 通信在多從機(jī)共享總線的場(chǎng)景下有用單從機(jī)場(chǎng)景直接上拉。我踩過(guò)的一個(gè)坑有一次為了省事把 WP 和 HOLD 懸空了結(jié)果在電機(jī)干擾比較大的環(huán)境里偶爾出現(xiàn)寫(xiě)入數(shù)據(jù)錯(cuò)亂。后來(lái)查了半天發(fā)現(xiàn)是懸空引腳拾取了噪聲導(dǎo)致芯片內(nèi)部狀態(tài)機(jī)誤動(dòng)作。所以這兩個(gè)引腳一定要處理要么上拉要么接 GPIO 控制千萬(wàn)別懸空。2.2 PCB 布局布線的關(guān)鍵要點(diǎn)SPI 總線在 24MHz 下雖然不算高速信號(hào)但在工業(yè)環(huán)境里電磁干擾復(fù)雜PCB 布局還是不能太隨意。我總結(jié)了幾條實(shí)操經(jīng)驗(yàn)第一MRAM 芯片盡量靠近 MCU 放置走線長(zhǎng)度控制在 5cm 以?xún)?nèi)。SPI 的四根信號(hào)線SCK、MOSI、MISO、CS盡量等長(zhǎng)尤其是 SCK 和 MOSI長(zhǎng)度差不要超過(guò) 5mm。如果實(shí)在做不到等長(zhǎng)優(yōu)先保證 SCK 走線短而直。第二SCK 走線要遠(yuǎn)離模擬信號(hào)和電源開(kāi)關(guān)節(jié)點(diǎn)。我在一個(gè)項(xiàng)目里把 SCK 走線從 DC-DC 電感旁邊穿過(guò)結(jié)果 SPI 通信誤碼率飆升。后來(lái)把 SCK 改道問(wèn)題立刻消失。如果 PCB 空間受限可以在 SCK 和 GND 之間加一個(gè) 22Ω 的串聯(lián)電阻減緩邊沿速率降低輻射。第三去耦電容必須加而且要靠近芯片的 VDD 引腳。0.1μF 的陶瓷電容是標(biāo)配如果電源紋波比較大再并聯(lián)一個(gè) 1μF 的。我習(xí)慣在 MRAM 的 VDD 和 GND 之間放一個(gè) 0.1μF 的 0402 電容距離引腳不超過(guò) 2mm。第四CS 信號(hào)線不要和其他信號(hào)線平行走太長(zhǎng)距離。CS 是控制信號(hào)如果受到干擾產(chǎn)生毛刺會(huì)導(dǎo)致 SPI 狀態(tài)機(jī)誤判??梢栽?CS 上拉一個(gè) 10kΩ 的電阻到 VDD保證空閑時(shí)電平穩(wěn)定。實(shí)操心得如果你用的是雙層板建議在 MRAM 芯片下方鋪一塊完整的地平面SPI 信號(hào)線走在頂層地平面在底層作為參考。這樣可以讓信號(hào)回流路徑最短減少電磁輻射。四層板的話把 SPI 信號(hào)走在內(nèi)層上下都有地平面參考效果更好。2.3 電源設(shè)計(jì)與掉電保護(hù)工業(yè)場(chǎng)景里電源質(zhì)量往往不太理想浪涌、跌落、紋波都是家常便飯。MRAM 雖然寫(xiě)入速度快但如果電源在寫(xiě)入過(guò)程中跌落數(shù)據(jù)仍然可能出錯(cuò)。所以電源設(shè)計(jì)要留足余量。MR25H40CDF 的工作電壓范圍是 2.7V 到 3.6V典型值 3.3V。我一般會(huì)用一顆 LDO 單獨(dú)給 MRAM 供電比如 TPS7A4901 或者類(lèi)似的低噪聲 LDO輸出 3.3V輸入從系統(tǒng)的 5V 或者 12V 降壓過(guò)來(lái)。LDO 的輸入端加一個(gè) 10μF 的鉭電容輸出端加 1μF 陶瓷電容加 0.1μF 高頻電容。如果系統(tǒng)有掉電保存的需求可以在 LDO 輸入端加一個(gè)大容量電容比如 1000μF配合一個(gè)電壓檢測(cè)電路。當(dāng)檢測(cè)到輸入電壓跌落時(shí)MCU 立即觸發(fā) MRAM 寫(xiě)入把關(guān)鍵數(shù)據(jù)保存下來(lái)。由于 MRAM 寫(xiě)入速度極快1000μF 電容儲(chǔ)存的能量足夠完成幾百次寫(xiě)入操作。我實(shí)測(cè)過(guò)一組數(shù)據(jù)在 3.3V 供電、1000μF 電容的條件下從檢測(cè)到掉電到電容電壓跌落到 2.7VMRAM 最低工作電壓大約有 15ms 的窗口時(shí)間。在這 15ms 內(nèi)以 24MHz SPI 時(shí)鐘計(jì)算可以寫(xiě)入大約 45KB 的數(shù)據(jù)。對(duì)于大多數(shù)參數(shù)保存場(chǎng)景這個(gè)窗口綽綽有余。3. 軟件驅(qū)動(dòng)從寄存器操作到 HAL 庫(kù)封裝3.1 SPI 外設(shè)初始化與時(shí)鐘配置STM32F031C6 的 SPI1 掛在 APB2 總線上PCLK 默認(rèn) 48MHz。要配置 SPI 時(shí)鐘為 24MHz需要設(shè)置分頻系數(shù)為 2。用 STM32CubeMX 配置的話步驟很直觀在 SPI1 的配置界面里Mode 選 Full-Duplex MasterHardware NSS Signal 選 DisablePrescaler 選 2 分頻Data Size 選 8bitCLK Polarity 選 LowCLK Phase 選 1 Edge也就是 SPI Mode 0。這里解釋一下為什么選 Mode 0。MR25H40CDF 支持 Mode 0 和 Mode 3兩者的區(qū)別在于時(shí)鐘空閑電平和采樣邊沿。Mode 0 是時(shí)鐘空閑低電平第一個(gè)邊沿上升沿采樣Mode 3 是時(shí)鐘空閑高電平第二個(gè)邊沿下降沿采樣。Mode 0 在大多數(shù) SPI Flash 和 MRAM 上是默認(rèn)模式兼容性最好所以我一般優(yōu)先選 Mode 0。用 HAL 庫(kù)初始化的代碼大概長(zhǎng)這樣SPI_HandleTypeDef hspi1; void SPI1_Init(void) { hspi1.Instance SPI1; hspi1.Init.Mode SPI_MODE_MASTER; hspi1.Init.Direction SPI_DIRECTION_2LINES; hspi1.Init.DataSize SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity SPI_POLARITY_LOW; hspi1.Init.CLKPhase SPI_PHASE_1EDGE; hspi1.Init.NSS SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler SPI_BAUDRATEPRESCALER_2; hspi1.Init.FirstBit SPI_FIRSTBIT_MSB; hspi1.Init.TIMode SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial 7; if (HAL_SPI_Init(hspi1) ! HAL_OK) { Error_Handler(); } }片選引腳 PA4 配置為推挽輸出初始電平拉高void CS_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin GPIO_PIN_4; GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull GPIO_NOPULL; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOA, GPIO_InitStruct); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); }注意STM32F031C6 的 SPI1 在 HAL 庫(kù)里有幾個(gè)版本存在已知問(wèn)題主要是 HAL_SPI_TransmitReceive 在高速下偶發(fā)超時(shí)。如果你遇到這個(gè)問(wèn)題可以改用 LL 庫(kù)直接操作寄存器或者升級(jí)到最新的 HAL 版本。我實(shí)測(cè) STM32CubeF0 的 1.11.0 版本 HAL 庫(kù)比較穩(wěn)定。3.2 MRAM 指令集解析與讀寫(xiě)時(shí)序MR25H40CDF 的指令集和標(biāo)準(zhǔn) SPI Flash 高度相似但簡(jiǎn)化了不少。常用的指令碼如下表指令名稱(chēng)指令碼功能說(shuō)明WREN0x06寫(xiě)使能寫(xiě)入前必須發(fā)送WRDI0x04寫(xiě)禁止RDSR0x05讀狀態(tài)寄存器WRSR0x01寫(xiě)狀態(tài)寄存器READ0x03讀數(shù)據(jù)任意地址WRITE0x02寫(xiě)數(shù)據(jù)任意地址RDID0x9F讀設(shè)備 ID和 Flash 最大的區(qū)別在于MRAM 沒(méi)有扇區(qū)擦除指令也沒(méi)有頁(yè)編程的概念。寫(xiě)入操作就是直接發(fā) WRITE 指令然后跟 3 字節(jié)地址再跟數(shù)據(jù)數(shù)據(jù)可以連續(xù)寫(xiě)地址自動(dòng)遞增直到 CS 拉高。整個(gè)寫(xiě)入過(guò)程不需要等待因?yàn)?MRAM 的寫(xiě)入是即時(shí)的。讀操作的時(shí)序也很簡(jiǎn)單CS 拉低發(fā)送 READ 指令0x03發(fā)送 3 字節(jié)地址然后時(shí)鐘繼續(xù)輸出MISO 上就會(huì)依次返回?cái)?shù)據(jù)。地址自動(dòng)遞增可以一直讀到 CS 拉高。寫(xiě)操作的時(shí)序稍微復(fù)雜一點(diǎn)CS 拉低發(fā)送 WREN 指令0x06CS 拉高然后 CS 再拉低發(fā)送 WRITE 指令0x02發(fā)送 3 字節(jié)地址發(fā)送數(shù)據(jù)CS 拉高。注意 WREN 和 WRITE 之間必須拉高 CS這是 SPI Flash 和 MRAM 的通用規(guī)則目的是讓芯片內(nèi)部狀態(tài)機(jī)識(shí)別到指令邊界。3.3 底層讀寫(xiě)函數(shù)實(shí)現(xiàn)基于 HAL 庫(kù)我封裝了幾個(gè)底層函數(shù)。先看寫(xiě)使能函數(shù)void MRAM_WriteEnable(void) { uint8_t cmd 0x06; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 1, 100); MRAM_CS_HIGH(); }讀狀態(tài)寄存器函數(shù)uint8_t MRAM_ReadStatus(void) { uint8_t cmd 0x05; uint8_t status 0; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 1, 100); HAL_SPI_Receive(hspi1, status, 1, 100); MRAM_CS_HIGH(); return status; }寫(xiě)數(shù)據(jù)函數(shù)void MRAM_Write(uint32_t addr, uint8_t *data, uint16_t len) { uint8_t cmd[4]; cmd[0] 0x02; cmd[1] (addr 16) 0xFF; cmd[2] (addr 8) 0xFF; cmd[3] addr 0xFF; MRAM_WriteEnable(); MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 4, 100); HAL_SPI_Transmit(hspi1, data, len, 1000); MRAM_CS_HIGH(); }讀數(shù)據(jù)函數(shù)void MRAM_Read(uint32_t addr, uint8_t *data, uint16_t len) { uint8_t cmd[4]; cmd[0] 0x03; cmd[1] (addr 16) 0xFF; cmd[2] (addr 8) 0xFF; cmd[3] addr 0xFF; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 4, 100); HAL_SPI_Receive(hspi1, data, len, 1000); MRAM_CS_HIGH(); }這幾個(gè)函數(shù)是驅(qū)動(dòng)的基礎(chǔ)實(shí)際項(xiàng)目里我會(huì)再加一層封裝比如按結(jié)構(gòu)體讀寫(xiě)、帶 CRC 校驗(yàn)的讀寫(xiě)、環(huán)形緩沖區(qū)管理等。但底層這幾個(gè)函數(shù)必須保證穩(wěn)定可靠因?yàn)樗猩蠈硬僮鞫家蕾?lài)它們。實(shí)操心得HAL_SPI_Transmit 和 HAL_SPI_Receive 的超時(shí)參數(shù)不要設(shè)太小。我一開(kāi)始設(shè)了 10ms結(jié)果在 24MHz 下連續(xù)寫(xiě) 256 字節(jié)時(shí)偶爾超時(shí)。后來(lái)改成 1000ms問(wèn)題消失。原因是 HAL 庫(kù)在傳輸過(guò)程中有循環(huán)等待如果中斷頻繁打斷實(shí)際耗時(shí)可能比理論值長(zhǎng)很多。4. 數(shù)據(jù)管理策略讓 MRAM 發(fā)揮最大價(jià)值4.1 參數(shù)存儲(chǔ)的分區(qū)設(shè)計(jì)512KB 的 MRAM 看起來(lái)不大但在參數(shù)存儲(chǔ)場(chǎng)景里綽綽有余。我一般會(huì)把 MRAM 分成幾個(gè)區(qū)域來(lái)管理區(qū)域名稱(chēng)起始地址大小用途系統(tǒng)參數(shù)區(qū)0x000004KB設(shè)備配置、校準(zhǔn)參數(shù)用戶(hù)參數(shù)區(qū)0x010004KB用戶(hù)設(shè)置、偏好日志區(qū)0x02000256KB運(yùn)行日志、事件記錄數(shù)據(jù)緩沖區(qū)0x42000252KB采集數(shù)據(jù)、掉電保護(hù)系統(tǒng)參數(shù)區(qū)和用戶(hù)參數(shù)區(qū)各留 4KB足夠存儲(chǔ)幾百個(gè)參數(shù)。日志區(qū)用環(huán)形緩沖區(qū)的方式管理寫(xiě)滿(mǎn)后從頭覆蓋。數(shù)據(jù)緩沖區(qū)用于掉電保護(hù)平時(shí)可以當(dāng)作普通 RAM 使用掉電時(shí)把關(guān)鍵數(shù)據(jù)寫(xiě)進(jìn)去。分區(qū)設(shè)計(jì)的好處是隔離性好日志寫(xiě)壞了不會(huì)影響參數(shù)區(qū)參數(shù)區(qū)更新也不會(huì)干擾日志記錄。而且每個(gè)區(qū)域可以獨(dú)立做 CRC 校驗(yàn)出問(wèn)題時(shí)容易定位。4.2 掉電保護(hù)的數(shù)據(jù)完整性保障掉電保護(hù)是 MRAM 最核心的應(yīng)用場(chǎng)景之一。我設(shè)計(jì)過(guò)一個(gè)方案實(shí)測(cè)在工業(yè)現(xiàn)場(chǎng)跑了兩年多沒(méi)有丟過(guò)一次數(shù)據(jù)。核心思路是雙備份CRC寫(xiě)入確認(rèn)。具體做法是每個(gè)參數(shù)塊存儲(chǔ)兩份地址 A 和地址 B。寫(xiě)入時(shí)先寫(xiě) A讀回校驗(yàn) CRC確認(rèn)無(wú)誤后再寫(xiě) B。讀取時(shí)先讀 ACRC 校驗(yàn)通過(guò)就用 A否則讀 B。如果 A 和 B 都?jí)牧瞬攀褂媚J(rèn)值。這個(gè)方案的關(guān)鍵在于寫(xiě)入順序。必須先寫(xiě) A 再寫(xiě) B而且兩次寫(xiě)入之間要有一個(gè)提交標(biāo)志。我在每個(gè)參數(shù)塊前面加一個(gè) 4 字節(jié)的頭部包含一個(gè)序列號(hào)和一個(gè)狀態(tài)標(biāo)志。寫(xiě)入流程是讀取當(dāng)前序列號(hào)加 1構(gòu)造新數(shù)據(jù)塊頭部狀態(tài)標(biāo)志設(shè)為寫(xiě)入中寫(xiě)入 A 區(qū)讀回 A 區(qū)校驗(yàn) CRC如果校驗(yàn)通過(guò)把 A 區(qū)頭部狀態(tài)改為有效寫(xiě)入 B 區(qū)重復(fù)步驟 3-5這樣即使在第 3 步到第 5 步之間掉電A 區(qū)的狀態(tài)標(biāo)志還是寫(xiě)入中讀取時(shí)會(huì)跳過(guò) A 區(qū)使用 B 區(qū)的舊數(shù)據(jù)。數(shù)據(jù)完整性得到了保障。注意MRAM 的寫(xiě)入雖然是即時(shí)的但 SPI 傳輸需要時(shí)間。在掉電窗口內(nèi)要確保 SPI 傳輸能完成。我的做法是在檢測(cè)到掉電后立即把 SPI 時(shí)鐘降到最低比如 1MHz犧牲速度換穩(wěn)定性。1MHz 下寫(xiě) 256 字節(jié)需要約 2ms1000μF 電容的 15ms 窗口完全夠用。4.3 日志系統(tǒng)的環(huán)形緩沖區(qū)實(shí)現(xiàn)日志區(qū)用環(huán)形緩沖區(qū)管理每個(gè)日志條目包含時(shí)間戳、事件類(lèi)型、數(shù)據(jù)長(zhǎng)度和 CRC。寫(xiě)入時(shí)從當(dāng)前寫(xiě)指針位置開(kāi)始寫(xiě)滿(mǎn)后回到開(kāi)頭覆蓋最舊的日志。環(huán)形緩沖區(qū)的關(guān)鍵參數(shù)是寫(xiě)指針和讀指針。寫(xiě)指針指向下一個(gè)可寫(xiě)位置讀指針指向最舊的未讀日志。為了避免讀寫(xiě)沖突我用了寫(xiě)指針原子更新的策略每次寫(xiě)入完成后才更新寫(xiě)指針。這樣即使寫(xiě)入過(guò)程中掉電寫(xiě)指針仍然指向舊位置不會(huì)產(chǎn)生半截日志。日志條目的結(jié)構(gòu)定義如下typedef struct { uint32_t timestamp; uint16_t event_type; uint8_t data_len; uint8_t reserved; uint8_t data[32]; uint16_t crc; } LogEntry_t;每個(gè)條目 44 字節(jié)256KB 的日志區(qū)可以存約 5800 條日志。對(duì)于大多數(shù)工業(yè)設(shè)備這個(gè)容量可以記錄幾個(gè)月的運(yùn)行日志。讀取日志時(shí)從讀指針開(kāi)始逐條讀取并校驗(yàn) CRC。如果 CRC 不通過(guò)說(shuō)明這條日志寫(xiě)壞了跳過(guò)繼續(xù)讀下一條。這樣可以保證即使有個(gè)別日志損壞也不會(huì)影響整體日志的讀取。5. 性能實(shí)測(cè)與優(yōu)化技巧5.1 讀寫(xiě)速度實(shí)測(cè)數(shù)據(jù)我在 STM32F031C6 MR25H40CDF 的平臺(tái)上做了一組性能測(cè)試SPI 時(shí)鐘 24MHz測(cè)試結(jié)果如下操作類(lèi)型數(shù)據(jù)量耗時(shí)吞吐率單字節(jié)寫(xiě)1B2.1μs0.48MB/s連續(xù)寫(xiě)256B92μs2.78MB/s連續(xù)寫(xiě)4KB1.42ms2.88MB/s單字節(jié)讀1B1.8μs0.56MB/s連續(xù)讀256B88μs2.91MB/s連續(xù)讀4KB1.38ms2.97MB/s從數(shù)據(jù)可以看出連續(xù)讀寫(xiě)的吞吐率接近 3MB/s已經(jīng)接近 24MHz SPI 的理論上限3MB/s。單字節(jié)操作的效率較低因?yàn)橹噶詈偷刂烽_(kāi)銷(xiāo)占了很大比例。所以實(shí)際使用中盡量批量讀寫(xiě)減少單字節(jié)操作。5.2 DMA 加速與 CPU 占用率優(yōu)化在數(shù)據(jù)采集場(chǎng)景里CPU 需要同時(shí)處理 ADC 采樣、算法運(yùn)算和存儲(chǔ)寫(xiě)入。如果 SPI 寫(xiě)入占用太多 CPU 時(shí)間會(huì)影響實(shí)時(shí)性。用 DMA 可以大幅降低 CPU 占用率。STM32F031C6 的 DMA 控制器有 5 個(gè)通道SPI1 的 TX 和 RX 各占一個(gè)。配置 DMA 后SPI 傳輸由 DMA 控制器接管CPU 只需要在傳輸完成后處理中斷即可。我實(shí)測(cè)過(guò)一組對(duì)比數(shù)據(jù)在 24MHz SPI 時(shí)鐘下連續(xù)寫(xiě)入 4KB 數(shù)據(jù)輪詢(xún)方式 CPU 占用率約 85%DMA 方式 CPU 占用率約 12%。差距非常明顯。對(duì)于需要同時(shí)跑控制算法的場(chǎng)景DMA 幾乎是必選項(xiàng)。DMA 配置的代碼大概長(zhǎng)這樣void SPI1_DMA_Init(void) { __HAL_RCC_DMA1_CLK_ENABLE(); hdma_spi1_tx.Instance DMA1_Channel3; hdma_spi1_tx.Init.Direction DMA_MEMORY_TO_PERIPH; hdma_spi1_tx.Init.PeriphInc DMA_PINC_DISABLE; hdma_spi1_tx.Init.MemInc DMA_MINC_ENABLE; hdma_spi1_tx.Init.PeriphDataAlignment DMA_PDATAALIGN_BYTE; hdma_spi1_tx.Init.MemDataAlignment DMA_MDATAALIGN_BYTE; hdma_spi1_tx.Init.Mode DMA_NORMAL; hdma_spi1_tx.Init.Priority DMA_PRIORITY_HIGH; HAL_DMA_Init(hdma_spi1_tx); __HAL_LINKDMA(hspi1, hdmatx, hdma_spi1_tx); }實(shí)操心得DMA 傳輸時(shí)CS 信號(hào)的控制要特別注意。HAL 庫(kù)的 HAL_SPI_Transmit_DMA 函數(shù)在傳輸完成后會(huì)觸發(fā)回調(diào)但 CS 的拉高時(shí)機(jī)需要自己控制。我一般會(huì)在 DMA 傳輸完成回調(diào)里拉高 CS確保數(shù)據(jù)全部發(fā)完。如果提前拉高 CS最后幾個(gè)字節(jié)可能丟失。5.3 低功耗場(chǎng)景下的存儲(chǔ)策略工業(yè)傳感器節(jié)點(diǎn)往往用電池供電功耗是核心指標(biāo)。STM32F031C6 和 MR25H40CDF 都支持低功耗模式配合使用可以做到很低的平均功耗。STM32F031C6 的 Stop 模式電流約 1μAStandby 模式約 0.5μA。MR25H40CDF 的待機(jī)電流約 10μA讀寫(xiě)電流約 5mA。所以策略是平時(shí) MCU 進(jìn) Stop 模式MRAM 保持待機(jī)需要存儲(chǔ)時(shí)喚醒 MCU完成寫(xiě)入后立即回到低功耗模式。我實(shí)測(cè)過(guò)一個(gè)數(shù)據(jù)采集節(jié)點(diǎn)的功耗每 10 秒采集一次數(shù)據(jù)寫(xiě)入 MRAM然后休眠。平均電流約 15μA用 2000mAh 的鋰電池可以跑 15 年以上。當(dāng)然實(shí)際中還有傳感器和其他外設(shè)的功耗但存儲(chǔ)子系統(tǒng)的功耗已經(jīng)可以忽略不計(jì)了。低功耗場(chǎng)景下有個(gè)細(xì)節(jié)要注意MRAM 的 CS 引腳在 MCU 休眠時(shí)要保持高電平否則 MRAM 可能進(jìn)入異常狀態(tài)。我一般會(huì)在 CS 上加一個(gè) 100kΩ 的上拉電阻確保 MCU 引腳高阻時(shí) CS 仍然為高。6. 常見(jiàn)問(wèn)題排查與避坑指南6.1 SPI 通信失敗的問(wèn)題定位SPI 通信失敗是最常見(jiàn)的問(wèn)題表現(xiàn)是讀不到數(shù)據(jù)、讀到的數(shù)據(jù)全是 0xFF 或 0x00、寫(xiě)入后讀回不一致等。排查思路可以按以下順序進(jìn)行第一步檢查硬件連接。用萬(wàn)用表量一下 CS、SCK、MOSI、MISO 四根線的通斷確認(rèn)沒(méi)有虛焊。然后量一下 MRAM 的 VDD 引腳確認(rèn)供電正常。這一步看似簡(jiǎn)單但我遇到過(guò)好幾次問(wèn)題都是因?yàn)?VDD 虛焊。第二步用示波器看波形。CS 拉低時(shí)SCK 應(yīng)該有 8 個(gè)或更多時(shí)鐘脈沖。如果 SCK 沒(méi)有波形說(shuō)明 SPI 外設(shè)沒(méi)配置好。如果 SCK 有波形但 MISO 一直是高電平說(shuō)明 MRAM 沒(méi)有響應(yīng)可能是 CS 沒(méi)拉低或者 MRAM 損壞。第三步讀設(shè)備 ID。MR25H40CDF 的 RDID 指令0x9F會(huì)返回一個(gè) 3 字節(jié)的 ID正常應(yīng)該是 0xE5 0x40 0x13 之類(lèi)的值。如果讀不到正確的 ID說(shuō)明底層通信有問(wèn)題先別急著調(diào)上層邏輯。第四步檢查 SPI 模式。MRAM 支持 Mode 0 和 Mode 3如果 MCU 配置成 Mode 1 或 Mode 2通信會(huì)失敗。這個(gè)坑我踩過(guò)當(dāng)時(shí)調(diào)了半天最后發(fā)現(xiàn)是 CubeMX 里 CLK Phase 選錯(cuò)了。6.2 數(shù)據(jù)寫(xiě)入后讀回不一致的排查寫(xiě)入后讀回不一致可能的原因有幾個(gè)一是寫(xiě)使能沒(méi)有正確發(fā)送。MRAM 每次寫(xiě)入前必須發(fā) WREN 指令如果 WREN 發(fā)送失敗或者被中斷打斷寫(xiě)入操作會(huì)被忽略。排查方法是寫(xiě)完后讀狀態(tài)寄存器看 WEL 位是否被清零。二是 CS 時(shí)序不對(duì)。WREN 和 WRITE 之間必須拉高 CS如果 CS 一直保持低電平MRAM 會(huì)把 WREN 和 WRITE 當(dāng)作一個(gè)連續(xù)指令導(dǎo)致寫(xiě)入失敗。這個(gè)細(xì)節(jié)在規(guī)格書(shū)里有明確說(shuō)明但很容易被忽略。三是電源干擾。在電機(jī)、繼電器等大功率設(shè)備附近電源紋波可能導(dǎo)致 MRAM 寫(xiě)入出錯(cuò)。解決方法是在 MRAM 的 VDD 和 GND 之間加一個(gè) 0.1μF 加 1μF 的電容組合必要時(shí)再加一個(gè)磁珠隔離。四是 SPI 時(shí)鐘太快。雖然 MR25H40CDF 標(biāo)稱(chēng)支持 40MHz但在實(shí)際 PCB 上走線長(zhǎng)度、負(fù)載電容等因素會(huì)影響信號(hào)完整性。如果 24MHz 下不穩(wěn)定可以降到 12MHz 試試。我有個(gè)項(xiàng)目因?yàn)?PCB 走線太長(zhǎng)最后降到 8MHz 才穩(wěn)定。6.3 常見(jiàn)問(wèn)題速查表現(xiàn)象可能原因排查方法解決方案讀不到設(shè)備 IDSPI 模式錯(cuò)誤檢查 CLK Polarity/Phase改為 Mode 0讀到的數(shù)據(jù)全 0xFFMISO 未連接量 MISO 通斷重新焊接寫(xiě)入后讀回不一致WREN 未發(fā)送讀狀態(tài)寄存器 WEL 位確保 WREN 后 CS 拉高偶發(fā)數(shù)據(jù)錯(cuò)亂電源干擾示波器看 VDD 紋波加去耦電容高速下通信失敗信號(hào)完整性差降低 SPI 時(shí)鐘測(cè)試降頻或改 PCBCS 拉低無(wú)響應(yīng)CS 引腳配置錯(cuò)誤量 CS 電平改為推挽輸出寫(xiě)入超時(shí)HAL 庫(kù)超時(shí)設(shè)置太短增大超時(shí)參數(shù)改為 1000ms避坑技巧如果你在調(diào)試時(shí)實(shí)在找不到問(wèn)題可以先用一個(gè)簡(jiǎn)單的 GPIO 模擬 SPI 時(shí)序逐位發(fā)送指令用示波器觀察每一位的波形。這樣可以排除 SPI 外設(shè)配置的問(wèn)題快速定位是硬件還是軟件的問(wèn)題。我每次遇到疑難雜癥最后都是用這招解決的。7. 項(xiàng)目實(shí)戰(zhàn)工業(yè)數(shù)據(jù)采集器的存儲(chǔ)方案7.1 需求分析與方案設(shè)計(jì)我接手過(guò)一個(gè)工業(yè)振動(dòng)采集器的項(xiàng)目需求是每 1ms 采集一次三軸加速度數(shù)據(jù)每次 6 字節(jié)連續(xù)采集 10 分鐘數(shù)據(jù)不能丟。算一下數(shù)據(jù)量1ms 一次10 分鐘是 600 秒總共 60 萬(wàn)次采樣每次 6 字節(jié)總共 3.6MB。MRAM 只有 512KB存不下全部數(shù)據(jù)。所以方案要分兩級(jí)MRAM 作為一級(jí)緩沖存最近的數(shù)據(jù)外部 SD 卡或者大容量 Flash 作為二級(jí)存儲(chǔ)定期把 MRAM 里的數(shù)據(jù)轉(zhuǎn)存過(guò)去。MRAM 的作用是削峰填谷在 SD 卡寫(xiě)入的間隙緩存數(shù)據(jù)保證不丟采樣點(diǎn)。具體設(shè)計(jì)是MRAM 分成兩個(gè) 256KB 的緩沖區(qū)交替使用。當(dāng)緩沖區(qū) A 寫(xiě)滿(mǎn)時(shí)切換 to 緩沖區(qū) B同時(shí)把 A 的數(shù)據(jù)通過(guò) DMA 轉(zhuǎn)存到 SD 卡。SD 卡寫(xiě)入速度約 2MB/s256KB 需要 128ms。在這 128ms 內(nèi)緩沖區(qū) B 可以繼續(xù)接收數(shù)據(jù)不會(huì)丟點(diǎn)。7.2 關(guān)鍵代碼實(shí)現(xiàn)與調(diào)試過(guò)程數(shù)據(jù)采集用 ADC DMA 定時(shí)器觸發(fā)采樣數(shù)據(jù)直接通過(guò) DMA 寫(xiě)入 MRAM 的緩沖區(qū)。核心代碼是 MRAM 的 DMA 寫(xiě)入函數(shù)void MRAM_Write_DMA(uint32_t addr, uint8_t *data, uint16_t len, void (*callback)(void)) { uint8_t cmd[4]; cmd[0] 0x02; cmd[1] (addr 16) 0xFF; cmd[2] (addr 8) 0xFF; cmd[3] addr 0xFF; MRAM_WriteEnable(); MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 4, 100); HAL_SPI_Transmit_DMA(hspi1, data, len); // 在 DMA 完成回調(diào)里拉高 CS 并調(diào)用 callback }調(diào)試過(guò)程中遇到的最大問(wèn)題是 DMA 傳輸和 CS 控制的時(shí)序配合。HAL 庫(kù)的 DMA 完成回調(diào)是在傳輸結(jié)束后觸發(fā)的但 SPI 的最后一個(gè)字節(jié)可能還在移位寄存器里。如果立即拉高 CS最后一個(gè)字節(jié)會(huì)丟失。解決方法是在 DMA 完成回調(diào)里先等 1μs再拉高 CS。這個(gè) 1μs 的延時(shí)看起來(lái)不起眼但少了它數(shù)據(jù)就是錯(cuò)的。另一個(gè)問(wèn)題是緩沖區(qū)切換的原子性。如果切換過(guò)程中來(lái)了中斷可能導(dǎo)致數(shù)據(jù)寫(xiě)到錯(cuò)誤的緩沖區(qū)。我的做法是在切換時(shí)關(guān)中斷切換完成后立即開(kāi)中斷。關(guān)中斷的時(shí)間只有幾個(gè)時(shí)鐘周期不會(huì)影響其他中斷的響應(yīng)。7.3 實(shí)測(cè)結(jié)果與長(zhǎng)期運(yùn)行穩(wěn)定性這個(gè)方案在實(shí)際現(xiàn)場(chǎng)跑了半年多采集了上千組數(shù)據(jù)沒(méi)有丟過(guò)一個(gè)采樣點(diǎn)。MRAM 的寫(xiě)入速度完全跟得上 1ms 的采樣周期SD 卡轉(zhuǎn)存也沒(méi)有成為瓶頸。長(zhǎng)期運(yùn)行下來(lái)MRAM 的穩(wěn)定性非常好。我特意做了個(gè)測(cè)試連續(xù)寫(xiě)入 100 萬(wàn)次讀回校驗(yàn)全部通過(guò)。規(guī)格書(shū)標(biāo)稱(chēng)的 10^14 次擦寫(xiě)壽命在實(shí)際使用中根本用不完。按每天寫(xiě)入 100 萬(wàn)次計(jì)算可以用 270 年。溫度方面設(shè)備工作在 -20℃ 到 60℃ 的環(huán)境里MRAM 的數(shù)據(jù)保持能力沒(méi)有出現(xiàn)任何問(wèn)題。我做過(guò)高低溫循環(huán)測(cè)試-40℃ 到 85℃ 循環(huán) 100 次數(shù)據(jù)依然完好。8. 選型對(duì)比與方案擴(kuò)展8.1 MRAM vs FRAM vs EEPROM vs Flash在工業(yè)存儲(chǔ)方案里MRAM 不是唯一的選擇。FRAM鐵電存儲(chǔ)器也是非易失、高速、高壽命的存儲(chǔ)介質(zhì)。我把幾種方案放在一起對(duì)比特性MRAMFRAMEEPROMNOR Flash寫(xiě)入速度納秒級(jí)納秒級(jí)毫秒級(jí)毫秒級(jí)擦寫(xiě)壽命10^1410^1410^610^5寫(xiě)入前擦除不需要不需要不需要需要容量最大 16Mb最大 4Mb最大 2Mb最大 1Gb功耗中低中高成本高中低低溫度范圍-40~105℃-40~85℃-40~85℃-40~85℃從對(duì)比可以看出MRAM 的優(yōu)勢(shì)在于容量比 FRAM 大、溫度范圍更寬劣勢(shì)是成本較高。FRAM 在低功耗場(chǎng)景下更有優(yōu)勢(shì)但容量受限。EEPROM 和 Flash 適合對(duì)成本敏感、寫(xiě)入頻率不高的場(chǎng)景。選型的核心邏輯是如果寫(xiě)入頻繁、要求高可靠性、容量需求在 512KB 以?xún)?nèi)MRAM 是最優(yōu)解。如果功耗極其敏感、容量需求小FRAM 更合適。如果只是存?zhèn)€配置參數(shù)、寫(xiě)入次數(shù)不多EEPROM 就夠了。8.2 從單機(jī)存儲(chǔ)到分布式存儲(chǔ)的擴(kuò)展思路單個(gè) MRAM 的容量有限如果項(xiàng)目需要更大的存儲(chǔ)空間可以考慮多片 MRAM 級(jí)聯(lián)。MR25H40CDF 支持 SPI 總線共享用不同的 CS 引腳選擇不同的芯片。STM32F031C6 的 GPIO 足夠驅(qū)動(dòng) 4 到 8 片 MRAM總?cè)萘靠梢詳U(kuò)展到 2MB 到 4MB。多片級(jí)聯(lián)的軟件設(shè)計(jì)需要一個(gè)地址映射層。上層應(yīng)用調(diào)用統(tǒng)一的讀寫(xiě)接口底層根據(jù)地址范圍選擇對(duì)應(yīng)的 CS 和芯片。這樣上層代碼不需要關(guān)心具體有幾片 MRAM擴(kuò)展起來(lái)很方便。如果還需要更大容量可以考慮 MRAM SD 卡的混合方案。MRAM 作為高速緩存SD 卡作為大容量存儲(chǔ)。數(shù)據(jù)先寫(xiě)入 MRAM再批量轉(zhuǎn)存到 SD 卡。這樣既保證了寫(xiě)入速度又滿(mǎn)足了容量需求。擴(kuò)展思路MRAM 的另一個(gè)有趣應(yīng)用是做內(nèi)存鏡像。在系統(tǒng)運(yùn)行時(shí)把關(guān)鍵變量同時(shí)存在 SRAM 和 MRAM 里。掉電后重啟從 MRAM 恢復(fù)變量值實(shí)現(xiàn)斷電續(xù)跑。這個(gè)方案在工業(yè)控制器的狀態(tài)保持場(chǎng)景里非常有用我后續(xù)會(huì)單獨(dú)寫(xiě)一篇來(lái)展開(kāi)。9. 寫(xiě)在最后的一些實(shí)操體會(huì)這個(gè)組合我用了兩年多從最初的評(píng)估板到量產(chǎn)產(chǎn)品踩過(guò)的坑不算少但整體來(lái)說(shuō) MR25H40CDF STM32F031C6 是一套非??煽康拇鎯?chǔ)方案。如果你正在選型工業(yè)嵌入式項(xiàng)目的存儲(chǔ)介質(zhì)我建議先拿幾片樣品在真實(shí)環(huán)境里跑一跑特別是高低溫循環(huán)和電源波動(dòng)測(cè)試這兩項(xiàng)最能暴露問(wèn)題。有個(gè)細(xì)節(jié)我一開(kāi)始沒(méi)注意MRAM 的 CS 引腳在 PCB 上最好串聯(lián)一個(gè) 22Ω 的電阻。這個(gè)電阻可以抑制信號(hào)反射在長(zhǎng)走線或者多從機(jī)場(chǎng)景下特別有用。我有個(gè)項(xiàng)目因?yàn)?CS 走線太長(zhǎng)加了電阻之后通信穩(wěn)定性明顯提升。另外MRAM 的寫(xiě)入雖然不需要擦除但并不意味著可以無(wú)限制地隨意寫(xiě)。雖然壽命是 10^14 次但如果你的應(yīng)用每秒寫(xiě)幾萬(wàn)次幾年下來(lái)也會(huì)接近上限。所以日志系統(tǒng)還是建議用環(huán)形緩沖區(qū)避免對(duì)同一地址反復(fù)寫(xiě)入。最后說(shuō)個(gè)成本相關(guān)的事。MR25H40CDF 的價(jià)格比同容量的 SPI Flash 貴不少批量采購(gòu)的話大概是 Flash 的 5 到 8 倍。所以選型時(shí)要算清楚賬如果只是存配置參數(shù)一年寫(xiě)不了幾次用 Flash 就夠了如果是高頻寫(xiě)入、掉電保護(hù)、高可靠性場(chǎng)景MRAM 多出來(lái)的成本是值得的。我一般會(huì)建議客戶(hù)在關(guān)鍵數(shù)據(jù)存儲(chǔ)上用 MRAM非關(guān)鍵數(shù)據(jù)用 Flash混合方案性?xún)r(jià)比最高。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
综合久久婷婷| 欧美热图99| 91亚洲最新在线| 国产这里只有精品| 在线观看黄色电话| 最近2018中文字幕在线高清第一页| 青青草日本中文字幕 | 无码WWW免费视频网站| 人人澡人人澡人人| 大香蕉中文在线| 午夜天堂网| 99热欧美| 99热精品免费| 亚洲第一在线视频| 粉嫩不卡一区二区性爱 | 亚洲熟女国产综合另类| 9久久精品| 熟女精品va中文字幕| 五月丁香激情四射| 男啪女色黄无遮挡免费观看| 精品人妻一区二区三区不卡断| 国产一区96在线| 亚洲偷拍自拍在线视频| wwwcaobibi| 操迟操逼在巾线Fre看| 亚洲熟女av中文字幕| 青青草影视蜜久久| 婷婷人妻激情| 欧美色图欧美| 青春草莓视频在线观看网址| 国内毛片热久久思思热| 一级毛片久久久久久久女人18| 亚洲情欲| av无线看| 91粉嫩萝控精品福利网站_精品影音先锋国 | 日本十八禁免费看污网站| 国产在线综合福利网站| 国产精品麻豆免费视频| 四虎影视永久在线免费| 大香网站| 内射白嫩美女| 人妻一区久久二区三区色播| 在线电影亚洲色图| 色噜噜国产精品视频一区二区| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 久久久一区二区三区四区五区| 2017天天插| 国产白丝av| 91社区伊人| 亚洲精品久久久久毛片A片拉屎| 日韩一二三区| 中文字幕黄片在线| 天天爽天天操| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 丝袜美腿欧美| 久草精品视频| 青娱乐91| 国产成年女人免费视频播放a| 爽极品影院| 国产激情av女片自拍| 在线国产一区二区av| 激情久久久| 人妻碰碰碰碰碰碰| 欧美91精彩| 国产精品97超碰| 欧美伊人电影| 久热精品在线| 久久99亚洲精品久久99果| 精品久久99| 日本天堂网| 超碰97资源网亚洲| 国产一区二区三区高清视频| 东京热亚洲一区二区| 久久伊人网视频一区二区三区| 中文字幕一区av| 色av中文字幕| 成人小说另类在线| 九九九九九九九精品视频| 欧美超碰96| 蜜臀一二三区| 日本操逼二区| 高清不卡一二三区视频......| AV色五月天| 啊啊啊啊操死我| 亚洲av综合色区图片亚洲| 亚洲超碰在线| 日韩精品9区| 久久人妻| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 午夜福利国产欧美日韩夜夜| 91色情黑丝搞鸡在线观看一区二区三区三州 | 日本中文字幕一区| 操屄日韩| 久久香蕉影院| 婷婷五月天色网| 国产精品亚洲色婷婷久久久| 午夜激情床戏激情| 欧美综合亚洲综合| 精品久久久中文字幕不| 亚洲图片欧美| 发朗少妇买婬全视频中文| AV男人天堂网| 精品午夜福利国产一区二区在线观看| 久久久久久亚洲精品不卡人乳| 97国产综合欧美| 亚欧成人中文字幕一区| 欧美激情久久久久| 超碰人人操97碰| 精品视频123区小说区| 日本二区不卡| 国产精品久久久三级无码| 乱伦熟妇一区二区| 久久精彩视频9| 麻豆尤物视频网| 国产在线精品偷| 青娱乐手机日韩在线视频| 精品人成视频在线观看| 曰韩欧美国产传媒麻豆第一区| 蜜臀99久久精品久久久久久| 午夜呻吟欧美| 欧美亚洲色图另类国产| 老女人老91妇女老热女| 香蕉久久AⅤ...| 欧美A√综合网| 婷婷色色五月天福利| 91人人看| 久久五十路熟女人妻| 久久欧洲| 激情AV| 亚洲精品国产拍免费91在线| 91N欧美| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 五月天久久综合网| 高潮综合网| 日本女优在线视频福利| 天天影视之亚洲综合网| 色婷婷影视| 久久久久久性爱免费视频| 免费观看欧美日韩操逼视频| 免费视频97| 蜜色网色哟哟| 日韩不卡毛片Av免费高清| 人妻少妇无码 | 男同专区一区二区三区在线| 1024亚洲中文字幕久在线看片你懂的| 乱抡国产91| 亚洲综合射| 首页中文字幕中文字幕免费| 资源新线在线天堂| 久久影视二区三区行押| 美女黄色一级A视频| 亚洲欧美日韩制服另类| 日本中文字幕熟妇| 67194无码不卡| 国产精品无码久久久久2025| 深夜福利黄片| 91操熟女视频| 麻豆人妻少妇在线免费观看| 爱爱60秒免费视频| 日han少妇无码| 先锋激情∨在线视频播放| 免费99精品国产自在在线| 熟妇在线视频一区二区| 久热影视| 天天爱天天操| 成人欧美日超碰| 91亚洲人电影| 操逼日韩无码| 国产熟女乱论| 中文字幕五月婷婷免费| 91天天综合日韩欧美| 亚洲色香| 91新在线欧美| 女同在线视频一区| 免费看久久久性性| 免费观看国产小粉嫩喷水精品午| 亚洲乱妇p22| 新视频sss国产| 亚洲天堂人妻一区二区| 欧美成人黄网色网站| 在线日韩精品一区二区三区| 干B网| 97碰碰日本乱偷人妻中文的| 一区二区三区四区五区高清无码永久视频 | 高精欧美色| 色偷综合| 亚洲欧美精品久| 97在线国产精品| 国产高潮AA片免费看| 久久五十路熟女人妻| 超碰免费97| 91精品人妻| 国产精品97视频| 亚洲色图综合网| 日日橹狠狠爱欧美超碰| 久操99| 看一级黄色视频| 老司机老司机午夜影院| 亚洲 自拍偷拍 欧美| 黄色无码高清黄色无码网站| …亚洲黄色厕厕女女在线播…| 一二三四区操操Av| 欧美一区二区三熟女剧情| 亚洲图片 激情小说| 久久九九一区二区三区成人| 91色图片| 97久久国产亚洲精品超碰热| 亚洲久久东京热一二三四五区视频| 制服中出中文人人精品| 久久久一区二区| 熟女探花啪啪| 金莲网址| 新婚人妻扶着粗大强行坐下| 牛黄色久午久| 久热免费视频| 色综和网| 蜜桃狠狠色伊人亚洲综合| 国产视频第2页| 欧美综合色综合| 九九热精品视频六| 黑人免费福利视频| 亚洲一区操| 日韩亚洲精品一区二区| 中文字幕日韩人妻视频一区二区三区| 男人的天堂一区三区| 久久婷婷亚洲| 国产精品suv一区| 97在线资源| 天天干1区2区在线| 蜜臀久久99精品久久久久久| 日欧操屄| 青青操狠狠撩| 久久久久久久久久久人妻| 熟女自慰久久久| 久久久久久少妇| 久夜操| 日韩无码视频黄色| 日韩一级二级| 97精品久久久久中文字幕| 中文字幕一品色图| 免费看黄片现成| 人干人人人操人人摸| 十八禁啪啦拍视频无遮挡| 亚洲天堂电影精品一区| 美美91成人国产精品欧美精品久久久久久久| 人人噜夜夜操| 精品78| 欧美精品成人在线播放| 99热这里都是精品| 午夜精品久久久久久久| 激情小说亚洲| 亚洲nv男人的天堂网| 老女人碰碰在线碰碰视频| 中文字幕欧美精品亚洲日韩蜜臀| 日韩操逼HD| 久久欧美按摩999| 黄色十八禁| 毛片久久| 啊啊啊啊嗯嗯嗯用力好爽 | 可乐操在线| 日韩免费中文字幕视频| 亚洲第一综合| www久久精品| 青青操网| 日韩人体偷拍| 在线国产探花| 日韩中文字幕宗合在线| 亚洲无码com| 九九热精品在线| 午夜福利在线合集| 黄色片A级一区二区三区| 日本日逼视频网| 亚洲性综合| 国产色综合亚洲色综合吹潮| 高清不卡国产| 97天天摸天天爽| 欧美性爱伊人| 亚洲自拍小说| 图片区小说区| 欧美后入式| 久干9操| 久久111| 精品一区二区国产日韩| 99热亚洲天堂| 国产精品点击进入在线影院高清 | 欧美国产一区二区三区麻豆传媒| 国产91亚洲精品一区二区三区| 99精品在线观看| 夜夜骑日日| 亚州AV无码国产精品| 秋霞一区二区三区四区五区六区七区| 桃花色综合影院| 素人美腿视频网站| 精品中文字幕第一页| 看黑人AV不卡| 涩涩这里只有精品视频| 久久人妻一区二区三区高清| 强奸乱伦资源| 人人妻人人玩人人澡人人爽| 素人美腿视频网站| 18禁在线视频| 天天看高清麻豆| 国产精品久久久久久照片| juliaann精品熟女一区| 亚洲国产精品9999在线观看| 亚洲清纯唯美| 99天堂网| 九九综合九九综合| 欧美日韩精品国产91| 不卡av在线中文字幕| 日本超碰色精品| 性色av网站| 人人妻人人澡人人爽久久av| 91av天美性媒精品视频| 黑人嘿嘿嘿超爽免费视频| 91精品国产长腿丝袜美女| 一区二区三区在线资源| 亚洲无无码αⅴ每日更新| 激情综合网一盗摄| 色婷五月天| 人妻色偷色噜| 男女性扦B| 丁香五月天视频| 久久精品国产Aⅴ| 久久久久9999妇女| 色色五月天婷婷| 97在线免费观看视频| 国产乱弄免费在线视频。| 国内精品久久久久影院亚洲| 无码不卡亚洲成?人片| 91高潮喷水美女| 五月天婷婷久久| 蜜乳Av成人片网站| 男人天堂东京热| 嗯嗯啊啊好大好爽| 校园春色欧美色图| 免费一级视频特黄色大片| 国产精品白丝www| 伊人网免费视频| 色97干| WWW4虎| 精品国产丝袜一区二区三区乱码| 人妻精品一区二区| 少妇第一页| 欧美专区在线| 青娱乐日韩无码| 乱伦色图网址是多少| 男人的天堂com| 热久久99999| 丁香九月婷婷| 免费精品福利在线观看| 国产又黄又粗的视频| 亚春色色| 久久高清无码夜夜操| 国产在线76页| 久久久麻豆精品| 日本一二区不卡| 97网址97| 好舒服视频| www久久久| 日本欧美韩国国产在线| 久久六六| 国产久久久久久| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 国产1769在线| 欧美大波激情xxxx| 一级二级在线观看| 久久久久久中文版| 欧美少妇第一页| 欧美色五月| 屁屁影院一区二区三区国产| 中国女人内射6XXXXX| 精品国模无码| 天天综合欧美| 亚洲 日本 不卡| 四季av一区二区凹凸精品小说| 超碰综合色| 精品四五区| 91色久| 日本3级一区二区免费| 无码av永久免费专区网站| dy888午夜老子影视达达兔| 色九色久| 97网色| 午夜亚洲| 78久久| 91制服丝袜| 久久久精精精| 欧美一级二级三级| 欧美日韩久久精品爱爱| 欧美人妻制服| 色综合国产在线观看| 熟女人妻精品一区二区视频| 蜜臀久久99精品久久久久久酒店| 九色黄站| 97爱综合| 欧美午夜视频免费观看| 欧美精品xxxwww| 嫖老熟女A片一二三区| 色yeye成人免费视频| 国产精品久久久久久久黄无码| 人人操人人摸人人看人人干| 国产强奸超碰AV| 97国产成人精品免费视频| 亚洲女毛多水多21P| 一个人免费HD91视频| 久操婷婷| 欧美少妇熟女| 第二页中文字幕| av东京热男人的天堂| 色综合超碰超| 最新AV在线| 亚洲一区二区三区婷婷| 欧美黄色片在线播放| 又粗又长又爽在线观看| 蜜乳成人AV| 91深夜夜| 国产女生在线| 爆乳免费黄网站| 97精品国产精品免费观看| 亚洲天堂日本| 超碰美女97| 色吧5亚洲| 日本熟妇人妻中出视频| 一二三区在线| 欧美狠狠鲁| 不卡二三区人妻少妇| 日本不卡五区| 久久欧美性爱视频| 久视频在线观看| 日韩精品影视| 在线日韩日本亚洲国产| 亚洲第2页| 精品国产人成在线| 日日夜夜干| 美女诱惑在线一区| 丰满人妻-区二区三区免费看 | 无码伊人久久大杳蕉中文无码| 久都青青视频| 国产AV色黄看到爽| 久久xx| 9999亚洲电影| 26uuu久久| 国产人妻天天干精品| 九色 人妻 大香蕉| 72av视频| 婷婷激情五月天小说网| 可以免费观看的AV| 日本好吊色视频| 日韩精品在线放| 97人人超| 天堂麻豆天美| 九九九免费视频| 91精品国产麻豆国产自产在| 在线黄色污污网站| 久久久久久人妻一区精品色欧美| 青青国产精品在线| 午夜毛片亚洲精品片国产久久久| 人人插人人摸人人| 久久综合久色欧美综合狠狠| 中文字幕中文字幕一区二区| 亚洲淫乱骚妇AV| 一区二区高清视频| 91一区二区| 亚洲欧美洲综合| 在线人人人人人人精品超 | 日韩不卡码| 网站A V在线| 色妺妺在线视频| 尤物视频新赏网鲜网色诱网| 淫荡少妇免费| 狠狠爱夜夜干| 最新日产中文在线麻豆| 亚州国产成人精品女人久久| 911粉嫩人妻| 欧美影音在线| 欧亚成人| 亚洲欧美综合图片| 日日日日日| 久久精品无码一区二区三区| 婷婷亚洲综合| 精品综合久久久久久五月天| 人妻精品综合中文字幕在线| 啊啊啊啊啊啊在线观看| 怡红院成人av| 日日噜噜夜夜狠狠视频无| 久久一二三四五六七八九区区| 日韩啪啪视频| 偷拍超碰| 国产伦乱91| 骚鸭AV| 亚洲国产第一页综合视频| 91熟女丨老女人| 国产精品麻豆成人AV艾秋| 思思久热在线精品66| 午夜激情床戏激情| 福利操逼| 综合熟妇一区二区三区| 99色色网| 日韩精品在线放| 日本人妻天堂网站在线播放| 超碰人妻在线| 精品人妻一区二区三区四区不卡在| 视频在线观看一二三区| 97人人操人人摸人人爱| 欧美草草高清日韩视频| 天天综合亚在线| 久久综合资源一区二区| 99热销国产这里有精品| 国产精品一区二区密臀| 伊人精品视频| 日本污ww视频网站| 91视频精品| 嗯嗯啊啊操死我| 黑人精品成人一区二区三区 | 亚洲欧洲精品视频发布| 亚洲97综| 色悠久久久av| 你操综合| 一级久久久久久久久久久| 日韩一级欧美一级国产一级台湾| 婷婷五月天无码| www.狠狠| 亚洲中文字幕av| 韩国三级一线观看久| 91美女高潮| 美欧老女人97| 激情婷婷| 性做久久久久久免费观看软件| 久久永久无码人妻视频| 国内外毛片在线观看| 抽查国产福利主播| 香蕉久久国产AV一区二区| AVE乱伦| 亚洲人妻爽爽爽| 77国产精品| 亚洲影视综合网| 婷婷久久五月| 久久久久久久国产视频| 久久透逼视频| 成年人网站在线免费观看| 亚洲色婷婷综合久久久久中文| 亚洲一二三四区机械| 天天摸夜夜添无码小视频| 欧美第一页| AV女资源| 十八禁电影伊人网| 天欧美在线| 91挑色欧美| 东京太热久久久| 啊…啊…操我用力操我| 久久老子无码午夜伦不卡| 免费αⅴ在线观看| 手机在线A片| av爱爱爱| 欧美巨大性舒爽顶到了| 99婷婷一区二区| 99国产精品| 中文字幕一区二区无码成人| 老熟女91视频| 葡萄牙性视频一二区| 91精品国| 成年人黄色| 久草这里只有精品| 97综合在线| 中文字幕蜜乳av| 久久αⅴ| 清纯唯美亚洲| 欧美一区二区三区互相| A 天堂| 国内毛片热久久思思热| 久热在线精品免费观看| 国产美女口爆吞精视频| 国产亚洲福利第一页丝袜| 午夜男女爽爽爽影院视频| 中文字幕97| 久久中文字幕不卡人妻| 四虎影视永久在线免费| 亚洲成熟国产精品美女| 精品一二三区久久AAA片| 色婷婷电影网| 熟女啪啪视频| 夜夜国产一区| 麻豆色约约| 97av在线观看| 国产亚洲精品A在线观看下载| 一区二区三区 丝袜 高跟 美腿| 91黑丝在线播放| 大香蕉伊人网WWWn0n| yy少妇精品久久| 亚洲色图8| 97国产精品一区二区传媒公司| 91福利网在线观看| 视频黄色国产一级| 日本黄 R色 成 人网站| 人人乐大香蕉| 嗯……啊…嗯嗯…啊…好舒服| 99在线观看无大码| 一二视频神马久久传媒| 国产精品久久久久久久久久久久久久吹| 精品78| 草草影院最新网址| 精品丰满人妻一区二区三区免费观| 一区,二区,三区网站| 亚洲色图欧美另类在线| 美女91在线| 亚洲欧美日韩免费电影| 九九99精品| 午夜后入| 精品视频在线观看| 欧美日韩国产中文精品字幕自在自线| 内射白嫩美女| 精品二区三四区五电影| 97久久久| 精品亚洲国产成人AV制服丝袜| 国产精品小视频一区二区三区| 青青草好吊| 精品国产Av无码久久久亚洲| 欧美啪啪女女| 日产123区精品免费观看| 日本不卡在线二区三区| 久操网线| 久久爽爽精品| 国产精品白丝| 凹凸视频特色日本特黄| 日本精品九九九| 亚洲欧美电影| 欧美精品人妻视频| 国产嫩草精品A88AV| 两女互慰AV高潮喷水在线观看| 熟妇在线视频一区二区| 校园春色家庭伦理欧美激情| 99re热有精品视频国产| 亚洲淫乱骚妇AV| 啊啊啊啊操死我| 天天看,天天做| 亚洲日韩黑丝| 成人七区| 欧亚乱色熟一区二区三四区| 久久少妇| 啊啊啊啊一区| 屁股久久久久久| 女人高潮抽搐喷水视频网站| 亚拍在线| 999国产精品999| 97超碰超欧美。| 久综合国内精品自在自线| 操人妻逼91| 日韩啊V| 久久一二三级一一一| 日本精品一区二区三区四区的功能| 丁香五月婷婷啪啪| 东京热综合久久一区二区| 超碰在线人妻| 国产精品一二三| 日本九九九九| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 一级性爱视频免费在线| 大香蕉免| а√天堂资源官网在线资源| 六月丁丁香| 麻豆91熟妇人妻中文字幕茄子| 亚洲第一在线视频| 四虎精品永久在线观看| 韩国三级理论在线| 婷婷丁香人妻 | 99热精品在线在线| 精品无码久久久久久久杏吧| 成人女人国产| 永久免费av无码网站国产app| 久久日本熟妇熟色高清| 欧美日韩一区二区三区四区蜜桃| 青青草玖玖爱| 久久激情综合| 呦呦一区| 亚洲欧美日韩国产丝袜自拍中文| 天天草天天干天天日| 久久中久文96| 国产免费一区二区三区最新不卡| 亚洲欧美小说| 狠狠2050在线观看| 蜜乳av首页| 无码久久国产| 无码操逼天堂| 狠狠狠狠狠狠| 国产极品精品美女视频| 天天操熟妇| 久久精品中文字幕无码l| 九久精品| 欧美日韩精品国产91| 中文字幕jul-617人妻熟女| 欧美日韩资源| 国产小炒后入式| 青青草日韩无码| 黄色成人网久久久久久| 综合亚洲网| 丁香五月影院| 日本黄色大片一级视频免费麻豆| 亚洲清纯唯美| 9超碰免费| 日韩不卡a级视频专区| 亚洲春色一区二区三区| 国产精品动态一区二区三区四四| 亚洲男人天堂2019| 日韩精品亚洲专区在线影视| 日本道久久综合色色| av网站免费看| 久久久少妇诱惑精品视频| 成人资源中文字幕在线观看天天| 男人a天堂手机在线版| 好属操| 91综合天天| 一直超碰| 欧美亚洲20p| 欧美天天插| www.大香| 精品高清一区二区三区三州| 亚洲色图 欧美| 男人天堂无码| 91色综合色| 欧美老妇综合网| 久久精品视频久久久| 国产一级做a爰大片免费久久| 国产一级舔足在线观看| 啊啊啊好想要| 久久9精品| 午夜福利合集| 男人的天堂在线| 丝袜制服字幕在线| 伊人影院中文字幕| 欧美久热| 色色激情五月天| 国产成人www免费人成看片| 人妻一区二区三区视频| 天天射天天| 蜜臀久久99精品久久久久久-DVD原版全| 久久久精选| 亚洲涩图欧美| 色眯眯av| 久久精品无码不卡| 大屁股国产在线视频| 豆1无夜无码| 后入式在线免费观看60秒| 久久人爽| 国产第二页| ai欧美亚洲小说| 久偷拍欧美日韩三区| AV99热18这里只有精品| 欧美色综合图片| 亚洲涩涩| 欧洲与亚洲欧美精品中文字幕| 欧美九九99久久精品| 中文字幕在线观看网页| 怡春苑东京热| 制服中出中文人人精品| 欧美日本视频一区| 自拍第一页| 久久久亚洲精品中文字幕人妻| 亚洲操操操无码| 国产精品乱码久久久久久久久| 玖玖爱视频网站| 大逼色网站| 亚州综合色| 成人小说另类在线| 欧美综合网| 久热精品在线国产| 天天插夜夜操| www色婷婷| 日本超碰在线国产一区| 亚洲精品 超碰| 亚洲国内精品成人不卡| 操逼精品视频| 亚洲日本大香蕉1| 伊人网高清| 成 人片 黄色大片| 中文字幕123| 天天日B狠狠操| 啊啊啊在线观看免费视频| 骚妻少妇精品性色无码四色A V| 天天操福利视频综合网站| 91亚洲欧美| 亚洲AV性爱电影| 国产亚洲99久久精品| 亚洲欧美爆| 另类专区加勒比| 天天草天天日| yellow网站免费观看日韩高清无码| 91人妻尻屄视频| 97中文天堂| 欧亚日韩综合精品国产| 日韩亚洲欧美中文字幕| 欧亚成人| 欧美久久婷| 风月影院男女十八禁| 日韩av电影网站| 亚洲无线观看久久| 日韩乱伦影音先锋| 男人下部插入女人下部| 婷婷激情五月综合| 人人人摸人人| 另类在线| 国产精品69久久久久孕妇欧美| 99re视频这里只有精品| 欧美亚洲| 人妻熟女一区在| 9精品久久| 色欲久久久久综合网| 人人看人人摸人人色| 婷婷另类小说| 日韩黄色成人性爱| 精品国产99| 天天干18禁| 99久久99久久综合| 欧色性第一页| 日本人妻最新在线中| 婷婷丁香六月天| 97精品国产精品免费观看| 欧美影院一区二区三区| 精品久久久亚洲AV成人网站| 精品视频久久区| 亚洲av噜噜噜噜噜噜| 日本超碰在线国产一区| 91精品少妇搡搡搡| 操逼日批| 人妻在线中出视频| 亚洲综合在线第一页| 97人妻碰碰中文无码久热丝袜| 精品久久九| 欧美一级久久久丰满| 大香蕉综合| 人妻色偷色噜| 97天天搞在线| 欧美色女人| 青青草日韩无码| 欧美高清第一页| 五月婷婷丁香六月| 日韩色香| 色嘟嘟人妻天堂网| 校园激情狠狠四射| 婷婷色婷婷| 欧美日韩欧美| 日韩有码免费视频| 国产精品一区二区密臀| 午夜精品久久久久久久男人的天堂 | 偷拍色图| 亚洲AV无码成人精品久久| 97在线资源| 免费观看成人www精品视频| 中文字幕一二三区| 免费观看成人www精品视频| 日本A级视频| 奇米四色网| 日韩无码久久熟女一级片| 国产亚洲女v在线观看| 亚洲日本天堂| 中文字幕亚洲在线一区| 91美女视频在线观看| 青青11操操操操操操操操| 豆花视频操逼网址| 欧美日韩亚洲五月天婷婷| 人人干人人操人人..com| 天天综合站| 国产黄a三级三级三级av在线看 | 三级网色| 大逼色网站| 久久久久日本视| 日韩综合无码色欲vv| 一区二区三区色综合| 欧美激情综合| 亚洲欧美色图| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 一区二区你上我| 中文字幕国产在线天堂| 2026国产精品视频| 在线视频日韩欧美国产| 久久亚洲AV无码白度| 日韩ab网| 97国产成人精品免费视频| 97亚洲自在精品在线观看| 精品福利| 六六久久日韩不卡| 日韩欧美偷拍美女视频| 91中文字幕制服丝袜免费视频| 天天视频综合在线观看视频| 久久9久久| 久久、1234| 九九AV| 国产又黄又爽又刺激久久久久久 | 国产老太乱伦一区| 97久久国产亚洲精品超碰热| 久久国产视频性吧 | 黄呦呦在线| 韩日精品四区| 国产精品成人福利在线| av网站免费看| 天天综合站| 91亚洲欧美色图| 色香蕉影院| 永久免费发布性爱网| 91精品老女人| 一本久久久精品| 好好的日:com久久九九| 天美传媒一二三区永久网站| 高清成年美女黄网站免费大全 | 五月丁香久久| 91在线视频观看国产| 我要去看2个日本美女.com曹逼| 亚洲日韩乱码中文无码蜜桃臀网站| 炮色五月| 黄片www.| 国产亚州高清国产拍精| 韩国一级做a久久久久| 亚洲深夜福利| 欧美日韩青操| 国产午夜视频| 亚洲综合另类欧美久久久| 狠狠操夜夜操蜜桃视频三区| 亚洲一欧洲中文字幕在线 | 一二视频神马久久传媒| 欧美日韩222| 超碰亚洲欧美日韩无| 亚洲国产欧美中文永久| 亚洲精品啪视频| 欧美一区二区福利在线| 日韩AV无码网站| 欧美96精品在线| 欧美在线电影| 日韩成人人妻网站| 超碰是碰在线观看| 欧美亚洲se91| 国厂麻豆77q4| 欧美精品 - 91爱爱| 怡红院怡春院| 亚洲影视综合网| 亚洲图片 91| 激情综合久久| 五月丁香六月| 开心激情站| 大香蕉碰| 人妻少妇精品一区二区三区| 日韩97超碰中文字幕| 五月天综合| 五月天丁香欧洲日韩| www.超碰| 精品久久在线区一区| 爱爱60秒免费视频| 精品v1区| 色欲久久综合| 天天欧美欧美亚洲网| 久久99热这里只频精品6学生| 欧美 亚洲 偷拍自拍| 思思热在线观看| 狠狠色综合网| 精品久久在线区一区| 精品国产污一区二区三区| 欧美老妇女内射网址| 夜夜嗷嗷一区二区| 很狠操| 国产久9| 99999re| 一级毛片电影免费看| 国产精品探花色| 久久成人午夜精品影院| 99久久九九| 精品一区二区啪啪啪| 99热在线不卡| 欧洲亚洲人妻无码中字久久三区四区| 男人把坤坤插入女人的下体| 欧美色图99| 97香蕉网| 精品一区二区成人| 国产一级αv免费看片| 97精品国产97久久久久久免费| 久久久久精| 黑人精品久久97| 久久婷婷一区| 久久精品国产Aⅴ| 久久久国产av美女私房| 91粉嫩萝控精品福利网站_精品影音先锋国 | 综合色色婷婷| 亚州操操穴网| 国产精品午夜精品| 亚洲男人天堂av| 日韩国产乱子伦App| AV中文在线| 97视频900| 97这里有精品| 欧美,日韩综合久久| 婷婷久久大香蕉| surenchaopeng| 亚洲亚洲亚洲天堂天堂| 玖玖久久久| 成年人性爱日韩| 超AV色女| 亚洲中文字幕av| 大香蕉乱级| 99热综合| 97国产色图 | 超碰久久性爱| 91精品在线播放| 天天综合中文字幕 91| 日韩不卡毛片Av免费高清| 亚洲瓯美色图| 精品美女少妇一区二区| 日韩亚洲国产视频| www.欧精品| 狠狠入| 亚洲精品官网在线观看| AV老汉| 久久久精品一区二区| 免费久久一级毛片大黄| 欧美综合站| 天天日骚逼熟女| 噜噜噜在线视频| 色欧美天天| 天天干人人乐| 熟女人妇一区二区三区| AV99热18这里只有精品| 日本黄大片在线观看视频| 五月婷婷六月丁香| 欧美第五页| 国产高清免费不卡av| 久久亚洲天天做| 亚洲熟女av中文字幕| 五月天激情综合网| 999熟女精品| 蜜乳av一区二区| 99啪啪| 精品国模无码| 五月天色图| 五月情色天| 一区二区偷拍拍视频| 精品亚洲天堂| 99色在线视频| 一本久道久久综合狠狠爱一密臀精| 日韩,欧美,中文在线| 无码九九| 免费A V在线播放| WWW美腿丝袜香蕉中文| 强奸乱伦av电影| 国产情色第一第二页在线观看| 久久黄色视频一区二区三区| 不卡码视频| 欧美1区二区三区公司| 蜜奶av| 黄片视频,下载| 国产女人9999| 韩日性爱av| 久久噜噜噜精品国产亚洲综合| 逼操网站| 激情视频图片| 涩五月婷婷| 精人妻一区二区三区| 亚洲有码 欧美精品| 免费国产视频| 超硑97精品| 九九热久久99精品re| 久久综合久色欧美综合狠狠 | 日本三级久| 日韩熟女无码| 一区| 中文字幕aⅴ在线视频| 精品人妻15区| 国产成人亚洲精品自产在线| 亚洲国产一级黄色视频| 三级片网站在线播放| 96精品久久| 成人A片男人的天堂| www..com操老师| 四季av一区二区凹凸精品小说| 国产精品三级视频网站| 97日韩欧美| 久久亚洲色图中文字幕| 欧美日韩国产色图在线| 91亚洲欧美| 久久一二三四不卡 | 日本精品不卡一二三区| 欧美男人的天堂| 丝袜喷水在线| 黄片免费看的| 好属操| 中国黄色特级精品一区二区三区片| 在线啊v一区| 蜜乳中文字幕a在线| 91久久国产综合精品| a久久| 日日操丁香五月天| 97在线视频免费看| 亚洲美女色图| 亚洲色综合| av天堂精品久久| 大香蕉综合网| 久久99999| 麻豆久久久一区二区| 欧美亚洲素人制服精品| 麻豆成人影音在线| 超碰日韩美妻| 人妻天天操天天爽视频免费| 丝袜美腿制服人妻二区中文字幕 | 麻豆60秒| 亚洲91在线播放影院| 91亚洲色图| 欧美图片校园春色| 不卡九肏| 精品一区二区三区蜜桃臀赵总 | 国内外色色色色色成人视频| 韩国成人精品久久久免费看| 日韩性爱啪啪视频| 久久久久久中文| 怡红院成人av| 激情露脸爱| 免费精品福利在线观看| 又大又长又粗又爽又黄| 久操免费观看| 高清无码学生妹高潮| 久操视频免费观看| 超碰狠狠操| 黄在线| 四虎国产精品永久入口| 91高潮| 91女日逼| 久久人体一区二区| 日韩精品9区| 曰韩精品九九无码| 久久伊人五月天| 亚洲欧洲网站免费观看| 激情五月天插| 日韩黄片视频试看| 免费av高清无码| 97资源久久| 青青草好吊| 伊人 俄罗斯 a v| 黄色小说亚洲| 日韩AV片| 久久草大香蕉| 思思热免费视频观看| 天天弄天天操| 欧美日韩另类在线| 国产精品福利资源在线尤物| 日本熟妇浓毛hdsex| 亚洲一区二区三区在线激情| 欧洲亚洲人妻无码久久三区四区| 亚洲视频中文一区| 男人的天堂日韩| 蜜臀av中文字幕| 美女91av| 久久久久密臀视频| 久久精品视频一区三区小泽玛利亚| 久久久婷| 亚洲情色在线| 二三四区精品| 欧美综合777| 男人天堂免费| 97亚洲自在精品在线观看| 国产又粗又长又大的视频| 99热在线只有精品| 色97干| 亚洲中文字幕在线视频一区二区| 9美女超碰在线免费观看| 久久精品一区二区三区蜜桃臀|