久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

STM32F410RB驅(qū)動(dòng)MR25H40CDF MRAM:工業(yè)級(jí)掉電保護(hù)與高頻數(shù)據(jù)存儲(chǔ)實(shí)戰(zhàn)

STM32F410RB驅(qū)動(dòng)MR25H40CDF MRAM:工業(yè)級(jí)掉電保護(hù)與高頻數(shù)據(jù)存儲(chǔ)實(shí)戰(zhàn) 1. 為什么 MRAM 在嵌入式存儲(chǔ)里越來(lái)越受關(guān)注搞嵌入式的人大多有過(guò)這種經(jīng)歷設(shè)備跑在現(xiàn)場(chǎng)突然斷電Flash 里的配置參數(shù)丟了一半或者寫日志寫到一半掉電整個(gè)文件系統(tǒng)直接掛掉。傳統(tǒng)方案要么加超級(jí)電容要么加鐵電存儲(chǔ)器FRAM要么用帶掉電檢測(cè)的復(fù)雜軟件邏輯去兜底。這些辦法都能用但成本和復(fù)雜度擺在那里。MR25H40CDF 這顆芯片之所以值得單獨(dú)拿出來(lái)聊是因?yàn)樗选胺且资А焙汀跋?SRAM 一樣隨便寫”這兩件事合到了一起。它是 Everspin 出的 4Mbit 串行 MRAMSPI 接口40MHz 時(shí)鐘沒(méi)有寫延遲沒(méi)有擦除動(dòng)作寫多少次都不會(huì)壞。你把它當(dāng)成一個(gè)通過(guò) SPI 訪問(wèn)的 SRAM 來(lái)用就行斷電之后數(shù)據(jù)還在。這個(gè)特性在工業(yè)數(shù)據(jù)記錄、參數(shù)存儲(chǔ)、掉電保護(hù)場(chǎng)景里非常實(shí)用。STM32F410RB 是 ST 的 Cortex-M4 入門級(jí) MCU100MHz 主頻128KB Flash32KB SRAM帶硬件 SPI。它不算高端但勝在便宜、好買、生態(tài)成熟做工業(yè)傳感器節(jié)點(diǎn)、數(shù)據(jù)采集終端、小型控制器綽綽有余。用它來(lái)驅(qū)動(dòng) MR25H40CDF硬件上只需要幾根線軟件上用 HAL 庫(kù)的 SPI 接口就能跑通。這套組合解決的核心問(wèn)題是在低成本嵌入式系統(tǒng)里實(shí)現(xiàn)高可靠、高頻次、掉電安全的數(shù)據(jù)存儲(chǔ)。適合做工業(yè)現(xiàn)場(chǎng)設(shè)備、電力監(jiān)控終端、醫(yī)療數(shù)據(jù)記錄儀、車載黑匣子這類對(duì)數(shù)據(jù)完整性有要求的場(chǎng)景。如果你正在用 Flash 模擬 EEPROM 或者外掛 FRAM這篇文章可以給你一個(gè)替代思路。2. 硬件設(shè)計(jì)從引腳到 PCB 的實(shí)操細(xì)節(jié)2.1 MR25H40CDF 的引腳定義與連接方式MR25H40CDF 是 8 引腳 SOIC 封裝引腳定義很標(biāo)準(zhǔn)引腳編號(hào)名稱功能說(shuō)明1CS片選低電平有效2SO數(shù)據(jù)輸出MISO3WP寫保護(hù)低電平有效4VSS地5SI數(shù)據(jù)輸入MOSI6SCK時(shí)鐘7HOLD保持低電平有效8VDD電源2.7V~3.6V跟 STM32F410RB 的連接方式很直接CS 接 MCU 的任意 GPIO建議用 SPI 的硬件 NSS 引腳也可以用軟件片選SCK、SI、SO 分別接 SPI 的 SCK、MOSI、MISOWP 和 HOLD 如果不使用直接上拉到 VDD電源引腳旁邊放 0.1uF 去耦電容越近越好這里有個(gè)細(xì)節(jié)MR25H40CDF 的 WP 引腳是低電平有效也就是說(shuō)你如果把它懸空內(nèi)部沒(méi)有上拉的話寫保護(hù)狀態(tài)是不確定的。我一般直接在 PCB 上把 WP 和 HOLD 通過(guò) 10K 電阻上拉到 VDD需要寫保護(hù)的時(shí)候再用 GPIO 拉低。這樣既保證了默認(rèn)狀態(tài)可寫又保留了硬件寫保護(hù)的能力。2.2 SPI 模式選擇與時(shí)鐘配置MR25H40CDF 支持 SPI 模式 0 和模式 3。模式 0 是 CPOL0、CPHA0模式 3 是 CPOL1、CPHA1。兩種模式都能用但我在實(shí)際項(xiàng)目里更傾向用模式 0因?yàn)榇蟛糠?SPI Flash 和傳感器都用模式 0統(tǒng)一起來(lái)調(diào)試方便。時(shí)鐘頻率方面MR25H40CDF 最高支持 40MHz。STM32F410RB 的 SPI1 掛在 APB2 上最高 100MHz分頻后可以到 50MHz、25MHz、12.5MHz 等。我一般先用 12.5MHz 調(diào)通再往上提到 25MHz 跑穩(wěn)定性測(cè)試。40MHz 不是不能用但要看 PCB 走線和線長(zhǎng)短線、阻抗控制好的情況下沒(méi)問(wèn)題排線長(zhǎng)了就容易出錯(cuò)。注意SPI 時(shí)鐘極性相位配置錯(cuò)了讀出來(lái)的數(shù)據(jù)全是 0xFF 或者 0x00這是新手最容易踩的坑。先用邏輯分析儀抓一下波形確認(rèn) SCK 空閑電平和數(shù)據(jù)采樣邊沿。2.3 PCB 布局布線的幾個(gè)關(guān)鍵點(diǎn)SPI 信號(hào)線雖然速度不算特別高但 MRAM 對(duì)時(shí)序比較敏感尤其是高速寫入的時(shí)候。我總結(jié)了幾條經(jīng)驗(yàn)SCK 走線盡量短不要跨分割地平面MISO 和 MOSI 不要平行走太長(zhǎng)避免串?dāng)_去耦電容放在 VDD 引腳 2mm 以內(nèi)地線直接打過(guò)孔到地平面如果板子上有多個(gè) SPI 從設(shè)備片選線要分開(kāi)走不要共用有一次我做一個(gè)工業(yè)采集板MRAM 放在板子邊緣SPI 線走了 8cm25MHz 下讀寫偶爾出錯(cuò)。后來(lái)把 MRAM 挪到 MCU 旁邊線長(zhǎng)控制在 3cm 以內(nèi)問(wèn)題直接消失。所以別小看這幾厘米的走線高速信號(hào)面前物理距離就是電氣性能。3. STM32F410RB 的 SPI 初始化與 HAL 庫(kù)配置3.1 CubeMX 里的 SPI 參數(shù)設(shè)置用 STM32CubeMX 配置 SPI1 的步驟不復(fù)雜但有幾個(gè)參數(shù)容易搞錯(cuò)Mode選 Full-Duplex MasterMRAM 是標(biāo)準(zhǔn) SPI 從設(shè)備Data Size8 BitsMR25H40CDF 按字節(jié)傳輸Clock PolarityLow模式 0Clock Phase1 Edge模式 0NSSSoftware用 GPIO 手動(dòng)控制片選Baud Rate Prescaler先選 16 分頻得到 6.25MHz調(diào)通后再改First BitMSB First生成代碼后HAL 會(huì)自動(dòng)初始化 SPI 外設(shè)。但片選引腳需要自己配置成 GPIO 輸出默認(rèn)拉高。// SPI1 初始化片段CubeMX 生成 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_16; hspi1.Init.FirstBit SPI_FIRSTBIT_MSB; hspi1.Init.TIMode SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation SPI_CRCCALCULATION_DISABLE;3.2 片選控制的兩種方式與選擇依據(jù)STM32 的 SPI 支持硬件 NSS 和軟件 NSS。硬件 NSS 在單主單從的時(shí)候很方便但多從設(shè)備的時(shí)候就不行了。我一般用軟件 NSS把 CS 引腳當(dāng)普通 GPIO 控制。#define MRAM_CS_LOW() HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET) #define MRAM_CS_HIGH() HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET)軟件片選的好處是靈活你可以在一次事務(wù)里控制多個(gè)從設(shè)備也可以精確控制片選和時(shí)鐘的時(shí)序關(guān)系。缺點(diǎn)是每次傳輸都要手動(dòng)拉低拉高代碼稍微多幾行。但這點(diǎn)代碼量換來(lái)的是調(diào)試方便和邏輯清晰值得。提示片選拉低到第一個(gè)時(shí)鐘沿之間要留一點(diǎn)時(shí)間MR25H40CDF 要求 tSLCH 最小 5nsSTM32 的 GPIO 翻轉(zhuǎn)速度足夠快一般不用額外加延時(shí)。但如果你的主頻很低比如 16MHz最好在片選拉低后加一個(gè) __NOP()。3.3 SPI 讀寫基礎(chǔ)函數(shù)封裝HAL 庫(kù)提供了 HAL_SPI_Transmit 和 HAL_SPI_Receive但直接調(diào)用它們需要自己管理片選。我習(xí)慣封裝一層void MRAM_WriteEnable(void) { uint8_t cmd 0x06; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 1, 100); MRAM_CS_HIGH(); } void MRAM_WriteDisable(void) { uint8_t cmd 0x04; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 1, 100); MRAM_CS_HIGH(); } uint8_t MRAM_ReadStatus(void) { uint8_t cmd 0x05; uint8_t status; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 1, 100); HAL_SPI_Receive(hspi1, status, 1, 100); MRAM_CS_HIGH(); return status; }這里有個(gè)細(xì)節(jié)HAL_SPI_Transmit 和 HAL_SPI_Receive 分開(kāi)調(diào)用的時(shí)候片選不能中間拉高否則命令和數(shù)據(jù)的時(shí)序就斷了。所以必須把命令發(fā)送和數(shù)據(jù)接收放在同一個(gè)片選周期里。4. MR25H40CDF 的讀寫操作與數(shù)據(jù)管理4.1 狀態(tài)寄存器與寫使能機(jī)制MR25H40CDF 的狀態(tài)寄存器只有幾位有效位名稱說(shuō)明0WIP寫進(jìn)行中MRAM 沒(méi)有擦除這位基本一直是 01WEL寫使能鎖存執(zhí)行 WREN 后置 1寫完自動(dòng)清 02BP0塊保護(hù)位 03BP1塊保護(hù)位 17SRWD狀態(tài)寄存器寫保護(hù)跟 Flash 不一樣的是MRAM 沒(méi)有擦除操作也不需要等待寫完成。WIP 位在 MRAM 上基本沒(méi)用因?yàn)閷懭胧羌磿r(shí)的。但 WEL 位還是要檢查每次寫之前必須發(fā) WREN 命令否則寫不進(jìn)去。void MRAM_WriteByte(uint32_t addr, uint8_t data) { uint8_t cmd[5]; cmd[0] 0x02; // WRITE 命令 cmd[1] (addr 16) 0xFF; cmd[2] (addr 8) 0xFF; cmd[3] addr 0xFF; cmd[4] data; MRAM_WriteEnable(); MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 5, 100); MRAM_CS_HIGH(); }地址是 24 位的因?yàn)?4Mbit 等于 512KB需要 19 位地址但 MR25H40CDF 用 3 字節(jié)地址格式高位補(bǔ)零。4.2 頁(yè)寫與連續(xù)讀的效率優(yōu)化MR25H40CDF 支持頁(yè)寫每頁(yè) 256 字節(jié)。如果你要寫一大塊數(shù)據(jù)逐字節(jié)寫效率很低每次都要發(fā) WREN 和 5 字節(jié)命令頭。用頁(yè)寫可以一次發(fā)命令頭然后連續(xù)寫 256 字節(jié)。void MRAM_WritePage(uint32_t addr, uint8_t *buf, 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, buf, len, 1000); MRAM_CS_HIGH(); }注意頁(yè)寫不能跨頁(yè)。如果起始地址是 0x00FF寫 10 個(gè)字節(jié)寫到第 2 個(gè)字節(jié)就跨到下一頁(yè)了MRAM 會(huì)從頁(yè)首覆蓋。所以寫之前要算一下當(dāng)前頁(yè)剩余空間分兩次寫。連續(xù)讀就更簡(jiǎn)單了發(fā)完讀命令和地址后時(shí)鐘不停數(shù)據(jù)就一直往外吐void MRAM_ReadData(uint32_t addr, uint8_t *buf, 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, buf, len, 1000); MRAM_CS_HIGH(); }讀操作沒(méi)有頁(yè)限制可以從任意地址開(kāi)始讀任意長(zhǎng)度地址會(huì)自動(dòng)遞增到頂部回卷到 0。4.3 數(shù)據(jù)分區(qū)與地址規(guī)劃建議512KB 的空間不算大但也不小。我一般這樣分區(qū)區(qū)域地址范圍用途系統(tǒng)參數(shù)區(qū)0x00000~0x00FFF設(shè)備配置、校準(zhǔn)系數(shù)運(yùn)行日志區(qū)0x01000~0x3FFFF循環(huán)記錄運(yùn)行數(shù)據(jù)掉電快照區(qū)0x40000~0x7FFFF掉電瞬間的關(guān)鍵狀態(tài)系統(tǒng)參數(shù)區(qū)用雙備份加 CRC 校驗(yàn)寫的時(shí)候先寫備份區(qū)再寫主區(qū)讀的時(shí)候?qū)Ρ葍蓚€(gè)區(qū)的 CRC哪個(gè)對(duì)用哪個(gè)。運(yùn)行日志區(qū)用環(huán)形緩沖寫指針存在 MRAM 固定位置每次寫日志先更新指針再寫數(shù)據(jù)。掉電快照區(qū)在檢測(cè)到掉電中斷時(shí)緊急寫入因?yàn)?MRAM 沒(méi)有寫延遲從檢測(cè)到掉電到寫完關(guān)鍵數(shù)據(jù)幾百微秒就夠了。實(shí)操心得MRAM 雖然寫不壞但地址規(guī)劃還是要留余量。我見(jiàn)過(guò)有人把參數(shù)區(qū)放在 0x00000日志區(qū)緊跟著從 0x00100 開(kāi)始結(jié)果參數(shù)區(qū)結(jié)構(gòu)一變?nèi)罩緟^(qū)全亂套。分區(qū)的時(shí)候多留點(diǎn) padding以后擴(kuò)展不頭疼。5. 工業(yè)場(chǎng)景下的可靠性設(shè)計(jì)與掉電保護(hù)5.1 掉電檢測(cè)與數(shù)據(jù)保存策略工業(yè)現(xiàn)場(chǎng)最怕的就是掉電丟數(shù)據(jù)。MRAM 的優(yōu)勢(shì)在這里體現(xiàn)得淋漓盡致不需要擦除不需要等待寫進(jìn)去就生效。但前提是你要在電源掉到 MCU 工作電壓以下之前把關(guān)鍵數(shù)據(jù)寫進(jìn)去。我的做法是用一個(gè)比較器監(jiān)測(cè)電源電壓閾值設(shè)在 3.0V假設(shè)系統(tǒng)是 3.3V 供電。當(dāng)電源掉到 3.0V 時(shí)比較器輸出下降沿觸發(fā) MCU 的外部中斷。在中斷里MCU 還有幾十毫秒的時(shí)間取決于電容大小足夠把幾百字節(jié)的關(guān)鍵數(shù)據(jù)寫進(jìn) MRAM。void EXTI0_IRQHandler(void) { if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_0) ! RESET) { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_0); // 緊急保存關(guān)鍵數(shù)據(jù) MRAM_WritePage(SNAPSHOT_ADDR, (uint8_t*)g_criticalData, sizeof(g_criticalData)); // 標(biāo)記快照有效 uint8_t flag 0xA5; MRAM_WriteByte(SNAPSHOT_FLAG_ADDR, flag); } }這里的關(guān)鍵是中斷里不要做復(fù)雜運(yùn)算不要調(diào)用可能阻塞的函數(shù)直接寫 MRAM。MRAM 的頁(yè)寫 256 字節(jié)在 25MHz SPI 下大約需要 82 微秒加上命令開(kāi)銷不到 100 微秒。只要電源電容能撐住 1 毫秒就綽綽有余。5.2 數(shù)據(jù)校驗(yàn)與壞塊管理MRAM 不像 NAND Flash 有壞塊出廠就是好的寫不壞。但數(shù)據(jù)在傳輸過(guò)程中可能出錯(cuò)尤其是 SPI 線長(zhǎng)、干擾大的工業(yè)環(huán)境。所以校驗(yàn)還是必要的。我一般用 CRC16 對(duì)每個(gè)數(shù)據(jù)塊做校驗(yàn)存在塊尾。讀的時(shí)候先算 CRC對(duì)比存儲(chǔ)的 CRC不一致就說(shuō)明數(shù)據(jù)壞了用備份區(qū)恢復(fù)。typedef struct { uint32_t magic; uint16_t crc; uint16_t len; uint8_t data[250]; } MRAM_Block_t; uint16_t CalcCRC16(uint8_t *buf, uint16_t len) { uint16_t crc 0xFFFF; for (uint16_t i 0; i len; i) { crc ^ buf[i]; for (uint8_t j 0; j 8; j) { if (crc 0x0001) crc (crc 1) ^ 0xA001; else crc 1; } } return crc; }壞塊管理在 MRAM 上其實(shí)不需要但數(shù)據(jù)版本管理需要。我習(xí)慣在每個(gè)塊頭加一個(gè)遞增的序列號(hào)讀的時(shí)候取序列號(hào)最大的那個(gè)有效塊。這樣即使寫的過(guò)程中掉電也能恢復(fù)到上一個(gè)有效版本。5.3 溫度與長(zhǎng)期穩(wěn)定性考量MR25H40CDF 的工業(yè)級(jí)溫度范圍是 -40°C 到 85°C數(shù)據(jù)保持時(shí)間在 85°C 下超過(guò) 10 年在 125°C 下也有 2 年。這個(gè)指標(biāo)在工業(yè)場(chǎng)景里夠用了。但要注意的是MRAM 的寫電流隨溫度變化。低溫下寫電流增大如果電源驅(qū)動(dòng)能力不足可能寫失敗。我在 -40°C 的低溫箱里測(cè)試過(guò)3.3V 供電、25MHz SPI 下寫入正常但如果你把電壓降到 2.7V低溫下偶爾會(huì)出錯(cuò)。所以工業(yè)產(chǎn)品建議電源設(shè)計(jì)留足余量LDO 選 3.3V 輸出、至少 100mA 能力的。長(zhǎng)期穩(wěn)定性方面MRAM 沒(méi)有電荷泄漏問(wèn)題不像 Flash 那樣放幾年數(shù)據(jù)就淡了。我有個(gè)項(xiàng)目用了 5 年的 MRAM數(shù)據(jù)讀出來(lái)跟剛寫進(jìn)去一樣。這一點(diǎn)在需要長(zhǎng)期保存校準(zhǔn)數(shù)據(jù)的設(shè)備上特別有價(jià)值。6. 調(diào)試過(guò)程中遇到的典型問(wèn)題與排查方法6.1 SPI 通信失敗的常見(jiàn)原因調(diào)試 SPI 最怕的就是讀出來(lái)全是 0xFF 或者 0x00。我整理了一個(gè)排查順序現(xiàn)象可能原因排查方法讀全 0xFFMISO 沒(méi)接、片選沒(méi)拉低、從設(shè)備沒(méi)供電萬(wàn)用表測(cè) MISO 對(duì)地電壓邏輯分析儀抓波形讀全 0x00SCK 沒(méi)輸出、MOSI 沒(méi)接、模式配置錯(cuò)誤檢查 SPI 初始化代碼確認(rèn) CPOL/CPHA數(shù)據(jù)偶爾錯(cuò)時(shí)鐘太快、線太長(zhǎng)、干擾大降低 SPI 時(shí)鐘縮短走線加屏蔽寫不進(jìn)去沒(méi)發(fā) WREN、WP 引腳被拉低、地址越界讀狀態(tài)寄存器確認(rèn) WEL 位檢查 WP 電平有一次我調(diào)一個(gè)板子讀出來(lái)全是 0xFF查了半天發(fā)現(xiàn)是 MRAM 的 VDD 引腳虛焊了。所以遇到問(wèn)題先查硬件再查軟件這個(gè)順序不能反。6.2 寫入數(shù)據(jù)不生效的排查思路寫不進(jìn)去的情況我遇到過(guò)幾種第一種是忘了發(fā) WREN。MR25H40CDF 每次寫之前都要發(fā) WREN寫完 WEL 自動(dòng)清零。如果你連續(xù)寫多個(gè)字節(jié)每個(gè)字節(jié)都要重新發(fā) WREN。用頁(yè)寫的時(shí)候一次 WREN 可以寫一整頁(yè)。第二種是 WP 引腳被拉低了。WP 是硬件寫保護(hù)低電平有效。如果你在 PCB 上把 WP 直接接地了那就永遠(yuǎn)寫不進(jìn)去。檢查一下 WP 的電平正常應(yīng)該是高。第三種是地址算錯(cuò)了。MR25H40CDF 是 512KB地址范圍 0x00000 到 0x7FFFF。如果你寫 0x80000地址回卷到 0x00000數(shù)據(jù)就寫到開(kāi)頭去了。這種 bug 很隱蔽因?yàn)樽x的時(shí)候你讀 0x80000 也能讀出數(shù)據(jù)但其實(shí)是 0x00000 的內(nèi)容。6.3 高速 SPI 下的信號(hào)完整性問(wèn)題25MHz 以上的 SPI 時(shí)鐘信號(hào)完整性問(wèn)題就開(kāi)始顯現(xiàn)了。我遇到過(guò) SCK 上升沿過(guò)沖、MISO 數(shù)據(jù)眼圖閉合的情況。解決辦法SCK 線上串 22Ω 電阻抑制過(guò)沖MISO 線上加 10pF 電容到地濾高頻噪聲縮短走線最好控制在 5cm 以內(nèi)用四層板SPI 線參考完整地平面如果這些措施都做了還是不穩(wěn)定那就降時(shí)鐘。25MHz 不行就 12.5MHz12.5MHz 不行就 6.25MHz。工業(yè)產(chǎn)品穩(wěn)定第一速度第二。避坑技巧調(diào)試 SPI 的時(shí)候先用低速跑通再逐步提高時(shí)鐘。每次提高后跑 24 小時(shí)壓力測(cè)試寫滿整個(gè) MRAM 再讀出來(lái)對(duì)比。我一般用 0x55、0xAA、0x00、0xFF 四種模式交替寫這樣能覆蓋大部分?jǐn)?shù)據(jù)模式容易發(fā)現(xiàn)時(shí)序問(wèn)題。7. 性能實(shí)測(cè)與方案對(duì)比7.1 讀寫速度實(shí)測(cè)數(shù)據(jù)我在 STM32F410RB 上跑了一組實(shí)測(cè)數(shù)據(jù)SPI 時(shí)鐘 25MHz模式 0操作數(shù)據(jù)量耗時(shí)等效速率單字節(jié)寫1B3.2us312KB/s頁(yè)寫256B98us2.6MB/s連續(xù)讀256B92us2.8MB/s連續(xù)讀4KB1.42ms2.9MB/s單字節(jié)寫慢是因?yàn)槊看味家l(fā) WREN 和 5 字節(jié)命令頭開(kāi)銷大。頁(yè)寫效率高很多256 字節(jié)只發(fā)一次命令頭。連續(xù)讀的效率最高因?yàn)樽x命令發(fā)完之后時(shí)鐘不停數(shù)據(jù)連續(xù)輸出。跟 SPI Flash 對(duì)比MRAM 的優(yōu)勢(shì)不在速度而在寫入不需要擦除。Flash 寫一個(gè)字節(jié)要先擦一個(gè)扇區(qū)4KB擦除時(shí)間幾百毫秒MRAM 寫一個(gè)字節(jié)就是寫一個(gè)字節(jié)3.2 微秒搞定。在頻繁寫小數(shù)據(jù)的場(chǎng)景里MRAM 的實(shí)際吞吐量比 Flash 高幾個(gè)數(shù)量級(jí)。7.2 與 FRAM、EEPROM、Flash 的對(duì)比特性MRAMFRAMEEPROMNOR Flash寫入方式直接寫直接寫直接寫先擦后寫寫壽命無(wú)限10^1410^610^5寫速度納秒級(jí)納秒級(jí)毫秒級(jí)毫秒級(jí)容量4Mbit通常 1Mbit 以下通常 1Mbit 以下4Mbit~1Gbit功耗中低中高成本中高高低低MRAM 的定位在 FRAM 和 Flash 之間。容量比 FRAM 大成本比 FRAM 低寫入速度比 Flash 快幾個(gè)數(shù)量級(jí)。在需要頻繁寫、數(shù)據(jù)量中等、對(duì)可靠性要求高的場(chǎng)景里MRAM 是很合適的選擇。7.3 功耗表現(xiàn)與電池供電場(chǎng)景MR25H40CDF 的功耗指標(biāo)讀電流8mA 40MHz寫電流12mA 40MHz待機(jī)電流10uA掉電模式電流2uA在電池供電的場(chǎng)景里MRAM 的待機(jī)功耗很低適合做長(zhǎng)期數(shù)據(jù)記錄。寫的時(shí)候電流大一點(diǎn)但寫的時(shí)間極短平均功耗很低。我算過(guò)一筆賬每天寫 1000 次每次寫 256 字節(jié)25MHz SPI寫電流 12mA每次寫 98 微秒一天總寫入時(shí)間 98 毫秒平均電流 12mA × 98ms / 86400s ≈ 13.6nA。這個(gè)功耗對(duì)電池來(lái)說(shuō)可以忽略不計(jì)。相比之下Flash 寫之前要擦除擦除電流 15mA擦除時(shí)間 300ms一天擦 1000 次就是 300 秒平均電流 15mA × 300s / 86400s ≈ 52uA。差了將近 4000 倍。所以在電池供電、頻繁寫的場(chǎng)景里MRAM 的功耗優(yōu)勢(shì)非常明顯。8. 項(xiàng)目實(shí)戰(zhàn)工業(yè)數(shù)據(jù)記錄儀的完整實(shí)現(xiàn)8.1 系統(tǒng)架構(gòu)與任務(wù)劃分我拿一個(gè)實(shí)際做過(guò)的工業(yè)數(shù)據(jù)記錄儀來(lái)舉例。這個(gè)設(shè)備采集 4 路 4-20mA 信號(hào)每 100ms 記錄一次數(shù)據(jù)存 MRAM通過(guò) RS485 上傳。系統(tǒng)架構(gòu)很簡(jiǎn)單STM32F410RB 做主控MR25H40CDF 做數(shù)據(jù)存儲(chǔ)4 路 ADC 采集RS485 收發(fā)器做通信電源管理帶掉電檢測(cè)任務(wù)劃分上我用了一個(gè)簡(jiǎn)單的前后臺(tái)架構(gòu)主循環(huán)處理 ADC 采集和 RS485 通信定時(shí)器中斷每 100ms 觸發(fā)一次數(shù)據(jù)記錄掉電中斷處理緊急保存。8.2 數(shù)據(jù)記錄與循環(huán)存儲(chǔ)的實(shí)現(xiàn)數(shù)據(jù)記錄用環(huán)形緩沖寫指針存在 MRAM 的固定地址 0x00000數(shù)據(jù)從 0x01000 開(kāi)始循環(huán)寫。#define LOG_START_ADDR 0x01000 #define LOG_END_ADDR 0x7FFFF #define LOG_ENTRY_SIZE 16 typedef struct { uint32_t timestamp; uint16_t ch0; uint16_t ch1; uint16_t ch2; uint16_t ch3; uint16_t crc; } LogEntry_t; void RecordData(void) { uint32_t wp ReadWritePointer(); uint32_t addr LOG_START_ADDR wp * LOG_ENTRY_SIZE; if (addr LOG_ENTRY_SIZE LOG_END_ADDR) { addr LOG_START_ADDR; wp 0; } LogEntry_t entry; entry.timestamp HAL_GetTick(); entry.ch0 g_adcValues[0]; entry.ch1 g_adcValues[1]; entry.ch2 g_adcValues[2]; entry.ch3 g_adcValues[3]; entry.crc CalcCRC16((uint8_t*)entry, sizeof(entry) - 2); MRAM_WritePage(addr, (uint8_t*)entry, sizeof(entry)); wp; WriteWritePointer(wp); }寫指針的更新要在數(shù)據(jù)寫入之后這樣即使寫數(shù)據(jù)的過(guò)程中掉電寫指針沒(méi)更新下次上電會(huì)覆蓋掉那條不完整的數(shù)據(jù)不會(huì)產(chǎn)生空洞。8.3 上位機(jī)通信與數(shù)據(jù)導(dǎo)出RS485 通信我用的是 Modbus RTU 協(xié)議上位機(jī)發(fā)命令讀日志。命令格式很簡(jiǎn)單讀日志命令 起始序號(hào) 數(shù)量。MCU 收到后從 MRAM 讀出對(duì)應(yīng)數(shù)據(jù)打包返回。void HandleReadLog(uint16_t startIdx, uint16_t count) { uint8_t buf[LOG_ENTRY_SIZE]; for (uint16_t i 0; i count; i) { uint32_t addr LOG_START_ADDR (startIdx i) * LOG_ENTRY_SIZE; if (addr LOG_ENTRY_SIZE LOG_END_ADDR) addr LOG_START_ADDR (addr - LOG_END_ADDR); MRAM_ReadData(addr, buf, LOG_ENTRY_SIZE); SendModbusResponse(buf, LOG_ENTRY_SIZE); } }這里要注意地址回卷的處理環(huán)形緩沖的地址計(jì)算容易出錯(cuò)我一般寫個(gè)專門的函數(shù)來(lái)處理不要在業(yè)務(wù)邏輯里直接算。8.4 現(xiàn)場(chǎng)部署的注意事項(xiàng)這個(gè)設(shè)備在現(xiàn)場(chǎng)跑了兩年多總結(jié)了幾條經(jīng)驗(yàn)電源一定要加 TVS 和濾波工業(yè)現(xiàn)場(chǎng)電網(wǎng)波動(dòng)大電源毛刺會(huì)干擾 SPI 通信RS485 接口要加隔離不然地環(huán)流會(huì)燒收發(fā)器MRAM 的數(shù)據(jù)要定期備份到上位機(jī)雖然 MRAM 可靠但設(shè)備本身可能損壞外殼要接地屏蔽線要單端接地避免地環(huán)路還有一點(diǎn)MRAM 的 WP 引腳我最終沒(méi)有用硬件寫保護(hù)而是通過(guò)軟件控制。因?yàn)楝F(xiàn)場(chǎng)調(diào)試的時(shí)候經(jīng)常需要改參數(shù)硬件寫保護(hù)每次都要跳線太麻煩。軟件寫保護(hù)在參數(shù)區(qū)加個(gè)標(biāo)志位需要保護(hù)的時(shí)候置位正常運(yùn)行時(shí)清除。9. 代碼組織與可移植性設(shè)計(jì)9.1 驅(qū)動(dòng)層與應(yīng)用層分離寫嵌入式代碼最怕的就是驅(qū)動(dòng)和應(yīng)用攪在一起換個(gè) MCU 就要重寫一遍。我的做法是把 MRAM 驅(qū)動(dòng)做成獨(dú)立的模塊只依賴幾個(gè)底層的 SPI 讀寫函數(shù)。// mram_driver.h typedef struct { void (*cs_low)(void); void (*cs_high)(void); int (*spi_transmit)(uint8_t *data, uint16_t len); int (*spi_receive)(uint8_t *data, uint16_t len); } MRAM_Interface_t; void MRAM_Init(MRAM_Interface_t *iface); void MRAM_Read(uint32_t addr, uint8_t *buf, uint16_t len); void MRAM_Write(uint32_t addr, uint8_t *buf, uint16_t len);這樣換 MCU 的時(shí)候只需要重新實(shí)現(xiàn) cs_low、cs_high、spi_transmit、spi_receive 這四個(gè)函數(shù)MRAM 驅(qū)動(dòng)的邏輯一行都不用改。我在 STM32F410RB 和另一款國(guó)產(chǎn) MCU 之間移植過(guò)半天就搞定了。9.2 參數(shù)配置的持久化方案設(shè)備參數(shù)我用一個(gè)結(jié)構(gòu)體管理存在 MRAM 的 0x00000 地址雙備份加 CRCtypedef struct { uint32_t magic; uint16_t crc; uint16_t version; float k0, k1, k2, k3; uint32_t sampleInterval; uint8_t reserved[32]; } DeviceConfig_t; void SaveConfig(DeviceConfig_t *cfg) { cfg-magic 0x5A5A5A5A; cfg-crc CalcCRC16((uint8_t*)cfg, sizeof(DeviceConfig_t) - 2); MRAM_Write(CONFIG_ADDR_A, (uint8_t*)cfg, sizeof(DeviceConfig_t)); MRAM_Write(CONFIG_ADDR_B, (uint8_t*)cfg, sizeof(DeviceConfig_t)); } bool LoadConfig(DeviceConfig_t *cfg) { DeviceConfig_t cfgA, cfgB; MRAM_Read(CONFIG_ADDR_A, (uint8_t*)cfgA, sizeof(DeviceConfig_t)); MRAM_Read(CONFIG_ADDR_B, (uint8_t*)cfgB, sizeof(DeviceConfig_t)); bool validA (cfgA.magic 0x5A5A5A5A) (cfgA.crc CalcCRC16((uint8_t*)cfgA, sizeof(DeviceConfig_t) - 2)); bool validB (cfgB.magic 0x5A5A5A5A) (cfgB.crc CalcCRC16((uint8_t*)cfgB, sizeof(DeviceConfig_t) - 2)); if (validA validB) { *cfg (cfgA.version cfgB.version) ? cfgA : cfgB; return true; } else if (validA) { *cfg cfgA; return true; } else if (validB) { *cfg cfgB; return true; } return false; }雙備份的好處是寫的時(shí)候如果掉電至少有一個(gè)備份是完整的。讀的時(shí)候取版本號(hào)大的那個(gè)保證參數(shù)是最新的。9.3 版本升級(jí)與數(shù)據(jù)遷移產(chǎn)品迭代的時(shí)候參數(shù)結(jié)構(gòu)體會(huì)變。我的做法是在結(jié)構(gòu)體里留 reserved 字段新版本用 reserved 里的空間不改變結(jié)構(gòu)體大小。如果實(shí)在要改大小就在版本號(hào)上做文章讀的時(shí)候根據(jù)版本號(hào)做兼容處理。if (cfg.version 1) { // 舊版本字段少做兼容轉(zhuǎn)換 newCfg.k0 oldCfg.k0; newCfg.k1 oldCfg.k1; newCfg.k2 0.0f; newCfg.k3 0.0f; } else if (cfg.version 2) { // 當(dāng)前版本直接拷貝 newCfg cfg; }這種兼容處理雖然麻煩但能保證老設(shè)備升級(jí)固件后參數(shù)不丟。工業(yè)設(shè)備現(xiàn)場(chǎng)升級(jí)不容易能少跑一趟就少跑一趟。10. 幾個(gè)容易被忽略的細(xì)節(jié)10.1 上電初始化的時(shí)序要求MR25H40CDF 上電后需要一段時(shí)間才能接受命令數(shù)據(jù)手冊(cè)里寫的是 tPUW最大 10ms。我一般在上電初始化的時(shí)候加 20ms 延時(shí)確保 MRAM 準(zhǔn)備好了再發(fā)命令。void SystemInit(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_SPI1_Init(); HAL_Delay(20); // 等待 MRAM 上電穩(wěn)定 MRAM_Init(mramIface); }這個(gè)延時(shí)看起來(lái)不起眼但少了它偶爾會(huì)出現(xiàn)上電后第一次讀 MRAM 失敗的情況。尤其是電源上升慢的場(chǎng)合10ms 可能不夠。10.2 SPI 片選信號(hào)的毛刺問(wèn)題軟件片選有個(gè)隱患GPIO 初始化的時(shí)候片選引腳可能會(huì)有一個(gè)短暫的毛刺。如果 MRAM 把這個(gè)毛刺當(dāng)成片選有效就會(huì)誤觸發(fā)。解決辦法是在 GPIO 初始化的時(shí)候先把引腳置高再配置成輸出模式。HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); GPIO_InitStruct.Pin GPIO_PIN_4; GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull GPIO_PULLUP; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOA, GPIO_InitStruct);先寫高電平再配置成輸出這樣引腳從輸入變成輸出的瞬間就是高電平不會(huì)有毛刺。10.3 多設(shè)備共享 SPI 總線的注意事項(xiàng)如果板子上有多個(gè) SPI 從設(shè)備共享 SCK、MOSI、MISO片選分開(kāi)。這時(shí)候要注意每個(gè)從設(shè)備的 MISO 輸出要加三態(tài)緩沖或者用帶片選控制的 SPI 從設(shè)備片選切換的時(shí)候要留時(shí)間讓上一個(gè)從設(shè)備釋放 MISO不同從設(shè)備的 SPI 模式可能不同切換的時(shí)候要重新配置 SPI我一般會(huì)在片選切換后加一個(gè) __NOP() 或者幾微秒的延時(shí)確??偩€穩(wěn)定。如果從設(shè)備多建議用 SPI 多路復(fù)用器雖然多花幾毛錢但省心。10.4 數(shù)據(jù)手冊(cè)里沒(méi)寫但實(shí)際會(huì)遇到的問(wèn)題數(shù)據(jù)手冊(cè)是理想情況下的參數(shù)實(shí)際用的時(shí)候會(huì)遇到各種意外。我遇到過(guò) MRAM 在強(qiáng)電磁干擾下寫數(shù)據(jù)出錯(cuò)的情況后來(lái)在 SPI 線上加了共模電感才好。還遇到過(guò) MRAM 在高溫下寫電流增大LDO 帶不動(dòng)導(dǎo)致復(fù)位的情況換了更大電流的 LDO 解決。這些經(jīng)驗(yàn)數(shù)據(jù)手冊(cè)里不會(huì)寫只能靠實(shí)際項(xiàng)目積累。我的建議是工業(yè)產(chǎn)品一定要做環(huán)境測(cè)試高低溫、濕熱、振動(dòng)、EMC 都要過(guò)一遍。MRAM 本身很可靠但系統(tǒng)級(jí)的可靠性要靠整體設(shè)計(jì)來(lái)保證。11. 寫在最后的一些個(gè)人體會(huì)這套 MRAM STM32 的方案我從 2019 年開(kāi)始用前后做了五六個(gè)項(xiàng)目有電力監(jiān)控的有醫(yī)療數(shù)據(jù)記錄的也有車載的。最大的感受是MRAM 確實(shí)省心。不用管擦除不用管壽命不用管掉電寫就完了。代碼邏輯簡(jiǎn)單了出問(wèn)題的概率也低了。但 MRAM 也不是萬(wàn)能的。容量小、成本高這兩點(diǎn)決定了它不適合做大容量存儲(chǔ)。我的經(jīng)驗(yàn)是關(guān)鍵數(shù)據(jù)、頻繁寫的數(shù)據(jù)、掉電必須保存的數(shù)據(jù)用 MRAM大塊的歷史數(shù)據(jù)、日志文件用 Flash 或者 SD 卡。兩者配合各取所長(zhǎng)。STM32F410RB 這顆 MCU 也值得說(shuō)一句。它不算新也不算強(qiáng)但勝在穩(wěn)定、便宜、資料多。做工業(yè)產(chǎn)品穩(wěn)定比性能重要便宜比先進(jìn)重要。F410 在這兩點(diǎn)上都做得不錯(cuò)。最后分享一個(gè)調(diào)試小技巧如果你懷疑 MRAM 讀寫有問(wèn)題先寫一個(gè)全盤測(cè)試程序從 0x00000 寫到 0x7FFFF寫 0x55、0xAA、0x00、0xFF 四種模式每寫一遍讀出來(lái)對(duì)比。這個(gè)測(cè)試跑一遍大概 2 秒能快速定位是硬件問(wèn)題還是軟件問(wèn)題。我每次新板子回來(lái)第一件事就是跑這個(gè)測(cè)試跑通了再調(diào)業(yè)務(wù)邏輯。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
四虎国产精品永久入口| 尤物av网站| 玖玖综合视频| 日本五十路熟女一区二区| 欧美人妻精品| 午夜a成v人电影| 亚洲s在线观看| 亚洲学生妹高清av| 人人搞人人插人人操| 色5月婷婷| 操熟女91| 99热精品国产| 国产美女高潮叫床视频| 人妻熟女一区二区三区视频| 91久热这里只有精品| 美女尤物人人操| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 国产无套粉嫩白浆在| 欧美色图成人网一区二区| 26uuu性| 天天享受天天看| 青娱乐久久艹| 97精品熟女少妇一区| 中文字幕蜜乳av| 2017,超碰| 国产精品欧美激在线| 人妻色偷色噜| 欧色网址| 色九久| 色综合加勒比四四季| 97超碰磁| 热99re69精品8在线播放| 久悠悠av| 欧美黑人猛交春色影视大全| 伊人青青草久久| 视频分类 国内精品| 欧美色图99| 亚洲情色1区| 国产h小视频在线观看免费| 狠狠穞A片一區二區三區| 密臀在线一区尤物| 欧美男人的天堂| 日夜尻逼网| 亚洲成人av色网| 芊芊操逼视频无码| 亚洲日韩成人性爱视频| 欧美亚洲玖玖玖| 国产乱人伦AVA麻豆软件.| 人人操人人插人人摸人人干| A级在线视频| 少妇综合网| 欧美色91| 欧美综合中文| 色香欲影| 野狼福利社区| 尤物网址| 亚洲第一综合| 丰满搜索结果 -第18页- 久久高清无码 | 国产又黄又爽又刺激久久久久久| 国产精品一区二区麻豆| 亚洲欧美日韩激情不卡| 一二三四视频中文字幕在线看| 国产精品久久久久久久AV大片 | 国产一级做a爰大片免费久久| 国产精品久久久久久片| 91亚洲黑人| 99RE在线视频精品,这里只有精品| 精品人妻一区二区三区夜夜| 91人人臊| 日本一区二区电影网站| 婷婷九月丁香| 999久久久免费精品国产牛牛| 91碰超| 激情综合五| 情色av电影| 口爆综合网| 韩国轻伦国内自拍一区| 亚洲日韩少妇一道本视频| 成人精品视频一区二区| 熟妇一区,二区,三区。| 天天日天天色| 狠狠干妹子| 青青草中出视频 | 午夜男人一级A片7777| 亚洲图片色图欧美另类| 综合婷婷| 久久久久一本一区二区青青蜜月| 久久超碰大香蕉| 少妇三P| 91丝袜| 久久久久久国产手机AV| 亚洲日本成人动漫| 日本一片一区| 人人妻人人爱人人玩| 色香综合| 亚洲欧美日韩免费电影| 97玖玖人妻| 深爱伊人影院| 欧美一区二区三区四区综合| www.久久| 大但人体久久久久| 欧美色青| 色欲日韩欧美在线一区| 精品小视频在线| 不卡视频一区蜜桃视频| 不卡av在线中文字幕| 色哟哟国产精品免费网址| 亚洲97网站| 伊人骚琪琪亚洲天堂网站| 老司机天天操| 性色av一区二区| 天天综合-91入口| 综合自拍| 婷婷性网| 日日狠狠久久偷偷色综合免费| 91黄射| 久热影视| 91视频综合在线| 9久9久9久9久视频网站| 国产亚洲美日韩Aⅴ中文字幕无码成人| 国产中文精品一区二区在线观看| 狠狠操一区二区| 超碰在线免费一区二区三区| 久久国产99精品72福利| 亚洲天堂2020| 久视频在线观看| 97欧美在线| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 欧美影音在线| 屁屁影院一区二区三区国产| 亚洲。天堂。日本在线观看| 麻豆久久久一区二区| JuliaAnnXXX888| 大香蕉综合| 色鬼在线综合| 欧美日韩国产三级黄色| 日韩97视频| 天天干夜夜一操| 国产AV天美传媒一区二区三区 | 国产9区| 日韩探花精品在线视频| 极品人妻少妇综合| 人人妻人人操人人乐| 亚洲97综| 十八禁一区二区无码观看| 国产欧美岛国精品一区| 97色操| 亚洲色图91欧美日韩| 97亚洲中文| 亚洲国产综合久久天堂| www.91逼逼.com| 91中文字幕在线观看| 丁香久久| 三级AV入口| 亚洲AV色图一区| 国产综合操逼高清| 国产一级高跟丝袜| 色香AV| 狠色婷婷久久一区二区三区_| 黄色网址在线免费观看| 91n免费处女| 国产精品亚洲免费| 五月天人妻综合| 桃花色涩综合影院| 性videos欧美熟妇hdx| 激情黄色片在线观看| 3d成人精品一区二区| 欧美久久伊人| 国偷自 一区| 无码一区二区精品视频久久久春药| 97超碰色五月| 在线国产福利网址导航| 少妇一区二区三区| 老鸭窝日丰县女人| 91丝袜在线视频| 蜜臀少妇一区二区| 色综合久久88色综合久久天天| 欧成人精品一区二区三区| 天天综合网久久ww| 色综合久久888| 日本爽爽爽爽爽爽免费视频| 91青青在线视频| 国产在线不卡导航| 久操热| 操操操日本的逼| 四虎精品永久在线播放| 国产伦精品| 夜夜骑操视频| 国产中文字幕在线观看| 亚洲熟女乱综合一区二区三区| 国产精品秘 福利姬在线观看| 乱伦一二三区| 日韩有码专区| 一区二区三区在线日韩影院观看| 色欲色香天天天综合网www-亚洲综合国| 五月天社区| wwwcaobibi| 成人乱码一区二区三少妇| 久久草草亚洲蜜桃臀| 老熟女91视频| 蜜臀视频网站| 国产精品久久久久久亚洲色欲| 久操免费观看| 91日韩| 无码人妻一区二区三区四区老鸭窝| 丝袜狂射91| 青青草白白色| 欧美日韩另类字幕中文| 天天综合麻豆视频| 粉嫩久久久极品| 任你干在线视频| 亚州色国| 欧美人妻色| 殴洲老熟女| 人妻 制服 日韩 中文 在线| 欧洲小说色图视频另类| 99re在线视频这里只有精品| 99色在线| 亚洲国产熟妇综合色专区| 激情欧美97| 中国人高清www色视频免费| 男人在线天堂| 性爱视频免费网址| 伦伦成年午夜免费视频| 超碰人人超在线观看| 日韩性爱视频免费在线| 91美腿丝袜在线观看| 少妇69中文| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 91狠狠综合网| 国内精品久久人妻性色av| 免费看片黄| 国产AV毛片| 性爱av在线免费观看| 91超级碰碰| 色性荡荡荡荡视频| 亚洲欲| 日韩成人午夜精品久久高潮| 中文字幕一区二区三四五区日日骚| 99re这里| 亚洲自拍97| 天天色,天天干,天天干| 色婷婷影院| 日韩精品9999| 日韩一级二级三级| 久久精品久久九九精品| www超碰| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 久久久久国产亚洲一区欧美色图日韩| 欧美色日本| 精品国产乱码久久久久久久| 日韩黄色片子| 久久五月天婷婷| 国产黄色动态精品| 中文字幕制服诱惑| 97摸视频| 日本999精品| 麻豆亚洲AV成人无码久久精品| 丁香五六月啪啪| 国产高清无码一区二区三区四区皇冠| 久久色一区二区| 人妻丝袜日本| 日本午夜久久电影| 日本淫穴在线| 亚洲啪啪视频免费| 成人影 天天操 亚洲| 少妇蹲下买菜露大唇0| 日韩欧美亚欧在线视频| 五月天开心网| 日韩精品人妻中文字幕有码午| 囯产精品强| 国语对白露脸XXXXXX | 中文字幕国产| 日韩人妻中文视频| 国产av热热色| av无码精品久久久久| 欧美亚洲第1页| 啪啪自拍九九综合| 抽插无码高清一区| 超碰无码五月97| 草莓精品视频在线免费观看| 大香蕉伊人网WWWn0n| 97伊人网| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 天天热精品| av天堂精品久久| 一区二区三区四区姦女| w w w.久久精品| 99免费视频| 酒色综合网| 天天爽天天干| 97欧美| 少妇二级| 中文字幕一区二区三区四区在线视频| 日韩成人色图| 蜜臀一区二区三区在线| 国产白领连续中出在线播放| 国产精品久久久久久久久久梁医生| 日韩成人色图| 国产辣妈在线视频福利| 亚洲 另类 丝袜 自拍 动漫| 日韩欧美aⅴ综合网站发布| 中文字幕日韩人妻视频一区二区三区交换夫妻| 一级@啪啪视频| 香港日本韩国人妇99www.wccm20| 久久人人爽爽人人爽人人片αV| 欧色性第一页| 国产 v乱码一区二| 天天干人人乐| 嗯嗯,啊啊,国产精品| 1000部熟女视频在线观看| 亚洲五区熟女| 久久美女国产| 97伊人超碰| 69人妻精品一区二区绯色| 色悠久| 久久久网一区| 久都青青视频 | 另类 综合 日韩 欧美 亚洲| 久久久久成人亚洲国产| 九九无码| 亚拍在线| 91男女啊啊啊| 天天做日日做天天欢。| 亚洲欧美伦综合| 亚洲国产一区二区三区在线| 亚洲蜜乳av| 熟妇人妻精品一区二区| 69人妻精品丰满熟女区| 欧美一区二区三区日韩| 人人操,人人液| 2019亚洲男人天堂| 97超碰色五月| 日韩性爱再线视频| 色呦呦国产精品免费看| 后入综合久久| 久久久∴| 3571色综合一区二区二区| 亚洲AV成人无码一二三久久 | 婷婷五月天丁香| 性爱网站一区二区| 综合97| 亚洲欧美综合网站| 日少妇亚洲版| 日本免费中文一区二区三区四区| 国产女人和拘做爰视频 | 2010男人的天堂| 少妇一区二区三区高速| 亚洲天堂男人的天堂| 欧美性天天影院| 97爱免费插| www色日本| 国产亚洲性生活视频播放| 欧美日本不卡在线| 精彩久久中文| 性生活无遮挡纯毛片在线看| 久久手机好看网站| 97人人干| 七久久久| 蜜臀少妇一区二区| 91chinese在线| 日逼国产| 亚洲人妻中文高清| 少妇一区二区三区精选| 97视频免费在线观看| 人人操超碰在线| 加勒比少妇AV婷婷六月天超碰超碰| 日本免费不卡二区| 天堂精品在线| 天天透伊人| 日日干夜夜干| 精品久热| 五月天激情网图片| 亚洲综合小说另类图欧美视频激情小说色五月天 | 国产做?爰片久久毛片?片美国| 久久久久亚洲av综合波多野制衣| 免费一级性爱久久| 思思热久久成人| 26uuu性| AA特级绝黄| 欧美十八禁导航成人| 色操逼网| 嫩草影院在线观看精品| 国产亲戚伦亲在线| 日韩性爱网址| 思思99热| 久久久久国产亚洲一区欧美色图日韩| www.狠狠干.coom| 日本天天吊| 欧美亚综合色图| 欧美亚洲20p| 欧美国产有色电影| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 欧美日本中字另类在线| 国产精品久久99日日| 激情无码日韩| 久热免费视频| 日本一二三高清| 青青国产在线拍揄自揄拍| 天天日日本| 九九国产热| 99精品无码| 久久午夜色播影院免费高清| 中文人妻av高清一区| 久久久久亚洲Aⅴ无码| 天天色综亚洲91污| Julia在线播放亚洲久久| 欧美淫穴| 欧美日韩国产人人| 午夜男人的天堂| 欧美色综合| 国产高清精品一区二区三区毛片| 黑人精品成人一区二区三区| 日韩精品一二三四| 福利在线视频一区二区| 国产成人五月天丁香花| 夜夜操美女| 国产美女高潮叫床视频| 欧洲免费一区二| 91日日夜夜| 精品78| 日韩精品人妻一| 色婷婷五月天| 毛片麻豆91糖心精品毛情片| 男人午夜天堂| wwwcaobibi| 任我爽视频在线观看| 久久中文字幕女同性恋一区| www久久国产精品| 欧美黄片视频在线观看免费| 91撸色网 玖玖网 欧美| 国产伊人精品在线| 日韩国产在线观看av| 日韩一级二级| 中国的操老妇女| 91综合熟女| 91人妻做a观看视频| 婷婷五月色| 亚洲精品美女操逼| 国产亚洲色停停久久99精品91| 麻豆啪啪啪视频| 伊人一区二区三区| 久久的免费性爱视频| 色啪网| 极品AV网站在线观看| 久久久999| 欧美性爱五月天| 久湿久久| 亚洲精品影视老司机| 欧美淫穴| 欧美在线啊啊| 99亚洲天堂| 男女性扦B| 亚洲图片色图欧美另类| 99久久综合| 夜色91| 伊人天堂在线| 国产伦精品| 丁香婷婷久久| 国产精品农村妇女精品| 久久久免费一级黄片| 色拍偷亚洲| 熟女五十路一区二区三| 国产25页| 亚洲 一区二区 自拍| 国产亚洲色婷婷99精品91| A级在线视频| 日韩天堂av电影在线观看| 亚洲av青草久久一区二区| 婷婷中文字幕| 九九九九热| 精品夜夜澡人妻无码| 神马麻豆福利院| 91丝袜美女视频| 亚洲有码视频二区| 思思热在线| 怡春院久久| 九九在线视频| 国产无码久久高清| 欧亚久久偷拍视频| 亚洲精品无码久久AV| 亚洲色资源| av在线一区二区三区| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 高树玛利亚无码流出| 天美91| 精品免费1| 免费av在线播放二区| 日韩一级二级三级免费看完整版国语版 | 国产一区二区三区久久久精品| 大香蕉在线视频重口味毛片在线| 北约熟女超碰| 欧美性爱超碰97| 亚洲av青草久久一区二区| 99只有精品| 国产欧美日韩一区二区三区| 亚洲脚交| 老司机久久| 午夜激情床戏激情| 欧美日韩国产高清在线一二三区 | 国产成人五月天丁香花| 97视频7| 欧美日韩国产中文精品字幕自在自线,| 精品国产一区探花在线观看| 大屁股熟女一区二区三区| 超碰97精品在线| 综合五月天| 男人天堂新在线| 欧美后进式| 超碰97中文| 激情AV| 婷婷丁香五月综合| 男人天堂一区二区| 丝袜 亚洲 偷拍| 欧美成人色| 色噜噜人妻av中文字幕| 污污汅18禁网站在线永久免费观看| 中文字幕精品一区二区精| 美女网站91| 中文字幕人乱码中文字的预防方法 | 好吊色综合| 人妻丝袜肏逼| 800zy一区二区| 日欧操屄视频| 丰满岳乱妇一区二区三区| 亚洲色交| 中文字幕欧美精品亚洲日韩蜜臀| 亚洲吊色| 亚洲丝袜天堂| 香蕉在线一区二区三区| 在线无码操| 免费自拍三级综合| 国产乱伦搜索结果91P| 国产自啪精品视频网站黑丝| 日夜久久久九九九久| 丝袜 亚洲 偷拍| 天天躁日日躁AAA片李宗瑞| 不卡中文字幕aⅴ在线| 男人天堂2030| 亚洲欧美97√| 91四海无码日韩欧美| 97超碰中文| 综合天天网| 国产天天骚| 亚洲图片欧美日韩| 日夜啪电影| 大香蕉520| 爱我干综合| 色官网在线| 91丨熟女丨丰满熟女| av在线免费一区二区| 国产一级高跟丝袜| 国产无码精品高清| 亚洲免费成人在线高清无码视频| 欧美性爱综合,免费| 男人天堂欧美| 午夜小电影在线插入淫高潮| 91中出| 九九九九国产| 中文字幕国产在线天堂| 久久精品一区二区一8| 欧美激情一区| 亚洲成人黄色在线观看| 中文字幕日韩电影人妻| 超碰无码加勒比| 性爱免费视频成人| 亚洲一卡2卡3卡4卡乱码网站| h无码动漫在线观看| 蜜臀操逼黄色视频操的好爽| 亚洲欧美经典一区二区| 日本有码影片下载| 啊啊啊啊二区好大| 欧美成人国产精品| 制服乱伦| 操少妇很爽av| 狠狠干精品一二三四五六2022| 在线综合 亚洲 欧美中文字幕| 99久久综合| 久久久成人精品| 久久这里只精品| 极品色| 伊人黄色片| 精品毛片久久久精品毛片| 久操精品网| 亚洲不卡不卡中文字幕不卡| 日韩精品电影| 久热这里只有精品9| 中文字幕国产在线天堂| 亚洲成人无码影院| 男人的天堂啪啪啪啪啪蜜桃不卡| 另类亚洲图色| 9.1小视频| 2024黄色视频| 国产精品一区二区 尿失禁| 丁香五月影院| 亚州熟妇精品| 91欧美在线| 顶级丝袜熟女一区二区三区 | 无码乱人伦中文视频| 性做久久久久久免费观看软件| 亚洲精品 大香蕉| 亚洲棕合电彰| 国内一级精品| 超碰在线香蕉| 九九精品美女高溯喷水| 亚洲情色综合网| 国产深夜福利| 韩国三级理论在线| 99天天超碰| 78精品在线| 日本免费一级AAA大片器| 色噜噜狠狠色综无码久久合欧美| 厕所偷拍在线| 97人亚洲综合字幕| 精品丰满熟妇人妻一区 | 精品一区二区人妖| 日日干夜夜操视频h| 日韩本不卡视频在线观看| 亚洲伊人久久综合97| 五月综合色| 香蕉色网| 99精品欧美一区二区三区桃色| 艳美熟妇先锋一二三区| 亚洲成人AB| 日韩人妻中文视频| 91国产美女丝袜足交精品视频 | 猛交交| 日本道人妻久久久在线不卡色视频| 18禁止看精品中文字幕| 91久久久久久久久久久| 久草这里只有精品| 亚洲天堂热| 久久久少妇诱惑精品视频| 巨爆乳一区二区爆乳区| 天天综合有色网| 亚洲综合91| 亚洲情色电影网| 无套后入双马尾| 深夜激情无码| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 涩涩五月天| 97中文字幕一区| AV不卡在线| 欧美色图成人网一区二区| 人妻一区二区三区四区视频| 开心激情婷婷| 日韩大香蕉| 91狠婷| TS人妖另类精品视频系列| 久久久久久亚洲精品不卡人乳| 大香蕉中文网| 国产乱码久久| 蜜臀99久久精品久久久懂爱| 天天看天天综合成人网| 国产精品女aA片爽爽视频| 欧美激情总合网| 亚洲色图亚洲| 欧美日韩少妇色情| 中文字幕一区二区在线日韩精品| 最新av在线| 国产51色综合久久免费| 中国熟女91| 图片区小说区| 欧美偷拍| ′ !γ}丶。。久久精品欧美一区二区三区 | 亚洲另类天堂| 蜜桃精久三区| 日韩乱伦AⅤ| 日日夜夜模| 91在线精品| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 欧美激情总合网| 久久精品国产亚洲5555| 欧美操逼视频二区| 人人插人人摸人人| 日韩无码人妻中字久久三区四区| 加勒比AV天堂| 日本在线视频导航| 亚洲天堂2020| 91天堂视频| 蜜乳AV网址| 国产99热| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 欧美亚洲首页| 少妇六月天| 91足交| 91熟女丨91老女人| 欧美狠狠操| a v网站在线播放| 日骚逼视频| 欧洲精品在线播放| 久久久 国产精品| 97超碰精品| 超碰98综合网| 日韩三级一区| 国产成人免费观看在线视频| 超碰97护士| 蜜桃臀久久| 看黑丝美女操逼青青网站| 91精品黄在线观看| 亚洲一区二区三区不卡国产欧美| 欧美激情内射| 男人的天堂久久狠| 欧美亚洲20p| 激情久久久| 欧美大香蕉专区网| 性饥渴少妇av无码毛片| 色淫网站优优视频| 伊人少妇久久久| 97大色网| 熟女人妻av在线资源,黄色的资源| 一线黄色免费性爱片| 精品无码久久久久久久久果冻糖心| 青青草一区二区三区四| 成人一区二区三区四区| 很黄很污的免费网站| 五月综合激情| 国产欧美一区激情交| 日本操色导航| 日韩中文字幕精品一区在线| 最新国产精品| 欧美天天综合| 亚洲日韩电影| 欧美丝袜中文字幕07在线| 日韩三级性| 97操在线| 试看福利| 91处女视频在线观看| 一道本东京热加勒比一区二区三区| 综合激情婷婷| 777奇米影视777四色| 人人操人人插人人摸人人干| 精品无码一区二区三区色欲| 国产乱子伦一区二区三区在线观看| 日韩无码服务区| 97资源站久久| 国产一区在线观看无码AV| 亚洲精品久久久久毛片A片拉屎| 97天天| 青青青青操国内视频在线| 91 天天综合| 玖玖久久久| 91熟女视频| 亚州欧美色图| 97欧美精品| 屁股久久久久久久| 亚洲精品97| 日韩欧美亚洲自拍偷拍| 成人免费性爱视视| 日本羞羞的视频在线播放| 女性喷水高潮在线观看| 91免费看一区二区三区| 俺去啦俺来也久久综合| 国产又猛又粗又爽又黄| 亚洲图片日本AⅤ欧美在线| 家庭乱伦国产| 久久精品国产亚洲AV片多多| 国产精品久久久久综合| 美日韩成人| 麻豆精品久久久久久久| 日韩人妻网站| 欧美日韩人妻婷婷一区| 久久久精品九| 啊啊啊想要| 中文字幕五月婷婷免费| 在线强奷到舒服的无码视频| 婷婷色五月激情| A V少妇特黄三级| 色婷婷蜜臀av| 婷婷九月丁香| 国产日本一区二区三区蜜臀在线观看| JIZZJIZZ亚洲女人被躁| 日本丝袜人妻内射| 人人操AV| 新97国产超碰| 国产精品久久久久9999小说| 97精品一区二区视频| 天天视频黄网站| 啊啊啊啊嗯嗯嗯用力好爽| 亚洲精品欧洲精品| 骚鸭AV| 人人操人人插 - 百度 - 百度| 乱伦av麻豆| 蜜臀久久99精品久久久久久久久| 一区二区三区蜜桃成人撸久久东京热 | 亚洲福利中文字幕在线| 久久综合18p| 欧美在线综合| 麻豆精品A片免费观看| 综合视频91| 日韩欧美女求操每天更新| 一级性爱视频免费观看 | 国产又粗又又黄又猛| 午夜福利在线视频1000| 啊啊啊好舒服视频| 欧美日韩性爱无码| 麻豆久久久久久久久丝袜 | 久久亚州大香蕉| 黄片免费日韩| 婷婷久草| 国产成人精品一区| 五码视频在线观看| 大香蕉97久久| 亚洲资源吧| 操操逼操操逼操操逼逼| 欧美最婬乱婬爆婬性视频| 久草精品在线| 黑人无码一区二区| 国产亚洲欧洲在线观看| 亚洲欧美色图片| 日韩女模中文造逼| 超碰97人妻自拍| 亚洲欧美日韩精品久久久一区二区 | 亚洲欧美日韩偷拍色图| 天天干天天狼在线视频| 亚洲激情色片| 日语五十路和六十路亚洲国产精品| 男人的天堂一区三区| 国产日韩人人| 在线有码中文字幕| 大香蕉伊人一区在线观看| 青青草好吊色| 色婷婷亚洲婷婷| 亚洲精品九九九九九九| 日美免费黄片| 欧美激色| 国产高清MV操逼视频| 欧美亚洲涩涩| 国产专区第一页| 色制服丝袜夫妻av一区| 欧美黄色片在线播放| 婷婷激情一区二区三区俺也去| 91黑丝在线| 嗯嗯嗯啊啊啊在线免费观看| 欧美天天射| 日韩人妻资源网| 极品销魂美女一区二区| 在线观看十八禁| 立川理惠被中出无码| 97爱免费插| 性色AV蜜色av色欲av| 日韩av熟女一区二区三区成人| 操逼A∨| 成人综合网 欧美| 一道α片欧美| 亚洲欧美国产va在线| 青娱乐国产盛宴视频| 精品乱码在线观看| 免费毛片在线播放| 亚欧洲日韩国产精品| 嗯嗯啊中文字幕| 91综合色| 97超碰巨乳| 婷婷五月天激情网| 国产丝袜啪啪| 少妇被玩视频二三区| A一区片| 欧美青青草视频| 国产免费一区二区在线A片视频| 久久久久99精品成人片蜜臀| 少妇蜜汁| 少妇3P性爱自拍| 国产精品农村妇女精品| 精品 码产区一区二-1080P高清在线www-B029AV| 91爱剪切久久| 欧美午夜色妇色鬼| 日本www操操操| 国产精品视屏| 久久爽爽精品| 六月婷婷色综合| 人人弄人人摸| 精彩久久中文| 日本 成 人 小说 电影 一区二区| 精品无码一区二区三区| 伊人久久亚洲色欲综合网站 | 91亚洲综合在线| 久插综合| 婷婷午夜| 日韩中文字幕精品一区在线| 婷婷激情丁香| 久久久久久波多野吉衣高潮| 久热91| 18啪啪手机免费性爱| 久久有码视频| 四虎免费看黄| 精品色色| 欧美一区二区三区蜜桃| 亚洲色天| 91精品国产91久久久久久久久久久久| 日韩精品三区四区| 天堂8在线新版官网| 91被操| 久久久啊啊啊| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 五月天AV资源| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 精品无码一区二区三区| 日本天堂网| 日韩人妻一区二区精品| 亚洲av无码国产精品字幕| 熟妇无码视频三区| 午夜啊啊啊| 混色激情av| 亚洲激情av| 日韩国产成人自拍视频| 色综合国产在线观看| 久久久女人| 啊啊啊啊好疼视频| 一牛一区二区三区久久| 九九视品黄色| 一本久道久久综合狠狠爱| 久久精品国产亚洲AV无码电影| 看日韩黄片| 91天天综合日韩欧美| 狠狠97| 天天综合网亚洲综合网| 精品美女少妇一区二区三区| 91啪9色| 97九色人妻| 久久免费精彩视频| 国产精品青草综合久久| 一区操逼日比视频| 91丨豆花丨熟女| 日韩视频精品在线观看| 日本精品一区二区三区四区的功能| 91热色| 91熟女视频网| 90后后入| 欧美97av| 欧美色干| 999久久久九九九九| 亚洲激情在线| 青青草这里只有精品| 久久大香蕉97| 欧美热图99| 久久久久成人网| 青青草原成人| 色色97爱| 久热这里只有精品9| 国产丝袜啪啪| 中文字幕三四五区| 精品久久久久久久| 精品国产乱码久久| 亚洲视频中文一区| 啪啪啪精品| 草草影院最新网址| 五月综合婷婷久久网站| 国产精品午夜高潮呻吟久久av| 立川理惠无码一区二区| 九九香蕉网| 校园春色制服丝袜中文字亚洲| 另类综合另类| 青青草十区九区爱夜| 精品人妻一区二区乱码一区二区| 97这里只精品| 久久久久幕乱码| 天天干18禁| 91久久九九精品国产综合| 久久性爱精品一区| 国产九九九九九九九九| 91 刺激在线| 中文字幕视频2区| 欧美 综合 亚洲| 亚州,欧美在线| 久久专区| 熟女五十路一区二区三| 国产动漫操逼视频| 九九天堂| 东方亚洲在线操逼天堂| 亚洲欧美在线丝袜| a片偷拍视频| 伊人久操| 熟女丰满人妻一区| 欧洲精品久久| 国产精品天堂| 377p欧洲日本亚洲大胆| 蜜桃一区二区三区| 91综合天天看| 四虎国产精品永久在线囯在线 | 亚洲97P| 黄站在线免费观看| 天天看天天日天天操| 日本性爱网址| 亚洲熟妇丝袜在线观看| 国产99999久久精品| 亚洲天堂加勒比| 艹精品| 国产熟女少妇一区| 在线情色电影 91大 | 国人欧美精品一区二区| 无码heyzo高清一区| 视频在线中文字幕| 强被迫伦姧在线观看无码网站| 国产成人精品日本视频| yazhousetuoumei| 国产激情在线| 操我无码| 国产成人AV麻豆| 91丝袜美女视频| 国产高清精品福利| 极品少妇99| 欧洲综合色图| 日本精品高清一二区一本到| 91嫩草欧美| 91网站18| 99热自拍| 九久久精品| 久久东京伊人一本到鬼色| 91国产精品熟女| 人妻熟妇一区二区三区| 亚洲啪啪视频一区二区| 日han少妇无码| site:sinbotex.com| 久久这里只精品99re66图| 97一区二压| 久久久精品中文字幕爱豆| 校园春色综合| 南澳成人一级片在线播放| 国产www色在线观看| 国产盗摄美女如厕大神作品在线观看| 亚洲资源站| 欧美一级色| 四虎免费在线播放| 入口操逼网站| 劲爆欧美人妖三区91| 国产日韩色综合| 亚洲激情 欧美色图| 无码不卡亚洲成?人片| 亚洲天堂综合AV| 91性感在线| 人妻熟女午夜精品在线| 97精品全部| 久久久久9| 十八禁视频一区二区| 色偷偷超碰亚洲| 亚洲熟女乱熟乱熟妇综合网二区| 久久成年精品| 黄骗免费网站| 亚洲国产第一页综合视频| 亚洲性刺激| 四虎影院成年人片| 久久九九热| 午夜一区| 91中文字幕在线观看| 92午夜免费福利视频| 97爱啪| 日韩av一级黄片| 欧美日韩人妻少妇 一区二区三区| 精品人妻中文字幕4399| 情色五月天久久久| 尤物网址| 亚洲人综合| 亚洲欧洲网站免费观看| 殴美色网| 久久久久日本视| 亚洲av综合伊人久久| 超碰97人人乐| 久久久精品国产亚洲AV无码| 欧美亚洲清纯| 亚洲激情四射| 毛片一区二区| 久久一二三四五六七八九区区| 一区二区三区亚洲| 久久精品99| 六月丁香婷| 91色射| 91欧美在线| 九热中文字幕| 一个国产在线综合网站| 亚洲污一污二| 伦理片秋霞免费影院| 日日躁夜夜躁狠狠躁超爽| 美女超碰978| 免费久久一级毛片大黄| 91爱看| 巨爆乳肉感一区二区三区竹菊影视| 99精品九九九九九九| 久久久噜噜噜久久久| 污污汅18禁网站在线永久免费观看| 中文字幕二区| 欧美性天天影视| 国产精品亚洲高清在线| 99rre在线精品99re8| 青青草视频在线观看一区二区| 久久九九视频九九视频| 亚洲国产精品无石码久久| 一区二区三区无卡视频在线观看| 日本福利二区视频| 黄色免费网| 亚洲欧美激情小说| 肥臀熟女福利视频一区二区| 国产69精品久久久久99尤物| 日日骚中文字幕| 亚洲成人妻日韩在线| 看日韩美女二区三区免费操逼视频| 色欲三区| 97超碰9| 天天摸天天舔天天操| 亚洲欧美校园另类春色| 日韩一区二区高清在线观看的| 操香逼| 亚洲激情欧美色图 | 欧美日韩国产黄色片| 深喉吞精| 亚洲精品97中文字幕| 青娱乐 成人娱乐在线| 国产成人自拍视频在线| 影音先锋乱伦资源| 日本506070| 骚日日av| 是还免费视频1727我| 爱干爱射网啊啊啊| 丁香五月AV| 欧美日韩中文亚洲v在线综合| 一本色道综合久久欧美| 干B网| 欧美成人精品一区二区男人蜜臀| 大香蕉欧美伊| 欧美色三级片91| 婷色五月| 亚洲福利中文字幕在线| 国产曰批免费观看久久久| 国产免费一区2区3区| 久草成人| 亚洲熟妇A V黑人| 久久99久久99精品天美传媒棢·纸:. | 吻戏激情性巴克| 嫖老熟女A片一二三区| 丰满人妻一区二区三区四区| 亚洲欧美国产va在线播放频| 成人怡红院| 久久久久久九九九九九| 欧美小说区视频区| 国产夫妻性生活视频| 日本天堂在线播放| 中文在线视频| 老鸭窝日丰县女人| 伊人在线大香蕉视频久久| 亚洲综合一| 久久久久9| 人妻少妇精品久久久| julia中文字幕在线观看| 亚洲色图欧美另类在线| 青娱乐手机日韩在线视频| 欧美韩国你懂得在线| 欧美少妇性乱| 亚州综合AⅤ| 日韩三级性| 亚洲另类色综合网站| 欧美综合综合| 亚洲资源一区| 中文字幕三四区| 成人性爱免费播放| 欧美A片中文字幕| 久久五月天婷婷丁香中文字幕| 中文字幕,人妻,日韩| 天天色,天天干,天天干| 淫骚熟女一区二区三区| 午夜男女爽爽大片免费观看| 青久久|