0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于USB接口技术和I2C总线实现多通道开关矩阵的设计

电子设计 来源:电子设计工程 作者:王振生,刘耀周, 2021-06-23 16:45 次阅读

作者:王振生,刘耀周,刘焕照

自动测试设备在军事及工业领域的应用越来越广泛,然而在电路单元尤其是电路板测试中,由于被测单元种类多,被测通道数量大,传统的开关矩阵体积大、切换速度慢、电气性能差。已不能满足现代测试仪器高速、便携的要求。本文介绍了一种采用USB接口,利用I2C总线传输数据,由CPLD控制多路复用器件的大型开关矩阵结构,具有较高的切换速度及较好的电气性能,并满足了小型化的要求。

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所示。

PCA9501是一款带中断的8位I2C和SMBus总线器件,用于接收总线发送的数据并与本地地址进行比较,若结果相同则将数据转换成并行地址信号送至CPLD器件EMP7128,CPLD用来接收PCA9501发送的并行数据,并分析数据内容,将不同的串行数据转换成相应的并行控制数据并通过I/O端口送出,从而控制32路多路复用器件ADG732的通道选择。

3 系统软件设计

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

3.1 主机控制程序设计

主机控制程序设计取决于下位机控制流程,下位机控制流程如图4所示。

(1)打开USB设备并进行初始化,然后复位设备,将所有ADD732芯片内部开关打开。

(2)主机下达命令进行被测板选择,被测板地址由被测板上的PCA9501确定,对被测板进行选择只需向所需地址发送数据即可,所有被测板对接收到的地址数据进行比较,只有通过比较的被测板才会通过PCA9501将数据发送给CPLD。

(3)选取被测板,选择测试芯片,即多路复用器阵列中多路复用器件的选择,CPLD解析接收到的芯片选择数据,将该数据转换成对多路复用器的片选信号,并禁用多路复用器件。

(4)主机程序将测试点地址发送到USB端点缓冲区,由CPLD解析发送的端点选择数据,将该数据转换成对多路复用器的通道选择信号,并使能多路复用器件,将板选、片选及测试点选择数据同时送出,则相应被测板上的多路复用器将导通,从而实现测试点的选择。

(5)每个芯片上所有点测试完毕后,在进行下一个芯片测试之前,需要将该芯片复位。同样在所有测试点测试完毕后,将整个开关矩阵复位。

主控程序数据发送部分程序如下:

3.2 下位机测试程序设计

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

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

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

4 结束语

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7635

    浏览量

    148454
  • usb
    usb
    +关注

    关注

    59

    文章

    7422

    浏览量

    258061
  • 总线
    +关注

    关注

    10

    文章

    2704

    浏览量

    87206
收藏 人收藏

    评论

    相关推荐

    I2C规范,I2C总线原理

    ....................................................................... 3317.2 快速模式I2C 总线器件的开关上拉电路
    发表于 04-09 18:34

    USB总线I2C总线接口芯片

    ;strong>USB总线I2C总线接口芯片</strong><br/>
    发表于 12-16 10:39

    I2C总线协议详解

    专用芯片:USB2I2C USB2I2C是一个USB总线I2C总线
    发表于 02-01 09:56

    MSP430与I2C总线接口技术的研究

    ,其硬件结构简单、高速传输、器件丰富等特点使该类器件的应用越来越广泛。因此研究新型单片机MSP430与I2C总线接口技术有着重要的意义。本文针对这一问题进行研究,分析研究了MSP430与I2C
    发表于 01-23 14:43

    Ginkgo USB-I2C适配器

    (Host/Master)或从机(Slave),实现USBI2C总线双向适配转换;- 2通道
    发表于 10-09 15:23

    USBI2C适配器 模块 USB-IIC/GPIO/PWM/ADC 支持Android 安卓

    ,最大电流可达500mA,带短路保护;- 可作I2C总线主机(Host/Master)或从机(Slave),实现USBI2C
    发表于 10-15 14:36

    Ginkgo USB-I2C适配器

    、CodeBlocks、GCC、Eclipse、Android Studio等);[size=12.8013px]性能:[size=12.8013px]- USB总线供电,USB2.0通信接口
    发表于 10-23 12:01

    浅谈I2C总线

    I2C 接口和 SPI 接口的作用相同,但二者的使用方法有些不同。 I2C 总线用两根线来连接
    发表于 11-30 11:50

    到底什么是I2C

    I2C开关可以一次切换到单个传感器;见图3。第二个问题与功耗有关。I2C开关一次只为I2C总线
    发表于 07-23 04:45

    如何利用I2C总线实现大型开关矩阵的设计?

    本文介绍了一种采用USB接口,利用I2C总线传输数据,由CPLD控制多路复用器件的大型开关矩阵
    发表于 06-01 06:49

    I2C总线简介

    1、I2C总线简介I2C是两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点是
    发表于 08-20 08:25

    浅析SPI总线I2C接口

    SPI是什么?SPI总线有哪些优缺点?I2C接口包括哪些?I2C接口有哪些优缺点?
    发表于 10-15 09:31

    I2C总线的原理是什么

    采用串行总线技术可以大大简化硬件的设计,体积减少,可靠性高。常见的总线I2C(inter IC bus),单总线,SPI
    发表于 01-18 07:36

    I2C总线简介

    I2C 简介I2C 是双线双向的串行总线,它为设备之间数据交换提供了一种简单高效的方法。I2C 标准是一个具有冲突检测机制和仲裁机制的真正意义上的
    发表于 02-22 06:55

    基于I2C总线的大型开关矩阵设计与实现

    基于I2C 总线的大型开关矩阵设计与实现作者:王振生 刘耀周 刘焕照摘要:本文介绍了一种采用 USB
    发表于 02-06 10:42 43次下载