999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM的分布式測試系統時鐘同步研究及實現

2019-12-03 02:07:36旭,陳曄,2,鄭賓,2
兵器裝備工程學報 2019年11期
關鍵詞:信號設計

王 旭,陳 曄,2,鄭 賓,2

(1.中北大學 電氣與控制工程學院,太原 030051;2.中北大學 電子測試技術國家重點實驗室,太原 030051)

隨著測試技術的發展,單一獨立測試設備已不能滿足現代測試要求,測試任務大多需要將不同測試設備連接起來構成分布式測試系統才能完成。而對于分布式測試系統來說,時間同步是保證數據有效的重要前提。若各測試節點或測試子系統的時間同步精度不足,即使得到了測試數據,也無法對測試結果(包括速度,壓力,加速度等)進行準確的分析。國內外許多專家學者針對此問題進行了大量研究和探索,如:文獻[2,5]研究了通過軟件實現PTP時鐘同步的方法。文獻[3,8]等進行了基于Cortex-A8的LXI觸發盒的軟件和硬件開發。目前,該研究方向存在的不足和問題在于:對于分布式測試系統時鐘同步和同步觸發技術而言,仍停留在理論階段,未能有效的將理論應用于實際測試系統,并且上述提到的LXI 觸發盒技術在測試系統中并不通用,測試系統可以由不同的測試儀器構成,需要具有不同的觸發模式和功能。針對上述存在的問題,本文采用PTP精密時間協議通過基于ARM(STM32F407)設計時鐘同步與觸發單元對該分布式測試系統進行同步。

1 設計思路及原理

1.1 整體設計思路

原分布式測試系統由若干個測試節點(每個測試節點即對應一個PXI儀器)組成,每相鄰的兩個測試節點之間相隔一定距離。原有測試系統的結構框圖如圖1。PXI儀器可以通過背板總線觸發實現同步測試,但是由于PXI 設備之間的時鐘同步精度不足,且觸發精度隨觸發線長度的增加而降低,導致觸發信號的精度無法滿足高精度同步測試的需求,于是通過在原有測試系統結構的基礎上改進,設計了基于ARM的時鐘同步與觸發單元為每個測試節點(每個測試節點對應一個通用測試儀器)提供高精度的時間基準信號,從而滿足同步測試的需求。改進后的分布式測試系統整體架構框圖如圖2。

圖1 原分布式測試系統結構框圖

1.2 PTP協議簡介

PTP協議(Precision Time Protocol),又稱IEEE 1588協議,2002年由IEEE組織發布,并于2008年發布IEEE 1588V2標準。IEEE 1588實現時鐘同步過程為[1]:

1)主時鐘每隔一定時間(Sync_Interval)向從時鐘發送一條Sync(同步)報文,主節點記錄發送時間戳t1,但是t1不隨Sync一起發送,從時鐘在接收到Sync時記錄下時間戳t2。

2)主時鐘向從時鐘發送一條Follow_up(跟隨)報文,該報文內部含有(1)中發送Sync時記錄的t1時間戳。

3)從時鐘向主時鐘發送Delay_Request(延遲請求)報文,從時鐘端會記錄報文發出時的時間戳t3。

4)主時鐘在接收到延遲請求報文后記錄當前時間戳t4,并且返回給從時鐘Delay_Response(延遲請求響應報文),該報文內部包含時間戳t4,從時鐘收到此報文后,利用得到的t1,t2,t3,t4計算得到它和主時鐘的時間延遲[1],至此,一個同步周期結束。具體同步流程原理簡圖如圖3。

圖2 改進后分布式測試系統整體架構框圖

圖3 主從時鐘同步流程原理簡圖

同步計算過程包括延遲值(Delay)計算和偏移值(Offset)計算,延遲值為主從節點之間的報文傳輸延遲的平均值,偏移值為主從節點之間的時間偏差[2]。計算公式如下:

(1)

(2)

根據式(2)即可得到主從時鐘偏差。

根據IEEE 1588同步過程可知,決定時鐘同步精度的關鍵在于時間戳的獲取。現有的獲取時間戳的方式有以下3種:

1)在網絡層獲取,這種方式是通過設置Linux內核中的時間選項為SO_TIMESTAMPNS從而得到報文到達網絡驅動層的精確時間,但實現的同步精度較差(最高達到10微秒級)。

