微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的高速信号测试接口板的实现

基于单片机的高速信号测试接口板的实现

时间:03-31 来源:互联网 点击:

,若结果为低电平,则通知计算机读取过程结束,同时关闭REN2,禁止读出数据,否则通知计算机出错。

至此,一次完整的测试数据处理传输过程已经全部完成。单片机对FIFO进行复位,准备下一次工作。用户可以分析被测板送回的数据,从而测试单元电路的性能。

2 器件选择

本方案中单片机采用AT89C51芯片,包括4个8 b并行I/O口、1个全双工的串行口、2个16 b的定时/计数器以及2个中断源。晶振的工作频率选用11.095 2 MHz,每个机器周期约1μs。单片机在这里主要完成与RS232C口和FIFO通信以及整体流程控制的工作。相对于被测电路的数据速率,单片机的处理速度很低,因此如何用相对低速的器件控制高速信号是本方案要解决的关键问题之一。本文的方法是采用FIFO和TTL芯片来实现数据缓冲和辅助控制。辅助控制器件中的D触发器采用速度较高的74S系列芯片,最高工作频率为110 MHz。

FIFO是一种先进先出存储器,允许同时异步进行读写操作,读写之间互相独立。这里选用的FIFO为IDT72V36100芯片,容量为64 k×36 b,工作频率高达133 MHz,是IDT公司SuperSyncⅡ系列高性能同步FIFO中的一种。该系列芯片相比以前的FIFO器件有很多独特的优点。例如具有总线匹配功能(即输入输出数据总线宽度可以不同,有几种匹配方式供用户设置),还有标志位可编程功能以及重发功能,使得设计者能够根据需要设置标志位的地址,并且可以重新读取已经读过的数据。这些 优点大大增加了设计灵活性,给使用者带来很大方便。

本方案中用到FIFO的主要管脚包括写使能WEN1(低有效)、读使能REN1(低有效)、数据输入/输出、总线匹配设置、空标志位(低有效)、满标志位(低有效)以及读写时钟等。IDT72V36100芯片的总线宽度有5种匹配方式,分别为36 b/36 b,36 b/18 b,36 b/9 b,18 b/36 b及9 b/36 b,本方案选用的是36 b/9 b和9 b/36 b的总线匹配方式。实际应用中,根据被测电路的实际情况可以选择不同的总线匹配方式,使用者根据所选的匹配方式将相应的FIFO总线设置管脚置为高电平或低电平。

3 软件流程

系统所用到的软件包括PC机的串口通信程序与单片机程序。PC机的串口通信程序完成的是单纯的通过RS232口与单片机通信的功能,这方面的技术资料很多,因此不再赘述。这里主要介绍的是单片机程序,该程序执行流程控制功能和与PC机通信功能。

单片机与PC机通信时,接收采用中断方式,发送采用查询方式。图4是单片机主程序流程图。单片机程序中要用到两个标志位,即联络标志位和数据结束标志位,主程序在初始化过程中应该先将这两个标志位清零并设置好计数器。经过初始化以及开中断后,单片机处于等待方式,不断查询数据结束标志位,判断数据是否接收完毕。当查询到标志位被置1后,继续查询FIFO1的满状态管脚,若FIFO1为满,证明数据接收正确,单片机允许读FIFO2,进入等待状态,等待FIFO2变满产生的中断,然后转向发送子程序。

图5是中断接收子程序的流程图。串口每进入一个字节就产生一次串口中断,进入到该子程序中。每次中断都要先检查联络标志位,若该标志位为0,则表明送入的是联络字节,检查该字节和约定的联络信号是否一致,若一致, 表明通信正常,将联络标志位置1;如果联络标志位已被置1,则检查数据结束标志位,若该标志位为0,则将数据以字节为单位写入FIFO1,每次中断写入一个字节,并将计数器减1,若计数器减到零,表明数据传输结束,将数据结束标志位置1并跳出中断。

发送子程序执行的是将数据从FIFO2发送到PC机的过程,与接收子程序流程基本相同,只是前者为查询方式,后者为中断方式,故不赘述。

4 测试结果

根据以上方案进行了电路设计和调试。被测FPGA(Field Programme Gate Array)单元电路的数据总线频率为40 MHz,数据总线宽度为32 b,要求测试的数据量为2 Mb。RS232口采用19.2 k的波特率,数据输出或输入需要约2.5 min,但比起使用PCI或USB接口的开发代价,这种时间上的微耗是完全可以接受的。

为了验证测试接口板,先令单元电路不对数据做任何处理,只与测试接口板进行时序上的配合,两者进行联调。可以看到从计算机产生的数据文件与送回的数据文件完全相同,这就证明该测试接口板能够准确无误地传送数据。然后再令单元电路在时序配合的基础上加载自己的功能程序,就可以在计算机内分析和比较单元电路的输出结果了,测试结果表明单元电路的输出与计算机仿真的结果完全符合,进一步证明了该测试方案的正确性。

如果需要测试不同数据总线宽度的电路,只需根据需要改变FIFO的总线匹配设置管脚的电平,并修改单片

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top