




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合实验 NiosII数字钟设计单 位:信息工程学院 班 级:07级7班学 号:1071000253姓 名:康宇晨指导老师:邱德惠首 都 师 范 大 学2010年5月一、 设计概述用Nios II DE2开发板的LCD显示电子钟的日期和时间,LCD分两行显示,第一行显示年月日,第二行显示时分秒。用输入按钮BUTTON来控制LCD行修改,通过Nios II IDE进行软件设计。二、 设计要求 1掌握Nios II系统的设计和使用方法; 2学习通过Nios II IDE进行软件设计的方法; 3实现在液晶屏上显示时间和日期,并可以对其进行设置。三、 实验环境DE2 开发板QuartusII 7.2SOPC Builder 7.2NiosII IDE 7.2四、 设计方案(总体设计、软件设计、硬件设计)1. 总体设计要实现以下两个功能:(1). 在液晶屏上显示时间,日期(2). 对时间、日期能够进行设置建立新工程clock2. 硬件系统组成设计根据系统要实现的功能和开发板配置,需要用到的DE2开发板上的外围器件有:LCD:电子钟显示屏幕按钮:电子钟设置功能键CFI Flash存储器:存储软、硬件程序SDRAM存储器:程序运行时将其导入SDRAM根据所用到的外设和器件特性,在SOPC Builder中建立系统要添加的模块包括:NiosII CPU定时器,按键PIO,LCD, 外部存储器总线(Avalon三态桥),外部SDRAM控制器,外部Flash接口。打开SOPC Buider,系统名称为sopc_clock加入SDRAM组件加入Flash Memory 组件加入外部存储器总线(Avalon三态桥)加入按键PIO加入LCD加入NiosII CPU定时器,选择标准型的元件添加完后,要为每个外设分配及地址和中断请求优先级(IRQ),在System中选择Auto-Assign Base Address和Auto-Assign IRQs命令,这两个命令可分别简单分配外设基地址和中断优先级。然后生成Nios II系统。然后生成顶层文件,将Nios II系统模块加入到顶层文件中,如图所示原理图进行引脚锁定,并编译,然后进行硬件下载3软件系统设计要实现系统所需的功能,大量的工作应该集中在软件设计和优化上。电子钟的软件功能主要分为显示、设置和时间算法三大部分。显示部分的功能包括:显示时间(小时:分钟:秒)和 显示日期(年-月-日)设置部分的功能包括:设置小时,设置分钟,设置年份,设置月份,设置日期和退出设置。 设置部分的程序主要用在对按键的响应。在编写程序前要对DE2开发板上的四个按键BUTTON功能进行如下分配:(1). 主菜单 BUTTON0:设置选择键,可依次选择设置时、分、秒和年、月、日BUTTON1:显示日期键BUTTON2:显示时间键(2). 子菜单(即进入对某个选项设置后的按键功能):BUTTON1:选项数字增加BUTTON2:选项数字减少BUTTON3:退出对选项的设置,返回主菜单时间算法部分的功能包括:时间累加和确定每个月的最大天数,使年、月、日能正确累加五、 软件代码1count_binary.c的代码:#include count_binary.h/程序每秒钟检测一次按钮的状态,对日期和时间进行设置#include alt_types.h#include #include #include #include system.h#include sys/alt_irq.h#include altera_avalon_pio_regs.h#include lcd.hvolatile int edge_capture;void LCD_Init()/LCD初始化 lcd_write_cmd(LCD_BASE,0x38); usleep(2000); lcd_write_cmd(LCD_BASE,0x0C); usleep(2000); lcd_write_cmd(LCD_BASE,0x01); usleep(2000); lcd_write_cmd(LCD_BASE,0x06); usleep(2000); lcd_write_cmd(LCD_BASE,0x80); usleep(2000);void LCD_Show_Text(char* Text)/LCD输出格式 int i; for(i=0;i=3) pos=0;/共有三个位置0、1、2,超过了2要马上清0 if(screen=2) screen=0;/共有两行0、1,超过了1要马上清0 /na_LED8-np_piodata=1pos;/用一个LED指示当前调整的位置 if(screen=0) screenflag=8; else screenflag=0; /IOWR_ALTERA_AVALON_PIO_DATA(LED_GREEN_BASE,(1pos)|screenflag); usleep(1000000);/等待1秒的定时时间 if(second59) second+; else second=0; if(minute59) minute+; else minute=0; if(hour23) hour+; else hour=0; if(day30) day+; else day=1; if(month12) month+; else month=1; if(year1)day-; else if(check_month(month)=0)day=30; if(check_month(month)=1)day=31; if(check_month(month)=2) if(check_year(year)day=29; else day=28; if(screen=1) if(second0)second-; else second=59; if(pos=1) if(screen=0) if(month1)month-; else month=12; if(screen=1) if(minute0)minute-; else minute=59; if(pos=2) if(screen=0) if(year0)year-; else year=2005; if(screen=1) if(hour0)hour-; else hour=23; break;case 0x04:/对当前位置上的数据执行加操作 if(pos=0) if(screen=0) if(check_month(month)=0)if(day30)day+;else day=1; if(check_month(month)=1)if(day31)day+;else day=1; if(check_month(month)=2) if(check_year(year)if(day29)day+;else day=1; else if(day28)day+;else day=1; if(screen=1) if(second59)second+; else second=0; if(pos=1) if(screen=0) if(month12)month+; else month=1; if(screen=1) if(minute59)minute+; else minute=0; if(pos=2) if(screen=0) if(year9999)year+; else year=2005; if(screen=1) if(hourDevice and Pin Options-Unused Pins,改为As input tri-stated。七、 总结通过这12周的SOPC技术综合设计实践的学习,我学会了Quartus II,SOPC Buider和Nios II DE2 的使用,并通过这些软件可以进行简单的实验操作,强化了我的动手能力,并通过这几次实验更加了解SOPC的设计与应用。在实验中,遇到了各种各样的问题,首先是自己进行检查,查不出来再由老师同学进行检查和讲解,提高了自己解决问题的能力,并且熟悉了整个实验的流程及具体的操作。我觉得这门课程很有意思,实验中是把各个部分的操作整合在一起,形成一个系统,做实验时要有整体感,一旦出现问题整体的重新进行设置和编译,比如如果添加组建时出现错误,要重新添加,重新生成模块,重新倒入模块,重新编译顶层文件,是一个整体的过程。八、 附录参考SOPC技术与应用,编著:江国强,机械工业出版社。参考SOPC技术综合设计实践实验指南,编著:邱德惠。思考题:1 何谓SOC?SOC(System On a Chip)称为片上系统,它是指将一个完整产品的功能集成在一个芯片上或芯片组上。SOC中可以包括微处理器CPU、数字信号处理器DSP、存储器(ROM、RAM、Flash等)、总线和总线控制器、外围设备接口等,还可以包括数模混合电路(放大器、比较器、A/D和D/A转换器、锁相环等),甚至传感器、微机电和微光电单元。2 何谓SOPC?SOPC(System On a Programmable Chip)称为可编程片上系统,它是基于可编程逻辑器件(FPGA或CPLD)可重构的SOC。SOPC集成了硬核或软核CPU、DSP、锁相环(PLL)、存储器、I/O接口及可编程逻辑,可以灵活高效地解决SOC方案,而且设计周期短,设计成本低,一般只需要一台配有SOPC开发软件的PC和一台SOPC实验开发系统(或开发板),就可以进行SOPC的设计与开发。3 何谓IP核?IP(Intellectual Property)是知识产权的简称。集成电路IP是指经过预先设计、预先验证、符合产业界普遍认同的设计规范和设计标准,并具有相对独立并可以重复利用的电路模块或子系统,如CPU、运算器、存储器、放大器等。集成电路IP模块具有知识含量高、占用芯片面积小、运行速度快、功耗低、工艺容差性大等特点,可重复用于SOC、SOPC或复杂ASIC设计中。4 何谓嵌入式系统,嵌入式系统的CPU核可以分为哪两种类型?嵌入式系统是指嵌入到对象体系中的专用计算机系统,包括硬件和软件两大部分。硬件包括处理器、存储器、输入输出接口和外部设备等,软件包括系统软件和应用软件。基于SOPC的嵌入式系统结构主要包括嵌入式微处理器(CPU核)、定时器(Timer)、嵌入式锁相环(PLL)、嵌入式数字信号处理器(DSP)及其他IP模块等部分。嵌入式系统的CPU核可以分为硬核和软核。5 简述CPU软核的特点。软核通常以可综合的HDL提供,因此具有较高的灵活性,并与具体的实现工艺无关,其主要缺点是缺乏对时序、面积和功耗的预见性。由于软核是以源代码的形式提供,尽管源代码可以采用加密方法,但其知识产权保护问题不容忽视。6 简述HAL的用途及基于HAL的外围设备的编程方法。HAL作为支持Nios II处理器系统的软件包,为用户的嵌入式系统上的外围设备提供了与之相匹配的接口程序。用户不用自己建立或复制HAL文件,也不需要编辑HAL中的任何源代码,使用时只需要在C/C+源程序中指明代表这些接口程序的库函数包含的头文件即可。在一个基于Nios II的SOPC系统上,外围设备包括通用异步串口UART、发光二极管LED、七段数码管、按钮、LCD、存储器、定时器、鼠标、VGA等。在应用软件的开发中,对于按钮、发光二极管LED、七段数码管等通用输入输出设备的编程比较简单,而对于通用异步串口UART、LCD、VGA等字符模式外围设备的编程就比较复杂。为了方便用户对字符模式外围设备的编程,HAL支持标准输入、标准输出和标准错误函数,允许在程序中调用stdio.h中的I/O函数来完成对这些设备的访问,也支持字符模式外围设备的通用访问。7 简述SOPC的设计流程。SOPC硬件开发流程a) 创建Quartus II工程b) 创建Nios II系统模块c) 配置Nios II系统d) 将Nios II系统模块、LPM和用户自定义模块连接起来e) 编译、引脚分配、编程下载SOPC软件开发流程Nios II程序包括一个应用工程、可选的库工程和一个板支持包工程(自动生成)。将Nios II程序编译成一个能在Nios II处理器上运行的.elf文件。1 新建Nios II C/C+应用工程与系统库工程为新的Nios II工程命名、选择目标硬件(硬件系统的PTF文件,IDE根据该文件来建立系统库)、选择新工程的模板、建立C的源文件与头文件(注意一定要加上后缀名.c)、创建新的系统库(为硬件提供相应驱动)注意:工程文件夹要建在D盘根目录下(其中D盘装有Quartus II软件)2 编译与设置工程对工程进行编译projectbuild project,编译成功后,在工程下面会出现一个Binaries目录,其中有一个可执行文件.elf。3 运行与调试程序4 编译整个项目软件设计完成并调试成功后,可以在Quartus II中将整个项目进行编译,将硬件配置信息和软件初始化信息编译在一起,并固化到EPCS1芯片中。8 简述AVALON总线的特点。Avalon总线是一种相对简单的总线结构,主要用于片内处理器与外设的连接,构成SOPC系统。Avalon总线拥有多种传输模式,以适应不同外设的要求。Avalon总线支持多总线的主外设,并允许在单总线外设之间传输多个数据单元,在构建SOPC系统时拥有极大的灵活性。9 System.h系统描述文件包含了哪些NIOS II系统的硬件信息?处理器配置 外设列表 存储器配置 定制指令宏 处理器复位和异常地址 代码段位置10. 基于altera公司的SOPC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届重庆市大渡口区化学九上期末综合测试试题含解析
- 知情同意告知培训
- 2026届新疆伊犁州名校化学九上期中经典试题含解析
- 2026届福建省福州市台江区化学九年级第一学期期中质量检测试题含解析
- 2026届内蒙古鄂尔多斯附属学校化学九上期中调研模拟试题含解析
- 2025年炉外精炼工职业技能考试题库及答案(完整版)
- 2026届山东省德州七中学九上化学期中经典试题含解析
- 2026届吉林省长春市第一五三中学九年级化学第一学期期中考试试题含解析
- 夫妻个人债务合同范本8篇
- 类第号上海证券交易所证券投资咨询协议
- 2025四川安和精密电子电器股份有限公司招聘NPI工程师1人备考练习题库及答案解析
- 9 古代科技 耀我中华 课件(共2课时) 部编版道德与法治五年级上册
- 潍坊市2026届高三开学调研监测考试数学试题及答案
- 力帆集团摩托车营销策略优化研究:基于市场竞争与消费者洞察
- 2025喀什经济开发区兵团分区招聘(10人)考试参考试题及答案解析
- 2025江西南昌市西湖城市建设投资发展集团有限公司及下属子公司招聘40人考试参考试题及答案解析
- 2025年体育组织行业研究报告及未来行业发展趋势预测
- 2024年永州市工会社会工作者招聘笔试真题
- 推进文旅医养融合发展的策略及实施路径
- 弹跳的小球教学课件
- 2025年山东快递工程专业职称考试(快递设施设备知识·技术员、助理工程师)历年参考题库含答案详解(5卷)
评论
0/150
提交评论