第7章 Nios II 常用外设编程 SOPC技术与应用

合集下载

NiosII外围设备--SOPC技术与应用(PPT 102页)

NiosII外围设备--SOPC技术与应用(PPT 102页)
fMAX(最高时钟频率):目标FPGA的系列和整个硬件设计都 会影响硬件设计可实现的最高时钟频率。
5.2 SDRAM控制器内核
LOG
O

SDRAM 内 核 配 置 选 项
可直接选择预定义的 SDRAM芯片型号,对话 框将自动改变下面两个选
Mem项卡or的y值P来ro匹f配ile指定:配置。
用于指定SDRAM的结构。
5.10 带Avalon接口的互斥内核 5.11 带Avalon接口的邮箱内核 5.12 System ID内核
第5章 目录
LOG O
❖ 5.1 并行输入/输出(PIO)内核 ❖ 5.2 SDRAM控制器内核 ❖ 5.3 CFI(通用Flash)控制器内核 ❖ 5.5 EPCS控制器内核 ❖ 5.5 定时器内核 ❖ 5.6 UART内核 ❖ 5.7 JTAG_UART内核 ❖ 5.8 SPI内核 ❖ 5.9 DMA内核
5.2 SDR结构设置-区
允许值:2、4 默认值:4 描述:区的数目,该值确定连接 到SDRAM的ba总线(区地址)宽 度。具体数值请查阅SDRAM数据 手册。
5.2 SDRAM控制器内核
LOG
O
地址宽度设计-行
允许值:11、12、13、14 默认值:12 描述:行地址位的数目。该值确 定addr总线的宽度。具体数值请 查阅SDRAM数据手册。
允许值:默认值:20ns 描述:预充电命令周期。
5.2 SDRAM控制器内核
LOG
O
ACTIVE到READ或WRITE延时
允许值:默认值:20ns 描述:ACTIVE到READ或 WRITE延时。
5.2 SDRAM控制器内核
LOG
O
访问时间(t_ac)

sopc技术与应用

sopc技术与应用

Sopc技术与应用SOPC它是用可编程逻辑技术把整个系统放到一块硅片上,来用于嵌入式系统的研究和电子信息处理.SOPC是一种特殊的嵌入式系统,它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能但它不是简单的SOC,它也是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。

SOPC的特点SOPC前提是SOC系统,所以SOPC继承着了SOC的各种特点,而且SOPC兼具这PLD和FPGA 的优点,一般概括其特点为:(1)至少包含一个嵌入式处理器内核(2)具有小容量片内高速RAM资源;(3)丰富的IPCore资源可供选择;(4)足够的片上可编程逻辑资源;(5)处理器调试接口和FPGA编程接口;(6)可能包含部分可编程模拟电路;(7)单芯片、低功耗、微封装。

SOPC的技术内容:SOPC设计技术涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB和信号完整性分析为基础的高速电路设计技术以外,SOPC还涉及目前以引起普遍关注的软硬件协同设计技术。

由于SOPC的主要逻辑设计是在可编程逻辑器件内部进行,而BGA封装已被广泛应用在微封装领域中,传统的调试设备已很难进行直接测试分析,因此,必将对以仿真技术为基础的软硬件协同设计技术提出更高的要求。

同时,新的调试技术也已不断涌现出来,如Xilinx公司的片内逻辑分析ChipScopeILA就是一种价廉物美的片内实时调试工具。

SOPC技术主要应用以下三个方向:(1)基于FPGA嵌入IP硬核的应用。

这种SOPC系统是指在FPGA中预先植入处理器。

这使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现SOPC系统。

(2)基于FPGA嵌入IP软核的应用。

这种SOPC系统是指在FPGA中植入软核处理器,如:NIOSII核等。

用户可以根据设计的要求,利用相应的EDA工具,对NIOSII及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。

SOPC技术及应用_第7章

