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

    文章

    8580

    浏览量

    151030
  • usb
    usb
    +关注

    关注

    60

    文章

    7939

    浏览量

    264504
  • 总线
    +关注

    关注

    10

    文章

    2878

    浏览量

    88056
收藏 人收藏

    评论

    相关推荐

    USB总线I2C总线接口芯片

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

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

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

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

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

    I2C总线通信接口的CPLD实现

    介绍采用ALTERA 公司的可编程器件,实现I2C 总线的通信接口的基本原理; 给出部分VHDL语言描述。该通信接口与专用的
    发表于 05-14 13:16 26次下载

    I2C总线接口模块设计

    本实验是基于EasyFPGA030的I2C总线接口模块设计,用EasyFPGA030开发套件通过I2C协议实现对二线制
    发表于 11-02 17:01 41次下载

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

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

    MSP430与I2C总线接口技术设计方案

    分析了MSP430 单片机I/O 端口的结构特点,提出了适合MSP430 特点的I2C 总线接口方案。该方案优化了接口方法,降低了代码量。结
    发表于 03-05 11:08 36次下载

    PCA9564 并行总线I2C总线接口芯片简介

    PCA9564是一款采用CMOS工艺,支持并行总线与串行I2C总线通信转换的接口器件,适用于微控制器/处理器使用并行总线扩展
    发表于 03-10 15:47 51次下载

    PCA9665并行总线I2C总线接口芯片简介

    PCA9665是一款并行总线与串行I2C总线接口转换的器件,适用于微控制器/处理器使用并行总线扩展I2C
    发表于 03-10 15:49 46次下载

    模拟I2C总线主节点通信原理及实现方法

    摘要 介绍模拟I2C总线主节点通信原理,并提出一种新的实现方法。这种采用延时接收比较来实现仲裁的方法,可使不具有
    发表于 06-18 17:57 5541次阅读
    模拟<b class='flag-5'>I2C</b><b class='flag-5'>总线</b><b class='flag-5'>多</b>主节点通信原理及<b class='flag-5'>实现</b>方法

    基于CPLD的I2C总线接口设计

    在电路设计中,I2C总线是比较常用的两线式串行通信方式,大多数的CPU都擅长于并口操作,不具备直接操作I2C总线接口的能力。为了使不具备
    发表于 02-12 16:11 95次下载
    基于CPLD的<b class='flag-5'>I2C</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>设计

    NIOS实现I2C总线

    I2C 总线实现关键是SDA,他是双向线,如果对与一个芯片只写而不读,I2C 实现起来很容易.使用NIOS
    发表于 11-01 14:28 38次下载

    LPC1100 I2C 接口技术与可靠性设计(I2C器件应用方案

    LPC1100 I2C 接口技术与可靠性设计(I2C器件应用方案
    发表于 09-29 19:11 6次下载
    LPC1100 <b class='flag-5'>I2C</b> <b class='flag-5'>接口技术</b>与可靠性设计(<b class='flag-5'>I2C</b>器件应用方案

    LPC1100 I2C 接口技术与可靠性设计I2C器件应用方案

    LPC1100 I2C 接口技术与可靠性设计I2C器件应用方案
    发表于 10-09 09:26 8次下载
    LPC1100 <b class='flag-5'>I2C</b> <b class='flag-5'>接口技术</b>与可靠性设计<b class='flag-5'>I2C</b>器件应用方案

    i2c总线用来做什么_i2c总线数据传输过程

    I2C总线控制器为微控制器或微处理器提供控制I2C总线接口,它控制所有I2C
    发表于 11-24 14:16 7263次阅读