TMS320F240的IDE接口仿真器设计
数据通路用16路驱动的IDT74LS16245实现,开门信号直接由I/O片选信号IS控制,方向端由写信号WR控制。而单向提供给IDE设备的其它信号,都经过54F244驱动。所有控制信号由GAL16V8实现。以下是其控制逻辑代码,信号名称和功能可参见图2。
图2 核心仿真控制电路
……
EQUATIONS
!HRST=!POR#!HRST;//RC上电复位和F240设置复位都产生IDE复位
!CS1FX=!IS&!A3; //A3=0;产生第一组寄存器片选CS1FX=!IS & A3; //A3=1:产生第二组寄存器片选CS3FX
!IOR=!IS & !RD; //*专门产生寄存器读信号.
[Q1,Q0].CLK=CPUCLK;
[Q1,Q0].OE=!OE;
[Q1,Q0].AR=!POR; //复位
//==============================================
//F240系统控制状态机
//时钟20MHz,每一拍50ns
//程序存储器CY7C199读写周期≤35ns,无需等待
//IDE接口寄存器读写周期≥70ns,等待2拍
//===============================================
State_Diagram [Q1,Q0];
State S0: //空闲状态
READY=H; //支持CY7C199访问
if(!IS)then //要访问IDE接口寄存器
S1 with {READY240=L;}
State S1: //开始等待
READY240=L;
Goto S2;
State S2:
READY240=L;
Goto S3;
State3: //时间到
READY240=H;
Goto S0; //F240对READY信号只采样一次
END
仿真硬件的核心只有1片F240和1片GAL16V8。
图3 驱动与接口电路
2 仿真器监控软件设计
软件设计包括驻留F240的监控程序和PC宿主机的监控程序,两者之间通过串口配合工作。这当然降低了IDE接口的数据吞吐率,但在逻辑仿真调试时不是主要焦点。为简约起见,避免复杂的词法分析,主从之间采用单字符监控命令。其串口监控命令通信帧定义如下:
0 1 《TMS320F240的IDE接口仿真器设计(第2页)》