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

基于VxWorks和FPGA的授時系統設計與實現

2022-04-25 11:49:00胡廣浩張昊楠阮福明
計算機測量與控制 2022年4期
關鍵詞:信號系統

胡廣浩,張昊楠,阮福明

(中海油田服務股份有限公司 物探事業部,天津 300450)

0 引言

中國海油開展自主海上地震勘探裝備研發[1- 2],實現海洋地震拖纜采集裝備產業化應用并躋身國際先進行列。拖纜綜合導航系統是物探船的“大腦”,負責指揮和控制地震勘探作業過程。“海途”拖纜綜合導航系統由綜合導航系統軟件和導航數據采集平臺組成,導航數據采集平臺為船載各系統提供時間服務、采集外部設備數據并進行時間戳標定、根據導航算法計算的響炮時間實時同步觸發外部設備等,可見具備內部時鐘并給數據時間戳標定(數據授時)是拖纜綜合導航系統工作的前提,而時間同步(時間授時)又是船載外部系統能與拖纜綜合導航系統協同工作的前提。

實現時間同步通常采用授時系統(時間服務器)的方式,目前市場上常見授時系統分為兩種,一種為通用設備,常用于Internet上提供用戶計算機時間的同步,受Internet網絡環境影響,同步實時性、精度通常不高;另一種是專用設備,通常作為專業組件內置于專業設備之中,不能被其他系統所利用。針對物探船相對封閉的的局域網環境,本文基于VxWorks和現場可編程陣列(FPGA,field-programmable gate array)設計并實現了一套授時系統,該系統既能作為時鐘基準用于內部數據授時,又能作為時間服務器用于同步局域網系統時間。在本授時系統之上擴展的導航數據采集平臺,是“海途”拖纜綜合導航系統[3]的核心單元。

1 系統總體設計

本系統采用歐式通用計算機總線(VME,versamodule eurocard)工控機箱作為授時系統各模塊搭載箱體,前插版和后插板基于VME背板總線互通互連,如圖1所示。其中,前插版為系統主控板,采用GE公司VG5單板計算機和VxWorks實時操作系統;后插板為時鐘守護板,主要包括FPGA模塊、授時模塊及外部天線插座和網絡插座等。前插板和后插板采用通用型輸入輸出(GPIO,general purpose IO)組件接口進行通訊,物理上采用P2接插件連接。

圖1 授時系統結構框圖

1.1 流程設計

全球定位系統(GPS,global positioning system)提供了全球、全天候、實時的精密導航和定位能力,同時提供了協調世界時(UTC,coordinate universal time)作為時間系統,它是目前應用最為廣泛的主動式衛星授時手段[4- 8]。

本文選用i-Lotus公司的M12M Timing GPS為授時模塊,為本授時系統提供時間參考基準。物探船的速度一般不超過8 m/s, M12M Timing GPS基于GPS衛星C/A Code工作,最大能捕獲12顆GPS衛星,動態速度達到515 m/s,秒脈沖(1 PPS,one pulse per second)定時精度達到12 ns@6-sigma,通訊協議支持NMEA 0183 v3.0,能極大地滿足海洋地震勘探的時間精度需要。M12M Timing GPS授時模塊以標準的晶體管-晶體管邏輯集成電路(TTL,transistor-transistor logic)電平形式每秒產生1 PPS信號的同時,會以RS232串口形式同步輸出一個與1 PPS相對應的整數秒UTC時間信息,串口UTC時間信息與TTL電平信號延遲在50 ms之內,時序如圖2所示。

圖2 輸出信號時序圖

通過主控板捕獲授時模塊輸出的UTC時間信息,將解析后的年月日時間信息交由系統主控板實時時鐘(RTC,real-time clock)維護,時分秒信息通過GPIO組件接口交由FPGA模塊維護,如圖3所示。

圖3 時間下行流程圖

