NiosII的奇幻漂流-Chap04-PIO应用(2)——外部中断

NiosII的奇幻漂流-Chap04-PIO应用(2)——外部中断

ID:37639416

大小:1.28 MB

页数:17页

时间:2019-05-27

NiosII的奇幻漂流-Chap04-PIO应用(2)——外部中断_第1页
NiosII的奇幻漂流-Chap04-PIO应用(2)——外部中断_第2页
NiosII的奇幻漂流-Chap04-PIO应用(2)——外部中断_第3页
NiosII的奇幻漂流-Chap04-PIO应用(2)——外部中断_第4页
NiosII的奇幻漂流-Chap04-PIO应用(2)——外部中断_第5页
资源描述:

《NiosII的奇幻漂流-Chap04-PIO应用(2)——外部中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、NiosII的奇幻漂流Chap.4PIO应用(2)——外部中断byVITO老虎社区www.tigerbd.cn处心积虑地让FPGA好学好用NiosII的奇幻漂流工具版本:Windows7+QuartusII12.0+Qsys+NiosIISBT12.0作者:VITOE-Mail:vito943@qq.com老虎社区版权所有http://www.tigerbd.cnAllRightReserved2014.5PIO应用2——外部中断本章主要介绍PIO的应用——外部中断,通过用PIO连接的按键来触发NiosIICPU的外部中断,来点亮LED;同时介绍了N

2、iosII中断点调试的使用方法。通过本章的学习,您会学习到:(1)在NiosII中利用PIO实现外部中断。(2)按键的原理和使用方法。(3)在NiosII中进行断点调试。本章分为四个部分:一、概述二、硬件实现三、软件实现四、断点调试五、实验总结更多章节,请访问http://www.tigerbd.cn/forum-39-1.html1PIO应用2——外部中断上一章我们用PIO点亮了LED,终于看到开发板的现象了。不过话说回来,如果PIO只能用来点个LED,那也忒小看它了。接下来,我们来说说PIO的另一个应用:用PIO实现外部中断。小贴士Tips:关于

3、中断简单来说,中断指CPU在执行A任务时,发生了某个事件(程序自身或外界)使CPU暂停对A任务的处理,保留现场,去执行B任务;B任务完成后,回到A的现场,继续执行A任务。中断有优先级之分,优先级高的中断可以打断优先级低的中断,同级别中断按先后顺序执行。在嵌入式系统中,中断一般分为定时中断和外部中断,定时中断由程序定时产生,外部中断则由外设产生。有道是:有人的地方就有江湖,有CPU的地方就有中断,NiosIICPU自然也少不了中断嘛。这一章我们就利用PIO来实现对NiosIICPU的外部中断,方法为:NiosIICPU通过PIO连接到某个按键上,按键按

4、下后触发中断,CPU响应外部中断改变LED的亮灭(LED自然也是通过另一个PIO来控制的),下面就来具体介绍下实现。2PIO应用2——外部中断打开QuartusII和Qsys软件,我们在上一章工程的基础上再增加一个PIO(当然,不嫌麻烦重新再建一个工程也可以哈)。先切换到Qsys软件,导入kernel.qsys文件后,在左侧边栏的Library找到PIO模块,双击配置PIO,如下图,框1是PIO宽度、方向和输出初始值设置,我们把宽度设为1,方向设为输入,因为是输入,所以输出初始值就不用管啦。框3是中断选项,我们勾选上GenerateIRQ(生成中断)

5、,中断类型(IRQType)有两种:电平触发中断和边沿触发中断,我们选择电平触发中断。框2中是边沿触发中断寄存器的一些设置,如果要设置边沿触发中断,则需要勾选上Synchronouslycapture(同步捕获),再选择是捕获上升沿(RISING)还是下降沿(FALLING),因为我们在框3中选择的为电平触发中断,所以框2无需设置。点击Finish,完成PIO配置,我们将得到的新PIO改名为KEY,并进行连线、端口引出3PIO应用2——外部中断和中断连接工作,具体步骤就不讲啦,还没掌握的同学可以回顾下前几章哈。我们得到下图,要注意红框中的地址和中断号

6、:前面已经讲过,模块的地址区间(基地址和结束地址之间的部分)不能与其它模块的地址区间重合;对于中断号,EPCS已经设为0,JTAG_UART设为1,其它模块按照顺序依次增加即可(在对中断优先级无特殊要求的情况下),事实上这次Qsys还真“人性化”了一回,我们连接上中断后它自动分配了2,不容易啊!当然,为了稳妥我们还是给Qsys自动分配下地址和中断号(别忘了保存!),得到下图。最后自然是编译了,点击Generate,等待编译完成,休息一下吧。编译完成后我们回到QuartusII主界面,先介绍下按键的原理。在TIGERBOARD上面配有6个按键,如下图所

7、示,按键的一端连接FPGA的某个管脚,并通过上拉电阻接高电平;另一端接地。当该FPGA管脚作为输入时,按键松开时输入高电平,按下时则输入低电平。4PIO应用2——外部中断打顶层文件,我们先更新kernel模块,得到新生成的key。因为NiosIICPU只对高电平敏感,所以要给key加一个非门作电平转换,添加方法与加入kernel模块、输入输出管脚类似,如下图所示。接下来再添加输入管脚、连线,分配管脚,最终得到下图,大家注意下红框中的配置。5PIO应用2——外部中断保存下文件,我们开始编译QuartusII工程,编译成功后,硬件实现就OK了。6PIO应

8、用2——外部中断接下来进行软件工程的实现。新建一个NiosII工程,命名为int,在编写程序前先把三文件夹结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。