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

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

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

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

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

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

IRIG是美國靶場司令委員會(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管腳的輸入電壓不能超過3.3V,否則會(huì)引起CPU的異?;蚴菗p壞。如果時(shí)鐘源發(fā)出的脈沖為5V,就需要將電平轉(zhuǎn)換為3.3V才可以接入。硬件連接好后,我們來看看應(yīng)用程序的實(shí)現(xiàn)方法:

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

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

if(fd < 0)

printf("open faile\n");

接下來使用標(biāo)準(zhǔn)的調(diào)用接口read和write就可以獲取和設(shè)置時(shí)間了,程序中使用了struct tm這個(gè)結(jié)構(gòu)體來進(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è)成員。接下來我們進(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í)間是通過阻塞的方式實(shí)現(xiàn)的,板卡會(huì)等到一次完整的時(shí)間脈沖信息才會(huì)返回本次時(shí)間,如果沒有獲取到完整的信息,會(huì)在5秒后返回系統(tǒng)時(shí)間并且打印提示信息。

為了方便客戶將時(shí)鐘源提供的時(shí)間設(shè)置到板卡中,英創(chuàng)公司提供了專用接口在驅(qū)動(dòng)中獲取時(shí)間并寫入到系統(tǒng)或是RTC中,即write()函數(shù),當(dāng)調(diào)用write時(shí),板卡會(huì)阻塞等待從時(shí)鐘源獲取一次完整的時(shí)間信息,然后根據(jù)寫入的參數(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í)間寫入到板卡中,當(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)行解碼,然后再通過串口、總線或其它形式將數(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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

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

    關(guān)注

    7

    文章

    6081

    瀏覽量

    34942
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    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)測等領(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í)方案,降低了終端用戶的開發(fā)難度,縮減了研發(fā)時(shí)間,可快速進(jìn)行產(chǎn)品方案評(píng)估與技術(shù)預(yù)研。 圖3 常見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)用場景 IRIG-B對(duì)時(shí)可應(yīng)用于繼電保護(hù)裝置、電力RTU、電力錄波器、通訊管理
    發(fā)表于 07-17 11:07

    淺析安卓工控主板的優(yōu)勢

    安卓工控主板作為專為工業(yè)控制領(lǐng)域設(shè)計(jì)的硬件平臺(tái),相較于普通商用主板,擁有諸多優(yōu)勢,以滿足工業(yè)環(huán)境對(duì)穩(wěn)定、可靠、長期運(yùn)行的嚴(yán)格要求。以下是安卓工控主板
    的頭像 發(fā)表于 06-27 14:50 ?216次閱讀

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

    最近大家都在頻繁問一個(gè)問題就是工控主板在什么人為情況下容易出現(xiàn)故障,從而造成工控主板的損壞,那今天小編就來講講,我們?cè)谑褂?b class='flag-5'>工控
    的頭像 發(fā)表于 06-05 16:01 ?257次閱讀
    使用<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 ?314次閱讀

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

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

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

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

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

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

    購買工控主板的三大誤區(qū)

    最近有很多人問我什么樣的工控主板算好的,有沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。工控主板作為整機(jī)的核心組成部分,在性能穩(wěn)定上有著至關(guān)重要的作用,那今天小編就來給大家講解一下在購買
    的頭像 發(fā)表于 04-16 16:40 ?226次閱讀

    官宣!科技榮獲昇騰APN分銷金牌認(rèn)證,攜手共建算力底座

    4月15日,華為技術(shù)有限公司正式為廣州信息科技有限公司頒發(fā)“昇騰APN分銷金牌認(rèn)證證書”,授牌儀式在
    的頭像 發(fā)表于 04-16 10:37 ?377次閱讀
    官宣!<b class='flag-5'>英</b><b class='flag-5'>碼</b>科技榮獲昇騰APN分銷金牌認(rèn)證,攜手共建算力底座

    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 ?536次閱讀
    <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)!

    工控機(jī)主板與嵌入式主板的區(qū)別是什么?

    與嵌入式主板的區(qū)別是什么呢?下面就隨蘇州研訊電子科技有限公司一起來看看吧。 研華工控機(jī)EPC-B2000 什么是工控機(jī)主板? 工控
    的頭像 發(fā)表于 11-16 10:29 ?1570次閱讀
    <b class='flag-5'>工控機(jī)主板</b>與嵌入式<b class='flag-5'>主板</b>的區(qū)別是什么?

    科技精彩亮相火爆的IOTE 2023,多面賦能AIoT產(chǎn)業(yè)發(fā)展!

    發(fā)布了 2023 邊緣計(jì)算產(chǎn)業(yè)市場調(diào)研報(bào)告 ,科技作為聯(lián)合發(fā)布單位之一,為報(bào)告貢獻(xiàn)了不少市場信息與成功案例。報(bào)告對(duì)邊緣計(jì)算產(chǎn)業(yè)的發(fā)展做了詳盡的梳理,同時(shí)對(duì)邊緣計(jì)算產(chǎn)業(yè)未來發(fā)展趨勢做出預(yù)測。 本屆
    發(fā)表于 09-25 10:03