在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MS4525DO-DS5AI001DP壓力傳感器驅動例程

廣州工控傳感科技有限公司 ? 2023-06-13 15:03 ? 次閱讀

大家好,我是【廣州工控傳感★科技】MS4525DO-DS5AI001DP壓力傳感器事業部,張工。

很多時候我們需要檢測流量和壓力這些參數,比如我們要檢測大氣壓,或者通過測量差壓來獲得輸送流體的流量等,都需要用到壓力傳感器。這一篇我們就來討論MS4525DO-DS5AI001DP壓力傳感器的數據獲取。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0518%2Fdb791774j00ruu2q000i2d000kl00knp.jpg&thumbnail=660x2147483647&quality=80&type=jpg


MS4525DO-DS5AI001DP

1、功能概述
MS4525DO-DS5AI001DP壓力傳感器TE可提供指定滿量程壓力范圍和溫度范圍讀取壓力的數字輸出。MS4525DO-DS5AI001DP壓力傳感器TE通過使用板載專用集成電路(ASIC)針對傳感器偏移、靈敏度、溫度效應和非線性進行了充分校準和溫度補償。經校準的壓力輸出值會在1kHz左右更新。傳感器在0℃到60℃的溫度范圍內進行校準。該傳感器可在3.3Vdc或5.0Vdc的單電源條件下工作??梢詼y量絕壓、差壓和表壓。絕壓型號的傳感器具備內部真空參照以及與絕壓成比例的輸出值。差壓型號的傳感器允許向感應模片的任意一側加壓。表壓型號的傳感器以大氣壓力為參考,提供與大氣壓力變化成比例的輸出值.4525DO壓力傳感器適用于無腐蝕性、非離子氣體(例如空氣和其他干燥氣體)。提供的選件可延伸這些傳感器的性能,使其適用于無腐蝕性、非離子的液體。

對外接口采用I2C總線或三線SPI的模式。其結構圖如下:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0518%2F6173b72fj00ruu1qx0016d000r700dlp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



1.1、MS4525DO-DS5AI001DP的I2C地址

作為I2C接口的設備都會有一個設備地址,MS4525DO壓力傳感器也不例外。而MS4525DO-DS5AI001DP傳感器的I2C地址在出廠時已特定寫入,并根據型號中的字母來指示其地址設定。具體如下:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0518%2F9f38a80dj00ruu1st0038d000i700gyp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



預設的設備地址是7位的,不包含讀寫位的指示。我們使用時需要將其左移一位并根據讀寫操作來定義讀寫位,0為寫,1為讀。

1.2、數據輸出格式

在I2C通訊模式下,MS4525DO-DS5AI001DP壓力傳感器有四個I2C讀取命令,分別為:Read_MR、Read_DF2、Read_DF3和Read_DF4。這四個命令可以獲取不同的數據,這些命令的具體報文格式定義如下圖:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0518%2F957bb9e6j00ruu23k00cfd000q400m1p.jpg&thumbnail=660x2147483647&quality=80&type=jpg



所以想要獲取MS4525DO-DS5AI001DP傳感器的數據就需要通過上述命令來實現。從上述的命令報文格式可以看出,這些命令在本質上是沒有差別的,都多少數據完全由主機來控制,也就是我們開發的驅動程序來控制。事實上,我們只需要考慮Read_DF4這個命令就可以涵蓋所有想要的數據。
我們需要注意的是,上述的報文中有兩位存儲的是狀態信息,該狀態信息表示獲取的數據是最新的數據還是舊數據或者錯誤報警。通過判斷這個數據可以決定我們在數據解析時如何處理相應的報文。

