那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32看門狗定時器的工作原理和作用 看門狗定時器的特性

冬至子 ? 來源:舊巷聞書 ? 作者:駱駝聽海 ? 2023-07-27 16:30 ? 次閱讀

看門狗定時器(WDT,Watch Dog Timer)是單片機(jī)的一個組成部分,它實際上是一個計數(shù)器,一般來說都是向下計數(shù)的,給看門狗一個數(shù)字,程序開始運(yùn)行后看門狗開始倒計數(shù)。如果程序運(yùn)行正常,過一段時間CPU應(yīng)發(fā)出指令讓看門狗復(fù)位(在計數(shù)器減到0之前),重新開始倒計數(shù)。如果看門狗減到0就認(rèn)為程序沒有正常工作,強(qiáng)制整個系統(tǒng)復(fù)位。本節(jié)將對看門狗定時器的工作原理和作用進(jìn)行詳細(xì)講解。

看門狗的主要功能是在發(fā)生系統(tǒng)軟件故障時,將系統(tǒng)復(fù)位。也可以用于將系統(tǒng)從休眠或空閑模式喚醒。一般在嵌入式開發(fā)中,整個程序都是在次循環(huán)往復(fù)不停的工作,正常運(yùn)行期間會定時讓看門狗復(fù)位,一旦程序發(fā)生故障,停在某一處,看門狗不能及時復(fù)位,計數(shù)器減到0,就會強(qiáng)制整個系統(tǒng)復(fù)位,一般情況下復(fù)位操作能解決大部分問題。

用戶開發(fā)的產(chǎn)品很有可能運(yùn)用到一些非常極端苛刻的環(huán)境中,容易發(fā)生故障,但是通過復(fù)位就能解決,如果人工復(fù)位,成本相當(dāng)高,這時候看門狗的使用就非常有效了。

圖片

STM32結(jié)合安全度、計時精確度和易用性提供了IWDG和WWDG兩種看門狗,監(jiān)測軟件跑飛,或未按預(yù)想地運(yùn)行的情況觸發(fā)系統(tǒng)復(fù)位或產(chǎn)生中斷(中斷僅針對窗口看門狗)

獨(dú)立看門狗IWDG:專用時鐘LSI(內(nèi)部低速時鐘),低功耗模式仍可運(yùn)行,對定時的控制比較松,由于專門為其提供獨(dú)立的時鐘,因此稱為獨(dú)立看門狗。

窗口看門狗WWDG:總線時鐘APB1,對定時控制比較嚴(yán),要求主應(yīng)用程序在規(guī)定時間窗口內(nèi)喂狗。

獨(dú)立看門狗IWDG工作原理框圖分析

圖片

獨(dú)立看門狗本質(zhì)上就是一個計數(shù)定時器,既然是定時器,就和普通定時器的工作原理差不多,仍然包含計數(shù)器,重裝載寄存器等關(guān)鍵部件。計數(shù)器遞減的速度取決于時鐘的頻率,獨(dú)立看門狗使用專用內(nèi)部低速時鐘,大小為32KHz。當(dāng)計數(shù)器減到0后會觸發(fā)一個復(fù)位異常,進(jìn)行系統(tǒng)的重啟。為了不讓計數(shù)器減到0,在程序中每過一段時間都要進(jìn)行喂狗操作,喂狗操作就是刷新遞減計數(shù)器CNT的值,就是把重裝載值再次刷進(jìn)計數(shù)器中。狀態(tài)寄存器是用來指示預(yù)分頻器和重載寄存器更新的狀態(tài)。

1.獨(dú)立看門狗的時鐘:STM32F4 的獨(dú)立看門狗由內(nèi)部專門的 32Khz 低速時鐘(LSI)驅(qū)動,即使主時鐘發(fā)生故障,它也仍然有效。這里需要注意獨(dú)立看門狗的時鐘是一個內(nèi)部RC時鐘(RC振蕩器典型的缺陷就是比較容易受環(huán)境的影響,且精確地不高),所以并不是準(zhǔn)確的32Khz,而是在 15~47Khz 之間的一個可變化的時鐘,只是我們在估算的時候(之所以要估算時間是因為用戶要確保計數(shù)器減到0 之前喂狗),以 32Khz 的頻率來計算,看門狗對時間的要求不是很精確,所以,時鐘有些偏差,都是可以接受的。

