欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

半導體裝置的制作方法

文檔序號:11176994閱讀:980來源:國知局
半導體裝置的制造方法

相關(guān)申請的交叉引用

包括說明書、附圖和摘要的2016年3月23日提交的日本專利申請no.2016-058614的公開的全部內(nèi)容通過引用并入本文中。

本公開涉及半導體裝置,以及適用于例如其中內(nèi)置了計時器的類型的半導體裝置。



背景技術(shù):

微控制器被結(jié)合進了每件設(shè)備中,諸如家用電器、視聽設(shè)備、蜂窩電話、汽車、工業(yè)機械等。微控制器是一種通過根據(jù)存儲在存儲器中的程序執(zhí)行處理來控制每件設(shè)備的操作的半導體裝置。要求包括要被結(jié)合進上面提到的(一件或多件)設(shè)備中的微控制器的組件依賴于其應(yīng)用而具有可靠性。因此,除了通過要被控制的診斷傳感器、致動器等來檢測上述的傳感器、致動器等中出現(xiàn)的故障以外,還要求微控制器檢測微控制器自身中出現(xiàn)的故障。

例如,在美國未經(jīng)審查的專利申請公開no.2013/20978中公開了上面提到的半導體裝置的一個示例。



技術(shù)實現(xiàn)要素:

本公開的目的是提供用于有效地診斷半導體裝置中內(nèi)置的計時器的故障的技術(shù)。

本公開的其它主題和新穎特性將通過本說明書的描述和附圖而變得清楚。

如下將對本公開的代表性示例進行簡單描述。

即,根據(jù)本公開的一個實施例,提供有一種半導體裝置,該半導體裝置包括:第一計時器,包括第一計數(shù)器并且執(zhí)行與布置在半導體裝置外部的外部設(shè)備的時間的時間同步;第二計時器,包括第二計數(shù)器;以及控制器,包括cpu,以及將第一計數(shù)器的計數(shù)值與第二計數(shù)器的計數(shù)值進行比較并且基于比較結(jié)果檢測第二計時器的失靈(和/或故障等)。

根據(jù)本公開的一個實施例的半導體裝置,可以有效地診斷內(nèi)置計時器。

附圖說明

圖1是例示根據(jù)本公開的第一實施例的微控制器的一個示例的框視圖。

圖2是例示圖1中所例示的eptpc的一個示例的框圖。

圖3a是例示時間同步的一個示例的圖。

圖3b是例示eptpc計數(shù)器與mtu計數(shù)器之間的關(guān)系的一個示例的時序圖。

圖4是例示在診斷計時器的計數(shù)器的故障時執(zhí)行的穩(wěn)定處理操作的一個示例的流程圖。

圖5a是例示在診斷計時器的計數(shù)器的故障時執(zhí)行的時間匹配事件中斷處理操作的一個示例的流程圖。

圖5b是例示在診斷計時器的計數(shù)器的故障時執(zhí)行的溢出中斷處理操作的一個示例的流程圖。

圖6是例示根據(jù)第二實施例的面向功能安全的工業(yè)電動機控制系統(tǒng)的一個示例的框圖。

圖7是例示用于多個工業(yè)電動機的工業(yè)電動機控制系統(tǒng)的配置的一個示例的框圖。

圖8是例示面向功能安全的工業(yè)電動機控制系統(tǒng)中的邏輯組成的一個示例的框圖。

圖9是例示在診斷關(guān)于計時器生成pwm波形信號的情形的計數(shù)器的故障時執(zhí)行的穩(wěn)定處理操作的一個示例的流程圖。

圖10a是例示在診斷關(guān)于計時器生成pwm波形信號的情形的計數(shù)器的故障時執(zhí)行的ptp命令接收中斷處理操作的一個示例的流程圖。

圖10b是例示在診斷關(guān)于計時器生成pwm波形信號的情形的計數(shù)器的故障時執(zhí)行的比較匹配中斷處理操作的一個示例的流程圖。

圖11是例示在計時器生成pwm波形信號的情形下的計數(shù)器的操作的一個示例的時序圖。

圖12是例示根據(jù)第三實施例的工業(yè)電動機系統(tǒng)的一個示例的框圖。

圖13是例示在pwm波形比較中執(zhí)行的示意性操作的一個示例的時序圖。

圖14是例示在pwm波形比較中執(zhí)行的穩(wěn)定處理操作的一個示例的流程圖。

圖15a是例示在pwm波形比較中執(zhí)行的上升沿中斷處理操作的一個示例的流程圖。

圖15b是例示在pwm波形比較中執(zhí)行的比較匹配中斷處理操作的一個示例的流程圖。

圖16是例示根據(jù)第四實施例的32位計數(shù)器的操作的一個示例的時序圖。

具體實施方式

在下文中,將參考附圖對本公開的實施例和實際示例進行描述。然而,在下列描述中,存在為相同的構(gòu)成元件指定相同的附圖標記并且省略其重復描述的情況。

在要被裝載在面向功能安全的設(shè)備(諸如工業(yè)設(shè)備、汽車相關(guān)產(chǎn)品等)上的微控制器中,除了檢測cpu、內(nèi)置存儲器等的故障以外,檢測外圍模塊(諸如多功能計時器、中斷控制器、ad轉(zhuǎn)換器等)中發(fā)生的故障也至關(guān)重要。特別地,多功能計時器的計數(shù)器的電路規(guī)模是大的,因此在多功能計時器中容易發(fā)生失靈。另外,多功能計時器的設(shè)計是復雜的,以便應(yīng)對溢出、跳躍時間等。在故障中存在永久不可能恢復的硬錯誤以及暫時出現(xiàn)并且可以恢復的軟錯誤。例如,裝載在微控制器上的mtu(多功能計時器脈沖單元)的軟錯誤發(fā)生概率比其它外圍模塊高,以及因此對多功能計時器的有效故障診斷是亟待解決的問題。

本申請的發(fā)明人和其他人已經(jīng)關(guān)于內(nèi)置計時器的診斷對下列方法進行了檢查。

(1)使用驗證程序的診斷

通過實際應(yīng)用在設(shè)計內(nèi)置計時器時所使用的驗證程序來確認諸如開始、遞增計數(shù)、停止等的基本操作。

(2)使用另一個內(nèi)置計時器的診斷

為了驗證操作與要驗證的內(nèi)置計時器不同的另一個內(nèi)置計時器并且將這些內(nèi)置計時器中所包括的計數(shù)器的計數(shù)值彼此比較以便得到計數(shù)器差。

然而,在方法(1)中,只可以確認邏輯開/關(guān)操作和單個操作,而難以確認例如將計數(shù)器等的定量值的檢測、pwm(脈沖寬度調(diào)制)波形信號的生成等組合在一起的組合操作。在方法(2)中,當充當要被驗證的內(nèi)置計時器和另一個內(nèi)置計時器的計數(shù)操作的基礎(chǔ)的振蕩器在這些內(nèi)置計時器之間共用時,在內(nèi)置計時器兩者都發(fā)生失靈時可能不會檢測到故障的可能性是高的。另外,在方法(1)和(2)中,要求通過暫時停止執(zhí)行用戶程序以進行診斷,因此降低了用戶程序的處理效率。

在一個實施例中,同步以太網(wǎng)控制器以特定的時間間隔來操作和停止多功能計時器的計數(shù)器,并且通過將多功能計時器的計數(shù)器的計數(shù)值與其時間已經(jīng)根據(jù)同步以太網(wǎng)被調(diào)節(jié)的計數(shù)器的計數(shù)值進行比較來診斷多功能計時器的故障。

根據(jù)一個實施例,由于使用了外部時間,因此提高了多功能計時器的故障檢測率。另外,可以與時間同步序列的執(zhí)行并行地執(zhí)行多功能計時器故障診斷以及消除用戶應(yīng)用程序的執(zhí)行的暫時停止。

