Thursday, February 23, 2017

PCI / USB 디바이스 드라이버를 쉽게 작성하도록 도와주는 WinDriver 디바이스 통합 개발 툴 소개 (Linux, Windows, Windows CE 환경 지원)

거 Windows에서 디바이스 드라이버 개발하는 개발자를 찾기란 하늘에 별따기였다. 이 영역은 하드웨어에 대한 이해도 필요하며 Windows에서 제공하는 디바이스 드라이버 개발 키트(Windows Device Driver Development Kit)에 대한 win32 기반 코드도 이해를 해야 하기 때문이다. 이런 이유 때문에, 보통 펌웨어(Firmware) 개발자를 찾아 학습을 해서 Windows 용 디바이스 드라이버를 개발하곤 했다. 


D810, 105.0 mm f/2.8 - PCI 기반 디바이스

근 하드웨어 사용이 좋아지며 고성능 PC를 서버급 데이터 처리하는 도구로 활용하는 일이 빈번해졌다. 그런데, 문제는 고사양 Graphic 카드를 원하는 대로 이용하기 위해서는 내가 사용하는 OS에 맞도록 Device Driver(디바이스 드라이버)를 새로 개발해야 되는 상황도 생긴다는 것이다. 특히 Windows 용 Device Driver는 지원하는데, 나는 Linux OS를 사용해야 한다면 어떨까?


D810, 105.0 mm f/2.8 - 고사양 CPU가 이중화되어 있는 PC


"OS에 대한 배경지식을 잘 몰라도PCI/USB에 대한 기본 지식만 있으면비교적 쉽게 Wizard처럼 IDE(통합개발 툴) 환경에서 디바이스 드라이버(Device Driver) 개발이 가능하다."

과거 맨땅에(?) 디바이스 드라이버를 개발했던 개발자라면 깜짝 놀랄 일이다. 이스라엘 기반의 정고(Jungo) 사의 WinDriver 소프트웨어를 이용하면 비교적 쉽게 디바이스 드라이버를 개발할 수 있다.

WinDriver IDE(통합 개발 툴)의 스크린 캡처

D810, 105.0 mm f/2.8 - PCI 기반 디바이스
WinDriver 소프트웨어를 실행하고 PC에 USB 혹은 PCI 기반의 Device Driver를 연결하면, 자동으로 WinDriver 소프트웨어가 이를 인식하고 화면에서 Device Driver를 선택할 수 있도록 도와준다.

X-Pro2, Leica Summicron M 50mm F2
이제 Device 의 상세 설정(Configuration)을 하고, Target OS(대상 운영체제)를 선택하면 Windows 기반인 경우 Visual Studio 기반으로 예제 코드 및 바로 Build 가 가능한 프로젝트 파일을 만들어 준다. Linux의 경우, GCC로 Build가 가능한 Make 파일을 생성해 준다.

X-Pro2, Leica Summicron M 50mm F2
우리의 예시는 Windows 환경에서 개발하므로 Visual Studio 그리고 내가 사용하고 개발 Tool 버전을 선택한다. 그리고 OK.

WinDriver IDE(통합 개발 툴)에서 생성한 Device Driver를 개발 가능한 Project를 Visual Studio에서 열어 보았다.


"OS에 지식 없이 
WDD(Windows Device Driver) SDK에 대한 지식 없이
WinDriver 통합 개발 툴에서 설정을 통해서
Device Driver를 만들 수 있는 Project를 생성해 준다."

아마 과거 직접 Device Driver를 개발해본 개발자라면, 이쯤이면 감동이 밀려올 것이다.




욱 좋은 일은 우리 기업 내부에서 사용할 목적이 아니라, 배포를 위한 Device Driver를 개발한다면 WHQL Ready 인증을 받아야 한다. WinDriver로 개발된 Device Driver 와 관련된 Code는 Windows Hardware Quality Labs (WHQL) ready 인증을 바로 받을 수 있는 코드를 생성해 준다. 우리가 Application과 Interface(인터페이스) 할 코드만 WHQL ready 인증을 염두에 둔다면 인증을 받는 것 또한, 시간을 크게 절약할 수 있다.

