亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

傳感器數(shù)據(jù)收集裝置的制造方法

文檔序號(hào):10686582閱讀:736來源:國知局
傳感器數(shù)據(jù)收集裝置的制造方法
【專利摘要】傳感器數(shù)據(jù)收集裝置具有第1電路和控制器。所述控制器具有第1狀態(tài)和第2狀態(tài),在所述第2狀態(tài)時(shí)取得一個(gè)或多個(gè)傳感器的數(shù)據(jù)。所述第1電路具有第1寄存器,使所述控制器從所述第1狀態(tài)向所述第2狀態(tài)轉(zhuǎn)變。所述控制器基于所述多個(gè)數(shù)據(jù)生成周期中的最小的數(shù)據(jù)生成周期來設(shè)定所述第1寄存器。
【專利說明】
傳感器數(shù)據(jù)收集裝置
技術(shù)領(lǐng)域
[0001 ]本實(shí)施方式涉及能夠與多個(gè)傳感器連接的傳感器數(shù)據(jù)收集裝置。
【背景技術(shù)】
[0002]在進(jìn)行多個(gè)傳感器的數(shù)據(jù)取得的處理器系統(tǒng)中,為了降低功耗,處理器在不進(jìn)行數(shù)據(jù)取得時(shí)處于睡眠狀態(tài)。
[0003]在這樣的處理器系統(tǒng)中,存在如下方法:在多個(gè)傳感器的數(shù)據(jù)生成周期不同的情況下,每當(dāng)能夠取得各傳感器的數(shù)據(jù)時(shí),使所述處理器從睡眠狀態(tài)向激活狀態(tài)轉(zhuǎn)變。在該方法中,處理器的狀態(tài)轉(zhuǎn)變頻繁,伴隨狀態(tài)轉(zhuǎn)變的功耗增大。

【發(fā)明內(nèi)容】