[第一實施例]

將參照圖1對根據(jù)第一實施例的微控制器進行描述。圖1是例示根據(jù)第一實施例的微控制器的配置的一個示例的框圖。根據(jù)第一實施例的微控制器10包括只讀存儲器(rom)11、隨機存取存儲器(ram)12、中央處理單元(cpu)13等。另外,微控制器10還包括ieee1588控制器(以下稱為eptpc)14、多功能計時器(mtu)15、icu(中斷控制器單元)16、elc(事件鏈路控制器)17、i/o端口18等。微控制器10是由一個半導體芯片(半導體襯底)形成的半導體裝置。rom11和cpu13也稱作控制器。附帶地,ram12和icu16也可以包括在控制器中。將基于ieee1588標準(參見ieee1588-2008ver2.0(ieee1588同步以太網(wǎng)標準))的時間同步協(xié)議(以下稱為ptp(精確時間協(xié)議))用于mtu15的故障診斷。

rom11將用于檢測mtu15的故障的程序存儲在自身中。rom11由非易失性存儲器(諸如,例如,閃存存儲器等)構(gòu)成。ram12將用于執(zhí)行程序的工作數(shù)據(jù)存儲在自身中。ram11由易失性存儲器(諸如,例如,sram等)構(gòu)成。除了根據(jù)已經(jīng)從rom12讀出的程序執(zhí)行用于所涉及的設(shè)備的控制操作、通信處理等的用戶應(yīng)用的處理以外,cpu13還執(zhí)行用于檢測mtu15的故障的處理(故障判定)和用于恢復mtu15的處理。eptpc14通過使用以太網(wǎng)線路以及根據(jù)ptp來執(zhí)行與外部設(shè)備(時間分發(fā)源)2的時間的時間同步。mtu15是多功能計時器,該多功能計時器包括多個通道并且其中每個通道都具有多個功能,諸如,除了通過對值進行遞增計數(shù)以及對值進行遞減計數(shù)所執(zhí)行的計數(shù)操作以外,還有生成和輸出pwm波形信號的功能、輸入捕獲功能、通過使用pwm波形生成和輸出功能以及輸入捕獲功能來控制工業(yè)電動機的功能等。icu16向cpu13通知來自eptpc14和mtu15的中斷請求。elc17通過耦合事件信號來減小由軟件干預引起的延遲,使得每當eptpc14的計數(shù)器達到特定的時間時就開始操作mtu15。

接著,將通過使用圖2對eptpc14進行描述。圖2是例示圖1中的eptpc14以及與eptpc14有關(guān)的硬件的配置的一個示例的框圖。

eptpc14包括第0通道ptp協(xié)議處理單元(ch0)141、第一通道ptp協(xié)議處理單元(ch1)142、分組中繼單元143、時鐘(時間)校正單元144等。第0通道ptp協(xié)議處理單元(ch0)141和第一通道ptp協(xié)議處理單元(ch1)142執(zhí)行協(xié)議處理,諸如ptp幀傳輸-接收處理、命令序列處理等。分組中繼單元143對已經(jīng)由第0通道ptp協(xié)議處理單元(ch0)141和第一通道ptp協(xié)議處理單元(ch1)142處理的以太網(wǎng)幀(以下稱為幀)執(zhí)行中繼和校正處理。時鐘(時間)校正單元144包括充當eptpc14的計數(shù)器的本地時鐘計數(shù)器1441,并且具有校正時間以便被調(diào)節(jié)至時間分發(fā)源的時間的功能、在特定時間經(jīng)由icu16向cpu13通知中斷的接收的功能。

通常,eptpc14通過將第0通道etherc(以太網(wǎng)控制器)(ch0)21和第一通道etherc(ch1)22、第0通道edmac(用于以太網(wǎng)控制器的dma控制器)(ch0)23和第一通道edmac(ch1)24以及ptpedmac25組合在一起來使用它們。第0通道etherc(ch0)21和第一通道etherc(ch1)22執(zhí)行與mac層相對應(yīng)的處理。第0通道edmac(ch0)23和第一通道edmac(ch1)24每個都適于有效地處理和管理標準幀并且充當與cpu13的接口。ptpedmac25處理ptp的幀。eptpc14經(jīng)由執(zhí)行數(shù)字信號到模擬信號的轉(zhuǎn)換的物理層(phy)(未例示)和以太網(wǎng)連接器(通常,rj-45)7相對于以太網(wǎng)線纜5輸入/輸出標準/ptp幀。另外,eptpc14經(jīng)由elc17耦合至mtu15和i/o端口18并且具有在已經(jīng)根據(jù)ptp與外部設(shè)備的時間同步的時間處開始對mtu15的計時器計數(shù)器的值進行計數(shù)的功能以及稍后描述的脈沖輸出功能(脈沖輸出計時器功能)。盡管,在圖2中,例示了將第0通道ptp協(xié)議處理單元(ch0)141和第一通道ptp協(xié)議處理單元(ch1)142、第0通道etherc(ch0)21和第一通道etherc(ch1)22以及第0通道edmac(ch0)23和第一通道edmac(ch1)24裝載在微控制器10上的雙通道配置,但是微控制器10可以具有單通道配置。

接著,將使用圖3a和圖3b對用于故障診斷的mtu15的配置的一個示例進行描述。圖3a是例示在面向功能安全的設(shè)備與作為時間分發(fā)源的外部設(shè)備之間的時間同步的一個示例的圖形。圖3b是例示eptpc計數(shù)器與mtu計數(shù)器之間的關(guān)系的一個示例的時序圖。

圖3a和圖3b中用于故障診斷的配置涉及根據(jù)ptp執(zhí)行與外部設(shè)備2的時間的時間同步并且通過mtu15對計數(shù)器的值進行計數(shù)的情況,該外部設(shè)備2是在裝載了微控制器10的面向功能安全的設(shè)備1上的時間分發(fā)源。

(11)面向功能安全的設(shè)備1的微控制器10基于ptp將故障檢測的時間間隔設(shè)定為時間匹配事件的間隔。

(12)微控制器10以用于根據(jù)ptp的固定時間調(diào)節(jié)發(fā)出的命令的間隔(此處,將間隔設(shè)定為一秒)開始與作為時間分發(fā)源的外部設(shè)備2的時間的時間同步。用于基于ptp的時間調(diào)節(jié)的命令為sync、follow_up、delay_req、delay_resp等。

(13)微控制器10在eptpc14的本地時鐘計數(shù)器1441的時間t(1)處開始mtu的計數(shù)器的遞增計數(shù)。

(14)每當在(11)中設(shè)定的基于ptp的時間匹配事件發(fā)生時(t(2)、t(4)、……t(n)),微控制器10就將已經(jīng)與外部設(shè)備同步的eptpc計數(shù)器的增益程度與mtu計數(shù)器的增益程度進行比較。

(15)當計數(shù)器差的絕對值超過在上面的(14)中已經(jīng)預先限定的閾值的范圍時,微控制器10將其檢測為計數(shù)器的故障。另外,當絕對值在閾值的范圍內(nèi)時,微控制器10繼續(xù)在上面的(14)中的每當時間同步時對計數(shù)器的增益程度進行比較。

圖3b中的虛線指示eptpc計數(shù)器與mtu計數(shù)器之間的計數(shù)值沒有差(計數(shù)器差=0)的情況,以及實線指示mtu計數(shù)器領(lǐng)先于eptpc計數(shù)器(存在計數(shù)器差)的情況。在圖3b中的示例中,盡管時間t(2)處的計數(shù)器差(d(2))、時間t(4)處的計數(shù)器差(d(4))……等在閾值范圍內(nèi),但是時間t(n)處的計數(shù)器差(d(n))在閾值范圍之外以及檢測到故障。