在以太網局域網環境中,網絡時間協議(NTP,network time protocal)[9]是當前最常用的計算機系統時間同步協議。NTP時間同步協議基于復雜的最優主時鐘選擇算法實現,帶來的結果是時間同步收斂較慢,同時在同步過程中占用較多的系統資源[10-12],不能很好應對地震勘探中的實時性要求。簡單網絡時間協議(SNTP,simple network time protocal)在NTP基礎上做了優化和改進,簡化了復雜的時間同步計算過程,輕量級設計使得其在保證同步精度的前提下,更加適合于局域網內需要時間同步的計算機系統數量不是很多、單個時鐘源情形,SNTP在局域網范圍內時間同步精度可以達到0.1 ms的精度[13-14],能滿足地震勘探做時間同步的精度需求。地震勘探中各系統處于相對封閉的局域網環境中,各系統構成相對比較固定,采用SNTP協議能簡化協議實現的復雜度,降低資源占用率和提升運行效率,可為其他應用最大留出系統資源。本系統(運行于系統主控板的應用軟件)為SNTP的服務端,其他系統為客戶端,如圖4所示。

圖4 時間上行流程圖

1.2 GPIO組件模塊

GPIO為作為通用輸入輸出接口,計算機通過對它的控制實現與外部設備通訊的目的,使用時可以直接根據外部設備的數據傳輸需要,通過對其進行軟件編程達到傳輸數據的目的[15]。本文GPIO組件的設計采用自定義的通信協議,讀數據、寫數據、地址等總線寬度均是8位,讀控制、寫控制等總線寬度均是1位,引腳定義如表1所示。在本系統中系統主控板為主設備,時鐘守護板上的FPGA模塊為從設備。

表1 GPIO物理引腳定義

1)GPIO讀數據時序:系統主控板通過GPIO從FPGA模塊獲取時間,通過25 引腳作為控制線,拉低電平的同時送出地址,延遲1 μs,延遲期間FPGA根據地址將相應的數據送到數據總線GPIO[16∶9],系統主控板讀取GPIO獲取數據,最后將電平拉高,完成讀數據過程,時序如圖5所示。

圖5 GPIO讀數據時序

2)GPIO寫數據時序:系統主控板通過GPIO發送GPS時間(時分秒)數據給FPGA模塊,通過26 引腳作為控制線,拉低電平的同時送出地址和數據,延遲1 μs,延遲期間時鐘守護板完成數據接收和處理,最后將電平拉高,完成寫數據過程,時序如圖6所示。

圖6 GPIO寫數據時序

2 時鐘守護板硬件設計

隨著可編程技術的不斷發展和進步,FPGA被廣泛應用于各類電子設計領域。作為授時系統的核心,時鐘守護板FPGA模塊選用ALTERA公司的EP3C25F256芯片,它內置50 MHz的晶振。作為時鐘守護板的核心部件,FPGA模塊采用模塊化設計思路[16],劃分為GPIO接口模塊、命令處理模塊、1 PPS監測模塊和時鐘守護模塊,其功能如圖7所示。

圖7 FPGA功能框圖

2.1 1 PPS監測

1 PPS監測用于對連續相鄰的1 PPS信號之間的時間間隔進行監測,當連續一段時間內相鄰1 PPS信號時間間隔都穩定在正常閾值范圍內,則認為1 PPS為穩定的有效信號,輸出給時鐘守護模塊,否則不輸出。1 PPS模塊通過邊沿檢測模塊、間隔計時器模塊、穩定監測模塊、開窗計時器模塊等組合設計,為時鐘守護模塊提供穩定的1 PPS信號輸入。

1)邊沿檢測模塊:該模塊工作狀態分為檢測狀態和空閑狀態。令輸入信號為IPL,其延遲一個時鐘周期信號為DPL。系統開啟或復位后,進入檢測狀態,若“IPL == 1 且DPL == 0”表示檢測到脈沖上升沿,輸出一個1 PPS信號給間隔計時器模塊和開窗計時器模塊,并跳轉到空閑狀態。在空閑狀態下,若“IPL == 0 且DPL == 1”表示檢測到脈沖下降沿,跳轉到檢測狀態。若檢測“IPL == DPL”超出500 ms,強制跳轉到檢測狀態,以應對異常情況。

2)間隔計時器模塊:跟蹤連續1 PPS信號并計算相鄰兩個的時間間隔,輸出給穩定監測模塊,同時清空計時器開始下一輪間隔統計。

3)穩定監測模塊:連續跟蹤60 s時間內相鄰1 PPS的間隔計時值都穩定在正常閾值范圍內,認為1 PPS為穩定的有效信號,輸出間隔計時的間隔平均值AVG和一個使能信號給開窗計時模塊。

4)開窗計時器模塊:檢測到使能信號有效時開始計時,當邊沿檢測模塊的1 PPS信號到來時,清空計時值。計時值為間隔平均值加1時,強制計時值減掉間隔平均值,同時繼續計時。當計時時間處于[AVG-5 μs∶AVG+5 μs]時,同時在此時間段內由邊沿檢測模塊輸入的1 PPS信號有效時,則輸出1 PPS信號給時鐘守護模塊。