2、驅動設計與實現
我們已經了解了MS4525DO傳感器的結構、接口方式、設備地址以及數據輸出格式。接下來我們就可以考慮如何實現MS4525DO-DS5AI001DP傳感器的驅動程序了。
2.1、對象定義
我們依然還是先來考慮MS4525DO-DS5AI001DP傳感器的對象定義。我們定義一個對象無非考慮屬性和操作兩個部分。
首先我們來考慮MS4525DO傳感器對象的屬性。MS4525DO-DS5AI001DP傳感器采用I2C接口通訊,所以每臺都有一個設備地址。這個地址標識了I2C總線上該設備的唯一性,所以我們將設備地址作為MS4525DO-DS5AI001DP傳感器對象的一個屬性。對于MS4525DO傳感器來說存在多種類型,而不同的類型對應不同的數據計算方式,所以針對某一具體實例,我們需要記錄它的類型,所以我們為其定義一個類型屬性。我們在計算壓力值時,不同的量程最后得到的壓力值與測量量程有關,所以我們還需要記錄實例的量程上下限,所以將這兩個數據也定義為對象的屬性。為了操作方便我們將最終得到的溫度和壓力數據也都作為對象的屬性。
從前面的描述中,我們知道MS4525DO-DS5AI001DP傳感器的數據輸出格式是固定的,這為我們解析這一數據提供了思路。我們將讀出的4個字節與我們想要得到的數據組成聯合體,利用結構體和聯合體在內存中的關系可以方便的解析數據對象,如下圖所示:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0518%2F43e9527bj00ruu2fc001zd000fm0088p.jpg&thumbnail=660x2147483647&quality=80&type=jpg



這些個數據即是我們想要的先要得到的,同時他們也記錄了MS4525DO傳感器對象當前的狀態,所以我們將其也作為對象的屬性。
其次我們來考慮MS4525DO-DS5AI001DP傳感器對象的操作。我們需要將對象的哪些行為定義為操作呢?一般的我們考慮那些不能直接實現,而是要依賴特定的軟硬件平臺才能實現的對象行為。我們需要向MS4525DO傳感器發送命令,也需要從傳感器獲取對象,而無論讀還是寫都是依賴于具體的軟硬件平臺才能去定的,所以我們將向傳感器寫信息和從傳感器讀信息作為對象的2個操作。為了控制時序,我們一般需要演示處理函數,而演示處理函數的實現也是依賴于具體的軟硬件平臺的,所以我們將延時函數定義為對象的一個操作。
我們分析了MS4525DO傳感器對象可能的屬性和操作。根據前述的分析,我們可以定義MS4525DO傳感器對象的類型如下:

/* 定義MS45x5DO對象類型 */
typedef struct MS45x5DOObject {
uint8_t devAddress; //設備地址
union {
struct {
uint16_t pressure:14;
uint16_t status:2;
uint16_t insignificance:5;
uint16_t temperature:11;
}pData;
uint8_t rData[4];
}msData; //讀出的數值
MS45x5DOType type; //MS4515DO的類型
float pUpperRange; //壓力量程上限
float pLowerRange; //壓力量程下限
float fTemperature; //計算的溫度值
float fPressure; //計算的壓力值
void (*Write)(struct MS45x5DOObject *ms,uint8_t *wData,uint16_t wSize); //向MS45x5DO寫數據
void (*Read)(struct MS45x5DOObject *ms,uint8_t *rData,uint16_t rSize); //從MS45x5DO讀數據
void (*Delayms)(volatile uint32_t nTime); //毫秒秒延時函數
}MS45x5DOObjectType;

我們定義了MS4525DO-DS5AI001DP傳感器對象的類型,使用該類型我們可以定義我們想要的對象變量,但對象變量需要進行必要的配置才能真正地實例化,這個過程我們將其稱之為對象的初始化。