接著,將使用圖4、圖5a和圖5b對用于計時器計數(shù)器的故障診斷的軟件操作流程進行描述。圖4是例示在診斷計時器計數(shù)器的故障時執(zhí)行的穩(wěn)定處理操作的一個示例的流程圖。圖5a是例示在診斷計時器計數(shù)器的故障時執(zhí)行的時間匹配事件中斷處理操作的一個示例的流程圖。圖5b是例示在診斷計時器計數(shù)器的故障時執(zhí)行的溢出中斷處理操作的一個示例的流程圖。此處,使用從eptpc14生成的時間匹配事件中斷和從mtu15生成的溢出中斷作為中斷(即,中斷信號)。當eptpc14的本地時鐘計數(shù)器1441的值已經(jīng)匹配了特定設(shè)定值時,從eptpc14生成時間匹配事件中斷并且與中斷的生成同時地開始對mtu15的計時器計數(shù)器的值的計數(shù)。當計時器計數(shù)器(例如,16位計數(shù)器)的值已經(jīng)溢出時,從mtu15生成溢出中斷。

<穩(wěn)定處理>

步驟s11:在已經(jīng)開始用戶應(yīng)用之后,cpu13開始執(zhí)行用于計時器故障診斷的軟件。隨后,cpu13執(zhí)行對mtu15的預定標器(提供至mtu15的時鐘信號與mtu15的計時器計數(shù)器的輸出的頻率比)、計數(shù)操作模式(自由運行模式、比較匹配模式、pwm波形輸出模式等)和mtu計數(shù)器的中斷、初始化(mtu_count←0)等的設(shè)定。

步驟s12:cpu13執(zhí)行eptpc14的同步模式、時間匹配事件、時間匹配事件發(fā)生時間等的設(shè)置。

步驟13:cpu13設(shè)定elc17以便將eptpc14的時間匹配事件耦合至mtu15的啟動因素。

步驟s14:cpu13設(shè)定icu16以便向cpu13通知從mtu15生成的溢出中斷和從eptpc14生成的時間匹配事件中斷。另外,cpu13對時間匹配事件標志進行初始化(ptp_flag←假)。

步驟s15:cpu13將用于故障檢測判定的mtu計數(shù)器(mtu_count)與eptpc計數(shù)器(ptp_count)之間的計數(shù)值的差的絕對值的上限值設(shè)定為閾值。通過將由于振蕩器的存在將出現(xiàn)的mtu15的計時器計數(shù)器的誤差、由中斷處理引起的延遲、ptp的協(xié)議操作上的誤差等考慮在內(nèi)來設(shè)定閾值(thresh)。將通過稍后描述的公式(2)表明閾值的一個示例。此處,mtu計數(shù)器(mtu_count)和eptpc計數(shù)器(ptp_count)是用于故障檢測中的判定的軟件元件而不是硬件元件,即,不是硬件的mtu15的計時器計數(shù)器和eptpc14的本地時鐘計數(shù)器1441。

步驟s16:cpu13通過使用eptpc14根據(jù)ptp開始與作為時間分發(fā)源的外部設(shè)備2的時間的時間同步。此處,根據(jù)ptp從一件設(shè)備或者多件設(shè)備中選擇具有最準確的時鐘信號的一件設(shè)備作為外部設(shè)備2(時間分發(fā)源)。

步驟s17:cpu13確認時間匹配事件是否發(fā)生。使用時間匹配事件標志(ptp_flag)判定時間匹配事件是否發(fā)生。在是的情況下(時間匹配事件已經(jīng)發(fā)生)(ptp_flag=真),cpu13進行到步驟s18中的處理,以及在否的情況下,cpu13進行到步驟s1b中的處理。附帶地,在用于稍后描述的中斷處理的步驟s28中設(shè)定時間匹配事件標志(ptp_flag)。

步驟s18:cpu13確認計數(shù)器差的絕對值是否超過閾值。計數(shù)器差是通過從mtu計數(shù)器(mtu_count)減去已經(jīng)以mtu15的操作頻率(fmtu)與eptpc14的操作頻率(fptp)的比率加權(quán)的eptpc計數(shù)器(ptp_count)得到的差。

計數(shù)器差=|mtu_count-(fmtu/fptp)ptp_count|

當計數(shù)器差超過閾值(是)時,cpu13將其檢測為故障并且以錯誤終止處理。當計數(shù)器差沒有超過閾值(否)時,cpu13進行到步驟s19中的處理。

步驟s19:cpu13清空時間匹配事件標志(ptp_flag←假)。

步驟s1a:cpu13清空mtu計數(shù)器(mtu_count←0)。

步驟s1b:cpu13判定用戶應(yīng)用是否終止。當用戶應(yīng)用終止(是)時,cpu13終止處理。當用戶應(yīng)用未終止(否)時,cpu13回到步驟s17以及繼續(xù)執(zhí)行處理。

<中斷處理>

以下,將對時間匹配事件中斷處理進行描述。

步驟s21:當已經(jīng)從eptpc14生成時間匹配事件中斷時(t(0)、t(1)、t(3)、t(4)、……t(n-1)和t(n)),cpu13通過將指示時間匹配事件中斷處理發(fā)生頻率的中斷計數(shù)器的值增加一(n←n+1)來執(zhí)行更新。

步驟s22:cpu13判定中斷是否為奇數(shù)中斷(t(1)、t(3)、……t(2n-1))。該判定通過參照中斷計數(shù)器(n)來進行。在奇數(shù)中斷(是)的情況下,cpu13進行到步驟s23中的處理。在偶數(shù)中斷(否)的情況下,cpu13進行到步驟s25中的處理。

步驟s23:mtu15的計時器計數(shù)器開始遞增計數(shù)操作。此處,盡管通過由elc17耦合事件信號來開始mtu15的計時器計數(shù)器的遞增計數(shù)操作并且因此不要求通過cpu13執(zhí)行軟件處理,但是為了便于說明操作將對軟件處理進行描述。附帶地,當不使用elc17時,要求通過cpu13執(zhí)行軟件處理。

步驟s24:cpu13讀出eptpc14的本地時鐘計數(shù)器1441的計數(shù)值(lccv)并且將所讀出的計數(shù)值設(shè)定為eptpc計數(shù)器的起始值(ptp_start←lccv)。隨后,cpu13進行到步驟s29中的處理。

步驟s25:cpu13終止mtu15的計時器計數(shù)器的遞增計數(shù)操作。

步驟s26:cpu13讀出mtu15的計時器計數(shù)器的計數(shù)值(tcnt)并且使用所讀出的計數(shù)值更新mtu計數(shù)器的值。所更新的值是通過將mtu15的計時器計數(shù)器的計數(shù)值與mtu計數(shù)器的當前值相加而得到的值(mtu_count←mtu_count+tcnt)。在某些情況下,用在步驟s31中從mtu15生成的溢出中斷來更新mtu計數(shù)器的值。

步驟s27:cpu13讀出eptpc14的本地時鐘計數(shù)器1441的計數(shù)值并且通過使用所讀出的計數(shù)值來更新eptpc計數(shù)器的值。所更新的值是通過從eptpc14的本地時鐘計數(shù)器1441的計數(shù)值減去步驟s24中設(shè)定的eptpc計數(shù)器的起始值而得到的值(ptp_count←lccv-ptp_start)。

步驟s28:cpu13設(shè)定時間匹配事件標志(ptp_flag←真)。

步驟s29:cpu13將要生成下一個時間匹配事件的時間設(shè)定到eptpc14。附帶地,該時間可以是在時間間隔方面與前一時間相同的時間,以及用于生成下一個時間匹配事件的時間的時間間隔可以相對于前一時間的時間間隔有所改變。

接著,以下將對溢出中斷進行描述。