SOPC技术及应用_第7章
9
Master Peripheral that Can Write & Read clk address writedata write_n readdata read_n waitrequest clk address readdata read_n waitrequest
Read-Only Slave Peripheral with waitrequest clk
Instruction Memory
Avalon交换结构框图
8
7.2.2 Avalon外设: 外设: 外设
Avalon外设是Avalon存储器映射外设的简称 Avalon外设包括存储器、处理器、UART、PIO、定时器、总线桥及用 户自定义Avalon外设等。 任何用户自定义逻辑只要提供了连接到Avalon交换结构的Avalon信号 (如地址、数据和控制信号),就能成为Avalon外设。除了Avalon信号外, 外设可以拥有自定义的端口信号,用来连接系统模块外的用户自定义逻辑。
LED PIO
7-Segment LED PIO UserDefined Interface Streaming Data Sink
ROM
(with Monitor)
UART
Timer
PIO-32
3
Avalon总线架构 VS 传统共享总线架构 总线架构
传统共享总线架构:传统的总线架构仲裁器在主设备端, 传统共享总线架构:传统的总线架构仲裁器在主设备端,多个主设备同时发起申 请时,经过仲裁某个主设备获得对共享总线的访问权,其它主设备处于等待状态。 请时,经过仲裁某个主设备获得对共享总线的访问权,其它主设备处于等待状态。 这种结构会产生一个瓶颈,因为共享式总线只有一个总线数据通道, 这种结构会产生一个瓶颈,因为共享式总线只有一个总线数据通道,在任何时刻 只有一个主控制器占有总线。 只有一个主控制器占有总线。

Nios II_SOPC开发

Nios II_SOPC开发

