第12章NIOS II常用外设使用_第1页
第12章NIOS II常用外设使用_第2页
第12章NIOS II常用外设使用_第3页
第12章NIOS II常用外设使用_第4页
第12章NIOS II常用外设使用_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章 NIOS II常用外设使用 Nios II嵌入式系统包含各种外围设备,用户的应用程序通过对这些外围设备进行控制和操作可以实现各种功能。Altera和其它第三方公司提供了很多外设的IP,用户可以很方便地将这些外设IP集成到NIOS II嵌入式系统中,构成完整的应用系统。本章介绍一些常用外设编程的方法,使读者掌握软硬件协同开发的使用方法。12.1 并行输入输出内核(PIO) 并行输入输出内核(PIO)提供了Avalon存储器映射从端口和通用I/O端口之间的寄存器映射接口,它用于提供对用户逻辑或外部设备简单的I/O访问。每个PIO内核可以提供1到32个I/O端Nios II处理器口,具体端

2、口数目由用户决定。Nios II处理器支持多个PIO内核。12.1.1 PIO内核简介 由于PIO内核是Nios II处理器到通用I/O端口之间的寄存器映射接口,用户可以对相关的寄存器进行读、写操作,来控制PIO端口。在CPU的控制下,PIO内核可在输入端口捕获数据;也可驱动数据到输出端口;当PIO端口直接连接到I/O引脚时,CPU可以将引脚设置成三态。 1数据寄存器 2方向寄存器 3中断屏蔽寄存器 4边沿捕获寄存器12.1.2 PIO内核的配置 在SOPC Builder 窗口的System Contents选项卡中,选取PIO(Parallel I/O)选项可以打开并行输入/输出(PIO)

3、内核的配置对话框,如图12.1所示。12.1.3 PIO内核的C语言编程 访问并行输入/输出(PIO)内核的相关寄存器,需要利用Altera提供的予处理头文件:#include “altera_avalon_pio_regs.h”。 1输出数据时的C语言编程 2输入数据时的C语言编程 3中断 41位按键的控制程序12.2 定时器的使用 在Nios处理器系统中含有一个内核定时器,它能够作为系统的周期性时钟源,也可以作为一个计时器,测定事件发生的时间;它既能对外输出周期性脉冲,也可作为一条“看门狗”以监管系统正常运行。12.2.1 内核定时器简介 在Nios处理器的定时器内核是一个32位的减法计数

4、器,是由系统时钟驱动的。其内部结构,如图12.5所示。 1状态寄存器(Status) 2控制寄存器(Congtrol) 3初值寄存器(Period) 4快照寄存器(snap)12.2.2 定时器内核的配置 在SOPC Builder 窗口的System Contents选项卡中,选取Interval Timer选项,可以打开定时器内核的配置对话框,如图12.6所示。12.2.3 定时器内核的C语言编程 在Nios处理器系统中,HAL支持定时器内核,用户应该尽可能通过使用HAL API来访问定时器内核,而不是访问定时器的寄存器。需要用到的文件是: Alter_avalon_timer_regs.

5、h:定义内核的寄存器映射并提供硬件设备访问宏定义。由开发系统自动产生。 altera_avalon_timer.h、altera_avalon_timer_sc.h、altera_avalon_timer_ts.c、altera_avalon_timer_vars.c:实现了HAL系统库的定时器设备驱动程序。12.3 Flash接口控制器的使用 在SOPC Builder中提供了通用Flash接口(Common Flash Interface ,CFI)控制器内核,用来连接符合CFI规范的Flash存储器。在Nios处理器系统中,Altera为CFI控制器内核提供了HAL驱动函数,用户不需要写

6、额外的代码。12.3.1 Flash接口控制器简介 典型系统配置中CFI控制器的结构框图,如图12.7所示。12.3.2 CFI控制器的配置 在SOPC Builder 窗口的System Contents选项卡中,选取Common Flash Interface(CFI)可以打开CFI控制器的配置对话框。 1Attributes(属性)选项卡 2Timing(时序)选项卡12.3.3 CFI控制器的C语言编程 对于NiosII处理器,Altera为CFI控制器提供了HAL驱动程序。驱动程序提供了遵循CFI接口规范的Flash存储器的通用访问函数。用户通过HAL系统库驱动程序和APl函数就可以