步驟s31:當已經(jīng)從mtu15生成溢出中斷時,cpu13將mtu計數(shù)器的值更新為通過將溢出值(在16位計數(shù)器的情況下,216=65,536)與mtu計數(shù)器的當前值相加而得到的值(mtu_count←mtu_count+溢出值)。

<閾值的一個示例>

將對閾值(thresh)的一個示例進行描述。當閾值被分成由因為振蕩器的存在而導致的mtu15的計時器計數(shù)器的誤差引起的“threshosc”、由ptp的協(xié)議操作上的誤差引起的“threshptp”、由中斷處理引起的“threshint”以及由將依賴于cpu13的流水線和總線的狀態(tài)而出現(xiàn)的處理中的波動引起的“threshflu”時,確立公式(1)。

thresh=threshosc+threshptp+threshint+threshflu……(1)

此處,忽略諸如溫度特性等的其它因素的貢獻,因為這充分小于上面提到的值的貢獻。

當mtu15的操作頻率為fmtu,為mtu15提供時鐘信號的振蕩器的精度為xosc并且時間匹配事件間隔為tp1時,通過mtu計數(shù)器的計數(shù)數(shù)值的公式(1-1)表示由因為振蕩器的存在而導致的mtu15的計時器計數(shù)器的誤差引起的“threshosc”。

threshosc=fmtu*xosc*tp1……(1-1)

例如,當fcpu=120mhz,通過預定標器將mtu15的頻率除以16,fmtu=fcpu/16=7.5mhz,xosc=100ppm,以及tp1=100ms時,得到threshosc=75個周期。

ptp的協(xié)議操作上的誤差包括與mtu15的誤差類似的向eptpc14提供時鐘信號的振蕩器的誤差、用于時間調(diào)節(jié)的命令間隔、將取決于以太網(wǎng)上的總線狀態(tài)而出現(xiàn)的命令延遲等。當已經(jīng)將eptpc14并入微控制器10中時,通過由硬件元件執(zhí)行協(xié)議操作并且由時鐘(時間)校正單元144校正時間以便將時間調(diào)節(jié)至作為時間分發(fā)源的外部設(shè)備2的時間,將時間誤差降低至1μs至100ns變?yōu)榭赡?。在這種情況下,“threshptp”相當于mtu計數(shù)器的計數(shù)數(shù)值中的10個周期到1個周期,并且這意味著threshptp<threshosc。

當cpu13的操作頻率為fcpu,中斷處理出現(xiàn)頻率為xint并且中斷處理的周期數(shù)為nint時,由mtu計數(shù)器的計數(shù)數(shù)值的公式(1-2)表示由中斷處理引起的“threshint”。

threshint=(fmtu/fcpu)*(xint*nint)……(1-2)

此處,使得時間匹配事件中斷處理與溢出中斷處理在cpu13的操作頻率處的周期數(shù)近似相同。

例如,假設(shè)fcpu=120mhz并且fmtu=fcpu/16=7.5mhz。在中斷處理中,通過另外加上中斷響應(yīng)時間與恢復時間、將中斷響應(yīng)時間設(shè)定為10個周期、將中斷恢復時間設(shè)定為10個周期并且將中斷處理設(shè)定為平均80個周期而得到nint=100個周期。16位計數(shù)器的溢出每8.7ms(=65,536/7.5*106s)發(fā)生一次。因此,當執(zhí)行了11次(=100/8.7)溢出中斷處理時,通過加上已經(jīng)執(zhí)行了兩次的時間匹配事件中斷處理而確立xint=13次以及得到threshint=81個周期。

“threshflu”是微控制器10的cpu13執(zhí)行的處理中的波動的上限值并且小于“threshint”,以及因此threshflu<threshint。

“threshosc”是誤差的上限值,而“threshint”是中斷處理的平均值。盡管“threshint”的貢獻大于“threshosc”的貢獻,但是將其應(yīng)用為故障檢測中的最差值。由上述可知,公式(1)近似為公式(2)。

thresh=threshosc+threshptp+threshint+threshflu<threshosc+threshosc+threshint+threshint=(fmtu/fcpu)*(2*fcpu*xosc*tp1+2*xint*nint)……(2)

當將上面提到的數(shù)值應(yīng)用于公式(2)時,得到thresh=312個周期。

在第一實施例中,根據(jù)eptpc14(第一計時器)的本地時鐘計數(shù)器(第一計數(shù)器)1441的值對mtu15(第二計時器)的計時器計數(shù)器(第二計數(shù)器)的故障進行診斷,其中eptpc14的本地時鐘計數(shù)器1441的時間已經(jīng)被調(diào)節(jié)至作為時間分發(fā)源的外部設(shè)備2的時間。

根據(jù)第一實施例,由于可以根據(jù)ptp將多個外部時間用于診斷故障,因此不存在由故障診斷中共用的振蕩器的異常所引起的失靈并且可以基于高度準確的時間診斷計時器的故障。另外,由于可以與基于ptp的時間同步操作的執(zhí)行并行地執(zhí)行計時器的故障診斷,因此,相較于通過停止執(zhí)行用戶程序而執(zhí)行計時器的故障診斷的情況,可以更為抑制用戶程序處理效率的降低。

[第二實施例]

將使用圖6對將微控制器應(yīng)用于面向功能安全的工業(yè)設(shè)備的情況進行描述。圖6是例示根據(jù)第二實施例的工業(yè)電動機控制系統(tǒng)的配置的一個示例的框圖。

微控制器10a安裝在面向功能安全的設(shè)備1a上、控制面向功能安全的設(shè)備1a的操作、控制工業(yè)電動機3的操作以及與在網(wǎng)絡(luò)上與以太網(wǎng)線纜5耦合的其它件工業(yè)設(shè)備4(諸如機器人、ac伺服電動機、機械工具等)進行通信。附帶地,在功能安全標準(iec61508第7部分)等中,要求根據(jù)符合度水平相互監(jiān)控以及存在在面向功能安全的設(shè)備1a上安裝兩個微控制器(微控制器10a和微控制器20a)的情況。

要求由存儲器管理單元(mmu)、存儲器保護單元(mpu)等通過將布置了rom11和ram12上的安全數(shù)據(jù)的區(qū)域與布置非安全數(shù)據(jù)的區(qū)域分開以應(yīng)付功能安全來保護該區(qū)域。因此,除根據(jù)第一實施例的微控制器10的配置以外,還將未例示的存儲器管理單元(mmu)和/或存儲器保護單元(mpu)裝載在微控制器10a上。微控制器10a和工業(yè)電動機3經(jīng)由電動機驅(qū)動器6耦合在一起。隨后,通過根據(jù)由mtu15生成并且從i/o端口18輸出的pwm波形信號控制電動機驅(qū)動器6來控制工業(yè)電動機3。

將使用圖7對將圖6中面向功能安全的設(shè)備并入用于多個工業(yè)電動機的工業(yè)電動機控制系統(tǒng)中的情況進行描述。圖7是例示在用于多個工業(yè)電動機的工業(yè)電動機控制系統(tǒng)的配置的一個示例的框圖。作為多件面向功能安全的設(shè)備的從設(shè)備b1(1a1)、從設(shè)備b2(1a2)、……以及從設(shè)備bn-1(1an-1)根據(jù)ptp與作為時間分發(fā)源的主設(shè)備a(2a)時間同步以便在特定的時間處a同時開始n(n=2、3、……)個工業(yè)電動機3a、3a1、3a2、……、3an-1的操作并且同時診斷每件面向功能安全的設(shè)備上裝載的mtu15。

圖8是在將第二實施例應(yīng)用于面向功能安全的設(shè)備時的邏輯組成的一個示例的圖。盡管在第一實施例中的圖2中例示了與eptpc相關(guān)的硬件具有雙通道配置的情況,但是此處,將對單通道配置進行描述。

