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

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

3天内不再提示

基于FPGA的PCB怎样来测试

PCB线路板打样 来源:ct 2019-10-23 15:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

摘要:为了提高PCB 测试机的测试速度,简化电路板的设计,提高系统的可重构性和测试算法移植的方便性,提出了一种基于FPGA的PCB测试机的硬件控制系统设计方案。 设计中选用Altera公司的现场可编程门阵列(FPGA)EP1K50,利用EDA设计工具Synplify、ModelsimQuartusⅡ以及Verilog硬件描述语言,完成了控制系统的硬件设计及调试,解决了由常规电路难以实现的问题。

关键词:PCB 测试;可重构FPGA ;PC104 总线;Verilog

引言

PCB 光板测试机基本的测试原理是欧姆定律,其测试方法是将待测试点间加一定的测试电压,用译码电路选中PCB 板上待测试的两点,获得两点间电阻值对应的电压信号,通过电压比较电路,测试出两点间的电阻或通断情况。 重复以上步骤多次,即可实现对整个电路板的测试。

由于被测试的点数比较多, 一般测试机都在2048点以上,测试控制电路比较复杂,测试点的查找方法以及切换方法直接影响测试机的测试速度,本文研究了基于FPGA的硬件控制系统设计。

硬件控制系统

测试过程是在上位计算机的控制下,控制测试电路分别打开不同的测试开关。测试机系统由以下几部分构成: 上位计算机PC104 、测试控制逻辑(由FPGA 实现) 、高压测试电路。 其中上位机主要完成人机交互、测试算法、测试数据处理以及控制输出等功能。 FPGA 控制高压测试电路完成对PCB 的测试过程。

本系统以一台PC104 为上位计算机,以FPGA为核心,通过PC104 总线实现上位机对测试的控制。

FPGA与PC104的接口电路

PC104总线是一种专为嵌入式控制定义的工业控制总线,其信号定义与ISA 总线基本相同。 PC104总线共有4 类总线周期,即8 位的总线周期、16 位的总线周期、DMA 总线周期和刷新总线周期。 16 位的I/O总线周期为3 个时钟周期,8 位的I/O总线周期为6 个时钟周期。 为了提高通信的速度,ISA总线采用16 位通信方式,即16 位I/O方式。 为了充分利用PC104的资源,应用PC104的系统总线扩展后对FPGA 进行在线配置。正常工作时通过PC104总线与FPGA进行数据通信。

FPGA与串行A/D及D/A器件的接口

根据测试机系统设计要求,需要对测试电压及两通道参考电压进行自检,即A/D转换通道至少有3 路。 两路比较电路的参考电压由D/A输出,则系统的D/A通道要求有两通道。 为了减少A/D及D/A的控制信号线数,选用串行A/D及D/A器件。 综合性能、价格等因素, 选用的A/D器件为TLC2543,D/A器件为TLV5618。

TLV5618是TI公司带缓冲基准输入(高阻抗)的双路12 位电压输出DAC,通过CMOS 兼容的3线串行总线实现数字控制。器件接收16 位命令字,产生两路D/A模拟输出。TLV5618只有单一I/O周期,由外部时钟SCL K决定,延续16 个时钟周期,将命令字写入片内寄存器,完成后即进行D/A转换。TLV5618读入命令字是从CS的下降沿开始有效,从下一SCLK的下降沿开始读入数据,读入16位数据后即进入转换周期,直到下次出现CS的下降沿。

TLC2543是TI公司的带串行控制和11个输入端的12 位、开关电容逐次逼近型A/D转换器。 片内转换器有高速、高精度和低噪音的特点。 TLC2543工作过程分为两个周期:I/O周期和转换周期。I/O周期由外部时钟SCLK决定,延续8、12或16个时钟周期,同时进行两种操作: 在SCLK上升沿以MSB方式输入8位数据到片内寄存器;在SCLK下降沿以MSB 方式输出8、12、16位转换结果。转换周期在I/O周期的最后一个SCLK下降沿开始,直到EOC信号变高,指示转换完成。 为了与TLV5618的I/O周期一致,采用了MSB方式,使用CS的16 时钟传送的时序。