[0004]—個(gè)實(shí)施方式的目的在于,提供能夠降低控制器的狀態(tài)轉(zhuǎn)變次數(shù),并能夠降低控制器的功耗的傳感器數(shù)據(jù)收集裝置。
[0005]實(shí)施方式是一種傳感器數(shù)據(jù)收集裝置,其能夠與具有不同的數(shù)據(jù)生成周期的多個(gè)傳感器連接,所述傳感器數(shù)據(jù)收集裝置具備:
[0006]控制器,其具有第I狀態(tài)和第2狀態(tài),在所述第2狀態(tài)時(shí)取得一個(gè)或多個(gè)所述傳感器的數(shù)據(jù);以及
[0007]第I電路,其具有第I寄存器,基于所述第I寄存器的寄存器值,使所述控制器從所述第I狀態(tài)向所述第2狀態(tài)轉(zhuǎn)變,
[0008]所述控制器基于所述多個(gè)數(shù)據(jù)生成周期中的最小的數(shù)據(jù)生成周期來設(shè)定所述第I
寄存器。
[0009]另外,實(shí)施方式是一種傳感器數(shù)據(jù)收集裝置,其能夠與具有多個(gè)不同的數(shù)據(jù)生成周期的多個(gè)傳感器連接,所述傳感器數(shù)據(jù)收集裝置具備:
[0010]控制器,其具有第I狀態(tài)和第2狀態(tài),在所述第2狀態(tài)時(shí)取得一個(gè)或多個(gè)所述傳感器的數(shù)據(jù);以及
[0011]第I電路,其具有第I寄存器,基于所述第I寄存器的寄存器值,使所述控制器從所述第I狀態(tài)向所述第2狀態(tài)轉(zhuǎn)變,
[0012]所述控制器針對(duì)每個(gè)傳感器,基于所述數(shù)據(jù)生成周期來算出作為下次的數(shù)據(jù)生成時(shí)刻的第I時(shí)刻信息,對(duì)所述第I時(shí)刻信息分別加上數(shù)據(jù)有效期間來算出第2時(shí)刻信息,基于各傳感器中的具有比最小的第2時(shí)刻信息小的一個(gè)或多個(gè)第I時(shí)刻信息中的最大的第I時(shí)刻信息的第I傳感器的第I時(shí)刻信息,設(shè)定所述第I寄存器。
【附圖說明】
[0013]圖1是示出第I實(shí)施方式的處理器系統(tǒng)的框圖。
[0014]圖2是示出第I實(shí)施方式的管理表的圖。
[0015]圖3的(A)是示出比較例的傳感器和處理器的工作的時(shí)間圖,圖3的(B)是示出第I?第3實(shí)施方式的傳感器和處理器的工作的時(shí)間圖。
[0016]圖4是示出第I實(shí)施方式的應(yīng)用程序的工作步驟的流程圖。
[0017]圖5是示出第I實(shí)施方式的管理表登記例程的流程圖。
[0018]圖6是示出第I實(shí)施方式的喚醒觸發(fā)設(shè)定例程的流程圖。
[0019]圖7是示出第I實(shí)施方式的中斷處理程序(interrupt handler)的工作步驟的流程圖。
[0020]圖8是示出第2實(shí)施方式的處理器系統(tǒng)的框圖。
[0021 ]圖9是示出第2實(shí)施方式的管理表的圖。
[0022]圖10是示出第2實(shí)施方式的應(yīng)用程序的工作步驟的流程圖。
[0023]圖11是示出第2實(shí)施方式的管理表登記例程的流程圖。
[0024]圖12是示出第2實(shí)施方式的中斷處理程序的工作步驟的流程圖。
[0025]圖13是示出第2?第6實(shí)施方式的內(nèi)部計(jì)時(shí)器再次設(shè)定例程的流程圖。
[0026]圖14是示出第2實(shí)施方式的喚醒觸發(fā)設(shè)定例程的流程圖。
[0027]圖15是示出第3實(shí)施方式的處理器系統(tǒng)的框圖。
[0028]圖16是示出第3實(shí)施方式的管理表的圖。
[0029]圖17是示出第3實(shí)施方式的應(yīng)用程序的工作步驟的流程圖。
[0030]圖18是示出第3實(shí)施方式的管理表登記例程的流程圖。
[0031]圖19是示出第3實(shí)施方式的中斷處理程序的工作步驟的流程圖。
[0032]圖20是示出第3實(shí)施方式的喚醒觸發(fā)設(shè)定例程的流程圖。
[0033]圖21是示出比較例的傳感器和處理器的工作的時(shí)間圖。
[0034]圖22是示出第4實(shí)施方式的處理器系統(tǒng)的框圖。
[0035]圖23是示出第4和第5實(shí)施方式的管理表的圖。
[0036]圖24是示出第4?第6實(shí)施方式的傳感器和處理器的工作的時(shí)間圖。
[0037]圖25是示出第4實(shí)施方式的應(yīng)用程序的工作步驟的流程圖。
[0038]圖26是示出第4實(shí)施方式的管理表登記例程的流程圖。
[0039]圖27是示出第4實(shí)施方式的中斷處理程序的工作步驟的流程圖。
[0040]圖28是示出第4實(shí)施方式的喚醒觸發(fā)設(shè)定例程的流程圖。
[0041 ]圖29是示出第5實(shí)施方式的處理器系統(tǒng)的框圖。
[0042]圖30是示出第5實(shí)施方式的應(yīng)用程序的工作步驟的流程圖。
[0043]圖31是示出第5實(shí)施方式的中斷處理程序的工作步驟的流程圖。
[0044]圖32是示出第5實(shí)施方式的喚醒觸發(fā)設(shè)定例程的流程圖。
[0045]圖33是示出第6實(shí)施方式的處理器系統(tǒng)的框圖。
[0046]圖34是不出第6實(shí)施方式的管理表的圖。
[0047]圖35是示出第6實(shí)施方式的應(yīng)用程序的工作步驟的流程圖。
[0048]圖36是示出第6實(shí)施方式的管理表登記例程的流程圖。
[0049]圖37是示出第6實(shí)施方式的中斷處理程序的工作步驟的流程圖。
[0050]圖38是示出第6實(shí)施方式的喚醒觸發(fā)設(shè)定例程的流程圖。
[0051]圖39是示出存在抖動(dòng)(jitter)的情況下的第4實(shí)施方式的處理的時(shí)間圖。
[0052]圖40是用于說明第7實(shí)施方式的時(shí)間圖。
[0053]圖41是示出第7實(shí)施方式的應(yīng)用程序的工作步驟的流程圖。
[0054]圖42是示出第7實(shí)施方式的管理表登記例程的流程圖。
[0055]圖43是示出第7實(shí)施方式的喚醒觸發(fā)設(shè)定例程的流程圖。
[0056]圖44是用于說明第7實(shí)施方式的時(shí)間圖。
[0057]標(biāo)號(hào)說明
[0058]10中斷控制器,11中斷通知寄存器,12喚醒觸發(fā)寄存器,30處理器,31內(nèi)部計(jì)時(shí)器,40存儲(chǔ)器,41?46管理表,501?1'(:計(jì)時(shí)器,511?1'(:觸發(fā)寄存器,100、110、120、130、140、150處理器系統(tǒng)。
【具體實(shí)施方式】
[0059]根據(jù)一個(gè)實(shí)施方式,傳感器數(shù)據(jù)收集裝置能夠與多個(gè)傳感器連接。所述多個(gè)傳感器以多個(gè)不同的數(shù)據(jù)生成周期生成感測(cè)出的數(shù)據(jù)。所述傳感器數(shù)據(jù)收集裝置具有第I電路和控制器。所述控制器具有第I狀態(tài)和第2狀態(tài),在所述第2狀態(tài)時(shí)取得一個(gè)或多個(gè)所述傳感器的數(shù)據(jù)。所述第I電路具有第I寄存器,基于所述第I寄存器的寄存器值,使所述控制器從所述第I狀態(tài)向所述第2狀態(tài)轉(zhuǎn)變。所述控制器基于所述多個(gè)數(shù)據(jù)生成周期中的最小的數(shù)據(jù)生成周期來設(shè)定所述第I寄存器。
[0060]以下參照附圖,對(duì)實(shí)施方式的傳感器數(shù)據(jù)收集裝置進(jìn)行詳細(xì)說明。此外,本發(fā)明不限于這些實(shí)施方式。
[0061](第!實(shí)施方式)
[0062]圖1示出作為第I實(shí)施方式的傳感器數(shù)據(jù)收集裝置的處理器系統(tǒng)100的功能模塊。處理器系統(tǒng)100能夠與多個(gè)傳感器A?C連接。在圖1中,示出了 3個(gè)傳感器,但傳感器的個(gè)數(shù)如果為2個(gè)以上則是任意的。處理器系統(tǒng)100收集傳感器A?C檢測(cè)出的數(shù)據(jù)。處理器系統(tǒng)100具有中斷控制器(以下,稱作INTCH0、電源管理單元(以下,PMU)20、處理器30和存儲(chǔ)器40。處理器30構(gòu)成傳感器數(shù)據(jù)收集裝置的控制器。
[0063]處理器30執(zhí)行存儲(chǔ)器40中裝載的多個(gè)程序。在從INTC 10接收到中斷請(qǐng)求時(shí),處理器30執(zhí)行作為中斷處理用軟件的中斷處理程序INTHL1。處理器30具有兩個(gè)工作狀態(tài)。第I工作狀態(tài)是功耗較、不進(jìn)行傳感器數(shù)據(jù)的取得所涉及的處理的睡眠狀態(tài)。第2工作狀態(tài)是功耗比睡眠狀態(tài)大、進(jìn)行傳感器數(shù)據(jù)的取得所涉及的處理的激活狀態(tài)。激活狀態(tài)和睡眠狀態(tài)之間的轉(zhuǎn)變需要預(yù)定的時(shí)間。轉(zhuǎn)變中消耗至少比睡眠狀態(tài)多的電力(與激活狀態(tài)相同或更多)。此外,將處理器30從睡眠狀態(tài)向激活狀態(tài)轉(zhuǎn)變的情況稱作喚醒。
[0064]傳感器A?C按照由應(yīng)用程序APl設(shè)定的預(yù)定的周期進(jìn)行感測(cè)(sensing)。傳感器A?C在處理器系統(tǒng)100能夠取得感測(cè)出的傳感器數(shù)據(jù)時(shí),向INTC 10發(fā)布中斷請(qǐng)求。即,傳感器A?C按預(yù)定的數(shù)據(jù)生成周期生成感測(cè)出的數(shù)據(jù),每當(dāng)數(shù)據(jù)生成時(shí)向INTC 10發(fā)布中斷請(qǐng)求。各傳感器A?C的數(shù)據(jù)生成周期不同。各傳感器A?C分別被賦予能夠各自識(shí)別的傳感器ID0設(shè)傳感器A的ID = O,設(shè)傳感器B的ID = I,設(shè)傳感器C的ID = 2。
[0065]PMU 20管理對(duì)INTC 10、處理器30、存儲(chǔ)器40等的電源供給。PMU20按照來自INTC10的請(qǐng)求來喚醒處理器30。
[0066]INTC 10具有中斷通知寄存器11和喚醒觸發(fā)寄存器12。中斷通知寄存器11存儲(chǔ)表示有無來自傳感器A?C的中斷請(qǐng)求的信息。中斷通知寄存器11按每個(gè)傳感器ID具有入口,各入口記錄有表示有無來自與傳感器ID對(duì)應(yīng)的傳感器的中斷請(qǐng)求的中斷標(biāo)志位(f Iag)。關(guān)于中斷標(biāo)志位,“I”為斷言(assert),“O”為無效(negate)。自此之后,中斷通知寄存器11的寄存器值從左起按傳感器A、B、C的順序表示中斷標(biāo)志位。(OOO)表示沒有從各傳感器A?C產(chǎn)生中斷請(qǐng)求的狀態(tài)。(100)表示從傳感器A產(chǎn)生中斷請(qǐng)求的狀態(tài)。(101)表示從傳感器A和C產(chǎn)生中斷請(qǐng)求的狀態(tài)。INTC 10每當(dāng)接收到中斷請(qǐng)求時(shí),更新對(duì)應(yīng)的入口。INTC 10在至少一個(gè)入口為“I”的期間,通過電平信號(hào)向處理器30通知中斷請(qǐng)求。處理器30在執(zhí)行了傳感器數(shù)據(jù)的取得處理后,將對(duì)應(yīng)的傳感器ID的入口從“I”清除為“O”。
[0067]喚醒觸發(fā)寄存器12存儲(chǔ)識(shí)別成為用于喚醒處理器30的觸發(fā)的傳感器的信息。喚醒觸發(fā)寄存器12按每個(gè)傳感器ID具有入口。各入口記錄有喚醒觸發(fā)標(biāo)志位。喚醒觸發(fā)標(biāo)志位是用于在接收到來自與傳感器ID對(duì)應(yīng)的傳感器的中斷請(qǐng)求時(shí),指示PMU 20是否向處理器30通知喚醒請(qǐng)求的標(biāo)志位。自此之后,喚醒觸發(fā)寄存器12的寄存器值從左起按傳感器A、B、C的順序表示喚醒觸發(fā)標(biāo)志位。(100)表示僅在從傳感器A接收到中斷請(qǐng)求時(shí)向PMU 20指示喚醒請(qǐng)求。(010)表示僅在從傳感器B接收到中斷請(qǐng)求時(shí)向PMU 20指示喚醒請(qǐng)求。(001)表示僅在從傳感器C接收到中斷請(qǐng)求時(shí)向PMU 20指示喚醒請(qǐng)求。喚醒觸發(fā)寄存器12的設(shè)定由處理器30進(jìn)行。
[0068]存儲(chǔ)器40保存有管理表41和處理器30執(zhí)行的多個(gè)程序。應(yīng)用程序APl是在處理器系統(tǒng)100啟動(dòng)時(shí)進(jìn)行工作的程序,進(jìn)行用于傳感器數(shù)據(jù)取得的初始設(shè)定。管理表登記例程RTll是被應(yīng)用程序APl調(diào)用來工作的程序,對(duì)管理表41進(jìn)行管理信息的登記處理。喚醒觸發(fā)設(shè)定例程RT12是被應(yīng)用程序APl調(diào)用來工作的程序,進(jìn)行對(duì)喚醒觸發(fā)寄存器12的設(shè)定處理。中斷處理程序INTHLl在處理器30從睡眠狀態(tài)轉(zhuǎn)變到了激活狀態(tài)時(shí)啟動(dòng),通過執(zhí)行傳感器A數(shù)據(jù)取得處理RT13、傳感器B數(shù)據(jù)取得處理RT14、或傳感器C數(shù)據(jù)取得處理RT15來執(zhí)行各傳感器A?C的數(shù)據(jù)取得處理。傳感器A數(shù)據(jù)取得處理RT13是具有如下功能的程序:取得傳感器A的數(shù)據(jù),保存到存儲(chǔ)器40內(nèi)的預(yù)定的數(shù)據(jù)保存區(qū)域。傳感器B數(shù)據(jù)取得處理RT14是具有如下功能的程序:取得傳感器B的數(shù)據(jù),保存到存儲(chǔ)器40內(nèi)的預(yù)定的數(shù)據(jù)保存區(qū)域。傳感器C數(shù)據(jù)取得處理RT15是具有如下功能的程序:取得傳感器C的數(shù)據(jù),保存到存儲(chǔ)器40內(nèi)的預(yù)定的數(shù)據(jù)保存區(qū)域。
[0069]圖2是用于說明管理表41的數(shù)據(jù)結(jié)構(gòu)的圖。管理表41具有使傳感器ID、數(shù)據(jù)取得處理的入口地址41a和處理間隔41b成組的管理信息。入口地址41a表示保存有與傳感器ID對(duì)應(yīng)的傳感器數(shù)據(jù)取得處理RT13?RT15的存儲(chǔ)器40的物理地址。處理間隔41b表示各傳感器A?C的數(shù)據(jù)生成周期。處理器30在處理器系統(tǒng)100啟動(dòng)時(shí)進(jìn)行管理表41的設(shè)定處理。
[0070]以下,對(duì)處理器系統(tǒng)100連接有3個(gè)傳感器A、B、C的情況下的第I實(shí)施方式的處理進(jìn)行說明。此處,如圖2所示,傳感器A以80msec間隔生成感測(cè)數(shù)據(jù)。處理器30使用數(shù)據(jù)取得處理RT13(入口地址0x1100)進(jìn)行傳感器A的數(shù)據(jù)取得。同樣,傳感器B以100msec間隔生成感測(cè)數(shù)據(jù)。處理器30使用數(shù)據(jù)取得處理RT14(入口地址0x1200)進(jìn)行傳感器B的數(shù)據(jù)取得。傳感器C以125msec間隔生成感測(cè)數(shù)據(jù)。處理器30使用數(shù)據(jù)取得處理RT15(入口地址0x1300)進(jìn)行傳感器C的數(shù)據(jù)取得。
[0071]圖3是示出傳感器數(shù)據(jù)取得處理的時(shí)間圖。圖3的(A)示出比較例,圖3的(B)示出第I實(shí)施方式。箭頭表示傳感器數(shù)據(jù)的生成時(shí)機(jī)(timing)。在傳感器A中,數(shù)據(jù)取得周期以80msec間隔到來,在傳感器B中,數(shù)據(jù)取得周期以100msec間隔到來,在傳感器C中,數(shù)據(jù)取得周期以125msec間隔到來。在比較例中,每當(dāng)傳感器A?C的取得周期到來時(shí),將處理器30喚醒,取得對(duì)應(yīng)的傳感器的數(shù)據(jù),然后使處理器30睡眠。因此,在比較例中,從時(shí)刻O起時(shí)刻500為止,處理器30被喚醒14次。在第I實(shí)施方式中,基于最小的數(shù)據(jù)取得間隔(傳感器A的取得間隔)將處理器30喚醒。因此,在第I實(shí)施方式中,從時(shí)刻O起時(shí)刻500為止,處理器30被喚醒7次。這樣,在第I實(shí)施方式中,與比較例相比,能夠降低狀態(tài)轉(zhuǎn)變次數(shù)(喚醒次數(shù))。
[0072]以下,對(duì)第I實(shí)施方式的工作進(jìn)行詳細(xì)說明。圖4是示出應(yīng)用程序APl的工作步驟的流程圖。在處理器系統(tǒng)100啟動(dòng)時(shí),處理器30執(zhí)行應(yīng)用程序APl。應(yīng)用程序APl使傳感器A、B、C初始化(SI 00)。
[0073]接下來,處理器30執(zhí)行管理表登記例程RTlI (SlOl)。圖5是示出管理表登記例程RTlI的流程圖。首先,指定ID = 0、entry address(入口地址)=0x1100、interval (間隔)=80,執(zhí)行管理表登記例程RTl I。由此,將傳感器A的管理信息登記到管理表41。同樣,將傳感器B和傳感器C的管理信息登記到管理表41(圖5: S110)。由此,管理表41成為如圖2所示那樣。
[0074]接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT12(圖4:S102)。圖6是示出喚醒觸發(fā)設(shè)定例程RT12的流程圖。處理器30從管理表41取得處理間隔最小的傳感器ID(S120)。在該情況下為傳感器A(ID = 0)。處理器30設(shè)定喚醒觸發(fā)寄存器12,使得:僅在存在來自具有取得的ID的傳感器的中斷處理請(qǐng)求時(shí),從INTC 10發(fā)布處理器喚醒請(qǐng)求(S121)。即,處理器30將取得的傳感器ID的喚醒觸發(fā)標(biāo)志位設(shè)為“I”。在該情況下,喚醒觸發(fā)寄存器12成為(100)。
[0075]接下來,處理器30設(shè)定中斷向量等,使得:在從INTC10接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHLl (圖4:S103)。然后,應(yīng)用程序APl將處理器30設(shè)為睡眠狀態(tài)(S104)。
[0076]圖7是示出中斷處理程序INTHLl的工作步驟的流程圖。中斷處理程序INTHLl是在向處理器30通知了中斷請(qǐng)求時(shí)執(zhí)行的軟件。中斷處理程序INTHLl參照中斷通知寄存器11,檢查是否從傳感器產(chǎn)生中斷請(qǐng)求(S131)。在存在中斷請(qǐng)求的情況下(S131:是),中斷處理程序INTHLl從管理表41取得與請(qǐng)求中斷的傳感器ID對(duì)應(yīng)的入口地址41a(S132),執(zhí)行取得的入口地址中保存的數(shù)據(jù)取得處理(S133)。在數(shù)據(jù)取得處理結(jié)束后,中斷處理程序INTHLl將對(duì)應(yīng)的傳感器ID的中斷標(biāo)志位從“I”清除為“O”(S134)。中斷處理程序INTHLl判定是否執(zhí)行了針對(duì)中斷標(biāo)志位為“I”的全部傳感器ID的數(shù)據(jù)取得處理(S135)。在判定結(jié)果為“否”的情況下返回到S132,針對(duì)中斷標(biāo)志位為“I”的傳感器ID,執(zhí)行同樣的處理。
[0077]接下來,參照?qǐng)D3的(B)的時(shí)間圖等,對(duì)處理器系統(tǒng)100的工作更詳細(xì)地進(jìn)行說明。在設(shè)感測(cè)開始時(shí)刻為時(shí)刻O時(shí),在感測(cè)中進(jìn)行以下的工作。在時(shí)刻O,傳感器A、B、C進(jìn)行感測(cè),由傳感器A、B、C生成數(shù)據(jù)。各傳感器A?C向INTC 10發(fā)布中斷請(qǐng)求。由此,INTC 10使中斷通知寄存器11為(111)。另外,因?yàn)槿我庖粋€(gè)中斷標(biāo)志位成為“I”,所以INTClO通過電平信號(hào)向處理器30發(fā)布中斷通知。另外,INTC 10對(duì)中斷通知寄存器11的寄存器值(I 11)和喚醒觸發(fā)寄存器12的寄存器值(100)進(jìn)行比較,檢查喚醒觸發(fā)寄存器12中為“I”的比特位(bit)在中斷通知寄存器11中是否為“I”。該情況下的判定結(jié)果為“是”,INTC 10向PMU20請(qǐng)求喚醒處理器30 JMU 20在從INTC 10接收到處理器喚醒請(qǐng)求時(shí),使處理器30從睡眠狀態(tài)向激活狀態(tài)轉(zhuǎn)變。
[0078]由此,處理器30喚醒。此時(shí),通過INTC10發(fā)布中斷通知,因此處理器30執(zhí)行中斷處理程序INTHLl。中斷處理程序INTHLl取得中斷通知寄存器11的寄存器值(111)(圖7: S130)。中斷處理程序INTHLl因中斷通知寄存器11的寄存器值中存在“I”的比特位,執(zhí)行數(shù)據(jù)取得處理。首先,中斷處理程序INTHLl通過比特位位置確定存在中斷請(qǐng)求的傳感器ID。在該情況下,首先選擇ID = 0。中斷處理程序INTHLl從管理表41取得ID = O的入口地址OxllOO(圖7:S132),執(zhí)行存儲(chǔ)器40的入口地址0x1100中保存的傳感器A數(shù)據(jù)取得處理RT13(圖7:S133)。接下來,中斷處理程序INTHLl將ID = O的中斷標(biāo)志位清除為“O”(圖7: S134)。同樣地,確定ID=1,執(zhí)行傳感器B數(shù)據(jù)取得處理RT14。進(jìn)而,確定ID = 2,執(zhí)行傳感器C數(shù)據(jù)取得處理RT15。由于執(zhí)行了全部進(jìn)行了請(qǐng)求的傳感器ID的處理,所以中斷處理程序INTHLl的處理結(jié)束,返回到應(yīng)用程序APl處理。應(yīng)用程序APl將處理器30設(shè)為睡眠狀態(tài)。
[0079]接下來,在時(shí)刻80,從傳感器A發(fā)布中斷請(qǐng)求。此時(shí),在中斷通知寄存器11中保存有(100)的寄存器值。INTC 10檢查喚醒觸發(fā)寄存器12中為“I”的比特位在中斷通知寄存器11中是否為“I”。在該情況下,判定結(jié)果為“是”。因此,處理器30被PMU 20喚醒,通過中斷處理程序INTHLl執(zhí)行傳感器A的數(shù)據(jù)取得處理。
[0080]接下來,在時(shí)刻100,從傳感器B發(fā)布中斷請(qǐng)求。此時(shí)的中斷通知寄存器11的值為
(010)。但是,因?yàn)榕c傳感器B對(duì)應(yīng)的ID=I的比特位在兩個(gè)寄存器11、12中不為“I”,所以INTC 10不向PMU 20發(fā)布處理器喚醒請(qǐng)求。因此,處理器30保持睡眠狀態(tài),不進(jìn)行傳感器B的數(shù)據(jù)取得處理。
[0081]接下來,在時(shí)刻125,從傳感器C發(fā)布中斷請(qǐng)求。此時(shí)的中斷通知寄存器11的值為
(011)。但是,因?yàn)榕c傳感器B對(duì)應(yīng)ID= I的比特位和與傳感器C對(duì)應(yīng)ID = 2的比特位在兩個(gè)寄存器11、12中不為“I”,所以INTClO不向PMU 20發(fā)布處理器喚醒請(qǐng)求。因此,處理器30保持睡眠狀態(tài),不進(jìn)行傳感器B和傳感器C的數(shù)據(jù)取得處理。
[0082]接下來,在時(shí)刻160,從傳感器A發(fā)布中斷請(qǐng)求。此時(shí)的中斷通知寄存器11的值為
(111)。因?yàn)榕c傳感器A對(duì)應(yīng)ID = O的比特位在兩個(gè)寄存器11、12中為“I”,所以INTC 10向PMU20發(fā)布處理器30的喚醒請(qǐng)求。PMU 20在從INTC 10接收到處理器喚醒請(qǐng)求時(shí),將處理器30喚醒。由此,執(zhí)行中斷處理程序INTHLl,進(jìn)行傳感器A、B、C各自的數(shù)據(jù)取得處理。然后,處理器30成為睡眠狀態(tài)。
[0083]以下,同樣地,僅在時(shí)刻240、時(shí)刻320、時(shí)刻400、時(shí)刻480,將處理器30喚醒,執(zhí)行到該各時(shí)刻為止存在中斷請(qǐng)求的一個(gè)或多個(gè)傳感器的數(shù)據(jù)取得處理。
[0084]這樣,在第I實(shí)施方式中,基于多個(gè)數(shù)據(jù)取得間隔中的最小的數(shù)據(jù)取得間隔將處理器30喚醒,能夠降低處理器30的睡眠狀態(tài)與激活狀態(tài)的轉(zhuǎn)變次數(shù)。因此,能夠降低處理器30的功耗。另外,在處理器30進(jìn)行取得之前,傳感器數(shù)據(jù)不被覆蓋寫入,因此不會(huì)漏取傳感器數(shù)據(jù)。
[0085](第2實(shí)施方式)
[0086]在第I實(shí)施方式中,各傳感器A?C在數(shù)據(jù)生成時(shí)發(fā)布中斷請(qǐng)求。但是,根據(jù)傳感器,有的傳感器不發(fā)布中斷請(qǐng)求。在第2實(shí)施方式中,設(shè)想全部傳感器A?C不具有中斷請(qǐng)求功能的情況。
[0087]圖8示出第2實(shí)施方式的處理器系統(tǒng)110的功能模塊。處理器系統(tǒng)110與傳感器A?C連接。在圖8中,將圖1的INTC 10替換為實(shí)時(shí)時(shí)鐘計(jì)時(shí)器(Real-time Clock,以下,稱作RTC計(jì)時(shí)器MO13RTC計(jì)時(shí)器50具有對(duì)時(shí)間進(jìn)行計(jì)數(shù)的計(jì)數(shù)器。RTC計(jì)時(shí)器50即使在處理器30處于睡眠狀態(tài)下也始終持續(xù)進(jìn)行工作。處理器30具有內(nèi)部計(jì)時(shí)器31。內(nèi)部計(jì)時(shí)器31具有對(duì)時(shí)間進(jìn)行計(jì)數(shù)的計(jì)數(shù)器。內(nèi)部計(jì)時(shí)器31在處理器30處于睡眠狀態(tài)時(shí)停止計(jì)時(shí)工作。
[0088]RTC計(jì)時(shí)器50具有RTC觸發(fā)寄存器51ATC觸發(fā)寄存器51存儲(chǔ)下次處理時(shí)刻,所述下次處理時(shí)刻是成為用于將處理器30喚醒的觸發(fā)的傳感器的下次的數(shù)據(jù)生成時(shí)刻。RTC計(jì)時(shí)器50具有如下功能:在其計(jì)數(shù)值與RTC觸發(fā)寄存器51的寄存器值一致時(shí)向PMU 20發(fā)布處理器喚醒請(qǐng)求,并且向處理器30通知中斷請(qǐng)求。處理器30在處理器系統(tǒng)110啟動(dòng)時(shí)進(jìn)行RTC觸發(fā)寄存器51的設(shè)定處理。PMU 20管理針對(duì)處理器系統(tǒng)110中包含的RTC計(jì)時(shí)器50、處理器30、存儲(chǔ)器40等的電源供給。PMU 20按照來自RTC計(jì)時(shí)器50的請(qǐng)求將處理器30喚醒。
[0089]存儲(chǔ)器40保存管理表42和處理器30執(zhí)行的應(yīng)用程序AP2以及中斷處理程序INTHL2。應(yīng)用程序AP2是在處理器系統(tǒng)110啟動(dòng)時(shí)進(jìn)行工作的程序,進(jìn)行用于傳感器數(shù)據(jù)取得的初始設(shè)定。管理表登記例程RT21是被應(yīng)用程序AP2調(diào)用來工作的程序,向管理表42進(jìn)行管理信息的登記處理。中斷處理程序INTHL2在處理器30從睡眠狀態(tài)轉(zhuǎn)變到了激活狀態(tài)時(shí)啟動(dòng),執(zhí)行數(shù)據(jù)取得處理。喚醒觸發(fā)設(shè)定例程RT22是被中斷處理程序INTHL2調(diào)用來工作的程序,進(jìn)行對(duì)RTC觸發(fā)寄存器51的設(shè)定處理。傳感器A數(shù)據(jù)取得處理RT23取得傳感器A的數(shù)據(jù),保存到存儲(chǔ)器40內(nèi)的預(yù)定的數(shù)據(jù)保存區(qū)域。傳感器B數(shù)據(jù)取得處理RT24取得傳感器B的數(shù)據(jù),保存到存儲(chǔ)器40內(nèi)的預(yù)定的數(shù)據(jù)保存區(qū)域。傳感器C數(shù)據(jù)取得處理RT25取得傳感器C的數(shù)據(jù),保存到存儲(chǔ)器40內(nèi)的預(yù)定的數(shù)據(jù)保存區(qū)域。內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT26是被中斷處理程序INTHL2調(diào)用來工作的程序,進(jìn)行內(nèi)部計(jì)時(shí)器31的設(shè)定處理。
[0090]圖9是用于說明管理表42的數(shù)據(jù)結(jié)構(gòu)的圖。管理表42具有使傳感器ID、數(shù)據(jù)取得處理的入口地址42a、傳感器數(shù)據(jù)取得的處理間隔42b、下次處理時(shí)刻(next_proc) 42c成組的管理信息。入口地址42a表示保存有與傳感器ID對(duì)應(yīng)的傳感器數(shù)據(jù)的取得處理RT23?RT25的存儲(chǔ)器40的物理地址。處理間隔42b表示各傳感器A?C的數(shù)據(jù)生成周期。下次處理時(shí)刻(11611:_口1'00)420表示各傳感器4?(:的下次的數(shù)據(jù)生成時(shí)刻。處理器30在處理器系統(tǒng)110啟動(dòng)時(shí)進(jìn)行管理表42的設(shè)定處理。
[0091]以下,對(duì)第2實(shí)施方式的工作進(jìn)行詳細(xì)說明。圖10是示出應(yīng)用程序AP2的工作步驟的流程圖。在處理器系統(tǒng)110啟動(dòng)時(shí),處理器30執(zhí)行應(yīng)用程序AP2。應(yīng)用程序AP2使傳感器A、
8、(:初始化(3200)。
[0092]接下來,處理器30執(zhí)行管理表登記例程RT21(S201)。圖11是示出管理表登記例程RT21的流程圖。首先,指定ID = 0、entry address = Oxl 100、interval =80,執(zhí)行管理表登記例程RT21。由此,將傳感器A的管理信息登記到管理表42中。同樣,將傳感器B和傳感器C的管理信息登記到管理表42中(圖11:S210)。接下來,處理器30對(duì)各傳感器ID的下次處理時(shí)刻(]1611:_卩1'00)420設(shè)定下次處理時(shí)刻。在執(zhí)行管理表登記例程1^'21時(shí),處理器30對(duì)下次處理時(shí)刻42c設(shè)定從內(nèi)部計(jì)時(shí)器31取得的當(dāng)前時(shí)刻(時(shí)刻O) (S211)。
[0093]處理器30設(shè)定中斷向量等,使得在從RTC計(jì)時(shí)器50接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL2(圖10:S202)。處理器30為了進(jìn)行初次的數(shù)據(jù)取得處理,執(zhí)行中斷處理程序INTHL2(S203)。然后,應(yīng)用程序AP2將處理器30設(shè)為睡眠狀態(tài)(S204)。
[0094]圖12是示出中斷處理程序INTHL2的工作步驟的流程圖。中斷處理程序INTHL2首先執(zhí)行內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT26(S220)。圖13是示出內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT26的流程圖。內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT26是在處理器30被喚醒時(shí)再次設(shè)定已停止的內(nèi)部計(jì)時(shí)器31的時(shí)刻的處理。首先,處理器30從RTC計(jì)時(shí)器50取得當(dāng)前時(shí)刻(圖13: S230),通過取得的當(dāng)前時(shí)刻來再次設(shè)定內(nèi)部計(jì)時(shí)器31( S231)。
[0095]接下來,中斷處理程序INTHL2從管理表42取得ID = O的入口地址42a和下次處理時(shí)刻42c(S221)。接下來,中斷處理程序INTHL2將從內(nèi)部計(jì)時(shí)器31取得的當(dāng)前時(shí)刻與ID = O的下次處理時(shí)刻42c進(jìn)行比較(S222)。中斷處理程序INTHL2在當(dāng)前時(shí)刻與ID = O的下次處理時(shí)刻一致或當(dāng)前時(shí)刻比ID = O的下次處理時(shí)刻晚的情況下(S222:是),執(zhí)行傳感器A數(shù)據(jù)取得處理RT23(S223)。接下來,中斷處理程序INTHL2以對(duì)ID = O的下次處理時(shí)刻加上處理間隔42b而得到的值來更新ID = O的下次處理時(shí)刻42c(S224)。中斷處理程序INTHL2判定針對(duì)管理表42中登記的全部傳感器ID的處理是否結(jié)束(S225),在判定結(jié)果為“否”的情況下,對(duì)全部傳感器ID執(zhí)行S221?S225的處理。
[0096]這樣,在傳感器數(shù)據(jù)的取得處理結(jié)束時(shí),中斷處理程序INTHL2執(zhí)行喚醒觸發(fā)設(shè)定例程RT22(S226)。圖14是示出喚醒觸發(fā)設(shè)定例程RT22的流程圖。喚醒觸發(fā)設(shè)定例程RT22是用于將處理間隔最小的傳感器ID的下次處理時(shí)刻設(shè)定到RTC觸發(fā)寄存器51的處理。處理器30從管理表42取得處理間隔最小的傳感器ID(S240)。在該情況下,為傳感器A(ID = O)。接下來,處理器30將取得的傳感器ID的下次處理時(shí)刻設(shè)定到RTC觸發(fā)寄存器51(S241)。
[0097]接下來,參照?qǐng)D3的(B)的時(shí)間圖等,對(duì)處理器系統(tǒng)110的工作更詳細(xì)地進(jìn)行說明。在處理器系統(tǒng)110啟動(dòng)后,執(zhí)行應(yīng)用程序AP2。處理器30使傳感器A、B、C初始化(圖10:S200)。接下來,處理器30向管理表42設(shè)定各傳感器A?C的管理信息(S201)。在該階段中,對(duì)各傳感器A?C的下次處理時(shí)刻42c設(shè)定時(shí)刻O。接下來,處理器30設(shè)定中斷向量等,使得在從RTC計(jì)時(shí)器50接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL2(S202)。進(jìn)而,處理器30為了進(jìn)行初次的數(shù)據(jù)取得處理,執(zhí)行中斷處理程序INTHL2(S203)。
[0098]在時(shí)刻O,首先,以RTC計(jì)時(shí)器50的當(dāng)前時(shí)刻設(shè)定內(nèi)部計(jì)時(shí)器31 (圖12: S220)。在時(shí)刻O,內(nèi)部計(jì)時(shí)器31的值沒有變化,保持時(shí)刻O的狀態(tài)。接下來,處理器30從管理表42取得ID=O的下次處理時(shí)刻(O),從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻(O),對(duì)當(dāng)前時(shí)刻(O)與下次處理時(shí)刻(O)進(jìn)行比較(S222)。由于當(dāng)前時(shí)刻(O)與下次處理時(shí)刻(O)—致,因此S222的判定為“是”。因此,處理器30執(zhí)行傳感器A數(shù)據(jù)取得處理RT23 (S223)。接下來,處理器30以下次處理時(shí)刻(0)+處理間隔(80) =80來更新ID = O的下次處理時(shí)刻(S224)。處理器30對(duì)ID=1、ID = 2也同樣地執(zhí)行傳感器B數(shù)據(jù)取得處理RT24、傳感器C數(shù)據(jù)取得處理RT25,更新各自的下次處理時(shí)刻。傳感器A?C的處理結(jié)束時(shí)的管理表42的狀態(tài)如圖9所示。接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT22(S226)。將處理間隔最小的ID = O的下次處理時(shí)刻=80設(shè)定到RTC觸發(fā)寄存器51。然后,在中斷處理程序INTHL2的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP2。應(yīng)用程序AP2將處理器30設(shè)為睡眠狀態(tài)。
[0099]接下來,在成為時(shí)刻80時(shí),RTC計(jì)時(shí)器50的計(jì)時(shí)器值與RTC觸發(fā)寄存器51的寄存器值( = 80)—致。由此,從RTC計(jì)時(shí)器50向PMU 20發(fā)布處理器喚醒請(qǐng)求,從RTC計(jì)時(shí)器50對(duì)處理器30通知中斷請(qǐng)求。由此,處理器30成為激活狀態(tài),執(zhí)行中斷處理程序INTHL2。
[0100]中斷處理程序INTHL2首先將內(nèi)部計(jì)時(shí)器31再次設(shè)定為RTC計(jì)時(shí)器50的當(dāng)前時(shí)刻=80(圖12: S220)。然后,處理器30對(duì)ID = O的下次處理時(shí)刻(80)與內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)刻
(80)進(jìn)行比較(S222)。由于當(dāng)前時(shí)刻(80)與下次處理時(shí)刻(80)—致(S222:是),所以處理器30執(zhí)行傳感器A數(shù)據(jù)取得處理RT23(S223)。接下來,處理器30以下次處理時(shí)刻(80)+處理間隔(80) = 160來更新ID = O的下次處理時(shí)刻(S224)。接下來,處理器30進(jìn)行針對(duì)ID= I的處理。此時(shí),ID = I的下次處理時(shí)刻=100。由于ID = I的下次處理時(shí)刻(100) >當(dāng)前時(shí)刻(80)(S222:否),所以處理器30不進(jìn)行針對(duì)ID=I的數(shù)據(jù)取得處理和下次處理時(shí)刻的更新。同樣,處理器30不進(jìn)行針對(duì)ID = 2的數(shù)據(jù)取得處理和下次處理時(shí)刻的更新。接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT22(S226)。將處理間隔最小的ID = O的下次處理時(shí)刻= 160設(shè)定到RTC觸發(fā)寄存器51。然后,在中斷處理程序INTHL2的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP2。應(yīng)用程序AP2將處理器30設(shè)為睡眠狀態(tài)。
[0101]接下來,在成為時(shí)刻160時(shí),RTC計(jì)時(shí)器50的計(jì)時(shí)器值與RTC觸發(fā)寄存器51的寄存器值( = 160)—致。由此,從RTC計(jì)時(shí)器50向PMU 20發(fā)布處理器喚醒請(qǐng)求,從RTC計(jì)時(shí)器50對(duì)處理器30發(fā)布中斷請(qǐng)求。由此,處理器30成為激活狀態(tài),執(zhí)行中斷處理程序INTHL2。
[0102]中斷處理程序INTHL2首先將內(nèi)部計(jì)時(shí)器31再次設(shè)定為RTC計(jì)時(shí)器50的當(dāng)前時(shí)刻=160(圖12: S220)。然后,處理器30對(duì)ID = O的下次處理時(shí)刻(160)與內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)亥lj(160)進(jìn)行比較(S222)。由于當(dāng)前時(shí)刻(160)與下次處理時(shí)刻(160)—致(S222:是),所以處理器30執(zhí)行傳感器A數(shù)據(jù)取得處理RT23(S223)。接下來,處理器30以下次處理時(shí)刻(160) +處理間隔(80) =240來更新ID = O的下次處理時(shí)刻(S224)。接下來,處理器30進(jìn)行針對(duì)ID= I的處理。此時(shí),ID = I的下次處理時(shí)刻=1 O,當(dāng)前時(shí)刻(16 O )>下次處理時(shí)刻(1 O)成立(S222:是),因此,處理器30執(zhí)行傳感器B數(shù)據(jù)取得處理RT24(S223)。接下來,處理器30以下次處理時(shí)刻(100)+處理間隔(100) = 200來更新ID = I的下次處理時(shí)刻(S224)。關(guān)于ID = 2,同樣地也是下次處理時(shí)刻= 125(S222:是),因此,進(jìn)行傳感器C數(shù)據(jù)取得處理RT25,以下次處理時(shí)刻(125)+處理間隔(125) = 250來更新下次處理時(shí)刻(S224)。接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT22(S226)。將處理間隔最小的ID = O的下次處理時(shí)刻= 240設(shè)定到RTC觸發(fā)寄存器51。然后,在中斷處理程序INTHL2的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP2。應(yīng)用程序AP2將處理器30設(shè)為睡眠狀態(tài)。
[0103]以下,同樣地,僅在時(shí)刻240、時(shí)刻320、時(shí)刻400、時(shí)刻480,將處理器30喚醒,在該各時(shí)刻為各ID的下次處理時(shí)刻以上的情況下,執(zhí)行各自的數(shù)據(jù)取得處理。
[0104]這樣,在第2實(shí)施方式中,通過計(jì)時(shí)器來管理傳感器數(shù)據(jù)的取得處理,因此,即使在傳感器不具有用于數(shù)據(jù)處理請(qǐng)求的中斷請(qǐng)求功能的情況下,也能夠降低處理器30的睡眠狀態(tài)與激活狀態(tài)的轉(zhuǎn)變次數(shù)。因此,能夠降低處理器30的功耗。
[0105](第3實(shí)施方式)
[0106]在第3實(shí)施方式中,設(shè)想同時(shí)存在具有中斷請(qǐng)求功能的傳感器和不具有中斷請(qǐng)求功能的傳感器的情況。
[0107]圖15示出第3實(shí)施方式的處理器系統(tǒng)120的功能模塊。處理器系統(tǒng)120連接有3個(gè)傳感器A、B、C。傳感器A具有中斷請(qǐng)求功能,以80msec間隔生成感測(cè)數(shù)據(jù)。傳感器B不具有中斷請(qǐng)求功能,以100msec間隔生成感測(cè)數(shù)據(jù)。傳感器B使用在第2實(shí)施方式中說明的計(jì)時(shí)器功能來設(shè)定處理間隔。傳感器C具有中斷請(qǐng)求功能,以125msec間隔生成感測(cè)數(shù)據(jù)。
[0108]處理器系統(tǒng)120具有INTC 10和RTC計(jì)時(shí)器50。INTC 10的功能和RTC計(jì)時(shí)器50的功能與在之前的第I實(shí)施方式或第2實(shí)施方式中說明的相同,省略重復(fù)的說明。處理器30具有內(nèi)部計(jì)時(shí)器31JMU 20管理針對(duì)處理器系統(tǒng)120中包含的INTC 10、處理器30、存儲(chǔ)器40、RTC計(jì)時(shí)器50等的電源供給。PMU 20按照來自INTC 10或RTC計(jì)時(shí)器50的請(qǐng)求將處理器30喚醒。
[0109]存儲(chǔ)器40保存管理表43、處理器30執(zhí)行的應(yīng)用程序AP3、中斷處理程序INTHL3、管理表登記例程RT31、喚醒觸發(fā)設(shè)定例程RT32、傳感器A數(shù)據(jù)取得處理RT33、傳感器B數(shù)據(jù)取得處理RT34、傳感器C數(shù)據(jù)取得處理RT35、內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT36。
[0110]圖16是用于說明管理表43的數(shù)據(jù)結(jié)構(gòu)的圖。管理表43保存使傳感器ID、數(shù)據(jù)取得處理的入口地址43a、處理間隔43b、下次處理時(shí)刻(next_proc) 43c、觸發(fā)類型43d成組的管理信息。觸發(fā)類型43d區(qū)分是根據(jù)來自傳感器的中斷請(qǐng)求進(jìn)行數(shù)據(jù)取得處理(int)還是根據(jù)由計(jì)時(shí)器(timer)管理的時(shí)間間隔來進(jìn)行數(shù)據(jù)取得處理。處理器30在處理器系統(tǒng)120啟動(dòng)時(shí)進(jìn)行管理表43的設(shè)定處理。
[0111]以下,對(duì)第3實(shí)施方式的工作進(jìn)行詳細(xì)說明。圖17是示出應(yīng)用程序AP3的工作步驟的流程圖。在處理器系統(tǒng)120啟動(dòng)時(shí),處理器30執(zhí)行應(yīng)用程序AP3。應(yīng)用程序AP3使傳感器A、
8、(:初始化(3300)。
[0112]接下來,處理器30執(zhí)行管理表登記例程RT31(S301)。圖18是示出管理表登記例程RT31的流程圖。首先,對(duì)各傳感器ID設(shè)定入口地址43a、處理間隔43b、觸發(fā)類型43d(圖18:S310)。接下來,處理器30對(duì)各傳感器ID的下次處理時(shí)刻(next_proc)43c設(shè)定下次處理時(shí)亥IJ。在執(zhí)行管理表登記例程RT31時(shí),處理器30對(duì)下次處理時(shí)刻43c設(shè)定從內(nèi)部計(jì)時(shí)器31取得的當(dāng)前時(shí)刻(時(shí)刻0)(S311)。
[0113]處理器30設(shè)定中斷向量等,使得在從INTC 10接收到中斷請(qǐng)求或從RTC計(jì)時(shí)器50接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL3 (圖17: S302)。接下來,處理器30執(zhí)行中斷處理程序INTHL3(S303)。然后,應(yīng)用程序AP3將處理器30設(shè)為睡眠狀態(tài)(S304)。
[0114]圖19是示出中斷處理程序INTHL3的工作步驟的流程圖。中斷處理程序INTHL3首先執(zhí)行內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT36(S320)。內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT36與圖13所示的步驟同樣。接下來,中斷處理程序INTHL3取得中斷通知寄存器11的寄存器值(S321)。中斷處理程序INTHL3參照取得的寄存器值,檢查是否從傳感器A?C產(chǎn)生了中斷請(qǐng)求(S322)。在存在中斷請(qǐng)求的情況下(S322:是),中斷處理程序INTHL3從管理表43取得與發(fā)布中斷請(qǐng)求的傳感器ID對(duì)應(yīng)的入口地址(S323),執(zhí)行由取得的入口地址指定的數(shù)據(jù)取得處理(S324)。然后,中斷處理程序INTHL3將對(duì)應(yīng)的傳感器ID的中斷標(biāo)志位從“I”清除為“O” (S325)。接下來,中斷處理程序INTHL3以對(duì)存在中斷請(qǐng)求的傳感器ID的下次處理時(shí)刻43c加上處理間隔43b而得到的值來更新該傳感器ID的下次處理時(shí)刻(S326)。中斷處理程序INTHL3,判定是否執(zhí)行了針對(duì)觸發(fā)類型為中斷且中斷標(biāo)志位為“I”的全部傳感器ID的數(shù)據(jù)取得處理(S327)。在判定結(jié)果為“否”的情況下,對(duì)中斷標(biāo)志位為“I”的傳感器ID執(zhí)行上述同樣的處理。
[0115]接下來,中斷處理程序INTHL3從管理表43取得觸發(fā)類型為計(jì)時(shí)器的傳感器ID的入口地址43a、下次處理時(shí)刻43c(S328)。接下來,中斷處理程序INTHL3對(duì)內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)刻與S328中取得的傳感器ID的下次處理時(shí)刻43c進(jìn)行比較(S329)。中斷處理程序INTHL3在該傳感器ID的下次處理時(shí)刻43c為當(dāng)前時(shí)刻以下的情況下(S329:是),執(zhí)行由該傳感器ID的入口地址指定的數(shù)據(jù)取得處理(S330)。接下來,中斷處理程序INTHL3以對(duì)該傳感器ID的下次處理時(shí)刻加上處理間隔43b而得到的值來更新下次處理時(shí)刻(S331)。中斷處理程序INTHL3判定針對(duì)觸發(fā)類型為計(jì)時(shí)器的全部傳感器ID的處理是否結(jié)束(S332),在判定結(jié)果為“否”的情況下,對(duì)觸發(fā)類型為計(jì)時(shí)器的全部傳感器執(zhí)行S328?S332的處理。在對(duì)觸發(fā)類型為計(jì)時(shí)器的全部傳感器結(jié)束了處理(S332:是)時(shí),中斷處理程序INTHL3執(zhí)行喚醒觸發(fā)設(shè)定例程 RT32(S333)。
[0116]圖20是示出喚醒觸發(fā)設(shè)定例程RT32的流程圖。處理器30從管理表43取得處理間隔最小的傳感器ID(S340)。在該情況下,為傳感器A(ID = O)。接下來,處理器30判別取得的傳感器ID的觸發(fā)類型是中斷還是計(jì)時(shí)器(S341)。在觸發(fā)類型為中斷的情況下(S341:是),處理器30設(shè)定喚醒觸發(fā)寄存器12,使得:僅在存在來自具有取得的ID的傳感器的中斷處理請(qǐng)求時(shí),從INTC 10對(duì)PMU 20發(fā)布處理器喚醒請(qǐng)求(S342)。即,處理器30將取得的傳感器ID的喚醒觸發(fā)標(biāo)志位設(shè)為“I”。另外,在觸發(fā)類型為計(jì)時(shí)器的情況下(S341:否),通過取得的傳感器ID的下次處理時(shí)刻來設(shè)定RTC觸發(fā)寄存器51 (S343)。
[0117]接下來,參照?qǐng)D3的(B)的時(shí)間圖等,對(duì)處理器系統(tǒng)120的工作更詳細(xì)地進(jìn)行說明。在處理器系統(tǒng)120啟動(dòng)后,執(zhí)行應(yīng)用程序AP3 ο處理器30使傳感器A、B、C初始化(圖17: S300)。接下來,處理器30對(duì)管理表43設(shè)定各傳感器A?C的管理信息(S301)。關(guān)于傳感器A,設(shè)定了ID = 0、entry address = Ox1100、interval = 80、trigger type = int、next_proc = 0o 關(guān)于傳感器B,設(shè)定了ID= Kentry address = Ox1200、interval = 100、trigger type = timer、next_proc = 0。關(guān)于傳感器C,設(shè)定了 ID = 2、entry address = 0x1300、interval = 125、trigger type = int、next_proc = 0。接下來,處理器30設(shè)定中斷向量等,使得在從INTC 10或RTC計(jì)時(shí)器50接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL3(S302)。進(jìn)而,處理器30為了進(jìn)行初次的數(shù)據(jù)取得處理,執(zhí)行中斷處理程序INTHL3 (S303)。
[0118]在作為感測(cè)開始時(shí)刻的時(shí)刻0,進(jìn)行各傳感器A?C的感測(cè),生成數(shù)據(jù)。中斷處理程序INTHL3進(jìn)行內(nèi)部計(jì)時(shí)器31的再次設(shè)定(圖19: S320)。在時(shí)刻O,內(nèi)部計(jì)時(shí)器31的值沒有變化,保持時(shí)刻O的狀態(tài)。接下來,處理器30取得中斷通知寄存器11的寄存器值(S321)。在時(shí)刻O,從傳感器AC產(chǎn)生中斷請(qǐng)求,因此,寄存器值為(101)。由于中斷通知寄存器11的寄存器值中存在“1”,因此中斷處理程序INTHL3執(zhí)行數(shù)據(jù)取得處理。首先,中斷處理程序INTHL3通過比特位位置確定存在中斷請(qǐng)求的傳感器ID。在該情況下,首先選擇ID = 0。中斷處理程序INTHL3從管理表43取得ID = O的入口地址0xll00(S323),執(zhí)行存儲(chǔ)器40的入口地址0x1100中保存的傳感器A數(shù)據(jù)取得處理RT33(S324)。接下來,中斷處理程序INTHL3將ID = O的中斷標(biāo)志位清除為“O”(S325)。進(jìn)而,中斷處理程序INTHL3將下次處理時(shí)刻更新為80( =下次處理時(shí)刻(O) +處理間隔(80)) (S326)。同樣地,確定ID = 2,執(zhí)行傳感器C數(shù)據(jù)取得處理RT35,進(jìn)而,將ID = 2的中斷標(biāo)志位清除為“O”,進(jìn)而,執(zhí)行下次處理時(shí)刻的更新(通過0+125=125來更新)。
[0119]接下來,處理器30取得觸發(fā)類型為計(jì)時(shí)器的ID = I的管理信息(S328)。處理器30對(duì)ID = I的下次處理時(shí)刻(O)與內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)刻(O)進(jìn)行比較(S329)。當(dāng)前時(shí)刻(O)與下次處理時(shí)刻(O)—致(S329:是),因此,處理器30執(zhí)行傳感器B數(shù)據(jù)取得處理RT34(S330)。處理器30然后以下次處理時(shí)刻(O)+處理間隔(100) = 100來更新ID= I的下次處理時(shí)刻(S331)。通過以上所述,對(duì)觸發(fā)類型為計(jì)時(shí)器的全部傳感器ID進(jìn)行了處理,因此,接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT32(S333)。處理器30選擇處理間隔最小的ID = 0(圖20:S340),確認(rèn)ID = O的觸發(fā)類型為中斷(圖20: S341:是),將喚醒觸發(fā)寄存器12的ID = O的比特位設(shè)為“I”(S342) ο由此,喚醒觸發(fā)寄存器12被設(shè)定為(100)。
[0120]接下來,在時(shí)刻80,從傳感器A發(fā)布中斷請(qǐng)求。由此,中斷通知寄存器11的寄存器值為(100),INTC 10通過電平信號(hào)向處理器30發(fā)布中斷通知。INTC 10檢查喚醒觸發(fā)寄存器12中為“I”的比特位在中斷通知寄存器11中是否為“I”。在該情況下,判定結(jié)果為“是”,INTC10向PMU20請(qǐng)求喚醒處理器30IMU 20在從INTC 10接收到處理器喚醒請(qǐng)求時(shí),將處理器30喚醒。處理器30在被喚醒時(shí)從INTC 10接收到中斷的通知,因此,處理器30執(zhí)行中斷處理程序INTHL3。
[0121]中斷處理程序INTHL3進(jìn)行內(nèi)部計(jì)時(shí)器31的再次設(shè)定。然后,處理器30按照中斷通知寄存器11的寄存器值(100),執(zhí)行傳感器A數(shù)據(jù)取得處理RT33,以160(=80+80)來更新ID=0的下次處理時(shí)刻。接下來,處理器30取得ID = I的管理信息。在時(shí)刻80,當(dāng)前時(shí)刻(80)不為下次處理時(shí)刻(100)以上,因此,處理器30不進(jìn)行數(shù)據(jù)取得處理。然后,執(zhí)行喚醒觸發(fā)設(shè)定例程RT32,處理器30轉(zhuǎn)變到睡眠狀態(tài)。
[0122]接下來,在時(shí)刻125,從傳感器C發(fā)布中斷請(qǐng)求。由此,中斷通知寄存器11的寄存器值成為(001)。但是,與傳感器C對(duì)應(yīng)ID = 2的比特位在兩個(gè)寄存器11、12中不為“I”,因此,INTC 10不向PMU 20發(fā)布處理器喚醒請(qǐng)求。因此,處理器30保持睡眠狀態(tài),不進(jìn)行傳感器C的數(shù)據(jù)的取得處理。
[0123]接下來,在時(shí)刻160從傳感器A發(fā)布中斷請(qǐng)求。由此,中斷通知寄存器11的寄存器值成為(101)。與傳感器A對(duì)應(yīng)的ID = O的比特位在兩個(gè)寄存器11、12中為“I”,因此,INTC 10向PMU 20請(qǐng)求喚醒處理器30 WMU 20在從INTC 10接收到處理器喚醒請(qǐng)求時(shí),將處理器30喚醒。處理器30在被喚醒時(shí),從INTC 10接收到中斷通知,因此,執(zhí)行中斷處理程序INTHL3。中斷處理程序INTHL3在再次設(shè)定內(nèi)部計(jì)時(shí)器31后,按照中斷通知寄存器11的寄存器值(101),執(zhí)行ID = O和ID = 2的數(shù)據(jù)取得處理和下次處理時(shí)刻的更新。
[0124]接下來,處理器30取得ID= I的管理信息。處理器30對(duì)ID= I的下次處理時(shí)刻(100)與內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)刻(160)進(jìn)行比較。當(dāng)前時(shí)刻(160)為下次處理時(shí)刻(100)以上的條件成立,因此,處理器30執(zhí)行ID = I的數(shù)據(jù)取得處理,然后進(jìn)行下次處理時(shí)刻的更新。接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT32,選擇處理間隔最小的ID = 0,將喚醒觸發(fā)寄存器12設(shè)定為(100)。然后,處理器30轉(zhuǎn)變到睡眠狀態(tài)。此外,在喚醒觸發(fā)設(shè)定例程RT32中始終對(duì)喚醒觸發(fā)寄存器12覆蓋設(shè)定相同的寄存器值的情況下,也可以省略第2次以后的S330的處理。
[0125]以下,同樣地,僅在時(shí)刻240、時(shí)刻320、時(shí)刻400、時(shí)刻480,將處理器30喚醒,在各個(gè)時(shí)刻,觸發(fā)類型為中斷的傳感器按照中斷通知寄存器11的值,執(zhí)行數(shù)據(jù)取得處理,觸發(fā)類型為計(jì)時(shí)器的傳感器按照下次處理時(shí)刻的值,執(zhí)行數(shù)據(jù)取得處理。
[0126](第3實(shí)施方式的變形例)
[0127]在該變形例中,設(shè)想具有最小的處理間隔的傳感器不具有中斷請(qǐng)求功能而通過計(jì)時(shí)器來決定處理間隔的情況。傳感器A以最小的80msec間隔生成感測(cè)數(shù)據(jù),不具有中斷請(qǐng)求功能。傳感器B以10msec間隔生成感測(cè)數(shù)據(jù),不具有中斷請(qǐng)求功能。傳感器C以125msec間隔生成感測(cè)數(shù)據(jù),具有中斷請(qǐng)求功能。
[0128]參照?qǐng)D3的(B)的時(shí)間圖等,對(duì)處理器系統(tǒng)120的工作更詳細(xì)地進(jìn)行說明。處理器系統(tǒng)120啟動(dòng)后,執(zhí)行應(yīng)用程序AP3。處理器30使傳感器A、B、C初始化(圖17: S300)。接下來,處理器30對(duì)管理表43設(shè)定各傳感器A?C的管理信息(S301)。關(guān)于傳感器A,設(shè)定了 ID = 0、entry address = Ox1100、interval = 80、trigger type = timer、next_proc = 0o關(guān)于傳感器B,設(shè)定 T ID= K entry address = 0x1200、interval = 100、trigger type = timer、next_proc = 0。關(guān)于傳感器C,設(shè)定了 ID = 2、entry address = Oxl300、interval = 125、triggertype = int、next_proc = 0。接下來,處理器30設(shè)定中斷向量等,使得在從INTC 10或RTC計(jì)時(shí)器50接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL3(S302)。進(jìn)而,處理器30為了進(jìn)行初次的數(shù)據(jù)取得處理,執(zhí)行中斷處理程序INTHL3(S303)。
[0129]在時(shí)刻O進(jìn)行各傳感器A?C的感測(cè),生成數(shù)據(jù)。中斷處理程序INTHL3進(jìn)行內(nèi)部計(jì)時(shí)器31的設(shè)定(圖19: S320)。在時(shí)刻O,內(nèi)部計(jì)時(shí)器31的值沒有變化,保持時(shí)刻O的狀態(tài)。接下來,處理器30取得中斷通知寄存器11的寄存器值。在時(shí)刻O,從傳感器C產(chǎn)生中斷請(qǐng)求,因此,寄存器值為(001)。中斷處理程序INTHL3執(zhí)行ID = 2的數(shù)據(jù)取得處理。中斷處理程序INTHL3從管理表43取得ID = 2的入口地址0xl300(S323),執(zhí)行由存儲(chǔ)器40的入口地址0x1300指定的傳感器C數(shù)據(jù)取得處理RT35(S324)。接下來,中斷處理程序INTHL3將ID = 2的中斷標(biāo)志位清除為“O”(S325)。此外,中斷處理程序INTHL3將下次處理時(shí)刻更新為125(=下次處理時(shí)刻(0)+處理間隔(125))(S326)。
[0130]接下來,處理器30取得觸發(fā)類型為計(jì)時(shí)器的ID = O的管理信息(S328)。處理器30對(duì)ID = O的下次處理時(shí)刻(O)與內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)刻(O)進(jìn)行比較(S329)。當(dāng)前時(shí)刻(O)與下次處理時(shí)刻(O)—致(S329:是),因此,處理器30執(zhí)行傳感器A數(shù)據(jù)取得處理RT33(S330)。處理器30然后以下次處理時(shí)刻(O)+處理間隔(80 )=80來更新ID = O的下次處理時(shí)刻(S331)0
[0131]接下來,處理器30取得ID= I的管理信息(S328)。處理器30對(duì)ID= I的下次處理時(shí)亥IJ (O)與內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)刻(O)進(jìn)行比較(S329)。當(dāng)前時(shí)刻(O)與下次處理時(shí)刻(O) —致(S329:是),因此,處理器30執(zhí)行傳感器B數(shù)據(jù)取得處理RT34(S330)。處理器30然后以下次處理時(shí)刻(O) +處理間隔(100) = 100來更新ID = I的下次處理時(shí)刻(S331)。通過以上所述,對(duì)觸發(fā)類型為計(jì)時(shí)器的全部傳感器ID進(jìn)行了處理,因此,接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT32(S333)。由此,處理器30選擇處理間隔最小的ID = 0(圖20:S340),對(duì)RTC觸發(fā)寄存器51設(shè)定ID = O的下次處理時(shí)刻(80) (S343)。
[0132]接下來,在時(shí)刻80,RTC計(jì)時(shí)器50向PMU 20發(fā)布處理器喚醒請(qǐng)求,向處理器30發(fā)布中斷請(qǐng)求。PMU 20將處理器30喚醒。由此,處理器30成為激活狀態(tài),根據(jù)來自RTC計(jì)時(shí)器50的中斷請(qǐng)求,執(zhí)行中斷處理程序INTHL3。
[0133]中斷處理程序INTHL3將內(nèi)部計(jì)時(shí)器31再次設(shè)定為RTC計(jì)時(shí)器50的當(dāng)前時(shí)刻=80(S320)。然后,處理器30取得中斷通知寄存器11的值。此時(shí),中斷通知寄存器11的寄存器值為(000),沒有發(fā)布中斷請(qǐng)求(S322:否)。因此,處理器30根據(jù)管理表43來對(duì)ID = O的下次處理時(shí)刻(80)與內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)刻(80)進(jìn)行比較(S329)。當(dāng)前時(shí)刻(80)與下次處理時(shí)刻(80) —致(S329:是),因此,處理器30執(zhí)行傳感器A數(shù)據(jù)取得處理RT33 (S330)。進(jìn)而,處理器30以下次處理時(shí)刻(80)+處理間隔(80) = 160來更新ID = O的下次處理時(shí)刻(S331)。接下來,處理器30進(jìn)行針對(duì)ID=I的處理。此時(shí),ID = I的下次處理時(shí)刻=100。ID = I的下次處理時(shí)刻(100)不為當(dāng)前時(shí)刻(80)以下(S329:否),因此處理器30不進(jìn)行針對(duì)ID= I的數(shù)據(jù)取得處理和下次處理時(shí)刻的更新。接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT32(S333)。將處理間隔最小的ID = O的下次處理時(shí)刻= 160設(shè)定到RTC觸發(fā)寄存器51。然后,在中斷處理程序INTHL3的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP3。應(yīng)用程序AP3將處理器30設(shè)為睡眠狀態(tài)。
[0134]接下來,在時(shí)刻125,從傳感器C發(fā)布中斷請(qǐng)求。由此,中斷通知寄存器11的寄存器值成為(001)。與傳感器C對(duì)應(yīng)的ID = 2的比特位在兩個(gè)寄存器11、12中不為“I”,因此,INTC10不對(duì)PMU 20發(fā)布處理器喚醒請(qǐng)求。因此,處理器30保持睡眠狀態(tài),不進(jìn)行傳感器C的數(shù)據(jù)的取得處理。
[0135]在時(shí)刻160,RTC計(jì)時(shí)器50向PMU 20發(fā)布處理器喚醒請(qǐng)求,向處理器30通知中斷請(qǐng)求。PMU 20將處理器30喚醒。由此,處理器30成為激活狀態(tài),根據(jù)來自RTC計(jì)時(shí)器50的中斷請(qǐng)求,執(zhí)行中斷處理程序INTHL3。
[0136]中斷處理程序INTHL3將內(nèi)部計(jì)時(shí)器31再次設(shè)定為RTC計(jì)時(shí)器50的當(dāng)前時(shí)刻=160(S320)。然后,處理器30取得中斷通知寄存器11的值。此時(shí),中斷通知寄存器11的寄存器值為(001)。因此,中斷處理程序INTHL3從管理表43取得ID = 2的入口地址0xl300(S323),執(zhí)行由存儲(chǔ)器40的入口地址0x1300指定的傳感器C數(shù)據(jù)取得處理RT35(S324)。進(jìn)而,中斷處理程序INTHL3將ID = 2的中斷標(biāo)志位清除為“0”(S325)。進(jìn)而,中斷處理程序INTHL3進(jìn)行下次處理時(shí)刻的更新(S326)。
[0137]接下來,處理器30根據(jù)管理表43對(duì)ID = 0的下次處理時(shí)刻(160)與內(nèi)部計(jì)時(shí)器31的當(dāng)前時(shí)刻(160)進(jìn)行比較(S329)。當(dāng)前時(shí)刻(I60)與下次處理時(shí)刻(160) —致,因此,處理器30執(zhí)行傳感器A數(shù)據(jù)取得處理RT33(S330)。進(jìn)而,處理器30以下次處理時(shí)刻(160)+處理間隔(80 ) = 240來更新ID = O的下次處理時(shí)刻(S331)。接下來,處理器30進(jìn)行針對(duì)ID = I的處理。此時(shí),ID = I的下次處理時(shí)刻= 100 JD = I的下次處理時(shí)刻(100)為當(dāng)前時(shí)刻(160)以下,因此,處理器30執(zhí)行傳感器B數(shù)據(jù)取得處理RT34 (S330)。進(jìn)而,處理器30以下次處理時(shí)刻(100)+處理間隔(100) = 200來更新ID= I的下次處理時(shí)刻(S331)。接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT32(S333)。將處理間隔最小的ID = O的下次處理時(shí)刻= 240設(shè)定到RTC觸發(fā)寄存器51。然后,在中斷處理程序INTHL3的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP3。應(yīng)用程序AP3將處理器30設(shè)為睡眠狀態(tài)。
[0138]以下,同樣地,僅在時(shí)刻240、時(shí)刻320、時(shí)刻400、時(shí)刻480,將處理器30喚醒,在各個(gè)時(shí)刻,觸發(fā)類型為中斷的傳感器根據(jù)中斷通知寄存器11的值來執(zhí)行數(shù)據(jù)取得處理,觸發(fā)類型為計(jì)時(shí)器的傳感器按照下次處理時(shí)刻的值來執(zhí)行數(shù)據(jù)取得處理。
[0139]這樣,在第3實(shí)施方式中,即使在同時(shí)存在具有發(fā)布中斷請(qǐng)求的功能的傳感器和不具有所述功能的傳感器的情況下,也能夠更長(zhǎng)時(shí)間地將處理器30設(shè)為睡眠狀態(tài),能夠降低功耗。
[0140](第4實(shí)施方式)
[0141]第I?第3實(shí)施方式的傳感器A?C存在數(shù)據(jù)有效時(shí)間與數(shù)據(jù)取得間隔相等這樣的前提。在存在該前提的情況下,通過基于最小數(shù)據(jù)取得間隔進(jìn)行處理器30的喚醒,不會(huì)漏取傳感器數(shù)據(jù)。但是,在存在數(shù)據(jù)有效時(shí)間比數(shù)據(jù)取得間隔短的傳感器的情況下,在基于最小數(shù)據(jù)取得間隔進(jìn)行處理器30的喚醒的控制方法中,有可能會(huì)漏取數(shù)據(jù)。
[0142]例如,設(shè)為傳感器在內(nèi)部具有積累存儲(chǔ)傳感器數(shù)據(jù)的FIF0(FirstIn FirstOut:先入先出)。設(shè)為處理器30在FIFO被傳感器數(shù)據(jù)充滿后取得FIFO的全部數(shù)據(jù)。在該情況下,數(shù)據(jù)取得間隔為FIFO從空的狀態(tài)到充滿為止的期間,數(shù)據(jù)有效時(shí)間為FIFO從充滿起到生成下一數(shù)據(jù)并保存到FIFO為止的期間。若在數(shù)據(jù)有效期間之后取得數(shù)據(jù),則FIFO的一部分?jǐn)?shù)據(jù)會(huì)被覆蓋寫入,產(chǎn)生數(shù)據(jù)的漏取。第4?第6實(shí)施方式對(duì)這樣的情況也能夠應(yīng)對(duì)。
[0143]圖21示出了基于最小數(shù)據(jù)取得間隔進(jìn)行處理器30的喚醒的情況下發(fā)生數(shù)據(jù)漏取的一例。向上的箭頭表示生成感測(cè)數(shù)據(jù)的時(shí)刻。向下的箭頭表示感測(cè)數(shù)據(jù)的失效時(shí)刻。在圖21中,傳感器B以100msec間隔生成感測(cè)數(shù)據(jù)。傳感器B在內(nèi)部具有FIFO,數(shù)據(jù)有效期間為25msec,比處理間隔100msec短。因此,關(guān)于傳感器B,從數(shù)據(jù)的生成起到失效為止的期間表示該感測(cè)周期中的數(shù)據(jù)有效期間,必須在該數(shù)據(jù)有效期間取得數(shù)據(jù)。在圖21的例中,處理器基于作為最小數(shù)據(jù)取得間隔的傳感器A的處理間隔80msec間隔進(jìn)行數(shù)據(jù)取得處理,因此,在由miss所示的部位發(fā)生傳感器B的數(shù)據(jù)的漏取。
[0144]圖22示出第4實(shí)施方式的處理器系統(tǒng)130的功能模塊。處理器系統(tǒng)130連接有3個(gè)傳感器A、B、C。傳感器A以80msec間隔生成感測(cè)數(shù)據(jù),數(shù)據(jù)有效時(shí)間為與處理間隔相同的80msec。傳感器B以100msec間隔生成感測(cè)數(shù)據(jù)。傳感器B在內(nèi)部具有FIFO,數(shù)據(jù)有效期間為25msec。傳感器C以125msec間隔生成感測(cè)數(shù)據(jù),數(shù)據(jù)有效時(shí)間為與處理間隔相同的125msec。傳感器A?C具有中斷請(qǐng)求功能。
[0145]處理器系統(tǒng)130具有INTC 10和RTC計(jì)時(shí)器50。INTC 10的功能與在之前的實(shí)施方式中說明的相同,省略重復(fù)的說明。RTC計(jì)時(shí)器50具有計(jì)時(shí)器功能,但不是向PMU 20發(fā)布處理器喚醒請(qǐng)求。處理器30具有內(nèi)部計(jì)時(shí)器31 WMU 20管理針對(duì)處理器系統(tǒng)130中包含的INTC
10、處理器30、存儲(chǔ)器40、RTC計(jì)時(shí)器50等的電源供給。PMU 20按照來自INTC 10的請(qǐng)求將處理器30喚醒。
[0146]存儲(chǔ)器40保存管理表44、處理器30執(zhí)行的應(yīng)用程序AP4、中斷處理程序INTHL4、管理表登記例程RT41、喚醒觸發(fā)設(shè)定例程RT42、傳感器A數(shù)據(jù)取得處理RT43、傳感器B數(shù)據(jù)取得處理RT44、傳感器C數(shù)據(jù)取得處理RT45、內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT46。
[0147]圖23是用于說明管理表44的數(shù)據(jù)結(jié)構(gòu)的圖。管理表44具有使傳感器ID、數(shù)據(jù)取得處理的入口地址44a、處理間隔44b、下次處理時(shí)刻(next_proc ) 44c、數(shù)據(jù)有效期間(lifetime)44e、下次失效時(shí)刻(next_deadline)44f成組的管理信息。數(shù)據(jù)有效期間44e表示在各感測(cè)周期中傳感器數(shù)據(jù)自生成起為有效的期間。下次失效時(shí)刻44f表示下次的傳感器數(shù)據(jù)的失效時(shí)刻。處理器30在處理器系統(tǒng)130啟動(dòng)時(shí)進(jìn)行管理表44的設(shè)定處理。
[0148]圖24是示出比較例和第4實(shí)施方式的傳感器數(shù)據(jù)取得處理的時(shí)間圖。在圖24中,傳感器A?C是與圖21同樣的時(shí)間圖。在比較例中,除了在最小的數(shù)據(jù)取得間隔(傳感器A的取得間隔)之外,還在時(shí)刻100和時(shí)刻200將處理器喚醒。在比較例中,從時(shí)刻O到時(shí)刻500為止,處理器喚醒9次。在第4實(shí)施方式中,基于處理間隔和數(shù)據(jù)有效時(shí)間,動(dòng)態(tài)地改變喚醒處理器的時(shí)機(jī)。在第4實(shí)施方式中,從時(shí)刻O到時(shí)刻500為止,處理器30喚醒6次。這樣,在第4實(shí)施方式中,與比較例相比,能夠降低狀態(tài)轉(zhuǎn)變次數(shù)(喚醒次數(shù))。
[0149]以下,對(duì)第4實(shí)施方式的工作進(jìn)行詳細(xì)說明。圖25是示出應(yīng)用程序AP4的工作步驟的流程圖。在處理器系統(tǒng)130啟動(dòng)時(shí),處理器30執(zhí)行應(yīng)用程序AP4。應(yīng)用程序AP4使傳感器A、8、(:初始化(3400)。
[0150]接下來,處理器30執(zhí)行管理表登記例程RT41(S401)。圖26是示出管理表登記例程RT31的流程圖。首先,對(duì)各傳感器ID設(shè)定入口地址44a、處理間隔44b、數(shù)據(jù)有效期間44e(圖26:S410)。接下來,處理器30對(duì)各傳感器ID的下次處理時(shí)刻44c設(shè)定下次處理時(shí)刻。在執(zhí)行管理表登記例程RT41時(shí),處理器30對(duì)下次處理時(shí)刻44c設(shè)定從內(nèi)部計(jì)時(shí)器31取得的當(dāng)前時(shí)刻(時(shí)刻0)(3411)。
[0151]處理器30設(shè)定中斷向量等,使得在接收到來自INTC 10的中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL4(圖25:S402)。接下來,處理器30執(zhí)行中斷處理程序INTHL4(S403)。然后,應(yīng)用程序AP4將處理器30設(shè)為睡眠狀態(tài)(S404)。
[0152]圖27是示出中斷處理程序INTHL4的工作步驟的流程圖。中斷處理程序INTHL4執(zhí)行內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT46(S420)。該內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT46與圖13所示的步驟同樣。即,處理器30將從RTC計(jì)時(shí)器50取得的當(dāng)前時(shí)刻設(shè)定為內(nèi)部計(jì)時(shí)器31的時(shí)刻。接下來,中斷處理程序INTHL4取得中斷通知寄存器11的寄存器值(S421)。中斷處理程序INTHL4參照取得的寄存器值,檢查是否從傳感器A?C產(chǎn)生了中斷請(qǐng)求(S422) ο在存在中斷請(qǐng)求的情況下(S422:是),中斷處理程序INTHL4從管理表44取得與發(fā)布中斷請(qǐng)求的傳感器ID對(duì)應(yīng)的數(shù)據(jù)取得處理的入口地址(S423),執(zhí)行由取得的入口地址指定的數(shù)據(jù)取得處理(S424)。進(jìn)而,中斷處理程序INTHL4將對(duì)應(yīng)的傳感器ID的中斷標(biāo)志位從“I”清除為“O” (S425)。中斷處理程序INTHL4判定是否執(zhí)行了針對(duì)中斷標(biāo)志位為“I”的全部傳感器ID的數(shù)據(jù)取得處理(S426)。在判定結(jié)果為“否”的情況下,對(duì)中斷標(biāo)志位為“I”的全部傳感器ID執(zhí)行上述同樣的處理。接下來,中斷處理程序INTHL4執(zhí)行喚醒觸發(fā)設(shè)定例程RT42(S427)。
[0153]圖28是示出喚醒觸發(fā)設(shè)定例程RT42的流程圖。處理器30從管理表44取得處理間隔44b、下次處理時(shí)刻44c、數(shù)據(jù)有效期間44e、下次失效時(shí)刻44f (S430)。接下來,處理器30從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻(S431)。進(jìn)而,處理器30對(duì)每個(gè)傳感器ID執(zhí)行以下的處理。處理器30判定取得的當(dāng)前時(shí)刻是否為更新前的下次處理時(shí)刻以上(S432)。此外,該判定結(jié)果為“是”表示處理器30能夠在睡眠狀態(tài)中取得傳感器數(shù)據(jù)。該條件成立的傳感器通過圖27的S424進(jìn)行數(shù)據(jù)取得處理。因此,也可以取代S432,通過識(shí)別中斷通知寄存器11的寄存器值為“I”的傳感器,確定能夠在睡眠狀態(tài)中取得傳感器數(shù)據(jù)的傳感器。
[0154]處理器30在S432為“是”的情況下,以對(duì)更新前的下次處理時(shí)刻44c加上處理間隔44b而得到的值來更新下次處理時(shí)刻44c(S433)。另外,處理器30以對(duì)更新后的下次處理時(shí)亥丨J44c加上數(shù)據(jù)有效期間44e而得到的值來更新下次失效時(shí)刻44f(S434)。對(duì)全部傳感器ID反復(fù)執(zhí)行這樣的處理(S432?S435)。接下來,處理器30在全部傳感器ID中判定下次失效時(shí)刻的最小值,取得具有比該最小值小的下次處理時(shí)刻中的最大(晚)的下次處理時(shí)刻的傳感器ID(S436)。接下來,處理器30設(shè)定喚醒觸發(fā)寄存器12,使得:僅在存在來自具有取得的ID的傳感器的中斷處理請(qǐng)求時(shí),從INTC 10對(duì)PMU 20發(fā)布處理器喚醒請(qǐng)求(S437)。即,處理器30將取得的傳感器ID的喚醒觸發(fā)標(biāo)志位設(shè)為“I”。
[0155]這樣,在第4實(shí)施方式中,每當(dāng)執(zhí)行中斷處理程序INTHL4時(shí),一定執(zhí)行喚醒觸發(fā)設(shè)定例程RT42。由此,在第4實(shí)施方式中,動(dòng)態(tài)地變更對(duì)喚醒觸發(fā)寄存器12設(shè)定的傳感器ID。
[0156]接下來,參照?qǐng)D24的時(shí)間圖等,對(duì)處理器系統(tǒng)130的工作更詳細(xì)地進(jìn)行說明。處理器系統(tǒng)130啟動(dòng)后,執(zhí)行應(yīng)用程序AP4。處理器30使傳感器A、B、C初始化(圖25:S400)。接下來,處理器30對(duì)管理表44設(shè)定各傳感器A?C的管理信息(S401)。關(guān)于傳感器A,設(shè)定了 ID =O N entry address = Oxl 100、interval = 80、next_proc = CKlifetime = 80、next_deadline=0。關(guān)于傳感器B,設(shè)定了ID = 1、entry address = Ox1200、interval = 100、next_proc = 0、lifetime = 25、next_deadline = 0。關(guān)于傳感器C,設(shè)定了ID = 2、entry address = 0x1300、interval = 125、next_proc = 0、lifetime = 125、next_deadline = 0。接下來,處理器 30 設(shè)定中斷向量等,使得在從INTC 10接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL4(S402)。進(jìn)而,處理器30為了進(jìn)行初次的數(shù)據(jù)取得處理,執(zhí)行中斷處理程序INTHL4(S403)。
[0157]在時(shí)刻O進(jìn)行各傳感器A?C的感測(cè),生成數(shù)據(jù)。中斷處理程序INTHL4進(jìn)行內(nèi)部計(jì)時(shí)器31的再次設(shè)定(圖27:S420)。在時(shí)刻O,內(nèi)部計(jì)時(shí)器31的值保持為O。接下來,處理器30取得中斷通知寄存器11的寄存器值。在時(shí)刻O,從傳感器A?C產(chǎn)生中斷請(qǐng)求,因此,寄存器值為(111)。中斷處理程序INTHL4執(zhí)行數(shù)據(jù)取得處理。首先,中斷處理程序INTHL4通過比特位位置來確定存在中斷請(qǐng)求的傳感器ID。首先,選擇ID = 0。中斷處理程序INTHL4從管理表44取得ID = O的入口地址Oxl 100(S423),執(zhí)行存儲(chǔ)器40的入口地址Oxl 100中保存的傳感器A數(shù)據(jù)取得處理RT43(S424)。接下來,中斷處理程序INTHL4將ID = O的中斷標(biāo)志位清除為“O”(S425)。中斷處理程序INTHL4對(duì)ID = UID = 2也執(zhí)行同樣的處理。
[0158]接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT42(S427)。處理器30從管理表44取得處理間隔44b、下次處理時(shí)刻44c、數(shù)據(jù)有效期間44e、下次失效時(shí)刻44f (S430)。接下來,處理器30從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻0(S431)。處理器30對(duì)當(dāng)前時(shí)刻(O)與ID = O的下次處理時(shí)刻(O)進(jìn)行比較(S432)。其比較結(jié)果一致,因此,處理器30以下次處理時(shí)刻(0)+處理間隔(80) =80來更新ID = O的下次處理時(shí)刻(S434)。另外,處理器30以下次處理時(shí)刻(80)+數(shù)據(jù)有效期間(80) = 160來更新ID = O的下次失效時(shí)刻(S433)。處理器30同樣地更新ID = I和ID=2的下次處理時(shí)刻與下次失效時(shí)刻。在ID = I中,下次處理時(shí)刻更新為100( = 0+100),下次失效時(shí)刻更新為125( = 100+25)。在ID = 2中,下次處理時(shí)刻更新為125(=0+125),下次失效時(shí)刻更新為250( = 125+125)。圖23示出了各管理信息更新后的管理表44。在當(dāng)前的管理表44的狀態(tài)下,最小的下次失效時(shí)刻為傳感器B(ID= I)的125msec。而且,在比125msec小的下次處理時(shí)刻中,最大的下次處理時(shí)刻為傳感器B的100msec。處理器30取得ID= I作為對(duì)喚醒觸發(fā)寄存器12設(shè)定的傳感器ID(S436)。處理器30將喚醒觸發(fā)寄存器12設(shè)定為寄存器值
(010)(S437)。在中斷處理程序INTHL4的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP4。應(yīng)用程序AP4將處理器30設(shè)為睡眠狀態(tài)(圖25: S404)。
[0159]接下來,在時(shí)刻80,從傳感器A發(fā)布中斷請(qǐng)求,中斷通知寄存器11的寄存器值成為(100)。此時(shí),喚醒觸發(fā)寄存器12的寄存器值為(010)。因此,INTC 10不發(fā)布對(duì)PMU 20的處理器喚醒請(qǐng)求。因此,處理器30保持睡眠狀態(tài),不進(jìn)行數(shù)據(jù)取得處理。
[0160]接下來,在時(shí)刻100,從傳感器B發(fā)布中斷請(qǐng)求,中斷通知寄存器11的寄存器值成為(110)。此時(shí),喚醒觸發(fā)寄存器12的寄存器值為(010)。因此,INTC 10發(fā)布對(duì)PMU 20的處理器喚醒請(qǐng)求。由此,將處理器30喚醒,根據(jù)中斷處理程序INTHL4,執(zhí)行傳感器A、B的數(shù)據(jù)取得處理。
[0161]處理器30在執(zhí)行了數(shù)據(jù)取得處理后,執(zhí)行喚醒觸發(fā)設(shè)定例程RT42。處理器30對(duì)當(dāng)前時(shí)刻(100)與傳感器A的下次處理時(shí)刻(80)進(jìn)行比較。當(dāng)前時(shí)刻(100)大于下次處理時(shí)刻(80),因此,處理器30將下次處理時(shí)刻更新為下次處理時(shí)刻(80)+處理間隔(80) = 160。另夕卜,處理器30將下次失效時(shí)刻更新為下次處理時(shí)刻(160)+數(shù)據(jù)有效期間(80) = 240。同樣地,處理器30對(duì)當(dāng)前時(shí)刻(100)與傳感器B的下次處理時(shí)刻(100)進(jìn)行比較。當(dāng)前時(shí)刻(100)為下次處理時(shí)刻(100)以上,因此,處理器30將下次處理時(shí)刻更新為下次處理時(shí)刻(100)+處理間隔(100) = 200,將下次失效時(shí)刻更新為下次處理時(shí)刻(200) +數(shù)據(jù)有效期間(25) = 225。關(guān)于傳感器C,下次處理時(shí)刻(125)大于當(dāng)前時(shí)刻(100),因此不更新當(dāng)前的下次處理時(shí)刻
(125)和當(dāng)前的下次失效時(shí)刻(250)。在當(dāng)前的管理表44的狀態(tài)下,最小的下次失效時(shí)刻為傳感器B的225msec,比該225msec小的下次處理時(shí)刻中的最大值為傳感器B的200msec。由此,處理器30取得ID= I作為對(duì)喚醒觸發(fā)寄存器12設(shè)定的傳感器ID。處理器30將喚醒觸發(fā)寄存器12設(shè)定為寄存器值(OlO)。在中斷處理程序INTHL4的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP4。應(yīng)用程序AP4將處理器30設(shè)為睡眠狀態(tài)。
[0162]以下,同樣地,僅在時(shí)刻200、時(shí)刻300、時(shí)刻375、時(shí)刻400,將處理器30喚醒,執(zhí)行在各時(shí)刻之前存在中斷請(qǐng)求的傳感器的數(shù)據(jù)取得處理。
[0163]在第4實(shí)施方式中,基于傳感器的數(shù)據(jù)作成周期和數(shù)據(jù)有效時(shí)間,動(dòng)態(tài)地改變喚醒處理器的時(shí)機(jī),使得不會(huì)產(chǎn)生數(shù)據(jù)的失效。因此,能夠降低處理器30的睡眠狀態(tài)與激活狀態(tài)的轉(zhuǎn)變次數(shù),能夠降低處理器30的功耗。另外,處理器30不會(huì)在數(shù)據(jù)失效時(shí)刻之后進(jìn)行數(shù)據(jù)取得處理,因此不會(huì)漏取感測(cè)數(shù)據(jù)。
[0164](第5實(shí)施方式)
[0165]在第5實(shí)施方式中,與第4實(shí)施方式同樣地,設(shè)想存在數(shù)據(jù)有效時(shí)間比數(shù)據(jù)取得間隔短的傳感器的情況。另外,與第2實(shí)施方式同樣地,設(shè)想全部傳感器A?C不具有中斷請(qǐng)求功能的情況。在第5實(shí)施方式中,處理器30也是在圖24的最下部的時(shí)間圖所示的時(shí)機(jī)被喚醒來進(jìn)行數(shù)據(jù)取得工作。
[0166]圖29示出第5實(shí)施方式的處理器系統(tǒng)140的功能模塊。處理器系統(tǒng)140連接有3個(gè)傳感器A、B、C。傳感器A以80msec間隔生成感測(cè)數(shù)據(jù),數(shù)據(jù)有效時(shí)間為80msec。傳感器B以100msec間隔生成感測(cè)數(shù)據(jù)。傳感器B在內(nèi)部具有FIFO,數(shù)據(jù)有效期間為25msec。傳感器C以125msec間隔生成感測(cè)數(shù)據(jù),數(shù)據(jù)有效時(shí)間為125msec。傳感器A?C不具有中斷請(qǐng)求功能。
[0167]處理器系統(tǒng)140具有RTC計(jì)時(shí)器50 ATC計(jì)時(shí)器50的功能與在第2實(shí)施方式中說明的相同,省略重復(fù)的說明。處理器30具有內(nèi)部計(jì)時(shí)器31IMU 20管理針對(duì)處理器系統(tǒng)140中包含的處理器30、存儲(chǔ)器40、RTC計(jì)時(shí)器50等的電源供給。PMU 20根據(jù)來自RTC計(jì)時(shí)器50的請(qǐng)求將處理器30喚醒。
[0168]存儲(chǔ)器40保存管理表45、處理器30執(zhí)行的應(yīng)用程序AP5、中斷處理程序INTHL5、管理表登記例程RT51、喚醒觸發(fā)設(shè)定例程RT52、傳感器A數(shù)據(jù)取得處理RT53、傳感器B數(shù)據(jù)取得處理RT54、傳感器C數(shù)據(jù)取得處理RT55、內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT56。
[0169]管理表45的數(shù)據(jù)結(jié)構(gòu)與圖23所示的管理表44相同。管理表45具有使傳感器ID、入口地址45a、處理間隔45b、下次處理時(shí)刻(next_proc)45c、數(shù)據(jù)有效期間(lifetime )45e、下次失效時(shí)刻(next_deadline)45f成組的管理信息。
[0170]以下,對(duì)第5實(shí)施方式的工作進(jìn)行詳細(xì)說明。圖30是示出應(yīng)用程序AP5的工作步驟的流程圖。在處理器系統(tǒng)140啟動(dòng)時(shí),處理器30執(zhí)行應(yīng)用程序AP5。應(yīng)用程序AP5使傳感器A、8、(:初始化(3500)。
[0171]接下來,處理器30執(zhí)行管理表登記例程RT51(S501)。管理表登記例程RT51與圖26所示的管理表登記例程RT31相同。處理器30設(shè)定中斷向量等,使得在接收到來自RTC計(jì)時(shí)器50的中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL5(S502)。接下來,處理器30執(zhí)行中斷處理程序INTHL5(S503)。然后,應(yīng)用程序AP5將處理器30設(shè)為睡眠狀態(tài)(S504)。
[0172]圖31是示出中斷處理程序INTHL5的工作步驟的流程圖。中斷處理程序INTHL5執(zhí)行內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT56(S510)。該內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT56與圖13所示的步驟同樣。即,處理器30將從RTC計(jì)時(shí)器50取得的當(dāng)前時(shí)刻設(shè)定為內(nèi)部計(jì)時(shí)器31的時(shí)刻。接下來,中斷處理程序INTHL5從管理表45取得ID = O的入口地址45a、下次處理時(shí)刻45c(S511)。接下來,中斷處理程序INTHL5將從內(nèi)部計(jì)時(shí)器31取得的當(dāng)前時(shí)刻與ID = O的下次處理時(shí)刻(next_proc)45c進(jìn)行比較(S512)。中斷處理程序INTHL5在當(dāng)前時(shí)刻為ID = O的下次處理時(shí)刻以上的情況下(S512:是),執(zhí)行傳感器A數(shù)據(jù)取得處理RT53(S513)。接下來,中斷處理程序INTHL5以對(duì)ID = O的下次處理時(shí)刻加上處理間隔45b而得到的值來更新ID = O的下次處理時(shí)亥|J(S514)。中斷處理程序INTHL5判定針對(duì)管理表45中登記的全部傳感器ID的處理是否結(jié)束(S515 ),在判定結(jié)果為“否”的情況下,對(duì)全部傳感器ID執(zhí)行S511?S515的處理。接下來,中斷處理程序INTHL5執(zhí)行喚醒觸發(fā)設(shè)定例程RT52(S516)。
[0173]圖32是示出喚醒觸發(fā)設(shè)定例程RT52的流程圖。處理器30從管理表45取得處理間隔45b、下次處理時(shí)刻45c、數(shù)據(jù)有效期間45e、下次失效時(shí)刻45f(S520)。接下來,處理器30從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻(S521)。進(jìn)而,處理器對(duì)每個(gè)傳感器ID執(zhí)行以下的處理。處理器30以對(duì)S514中更新后的下次處理時(shí)刻45c加上數(shù)據(jù)有效期間45e而得到的值來更新下次失效時(shí)刻45f(S522)。對(duì)全部傳感器ID反復(fù)執(zhí)行這樣的處理(S522?S523)。接下來,處理器30在全部傳感器ID中判定下次失效時(shí)刻的最小值,取得具有比該最小值小的下次處理時(shí)刻中的最大(晚)的下次處理時(shí)刻的傳感器ID(S524)。接下來,處理器30將取得的傳感器ID的下次處理時(shí)刻設(shè)定到RTC觸發(fā)寄存器51 (S525)。
[0174]接下來,參照?qǐng)D24的時(shí)間圖等,對(duì)處理器系統(tǒng)140的工作更詳細(xì)地進(jìn)行說明。處理器系統(tǒng)140啟動(dòng)后,執(zhí)行應(yīng)用程序AP5。處理器30使傳感器A、B、C初始化(圖30:S500)。接下來,處理器30對(duì)管理表45設(shè)定各傳感器A?C的管理信息(S501)。關(guān)于傳感器A,設(shè)定了 ID =O N entry address = Oxl 100、interval = 80、next_proc = CKlifetime = 80、next_deadline=0。關(guān)于傳感器B,設(shè)定了ID = 1、entry address = Ox1200、interval = 100、next_proc = 0、lifetime = 25、next_deadline = 0。關(guān)于傳感器C,設(shè)定了ID = 2、entry address = 0x1300、interval = 125、next_proc = 0、lifetime = 125、next_deadline = 0。接下來,處理器 30 設(shè)定中斷向量等,使得在從RTC計(jì)時(shí)器50接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL5(S502)。進(jìn)而,處理器30為了進(jìn)行初次的數(shù)據(jù)取得處理,執(zhí)行中斷處理程序INTHL5(S503)。
[0175]在時(shí)刻O進(jìn)行各傳感器A?C的感測(cè),生成數(shù)據(jù)。中斷處理程序INTHL5進(jìn)行內(nèi)部計(jì)時(shí)器31的再次設(shè)定(圖31: S510)。在時(shí)刻O,內(nèi)部計(jì)時(shí)器31的值保持為O。接下來,中斷處理程序INTHL5從管理表45取得ID = O的入口地址(0x1100)、下次處理時(shí)刻(O) (S511)。接下來,中斷處理程序INTHL5將從內(nèi)部計(jì)時(shí)器31取得的當(dāng)前時(shí)刻(O)與ID = O的下次處理時(shí)刻(O)進(jìn)行比較(S512)。由于滿足S512的條件,因此,中斷處理程序INTHL5執(zhí)行傳感器A數(shù)據(jù)取得處理RT53 (S513)。接下來,中斷處理程序INTHL5以下次處理時(shí)刻(O) +處理間隔(80) = 80來更新下次處理時(shí)刻(S514)。中斷處理程序INTHL5對(duì)ID = 1、ID = 2也執(zhí)行同樣的處理。
[0176]接下來,中斷處理程序INTHL5執(zhí)行喚醒觸發(fā)設(shè)定例程RT52(S516)。處理器30從管理表45取得處理間隔45b、下次處理時(shí)刻45c、數(shù)據(jù)有效期間45e、下次失效時(shí)刻45f(S520)。接下來,處理器30從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻0(521)。處理器30以S514中更新后的下次處理時(shí)刻(80)+數(shù)據(jù)有效期間(80) = 160來更新ID = O的下次失效時(shí)刻(S522)。處理器30同樣地將ID= I的下次失效時(shí)刻更新為125( = 100+25),將ID = 2的下次失效時(shí)刻更新為250( = 125+125)。在當(dāng)前的管理表45的狀態(tài)下,最小的下次失效時(shí)刻為傳感器B(ID=I)的125msec。而且,在比125msec小的下次處理時(shí)刻中,最大的下次處理時(shí)刻為傳感器B的100msec。處理器30取得ID= I作為對(duì)喚醒觸發(fā)寄存器12設(shè)定的傳感器ID(S524)。接下來,處理器30將取得的傳感器ID的下次處理時(shí)刻( = 100)設(shè)定到RTC觸發(fā)寄存器51(S525)。在中斷處理程序INTHL5的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP5。應(yīng)用程序AP5將處理器30設(shè)為睡眠狀態(tài)(圖30:S504)。
[0177]接下來,在成為時(shí)刻100時(shí),RTC計(jì)時(shí)器50的計(jì)時(shí)器值與RTC觸發(fā)寄存器51的寄存器值( = 100)—致。由此,從RTC計(jì)時(shí)器50向PMU 20發(fā)布處理器喚醒請(qǐng)求,從RTC計(jì)時(shí)器50對(duì)處理器30通知中斷請(qǐng)求。由此,處理器30成為激活狀態(tài),執(zhí)行中斷處理程序INTHL5。
[0178]中斷處理程序INTHL5以RTC計(jì)時(shí)器50的當(dāng)前時(shí)刻=100來再次設(shè)定內(nèi)部計(jì)時(shí)器31
(5510)。中斷處理程序INTHL5從管理表45取得傳感器A(ID= O)的下次處理時(shí)刻(80)
(5511),將當(dāng)前時(shí)刻(100)與下次處理時(shí)刻(80)進(jìn)行比較(S512)。此時(shí),由于滿足S512的條件,因此,處理器30執(zhí)行傳感器A數(shù)據(jù)取得處理RT53(S513)。接下來,中斷處理程序INTHL5以下次處理時(shí)刻(80)+處理間隔(80 ) = 160來更新ID = O的下次處理時(shí)刻(S514)。接下來,對(duì)傳感器B進(jìn)行處理。由于是當(dāng)前時(shí)刻(100),是傳感器B的下次處理時(shí)刻(100),因此,滿足S512的條件。處理器30執(zhí)行傳感器B數(shù)據(jù)取得處理RT54。然后,中斷處理程序INTHL5以下次處理時(shí)刻(100)+處理間隔(100) = 200來更新ID = I的下次處理時(shí)刻。由于傳感器C的下次處理時(shí)亥lj(125)大于當(dāng)前時(shí)刻(100),因此,不滿足S512的條件。因此,不進(jìn)行針對(duì)傳感器C的數(shù)據(jù)取得處理和下次處理時(shí)刻的更新。接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT52(S516)。
[0179]處理器30從管理表45取得處理間隔45b、下次處理時(shí)刻45c、數(shù)據(jù)有效期間45e、下次失效時(shí)刻45f(S520)。接下來,處理器30從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻(100)(S521)。進(jìn)而,處理器30對(duì)每個(gè)傳感器ID執(zhí)行以下的處理。處理器30以對(duì)S514中更新后的下次處理時(shí)亥丨J45c加上數(shù)據(jù)有效期間45e而得到的值來更新下次失效時(shí)刻45f(S522)<JD = 0的下次處理時(shí)刻成為160,下次失效時(shí)刻成為240 JD = I的下次處理時(shí)刻成為200,下次失效時(shí)刻成為225 <JD = 2的下次處理時(shí)刻成為125,下次失效時(shí)刻成為250。在當(dāng)前的管理表45的狀態(tài)下,最小的下次失效時(shí)刻為傳感器B的225msec,比該225msec小的下次處理時(shí)刻中的最大值為傳感器B的200msec。由此,處理器30取得ID= I作為對(duì)RTC觸發(fā)寄存器51設(shè)定下次處理時(shí)刻的傳感器ID(S524)。處理器30將RTC觸發(fā)寄存器51設(shè)定為作為傳感器B的下次處理時(shí)刻的200(S525)。在中斷處理程序INTHL5的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP5。應(yīng)用程序AP5將處理器30設(shè)為睡眠狀態(tài)。
[0180]以下,同樣地,僅在時(shí)刻200、時(shí)刻300、時(shí)刻375、時(shí)刻400,將處理器30喚醒,在各時(shí)刻執(zhí)行下次處理時(shí)刻小于當(dāng)前時(shí)刻的數(shù)據(jù)取得處理。
[0181]在第5實(shí)施方式中,基于傳感器的數(shù)據(jù)作成周期和數(shù)據(jù)有效時(shí)間,動(dòng)態(tài)地改變喚醒處理器30的時(shí)機(jī),使得不會(huì)產(chǎn)生數(shù)據(jù)的失效。另外,通過計(jì)時(shí)器來管理傳感器數(shù)據(jù)的取得處理。因此,即使在傳感器不具有中斷請(qǐng)求功能的情況下,也能夠降低處理器30的睡眠狀態(tài)與激活狀態(tài)的轉(zhuǎn)變次數(shù)。因此,能夠降低處理器30的功耗。另外,處理器30不會(huì)在數(shù)據(jù)失效時(shí)刻之后進(jìn)行數(shù)據(jù)取得處理,因此不會(huì)漏取感測(cè)數(shù)據(jù)。
[0182](第6實(shí)施方式)
[0183]在第6實(shí)施方式中,與第4實(shí)施方式同樣地,設(shè)想存在數(shù)據(jù)有效時(shí)間比數(shù)據(jù)取得間隔短的傳感器的情況。另外,與第3實(shí)施方式同樣地,設(shè)為同時(shí)存在具有中斷請(qǐng)求功能的傳感器和不具有中斷請(qǐng)求功能的傳感器的情況。
[0184]圖33示出第6實(shí)施方式的處理器系統(tǒng)150的功能模塊。處理器系統(tǒng)150連接有3個(gè)傳感器A、B、C。傳感器A以80msec間隔生成感測(cè)數(shù)據(jù),數(shù)據(jù)有效時(shí)間為80msec。傳感器B以100msec間隔生成感測(cè)數(shù)據(jù)。傳感器B在內(nèi)部具有FIFO,數(shù)據(jù)有效期間為25msec。傳感器C以125msec間隔生成感測(cè)數(shù)據(jù),數(shù)據(jù)有效時(shí)間為125msec。傳感器A和C具有中斷請(qǐng)求功能,而傳感器B不具有中斷請(qǐng)求功能。
[0185]圖33的處理器系統(tǒng)150具有INTC 10和RTC計(jì)時(shí)器50<JNTC 10和RTC計(jì)時(shí)器50的功能與在之前的第3實(shí)施方式中說明的相同,省略重復(fù)的說明。處理器30具有內(nèi)部計(jì)時(shí)器31。PMU 20管理針對(duì)處理器系統(tǒng)150中包含的INTC 10、處理器30、存儲(chǔ)器40、RTC計(jì)時(shí)器50等的電源供給。PMU 20按照來自INTC 10或RTC計(jì)時(shí)器50的請(qǐng)求將處理器30喚醒。
[0186]存儲(chǔ)器40保存管理表46、處理器30執(zhí)行的應(yīng)用程序AP6、中斷處理程序INTHL6、管理表登記例程RT61、喚醒觸發(fā)設(shè)定例程RT62、傳感器A數(shù)據(jù)取得處理RT63、傳感器B數(shù)據(jù)取得處理RT64、傳感器C數(shù)據(jù)取得處理RT65、內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT66。
[0187]圖34是用于說明管理表46的數(shù)據(jù)結(jié)構(gòu)的圖。管理表46具有使傳感器ID、數(shù)據(jù)取得處理的入口地址46a、處理間隔46b、下次處理時(shí)刻(next_proc) 46c、觸發(fā)類型(triggertype )46d、數(shù)據(jù)有效期間(lifetime )46e、下次失效時(shí)刻(next_deadline)46f成組的管理信息。
[0188]以下,對(duì)第6實(shí)施方式的工作進(jìn)行詳細(xì)說明。圖35是示出應(yīng)用程序AP6的工作步驟的流程圖。在處理器系統(tǒng)150啟動(dòng)時(shí),處理器30執(zhí)行應(yīng)用程序AP6。應(yīng)用程序AP6使傳感器A、
8、(:初始化(3600)。
[0189]接下來,處理器30執(zhí)行管理表登記例程RT61(S601)。圖36是示出管理表登記例程RT61的流程圖。首先,對(duì)各傳感器ID設(shè)定入口地址46a、處理間隔46b、數(shù)據(jù)有效期間46e、觸發(fā)類型46d(圖36:S610)。接下來,處理器30對(duì)各傳感器ID的下次處理時(shí)刻46c設(shè)定當(dāng)前時(shí)刻(O)。
[0190]處理器30設(shè)定中斷向量等,使得在接收到來自INTC 10或RTC計(jì)時(shí)器50的中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL6(圖35:S602)。接下來,處理器30執(zhí)行中斷處理程序INTHL6(S603)。然后,應(yīng)用程序AP6將處理器30設(shè)為睡眠狀態(tài)(S604)。
[0191]圖37是示出中斷處理程序INTHL6的工作步驟的流程圖。中斷處理程序INTHL6執(zhí)行內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT66(S620)。該內(nèi)部計(jì)時(shí)器再次設(shè)定例程RT66與圖13所示的步驟同樣。即,處理器30從RTC計(jì)時(shí)器50取得當(dāng)前時(shí)刻,將取得的當(dāng)前時(shí)刻設(shè)定為內(nèi)部計(jì)時(shí)器31的時(shí)刻。接下來,中斷處理程序INTHL6取得中斷通知寄存器11的寄存器值(S621)。中斷處理程序INTHL6參照取得的寄存器值,檢查是否從傳感器A?C產(chǎn)生了中斷請(qǐng)求(S622)。在存在中斷請(qǐng)求的情況下(S622:是),中斷處理程序INTHL6從管理表46取得與發(fā)布中斷請(qǐng)求的傳感器ID對(duì)應(yīng)的數(shù)據(jù)取得處理的入口地址(S623),執(zhí)行由取得的入口地址指定的數(shù)據(jù)取得處理(S624)。進(jìn)而,中斷處理程序INTHL6將對(duì)應(yīng)的傳感器ID的中斷標(biāo)志位從“I”清除為“O”(S625)。接下來,中斷處理程序INTHL6以對(duì)存在中斷請(qǐng)求的傳感器ID的下次處理時(shí)刻加上處理間隔46b而得到的值來更新該傳感器ID的下次處理時(shí)刻(S626)。中斷處理程序INTHL6判定是否執(zhí)行了針對(duì)觸發(fā)類型為中斷且中斷標(biāo)志位是否為“I”的全部傳感器ID的數(shù)據(jù)取得處理(S627)。在判定結(jié)果為“否”的情況下,對(duì)觸發(fā)類型為中斷且中斷標(biāo)志位為“I”的傳感器ID執(zhí)行上述同樣的處理。
[0192]接下來,中斷處理程序INTHL6從管理表46取得觸發(fā)類型為計(jì)時(shí)器的傳感器ID的入口地址46a、下次處理時(shí)刻46c(S628)。接下來,中斷處理程序INTHL6將從內(nèi)部計(jì)時(shí)器31取得的當(dāng)前時(shí)刻與S628中取得的傳感器ID的下次處理時(shí)刻46c進(jìn)行比較(S629)。中斷處理程序INTHL6在該傳感器ID的下次處理時(shí)刻46c為當(dāng)前時(shí)刻以下的情況下(S629:是),執(zhí)行由S628中取得的傳感器ID的入口地址指定的數(shù)據(jù)取得處理(S630)。接下來,中斷處理程序INTHL6以對(duì)該傳感器的下次處理時(shí)刻加上處理間隔46b而得到的值來更新該傳感器ID的下次處理時(shí)刻(S631)。中斷處理程序INTHL6判定針對(duì)觸發(fā)類型為計(jì)時(shí)器的全部傳感器ID的處理是否結(jié)束(S632)。在判定結(jié)果為“否”的情況下,對(duì)觸發(fā)類型為計(jì)時(shí)器的全部傳感器執(zhí)行S628?S632的處理。接下來,中斷處理程序INTHL6執(zhí)行喚醒觸發(fā)設(shè)定例程RT62(S633)。
[0193]圖38是示出喚醒觸發(fā)設(shè)定例程RT62的流程圖。處理器30從管理表46取得處理間隔46b、下次處理時(shí)刻46c、數(shù)據(jù)有效期間46e、下次失效時(shí)刻46f (S640)。接下來,處理器30從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻(S641)。進(jìn)而,處理器30對(duì)每個(gè)傳感器ID執(zhí)行以下的處理。處理器30以對(duì)S626或S631中更新后的下次處理時(shí)刻46c加上數(shù)據(jù)有效期間46e而得到的值來更新下次失效時(shí)刻46f( S642)。對(duì)全部傳感器ID反復(fù)執(zhí)行這樣的處理(S642?S643)。接下來,處理器30在全部傳感器ID中判定下次失效時(shí)刻的最小值,取得具有比該最小值小的下次處理時(shí)刻中的最大(晚)的下次處理時(shí)刻的傳感器ID(S644)。接下來,處理器30判別取得的傳感器ID的觸發(fā)類型是中斷還是計(jì)時(shí)器(S645)。在觸發(fā)類型為中斷的情況下,處理器30設(shè)定喚醒觸發(fā)寄存器12,使得:僅在存在來自具有取得的ID的傳感器的中斷處理請(qǐng)求時(shí),從INTC10對(duì)PMU 20發(fā)布處理器喚醒請(qǐng)求(S646)。即,處理器30將取得的傳感器ID的喚醒觸發(fā)標(biāo)志位設(shè)為“I”。另外,處理器30將RTC觸發(fā)寄存器51清零(S647)。另外,在觸發(fā)類型為計(jì)時(shí)器的情況下(S645:否),通過取得的傳感器ID的下次處理時(shí)刻來設(shè)定RTC觸發(fā)寄存器51 (S648)。另外,處理器30將喚醒觸發(fā)寄存器12清零(S649)。
[0194]接下來,參照?qǐng)D24的時(shí)間圖等,對(duì)處理器系統(tǒng)150的工作更詳細(xì)地進(jìn)行說明。處理器系統(tǒng)150啟動(dòng)后,執(zhí)行應(yīng)用程序AP6。處理器30使傳感器A、B、C初始化(圖35:S600)。接下來,處理器30對(duì)管理表46設(shè)定各傳感器A?C的管理信息(S601)。關(guān)于傳感器A,設(shè)定了 ID =O N entry address = Oxl 100、interval = 80、next_proc = CKlifetime = 80、next_deadline= 0、trigger type = int。關(guān)于傳感器B,設(shè)定了ID= 1、entry address = Oxl200、interval=100、next_proc = 0、life time = 25、next_deadiine = 0、trigger type = timer。關(guān)于傳感器C,設(shè)定了ID = 2、entry address = 0x1300、interval = 125、next_proc = 0、lifetime =125、next_deadline = 0、trigger type = int。接下來,處理器30設(shè)定中斷向量等,使得在從INTC 10或RTC計(jì)時(shí)器50接收到中斷請(qǐng)求時(shí)執(zhí)行中斷處理程序INTHL6(S602)。進(jìn)而,處理器30為了進(jìn)行初次的數(shù)據(jù)取得處理,執(zhí)行中斷處理程序INTHL6(S603)。
[0195]在時(shí)刻O進(jìn)行各傳感器A?C的感測(cè),生成數(shù)據(jù)。中斷處理程序INTHL6進(jìn)行內(nèi)部計(jì)時(shí)器31的再次設(shè)定(圖36: S620)。在時(shí)刻O,內(nèi)部計(jì)時(shí)器31的值保持為O。接下來,處理器30取得中斷通知寄存器11的寄存器值(S621)。在時(shí)刻0,從傳感器A、C產(chǎn)生中斷請(qǐng)求,因此,寄存器值為(101)。在該情況下,首先選擇ID = 0。中斷處理程序INTHL6從管理表46取得ID = O的入口地址0xll00(S623),執(zhí)行存儲(chǔ)器40的入口地址Oxl 100中保存的傳感器A數(shù)據(jù)取得處理RT63(S624)。進(jìn)而,中斷處理程序INTHL6將ID = O的中斷標(biāo)志位清除為“0”(S625)。接下來,中斷處理程序INTHL6以下次處理時(shí)刻(0)+處理間隔(80) = 80來更新下次處理時(shí)刻(3626)。中斷處理程序INTHL6對(duì)ID = 2也執(zhí)行同樣的處理。另外,傳感器C的下次處理時(shí)刻更新為125(=0+125)。
[0196]接下來,中斷處理程序INTHL6對(duì)觸發(fā)類型為計(jì)時(shí)器的傳感器B進(jìn)行當(dāng)前時(shí)刻(O)與下次處理時(shí)刻(O)的比較(S629)。此處,當(dāng)前時(shí)刻(O)為下次處理時(shí)刻(O)以上,因此,中斷處理程序INTHL6同樣地執(zhí)行傳感器B數(shù)據(jù)取得處理RT64(S630)。另外,中斷處理程序INTHL6將傳感器B的下次處理時(shí)刻更新為100( =0+100) (S631)。
[0197]接下來,處理器30執(zhí)行喚醒觸發(fā)設(shè)定例程RT62(S633)。處理器30從管理表46取得處理間隔46b、下次處理時(shí)刻46c、數(shù)據(jù)有效期間46e、下次失效時(shí)刻46f (S640)。接下來,處理器30從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻0(S641)。處理器30以S626中更新后的下次處理時(shí)刻
(80)+數(shù)據(jù)有效期間(80) = 160來更新ID = O的下次失效時(shí)刻(S642)。處理器30同樣地將ID=I的下次失效時(shí)刻更新為125( = 100+25),將ID = 2的下次失效時(shí)刻更新為250( = 125+125)。在當(dāng)前的管理表46的狀態(tài)下,最小的下次失效時(shí)間為傳感器B(ID= I)的125msec。而且,在比125msec小的下次處理時(shí)刻中,最大的下次處理時(shí)刻為傳感器B的100msec。處理器30取得ID= I作為對(duì)喚醒觸發(fā)寄存器12設(shè)定的傳感器ID(S645)。傳感器B( ID= I)的觸發(fā)類型為計(jì)時(shí)器,因此,處理器30將ID= I的下次處理時(shí)刻( = 100)設(shè)定到RTC觸發(fā)寄存器51(S648)。另外,處理器30將喚醒觸發(fā)寄存器12清零(S649)。在中斷處理程序INTHL6的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP6。應(yīng)用程序AP6將處理器30設(shè)為睡眠狀態(tài)(圖35: S604)。
[0198]接下來,在時(shí)刻80,從傳感器A發(fā)布中斷請(qǐng)求,中斷通知寄存器11的寄存器值成為(100)。此時(shí),喚醒觸發(fā)寄存器12的寄存器值為(010)。因此,INTC 10不對(duì)PMU 20發(fā)布處理器喚醒請(qǐng)求。因此,處理器30保持睡眠狀態(tài),不進(jìn)行數(shù)據(jù)取得處理。
[0199]接下來,在時(shí)刻100,RTC計(jì)時(shí)器50的計(jì)時(shí)器值與RTC觸發(fā)寄存器51的寄存器值(=100)一致。由此,從RTC計(jì)時(shí)器50向PMU 20發(fā)布處理器喚醒請(qǐng)求,從RTC計(jì)時(shí)器50對(duì)處理器30通知中斷請(qǐng)求。由此,處理器30成為激活狀態(tài),執(zhí)行中斷處理程序INTHL6。
[0200]中斷處理程序INTHL6以RTC計(jì)時(shí)器50的當(dāng)前時(shí)刻=100來再次設(shè)定內(nèi)部計(jì)時(shí)器31(S620)。中斷處理程序INTHL6取得中斷通知寄存器11的寄存器值(100)(S621)。處理器30基于該寄存器值(100),執(zhí)行傳感器A數(shù)據(jù)取得處理RT63(S623、S624)。進(jìn)而,中斷處理程序INTHL6將ID = O的中斷標(biāo)志位清除為“O”( S625)。另外,中斷處理程序INTHL6將ID = O的下次處理時(shí)刻更新為160( =80+80) (S626)。
[0201]接下來,中斷處理程序INTHL6從管理表46取得傳感器B(ID=I)的下次處理時(shí)刻
(100)(S628),將取得的下次處理時(shí)刻(100)與當(dāng)前時(shí)刻(100)進(jìn)行比較(S629)。此時(shí),當(dāng)前時(shí)刻(100)為下次處理時(shí)刻(100),因此,處理器30執(zhí)行傳感器B數(shù)據(jù)取得處理RT64(S630)。進(jìn)而,中斷處理程序INTHL6以200( = 100+100)來更新ID= I的下次處理時(shí)刻(S631)。接下來,中斷處理程序INTHL6調(diào)用喚醒觸發(fā)設(shè)定例程RT62。
[0202]處理器30從管理表46取得處理間隔46b、下次處理時(shí)刻46c、數(shù)據(jù)有效期間46e、下次失效時(shí)刻46f(S640)。接下來,處理器30從內(nèi)部計(jì)時(shí)器31取得當(dāng)前時(shí)刻(100)(S641)。進(jìn)而,處理器30對(duì)每個(gè)傳感器ID執(zhí)行以下的處理。處理器30以對(duì)管理表46中登記的最新的下次處理時(shí)刻46c加上數(shù)據(jù)有效期間46e而得到的值來更新下次失效時(shí)刻46f (S642)。ID = O的下次處理時(shí)刻成為160,下次失效時(shí)刻成為240( = 160+80) JD= I的下次處理時(shí)刻成為200,下次失效時(shí)刻成為225( = 200+25) <JD = 2的下次處理時(shí)刻成為125,下次失效時(shí)刻成為250( = 125+125)。在當(dāng)前的管理表46的狀態(tài)下,最小的下次失效時(shí)刻為傳感器B的225msec,比該225msec小的下次處理時(shí)刻中的最大值為傳感器B的200msec。由此,處理器30取得ID = I作為傳感器ID(S644)。處理器30將RTC觸發(fā)寄存器51設(shè)定為作為傳感器B的下次處理時(shí)刻的200 (S648)。另外,處理器30將喚醒觸發(fā)寄存器12清零(S649)。在中斷處理程序INTHL6的處理結(jié)束時(shí),使處理返回到應(yīng)用程序AP6。應(yīng)用程序AP6將處理器30設(shè)為睡眠狀態(tài)。
[0203]以下,同樣地,僅在時(shí)刻200、時(shí)刻300、時(shí)刻375、時(shí)刻400,將處理器30喚醒,在各時(shí)亥|J,觸發(fā)類型為中斷的傳感器按照中斷通知寄存器11的值來執(zhí)行數(shù)據(jù)取得處理,觸發(fā)類型為計(jì)時(shí)器的傳感器按照下次處理時(shí)刻的值來執(zhí)行數(shù)據(jù)取得處理。
[0204]在第6實(shí)施方式中,基于傳感器的數(shù)據(jù)作成周期和數(shù)據(jù)有效時(shí)間,動(dòng)態(tài)地改變喚醒處理器30的時(shí)機(jī),使得不會(huì)產(chǎn)生數(shù)據(jù)的失效。另外,通過中斷控制和計(jì)時(shí)器來管理傳感器數(shù)據(jù)的取得處理。因此,即使在同時(shí)存在具有發(fā)布中斷請(qǐng)求的功能的傳感器和不具有所述功能的傳感器的情況下,也能夠降低處理器30的睡眠狀態(tài)與激活狀態(tài)的轉(zhuǎn)變次數(shù)。因此,能夠降低處理器30的功耗。另外,處理器30不會(huì)在數(shù)據(jù)失效時(shí)刻之后進(jìn)行數(shù)據(jù)取得處理,因此不會(huì)漏取感測(cè)數(shù)據(jù)。
[0205](第7實(shí)施方式)
[0206]當(dāng)在傳感器的數(shù)據(jù)生成時(shí)刻存在抖動(dòng)的情況下,有可能因抖動(dòng)而產(chǎn)生數(shù)據(jù)的漏取。圖39是示出傳感器P、傳感器Q、傳感器R和處理器的時(shí)間圖。傳感器P、傳感器Q、傳感器R具有中斷請(qǐng)求功能。在圖39中,向上的箭頭表示生成傳感器數(shù)據(jù)的時(shí)刻。向下的箭頭表示傳感器數(shù)據(jù)的失效時(shí)刻。從向上的箭頭起到向下的箭頭為止的期間表示數(shù)據(jù)有效期間。在傳感器Q產(chǎn)生抖動(dòng),如箭頭Z所示,傳感器Q的數(shù)據(jù)生成時(shí)刻從以虛線表示的正常時(shí)刻偏移到以實(shí)線表示的之前的時(shí)刻。
[0207]對(duì)通過第4實(shí)施方式的控制取得圖39所示的傳感器P、傳感器Q、傳感器R的數(shù)據(jù)的情況進(jìn)行說明。在時(shí)刻to的時(shí)刻,以傳感器P為喚醒觸發(fā),將處理器喚醒。此外,“以傳感器P為喚醒觸發(fā)”對(duì)應(yīng)于與傳感器P對(duì)應(yīng)的中斷標(biāo)志位和喚醒觸發(fā)標(biāo)志位這雙方為“I”的狀態(tài)。在時(shí)刻to,處理器取得傳感器P和傳感器Q的數(shù)據(jù)。接下來,處理器為了設(shè)定用于下次喚醒的喚醒觸發(fā)標(biāo)志位,執(zhí)行圖28的S436的處理。在時(shí)刻t0,最小的下次失效時(shí)刻為時(shí)刻t2,比下次失效時(shí)刻t2小的下次處理時(shí)刻中的最大的下次處理時(shí)刻為時(shí)刻tl。因此,處理器將傳感器Q的喚醒觸發(fā)標(biāo)志位設(shè)為“I”。但是,在該時(shí)刻tl,由于抖動(dòng),沒有從傳感器Q發(fā)布中斷請(qǐng)求,因此處理器未被喚醒。處理器在作為傳感器Q的再下一個(gè)周期時(shí)刻t4將傳感器Q作為喚醒觸發(fā)進(jìn)行喚醒。在時(shí)刻t4,處理器取得傳感器PQR的數(shù)據(jù)。但是,傳感器R的數(shù)據(jù)有效期間在時(shí)刻t3結(jié)束。這樣,由于抖動(dòng),傳感器R的取得處理發(fā)生延遲,產(chǎn)生傳感器R的數(shù)據(jù)的漏取。
[0208]第7實(shí)施方式可以應(yīng)用于第4實(shí)施方式的控制。在第7實(shí)施方式中,將管理表44(參照?qǐng)D23)中登記的處理間隔44b登記為將作為抖動(dòng)的最大值的余裕值Mzl考慮在內(nèi)的值。即,將從處理間隔減去余裕值Mzl而得到的值設(shè)定為處理間隔44b。余裕值Mzl為時(shí)間前進(jìn)方向的抖動(dòng)的最大值。通過進(jìn)行這樣的設(shè)定,各傳感器的數(shù)據(jù)生成時(shí)刻一定向后側(cè)偏移,因此,不會(huì)產(chǎn)生圖39所示那樣的因數(shù)據(jù)生成時(shí)刻向前側(cè)偏移而導(dǎo)致的數(shù)據(jù)的漏取。而圖40示出了即使進(jìn)行這樣的設(shè)定也會(huì)產(chǎn)生數(shù)據(jù)消失的情況。即,在作為喚醒觸發(fā)而決定出的傳感器的數(shù)據(jù)生成時(shí)刻產(chǎn)生抖動(dòng)的情況。在圖40中,選擇傳感器P作為喚醒觸發(fā)。該傳感器P的數(shù)據(jù)生成時(shí)刻從時(shí)刻t0延遲到tl。因此,處理器30在時(shí)刻tl喚醒。在時(shí)刻t0和時(shí)刻tl之間,傳感器Q的數(shù)據(jù)的有效期間結(jié)束。這樣,在圖40中,由于抖動(dòng),傳感器Q的取得處理發(fā)生延遲,產(chǎn)生傳感器Q的數(shù)據(jù)的漏取。
[0209]作為被選擇為喚醒觸發(fā)的傳感器的數(shù)據(jù)生成時(shí)刻發(fā)生偏移時(shí)的解決措施,在第7實(shí)施方式中,將數(shù)據(jù)有效期間設(shè)為考慮了作為抖動(dòng)的最大值的余裕值Mz2的值來用于計(jì)算。即,將從數(shù)據(jù)有效期間減去Mz2而得到的值作為數(shù)據(jù)有效期間來用于計(jì)算。余裕值Mz2為時(shí)間延遲方向的抖動(dòng)的最大值。此外,也可以將余裕值Mz I和Mz2設(shè)為相同的值。另外,考慮抖動(dòng)的積累,在第7實(shí)施方式中,針對(duì)作為喚醒觸發(fā)而選擇出的傳感器,變更喚醒時(shí)的下次處理時(shí)刻的計(jì)算方法。即,不是對(duì)上次的下次處理時(shí)刻加上處理間隔,而是對(duì)喚醒時(shí)的當(dāng)前時(shí)刻加上處理間隔,由此求出下次處理時(shí)刻。在產(chǎn)生抖動(dòng)的情況下,在喚醒處理器時(shí),根據(jù)實(shí)際的喚醒時(shí)刻對(duì)更新前的下次處理時(shí)刻進(jìn)行修正,對(duì)該修正值加上處理間隔,由此防止抖動(dòng)的積累。
[0210]圖41是示出第7實(shí)施方式的應(yīng)用程序的工作步驟的流程圖。圖41與圖25的不同之處僅在于在圖41中追加了S702這點(diǎn),省略重復(fù)的說明。在S702中,設(shè)定登記余裕值Mz2。
[0211]圖42是示出第7實(shí)施方式的管理表登記例程的流程圖。在第7實(shí)施方式中,將從處理間隔減去余裕值Mzl而得到的值設(shè)定為處理間隔44b(S710)。除此以外與圖26同樣,省略重復(fù)的說明。在第7實(shí)施方式中,中斷處理程序的處理步驟與圖27所示的步驟相同,省略重復(fù)的說明。
[0212]圖43是示出第7實(shí)施方式的喚醒觸發(fā)設(shè)定例程的流程圖。圖43與圖28的不同之處在于圖43的S722、S723、S725和S728,省略重復(fù)的說明。針對(duì)各傳感器ID執(zhí)行S722?S727的處理。處理器判定中斷標(biāo)志位和喚醒觸發(fā)標(biāo)志位這雙方是否為“I”(S722)。在該判定為“是”的情況下,從喚醒觸發(fā)標(biāo)志位被設(shè)定為“I”的傳感器產(chǎn)生中斷請(qǐng)求,因此,處理器以(當(dāng)前時(shí)亥Ij+處理間隔)來更新下次處理時(shí)刻(S725)。在S722的判定為“否”的情況下,參照中斷通知寄存器11的寄存器值,判定是否從該傳感器ID產(chǎn)生了中斷請(qǐng)求(S723)。在S723的判定為“是”的情況下,處理器以(下次處理時(shí)刻+處理間隔)來更新下次處理時(shí)刻(S724)。此外,在圖28的S432中,通過將當(dāng)前時(shí)刻與下次處理時(shí)刻進(jìn)行比較來識(shí)別發(fā)布中斷請(qǐng)求的傳感器,而在第7實(shí)施方式中,進(jìn)行考慮了抖動(dòng)的數(shù)據(jù)取得控制,因此,不采用圖28的S432的處理。在圖43的S728中,處理器取得具有比從最小的下次失效時(shí)刻減去余裕值Mz2而得到的值小的下次處理時(shí)刻中的最大的下次處理時(shí)刻的傳感器ID。進(jìn)而,處理器將取得的傳感器ID的喚醒觸發(fā)標(biāo)志位設(shè)為“I”(S729)。
[0213]圖44是示出使用第7實(shí)施方式的傳感器P、傳感器Q、傳感器R和處理器的時(shí)間圖。此處,設(shè)為在傳感器P產(chǎn)生抖動(dòng)。在時(shí)刻to之前處理器轉(zhuǎn)變到了睡眠狀態(tài)時(shí),選擇傳感器Q作為具有最小的下次失效時(shí)刻的傳感器。這是因?yàn)?,傳感器Q的下次失效時(shí)刻小于傳感器P的下次失效時(shí)刻t3和傳感器R的下次失效時(shí)刻t5。在圖40中,選擇傳感器P作為喚醒觸發(fā),而在圖44中,由于從傳感器Q的下次失效時(shí)刻減去余裕值Mz2,所以選擇傳感器Q作為喚醒觸發(fā)。因此,在時(shí)刻t0,將傳感器Q作為喚醒觸發(fā),將處理器喚醒,取得傳感器Q的數(shù)據(jù)。這樣,不會(huì)產(chǎn)生圖40那樣的傳感器Q的數(shù)據(jù)的漏取。此外,傳感器Q為喚醒觸發(fā)傳感器,因此,下次處理時(shí)刻通過S725的處理,使用當(dāng)前時(shí)刻進(jìn)行更新,但因?yàn)樵趥鞲衅鱍未產(chǎn)生抖動(dòng),所以其更新結(jié)果與S724的更新處理沒有不同。接下來,處理器為了設(shè)定用于下次喚醒的喚醒觸發(fā)標(biāo)志位,執(zhí)行S728的處理。在時(shí)刻t0,最小的下次失效時(shí)刻為時(shí)刻t2,比下次失效時(shí)刻t2小的下次處理時(shí)刻中的最大的下次處理時(shí)刻為時(shí)刻tl。因此,處理器將傳感器Q的喚醒觸發(fā)標(biāo)志位設(shè)為T。
[0214]在時(shí)刻tl,以傳感器Q作為喚醒觸發(fā),將處理器喚醒。在時(shí)刻tl,處理器取得傳感器P和傳感器Q的數(shù)據(jù)。傳感器Q為喚醒觸發(fā)傳感器,因此,下次處理時(shí)刻通過S725的處理,使用當(dāng)前時(shí)刻進(jìn)行更新,當(dāng)因?yàn)樵趥鞲衅鱍未產(chǎn)生抖動(dòng),所以其更新結(jié)果與S724的更新處理沒有不同。接下來,處理器為了設(shè)定用于下次喚醒的喚醒觸發(fā)標(biāo)志位,執(zhí)行S728的處理。在時(shí)刻11,最小的下次失效時(shí)刻為時(shí)刻t5,比下次失效時(shí)刻t5小的下次處理時(shí)刻中的最大的下次處理時(shí)刻為時(shí)刻t3。因此,處理器將傳感器P的喚醒觸發(fā)標(biāo)志位設(shè)為“I”。
[0215]傳感器P的中斷請(qǐng)求的產(chǎn)生時(shí)刻因抖動(dòng)從時(shí)刻t3偏移到時(shí)刻t4。因此,在成為時(shí)刻t4時(shí),以傳感器P作為喚醒觸發(fā),將處理器喚醒,取得傳感器P和傳感器R的數(shù)據(jù)。傳感器P為喚醒觸發(fā)傳感器,因此,下次處理時(shí)刻通過S725的處理進(jìn)行更新。在該更新處理中,將更新前的下次處理時(shí)刻t3修正為作為實(shí)際的喚醒時(shí)刻的當(dāng)前時(shí)刻t4,對(duì)該修正時(shí)刻t4加上傳感器P的處理間隔。
[0216]在第7實(shí)施方式中,即使在傳感器的數(shù)據(jù)生成周期存在抖動(dòng)的情況下,也不會(huì)發(fā)生數(shù)據(jù)消失,能夠降低處理器的睡眠狀態(tài)與激活狀態(tài)的轉(zhuǎn)變次數(shù),能夠降低處理器的功耗。
[0217](第8實(shí)施方式)
[0218]在第8實(shí)施方式中,在中斷處理程序INTHLl?INTHL6調(diào)用各數(shù)據(jù)取得處理RT13-RT15?RT63-RT65時(shí),通過使各數(shù)據(jù)取得處理RT13-RT15?RT63-RT65參照更新前的下次處理時(shí)刻,由此各數(shù)據(jù)取得處理RT13-RT15?RT63-RT65能夠掌握傳感器數(shù)據(jù)的生成時(shí)刻。因此,能夠向用戶提示各傳感器的數(shù)據(jù)生成時(shí)刻。
[0219]例如,在圖3的(B)的時(shí)間圖中,關(guān)于傳感器A,數(shù)據(jù)生成時(shí)刻為時(shí)刻O、時(shí)刻80、時(shí)刻160、時(shí)刻240、時(shí)刻320、時(shí)刻400,數(shù)據(jù)取得處理執(zhí)行前的下次處理時(shí)刻中保存的值分別為
0、80、160、240、320、400,兩者一致。
[0220]關(guān)于傳感器B,數(shù)據(jù)生成時(shí)刻為時(shí)刻O、時(shí)刻100、時(shí)刻200、時(shí)刻300、時(shí)刻400。執(zhí)行數(shù)據(jù)取得處理的時(shí)刻為時(shí)刻O、時(shí)刻160、時(shí)刻240、時(shí)刻320、時(shí)刻400,與數(shù)據(jù)生成時(shí)刻不同。另外,數(shù)據(jù)取得處理執(zhí)行前的下次處理時(shí)刻中保存的值為O、100、200、300、400,與數(shù)據(jù)生成時(shí)刻一致。
[0221 ]關(guān)于傳感器C,數(shù)據(jù)生成時(shí)刻為時(shí)刻O、時(shí)刻125、時(shí)刻250、時(shí)刻375。執(zhí)行數(shù)據(jù)取得處理的時(shí)刻為時(shí)刻O、時(shí)刻160、時(shí)刻320、時(shí)刻400,與數(shù)據(jù)生成時(shí)刻不同。另外,數(shù)據(jù)取得處理執(zhí)行前的下次處理時(shí)刻中保存的值為O、125、250、375,與數(shù)據(jù)生成時(shí)刻一致。
[0222]這樣,各傳感器的數(shù)據(jù)取得時(shí)刻與數(shù)據(jù)取得處理執(zhí)行前的各傳感器下次處理時(shí)刻中保存的值一致。因此,在第8實(shí)施方式中,在中斷處理程序INTHLl?INTHL6調(diào)用各數(shù)據(jù)取得處理RT13-RT15?RT63-RT65時(shí),使各數(shù)據(jù)取得處理RT13-RT15?RT63-RT65參照或向其提供登記的各傳感器的下次處理時(shí)刻。由此,各數(shù)據(jù)取得處理RT13-RT15?RT63-RT65能夠掌握各傳感器的實(shí)際的數(shù)據(jù)生成時(shí)刻。
[0223]在第8實(shí)施方式中,各數(shù)據(jù)取得處理RT13-RT15?RT63-RT65能夠掌握各傳感器的實(shí)際的數(shù)據(jù)生成時(shí)刻。由此,能夠使應(yīng)用程序掌握各傳感器的實(shí)際的數(shù)據(jù)生成時(shí)刻,能夠?qū)⒏鱾鞲衅鞯膶?shí)際的數(shù)據(jù)生成時(shí)刻提供給用戶。
[0224](第9實(shí)施方式)
[0225]在第9實(shí)施方式中,設(shè)想處理器30支持多個(gè)階段的睡眠狀態(tài)的情況。另外,如第4?第6實(shí)施方式那樣,設(shè)想處理器30的喚醒間隔不同的情況。例如,支持睡眠狀態(tài)Ml和睡眠狀態(tài)M2,其中,所述睡眠狀態(tài)Ml的激活狀態(tài)與睡眠狀態(tài)的轉(zhuǎn)變時(shí)間較短,但功耗較大,所述睡眠狀態(tài)M2的所述轉(zhuǎn)變時(shí)間比睡眠狀態(tài)Ml長(zhǎng),但功耗比睡眠狀態(tài)Ml小。
[0226]應(yīng)用程序在將處理器30設(shè)為睡眠狀態(tài)時(shí),基于從轉(zhuǎn)變到睡眠狀態(tài)的時(shí)刻起到下次喚醒為止所需的時(shí)間Tk,決定轉(zhuǎn)變到睡眠狀態(tài)Ml和M2中的哪一個(gè)。應(yīng)用程序在所需時(shí)間Tk比閾值Ct短的情況下,選擇具有轉(zhuǎn)變時(shí)間較短的睡眠狀態(tài)Ml,在所需時(shí)間Tk為閾值Ct以上的情況下,選擇功耗較小的睡眠狀態(tài)M2。
[0227]在第4?第6實(shí)施方式中,取得與S436、S524、S644中取得的傳感器ID對(duì)應(yīng)的下次處理時(shí)刻44c、45c、46c,計(jì)算從當(dāng)前時(shí)刻起到取得的下次處理時(shí)刻為止的時(shí)間,由此計(jì)算所需時(shí)間Tk。
[0228]在第9實(shí)施方式中,計(jì)算從轉(zhuǎn)變到睡眠狀態(tài)的時(shí)刻起到下次喚醒為止所需時(shí)間Tk,基于該時(shí)間Tk來選擇睡眠狀態(tài),因此,能夠降低功耗,高效地進(jìn)行處理器的狀態(tài)轉(zhuǎn)變。此外,也可以設(shè)置兩個(gè)以上的閾值,對(duì)3個(gè)以上的睡眠狀態(tài)進(jìn)行切換。
[0229](第10實(shí)施方式)
[0230]在第I?第9實(shí)施方式中,設(shè)為通過軟件來實(shí)現(xiàn)喚醒觸發(fā)設(shè)定例程,但也可以通過硬件來實(shí)現(xiàn)喚醒觸發(fā)設(shè)定例程。例如,在圖6所示的喚醒觸發(fā)設(shè)定例程的情況下,具有存儲(chǔ)各傳感器的處理間隔的多個(gè)寄存器和對(duì)這多個(gè)寄存器的寄存器值的最小值進(jìn)行運(yùn)算的比較器,通過比較器的輸出進(jìn)行喚醒觸發(fā)寄存器12的設(shè)定。
[0231]說明了本發(fā)明的幾個(gè)實(shí)施方式,但是這些實(shí)施方式是作為例子而舉出的,沒有限定發(fā)明范圍的意圖。這些新的實(shí)施方式能夠以其他的各種各樣的方式來實(shí)施,在不脫離發(fā)明要旨的范圍內(nèi)能夠進(jìn)行各種省略、替換、變更。這些實(shí)施方式及其變形包含于發(fā)明的范圍或要旨內(nèi),并且包含于權(quán)利要求所記載的發(fā)明及其等同的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種傳感器數(shù)據(jù)收集裝置,其能夠與具有不同的數(shù)據(jù)生成周期的多個(gè)傳感器連接,所述傳感器數(shù)據(jù)收集裝置具備: 控制器,其具有第I狀態(tài)和第2狀態(tài),在所述第2狀態(tài)時(shí)取得一個(gè)或多個(gè)所述傳感器的數(shù)據(jù);以及 第I電路,其具有第I寄存器,基于所述第I寄存器的寄存器值,使所述控制器從所述第I狀態(tài)向所述第2狀態(tài)轉(zhuǎn)變, 所述控制器基于所述多個(gè)數(shù)據(jù)生成周期中的最小的數(shù)據(jù)生成周期來設(shè)定所述第I寄存器。2.根據(jù)權(quán)利要求1所述的傳感器數(shù)據(jù)收集裝置,其中, 所述第I電路具備電源管理單元和具有所述第I寄存器的中斷控制器, 所述中斷控制器在從具有最小的數(shù)據(jù)生成周期的傳感器產(chǎn)生中斷請(qǐng)求時(shí),向所述電源管理單元產(chǎn)生第I信號(hào), 所述電源管理單元以所述第I信號(hào)為觸發(fā),使所述控制器轉(zhuǎn)變到所述第2狀態(tài)。3.根據(jù)權(quán)利要求2所述的傳感器數(shù)據(jù)收集裝置,其中, 所述第I寄存器具有: 第2寄存器,其存儲(chǔ)表示有無來自所述多個(gè)傳感器的中斷請(qǐng)求的信息;以及 第3寄存器,其存儲(chǔ)識(shí)別具有最小的數(shù)據(jù)生成周期的傳感器的信息。4.根據(jù)權(quán)利要求3所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器在轉(zhuǎn)變到了所述第2狀態(tài)時(shí),基于所述第2寄存器的寄存器值,取得存在中斷請(qǐng)求的一個(gè)或多個(gè)傳感器的數(shù)據(jù),將所述第2寄存器清零,轉(zhuǎn)變到所述第I狀態(tài)。5.根據(jù)權(quán)利要求1所述的傳感器數(shù)據(jù)收集裝置,其中, 所述第I電路具備電源管理單元和具有所述第I寄存器的計(jì)時(shí)器, 在所述第I寄存器中存儲(chǔ)第I時(shí)刻信息,所述第I時(shí)刻信息是所述多個(gè)傳感器中的具有最小的數(shù)據(jù)生成周期的傳感器的下次的數(shù)據(jù)生成時(shí)刻, 所述計(jì)時(shí)器在當(dāng)前時(shí)刻與所述第I寄存器值一致時(shí),向所述電源管理單元產(chǎn)生第2信號(hào), 所述電源管理單元以所述第2信號(hào)為觸發(fā),使所述控制器轉(zhuǎn)變到所述第2狀態(tài)。6.根據(jù)權(quán)利要求5所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器具有管理各傳感器的數(shù)據(jù)生成周期和所述第I時(shí)刻信息的管理表, 所述控制器在轉(zhuǎn)變到了所述第2狀態(tài)時(shí),取得當(dāng)前時(shí)刻為所述第I時(shí)刻信息以上的一個(gè)或多個(gè)傳感器的數(shù)據(jù)。7.根據(jù)權(quán)利要求6所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器對(duì)取得了數(shù)據(jù)的所述傳感器的所述第I時(shí)刻信息進(jìn)行更新,根據(jù)具有所述最小的數(shù)據(jù)生成周期的傳感器的所述第I時(shí)刻信息來更新所述第I寄存器值,轉(zhuǎn)變到所述第I狀態(tài)。8.根據(jù)權(quán)利要求1所述的傳感器數(shù)據(jù)收集裝置,其中, 所述第I電路具備:具有第2寄存器和第3寄存器的中斷控制器;具有第4寄存器的計(jì)時(shí)器;以及電源管理單元, 在所述第2寄存器中存儲(chǔ)表示有無來自所述多個(gè)傳感器的中斷請(qǐng)求的信息, 在所述第3寄存器中存儲(chǔ)識(shí)別所述多個(gè)傳感器中的具有最小的數(shù)據(jù)生成周期的傳感器的信息, 在所述第4寄存器中存儲(chǔ)第I時(shí)刻信息,所述第I時(shí)刻信息是具有所述最小的數(shù)據(jù)生成周期的傳感器的下次的數(shù)據(jù)生成時(shí)刻, 所述中斷控制器基于所述第2寄存器和所述第3寄存器,在從具有所述最小的數(shù)據(jù)生成周期的傳感器產(chǎn)生中斷請(qǐng)求時(shí),向所述電源管理單元產(chǎn)生第I信號(hào), 所述計(jì)時(shí)器在當(dāng)前時(shí)刻與所述第4寄存器的寄存器值一致時(shí),向所述電源管理單元產(chǎn)生第2信號(hào), 所述電源管理單元以所述第I信號(hào)或所述第2信號(hào)為觸發(fā),使所述控制器轉(zhuǎn)變到所述第2狀態(tài)。9.根據(jù)權(quán)利要求7所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器具有管理表,所述管理表管理各傳感器的數(shù)據(jù)生成周期、所述第I時(shí)刻信息和表示有無中斷請(qǐng)求功能的觸發(fā)類型, 所述控制器在轉(zhuǎn)變到了所述第2狀態(tài)時(shí),基于所述第2寄存器的寄存器值,取得存在中斷請(qǐng)求的一個(gè)或多個(gè)第I傳感器的數(shù)據(jù),取得所述觸發(fā)類型為不具有中斷請(qǐng)求功能的傳感器中的當(dāng)前時(shí)刻為所述第I時(shí)刻信息以上的一個(gè)或多個(gè)第2傳感器的數(shù)據(jù)。10.根據(jù)權(quán)利要求9所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器在取得了所述第I傳感器的數(shù)據(jù)之后,將所述第2寄存器清零,更新所述第I傳感器的所述第I時(shí)刻信息,在取得了所述第2傳感器的數(shù)據(jù)之后,更新所述第2傳感器的所述第I時(shí)刻信息,在根據(jù)具有所述最小的數(shù)據(jù)生成周期的傳感器的觸發(fā)類型而更新了所述第3寄存器和所述第4寄存器的任一方之后,轉(zhuǎn)變到所述第I狀態(tài)。11.一種傳感器數(shù)據(jù)收集裝置,其能夠與具有多個(gè)不同的數(shù)據(jù)生成周期的多個(gè)傳感器連接,所述傳感器數(shù)據(jù)收集裝置具備: 控制器,其具有第I狀態(tài)和第2狀態(tài),在所述第2狀態(tài)時(shí)取得一個(gè)或多個(gè)所述傳感器的數(shù)據(jù);以及 第I電路,其具有第I寄存器,基于所述第I寄存器的寄存器值,使所述控制器從所述第I狀態(tài)向所述第2狀態(tài)轉(zhuǎn)變, 所述控制器針對(duì)每個(gè)傳感器,基于所述數(shù)據(jù)生成周期來算出作為下次的數(shù)據(jù)生成時(shí)刻的第I時(shí)刻信息,對(duì)所述第I時(shí)刻信息分別加上數(shù)據(jù)有效期間來算出第2時(shí)刻信息,基于各傳感器中的具有比最小的第2時(shí)刻信息小的一個(gè)或多個(gè)第I時(shí)刻信息中的最大的第I時(shí)刻信息的第I傳感器的第I時(shí)刻信息,設(shè)定所述第I寄存器。12.根據(jù)權(quán)利要求11所述的傳感器數(shù)據(jù)收集裝置,其中, 所述第I電路具備電源管理單元和具有所述第I寄存器的中斷控制器, 所述第I寄存器具有:第2寄存器,其存儲(chǔ)表示有無來自所述多個(gè)傳感器的中斷請(qǐng)求的信息;和第3寄存器,其存儲(chǔ)識(shí)別所述第I傳感器的信息, 所述中斷控制器基于所述第2寄存器和所述第3寄存器,在從所述第I傳感器產(chǎn)生中斷請(qǐng)求時(shí),向所述電源管理單元產(chǎn)生第I信號(hào), 所述電源管理單元以所述第I信號(hào)為觸發(fā),使所述控制器轉(zhuǎn)變到所述第2狀態(tài)。13.根據(jù)權(quán)利要求12所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器具有管理表,所述管理表管理各傳感器的數(shù)據(jù)生成周期、所述第I時(shí)刻信息、數(shù)據(jù)有效期間和第2時(shí)刻信息, 所述控制器在轉(zhuǎn)變到了所述第2狀態(tài)時(shí), 基于所述第2寄存器的寄存器值,取得存在中斷請(qǐng)求的一個(gè)或多個(gè)傳感器的數(shù)據(jù),將所述第2寄存器清零, 對(duì)產(chǎn)生了所述中斷請(qǐng)求的傳感器的所述第I時(shí)刻信息和所述第2時(shí)刻信息進(jìn)行更新,基于更新后的所述管理表來確定所述第I傳感器,將識(shí)別所述第I傳感器的信息存儲(chǔ)到所述第3寄存器,然后轉(zhuǎn)變到所述第I狀態(tài)。14.根據(jù)權(quán)利要求11所述的傳感器數(shù)據(jù)收集裝置,其中, 所述第I電路具備電源管理單元和具有所述第I寄存器的計(jì)時(shí)器, 所述第I寄存器具有存儲(chǔ)所述第I傳感器的所述第I時(shí)刻信息的第4寄存器, 所述計(jì)時(shí)器在當(dāng)前時(shí)刻與所述第4寄存器的寄存器值一致時(shí),向所述電源管理單元產(chǎn)生第2信號(hào), 所述電源管理單元以所述第2信號(hào)為觸發(fā),使所述控制器轉(zhuǎn)變到所述第2狀態(tài)。15.根據(jù)權(quán)利要求14所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器具有管理表,所述管理表管理各傳感器的數(shù)據(jù)生成周期、所述第I時(shí)刻信息、數(shù)據(jù)有效期間和第2時(shí)刻信息, 所述控制器在轉(zhuǎn)變到了所述第2狀態(tài)時(shí), 基于所述管理表,取得當(dāng)前時(shí)刻為所述第I時(shí)刻信息以上的一個(gè)或多個(gè)傳感器的數(shù)據(jù),對(duì)取得了所述數(shù)據(jù)的傳感器的第I時(shí)刻信息進(jìn)行更新, 更新各傳感器的所述第2時(shí)刻信息,基于更新后的所述管理表來確定所述第I傳感器,將所述第I傳感器的第I時(shí)刻信息存儲(chǔ)到所述第4寄存器,轉(zhuǎn)變到所述第I狀態(tài)。16.根據(jù)權(quán)利要求11所述的傳感器數(shù)據(jù)收集裝置,其中, 所述第I電路具備:具有第2寄存器和第3寄存器的中斷控制器;具有第4寄存器的計(jì)時(shí)器;以及電源管理單元, 所述第2寄存器存儲(chǔ)表示有無來自所述多個(gè)傳感器的中斷請(qǐng)求的信息,所述第3寄存器通過所述控制器存儲(chǔ)識(shí)別所述第I傳感器的信息,所述第4寄存器存儲(chǔ)所述第I傳感器的所述第I時(shí)刻信息, 所述中斷控制器基于所述第2寄存器和所述第3寄存器,在從所述第I傳感器產(chǎn)生中斷請(qǐng)求時(shí)向所述電源管理單元產(chǎn)生第I信號(hào), 所述計(jì)時(shí)器在當(dāng)前時(shí)刻與所述第4寄存器的寄存器值一致時(shí),向所述電源管理單元產(chǎn)生第2信號(hào), 所述電源管理單元以所述第I信號(hào)或所述第2信號(hào)為觸發(fā),使所述控制器轉(zhuǎn)變到所述第2狀態(tài)。17.根據(jù)權(quán)利要求16所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器具有管理表,所述管理表管理各傳感器的數(shù)據(jù)生成周期、所述第I時(shí)刻信息、數(shù)據(jù)有效期間、第2時(shí)刻信息和表示有無中斷請(qǐng)求功能的觸發(fā)類型, 所述控制器在轉(zhuǎn)變到了所述第2狀態(tài)時(shí), 基于所述第2寄存器的寄存器值,取得存在中斷請(qǐng)求的一個(gè)或多個(gè)第2傳感器的數(shù)據(jù),將所述第2寄存器清零,更新所述第2傳感器的所述第I時(shí)刻信息, 取得所述觸發(fā)類型為不具有中斷請(qǐng)求功能的傳感器中的當(dāng)前時(shí)刻為所述第I時(shí)刻信息以上的一個(gè)或多個(gè)第3傳感器的數(shù)據(jù),更新所述第3傳感器的所述第I時(shí)刻信息, 更新各傳感器的所述第2時(shí)刻信息,基于更新后的所述管理表來確定所述第I傳感器,根據(jù)第I傳感器的觸發(fā)類型來更新所述第3寄存器和所述第4寄存器的任一方, 然后轉(zhuǎn)變到所述第I狀態(tài)。18.根據(jù)權(quán)利要求13所述的傳感器數(shù)據(jù)收集裝置,其中, 所述各傳感器的數(shù)據(jù)生成周期,被設(shè)定為減去第I余裕值而得到的值, 所述控制器在轉(zhuǎn)變到了所述第2狀態(tài)時(shí), 基于所述第2寄存器的寄存器值,取得存在中斷請(qǐng)求的一個(gè)或多個(gè)傳感器的數(shù)據(jù),將所述第2寄存器清零, 產(chǎn)生了所述中斷請(qǐng)求的傳感器中的通過所述第3寄存器識(shí)別為所述第I傳感器的傳感器,基于當(dāng)前時(shí)刻和數(shù)據(jù)生成周期來更新所述第I時(shí)刻信息, 產(chǎn)生了所述中斷請(qǐng)求的傳感器中的未通過所述第3寄存器識(shí)別為所述第I傳感器的傳感器,基于上次的第I時(shí)刻信息和數(shù)據(jù)生成周期來更新所述第I時(shí)刻信息, 對(duì)各傳感器的更新后的第I時(shí)刻信息分別加上各傳感器的數(shù)據(jù)有效期間來算出各傳感器的第2時(shí)刻信息,確定具有比從各傳感器的第2時(shí)刻信息中的最小的第2時(shí)刻信息減去第2余裕值而得到的值小的一個(gè)或多個(gè)第I時(shí)刻信息中的最大的第I時(shí)刻信息的第4傳感器,將識(shí)別所述第4傳感器的信息設(shè)定到所述第3寄存器。19.根據(jù)權(quán)利要求17所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器使用所述第I時(shí)刻信息,向用戶提示各傳感器的數(shù)據(jù)生成時(shí)刻。20.根據(jù)權(quán)利要求17所述的傳感器數(shù)據(jù)收集裝置,其中, 所述控制器具有包含多個(gè)階段的睡眠狀態(tài)的所述第I狀態(tài), 所述控制器計(jì)算從本次啟動(dòng)時(shí)到下次啟動(dòng)時(shí)為止的第I時(shí)間間隔,根據(jù)計(jì)算出的第I時(shí)間間隔來轉(zhuǎn)變到所述多個(gè)階段的睡眠狀態(tài)的任一個(gè)的所述第I狀態(tài)。
【文檔編號(hào)】G06F1/32GK106055068SQ201610110147
【公開日】2016年10月26日
【申請(qǐng)日】2016年2月29日 公開號(hào)201610110147.5, CN 106055068 A, CN 106055068A, CN 201610110147, CN-A-106055068, CN106055068 A, CN106055068A, CN201610110147, CN201610110147.5
【發(fā)明人】武田瑛, 小高剛, 橫澤彰
【申請(qǐng)人】株式會(huì)社東芝
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1