一種串口控制器及基于其的微控制器系統的喚醒方法
【技術領域】
[0001]本發明涉及電子電路技術領域,尤其涉及一種串口控制器及基于其的微控制器系統的喚醒方法。
【背景技術】
[0002]在微控制器(MCU,Micro Control Unit)芯片系統中,為了降低待機功耗,芯片通常都具備一種或多種低功耗模式。芯片在進入低功耗模式后,芯片內部的絕大部分時鐘都會被關閉,中央處理器(CPU,Central Processing Unit)無法繼續執行軟件指令,需要在合適的時機喚醒芯片,使芯片回到正常的工作狀態。
[0003]現有的喚醒技術主要有CPU中斷喚醒和外設喚醒。
[0004]CPU中斷喚醒主要是使用CPU模塊中集成的喚醒功能。在低功耗模式下,當CPU的用于喚醒的管腳上收到一個脈沖或者高電平時,CPU就會開始執行喚醒程序,將系統喚醒。CPU中斷喚醒的缺點是喚醒方式比較單一。
[0005]外設喚醒主要是使用系統中集成的外設模塊進行喚醒。現有的外設喚醒方式基本上都需要在低功耗模式下保持外設時鐘打開,導致低功耗模式下的系統功耗較大。
【發明內容】
[0006]本發明的目的在于提出一種串口控制器及基于其的微控制器系統的喚醒方法,該喚醒方法能夠解決現有喚醒技術中系統功耗較大的問題。
[0007]為達此目的,本發明采用以下技術方案:
[0008]第一方面,本發明公開了一種基于串口控制器的微控制器系統的喚醒方法,包括:
[0009]在低功耗模式下,判斷是否檢測到幀開始標記,如果檢測到所述幀開始標記,則打開時鐘開關電路,以產生串口工作時鐘;
[0010]接收當前數據幀;
[0011]判斷所述當前數據幀與喚醒幀是否匹配,如果所述當前數據幀與所述喚醒幀匹配,則產生喚醒中斷,喚醒微控制器系統。
[0012]進一步地,還包括:
[0013]如果所述當前數據幀與所述喚醒幀不匹配,則關閉時鐘開關電路。
[0014]進一步地,所述在低功耗模式下,判斷是否檢測到幀開始標記之前,所述方法還包括:
[0015]在系統運行模式下,判斷是否接收到進入所述低功耗模式的指令;若是,則關閉時鐘產生電路,若否,則繼續系統運行模式。
[0016]進一步地,所述在系統運行模式下,判斷是否接收到進入所述低功耗模式的指令之前,所述方法還包括:
[0017]在系統運行模式下,通過系統總線配置所述喚醒幀的內容。
[0018]第二方面,本發明公開了一種串口控制器,所述串口控制器能夠實現上述任一所述的喚醒方法,包括:
[0019]配置寄存器、幀開始檢測電路、數據幀接收電路、接收幀內容分析電路和時鐘開關電路,
[0020]所述幀開始檢測電路與所述時鐘開關電路連接,所述接收幀內容分析電路分別與所述配置寄存器和所述數據幀接收電路連接;
[0021]所述配置寄存器用于存儲喚醒幀;
[0022]所述幀開始檢測電路用于在低功耗模式下,判斷是否檢測到幀開始標記,如果檢測到所述幀開始標記,則打開時鐘開關電路,以產生串口工作時鐘;
[0023]所述數據幀接收電路用于接受當前數據幀;
[0024]所述接收幀內容分析電路用于判斷所述當前數據幀與所述喚醒幀是否匹配,如果所述當前數據幀與所述喚醒幀匹配,則產生喚醒中斷,喚醒微控制器系統。
[0025]進一步地,所述接收幀內容分析電路與所述時鐘開關電路連接;
[0026]所述接收幀內容分析電路還用于如果所述當前數據幀與所述喚醒幀不匹配,則關閉所述時鐘開關電路。
[0027]進一步地,所述配置寄存器還與微控制器系統中的系統總線連接,在系統運行模式下,通過所述系統總線對所述喚醒幀進行配置。
[0028]進一步地,所述幀開始檢測電路為CK型沿檢測電路。
[0029]進一步地,所述時鐘開關電路包括第一觸發器、第二觸發器、反相器和與門,所述第一觸發器用于將所述幀開始檢測電路產生的脈沖信號進行展寬和同步,所述第二觸發器用于產生控制所述時鐘產生電路打開或關閉的時鐘開關,其中,所述第一觸發器包括第一置位端、第一時鐘端、第一觸發端和第一輸出端,所述第二觸發器包括第二置位端、第二時鐘端、第二觸發端和第二輸出端,
[0030]所述第一置位端與所述幀開始檢測電路連接,所述第一時鐘端與所述時鐘產生電路的輸出端相連,所述第一觸發端用于接收一低電位,所述第一輸出端與所述第二置位端相連;
[0031]所述第二時鐘端與所述時鐘產生電路的輸出端相連,所述第二觸發端與所述與門的輸出端相連,所述第二輸出端與所述時鐘產生電路的輸入端相連;
[0032]所述反相器的輸入端與所述接收幀內容分析電路的輸出端相連,所述反相器的輸出端與所述與門的第一輸入端相連,所述與門的第二輸入端與所述第二輸出端相連。
[0033]進一步地,當所述時鐘產生電路控制所述串口工作時鐘關閉時,且當所述幀開始檢測電路檢測到幀開始標記時,控制所述第一觸發器和所述第二觸發器置位,所述第二輸出端輸出的時鐘開關打開,從而控制所述時鐘產生電路產生串口工作時鐘;當所述時鐘產生電路產生串口工作時鐘時,如果所述接收幀內容分析電路判斷所述當前數據幀與所述喚醒幀不匹配,則所述接收幀內容分析電路輸出高電位,使得所述第二觸發器輸出的時鐘開關關閉,從而控制所述時鐘產生電路關閉所述串口工作時鐘。
[0034]進一步地,還包括:
[0035]數據幀發送電路,所述數據幀發送電路與所述配置寄存器連接,用于發送配置寄存器中存儲的數據幀;
[0036]所述數據幀接收電路與所述配置寄存器連接,用于將接收到的數據幀傳送到所述配置寄存器中。
[0037]本發明所述的串口控制器及基于其的微控制器系統的喚醒方法只有在檢測到幀開始標記時才打開時鐘開關電路,以產生串口工作時鐘,降低了低功耗模式下的系統功耗。
【附圖說明】
[0038]為了更加清楚地說明本發明示例性實施例的技術方案,下面對描述實施例中所需要用到的附圖做一簡單介紹。顯然,所介紹的附圖只是本發明所要描述的一部分實施例的附圖,而不是全部的附圖,對于本領域普通技術人員,在不付出創造性勞動的前提下,還可以根據這些附圖得到其他的附圖。
[0039]圖1是本發明實施例一提供的基于串口控制器的微控制器系統的喚醒方法的流程圖。
[0040]圖2是本發明實施例二提供的串口控制器的結構圖。
[0041]圖3是本發明實施例二提供的串口控制器的時鐘開關電路的結構圖。
【具體實施方式】
[0042]為使本發明的目的、技術方案和優點更加清楚,以下將結合本發明實施例中的附圖,通過【具體實施方式】,完整地描述本發明的技術方案。顯然,所描述的實施例是本發明的一部分實施例,而不是全部的實施例,基于本發明的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下獲得的所有其他實施例,均落入本發明的保護范圍之內。
[0043]實施例一:
[0044]圖1是本發明實施例一提供的基于串口控制器的微控制器系統的喚醒方法的流程圖。如圖1所示,該喚醒方法包括:
[0045]步驟101、在低功耗模式下,判斷是否檢測到幀開始標記。如果監測到幀開始標記,則執行以下步驟:
[0046]本步驟中,實時地對幀開始標記進行檢測,幀開始標記可以是下降沿信號。在對幀開始標記檢測的過程中,不需要使用串口工作時鐘。
[0047]步驟102、打開時鐘開關電路,以產生串口工作時鐘。
[0048]本步驟中,產生串口工作時鐘,以能夠接收當前數據幀。
[0049]步驟103、接收當前數據幀。
[0050]本步驟中,接收檢測到的幀開始標記對應的當前數據幀。
[0051]步驟104、判斷當前數據幀與喚醒幀是否匹配。如果當前數據幀與喚醒幀匹配,則執行步驟105、產生喚醒中斷,喚醒微控制器系統。
[0052]優選地,還包括以下步驟:
[0053]如果當前數據幀與喚醒幀不匹配,則執行步驟106、關閉時鐘開關電路。
[0054]本步驟中,關閉時鐘開關電路,進而使得串口工作時鐘關閉。此使得在實現了喚醒功能的同時,盡可能地降低了微控制器系統的待機功耗。
[0055]優選地,還包括以下步驟:
[0056]如果沒有檢測到幀開始標記,則執行步驟151、系統運行低功耗模式。
[0057]本步驟中,在低功耗模式下,如果沒有檢測到幀開始標記,則系統繼續運行低功耗模式。
[0058]優選地,在步驟151、系統運行低功耗模式之前還包括以下步驟:
[0059]步驟121、在系統運行模式下,判斷是否接收到進入低功耗模式的指令。若是,則執行步驟131、關閉時鐘產生電路。若否,則執行步驟141、繼續系統運行模式。
[0060]本步驟中,由于進入低功耗模式后,對幀開始標記的檢測過程不需要使用串口工作時鐘。所以在系統進入低功耗模式前關閉時鐘產生電路,進而關閉串口工作時鐘,盡可能地降低了系統功耗。
[0061]優選地,在步驟121、在系統運行模式下,判斷是否接收到進入低功耗模式的指令之前還包括以下步驟:
[0062]步驟111、在系統運行模式下,通過系統總線配置所述喚醒幀的內容。
[0063]本步驟中,用戶可以通過系統總線對喚醒幀進行配置,可以選擇某幾個比特為特定的值的接收幀當做匹配幀,或者把任意的接收幀都當做匹配幀,甚至可以選擇把幀開始標志當成是匹配幀。通過對喚醒幀的配置,增加了喚醒功能的靈活性,允許用戶自由定制喚醒的內容,進而有選擇地喚醒微控制器系統。
[0064]本發明實施例一提供的基于串口控制器的微控制器系統的喚醒方法只有在檢測到幀開始標記時才打開時鐘開關電路,以產生串口工作時鐘,降低了低功耗模數下的系統功耗。
[0065]實施例二:
[0066]圖2是本發明實施例二提供的串口控制器的結構圖。本發明實施例二提供的串口控制器能夠實現本發明實施例一所述的喚醒方法。如圖2所示,該串口控制器包括:配置寄存器201、幀開始檢測電路202、數據幀接收電路203、接收幀內容分析電路204和時鐘開關電路205,幀開始檢測電路202與時鐘開關電路205連接,接收幀內容分析電路204分別與配置寄存器201和數據幀接收電路203連接。
[0067]配置寄存器201用于存儲喚醒幀。
[0068]優選地,配置寄存器201還可以通過總線接口與微控制器系統中的系統總線206連接,在系統運行模式下,通過系統總線206對喚醒幀進行配置。
[0069]本實施例中,用戶可以通過系統總線206對喚醒幀進行配置,可以選擇某幾個比特為特定的值的接收幀當做匹配