由于这两种器件都是SPI接口,可将这两器件连接至同一SPI 总线,通过不同的片选信号对不同的器件操作。 由于SPI接口协议复杂,而且从图3 可以看出,这两种器件的时序并没有用到全部的SPI接口时序。为了实现符合以上逻辑的时序,减少标准SPI 接口IP 核对FPGA资源的浪费, 设计采用Verilog硬件描述语言用同步状态机(FSM)的设计方法实现,编写ADC及DAC控制时序。程序实际上是一个嵌套的状态机,由主状态机和从状态机通过由控制线启动的总线在不同的输入信号情况下构成不同功能的有限状态机。 则由图3 可知,D/A操作有4 个状态,A/D操作有7个状态。 两种状态中有几个状态是相同的,故可用一个有限状态机完成对串行A/D及D/A的操作。 程序实际上是一个嵌套的状态机,由主状态机和从状态机通过由控制总线启动的总线在不同的输入信号情况下构成不同功能的较复杂的有限状态机。 A/D及D/A操作共用唯一的驱动时钟(SCLK) 及数据总线(SI、SO)。由于操作的写周期有16个时钟周期,读周期有12个时钟周期,模块是在三个嵌套的有限状态机中完成的。

系统设计中,将AD、DA操作封装成一单独模块,由上层控制模块输出命令字及控制信号启动本模块的相应操作,操作完成后(进入idle状态) ,本模块发出相应状态信号至上层模块。

FPGA 程序框架

FPGA 片内程序是整个测试系统正确运行的关键。 由自顶向下的FPGA 设计原则,将系统分为5个独立的模块, 即通信模块(ISA) 、测试模块(TEST) 、AD/DA 模块、解码模块(DECODER) 、RAM 控制模块(RAMCTL)。

ISA 模块:系统通信及控制模块,完成与上位机通信、命令字解释、控制信号的产生等。系统根据上位机传送的导通电阻、绝缘电压等参数启动ADDA模块完成参考电压的输出;根据测试命令启动测试模块完成测试过程。数据在多个同步运行的同步状态机间传送,较难控制的是多进程间的数据通信与数据同步。

RAM控制模块:在测试开始前,上位机将测试点的信息通过总线传送至ISA模块, ISA 模块再将其存放到片内RAM中;测试完成后,将RAM中的测试结果传送到上位机。 在测试时测试模块通过读RAM中测试点的信息来打开相应测试开关,再将测试结果保存到RAM 中。 这样两个模块都要求读写RAM 以实现两个模块之间的数据共享,这就要求有一控制信号将两组读写信号线分别与RAM模块相连接,RAM控制模块即完成此功能。测试模块(TEST):虽然测试过程有多种,如开关卡自检、导通测试、绝缘测试等,但测试过程却是相同的,即测试扫描。 测试的工作过程是:加比较电路参考电压→打开待测点开关→延时→读比较器结果→测试另一组测试点。 本模块是按照不同的操作码,进入不同的测试过程。 测试结果与测试点编号一起组成13 位数据保存到RAM 中,并将原来测试点的编号信息覆盖。

解码模块(DECODER):这一模块挂在测试模块(TEST) 之后,它完成开关编号到实际电路的映射。 由于测试针阵形式不同、译码电路与控制电路的硬件设计不同,上级模块输出的测试开关信息并不能直接作为输出控制测试开关电路。 解码模块完成这两者间的转换。

AD/DA 模块(AD/DA):设计SPI 总线接口对A/D 及D/A 器件操作,模块以允许(adenable , daenable) 信号启动,以busy信号作为转换完成标志信号,将A/D及D/A操作相对其它模块进行封装。系统的每个模块采用Verilog硬件描述语言编写,采用多个多层嵌套的同步状态机(FSM)完成整个系统的逻辑功能;每一模块应用仿真工具Modelsim完成模块的功能仿真,系统完成功能测试后;利用Altera 综合布线工具QuartusII完成系统后仿真及综合、布线、下载;充分利用Altera公司免费提供的IPcore 对程序模块进行优化;顶层设计采用方框图输入方式,模块间的数据流由方框图更直观地表现出来。

结束语

