0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)EM928x工控主板IRIG-B碼校時(shí)

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-04 10:41 ? 次閱讀

在工控行業(yè)很多領(lǐng)域中,需要控制系統(tǒng)具有高精度的時(shí)間同步功能,IRIG就是美國(guó)靶場(chǎng)司令委員會(huì)制定的一種時(shí)間標(biāo)準(zhǔn),英創(chuàng)在EM928x系列的Linux工控主板上實(shí)現(xiàn)了IRIG-B碼校時(shí)功能。

IRIG是美國(guó)靶場(chǎng)司令委員會(huì)制定的一種時(shí)間標(biāo)準(zhǔn),其中的串行時(shí)鐘編碼共有6種格式,即A、B、D、E、G、H。它們的主要差別是時(shí)間碼的幀速率不同,廣泛應(yīng)用的IRIG-B即其中的B型編碼,B型碼的時(shí)幀速率為1幀/s,可傳遞100位信息。圖1是IGIG-B碼示意圖,其時(shí)幀周期是1s,每秒100個(gè)碼元,使用脈寬編碼方式,每個(gè)碼元脈寬10ms,共三種碼元,其中高電平5ms和2ms分別表示二進(jìn)制 “1”,“0”,高電平8ms為位置標(biāo)識(shí),分別為P0,P1,…P9。連續(xù)兩個(gè)8ms寬度脈沖的第二個(gè)8ms脈沖的前沿為秒準(zhǔn)點(diǎn)標(biāo)志,也是一個(gè)時(shí)間格式的幀參考標(biāo)志。一個(gè)時(shí)間格式幀包含了秒,時(shí),分,天數(shù),年份,控制位等豐富的信息。

IRIG-B碼標(biāo)準(zhǔn)

首先在硬件連接上,我們使用GPIO23復(fù)用為接收IRIG-B碼脈沖信號(hào)的管腳,所以只需要將時(shí)鐘源發(fā)出的IRIG-B碼脈沖接到GPIO23,需要注意的是,GPIO管腳的輸入電壓不能超過(guò)3.3V,否則會(huì)引起CPU的異?;蚴菗p壞。如果時(shí)鐘源發(fā)出的脈沖為5V,就需要將電平轉(zhuǎn)換為3.3V才可以接入。硬件連接好后,我們來(lái)看看應(yīng)用程序的實(shí)現(xiàn)方法:

首先需要打開(kāi)IRIG-B這個(gè)設(shè)備節(jié)點(diǎn):

fd = open("/dev/irig-b", O_RDWR);

if(fd < 0)

printf("open faile\n");

接下來(lái)使用標(biāo)準(zhǔn)的調(diào)用接口read和write就可以獲取和設(shè)置時(shí)間了,程序中使用了struct tm這個(gè)結(jié)構(gòu)體來(lái)進(jìn)行獲取時(shí)間的信息傳遞:

structtm

{

inttm_sec; /* 秒. [0-60] (1 leap second) */

inttm_min; /* 分. [0-59] */

inttm_hour; /* 時(shí). [0-23] */

inttm_mday; /* 日. [1-31] */

inttm_mon; /* 月. [0-11] */

inttm_year; /* 年 - 1900. */

inttm_wday; /* 一周中的第幾天. [0-6] */

inttm_yday; /* 一年中的第幾天.[0-365] */

inttm_isdst; /* 時(shí)令. [-1/0/1]*/

#ifdef __USE_BSD

longinttm_gmtoff;

__constchar*tm_zone; /* 時(shí)區(qū) */

#else

longint__tm_gmtoff;

__constchar*__tm_zone;

#endif

};

因?yàn)槭侵苯訌臅r(shí)鐘源中獲取的時(shí)間,所以我們只需要關(guān)注tm結(jié)構(gòu)體中的年月日時(shí)分秒這六個(gè)成員。接下來(lái)我們進(jìn)行讀取時(shí)間的操作:

struct tm t;

ret = read(fd, &t,sizeof(struct tm));

if(ret < 0)

printf("read failed!\n");

printf("time:%d-%d-%d %d:%d:%d\n",t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);

讀取時(shí)間是通過(guò)阻塞的方式實(shí)現(xiàn)的,板卡會(huì)等到一次完整的時(shí)間脈沖信息才會(huì)返回本次時(shí)間,如果沒(méi)有獲取到完整的信息,會(huì)在5秒后返回系統(tǒng)時(shí)間并且打印提示信息。