通信應(yīng)用和控制應(yīng)用處理安全數(shù)據(jù)和非安全數(shù)據(jù),并且將要布置在硬件中的處理細節(jié)、總線和存儲器相互分開。因此,準備并且使用安全數(shù)據(jù)所特有的一個軟件和非安全數(shù)據(jù)所特有的另一個軟件。另外,具有時間同步功能和計時器診斷功能的應(yīng)用(以下稱為同步計時器診斷應(yīng)用)處理安全數(shù)據(jù),并且處理非安全數(shù)據(jù)的時間同步應(yīng)用也裝載在系統(tǒng)上。

通信應(yīng)用是用于工業(yè)以太網(wǎng)的通信應(yīng)用,以及以太網(wǎng)/ip、profinet、ethercat等可用作代表性的工業(yè)以太網(wǎng)標準??刂茟?yīng)用適于控制已經(jīng)被并入ac伺服電動機、機器人等中的工業(yè)電動機的操作。tcp和udp/ip各自執(zhí)行邏輯通信耦合管理、基于tcp或者基于udp的分組傳輸-接收處理、耦合設(shè)備信息的管理等。另外,由于在ptp中僅處理基于udp的分組或者幀,因此可以使用僅安裝了udp/ip的中間件和/或可以不安裝中間件。以太網(wǎng)驅(qū)動器通過使用etherc21和edmac23執(zhí)行幀傳輸-接收處理、以太網(wǎng)線纜5的耦合和檢測等。erptc驅(qū)動器通過使用eptpc14執(zhí)行基于ptp的時間同步。mtu驅(qū)動器通過使用mtu15基于mtu15的定時信號生成pwm波形信號,該pwm波形信號是用于工業(yè)電動機3的控制信號。隨后,mtu驅(qū)動器經(jīng)由i/o端口18輸出pwm波形信號。由于在第一實施例中已經(jīng)對etherc21和edmac23進行了描述,因此此處省略其描述。

將使用圖9、圖10a、圖10b和圖11對在根據(jù)第二實施例的時間同步計時器診斷應(yīng)用中將pwm操作模式1用作mtu15的操作模式時執(zhí)行的操作流程進行描述。圖9是例示在診斷關(guān)于計時器生成pwm波形信號的情況的計數(shù)器的故障時執(zhí)行的穩(wěn)定處理操作的一個示例的流程圖。圖10a是例示在診斷關(guān)于計時器生成pwm波形信號的情況的計數(shù)器的故障時執(zhí)行的ptp命令接收中斷處理操作的一個示例的流程圖。圖10b是例示在診斷關(guān)于計時器生成pwm波形信號的情況的計數(shù)器的故障時執(zhí)行的比較匹配中斷處理操作的一個示例的流程圖。圖11是例示在計時器生成pwm波形信號時mtu的計時器計數(shù)器的操作的一個示例的時序圖。此處,使用從eptpc14生成的ptp命令接收中斷和從mtu15生成的比較匹配中斷作為中斷。當eptpc14已經(jīng)從時間分發(fā)源接收了基于ptp的同步命令并且已經(jīng)更新了計數(shù)器與時間分發(fā)源之間的時間差(offsetfrommaster)時,生成ptp命令接收中斷。當在如圖11所例示的pwm波形信號的周期處清空了包括在mtu15中并且生成pwm波形信號的計時器計數(shù)器時,從mtu15生成比較匹配中斷。

<穩(wěn)定處理>

步驟s41:在啟動用戶應(yīng)用之后,cpu13啟動時間同步計時器診斷應(yīng)用。隨后,cpu13執(zhí)行mtu15的預定標器的設(shè)定、計數(shù)操作模式(pwm操作模式1)的設(shè)定、pwm波形信號的周期的設(shè)定、中斷的設(shè)定、mtu計數(shù)器的初始化(mtu_count←0)等。

步驟s42:cpu13執(zhí)行eptpc14的同步模式的設(shè)定、ptp命令接收中斷的設(shè)定等。

步驟s43:cpu13設(shè)定icu6以便向cpu13通知從mtu15接收比較匹配中斷以及從eptpc14接收ptp命令接收中斷。另外,cpu13對ptp命令接收標志進行初始化(ptp_flag←假)。

步驟s44:cpu13將用于故障檢測判定的mtu計數(shù)器(mtu_count)與eptpc計數(shù)器(ptp_count)之間的值的差的絕對值的上限值設(shè)定為閾值。通過將由振蕩器的存在引起的mtu15的計時器計數(shù)器的誤差、由中斷處理引起的延遲、ptp的協(xié)議操作上的誤差等考慮在內(nèi)來設(shè)定閾值(thresh)。將通過稍后描述的公式(4)指示閾值的一個示例。

步驟s45:cpu13通過使用eptpc14以及根據(jù)ptp開始與作為時間分發(fā)源的外部設(shè)備2的時間的時間同步。此處,根據(jù)ptp從一件或多件設(shè)備中選擇具有最準確的時鐘信號的一件設(shè)備作為時間分發(fā)源。

步驟s46:cpu13讀出eptpc14的本地時鐘計數(shù)器1441的計數(shù)值并且將所讀出的計數(shù)值設(shè)定為eptpc計數(shù)器的起始值(ptp_start←lccv)。

步驟s47:cpu13指示開始mtu15的pwm波形信號的輸出。另外,如在第一實施例中的步驟s23中描述的,還可以通過由elc17耦合事件信號來開始mtu15的pwm波形信號的輸出。此處,將使用圖11對mtu15的操作進行描述。mtu15的計時器計數(shù)器對值進行遞增計數(shù)并且在當計數(shù)值(tcnt)達到tgrd時,將來自i/o端口18的輸出從低反相至高。計時器計數(shù)器繼續(xù)對值進行遞增計數(shù),并且在當計數(shù)值達到tgrc時,將來自i/o端口18的輸出從高反相至低并且向cpu13通知比較匹配中斷的生成。計時器計數(shù)器通過重復地執(zhí)行上面提到的操作輸出來自i/o端口18的pwm波形信號。在圖11中,例示了周期400μs、脈沖寬度200μs以及占空比50%的pwm波形信號的一個示例。

步驟s48:cpu13確認ptp命令接收是否發(fā)生。用ptp命令接收標志(ptp_flag)來判定ptp命令接收是否發(fā)生。在ptp命令接收發(fā)生(是)的情況下,cpu13進行到步驟s49中的處理。在ptp命令接收沒有發(fā)生(否)的情況下,cpu13進行到步驟s4c中的處理。

步驟s49:cpu13確認計數(shù)器差的絕對值是否超過閾值。計數(shù)器差是通過從mtu計數(shù)器(mtu_count)減去已經(jīng)以mtu15的操作頻率(fmtu)與eptpc14的操作頻率(fptp)的比率加權(quán)的eptpc計數(shù)器(ptp_count)得到的差。

計數(shù)器差=|mtu_count-(fmtu/fptp)ptp_count|

當計數(shù)器差超過閾值(是)時,cpu13將其檢測為故障并且以錯誤終止處理。當計數(shù)器差沒有超過閾值(否)時,cpu13進行到步驟s4a中的處理。

步驟s4a:cpu13清空ptp命令接收標志(ptp_flag←假)。

步驟s4b:cpu13清空mtu計數(shù)器(mtu_count←0)。

步驟s4c:cpu13判定用戶應(yīng)用是否終止。當用戶應(yīng)用終止(是)時,cpu13終止處理。當用戶應(yīng)用未終止(否)時,cpu13回到步驟s48以及繼續(xù)執(zhí)行處理。

<中斷處理>

以下,將對ptp命令接收中斷進行描述。

步驟s51:當已經(jīng)從eptpc14生成了ptp命令接收中斷時,cpu13讀出eptpc14的本地時鐘計數(shù)器1441的計數(shù)值并且使用所讀出的計數(shù)值更新eptpc計數(shù)器的值。所更新的值是通過從eptpc14的本地時鐘計數(shù)器1441的計數(shù)值(lccv)減去已經(jīng)在先前的ptp命令接收中斷處理或者穩(wěn)定處理中設(shè)定的ptp計數(shù)器的起始值而得到的值(ptp_count←lccv-ptp_start)。