2010-12-22
1
5.3.1 Nios II的硬件开发 的硬件开发 Nios II是一个用户可以自行定制的 是一个用户可以自行定制的CPU,用户可以增加新 是一个用户可以自行定制的 , 的外设,增加新的指令,分配外设的地址等。 的外设,增加新的指令,分配外设的地址等。Nios II的硬件开 的硬件开 发就是由用户定制合适的CPU和外设。SOPC Builder提供了 和外设。 发就是由用户定制合适的 和外设 提供了 大量的IP 来加快Nios II外设的开发速度,用户也可以使 外设的开发速度, 大量的 Core来加快 来加快 外设的开发速度 来定制外设。 用VHDL或Verilog HDL来定制外设。 或 来定制外设 Nios II的硬件开发必须得到特定的开发板的硬件支持。下 的硬件开发必须得到特定的开发板的硬件支持。 的硬件开发必须得到特定的开发板的硬件支持 面以DE2(含DE2 70)开发板为例,介绍 版本) 面以 ( )开发板为例,介绍Nios II(9.0版本) ( 版本 硬件开发的具体流程。 硬件开发的具体流程。 开发板上, 在DE2开发板上,支持 开发板上 支持Nios II系统的外部设备包括 系统的外部设备包括 SDRAM、SRAM、FLASH、LCD、七段数码管、发光二极管、 、 、 、 、七段数码管、发光二极管、 按钮开关、电平开关、 器件等, 按钮开关、电平开关、VGA、ISP1362、I2C器件等,大部分 、 、 器件等 外部都采用Nios II软件提供的组件,但SRAM、七段数码管、 软件提供的组件, 外部都采用 软件提供的组件 、七段数码管、 VGA控制器和 控制器和I2C器件属于 器件属于DE2开发板自定义的组件,因此在 开发板自定义的组件, 控制器和 器件属于 开发板自定义的组件 进行Nios II系统开发之前,应将这些组件的程序包加入到 系统开发之前, 进行 系统开发之前 应将这些组件的程序包加入到Nios 2010-12-22 2 II的用户自定义组件(User Logic)中。 的用户自定义组件( 的用户自定义组件 )

NiosIISOPC开发

NiosIISOPC开发

Nios II/SOPC 的应用领域
01
02
03
04
通信
Nios II/SOPC在通信领域的 应用包括基带处理、调制解调
、协议栈处理等。
工业控制
Nios II/SOPC在工业控制领 域的应用包括运动控制、过程
控制、机器人控制等。
数字信号处理
Nios II/SOPC在数字信号处 理领域的应用包括音频处理、 图像处理、雷达信号处理等。
仿真测试
02
03
调试与优化
使用仿真工具对编译后的文件进 行仿真测试,验证设计的正确性 和可靠性。
在仿真测试过程中,对发现的问 题进行调试和优化,提高设计的 可靠性和性能。
在系统编程与调试
01
02
03
在系统编程
将编译后的文件下载到 Nios II处理器中,实现系 统的实际运行。
在系统调试
在系统运行过程中,使用 调试工具进行实时调试, 解决可能出现的错误和问 题。
Nios II 是一款基于 Altera FPGA 的可定制处理器,具有 高速、低功耗、可编程等优点 ,适用于数字信号处理应用。
数字信号处理算法包括滤波器 设计、频谱分析、信号识别等 ,基于 Nios II 的数字信号处 理系统可以实现这些算法的硬 件加速。
基于 Nios II 的数字信号处理 系统可以应用于音频处理、图 像识别、雷达信号处理等领域 。
应用领域
广泛应用于数字信号处理、通信、控制、图像处理等领域。
Nios II IDE 集成开发环境
概述
Nios II IDE是Altera公司 为Nios II处理器提供的集 成开发环境,支ห้องสมุดไป่ตู้C/C和 汇编语言开发。

SOPC技术及应用

SOPC技术及应用

15
1.1 SOPC及其技术 及其技术
1.1.1 嵌入式系统 1.1.2 SoC简介 简介 1.1.3 SOPC技术 技术
16
1.1.1 嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可 裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格 要求的专用计算机系统。 外围设备 嵌 入 式 微 处 理 器 外围设备
12
参考书目
《Nios II系统开发设计与应用实例》 北京航空航天大学出版社 《SOPC技术与应用》机械工业出版社 《FPGA与SOPC设计教程-DE2实践》 西安电子科技大学出版社 《基于FPGA的嵌入式开发与应用》 电子工业出版社
13
第1章 绪论
14
第1章 绪论
1.1 SOPC及其技术 及其技术 1.2 Nios II软核处理器 软核处理器 1.3 开发工具 1.4 开发平台 1.5支持 支持SOPC的FPGA简介 支持 的 简介
3
基于HardCopy技术的SOPC系统
发周期长、产品上市慢、一次性成功率低、 发周期长、产品上市慢、一次性成功率低、有 最少投片量要求、设计软件工具繁多且昂贵、 最少投片量要求、设计软件工具繁多且昂贵、 开发流程复杂等。 开发流程复杂等。
24
构成SOPC的三种方案
1
基于FPGA嵌入IP硬核的SOPC系统
3
基于HardCopy技术的 技术的SOPC系统 基于 技术的 系统
21
构成SOPC的三种方案
IP硬核直接植入FPGA存在以下不足: IP硬核直接植入FPGA存在以下不足: 硬核直接植入FPGA存在以下不足
1 基于FPGA嵌入 硬核的 嵌入IP硬核的 基于 嵌入 硬核的SOPC系统 系统

第7章 SOPC基础实验 FPGA应用技术基础教程 [电子教案]

第7章  SOPC基础实验 FPGA应用技术基础教程 [电子教案]

实验步骤 (1) 打开工程
1)选择“Start”→“Programs”→“Xilinx Platform Studio 9.1i”→“Xilinx Platform Studio”,进入EDK的XPS环境。 2)选择“Base System Builder Wizard”选项并单击“OK” 按钮,如图7.2所示。
实验目的
(1)学习生成XPS工程。 (2)学习使用Base System Builder(BSB)生成
一个系统。 (3)下载测试应用程序并检测超级终端输出。
实验内容
在XPS中可以使用Base System Builder生成一个工程, 同时生成很多文件,包括处理器系统文件MHS和原理图文件 PBD。系统一旦生成,处理器系统的网表即可生成。整个设 计的结构如图7.1所示。
图7.13
14)单击“Next”按钮,弹出“System Created”对话框, 显示生成的系统概况,单击“Generate”按钮。注意:外围 设备的地址映像可能不同,如图7.14和图7.15所示。
图7.14
图7.15 15)单击“Finish”按钮,完成生成的工程。
(2)分析生成的工程
1)研究生成的工程文件,并浏览黑体字图表显示,如图7.16 所示。
图7.10
11)单击“Next”按钮,弹出“Software Setup”对话框,如 图7.11所示。
图7.11
12)单击“Next”按钮,弹出“Memory Test”设置对话框, 如图7.12所示。
图7.12
13)单击“Next”按钮,弹出“Peripheral Test”设置对话框, 如图7.13所示。
图7.23
4)连接XUP板的下载接口和串行接口,接通电源。打开超 级终端,并完成以下设置,如图7.24所示。

