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

        ?

        嵌入式CPU的RTC實現(xiàn)時間戳標(biāo)定的誤差分析及改進*

        2023-03-21 02:22:12曹海鋒
        計算機時代 2023年3期
        關(guān)鍵詞:計數(shù)器時鐘標(biāo)定

        曹海鋒

        (山西工程職業(yè)學(xué)院,山西 太原 030032)

        0 引言

        嵌入式CPU 處理器通過特定的硬件和軟件,實現(xiàn)了各種智能產(chǎn)品的管理、控制和人機交互功能,在智能產(chǎn)品功能實現(xiàn)中發(fā)揮著重要作用。

        在工業(yè)自動化領(lǐng)域的智能儀表、控制裝置中嵌入式CPU 的一項重要功能就是精確記錄傳感器、控制開關(guān)、警告事件等關(guān)鍵事件發(fā)生的時間,或者在多臺智能終端組成的系統(tǒng)化應(yīng)用中要求智能終端在時間上實現(xiàn)精準(zhǔn)的流水線操作或同步動作,在此類產(chǎn)品實現(xiàn)中CPU 處理器需要對類似事件的記錄或控制信號的觸發(fā)控制與CPU 系統(tǒng)時間相互關(guān)聯(lián),準(zhǔn)確地記錄事件發(fā)生的時間或在預(yù)定的時間發(fā)出控制動作/操作指令[1]。在CPU處理器中,通常采用芯片內(nèi)置的RTC(實時時鐘)來實現(xiàn)與時間信息相關(guān)聯(lián)的功能應(yīng)用。

        1 嵌入式CPU 基于RTC 實現(xiàn)輸入輸出事件時間戳標(biāo)定的工作原理

        RTC 是嵌入式CPU 處理器芯片上的常見功能模塊,它的硬件結(jié)構(gòu)如圖1所示。

        圖1 CPU RTC功能模塊

        CPU RTC 的核心器件是一組計數(shù)器,在外部晶振的激勵下進行時間間隔的累計計數(shù),計數(shù)器的初始值通過CPU 軟件進行初始化,使其與標(biāo)準(zhǔn)時間如北京時間或UTC 時間一致。RTCX1、RTCX2 是CPU 外部32.768KHz 晶振輸入管腳,為RTC 電路提供時鐘源,Vbat是電池供電輸入管腳,該管腳的作用是當(dāng)CPU 在關(guān)機狀態(tài)時RTC 電路能通過該管腳從板載電池供電,維持RTC 電路正常工作,防止當(dāng)系統(tǒng)再次加電開機后實時時間信息丟失。

        在嵌入式CPU 系統(tǒng)設(shè)計中,一般基于RTC 實現(xiàn)對特定輸入輸出事件的時間戳標(biāo)定是通過圖2所示的流程實現(xiàn)的。

        圖2 基于RTC實現(xiàn)對輸入輸出事件的時間戳標(biāo)定原理

        事件輸入、事件輸出是與嵌入式CPU 系統(tǒng)實現(xiàn)特定應(yīng)用相關(guān)聯(lián)的外部接口,如數(shù)字變電站的繼電保護裝置中的跳閘信號輸入、控制開關(guān)輸出信號,或者工業(yè)自動化生產(chǎn)線上溫度、濕度傳感器告警輸入和冷卻風(fēng)扇控制輸出。這些與特殊應(yīng)用相關(guān)聯(lián)的事件信號,通過嵌入式CPU 系統(tǒng)設(shè)計中的輸入/輸出事件監(jiān)測電路轉(zhuǎn)換為CPU 可以識別的中斷輸入和事件類型信號輸入到CPU 處理器。CPU 收到事件中斷后,軟件響應(yīng)中斷申請并進入中斷服務(wù)程序,CPU 事件中斷服務(wù)程序從RTC 功能模塊讀取當(dāng)前時間并關(guān)聯(lián)到當(dāng)前申請中斷的事件類型后,產(chǎn)生一條事件記錄消息,并通過軟件完成數(shù)據(jù)記錄或轉(zhuǎn)發(fā),從而進一步實現(xiàn)上層網(wǎng)管信息的提交或人機交互功能。

        時間同步模塊是嵌入式CPU 系統(tǒng)實現(xiàn)的可選功能,當(dāng)產(chǎn)品應(yīng)用對事件的記錄時間戳精度要求高或要實現(xiàn)多臺CPU 系統(tǒng)時間同步關(guān)聯(lián)的應(yīng)用,如要求多個智能控制裝置在相同時間同時觸發(fā)輸出動作,此時需要由時間同步模塊來完成各智能終端中CPU 系統(tǒng)時間信息的同步。時間同步模塊一般由時間同步接口硬件和時間同步協(xié)議軟件組成,在電力行業(yè)比較常見的時間同步協(xié)議是IEEE1588、NTP,對應(yīng)的接口類型是多模ST 光接口、100BASE-TX 以太網(wǎng);移動通訊領(lǐng)域同步協(xié)議有1PPS+TOD、PTP 等,分別對應(yīng)RS422 接口和1000BASE-T/1000BASE-X以太網(wǎng)接口[2]。

        2 嵌入式CPU 基于RTC 實現(xiàn)輸入輸出事件時間戳標(biāo)定的誤差分析

        從上述時間戳標(biāo)定的工作原理來看,嵌入式CPU系統(tǒng)完成一條事件的記錄需要經(jīng)過多個硬件和軟件處理過程,每一個過程都會對事件對應(yīng)的時間戳標(biāo)定的精度帶來誤差,詳細(xì)分析結(jié)果參見表1。

        表1 嵌入式CPU基于RTC實現(xiàn)事件時間戳標(biāo)定的誤差分析表

        從表1 分析結(jié)果來看,誤差1 為電路信號的轉(zhuǎn)換、傳輸誤差,是單向誤差,誤差大小與電路元器件的性能和具體實現(xiàn)方案有關(guān),經(jīng)過評估測量和補償后,該項誤差可以降到100納秒以下。

        誤差2 是CPU 中斷服務(wù)程序執(zhí)行過程的誤差,該過程誤差的大小與CPU 處理器性能、系統(tǒng)軟件功能復(fù)雜度有很大關(guān)系,是隨機誤差,不可測量且無法補償修正。

        誤差3 是由于32.768KHz 晶振存在頻率偏差引起的,以50ppm 精度為例,每秒會最大累計50 微妙的時間誤差,此誤差為系統(tǒng)誤差,可以通過提高晶振的頻率精度和溫度穩(wěn)定性,同時結(jié)合使用時間同步模塊的周期性校準(zhǔn)來消除晶振的頻率偏差帶來的累計時間誤差,比如在采用1ppm 溫補晶振、利用時間同步模塊實現(xiàn)每秒校準(zhǔn)一次的時間校頻率,理論上可以將誤差3 降到1uS 以內(nèi),如果需要進一步提高,可考慮采用GPS 馴服原子鐘銣鐘技術(shù)來實現(xiàn)將誤差3 降低到每秒10E-12S的偏差[3]。

        誤差4是時間同步模塊在實現(xiàn)時間校準(zhǔn)過程中引起的誤差,此過程產(chǎn)生的誤差大小與時間同步網(wǎng)絡(luò)實現(xiàn)、CPU 處理器性能、系統(tǒng)軟件復(fù)雜度有很大關(guān)系,NTP 協(xié)議同步精度受到同步數(shù)據(jù)報文的路由延時、CPU 軟件對同步報文時間戳標(biāo)定精度有很大關(guān)系,一般采用NTP同步的系統(tǒng)時間誤差會大到秒級。

        綜合上述分析,CPU 基于RTC 實現(xiàn)輸入輸出事件時間戳標(biāo)定可能會存在秒級的誤差,造成誤差的主要因素是因為受CPU 性能、軟件運行的不確定性而產(chǎn)生的隨機誤差。在交通、工業(yè)控制、電力領(lǐng)域常常對智能設(shè)備的時間同步誤差要求到毫秒級甚至更小,因此該實現(xiàn)方案常常無法滿足實際應(yīng)用的精度要求。

        3 基于FPGA實現(xiàn)輸入輸出事件時間戳標(biāo)定的設(shè)計方案

        FPGA 是可編程的邏輯陣列,屬于專用集成電路中的一種半定制電路。FPGA 基本結(jié)構(gòu)包括可編程邏輯塊、可編程輸入輸出單元、數(shù)字時鐘管理模塊、嵌入式塊RAM 存儲器、布線資源和內(nèi)嵌專用硬核。由于FPGA 具有布線資源豐富,集成度高和可重復(fù)編程,投資較少的特點,在數(shù)字電路設(shè)計領(lǐng)域得到了很好的應(yīng)用。

        利用FPGA 實現(xiàn)對輸入輸出事件時間戳標(biāo)定的設(shè)計方案如圖3所示。

        圖3 基于FPGA實現(xiàn)對輸入輸出事件的時間戳標(biāo)定原理

        輸入/輸出事件監(jiān)測模塊輸出的硬件中斷源和事件類型由FPGA 內(nèi)部高速時鐘進行實時監(jiān)控,當(dāng)被監(jiān)控的中斷源信號發(fā)生觸發(fā)跳變,F(xiàn)PGA 鎖存該中斷源和對應(yīng)的事件類型,同時為該事件標(biāo)定時間戳,并生成事件記錄,F(xiàn)PGA 通過事件記錄接口,將事件記錄數(shù)據(jù)發(fā)送給CPU,由CPU 進一步實現(xiàn)上層網(wǎng)管信息的提交或人機交互功能。

        時間同步功能,由時間同步接口硬件電路實現(xiàn)同步報文對外的收發(fā)接口信號處理。通過此功能模塊可以實現(xiàn)多臺智能終端組建成時間同步系統(tǒng),實現(xiàn)系統(tǒng)級的時間同步應(yīng)用。目前常用的時間同步接口有GPS(全球定位系統(tǒng))、PTP(精確時間協(xié)議)、TOD(日時間)及工業(yè)領(lǐng)域常用的IRIG-B[4]。時間同步報文由FPGA 實現(xiàn)接收和發(fā)送高精度時間戳標(biāo)定,并對添加時間戳的報文重新進行CRC 校驗。時間同步協(xié)議則繼續(xù)由CPU軟件實現(xiàn)[5]。

        采用FPGA 實現(xiàn)對輸入/輸出事件時間戳標(biāo)定的設(shè)計方案主要利用了FPGA 內(nèi)部的DCM 數(shù)字時鐘管理單元、BRAM 存儲器、高速時鐘網(wǎng)絡(luò)和可編程邏輯資源。FPGA內(nèi)部功能設(shè)計如圖4所示。

        圖4 FPGA內(nèi)部模塊化設(shè)計方案

        FPGA 事件捕獲模塊是125MHz 高速時鐘同步設(shè)計模塊,實時監(jiān)控硬件中斷源信號的跳變,當(dāng)采樣到有事件發(fā)生時,通過同時對RTC 計數(shù)器和事件類型鎖存,完成對觸發(fā)事件和對應(yīng)時間戳的實時標(biāo)定,并將得到的事件記錄寫入事件記錄FIFO。

        由于外部被捕獲事件是相對于FPGA 內(nèi)部高速時鐘是隨機發(fā)生的,如果直接采用時鐘信號來捕獲事件的觸發(fā)沿會存在一個時鐘周期的量化誤差。例如直接使用125MH 時鐘采用事件觸發(fā)沿會有最大接近8nS 的量化時間誤差。為提高被捕獲事件的測量精度,在FPGA 內(nèi)部采用兩個時鐘PLL 實現(xiàn)8 個125M 時鐘的靜態(tài)相位調(diào)整,得到8 個精確到等相位差時鐘陣列,這組時鐘陣列相鄰時鐘輸出相位依次偏移1nS。在事件捕獲時采用這8 個125MHz 時鐘(本文按CLK125M_0、CLK125M_45、CLK125M_90、CLK125M_135、CLK125M_180、CLK125M_225、CLK125M_270、CLK125M_315 命名)作為被測脈沖信號的時間測試時鐘,相鄰時鐘相位偏移為45°,上升沿時間偏差1nS。

        事件捕獲功能模塊使用8個32位時間測量計數(shù)器MEASURE_CNT0[31:0]、MEASURE_CNT45[31:0]…MEASURE_CNT315[31:0],這8個32位時間測量計數(shù)器,分別受CLK125M_0、CLK125M_45…CLK125M_315 8 個時鐘激勵,自由翻轉(zhuǎn),每個計數(shù)器的跳變時間偏差為1nS,該組計數(shù)器受DCM、PLL 的復(fù)位信號做同步復(fù)位。

        外部事件的脈沖信號觸發(fā)事件測量由FPGA RTC 時間計數(shù)器TIME_CNT_S、TIME_CNT_NS、8 個125M 多項位時鐘CLK125M_0~CLK125M_315、8 個時間測量計數(shù)器MEASURE_CNT0[31:0]~MEASURE_CNT315[31:0]負(fù)責(zé)實現(xiàn)。外部事件脈沖信號被CLK125M_0 檢測到上升沿跳變時對應(yīng)的時間計數(shù)器為Tx+8,時間測量計數(shù)器MEASURE_CNT0[31:0]~MEASURE_CNT7[31:0]各自時鐘采樣到上升沿時的計數(shù)值分別為2、2、2、2、2、2、1、1,從時間測試計數(shù)器值看到與CLK125M_0 檢測到跳變沿計數(shù)值相同的計數(shù)有6 個,由此計算被測事件脈沖跳變沿發(fā)生的時間為Tx+8-2=Tx+6,測量分辨率單位為nS,測試精度可以達到1nS。

        FPGA 內(nèi)部RTC 時間計數(shù)器由32 位秒計數(shù)TIME_CNT_S 和32 位納秒計數(shù)TIME_CNT_NS 組成。FPGA 時間計數(shù)器由CLK125M_0時鐘觸發(fā)計數(shù),每個時鐘周期增加8nS。FPGA RTC 時間計數(shù)器的關(guān)鍵功能是能提供時間校準(zhǔn)接口并完成平滑校準(zhǔn)功能,避免時間校準(zhǔn)前后出現(xiàn)時間瞬間突變。

        時間校準(zhǔn)由32 位以納秒為單位的時間校正寄存器TIME_CNT_NS 和1 位校正標(biāo)志TIME_ADJUST_FLAG 組成,該組寄存器提供給CPU 作為軟件時間校正接口。當(dāng)軟件請求校準(zhǔn)時,F(xiàn)PGA 用此組數(shù)據(jù)修正時間計數(shù)器;FPGA 內(nèi)部為實現(xiàn)時間平滑校準(zhǔn)功能,提供32 位時鐘調(diào)整計數(shù)器CLK_ADJUST_CNT 和32 位時鐘校正寄存器CLK_ADJUST_REG。在時間平滑調(diào)整過程中每個CLOCK 125MHz 0°上升沿到時,CLK_ADJUST_CNT值增加1,并將其和CLK_ADJUST_REG 做比較,如果相等,則CLK_ADJUST_CNT 計數(shù)清零,根據(jù)TIME_ADJUST_FLAG 標(biāo)志,確定從TIME_CNT_NS 加“1”還是減“1”納秒;該機制實現(xiàn)的校正最高精度為1/([2E32)*8]即1/34359738360。平滑調(diào)整精度由CLK_ADJUST_REG 決定,當(dāng)其值為32’h00000001時,表示每個時鐘周期調(diào)整1納秒,是最快的調(diào)整節(jié)奏,調(diào)整率為1/8,當(dāng)其值為32’hffffffff 時為最慢調(diào)整節(jié)奏,調(diào)整率為1/34359738360。調(diào)整率的選擇由CPU 軟件根據(jù)時間協(xié)議軟件程序運行結(jié)果獲得的RTC 時間偏差大小來決定,大偏差采用快調(diào)整率,小偏差采用慢調(diào)整率。

        事件記錄FIFO 是由FPGA 內(nèi)部BRAM 數(shù)據(jù)存儲器和讀寫控制邏輯組成,有寫入和讀取兩個數(shù)據(jù)接口,遵循先入先出的寫入和讀取規(guī)則,通過事件記錄FIFO 實現(xiàn)了事件記錄數(shù)據(jù)的緩存和FPGA 內(nèi)部不同功能模塊對接時的時鐘域切換。

        UART 接口功能檢測事件記錄FIFO 是否有記錄數(shù)據(jù),如果有數(shù)據(jù)則發(fā)起讀FIFO 操作,從事件記錄FIFO 讀出數(shù)據(jù),按照與CPU 串口相同的波特率設(shè)置把事件記錄數(shù)據(jù)從FPGA發(fā)送給CPU。

        DCM 是FPGA 內(nèi)部的數(shù)字時鐘管理功能資源,它將從溫補晶振輸入的10MHz時鐘信號倍頻到125MHz并從BUFG 全局時鐘網(wǎng)絡(luò)輸出,BUFG 是FPGA 內(nèi)部專用于時鐘信號的低延時高扇出布線資源,通過該時鐘網(wǎng)絡(luò),能將125MHz 高速時鐘引入到FPGA 內(nèi)部其他功能模塊,為它們提供工作時鐘[6]。

        PHY MII 接口、同步報文時間戳標(biāo)定、CPU MII接口模塊是FPGA 實現(xiàn)時間同步功能的模塊,PHY MII 接口和CPU MII 接口模塊分別實現(xiàn)與外部100BASE-T以太網(wǎng)PHY芯片和CPU 芯片的MII接口對接,實現(xiàn)接口時序和內(nèi)部數(shù)據(jù)總線的轉(zhuǎn)換。同步報文時間戳標(biāo)定是在同步報文進入FPGA 和輸出給外部PHY時由FPGA負(fù)責(zé)精確標(biāo)定報文的接收和發(fā)送時間戳。采用FPGA 對時間同步報文進行時間戳標(biāo)定相比CPU 通過內(nèi)置RTC 標(biāo)定時間戳能完全消除軟件標(biāo)定時間戳過程中產(chǎn)生的隨機誤差,因此使時間同步功能精度得到顯著提高。

        4 時間戳標(biāo)定新舊方案誤差對比分析

        采用FPGA 對輸入輸出事件實現(xiàn)時間戳標(biāo)定功能消除了CPU 在基于RTC 進行時間戳標(biāo)定過程中由于受到CPU 處理器性能和系統(tǒng)軟件復(fù)雜度影響引起的隨機誤差,因此明顯提高了對事件時間戳標(biāo)定的精度,詳細(xì)對比分析見表2。

        表2 對比分析表

        從表2可以明顯看到在采用嵌入式CPU基于芯片內(nèi)部RTC功能進行事件時間戳標(biāo)定時,由于受CPU性能和軟件設(shè)計復(fù)雜度影響是產(chǎn)生標(biāo)定時間精度誤差的主要因素,且因為是隨機誤差類型,無法進行補償,采用該設(shè)計方案標(biāo)定的時間戳的總體誤差在秒級別。

        基于FPGA 時間戳標(biāo)定的方案充分利用了FPGA實時性和硬件可編程的特點,用此方案標(biāo)定時間戳的總體誤差可以控制在微妙級別。

        5 結(jié)論

        基于嵌入式CPU 的智能產(chǎn)品對關(guān)鍵事件進行時間標(biāo)定的應(yīng)用非常廣泛,當(dāng)系統(tǒng)對時間同步精度要求比較高時,采用FPGA 實現(xiàn)時間戳標(biāo)定是一個較好的技術(shù)方案,在同等時間服務(wù)器組建的時間同步網(wǎng)應(yīng)用中,相比CPU 基于內(nèi)部RTC 標(biāo)定事件戳,采用FPGA實現(xiàn)時間戳標(biāo)定能將時間戳同步誤差從秒級降低到微秒級,因此,采用FPGA 標(biāo)定時間戳的方案能滿足大多數(shù)高精度時間同步業(yè)務(wù)應(yīng)用要求。

        猜你喜歡
        計數(shù)器時鐘標(biāo)定
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        別樣的“時鐘”
        古代的時鐘
        使用朗仁H6 Pro標(biāo)定北汽紳寶轉(zhuǎn)向角傳感器
        基于勻速率26位置法的iIMU-FSAS光纖陀螺儀標(biāo)定
        有趣的時鐘
        船載高精度星敏感器安裝角的標(biāo)定
        時鐘會開“花”
        計數(shù)器競爭冒險及其處理的仿真分析
        基于Harris-張正友平面標(biāo)定法的攝像機標(biāo)定算法
        日日摸夜夜添夜夜添无码免费视频| 日韩av无卡无码午夜观看| 日韩精品少妇专区人妻系列| 久久精品国产亚洲av蜜臀久久| 日韩精品一区二区三区影音视频 | 老男人久久青草AV高清| 精品少妇一区一区三区| 99久久久精品国产性黑人| 骚货人妻视频中文字幕| 天堂一区二区三区在线观看视频| 国产精品无码dvd在线观看| 国产成人精品av| 久久综合成人网| 国产大片在线观看三级| 在线a亚洲视频播放在线播放| 国产乱人对白| 八戒网站免费观看视频| 国产无套视频在线观看香蕉| yw193.can尤物国产在线网页| 一区二区三区在线观看视频| 亚洲在线视频免费视频| 男女性高爱潮免费网站| 91精品福利一区二区| 欧美深夜福利视频| 国产精品又黄又爽又色| 精品国产av一区二区三区四区| 欧美真人性野外做爰| www国产精品内射熟女| 亚洲AV无码国产精品久久l| 久久国产精品懂色av| 在厨房拨开内裤进入毛片| 边喂奶边中出的人妻| 亚洲欧美日本| 精品国产三级a| 丰满少妇一区二区三区专区| 女色av少妇一区二区三区| 一区二区三区av波多野结衣| 99热在线精品播放| 免费高清日本一区二区| 精品偷自拍另类在线观看| 少妇久久久久久被弄到高潮|