D810, 105.0 mm f/2.8

D810, 105.0 mm f/2.8
D810, 105.0 mm f/2.8

WinDriver를 도입하는 비용은 개발자가 Device Driver를 개발하며 고생한 시간보다 저렴하다. 그런데 만약 한 번 이상 Device Driver를 개발해야 하는 상황이라면, 굳이 고민하지 말고 Jungo 사의 WinDriver를 검토하라고 권장하고 싶다.

WinDriver에 대한 문의는 (주)디오이즈 성원호 대표 (whsung@dioiz.com)


Share:

Thursday, February 16, 2017

네오와인(Neowine) 보안 칩으로 소프트웨어 제품에 락(Lock)을 걸어보자. (하드웨어보안 Key Dongle 소개)

소프트웨어(Software) 개발 업체라면 한 번 이상 다음과 같은 물음을 던진 적이 있을 것이다.

"누가 내 소프트웨어를 복제해서

사용하면 어떡하지?"

PC뿐 아니라, Embedded 환경에서도 소프트웨어 복제 사용해 대한 우려는 크다. 내가 어렵게 개발한 제품을 누군가 그대로 하드웨어를 복제하고 소프트웨어를 (Firmware) 전체를 복제해서 나와 동일한 제품을 판매한다면 기가 막힐 것이다.이런 고민에 대한 시원한 해답을 얻을 수 있는 제품을 소개하고자 한다.



네오와인사는 Micro SD카드 타입과 Chip 형태의 하드웨어 보안 제품을 판매한다.


* 데이터 암호화 복호화 (AES-128 bits Encryption / Description) 

* SHA-256 Authentication - 암호화 key를 이용한 하드웨어 키


오와인의 Dorca라는 상품은 두 가지 기능이 있다. 하나는 데이터를 암호화 복호화 하는 기능이다. 이는 SSL / TLS 소프트웨어로 할 수 있는 기능이지만, Embedded(임베디드) 환경에서 리소스가 부족해서 SSL/TLS 의 porting을 포기해야 했다면 Dorca 하드웨어 칩으로 이런 기능을 외부에서 처리할 수 있다.
특히 Micro SD카드로도 제품이 지원되기 때문에, 핸드폰의 App(어플)을 개발했는데, 이 App 내부의 데이터를 암호화하고 싶다면, Micro SD카드 타입의 제품을 이용해서 제품을 개발하면, 핸드폰의 App을 누가 취득해서 설치했더라도 보안 SD카드가 없으면 Data를 읽을 수 없다. 혹은 App 자체의 실행을 중단하게 만들 수도 있을 것이다.





제품의 주요 기능에 대해서는 사진을 Click 해서 크게 보면 주요 기능에 대한 Flow chart(플로 차트)를 확인해 볼 수 있다. 이번에는 소프트웨어를 실행할 때 보안 키가 없으면 소프트웨어 자체가 실행되지 않는 사례를 좀 더 자세히 소개해 본다.



누구나 쉽게 테스트해 볼 수 있도록 테스트 환경은 Raspberry Pi 보드를 이용하였다. 물론, 어떤 보드라도 관계는 없지만, Raspberry Pi는 대부분 Embedded Engineering 회사라면 테스트 용도로 한두 개씩 갖고 있기 때문에, 좋은 실험 재료가 된다.
이제 매우 간단한 테스트 C 프로그램을 작성해 본다.



"authentication.h"라는 네오와인에서 제공하는 library(라이브러리)를 첨부하고, 테스트 프로그램은 인증이 되면 "Authentication Success"라는 메세지가 출력되도록, 실패하면 "Authentication failure"라고 하면서 프로그램을 종료하는 것이 테스트 프로그램의 역할이다.


이제 프로그램을 실행하기 위해서 GCC 컴파일러로 빌드하고 실행해보면 된다.




이렇게 보안칩을 연결한 상태에서 프로그램을 실행하면, "Authentication Success"라는 메세지와 함께 프로그램이 실행될 준비가 된다. 그런데 보안칩이 없는 상태에서 프로그램을 실행하면,



