本發(fā)明涉及一種提高分辨率的方法,尤其是一種提高智能網(wǎng)荷互動(dòng)終端多板分辨率的方法,屬于網(wǎng)絡(luò)通信技術(shù)領(lǐng)域。
背景技術(shù):
智能網(wǎng)荷互動(dòng)終端是一種基于高速網(wǎng)絡(luò)通信以快速響應(yīng)為目的、用于多條供配電線路電氣量的采集、控制的實(shí)時(shí)測(cè)控裝置。智能網(wǎng)荷互動(dòng)終端由一塊主板和若干塊從板通過高速CAN總線連接構(gòu)成(參見申請(qǐng)?zhí)?01310124359.5、名稱《一種基于智能電網(wǎng)的網(wǎng)荷互動(dòng)多維運(yùn)行系統(tǒng)》的中國(guó)專利文獻(xiàn)),主板負(fù)責(zé)與主站通信,從板負(fù)責(zé)采集包括配電房?jī)?nèi)一次設(shè)備運(yùn)行狀態(tài)、控制設(shè)備動(dòng)作信號(hào)以及告警信號(hào)在內(nèi)各種事件的遙測(cè)、遙信量等數(shù)據(jù)信息。這些信息的正確與否直接影響系統(tǒng)的運(yùn)行方式和調(diào)度人員的決策,對(duì)電網(wǎng)的安全穩(wěn)定運(yùn)行具有重要意義。
目前,電力系統(tǒng)的不斷發(fā)展對(duì)SOE (Sequence Of Event,即事件順序)分辨率的要求越來越高,雖然單個(gè)板SOE的分辨率問題基本解決(參見申請(qǐng)?zhí)枮?01310627487.1、名稱為《一種提高遠(yuǎn)動(dòng)終端SOE 時(shí)間分辨率的方法》的中國(guó)專利文獻(xiàn)),但由于各板采用獨(dú)立的處理器和晶振,而這些元器件之間的個(gè)體差異無法保證多板間的時(shí)鐘達(dá)到毫秒級(jí)同步,因此多板SOE的分辨率問題始終沒有得到妥善解決,結(jié)果對(duì)智能網(wǎng)荷互動(dòng)終端整體的SOE分辨率產(chǎn)生不利影響。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于:針對(duì)上述現(xiàn)有技術(shù)存在的問題,提出一種保證多板間時(shí)鐘一致性的提高智能網(wǎng)荷互動(dòng)終端多板分辨率的方法,從而為電力系統(tǒng)的運(yùn)行決策提供更為準(zhǔn)確可靠的數(shù)據(jù)信息。
為了達(dá)到以上目的,本發(fā)明提高智能網(wǎng)荷互動(dòng)終端多板分辨率的方法在由分別配置MCU、晶振、時(shí)鐘芯片、存儲(chǔ)器的一個(gè)主板和若干從板通過CAN總線通信連接構(gòu)成的智能網(wǎng)荷互動(dòng)終端中,所述主板和若干從板之間還接有時(shí)鐘同步總線;
所述主板運(yùn)行步驟為:
第一步、上電后讀取時(shí)鐘芯片的絕對(duì)時(shí)鐘并轉(zhuǎn)換為相對(duì)時(shí)鐘格式寫入指定內(nèi)存區(qū)域;所述相對(duì)時(shí)鐘含有微秒計(jì)數(shù)器、毫秒計(jì)數(shù)器和分級(jí)計(jì)數(shù)器;
第二步、配置100微秒硬件中斷,且控制每次進(jìn)入中斷處理狀態(tài)時(shí),將相對(duì)時(shí)鐘的微秒計(jì)數(shù)器加100微秒;當(dāng)微秒計(jì)數(shù)器到達(dá)1000時(shí),毫秒計(jì)數(shù)器加1,同時(shí)微秒計(jì)數(shù)器清零;當(dāng)毫秒計(jì)數(shù)器到達(dá)60000時(shí),分級(jí)計(jì)數(shù)器加1,同時(shí)毫秒計(jì)數(shù)器清零;
第三步、配置CAN總線的通信速率為1Mbps,并控制CAN廣播對(duì)時(shí)報(bào)文的通信及處理時(shí)間在200~300微秒;
第四步、配置時(shí)鐘同步總線為輸出模式;
第五步、判斷相對(duì)時(shí)鐘的分級(jí)計(jì)數(shù)器中計(jì)數(shù)是否等于5的整數(shù)倍、且毫秒計(jì)數(shù)器和微秒計(jì)數(shù)器的計(jì)數(shù)都等于0,如否則直接進(jìn)行第六步;如是則通過以太網(wǎng)通道與SNTP(Simple Network Time protocol 簡(jiǎn)單網(wǎng)絡(luò)時(shí)間協(xié)議)服務(wù)器進(jìn)行網(wǎng)絡(luò)對(duì)時(shí),對(duì)時(shí)成功后,將當(dāng)前最新時(shí)鐘以絕對(duì)時(shí)鐘格式寫入時(shí)鐘芯片,同時(shí)以相對(duì)時(shí)鐘格式寫入指定內(nèi)存區(qū)域,再進(jìn)行第六步;
第六步、當(dāng)相對(duì)時(shí)鐘的秒級(jí)計(jì)數(shù)器計(jì)數(shù)變化時(shí),通過CAN總線采用相對(duì)時(shí)鐘格式對(duì)各從板發(fā)送廣播對(duì)時(shí)指令,在200~300微秒內(nèi)完成;
第七步、判斷相對(duì)時(shí)鐘的毫秒計(jì)數(shù)器和微秒計(jì)數(shù)器是否分別等1和0,如否則直接進(jìn)行第八步;如是則通過時(shí)鐘同步總線對(duì)當(dāng)前輸出電平取反,再進(jìn)行第八步;
第八步、接收到從板主動(dòng)上傳的SOE,存儲(chǔ)并擇機(jī)上傳主站;返回第五步循環(huán)運(yùn)行;
所述從板運(yùn)行步驟為:
步驟一、上電后初始化內(nèi)存中的格式與主板一致的相對(duì)時(shí)鐘;
步驟二、配置100微秒硬件中斷,且控制每次進(jìn)入中斷處理狀態(tài)時(shí),將相對(duì)時(shí)鐘的微秒計(jì)數(shù)器加100微秒;當(dāng)微秒計(jì)數(shù)器到達(dá)1000時(shí),毫秒計(jì)數(shù)器加1,同時(shí)微秒計(jì)數(shù)器清零;當(dāng)毫秒計(jì)數(shù)器到達(dá)60000時(shí),分級(jí)計(jì)數(shù)器加1,同時(shí)毫秒計(jì)數(shù)器清零;
步驟三、配置CAN總線的通信速率與主板通信速率匹配;
步驟四、配置時(shí)鐘同步總線為輸入模式;
步驟五、通過CAN總線接收主板發(fā)送的廣播對(duì)時(shí)指令,寫入相對(duì)時(shí)鐘內(nèi)存區(qū)域;
步驟六、判斷時(shí)鐘同步總線是否電平取反,如否則直接進(jìn)行步驟七;如是則將毫秒計(jì)數(shù)器和微秒計(jì)數(shù)器分別修改為1和0,再進(jìn)行步驟七;
步驟七、判斷遙信狀態(tài)是否發(fā)生變位且超過防抖時(shí)間,如否則返回步驟五,如是則取當(dāng)前相對(duì)時(shí)鐘的時(shí)間生成SOE并通過CAN總線上傳給主板,再返回步驟五。
本發(fā)明由于采取了如下獨(dú)特的技術(shù)手段,因此顯著提高了對(duì)智能網(wǎng)荷互動(dòng)終端整體的SOE分辨率:
1、實(shí)現(xiàn)了CAN總線和時(shí)鐘同步總線的最優(yōu)匹配——一方面通信速率高達(dá)1MbpsCAN縱向有200-300微秒的通信時(shí)間,而各從板處理對(duì)時(shí)報(bào)文的時(shí)間由其程序當(dāng)前的運(yùn)行狀態(tài)決定,通常存在100-200微秒誤差,因此綜合誤差可達(dá)300-500微秒。消除此綜合誤差依靠時(shí)鐘同步總線與CAN總線的匹配完成。本發(fā)明一旦CAN總線對(duì)時(shí)完成后,在第一毫秒時(shí)刻時(shí)鐘同步總線就立即啟動(dòng)同步信號(hào),將其相應(yīng)的微秒計(jì)時(shí)器清零后與主板保持同步,因此兩者之間實(shí)現(xiàn)了最優(yōu)匹配。
2、引入了微秒定時(shí),使時(shí)鐘具有了更為精準(zhǔn)的最小刻度,與現(xiàn)有技術(shù)的毫秒級(jí)定時(shí)相比,可以微秒級(jí)的同步運(yùn)算精度確?!昂撩搿奔?jí)的同步。
3、CAN總線間隔1秒的同步信號(hào)可以安全地避免元器件個(gè)體差異的影響,確保實(shí)現(xiàn)毫秒級(jí)同步。
附圖說明
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的說明。
圖1是本發(fā)明一個(gè)實(shí)施例的主板運(yùn)行流程圖。
圖2是本發(fā)明一個(gè)實(shí)施例的從板運(yùn)行流程圖。
圖3是圖1、圖2實(shí)施例的SNTP對(duì)時(shí)時(shí)序圖。
圖4是圖1、圖2實(shí)施例的高速CAN總線 /時(shí)鐘同步總線對(duì)時(shí)時(shí)序圖。
具體實(shí)施方式
實(shí)施例一
本實(shí)施例提高智能網(wǎng)荷互動(dòng)終端多板分辨率的方法在由分別配置MCU、晶振、時(shí)鐘芯片、存儲(chǔ)器的一個(gè)主板和若干從板通過CAN總線通信連接構(gòu)成的智能網(wǎng)荷互動(dòng)終端中,主板和若干從板之間還接有時(shí)鐘同步總線。主板運(yùn)行參見圖1所示,涉及到的SNTP對(duì)時(shí)時(shí)序、高速CAN總線 /時(shí)鐘同步總線對(duì)時(shí)時(shí)序參見圖3、圖4,具體運(yùn)行步驟為:
第一步、上電后立即讀取時(shí)鐘芯片的絕對(duì)時(shí)鐘,絕對(duì)時(shí)鐘由六部分組成:byYear采用1字節(jié)表示年,byMonth采用1字節(jié)表示月,byDay采用1字節(jié)表示日,byHour采用1字節(jié)表示時(shí),byMinute采用1字節(jié)表示分,bySecond采用1字節(jié)表示秒,絕對(duì)時(shí)鐘數(shù)據(jù)結(jié)構(gòu)如下:
struct VAbsoluteClock /* 絕對(duì)時(shí)鐘 */
{
BYTE byYear; /* 年 */
BYTE byMonth; /* 月 */
BYTE byDay; /* 日 */
BYTE byHour; /* 時(shí) */
BYTE byMinute; /* 分 */
BYTE bySecond; /* 秒 */
};
讀取時(shí)鐘芯片的絕對(duì)時(shí)鐘并轉(zhuǎn)換為相對(duì)時(shí)鐘格式寫入指定內(nèi)存區(qū)域,相對(duì)時(shí)鐘含有微秒計(jì)數(shù)器、毫秒計(jì)數(shù)器和分級(jí)計(jì)數(shù)器。具體為讀取絕對(duì)時(shí)鐘成功后,將絕對(duì)時(shí)鐘轉(zhuǎn)換為相對(duì)時(shí)鐘格式,相對(duì)時(shí)鐘表示從2000年1月1日起所走的相對(duì)時(shí)鐘數(shù),將相對(duì)時(shí)鐘寫入指定內(nèi)存區(qū)域。相對(duì)時(shí)鐘由三部分內(nèi)容組成:分級(jí)計(jì)數(shù)器dwMinute采用4字節(jié),表示從2000年1月1日起的分鐘數(shù);毫秒計(jì)數(shù)器wMSecond采用2字節(jié),表示當(dāng)前不足1分鐘的毫秒數(shù);微秒計(jì)數(shù)器wUSecond采用2字節(jié),表示當(dāng)前不足1毫秒的微秒數(shù),相對(duì)時(shí)鐘數(shù)據(jù)結(jié)構(gòu)如下:
struct VRelativeClock /* 相對(duì)時(shí)鐘 */
{
DWORD dwMinute; /* 分級(jí)計(jì)數(shù)器,從2000年1月1日起的分鐘數(shù) */
WORD wMSecond; /* 毫秒計(jì)數(shù)器,不足1分鐘的毫秒數(shù) */
WORD wUSecond; /* 微秒計(jì)數(shù)器,不足1毫秒的微秒數(shù) */
};
第二步、配置100微秒硬件中斷,且控制每次進(jìn)入中斷處理狀態(tài)時(shí),將相對(duì)時(shí)鐘的微秒計(jì)數(shù)器wUSecond加100微秒;當(dāng)微秒計(jì)數(shù)器wUSecond到達(dá)1000時(shí),毫秒計(jì)數(shù)器wMSecond加1,同時(shí)微秒計(jì)數(shù)器wUSecond清零;當(dāng)毫秒計(jì)數(shù)器wMSecond到達(dá)60000時(shí),分級(jí)計(jì)數(shù)器dwMinute加1,同時(shí)毫秒計(jì)數(shù)器清零;
第三步、配置CAN總線的通信速率為1Mbps,并控制CAN廣播對(duì)時(shí)報(bào)文的通信及處理時(shí)間在200~300微秒;
第四步、配置時(shí)鐘同步總線為輸出模式;
第五步、判斷相對(duì)時(shí)鐘的分級(jí)計(jì)數(shù)器dwMinute中計(jì)數(shù)是否等于5的整數(shù)倍、且毫秒計(jì)數(shù)器wMSecond和微秒計(jì)數(shù)器wUSecond的計(jì)數(shù)都等于0,如否則直接進(jìn)行第六步;如是則通過以太網(wǎng)通道與SNTP(Simple Network Time protocol 簡(jiǎn)單網(wǎng)絡(luò)時(shí)間協(xié)議)服務(wù)器進(jìn)行網(wǎng)絡(luò)對(duì)時(shí),對(duì)時(shí)成功后,將當(dāng)前最新時(shí)鐘以絕對(duì)時(shí)鐘格式寫入時(shí)鐘芯片,同時(shí)以相對(duì)時(shí)鐘格式寫入指定內(nèi)存區(qū)域,再進(jìn)行第六步;
第六步、當(dāng)相對(duì)時(shí)鐘dwMinute的秒級(jí)計(jì)數(shù)器計(jì)數(shù)變化時(shí)(相當(dāng)于間隔1秒),通過CAN總線采用相對(duì)時(shí)鐘格式對(duì)各從板發(fā)送廣播對(duì)時(shí)指令,在200~300微秒內(nèi)完成;
第七步、判斷相對(duì)時(shí)鐘的毫秒計(jì)數(shù)器wMSecond和微秒計(jì)數(shù)器是wUSecond否分別等1和0,如否則直接進(jìn)行第八步;如是則通過時(shí)鐘同步總線對(duì)當(dāng)前輸出電平取反,再進(jìn)行第八步;
第八步、接收到從板主動(dòng)上傳的SOE,存儲(chǔ)并擇機(jī)上傳主站;返回第五步循環(huán)運(yùn)行。
為降低成本,與主板高速CAN總線、時(shí)鐘同步總線通信連接的各從板配置相對(duì)主板較少,主要包括MCU、晶振等,其相應(yīng)的運(yùn)行過程參見圖2,具體為:
步驟一、上電后初始化內(nèi)存中的格式與主板一致的相對(duì)時(shí)鐘;
步驟二、配置100微秒硬件中斷,且控制每次進(jìn)入中斷處理狀態(tài)時(shí),將相對(duì)時(shí)鐘的微秒計(jì)數(shù)器wUSecond加100微秒;當(dāng)微秒計(jì)數(shù)器wUSecond到達(dá)1000時(shí),毫秒計(jì)數(shù)器wMSecond加1,同時(shí)微秒計(jì)數(shù)器wUSecond清零;當(dāng)毫秒計(jì)數(shù)器wMSecond到達(dá)60000時(shí),分級(jí)計(jì)數(shù)器dwMinute加1,同時(shí)毫秒計(jì)數(shù)器wMSecond清零;
步驟三、配置CAN總線的通信速率與主板通信速率匹配,使之能夠正常接收主板的對(duì)時(shí)指令;
步驟四、配置時(shí)鐘同步總線為輸入模式;
步驟五、通過CAN總線接收主板發(fā)送的廣播對(duì)時(shí)指令,寫入相對(duì)時(shí)鐘內(nèi)存區(qū)域;
步驟六、判斷時(shí)鐘同步總線是否電平取反,如否則直接進(jìn)行步驟七;如是則將毫秒計(jì)數(shù)器和wMSecond微秒計(jì)數(shù)器wUSecond分別修改為1和0,再進(jìn)行步驟七;
步驟七、判斷遙信狀態(tài)是否發(fā)生變位且超過防抖時(shí)間,如否則返回步驟五,如是則取當(dāng)前相對(duì)時(shí)鐘的時(shí)間生成SOE并通過CAN總線上傳給主板,再返回步驟五。
這樣,CAN總線和時(shí)鐘同步總線得到完美匹配,一旦CAN對(duì)時(shí)完成后,在第一個(gè)毫秒時(shí)刻時(shí)鐘同步總線就立即配合啟動(dòng)同步信號(hào),將相應(yīng)的微秒計(jì)時(shí)器清零處理,和主板保持同步。微秒定時(shí)器作為時(shí)鐘的最小刻度確保了“毫秒”的同步。而CAN總線間隔1秒的同步信號(hào)消除了元器件之間個(gè)體差異的影響,進(jìn)一步保證了毫秒級(jí)同步??梢?,本實(shí)施例妥善解決了智能網(wǎng)荷互動(dòng)終端多板之間長(zhǎng)期存在的未精確同步問題,進(jìn)而提高智能網(wǎng)荷互動(dòng)終端多板分辨率,為電力系統(tǒng)的運(yùn)行決策提供準(zhǔn)確可靠的數(shù)據(jù)信息。