2)在數據鏈路層(MAC)通過硬件獲取時間戳,該種方式需要借助支持PTP協議的MCU芯片完成,例如:通過STM32F407 ARM芯片實現亞微秒量級的同步,該種設計優點是通用性較強。

3)在PHY物理層獲取,利用支持PTP協議的PHY芯片當接收到PTP事件報文時芯片會自動對時間戳進行標記[3]。該種方式獲取的時間戳精度理論上可以達到納秒級,但該種設計難度較大,并且增加設計成本。本文的設計采用基于在MAC層上獲取時間戳。

2 系統設計

本設計基于對ARM的軟硬件設計實現主從節點之間的同步。

2.1 硬件系統

硬件系統的設計主要分為以下幾個模塊:電源/復位模塊,串口模塊,JTAG模塊,以太網通信模塊等。

而以太網通信模塊為整個硬件系統設計的核心,采用STM32F407 ARM芯片+LAN8720(普通以太網PHY芯片)組合實現以太網應用。由于STM32F407芯片內部集成MAC,則LAN8720(PHY芯片)可以直接和MCU相連。兩者之間通過RMII(簡化媒體獨立接口)進行通信。接口設計電路簡圖如圖4。

圖4 以太網硬件接口設計電路簡圖

下面簡要介紹下STM32的PTP特性。其內部集成的MAC能實現時間戳的獲取功能,支持發送幀和接受幀時間戳,主要特性包括以下兩個方面:

1)更新PTP時間。STM32使用 PTP 輸入參考時鐘 HCLK 更新64位PTP時間[4]。

2)捕獲時間戳。當對STM32使能IEEE1588功能時,MAC通過識別報文的起始幀界定符SFD從而捕獲當前時間戳,以太網硬件驅動程序將對報頭進行解析,以區分出普通報文和PTP事件報文[5]。

2.2 系統軟件設計

2.2.1系統軟件架構

系統軟件架構如圖5所示。整個軟件設計的關鍵是PTP應用層軟件(PTP協議的實現),通過交換PTP報文信息實現,而PTP協議報文使用UDP協議進行封裝和傳輸。UDP協議的實現需要TCP/IP協議棧。所以首先需要進行網絡協議棧的移植。本設計選用LwIP協議棧進行移植,以實現數據包傳輸功能。CMSIS-RTOS實時操作系統負責任務的切換和調度。標準外設驅動提供GPIO、定時器和串口等基本外設的驅動,以太網驅動提供以太網硬件設備的驅動。以太網驅動程序采用ST公司提供的Eth_Driver庫文件。標準外設驅動程序使用ST提供的Stm_std庫文件[6]。

圖5 系統軟件架構

2.2.2CMSIS-RTOS實時操作系統移植和LwIP協議棧移植

CMSIS-RTOS針對RTX實時操作系統的內核進行封裝,并演變為Keil的一個組件,因此使用起來很簡便,具體移植工作主要分為兩部分。

1)添加內核文件:包含文件RTX_HAL和RTX_Kernel,分別用于設置RTX接口和內核。

2)配置RTX:通過RTX_Conf_CM.c對RTX進行配置,本設計根據所使用的主控芯片特性進行設置,配置操作系統主頻為168 MHz,設置系統時鐘節拍周期為1 000 μs,同時系統使能特權級模式[7]。

LwIP協議棧是一種輕型TCP/IP協議棧。其源碼內容包含3部分:doc(協議棧說明文檔),src(socket接口函數,LwIP內核源碼以及相關的頭文件),test(LwIP的測試代碼)。而移植協議棧時,需要修改系統文件以適配操作系統。

2.2.3以太網硬件驅動實現

以太網硬件驅動函數具體需要實現的功能及函數如下:

1)網卡初始化函數:low_level_init(),該函數實現對網卡結構體netif中相關字段的初始化操作,以建立穩定的物理鏈路并建立接收線程[8]。

2)網絡數據發送函數low_level_output(),該函數的作用是將LwIP協議棧按網絡報文要求封裝好的數據報文通過網卡發送出去。

3)數據提取函數low_level_input(),該函數的作用是從網卡中提取接收到的網絡數據,并將數據復制封裝在pbuf中,并返回pbuf結構體指針。

