TMS320F240的IDE接口仿真器设计
关键词:仿真器 监控程序 硬件调试 IDE接口
随着航空电子系统数字化的发展,机载嵌入式计算机逐步摆脱了“纯粹嵌入”时代,开始以主要控制角色而显露头脚。其存储系统也和地面计算机系统一样,提出了“海量存储”的要求。借鉴和使用IDE接品时一条重要途径。但在调试时一般缺乏IDE接口主方(Host)控制器。PC机虽然带有两个标准的集成在主板上的IDE接口,但在目前的Widows系统下却是透明的,无法在硬件调试级进行控制驱动。“工欲善其事,必先利其器”。为解决调试工具,笔者在此前自己动手,设计了一个IDE接口仿真器。硬件极其简练实用,软件精巧灵活。介绍出来,与大家切磋。
1 仿真器硬件设计
众所周知,IDE/ATA接口是16位总线,映像在主机的I/O空间,由主机对接口内的2组寄存器操作来完成“海量存储”。这些寄存器仅由2根片选(CS1FX、CS3FX)和3根地址线(A2、A1、A0)寻址。仿真器硬件只要能在监控程序的控制下产生对应控制信号,便能真实地仿真IDE调试所需的环境。需要仿真处理的主要信号如表1所列。信号方向以仿真器为参照,输出(Output)方向由仿真器驱动,输入(Input)信号由IDE设备驱动。
表1 主要仿真处理的信号
IDE接口的读写时序和一般CPU外设时序波形相似,其读取周期为70ns,具体波形不再给出。使用TI公司的TMS320F240(以下简称F240)可以方便地仿真出IDE的时序波形。只要使用外部READY信号,把I/O周期延长到70ns以上,就可以保证仿真数据读写可靠。以F240为核心,仿真器硬件设计真数据读写可靠。以F240为核心,仿真器硬件设计就非常简练。其全部硬件电路如图1、图2和图3所示。除去初期调试和驱动芯片外,整个核心就是F240和GAL16V8,已经仿真全部的IDE时序波形,图1是仿真器自身调试仿真监控程序时电路。使用2片CY7C199,组成32K×16位的片外RAM程序存储器空间。当程序调试完成后,断开H1,将监控程序通过JTAG口直接烧入F240,就可以拔去2片外部程序存储器CY7C199。
图1 调试时的程序存储器配置
当仿真监控程序调试完成后,正式定型的仿真核心电路如图2所示。电路设计总的原则是简练实用,所以复位采用普通的RC电路,外加手工复位开关SW保证仿真器自身复位;利用RS232和主机之间通信,减少硬件额外开销;IDE接口的中断请求HIRQ直接接F240的外部中断XINT1(因为HIRQ高电平有效,所以将蓁不用的外部断XINT2等接地,保证蓁中断源不产生中断请求,减少软件中断响应多重判断环节);将F240的PB端口设置为输出端口,DMA请求HDRQ接到PB端口的最低位PB0,可以直接由硬件检测DRQ状态即可,并不真正需要DMA控制器;将F240的PC端口设置为输出端品,最高位PC7为复位IDE端口信号,当该位设置为0(低电平)时,产生复位IDE设备信号HDRST,该位设置为1时结束复位。其复位时间可由软件控制。IDE设备的寄存器映像在F240的I/O空间从0000H开始的16位地址。外部I/O只有IDE接口,不必采用全译码,直接由I/O片选IS和地址A3区分产生CFIFX和CS3FX即可。接口内偏移地址直接由A2~A0提供。F240的写信号WR可以直接作为接口写信号。但是F240的读信号是状态信号,在连续读操作中保持低电平,