基于NiosII的片上可编程系统_SOPC_实现的直流电机的PWM调速系统

基于NiosII的片上可编程系统_SOPC_实现的直流电机的PWM调速系统

基于Nios II的片上可编程系统(SOPC)实现的直流电机的PWM调速系统朱科星,郁建平(东南大学机械工程学院,江苏南京211189)摘 要:介绍了一种基于Nios II软核处理器的直流电机PWM调速系统,并以此说明了SOPC思想及其实现途径。

该系统以一片PF G A为核心,结构紧凑,体现了SOPC系统集成度高、灵活性强、扩展性好的特点。

并且能大大缩短产品的开发周期。

关键词:现场可编程逻辑门阵列(FPG A);片上可编程系统(SOPC);Nios II;脉宽调制(PWM);直流电机中图分类号:TM33;TP273+5 文献标识码:B 文章编号:167125276(2007)0120113203PWM R egulating Speed System of DC Motor B ased on SOPC of Nios IIZHU K e2xing,YU Jian2ping(College of Mechenical Engineering,S outheast University,Nanjing211189,China)Abstract:This paper introduces a kind of s peed regulation for DC mortor based on the soft CPU core named Nios II,and then il2 luminates the thinking and method of SOPC.A piece of FPG A is the core of the system,simple and compact,showsing high in2 tegration,flexibility,expandability of SOPC and reduction of the time of develo pment of product.K ey w ords:SOPC;Nios II;PWM;DC motor0 引言SOPC是电子设计自动化EDA(electronics design au2tomation)技术和大规模集成电路技术高度发展的产物。

NIOS2完整教程

NIOS2完整教程

NIOS2完整教程NIOSII是一种32位可配置的软核处理器,支持使用硬件描述语言(HDL)进行快速设计和开发。

下面是一个完整的NIOSII教程,介绍了NIOSII的基本概念和使用方法。

第一部分:NIOSII概述(300字)NIOS II是Altera公司推出的一种可配置软核处理器。

它可以根据需要进行配置,包括选择处理器指令集的大小和功能,以及设置外设和存储器的接口。

NIOS II是基于经典的RISC架构,具有高性能和灵活性。

第二部分:NIOSII的基本构成(300字)NIOSII处理器由五个核心组件组成:指令集体系结构(ISA)、处理器核心、数据存储器、指令存储器和外设接口。

ISA定义了NIOSII支持的指令集,包括整数指令、浮点指令和多媒体指令。

处理器核心执行指令,并且可以执行单周期、多周期或流水线处理。

数据存储器用于存储数据,指令存储器用于存储程序指令。

外设接口用于连接NIOSII处理器和外部设备。

第三部分:NIOSII的配置和开发环境(300字)第四部分:NIOSII的应用场景(300字)NIOSII可用于各种应用场景,包括但不限于嵌入式系统、通信系统、工业自动化和军事应用。

NIOSII的可配置性使得它非常适合于各种需求和资源约束的项目。

