那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十章PS端RTC中斷實驗

FPGA技術專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-01-26 09:57 ? 次閱讀

原創聲明:

本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處。

適用于板卡型號:

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

vivado工程目錄為“ps_hello/vivado”

vitis工程目錄為“ps_rtc/vitis”

1.RTC介紹

實時時鐘(rtc)單元為系統和應用軟件提供精確的時間基準。為了滿足高精度的需要,實時時鐘還包括校準電路,以補償溫度和電壓波動。RTC 由 VCC-PSAUX 或 VCC-PSBATT 電源供電。當輔助電源可用時,RTC 使用它保持計數器活動。當輔助電源不可用時,RTC 自動切換到 VCC PSBATT 電源。RTC 功能如下:

1)系統掉電時,該單元自動切換至電池供電,實現時鐘的不間斷運行

2)支持報警設置和周期中斷設置

3)校準電路以確保時間精準

4)三個計數器

時間秒計數器,32 位,可以計數約 136 年

32 KHz 參考時鐘計數器,表示 1 秒的計數

用于校準的 4 位分數計數器

o4YBAGAKMQiABQ4uAACJabGpoXw935.jpg

RTC控制器結構圖

pIYBAGAKMQiADN7jAACBFWj3pX4406.jpgRTC功能圖

2. 中斷介紹

1)ARM cortex-A系列處理器,提供了4個管腳給soc,實現外界中斷的傳遞。分別是:nIRQ、nFIQ、nVIRQ、nVFIQ。arm系統中,會有多個外設,均有可能產生中斷發送給core,因此就需要有一個中斷控制器來作為中間的橋接,收集soc的所有中斷信號,然后仲裁選擇合適(高優先級)的中斷,再發送給CPU,等待CPU處理。

2)這里中間的橋接,就是arm公司推出的大名鼎鼎的gic(general interrupt controller)。gic其實是一個架構,版本歷經了gicv1,gicv2,gicv3,gicv4。

3)Ultrascale+中斷框圖如下

o4YBAGAKMQmAQlZ-AACnZk4inwk187.jpg

圖中包含兩個GIC:

RPU GIC:PL390(arm公司設計的對應GICv1 IP)

APU GIC:GIC-400(arm公司設計的對應GICv2 IP)

4)RPU GIC,其系統功能框圖如下:

pIYBAGAKMQmALFVcAACf4RcNuCE113.jpg

從圖中可以看到,中斷源主要有三種:

PPI:private peripheral interrupt,私有外設中斷,該中斷來源于外設,只對固定的core有效。

SPI:shared peripheral interrupt,共享外設中斷,該中斷來源于外設,可以對所有的core有效。

SGI:software-generated interrupt,軟中斷,軟件產生的中斷,用于給指定的core發送中斷信號

控制器功能框圖如下:

o4YBAGAKMQqACPp-AACGkscayxg380.jpg

上圖中, ICD的控制寄存器主要如下:

pIYBAGAKMQuARG8eAAEzML9bDxQ698.jpg

1)APU GIC,功能框圖如下

o4YBAGAKMQuACHd7AABXKcQQ_TU392.jpg

GICv2,將中斷分成了group0和group1。使用寄存器GICD_IGROUPRn來對每個中斷,設置組。其中group0:安全中斷,由nFIQ驅動,group1:非安全中斷,由nIRQ驅動。支持最大1020個中斷。其中斷號分配如下:

pIYBAGAKMQuADXPNAAAeBXvK15E723.jpg

GICv2,主要由兩部分組成:distributor及cpu interface。

distributor,用來收集所有的中斷來源,并且為每個中斷源設置中斷優先級,中斷分組,中斷目的core。當有中斷產生時,將當前最高優先級中斷,發送給對應的cpu interface。其功能有:全局中斷使能、每個中斷的使能、中斷的優先級、中斷的分組、中斷的目的core、中斷觸發方式、對于SGI中斷,傳輸中斷到指定的core、每個中斷的狀態管理、提供軟件,可以修改中斷的pending狀態

cpu interface,將GICD發送的中斷信息,通過IRQ,FIQ管腳,發送給連接到該cpu接口的core。其功能有:將中斷請求發送給cpu、對中斷進行認可(acknowledging an interrupt)、中斷完成識別(indicating completion of an interrupt)、設置中斷優先級屏蔽、定義中斷搶占策略、決定當前處于pending狀態最高優先級中斷

gicv2,定義了自己的一些寄存器,這些寄存器,都是使用memory-mapped的方式去訪問的,也就是在soc中,會留有一片空間,給gic。cpu通過訪問這部分空間,來對gic進行操作。主要寄存器如下:

o4YBAGAKMQyAOKS8AAA0j87473E824.jpg

這里中斷只是作簡單介紹,需要詳細了解的,請參照xilinx提供的文檔:ug1085-zynq-ultrascale-trm.pdf。

軟件工程師工作內容

以下為軟件工程師負責內容。

3. Vitis程序編寫

