본문 바로가기
임베디드

[임베디드] 하드웨어 테스트지그

by 코딩히어로 2020. 9. 29.
728x90

임베디드 시스템에서는 서버나 애플리케이션과는 다르게

오로지 프로그램뿐만이 아니라 하드웨어라는 부분까지 고려해야 합니다.

 

모든 시스템 설계를 끝내고 생산에 들어가기 전에 반드시 테스트해야 되는 것이

프로그램상 오류는 없는지와 하드웨어적인 결함이 없는가를 체크해야 합니다.

 

오늘은 제가 회사에 입사하여 첫 프로젝트로 진행했었던 테스트 지그 제작에 대한 이야기를 풀어볼까 합니다.

예시로 사용된 프로그램은 현재 시중에 판매중인 원격 시동 제어기 테스트 지그입니다.

 

 

1. 무엇을 테스트해야 하나


 

임베디드 제품의 테스트는 기본적으로 소프트웨어적인 부분보다는

물리적인 부분에 문제가 없어야 된다는 점에 기반해야 합니다.

 

왜냐하면 소프트웨어적인 문제는 프로그램 수정 및 업데이트를 통하여 추후에도 수정이 가능하지만

하드웨어적인 결함은 생산공정을 다시 해야 할 만큼 까다롭기 때문입니다.

 

그럼 여기서 우리는 하드웨어 테스트라는 점에 초점을 맞추고 지그를 제작해봅니다.

 

임베디드 시스템의 하드웨어는 물리적 PCB를 통하여 구성되어 있으며

이러한 PCB기판에 전류가 통하는 라인들로 이어져 결국은 메인 CPU칩과

상호작용을 통해 전류적인 제어를 하게 됩니다.

 

결국 전류신호가 제대로 CPU까지 입력되고 출력되는지 라인 테스트를 통해 가능합니다.

 

 

2. 라인 테스트 무슨 말인가


기본적으로 라인은 A지점에서 B지점까지 연결되어 전류를 통해 신호를 전달합니다

이러한 내용에 기반하여 라인 테스트는 물리적인 두 가지 방안에 초점을 맞추고 진행합니다.

 

 

1) 단절 체크

 

첫 번째로 테스트되어야 하는 항목은 단절 부분입니다.

A지점에서 B지점으로 신호를 주어야 하는데 라인이 끊어져있으면 당연히 전달이 안 되겠죠

 

2) 쇼트 체크

 

두 번째 테스트되어야 하는 항목은 쇼트 부분입니다.

A지점에서 B지점으로 신호를 주었지만 다른 라인과 쇼트가 난 경우

테스트하는 라인 외의 다른 신호 C가 같이 입력이 되겠죠

 

테스트 지그에서는 이 두 가지를 체크하며 하드웨어 테스트를 진행합니다.

 

 

 

3. 간단한 테스트 지그 알고리즘


그렇다면 이제 시스템을 설계하기 위한 가장 기본단계인 알고리즘에 대해 알아볼게요.

테스트 지그는 위의 두 가지의 경우가 거의 모든 테스트이기 때문에

알고리즘 자체는 복잡하지 않고 단순합니다

 

총라인의 개수만큼 순차적으로 신호를 주어서 테스트하는 방식입니다.

 

예를 들어 총 24개의 테스트 라인이 존재한다면

24개의 순서를 정해서 한라 인식 신호를 주고

정상적으로 신호가 들어오는지 아니면 한 번에 두 개 이상의 신호가 쇼트가 나서 들어오는지 등을 체크합니다

 

여기에 만약 통신라인(RS232, I2C, CAN 등)이 존재한다면 IO신호 후에 확인 ACK는

통신 신호를 만들어서 체크하면 됩니다

 

(그림은 실제 회사의 테스트 지그 내용이므로 참고만 부탁드립니다)

 

즉 위 그림과 같은 통신 순서 알고리즘이 설계되었습니다

 

 

 

4. 복잡한 시스템에는 적합하지 않다


지금 위에 언급된 테스트 지그는 지극히 단순한 시스템 즉

테스트가 필요한 IO 및 통신라인이 30개 이하인 시스템에서 적용할만합니다.

 

그 이유는 라인마다 보드와 지그를 연결하는 하네스(연결선)를 제작하여야 하고

연결되어야 하는 선의 커넥터수가 많아짐에 따라 테스트를 진행하는 작업자가

한 번의 테스트를 위해서 소모해야 되는 시간과 비용이 너무 크기 때문입니다.

 

즉 복잡한 시스템은 요즘 연결적 테스트 지그가 아니라 접촉식 테스트 지그를 제작하여 많이 사용합니다.

 

이러한 테스트는 양산 프로그램 개발단계의 샘플링 시점에 제작하여 사용하는 것을 추천드립니다.

728x90
반응형

댓글