NIOSII的性能和可扩展性使得它能够满足高带宽和实时性要求的应用。

此外,NIOSII的软件开发环境也非常成熟和易于使用,可以加快开发过程。

第五部分:NIOSII的优势和挑战(300字)NIOSII相对于其他软核处理器的主要优势在于其可配置性和性能。

NIOSII可以根据需求进行定制,并且可以实现高度优化的硬件和嵌入式软件系统。

然而,NIOSII的可配置性也带来了一些挑战,例如设计复杂性和调试困难。

此外,NIOSII的性能也受限于硬件资源的可用性和设计的质量。

总结(200字)在本教程中,我们介绍了NIOSII的基本概念和使用方法。

NIOSII是一种可配置的软核处理器,支持使用HDL进行快速设计和开发。

SOPC技术及Nios II软核处理器

SOPC技术及Nios II软核处理器

一个组件典型地由下面几部分组成:
○硬件文件——描述组件硬件的HDL模块。 ○软件文件——一个定义组件寄存器映像的C语言头文件,软件 控制组件所需的驱动程序。 ○组件描述文件(class.ptf)——这个文件定义组件的结构, 为SOPC Builder提供将组件集成到系统的信息,组件编 辑器自动地创建这个文件,它是基于所提供的硬件、软件及 在编辑器GUI中指明的参数而创建的。 描述组件的硬件和软件文件创建后,使用组件编辑器将这些文 件封装成一个SOPC Builder元件。
定制组件的开发流程(续)
(9)测试处理器在寄存器级的对组件的访问,可用硬件进 行验证,或者在HDL仿真器(例如ModelSim)上进行验证。 (10)若使用微处理器控制组件,则编写驱动软件。 (11)基于组件的在系统(in-system)性能,反复修改 组件的设计。可进行软硬件修改和调整,通过组件编辑器, 将软硬件的变化反映到组件中。 (12)对包含一个或多个定制组件的SOPC Builder系统 进行编译。 (13)进行系统级验证。若需要,则进行反复修改。 (14)完成组件,发布(distribute)它,以便设计的重 用。
下载所要的Megacore的安装程序并安装; 通过MegaWizard IP的界面打开IP核的统一界面 Toolbench; 根据用户的需要定制要生成IP的参数; 产生IP的封装和网表文件,以及功能仿真模型; 用户对IP的RTL仿真模型做功能仿真; 用户把IP的封装文件和网表文件放在设计工程中,并实现设 计; 如果IP支持openCore plus,用户可以把设计下载到器件 中做验证和调试; 如果确认IP使用没有问题,即可以向altera或第三方IP供 应商购买许可证。

基于NiosⅡ的通用信号源的SOPC设计与实现

基于NiosⅡ的通用信号源的SOPC设计与实现

图3.2DSPBuilder在MatJ曲平台设计DDS模型图3.3Simulink模拟示波器组件对DDS模型的显示波形图3.4是本设计中DDS部分在QuartusH原理图输入界面的顶层结构图。

累加器模块直接调用QuartuslI软件自带的功能函数模块来实现,位宽选择32位,裁剪掉一些不需要的进位、溢出和使能等功能,以减小资源占有量。

此处之所以选择32位的累加器,是为了提高DDS的精度。

由式(3.12)可知,在DDS输入时钟为160MHz的情况下,频率分辨率为160X106/2”=0.03725Hz,可见最低频率也可以达到0.03725Hz。

加法器则使用了软件提供的兆功能模块,设计时需要选择同步时钟,并且在加减选择时选择加法器,同样是32位的位宽。

这两个器件的关键在于其中的流水线设置,如果不设置流水线,模块在完成功能时达不到高速,甚至会成为整体系统中速度无法图3.5Quartusll中DDS模块的时序仿真图§3.3DDS噪声分析DDS噪声主要分为两大类119】:相位噪声和杂散噪声。

