首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于I2C总线的大型开关矩阵设计与实现
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于I2C总线的大型开关矩阵设计与实现
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2015-6-30 15:47
|
只看该作者
基于I2C总线的大型开关矩阵设计与实现
测试仪器
,
电路板
,
开关
,
电源
,
工业
1 引言
自动测试设备在军事及工业领域的应用越来越广泛,然而在电路单元尤其是电路板测试中,由于被测单元种类多,被测通道数量大,传统的开关矩阵体积大、切换速度慢、电气性能差。已不能满足现代测试仪器高速、便携的要求。本文介绍了一种采用USB接口,利用I2C总线传输数据,由CPLD控制多路复用器件的大型开关矩阵结构,具有较高的切换速度及较好的电气性能,并满足了小型化的要求。
2 系统结构及功能
开关矩阵主要实现自动测试设备与被测电路单元之间的信息交换,功能如下:
(1)将程控电源系统输出的电源自动加至被测电路单元要求的引脚上;
(2)将自动测试设备信号源分系统输出的信号转接至被测电路单元要求的引脚上;
(3)将被测电路单元输出的信号转接至自动测试设备的适当测量通道上;
(4)为被测电路单元提供必要的外接元件,如负载、调整旋钮、大体积器件等。
不同的被测电路单元其连接器定义不同,每个插针都可能被定义为电源、输入信号、输出信号、外接元件端子之一。并且现代电子设备的电路单元通道数很多,大量的信号通道对ATE的开关矩阵设计提出了严峻的挑战。本文所设计的开关矩阵采取针床连接方式,可有效连接多种接插件。通过单片机控制的多路复用器,可将信号加至所需的被测通道,系统结构框图如图l所示。
3 硬件设计
3.1 测试电路结构
测试电路结构组成如图2所示。系统采用上、下位机的结构,上位机由计算机及控制软件组成,下位机由USB总线接口及控制板组成,USB模块通过I2C总线将控制数据传送给控制板上各个测试模块。控制板上各测试模块收到总线发送来的串行码流,译码后提取地址值,控制模块中的多路复用器选取相应通道。I2C是一种串行总线的外设接口,它采用同步方式串行接收或发送信息,主从设备在同一个时钟下工作,I2C由数据线SDA和时钟线SCL构成双向串行总线,由于I2C只有一根数据线,因此信息的发送和接收只能分时进行。各模块组件均并联在总线上,每一个模块都有唯一的地址。因此系统可在允许范围内增加或减少被测板数量,I2C总线上各节点模块支持热插拔,所以采取该方案可以有效减小测试系统体积,使用操作方便,可同时连接多个被测单元。
3.2 控制电路组成
本系统中,控制板上各测试模块均通过I2C总线与测试主机进行通讯,各模块地址由板上I2C芯片地址唯一确定,主机首先确定各板卡地址进行板选,与相应板卡建立通讯后,发送串行控制数据SDA。在同一时刻,I2C总线上只能有一个模块处于活动状态,利用多路复用器状态的“保持”特性,即可实现测试模块上及测试模块之间探针的切换。控制板电路结构组成如图3所示。
PCA9501是一款带中断的8位I2C和SMBus总线器件,用于接收总线发送的数据并与本地地址进行比较,若结果相同则将数据转换成并行地址信号送至CPLD器件EMP7128,CPLD用来接收PCA9501发送的并行数据,并分析数据内容,将不同的串行数据转换成相应的并行控制数据并通过I/O端口送出,从而控制32路多路复用器件ADG732的通道选择。 4 系统软件设计
系统软件包括主机控制程序和下位机测试程序,主机控制程序可以采用通用编程工具如VisualC++或者C++Builder等来进行编写。下位机测试程序包括USB控制程序、I2C发送程序、CPLD控制程序,其中USB控制程序及I2C发送程序是对USB控制器CY7C68013进行编程,采用Keil C51编译器开发,CPLD控制程序采用MAX PLUSⅡ进行开发,Verilog HDL硬件描述语言编写。
4.1 主机控制程序设计
主机控制程序设计取决于下位机控制流程,下位机控制流程如图4所示。
(1)打开USB设备并进行初始化,然后复位设备,将所有ADD732芯片内部开关打开。
(2)主机下达命令进行被测板选择,被测板地址由被测板上的PCA9501确定,对被测板进行选择只需向所需地址发送数据即可,所有被测板对接收到的地址数据进行比较,只有通过比较的被测板才会通过PCA9501将数据发送给CPLD。
(3)选取被测板,选择测试芯片,即多路复用器阵列中多路复用器件的选择,CPLD解析接收到的芯片选择数据,将该数据转换成对多路复用器的片选信号,并禁用多路复用器件。
(4)主机程序将测试点地址发送到USB端点缓冲区,由CPLD解析发送的端点选择数据,将该数据转换成对多路复用器的通道选择信号,并使能多路复用器件,将板选、片选及测试点选择数据同时送出,则相应被测板上的多路复用器将导通,从而实现测试点的选择。
(5)每个芯片上所有点测试完毕后,在进行下一个芯片测试之前,需要将该芯片复位。同样在所有测试点测试完毕后,将整个开关矩阵复位。
主控程序数据发送部分程序如下:
4.2 下位机测试程序设计
下位机测试程序包括USB单片机CY7C68013接收主机发送的控制数据,并解释主机数据,然后通过该单片机的I2C接口将数据送至测试板上的I2C数据转换器件PCA9501,PCA9501将接收的被测板地址同自身地址相比较,如相同将自动把串行数据转成并行数据送CPLD,CPLD解析发送的并行数据,然后在使能信号的作用下(通过USB控制器件CY7C68013的PB7口)将数据同时送出。
单片机接收/发送数据程序如下:
CPLD用来接收PCA9501发送的并行数据,并对接收的数据进行解释,然后将其转化成对多路复用器件ADG732的控制信号,程序如下:
5 结束语
本系统采用USB接口技术及I2C数据传输方式,有效缩小了系统体积,为多通道开关矩阵的小型化做出了有益的探索。所研制的开关矩阵可挂接多个测试模块,并支持热插拔,具有很强的通用性和可扩展性,与传统的固定式测试针床相比,无需针对每个被测电路板制作专门的通道板,减小了体积,降低了成本,为低成本、便携化、通用化、多通道测试方案提供了一种新的实现手段。
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议