毕业设计论文-嵌入式系统-基于sopc的彩灯控制器设计.doc

上传人:知****量 文档编号:91599208 上传时间:2023-05-27 格式:DOC 页数:16 大小:820KB
返回 下载 相关 举报
毕业设计论文-嵌入式系统-基于sopc的彩灯控制器设计.doc_第1页
第1页 / 共16页
毕业设计论文-嵌入式系统-基于sopc的彩灯控制器设计.doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《毕业设计论文-嵌入式系统-基于sopc的彩灯控制器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文-嵌入式系统-基于sopc的彩灯控制器设计.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、各专业全套优秀毕业设计图纸等级:湖南工程学院课 程 设 计课程名称 嵌入式系统课程设计 课题名称 基于SOPC的彩灯控制器设计专 业 电子科学与技术 班 级 1102 班 学 号 2011010402 姓 名 德 指导教师 李 延 平 2014 年 12 月 08 日湖南工程学院课程设计任务书课程名称:嵌入式系统课程设计 题目:基于SOPC的彩灯控制器设计 专业班级: 电科1102 班 学生姓名: 学号: 指导老师:李延平 审 批:任务书下达日期 2014年 11 月 24日设计完成日期 2014年 12月 08日 设计内容与设计要求一 设计内容:采用SOPC技术设计一个彩灯控制器;1、 功能

2、要求1) 配置NIOS II软核系统;2) 在基于Eclipse的Nios 集成开发环境 (IDE)上开发彩灯控制器3) 至少实现8个LED,3种以上的花色。2、 功能扩展自拟二 设计要求:1 设计思路清晰,给出整体设计框图2 NIOS II处理器选择配置合理;3 仿真 、调试、验证电路模块;4 撰写设计报告。目 录1 设计思路12 系统框图13 NiosII软核配置14 原理图设计35 软件设计35.1 工程创建35.2 程序设计45.3 控制流程图45.4 软件调试56 实物演示57 结束语68 参考文献69 附 录81 设计思路完整的基于Nios的SOPC系统是一个软硬件复合的系统,在开

3、发时可以分为硬件和软件两个部分。本设计通过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_

4、PIO、CONTROL”。添加NiosII CPU Core 。Nios II 有三种标准:经济型、标准型、全功能型。这里选择经济型。分别添加片内RAM、片内ROM“。添加IO 口,8 位输出,对应开发板上8 个LED;1位输入,对应开发板上的按键。8位输出端口及1位输入端口分别添加到系统中,分别该名称位“LED_PIO”、“CONTROL”(软件开发编程时要与这里模块组件名称一致)。图2 添加所需的组件系统NiosII 所需组件添加完毕,自动分配基地址和中断,生成NiosII.sopcinfo文件。 图 3 自动生成NiosII核成功图4 生成NiosII软核元件符号4 原理图设计由生成的N

5、iosII软核作为主部件,加入时钟输入和复位键和控制键输入,再加上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”模板。图6 基于Eclipse的Nios 工程创建5.2 程序设计程序中数据结构定

6、义是与Nois软核定制的组件名一致的。彩灯输出对应PIO组件的“LED_PIO”,连接开发板的led;输入控制对应PIO组件的“CONTROL”,连接开发板上的按键。程序代码见附录。5.3 控制流程图图7 彩灯控制流程图5.4 软件调试通过Eclipse自带的调试工具对程序设置断点进行调试。图8 调试程序6 实物演示 图9 奇偶数位灯间隔亮灭 图10彩灯左移与右移7 结束语通过两周的课程设计对SOPC系统有了更进一步的理解,并了解其设计过程,初步掌握了通过SOPC Build对基于NIOS II软核的SOPC系统的定制。采用SOPC技术设计并实现的芯片是面向特定用户的芯片,它能最大程度满足嵌入

7、式系统的要求,减少了产品设计复杂性和开发成本,缩短了产品开发的时间。因此,SOPC 技术及应用的特点决定它可以为复杂的板上系统提供一种更高效更稳定的解决方案。每一次课程设计都能从中学到可课本上没有的知识,积累一些处理问题的经验。困难是有的,但必须要有耐心,不放弃,慢慢的,最终课程设计还是能成功做出来的,虽然不是很完美。这次的课程设计,前面的NiosII软核的定制还是很顺利的,因为学习过,而且实验也做过多次,但在后面的程序设计就不那么顺利了,多次出错。经过慢慢的调试,最终发现时按键出了问题。第一是按键消抖不合理;第二是按键消抖之后没有松手检导致按键次数出了问题,不能出现预期效果。最终经过不厌倦的

8、调试与修改把程序修改好了,彩灯控制系统可按照要求正常运行起来了!这次课程设计,让我更加清楚的认识到自己知识的局限性,进一步发现了自己的不足,对问题考虑的不周到,也让我找到了前进的方向,为以后的设计又积累了一次经验,相信在将来的设计中一定会设计的更好!8 参考文献【1】 宋彩利,康磊.数字系统设计与SOPC技术.西安交通大学出版社.2012.10【2】 潘松,黄继业,曾毓. SOPC 技术实用教程.清华大学出版社,2004 . 6.【3】 周立功.SOPC嵌入式系统基础教程M.北京航空航天出版社.2006.11.9 附 录彩灯控制系统源代码:#include stdio.h#include sy

9、stem.h#include altera_avalon_pio_regs.h#include alt_types.halt_u8 flag=0;int main(void) _attribute_ (weak, alias(alt_main);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(CON

10、TROL_BASE)/松手检测if(4 = flag)flag = 0;elseflag+;return 0;return 1;void style0(alt_u8 temp)alt_u8 j=0;for(j=0;j2;j+)if(0 = isKeyPress()/判断是否有按键按下break;if(0 = j)temp = 0;IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp);usleep(800000);elsetemp = 0xff;IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp);usleep(

11、800000);void style1(alt_u8 temp)/奇偶间隔闪亮alt_u8 j=0;for(j=0;j2;j+)if(0 = isKeyPress()/判断是否有按键按下break;if(0 = j)temp = 0x55;IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp);usleep(800000);elsetemp = 0xaa;IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, temp);usleep(800000);void style2(alt_u8 temp)/左移 alt_u8 a,b

12、,j=0;temp = 0xfe;for(j=1;j8;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;jj;b=temp(8-j);IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, (a|b);usleep(800000);void style4(alt_u8

13、temp)/逐个点亮temp = 0xfe;alt_u8 j=0;for(j=1;j8;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

14、_DATA(CONTROL_BASE)/if(0 != IORD_ALTERA_AVALON_PIO_DATA(CONTROL_BASE)/松手检测if(4 = flag)flag = 0;elseflag+;switch(flag)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大小的图纸及程序清单)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