TMS320F240的IDE接口仿真器设计
SPLK=#000EH,Value ;D2=SW Rst=1:软件强制复位
;D1=/IEn=1:禁止IDE发中断
OUT Value,DevCtrlReg ;复位IDE设备
CALL Delay 10ms ;保持复位状态10ms
SPLK #000AH,Value ;D2=SW Rst=0:结束复位状态
OUT Value,DevCtrlReg
CALL Delay 10ms
SPLK #000EH,Value ;D6=LBA=1:采用逻辑块寻址模式
OUT Value,DrvHeadReg ;设置驱动器寄存器
(5)C命令:读取IDE设备ID号和相关配置
IDE设备内的相关配置对其它操作影响较大,主机应该掌握这些参数。诸如柱面数、磁头数、每个磁道的扇区数以及最大扇区号等。这段程序稍微复杂一些。
CALL WaitRDY ;读状态寄存器,等待D6=1,亦即IDE设备完成上次命令
SPLK#000EH,Value
OUT Value,DrvHeadReg ;选择主从驱动器
SPLK #00ECH,Value
OUT Value,CmdReg ;发命令,读取配置参数
CALL WaitDRQ ;读状态寄存器,等待D6=1并且D3=1,亦即RDY并发出DRQ请求
MAR *,AR1 ;AR1:当前辅助寄存器
LAR AR1,#BufSADDR ;AR1→扇区缓冲区开始地址
RPT #0FFh ;循环次数=FFH+1=256
IN *+,DatReg ;读入配置数据
读出配置参数后,再把它送给PC机的监控程序,从中再细分出具体参数。
(凹丫丫范文网fanwen.oyaya.net收集整理)
类似地,读一个扇区或写一个扇区的命令与这个命令相似。只是在发命令前应该设置柱面扇区等寄存器定位到具体的扇区。
(6)PC宿主机监控程序功能
PC宿主机监控程序主要通过串口监控仿真器。在底层通信中,应该为每一个监控命令建立对应函数。在应用层,可以将几个简单命令有机组合,完成复杂功能,减小仿真器驻留监控难度。例如,在读取配置参数命令中,分解缓冲数据。在读写扇区命令中,将LBA逻辑扇区地址分解成驱动器号、扇区号、柱面号等。
重要的是为用户提供一个Windows环境下特别容易操作的接口界面,贴近硬件调试,产生所需信号波形,用示波器捕获分析。图4是宿主机的一个界面,具体方法细节不再讨论。
结语
随着航空电子新系统研制的智能化和接口标准化,硬件调试对仿真设备和环境要求也越来越高。鉴于成本和上市时间的限制,采用嵌入式CPU研制一些简单实用的仿真设备,是解决矛盾的一条重要途径。本文所介绍的IDE接口仿真器硬件简练、软件精巧,在多个型号的Flash Disk研制中发挥了重要作用。
《TMS320F240的IDE接口仿真器设计(第4页)》