步驟s52:cpu13讀出mtu15的計時器計數(shù)器的計數(shù)值(tcnt)并且使用所讀出的計數(shù)值更新mtu計數(shù)器的值。所更新的值是通過將mtu15的計時器計數(shù)器的計數(shù)值(tcnt)與mtu計數(shù)器的當前值相加得到的值(mtu_count←mtu_count+tcnt)。

步驟s53:cpu13讀出eptpc14的本地時鐘計數(shù)器1441的計數(shù)值并且將所讀出的計數(shù)值設(shè)定為eptpc計數(shù)器的起始值(ptp_start←lccv)。

步驟s54:cpu13設(shè)定ptp命令接收標志(ptp_flag←真)。

接著,以下將對比較匹配中斷進行描述。

步驟s61:當已經(jīng)從mtu15生成了比較匹配中斷時,cpu13將mtu計數(shù)器的值更新至通過將與pwm波形信號的周期相對應(yīng)的計數(shù)值(pwmp)與mtu計數(shù)器的當前值相加得到的值(mtu_count←mtu_count+pwmp)。

<閾值的一個示例>

將對閾值(thresh)的一個示例進行描述。與第一實施例類似,當閾值被分成由因為振蕩器的存在而導致的mtu15的計時器計數(shù)器的誤差引起的“threshosc”、由ptp的協(xié)議操作上的誤差引起的“threshptp”、由中斷處理引起的“threshint”以及由將依賴于cpu13的流水線和總線的狀態(tài)而出現(xiàn)的處理中的波動引起的“threshflu”時,得到公式(3)。

thresh=threshosc+threshptp+threshint+threshflu……(3)

當cpu13的操作頻率為fcpu,mtu15的操作頻率為fmtu=fcpu/16,向mtu15提供時鐘信號的振蕩器的精度為xosc并且ptp命令接收間隔為tp2時,由mtu計數(shù)器的計數(shù)數(shù)值的公式(3-1)表示由因為振蕩器的存在而導致的mtu15的計時器計數(shù)器的誤差引起的“threshosc”。

threshosc=fmtu*xosc*tp2……(3-1)

例如,當fcpu=120mhz,fmtu=fcpu/16=7.5mhz,xosc=100ppm,并且tp2=1s時,得到threshosc=750個周期。

與第一實施例類似,ptp的協(xié)議操作上的誤差近似為threshptp<threshosc。

當cpu13的操作頻率為fcpu,中斷處理出現(xiàn)頻率為yint并且中斷處理的周期數(shù)為nint時,由mtu計數(shù)器的計數(shù)數(shù)值的公式(3-2)表示由中斷處理引起的“threshint”。

threshint=(fmtu/fcpu)*(yint*nint)……(3-2)

此處,使得ptp命令接收中斷處理與比較匹配中斷處理在cpu13的操作頻率處周期數(shù)近似相同。

例如,假設(shè)fcpu=120mhz以及fmtu=fcpu/16=7.5mhz。在中斷處理中,通過另外加上中斷響應(yīng)時間和恢復時間、將中斷響應(yīng)時間設(shè)定為10個周期、將中斷恢復時間設(shè)定為10個周期并且將中斷處理設(shè)定為平均80個周期以得到nint=100個周期。當因為每400μs從16位計數(shù)器生成一次比較匹配中斷所以yint=2500次時,得到threshint=15625個周期。

由上述可知,確立threshint>>threshosc>threshptp。“threshflu”是微控制器10a的cpu13的處理中的波動的上限值,以及與第一實施例類似地,“threshflu”小于“threshint”并且公式(3)近似為公式(4)。

thresh=threshint+threshflu<threshint+threshint=2*(fmtu/fcpu)*(yint*nint)…(4)。

當將上面提到的數(shù)值應(yīng)用于公式(4)時,得到thresh=31250個周期。

在第二實施例中,通過由使用mtu15的計時器計數(shù)器輸出pwm波形信號來控制工業(yè)電動機,以及通過使用eptpc14的本地時鐘計數(shù)器1441與上面提到的操作的執(zhí)行并行地診斷mtu15的計時器計數(shù)器。

根據(jù)第二實施例,可以對計時器生成pwm波形信號時將出現(xiàn)的計數(shù)器的失靈進行診斷。另外,可以將根據(jù)第二實施例的系統(tǒng)應(yīng)用于工業(yè)電動機控制設(shè)備以及面向功能安全的設(shè)備(符合諸如iec61508等的標準)。

[第三實施例]

圖12是例示根據(jù)第三實施例的工業(yè)電動機控制系統(tǒng)的配置的一個示例的框圖。圖13是例示在pwm波形比較中eptpc14的脈沖輸出計時器和mtu15的計時器計數(shù)器的操作的一個示例的時序圖。

已經(jīng)基于兩種類型的計時器(eptpc14和mtu15)生成的第一脈沖和第二脈沖從第一端口(port1)18_1和第二端口(port2)18_2分別地輸出并且分別地經(jīng)由電動機驅(qū)動器6b1和6b2分別地耦合至第一工業(yè)電動機3b1和第二工業(yè)電動機3b2。另外,經(jīng)由布置在微控制器10b外部的耦合電路8使第一脈沖和第二脈沖分支并且將第一脈沖和第二脈沖分別地輸入到作為其它通用端口的第三端口(port3)18_3和第四端口(port4)18_4中。隨后,通過對第一脈沖和第二脈沖的脈沖寬度進行測量并且相互比較來檢測計時器的故障??商鎿Q地,可以布置可從外部操作的物理開關(guān),由此在控制電動機時可以將pwm波形信號輸出到第一工業(yè)電動機3b1和第二工業(yè)電動機3b2以及在進行診斷時可以將pwm波形信號輸入到第三端口18_3和第四端口18_4中,代替脈沖分支。此處,第一端口18_1、第二端口18_2、第三端口18_3以及第四端口18_4是構(gòu)成i/o端口18的部分的i/o端口。

第一脈沖通過使得eptpc14的脈沖輸出計時器的上升沿經(jīng)由開關(guān)輸出以生成pwm波形信號。第二脈沖使用mtu15的通道0(mtu0)的pwm波形生成功能(pwm操作模式1)生成pwm波形并且與eptpc14的時間匹配事件的第一脈沖的生成同步地輸出pwm波形信號。

附帶地,當要裝載兩個微控制器用于互相監(jiān)控時,可以由彼此獨立的單獨的微控制器執(zhí)行pwm波形信號的輸出和pwm波形信號的輸入(以及其比較),以及可以雙重地執(zhí)行pwm波形信號的輸出和pwm波形信號的輸入(以及其比較)。

將使用圖14、圖15a和圖15b對第三實施例的操作流程進行描述。圖14是例示在pwm波形比較中執(zhí)行的穩(wěn)定處理操作的一個示例的流程圖。圖15a是例示在pwm波形比較中執(zhí)行的上升沿中斷處理操作的一個示例的流程圖。圖15b是例示在pwm波形比較中執(zhí)行的比較匹配中斷處理操作的一個示例的流程圖。使用從eptpc14生成的脈沖輸出上升沿中斷和從通道0(mtu0)生成的比較匹配中斷作為中斷。在如圖13所例示的,在從eptpc14的脈沖輸出計時器輸出的波形信號從低至高變化的上升時間處從eptpc14生成脈沖輸出上升沿中斷。當如圖13所例示的,當在pwm波形信號的周期中清空生成mtu0的pwm波形信號的計時器計數(shù)器時,從通道0(mtu0)生成比較匹配中斷。

<穩(wěn)定處理>