圖片

2.預(yù)分頻器:分頻之后的時鐘才是真正驅(qū)動遞減計數(shù)器的時鐘。寄存器中只有低3位有效,不同的位組合表示不同的分頻系數(shù)。

圖片

3.重載寄存器:低12位有效,最大值位2的12次方。只有在關(guān)鍵字寄存器中寫入AAAAh時,重載寄存器厚葬的值才會自動裝載到看門狗計數(shù)器中。

圖片

4.關(guān)鍵字寄存器:用來控制獨(dú)立看門狗,寫入不同的值執(zhí)行不同的命令。正常情況下PR和PLR是不可寫的,具有寫保護(hù),需要通過寫入關(guān)鍵字寄存器值來解除寫保護(hù)。另外一旦通過關(guān)鍵字寄存器啟動看門狗,看門狗計數(shù),將不會再停止,除非硬件復(fù)位,默認(rèn)情況下看門狗關(guān)閉,所以正常情況下不輕易使用看門狗,否則系統(tǒng)會產(chǎn)生出乎意料的復(fù)位,造成損失。

圖片

5.狀態(tài)寄存器:低2位有效,更新時一定要確定相應(yīng)位為0才可以更新。

圖片

IWDG的超時時間

以預(yù)分頻器分頻系數(shù)為32為例,計數(shù)器的時鐘頻率為1KHz,每個脈寬的時間間隔為1ms,當(dāng)計數(shù)器的值為最小值1時,則最短超時時間為1ms,當(dāng)當(dāng)計數(shù)器的值為最大值0xFFF時,最長超時時間為2的12次方乘以1ms為4096ms。因此用戶可根據(jù)下表設(shè)置正確的超時時間防止看門狗復(fù)位。

圖片

IWDG獨(dú)立看門狗實例

實驗要求:開啟STM32的獨(dú)立看門狗,按鍵按下即喂狗,如果超時未喂狗,則看門狗復(fù)位系統(tǒng),用指示燈指示系統(tǒng)復(fù)位。

步驟:

1.配置RCC

圖片

圖片

2.使能并配置IWDG

圖片

3.配置按鍵管腳為輸入模式。

圖片

4.編寫代碼

//mian.c 




#include "main.h" 
#include "stm32f4xx_hal.h" 
#include "iwdg.h" 
#include "usart.h" 
#include "gpio.h" 
int main(){    
  HAL_Init();    
  SystemClock_Config();        
  MX_GPIO_Init();    
  MX_USART1_UART_Init();    
  MX_IWDG_Init();    
  printf("this is iwdg testn");    

  HAL_GPIO_WritePin(GPIOF,  GPIO_PIN_7, GPIO_PIN_SET);//默認(rèn)指示燈熄滅    
  HAL_Delay(500);    
  HAL_GPIO_WritePin(GPIOF,  GPIO_PIN_7, GPIO_PIN_RESET);    
  //指示燈亮,如果系統(tǒng)復(fù)位,指示燈就會熄滅0.5s后再次亮起    
  while(){        
      //********************************        
      //********************************        
      //********************************        
      //正常情況下喂狗操作之前有很多用戶程序        
      //現(xiàn)在使用按鍵手動喂狗以便觀察現(xiàn)象        
      if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET) {            
          HAL_IWDG_Refresh(&hiwdg);            
          //喂狗操作,將重載計數(shù)器的值再次裝填到計數(shù)器中 ,防止復(fù)位 }        
      } 
}

窗口看門狗WWDG剖析