基于FPGA的PCB测试机的硬件控制系统,提高了PCB测试机的测试速度、简化电路的设计。此外由于FPGA的可重构特性,为系统的软件算法以及硬件结构的进一步优化升级打下了良好的基础,具有良好的应用前景。

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

    关注

    4391

    文章

    23749

    浏览量

    420921
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    44395
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何利用Verilog HDL在FPGA上实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA上实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计SRA
    的头像 发表于 10-22 17:21 3982次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上实现SRAM的读写<b class='flag-5'>测试</b>

    MangoTree.cn,认识FPGA RIO全系产品#FPGA #测控 #模块化测试

    FPGA
    芒果树数字
    发布于 :2025年08月27日 11:14:14

    PCB的十大可靠性测试

    PCB板的可靠性测试流程为了确保PCB板的可靠性,必须经过一系列严格的测试。以下是一些常见的测试方法和标准:一、离子污染
    的头像 发表于 06-20 23:08 1070次阅读
    <b class='flag-5'>PCB</b>的十大可靠性<b class='flag-5'>测试</b>

    PCB分板应力测试方法和步骤

    PCB机械应力测试的主要目的是评估PCB板在不同环境条件和负载条件下的性能和稳定性。通过应力测试可以发现潜在的设计缺陷、材料缺陷和制造工艺问题,从而采取相应的措施进行改进,以此提高
    的头像 发表于 06-17 17:22 1387次阅读
    <b class='flag-5'>PCB</b>分板应力<b class='flag-5'>测试</b>方法和步骤

    【干货分享】RP2040 + Cyclone 10 FPGA PCB 设计

    连接到 8 个 LED,用开关控制灯的状态。同时,将 3 个按键连接到 RGB LED 的红、绿、蓝引脚。这是一个非常基础的测试,用来验证 FPGA 至少能正常工作,并能接收比特流文件执行相应的功能
    发表于 06-12 16:33

    【开源分享】:开源小巧的FPGA开发板——Icepi Zero

    活动推荐:拥抱开源!一起FPGA开发板啦!https://bbs.elecfans.com/jishu_2491185_1_1.html 项目计划以紫光同创PG2L25H-6IMBG325为
    发表于 06-09 14:01

    拥抱开源!一起FPGA开发板啦!

    第一批分组名单,大家可以下载附件查看自己分在了哪个小组,有疑问或想要调整分组可以微信私聊小助手~ 分组名单:*附件:开源FPGA项目分组安排情况.xlsx 直播预约: 开源活动 | 一起FPGA
    发表于 06-06 14:05

    PCB互连应力测试与温度冲击测试的区别

    在当今复杂且精密的PCB实际应用场景中,确保其可靠性至关重要。互连应力测试(IST)与温度冲击测试(TC)作为可靠性评估的常用手段,二者在测试对象、原理机制、适配场景以及所遵循的标准规
    的头像 发表于 04-18 10:29 721次阅读
    <b class='flag-5'>PCB</b>互连应力<b class='flag-5'>测试</b>与温度冲击<b class='flag-5'>测试</b>的区别

    怎样使用防水测试仪对手机进行测试

    在当今手机不离手的时代,手机的防水性能越来越重要。那么,如何使用防水测试测试手机呢?以下是一个简单易懂的操作过程的详细说明。一、前期准备(1)选择合适的防水测试仪:根据手机的尺寸和
    的头像 发表于 02-27 16:58 1736次阅读
    <b class='flag-5'>怎样</b>使用防水<b class='flag-5'>测试</b>仪对手机进行<b class='flag-5'>测试</b>

    如何通过FPGA直接控制DMD?

    想请问TI是否开放DMD的输入输出时序,想通过FPGA直接控制DMD,简化设计,dmd为dlp3010和dlp4500
    发表于 02-25 07:09

    PCB板设计测试点的基本原则

    线路板PCB测试点设置的原则是确保测试的准确性和高效性,同时避免对PCB板造成不必要的损害。以下是一些关键的设置原则: 1.测试点的分布‌:
    的头像 发表于 02-08 11:35 1861次阅读

    ADS1298测试的给定输入信号是怎样的?

    联的,不同输入信号下(如频率60Hz幅值,分别为1mv 和1V)的噪声水平也不一样。所以我想知道,测试的给定输入信号是怎样的? 以此检验该款芯片是否符合我的精度要求
    发表于 01-10 08:11

    ADS58C48的输出给FPGA的时钟怎样产生的,是只要有输入时钟,就有输出时钟吗?

    : 1,ADS58C48如果想要实现基本的功能需要怎样配置寄存器?有没有相关FPGA配置程序可以参考一下? 2,ADS58C48的输出给FPGA的时钟怎样产生的,是只要有输入时钟,就有
    发表于 12-20 06:32

    Verilog 测试平台设计方法 Verilog FPGA开发指南

    Verilog测试平台设计方法是Verilog FPGA开发中的重要环节,它用于验证Verilog设计的正确性和性能。以下是一个详细的Verilog测试平台设计方法及Verilog FPGA
    的头像 发表于 12-17 09:50 1565次阅读

    PCB离子污染度测试的重要性

    PCB离子污染度的重要性在电子制造业中,PCB(印刷电路板)的离子污染度测试是保障产品质量的关键环节。离子污染度指的是PCB表面残留的带电离子污染物,这些污染物主要来源于焊接助剂、化学
    的头像 发表于 12-13 00:15 1514次阅读
    <b class='flag-5'>PCB</b>离子污染度<b class='flag-5'>测试</b>的重要性