7、访问遵循CFI接口规范的Flash器件,进行对Flash存储器的擦除和写操作。目前,Altera提供的CFI控制器驱动程序仅支持AMD和Intel的Flash芯片。12.4 SDRAM控制器的使用 SDRAM广泛应用于需要大容量易失性存储器的系统,其成本低廉,但控制逻辑却很复杂,给设计者带来困难,NiosII系统的SDRAM控制器内核解决了这一困扰。12.4.1 SDRAM控制器内核概述 SDRAM控制器内核提供一个连接片外SDRAM芯片的Avalon接口。通过SDRAM控制器可使设计者将NiosII系统和片外的SDRAM芯片连接起来。SDRAM控制器内核提供了连接一个或多个SDRAM芯片的接

8、口,并处理所有SDRAM协议要求。有了SDRAM控制器内核,在NiosII系统中使用SDRAM就像使用SRAM一样简单。 1Avalon从端口 2片外SDRAM接口 3性能因素12.4.2 SDRAM内核配置 在SOPC Builder中使用SDRAM控制器的配置向导可以指定硬件特性和仿真特性。SDRAM控制器配置向导有两个选项卡:Memory Profile和Timing。 1.Memory Profile配置 2Timing选项卡12.4.3 软件编程 使用Avalon总线访问SDRAM控制器就像访问一般的存储器一样,不需要软件驱动程序,可以直接通过函数IORD和IOWR进行读写。 读函数

9、IORD的格式为:IORD(BASE,REGNUM)。BASE是寄存器的基地址,REGNUM是寄存器的偏移量,函数功能是从基地址为BASE的设备中读取偏移量为REGNUM的单元里的值。 写函数IOWR的格式为:IOWR(BASE,REGNUM,DATA)。BASE是寄存器的基地址,REGNUM是寄存器的偏移量,DATA是要写入的数据。函数功能是向基地址为BASE的寄存器的偏移量为REGNUM的单元里写入数值DATA。12.5 UART的使用 UART(通用异步接收器发送器)是一个常用的字符型外围设备。在NiosII系统中可以集成了两种UART内核,一种是JTAG UART,使用它可以通过JTA

10、G通讯端口与PC机进行数据交换,一般用于程序调试;另一种是通用的UART,它以RS232协议的形式与外界进行数据交换。本节介绍UART。12.5.1 UART内核简介 通过UART内核,A1tera FPGA上的嵌入式系统实现了和外部设备之间的串行字符流通信。其内核执行RS232协议时序,并提供可调整的波特率。用户可通过配置奇偶校验位、停止位、数据位和可选的RTSCTS流来控制信号。 1RS-232接口 2发送器逻辑 3接收器逻辑 4波特率生成12.5.2 UART内核的寄存器 应用程序访问UART内核使用HAL API,并不直接访问UART内核寄存器。寄存器映射通常用于编写内核的驱动程序。

11、1接收数据寄存器 2发送数据寄存器 3状态寄存器 4控制寄存器控制 5除数寄存器(可选) 6数据包结束符寄存器(可选)12.5.3 UART内核配置 UART内核的配置有两个选项卡,Configuration(配置) 和Simulation(仿真)。其中Simulation(仿真)选项卡与Modelsim仿真有关。如果不用仿真,可以不设置仿真选项卡。Configuration(配置)选项卡,如图12.14所示。在该选项卡设定波特率、数据位、停止位、奇偶校验位、流控制和流控制传输等选项。 1波特率设置 2奇偶设置 3数据位和停止位设置 4流控制(Flow Control) 5流数据控制(Streaming data(DMA) Control)12.5.4 软件编程 对于NiosII处理器用户,Altera提供硬件抽象层(HAL)系统库驱动程序,允许使用ANSI C标准库函数,如printf()和getchar()访问UART内核。UART内核提供了硬件的寄存器级访问头文件和HAL层的API函数: altera_avalon_uart_regs.h:定义内核的寄存器映射并提供硬件设备访问宏定义。 altera_avalon_uart.h 和altera_avalon_uart.c:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论