窗口看門狗(WWDG)通常被用來監(jiān)測由外部干擾或不可預(yù)見的邏輯條件造成的應(yīng)用程序背離正常的運(yùn)行序列而產(chǎn)生的軟件故障。

圖片

遞減計數(shù)器的值在 T6 位(WWDG->CR 的第六位)變成 0 前被刷新,看門狗電路在達(dá)到預(yù)置的時間周期時,會產(chǎn)生一個 MCU 復(fù)位。WWDG->CR滿載時為1111111,即0x7F,滿載隨著時鐘減1,當(dāng)減到1000000,即0x40時,如果再減1變?yōu)?x3F之前計數(shù)器沒有被刷新(喂狗),則會產(chǎn)生 MCU 復(fù)位。由0x40變?yōu)?x3F第六為由1變?yōu)?,也就是第6為變?yōu)?之前計數(shù)器必須被刷新。0x40就是下窗口

在遞減計數(shù)器達(dá)到窗口配置寄存器(WWDG->CFR)數(shù)值之前,如果 7 位的遞減計數(shù)器數(shù)值(在控制寄存器中)被刷新, 那么也將產(chǎn)生一個 MCU 復(fù)位。也就是計數(shù)器在減到窗口配置寄存器(WWDG->CFR)中設(shè)定的數(shù)值之前被刷新(喂狗),就會就會產(chǎn)生 MCU 復(fù)位。這個數(shù)值就是上窗口

二者分別設(shè)定了一個喂狗的時間下限和一個喂狗的時間上限,中間形成了一個喂狗的窗口,因而稱為窗口看門狗。這樣對喂狗的時間有了更加精確的定位,要求也更嚴(yán)格。

WWDG的特性

圖片

可配置的時間窗,用來檢測應(yīng)用程序非預(yù)期中的運(yùn)行流程(過早或過晚),上窗口的值可配置范圍為0x40-0x7F(64-127)

看門狗復(fù)位條件:①使能了看門狗的情況下,自減計數(shù)器值小于0x40。② 使能了看門狗的情況下,喂狗時間大于上窗口的值

計數(shù)器值=0x40時可以使能一個早期喚醒中斷(EWI),因為再減下去即將產(chǎn)生復(fù)位,如果有些數(shù)據(jù)還不保存就來不及了,可以在中斷處理中做一些緊急保護(hù)的事情或者刷新看門狗計數(shù)器。

窗口看門狗WWDG工作原理框圖分析

圖片

①窗口看門狗時鐘:窗口看門狗時鐘來自 PCLK1,也就是來自APB1,是主系統(tǒng)時鐘,PCLK1 最大是 42M,由 RCC 時鐘控制器開啟。一旦主系統(tǒng)時鐘崩潰,窗口看門狗就無法工作。

②計數(shù)器時鐘:計數(shù)器時鐘由 CK計時器時鐘經(jīng)過預(yù)分頻器分頻得到,WDG分頻器仍然有一些分頻系數(shù)供用戶選擇,分頻系數(shù)由配置寄存器 CFR 的位 8:7 WDGTB[1:0]配置。

圖片

③計數(shù)器:窗口看門狗的計數(shù)器是一個遞減計數(shù)器,共有 7 位,其值存在控制寄存器CR 的位 6:0,即 T[6:0],當(dāng) 7 個位全部為 1時是 0X7F,這個是最大值,當(dāng)遞減到 T6 位變成 0時,即從0X40 變?yōu)?0X40時候,會產(chǎn)生看門狗復(fù)位。這個值 0X40 是看門狗能夠遞減到的最小值,當(dāng)遞減計數(shù)器遞減到 0X40 的時候,還不會馬上產(chǎn)生復(fù)位,如果使能了提前喚醒中斷:CFR 位 9 EWI 置 1,則產(chǎn)生提前喚醒中斷,如果真進(jìn)入了這個中斷的話,就說明程序肯定是出問題了,那么在提前喚醒中斷的處理程序中我們就需要做最重要的工作,比如保存重要數(shù)據(jù),或者報警等,這個中斷我們也叫它死前中斷。但是這個中斷的處理時間只有0X40減到0X3F的一個CLK的時長。

