정밀 PCB 제조, 고주파 PCB, 고속 PCB, 표준 PCB, 다중 계층 PCB 및 PCB 조립.
가장 신뢰할 수 있는 PCB 및 PCBA 맞춤형 서비스 팩토리
PCB 블로그

PCB 블로그 - FPGA 기반 PCB 보드 테스터 하드웨어 회로 설계

PCB 블로그

PCB 블로그 - FPGA 기반 PCB 보드 테스터 하드웨어 회로 설계

FPGA 기반 PCB 보드 테스터 하드웨어 회로 설계

2022-07-19
View:514
Author:pcb

PCB보드 테스트기의 테스트 속도를 높이고 회로기판 설계를 간소화하며 시스템의 재구성과 테스트 알고리즘 이식의 편의성을 높이기 위해 FPGA 기반 PCB보드 테스트기 하드웨어 제어 시스템 설계 방안을 제시했다.설계에서 Altera사의 현장 프로그래밍 가능한 게이트 어레이(FPGA) EP1K50을 선택하여 EDA 설계 도구인 Synplify, Modelsim, Quartus II 및 Verilog 하드웨어 설명 언어를 이용하여 제어 시스템의 하드웨어 설계와 디버깅을 완료하여 기존 회로가 실현하기 어려운 문제를 해결하였다.PCB 판광 테스트기의 기본 테스트 원리는 옴의 법칙이다.테스트 방법은 측정 대기 지점 사이에 일정한 테스트 전압을 넣고 디코딩 회로를 이용하여 PCB 보드에서 측정 대기 점 두 개를 선택하여 두 점 사이에 대응하는 저항 값을 얻는 것이다.전압 신호는 전압 비교 회로를 통해 두 점 사이의 저항이나 전도성을 측정한다.전체 보드 테스트를 위해 위의 단계를 여러 번 반복합니다.시험점의 수량이 많기 때문에 일반 시험기의 시험점은 2048개를 초과하고 시험제어회로도 더욱 복잡하다.테스트 포인트의 검색 방법 및 전환 방법은 테스트 시스템의 테스트 속도에 직접적인 영향을 미칩니다.이 문서에서는 FPGA 기반 하드웨어 제어 시스템의 설계를 연구했습니다.

PCB 보드

하드웨어 제어 시스템

테스트 프로세스는 호스트의 제어 하에 테스트 회로가 서로 다른 테스트 스위치를 연결하는 것을 제어한다.테스트기 시스템은 상위기 PC104, 테스트 제어 논리 (FPGA로 구현됨) 및 고압 테스트 회로로 구성됩니다.그 중 상위기는 주로 휴먼 컴퓨터 인터렉션, 테스트 알고리즘, 테스트 데이터 처리, 출력 제어 등의 기능을 완성한다.FPGA는 고압 테스트 회로를 제어하여 PCB 보드의 테스트 과정을 완료합니다.이 시스템은 PC104를 상위기로, FPGA를 상위기로 PC104 버스를 통해 테스트를 제어한다.

FPGA 및 PC104 인터페이스 회로

PC104 버스는 ISA 버스와 거의 동일한 신호 정의를 가진 임베디드 제어를 위해 특별히 정의된 산업 제어 버스입니다.PC104 버스에는 8비트 버스 주기, 16비트 버스 주기, DMA 버스 주기 및 새로 고침 버스 주기 등 4가지 버스 주기가 있습니다.16비트 I/O 버스 사이클은 3 클럭, 8비트 I/O 버스 사이클은 6 클럭입니다.ISA 버스는 통신 속도를 높이기 위해 16비트 통신 모드, 즉 16비트 I/O 모드를 사용한다.PC104의 자원을 최대한 활용하기 위해 PC104의 시스템 버스를 확장한 후 FPGA를 온라인으로 구성했다.정상 작동 시 PC104 버스를 통해 FPGA와 통신합니다.


FPGA 및 직렬 A/D 및 D/A 장치 인터페이스

