摘 要: 给出一种TMS320C30/PLD系统与PC104通过标准并行接口进行双向通信时扩展并口的方法,给出了硬件实现电路的框图,分析了通信过程中握手信号的时序关系,并列出了通信测试程序的流程图。
关键词: 数字信号处理(DSP) 可编程逻辑器件(PLD) VHDL 并行通信
TMS320C30是TI公司的通用DSP芯片,它有很强的浮点/定点数据运算能力和很高的处理速度,特别适合于进行实时的数据采集及运算处理(如FFT,FIR、IIR滤波等)。但是,DSP一般I/O能力及文档处理能力较弱,所以,常常将DSP系统与PC104组成主机/从机系统,由PC104担负系统的各模块(分机)的管理、I/O设备的通信、文档处理等任务;而由DSP实现数据采集和实时处理。
因为C30没有标准通信接口,需要进行扩展。与PC机的通信可以通过标准异步串口进行,也可以通过标准并口进行,串口的特点是抗干扰能力强、连接较简单、编程也较方便,因而应用较广泛;但在对实时性要求较高的场合,其通信速度往往不能满足要求,这时可以通过标准并口进行。标准并口的扩展可以采用通用并行接口芯片,如8255、TL16C552等。但是,由于现在的数字电路系统一般都包含PLD,可以利用PLD的资源进行并行口的扩展,这样做有很多优点:利用现有资源,节省器件成本;节省电路板尺寸;功能的修改或扩展较容易,便于与以后新的接口标准兼容;由于可以根据实际需要对通用接口芯片的功能进行简化,软、硬件的设计都更加方便。
1 PC104的并口结构
PC104的并行接口可以工作在PC/AT方式,在这种方式下,接口只能输出数据,主要用于控制打印机等输出设备。也可以工作在PS/2方式,在这种方式下,它可以双向传输数据,我们就采用这种方式进行PC104与DSP的通信,C30的并口也采用与PC104兼容的结构和编程方式。
标准并口的信号定义如表1所示。
其中包含八位双向数据线(PD0~PD7),四根控制线(输出)和五根状态线(输入)。
标准双向并口的控制寄存器如表2所示。
寄存器位的定义与相应信号线的定义相同。但是,信号BSY、AFDn、STBn与寄存器中的定义是互为反向关系的,在编程时要注意。DIR控制数据的流向,为0时输出,为1时输入。PRINTn是打印机中断状态位,没有使用;INT2EN是中断允许控制位,可以不用,对这两个寄存器位不做更多说明。
2 并口扩展的方法
2.1 硬件结构
我们采用四线握手制进行通信,其连接如图1所示。
根据这种要求我们可以设计出所需要的并行接口,如图2所示。与标准并口相比,它只工作在双向方式;状态线、控制线都少一些(但是可以根据实际情况扩充);与CPU的接口采用了较为简化的设计,信号定义如下:XD[7..0]为C30的扩展数据总线的低八位,XA[1..0]为扩展地址总线的低二位,CS为片选信号,XR/Wn为扩展总线的读写控制信号,IOSTRBn为扩展总线的选通脉冲,INT为并口的中断信号输出,采用ACKn的下降沿触发C30中断,与标准并口不同(上升沿);寄存器的地址偏移量采用与标准并口相同的方式,基地址则可以由系统的设计决定。
并行接口的设计采用VHDL语言来描述,以适用于不同的PLD器件。
2.2 时序分析
下面我们描述通信过程的时序关系。通信程序在发送时采用查询方式,而接收时则采用中断方式。因为PC104与C30执行程序的速度不同,处理中断的方式也不同,因而PC104发往C30与C30发往PC104时的握手信号的时序也有一些区别,图3、图4分别是两种情况下的时序图。图中,只标出了时序的先后关系,具体的数值要遵守并口的标准并在程序调试中确定。
因为PC104的STBn的后沿(上升沿)是个斜坡(10μs左右)发送完一个字节后,要延时一段时间,待STBn稳定后,才能发送下一个字节;否则,C30的中断不能可靠触发,将造成通信的错误。发送速率为每字节15μs左右。
这种情况下限制发送速度的因素主要是PC104响应和处理通信中断的时间,对C语言编写的接收程序进行优化也可以使通信速度控制在15μs左右。
2.3 软件流程图
下面我们举一个例子来说明PC104与C30进行通信的过程。在这个调试程序中,PC104先发送一组数据,C30接受完后再返回一组数据给PC104,然后通信结束。图5、6、7、8描述的分别是PC104上的主程序、接收中断服务子程序、C30上的主程序以及接收中断服务子程序的流程图。
参考文献
1 (美国)Texas Instruments公司.TL16C552 Data Book
2 盛博公司PC104技术手册
3 (美国)Texas Instruments公司.TMS320C3X用户指南
4 李继灿,李华贵编著.新编16-32位微型计算机原理及应用.北京:清华大学出版社