마이크로게이트 - I2C 컨트롤러
Author(s):
이제형 차장 - 마이크로게이트
Industry:
Telecommunications
Products:
LabVIEW
The Challenge:
본사에서는 입증된 I2C 컨트롤러를 구성하기 바랬고, 그 와중에 NI의 I2C 컨트롤러 신제품을 본사의 소자와 연결을 했을 때 즉시 소자가 구동되었다.
The Solution:
칩을 개발하는 단계에서 칩의 I2C 컨트롤에 문제가 없는지를 평가해야 되고, 차후에는 양품과 불량품을 검사하기 위해서도 사용될 것이다. NI에서 개발된 I2C 컨트롤러는 사용의 편의성과 호환성에서 아주 뛰어났다.
"LabVIEW의 경우 라이브러리가 잘 되어있기 때문에 빠른 시간에 프로그래밍을 할 수 있어 시간적인 절약을 많이 했다. 개발에 있어서 가장 중요한 요소가 시간 단축인 것에 비추어 보면, 이루 말할 수 없는 효과를 얻었다고 결론 내릴 수 있다. "
요약 :
이 시스템은 상용 반도체 칩과 통신하여 칩을 컨트롤하고, 칩이 보내는 정보를 받아 들이는 시스템이다. 본사에서 개발하는 소자는 지구 자기장을 측정해서 방향을 지시해주는 전자 나침반이다. 이 칩의 경우 방위를 읽고 싶은 장비에 탑재되게 된다. 칩이 탑재된 후 매인 보드에서 칩을 컨트롤 할 때 사용되는 방식이 주로 I2C이다. 본사에서는 칩을 개발하는 단계에서 칩의 I2C 컨트롤에 문제가 없는지를 평가해야 되고, 차후에는 양품과 불량품을 검사하기 위해서도 사용될 것이다. NI에서 개발된 I2C 컨트롤러는 사용의 편의성과 호환성에서 아주 뛰어났다. I2C로 통신이 이루어진 다음 해야 할 일은 칩에서 얻은 데이터를 계산해서 방위로 환산하는 작업이다. 칩에서는 간단히 x, y, z의 지구 자기장 값만을 주기 때문에 그것을 가지고 방위를 환산하는 작업 또한 쉬운 계산은 아니다. 이 장비는 위에 설명한 모든 작업을 할 수 있도록 구성된 시스템이다.
개발 배경 :
1. 처음으로 소자를 개발하는 단계에서 소자와 I2C 컨트롤러를 연결해서 통신을 했을 때, 만약에 통신이 되지 않는다면 곤란해 진다. 소자의 문제인지 아니면 I2C 컨트롤러의 문제인지 파악하기 힘들기 때문이다. 그래서 본사에서는 입증된 I2C 컨트롤러를 구성하기 바랬고, 그 와중에 NI의 I2C 컨트롤러 신제품을 본사의 소자와 연결을 했을 때 즉시 소자가 구동되었다.
2. 처음 개발 단계에서 국내 업체에게 I2C 컨트롤러 제작을 의뢰했고, 비용도 많이 소요되었다. 하지만 그 업체에서 제작해온 컨트롤러는 동작하지 않았다. 소자의 문제인지 컨트롤러의 문제인지를 파악할 수 가 없었다. 대안으로 NI의 이 컨트롤러를 구매 하려고 하자 기간이 오래 걸려서 일단 NI에 협조를 요청해서 데모로 사용하고 있는 I2C 컨트롤러를 대여 받아 본사의 소자와 연결해서 프로그래밍 했다. 이런 작업을 처음 해보는 것이라 쉽지는 않았지만 2일 만에 본사의 칩을 구동시키는데 성공했다. 행운이었다. 만약에 NI에서 이런 제품이 나오지 않았다면 외주한 I2C 업체만 바라보며 어디에 문제가 있는지 시간만 보냈을 것이다. 더욱이 I2C 제작 업체에서는 소자의 문제라고 우기고 있던 차라, 본사에서는 정말 다행이라 생각했다.
본론
하드웨어
시스템의 구조는 아주 간단하다. USB-8451과 Pull Up 저항 두 개와 칩을 연결하면 끝이다. 이 컨트롤러의 경우 플로우 차트와 SubVI들이 다 제공되었기 때문에, 칩 자체를 컨트롤 하는 것은 쉬운 일이었다. 물론 처음 해보는 작업이라, Pull Up 저항이 무엇인지도 몰랐다. 하지만 매뉴얼을 보면서 차근차근 해보니 그리 어렵지 않게 구현 할 수 있었다. 그림 1은 I2C 컨트롤러와 소자를 연결하기 위한 간략한 회로도이다. 노이즈를 방지하기 위한 몇 개의 콘덴서와 저항들로 구성되었다.

