|
1数据寄存器
如果PIO内核硬件配置在双向模式下,那么方向寄存器中对应的位设为1(输出)时,值才输出
2方向寄存器
当方向寄存器中的位n设为2时,端口n为输出模式;0时,端口n为输入模式。复位后,方向寄存器的所在位置设置为0,因此所有双响向I/O口配置为输入。
3中断屏蔽寄存器
中断操作取决于PIO内核的硬件配置,只有配置为输入口时才能进行中断操作。中断屏蔽寄存器只有在硬件配置为“Generat IRQ”时才存在。复位后,中断屏蔽寄存器所有位为0,因此禁止所有PIO口的中断。
4边沿捕获寄存器
只要在输入口上检测到边沿事件时,边沿捕获寄存器(Edgecapture)中对应位n设置1。Avalon主控制器可读边沿捕获寄存器来确定边沿在哪一个PIO输入口出现。写任意值到边沿捕获寄存器将是寄存器所有位清0。要检测的边沿类型在PIO添加时指定。当硬件配置到边沿捕获功能时,边沿捕获寄存器才存在,否则,读边沿寄存器返回未定义的值,写边沿捕获寄存器无效。
5中断操作
当硬件配置为电平触发方式时,只要高电平出现并且中断使能,就申请一个中断。当硬件配置为边沿触发方式时,只要捕获边沿事件并且中断使能时,就申请一个中断。
中断(IRQ)一直保持有效直至禁止中断(中断屏蔽寄存器相应位清零)或清边沿捕获(向边沿捕获寄存器写一个任意值)为止。
每个PIO核的I/O口公用一个中断号(系统生成时指定),用户需要在中断服务子程序中通过中断掩码的的方式来查明是哪个I/O产生中断。