基于SOPC的彩灯控制器设计 - 图文

更新时间:2023-12-17 14:42:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

等级:

湖南工程学院

课 程 设 计

课程名称 嵌入式系统课程设计 课题名称 基于SOPC的彩灯控制器设计 专 业 电子科学与技术 班 级 1102 班 学 号 2011010402 姓 名 德 指导教师 李 延 平

2014 年 12 月 08 日

湖南工程学院

课程设计任务书

课程名称:嵌入式系统课程设计 题目:基于SOPC的彩灯控制器设计

专业班级: 电科1102 班

学生姓名: 学号: 指导老师:李延平

审 批:

任务书下达日期 2014年 11 月 24日 设计完成日期 2014年 12月 08日

设计内容与设计要求 一. 设计内容: 采用SOPC技术设计一个彩灯控制器; 1、 功能要求 1) 配置NIOS II软核系统; 2) 在基于Eclipse的Nios Ⅱ 集成开发环境 (IDE)上开发彩灯控制器 3) 至少实现8个LED,3种以上的花色。 2、 功能扩展 自拟 二. 设计要求: 1. 设计思路清晰,给出整体设计框图 2. NIOS II处理器选择配置合理; 3. 仿真 、调试、验证电路模块; 4. 撰写设计报告。

目 录

1 设计思路 .................................................................................... 1 2 系统框图 .................................................................................... 1 3 NiosII软核配置 ....................................................................... 1 4 原理图设计 ................................................................................ 3 5 软件设计 .................................................................................... 3 5.1 工程创建 ............................................................................ 3 5.2 程序设计 ............................................................................ 4 5.3 控制流程图 ........................................................................ 4 5.4 软件调试 ............................................................................ 5 6 实物演示 .................................................................................... 5 7 结束语 ........................................................................................ 6 8 参考文献 .................................................................................... 6 9 附 录 .................................................................................... 7

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

7 结束语

通过两周的课程设计对SOPC系统有了更进一步的理解,并了解其设计过程,初步掌握了通过SOPC Build对基于NIOS II软核的SOPC系统的定制。采用SOPC技术设计并实现的芯片是面向特定用户的芯片,它能最大程度满足嵌入式系统的要求,减少了产品设计复杂性和开发成本,缩短了产品开发的时间。因此,SOPC 技术及应用的特点决定它可以为复杂的板上系统提供一种更高效更稳定的解决方案。

每一次课程设计都能从中学到可课本上没有的知识,积累一些处理问题的经验。困难是有的,但必须要有耐心,不放弃,慢慢的,最终课程设计还是能成功做出来的,虽然不是很完美。这次的课程设计,前面的NiosII软核的定制还是很顺利的,因为学习过,而且实验也做过多次,但在后面的程序设计就不那么顺利了,多次出错。经过慢慢的调试,最终发现时按键出了问题。第一是按键消抖不合理;第二是按键消抖之后没有松手检导致按键次数出了问题,不能出现预期效果。最终经过不厌倦的调试与修改把程序修改好了,彩灯控制系统可按照要求正常运行起来了!

这次课程设计,让我更加清楚的认识到自己知识的局限性,进一步发现了自己的不足,对问题考虑的不周到,也让我找到了前进的方向,为以后的设计又积累了一次经验,相信在将来的设计中一定会设计的更好!

8 参考文献

【1】 宋彩利,康磊.数字系统设计与SOPC技术.西安交通大学出版社.2012.10

【2】 潘松,黄继业,曾毓. SOPC 技术实用教程.清华大学出版社,2004 . 6.

【3】 周立功.SOPC嵌入式系统基础教程[M].北京航空航天出版社.2006.11.

6

9 附 录

彩灯控制系统源代码:

#include \#include \

#include \#include \

alt_u8 flag=0;

int main(void) __attribute__ ((weak, alias(\

int isKeyPress()//判断是否有按键按下 { if(0 == IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)) { //usleep(10);//消抖 if(0 ==

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)) { //if(0 !=

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE))//松手检测 { if(4 == flag) flag = 0; else flag++; } return 0; } } return 1; }

void style0(alt_u8 temp) { alt_u8 j=0;

7

for(j=0;j<2;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; if(0 == j) { temp = 0; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); } else { temp = 0xff; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); } } }

void style1(alt_u8 temp)//奇偶间隔闪亮 { alt_u8 j=0; for(j=0;j<2;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; if(0 == j) { temp = 0x55; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); } else { temp = 0xaa;

8

IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); } } }

void style2(alt_u8 temp)//左移 { alt_u8 a,b,j=0; temp = 0xfe; for(j=1;j<8;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; a=temp<>(8-j); IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, (a|b)); usleep(800000); } }

void style3(alt_u8 temp)//右移 { alt_u8 a,b,j=0; temp = 0xfe; for(j=1;j<8;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; a=temp>>j; b=temp<<(8-j); IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, (a|b)); usleep(800000); } }

9

void style4(alt_u8 temp)//逐个点亮 { temp = 0xfe; alt_u8 j=0; for(j=1;j<8;j++) { if(0 == isKeyPress())//判断是否有按键按下 break; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp); usleep(800000); temp = temp << 1; } }

int alt_main(void) { alt_u8 led = 0; flag = 0; while(1) { if(0 ==

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)) { usleep(50);//消抖 if(0 ==

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)) { //if(0 !=

IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE))//松手检测 { if(4 == flag) flag = 0; else flag++; } } } switch(flag)

10

{ case 0: style0(led); break;//全部间隔闪亮 case 1: style1(led); break;//奇偶间隔闪亮 case 2: style2(led); break;//左移 case 3: style3(led); break;//右移 case 4: style4(led); break;//逐个点亮

}

}

}

11

电气信息学院课程设计评分表

评 价 项 目 优 设计方案合理性与创造性(10%) 良 中 及格 差 开发板焊接及其调试完成情况*(10%) 硬件设计或软件编程完成情况(20%) 硬件测试或软件调试结果(10%) 设计说明书质量(20%) 答辩情况(10%) 完成任务情况(10%) 独立工作能力(10%) 出勤情况(10%) * 综 合 评 分

指导教师签名:________________

日 期:________________

注:①表中标*号项目是硬件制作或软件编程类课题必填内容;

②此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

本文来源:https://www.bwwdw.com/article/0e25.html

Top