4)PTP時鐘偏差函數ETH_PTPTime_UpdateOffset(),該函數實現從時鐘對主時鐘時鐘偏差的調節。

2.2.4基于PTP協議的時鐘同步應用層軟件設計

1)時鐘同步軟件架構。時鐘同步軟件的總體框架如圖6所示。來自其他PTP時鐘的報文通過UDP接口傳遞給PTP協議引擎進行處理。PTP協議引擎將在設定端口接收和發送報文。MAC在接收到報文后對數據包進行解封,以提取有用信息。通過運行最佳主時鐘算法決定本地時鐘狀態[9]。若本地時鐘為主時鐘,則會向局域網內發送Announce報文,和其他的外部時鐘數據集進行比較。若本地時鐘為從時鐘,則通過運行本地時鐘調節算法,最終達到和主時鐘之間的同步。

圖6 時鐘同步軟件總體框架

2)最佳主時鐘算法。最佳主時鐘算法由bmc.c實現。它是判別同一PTP域內所有時鐘主從等級的一種算法。通過廣播Announce報文,比較本地時鐘和外部時鐘的數據集,從而得出局域網內的主時鐘,并且在網絡發生變化時,該算法能夠自動運行,并及時更新PTP域內的主時鐘,使其他從時鐘與主時鐘實現同步。

3)IEEE 1588協議引擎。IEEE 1588協議引擎主要由protocol.c實現。該代碼主要運行PTP協議狀態機,完成協議端口狀態之間的正確轉換,核心函數為protocol()[10]。

PTP協議狀態機的運行過程:首先各個時鐘端口上電后進行初始化,然后同一PTP域內的時鐘運行BMC算法,程序根據運行結果(端口狀態)執行相關操作。

4)時間戳獲取。PTP協議的關鍵在于時間戳的獲取。STM32F407的MAC支持以太網幀時間戳,每個幀在發送或接收狀態下都會對應32位秒值時間戳和32位納秒值時間戳[11]。

5)IEEE1588系統時間校準。IEEE1588系統時間校準主要通過粗調和精調兩種方式進行調節。粗調即把初始值或時間偏移值寫入時間戳更新寄存器[12]。校準時通過將計算得到的offset值寫入時間戳更新寄存器,然后根據偏移量的正負進而對系統時間進行加減。使用精調即調節從時鐘的頻率,消除由于頻率漂移帶來的時鐘抖動,計算并校準從時鐘頻率漂移的具體算法如下[13]:

① 在MSTime(n)時刻,主時鐘向從時鐘發送Sync報文,從時鐘在本地時鐘MSTime(n)時刻接收到該報文,假設主時鐘到從時鐘之間的網絡鏈路延遲為Delay(n),則主時鐘對應從時鐘接收Sync報文的時間為

MCTime(n)=MSTime(n)+Delay(n)

(3)

② 當前同步周期的主時鐘計數數目為

MCount(n)=MCTime(n)-MCTime(n-1)

(4)

③ 當前同步周期的從時鐘計數數目為

SCount(n)=SCTime(n)-SCTime(n-1)

(5)

④ 當前同步周期的主從時鐘計數差值的計算公式如下:

ClockDiffCount(n)=MCount(n)-SCount(n)

(6)

⑤ 從時鐘的分頻系數FreqScaleFactor(n)的計算公式如下:

(7)

通過之前設定主時鐘時間戳加數寄存器的值,根據式(7),可以計算出從時鐘時間戳加數寄存器的值。該算法在粗調的基礎上,進一步減小主從時鐘偏差。

2.3 分布式測試系統同步觸發

由于在分布式測試系統中,各被測物理量的測試及采集時間不同步,因此各測試單元的觸發信號的精確性顯得尤為重要。在上述實現時鐘同步的基礎上通過編寫上位機軟件,在計算機上運行控制管理功能客戶端軟件,獲取時鐘單元的狀態信息并對時鐘單元的觸發功能進行設置。本設計實現外部觸發捕獲,延時觸發輸出,定時觸發輸出功能。

外部觸發信號捕獲關鍵在于對脈沖寬度的測量以排除其他信號誤觸發,并提供外部觸發信號抵達時準確的時間戳,以滿足將分布式測試設備采集數據相互關聯的需求[14]。