3.1 創建Platform工程

1)點擊Tools->Launch Vitis

pIYBAGAKMQyAbnk4AABu2rrtFg0316.jpg

2) 與前面的Hello World實驗不同,我們只建立Platform工程

o4YBAGAKMQyAf6QyAAAb4CnbLpw517.jpg

3) 填入工程名字,要與XSA文件的名字一樣,點擊Next

pIYBAGAKMQ2ABhzlAACGDUHbF-A543.jpg

4) 點擊Next

o4YBAGAKMQ2AcMF0AABvI6_VwWc233.jpg

5) 選擇XSA文件

pIYBAGAKMQ6ARisKAABMJ5fkDVI544.jpg

保持默認,點擊Finish

o4YBAGAKMQ6AT4NuAAB06vYhAg8524.jpg

6) 點開platform.spr,并點開BSP

pIYBAGAKMQ-AcLXtAABtCt8ijIo047.jpg

7) 找到RTC驅動,并點擊Import Examples

o4YBAGAKMRCAB_0jAABK2babjPc843.jpg

8) 非常幸運,有中斷的例子,怎么就知道這個例子就是中斷的例子呢?是通過“intr”猜測的,所以,基本功很重要,不然你連找例程都不會。

pIYBAGAKMRCAOUIhAABbzrKHJAQ082.jpg

9) 在這里就導入了example工程

o4YBAGAKMRGAV7zvAABiMHIhpVg375.jpg

下面就是閱讀代碼,然后修改代碼了,當然,可能一下不能完全理解這些代碼,只能在以后的應用中去反復練習

10)通過函數XRtcPsu_GetCurrentTime來獲取系統秒計數器值,用函數XRtcPsu_SecToDateTime將計數值轉換為我們能看明白的年月日時分秒。

pIYBAGAKMRGACY1UAAAp2xqK7SA341.jpg

11)設置中斷時間,中斷時間PERIODIC_ALARM_PERIOD宏定義為2,也就是2秒中斷一次

pIYBAGAKMRKAHUCeAAB42KMdbiQ884.jpg

12)Build Project編譯

o4YBAGAKMROAOuXPAAB8GoxXTtU218.jpg

13)了解一下中斷控制器的使用,主要分為幾個步驟,初始化中斷控制器GIC初始化中斷異常中斷服務函數注冊在中斷控制器中使能中斷使能中斷異常。有兩步需要注意,在中斷控制器中使能中斷是要根據中斷號使能相應的中斷,比如本章介紹的RTC,是在中斷控制器GIC中的使能中斷,而后面的使能外設中斷是指在外設中打開它的中斷,正常情況下是不打開的,打開之后就可以產生中斷傳遞到中斷控制器GIC。在以后的實驗中可以借鑒這種寫法。

pIYBAGAKMROAcADnAAGzjCfkg6U530.jpg

4. 下載調試

1)打開串口終端;

2)下載調試程序的方法前面教程已經講解,不再復述;

3)和我們預期一樣,串口每兩秒會看斷一次;

o4YBAGAKMROAN9GxAAAk--kCb9k310.jpg

5. 實驗總結

實驗中通過簡單的修改Vitis的例程,就完成了RTC,中斷的應用,看似簡單的操作,但蘊含了豐富的知識,我們需要非常了解RTC的原理、中斷的原理,這些基本知識是學習好ZYNQ的必要條件。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605996
  • 實時時鐘
    +關注

    關注

    4

    文章

    248

    瀏覽量

    65965
  • RTC
    RTC
    +關注

    關注

    2

    文章

    542

    瀏覽量

    67028
  • Zynq
    +關注

    關注

    10

    文章

    610

    瀏覽量

    47296
  • MPSoC
    +關注

    關注

    0

    文章

    199

    瀏覽量

    24321
