您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术TMS320F240的IDE接口仿真器设计(三) 正文
TMS320F240的IDE接口仿真器设计(三)

TMS320F240的IDE接口仿真器设计(三)

点击数:7530 次   录入时间:03-04 12:03:00   整理:http://www.55dianzi.com   DSP/FPGA技术

2 仿真器监控软件设计

     软件设计包括驻留F240的监控程序和PC宿主机的监控程序,两者之间通过串口配合工作。这当然降低了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 指向.bss变量区

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机的监控程序,从中再细分出具体参数。

类似地,读一个扇区或写一个扇区的命令与这个命令相似。只是在发命令前应该设置柱面扇区等寄存器定位到具体的扇区。

(6)PC宿主机监控程序功能

PC宿主机监控程序主要通过串口监控仿真器。在底层通信中,应该为每一个监控命令建立对应函数。在应用层,可以将几个简单命令有机组合,完成复杂功能,减小仿真器驻留监控难度。例如,在读取配置参数命令中,分解缓冲数据。在读写扇区命令中,将LBA逻辑扇区地址分解成驱动器号、扇区号、柱面号等。

    重要的是为用户提供一个Windows环境下特别容易操作的接口界面,贴近硬件调试,产生所需信号波形,用示波器捕获分析。图4是宿主机的一个界面,具体方法细节不再讨论。

结语

    随着航空电子新系统研制的智能化和接口标准化,硬件调试对仿真设备和环境要求也越来越高。鉴于成本和上市时间的限制,采用嵌入式CPU研制一些简单实用的仿真设备,是解决矛盾的一条重要途径。本文所介绍的IDE接口仿真器硬件简练、软件精巧,在多个型号的Flash Disk研制中发挥了重要作用。




本文关键字:接口  仿真器  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术