테스터의 시스템 설계 요구 사항에 따라 테스트 전압과 이중 채널 참조 전압, 즉 적어도 3 개의 a/D 변환 채널이 있어야 합니다.두 비교 회로의 참조 전압은 D/A에서 출력되므로 시스템의 D/A 채널에는 두 개의 채널이 필요합니다.A/D 및 D/A의 제어 신호선 수를 줄이기 위해 직렬 A/D 및 D/A를 선택합니다.성능, 가격 등을 종합하여 선택한 A/D 설비는 TLC2543, D/A 설비는 TLV5618이다.TLV5618은 CMOS 호환 3선 직렬 버스를 통해 디지털 제어를 수행하는 TI의 버퍼 참조 입력(고임피던스)이 있는 이중 12비트 전압 출력 DAC이다.장치는 16비트 명령어를 수락하고 두 개의 D/a 아날로그 출력을 생성합니다.TLV5618은 16 클럭 주기가 지속되는 외부 클럭 SCL K에 의해 결정되는 I/O 주기가 하나만 있으며 슬라이스 레지스터에 명령어를 쓰고 완료 후 D/a 변환을 수행합니다.TLV5618 읽기 명령 문자는 CS의 하강 가장자리부터 유효하며 다음 SCLK의 하강 가장자리부터 데이터를 읽습니다.16비트 데이터를 읽은 후 CS의 다음 하강선이 나타날 때까지 변환 주기에 들어갑니다.TLC2543은 직렬 제어와 11개의 TI 입력을 갖춘 12비트 스위치 커패시터가 차례로 a/D 동글에 육박하는 형태다. 슬라이스 동글은 고속, 고정밀, 저소음이 특징이다.TLC2543의 작업 과정은 I/O 주기와 변환 주기의 두 주기로 나뉩니다.I/O 주기는 외부 클럭 SCLK에 의해 결정되며 8, 12 또는 16 클럭 주기를 지속하며 SCLK의 상승에 MSB 모드를 따라 슬라이스 레지스터에 8 비트 데이터를 입력하는 두 가지 작업을 동시에 수행합니다.SCLK 8, 12, 16비트 변환 결과의 하강에서 MSB 모드로 출력됩니다.변환 주기는 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 작업을 수행할 수 있습니다. 이 프로그램은 사실상 중첩된 상태기입니다.주 상태기와 종상태기는 제어 버스를 통해 시작하는 버스로 서로 다른 입력 신호에서 서로 다른 기능을 가진 더욱 복잡한 유한 상태기를 형성한다.구동 클럭(SCLK) 및 데이터 버스(SI, SO)는 A/D 및 D/A 작업으로 공유됩니다.작업의 쓰기 주기는 16 클럭이고 읽기 주기는 12 클럭이기 때문에 모듈은 세 개의 중첩된 제한된 상태기에서 완료됩니다.시스템 설계에서 AD 및 DA 작업은 단일 모듈로 캡슐화되며 상위 제어 모듈은 명령어 및 제어 신호를 출력하여 해당 모듈의 작업을 시작합니다.작업이 완료되면 (유휴 상태) 모듈은 상위 모듈에 해당 상태 신호를 보냅니다.


FPGA 프로그래밍 프레임워크

