PCPCPCPC机与机与机与机与DSPDSPDSPDSP之间的并行通讯技术之间的并行通讯技术之间的并行通讯技术之间的并行通讯技术王晓慧吴庆洪(鞍山科技大学电子与信息工程学院,辽宁鞍山114044)摘要摘要摘要摘要:对PC机在EPP模式下与C6000系列DSP的HPI口之间进行的并行通讯进行了研究,提出了用EPP协议和CPLD实现DSP与计算机并口的双向高速数据传输的方法并给出了技术解决方案。通过HPI口PC机可实现直接访问DSP的存储空间(包括映射的片内外设),并实现对DSP存储空间的读、写功能,同时在高级语言下完成了对DSP应用系统的在线监控。该电路设计已成功应用到信号处理系统中,并可以应用到利用并口进行通讯的其他课题中。关键词关键词关键词关键词::::EPP;并行通讯;DSP;HPI中图分类号中图分类号中图分类号中图分类号::::TN41,TP33TheParallelCommunicationBetweenPCAndDSPWANGXiaoHui,WUQingHong(SchoolofElectronicsandInformationEngineering,AnshanUniversityofScienceandTechnology,Anshan114044,China)Abstract:ThispaperintroducestheparallelcommunicationbasedontheEPPmodebetweenPCandDSP’HPIportandamethodofhighspeedbi-directionalparallelcommunicationbetweenDSPandparallelinterfaceofPCbyEPPprotocolandCPLD,andthetechnicaldesignsolutionisgivenindetail.PCcandirectlygetaccesstothememoryofDSP,includingmemory-mappedperipheralonchip,andreadfromorwritetoit.ThemeanshasbeensucceedintheDSPsystemandcanbeusedinothersubjectwithparallelcommunication.KeyWords:EPP;parallelcommunication;DSP;HPI1111概述概述概述概述目前,在工业应用的各种控制系统和实验室中,串口是常用的计算机与外部系统之间的数据传输通道。由于串行通讯简单易行,所以应用广泛。但是由于串口一次只能传输一个位,所以串行通讯在实时性、数据量、速度等方面受到限制。而计算机的并口可以一次传送8个位(一个字节)或更多,速度要比串口快很多,因此在许多要求较高传输速度的系统中,并行通讯被广泛采用。DSP(DigitalSignalProcessor)是一种特别适合于进行数字处理运算的微处理器。随着DSP芯片的广泛应用,PC机与DSP之间的高速数据传输成为电路设计中一个不可避免的问题。本文论述了并口在EPP模式下基于CPLD和DSP模块之间的高速数据交换的原理,并讨论了实现方案。2222并口的并口的并口的并口的EPPEPPEPPEPP模式模式模式模式EPP协议是一种与标准并口(SPP)兼容并能实现双向数据传输的协议。该协议可支持字节的双向传送,并能在一个ISAI/O周期内完成,传输速率与PC总线相当,可高达2MB/S的传输率。它有4个数据传输周期:数据写周期、数据读周期、地址写周期和地址读周期。数据周期用于主机与外设之间的数据传输,地址周期一般用于传输地址、通道、命令和控制信息。在实际操作中,二者并没有太大区别,几乎可以把地址周期看作是另外一种的数据周期。表1给出了EPP协议中各引脚的信号定义与描述。EPP信号名EPP信号方向EPP信号描述对应引脚NWrite输出低电平写,高电平读1NDStb输出低电平表示数据读写操作14NAddStb输出低电平表示地址读写操作17nReset输出低电平外设复位16nIntr输入外设请求中断10nWait输入低电平进行数据通信11AD0~AD7双向双向数据/地址线2~9下图1、2分别是EPP数据读/写周期的时序图,EPP地址读/写与数据读/写周期基本相同,唯一区别就是把图1、2中的nDataStb换为nAddStb.图1EPP数据读时序图图2EPP数据写时序表2EPP寄存器及其功能寄存器偏移地址功能SPP/PS2数据0读入或写入数据线SPP/EPP状态1读取5根数据线,在EPP模式中附加位(0)指示超时EPP控制2读取或写入4根控制线,还包括启用中断配置位和字节模式方向控制位EPP地址3读取或写入数据线,有握手信号,地址周期EPP数据4读取或写入数据线,有握手信号,数据周期前3个寄存器与SPP中的数据、状态、控制寄存器基本相同,用来兼容SPP传输。对于EPP传输来说,接口还用到了附加的寄存器。在EPP模式下写一个数据字节,需要将数据写入EPP的数据寄存器(基地址+4),而不是写入基地址。对EPP数据寄存器的写操作将导致接口开启一个完整的数据写入周期。接口的硬件把待写数据置于D0~D7,然后接口将自动触发握手联络信号,并检测外设的应答。读取一个字节的过程与此类似,对EPP数据寄存器进行读写操作将引发一个完整的数据读写周期。地址的传输过程基本也是这样,但需要写入或读取的是地址寄存器(基地址+3),并随即完成整个地址读写周期。其中地址的读写周期与数据读写周期基本是一样的,唯一不同点就在于地址周期使用的是nAddStb控制信号向接收设备传送字节。EPP的基地址(BASE)通常是378h或278h,接口所使用的地址为378h~37Fh,或者使用地址278h~27Fh。EPP模式支持4种操作,分别是地地址写入、数据写入、地址读取和和数据读取。每一种操作使用是不同的联络信信号。需要注意的是在访问EPP寄存器和开始进行传输之前,控制端口位/C0、/C1、/C3必须处于高电平状态。由于接口硬件对这些位进行了倒相,因此为将它们置高,需要向相应的寄存器位写入0。3333C6000的的的的HPI接口接口接口接口TMS320C6000系列的DSP提供了16位或32位的增强型HPI接口,本系统采用的是TMS320C6711为例做详细介绍。6711的HPI口是由16位的数据总线和用于设置和控制接口的控制信号线组成。HPI的时序图及外部接口信号分别如图3所示。图3HPI的读/写时序由于C6000的HPI口是16位的数据总线接口,但C6000系列的DSP是32位的,所以与主机通信的数据都是由两个连续的halfword(2Byte)组成。HHWIL管脚指示正在传输的是第一个还是第二个字,并分别表示为低/高电平。主机采用HCNTL[1:0]来指定要访问的是HPI的控制寄存器HPIC还是HPI的数据寄存器HPID或是HPI的地址寄存器HPIA,也可以用地址自动增加的方式访问数据寄存器HPID,具体方式见表3所示。HPI有两个数据选通信号HDS1/2,读写选通信号HR/W及地址选通信号HAS,这几个信号在功能上非常相似,只是在时序上有所差别,主要是为了满足与不同工业标准处理器的接口需要。实际上HDS1、HDS2和HCS信号在片内组合为一个低有效的HSTROBE信号,分别在下降沿初始化HPI的读操作和在上升沿初始化HPI的写操作。另外还有HRDY信号允许在和高速主机通讯时插入等待状态。上述特点使HPI可以方便的与工业标准的主机接口。表3HCNTL[0:1]的功能选择HCNTL1HCNTL0说明00主机读写HPI的控制寄存器HPIC01主机读写HPI的地址寄存器HPIA10主机以地址自增方式读写HPI的数据寄存器HPID,HPIA在操作后自动增加一个word地址11主机读写HPID的数据寄存器HPID,HPIA不受影响主机对HPI进行访问时,首先完成对外部接口部分的操作,即先初始化HPIC寄存器,然后初始化HPIA寄存器,再从HPID寄存器中读取或写入数据。在任何数据读写之前应完成对HPIC寄存器中的HWOB位和HPIA的初始化。因为HWOB控制传输的第一个16bit是MSB还是LSB,只能由主机修改该位的设置。一般DSP的初始化程序中对HPIC进行初始化后就不用再对HPIC操作了,其余的工作就由主机完成。通过HPI接口,主机和C6000之间可以相互发送中断请求。主机通过HPIC寄存器的DSPINT位来中断CPU,而CPU可以通过HPIC寄存器的HINT位发中断请求到主机。4444EPPEPPEPPEPP与与与与HPIHPIHPIHPI的接口的接口的接口的接口本系统采用可编程逻辑器件XC95144XL-TQ100实现接口逻辑和控制逻辑,由于EPP并口只能进行8位的读写操作,而C6000的HPI是16位的总线,因此若要进行通信,必须设计好组合逻辑,所以我们采用CPLD来实现接口时序。具体的接口时序如图4所示。由于EPP是每次传输8位数据,而HPI口则处理16位数据,所以在主机读/写HPI时要分别用到两个数据锁存器与数据缓冲器,分别暂存16位数据的高低8位。在接口电路中,我们用到一个12进制的计数器,EPP的DSTROB和ASTROB分别图4EPP与HPI接口时序(写时序)作为计数器的计数脉冲和清零信号,在输出Q0的上升沿和下降沿分别锁存低/高8位数据,并且在HCS的下降沿一起将16位数据送给HPI口。输出Q1作为HHWIL信号,而Q2:Q3作为HCNTL[0:1]信号,要实现对连续地址的访问需要改变信号HCNTL0、HCNTL1,所以在依次访问完HPIC、HPIA之后,HCNTL0和HCNTL1应固定在01上,实现对HPID地址自增方式的访问。即HCNTL[1:0]的变化范围为:00011000。在/WRITE的下降沿启动写时序,在/DSTROB的下降沿送一个字节到PD端,待第2个/DSTROB的下降沿到来时一起将16位数据送到HD端,完成第一个半字的传输。5555结论结论结论结论HPI口的应用极大的方便了主机与DSP系统的数据交换,使在线修改DSP存储器的数据成为可能。该方案灵活、简单,很有实用价值。参考文献参考文献参考文献参考文献::::1霍晓方.用增强并口EPP协议扩展计算机ISA接口.电子技术应用,2000(6)2JanAxelson.ParallelPortComplete,LakeviewResearch[M].MadisonUSA,1999.267-277.3TI.TMS320C6000PeripheralsReferenceGuide.2001,7:2-41.4李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用.电子工业出版社,2003.作者简介作者简介作者简介作者简介::::王晓慧,女,1981年生,硕士在读,主要研究方向为数字图像处理、模式识别。吴庆洪,男,1968年生,博士,硕士生导师,副教授,主要研究方向为图象处理应用、智能仪表、数字信号处理、模式识别。第一作者:王晓慧地址:辽宁鞍山科技大学电信学院信息工程研究中心邮编:114044E-Mail:binggaogui@163.com电话:0412-5929748