資料介紹
作者:ALINX
* 本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權歸本公司所有,如需轉(zhuǎn)載,需授權并注明出處。
適用于板卡型號:
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
vivado工程目錄為“ps_hello/vivado”
vitis工程目錄為“ps_rtc/vitis”
1.RTC介紹
實時時鐘(rtc)單元為系統(tǒng)和應用軟件提供精確的時間基準。為了滿足高精度的需要,實時時鐘還包括校準電路,以補償溫度和電壓波動。RTC 由 VCC-PSAUX 或 VCC-PSBATT 電源供電。當輔助電源可用時,RTC 使用它保持計數(shù)器活動。當輔助電源不可用時,RTC 自動切換到 VCC PSBATT 電源。RTC 功能如下:
1)系統(tǒng)掉電時,該單元自動切換至電池供電,實現(xiàn)時鐘的不間斷運行
2)支持報警設置和周期中斷設置
3)校準電路以確保時間精準
4)三個計數(shù)器
時間秒計數(shù)器,32 位,可以計數(shù)約 136 年
32 KHz 參考時鐘計數(shù)器,表示 1 秒的計數(shù)
用于校準的 4 位分數(shù)計數(shù)器
![](https://file.elecfans.com/web1/M00/DC/0B/pIYBAGAJQaeAOxmbAACKkKzN9_o872.jpg)
RTC控制器結(jié)構(gòu)圖
![](https://file.elecfans.com/web1/M00/DB/8C/o4YBAGAJQeeAbAiNAACAZwA3DPk952.jpg)
RTC功能圖
2. 中斷介紹
1)ARM cortex-A系列處理器,提供了4個管腳給soc,實現(xiàn)外界中斷的傳遞。分別是:nIRQ、nFIQ、nVIRQ、nVFIQ。arm系統(tǒng)中,會有多個外設,均有可能產(chǎn)生中斷發(fā)送給core,因此就需要有一個中斷控制器來作為中間的橋接,收集soc的所有中斷信號,然后仲裁選擇合適(高優(yōu)先級)的中斷,再發(fā)送給CPU,等待CPU處理。
2)這里中間的橋接,就是arm公司推出的大名鼎鼎的gic(general interrupt controller)。gic其實是一個架構(gòu),版本歷經(jīng)了gicv1,gicv2,gicv3,gicv4。
3)Ultrascale+中斷框圖如下
![](https://file.elecfans.com/web1/M00/DB/8C/o4YBAGAJQiWAFBOFAACq7bsFgBo393.jpg)
圖中包含兩個GIC:
RPU GIC:PL390(arm公司設計的對應GICv1 IP)
APU GIC:GIC-400(arm公司設計的對應GICv2 IP)
4)RPU GIC,其系統(tǒng)功能框圖如下:
![](https://file.elecfans.com/web1/M00/DC/0B/pIYBAGAJQmSANoa2AACoe6w1F_w243.jpg)
從圖中可以看到,中斷源主要有三種:
PPI:private peripheral interrupt,私有外設中斷,該中斷來源于外設,只對固定的core有效。
SPI:shared peripheral interrupt,共享外設中斷,該中斷來源于外設,可以對所有的core有效。
SGI:software-generated interrupt,軟中斷,軟件產(chǎn)生的中斷,用于給指定的core發(fā)送中斷信號
控制器功能框圖如下:
![](https://file.elecfans.com/web1/M00/DB/8C/o4YBAGAJQrqAa4l_AACF_o5Pqfs423.png)
上圖中, ICD的控制寄存器主要如下:
![](https://file.elecfans.com/web1/M00/DC/0B/pIYBAGAJQvmAdIznAAFAupdwVn4683.jpg)
1)APU GIC,功能框圖如下
![](https://file.elecfans.com/web1/M00/DC/0B/pIYBAGAJQzeAdvV9AABYKsw1fDk775.png)
GICv2,將中斷分成了group0和group1。使用寄存器GICD_IGROUPRn來對每個中斷,設置組。其中group0:安全中斷,由nFIQ驅(qū)動,group1:非安全中斷,由nIRQ驅(qū)動。支持最大1020個中斷。其中斷號分配如下:
![](https://file.elecfans.com/web1/M00/DB/8C/o4YBAGAJQ3WAP7ZPAAAq21bxCLs671.jpg)
GICv2,主要由兩部分組成:distributor及cpu interface。
distributor,用來收集所有的中斷來源,并且為每個中斷源設置中斷優(yōu)先級,中斷分組,中斷目的core。當有中斷產(chǎn)生時,將當前最高優(yōu)先級中斷,發(fā)送給對應的cpu interface。其功能有:全局中斷使能、每個中斷的使能、中斷的優(yōu)先級、中斷的分組、中斷的目的core、中斷觸發(fā)方式、對于SGI中斷,傳輸中斷到指定的core、每個中斷的狀態(tài)管理、提供軟件,可以修改中斷的pending狀態(tài)
cpu interface,將GICD發(fā)送的中斷信息,通過IRQ,F(xiàn)IQ管腳,發(fā)送給連接到該cpu接口的core。其功能有:將中斷請求發(fā)送給cpu、對中斷進行認可(acknowledging an interrupt)、中斷完成識別(indicating completion of an interrupt)、設置中斷優(yōu)先級屏蔽、定義中斷搶占策略、決定當前處于pending狀態(tài)最高優(yōu)先級中斷
gicv2,定義了自己的一些寄存器,這些寄存器,都是使用memory-mapped的方式去訪問的,也就是在soc中,會留有一片空間,給gic。cpu通過訪問這部分空間,來對gic進行操作。主要寄存器如下:
![](https://file.elecfans.com/web1/M00/DB/8C/o4YBAGAJQ7SAOYBPAAAxtCmvcRA372.png)
這里中斷只是作簡單介紹,需要詳細了解的,請參照xilinx提供的文檔:ug1085-zynq-ultrascale-trm.pdf。
軟件工程師工作內(nèi)容
以下為軟件工程師負責內(nèi)容。
3. Vitis程序編寫
3.1 創(chuàng)建Platform工程
1)點擊Tools->Launch Vitis
![](https://file.elecfans.com/web1/M00/DC/0B/pIYBAGAJQ_KABZ_LAABrenT6bXk766.png)
2) 與前面的Hello World實驗不同,我們只建立Platform工程
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJRC-AI8KcAAAVpuknEy8616.png)
3) 填入工程名字,要與XSA文件的名字一樣,點擊Next
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJRG6Afin6AAB15trv5o8583.png)
4) 點擊Next
![](https://file.elecfans.com/web1/M00/DC/0C/pIYBAGAJRKuAYCAfAABhIHjoopY683.png)
5) 選擇XSA文件
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJROqAWl93AAA9MMh2hYI621.png)
保持默認,點擊Finish
![](https://file.elecfans.com/web1/M00/DC/0C/pIYBAGAJRSiATeefAABmTj1yLQM345.png)
6) 點開platform.spr,并點開BSP
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJRWaAToxaAABpLaD4qPk590.png)
7) 找到RTC驅(qū)動,并點擊Import Examples
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJRauARgFrAABazE1UX-w236.jpg)
8) 非常幸運,有中斷的例子,怎么就知道這個例子就是中斷的例子呢?是通過“intr”猜測的,所以,基本功很重要,不然你連找例程都不會。
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJRemAEC3lAABNRlqRG5A334.png)
9) 在這里就導入了example工程
![](https://file.elecfans.com/web1/M00/DC/0C/pIYBAGAJRiaACTgSAABtZ55sZcI160.jpg)
下面就是閱讀代碼,然后修改代碼了,當然,可能一下不能完全理解這些代碼,只能在以后的應用中去反復練習
10)通過函數(shù)XRtcPsu_GetCurrentTime來獲取系統(tǒng)秒計數(shù)器值,用函數(shù)XRtcPsu_SecToDateTime將計數(shù)值轉(zhuǎn)換為我們能看明白的年月日時分秒。
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJRmSABD9jAAAsBFbwEpo516.jpg)
11)設置中斷時間,中斷時間PERIODIC_ALARM_PERIOD宏定義為2,也就是2秒中斷一次
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJRqOAba1pAAB36mqaTqs808.png)
12)Build Project編譯
![](https://file.elecfans.com/web1/M00/DB/8D/o4YBAGAJRuKAGT8yAAB1o-L6ydE215.png)
13)了解一下中斷控制器的使用,主要分為幾個步驟,初始化中斷控制器GIC初始化中斷異常中斷服務函數(shù)注冊在中斷控制器中使能中斷使能中斷異常。有兩步需要注意,在中斷控制器中使能中斷是要根據(jù)中斷號使能相應的中斷,比如本章介紹的RTC,是在中斷控制器GIC中的使能中斷,而后面的使能外設中斷是指在外設中打開它的中斷,正常情況下是不打開的,打開之后就可以產(chǎn)生中斷傳遞到中斷控制器GIC。在以后的實驗中可以借鑒這種寫法。
![](https://file.elecfans.com/web1/M00/DC/0C/pIYBAGAJRzWAUIkQAAHXImWaNfg272.jpg)
4. 下載調(diào)試
1)打開串口終端;
2)下載調(diào)試程序的方法前面教程已經(jīng)講解,不再復述;
3)和我們預期一樣,串口每兩秒會看斷一次;
![](https://file.elecfans.com/web1/M00/DC/0D/pIYBAGAJR6-AEExkAAAa9YCaCts641.png)
5. 實驗總結(jié)
實驗中通過簡單的修改Vitis的例程,就完成了RTC,中斷的應用,看似簡單的操作,但蘊含了豐富的知識,我們需要非常了解RTC的原理、中斷的原理,這些基本知識是學習好ZYNQ的必要條件。
- Zynq UltraScale+ MPSoC數(shù)據(jù)手冊 0次下載
- 采用Zynq UltraScale+ MPSoC滿足汽車ESD和SEED要求
- Zynq UltraScale+ MPSoC中的隔離方法應用筆記
- Zynq UltraScale+ MPSoC生產(chǎn)勘誤表
- Zynq UltraScale+ MPSoC數(shù)據(jù)手冊:DC和AC開關特性
- Zynq UltraScale+ MPSoC驗證數(shù)據(jù)手冊
- Zynq UltraScale+ MPSoC:軟件開發(fā)者指南
- Zynq UltraScale+ MPSoC中的隔離方法
- Zynq UltraScale+ MPSoC的隔離設計示例
- 適用于Xilinx Zynq UltraScale+ MPSoC應用的電源參考設計
- 米爾電子zynq ultrascale+ mpsoc底板外設資源清單分享
- 如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
- 【ZYNQ Ultrascale+ MPSOC FPGA教程】第二章 硬件原理圖介紹
- 【ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介紹
- Zynq UltraScale MPSOC數(shù)據(jù)手冊免費下載 21次下載
- 針對UltraScale/UltraScale+芯片DFX應考慮的因素有哪些(1) 776次閱讀
- xilinx ZYNQ7000系列基本開發(fā)流程之PS端 1w次閱讀
- Xilinx ZYNQ UltraScale+系列產(chǎn)品介紹 2835次閱讀
- FPGAs,Zynq和Zynq MPSoC器件的特點 2671次閱讀
- 基于Xilinx Zynq UltraScale+ RFSoC ZCU216評估套件詳細內(nèi)容介紹 1w次閱讀
- 基于Xilinx Zynq ultraScale+ 系列FPGA的AXU2CGB 開發(fā)板評測 9735次閱讀
- 米爾科技Zynq UltraScale+ MPSoC技術參考手冊介紹 3246次閱讀
- 詳解Xilinx公司Zynq? UltraScale+?MPSoC產(chǎn)品 3357次閱讀
- Xilinx Zynq UltraScale MPSoC可擴展電源設計 2045次閱讀
- Zynq UltraScale+ MPSoC ZCU102評估套件解決方案 8865次閱讀
- Enea OSE可實現(xiàn)對Xilinx UltraScale+ MPSoC的支持 2925次閱讀
- Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞 2686次閱讀
- Zynq UltraScale+ MPSoC 上的多個Linux UIO設計 3349次閱讀
- 用ZYNQ MPSoC玩DOOM! 2667次閱讀
- Ti推出面向Zynq UltraScale+ MPSoC的電源參考設計 3731次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論