综合以上三种工作状态,系统对外部存储器的要求为:读写速率高;容量大;读写可同时且异步进行。目前可供选择的存储器有双口RAM、FIFO和SRAM,其中双口RAM存储量大,而且有两套数据线, 读写可同时异步进行,但读写同时进行时它存在地址冲突问题。FIFO最大的优点是时序简单,无复杂的辅助电路,不过其存储量不大,系统仅用它来完成数据缓冲。SRAM可有很大的存储量, 读写速率高, 但读写不能同时进行,为克服它的这一缺点, 在系统中我们采用了双SRAM并行结构。如图一, 第一种工作状态下,微机首先经FIFO缓冲器将SRAM1写满, 然后, 系统在对SRAM1读取的同时微机将数据写入SRAM2,由于微机写SRAM2的速率高于系统读SRAM1的速率,在读空SRAM1之前SRAM2已被写满,当SRAM1被读空时系统即刻切换为读SRAM2(由一切换开关完成),同时微机再开始写SRAM1,以此循环。第二种工作状态下,微机首先将两片SRAM都写满,然后系统按照SRAM1SRAM2SRAM1……的顺序对两片SRAM中的数据进行反复读取。第三种工作状态下的读写过程类似于第一种工作状态,只是此时系统读取SRAM的速率高于微机输出数据的速率,在完成对一片SRAM写操作的时间内要对另一片SRAM进行多个周期的读取(不一定是整数周期), 此状态下系统的切换周期至少要等于写满一片SRAM所用时间的两倍。由以上工作过程可以看出, 双SRAM并行结构不仅保证了读写能够同时、异步、快速进行, 而且增加了波形容量, 避免了地址冲突问题。
二 用直接数字频率合成器(DDS)产生SRAM寻址计数器和DAC的时钟信号。
系统所工作的三种状态对读取SRAM的速率和DAC转换速率有不同要求:第一种状态下此速率应低于计算机输出数据速率,并满足系统对输出带宽的要求, 例如, 若过采样率为3,则产生0.3MHz带宽的信号需要的系统转换速率为0.9MBps, 而产生0.2MHz带宽的信号时此速率为0.6MBps即可; 第二种状态下系统转换速率要与输出带宽和频率分辨率指标相适合,在满足辨率分辨率小于10Hz的前提下,单片SRAM容量为5MB时此速率可在0~100MBps范围内根据输出带宽的要求作调整;第三种状态下,对输出信号特性作调整的实时性要求越强,此速率应越接近微机输出数据速率,输出频带要求越宽,此速率应越高。为了便于控制系统转换速率,我们用 DDS来产生SRAM寻址计数器和DAC的时钟信号。DDS是一种具有数控能力的的新型频率合成器,它的工作原理如图二所示:
频率控制字
图二 DDS的工作原理图
它以相位累加、幅值查表、D/A转换的方式完成频率合成,实质上是在数字域内实现分频,其输出频率由外部提供的相位累加值(频率控制字)决定。DDS的合成机理使它具有非常高的辨率分辨率(可达1Hz量级)和极快的跳频速度,故它很适用于高速变频场合。系统中DDS的频率控制字由微机提供,通过改变频率控制字可以灵活调整DDS的输出频率,从而控制系统的转换速率。
三 在采样数据已事先生成的情况下,采用DMA方式读内存。
由前面的分析可知,第一种工作状态下系统的输出带宽和第三种工作状态下系统调整输出信号特性的速度都受限于微机输出数据速率,为提高微机输出数据速率,缓解两种工作状态下的瓶颈问题,系统中采用DMA方式对微机中事先生成的采样数据进行读取。DMA方式是外设与微机存储器之间直接进行数据传输的方式,在数据传输过程中不需CPU的参与,而是在DMA控制器的控制下对外设和内存进行读或写,数据的传输速率取决于DMA控制器、微机总线及外设的速率。DMA有三种传输类型:DMA读(将内存数据读至外设)、DMA写(将外设数据写入内存)和DMA校验(一种伪传输,只对芯片内部读写功能进行校验)。它有四种传输方式:单字节传输方式、块字节传输方式、请求传输方式、多片传输方式,其中块字节传输方式是传输速率最高的一种。DMA的传输类型和传输方式可通过编程选择,系统中选用的是DMA读和块字节传输方式。微机输出数据时,首先要将数据从硬盘写入开辟好的内存中去,CPU一旦接收到DMA控制器发出的占用总线请求信号,则会在现行总线周期结束时使其地址总线、数据总线和控制总线同系统总线脱离,把总线控制权让给DMA控制器,DMA控制器在获得总线控制权后控制对内存的读取,直到读完预定的数据。
系统在DMA方式下还可以利用数据采集系统实际采集到的数据对信号进行再现。
2 系统的实现
2.1 DMA接口电路
PC/AT机的DMA控制器由两片级连的8237A-5芯片组成,它支持八个 DMA传输通道,其中有四个8位数据通道和三个16位数据通道可供外设使用,我们选用了一个8位数据通道。在DMA接口电路的设计上,我们用IDT公司的异步FIFO存储器作为数据缓冲电路。异步FIFO存储器具有输入输出两套数据线,读写速率可以不同,能够解决微机输出数据速率与向SRAM写入数据速率不一致的问题,而且数据的读写次序遵从先进先出原则,读写地址由FIFO内的地址指针确定,不需外部提供;FIFO还提供“全满”、“半满”、“全空”状态标志,利用这些标志可防止数据溢出或不足,并能够方便地控制微机与FIFO、FIFO与SRAM之间的传输,特别是系统在不同工作状态间作切换时的突发性数据传输。FIFO的存取时间为25~50ns。
基于微机的任意波形产生系统的设计与实现(二)由毕业论文网(www.huoyuandh.com)会员上传。