2.2 時鐘守護

時鐘守護模塊是FPGA模塊的工作核心,包括GPS計時器、秒計時器、25 μs計時器、系統時鐘計時器。時鐘守護模塊以授時模塊為時鐘源,通過25 μs計時器、秒計時器、GPS計時器三級時間步進與外部授時模塊的時鐘對齊,設計如圖8所示。

圖8 時鐘守護模塊結構圖

1)25 μs計時器:每20 ns(50 MHz晶振)增加1計數,每1 250計數清零并且秒計時器增加1計數,當1 PPS信號到來時強制清零。

2)秒計時器:每25 μs計數周期增加1計數,當1 PPS信號到來時清零。當1 PPS到來時候,理論計數應該為40 000,考慮到1 PPS信號丟失和本地系統時鐘偏差,設計上每到達40 002計數強制清零并且GPS計時器增加1,這樣把最大時間偏差控制在50 μs。

3)GPS計時器:當1 PPS信號到來增加1計數,當1 PPS失效時,給出計數增加信號。當收到系統主控板發過來的GPS時間信息后,將此計數器值更新。

4)系統時鐘計時器:通過25 μs計時器、秒計時器、GPS計時器的組合,采用系統時鐘計時器維護當前系統時間。系統時鐘計時器= GPS計時器×40 000+秒計時器(單位25 μs)。

3 系統主控板軟件

本系統作為物探船的唯一時間服務源,必須實時響應各客戶端的時間請求并具備能長時間穩定的提供時間服務能力。VxWorks嵌入式實時操作系統[17]具有中斷延遲短、任務切換快、優先級搶占等優點,以其良好的可靠性和卓越的實時性被廣泛地應用在通信、航空航天、地球物理勘探[18]等高精尖技術及實時性要求極高的領域中,滿足物探船對時間服務實時性和可靠性的要求。

NTP和SNTP 協議支持主從、廣播模式。主從模式下,用戶向服務器提出服務請求根據所交換的信息計算兩地時間偏差和網絡延遲從中選擇認為最準確的時間偏差并調整本地的時鐘。廣播模式適用于高速的局域網中局域網中一個或多個服務器以固定的時間周期向某個多播地址廣播自己的時標客戶端,不計算時間偏差和網絡延遲直接用接收到的時標修正自己的時鐘忽略各種誤差[9,13]。考慮到物探船局域網環境中各個系統相對穩定,本文采用主從模式,簡化服務端軟件設計,提高時間服務效率。

基于軟件工程模塊化設計思想,主控板軟件由GPIO協議驅動、授時卡控制任務、SNTP服務任務及時間服務鉤子(函數)等組成,如圖9所示。GPIO協議驅動進行GPIO總線協議的實現,提供上層應用與FPGA模塊通訊應用程序編程接口(API,application programming interface),授時卡控制任務對授時卡工作參數配置、工作狀態監控、數據解析和時間分發等;SNTP服務任務及時間服務鉤子為外部系統提供時間服務。授時卡控制任務和SNTP服務任務需要訪問GPIO共享資源,設計互斥型信號量進行保護。

圖9 軟件模塊劃分圖

3.1 GPIO接口模塊

VxWorks通過板級支持包(BSP,board support package)[19-21]提供了底層GPIO的驅動,本系統通過實現自定義軟總線協議,為授時卡控制任務和SNTP服務任務提供操作FPGA模塊的API。

1)初始化過程GPIO_Init()關鍵代碼如下:

/* 創建VxWorks互斥型信號量,實現GPS時間分派任務和時間服務任務的對GPIO操作的互斥 */

semMID =

semMCreate(SEM_Q_PRIORITY|SEM_INVERSION_SAFE|SEM_DELETE_SAFE);

/* 設置GPIO工作方向,[9∶16]-in,other-out */

sysGpioDirSet(0x0000FF00);

2)讀GPIO過程關鍵代碼如下:

GPIO_Read(UINT8 addr, UINT8 *pData):

/* 加鎖 */

semTake(semMID,WAIT_FOREVER);

/* 配置地址 */

GPIOValue = (GPIOValue & 0xFF00FFFF) | ((addr<<16)&0x00FF0000);