/* 初始化MS45x5DO對象 */
void MS45x5DOInitialization(MS45x5DOObjectType *ms, //MS5837對象
uint8_t devAddress, //設備地址
MS45x5DOType type, //MS4515DO的類型
float pMax, //壓力量程上限
float pMin, //壓力量程下限
MS45x5DOWrite write, //向MS45x5DO寫數據函數指針
MS45x5DORead read, //從MS45x5DO讀數據函數指針
MS45x5DODelayms delayms //毫秒延時函數指針
)
{
if((ms==NULL)||(write==NULL)||(read==NULL)||(delayms==NULL))
{
return;
}
ms->Write=write;
ms->Read=read;
ms->Delayms=delayms;
if((devAddress==0x28)||(devAddress==0x36)||(devAddress==0x46)||((0x48<=devAddress)&&(devAddress<=0x51)))
{
ms->devAddress=(devAddress<<1);
}
else if((devAddress==0x50)||(devAddress==0x6C)||(devAddress==0x8C)||((0x48<=(devAddress/2))&&((devAddress/2)<=0x51)))
{
ms->devAddress=devAddress;
}
else
{
ms->devAddress=0x00;
}
ms->type=type;
ms->fPressure=0.0;
ms->fTemperature=0.0;
ms->msData.rData[0]=0;
ms->msData.rData[1]=0;
ms->msData.rData[2]=0;
ms->msData.rData[3]=0;
if((fabs(pMax)<=0.0000001)&&(fabs(pMin)<=0.0000001))
{
ms->pUpperRange=100.0;
ms->pLowerRange=0.0;
}
else
{
ms->pUpperRange=pMax;
ms->pLowerRange=pMin;
}
}
2.2、對象操作
我們已經可以得到一個對象變量并將它實例化,我們還需要考慮它的操作問題。對于MS4525DO傳感器來說其操作比較簡單,最主要的操作包括數據獲取和地址設定。
2.2.1、獲取數據
對于我們來說獲取MS4525DO傳感器的測量數據是我們的主要目的。我們可以從MS4525DO傳感器獲取壓力和溫度數據,其測量范圍與輸出數據的對應關系如下圖所示:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0518%2Fe39409f7j00ruu2i2004jd000qf009xp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



根據上表中的數據對應關系,我們可以編寫獲取MS4525DO-DS5AI001DP傳感器的數據并解析的函數。

/*獲取轉換值,包括溫度和壓力*/
void GetMS45x5DOConversionValue(MS45x5DOObjectType *ms)
{
uint8_t rData[4]={0,0,0,0};
float maxCount=16383;
float minCount=0;
if(ms->type==MS45x5DO_TypeA)
{
maxCount=13106;
minCount=1638;
}
else
{
maxCount=14746;
minCount=819;
}
ms->Read(ms,rData,4);
ms->msData.rData[0]=rData[1];
ms->msData.rData[1]=rData[0];
ms->msData.rData[2]=rData[3];
ms->msData.rData[3]=rData[2];
if(ms->msData.pData.status!=MS45x5DO_Fault)
{
ms->fPressure=(((float)ms->msData.pData.pressure-minCount)/maxCount)*(ms->pUpperRange-ms->pLowerRange)+ms->pLowerRange;
ms->fTemperature=((float)ms->msData.pData.temperature/2047.0)*200.0-50.0;
}
}
2.2.2、地址設置

關于MS4525DO傳感器,在出廠時已經設定了設備地址并在型號編碼中給予指示。但在一些特殊情形下我們可能需要修改它的設備地址,這就需要用到和MS4525DO傳感器的地址修改操作。

/*修改MS45x5DO的設備地址*/
void ModifyMS45x5DODecAddress(MS45x5DOObjectType *ms,uint8_t newAddress)
{
uint8_t eepromByte[3];
uint16_t eepromTemp=0x00;
//第1步、進入命令模式
eepromByte[0]=0xA0;
eepromByte[1]=0x00;
eepromByte[2]=0x00;
ms->Write(ms,eepromByte,3);
//第2步、發送讀EEPROM命令
eepromByte[0]=0x02;
eepromByte[1]=0x00;
eepromByte[2]=0x00;
ms->Write(ms,eepromByte,3);
//第3步、獲取EEPROM的值
ms->Read(ms,eepromByte,3);
//第4步、修改為新地址
if(eepromByte[0]==0x5A)
{
eepromTemp=(eepromByte[1]<<8)+eepromByte[2];
eepromTemp=(eepromTemp&0xE007)+0xC00+(newAddress<<3);
eepromByte[1]=(uint8_t)((eepromTemp&0xFF00)>>8);
eepromByte[1]=(uint8_t)(eepromTemp&0x00FF);
}
else
{
return;
}
//第5步、將新地址寫入EEPROM
eepromByte[0]=0x02;
ms->Write(ms,eepromByte,3);
//第6步、退出命令模式
eepromByte[0]=0x80;
eepromByte[1]=0x00;
eepromByte[2]=0x00;
ms->Write(ms,eepromByte,3);
}
3、驅動的使用
我們已經設計并實現了MS4525DO壓力傳感器的驅動程序。接下來我們將簡單的說明如何使用這一驅動,并設計一個簡單的示例驗證這一驅動程序的正確性。
3.1、聲明并初始化對象
我們是基于對象設計的MS4525DO壓力傳感器的驅動程序,所以在使用驅動時,我們需要先聲明一個對象變量,然后基于該對象變量來實現具體的對象操作。我們先聲明對象如下:

