当前位置:首页 > 10614 - 200620703027梁璨 - 2003
第三章 采集时序控制逻辑设计
第N次采集启动I_START采集和存储读数和传输第N+1次采集启动I_STARTQ1M计数G1M进位mn?????????Q2?????????0123456触发TQ3n?????????N计数G2N进位
图 3-4 数据采集的时序波形图
1.采集和存储阶段(RAM写入数据)
由图3-3、3-4可知,当计算机通过总线接口发出采集启动信号S时,RS触发器Q1由“0”变“1”,使门G1开启,在通过G1的采集时钟fs作用下,ADC开始采集,ADC输出的数据由fs控制同步地写入RAM,每当采集、存储一个数据后,地址计数器也同时对fs进行了以此加1计数的操作,RAM地址增1,为存放下一个采集数据作准备。此外,当门G1开启后,采集次数计数器M对采集时钟fs计数,计满了设置的m个数字后,计数器M的进位信号使D触发器Q2由“0”变“1”,从此时开始,系统才可以接受触发信号T触发。当触发到来后(图中第一号脉冲),D触发器Q3“0”变“1”,门G2开启,计数器N对采集时钟fs计数,当计满了设置的n个数字后,计数器N的进位信号作用到三个触发器的复位端R1-R3,使Q1-Q3同时复位,门G1和G2同时关闭,系统停止采集和存储。
上述的采集和存储过程,是在采集时钟信号gs的驱动下进行的,采集速率由fs决定。从启动采集到停止采集的全过程来看,采集和存储到RAM中的数据,即观测的窗口,是以触发信号为参考进行定位的。数据窗口的大小不小于m+n,在触发字之前不小于m个数据,在触发字之后为n个数据,即触发字处于窗口中间。设置不同的m和n之值,他可以改变触发字与数据窗口的相应位置。
当m?0和n?0时,触发字处在数据窗口的最前端,此时为始端触发;当n?0和
27
电子科技大学硕士学位论文
m?0时,触发字处在数据窗口的最末端,此时为终端触发。
2.读数和传输阶段(RAM读出数据)
计算机从数据采集卡的RAM中读出数据,是通过标准总线进行的。计算机对RAM的每次读操作,是通过数据总线接口发出的读命令RD完成的。每发一个RD到存储器的读信号端OB,则经数据总线接口从存储器中读出一个数据传输到计算机。
RD信号从
RAM读出一个数据的同时,地址计数器对RD信号进行一次减1的计数
操作,RAM地址减1,指向了上一个单元,为读下一个数据做准备。由此可见,从RAM中读出时的存储器地址码的变化方向(减地址),与写入时地址码变化方向(增地址)是相反的。换句话说,写入RAM的顺序是从数据窗口的始端到终端,而读出RAM的顺序则是从数据窗口的终端到始端。
对于始端触发,读出从数据窗口的终端开始,连续读n次,读出的第n个数据即为触发字;对于终端触发,读出亦从数据窗口的终端开始,读出的第一个数据即为触发字,连续读到第m次,即为数据窗口的始端数据;对于中间触发,读出亦从数据窗口的终端开始,连续读出第n次数据则为触发字,再读m个数据则为数据窗口的始端数据。 3.4.2 逻辑电路的地址分配
计算机通过并口(或USB转并口)进行通信,首先应向并口地址端口分配欲访问的外设地址,然后从并口的数据端读写数据。由于计算机并口只有8位数据线,对12位、16位或更高位的数据必须分成若干字节分别传送。测试平台地址分配的电路设计如图3-5所示,每个地址系列控制实验平台上的不同测试部分。
图3-5 实验板的地址分配控制
28
第三章 采集时序控制逻辑设计
如上图所示,信号由计算机发出控制信号,通过EPP传输,然后再通过一个74138的3-8译码器实现对平台硬件地址进行分配。具体地址(其中X表示0~f)为:0XH,1XH,2XH,3XH,4XH,5XH,6XH,7XH。而在我所设计的频谱分析仪当中,用到的控制地址主要是系统参数设置0XH、采集部分控制地址2XH。下面分别来说明这几个部分的控制和逻辑关系。 3.4.3 采集通路的参数设置电路
在整个数据采集和缓存的过程中,有很多控制参数要预先进行设置,如采集通道的增益选择、交直流耦合方式选择、触发源的选择、采集点数的设置等。因此,需要对很多外部器件或者FPGA内部的锁存器、触发器等单元进行操作,如果只是简单的用微控制器的通用I/O口来进行控制,是远远不够用的。本设计中,在FPGA内对其中的3根地址线A0,A1,A2进行全译码,就得到了8组不同地址的控制信号。这样,微控制器就可以将这些器件或者逻辑单元当作外部扩展存储器,使用读/写外部存储器的指令对这些器件或者单元进行读/写操作了。图3-6的就是通道的采集端的参数设置电路,其他参数设置电路也是类似此设计方法。
图 3-6 采集公共端参数设置电路
如上图,通过EPP产生的控制信号A0,A1,A2以及采集部分的控制地址组3XH
和EPP的数据选通信号nDatastb(其中nDatastb低电平有效),实现译码功能。它主要是通过74138译码器分别产生了下面几组地址如表3-1所示: 表3-1 采集公共端的地址分配 MCU地址 30H 31H 32H 33H
通道的DC偏置 数据输入使能 通道的DC偏置串行数据输入位 29
地址单元描述 通道垂直分辨率的增益控制字 通道的输入端耦合方式 电子科技大学硕士学位论文
35H 36H 37H 通道的DC偏置串行数据输入时钟 通道的读数地址(包含数字模式的低位) 数字模式的高位读数地址 采集部分参数的地址组通过这个译码电路得到表3-1所示的详细地址分配,而其余的电路也如同此方法类似。
如图3-6中所示,地址30H是通道的采集信号的垂直分辨率的控制字,它共有7个档位,也就是有7组不同的增益值;地址31H的ac_1是通道的耦合方式,当这个地址送入的值为1时,电路处于交流耦合状态,反之为直流耦合状态;地址32H是表示是否允许DC偏置;而地址33H是DC偏置串行的数据输入位;地址34H则是DC偏置串行数据输入时钟;地址36H是通道的读数地址,其中包含了数字模式的低7位;而地址37H则是它的高位读数地址。
通过采集控制电路发送地址控制信号后,将采集到的数据送入到下一级的电路当中,进行相应的处理。 3.4.4触发控制电路的设计
采集端分配得来的触发地址TRI(28H)将其连接到一个锁存器上,以此来得到1组触发控制字startq[2..0](如图3-7),通过这组控制字实现对多种触发方式的选择。
图3-7 触发控制字
在本实验平台上的触发控制共设计了8种方式,它通过触发控制字start_q[2...0]来实现对触发方式的控制;而在本课题中,触发控制只使用了时钟提供的同步触发方式。不过对于通用测试平台来说,触发方式不仅仅局限于此。对于8种不同的触发方式我们通过在FPGA中的逻辑控制来实现,主要是通过触发控制字startq[2..0]来选择不同的触发功能,如图3-8所示。
30
共分享92篇相关文档