/* 拉低GPIO 25 引腳 */

GPIOValue = GPIOValue & 0xEFFFFFFF;

sysGpioWrite(GPIOValue);

/* 延遲1us,在此期間FPGA模塊完成數據準備 */

sysUsDelay(1);

/* 獲取1Byte數據 */

*pData = (sysGpioRead()>>8) & 0xFF;

/* 拉高GPIO 25 引腳(復位)*/

GPIOValue = GPIOValue | 0x10000000;

sysGpioWrite(GPIOValue);

/* 釋放鎖 */

semGive(semMID);

3)寫GPIO過程同讀GPIO過程類似,不再詳述。

3.2 時間服務鉤子

VxWorks的網絡組件提供了基礎SNTP服務的框架支持,本文無需關注協議本身的具體實現過程,只需實現框架開放的用戶接口實現。首先通過配置VxWorks的操作系統映像,使SNTP服務以系統任務的形式運行[19-20]。VxWorks提供的SNTP服務是以鉤子(回調)函數的形式支持用戶自定義的時間服務實現,鉤子函數設置入口為sntpsClockSet(),鉤子函數需具備sntpsClockHook(int request, void *pBuffer)接口方式,其中參數request為請求的代碼,SNTP協議規定需要實現SNTPS_ID、SNTPS_RESOLUTION、SNPTS_REALTIME等3項,實現流程如圖10所示。

圖10 時間服務流程圖

實現SNTP服務端核心代碼如下:

/* 參考標識符 */

if(SNTPS_ID == request){

strcpy(pBuffer, "pps");

}

/* 時間精度 */

else if(SNTPS_RESOLUTION == request){

/* 由FPGA模塊維護的時鐘精度50000(ns) */

*((ULONG *)buffer) = (ULONG)50000;

}

/* 時間戳 */

else if(SNPTS_REALTIME == request){

/* 復位RTC的時分秒 */

rtcSetTime(0,0,0);

/* 通過RTC提供的API實現由RTC時間設置計算機系統時鐘 */

rtc_SetSysTimeFromRTC();

/* 獲取計算機系統時間,從1970年1月1日0時0分0秒至今經歷時間 */

/* 其中,timeval為struct timespec類型 */

clock_gettime(CLOCK_REALTIME, &timeval));

/* 獲取FPGA時間(時分秒) */

/* FPGAClockTimeGet封裝了對GPIO_Read的調用 */

FPGAClockTimeGet(&clockTime);

/* FPGA秒部分 */

clockTimeSec = clockTime/40000;

/* FPGA納秒部分(FPGA計時單位25us,乘以40000為1秒) */

clockTimeNano = (clockTime -

clockTimeSec*40000)*25000;

/* SNTP服務器發送的時間需轉化為格林尼治標準時間 */

/* 即1970年1月1日0時0分0秒以來所經過的時間,所以加上 */

/* 時間偏移常量SNTP_UNIX_OFFSET */

time = timeval.tv_sec +

SNTP_UNIX_OFFSET + clockTimeSec;

pTime = (ULONG *)buffer;

/* 封裝SNTP時間幀秒部分 */

*pTime++ = time;

/* 封裝SNTP時間幀納秒部分 */

*pTime =

sntpsNsecToFraction(clockTimeNano);

} else {...}

4 實驗結果與應用結果

FPGA模塊以授時模塊為時鐘源,通過25 μs計時器、秒計時器、GPS計時器三級時間步進進行時鐘守護,軟件模塊實現SNTP服務端協議,根據SNTP協議特點,局域網內系統同步的精度跟系統處理延遲無關,僅跟局域網環境有關。因此,本系統對授時系統的驗證只需要測試授時系統的時間守護精度,因此本系統的授時精度完全取決于FPGA模塊時鐘守護精度,跟軟件SNTP協議模塊無關。

授時模塊輸出的秒脈沖TTL電平直接傳遞給FPGA模塊,標記時間為TOD,輸出的串口UTC時間信息SOD經由軟件模塊傳遞給FPGA模塊,FPGA模塊計算兩個信號時間差Delta,Delta的計時刻度為1 μs。 FPGA模塊在收到UTC時間信息后,將依據TOD和時間差Delta維護內部時鐘。 從三層授時模型看,影響授時精度的是秒計時器精度,因此測量秒計時器精度即可得到授時精度。

M12M Timing GPS授時模塊以TTL電平形式每秒產生1 PPS信號的同時,會以RS232串口形式同步輸出一個與1 PPS相對應的整數秒UTC時間信息,串口UTC時間信息與TTL電平信號延遲在50 ms之內,時序如圖2所示。

將授時模塊以TTL電平形式每秒產生1 PPS信號、與1 PPS相對應的整數秒UTC時間信息接入到FPGA模塊,每來一個1 PPS則秒計時器清零,并上傳當前1 PPS到達時間,發送給軟件模塊進行記錄,最后分析1 PPS達到時間的數據,連續運行4個小時左右。按照1 PPS達到時間幀的格式,提取微秒數據,將微秒數據做直方圖統計,如圖11所示。

圖11 統計圖

根據直方圖統計的數據,計算出微秒數據的標準差,標準差在概率統計中,反映組內個體間的離散程度,計算所得平均值為999 999.005 5,計算所得標準差為0.074 116,數據離散程度低,靠近中心平均值,所以認為對于時間精度的截取,可以達到百納秒級,滿足自主海上地震勘探裝備授時精度不低于50 μs的精度要求。

在本授時系統之上擴展的導航數據采集平臺,是“海途”拖纜綜合導航系統[3]的核心單元,順利完成海上三維地震采集作業,它的成功應用表明,該授時系統從時間授時精度、穩定性上都能滿足海上地震勘探生產作業要求。

5 結束語

本文開發了基于VxWorks實時操作系統和FPGA的授時系統,授時精度優于50 μs,成功應用到海上拖纜地震勘探生產作業中,滿足物探船上對時間同步的精度要求和實時性要求。在不失實時性和精度的前提下,該系統采用了模塊塊化設計,良好的擴展能力,使之易于擴展出具有時間標定或時間服務的應用系統。

猜你喜歡
信號系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
完形填空二則
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
孩子停止長個的信號
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 中文字幕人成乱码熟女免费| 国产精品部在线观看| 国产精品九九视频| 丰满的少妇人妻无码区| 国产原创自拍不卡第一页| 激情六月丁香婷婷| 欧美一区二区人人喊爽| 国产精选自拍| 久久国产精品国产自线拍| 国产簧片免费在线播放| 色成人亚洲| 四虎国产在线观看| 粉嫩国产白浆在线观看| 久草中文网| 中文字幕亚洲专区第19页| 久久www视频| 成人亚洲天堂| 国产美女无遮挡免费视频网站| 亚洲高清在线天堂精品| 小说区 亚洲 自拍 另类| 久久精品aⅴ无码中文字幕| 国产又爽又黄无遮挡免费观看 | 最近最新中文字幕在线第一页| AV网站中文| 中文纯内无码H| 免费一看一级毛片| 99国产精品一区二区| 欧美区国产区| 九九九国产| 亚洲男人的天堂视频| 亚洲综合天堂网| 亚洲综合在线最大成人| 女同国产精品一区二区| 国模极品一区二区三区| 国产日韩AV高潮在线| 东京热一区二区三区无码视频| 欧美日韩成人在线观看| 日韩精品无码免费专网站| 久久久久久久久亚洲精品| 在线观看无码a∨| 日韩福利在线观看| 国产女人喷水视频| 蜜桃臀无码内射一区二区三区 | 成人免费视频一区二区三区| 日日噜噜夜夜狠狠视频| 国产精品第页| 亚洲成人网在线播放| 国产精品亚洲综合久久小说| 91最新精品视频发布页| 日韩在线观看网站| 重口调教一区二区视频| 国产精品99r8在线观看| 国产性爱网站| 99视频在线免费看| 视频在线观看一区二区| 欧美色香蕉| 久草视频福利在线观看| 国产小视频免费观看| 中文无码精品a∨在线观看| 99热最新网址| 精品一区国产精品| 天天爽免费视频| 欧美A级V片在线观看| 欧美成人第一页| 久久精品一品道久久精品| 国产免费黄| 无码日韩人妻精品久久蜜桃| 日韩福利在线观看| 国产成人综合亚洲网址| 亚洲区欧美区| 精品午夜国产福利观看| 538精品在线观看| 国产精品毛片一区| 就去色综合| 欧美另类第一页| 青青草原国产免费av观看| 精品久久蜜桃| 呦女亚洲一区精品| 在线观看国产网址你懂的| 久久精品娱乐亚洲领先| 久草国产在线观看| 日韩欧美视频第一区在线观看|