AN 495: 采用 Altera MAX 系列实现 IDE/ATA 控制器

ID 683523
日期 9/22/2014
Public

1.2. 采用所支持的 Altera 器件实现 IDE/ATA 控制器

IDE 接口支持两种数据传送模式 - PIO 模式和 DMA 模式。 本设计实例仅限于 PIO 数据传送的 0 模式。

表 1.  接口信号说明简要介绍了“IDE/ATA 接口的基本结构图”中的各种信号。
信号 大小 方向 说明
clk 1 输入 与处理器的时钟相同。 本实例工作的时钟频率为 100 MHz。
arst 1 输入 异步有效低电平复位,用于将控制器复位。
iderst 1 输入 有效高电平信号,用于将 IDE 器件复位。
ideen 1 输入 有效高电平信号,用于启用 IDE 器件。
pioiordyen 1 输入 有效高电平信号,用于启用 IDE 器件的 IORDY 信号。
piorqst 1 输入 有效高电平信号,用于启动 PIO 数据传送周期。
pioaddr[3:0] 4 输入 4 位总线,用于选择器件地址和 IDE 器件的片选信号。
piodatain[15:0] 16 输入 16 位总线,用于将数据发送到 IDE 器件。
piowe 1 输入

有效高电平信号,用于设置数据传送的方向。

  • piowe = 1:写操作
  • piowe = 0:读操作
intrrqstsignal 1 输出 用于中断 CPU 的信号。
pioack 1 输出 用于指示 PIO 读/写周期结束的信号。
piodataout [15:0] 16 输出 16 位总线,用于保持从 IDE 器件读取的数据。
rstn 1 输出 有效低电平信号,用于将 IDE 器件复位。
ddo [15:0] 16 输出 16 位数据总线,用于将 CPU 发送的数据传送到器件。 低 8 位用于 8 位数据传送。
da [2:0] 3 输出 3 位有效高电平信号。 包含主机置位的二进制编码地址,以访问器件中的寄存器或数据端口。
cs0n 1 输出

来自主机的有效低电平片选信号,用于选择命令模块或控制模块寄存器。

  • cs0 = 0:选择控制寄存器
  • cs1 = 0:选择命令寄存器
  • cs0/cs1 = 0/1:器件忽略 DIOR-/DIOW- 上的变化,释放数据总线。
cs1n 1
diorn 1 输出 主机置位的有效低电平选通信号,用于读取器件寄存器或数据端口。
diown 1 输出 主机置位的有效低电平选通信号,用于写入器件寄存器或数据端口。
dstrb 1 输出 来自器件的 data-in strobe 信号。 dstrb 的上升沿将来自器件的数据锁存到主机中。
ddi [15:0] 16 输入 16 位数据总线,包含从 IDE 器件读取的数据。
iordy 1 输入 当器件还没有准备好响应数据传送请求时,此信号被置反以延长任何主机寄存器访问(读或写)的主机传送周期。 可以选择 0 模式,但要求更高的模式。
intrq 1 输入 所选器件利用该信号来通知主机有事件发生。 当发生此类事件时,将设置器件内部中断待定状态。
ddoe 1 输出 用于从 IDE 器件读取数据。 该信号变为低电平后,ddi 总线上的数据被放到 piodataout 数据线上。