사용자 도구

사이트 도구

English

cublocapp:an61001:index

AN61001 - MCU엔지니어에게 제안하는 HMI + MCU솔루션 (터치스크린, 터치패널 과 마이컴)

본 내용은 어플리케이션 노트라기 보다는, 제안서에 가깝습니다. MCU를 쓰시는 분을 대상으로 HMI + MCU 솔루션을 설명드리고자 만든것입니다.

MCU가 무엇이냐구요? MCU는 원칩 마이크로 콘트롤러를 뜻합니다.

MCU안에는 CPU, I/O, MEMORY가 모두 들어 있어서, 추가적인 부품이 없어도 제품의 두뇌 역할을 할 수 있죠.

예전에는 스위치와 LED만 가지고도 동작되는 기기를 많이 만들었는데요.

요즘은 조그만걸 하나 만들더라도 터치스크린 인터페이스를 원하는 경우가 많습니다.

스마트폰이 보급되면서 일반 소비자들도 터치스크린 조작에 거부감이 없어졌고, 완성된 제품이 뭔가 그럴싸해 보이는 효과까지도 가지고 있으니까요. 업체 입장에서도 경쟁에 유리할 뿐더러 제품가격도 더 받을 수 있어서 부가가치가 높기 때문입니다.

MCU 엔지니어 입장에서는 그만큼 할일이 더 늘어난 셈이 되었습니다. LED와 스위치만으로 한다면 8비트 MCU 하나로 해결될 일인데, LCD디스플레이와 터치입력을 받기 위해서 32비트 MCU는 써주어야 하니까요.

32비트 MCU중에서도 LCD인터페이스가 가능한 칩을 선정해야 합니다. 이런 칩들은 핀 수도 엄청 많죠.

어찌어찌 회로를 구성했다고 해도, 이제부터 골치아픈일의 연속입니다.

LCD화면에 글자 하나라도 나오게 하려면, 공부해야 할 것이 산더미입니다. 폰트는 어떻게 할까요? 트루타입폰트는 언감생심 꿈도 못꾸고, 비트맵폰트라도 구해서 표시해야 합니다.

하지만, 고객은 환타스틱한 그래픽 화면을 원하고 있죠. 뭔가 부족하기 때문에 어쩔 수 없이 jpg나 png 그래픽 파일 포맷을 공부해서, LCD화면상에 뿌리는 방법밖에는 없어 보입니다.

이 역시도 만만한 일은 아니죠.

jpg나 png 그래픽 파일은 용량이 큰 경우가 많기 때문에 MCU의 플레쉬 메모리에 저장하기는 곤란합니다. SD카드에 저장해서 불러오는 수 밖에 없습니다.

SD카드에는 FAT 이라는 파일 포맷으로 저장해야 됩니다. 그래야 PC에서 만든 그래픽 파일을 SD카드로 옮길 수가 있습니다. MCU엔지니어는 SD카드의 FAT포맷을 해석해서 그래픽 파일을 LCD화면에 뿌려주는 작업을 해야하는 것이지요.

폰트작업, 그래픽 포맷분석, FAT파일 포맷이해등이 우선 해결해야할 과제입니다.

그런데, 왠지 개발방향이 산으로 간 느낌입니다. 실제 제품이 가져야할 본래기능은 아직 시작하지도 않았는데 말입니다.

만약 터치스크린형 온도콘트롤러를 개발하고 계시다면, 온도 제어쪽은 코딩하기도 전인데, 터치 인터페이스 쪽을 만들다가 힘이 다 빠져버릴 지경입니다.


이제부터 제가 제안하는 HMI + MCU 솔루션 얘기가 시작됩니다.

사실 HMI는 아주 오래전부터 자동화 분야에서 쓰이고 있었습니다.

HMI는 주로 PLC와 연결해서, 공장 자동화 기기를 만드는데 쓰입니다. 터치 스크린 유저 인터페이스는 HMI가 담당하고, 제어는 PLC가 담당하는 구조입니다.

HMI 라는 용어도 Human Machine Interface라는 뜻입니다.

이 세상에 존재하는 모든 HMI가 가지고 있는 공통적인 특징중 첫번째는, 작화 프로그램을 제공한다는 것입니다. 마치 파워포인트를 사용하는 것 처럼 그림을 그리듯 한화면 한화면을 완성해가는 것입니다.

두번째는 RS232C와 같은 시리얼 통신을 이용해서 PLC와 연결한다는 것입니다. HMI 와 PLC가 서로 데이터를 교환해가면서 일을 하는 것이지요.

저는 이런 구조를 MCU 엔지니어들도 가져다 쓰면 좋겠다는 생각을 오래 전부터 하고 있었습니다.

