本發(fā)明涉及一種視覺導(dǎo)航設(shè)施——航標(biāo)燈器,特別是一種燈器的同步閃快速控制實(shí)現(xiàn)方法。
背景技術(shù):
沿航道設(shè)置的航標(biāo)燈,在夜晚下有節(jié)奏地閃爍著(燈的閃爍周期,以下稱為燈質(zhì)),可以為來往船舶指示航道狀況,是保障船舶夜航安全的重要設(shè)施之一。但在復(fù)雜背景燈光(如夜晚城市霓虹燈光、港口作業(yè)燈光、航行船舶燈光等)影響下,常規(guī)航標(biāo)燈對航道的指示作用被弱化,因此沿航道部署的、具有同步閃功能的航標(biāo)燈在同一時刻同時亮或滅,可以使橋區(qū)航道界限更加分明,改善夜航環(huán)境,進(jìn)而提高保障船舶夜航安全的能力。
ZL97204998.3公布了一種浮標(biāo)燈同步閃光裝置,由GPS接收天線、GPS接收機(jī)、接口電路、處理電路、電源管理電路、輸出電路和浮標(biāo)燈等組成,文獻(xiàn)較早地把實(shí)現(xiàn)航標(biāo)燈時間同步的關(guān)鍵技術(shù)借助當(dāng)時的新技術(shù)GPS來解決,并指出對GPS串口輸出的內(nèi)容進(jìn)行編程處理,得到任何整時或整分的信息,從而具有使各個浮標(biāo)在相同時間共同閃光,由此奠定了日后基于GPS技術(shù)實(shí)現(xiàn)同步閃航標(biāo)燈的硬件框架;ZL200420032200.7、ZL200820192645.X也針對各自應(yīng)用提出了基于GPS技術(shù)的同步閃航標(biāo)燈硬件設(shè)計??梢?,航標(biāo)燈實(shí)現(xiàn)同步閃的難點(diǎn)在于:如何將布設(shè)在較大區(qū)域內(nèi)的、且相互獨(dú)立的多個航標(biāo)燈實(shí)現(xiàn)時間的同步。
2002年12月曾祥君、尹項(xiàng)根、K.K.Li等在《中國電機(jī)工程學(xué)報》發(fā)表《GPS時鐘在線監(jiān)測與修正方法》,詳細(xì)分析說明了GPS時鐘誤差的影響因素,并指出推廣GPS時鐘在重要工業(yè)領(lǐng)域中的應(yīng)用,需解決兩個問題:GPS時鐘的實(shí)時監(jiān)測和誤差補(bǔ)償。目前已周知的是,GPS接收機(jī)串口輸出的報文是在產(chǎn)生PPS信號(PPS信號精度可達(dá)到納秒級)并保持100ms時長后輸出的,如僅對GPS輸出的報文進(jìn)行編程獲得的時間,至少會有數(shù)百毫秒的誤差,這種誤差在時間精度要求較高的應(yīng)用場合,是不可接受的,因此,采用結(jié)合PPS信號或其他輔助手段等來實(shí)現(xiàn)精確授時,無疑就成了本領(lǐng)域技術(shù)人員的自然選擇。
ZL200710180533.2公開了一種高精度數(shù)據(jù)錄取授時儀,將GPS的秒脈沖信息和絕對時間信息傳遞給錄取控制板并校正控制板的內(nèi)部時鐘,以滿足精度要求不高于為1×10-4秒的應(yīng)用場合;ZL200810060615.8提供了一種基于GPS技術(shù)對電表授時的裝置,為保證授時的精度,利用固定的補(bǔ)償值補(bǔ)償MCU和電表通信時間所產(chǎn)生的延時,具體是采用PPS信號觸發(fā)中斷,把內(nèi)部的當(dāng)前時間信息全部存儲起來,當(dāng)把GPS發(fā)送的報文信息全部解碼出來后再把解碼得到的時間信息加上觸發(fā)后到解碼完成所用的時間即可保證MCU內(nèi)部的時鐘與GPS時鐘保持比較高度的一致(誤差在1us以內(nèi));CN201883394U還公開了一種通過串行信號與PPS秒脈沖信號互補(bǔ)的同步閃爍太陽能道釘,給出了硬件框圖。
目前此類軟硬件結(jié)合的系統(tǒng),共性之處是都有GPS接收機(jī)、微處理器,以對協(xié)議報文編程分解和PPS相結(jié)合的方式為主來提高授時精度,如需滿足更高精度要求,往往還會增加一些輔助裝置,但具體如何協(xié)同PPS和協(xié)議報文解碼之間的方法,則筆墨不多,使用的資源如中斷、RAM等焉語不詳。
隨著技術(shù)的發(fā)展和對行業(yè)的深入理解,CN103929859A進(jìn)一步公開了一種航標(biāo)燈無線同步閃爍方法,控制電路板具備具有本地時間計時能力的計時電路,用秒脈沖信號的邊沿對計時電路的秒沿信號進(jìn)行精確同步,以此在控制板上建立一個精確的絕對時間參考系,同步時間起點(diǎn)從每個整點(diǎn)開始,即實(shí)現(xiàn)每小時同步一次。
因此,在現(xiàn)有基于GPS/北斗的航標(biāo)燈器硬件上,如何使用較少資源實(shí)現(xiàn)航標(biāo)同步閃,以及提高閃爍的同步效果,仍然是一件很有價值的研究。
技術(shù)實(shí)現(xiàn)要素:
本案申請人提出了“一種基于GPS的精確授時方法”(已于2014年7月2日提出發(fā)明專利申請,受理號:201410306188.2),詳細(xì)闡述了基于MCU微處理器的RTC時鐘和中斷機(jī)制,如何協(xié)同GPS的PPS信號和NMEA-0813報文協(xié)議處理方法以實(shí)現(xiàn)每分鐘零秒時刻的精確授時方法。
本發(fā)明的目的是在提供一種燈器的同步閃快速控制實(shí)現(xiàn)方法。
為達(dá)到上述目的,本發(fā)明的設(shè)計技術(shù)方案是:
一種燈器的硬件終端由微處理器101、電源模塊102、GPS/北斗模塊103、LED燈頭104、光敏傳感器和燈質(zhì)撥碼105及通訊接口106組成;電源模塊102分別和微處理器101、GPS/北斗模塊103、LED燈頭104相連;微處理器101和GPS/北斗模塊103、LED燈頭104、光敏傳感器和燈質(zhì)撥碼105及通訊接口106相連,其中微處理器101具有中斷功能的INT引腳和GPS/北斗模塊103的PPS信號引腳相連,微處理器101的UART引腳和GPS/北斗模塊103的UART引腳相連,微處理器101的一個IO引腳和LED燈頭104相連。
所述微處理器101,通過燈質(zhì)撥碼修改燈質(zhì),或通過通訊接口106接收外部指令來修改燈質(zhì);光敏傳感器測量獲得光照度,決定是否需要亮燈操作。
所述微處理器101,內(nèi)部設(shè)置有一個時間定時器T1,用來控制燈器的亮/滅時長,T1周期(TT1)的單位為毫秒,通常取值范圍:5~100,通常取50。
所述微處理器101,內(nèi)部有一個燈器的燈質(zhì)控制結(jié)構(gòu)寄存器,由【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】、【燈質(zhì)的數(shù)據(jù)編碼數(shù)組序號】單元、【當(dāng)前編碼數(shù)據(jù)】單元、【同步閃控制時刻】(單位:分)和【時間同步時刻】(單位:秒)組成。
所述微處理器101,其FLASH保存了255種符合國標(biāo)的燈質(zhì)及其編碼,當(dāng)撥碼或指令修改燈質(zhì)時,從FLASH中讀取對應(yīng)燈質(zhì)的數(shù)據(jù)編碼到燈質(zhì)控制結(jié)構(gòu)寄存器的【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】中,然后計算獲得同步閃控制時刻(單位:分),并保存在燈質(zhì)控制結(jié)構(gòu)寄存器的【同步閃控制時刻】中。
所述燈質(zhì)的數(shù)據(jù)編碼,其算法是:用燈質(zhì)中的各亮、滅時長(單位:秒)乘以1000后再除以TT1,結(jié)果必須為整數(shù)(即TT1的取值必須滿足此條件),該結(jié)果保存到【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】中,如果不為整數(shù),需重新調(diào)整T1的周期,以滿足燈質(zhì)中各亮、滅的數(shù)據(jù)編碼均為整數(shù)。
所述的同步閃控制時刻,是在燈質(zhì)確定后計算獲得的,計算方法是:
N=M×SUMDZ×TT1/(1000×60)
其中,SUMDZ為設(shè)定燈質(zhì)的數(shù)據(jù)編碼累積和;
TT1為定時器T1的周期,單位:毫秒;
M為實(shí)現(xiàn)N為整數(shù)的最小整數(shù)值;
N為整數(shù),表示同步時刻,單位:分,通常取值范圍:1~59。
N的數(shù)值保存【同步閃控制時刻】中。
所述微處理器101,當(dāng)時間定時器T1中斷發(fā)生時,首先檢查【當(dāng)前編碼數(shù)據(jù)】單元的數(shù)據(jù)是否為0,如果不為0,則【當(dāng)前編碼數(shù)據(jù)】單元的數(shù)據(jù)進(jìn)行減一操作即可,否則如果為0,則將【燈質(zhì)的數(shù)據(jù)編碼數(shù)組序號】單元的數(shù)據(jù)加一,即后移,然后據(jù)此從【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】讀取對應(yīng)的數(shù)據(jù)編碼到【當(dāng)前編碼數(shù)據(jù)】單元。
所述微處理器101,當(dāng)開始GPS報文數(shù)據(jù)解析,獲得報文中的UTC分和UTC秒時刻,通過計算公式:60-UTC秒時間,獲得時間同步時刻并保存在【時間同步時刻】。
所述微處理器101,當(dāng)進(jìn)入到由GPS/北斗模塊103的PPS信號引起的INT中斷服務(wù)時,首先檢查【時間同步時刻】的數(shù)據(jù)是否為0,當(dāng)不為0時,將【時間同步時刻】保存的數(shù)據(jù)進(jìn)行減一操作,再判斷結(jié)果是否為0,如果不為0,則不進(jìn)行同步閃控制操作,否則為0,則意味著當(dāng)前時刻為x分0秒(x在0~59之間),需進(jìn)行同步閃時刻檢查及同步閃控制操作,即同步閃時刻檢查及同步閃控制操作是在由PPS信號引起的INT中斷服務(wù)中完成的。
所述的同步閃時刻檢查,用UTC時時間乘以60后和UTC分時間的累加值除以【同步閃控制時刻】保存的數(shù)值,即求余運(yùn)算,如果余數(shù)不為0,不進(jìn)行同步閃控制操作,否則為0,進(jìn)行同步閃控制操作。
所述的同步閃控制操作,將【燈質(zhì)的數(shù)據(jù)編碼數(shù)組序號】單元的數(shù)據(jù)修改為0,即指向【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】首地址,讀取【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】中序號0的數(shù)據(jù)編碼到【當(dāng)前編碼數(shù)據(jù)】單元。
所述微處理器101,【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】中,偶數(shù)序號的數(shù)據(jù)編碼為亮的時長編碼,奇數(shù)序號的數(shù)據(jù)編碼為滅的時長編碼。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:在現(xiàn)有航標(biāo)終端硬件資源平臺上,可每分鐘實(shí)現(xiàn)同步閃爍的檢查與控制,達(dá)到較精確的同步閃效果,即便GPS偶爾無法有效定位,但只要有PPS信號,仍然可以依靠微處理器的計時能力持續(xù)同步觸發(fā)。
本發(fā)明的目的、特征及優(yōu)點(diǎn)將通過實(shí)施例并結(jié)合附圖進(jìn)行詳細(xì)說明。
附圖說明
圖1是本發(fā)明的硬件平臺結(jié)構(gòu)圖。
圖2是本發(fā)明的GPS報文數(shù)據(jù)解析流程圖。
圖3是本發(fā)明的PPS信號INT中斷服務(wù)流程圖。
圖4是本發(fā)明的同步閃時刻檢查及控制操作流程圖。
具體實(shí)施方式
圖1中,101是GPS模塊,102是微處理器,103是電源模塊,104是LED燈頭,101的PPS引腳、UART引腳分別與102的INT、UART引腳連接,102的一個引腳與104連接,103分別與101、102和104連接。
為了更詳細(xì)的描述本發(fā)明,下面結(jié)合圖2、圖3和圖4作進(jìn)一步說明。
步驟201:GPS報文數(shù)據(jù)解析開始,執(zhí)行步驟202;
步驟202:判斷GPS報文中是否有UTC時間,如果沒有,則執(zhí)行步驟205,如果有,則執(zhí)行步驟203;
步驟203:解析獲得UTC時分秒數(shù)據(jù),執(zhí)行步驟204;
步驟204:將UTC秒數(shù)據(jù)代入轉(zhuǎn)換公式,計算獲得時間同步時刻,轉(zhuǎn)換公式為:60-UTC秒時間,然后執(zhí)行步驟205;
步驟205:GPS報文數(shù)據(jù)解析結(jié)束。
步驟301:PPS信號INT中斷服務(wù)開始,執(zhí)行步驟302;
步驟302:判斷【時間同步時刻】的數(shù)據(jù)是否為0,為0,則執(zhí)行步驟306,否則不為0,執(zhí)行步驟303;
步驟303:【時間同步時刻】的數(shù)據(jù)進(jìn)行減一操作,執(zhí)行步驟304;
步驟304:判斷【時間同步時刻】的數(shù)據(jù)是否為0,不為0則執(zhí)行步驟306,否則為0,執(zhí)行步驟305;
步驟305:執(zhí)行同步閃時刻檢查及控制操作,執(zhí)行步驟305;
步驟306:PPS信號中斷服務(wù)結(jié)束。
步驟401:同步閃時刻檢查及控制操作開始,執(zhí)行步驟402;
步驟402:計算當(dāng)前分,計算公式為:UTC時時間×60+UTC分時間,然后執(zhí)行步驟403;
步驟403:用計算獲得的當(dāng)前分對【同步閃控制時刻】進(jìn)行求余運(yùn)算,例如:x=當(dāng)前分%【同步閃控制時刻】;(%符號為C語言中求余運(yùn)算符),然后執(zhí)行步驟404;
步驟404:對步驟403中獲得x進(jìn)行判斷,如果為0,則執(zhí)行步驟405,否則不為0,執(zhí)行步驟406;
步驟405:【燈質(zhì)的數(shù)據(jù)編碼數(shù)組序號】單元=0,【當(dāng)前編碼數(shù)據(jù)】單元=【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】序號0的數(shù)據(jù),即【燈質(zhì)的數(shù)據(jù)編碼數(shù)組序號】單元指向【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】首地址,讀取【燈質(zhì)的數(shù)據(jù)編碼數(shù)組】首地址的數(shù)據(jù)到【當(dāng)前編碼數(shù)據(jù)】單元,然后執(zhí)行步驟406;
步驟406:結(jié)束。
雖然以上描述了本發(fā)明的具體實(shí)施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)該理解,我們所描述的具體實(shí)施例只是說明性的,而不是用于對本發(fā)明范圍的限定,任何受本發(fā)明技術(shù)路線啟發(fā)所作的等效修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明權(quán)利要求所保護(hù)的范圍內(nèi)。