1 设计思路
完整的基于Nios的SOPC系统是一个软硬件复合的系统,在开发时可以分为硬件和软件两个部分。本设计通过QuartusII软件内置的SOPC Builder定制一个基于NIOS II软核的SOPC系统,加入必要的存储器及IO,然后编写动态扫描程序对PIO进行操作来完成彩灯动态显示的功能。本系统的软件设计在基于Eclipse的Nios Ⅱ 集成开发环境 (IDE)上进行开发,编写彩灯控制器程序,实现8个LED多种样式亮灭的变换。
2 系统框图
图1 基于NiosII 软核的SOPC彩灯控制系统框图
3 NiosII软核配置
按照彩灯控制系统框图用SOPC Builder 定制Nios II 系统。本系统包含“CPU、onchip_ROM、onchip_RAM、LED_PIO、CONTROL”。添加NiosII
1
CPU Core 。Nios II 有三种标准:经济型、标准型、全功能型。这里选择经济型。分别添加片内RAM、片内ROM“。添加IO 口,8 位输出,对应开发板上8 个LED;1位输入,对应开发板上的按键。8位输出端口及1位输入端口分别添加到系统中,分别该名称位“LED_PIO”、“CONTROL”(软件开发编程时要与这里模块组件名称一致)。
图2 添加所需的组件
系统NiosII 所需组件添加完毕,自动分配基地址和中断,生成NiosII.sopcinfo文件。
图 3 自动生成NiosII核成功
2
图4 生成NiosII软核元件符号
4 原理图设计
由生成的NiosII软核作为主部件,加入时钟输入和复位键和控制键输入,再加上8位的输出(连接8个LED)构成彩灯控制系统的原理图。
图5 总原理图
5 软件设计
5.1 工程创建
通过“Nios II Softeare Build Tools for Eclipse”进行彩灯控制系统的软件设计。新建一个“Nios II Application and BSP from Template”工程,选择刚刚生成Nois文件“NiosII.sopcinfo”,即可连接到CPU。Project template选择“Hello World”模板。
3
图6 基于Eclipse的Nios Ⅱ工程创建
5.2 程序设计
程序中数据结构定义是与Nois软核定制的组件名一致的。彩灯输出对应PIO组件的“LED_PIO”,连接开发板的led;输入控制对应PIO组件的“CONTROL”,连接开发板上的按键。程序代码见附录。
5.3 控制流程图
图7 彩灯控制流程图
4
5.4 软件调试
通过Eclipse自带的调试工具对程序设置断点进行调试。
图8 调试程序
6 实物演示
图9 奇偶数位灯间隔亮灭
图10彩灯左移与右移
5