為了方便客戶將時(shí)鐘源提供的時(shí)間設(shè)置到板卡中,英創(chuàng)公司提供了專用接口在驅(qū)動(dòng)中獲取時(shí)間并寫(xiě)入到系統(tǒng)或是RTC中,即write()函數(shù),當(dāng)調(diào)用write時(shí),板卡會(huì)阻塞等待從時(shí)鐘源獲取一次完整的時(shí)間信息,然后根據(jù)寫(xiě)入的參數(shù),將時(shí)間直接設(shè)置到系統(tǒng)中或者RTC中:

#defineSET_SYSTIME 0

#defineSET_RTCTIME 1

i1 = SET_SYSTIME;

ret = write(fd, &i1,sizeof(int));

if(ret < 0)

printf("write failed!\n");

i1 = SET_RTCTIME;

ret = write(fd, &i1,sizeof(int));

if(ret < 0)

printf("write failed!\n");

按照上面的例子調(diào)用write就可以將從時(shí)鐘源獲取的時(shí)間寫(xiě)入到板卡中,當(dāng)輸入的數(shù)據(jù)為0時(shí),驅(qū)動(dòng)會(huì)阻塞等待一次完整的時(shí)間信息,獲得時(shí)間后將時(shí)間設(shè)置到系統(tǒng)中,阻塞等待的時(shí)間同樣為5s,否則返回不能獲取時(shí)間的信息。

如果輸入的數(shù)據(jù)為1時(shí),驅(qū)動(dòng)會(huì)同樣阻塞等待一次完整的時(shí)間信息,獲得時(shí)間后將時(shí)間同時(shí)設(shè)置到硬件實(shí)時(shí)時(shí)鐘和系統(tǒng)中,阻塞等待的時(shí)間同樣為5s,否則返回不能獲取時(shí)間的信息。