FPG A슬라이스의 프로그램은 전체 테스트 시스템이 올바르게 작동하는 열쇠입니다.상향식 FPGA 설계 원리에 따라 시스템은 통신모듈(ISA), 테스트모듈(test), AD/DA모듈, 디코더(DECODER), RAM제어모듈(RAMCTL) 등 5개의 독립모듈로 나뉜다.ISA 모듈: 시스템 통신 및 제어 모듈로 본체와의 통신, 명령어 해석, 제어 신호 생성 등을 완료한다. 시스템은 ADDA 모듈을 가동하여 본체가 전송하는 도통 저항, 절연 전압 등의 매개변수에 따라 참조 전압의 출력을 완성한다.테스트 모듈을 시작하여 테스트 명령에 따라 테스트 프로세스를 완료합니다.동기화 실행 중인 여러 동기화 상태기 간에 데이터가 전송되므로 여러 프로세스 간의 데이터 통신과 데이터 동기화를 제어하기가 더욱 어렵습니다.RAM 제어 모듈: 테스트가 시작되기 전에 호스트는 버스를 통해 테스트 포인트의 정보를 ISA 모듈로 전송하고 ISA 모듈은 슬라이스 RAM에 저장합니다.테스트가 완료되면 RAM의 테스트 결과가 마스터 컴퓨터로 전송됩니다.테스트 과정에서 테스트 모듈은 RAM에 있는 테스트 포인트의 정보를 읽어 해당 테스트 스위치를 켠 다음 테스트 결과를 RAM에 저장합니다. 이렇게 하면 두 모듈 모두 RAM을 읽고 써서 두 모듈 간의 데이터 공유를 실현해야 합니다. 이 컨트롤 신호는 두 그룹의 읽기와 쓰기 신호를 각각 RAM 모듈에 연결해야 합니다. RAM 컨트롤 모듈은 이 기능을 완성합니다.테스트 모듈 (Test): 개폐 관문 자체 검사, 연속성 테스트, 절연 테스트 등 다양한 테스트 프로그램이 있지만 테스트 프로그램은 동일합니다. 즉 테스트 스캔입니다.테스트의 작업 과정은 비교 회로의 참조 전압 추가 - 측정 지점의 스위치 켜기 - 지연 - 비교기 결과 읽기 - 다른 테스트 지점 그룹을 테스트하는 것입니다.이 모듈은 서로 다른 조작 코드에 따라 서로 다른 테스트 과정에 들어간다.테스트 결과는 테스트 포인트 번호와 함께 13비트 데이터를 생성하여 RAM에 저장하고 원래 테스트 포인트의 번호 정보를 덮어씁니다.


디코더 모듈(DECODER): 이 모듈은 테스트 모듈(test)에 걸면 스위치 번호가 실제 회로에 매핑됩니다.테스트 핀 어레이의 형식이 다르고 디코딩 회로와 제어 회로의 하드웨어 설계가 다르기 때문에 상급 모듈이 출력하는 테스트 스위치 정보는 테스트 스위치 회로의 출력을 제어하는 데 직접 사용할 수 없다.디코딩 모듈은 둘 사이의 변환을 완료합니다.AD/DA 모듈(AD/DA): A/D 및 D/A 장치를 작동하도록 SPI 버스 인터페이스를 설계하고, 모듈은 (사랑스럽고 치명적인) 신호 부팅을 허용하며, 사용 중인 신호는 변환 완료 플래그 신호로 사용됩니다.D/A 작업은 다른 모듈을 기준으로 패키지화됩니다.시스템의 각 모듈은 Verilog 하드웨어 설명 언어로 작성되며 시스템 전체의 논리적 기능을 수행하기 위해 다중 레이어 중첩 동기화 상태 관리자(FSM)를 사용합니다.각 모듈은 시뮬레이션 도구인 Modelsim을 사용하여 모듈의 기능 시뮬레이션을 완료하고, 시스템 완료 기능 테스트는 Altera의 통합 라우팅 도구인 QuartusII를 사용하여 시스템 후 시뮬레이션과 합성, 배선을 완료하며, Altera가 제공하는 IP 핵심을 충분히 이용하여 프로그램 모듈을 최적화한다;최상위 설계는 상자 그림 입력법을 사용하여 모듈 간의 데이터 흐름을 상자 그림으로 보다 직관적으로 나타냅니다.FPGA 기반 PCB 보드 테스터 하드웨어 제어 시스템은 PCB 보드 테스터의 테스트 속도를 높이고 회로 설계를 단순화합니다.또한 FPGA의 재구성 가능한 특성으로 인해 시스템 소프트웨어 알고리즘과 하드웨어 구조의 추가 최적화 업그레이드에 좋은 기초를 마련했으며 PCB 보드에서 좋은 응용 전망을 가지고 있습니다.