④窗口值:下窗口的值是固定的0X40,上窗口的值可以改變,具體的由配置寄存器CFR 的位 6:0 W[6:0]設(shè)置。其值必須大于 0X40(十進(jìn)制為64),如果小于或者等于 0X40就是失去了窗口的價值,而且也不能大于計數(shù)器的值,所以必須得小于 0X7F(十進(jìn)制為127)。如何設(shè)置窗口值需要根據(jù)我們需要監(jiān)控的程序的運(yùn)行時間來決定。如果我們要監(jiān)控的程序段 A 運(yùn)行的時間為 Ta,當(dāng)執(zhí)行完這段程序之后就要進(jìn)行喂狗,如果在窗口時間內(nèi)沒有喂狗的話,那程序就肯定是出問題了。一般計數(shù)器的值TR設(shè)置成最大 0X7F,窗口值為 WR,計數(shù)器減一個數(shù)的時間為 T,那么時間:(TR-WR)*T 應(yīng)該稍微小于 Ta即可。

窗口看門狗WWDG實例

實驗要求:開啟STM32的窗口看門狗,并使能喚醒中斷。主程序正常運(yùn)行時喂狗,用按鍵中斷模擬程序故障死機(jī),此時將觸發(fā)喚醒中斷并產(chǎn)生復(fù)位,用LED燈指示喚醒中斷的觸發(fā)。

達(dá)到0X40會觸發(fā)早期喚醒中斷,但是再次減1就會產(chǎn)生系統(tǒng)復(fù)位,因此中斷處理的事件就是1個CLK的持續(xù)時間,不同的分頻系數(shù),CLK的持續(xù)時間不同,總體來說早期喚醒中斷的時間事件相當(dāng)短,這個過程中只能做一些非常緊急的操作。

步驟:

1.配置RCC

圖片

2.配置LED燈管腳,設(shè)為輸出模式

圖片

3.配置按鍵中斷管腳,設(shè)為外部中斷模式

圖片

4.使能并配置WWDG

圖片

5.中斷配置

圖片

6.編寫代碼

//main.c 


#include "main.h" 
#include "stm32f4xx_hal.h" 
#include "usart.h" 
#include "wwdg.h" 
#include "gpio.h" 
int main(){    
    uint8_t wr, tr;    
    HAL_Init();    
    SystemClock_Config();        
    MX_GPIO_Init();    
    MX_USART1_UART_Init();    
    MX_WWDG_Init();    
    printf("this is wwdg testn");    
    HAL_GPIO_WritePin(GPIOF, GPIO_PIN_7, GPIO_PIN_SET);//初始時指示燈熄滅
    wr = WWDG- >CFR & 0x7f ;//獲取上窗口的值
    while(){
        tr = WWDG- >CR & 0x7f;//獲取當(dāng)前計數(shù)器的值
        if(tr < wr){   //計數(shù)器的值小于上窗口的值,進(jìn)行喂狗
        //沒有復(fù)位說明大于下窗口的值,不需要判斷
            HAL_WWDG_Refresh(&hwwdg);  //刷新計數(shù)器的值,喂狗
        }    
    }
}
//gpio.c 


//重寫按鍵中斷(外部中斷)的中斷處理回調(diào)函數(shù) 
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {    
    if(GPIO_Pin == GPIO_PIN_0) {         
        printf("程序故障n"); 
        while(1); //死循環(huán),模擬故障死機(jī)    
     } 
}
//wwdg.c 


