当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]Qsys与uC/OS学习笔记1:与Qsys的第一次亲密接触

  从Quartus II 11.0开始,喜新厌旧的Altera就不厌其烦的炒作SOPC Builder的替代者Qsys。记得去年参加他们的研讨会时就已经搬上台面,版本12以后更是完全摒弃了SOPC Buider,如今12.0sp2都已经release了,如果再不加紧找个理由上Qsys练练手,咱可就要OUT了。

         正好近期对uC/OS非常感兴趣,苦于手上没有一款比较高端的板子用于实践。于是通过层层关系最终在Altera的大学计划经理John处讨得一套TerasIC的DE2-115,板载EP4CE115F29C7N器件,丰富的片上资源和外设足以应付各种功能需求。上个图,让各位看官也垂涎三尺。

图1

         废话就此打住,后面要上点有营养的文字。话说特权同学也是第一次接触Qsys,虽然这两天抽空恶补了一下Qsys的各种pdf,但毕竟学海无涯苦作舟,咱也就多懂了点皮毛,提前班门弄斧一下,只是实实在在的把自己知道的、明白的、领会的一一道来,其间肯定有疏漏和不妥之处,甚至也会带些疑问而来,还请高手不吝惜键盘跟帖指点。

         第一步当然是新建工程,这等小儿科步骤不详究,直接步入主题。如图2所示,两种方式均可打开Qsys。

图2

         进入Qsys后,如图3所示,界面窗口的布局内容多少还有些似曾相识,毕竟还是SOPC Builder一脉相承的,一个最大的变化是Qsys tabs的选项要比SOPC Buider多得多,Qsys的更多系统个性化编辑和设置也都得益于此了。

图3

         初次打开Qsys,System Content中默认已经添加了一个孤零零的CLOCK组件,其他啥也没有,光杆司令只是个摆设,啥活干不了。于是乎,咱在Component Library中各种查找,添加了几个常用组件,如NIOS II处理器、JTAG UART、定时器TIMER、8bit输出PIO、system ID和200KB的片内RAM。如图4所示,这些常用的组件各就各位,基本就可以搭建起一个最小嵌入式系统了,至少是可以写代码在线运行程序的。

图4

         不过,图4咱可就有点看不懂了,SOPC Builder可不是这样,Connections应该是完全在添加组件过程中自动互联上才对的,而Qsys则一片空白,貌似啥都不连接,别说,还真这么回事。那么就这么着把,绝对不可以,人家系统肯定罢工。怎么办?自己动手,丰衣足食!找了相关资料,都说Qsys可以很智能的进行组件的互联,愣是没找到一个“智能按键”让他们自动互联,看来Altera把这项考验真水平的活都下放给最智能的人脑来干了,能不智能吗?哈哈,好了,还好特权同学底子不差,虽然以前都让SOPC Buider自动连接从不人工干预,但是实际接口都是牢记于心的,三下五除二便连接成功。如图5所示,看到小圆圈并点击后空心、实心就会变化,实心代表连接上了。这连接的活可好玩了,一点不比那些年不知道祸害了多少有志青年的“连连看”差多少,那比得是速度,咱比的是准确;那玩玩消磨时间,咱点点还能长知识呢。系统的连接其实也非常简单,我们的时钟clk和复位reset都没有做太复杂,都是clk_0组件输出,所以所有的组件都和clk_0的时钟复位连接上就对了;CPU的数据存储器和代码存储器都必须由片内RAM来担当,所以nios2_qsys的data_master和instruction_master均与代表onchip_mem的从机总线s1连接上。而其他作为总线slave的外设均连接到nios2_qsys的data_master上即可。

图5[!--empirenews.page--]

         另外,要说明的是作为系统与外部连接的接口不像SOPC Buider一样直接引出了,需要设计者特别设置一下。如图6所示,选择Export列的属性为*_external connection,然后该接口前面会出现一个export的图标。

图6

         接着我们还要双击打开nios2_qsys组件,将其Reset Vector和Exception Vector均设为onchip_mem。如图7所示。

图7

就此,一个漂亮的测试系统搭建完毕,后面的事情就是分配地址、中断优先级等,这个可以如同SOPC Builder一样使用菜单栏上的自动分别选项一键分配。特权同学就常常这么干,咱对地址还真没讲究,中断优先级有时还可以根据需要调整一下。

         前面提到了Qsys tabs是一大特色,这里不一一细说,偷懒贴几张图。大家自己使用的时候可以慢慢体味。如图8,Address Map对地址的管理一目了然,而且对于不同的Master可以有不同的地址空间映射。

图8

         如图9所示,System Inspector中罗列所有的信号接口以及相关属性参数,甚至可以在此处进行修改。

图9

         如图10所示,HDL Example中直接给出了当前系统的例化模板,直接复制到工程顶层模块后进行修改即可,这比之前专门要到工程目录下找相关文件查看要方便得多。

图10

         最后,如图11所示,Generation里可以选择系统仿真、综合以及各种输出的相关设置,最后点击右下角的Generate即可启动当前系统的生成。大家可别忘了在Output Directory中设置后系统输出路径。

图11

         特权同学在该系统下跑了个软件模板工程Binary Counter,一切正常。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