MS45x5DOObjectType msDP;
聲明了這個對象變量之后,我們還需要使用初始化函數對其進行初始化方可使用。這一初始化函數擁有8個參數:

MS45x5DOObjectType *ms, //MS5837對象
uint8_t devAddress, //設備地址
MS45x5DOType type, //MS4515DO的類型
float pMax, //壓力量程上限
float pMin, //壓力量程下限
MS45x5DOWrite write, //向MS45x5DO寫數據函數指針
MS45x5DORead read, //從MS45x5DO讀數據函數指針
MS45x5DODelayms delayms //毫秒延時函數指針

第一個參數正是我們要初始化的對象變量。第二個參數為我們所要操作的MS4525DO-DS5AI001DP對象的設備地址。第三個參數是MS4525DO對象的具體類型,根據實際設備選擇枚舉即可。第四和第五個參數是該對象的物理量量程,根據具體對象而定。后面三個參數是實現對象操作的函數指針。這三個函數指針需要我們根據具體的軟硬件平臺來實現。它們的原型如下:

/*向MS45x5DO下發指令,指令格式均為1個字節*/
typedef void (*MS45x5DOWrite)(struct MS45x5DOObject *ms,uint8_t *wData,uint16_t wSize);
/*從MS45x5DO讀取多個字節數據的值*/
typedef void (*MS45x5DORead)(struct MS45x5DOObject *ms,uint8_t *rData,uint16_t rSize);
/*毫秒秒延時函數*/
typedef void (*MS45x5DODelayms)(volatile uint32_t nTime);
我們根據函數原型定義,在具體的實現平臺上實現它們,如我們在STM32平臺上可以實現如下:

/*向MS45x5DO下發指令,指令格式均為1個字節*/
static void WriteToDP(MS45x5DOObjectType *ms,uint8_t *wData,uint16_t wSize)
{
HAL_I2C_Master_Transmit(&hi2c2,ms->devAddress,wData,wSize,1000);
}
/*從MS45x5DO讀取多個字節數據的值*/
static void ReadFromDP(MS45x5DOObjectType *ms,uint8_t *rData,uint16_t rSize)
{
HAL_I2C_Master_Receive(&hi2c2,ms->devAddress,rData, rSize, 1000);
}
延時函數我們可以直接使用HAL庫中的HAL_Delay也可以自己編寫,在HAL庫中HAL_Delay是一個弱化定義的函數,我們可以重寫這一函數來實現不同的應用需求。到這里我們就可以使用對象初始化函數來初始化前面聲明的對象變量了。具體如下:

MS45x5DOInitialization(&msDP, //MS5837對象
0x28, //設備地址
MS45x5DO_TypeA, //MS4515DO的類型
DPUpperRange, //壓力量程上限
DPLowerRange, //壓力量程下限
WriteToDP, //向MS45x5DO寫數據函數指針
ReadFromDP, //從MS45x5DO讀數據函數指針
HAL_Delay //毫秒延時函數指針
);
3.2、基于對象進行操作

完成了對象的初始化后,我們就可以基于對象來實現相應的操作了。如我們使用驅動獲取msDP對象的差壓數據如下:

/*差壓數據獲取*/
void GetFlowDPDatas(void)
{
GetMS45x5DOConversionValue(&msDP);
aPara.phyPara.dPressure =msDP.fPressure;
aPara.phyPara.dTemperature=msDP.fTemperature;
}
4、應用總結

我們設計并實現了MS4525DO-DS5AI001DP壓力傳感器對象的驅動程序,并基于驅動程序實現了一個簡單的測試實例,獲得的結果如下:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0518%2Fc123c984j00ruu2n1000qd000ae00k5p.jpg&thumbnail=660x2147483647&quality=80&type=jpg