其中相位噪声主要由参考时钟信号的相位噪声、参考时钟的频率和输出频率之比的关系和器件本身的噪声基底决定。

从理论上讲,输出信号的相位噪声相对于时钟信号有2019(fc/)自)dB的改善。

总的来说,相位噪声相比杂散噪声比较小洲。

杂散噪声的来源主要有三种【19l:相位截断噪声、幅度量化噪声、DAC非线性转换噪声。

其中幅度量化噪声与DAC非线性转换噪声的产生原因主要与DAC器件有关,选用分辨率高以及转换线性度较高的DAC可以很明显的改善这两种杂散噪声。

余下对输出频谱影响较大的就是相位截断噪声,通过改善相位杂散噪声可以很明显的改善信号输出谱的质量【211,而且它的改善方法也较容易在FPGA内实现,因此下文将主要分析DDS的相位截断杂散噪声。

§33.1DDS的相位截断杂散噪声分析在DDS系统中,为了追求较高的频率分辨率,往往会把相位累加器的位数Ⅳ取的很大。

sopc技术与应用课程设计

sopc技术与应用课程设计

sopc技术与应用课程设计一、课程目标知识与理解目标:使学生掌握SOPC(System On Programmable Chip)的基本概念、原理及设计流程,理解SOPC技术在现代电子系统中的应用和优势,了解相关硬件描述语言(如Verilog HDL)的基础知识。

技能目标:培养学生运用所学知识进行SOPC系统设计的能力,包括硬件描述代码编写、仿真验证、综合和布局布线等,提高学生实际操作FPGA(Field-Programmable Gate Array)开发板的能力。

情感态度价值观目标:激发学生对电子技术、特别是SOPC技术的学习兴趣,培养学生团队协作、创新实践的精神,强化质量安全意识,认识到SOPC技术在国家经济建设和国防安全中的重要作用。

针对课程性质,结合学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够准确描述SOPC的基本原理和设计流程;2. 学生能够运用Verilog HDL编写简单的硬件描述代码并进行功能仿真;3. 学生能够在FPGA开发板上实现基本的SOPC系统设计;4. 学生能够理解并阐述SOPC技术在现实生活中的应用;5. 学生通过小组合作,培养团队精神和沟通协调能力;6. 学生能够认识到SOPC技术的价值,激发对电子科技事业的热爱和追求。

二、教学内容本课程教学内容依据课程目标,紧密结合教材,科学系统地组织以下模块:1. SOPC基本概念与原理:介绍SOPC的定义、发展历程,探讨其与传统ASIC(Application-Specific Integrated Circuit)的区别,分析SOPC的设计理念和优势。

2. 硬件描述语言基础:以Verilog HDL为例,讲解硬件描述语言的基本语法、数据类型、运算符和基本结构,为后续的硬件设计打下基础。

3. SOPC设计流程:详细讲解SOPC设计的各个阶段,包括需求分析、硬件描述代码编写、功能仿真、综合、布局布线和时序分析等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1节并行输入/输出内核并行输入/输出(PIO)内核提供了Avalon存储器映射从端口和通用IO端口直接的接口。

I/O端口连接到片内的用户逻辑或是连到与FPGA片外设备相连的引脚上。

PIO内核提供对用户逻辑或外部设备简单的I/O访问,应用实例如下:∙控制LED∙获取开关数据∙控制显示设备∙配置并与片外设备通信,例如专用标准产品(ASSP)的设备。

PIO内核可以基于输入信号而发出中断请求 (IRQ) 输出。

SOPC Builder 中提供了现成的 PIO内核,可以很容易地将PIO内核集成到SOPC Builder生成的系统中。

7.1.1 PIO 寄存器描述每个PIO内核可提供多达32I/O端口,用户可以添加一个或多个PIO内核。

CPU通过读/ 写PIO接口的映射寄存器来控制PIO端口。

在CPU的控制下,PIO内核在输入端口捕获数据,驱动数据到输出端口。