對應的軟件設計流程如下:使能外部觸發捕獲功能后,對應的輸入信號通道開始檢測觸發信號的上升沿,檢測到上升沿則獲取此時的PTP時間戳external_timestamp,啟動計數器對脈沖信號寬度進行測量,當檢測到觸發信號的下降沿時,則計數器停止工作。通過計算脈沖寬度,判斷信號是否有效。若返回值為TRUE,則將external_timestamp賦值給valid_timestamp,并保存供上位機調取,否則直接丟棄,繼續檢測觸發信號。

該延時觸發功能需在一個激勵信號的觸發下啟動,使用同步后的PTP時間可以準確實現延時觸發輸出。

設計流程如下:設置延時觸發時間后,新建PTP時鐘讀取線程,然后在輸入通道檢測觸發信號,當檢測到觸發信號之后,PTP時鐘讀取線程獲取當前PTP時間PTP_timestamp,根據設置的延時觸發時間計算預定觸發時間trigger_time,到達觸發時間時,輸出觸發信號。

定時觸發設計的目的是用于實現在某一特定時刻同時輸出脈沖信號使測試節點內的測試設備實現同步測試。

設計流程如下:首先設置觸發時間,然后新建PTP時鐘讀取線程,判斷是否到達預設置的觸發時間,若達到觸發時間,則輸出觸發信號并kill當前進程,反之,則一直等待延遲時間。

3 時鐘同步測試

3.1 兩時鐘節點網線直連測試

首先,為排除網絡不對稱對對時精度的影響,采用網線將兩個時鐘節點(LAN口)相連,從時鐘端通過串口打印與主時鐘的實時偏差。

在此實驗中,分別設置單個同步周期時間為4 s,2 s,1 s。待時鐘運行穩定后,使用串口實時打印時鐘偏差,測試結果如圖7所示。數據統計分析如表1所示。

圖7 兩時鐘節點網線直連測試結果

表1 兩時鐘節點網線直連測試數據統計分析

時鐘同步周期/s同步周期數絕對偏差平均值/ns最大正偏移/ns最大負偏移/ns4500301595-5622500221498-3521500176389-244

3.2 兩時鐘節點交換機互連測試

將兩個時鐘同步單元通過網線連入交換機的LAN口,并且將計算機的網口也連入交換機,設置計算機的本地連接為DHCP,然后從時鐘端通過串口打印與主時鐘的實時偏差。本實驗同樣分三次進行,分別設置單個同步周期時間為4 s,2 s,1 s。測試結果如圖8所示。測試數據統計分析如表2所示。

圖8 兩時鐘節點交換機相連測試結果

表2 兩時鐘節點交換機相連測試數據統計

時鐘同步周期/s同步周期數絕對偏差平均值/ns最大正偏移/ns最大負偏移/ns4500328679-6252500261517-5081500193447-345

對比表1和表2,可以得出:當同步周期越短,同步后的主從偏差則越小;當同步周期設置相同的情況下,使用網絡元件(路由器或交換機)會導致網絡鏈路不對稱,從而導致同步精度下降。

3.3 外部觸發捕獲

每個時鐘單元設計了外部觸發輸入捕獲口(IO口),能夠檢測外部觸發信號,并記錄下觸發信號到達IO口的時間。此次實驗,將兩時鐘節點通過交換機組網,等主從時鐘關系建立并運行一段時間后,向各時鐘節點的外部輸入捕獲通道輸入觸發信號,其中一個主時鐘作為PTP時間基準,另一個從時鐘通過主時鐘進行校準,當輸入通道在檢測到對應的觸發信號后,會自動記錄到達IO口的時間值,并通過串口打印。測試結果如圖9所示。其中,左邊的表示主時鐘接收觸發信號后輸出的時間戳,右邊的表示同步后的從時鐘接收觸發信號后輸出的時間戳,由數據可見,兩者的時間差小于200 ns。

圖9 外部觸發測試結果

3.4 延時/定時觸發輸出