步驟s71:cpu在特定時間(限定為ts)處開始彼此同步的eptpc14的脈沖輸出計時器以及mtu0的計數(shù)器的操作。通過由elc17進行事件信號耦合來執(zhí)行計時器和計數(shù)器的操作的同步開始。

步驟s72:cpu13通過elc17將從eptpc14輸出的脈沖耦合至i/o端口18(第一端口18_1)的輸出。隨后,通過在切換的輸出模式中從eptpc14生成脈沖來執(zhí)行端口輸出。

步驟s73:cpu13將eptpc14的脈沖輸出計時器的計時器起始時間設(shè)定為同步起始時間(tmsttr←ts),將周期設(shè)定為200μs(tmcycr←200000)并且將脈沖寬度設(shè)定為100μs(tmplsr←100000)。

步驟s74:cpu13將mtu0的操作模式設(shè)定為pwm操作模式1。隨后,cpu13將提供至mtu0的時鐘信號的頻率設(shè)定為120mhz(pclka←120mhz),將預定標器設(shè)定為pclka/16,將用于低至高反相的計數(shù)器比較值設(shè)定為200μs(tgrd←ox5dc)以及將用于高至低反相的計數(shù)器比較值設(shè)定為400μs(tgrc←oxbb8)。另外,cpu13將起始時間處的計數(shù)值設(shè)定為比用于從低至高反相的計數(shù)器比較值小一個計數(shù)的值以使得在啟動計時器和計數(shù)器之后將計數(shù)值直接從低至高反相(tcnt←ox5db(=tgrd-1))。

步驟s75:cpu13設(shè)定icu16以便向cpu13通知來自eptpc14的脈沖輸出上升沿中斷的生成以及來自mtu0的計數(shù)值從高至低反相的計數(shù)器的比較匹配中斷的生成。另外,cpu13對eptpc14的脈沖輸出上升沿中斷標志和mtu0的比較匹配中斷標志進行初始化(ptp_flag←假,mtu0_flag←假)。

步驟s76:cpu13使用與用于pwm輸出的通道不同的通道用于輸入脈沖的脈沖寬度測量,以及為第一脈沖的脈沖寬度測量分配通道1(mtu1)并且為第二脈沖的脈沖寬度測量分配通道2(mtu2)。隨后,cpu13將提供至mtu1的時鐘信號的頻率設(shè)定為120mhz(pclka←120mhz)、將預定標器設(shè)定為pclka/1并且將操作模式設(shè)定為外部脈沖寬度測量功能模式以便測量高脈沖寬度。cpu13還以相同的方式對mtu2執(zhí)行設(shè)定。

步驟s77:cpu13將用于判定故障檢測的脈沖寬度差的絕對值的上限值設(shè)定為閾值。通過將由振蕩器的存在引起的mtu15的計數(shù)器的誤差、ptp的協(xié)議操作上的誤差等考慮在內(nèi)來設(shè)定閾值(thresh)。由通過稍后描述的公式(6)表示閾值的一個示例。

步驟s78:cpu13通過使用eptpc14根據(jù)ptp開始與另一件外部設(shè)備的時間的時間同步。此處,根據(jù)ptp從一件設(shè)備或者多件設(shè)備中選擇具有最準確的時鐘信號的設(shè)備作為時間分發(fā)源。

步驟s79:當eptpc14的本地時鐘計數(shù)器1441的計數(shù)值達到步驟s73中設(shè)置的ts時,eptpc14已經(jīng)生成的第一脈沖和mtu15已經(jīng)生成的第二脈沖從第一端口18_1和第二端口18_2分別地輸出。附帶地,硬件元件執(zhí)行如下的這個步驟。

首先,將使用圖13對通過使用eptpc14的輸出計時器執(zhí)行的pwm波形信號輸出操作進行描述。脈沖輸出計時器與eptpc14的脈沖輸出計時器的計時器起始時間(ts)同步地從低至高上升并且輸出了周期為200μs并且脈沖寬度為100μs的脈沖。第一脈沖通過脈沖輸出計時器的上升而從低至高上升并且來自第一端口18_1的輸出開始。第一脈沖通過脈沖輸出計時器的下一個上升從高至低反相以及脈沖輸出上升沿中斷被生成。通過重復地執(zhí)行該操作從第一端口18_1輸出第一脈沖的pwm波形信號。該pwm波形信號的周期為400μs,脈沖寬度為200μs并且占空比為50%。

接著,將通過使用圖13對使用mtu0的計時器計數(shù)器的pwm波形信號輸出操作進行描述。mtu0的計時器計數(shù)器對值進行遞增計數(shù)并且在計數(shù)值(tcnt0)達到tgrd時將來自第二端口18_2的輸出從低至高反相。該操作的計時與計時器起始時間ts同步。計時器計數(shù)器繼續(xù)對值進行遞增計數(shù)并且在計數(shù)值達到tgrc時將來自第二端口18_2的輸出從高至低反相以及從而生成比較匹配中斷。計時器計數(shù)器通過重復地執(zhí)行上面提到的操作從第二端口18_2輸出第二脈沖的pwm波形信號。該pwm波形信號的周期為400μs,脈沖寬度為200μs并且占空比為50%。

步驟s7a:將已經(jīng)從第一端口18_1輸出的第一脈沖輸入到第三端口18_3中以及將已經(jīng)從第二端口18_2輸出的第二脈沖輸入到第四端口18_4中。附帶地,硬件元件也執(zhí)行如下這個步驟。

首先,將通過使用圖13對通過使用mtu1的計時器計數(shù)器進行的第一脈沖的脈沖寬度的測量進行描述。在輸入進第三端口18_3中的第一脈沖的上升處開始mtu1的計時器計數(shù)器的計數(shù)數(shù)值的計數(shù)以及在第一脈沖的下降處終止該計數(shù)。基于在那時獲取的計時器計數(shù)器的計數(shù)值(tcnt1)測量高脈沖寬度。

其次,將通過使用圖13對通過使用mtu2的計時器計數(shù)器進行的第二脈沖的脈沖寬度的測量進行描述。在輸入進第四端口18_4中的第二脈沖的上升處開始mtu2的計時器計數(shù)器的計數(shù)數(shù)值的計數(shù)以及在第二脈沖的下降處終止該計數(shù)?;谠谀菚r獲取的計時器計數(shù)器的計數(shù)值(tcnt2)測量高脈沖寬度。

步驟s7b:cpu13判定脈沖寬度的獲取是否已經(jīng)完成。通過設(shè)定eptpc14的脈沖輸出計時器上升沿中斷標志(ptp_flag)以及mtu15的比較匹配中斷標志(mtu_flag)進行判斷。當已經(jīng)完成脈沖寬度的獲取(是)時,cpu13進行到步驟s7c中的處理以及當沒有完成脈沖寬度的獲取(否)時,cpu進行到步驟s7b中的處理。

步驟s7c:cpu13確認脈沖寬度之間的差的絕對值是否超過閾值。

脈沖寬度差=|mtu1_count-mtu2_count|

當脈沖寬度差的絕對值超過閾值時,cpu將其檢測為故障并且以錯誤而終止處理。

步驟s7d:當在步驟s7c中脈沖寬度差的絕對值未超過閾值時,cpu13清空eptpc14的脈沖輸出計時器上升沿中斷標志和mtu15的比較匹配中斷標志(ptp_flag←假,mtu_flag←假)。

步驟s7e:cpu13判定用戶應(yīng)用是否終止。當用戶應(yīng)用終止時,cpu13終止處理。當用戶應(yīng)用并未終止時,cpu13回到步驟s7b以及繼續(xù)執(zhí)行處理。

<中斷處理>

