亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        WinCE系統(tǒng)的Internet時(shí)間自動(dòng)同步軟件設(shè)計(jì)

        2011-06-25 02:45:36秦園春李建軍
        關(guān)鍵詞:字節(jié)嵌入式服務(wù)器

        秦園春,李建軍

        (安徽廣播電視臺(tái) 淮北發(fā)射臺(tái),淮北 235000)

        1 概 述

        在Windows XP及其相鄰版本的桌面操作系統(tǒng)和服務(wù)器操作系統(tǒng)中,微軟公司都設(shè)計(jì)了Internet時(shí)間自動(dòng)同步功能。該功能是通過(guò)Internet網(wǎng)絡(luò)向架設(shè)在網(wǎng)絡(luò)上的時(shí)間服務(wù)器獲取時(shí)間信息,再自動(dòng)校準(zhǔn)自己的系統(tǒng)時(shí)間,從而使自己的系統(tǒng)時(shí)間與時(shí)間服務(wù)器提供的時(shí)間同步。在設(shè)計(jì)基于該系統(tǒng)的應(yīng)用軟件時(shí),只要使用API函數(shù)GetSystemTime()就可以間接地獲取較為準(zhǔn)確的時(shí)間信息。隨著嵌入式系統(tǒng)在工業(yè)控制領(lǐng)域的迅速普及,WinCE操作系統(tǒng)以其方便靈活的文件系統(tǒng)和豐富多彩的操作界面,贏得了人們的廣泛關(guān)注。在當(dāng)前以嵌入式系統(tǒng)為主流的工業(yè)控制系統(tǒng)中大都集成了網(wǎng)絡(luò)功能,WinCE操作系統(tǒng)雖然提供了對(duì)TIC/IP協(xié)議的全面支持,但是它無(wú)法像桌面操作系統(tǒng)或服務(wù)器操作系統(tǒng)那樣提供時(shí)間自動(dòng)同步功能。

        隨著廣播電視數(shù)字化進(jìn)程的推進(jìn)和設(shè)備固態(tài)化的普及,筆者所處的廣播電視傳輸發(fā)射設(shè)備的控制也都由傳統(tǒng)的MCS-51系列單片機(jī)向ARM嵌入式系統(tǒng)轉(zhuǎn)變,許多設(shè)備都采用了嵌入式控制。在控制領(lǐng)域,尤其在信息傳輸過(guò)程中,時(shí)間信息往往又作為一個(gè)統(tǒng)一的基準(zhǔn),起著至關(guān)重要的作用。在日后的設(shè)備遠(yuǎn)程監(jiān)控和技術(shù)革新中,只要涉及到嵌入式控制軟件的設(shè)計(jì),不可避免地涉及到時(shí)間同步問(wèn)題。

        鑒于此,我們?cè)谘芯亢头治隽司W(wǎng)絡(luò)時(shí)間服務(wù)器的相關(guān)協(xié)議后,結(jié)合嵌入式WinCE系統(tǒng)和Internet網(wǎng)絡(luò)的特點(diǎn),設(shè)計(jì)了這一具有自動(dòng)校準(zhǔn)系統(tǒng)時(shí)間功能的Internet時(shí)間同步軟件。

        2 Internet時(shí)間服務(wù)器

        Internet時(shí)間服務(wù)器是一種利用Internet網(wǎng)絡(luò)把標(biāo)準(zhǔn)時(shí)間信息傳遞給用戶的裝置。它的時(shí)間信息來(lái)自于上一級(jí)(或?qū)樱r(shí)間服務(wù)器或原子鐘等高精度時(shí)間源。它可以提供高精準(zhǔn)度國(guó)際標(biāo)準(zhǔn)時(shí)間UTC(Universal Time Coor-dinated)。標(biāo)準(zhǔn)時(shí)間信息通過(guò)TCP/IP網(wǎng)絡(luò)傳輸給用戶。

        在Internet上有3個(gè)不同的時(shí)間服務(wù),每一個(gè)都由Request For Comment(RFC)定義為Internet日期時(shí)間標(biāo)準(zhǔn)。這3個(gè)標(biāo)準(zhǔn)分別為 RFC-867、RFC-868和 RFC-1305。其中的RFC-868和RFC-1305是可以提供ms級(jí)精度的時(shí)間標(biāo)準(zhǔn),采用的是網(wǎng)絡(luò)時(shí)間協(xié)議(Network Time Protocol,NTP)。在桌面操作系統(tǒng)和服務(wù)器操作系統(tǒng)中廣泛使用的時(shí)間同步標(biāo)準(zhǔn)是RFC-867,它采用的是Daytime協(xié)議。雖然它只能提供秒級(jí)精度的時(shí)間,但是,作為一般工業(yè)控制的時(shí)鐘依據(jù)已經(jīng)足夠了,GetSystemTime()也只是秒級(jí)的時(shí)間精度。這里采用Daytime協(xié)議。

        2.1 Daytime協(xié)議

        Daytime協(xié)議(RFC867Daytime Protocol)規(guī)范了一個(gè)ARPA Internet community上的標(biāo)準(zhǔn)。在ARPA Internet上都應(yīng)當(dāng)采用和實(shí)現(xiàn)這個(gè)標(biāo)準(zhǔn)。它的作用就是向用戶返回當(dāng)前標(biāo)準(zhǔn)的時(shí)間和日期。

        (1)基于TCP的daytime服務(wù)

        daytime服務(wù)是基于TCP的應(yīng)用,服務(wù)器在TCP端口13監(jiān)聽(tīng),連接一旦建立就向?qū)Ψ椒祷谹SCII形式的日期和時(shí)間。本設(shè)計(jì)就采用這種服務(wù)。

        (2)基于UDP的daytime服務(wù)

        daytime服務(wù)也可以使用UDP協(xié)議,它的端口也是13,不過(guò)UDP是用數(shù)據(jù)報(bào)傳送當(dāng)前時(shí)間的。

        2.2 Daytime格式

        NIST Internet Time Service(ITS)所公布的Daytime格式如下:

        JJJJJ YR-MO-DA HH:MM:SS TT L H msADV UTC(NIST)OTM

        其中,“YR-MO-DA HH:MM:SS”代表“年-月-日 時(shí):分:秒”;H表示服務(wù)器的工作狀態(tài),0為正常,1為異常;JJJJJ為修改后的朱利安日期(MJD)。其他項(xiàng)在本設(shè)計(jì)中沒(méi)有用到,就不再解釋。

        通過(guò)對(duì)Internet時(shí)間服務(wù)器連接后的返回?cái)?shù)據(jù)分析,可以得到:第7、8兩個(gè)字節(jié)為年份;10、11兩個(gè)字節(jié)為月份;13、14兩個(gè)字節(jié)為日期;16、17兩個(gè)字節(jié)為時(shí);19、20兩個(gè)字節(jié)為分;22、23兩個(gè)字節(jié)為秒;第30字節(jié)是服務(wù)器的工作狀態(tài)。

        2.3 時(shí)間服務(wù)器地址

        用戶可以輸入自己已知的時(shí)間服務(wù)器地址(優(yōu)先選用)。這里還置入了一些目前較為穩(wěn)定可靠的時(shí)間服務(wù)器地址:

        ◆ 129.6.15.28

        ◆ 132.163.4.101

        ◆ 132.163.4.102

        ◆ 132.163.4.103

        ◆ 128.138.140.44

        ◆ 129.6.15.29

        ◆ 129.43.244.18

        3 連接Internet時(shí)間服務(wù)器獲取時(shí)間信息

        WinCE支持TCP/IP通信協(xié)議,同時(shí)還支持套接字(Socket)的應(yīng)用。通過(guò)調(diào)用Socket的API函數(shù)可以完成網(wǎng)絡(luò)通信程序的編寫。本設(shè)計(jì)就是通過(guò)套接字與Internet時(shí)間服務(wù)器建立連接來(lái)獲取時(shí)間信息的。

        首先需要用“WSAStartup(MAKEWORD(2,2),&wsd)”加載套接字,用“socket(AF_INET,SOCK_STREAM,0)”創(chuàng)建套接字;然后由“connect(hSocket,(struct sockaddr*)&sin,sizeof(sin))”向internet時(shí)間服務(wù)器發(fā)出連接請(qǐng)求。

        對(duì)于wsd、sin以及后面程序要用到的hostinfo等,要進(jìn)行如下定義:

        WSADATA wsd;

        PHOSTENT hostinfo;

        struct sockaddr_in sin;

        struct hostent*host=NULL;

        LPCSTR ip;

        SOCKET hSocket;

        連接Internet時(shí)間服務(wù)器的具體程序?yàn)椋?/p>

        WSAStartup(MAKEWORD(2,2),&wsd);

        hSocket=socket(AF_INET,SOCK_STREAM,0);

        sin.sin_addr.s_addr=inet_addr(ip);

        sin.sin_family=AF_INET;

        sin.sin_port=htons(13);

        connect(hSocket,(struct sockaddr*)&sin,sizeof(sin)))

        程序中的ip就是需要連接的Internet時(shí)間服務(wù)器的地址,13為提供時(shí)間服務(wù)的端口號(hào)。連接成功返回為空。連接成功以后還需要向它發(fā)出GET請(qǐng)求報(bào)文,之后就可以接收Internet時(shí)間服務(wù)器返回的時(shí)間信息了。

        發(fā)送GET請(qǐng)求報(bào)文:

        wsprintf(szBuff,"GET/HTTP/1.1\r\n");

        send(hSocket,szBuff,strlen(szBuff),0);

        wsprintf(szBuff,"User-Agent:WinceNetTime.EXE\r\n");

        send(hSocket Cs,szBuff,strlen(szBuff),0);

        wsprintf(szBuff,"Host:");

        strcpy(szBuff,szLocalIp);

        strcpy(szBuff,":13\r\n\r\n");

        send(hSocket,szBuff,strlen(szBuff),0);

        接收Internet時(shí)間服務(wù)器返回的時(shí)間信息:

        szRecv(hSocket,szRecv,sizeof(szRecv),0);

        這樣,服務(wù)器返回的時(shí)間信息便保存到szRecv里。

        4 自動(dòng)校準(zhǔn)系統(tǒng)時(shí)間

        4.1 時(shí)間服務(wù)器選擇策略

        由于Internet時(shí)間服務(wù)器可能存在工作狀態(tài)不正常、域名變更、Internet網(wǎng)絡(luò)阻塞等狀況,在自動(dòng)同步時(shí)間時(shí)采用了如圖1所示的時(shí)間服務(wù)器選擇策略。

        圖1 時(shí)間服務(wù)器選擇策略

        4.2 校準(zhǔn)系統(tǒng)時(shí)間

        SetSystemTime()是設(shè)置系統(tǒng)時(shí)間的函數(shù),它只有一個(gè)參數(shù),是一個(gè)SYSTEMTIME結(jié)構(gòu)。只要把接收到的時(shí)間信息賦值給這個(gè)結(jié)構(gòu)的對(duì)應(yīng)成員,再執(zhí)行這個(gè)函數(shù),就可以同步WinCE系統(tǒng)時(shí)間了。

        SYSTEMTIME tm;

        szBuff[0]=szRecv[7];szBuff[1]=szRecv[8];szBuff[2]=0;

        tm.wYear=2000+atoi(szBuff);

        szBuff[0]=szRecv[10];szBuff[1]=szRecv[11];szBuff[2]=0;

        tm.wMonth=atoi(szBuff);

        szBuff[0]=szRecv[13];szBuff[1]=szRecv[14];szBuff[2]=0;

        tm.wDay=atoi(szBuff);

        szBuff[0]=szRecv[16];szBuff[1]=szRecv[17];szBuff[2]=0;

        tm.wHour=atoi(szBuff);

        szBuff[0]=szRecv[19];szBuff[1]=szRecv[20];szBuff[2]=0;

        tm.wMinute=atoi(szBuff);

        szBuff[0]=szRecv[22];szBuff[1]=szRecv[23];szBuff[2]=0;

        tm.wSecond=atoi(szBuff);

        SetSystemTime(&tm);

        程序中的atoi()是ASCII字符轉(zhuǎn)換成整數(shù)的子程序。為了避免時(shí)間同步程序在連接時(shí)間服務(wù)器及通信過(guò)程中出現(xiàn)阻塞,對(duì)WinCE其他程序產(chǎn)生影響,將這部分程序?qū)iT開(kāi)辟一個(gè)線程來(lái)進(jìn)行處理。在這個(gè)線程中,程序?qū)从脩粼O(shè)置的時(shí)間間隔來(lái)自動(dòng)同步系統(tǒng)時(shí)間。

        結(jié) 語(yǔ)

        嵌入式系統(tǒng)的時(shí)間同步在自動(dòng)控制和通信領(lǐng)域占有特別重要的地位。本文在從Internet時(shí)間服務(wù)器的Daytime協(xié)議入手,詳細(xì)地介紹了連接時(shí)間服務(wù)器獲取時(shí)間信息的實(shí)現(xiàn)機(jī)理和實(shí)現(xiàn)方法。由于在連接時(shí)間服務(wù)器時(shí),采用了自己設(shè)計(jì)的時(shí)間服務(wù)器選擇策略,使得自動(dòng)同步時(shí)間的成功率大為提高。將它定制到WinCE內(nèi)核中,隨系統(tǒng)啟動(dòng)后,便可以完成嵌入式WinCE系統(tǒng)的時(shí)間自動(dòng)同步。同樣地,這種設(shè)計(jì)方法也可以運(yùn)用到WinCE的應(yīng)用軟件中。

        [1]陳華鵬.簡(jiǎn)單網(wǎng)絡(luò)時(shí)間協(xié)議(SNTP)[OL].[2011-06].http://man.lupaworld.com/content/develop/rfc/RFC1769.htm.

        [2]Mills D L.Modelling and Analysis of Computer Network Clocks:Electrical Engineering Department Report 92-5-2[R].Newark:University of Delaware,1992:29.

        [3]J Postel.RFC867—1983Daytime Protocol[S].

        [4]馮博琴,徐景民,李波.計(jì)算機(jī)時(shí)間同步問(wèn)題的研究[J].西安交通大學(xué)學(xué)報(bào),1999,33(5).

        [5]李明國(guó),宋海娜,胡衛(wèi)東.Internet網(wǎng)絡(luò)時(shí)間協(xié)議原理與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2002,28(2).

        猜你喜歡
        字節(jié)嵌入式服務(wù)器
        No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
        通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
        No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        簡(jiǎn)談MC7字節(jié)碼
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        得形忘意的服務(wù)器標(biāo)準(zhǔn)
        計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
        Altera加入嵌入式視覺(jué)聯(lián)盟
        倍福 CX8091嵌入式控制器
        麻美由真中文字幕人妻| 欧美精品中文字幕亚洲专区| 国产成人无码aⅴ片在线观看| 亚洲精品tv久久久久久久久久| 成人综合网站| 国产色秀视频在线播放| 自拍偷自拍亚洲精品播放| 亚洲中文字幕无码久久2018| 国产又爽又黄又不遮挡视频| av二区三区在线观看| 亚洲精品国产av成拍色拍| 亚洲天堂精品一区入口| 免费看美女被靠到爽的视频| 国产精品v片在线观看不卡| 国产男女猛烈视频在线观看| 乱中年女人伦av三区| 日韩精品有码在线视频| 国产精品视频一区二区久久| 国产高清成人午夜视频| 国产成人小视频| 毛片大全真人在线| 久久99国产亚洲高清观看韩国| 亚洲午夜无码久久yy6080| 免费人成视频网站在线| 国产一级黄色片一区二区| 国产精品乱码人妻一区二区三区| 久久久久亚洲av无码专区首jn| 亚洲 高清 成人 动漫| 老熟妇Av| 亚洲狠狠久久五月婷婷| 无码av中文一区二区三区桃花岛| 亚洲色欲久久久综合网| 999国产一区在线观看| 亚洲成AV人久久| 中文字幕在线乱码亚洲| 中文字幕亚洲综合久久| 亚洲av日韩av不卡在线观看| 无码制服丝袜中文字幕| 国产白浆一区二区三区佳柔| 五月丁香六月综合缴清无码 | 成人片黄网站色大片免费观看cn|