그러면 복잡한 LCD제어와 폰트제작, FAT파일포맷을 구지 할 필요없이, 바로 개발하고자 하는 제품의 본질에 바로 접근할 수 있기 때문입니다.

앞에서 터치스크린형 온도콘트롤러 예를 들었었죠? 유저인터페이스는 HMI에 맡겨버리고, 바로 온도콘트롤러 부분을 코딩할 수 있다는 뜻입니다.

그러면 개발 기간도 줄어들고, 유지보수도 간편해질 것입니다.


이미 세상에는 많은 종류의 HMI가 있습니다. 하지만 제가 두루 살펴보니 이미 존재하고 있던 HMI 제품들은 자동화 분야에 초점을 맞춰서 개발한 제품이라서, MCU 어플리케이션에는 왠지 어울리지 않더군요.

가격도 비싸고, MCU어플리케이션에는 불필요할 정도로 너무 많은 기능이 탑재되어 있었습니다.

또한 전면에 로고가 있는 케이스가 대부분이라, 사출케이스를 적용한 상업용기기에는 적합하지가 않았습니다. 아래와 같은 형태의 제품이라면 기존 HMI를 사용하기가 어렵습니다.

그래서 HMI + MCU어플리케이션에 적합한 HMI는 어떤 것일까 하고 생각해 보았습니다.

우선 가격적인 부분이겠지요. MCU어플리케이션은 양산을 염두에 두고 있는 제품이 대부분이 때문에 가격에 매우 민감합니다. 기존 HMI제품들은 비교적 높은 가격대를 형성하고 있어서 양산에 적용하기는 조금 부담스럽더군요.

앞서 기존 HMI 제품들은 너무 많은 기능을 탑재하고 있다고 얘기했습니다. 그렇다면 불필요한 기능을 제거하고 가격을 낮추면 어떨까하고 생각해 보았습니다.

그리고 플라스틱 사출물에도 적용할 수 있는 오픈프레임형 HMI가 필요합니다.

그 결과, 저희회사에서 CHA시리즈라는 HMI 제품을 만들게 되었습니다.

저희 회사의 HMI 도 기존 HMI 제품처럼 작화 프로그램을 제공합니다. 쉽게 화면에 버튼과 그래픽요소(선,원,박스)를 그리고 편집할 수 있습니다.

작화된 화면은 USB케이블을 통해서 HMI 기기로 다운로드하면 됩니다. 그러면 곧바로 동작가능한 상태가 됩니다.

HMI 와 MCU는 RS232C로 연결합니다.

이제 둘 사이에 데이터를 교환하는 일만 남아있습니다. 여러종류의 프로토콜이 있습니다만, 저희회사는 MODBUS를 선택했습니다. 오랜기간 안정성이 검증된 프로토콜이기 때문입니다.

MCU에서 MODBUS를 구현하기 위해서 여러분이 고생하지(?)않아도 됩니다. 저희회사에서 STM32에서 돌아가는 C언어로 작성한 Simple MODBUS 소스코드를 제공해드리고 있습니다. (Simple MODBUS란, 기존 MODBUS를 좀더 간결하게 다듬은것입니다.)

아래 동영상은 이 소스코드를 가지고 HMI와 MCU가 함께 동작되고 있는 영상입니다.

사실 대부분의 MCU는 C언어를 지원하고 있기 때문에, 다른 회사의 MCU를 쓰시는 분들도 이 소스코드만 있다면, 적절히 변환해서 해당 MCU에서 동작되도록 고쳐 쓰실 수 있을 것입니다.


최종 유저는 해당 제품이 HMI + MCU 솔루션인지, 아니면 MCU에서 직접 LCD와 터치를 제어하는 것인지 알 수가 없습니다. 관심도 없을 것 같습니다.

MCU엔지니어는 코딩의 양이 줄어들고, 회로가 간단해져서, 빠른시간안에 개발을 마칠 수 있을 것입니다.

나중에 그래픽 화면 수정요구가 온다면, MCU 코드를 건드릴 필요없이 HMI 작화프로그램 상에서 화면을 수정하고 HMI 에 다운로드하는 것만으로도 끝낼 수 있을 것입니다. 유지보수가 한결 간편해지겠지요.

지금도 터치스크린 인터페이스를 필요로하는 제품은 많은 수요가 있는 것으로 알고 있습니다.

HMI + MCU 솔루션을 알고 있는 당신이라면, 이런 시장의 요구에 좀더 빠르게 대응하고, 유지보수도 원만히 해결해줄 수 있지 않을까요?

한단계 뒤로

cublocapp/an61001/index.txt · 마지막으로 수정됨: 2017/10/20 19:25 저자 Comfile Technology