以文本方式查看主题 - 曙海教育集团论坛 (http://sun4.cn/bbs/index.asp) -- DSP系统和硬件开发讨论区 (http://sun4.cn/bbs/list.asp?boardid=5) ---- 基于DSP通用随机数测试仪传输接口的设计 (http://sun4.cn/bbs/dispbbs.asp?boardid=5&id=1315) |
-- 作者:wangxinxin -- 发布时间:2010-11-13 12:23:08 -- 基于DSP通用随机数测试仪传输接口的设计 摘 要 对伪随机序列在工程中的应用进行了简要的介绍,阐述了基于TMS320VC5402开发通用随机数发生器与外设通信的接口设计, 给出了硬、软件设计的具体方法和思想。 关键词 随机数发生器,TMS320VC5402,ISP1581,USB接口,RS232接口,D/A转换 Design of Transmission Interface of Universal Random Test Apparatus Base on DSP Xu Zhengyan Han Yueqiu (Department of Electronics Engineering,School of Information Science and Technology,Beijing Institute of Technology,Beijing 100081) Abstract In this paper,a brief introduction about the application of pseudorandom number in engineering,a communication interface design of Universal Random Test Apparatus base on TMS320VC5402 are described,and idiographic methods and idea of hardware、software design are provided. Keywords Random Number Generator,TMS320VC5402,ISP1581,The Interface of USB,The Interface of RS232,The Conversion of D/A 1 引 言 随机序列或伪随机码的应用范围非常广泛,在通信(包括扩频通信、卫星、保密通信和常规通信等)、雷达、导航、遥控、测量以及自控等领域都有着重要的应用。如雷达接收机的热噪声功率谱呈白色,幅度近似于高斯分布;均匀分布的随机数广泛应用于电路内系统性能测试及统计处理中;指数分布随机数广泛应用于数据传输及电子测量中;瑞利分布随机数广泛应用于通讯系统。因此,随着科学技术的发展及知识的更新,随机序列的应用显得尤为重要。本文着重于开发通用随机数发生器与外部设备的通信接口设计,以使随机序列在工程中得到广泛的应用。 2 整体设计方案及测试仪的功能简介 本设计中利用FPGA实现的通用随机数发生器具有以下的性能指标:一是随机数的实时性好,数据吞吐率高达133×4Mbyte/s;二是合成的随机数具有超长周期再重复,周期长度能达到248个时钟周期,比计算机合成的随机数周期长220倍;三是精度高,均匀分布随机数与指数分布随机数的精度达到15位,瑞利分布随机数精度达到14位,高斯白噪声的精度也达到13位;四是可靠性高,通过一个芯片解决了以往在雷达回波模拟中只有PC才能解决的难题,除占用PCB面积小外,可靠性也优于PC机。其系统结构见图1。 既然伪随机序列在通信和雷达等工程中的作用非常突出,因此,为实现通用随机数测试仪的最大通用性,在通用随机数发生器产生多种分布的伪随机序列基础上,还需设计灵活的外围设备接口。本设计正是以此为重点,开发通用随机数测试仪的USB接口、RS232接口,并满足视频输出的要求。例如信号经数模转换、低通滤波后,可还原成系统需要的模拟信号, I、Q两路正交输出的视频信号,可供雷达接收机作为噪声的模拟源。 3 各接口的实现 3.1 USB接口的实现 本设计中选择TI公司生产的TMS320VC5402作为主控制器,Philips公司生产的ISP1581作为USB 接口器件。 TMS320VC5402是TI公司生产的低功耗、高性能的DSP芯片,有如下的性能特点:①处理性能好,运算速度达100MIPS/s; ②优化的CPU结构,内含有一个40位的算术单元,包括40位的桶形移位器和两个独立的累加器,一个17位的乘法器,有4条内部总线和2个地址产生器;③低功耗,可以在3.3V I/O电压和1.8V内核电压下工作;④智能外设,具有标准的串行口、时分复用(TDM)串行口,多通道带缓冲串行口McBSP和与外部处理器通信的HPI接口;⑤内部有16K片内RAM和4K片内ROM。 USB协议层的相关通讯协议通过ISP1581接口芯片来实现, 作为高速USB 接口器件,ISP1581不仅具有一般USB设备具有的特点外,还具有许多自身的特点,主要结构特点和性能如下:①ISP1581同大部分的微处理器/控制器有单独的接口,接口由管脚BUS_CONF、MODE1和MODE0共同设置;②内部含有两种总线结构配置,即通用处理器工作模式和断开总线工作模式,上电时由输入管脚(BUS_CONF)进行选择;③ISP1581和外部存储器设备之间的大带宽的数据传输是通过集成的DMA控制器来完成的。通过“写”对应的DMA寄存器来配置DMA接口;④ISP1581支持高速和最初USB规范的信道,USB信道速度的检测是自动完成的;⑤可通过软件控制与USB总线的连接、可内部上电复位和低电压复位,也可通过软件复位。正是VC5402和ISP1581的低价格及高性能的优势,本设计选择它们作为主处理器和USB 接口器件。其硬件原理如图2(a)、(b)所示。 因DSP对I/O设备的访问对象为通用随机数发生器、USB接口芯片ISP1581的访问,故ISP1581的片选信号可由反相后的地址线A08与DSP的I/O空间片选信号,IS相或后的信号来控制。ISP1581读信号由反相后的读写信号R/W与DSP的I/O访问选通信号IOSTRB相或后所得的信号控制,写信号则由读写信号R/W与DSP的I/O访问选通信号IOSTRB相或后所得的信号控制。ISP1581的中断INT与DSP的可屏蔽中断INT1直接相连。将DSP的多通道缓冲串行口信号BDX0配置为通用输出口控制ISP181的唤醒信号WAKEUP。12MHz的晶振和两个20pf的电容组成ISP1581的时钟基准电路。 ISP1581的固件程序可分为主循环程序、中断服务程序和请求处理程序。主循环程序的主体是个无限循环,只专注于数据处理,循环查询一些标志,确认标志有效则进入对应子程序的处理;中断服务程序处理ISP1581的硬件中断,根据中断原因的不同设置不同的标志,以最大可能速率进行数据传输;请求处理程序对标准设备和厂商请求处理。 主循环程序设计中将寄存器地址映射到I/O空间,对寄存器的读写改为I/O读写方式。通过写索引寄存器选中端点,然后对数据端口寄存器进行读写。为让USB有更多的时间处理其它需要及时响应的中断,提高数据传输率,可在主循环程序中编写端点读写的程序。 中断服务程序中需要处理的中断有setup中断、sof、唤醒、挂起、高速状态检查、端点的中断。在setup中断中首先读setup包的内容,设置标志位,主循环查询到不同的标志后,执行相应的请求处理程序。端点0中断中,除读写数据外,还需给主机发送不同情况的握手信号。 请求处理程序负责处理枚举阶段主机发给设备的标准请求,以及正常工作时主机发送的厂商请求。 3.2 异步串行口的实现 本设计中,伪随机序列可通过异步串行接口(UART)与其它设备进行通信,实现其在各项目中的广泛应用,也可将其送至计算机存储和显示。可利用计算机应用程序丰富的图形界面,良好的人机接口,通过计算机显示的图形画面可进一步验证以及调整随机数发生器合成的随机数的分布。 数据通信方式有并行和串行两种,串行方式又分同步串行和异步串行。由于异步通信使用方便、简单,硬件设备价格也低,并允许作不定时的发送,所以应用广泛。异步串行通信的帧格式以字符为单位,字符数据可以是5至8位,典型应用为8位,数据低位在前,高位在后,在每个字符前必须有一个逻辑“0”的起始位,数据位后可能有一个奇偶校验位,以判断接收到的数据的正误。最后定义1位、1.5位或2位为逻辑“1”的停止位。其硬件原理如图3所示。 在RS-232C协议中,逻辑“0”定义成正电平(+3~+15V),逻辑“1”定义成负电平(-3~-15V)。而DSP芯片管腿采用的电平为TTL电平,故DSP芯片想要与RS-232C接口相连时,必须将TTL电平信号转换成RS-232C电平信号才能连接。本设计中选用MAX232芯片当作电平转换接口,来提供RS232所需的接口电压电平。 因TMS320C54X系列DSP芯片没有提供标准的UART接口,故本设计中利用通用的I/O口线XF和BIO构成串口,用软件来设定波特率,用最少的硬件资源来实现通用异步接受和发送。DSP通过XF管脚向RS232发送串行数据,通过BIO管脚接收来自RS232接口的串行数据,且BIO和INT0相连,可以避免频繁检测接收管脚的电平。每当接收端接收到第一个低电平,认为是接收字节的开始位,每次在每个比特的中间位置判决电平,可最大限度地防止误判的发生。其软件框图如图4所示。程序用C语言实现,在开启定时器至定时器中断响应这1比特的延时等待函数可用while循环实现。首先设一个标志FLAG=‘F’,在中断响应函数中置FLAG=‘T’,主函数中用while循环一直等待FLAG变为‘T’,如检测到FLAG变为‘T’,则可知一比特定时时间的结束,同时在while循环中将FLAG变为置为‘F’,准备下一次的定时。在int0中断响应函数中,有一点很关键,在关闭int0中断的同时不能将定时器中断关闭,以免在接收函数中无法实现定时器的定时;开启定时器时也切忌将int0中断打开,以免一个数据未结束又重新进入int0中断。 3.3 D/A转换的实现 通用随机数发生器与DAC(AD9713BAN)是通过随机数发生器的并行I/O接口来实现数据交换的。AD9713B是AD公司生产的特殊用途的数模转换器,其性能指标为:100MSPS、12-bit、ECL/TTL兼容、SFDR@1MHz、70dBc、快速27ns建立时间、725mW低功耗、单极性输出、边沿触发、内有参考电压和缓冲运放、输入是直接的二进制码格式。D/A转换的硬件原理如图5所示。 AD9713的锁存使能信号由通用随机数的异步读信号控制,当随机数发生器芯片内全部计算单元处在激活状态产生随机数时,且AD9713的锁存使能信号(LATCH ENABLE)低有效时,数据写入DAC,进行数模转换。本设计中还使用运放AD8056构成增益调整电路。 4 系统设计时应注意的几个问题 不论哪一种电源结构都存在噪声问题,都需要进行滤波,通常由旁路去耦电容来完成。旁路电容的主要作用是产生一个交流分路,从而消去进入易感区的那些不需要的能量。任何电容都有一定的频率响应特性,为滤除系统的高频和低频噪声,增大滤波范围,应将一个低ESL(等效串联电感)的大电容器与一个很低ESL的小电容并联起来使用,可以提高滤波频率范围,并且应尽可能使他们放在靠近电源输入处以帮助滤除高频噪声。 高速模拟信号易受数字地回路噪声的影响,特别是模拟数字混合系统要注意接地问题,除了电源端一点相接外,数字地和模拟地应分开。比如,放大器会把开关数字噪声放大,造成错误输出。 对于大多数微处理器,高阻输入引脚易受到噪声的影响,并且在非正常终端时会引起寄存器锁存错误的电平。一个非内部终端的输入引脚需要有高阻抗(例如4.7kΩ或10kΩ)连接每个引脚到地或到供电电平,以确保一个可知的逻辑状态,由于中断引脚和复位引脚是元件中最敏感的引脚之一,故需考虑噪声的影响。本设计对DSP中未使用的敏感引脚如INT2、INT3、NMI在接上4.7K的电阻后都连接到供电电源。 在一个系统设计中不可避免地会使用不同供电电压的模块和许多不同逻辑标准的器件,因此,在硬件设计时还需解决不同的逻辑电平信号间的接口问题,如上述的MAX232电平转换芯片就是一个例子,又如当1.8V的数字电路与工作在3.3V的模拟电路进行通信时,需要首先解决两种电平的转换问题。 5 结束语 为实现随机数测试仪在工程应用中的通用性,已设计了测试仪灵活的外围设备接口。通用随机数测试仪的USB接口,RS232接口以及D/A转换模拟输出经实践证明它是完全可行和可靠的。 |