TMS320F240的IDE接口仿真器设计
其校验和为前n-1个字节代数和的补码,即
CheckSum=-∑Bi(i=0,1…n-1)
下面介绍几个主要命令和程序实现方法,其中寄存器名称和地址可参考图4界面。
(1)1命令:读IDE寄存器
当监控程序识别出1命令后,根据参数提供的寄存器索引,映射为对应的I/O地址。F240的输入/输出命令与x86系列不同,它在指令中必须直接给出地址。
…
LACC Reg
BZ IsDatReg ;0号索引,即读数据寄存器
SUB #1
BZ IsError ;/*号索引,即读错误类型寄存器
…
BZ IsAltReg ;8号索引,即读后备状态寄存器
SUB #1
BZ IsDrvAddrReg ;9号索引,即读驱动器地址寄存器
…
IsDatReg
IN Value,DatReg ;读数据寄存器
RET
IsAltReg:
IN Value,DevAddrReg;读驱动器地址寄存器
RET
当I命令执行完毕后,应该将寄存器读入值回送PC主机。
(2)0命令:写IDE寄存器
寄存器输出命令参数需要提供寄存器索引和映射为对应的I/O地址。
(3)H命令:硬件复位IDE设备
硬件复位时应将F240的IOPC7引脚设置为低电平10ms以上。
LDP #00E1h ;DP=00E1H:708H~70FFH的页址
LACL #8000H ;D15=1:IOPC7:作输出
D7=0;设置IOPC7=0
SACL PCDATDIR ;写PC端口,设置HRST信号为低电平
CALL Delay 10ms ;保持复位信号10ms的低电平
LACL #8080H ;D15=1:IOPC7:作输出
;D7=1:设置IOPC7=1
SACL PCDATDIR ;恢复HRST信号为高电平
类似地,监测DMA请求HDRQ状态时,可以设置端为输入属性,然后读入IOPB0。监测中断请求HIRQ时,可以直接读XINT1状态,即读7070H处的XINT1CR寄存器。
(4)S命令:软件复位IDE设备
软件复位时可以向IDE接口的DevCtrlReg(设备控制寄存器)写入适当值实现。
LDP #0 ;
《TMS320F240的IDE接口仿真器设计(第3页)》