【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十章 PS端RTC中斷實(shí)驗(yàn)
資料介紹
作者:ALINX
* 本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。
適用于板卡型號(hào):
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
vivado工程目錄為“ps_hello/vivado”
vitis工程目錄為“ps_rtc/vitis”
1.RTC介紹
實(shí)時(shí)時(shí)鐘(rtc)單元為系統(tǒng)和應(yīng)用軟件提供精確的時(shí)間基準(zhǔn)。為了滿足高精度的需要,實(shí)時(shí)時(shí)鐘還包括校準(zhǔn)電路,以補(bǔ)償溫度和電壓波動(dòng)。RTC 由 VCC-PSAUX 或 VCC-PSBATT 電源供電。當(dāng)輔助電源可用時(shí),RTC 使用它保持計(jì)數(shù)器活動(dòng)。當(dāng)輔助電源不可用時(shí),RTC 自動(dòng)切換到 VCC PSBATT 電源。RTC 功能如下:
1)系統(tǒng)掉電時(shí),該單元自動(dòng)切換至電池供電,實(shí)現(xiàn)時(shí)鐘的不間斷運(yùn)行
2)支持報(bào)警設(shè)置和周期中斷設(shè)置
3)校準(zhǔn)電路以確保時(shí)間精準(zhǔn)
4)三個(gè)計(jì)數(shù)器
時(shí)間秒計(jì)數(shù)器,32 位,可以計(jì)數(shù)約 136 年
32 KHz 參考時(shí)鐘計(jì)數(shù)器,表示 1 秒的計(jì)數(shù)
用于校準(zhǔn)的 4 位分?jǐn)?shù)計(jì)數(shù)器
RTC控制器結(jié)構(gòu)圖
RTC功能圖
2. 中斷介紹
1)ARM cortex-A系列處理器,提供了4個(gè)管腳給soc,實(shí)現(xiàn)外界中斷的傳遞。分別是:nIRQ、nFIQ、nVIRQ、nVFIQ。arm系統(tǒng)中,會(huì)有多個(gè)外設(shè),均有可能產(chǎn)生中斷發(fā)送給core,因此就需要有一個(gè)中斷控制器來作為中間的橋接,收集soc的所有中斷信號(hào),然后仲裁選擇合適(高優(yōu)先級(jí))的中斷,再發(fā)送給CPU,等待CPU處理。
2)這里中間的橋接,就是arm公司推出的大名鼎鼎的gic(general interrupt controller)。gic其實(shí)是一個(gè)架構(gòu),版本歷經(jīng)了gicv1,gicv2,gicv3,gicv4。
3)Ultrascale+中斷框圖如下
圖中包含兩個(gè)GIC:
RPU GIC:PL390(arm公司設(shè)計(jì)的對(duì)應(yīng)GICv1 IP)
APU GIC:GIC-400(arm公司設(shè)計(jì)的對(duì)應(yīng)GICv2 IP)
4)RPU GIC,其系統(tǒng)功能框圖如下:
從圖中可以看到,中斷源主要有三種:
PPI:private peripheral interrupt,私有外設(shè)中斷,該中斷來源于外設(shè),只對(duì)固定的core有效。
SPI:shared peripheral interrupt,共享外設(shè)中斷,該中斷來源于外設(shè),可以對(duì)所有的core有效。
SGI:software-generated interrupt,軟中斷,軟件產(chǎn)生的中斷,用于給指定的core發(fā)送中斷信號(hào)
控制器功能框圖如下:
上圖中, ICD的控制寄存器主要如下:
1)APU GIC,功能框圖如下
GICv2,將中斷分成了group0和group1。使用寄存器GICD_IGROUPRn來對(duì)每個(gè)中斷,設(shè)置組。其中g(shù)roup0:安全中斷,由nFIQ驅(qū)動(dòng),group1:非安全中斷,由nIRQ驅(qū)動(dòng)。支持最大1020個(gè)中斷。其中斷號(hào)分配如下:
GICv2,主要由兩部分組成:distributor及cpu interface。
distributor,用來收集所有的中斷來源,并且為每個(gè)中斷源設(shè)置中斷優(yōu)先級(jí),中斷分組,中斷目的core。當(dāng)有中斷產(chǎn)生時(shí),將當(dāng)前最高優(yōu)先級(jí)中斷,發(fā)送給對(duì)應(yīng)的cpu interface。其功能有:全局中斷使能、每個(gè)中斷的使能、中斷的優(yōu)先級(jí)、中斷的分組、中斷的目的core、中斷觸發(fā)方式、對(duì)于SGI中斷,傳輸中斷到指定的core、每個(gè)中斷的狀態(tài)管理、提供軟件,可以修改中斷的pending狀態(tài)
cpu interface,將GICD發(fā)送的中斷信息,通過IRQ,F(xiàn)IQ管腳,發(fā)送給連接到該cpu接口的core。其功能有:將中斷請(qǐng)求發(fā)送給cpu、對(duì)中斷進(jìn)行認(rèn)可(acknowledging an interrupt)、中斷完成識(shí)別(indicating completion of an interrupt)、設(shè)置中斷優(yōu)先級(jí)屏蔽、定義中斷搶占策略、決定當(dāng)前處于pending狀態(tài)最高優(yōu)先級(jí)中斷
gicv2,定義了自己的一些寄存器,這些寄存器,都是使用memory-mapped的方式去訪問的,也就是在soc中,會(huì)留有一片空間,給gic。cpu通過訪問這部分空間,來對(duì)gic進(jìn)行操作。主要寄存器如下:
這里中斷只是作簡(jiǎn)單介紹,需要詳細(xì)了解的,請(qǐng)參照xilinx提供的文檔:ug1085-zynq-ultrascale-trm.pdf。
軟件工程師工作內(nèi)容
以下為軟件工程師負(fù)責(zé)內(nèi)容。
3. Vitis程序編寫
3.1 創(chuàng)建Platform工程
1)點(diǎn)擊Tools->Launch Vitis
2) 與前面的Hello World實(shí)驗(yàn)不同,我們只建立Platform工程
3) 填入工程名字,要與XSA文件的名字一樣,點(diǎn)擊Next
4) 點(diǎn)擊Next
5) 選擇XSA文件
保持默認(rèn),點(diǎn)擊Finish
6) 點(diǎn)開platform.spr,并點(diǎn)開BSP
7) 找到RTC驅(qū)動(dòng),并點(diǎn)擊Import Examples
8) 非常幸運(yùn),有中斷的例子,怎么就知道這個(gè)例子就是中斷的例子呢?是通過“intr”猜測(cè)的,所以,基本功很重要,不然你連找例程都不會(huì)。
9) 在這里就導(dǎo)入了example工程
下面就是閱讀代碼,然后修改代碼了,當(dāng)然,可能一下不能完全理解這些代碼,只能在以后的應(yīng)用中去反復(fù)練習(xí)
10)通過函數(shù)XRtcPsu_GetCurrentTime來獲取系統(tǒng)秒計(jì)數(shù)器值,用函數(shù)XRtcPsu_SecToDateTime將計(jì)數(shù)值轉(zhuǎn)換為我們能看明白的年月日時(shí)分秒。
11)設(shè)置中斷時(shí)間,中斷時(shí)間PERIODIC_ALARM_PERIOD宏定義為2,也就是2秒中斷一次
12)Build Project編譯
13)了解一下中斷控制器的使用,主要分為幾個(gè)步驟,初始化中斷控制器GIC初始化中斷異常中斷服務(wù)函數(shù)注冊(cè)在中斷控制器中使能中斷使能中斷異常。有兩步需要注意,在中斷控制器中使能中斷是要根據(jù)中斷號(hào)使能相應(yīng)的中斷,比如本章介紹的RTC,是在中斷控制器GIC中的使能中斷,而后面的使能外設(shè)中斷是指在外設(shè)中打開它的中斷,正常情況下是不打開的,打開之后就可以產(chǎn)生中斷傳遞到中斷控制器GIC。在以后的實(shí)驗(yàn)中可以借鑒這種寫法。
4. 下載調(diào)試
1)打開串口終端;
2)下載調(diào)試程序的方法前面教程已經(jīng)講解,不再復(fù)述;
3)和我們預(yù)期一樣,串口每?jī)擅霑?huì)看斷一次;
5. 實(shí)驗(yàn)總結(jié)
實(shí)驗(yàn)中通過簡(jiǎn)單的修改Vitis的例程,就完成了RTC,中斷的應(yīng)用,看似簡(jiǎn)單的操作,但蘊(yùn)含了豐富的知識(shí),我們需要非常了解RTC的原理、中斷的原理,這些基本知識(shí)是學(xué)習(xí)好ZYNQ的必要條件。
- 采用Zynq UltraScale+ MPSoC滿足汽車ESD和SEED要求
- Zynq UltraScale+ MPSoC中的隔離方法應(yīng)用筆記
- Zynq UltraScale+ MPSoC生產(chǎn)勘誤表
- Zynq UltraScale+ MPSoC數(shù)據(jù)手冊(cè):DC和AC開關(guān)特性
- Zynq UltraScale+ MPSoC驗(yàn)證數(shù)據(jù)手冊(cè)
- Zynq UltraScale+ MPSoC:軟件開發(fā)者指南
- Zynq UltraScale+ MPSoC中的隔離方法
- Zynq UltraScale+ MPSoC的隔離設(shè)計(jì)示例
- 適用于Xilinx Zynq UltraScale+ MPSoC應(yīng)用的電源參考設(shè)計(jì)
- 米爾電子zynq ultrascale+ mpsoc底板外設(shè)資源清單分享
- 如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
- 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二章 硬件原理圖介紹
- 【ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介紹
- Zynq UltraScale MPSOC數(shù)據(jù)手冊(cè)免費(fèi)下載 20次下載
- Xilinx的Xa Zynq UltraScale MPSOC數(shù)據(jù)手冊(cè)免費(fèi)下載 10次下載
- 針對(duì)UltraScale/UltraScale+芯片DFX應(yīng)考慮的因素有哪些(1) 537次閱讀
- xilinx ZYNQ7000系列基本開發(fā)流程之PS端 8548次閱讀
- Xilinx ZYNQ UltraScale+系列產(chǎn)品介紹 2405次閱讀
- FPGAs,Zynq和Zynq MPSoC器件的特點(diǎn) 2275次閱讀
- 基于Xilinx Zynq UltraScale+ RFSoC ZCU216評(píng)估套件詳細(xì)內(nèi)容介紹 9162次閱讀
- 基于Xilinx Zynq ultraScale+ 系列FPGA的AXU2CGB 開發(fā)板評(píng)測(cè) 9051次閱讀
- 米爾科技Zynq UltraScale+ MPSoC技術(shù)參考手冊(cè)介紹 2975次閱讀
- 詳解Xilinx公司Zynq? UltraScale+?MPSoC產(chǎn)品 3184次閱讀
- Xilinx Zynq UltraScale MPSoC可擴(kuò)展電源設(shè)計(jì) 1950次閱讀
- Zynq UltraScale+ MPSoC ZCU102評(píng)估套件解決方案 8640次閱讀
- Enea OSE可實(shí)現(xiàn)對(duì)Xilinx UltraScale+ MPSoC的支持 2790次閱讀
- Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞 2620次閱讀
- Zynq UltraScale+ MPSoC 上的多個(gè)Linux UIO設(shè)計(jì) 3219次閱讀
- 用ZYNQ MPSoC玩DOOM! 2539次閱讀
- Ti推出面向Zynq UltraScale+ MPSoC的電源參考設(shè)計(jì) 3588次閱讀
下載排行
本周
- 1HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
- 24.30 MB | 128次下載 | 1 積分
- 2雷達(dá)的基本分類方法
- 1.25 MB | 4次下載 | 4 積分
- 3電感技術(shù)講解
- 827.73 KB | 2次下載 | 免費(fèi)
- 4從 MSP430? MCU 到 MSPM0 MCU 的遷移指南
- 1.17MB | 2次下載 | 免費(fèi)
- 5有源低通濾波器設(shè)計(jì)應(yīng)用說明
- 1.12MB | 2次下載 | 免費(fèi)
- 6RA-Eco-RA2E1-48PIN-V1.0開發(fā)板資料
- 35.59 MB | 2次下載 | 免費(fèi)
- 7面向熱插拔應(yīng)用的 I2C 解決方案
- 685.57KB | 1次下載 | 免費(fèi)
- 8愛普生有源晶體振蕩器SG3225EEN應(yīng)用于儲(chǔ)能NPC、新能源
- 317.46 KB | 1次下載 | 免費(fèi)
本月
- 12024年工控與通信行業(yè)上游發(fā)展趨勢(shì)和熱點(diǎn)解讀
- 2.61 MB | 763次下載 | 免費(fèi)
- 2HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
- 24.30 MB | 128次下載 | 1 積分
- 3繼電保護(hù)原理
- 2.80 MB | 36次下載 | 免費(fèi)
- 4正激、反激、推挽、全橋、半橋區(qū)別和特點(diǎn)
- 0.91 MB | 32次下載 | 1 積分
- 5labview實(shí)現(xiàn)DBC在界面加載配置
- 0.57 MB | 21次下載 | 5 積分
- 6在設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線
- 1.57MB | 15次下載 | 免費(fèi)
- 7GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 14次下載 | 免費(fèi)
- 8H橋中的電流感測(cè)
- 545.39KB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935113次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191360次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81578次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73804次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評(píng)論
查看更多