이런 메세지를 출력하며 프로그램이 실행이 실패되었다는 메세지를 볼 수 있다.



사실 하드웨어 키를 이용해서 소프트웨 자산을 보호하는 방법은 국내에는 비교적 생소하지만, 해외 소프트웨어 업체는 일반적이라 할 수 있다. 내 소프트웨어가 불법 복제되는 것보다는 아무래도 보호를 할 수 있다면 하는 것이 현명하다.




진의 USB Drive 제품은 AES 128 bit Encryption / Decryption 을 지원하는 제품이다. 데이터를 보호하는 목적으로 이용되는데, USB Drive 제품을 분실하더라도 안에 저장되어 있는 제품은 안전하니 걱정할 필요 없다.
네오와인 DORCA는 이런 하드웨어 키 + 데이터 보안을 목적으로 하는 업체라면 반드시 검토해보아야 할 필요가 있다. 칩 자체가 원가에 큰 부담을 주지 않기 때문에 의사결정이 비교적 용이하다. 
만일 우리 소프트웨어 제품이 royalty 가 있다고 하면 더욱 이 하드웨어 보안키에 대해서 검토할 필요가 있을 것이다. 대부분 Royalty count는 업체를 믿고 업체의 수량 보고서에 의존하는데, 하드웨어 키가 있다면 하드웨어 칩의 개수를 count 하면 객관적인 입증이 용이하다. 
DORCA보안칩을 이용한 개발에 관한 문의는 (주)디오이즈 성원호(whsung@dioiz.com)
Share:

Friday, February 10, 2017

[Dioiz] Looking for a local distributor (Rep) with the engineering capability?

Looking for a local representative who could provide a in-depth technical support? Dioiz has been in embedded engineering service company over a decade in Korean market. We started out by engineering training service company where students from a various companies now become our customers. Both engineering training experience and rich embedded engineering services enabled Dioiz to be a perfect candidate for solutions representative.

X-Pro2, XF35mm F/1.4R
When it comes to embedded solutions, not only someone needs to have existing sales channels(networks) but also a distributor(rep) should be able to provide a first line of technical support. This is especially important where Korean customers expect face to face meetings when they need a technical support. 

"Please wait another day.
Then I will get you answers from the headquarters."

I am afraid, this response will ensure you will lose the opportunity immediately by losing credibility. So again, it's critical that local representative(distributor) has the ability to provide a first line of technical support. In this regards, Dioiz is more than qualified.

X-Pro2, XF35mm F/1.4R

Often times, Korean customers expect a local distributor to provide a custom engineering service. If you offer a solution SDK, you often have to deal with custom engineering service requests using a solution SDK. Dioiz accomplished a lot of custom engineering services over the years, so this won't be a problem at all.

X-Pro2, Touit 32mm F/1.8
"Engineering Training"

Any solution SDK requires a learning time to fully understand it. So throwing a good training at early period will save lots of support time during the whole support period. With this reason, we can minimize support load substantially. Sometimes, we ask customers to bring their target devices at the time of training. By giving them hands-on training on their target devices, we were able to help customers understand a solution SDK as quickly as possibly. 

X-Pro2, Touit 32mm F/1.8
Sometimes, a training with a popular EVM(evaluation board) from silicon vendors helps as well. Of course one can refer to developer's manual at all times, but when you learn about the big picture via a general training, documents are more useful and easy to fill the details.

X-Pro2, XF35mm F/1.8
"Location matters in Korea."

This might be also true in any place over the world, but location really matters in Korea. Dioiz is located at the center of GangNam street. If you're looking for a local distributor or representative, Dioiz can be your perfect partner.

If you wish to explorer Dioiz, please don't hesitate to contact us at  whsung@dioiz.com (WonHo, Sung, President)

Share:

Friday, February 3, 2017

Embedded 기기에 화려한 GUI를 - STB(셋톱박스), 맥주 브루, 측정기 기기의 UI 성공사례