//重寫提前喚醒中斷的中斷處理回調(diào)函數(shù) 
void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef* hwwdg) {     
    HAL_GPIO_WritePin(GPIOF, GPIO_PIN_7, GPIO_PIN_RESET); //LED亮     
    printf("EarlyWakeup INTn");    
    //提前喚醒中斷處理的時間非常有限,串口信息很有可能打印不完整 
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 看門狗定時器
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    16283
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    194

    瀏覽量

    28191
  • 狀態(tài)寄存器
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    7142
  • WWDG
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    5531
  • IWDG
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    5238
收藏 人收藏

    評論

    相關(guān)推薦

    一文詳解看門狗定時器

    看門狗定時器由獨(dú)立的1 Mhz 片內(nèi)振蕩驅(qū)動。這是VCC = 5V 時的典型值。請參見特性數(shù)據(jù)以了解其他VCC 電平下的典型值。通過設(shè)置看門狗
    發(fā)表于 09-02 16:40 ?4096次閱讀
    一文詳解<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    看門狗電路的作用

    看門狗電路的作用      看門狗電路其實是一個獨(dú)立的定時器,有一個定時器控制寄存
    發(fā)表于 01-12 12:00 ?8665次閱讀
    <b class='flag-5'>看門狗</b>電路的<b class='flag-5'>作用</b>

    內(nèi)部與外部看門狗定時器的比較

    摘要:本文對內(nèi)部(集成在處理內(nèi)部)看門狗定時器(WTD)與外部(基于硬件) WDT的優(yōu)勢和劣勢進(jìn)行了對比。內(nèi)部看門狗便于設(shè)計,但容易失效。MAXQ2000微控制
    發(fā)表于 05-02 10:34 ?4683次閱讀

    看門狗定時器的設(shè)計、工作原理看門狗定時器的操作

    看門狗定時器(WDT,Watch Dog Timer)是單片機(jī)的一個組成部分,它實際上是一個計數(shù),一般給看門狗一個數(shù)字,程序開始運(yùn)行后看門狗
    發(fā)表于 05-23 09:14 ?7821次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的設(shè)計、<b class='flag-5'>工作原理</b>及<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的操作

    看門狗定時器作用

    看門狗復(fù)位,重新開始倒計數(shù)。如果看門狗減到0就認(rèn)為程序沒有正常工作,強(qiáng)制整個系統(tǒng)復(fù)位。 看門狗定時器的操作過程 使用時,WDT將遞增,直到
    發(fā)表于 10-20 14:41 ?6739次閱讀

    dsp看門狗定時器作用解析

    看門狗在外圍監(jiān)控DSP中軟件的運(yùn)行以及硬件的操作,當(dāng)CPU出現(xiàn)故障時,看門狗將執(zhí)行系統(tǒng)復(fù)位。如果軟件進(jìn)入了一個不正確的循環(huán)或者CPU出現(xiàn)暫時的混亂,看門狗定時器將出現(xiàn)溢出來使系統(tǒng)復(fù)位。
    發(fā)表于 11-21 16:52 ?1.4w次閱讀
    dsp<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的<b class='flag-5'>作用</b>解析

    基于VxWorks的看門狗定高效定時機(jī)制設(shè)計實現(xiàn)

    VxWorks提供了一個看門狗定時器(watchDog timer),它由以下四個函數(shù)維護(hù): wdCreate( ) 創(chuàng)建并初始化一個看門狗定時器;wdDelete( ) 終止并
    發(fā)表于 03-06 09:22 ?4868次閱讀
    基于VxWorks的<b class='flag-5'>看門狗</b>定高效<b class='flag-5'>定時</b>機(jī)制設(shè)計實現(xiàn)

    TB3123 - PIC?單片機(jī)的窗口看門狗定時器

    窗口看門狗定時器(Windowed Watchdog Timer,WWDT)是PIC單片機(jī)的增強(qiáng)型看門狗定時器。該定時器是PIC單片機(jī)現(xiàn)有
    發(fā)表于 03-26 14:35 ?0次下載
    TB3123 - PIC?單片機(jī)的窗口<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    什么是看門狗定時器?為何看門狗定時器如此重要?

    的MCU故障可能無意中使看門狗定時器喪失功用,因此整合看門狗可能不會總是按預(yù)期的方式運(yùn)作。同樣地,雖然軟件以內(nèi)部看門狗能夠偵測所有凍結(jié)或停機(jī)的方式編寫,但是,采取額外的步驟以冗余方式監(jiān)
    的頭像 發(fā)表于 08-29 08:13 ?2.4w次閱讀
    什么是<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>?為何<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>如此重要?

    看門狗定時器的相關(guān)問題和實驗說明

    看門狗作用看門狗定時器是一個計數(shù),基本功能是在發(fā)生軟件問題和程序跑飛后使系統(tǒng)重新啟動。看門狗
    的頭像 發(fā)表于 10-06 12:59 ?4655次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的相關(guān)問題和實驗說明

    一文詳解微控制中的看門狗定時器

    本文介紹看門狗定時器,通常縮寫為 WDT,也稱為計算機(jī)正常運(yùn)行定時器或 COP。有外部看門狗設(shè)備和內(nèi)部看門狗功能。本文僅介紹內(nèi)部
    的頭像 發(fā)表于 04-25 17:26 ?5277次閱讀
    一文詳解微控制<b class='flag-5'>器</b>中的<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    使用高速微型看門狗定時器

    在惡劣環(huán)境中使用的高速微控制應(yīng)用的設(shè)計人員將使用看門狗定時器來防止軟件失控。DS80C320高速微控制集成了看門狗
    的頭像 發(fā)表于 02-09 11:54 ?984次閱讀

    內(nèi)部和外部看門狗定時器的比較

    本文比較了內(nèi)部(與微處理集成)和外部(基于硬件)看門狗定時器(WDT)的優(yōu)缺點。它解釋了內(nèi)部看門狗定時器易于實現(xiàn),但容易發(fā)生故障。MAXQ
    的頭像 發(fā)表于 04-03 11:15 ?3167次閱讀

    看門狗定時器工作原理

    看門狗定時器是一種獨(dú)立的計時硬件模塊,其核心功能是倒計時。如果系統(tǒng)軟件在計時超時前沒有對其進(jìn)行復(fù)位操作(即“喂狗”),看門狗將觸發(fā)一個預(yù)
    的頭像 發(fā)表于 10-21 14:18 ?580次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的<b class='flag-5'>工作原理</b>

    抄作業(yè)!看門狗定時器必備知識

    Air201在模組內(nèi)部集成了硬件看門狗,今天就一起來聊聊~ 本文將帶你了解看門狗工作原理、應(yīng)用架構(gòu)、定時時間設(shè)置、軟硬件看門狗的區(qū)別,以及
    的頭像 發(fā)表于 12-30 14:44 ?269次閱讀
    抄作業(yè)!<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>必備知識
    南江县| 嬴澳门百家乐的公式| 百家乐输惨了| 博彩百家乐官网画谜网| 丽都棋牌下载| 上海玩百家乐算不算违法| 百家乐官网洗码| 百家乐博百家乐的玩法技巧和规则 | 百家乐官网赌假的工具| 百家乐路单下| 百苑百家乐官网的玩法技巧和规则| 万通国际娱乐| 百家乐游戏图片| 自贡百家乐官网赌场娱乐网规则 | 百家乐官网开过的路纸| 德州扑克书籍| 百家乐投注心态| 百家乐官网投注程式| 网络百家乐必胜投注方法| 网络百家乐官网真人游戏| 保时捷娱乐城| 木棉百家乐的玩法技巧和规则| 蓝盾百家乐官网代理打| 东港市| 大发888登陆器下载| 网上百家乐是假| 百家乐官网公式与赌法| 新蔡县| 大发888在线娱乐二十一点| 百家乐游戏百家乐| 百家乐官网新规则| 临高县| 大发888游戏注册| 百家乐二游戏机| 可信百家乐官网的玩法技巧和规则| E乐博| 大发888真钱下载| 百家乐外套| 百家乐官网事一箩筐的微博| 博彩百家乐官网龙虎| 博彩公司|