基于FPGA的二進(jìn)制時(shí)鐘設(shè)計(jì)方案
來(lái)源:互聯(lián)網(wǎng)發(fā)布者:sigma 關(guān)鍵詞: fpga gps 二進(jìn)制 更新時(shí)間: 2024/08/02
本方案是一個(gè)基于FPGA的二進(jìn)制時(shí)鐘,使用GPS作為時(shí)間參考。
歷史上準(zhǔn)確測(cè)量時(shí)間提出了許多挑戰(zhàn)。只有約翰哈里森設(shè)計(jì)了一個(gè)可靠的時(shí)鐘,它可以在格林威治子午線保持參考時(shí)間,從而能夠在1700年代進(jìn)行準(zhǔn)確的導(dǎo)航以及繪制尚未開(kāi)發(fā)的海洋和陸地的圖表。
今天,我們生活在日益互聯(lián)的世界中,準(zhǔn)確的時(shí)間參考同樣重要。如果沒(méi)有一個(gè)共同的時(shí)間參考,當(dāng)我們從一個(gè)信號(hào)塔傳遞到另一個(gè)信號(hào)塔時(shí),信號(hào)塔就無(wú)法輕松同步代碼和切換呼叫。同樣,沒(méi)有共同時(shí)間參考的時(shí)間戳業(yè)務(wù)和銀行交易也可能具有挑戰(zhàn)性,并成為事件順序的仲裁噩夢(mèng)。
當(dāng)然,可用的最準(zhǔn)確的時(shí)鐘是原子鐘,但遺憾的是,它們也是最昂貴的,這限制了機(jī)構(gòu)使用它們的能力。
然而,有一個(gè)時(shí)間參考精確到+/-10ns,可以從空中免費(fèi)提取,這就是全球?qū)Ш叫l(wèi)星系統(tǒng)提供的時(shí)間參考。當(dāng)然,其中最著名的是全球定位系統(tǒng)(GPS),盡管有幾個(gè),例如GLONASS和Galileo。
所有這些衛(wèi)星都包含原子鐘,這使我們能夠?qū)崿F(xiàn)跨系統(tǒng)的高度準(zhǔn)確的時(shí)間參考。
在這個(gè)項(xiàng)目中,我們將使用GPS接收器Pmod接收GPS信號(hào)并對(duì)其進(jìn)行處理,以便我們可以在二進(jìn)制時(shí)鐘上顯示時(shí)間。
為此,我們將使用Vivado和SDK,這將是我們使用SDK的最后一個(gè)項(xiàng)目,因?yàn)閂itis可用。
維瓦多設(shè)計(jì)
要開(kāi)始設(shè)計(jì),我們需要做的第一件事是安裝Digilent庫(kù),使我們能夠配置PmodGPS/
該庫(kù)支持在Vivado和SDK的硬件和軟件開(kāi)發(fā)中使用Pmod。
為此,請(qǐng)?jiān)谖覀兊腣ivado項(xiàng)目中選擇、項(xiàng)目選項(xiàng)并選擇IP并導(dǎo)航到新的IP存儲(chǔ)庫(kù)。
我們還需要一些東西來(lái)驅(qū)動(dòng)NeoPixel顯示器,同樣對(duì)于之前的項(xiàng)目,我在這里將一個(gè)neopixelIP模塊推送到我的github
然后我們就可以創(chuàng)建一個(gè)Vivado項(xiàng)目,該項(xiàng)目將利用這些IP模塊與PmodGPS通信。
在新的Vivado項(xiàng)目中,我們需要以下IP
ZynqPS-為最小化配置
PmodGPS-將在軟件控制下與PmodGPS通信
AXIBRAM控制器-使ZynqPS能夠在PL中讀取和寫入BRAM
BRAM-雙端口BRAM包含Neo像素值
NeoPixelIP-驅(qū)動(dòng)NeoPixel驅(qū)動(dòng)信號(hào)
處理器重置塊-為系統(tǒng)提供重置
AXI互連-使多個(gè)AXI從設(shè)備能夠連接到單個(gè)PS主設(shè)備
需要配置PS才能提供
50MHz時(shí)的結(jié)構(gòu)時(shí)鐘
20MHz的結(jié)構(gòu)時(shí)鐘-用于為NeoPixelIP提供時(shí)鐘
GPMasterAXI接口
已啟用結(jié)構(gòu)中斷
這應(yīng)該會(huì)產(chǎn)生如下所示的框圖
在生成和導(dǎo)出位流之前,我們還需要設(shè)置引腳的IO位置。
我將在PmodGPS的Minized上使用Pmod2,在NeoPixel驅(qū)動(dòng)器上使用Pmod1我們?cè)赬DC文件中執(zhí)行此操作,如下所示。
這樣我們就可以實(shí)現(xiàn)設(shè)計(jì)并將硬件設(shè)計(jì)導(dǎo)出到SDK以生成所需的軟件。
軟件設(shè)計(jì)
在SDK中,我們需要根據(jù)剛剛從Vivado導(dǎo)出的硬件設(shè)計(jì)創(chuàng)建一個(gè)新的應(yīng)用程序和BSP。
一旦在BSP中創(chuàng)建了它,我們應(yīng)該會(huì)在BSPMSS文件中看到Pmod驅(qū)動(dòng)程序。
對(duì)于更改,我們的軟件應(yīng)用程序?qū)⑹侵袛囹?qū)動(dòng)的。
我們的軟件解決方案將遵循的架構(gòu)是
配置和初始化PmodGPS
配置和初始化BRAM控制器
配置中斷控制器并啟用來(lái)自PmodGPSUART的中斷。
等待PmodGPS鎖定信號(hào)
從PmodGPS讀取位置和時(shí)間數(shù)據(jù)
將時(shí)間轉(zhuǎn)換為二進(jìn)制元素進(jìn)行顯示
更新NeoPixel顯示
為了使用PmodGPS和AXIBRAM控制器,我們可以使用PmodGPS.h和xbram.h中提供的API
雖然可以使用xscugic.h提供的API配置中斷控制器
intSetupInterruptSystem(PmodGPS*InstancePtr,u32interruptDeviceID,u32interruptID){
intResult;
u16Options;
INTC*IntcInstancePtr=&intc;
XScuGic_Config*IntcConfig;
IntcConfig=XScuGic_LookupConfig(interruptDeviceID);
if(NULL==IntcConfig){
returnXST_FAILURE;
}
Result=XScuGic_CfgInitialize(IntcInstancePtr,IntcConfig,
IntcConfig-》CpuBaseAddress);
if(Result!=XST_SUCCESS){
returnXST_FAILURE;
}
XScuGic_SetPriorityTriggerType(IntcInstancePtr,interruptID,0xA0,0x3);
Result=XScuGic_Connect(IntcInstancePtr,interruptID,
(Xil_ExceptionHandler)XUartNs550_InterruptHandler,
&InstancePtr-》GPSUart);
if(Result!=XST_SUCCESS){
returnResult;
}
XScuGic_Enable(IntcInstancePtr,interruptID);
XUartNs550_SetHandler(&InstancePtr-》GPSUart,(void*)GPS_intHandler,
InstancePtr);
Xil_ExceptionInit();
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)INTC_HANDLER,IntcInstancePtr);
Xil_ExceptionEnable();
Options=XUN_OPTION_DATA_INTR|XUN_OPTION_FIFOS_ENABLE;
XUartNs550_SetOptions(&InstancePtr-》GPSUart,Options);
returnXST_SUCCESS;
}
我想做的第一件事是確保PmodGPS能夠鎖定信號(hào)并為我提供準(zhǔn)確的位置。
當(dāng)此代碼在Pmod2連接到PmodGPS的Minized上執(zhí)行時(shí),我們會(huì)在終端上看到以下輸出,為我提供了一個(gè)位置。
為了檢查這是正確的位置,將它輸入到谷歌地圖中可以以合理的精度提供我辦公室的位置。
由于能夠鎖定GPS信號(hào),因此更新了代碼以提供時(shí)間。這個(gè)時(shí)間被稱為協(xié)調(diào)世界時(shí)或簡(jiǎn)稱UTC,UTC參考格林威治標(biāo)準(zhǔn)時(shí)間,目前也恰好與英國(guó)的時(shí)間相同。
時(shí)間作為浮點(diǎn)數(shù)從PmodGPS輸出,如下面的終端輸出所示。
為了能夠創(chuàng)建一個(gè)二進(jìn)制時(shí)鐘,我們需要將其分解為以下內(nèi)容
小時(shí)幾十
小時(shí)單位
分十
分鐘單位
秒十
秒單位
這將使我們能夠使用NeoPixelArray繪制時(shí)間。
二進(jìn)制時(shí)鐘顯示時(shí)間如下
在NeoPixel上,我將在陣列中間使用6x4LED陣列。
但首先我們需要將UTC時(shí)間轉(zhuǎn)換為所需的格式,我們可以使用以下方法將時(shí)間(例如153400)拆分為正確的小時(shí)、分鐘和秒分組。
然后我們可以根據(jù)二進(jìn)制時(shí)間顯示的需要將每個(gè)元素分成十位和單位。
一旦我們分離了數(shù)字,我們就需要將值轉(zhuǎn)換為二進(jìn)制值,為此我創(chuàng)建了一個(gè)簡(jiǎn)單的子例程
這個(gè)函數(shù)返回一個(gè)代表二進(jìn)制數(shù)的四位向量,對(duì)于這個(gè)例子,我們不需要超過(guò)4位。
由于NeoPixel陣列被視為一個(gè)長(zhǎng)64NeoPixel元素,因此對(duì)于每個(gè)計(jì)數(shù)位置,我們只需要更改LED偏移位置。
根據(jù)該位是否已設(shè)置,LED的顏色是否會(huì)發(fā)生變化,設(shè)置的位為綠色,否則為藍(lán)色。
我使用下面的代碼來(lái)確定設(shè)置LED的值,因?yàn)槎M(jìn)制轉(zhuǎn)換函數(shù)返回一個(gè)指針。
當(dāng)我把所有這些放在一起時(shí),一旦PmodGPS鎖定信號(hào),二進(jìn)制時(shí)鐘就會(huì)按預(yù)期運(yùn)行。
確認(rèn)
對(duì)于許多人來(lái)說(shuō),讀取二進(jìn)制時(shí)鐘可能與傳統(tǒng)時(shí)鐘不同。因此,通過(guò)終端查看NeoPixel顯示和UTC時(shí)間輸出,我們可以驗(yàn)證顯示是否正確。
解碼后的時(shí)間看起來(lái)是正確的。
結(jié)論
該項(xiàng)目演示了我們?nèi)绾屋p松快速地將GPS用于導(dǎo)航以外的系統(tǒng),并創(chuàng)建一個(gè)有趣的示例,該示例可用作顯示器等。
這里還沒(méi)有內(nèi)容,您有什么問(wèn)題嗎?
電子電路資源推薦
- 電動(dòng)機(jī)的單片機(jī)控制(第3版)_王曉明
來(lái)源:下載中心
- 官方AD封裝庫(kù):Molex
來(lái)源:下載中心
- 電源基礎(chǔ)知識(shí)講座
來(lái)源:大學(xué)堂
- 開(kāi)關(guān)電源原理與維修
來(lái)源:大學(xué)堂
- PCB板基礎(chǔ)知識(shí)講解
來(lái)源:電路圖
- 電路的基本物理量:電流,電壓,電位,電動(dòng)勢(shì),電功率
來(lái)源:電路圖
推薦帖子 最新更新時(shí)間:2025-06-16 01:37
- 自己做的反字模軟件,可將代碼還原為圖像
- 軟件名稱:反字模軟件 說(shuō)明:本軟件可將十六進(jìn)制字符串轉(zhuǎn)換為原始圖像,用于將字模代碼還原為 單色圖像,也可用于檢驗(yàn)取模代碼是否正確。 使用說(shuō)明:在水平像素和垂直像素中輸入正確的圖像分辨率,根據(jù)需要選擇 橫向取模或縱向取模,是否反轉(zhuǎn)字節(jié),而后點(diǎn)擊轉(zhuǎn)換即可,在下方空白處即可 正常顯
hxcnz
下載中心專版
- CircuitPython OLED手表/手環(huán)
- 來(lái)自: https://learn.adafruit.com/circuitpython-oled-watch CircuitPython OLED手表/手環(huán)
dcexpert
MicroPython開(kāi)源版塊
- GitHub 將開(kāi)源代碼庫(kù)保存在北極洞穴
- 轉(zhuǎn)自: https://www.cnbeta.com/articles/tech/910755.htm 位于北極圈內(nèi)的挪威斯瓦爾巴特群島(Svalbard)將部分關(guān)閉的煤礦變成儲(chǔ)存庫(kù)來(lái)保存人類文明,如 Svalbard 全球種子庫(kù)。除了保存實(shí)物,它甚至還保存軟件之類的源代
dcexpert
MicroPython開(kāi)源版塊
- RFID系統(tǒng)中的一種PCB環(huán)型天線設(shè)計(jì)
- 本文實(shí)現(xiàn)了RFID系統(tǒng)中的一種 PCB 環(huán)型 天線 設(shè)計(jì)。在對(duì) 天線 的工作原理進(jìn)行分析的 基礎(chǔ) 上,提出基于13.56 MHz、200 mw的低功率閱讀器的 天線 設(shè)計(jì)方法,并給出 天線 的設(shè)計(jì)和調(diào)試過(guò)程。 引 言 天線 是一種轉(zhuǎn)能器。發(fā)射時(shí),它把發(fā)射機(jī)的高頻電流轉(zhuǎn)化為空間
xtss
無(wú)線連接
- 參加RT-Thread軟件包賽,贏取RoboMaster等豐厚獎(jiǎng)品!
- 活動(dòng)詳情: 參加RT-Thread軟件包賽,贏取RoboMaster等豐厚獎(jiǎng)品! 恭喜以下網(wǎng)友獲得開(kāi)發(fā)板/書(shū)籍,請(qǐng)?jiān)?1月17日前進(jìn)本帖確認(rèn)個(gè)人信息,以便我們寄送獎(jiǎng)品。我們將通過(guò)短消息和Email通知兩次,逾期將取消獲獎(jiǎng)資格。 論壇id 開(kāi)發(fā)
okhxyyo
EEWORLD頒獎(jiǎng)專區(qū)
- 新人請(qǐng)教,IAR編譯報(bào)undefined錯(cuò)誤的問(wèn)題
- 各位大神,想請(qǐng)教一個(gè)IAR工具使用的問(wèn)題。 我使用IAR添加了一個(gè)project,【這個(gè)project是已經(jīng)封裝好的,不是我編的】,project里有兩個(gè)項(xiàng)目,一個(gè) 的項(xiàng)目是能正常rebuild成功,另一個(gè)項(xiàng)目是Exclude被隱藏的。然后我打開(kāi)了想要編譯另一個(gè)項(xiàng)目,編譯一次
Ming071
stm32/stm8
- TI c6000 與arm 數(shù)據(jù)類型的區(qū)別
- MSP430F5529&LCD1602程序
- 高速采集模塊
- 有沒(méi)有輸出正負(fù)電壓的穩(wěn)壓芯片
- 請(qǐng)幫忙分析下這個(gè)電路中,達(dá)林頓管用什么作用呢?謝謝了
- 5G手機(jī)天線設(shè)計(jì)方法:如何實(shí)現(xiàn)孔徑調(diào)諧?
- 學(xué)一點(diǎn)msp430f149波特率設(shè)置
- 【FPGA開(kāi)源教程連載】CYUSB3014型USB3.0+FPGA電路設(shè)計(jì)詳解
- 使用Verilog實(shí)現(xiàn)基于FPGA的SDRAM控制器
- 【工程源碼】基于FPGA的多通DDS道信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)
- 基本運(yùn)算放大器配置
- 分享2018年11月意法半導(dǎo)體-順德電機(jī)控制路演會(huì)議手冊(cè)
- AD16 Sch畫線的按鈕不見(jiàn)了
- 51系列連接sht 30 ,剛上電總是讀不出數(shù)據(jù)
- 6678單核的spi 燒寫步驟
- linux開(kāi)發(fā)板的問(wèn)題
- 【CH579M-R1】+藍(lán)牙功能鍵初步測(cè)試
- 新冠疫情下助力物聯(lián)網(wǎng)的兩項(xiàng)技術(shù)你知道嗎?
- 【NUCLEO-L552ZE測(cè)評(píng)】-2: Stay in TrustZone
- 【GD32E503評(píng)測(cè)】Part2:環(huán)境搭建
-
收藏 ×
已收藏到:個(gè)人中心—電路圖—收藏
- 分享
- 評(píng)論
- 提問(wèn)/討論
- DC1753A-A,基于 LTC3880EUJ 雙相單輸出的演示板 (RSENSE),PMBus 降壓,6.5V = VIN = 24V,VOUT = 0.5V 至 3.3V @ 40A
- LTC1728ES5-1.8 電源監(jiān)視器的典型應(yīng)用,使用與 DC/DC 反饋分壓器相連的 VCCA
- jlink轉(zhuǎn)接板
- DEV-15165,SparkFun Qwiic MP3 觸發(fā)器開(kāi)發(fā)套件
- pcb名片---飯卡改造
- EVAL-ADM1075MEBZ,ADM1075 熱插拔控制器評(píng)估板
- DC1314A,使用 LT5581IDDB、6GHz、40dB RMS 功率檢測(cè)器的演示板 - 針對(duì) 10MHz 至 2.2GHz 進(jìn)行了優(yōu)化
- RT9013B 300mA、低壓差、低噪聲超快無(wú)旁路電容CMOS LDO穩(wěn)壓器的典型應(yīng)用
- EMCP-TF
- 使用 Endicott Research Group 的 SFD2CB4006F 的參考設(shè)計(jì)
- /*** *** *** *** *** *** *** *** *** *** //* MP3 Code for M32L *//* By pasyong
- 無(wú)線電2012第1期
- c語(yǔ)言PID算法在PC上的模擬實(shí)現(xiàn)
- 74AC175
- S60 Dll development source code
- SC667027中文資料,數(shù)據(jù)手冊(cè)
- How Linux Works - What Every Super-User Should Know 2004
- 基于89c52測(cè)溫系統(tǒng)在測(cè)長(zhǎng)儀上的應(yīng)用
- 化學(xué)計(jì)量方面的好助手
- ANX9030 datasheet,pdf, HDMI Transmitter
- 一個(gè)“沒(méi)節(jié)操”的黑客,2015年能賺多少錢?
- 新型 IoT僵尸網(wǎng)絡(luò)“捉迷藏”來(lái)襲,并非Mirai 變種
- 聯(lián)發(fā)科4G 真8核處理器MT6595要將手機(jī)從玩具變工具?
- 28納米芯片設(shè)備“禁運(yùn)”真相
- 【有獎(jiǎng)問(wèn)答】泛在電力物聯(lián)——智能電纜井蓋您見(jiàn)過(guò)嗎?
- 今日直播 | 2020 TI 嵌入式主題月直播重磅開(kāi)啟!
- 最新NexFET? N溝道功率MOSFET 實(shí)現(xiàn)業(yè)界最低電阻
- 視頻:MPLAB? Harmony專輯之第5集