收藏 人收藏

    評論

    相關推薦

    ZYNQ Ultrascale+ MPSOC FPGA教程】第二十九章PLAXI GPIO的使用

    使用zynq最大的疑問就是如何把PS和PL結合起來使用,在其他的SOC芯片中一般都會有GPIO,本實驗使用一個AXI GPIO的IP核,讓PS
    的頭像 發表于 02-01 10:06 ?6829次閱讀
    【<b class='flag-5'>ZYNQ</b> <b class='flag-5'>Ultrascale+</b> <b class='flag-5'>MPSOC</b> <b class='flag-5'>FPGA</b>教程】<b class='flag-5'>第二十</b>九章PL<b class='flag-5'>端</b>AXI GPIO的使用

    如何調試Zynq UltraScale+ MPSoC VCU DDR控制器

      如何調試Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraScale+
    發表于 01-07 16:02

    如何調試Zynq UltraScale+ MPSoC VCU DDR控制器

    如何調試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    發表于 01-22 06:29

    ZYNQ Ultrascale+ MPSOC FPGA教程

    ZYNQ Ultrascale+ MPSOC FPGA教程
    發表于 02-02 07:53

    閑話Zynq UltraScale+ MPSoC(連載1)

    Zynq-7000,這款SoC功能顯得更加強勁:最顯著的變化是新加入了GPU和視頻編解碼器,PS的高速接口更加豐富。按照Xilinx官方的說法,Zynq
    發表于 02-08 08:24 ?752次閱讀
    閑話<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>(連載1)

    閑話Zynq UltraScale+ MPSoC(連載5)

    作者:Hello,Panda Part3 I/O資源 和Zynq-7000相比較,Zynq UltraScale+ 增強了PS的IO性能;
    發表于 02-08 08:29 ?770次閱讀
    閑話<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>(連載5)

    Zynq UltraScale+ MPSoC的發售消息

    Zynq?UltraScale+?MPSoC,現已開始發售。視頻向您重點介紹了Xilinx UltraScale +產品組合的第一位成員
    的頭像 發表于 11-27 06:47 ?3640次閱讀

    米爾科技Zynq UltraScale+ MPSoC技術參考手冊介紹

    Zynq UltraScale+ MPSoC是Xilinx推出的第二代多處理SoC系統,在第一代Zynq-7000的基礎上做了全面升級,在單
    的頭像 發表于 11-18 11:03 ?3266次閱讀
    米爾科技<b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>技術參考手冊介紹

    如何調試 Zynq UltraScale+ MPSoC VCU DDR 控制器?

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專用 DDR 控制器,只支持在 Zynq UltraScale+
    發表于 02-23 06:00 ?15次下載
    如何調試 <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b> VCU DDR 控制器?

    ZYNQ Ultrascale+ MPSOC FPGA教程】第二十章 PSRTC中斷實驗

    實時時鐘(rtc)單元為系統和應用軟件提供精確的時間基準。為了滿足高精度的需要,實時時鐘還包括校準電路,以補償溫度和電壓波動。RTC 由 VCC-PSAUX 或 VCC-PSBATT 電源供電。當
    發表于 02-24 06:58 ?15次下載
    【<b class='flag-5'>ZYNQ</b> <b class='flag-5'>Ultrascale+</b> <b class='flag-5'>MPSOC</b> <b class='flag-5'>FPGA</b>教程】<b class='flag-5'>第二十章</b> <b class='flag-5'>PS</b><b class='flag-5'>端</b><b class='flag-5'>RTC</b><b class='flag-5'>中斷</b><b class='flag-5'>實驗</b>

    ZYNQ Ultrascale+ MPSoC系列FPGA芯片設計

    基于 Xilinx 公司ZYNQ Ultrascale+ MPSoC系列 FPGA 芯片設計,應用于工廠自動化、機器視覺、工業質檢等工業領域
    發表于 11-02 14:35 ?1628次閱讀

    Zynq UltraScale+ MPSoC中的隔離方法

    電子發燒友網站提供《Zynq UltraScale+ MPSoC中的隔離方法.pdf》資料免費下載
    發表于 09-13 17:11 ?1次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>中的隔離方法

    Zynq UltraScale+ MPSoC的隔離設計示例

    電子發燒友網站提供《Zynq UltraScale+ MPSoC的隔離設計示例.pdf》資料免費下載
    發表于 09-13 11:28 ?3次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>的隔離設計示例

    Zynq UltraScale+ MPSoC驗證數據手冊

    電子發燒友網站提供《Zynq UltraScale+ MPSoC驗證數據手冊.pdf》資料免費下載
    發表于 09-15 10:13 ?0次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>驗證數據手冊

    Zynq UltraScale+ MPSoC數據手冊

    電子發燒友網站提供《Zynq UltraScale+ MPSoC數據手冊.pdf》資料免費下載
    發表于 12-30 14:37 ?2次下載
    大发888娱乐城打发888打发8| 线上百家乐开户| 郑州市太阳城宾馆| 做生意适合放什么花招财| 百家乐官网知敌便能制胜| 真人游戏机| 豪杰百家乐现金网| 怎样看百家乐官网路纸| 大发888娱乐| 杭州百家乐西园| 百家乐百家乐群| 视频百家乐官网攻略| 老虎机| 太阳城会员| 百家乐视频软件下载| 蓝盾百家乐官网代理| 百家乐官网现金网平台| 澳门博彩股份有限公司| 百家乐技巧技巧| 温州市百家乐ktv招聘| 24山 分金 水口 论 吉凶| 百家乐官网永利娱乐场| 财神百家乐官网娱乐城| 泽库县| 新世纪娱乐成| bet365客服电话| 大发888手机客户端| 大发888娱乐场官方| 百家乐博欲乐城| 百家乐平六亿财富网| 百家乐平注常赢法| 百家乐好的平台| 海王星百家乐官网的玩法技巧和规则| 奇博国际娱乐| bet365娱乐城官网| 大发888怎么了| 大发888娱乐场骗局| 大发888娱乐场下载dafaylcdown| 百家乐娱乐平台网| 百家乐免费改| 百家乐代理打|