你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

Zynq SoC的中断

发布者:jackzhang 时间:2014-07-22 20:58:46

作者:Steve Leibson, 赛灵思战略营销与业务规划总监

注:本文摘自“如何使用Zynq SoC的中断”,作者是Adam Taylor,该文章发表在第87期XCell期刊上。Adam经常给XCell期刊投稿,在XCell期刊上,他的“MicroZed Chronicles”系列文章已经发表了近30期,最近他成为了e2v科技的系统工程主管。

实时系统设计通常需要一个中断驱动的工作方式,因为这些系统多数都会有一些输入(比如键盘、鼠标、按键、传感器等等)需要得到及时的处理。这些设备产生的输入信号与当前正在执行的任务通常都是异步关系,因此,根本无法预测这些事件什么时候会发生。

处理器越来越先进,中断来源也有很多。Zynq SoC使用一个通用中断控制器(GIC)来处理中断,处理的中断有以下来源:
• 软件产生的中断-每个处理器都有16个软件中断,能给其中一个或者同时给两个ARM Cortex-A9内核产生中断。
• 共享外设中断-总共有60个共享外设中断,这些中断信号可以由I/O外设产生,或者由器件的可编程逻辑(PL)产生和接收,这些中断信号是在Zynq SoC的两个CPU之间共享的。
• 私有外设中断-每个CPU都有5个私有中断,比如CPU 定时器、CPU 看门狗以及专用的PL-to-CPU中断。

下图显示,用红色圆圈标注的中断控制器处于Zynq SoC’s PS(处理系统)的中心区域。

中断控制器处于Zynq SoC’s PS(处理系统)的中心区域

共享中断信号非常有意思,它们的通路可以灵活配置,I/O外设(共44个中断信号)或者FPGA逻辑(共16个中断信号)的中断信号可以发送给任意一个CPU,同样,I/O外设的中断信号也可以发送给器件的可编程逻辑。

使用Xilinx软件开发套件(SDK)的板级支持包(BSP)可以实现裸机系统的中断操作。包括在以下头文件中:
• Xparameters.h –这个文件包含了处理器的地址空间分配和器件的ID;
• Xscugic.h –这个文件包含了配置和使用中断控制器的驱动函数;
• Xil_exception.h – 这个文件包含了Cortex-A9的异常处理函数;

Zynq SoC有一些可用的定时器和看门狗资源,它们既可以隶属于某个CPU,也可以成为CPU之间的共享资源。如果在设计中需要有效地使用这些部件,就需要使用中断。系统中包括以下定时器和看门狗:
• CPU 32位定时器(SCUTIMER),时钟频率是CPU时钟频率的一半;
• CPU 32位看门狗 (SCUWDT),时钟频率是CPU时钟频率的一半;
• 共享的64位全局定时器(GT),时钟频率是CPU时钟频率的一半;(每一个CPU都有自己私有的64位比较器,它需要用到GT,会给每个CPU产生一个私有中断)
• 系统看门狗定时器(WDT),它可以使用CPU时钟或者外部时钟来工作;
• 两个三重定时计数器(TTCs),每一个都包含3个独立的定时器。TTC可以使用CPU时钟工作,也可以使用可编程逻辑中的MIO或者EMIO提供的外部时钟来工作;

许多工程师最初使用一个中断驱动的系统设计时都会感到担心,但使用包含了通用的中断控制器以及SDK软件驱动的Zynq SoC架构,可以帮助你得到一个运行速度快并且高效的中断驱动系统。

关于使用Zynq SoC器件的中断以及代码实例的详细信息,请阅读Adam Taylor的文章的完整版本,点击此处

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Interrupts-on-the-Zynq-SoC/...

© Copyright 2014 Xilinx Inc.
如需转载,请注明出处

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了