利用单片机解决双异步串口与DSP处理器HPI口通信的问题

时间:2011-09-04

  摘要:文中提出了两个微机串口与DSP处理器(TMS320VC5402)HPI(Host Port Interface,主机接口构成)口通信问题的解决方案,该方案采用了单片机(AT89C2051)实现数据的串/并、并/串转换,并控制DSP的HPI实现共享总线。给出了硬件连接电路和用FPGA(即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物)作为总线仲裁器的设计思路,介绍了HPI口的操作过程,单片机与微机串口之间通信的硬件设计方法。

  DSP,数字信号处理(Digital Signal Processing)是一门设计许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。

  本文所介绍的是我所正在研制的卫星CDMA接收机未端DSP与微机串口通信的接口电路。由于CDMA接收机支持两个独立CDMA信道的接收,并将两路解调后的数据分别经串口送至不同的计算机做后续的处理,所以接收机需要带两个RS232接口。RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。 该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。

  微机的异步串口与DSP处理器通信的方法通常有三种,种方法是采用异步通信芯片扩展串口,如用TI公司的TL16C550完成数据的串/并、并/串变换。由地TL16C550提供了丰富的控制管脚和应答信号,对其只需设置一些寄存器就可以进行灵活的控制,因此编程比较简单,但是对其数据的读取或者写入则需要用到DSP的数据总线。第二种方法是将DSP的I/O口XF和BIO,或者将DSP的McBSP口用软件模拟成异步串口。用这种方法,虽然DSP与微机串口之间无需串/并变换器件,硬件构成也十分简单,但是用这种方法DSP的编程就显得比较复杂,用I/O口线模拟串口需要占用两个定时器资源,并且只有在DSP操作不繁忙的情况下这种方法才可行。第三种方法是用单片机实现数据的串/并、并/串转换。较之种方法,这种方法增加了对单片机的编程,但单片机可以作为控制器操作DSP的HPI口,对DSP存储器的数据上发可完全由单片机发起,DSP几乎不需要作任何操作,也不需要用到数据总线。在DSP处理过程复杂、运算量大的情况下,这种方法特别有用。

  在本系统中,我们采用的DSP处理器是高性能、低功耗的TMS320VC5402,用以实现系统的MAC层控制和数据的编码、解码工作,因此处理器的工作量非常大。另外DSP数据总线需要与作为基带处理器的FPGA芯片(APEGEP20K600E)交换数据,为了避免引入额外的控制逻辑实现与数据总线重复使用,采有单片机控制HPI口的方法去实现DSP与双串口的通信。考虑到FPGA芯片的存在以及节省成本,系统并没有采用价格昂贵且需用仿真器开发的双串口单片机(如DS80C320),而是采用两片AT89C2051,并借用物理层FPGA的冗长资源作为总线仲裁器来实现同样的功能。

  1 TMS320VC5402 HPI口结构

  TMS320VC5402上的HPI口是增强型的8bit主机接口(Enhanced 8 bit host port interface),专门用于与主机进行通信,通过它主机可以访问TMS320VC5402片仙16K的RAM空间。这一接口由一个8bit的双向数据总线和不同的控制管脚组成,能够支持按高、低字节传送16bit数据。TMS320VC5402提供三个跟HPI操作相关的寄存器--地址寄存器HPIA、数据寄存器HPID和控制寄存器HPIC。TMS320VC5402只能访问控制寄存器,而主机则对这三个寄存器都可以访问。主机欲随机访问TMS320VC5402的片内RAM,需要先发送一个16bit地址到HPI地址寄存器(HPIA),然后通过数据寄存器(HPID)访问该地址所指向的存储单元。主机欲连续访问一段RAM空间,则要先送该段的自地址到HPIA,然后以地址自动加一的方式访问,即主机每访问一个存储单元后HPIA自动指向下一个单元。

  HPI接口还提供了中断逻辑同主机进行软件握手。主机可通过对控制寄存器HPIC的第二位(DSPINT)置1中断DSP芯片;DSP芯片可通过对HPIC的第三位(HINT)置1中断主机,此时HPI的引脚HINT被置为低电平,从而向主机发出中断请求;主机还可设置HPIC的位HINT为1使HINT脚回到高电平,从而清除中断信号。

  下面给出了HPI口相关的管脚说明:

  HD0~HD7是8位双向数据线,与单片机P1口相连,用于交换数据,双向并行三态数据总线。当不传送数据(HDSx或HCS=1)或EMU1/OFF=0时,HD0~HD7均处于高阻态。

  HCNTL1/0的组合用于选择主机所访问的HPI寄存器。主机控制信号,用来选择主机所要寻址的寄存器。当HCNTL1/HENTL0为00时,表明主机访问HPIC;当为01时,表明主机访问用HPIA指向的HPID,每读,HPIA事后增加1,每写,HPIA事先增加1;当为10时,表明主机访问HPIA;当为11时,表明主机访问HPID,而HPIA不受影响。

  16bit数据传送时,HBIL为0表示传送的是字节,为1表明传送的第二字节,其中高8位在第几个字节由HPIC中的BOB位决定。

  HR/W指明当前对HPI的操作是读还是写。高电平表示主机要读HPI,低电平表示写HPI。

  HAS、HDS1/2、HCS用于锁存上述控制信号。HPI提供两种锁存方式,一种是由HAS(主机地址锁存信号)的下降沿锁存各控制信号;另一种是由后三者共同完成,HCS为HPI的选通信号,接低电平,HDSI和HDS2中的任何一个的下降沿锁存各控制信号。我们采用第二种方式,即HAS不使用,始终接高,HCS和HDS2接低,控制信号的锁存由HDS1的低跳变来完成。该锁存信号还指示了HPI口操作过程的开始。

  HRDY为HPI准备好指示,高电平表示HPI已准备好执行数据传送;低电平表示HPI正忙于完成当前事务,用于连续高速主机。

  HINT为DSP向主机发出中断的引脚,HPI中断输出信号,受HPIC中的HINT位控制。

  HPIENA为HPI使能控制信号,若系统选中HPI则将它连到高电平,否则悬空或接低电平。

  2 单片机的I/O口分配、连线和程序设计

  2.1 单片机I/O口分配

  单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

  在本系统中,由于考虑到板子的面积问题,因而选择了体积小的AT89C2051单片机,并省去了P0和P2口,增加了一个精密的模拟比较器,P1.0和P1.1除了作为I/O口(需外部电阻上拉)外,还同时作为比较器的正负极输入,而P3.6则专门用作比较器输出。因此AT89C2051提供了15根双向I/O口线,除去P3.0和P3.1用作异步串口和P1.0~P1.7用作与HPI口数据总线通信外,还有5根I/O口线是可用的。由于还需要控制HPI口的各控制信号和与DSP的握手信号,剩下的5根I/O口线显然不够,所以还在FPGA里设计一锁存器,把P1口当作控制/数据复用口。具体的I/O口信号分配如下:

  P1.0~P1.7接HPI口的数据线HD0~HD7。当作控制信号复用时,

  P1.0接FPGA内锁存器的锁存信号;

  P1.1经FPGA锁存,控制HCNTL0;

  P1.2经FPGA锁存,控制HCNTL1;

  P1.3经FPGA锁存,控制HBIL;

  P1.4经FPGA锁存,控制HR/W;

  P3.2接HPI的HINT;

  P3.3接HPI的XF;

  P3.4接HPI的HRDY;

  P3.5为单片机请求发送信号,接FPGA的P3.5;

  P3.7经FPGA控制HDS1,锁存HPI的各控制信号

  图1给出了HPI接口与两片AT89C2051之间的连接图。

  2.2 单片机程序设计要点

  单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板。但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别。只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性。

  上面讲到,P3.5作为单片机的发送请求信号,当天数据发送时为高电平,当为低电平时则表示单片机想要发送数据,向总线仲裁器申请使用总线,总线仲裁器判断当前谁可以使用总线,然后通过外中断0中断DSP处理器,同时通过BIO口告知DSP当前可以使用总线的单片机,终由DSP通过XF管脚集中控制单片机的总线使用权。单片机在获取总线使用权并送完数据后,向HPI的控制寄存器的DSPINT位写1,用中断通知DSP。在单片机需接收数据时,DSP首先设置XF脚,选择由哪个单片机接收,然后设置HINT脚为低,通过中断告知单片机进行接收。单片机从HPI口接收时也应置P3.5为低,以便保持总线仲裁器的单片机选择信号BIO与XF脚一致。

  在对单片机编程时需要注意以下几点:(1)由于两个单片机共享总线,为保证相互之间不会干扰,没有使用总线的单片机P1口必须处于高阻态。根据P1口的内部结构,单片机不使用总线时,往P1口的内部结构,单片机不使用总线时,往P1口写入0xFF即可达到这一目的。(2)由于P1口作为控制/数据信号复用口,故编程时,对每次HPI口操作,先在P1口送出控制信号,接着设置P1.0产生低→高的跳变,把控制HPI口的P1.1~P1.4信号锁存到FPGA内部的锁存器,这时P1口才能作为数据端口,在P3.7产生一低跳变后,发起数据传递。(3)编程时,应防止单片机被同时要求对HPI口进行收、发操作。这可以依据实际情况,灵活地进行处理,考虑篇幅的关系,这里将不再叙述。

  3 总线仲裁器的设计

  总线仲裁器的功能主要是根据单片机P3.5的总线请求信号,选择当前可以使用总线的单牒同,仲裁器的设计需做到单片机能够公平竞争总线使用权。在两个单片机竞争总线的情况下,用一个简单的状态机即可达到目的。状态机state仅有两个状态S0和S1,P3.5为高电平时,不申请总线,状态机保持原来的状态;P3.5为低电平时,则根据当前请求总线的单片机,状态机转换相应的状态。如单片机同时申请使用总线,则保持当前的状态不变。下面给出状态转换表(S0表示选择单片机1,S1表示选择单片机2):

  state, MCU1_P3.5, MCU2_P3.5 =>state;

  S0, 0, x =>S0;

  S0, 1, 0 => S1;

  S0, 1, 1 => S0;

  S1, x, 0 => S1;

  S1, 0, 1 => S0;

  S1, 1, 1 => S1;

  当状态机有状态变换时,用FPGA产生一个脉宽约为1μs的低电平脉冲。这一信号接DSP外中断INT0脚,用于中断DSP,并且将状态机的当前状态通过BIO脚告知DSP,指明正在请求使用总线的单片机。

  除此之外,如前面所述,FPGA内部还设置一锁存器,由P1.0的高跳变将P1口送出的HPI口控制信号锁存。至于控制HDS1的两个P3.7信号,在FPGA内部只需将两信号相与即可。

  4 单片机与微机串口的硬件连线

  在IBM PC/XT微机系统中,其串口符合RS-232C接口标准。为提高抗干扰能力,RS-232C标准采用负逻辑,低电平在-5V~-15V之间(通常用-12V表示)为逻辑"1",高电平在+5V~+15V之间(通常用+12V表示)为逻辑"0"。上述电平称为EIA电平,它与TTL电平和CMOS电平不同。为了使AT89C2051能与微机进行串行通信,可以利用MAX232完成RS-232C电平与TTL电平的相互转换。硬件连线图在上图2中已给出。

  单片机程序在完成对串口的工作模式和波特率设置等初始化过程后,即可开始与串口通信。通信方式有查询方式和中断方式两种。由于查询方式需CPU不断查询标志位,程序效率低,故在单片机操作比较繁忙的时候通常采用中断方式,具体的编程应用这里将不再介绍。

  单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’这个单元,并且在‘0000’单元中存放的一定是一条指令。单片机是器件级计算机系统,它可以嵌入到任何对象体系中去,实现智能化控制。

  FPGA是现场编程门阵列器件。它和DSP集成在一块芯片上,可实现宽带信号处理,大大提高信号处理速度。据报道,Xilinx 公司的Virtex-II FPGA对快速傅立叶变换(FFT)的处理可提高30倍以上。它的芯片中有自由的FPGA可供编程。Xilinx公司开发出一种称作Turbo卷积编译码器的高性能内核。设计者可以在FPGA中集成一个或多个Turbo内核,它支持多路大数据流,以满足第三代(3G)WCDMA无线基站和手机的需要,同时大大节省开发时间,使功能的增加或性能的改善非常容易。

  在本文中介绍了通过FPGA芯片作为总线仲裁器,实现微机双串口各自通过AT89C2051与DSP HPI口通信的设计方案。该电路与采用专用芯片的电路相比,显得并不复杂,并且比较实用。由于与DSP存储器之间的数据交换完全是由单片机发起的,因此DSP就可以从数据的传送中解脱出来,去完成更复杂的控制和运算。实际应用证明,这一电路能够很好地达到我们的设计要求,在异步数据传输速率为9600bps情况下,可以可靠地实现微机双串口与DSP之间的通信。


  
上一篇:威盛返CPU市场拟与国内厂商合作
下一篇:TI专注于推动IEEE 1149.7 新标准的开发与

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料