如上所述,mtu1的計時器計數(shù)器在已經(jīng)從第三端口18_3輸入的第一脈沖的高周期中執(zhí)行遞增計數(shù)操作并且在第一脈沖的低周期中停止遞增計數(shù)操作。另外,mtu2的計時器計數(shù)器在已經(jīng)從第四端口18_4輸入的第二脈沖的高周期中執(zhí)行遞增計數(shù)操作并且在第二脈沖的低周期中停止遞增計數(shù)操作。

以下,將對脈沖輸出計時器上升沿中斷進行描述。

步驟s81:當已經(jīng)從eptpc14生成脈沖輸出計時器上升沿中斷時,cpu13讀出mtu1的計時器計數(shù)器的計數(shù)值(tcnt1)以及獲取所讀出的計數(shù)值作為第一脈沖的脈沖寬度(mtu1_count←tcnt1)。

步驟s82:cpu13清空mtu1的計時器計數(shù)器(tcnt1←0)。

步驟s83:cpu13設(shè)定eptpc14的脈沖輸出計時器上升沿中斷標志(ptp_flag←真)。

以下,將對比較匹配中斷進行描述。

步驟s91:當在mtu0的其值從高至低反相的計數(shù)器中已經(jīng)生成了比較匹配中斷時,cpu13讀出mtu2的計時器計數(shù)器的計數(shù)值(tcnt2)以及獲取所讀出的計數(shù)值作為第二脈沖的脈沖寬度(mtu2_count←tcnt2)。

步驟s92:cpu13清空mtu2的計時器計數(shù)器(tcnt2←0)。

步驟s93:cpu13在mtu0的其值從高至低反相的計數(shù)器中設(shè)定比較匹配中斷標志(mtu0_flag←真)。

<閾值的一個示例>

將對閾值(thresh)的一個示例進行描述。當閾值除了分成由因為振蕩器的存在所導致的mtu計數(shù)器的誤差引起的“threshosc”和由ptp的協(xié)議操作上的誤差引起的“threshptp”以外,閾值還被分成用于經(jīng)由布置在微控制器外部的耦合電路傳播的脈沖的傳播延遲的“thresholdppg”時,得到公式(5)?!?/p>

thresh=threshosc+threshptp+threshppg……(5)

附帶地,在第三實施例中,由于用于獲取脈沖寬度的計時器計數(shù)器用硬件啟動和停止,因此對中斷處理中的延遲沒有影響。

當上升沿中斷間隔為tp3時,將“threshosc”表示為類似于第二實施例的公式的公式(5-1)。例如,當fcpu=120mhz、fmtu=fcpu=120mhz、xosc=100ppm并且tp3=400μs時,得到threshosc=5個周期。

threshosc=fmtu*xosc*tp3……(5-1)

可以與第一實施例類似地將ptp的協(xié)議操作上的誤差在時間上減小至1μs至100ns以及在mtu計數(shù)器的計數(shù)數(shù)值上減小至threshptp=8個至80個周期。

例如,當將高速度設(shè)定為3.0x108m/s、將傳播脈沖的導體的相對介電常數(shù)設(shè)定為10并且將布線距離設(shè)定為10cm時,脈沖的傳播延遲變得不多于10ns并且近似為threshppg<threshosc。

由上述可知,公式(5)近似為公式(6)。

thresh=threshosc+threshptp+threshppg<2*threshosc+threshptp……(6)

當將上面提到的數(shù)值應(yīng)用于公式(6)時,“thresh”總計為100個周期。

在第三實施例中,由具有本地時鐘計數(shù)器(第一計數(shù)器)的預定值的eptpc14的脈沖輸出計時器(第一計時器)生成的pwm波形信號從第一i/o端口輸出以及從第三i/o端口輸入,并且其脈沖寬度由mtu15(第二計時器)的計時器計數(shù)器(第三計數(shù)器)來測量。由具有本地時鐘計數(shù)器(第一計數(shù)器)的預定值的mtu15(第二計時器)的計時器計數(shù)器(第二計數(shù)器)生成的pwm波形信號從第二i/o端口輸出以及從第四i/o端口輸入,并且其脈沖寬度由mtu15(第二計時器)的計時器計數(shù)器(第四計數(shù)器)來測量。從而,可以在不停止執(zhí)行用戶程序的情況下通過計時器診斷pwm波形信號的生成和輸出功能。

[第四實施例]

由于根據(jù)第一實施例的mtu15包括多個通道,因此可以將兩個通道的16位計數(shù)器級聯(lián)地耦合在一起以用作一個32位計數(shù)器。在32位計數(shù)器中,在實際操作中不發(fā)生溢出。

圖16是例示根據(jù)第四實施例的32位計數(shù)器的操作的一個示例的時序圖。根據(jù)第四實施例的32位計數(shù)器被配置為使得16個高階位被分配至mtu15的通道1(mtu1)的計數(shù)器并且16個低階位被分配至mtu15的通道2(mtu2)的計數(shù)器。對mtu1的計數(shù)器的計數(shù)值進行遞增計數(shù)以及每當mtu2的計數(shù)器溢出時就清空mtu2的計數(shù)器并且再次從零開始遞增計數(shù),以及由此兩個計數(shù)器作為一個32位計數(shù)器工作。

因為除了使用mtu15的通道1(mtu1)的計數(shù)器和通道2(mtu2)的計數(shù)器、通過將計數(shù)器級聯(lián)地偶合在一起來執(zhí)行對32位的操作設(shè)定以及基本上消除了溢出中斷的生成以外,根據(jù)第四實施例的32位計數(shù)器的配置和操作與根據(jù)第一實施例的計數(shù)器的配置和操作相同,因此省略其描述。要被級聯(lián)地耦合在一起的計數(shù)器不限于通道1和通道2的計數(shù)器。

<閾值>

與第一實施例類似,閾值(thresh)的一個示例近似為公式(7)。

thresh=(fmtu/fcpu)*(2*fcpu*xosc*tp1+2*xint*nint)……(7)

此處,cpu13的操作頻率為fcpu,mtu15的操作頻率為fmtu=fcpu/16,為mtu15提供時鐘信號的振蕩器的精度為xosc,時間匹配事件間隔為tp1,中斷處理出現(xiàn)頻率為xint以及中斷處理的周期數(shù)量為nint。

由于消除了來自mtu15的溢出中斷的生成,因此與第一實施例中的出現(xiàn)頻率相比,中斷處理出現(xiàn)頻率xint從13次時間匹配事件中斷處理降低至兩次時間匹配事件中斷處理。例如,當fcpu=120mhz,fmtu=(fcpu/16)=7.5mhz,xosc=100ppm,tp1=100ms,xint=2以及nint=100時,得到thresh=175個周期。

在第四實施例中,通過將兩個16位計數(shù)器級聯(lián)地耦合在一起來配置32位計數(shù)器。由此,可以通過降低中斷處理出現(xiàn)頻率以進行比第一實施例中的診斷更準確的診斷。另外,可以在將計時器用作32位計數(shù)器時對計時器進行診斷。

盡管,如上面提到的,已經(jīng)基于優(yōu)選實施例和實際示例對已經(jīng)由本申請的發(fā)明人和其他人提出的本公開進行了具體地描述,但是,不用說的是,本公開不限于前述實施例和實際示例并且可以在不偏離本公開的主旨的范圍內(nèi)以各種方式進行更改和修改本公開。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
灵石县| 中方县| 建宁县| 扬州市| 永福县| 娄底市| 太仆寺旗| 格尔木市| 广西| 乐平市| 垣曲县| 晋州市| 玉龙| 平昌县| 正蓝旗| 平顺县| 红桥区| 迁西县| 天津市| 三亚市| 峡江县| 房山区| 准格尔旗| 五河县| 马龙县| 新河县| 武穴市| 通山县| 长汀县| 庆云县| 长武县| 汕头市| 台山市| 东光县| 乌恰县| 全南县| 乐昌市| 广宁县| 连江县| 东乌| 阿荣旗|