基于USB接口技术和I2C总线的多路开关矩阵设计

2021-06-23 17:31 来源:电子说

作者:刘耀洲,刘。

自动测试设备广泛应用于军事和工业领域。但在电路单元测试中,尤其是电路板测试中,由于被测单元种类繁多,被测通道数量大,传统开关矩阵体积庞大,开关速度慢,电气性能差。不能满足现代测试仪器的高速、便携的要求。介绍了一种采用通用串行总线接口,利用I2C总线传输数据,利用可编程逻辑器件控制多路复用设备的大型开关矩阵结构。开关速度快,电气性能好,满足小型化要求。

1系统结构和功能

开关矩阵主要实现自动测试设备与被测电路单元之间的信息交换,其功能如下:

(1)将程控电源系统输出的功率自动加到被测电路单元所需的管脚上;

(2)将自动测试设备的信号源子系统输出的信号传递给被测电路单元所需的引脚;

(3)将电路单元输出的信号传送到自动测试设备的合适的测量通道;

(4)为被测电路单元提供必要的外部元件,如负载、调节旋钮、大容量器件等。

不同的被测电路单元有不同的连接器定义,每个引脚可以定义为电源、输入信号、输出信号和外部元件端子之一。而且,现代电子设备的电路单元中有很多通道,大量的信号通道对ATE的开关矩阵设计提出了严峻的挑战。本文设计的开关矩阵采用针床连接方式,可有效连接各种连接器。通过单片机控制的多路复用器,可以将信号加入到所需的被测通道,系统结构框图如图1所示。

2硬件设计

2.1测试电路结构

测试电路的结构如图2所示。系统采用上下位机结构。上位机由计算机和控制软件组成,下位机由USB总线接口和控制板组成。USB模块通过I2C总线将控制数据传输到控制板上的每个测试模块。控制板的各个测试模块接收总线发送的串行码流,解码后提取地址值,控制模块中的复用器选择对应的通道。I2C是串行总线的外围接口,采用同步方式串行接收或发送信息。主设备和从设备在同一时钟下工作。I2C由数据线SDA和时钟线SCL组成双向串行总线。由于I2C只有一条数据线,信息的发送和接收只能分时进行。每个模块在总线上并联,每个模块都有一个唯一的地址。因此,系统可以在允许的范围内增加或减少测试板的数量,并且I2C总线上的每个节点模块都支持热插拔。因此,采用这种方案可以有效减小测试系统的体积,方便使用和操作,并且可以同时连接多个待测单元。

2.2控制电路的组成

在该系统中,控制板的每个测试模块通过I2C总线与测试主机通信,每个模块的地址由板上I2C芯片的地址唯一确定。主机首先确定每个板卡的地址供板卡选择,然后与对应的板卡建立通信后发送串行控制数据SDA。同时,I2C总线上只有一个模块处于活动状态,利用多路复用器状态的“保持”特性,可以实现探针在测试模块上和测试模块之间的切换。控制板的电路结构如图3所示。

3系统软件设计

系统软件包括主机控制程序和下位机测试程序。主机控制程序可以用VisualC或C Builder等通用编程工具编写。下位机测试程序包括USB控制程序、I2C发送程序和CPLD控制程序,其中USB控制程序和I2C发送程序由USB控制器CY7C68013编写,由Keil C51编译器开发,CPLD控制程序由MAX PLUS开发,由Verilog HDL硬件描述语言编写。

3.1主机控制程序设计

主控pro的设计

(2)主机给出选择待测板的命令,待测板的地址由PCA9501确定。要选择要测试的板,只需将数据发送到所需的地址。所有被测板卡都将接收到的地址数据进行比对,只有比对后的板卡才会通过PCA9501向CPLD发送数据。

(3)选择待测板,选择测试芯片,即选择多路复用器阵列中的多路复用器件,用CPLD分析接收到的芯片选择数据,将数据转换为多路复用器的芯片选择信号,禁用多路复用器件。

(4)主机程序将测试点的地址发送到USB端点缓存器,CPLD对发送的端点选择数据进行分析,将数据转换为多路复用器的通道选择信号,使多路复用器同时发出选板、选芯片和选测试点数据,然后相应被测板上的多路复用器将被开启,从而实现测试点的选择。

(5)在测试完每个芯片上的所有点之后,需要在测试下一个芯片之前重置芯片。还有,测试完所有测试点后,重置整个开关矩阵。

主控程序的数据传输部分如下:

ans.com/web2/M00/02/CF/poYBAGDS9TmAMpdKAAEEc0f9Rb0170.png" style="width:261px;height:613px;" />

3.2 下位机测试程序设计

下位机测试程序包括USB单片机CY7C68013接收主机发送的控制数据,并解释主机数据,然后通过该单片机的I2C接口将数据送至测试板上的I2C数据转换器件PCA9501,PCA9501将接收的被测板地址同自身地址相比较,如相同将自动把串行数据转成并行数据送CPLD,CPLD解析发送的并行数据,然后在使能信号的作用下(通过USB控制器件CY7C68013的PB7口)将数据同时送出。

单片机接收/发送数据程序如下:

CPLD用来接收PCA9501发送的并行数据,并对接收的数据进行解释,然后将其转化成对多路复用器件ADG732的控制信号,程序如下:

4 结束语

本系统采用USB接口技术及I2C数据传输方式,有效缩小了系统体积,为多通道开关矩阵的小型化做出了有益的探索。所研制的开关矩阵可挂接多个测试模块,并支持热插拔,具有很强的通用性和可扩展性,与传统的固定式测试针床相比,无需针对每个被测电路板制作专门的通道板,减小了体积,降低了成本,为低成本、便携化、通用化、多通道测试方案提供了一种新的实现手段。

责任编辑:gt

延伸 · 阅读