当PIO端口直接连到了I/O管脚,通过写控制寄存器,CPU能够将管脚置成三态。

图7-1是一个PIO应用的例子,本例使用了多个 PIO内核。

图7-1 使用PIO内核的系统实例当集成到SOPC Builder生成的系统中,PIO内核有两个特性对用户是可见的。

∙具有四个寄存器的存储器映射的寄存器空间,4个寄存器是data、direction、 interruptmask和edgecapture。

∙1到32个的I/O端口。

有些寄存器在某些硬件配置下不是必需的,这时相应的寄存器就不存在了。

对一个不存在的寄存器进行读操作,则返回一个未定义的值;一个不存在寄存器进行写操作则没有任何结果。

表7-1给出了PIO寄存器的描述。

1. 数据寄存器(Data Input & Output)PIO内核I/O端口可以连接到片上或片外的逻辑。

内核可以配置成仅有输入端口,或仅有输出端口,或两者都有。

如果内核用于控制设备上的双向I/O 管脚,内核提供具有三态控制的双向模式。

读数据寄存器返回输入端口上的数据,写数据寄存器则提供驱动到输出端口的数据。

这些端口是独立的,读数据寄存器不会返回之前写入的数据。

2. 方向寄存器(direction)如果端口是双向的,方向寄存器控制每个PIO端口的数据方向。

当方向寄存器的第n为被置为1,端口n 驱动数据寄存器中相应位的值。

方向寄存器只有当PIO内核配置为双向模式时才存在,模式(输入、输出或双向)在系统生成时指定,在运行时无法更改。

在 input-only或output-only模式下,方向寄存器不存在。

这种情况下,读方向寄存器返回一个未定义的值,写方向寄存器则没有结果。

复位之后,方向寄存器的所有位都是0,即所有双向的I/O 端口配置为输入。

如果PIO端口连接到设备的管脚,则管脚保持高阻状态。

3. 中断掩码寄存器(interruptmask)设置中断掩码寄存器某位为1,则将相应的PIO输入端口中断使能。

中断的行为依赖PIO 内核的硬件的配置。

.中断掩码寄存器只有当硬件配置产生中断请求(IRQ)时才存在。

如果内核不能产生中断请求,读指定掩码寄存器返回一个未定义的值,写中断掩码寄存器则没有任何结果。

复位之后,所有的中断掩码寄存器位都为零,即所有PIO端口中断被禁止。

4. 边沿捕获寄存器PIO内核可配置在输入端口上捕获脉冲边沿,可捕获由低到高的跳变、由高到底的跳变,或两种跳变。

当输入端口检测到一个脉冲的边沿,则边沿捕获寄存器会作出相应的反映。

检测的边沿种类在系统生成时指定,并且不能通过写寄存器来改变。

5. 中断请求产生PIO内核可以配置成在某个输入的情况下产生中断请求。

产生中断请求的条件可以是:∙电平触发——PIO内核硬件检测到高电平则产生中断请求。

通过在内核外部加一个非门来实现对低电平敏感。

∙边沿触发——内核的边沿捕获配置决定哪种边沿会导致中断请求。

每个端口的中断可以被屏蔽,中断掩码可以决定哪个端口可以产生中断。

有关PIO硬件配置请看第二章电子钟的硬件设计,其中用到了PIO。

7.1.2 软件编程这部分讨论PIO内核的软件编程模型。

Altera提供了定义PIO内核寄存器的HAL系统库头文件。

PIO内核不属于HAL支持的通用设备模型的种类,所以不能通过HAL API或者ANSI C标准库来访问它。

Niios II EDS提供了几个演示PIO内核使用的例子。

count_binary.c 例子中使用PIO内核来驱动LED,使用PIO内核边沿检测中断来检测按钮按下。

7.1.2.1 软件文件Altera提供了PIO内核的寄存器头文件altera_avalon_pio_regs.h。

该文件定义了内核的寄存器映射,提供了对底层硬件的符号化的访问。

