最近想使用Nios II里的并口PIO口进行双向操作,即需要输出的时候设置为输出方向,需要输入的时候设置为输入方向。在这期间,因为没认真仔细阅读参考文档,走了一点点的弯路。下面就简单的介绍下并行输入/输出PIO。
PIO核概述
具有Avalon接口的并行输入/输出(parallel input/output - PIO)核,在Avalon存储器映射(Avalon Memory-Mapped Avalon-MM)从端口和通用I/O端口之间提供了一个存储器映射接口。I/O端口既可以连接片上用户逻辑,也可以连接到FPGA与外设连接的I/O引脚。
PIO核提供容易的I/O访问用户逻辑或外部设备,在这种情况下“位控制”的方法是有效的。下面列举了几种应用的例子:
①控制LED、②获取开关数据、③控制显示设备、④片外设备的配置与通信,例如特定应用的标准产品(ASSP)。
功能描述
每个PIO核可以提供最多32个I/O端口。像微处理器这样的智能主机通过读/写寄存器映射的Avalon-MM接口控制PIO端口。在主机控制下,PIO核捕获输入端口的数据,并驱动数据到输出端口。当PIO端口直接与I/O引脚相连时,主机通过写PIO核中的控制寄存器对I/O引脚进行三态控制。图9-1是一个基于处理器系统使用多个PIO核的例子,其中,一个用于控制LED;一个用于捕获来自片上复位请求控制逻辑的边缘;另一个控制片外LCD显示。
在集成到SOPC Builder创建的系统时,PIO核有2种用户可见功能部件。
①一个存储器映射的寄存器空间有4个寄存器:da