그림 1. I2C 컨트롤러와 소자를 연결하기 위한 회로도
소프트웨어
그림 2는 프런트 패널과 블록다이어그램이다. 칩을 구동시켜, x, y, z 데이터를 읽어 들이고, 이것을 계산해서 방위를 판별해주는 프로그램이다. 이 프로그램 중앙에 위치한 지도가 키 포인트이다. 방위에 따라 나침반이 움직이는 것은 어느 정도 구현 할 수 있지만 그림이 방위에 따라 움직이는 것은 그리 쉽지 않았다. NI에서 제공해주는 라이브러리를 이용해서 방위에 따른 지도의 회전을 구현할 수 있었다. 단지 방위만을 가지고 데모를 하면 상대방의 흥미를 유발하기 힘들지만 나침반의 회전이라던가 아니면 지도의 회전 같은 것을 보여 줌으로써 상대방에게 더욱 관심을 갖게 하기에 충분했다. 블록다이어그램을 보면 칩에서 데이터를 가져와 계산하는 부분과 계산된 값으로 나침반과 지도를 돌리는 부분으로 나뉘어져 있다. 이 각을 계산하기 위해서는 수학적으로 많은 계산이 요구되는데, 대부분을 LabVIEW 자체에서 지원해주기 때문에 논리적인 접근만 할 수 있다면, 수학적인 계산은 간단히 해결된다. 장비 자체는 아주 간단하고 가격도 저렴한데 비해서 본사에서 느끼는 효과는 정말 대단했다.


그림 2. 전자 나침반 구동 프로그램
결론 및 솔루션 개발 후 얻게 된 이점
본사에서 개발한 나침반 소자를 컨트롤 해서 데모용 프로그램을 완성하였다. 컨트롤러 자체의 크기도 소형이고 노트북에 USB로 연결되기 때문에 데모용으로 휴대하기가 편리했다. 또한 우수한 그래픽을 지원해 주기 때문에 데모용으로 정말 적절했다. 본사에서 개발한 소자는 전자 나침반으로 방위를 식별해준다.
데모용 프로그램은 프런트 패널중앙에 지도를 위치 시켜 놓고, 소자를 움직이면 그 방향으로 지도가 움직이게 되어있다. 이 정도의 프로그램을 C나 다른 기타 언어로 프로그래밍 하기란 쉽지 않을 것이다. 하지만 LabVIEW의 경우 라이브러리가 잘 되어있기 때문에 빠른 시간에 프로그래밍을 할 수 있어 시간적인 절약을 많이 했다. 개발에 있어서 가장 중요한 요소가 시간 단축인 것에 비추어 보면, 이루 말할 수 없는 효과를 얻었다고 결론 내릴 수 있다.
Related Case Studies
마이크로게이트 - 모션과 비전을 이용한 자동 측정장비삼성테크윈 - 가스터빈 엔진의 컨트롤 시스템 시뮬레이터 설계
대우일렉트로닉스 – 세계 최초 MPEG 동영상 재생의 연속 회전디스크 홀로그래픽 저장장치를 위한 CompactRIO 서보 컨트롤 시스템
㈜NEX-D - 다이나모미터 데이터 수집 & 컨트롤 시스템
Qualimatest sa - 반도체 생산 자동화를 위한 제어 시스템
|
|