下面的代码为Altera提供的寄存器头文件。

#ifndef __ALTERA_AVALON_PIO_REGS_H__#define __ALTERA_AVALON_PIO_REGS_H__#include <io.h>#define IOADDR_ALTERA_AVALON_PIO_DATA(base)__IO_CALC_ADDRESS_NATIVE(base, 0)#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0)#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data)#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base)__IO_CALC_ADDRESS_NATIVE(base, 1)#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1)#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data)#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base)__IO_CALC_ADDRESS_NATIVE(base, 2)#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2)#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data)#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base)__IO_CALC_ADDRESS_NATIVE(base, 3)#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3)#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data)#endif /* __ALTERA_AVALON_PIO_REGS_H__ */一个 Nios II嵌入式系统中可能有多个用 PIO内核的设备,这些设备的配置、基地址中断优先级等信息在 system.h 头文件中定义。

在第二章的电子钟设计中用到了 Button_PIO,在 system.h 头文件中关于 Button_PIO的定义的代码如下:#define BUTTON_PIO_NAME "/dev/button_pio"#define BUTTON_PIO_TYPE "altera_avalon_pio"#define BUTTON_PIO_BASE 0x00000860#define BUTTON_PIO_SPAN 16#define BUTTON_PIO_IRQ 2#define BUTTON_PIO_DO_TEST_BENCH_WIRING 0#define BUTTON_PIO_DRIVEN_SIM_VALUE 0x0000#define BUTTON_PIO_HAS_TRI 0#define BUTTON_PIO_HAS_OUT 0#define BUTTON_PIO_HAS_IN 1#define BUTTON_PIO_CAPTURE 1#define BUTTON_PIO_EDGE_TYPE "ANY"#define BUTTON_PIO_IRQ_TYPE "EDGE"#define BUTTON_PIO_FREQ 50000000#define ALT_MODULE_CLASS_button_pio altera_avalon_pio即寄存器头文件定义了通用的 PIO 内核硬件结构,所有用到 PIO 内核的设备的个性信息在 system.h 文件中定义。

对 Button_PIO的读访问可以使用下面两个函数:IORD_ALTERA_AVALON_PIO_DATA(BUTTON_PIO_BASE)IORD(BUTTON_PIO_BASE, 0)即用 BUTTON_PIO_BASE 来代替函数中的参数,那对其他的设备的访问代入其它设备的基地址的宏定义即可,不要用直接硬件的地址。

第2节定时器具有Avalon接口的定时器内核是32位的间隔定时器,可用于基于Avalon总线的处理器系统,比如Nios II处理器系统。

定时器提供如下的特性:∙可控制启动、停止和复位定时器。

∙两种计数模式:一次递减和连续递减。

∙递减周期寄存器当递减到零时,可屏蔽中断请求。

∙可选的看门狗定时器特性——当定时器计时零时,复位系统。

∙可选的周期脉冲产生器特性——当定时器计时到零时,输出一个脉冲。

∙兼容32位和16位的处理器,在HAL系统库中提供了Nios II处理器的定时器的驱动程序。

定时器内核在SOPC Builder中现成的IP,而且很容易集成到任何SOPC Builder生成的系统。

图7-2显示了定时器内核结构,定时器内核对用户可见的特性:∙提供对6个16位寄存器访问的Avalon存储器映射接口∙可用作脉冲产生器的可选的脉冲输出所有的寄存器都是16位的,使得定时器能够兼容16位和32位的处理器。

某些寄存器只有在特定的配置下才在硬件上存在。

例如,如果定时器配置成具有一个固定的周期,硬件上就没有周期寄存器(period registers)了7.2.1 定时器寄存器描述如果使用Nios II处理器HAL系统库提供的标准的特性,程序开发者可以不必通过寄存器来直接访问定时器。

通常,寄存器映射只是对开发驱动程序的人员有用处。

对于定时器共有6个用户可以访问的16位的寄存器。

相关文档
最新文档