每個時鐘同步單元均設計有延時/定時觸發輸出口,組網方式即將3個時鐘同步單元接入交換機,并將計算機通過網口連入交換機。延時觸發測試即通過將觸發信號源接入從時鐘輸入端和示波器通道CH3,在計算機客戶端軟件中設置延時時間,待從時鐘檢測到符號要求的信號后,延遲一定時間通過觸發輸出口連接示波器的CH1通道。測試結果如圖10所示。從實驗結果可看出,觸發信號延時200 ms后輸出。

定時觸發測試即將各時鐘單元的觸發輸出口連接到示波器的CH1、CH2和CH3通道,當在計算機客戶端軟件中設置觸發時間后,3個時鐘同步單元在設定的時刻分別輸出觸發信號,測試結果如圖11所示。由圖11可知,3個時鐘同步單元輸出的觸發信號之間時間間隔小于4 μs。

圖10 延時觸發測試結果

圖11 定時觸發測試結果

4 結論

本文提出的基于ARM設計時鐘同步與觸發單元對分布式測試系統進行同步,該方法通過引入PTP精密時間協議,分析其原理,然后基于ARM芯片及其相關的外圍電路設計了時鐘同步與觸發單元,進而通過相關軟件(時鐘同步軟件、TCP/IP協議棧移植、同步觸發軟件等)的設計,以及大量相關實驗(兩時鐘節點網線直連,兩節點交換機相連,外部觸發捕獲,延時觸發輸出,定時觸發輸出測試)表明組網的各時鐘同步與觸發單元實現了亞微秒級時鐘同步精度和精確同步觸發功能,該設計方法具有通用性,滿足了一般分布式測試系統同步及觸發功能要求。

猜你喜歡
信號設計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
孩子停止長個的信號
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 992tv国产人成在线观看| 国产精品人成在线播放| 91网站国产| 免费观看三级毛片| 无码高潮喷水在线观看| 久久99热这里只有精品免费看| 国产免费一级精品视频| 毛片基地视频| 国产视频a| 亚洲精品成人片在线观看| 久久不卡国产精品无码| 伊人网址在线| 无码中文字幕加勒比高清| 这里只有精品国产| 亚洲国产天堂久久综合226114| 麻豆国产原创视频在线播放| 国产国产人在线成免费视频狼人色| 曰AV在线无码| 国产97视频在线观看| 亚洲国产成人精品无码区性色| 永久免费无码成人网站| 精品国产成人a在线观看| 国产黄色免费看| 亚洲精品天堂在线观看| 免费可以看的无遮挡av无码| 一区二区三区国产| a级毛片免费网站| 园内精品自拍视频在线播放| 97影院午夜在线观看视频| 成人亚洲视频| 国产美女精品一区二区| 毛片基地美国正在播放亚洲 | 1769国产精品视频免费观看| 91在线高清视频| 亚洲国产av无码综合原创国产| 91系列在线观看| 99久久精品免费看国产电影| 毛片卡一卡二| 成年人视频一区二区| 97在线视频免费观看| 国产高清在线丝袜精品一区| 久久精品aⅴ无码中文字幕| 国产成人无码久久久久毛片| 东京热高清无码精品| 国产女人在线观看| 精品夜恋影院亚洲欧洲| 午夜影院a级片| www.99在线观看| 国产青榴视频在线观看网站| 99re热精品视频中文字幕不卡| 99精品免费欧美成人小视频| 亚洲午夜国产精品无卡| 欧美激情视频二区| 青青草一区| 九色在线观看视频| 日韩a级片视频| 99999久久久久久亚洲| 国产精品精品视频| 亚洲最新网址| 亚洲免费福利视频| 日本日韩欧美| 国产呦视频免费视频在线观看| 亚洲高清中文字幕在线看不卡| 一本久道久综合久久鬼色| 人妻一本久道久久综合久久鬼色| 99久久国产自偷自偷免费一区| 国产迷奸在线看| 国产中文在线亚洲精品官网| 色悠久久综合| 亚洲欧州色色免费AV| 2021国产乱人伦在线播放| 无码精品福利一区二区三区| 超清人妻系列无码专区| 亚洲色无码专线精品观看| 秘书高跟黑色丝袜国产91在线| 精品视频91| 国产成人a在线观看视频| 丁香亚洲综合五月天婷婷| 亚洲国产中文在线二区三区免| 啪啪免费视频一区二区| 丁香婷婷激情网| 日韩精品中文字幕一区三区|