傳統(tǒng)的工控板卡在對(duì)IRIG-B碼處理時(shí),通常需要增加額外的硬件(如單片機(jī),FPGA)對(duì)B碼進(jìn)行解碼,然后再通過(guò)串口、總線或其它形式將數(shù)據(jù)交給主控板卡處理,增加了系統(tǒng)成本和操作難度,英創(chuàng)Linux工控主板EM928x系列可直接對(duì)B碼進(jìn)行解碼,不需要增加任何硬件就能實(shí)現(xiàn)毫秒級(jí)精度的時(shí)間同步,大大降低了系統(tǒng)復(fù)雜程度,節(jié)約了成本,提高了系統(tǒng)穩(wěn)定性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11329

    瀏覽量

    209968
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35486
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    國(guó)產(chǎn)工控主板有什么優(yōu)勢(shì)、特點(diǎn)?

    隨著國(guó)產(chǎn)工控主板的發(fā)展,國(guó)內(nèi)企業(yè)也在不斷開(kāi)發(fā)新的工控主板,為了滿足國(guó)內(nèi)企業(yè)的發(fā)展需求,一些國(guó)產(chǎn)工控主板
    的頭像 發(fā)表于 11-15 10:11 ?161次閱讀

    ?什么是國(guó)產(chǎn)工控主板,國(guó)產(chǎn)工控主板的特點(diǎn)有哪些?

    什么是國(guó)產(chǎn)工控主板呢?國(guó)產(chǎn)工控主板是工業(yè)計(jì)算機(jī)的主板,是一種計(jì)算機(jī)系統(tǒng)的硬件設(shè)備,是專門(mén)為工業(yè)控制場(chǎng)景設(shè)計(jì)和生產(chǎn)的電路板。它在國(guó)內(nèi)的研發(fā)和制
    的頭像 發(fā)表于 11-07 10:29 ?237次閱讀

    國(guó)產(chǎn)工控主板,信創(chuàng)產(chǎn)業(yè)發(fā)展新引擎

    在當(dāng)今科技飛速發(fā)展的時(shí)代,信創(chuàng)產(chǎn)業(yè)正成為國(guó)家戰(zhàn)略的重要支撐。而我們的國(guó)產(chǎn)工控主板,以其卓越的性能和可靠的品質(zhì),為信創(chuàng)產(chǎn)業(yè)的發(fā)展注入強(qiáng)大動(dòng)力。國(guó)產(chǎn)工控
    的頭像 發(fā)表于 11-06 10:29 ?285次閱讀

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競(jìng)爭(zhēng)力百?gòu)?qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?521次閱讀

    工控主板有哪些特點(diǎn)?

    ?工控主板是用于工業(yè)控制領(lǐng)域的專用主板,具有以下特點(diǎn): 穩(wěn)定性:工控主板通常經(jīng)過(guò)嚴(yán)格的測(cè)試和優(yōu)化,具有較高的穩(wěn)定性和可靠性,能夠在惡劣的工業(yè)
    的頭像 發(fā)表于 10-10 08:55 ?358次閱讀

    創(chuàng)國(guó)產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡(jiǎn)稱,于2016年“信創(chuàng)工委會(huì)”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì))提出,目的就是要推動(dòng)我們國(guó)內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?455次閱讀

    B對(duì)時(shí)案例分享,基于RK3568J+Logos-2,讓電力設(shè)備輕松實(shí)現(xiàn)“高精度授時(shí)”!

    Suite(PDS):PDS_2022.2-SP3 IRIG-B對(duì)時(shí)典型應(yīng)用IRIG-B對(duì)時(shí)可應(yīng)用于繼電保護(hù)裝置、電力RTU、電力錄波器、通訊管理機(jī)、電能質(zhì)量在線監(jiān)測(cè)等領(lǐng)域。
    發(fā)表于 08-22 14:00

    B對(duì)時(shí)方案,基于TI AM62x異構(gòu)多核工業(yè)處理器實(shí)現(xiàn)!

    AM62x異構(gòu)多核處理器實(shí)現(xiàn)IRIG-B對(duì)時(shí)方案,降低了終端用戶的開(kāi)發(fā)難度,縮減了研發(fā)時(shí)間,可快速進(jìn)行產(chǎn)品方案評(píng)估與技術(shù)預(yù)研。 圖3 常見(jiàn)IRI
    發(fā)表于 07-25 14:38

    B對(duì)時(shí)方案,基于TI AM62x異構(gòu)多核工業(yè)處理器實(shí)現(xiàn)!

    、36、37、38、40、41元。圖2IRIG-B對(duì)時(shí)應(yīng)用場(chǎng)景 IRIG-B對(duì)時(shí)可應(yīng)用于繼電保護(hù)裝置、電力RTU、電力錄波器、通訊管理
    發(fā)表于 07-17 11:07

    使用工控主板時(shí)該注意哪些事項(xiàng)?

    最近大家都在頻繁問(wèn)一個(gè)問(wèn)題就是工控主板在什么人為情況下容易出現(xiàn)故障,從而造成工控主板的損壞,那今天小編就來(lái)講講,我們?cè)谑褂?b class='flag-5'>工控
    的頭像 發(fā)表于 06-05 16:01 ?442次閱讀
    使用<b class='flag-5'>工控</b><b class='flag-5'>主板</b>時(shí)該注意哪些事項(xiàng)?

    觸翔X86工控主板在交互機(jī)器人中的應(yīng)用

    X86工控主板在交互機(jī)器人中的應(yīng)用主要體現(xiàn)在其高可靠性、抗干擾性和穩(wěn)定性等方面,為交互機(jī)器人的正常運(yùn)行和精確控制提供了有力支持。以下是關(guān)于X86工控
    的頭像 發(fā)表于 05-28 15:48 ?495次閱讀

    工控主板容易出現(xiàn)故障的原因有哪些?

    最近大家都在頻繁問(wèn)一個(gè)問(wèn)題就是工控主板在什么人為情況下容易出現(xiàn)故障,從而造成工控主板的損壞,那今天小編就來(lái)講講,我們?cè)谑褂?b class='flag-5'>工控
    的頭像 發(fā)表于 05-17 10:57 ?416次閱讀

    工控主板的性能指標(biāo)有哪些?

    工控主板是工業(yè)控制領(lǐng)域中的關(guān)鍵組成部分,它承載著工控系統(tǒng)的核心功能。因此,工控主板的性能指標(biāo)是評(píng)估其質(zhì)量和性能的重要標(biāo)準(zhǔn)。本文將介紹
    的頭像 發(fā)表于 05-10 16:27 ?947次閱讀
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>的性能指標(biāo)有哪些?

    工控主板和普通主板的區(qū)別有哪些

    工控主板和普通主板是兩種在計(jì)算機(jī)硬件領(lǐng)域中常見(jiàn)的主板類型,它們?cè)谠O(shè)計(jì)、功能和用途上有著明顯的區(qū)別。工控
    的頭像 發(fā)表于 04-25 16:54 ?1368次閱讀
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>和普通<b class='flag-5'>主板</b>的區(qū)別有哪些

    B對(duì)時(shí)方案,基于TI AM62x異構(gòu)多核工業(yè)處理器實(shí)現(xiàn)!

    對(duì)應(yīng)的脈沖寬度為2ms和5ms,"P"碼元為位置碼元,對(duì)應(yīng)的脈沖寬度為8ms,IRIG-B信息的基本碼元的示意圖如下所示。 ? 圖1 下圖為一幀的IRIG-
    的頭像 發(fā)表于 03-07 09:55 ?724次閱讀
    <b class='flag-5'>B</b><b class='flag-5'>碼</b>對(duì)時(shí)方案,基于TI AM62<b class='flag-5'>x</b>異構(gòu)多核工業(yè)處理器實(shí)現(xiàn)!