從上述兩圖中我們可以知道我們的驅動程序是正確的。事實上這一驅動已應用于我們的流量測量設備中,實現的效果良好。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2553

    文章

    51405

    瀏覽量

    756621
  • 力傳感器
    +關注

    關注

    0

    文章

    148

    瀏覽量

    15275
收藏 人收藏

    評論

    相關推薦

    壓力傳感器的特點和優勢 水壓力傳感器的校準方法

    壓力傳感器的特點和優勢 1. 高精度 水壓力傳感器通常具有高精度,能夠準確測量微小的壓力變化,這對于需要精確控制壓力的應用場景至關重要。 2. 穩定性 高質量的水
    的頭像 發表于 12-12 15:05 ?335次閱讀

    氣體壓力傳感器的種類和特點 氣體壓力傳感器在環保監測中的應用

    氣體壓力傳感器的種類和特點 氣體壓力傳感器是一種用于檢測氣體壓力的儀器,廣泛應用于各種工業和環境監測領域。以下是一些常見的氣體壓力傳感器種類及其特點: 1. 壓電式
    的頭像 發表于 12-09 16:25 ?674次閱讀

    氣體壓力傳感器與液體壓力傳感器的區別

    在工業自動化和過程控制中,壓力傳感器是不可或缺的組件。它們能夠測量氣體或液體的壓力,并將其轉換為電信號,以便進行進一步的處理和控制。氣體壓力傳感器和液體壓力傳感器雖然在功能上相似,但在
    的頭像 發表于 12-09 16:23 ?405次閱讀

    什么是壓力傳感器?壓力傳感器廠家公司推薦

    壓力傳感器是一種能感受壓力信號,并能按照一定的規律將壓力信號轉換成可用的電信號輸出的器件或裝置。通常情況下,壓力傳感器壓力敏感元件和信號處
    的頭像 發表于 12-02 15:19 ?643次閱讀
    什么是<b class='flag-5'>壓力傳感器</b>?<b class='flag-5'>壓力傳感器</b>廠家公司推薦

    4525DO-DS3BS001DS傳感器在差壓變送器中的應用

    4525DO-DS3BS001DS傳感器憑借其高精度及卓越的環境適應能力,已經在眾多工業場景中得到了廣泛應用與認可。4525DO-DS3BS001DS成功優化了傳感器的信號處理算法,使
    的頭像 發表于 10-15 16:54 ?228次閱讀
    <b class='flag-5'>4525DO-DS3BS001DS</b><b class='flag-5'>傳感器</b>在差壓變送器中的應用

    壓力傳感器屬于什么類別

    壓力傳感器是一種將壓力信號轉換為電信號的傳感器,廣泛應用于各種工業、科研和醫療領域。本文將詳細介紹壓力傳感器的分類、工作原理、性能指標、選型原則以及應用領域等方面的內容。 一、
    的頭像 發表于 06-19 10:00 ?1021次閱讀

    常見的壓力傳感器有哪些

    壓力傳感器是一種將壓力信號轉換為電信號的傳感器,廣泛應用于工業、醫療、科研等領域。本文將詳細介紹常見的壓力傳感器類型、工作原理、性能特點以及應用領域。
    的頭像 發表于 06-19 09:58 ?3028次閱讀

    壓力傳感器芯片原理是什么

    壓力傳感器是一種將壓力信號轉換為電信號的傳感器,廣泛應用于工業、醫療、科研等領域。壓力傳感器芯片是壓力傳感器的核心部件,其工作原理和性能直接
    的頭像 發表于 06-19 09:55 ?1290次閱讀

    壓力傳感器芯片有哪些型號

    壓力傳感器芯片是一種將壓力信號轉換為電信號的半導體器件,廣泛應用于工業自動化、醫療設備、汽車電子、環境監測等領域。本文將詳細介紹壓力傳感器芯片的分類、工作原理、主要參數、常見型號及其應用場
    的頭像 發表于 06-19 09:53 ?2084次閱讀

    壓力傳感器分類、原理及型號大全

    壓力傳感器是一種將壓力信號轉換為電信號的裝置,廣泛應用于工業、醫療、科研等領域。本文將詳細介紹壓力傳感器的型號、工作原理、性能參數、應用領域等方面的內容。 一、壓力傳感器的分類 按照測
    的頭像 發表于 06-19 09:19 ?4436次閱讀

    壓力傳感器原理及應用介紹

    壓力傳感器是一種將壓力信號轉換為電信號的傳感器,廣泛應用于工業、醫療、科研等領域。本文將詳細介紹壓力傳感器的原理、分類、性能指標、選型原則以及應用領域。 一、
    的頭像 發表于 06-19 09:18 ?4215次閱讀

    4525DO-DS3AI002DS空速模塊的誤差分析及結構分析

    4525DO-DS3AI002DS空速模塊,也被稱為皮托管、總壓管或總-靜壓管,是一個專門設計來感受氣流的總壓(全壓)和靜壓,并將這些壓力信號傳遞給大氣數據計算機和飛行儀表的裝置。
    的頭像 發表于 04-15 09:52 ?493次閱讀
    <b class='flag-5'>4525DO-DS3AI002DS</b>空速模塊的誤差分析及結構分析

    如何選擇壓力傳感器量程?如何選擇壓力傳感器接頭?

    壓力傳感器在實際中的應用非常之多,比如電子秤中就有壓力傳感器的身影。為增進大家對壓力傳感器的認識,本文將對壓力傳感器量程的選擇方法、壓力傳感器
    的頭像 發表于 03-20 08:38 ?1439次閱讀
    如何選擇<b class='flag-5'>壓力傳感器</b>量程?如何選擇<b class='flag-5'>壓力傳感器</b>接頭?

    你了解壓力傳感器壓力技術嗎?壓力傳感器有哪些使用注意事項?

    壓力傳感器早在很久之前便進入了大眾的視野,因此大家對壓力傳感器并不感到陌生。為增進大家對壓力傳感器的認識,本文將對壓力傳感器壓力技術、
    的頭像 發表于 03-17 08:36 ?742次閱讀
    你了解<b class='flag-5'>壓力傳感器</b>的<b class='flag-5'>壓力</b>技術嗎?<b class='flag-5'>壓力傳感器</b>有哪些使用注意事項?

    4525-DS5A001DP差壓傳感器怎么測量空速

    4525-DS5A001DP差壓傳感器測量空速通常涉及復雜的儀器和校準過程。一般來說,4525-DS5A001DP差壓傳感器用于測量兩個點之間的壓力
    的頭像 發表于 03-14 10:48 ?554次閱讀
    <b class='flag-5'>4525-DS5A001DP</b>差壓<b class='flag-5'>傳感器</b>怎么測量空速
    主站蜘蛛池模板: 久久精品五月天 | 天天插天天狠天天透 | 免费播放特黄特色毛片 | 午夜大片网 | 亚洲成a人片毛片在线 | 7777在线| 手机看片神马午夜片 | 宅男69免费永久网站 | 磁力bt种子搜索在线 | 日本日本69xxxx | 免费爱爱视频网站 | 精品特级毛片 | 亚洲视频在线播放 | 四虎影城| 国产欧美在线一区二区三区 | 中文字幕导航 | 日日噜噜噜噜人人爽亚洲精品 | 日本理论在线 | 自拍偷拍福利视频 | 欧美最猛黑人xxxx黑人猛交69 | 中文字幕在线一区 | 天天av天天翘天天综合网 | 亚洲爽爽网| 久久99热久久精品23 | 啪啪免费网站视频观看 | 正在播放羽月希与黑人bd在线 | 自拍偷拍综合网 | 国产精品人人爱一区二区白浆 | 十三以下岁女子毛片免费播放 | 五月天婷婷网亚洲综合在线 | 欧美呜巴又大粗又长 | 97狠狠操 | 欧美黄色成人 | 久久综合五月婷婷 | 天天操你| 一级毛片真人免费播放视频 | 视频在线欧美 | 奇米影视999 | 五月婷婷六月天 | bt在线天堂 | 亚洲精品久久久久午夜福 |