톱박스(Set top box)는 이제 TV를 이용하는 유저라면 필수품이 되었다. 애플 TV 같은 경우는 iTunes의 음악뿐 아니라, 게임까지 셋톱박스를 통해서 할 수 있다. 이단 애플 TV뿐 아니라, 국내에서 출시된 셋톱박스의 경우도 다양한 서비스를 제공하고 있다. 특히 홈쇼핑 경험을 더욱 편하게 할 수 있도록 결제까지 한 번에 셋톱박스로 할 수 있도록 만드는 시스템까지 소개되고 있다.

 셋톱박스의 경우 당연히 UI(User Interface:사용자의 메뉴 조작 방법)를 통한 UX(User Experience:사용자 경험)을 편하게 만들어야 한다. 사용이 불편하다면 기능이 아무리 좋아도 구매로 이어지지 않는다. 또한, 디자인 등 스마트폰의 UI에 익숙한 유저에게 유사한 경험을 제공할 수 있어야 한다. 문제는 보통 Set-top-box의 경우 저전력, 저사양 CPU를 사용하면서 Embedded OS(RTOS 혹은, Embedded Linux)를 사용하는 경우가 일반적인데, 이런 시스템에서는 화려한 GUI(Graphic User Interface)를 만들기 쉽지 않다는 것이다.

 

런 고민을 말끔히 해결할 수 있는 솔루션이 소개되었다. 독일 소재의 TARA Systems는 오랫동안 OS 조차 없는 firmware (펌웨어) 기반의 제품에 GUI를 쉽게 넣을 수 있는 IDE(통합 개발 환경) 툴을 개발해 개발자에게 공급하고 있다. 이 툴의 가장 큰 장점은 개발 환경이 있는 PC에서 타겟 하드웨어에서 동작하는 내용을 미리 Simulation(시뮬레이션)을 통해 확인할 수 있으며, 하드웨어의 의존도가 없는 GUI의 경우, 기 개발된 프로젝트를 다른 하드웨어에 맞도록 Build 만 해서 재활용이 가능하다는 점이다.




BrauEule III 제품은 TARA Systems의 Embedded Wizard를 활용하여 개발된 제품이다. 과거 UI 조차 없던 Brew(브루) 기계에 여러 가지 기능을 수행할 수 있는 UI를 넣어 제품화 한 것이 장점이다. 이 Brew 기계의 가장 큰 장점은 Automatic(자동 브루) 기능과 Custom(사용자가 조건을 선택할 수 있는 브루) 방법을 선택할 수 있도록 GUI가 제공된다. 맥주 공정에 대해서 잘 모르는 사람도. Automatic 모드에서는 맛난 맥주를 만들 수 있게 된 것이다. 



프트웨어 개발을 잘 모르는 맥주회사도 Embedded Wizard 의 IDE Tool 덕분에 직관적인 메뉴를 쉽게 만들 수 있었다. 아마 이런 메뉴를 과거 Embedded System 개발하듯이 하드코딩했다면, 개발 공정도 길어졌겠지만, 직관적인 GUI를 만들기보다는 개발 관점에서 쉽게 구현 가능한 GUI가 탄생했을지도 모른다.






OS가 사용되기 어려운 측정기도 문제없다.


론, IDE(통합 개발 툴)을 사용하는데 필요한 러닝타임은 필요하다. 하지만, 한번 노력을 들여 툴 사용법을 익히면 그다음부터는 쉽게 여러 가지 Embedded Platform(임베디드 플랫폼)에 GUI를 개발할 수 있고, 기존 프로젝트에 사용했던 GUI project 도 대부분 재활용 가능할 수 있기 때문에, 전체 프로젝트 공정 시간이 크게 단축될 수 있다.

Embedded Wizard에 대해서 궁금하다면, http://www.embedded-wizard.de/success-stories.html 의 성공사례를 검토해보는 것이 좋겠다. 동영상 데모도 포함되어 있다.

Embedded Wizard 에 관한 문의는 (주)디오이즈 성원호(whsung@dioiz.com)

Share: