基于FPGA的恒溫晶振頻率校準系統的設計
1.5 PicoBlaze軟核設計
PicoBlaze是XILINX公司設計的8位微控制器軟核,可以嵌入到Cool Runner II、Virtex-E、Virtex-II(Pro) 和 Spartan3(E)的CPLD以及FPGA中,設計靈活方便。PicoBlaze的端口總線(xiàn)提供8位地址(PORT_ID)和讀寫(xiě)選通信號,最多可以實(shí)現256個(gè)輸入和輸出端口。接口設計如圖6所示,PicoBlaze用來(lái)接收延遲線(xiàn)模塊和計數器模塊輸出的結果,同時(shí)讀取異步串行控制器(UART)的數據和狀態(tài)信息。其中異步串行控制器直接調用XILINX的IP核,與外部GPS模塊進(jìn)行串行通信。
此外,為了實(shí)現對測量數據的存儲以方便數據處理,PicoBlaze連接了一個(gè)FIFO數據緩沖,用于暫存未處理的測量數據。如圖7所示,PicoBlaze每個(gè)讀寫(xiě)操作需要兩個(gè)時(shí)鐘周期,此期間地址總線(xiàn)一直處于有效狀態(tài),而讀寫(xiě)使能信號僅在第二個(gè)時(shí)鐘周期開(kāi)始有效,所以地址總線(xiàn)上可以連接適當的邏輯電路進(jìn)行地址解碼。
設計中使用四路選通器分別連接計數器模塊、延遲線(xiàn)模塊和FIFO緩沖的輸出,其中因計數器模塊中采用16位的計數器循環(huán)計數,為了與PicoBlaze輸入匹配,須將計數值分兩部分接到選通器。異步串行控制器的輸出和狀態(tài)信息分別接到三路選通器,剩余一路連接四路選通器的輸出。由于UART和PicoBlaze使用的時(shí)鐘頻率和測量部分不同,為了提高數據傳輸的可靠性,在選通器之間增加了流水線(xiàn)寄存器。
系統運行時(shí)PicoBlaze將對UART狀態(tài)進(jìn)行查詢(xún),當檢測到有GPS串碼數據時(shí)便開(kāi)始讀取其串碼信息。GPS串碼信息用于分析當前GPS的狀態(tài),如果檢測GPS模塊已經(jīng)鎖定衛星,則系統開(kāi)始進(jìn)行測量和校準工作。
2 測量數據處理
根據測量到的時(shí)間間隔數據,按照公式:
可以計算出晶振信號相對于GPS的頻率偏差,其中T1和T2分別是測量部分相隔采樣時(shí)間τ前后輸出的時(shí)間間隔測量值。根據頻率偏差的大小,再結合晶振的壓控靈敏度,便可以實(shí)現對晶振的輸出頻率進(jìn)行控制和修正。但GPS信號在傳輸過(guò)程中容易受到外界影響,GPS模塊輸出的1-pps信號是一個(gè)波動(dòng)信號,其短期穩定性較差。圖8的黑色曲線(xiàn)是使用本系統測量得到的本地晶振相對于GPS系統的時(shí)間間隔曲線(xiàn),使用這些數據計算得到的頻率偏差也會(huì )受到影響而發(fā)生波動(dòng),所以不能直接使用。
從式(4)可以看出,計算頻率偏差僅僅需要窗口的端點(diǎn)處的測量值而不受窗口內的測量值影響。在實(shí)際應用時(shí),計算量很小而且簡(jiǎn)單,方便使用PicoBlaze軟核處理器來(lái)實(shí)現。PicoBlaze連接的FIFO數據緩沖用來(lái)存儲滑動(dòng)窗口中的測量數據。當存儲達到預設的窗口長(cháng)度時(shí),將從FIFO中順序讀取出先前的測量值,配合當前測量值,根據式(3)計算出頻率偏差。圖8的白色曲線(xiàn)是添加濾波處理后系統輸出的時(shí)間間隔,對比可以看出濾波對抖動(dòng)和較大的跳變點(diǎn)都有很好的抑制作用。
本文介紹的晶振頻率校準系統利用GPS模塊輸出的標準秒脈沖信號對本地晶振頻率進(jìn)行校準。本設計基于FPGA內部進(jìn)位邏輯資源實(shí)現了高分辨率的時(shí)間間隔測量單元,并配合滑動(dòng)平均濾波法利用PicoBlaze處理器對測量的時(shí)間間隔數據進(jìn)行實(shí)時(shí)處理。不僅能夠準確地測量本地晶振分頻信號與GPS秒脈沖信號之間的時(shí)間間隔,而且降低了GPS秒脈沖波動(dòng)對測量結果的干擾,為校準晶振頻率提供可靠的修正數據。此外,系統測控部分完全在FPGA中實(shí)現,利于提高測量分辨率,減小系統體積,提高系統運行的穩定性。本系統不僅可以用于大地電磁三維采集站,還可以在其他對頻率準確度有要求的儀器中使用。
評論