<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NTREXGO - 디바이스마트, 엔티렉스 컨텐츠 통합 사이트 &#187; 7호</title>
	<atom:link href="http://www.ntrexgo.com/archives/tag/7%ed%98%b8/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ntrexgo.com</link>
	<description>엔티렉스, 디바이스마트 컨텐츠 통합 사이트</description>
	<lastBuildDate>Thu, 03 Mar 2022 06:47:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>[7호]2010 캡스톤 우수상 &#8211; 전자 오카리나</title>
		<link>http://www.ntrexgo.com/archives/8583</link>
		<comments>http://www.ntrexgo.com/archives/8583#comments</comments>
		<pubDate>Wed, 25 May 2011 09:07:50 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[특집]]></category>
		<category><![CDATA[7호]]></category>
		<category><![CDATA[공모전]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[오카리나]]></category>
		<category><![CDATA[전자]]></category>
		<category><![CDATA[캡스톤]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=8583</guid>
		<description><![CDATA[디바이스마트 매거진 7호 &#124; 2010캡스톤 공모전 우수작! 오카리나는 도자기피리 또는 흙피리로 불리는 악기입니다. 이런 예명을 갖게 된 이유는 진흙으로 모양을 만들고 가마에서 구워서 완성되기 때문입니다. 연주하기에 쉽고 가격도 비교적 저렴하고 소리도 좋아 취미로 많이 각광받고 있습니다.악기 소리와 기계적인 비프음의 차이는 크게 두 가지가 있습니다. ]]></description>
				<content:encoded><![CDATA[<h3><span style="color: #808080"><span style="color: #333399"><br />
<a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP013.jpg" rel="lightbox[8583]"><img class=" wp-image-8739 alignleft" alt="07FCAP013" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP013-300x172.jpg" width="240" height="138" /></a>2010 디바이스마트 </span></span></h3>
<h3><span style="color: #808080"><span style="color: #333399">캡스톤 디자인 공모전 우수작</span></span></h3>
<h2><span style="color: #000000"><strong>전자 오카리나</strong></span></h2>
<p style="text-align: right">팀명 : Soul Music<br />
참가자 : 백제동</p>
<table style="width: 620px">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP017.jpg" rel="lightbox[8583]"><img class=" wp-image-8890 alignleft" alt="07FCAP017" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP017-300x225.jpg" width="270" height="203" /></a></td>
<td valign="top"><span style="color: #2069c0"><strong>Soul music 팀 구성 및 소개</strong></span><br />
코딩과 납땜으로 지친 몸과 마음을 오카리나라는 피리를 불며 달래는 평범한 공대생입니다. 뼛속까지 엔지니어의 피가 흐르는지 어쩐지 잘 모르겠지만 광운대 전자과를 졸업하고 대학원까지 도전 하게 된 석사과정 3학기 백재동이라고 합니다. 항상 새로운 작품을 갈구하며 눈치를 보다 캡스톤 공모전에 도전하게 되었습니다.대학교 졸업작품으로 홍릉과학출판사를 통해 공저자로 무선통신과 임베디드 시스템을 활용한 종합설계라는 책도 출간해 보았고, 허접하지만 블로그(http://rabe.egloos.com)도 운영하고 있습니다.</td>
</tr>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP008.jpg" rel="lightbox[8583]"><img class="alignnone  wp-image-8745" alt="07FCAP008" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP008-300x200.jpg" width="270" height="180" /></a></td>
<td valign="top"><span style="color: #2069c0"><strong>오카리나 소개</strong></span><br />
오카리나는 도자기피리 또는 흙피리로 불리는 악기입니다. 이런 예명을 갖게 된 이유는 진흙으로 모양을 만들고 가마에서 구워서 완성되기 때문입니다. 연주하기에 쉽고 가격도 비교적 저렴하고 소리도 좋아 취미로 많이 각광받고 있습니다.</td>
</tr>
</tbody>
</table>
<p><span style="color: #2069c0"><strong>악기 소리의 특징 및 설계방향</strong></span></p>
<p>악기 소리와 기계적인 비프음의 차이는 크게 두 가지가 있습니다. 첫번째로 악기는 음계의 정확한 주파수에 맞는 소리파형을 만들어 낸다는 것입니다. 두번째로 악기는 하모닉스 또는 배음이라고 하는 음계 주파수 이외의 높은 주파수를 포함하고 있습니다.<br />
음계 주파수는 440Hz를 기본 ‘라’ 음으로 하고, 한 옥타브가 높을 경우 주파수가 2배가 되고 한 옥타브가 낮을 경우 반으로 줄어들게 됩니다. 한 옥타브에 포함되는 음계의 수는 반음을 포함하여 12개가 있는데 한 음이 올라갈 때마다 이전 음계 주파수에 2112를 곱하면 됩니다.</p>
<div id="attachment_8744" class="wp-caption aligncenter" style="width: 444px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP007.jpg" rel="lightbox[8583]"><img class=" wp-image-8744 " alt="그림1. 오카리나 소리의 주파수 스펙트럼" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP007-620x504.jpg" width="434" height="353" /></a><p class="wp-caption-text">그림1. 오카리나 소리의 주파수 스펙트럼</p></div>
<p>그림1-오카리나 소리의 주파수 스펙트럼은 녹음된 오카리나의 주파수 스펙트럼인데 기본음계 주파수의 크기가 가장크고 2배음~6배음까지는 작은 것이 보일겁니다.  실제 오카리나와 최대한 비슷하게 구현하여야 하겠지만, 현실적으로 배음을 똑같이 합성하기 위해서는 굉장히 많은 연산을 수행하여야 합니다.<br />
그래서 필자는 이와 비슷하게 배음 성분을 가지고 있으면서 파형을 합성할 때 연산량이 획기적으로 적은 톱니파를 사용하기로 하였습니다. 톱니파의 모양과 주파수 스펙트럼은 다음 그림과 같습니다. 톱니파의 합성의 경우 단순히 바이너리 카운트 값을 DAC로 입력하여 주기만 하기 때문에 간단하면서도 그럭저럭 괜찮은 소리를 합성하는 효과적인 방법이고 할 수 있습니다.</p>
<div id="attachment_8740" class="wp-caption aligncenter" style="width: 437px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP012.jpg" rel="lightbox[8583]"><img class=" wp-image-8740 " alt="그림2. 톱날파의 파형과 주파수 스펙트럼" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP012.jpg" width="427" height="409" /></a><p class="wp-caption-text">그림2. 톱날파의 파형과 주파수 스펙트럼</p></div>
<p><span style="color: #2069c0"><strong>터치센서</strong></span></p>
<p>최근 터치센서 IC가 많이 출시되어 스위치 대용으로 사용되고 있습니다. 디바이스트에서 판매중인 ADM801 터치센서의 경우 가격, 반응속도, 사용상의 편의성 등이 상대적으로 우수합니다. 또한, 예전에는 정전방식의 터치센서를 사용하기 위해서는 IC 주위에 특정 용량의 저항과 캐패시터를 필요로 하고, 손이 닫는 메탈 플레이트 부분도 따로 제작하거나 구입하여야 했는데 ADM801은 VCC, GND, Vout 만 연결하면 되기 때문에 사용하기에 간편합니다.<br />
아직은 터치 센서가 버튼 보다 비싸긴 하지만 여러모로 장점이 있습니다. 터치 센서는 버튼과 비교하여 과도한 힘이 들어가지 않으며 눌렀을 때 기계적인 ON/OFF 소음이 없고, ON/OFF 순간의 노이즈가 적습니다.</p>
<div id="attachment_8741" class="wp-caption aligncenter" style="width: 444px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP011.jpg" rel="lightbox[8583]"><img class=" wp-image-8741 " alt="그림3. 터치센서(ADM801)" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP011-620x295.jpg" width="434" height="207" /></a><p class="wp-caption-text">그림3. 터치센서(ADM801)</p></div>
<p><span style="color: #2069c0"><strong>전체 회로 설명</strong></span></p>
<div id="attachment_8742" class="wp-caption aligncenter" style="width: 630px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP010.jpg" rel="lightbox[8583]"><img class="size-large wp-image-8742" alt="그림4. 전자오카리나 전체 회로 구조" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP010-620x396.jpg" width="620" height="396" /></a><p class="wp-caption-text">그림4. 전자오카리나 전체 회로 구조</p></div>
<p>전자 오카리나는 크게 FPGA 부분과 마이크로컨트롤러(AVR) 부분으로 나누어집니다. FPGA에서는 터치센서에서 입력되는 값을 오카리나의 운지법에 맞게 음계 바이너리 값으로 변환하는 역할과 바람세기의 값에 따라 톱날파의 진폭을 조절하며 디지털 파형을 출력하는 역할을 합니다. 마이크로 컨트롤러에서는 내장된 ADC를 사용하여 기압센서에서 입력되는 바람세기 값을 FPGA로 보내주는 역할과 FPGA에서 보내주는 음계 값을 LED로 표시하는 역할을 합니다.<br />
FPGA에서 생성된 디지털 파형은 DAC를 통하여 아날로그 전압의 형태로 변환된 후 에코회로를 통과 후 앰프로 증폭된 후 스피커를 통하여 소리로 변환됩니다.</p>
<p><strong style="color: #2069c0">FPGA 회로구성</strong></p>
<div id="attachment_8748" class="wp-caption alignnone" style="width: 250px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP004.jpg" rel="lightbox[8583]"><img class=" wp-image-8748 " alt="그림5. XC3S400 FPGA 모듈" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP004-300x242.jpg" width="240" height="194" /></a><p class="wp-caption-text">그림5. XC3S400 FPGA 모듈</p></div>
<p>FPGA는 M2CV에서 제작한 모듈을 사용하였고, 모듈의 핀에 연결된 회로는 &lt;표 1&gt;과 &lt;표 2&gt;에 표시되어 있습니다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP018.jpg" rel="lightbox[8583]"><img class="alignnone  wp-image-8904" alt="07FCAP018" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP018-488x620.jpg" width="293" height="370" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP019.jpg" rel="lightbox[8583]"><img class="alignnone  wp-image-8903" alt="07FCAP019" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP019-465x620.jpg" width="276" height="368" /></a></td>
</tr>
<tr>
<td>FPGA J1 커넥터 연결 부품</td>
<td>FPGA J2 커넥터 연결 부품</td>
</tr>
</tbody>
</table>
<p><span style="color: #2069c0"><strong>AVR 회로구성</strong></span></p>
<div id="attachment_8751" class="wp-caption alignnone" style="width: 310px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP001.jpg" rel="lightbox[8583]"><img class="size-medium wp-image-8751" alt="AVR 모듈(MAT128-10)" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP001-300x242.jpg" width="300" height="242" /></a><p class="wp-caption-text">AVR 모듈(MAT128-10)</p></div>
<p>AVR 모듈은 MAT128-10을 사용하였고, 핀 할당은 그림 7에 나타나 있습니다. 음계 표시 LED는 2색 LED를 사용하여 AVR에서 두 개의 포트를 사용합니다. PORTE는 UART 통신을 위하여 비워두고 나머지 포트를 사용했습니다.</p>
<div id="attachment_8738" class="wp-caption alignnone" style="width: 310px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP014.jpg" rel="lightbox[8583]"><img class="size-medium wp-image-8738" alt="그림 7. AVR 연결" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP014-300x297.jpg" width="300" height="297" /></a><p class="wp-caption-text">그림 7. AVR 연결</p></div>
<p><span style="color: #2069c0"><strong>DAC 회로구성</strong></span><br />
FPGA 내부에서 생성한 디지털 파형을 현실 세계의 아날로그 파형으로 변환하기 위하여 DAC 칩을 사용하였습니다. DAC 부품을 선택할 때 가장 중요하게 보았던 부분은 DIP 타입의 패키지로 납땜이 쉬우면서도 디지털 파형 입력을 쉽게 할 수 있는지 여부입니다. 이러한 면에서 DAC0800은 제일 적합하였지만 -5V를 필요로 하는 방식이기에 많이 망설였습니다. 제어하기 쉬운 장점도 있었고 비동기 방식으로 디지털 파형을 입력하므로 높은 주파수의 파형을 출력 할 때에는 노이즈 성분도 많이 발생하였습니다.</p>
<div id="attachment_8737" class="wp-caption alignnone" style="width: 310px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP015.jpg" rel="lightbox[8583]"><img class="size-medium wp-image-8737" alt="그림8. DAC 연결" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP015-300x181.jpg" width="300" height="181" /></a><p class="wp-caption-text">그림8. DAC 연결</p></div>
<p><span style="color: #2069c0"><strong>FPGA HDL 코딩</strong></span></p>
<div id="attachment_8736" class="wp-caption alignnone" style="width: 310px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP016.jpg" rel="lightbox[8583]"><img class="size-medium wp-image-8736" alt="그림9. FPGA 내부 파형 생성 블록 다이어그램" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP016-300x106.jpg" width="300" height="106" /></a><p class="wp-caption-text">그림9. FPGA 내부 파형 생성 블록 다이어그램</p></div>
<p>&lt;그림 9&gt;는 FPGA 내부의 소리를 합성하는 부분의 블록도입니다.<br />
음계 인코더 부분은 오카리나의 운지에 따라 도는 1, 레는 2,… 이런식으로 변환을 하여 줍니다. 음계 주파수 카운터 롬은 각각의 음계의 정확한 주파수를 출력하기 위하여 출력 파형의 한 샘플을 FPGA의 기본클럭(80Mhz)으로 카운트 하면서 유지하여야 하는지에 대한 값입니다. 카운터는 8비트 카운터로 음계 주파수 카운터 롬에서 입력되는 값만큼 카운터를 하면 출력 카운터를 1 증가시키는 역할을 합니다. 예를 들어 음계 주파수 카운터 롬에서 10 이라는 숫자가 카운터 블록에 입력되면 톱날파 한 주기를 출력하는데는 10 × 256 = 2560 의 클럭이 소요된 것이고, 이를 실제 시간으로 변환할 경우 12.5[ns] × 2560 = 32[us]가 되고, 최종적으로 톱니파의 주파수는 1/0.000032 = 31.250[KHz] 가 됩니다.</p>
<p><strong><span style="color: #2069c0">AVR 펌웨어 개발</span></strong><br />
AVR 펌웨어를 컴파일 하기 위하여 필자는 코드비전 2.x 를 사용하였습니다. 코드비전은 프로젝트를 생성할 때 GUI 형태로 옵션을 설정하면 기본적인 코드가 생성되어 AVR을 잘 모르는 초보가 사용하기에 편합니다. 필자 역시 AVR은 초보이기에 코드비전 밖에는 사용할 줄 모르지만 코디비전으로 바람센서에서 사용했던 ADC기능을 간단하게나마 알려드리겠습니다.<br />
ADC를 가장 쉽고 안전하게(?) 사용하는 방법은 ADC 동작 클럭을 최대한 낮추는 것입니다. 프로젝트 생성 시에 Chip 옵션중에 Crystal Oscillator Divider Enabled 라는 옵션이 있는데, 이것은 기본 클럭을 분주해서 사용하겠다는 의미 입니다. 필자의 경우 기본클럭을 64로 나누라고 설정하였습니다. 이렇게 클럭 분주 옵션을 설정하게 되면 ADC 탭의 동장 주파수 부분도 맞춰서 낮아지게 됩니다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP003.jpg" rel="lightbox[8583]"><img class="alignnone size-full wp-image-8749" alt="07FCAP003" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP003.jpg" width="245" height="282" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP002.jpg" rel="lightbox[8583]"><img class="alignnone size-full wp-image-8750" alt="07FCAP002" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP002.jpg" width="245" height="215" /></a></td>
</tr>
<tr>
<td>그림 10. 코드비전의 프로젝트 생성 중 Chip 설정</td>
<td>그림 11. 코드비전의 프로젝트 생성 중 ADC 설정</td>
</tr>
</tbody>
</table>
<p>소스코드 부분은 ADC와 관련된 부분만 추려서 기재하였습니다. PF0에 연결된 바람센서의 전압값을 읽어오기 위해서는 read_adc(0); 을 호출하고 리턴값을 사용하면 됩니다.<br />
&lt;소스코드 1&gt;은 AVR의 핀을 사용하고 실제 회로를 납땜하는 문제 때문에 PORTF에 바람센서의 ADC 입력과 바람의 크기의 디지털 출력이 할당하게 되어 두 기능이 충돌되지 않도록 동작하는 코드입니다.</p>
<p><strong><span style="color: #2069c0">&lt;소스코드 &gt; AVR 펌웨어의 주요 소스코드</span></strong></p>
<p><span style="color: #000000"><div class="symple-box yellow none" style="text-align:left; width:100%;"> 
unsigned char adc_tmp;<br />
while (1) {<br />
</span></p>
<p style="padding-left: 60px"><span style="color: #000000">// 기압센서의 바람세기를 FPGA로 출력<br />
adc_tmp = read_adc(0); // ADC값을 읽어옴<br />
adc_tmp = (adc_tmp &gt;&gt; 1) &amp; 0b01111110; //출력핀에 맞게 조정<br />
adc_tmp = PORTF | adc_tmp; //PORTF의 다른핀의 값과 합침<br />
PORTF = adc_tmp; //핀으로 출력<br />
//바람세기 LED 출력<br />
(생략)..<br />
//음계 LED 출력<br />
(생략)&#8230;<br />
};<br />
</span></p>
<p><span style="color: #000000"></div></span></p>
<p><strong><span style="color: #2069c0">에코 이펙트 회로</span></strong></p>
<div id="attachment_8746" class="wp-caption alignnone" style="width: 506px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP009.jpg" rel="lightbox[8583]"><img class=" wp-image-8746 " alt="그림11. 에코 이펙트 회로" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP009-620x316.jpg" width="496" height="253" /></a><p class="wp-caption-text">그림11. 에코 이펙트 회로</p></div>
<p>음향관련 분야에서 보았을 때 이펙트는 소리를 보다 듣기 좋게 꾸며주는 역할을 합니다. 마치 사진을 찍고 난 후 포토샵을 통해서 보기 좋게 수정하는 것과 같다고 보시면 됩니다. 노래방 마이크에는 에코 이펙트가 추가되어있어서 노래방에서 부르면 더 잘 부르는것처럼 들려지게 들립니다. 에코는 노래 뿐만 아니라 악기 연주 시에도 많이 사용되며 특히 오카리나와 같은 관악기에는 거의 필수적으로 사용됩니다.<br />
에코 이펙트는 소리를 메아리처럼 울리는 역할을 합니다. 에코 이펙트 회로를 분석하기 위해 디바이스마트에서 판매중인 MX044(3채널 가라오케 마이크 믹서) 키트를 사용하여 에코 IC의 성능도 확인하였고, 어떤 IC를 사용하는지도 확인하였습니다.</p>
<p><strong><span style="color: #2069c0">회로 완성</span></strong></p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP013.jpg" rel="lightbox[8583]"><img class="alignnone  wp-image-8739" alt="07FCAP013" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP013-300x172.jpg" width="198" height="113" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP006.jpg" rel="lightbox[8583]"><img class="alignnone  wp-image-8743" alt="07FCAP006" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP006-300x220.jpg" width="180" height="132" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP005.jpg" rel="lightbox[8583]"><img class="alignnone  wp-image-8747" alt="07FCAP005" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07FCAP005-300x231.jpg" width="180" height="139" /></a></td>
</tr>
<tr>
<td>그림12. 전자 오카리나 사진</td>
<td>그림13. 전자 오카리나의 윗면 회로</td>
<td>그림14. 전자 오카리나의 아랫면 회로</td>
</tr>
</tbody>
</table>
<p>회로가 복잡하여 실제 연주가 가능한 형태로 제작하기 위해 2개의 기판을 사용하게 되었습니다. 윗면에는 FPGA, 터치센서, DAC, 에코 이펙터 회로가 있고, 아랫면에는 AVR, 바람센서, LED, 앰프회로가 있습니다. 바람센서(MPX5010DP) 부분에 취구는 멜로디언의 취구를 사용하였는데 조잡하기도 하고 위생적으로도 문제가 있어 많은 개선이 필요합니다.</p>
<p><strong><span style="color: #2069c0">공모전 후기</span></strong></p>
<p>혼자서 캡스톤 공모전 프로젝트를 진행하였는데 생각보다 규모가 방대해서 많이 힘들었습니다. 다른 팀원이 있었더라면 부품구입, 데이터쉬트 분석, 납땜, 문서작업 등의 잡다한 일들을 나누어서 할 수 있었을 테지만 혼자서 모든 일을 하느라 정신도 없고 실수도 많이 한 것 같습니다. 부족한 작품을 공개하기가 많이 부끄럽지만 그래도 누군가에게는(?) 도움이 될 것이라고 믿습니다. 끝으로 캡스톤 공모전을 통해 다양한 부품을 돈 걱정 없이 사용할 수 있도록 경제적인 지원을 해주신 디바이스마트 관계자 분들께 감사하다는 말을 드리고 싶습니다.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/8583/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[7호]CANTUS 개발 및 실습 무료 세미나 기술자료</title>
		<link>http://www.ntrexgo.com/archives/8616</link>
		<comments>http://www.ntrexgo.com/archives/8616#comments</comments>
		<pubDate>Wed, 25 May 2011 08:40:14 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[스페셜 컬럼]]></category>
		<category><![CDATA[7호]]></category>
		<category><![CDATA[CANTUS]]></category>
		<category><![CDATA[기술]]></category>
		<category><![CDATA[세미나]]></category>
		<category><![CDATA[스페셜]]></category>
		<category><![CDATA[에이디칩스]]></category>
		<category><![CDATA[자료]]></category>
		<category><![CDATA[컬럼]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=8616</guid>
		<description><![CDATA[디바이스마트 매거진 7호 &#124; CANTUS는 고성능 32bit MCU로써 8bit MCU에 비해 최대 96MIPS의 빠른 속도와 고성능의 다양한 기능을 내장하면서 저렴한 가격으로 출시되어 개발자들에게는 8bit MCU의 한계를 넘어 다양하고 고성능화 되고 있는 시스템의 구현을 가능하게 하였다. ]]></description>
				<content:encoded><![CDATA[<h2><a href="http://www.ntrexgo.com/wp-content/uploads/2011/05/07SCADC020.jpg" rel="lightbox[8616]"><img class=" wp-image-8845 alignleft" alt="07SCADC020" src="http://www.ntrexgo.com/wp-content/uploads/2011/05/07SCADC020-300x225.jpg" width="240" height="180" /></a><strong><span style="color: #333399">CANTUS 개발 및 실습 </span></strong></h2>
<h2><span style="color: #333399"><strong>무료 세미나 기술자료</strong></span></h2>
<p>&nbsp;</p>
<p style="text-align: right">자료제공 | (주)에이디칩스 기술 연구소</p>
<p>■ 2011년 4월 30일에 진행된 무료 세미나의 기술자료를 참석하지 못한 디바이스마트 매거진 구독자들을 위해 간단히 소개하고자 합니다.</p>
<p>&nbsp;</p>
<p><span style="font-size: medium;color: #ff6600"><strong>1부 High Performance &amp; Low Cost 32bit Microcontroller &#8211; CANTUS</strong></span></p>
<p><span style="color: #ff9900"><strong>1. 소개</strong></span><br />
(주)에이디칩스에서 개발한 CANTUS는 시스템의 다양화와 고성능화에 맞춰 8bit를 대체할 저가의 고성능 32bit 마이크로컨트롤러이다.<br />
CANTUS는 고성능 32bit MCU로써 8bit MCU에 비해 최대 96MIPS의 빠른 속도와 고성능의 다양한 기능을 내장하면서 저렴한 가격으로 출시되어 개발자들에게는 8bit MCU의 한계를 넘어 다양하고 고성능화 되고 있는 시스템의 구현을 가능하게 하였다. 특징으로는 8채널의 넉넉한 UART와 Full-Speed USB2.0, SPI, TWI등의 다양한 통신 수단을 제공하므로 다른 주변 기기와의 통신에 강점을 지닌 동시에 음성이나 사운드(ADPCM 녹음/재생, MP3 재생) 지원이 가능한 제품이다.</p>
<p>또한, 내장 메모리를 128KBytes, 512KBytes 선택적으로 사용할 수 있어 사용자가 원하는 사양에 따라 시스템을 구성할 수 있으며 SRAM은 80Kbytes를 내장하여 큰 용량의 어플리케이션을 전혀 문제없이 동작시킬 수 있다. 또한 대용량의 메모리가 필요한 경우 외부에 노어플래시나 낸드플래시, SD카드등의 다양한 메모리를 지원하여 다양한 응용이 가능하다.</p>
<p>LCD가 필요로 하는 시스템에서는 2인치대(128&#215;160해상도)의 TFT-LCD에 하나의 이미지파일을 디스플레이하는 시간에 30ms 이하의 속도를 낼 수 있어 Character LCD 또는 7-sement를 사용하던 시스템도 소형 TFT-LCD 적용이 가능하여 고급화, 차별화가 가능하다.(최대 220&#215;176) 이 외에 CANTUS에는 8채널 32bit Timer / PWM / Capture가 내장되어 모터 구동, 배터리 체크, 적외선 리모콘 신호 입력 등의 용도로 사용할 수 있고 14bit Voice Codec은 음성 또는 사운드를 내보낼 수 있는 1채널 DAC와 센서 또는 아날로그 신호들의 입력을 위한 4채널 ADC로 구성되어 있으며 1채널 DMA는 빠른 메모리 액세스로 인해 데이터를 효율적으로 출력할 수 있다.</p>
<p>이러한 CANTUS는 하이패스단말기, GPS단말기, MP3 어학학습기, LED 컨트롤러, 경보시스템, 완구 로봇, 출입통제시스템, 디지털 가전, 로봇 청소기, 의료기기, 속도감지기, 산업용 컨트롤러 등 다양한 응용 제품에 적용할 수 있다.<br />
이미 다양한 시스템에 적용되어 필드에서 검증되어 사용되어 지고 있으며 ㈜에이디칩스에서는 제품의 성능 뿐만 아니라 적극적인 기술지원과 안정적인 제품 공급 또한 강점으로 내세우고 있다.</p>
<p><span style="color: #ff9900"><strong>2. 기능</strong></span><br />
· 32bit General Micro-Controller<br />
- 96MHz, Internal Flash Memory &amp; SRAM<br />
· USB, UART, SDCard, Voice Codec, MP3 decoder(s/w)<br />
· Operating Temp : -40oC to +85oC Industrial<br />
· Power : 3.0V ~ 3.6V<br />
· Package : 100pin TQFP</p>
<p>&nbsp;</p>
<p><span style="color: #ff6600"><strong><span style="font-size: medium">2부 CANTUS 개발 환경 소개</span></strong></span></p>
<p><span style="color: #ff9900"><strong>1. Development Flow Chart</strong></span><br />
CANTUS 개발환경은 다음과 같이 EISC Studio 3, E-CON, Target(EVM, Trip)으로 구성되어 있다. EISC Studio 3에서 Compile한 Binary는 E-CON을 통해 Target에 Download 되며, Target에 Download 된 Binary는 E-CON을 통해 EISC Studio 3에서 Debugging할 수 있다.</p>
<div id="attachment_8766" class="wp-caption alignnone" style="width: 568px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC020.jpg" rel="lightbox[8616]"><img class=" wp-image-8766" alt="07SCADC020" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC020-620x329.jpg" width="558" height="296" /></a><p class="wp-caption-text">그림1. Development Flow Chart</p></div>
<p><span style="color: #ff9900"><strong>2. Download Page</strong></span><br />
EISC Studio 3와 같은 SW 자료 및 회로도와 메뉴얼은 (주)에이디칩스 홈페이지(www.adc.co.kr)의 자료실에서 다운받을 수 있다.</p>
<div id="attachment_8735" class="wp-caption alignnone" style="width: 506px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC001.jpg" rel="lightbox[8616]"><img class=" wp-image-8735 " alt="그림2. Download Page" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC001-620x481.jpg" width="496" height="385" /></a><p class="wp-caption-text">그림2. Download Page</p></div>
<p><span style="color: #ff9900"><strong>3. IDE : EISC Studio 3</strong></span><br />
EISC Studio 3는 통합개발환경(IDE)으로, Compiler, Editor, Debugger의 기능을 갖고 있다. 부가적으로 JTAG인 E-CON을 통해 손쉽게 Target에 Download가 가능하다.<br />
현재 배포되는 Version은 3.2.2이다. Windows XP이상, 7 32bit, 7 64bit까지 사용 할 수 있다.</p>
<div id="attachment_8734" class="wp-caption alignnone" style="width: 506px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC002.jpg" rel="lightbox[8616]"><img class=" wp-image-8734 " alt="그림3. EISC Studio3" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC002-620x425.jpg" width="496" height="340" /></a><p class="wp-caption-text">그림3. EISC Studio3</p></div>
<p><span style="color: #ff9900"><strong>4. E-CON (JTAG I/F)</strong></span><br />
E-CON은 JTAG인터페이스로, Downloader와 Debugger의 기능을 갖고 있다. E-CON은 Console Program EConMan을 사용하여 제어된다. E-CON의 Driver와 Console Program인 EConMan은 EISC Studio 3를 설치 하면 기본 옵션을 통해 EISC Studio가 설치된 경로에 설치 된다.* (* 경로 : C:\Program Files\ADChips\EISC Studio 3\econ)</p>
<div id="attachment_8733" class="wp-caption alignnone" style="width: 407px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC003.jpg" rel="lightbox[8616]"><img class=" wp-image-8733  " alt="그림4. E-CON" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC003-620x485.jpg" width="397" height="310" /></a><p class="wp-caption-text">그림4. E-CON</p></div>
<p><span style="color: #ff9900"><strong>5. EVM</strong></span><br />
CANTUS EVM은 시스템 개발에 있어 검증을 위한 여러 Device로 구성 되어있다. Memory 관련하여 NAND Flash, SRAM, SPI Flash, TWI EEPROM, SD CARD로 구성되어 있으며, I2S Interface를 통해 외부 Audio Board로 재생, 녹음이 가능하다. 또한 Internal Voice Codec을 통한 재생, 녹음을 위한 회로가 구성되어 있다. 그리고 TFT LCD 및 USB, RS-232C와 확장 Pin이 있어 개발을 하려는 시스템에 근접하도록 구성 할 수 있다.</p>
<div id="attachment_8732" class="wp-caption alignnone" style="width: 506px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC004.jpg" rel="lightbox[8616]"><img class=" wp-image-8732 " alt="그림5.  CANTUS EVM" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC004-620x389.jpg" width="496" height="311" /></a><p class="wp-caption-text">그림5. CANTUS EVM</p></div>
<p><span style="color: #ff9900"><strong>6. SDK</strong></span><br />
CANTUS SDK는 CANTUS EVM의 여러 Device를 제어할 수 있는 예제 Project와 CANTUS의 주변장치를 사용할 수 있는 Library로 구성되어 있다. SDK의 예제를 사용하여 EVM의 Device를 원하는 대로 수정하여 개발 시간을 단축할 수 있다.</p>
<div id="attachment_8731" class="wp-caption alignnone" style="width: 506px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC005.jpg" rel="lightbox[8616]"><img class=" wp-image-8731 " alt="그림6. SDK 1.5Tree" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC005-620x337.jpg" width="496" height="270" /></a><p class="wp-caption-text">그림6. SDK 1.5Tree</p></div>
<p>&nbsp;</p>
<p><span style="font-size: medium"><strong><span style="color: #ff6600">3부 개발환경 구축</span></strong></span></p>
<p>CANTUS의 개발환경은 다음과 같이 구축할 수 있다.</p>
<p><span style="color: #ff9900"><strong>1. 관련 자료 다운로드</strong></span><br />
개발환경의 구축에 있어 첫 번째로 관련 자료를 다운 받는다. 관련 자료는 (주)에이디칩스 홈페이지 www.adc.co.kr의 Support → 자료실 → 글 번호 10에서 다운로드할 수 있다. 필수적인 IDE(EISC Studio 3)와 SDK를 다운로드한다.</p>
<div id="attachment_8730" class="wp-caption alignnone" style="width: 506px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC006.jpg" rel="lightbox[8616]"><img class=" wp-image-8730 " alt="그림6. CANTUS Download Page" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC006-620x238.jpg" width="496" height="190" /></a><p class="wp-caption-text">그림6. CANTUS Download Page</p></div>
<p><span style="color: #ff9900"><strong>2. IDE / JTAG 설치</strong></span><br />
다운 받은 EISC Studio 3 설치 파일을 실행하여 EISC Studio 3를 설치 한다.<br />
설치 과정에서 ‘구성 요소 선택’ 과정에서 사용할 Compiler를 선택 한다. CANTUS의 경우 AE32000 Compiler를 사용하며 기본적으로, E-CON Driver와 함께 선택되어 있다.</p>
<div id="attachment_8779" class="wp-caption alignnone" style="width: 488px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC007.jpg" rel="lightbox[8616]"><img class=" wp-image-8779 " alt="그림7. EISC Studio 3 구성 요소 선택" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC007.jpg" width="478" height="298" /></a><p class="wp-caption-text">그림7. EISC Studio 3 구성 요소 선택</p></div>
<p>Windows 7 64bit에서 설치할 경우에는 ‘설치 위치 선택’ 에서 ‘설치 폴더’ 를 ‘C:\Program Files’ 로 지정 하여야 한다.<br />
설치 진행 과정의 마무리쯤 E-CON의 Driver가 설치 된다. Driver 설치는 E-CON이 PC와 연결되지 않은 채 진행한다. EISC Studio 3의 설치가 완료 된 후에 E-CON과 PC를 연결하면 Driver 설치가 마무리 되며, 제어판의 장치 관리자에서 E-CON이 정상 적으로 인식된 것을 확인할 수 있다.</p>
<div id="attachment_8778" class="wp-caption alignnone" style="width: 410px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC008.jpg" rel="lightbox[8616]"><img class=" wp-image-8778 " alt="그림8. 장치 관리자의 E-CON" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC008.jpg" width="400" height="240" /></a><p class="wp-caption-text">그림8. 장치 관리자의 E-CON</p></div>
<p><span style="color: #ff9900"><strong>3. Build &amp; Download</strong></span><br />
CANTUS SDK는 CANTUS Library Project와 Example Project로 구성 되어 있다. Example Project는 Library Project의 Output File인 ‘libCantus.a’를 참조 한다. 따라서 Example Project를 Build하기 위해서는 Library Project가 먼저 Build 되어야 한다. 또한 Library Project의 Code를 변경하면, Library Project가 Build된 후에 Example Project를 Build 하여야 한다.</p>
<p><span style="color: #b653a8"><strong>3. 1. Library Project Build</strong></span><br />
<span style="background-color: #ffff99">1. /Cantuslib/Cantus.epx를 실행하여 EISC Studio 3로 Project를 Open한다.</span><br />
<span style="background-color: #ffff99"> 2. 메뉴에서 Build → Build Project를 눌러 Project를 Build한다.</span><br />
<span style="background-color: #ffff99"> 3. Build가 완료 되면 /lib/libCantus.a가 생성된다.  Library가 Build 되어 /lib/libCantus.a가 생성되면, Example을 Build 할 수 있다.</span></p>
<p><span style="color: #b653a8"><strong>3. 2. Boot Loader를 사용하는 시스템의 경우</strong></span></p>
<p>CANTUS는 Reset 후 Internal NOR Flash 0 Sector의 Program을 실행 한다. E-CON을 사용하면 Flash의 모든 Sector에 Write가 가능 하지만, E-CON이 없다면 BootLoader를 사용함으로써 USB를 통해 1 Sector(CANTUS 512)에 Download 할 수 있다. 단, 0 Sector에 BootLoader를 Download하는 것은 E-CON만 가능하다.<br />
BootLoader는 CANTUS 512의 경우 1 Sector의 Program을 실행하고, 0 Sector를 제외한 나머지 Sector에 USB Download가 가능하다. 추가적으로 USB Mass Storage기능이 있어 Flash Memory나 SD-CARD를 PC에서 이동식 디스크로 사용할 수 있다.** (**BootLoader_tiny는 USB Mass Storage기능이 없음.)</p>
<p><strong><span style="color: #ff0000">3.2.1 Example Project Build : BootLoader</span></strong></p>
<p><span style="background-color: #ffff99">1. /Example/BootLoader/BootLoader.epx를 실행하여 EISC Studio 3로 Project를 Open한다.</span><br />
<span style="background-color: #ffff99">2. Project Explorer에서 Linker Script에 cantus.ld를 Open한다. 16번 행에서 0×00000000으로 지정 된 부분은 Program이 실행되는 Sector의 Start Address로 0 Sector에 Download하여야 실행 되는 Program임을 뜻 한다.</span><br />
<span style="background-color: #ffff99">3. 메뉴에서 Build → Build Project를 눌러 Project를 Build한다.</span><br />
<span style="background-color: #ffff99">4. Build가 완료 되면 /Example/BootLoader/output/BootLoader.elf.bin이 생성된다. </span></p>
<p>/Example/BootLoader/output/BootLoader.elf.bin이 생성 되면, E-CON을 통해 Target에 Download할 수 있다.</p>
<div id="attachment_8777" class="wp-caption alignnone" style="width: 396px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC009.jpg" rel="lightbox[8616]"><img class=" wp-image-8777 " alt="그림9. BootLoader의 cantus.ld" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC009.jpg" width="386" height="350" /></a><p class="wp-caption-text">그림9. BootLoader의 cantus.ld</p></div>
<p><strong><span style="color: #ff0000">3.2.2 Example Project Build : BootLoader</span></strong><br />
EISC Studio 3가 처음 설치 되면 E-CON으로 Download하기 위한 Option이 설정되어 있지 않으므로, Download Option을 설정해 주어야 한다.</p>
<p><span style="background-color: #ffff99">1. 메뉴에서 Build → Download Option</span><br />
<span style="background-color: #ffff99">2. Download Manager 창이 나타나면, 다음과 같이 설정 한다.</span><br />
<span style="background-color: #ffff99"> Set Command : C:\Program Files\ADChips\EISC Studio</span><br />
<span style="background-color: #ffff99"> 3\econ\EConMan.exe</span><br />
<span style="background-color: #ffff99"> Set Argument : -target cantus -systeminit -jtagspeed 10 </span><br />
<span style="background-color: #ffff99"> -flash_filewrite 0×0 $(TargetPath).bin</span><br />
<span style="background-color: #ffff99"> Set Argument중 -flash_filewrite 0×0은 Download할</span><br />
<span style="background-color: #ffff99"> Sector의 Start Address를 뜻한다. 위 cantus.ld에서 </span><br />
<span style="background-color: #ffff99"> 0×00000000으로 설정하였기에 0 Sector에 Download한다.</span><br />
<span style="background-color: #ffff99">3.  E-CON과 Target을 연결하고, PC에서 E-CON이 인식된 것을 확인 한다. CANTUS를 JTAG Mode로 설정한다. EVM의 경우 SW1을 아래쪽을 향하게 한 상태에서 Reset 한다.</span><br />
<span style="background-color: #ffff99">4. 메뉴에서 Build → Download To Target EConMan의 실행창이 나타나고, Download가 진행 된다.***</span><br />
(*** Set Argument에서 Option의 끝에 ‘-exit’를 추가하면 정상 Download된 후 창이 닫힌다.‘-jtagspeed 10’은 JTAG Clock을 30MHz / (10)+1 = 2.727MHz 로 설정을 뜻하며,‘-jtagspeed 1’으로 최대 15MHz까지 동작한다. JTAG Clock은 사용 환경에 따라 달라질 수 있다.</p>
<div id="attachment_8776" class="wp-caption alignnone" style="width: 502px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC010.jpg" rel="lightbox[8616]"><img class="size-full wp-image-8776" alt="그림10. BootLoader의 Download Option" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC010.jpg" width="492" height="192" /></a><p class="wp-caption-text">그림10. BootLoader의 Download Option</p></div>
<p><strong><span style="color: #ff0000">3.2.3 Example Project Build : Uart</span></strong></p>
<p><span style="background-color: #ffff99">1. /Example/Uart/Uart.epx를 실행하여 EISC Studio 3로 Project를 Open한다.</span><br />
<span style="background-color: #ffff99">2. Project Explorer에서 Linker Script에 cantus.ld****를 Open한다. 11번 행에서 0×00010000으로 지정 된 부분은 Program이 실행되는 Sector의 Start Address로 1 Sector(CANTUS 512의 경우)에서 실행 되는 Program임을 뜻 한다.</span> (**** BootLoader와 BootLoader_tiny는 Project 폴더내에 cantus.ld를 갖고 있지만, 이를 제외한 Project는‘/startup/cantus.ld를 참조한다.)<br />
<span style="background-color: #ffff99">3. 메뉴에서 Build → Build Project를 눌러 Project를 Build한다.</span><br />
<span style="background-color: #ffff99">4. Build가 완료되면 /Example/Uart/output/Uart.elf.bin이 생성된다. /Example/Uart/output/Uart.elf.bin이 생성되면, E-CON을 통해 Target에 Download할 수 있다.</span></p>
<div id="attachment_8775" class="wp-caption alignnone" style="width: 396px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC011.jpg" rel="lightbox[8616]"><img class=" wp-image-8775 " alt="그림11. Uart의 cantus.ld" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC011.jpg" width="386" height="350" /></a><p class="wp-caption-text">그림11. Uart의 cantus.ld</p></div>
<p><span style="color: #ff0000"><strong>3.2.4 Example Project Download : Uart</strong></span><br />
Download Option을 2)Example Project Download : BootLodaer에서 0×0으로 설정하였기 때문에 3)Example Project Build : Uart.에서 설정한 0×00010000으로 Uart를 Download하기 위해 설정을 변경해 주어야 한다.<br />
<span style="background-color: #ffff99">1. 메뉴에서 Build → Download Option</span><br />
<span style="background-color: #ffff99">2. Download Manager 창이 나타나면, 다음과 같이 설정 한다. </span><br />
<span style="background-color: #ffff99">Set Command : C:\Program Files\ADChips</span><br />
<span style="background-color: #ffff99"> \EISC Studio 3\econ\EConMan.exe </span><br />
<span style="background-color: #ffff99">Set Argument : -target cantus -systeminit -jtagspeed 10</span><br />
<span style="background-color: #ffff99"> -flash_filewrite 0×10000 $(TargetPath).bin</span><br />
<span style="background-color: #ffff99"> Set Argument중 -flash_filewrite 0×10000은 Download할</span><br />
<span style="background-color: #ffff99"> Sector의 Start Address를 뜻 한다. 위cantus.ld에서</span><br />
<span style="background-color: #ffff99"> 0×00010000으로 설정하였기에 1 Sector에 Download한다.</span><br />
<span style="background-color: #ffff99">3. E-CON과 Target을 연결하고, PC에서 E-CON이 인식된 것을 확인 한다. CANTUS를 JTAG Mode로 설정한다. EVM의 경우 SW1을 아래쪽을 향하게 한 상태에서 Reset한다.</span><br />
<span style="background-color: #ffff99">4. 메뉴에서 Build → Download To Target</span></p>
<p>EConMan의 실행창이 나타나고, Download가 진행된다.</p>
<div id="attachment_8774" class="wp-caption alignnone" style="width: 502px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC012.jpg" rel="lightbox[8616]"><img class="size-full wp-image-8774" alt="그림12. Uart의 Download Option" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC012.jpg" width="492" height="192" /></a><p class="wp-caption-text">그림12. Uart의 Download Option</p></div>
<p><span style="color: #ff0000"><strong>3.2.5 Execution</strong></span><br />
CANTUS에 Download한 Program은 CANTUS가 NORMAL MODE일 때 실행된다. EVM의 경우 SW1을 위쪽으로 향하게 한 상태에서 Reset한다.<br />
EVM의 RS-232C를 PC와 연결하면, PC에서 Terminal을 통해 출력하는 Message를 확인할 수 있다. 이때 Terminal은 119200 bps, Data 8 bit, 1 Stop bit, Parity none으로 설정한다. 0 Sector에 Download한 BootLoader가 실행되고, 1 Sector에 Download한 Uart Example까지 실행한 Terminal의 화면이다.</p>
<div id="attachment_8773" class="wp-caption alignnone" style="width: 300px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC013.jpg" rel="lightbox[8616]"><img class="size-full wp-image-8773" alt="그림13. Execution BootLoader + Uart" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC013.jpg" width="290" height="201" /></a><p class="wp-caption-text">그림13. Execution BootLoader + Uart</p></div>
<p><span style="color: #ff9900"><strong>3. Boot Loader를 사용하지 않는 시스템의 경우</strong></span><br />
CANTUS는 Reset후 Internal NOR Flash 0 Sector의 Program을 실행 한다. E-CON을 사용하면 Flash의 모든 Sector에 Write가 가능 하므로 E-CON을 사용할 수 있거나, 개발 시스템에서 Program Update와 같은 기능이 필요치 않은 경우에는 0 Sector에 BootLodaer가 아닌 Program을 Write하여 사용할 수 있다.<br />
다음은 Example/Uart를 Download하여 실행하는 경우이다.</p>
<p><span style="color: #ff0000"><strong>3.3.1 Example Project Build : Uart</strong></span><br />
<span style="background-color: #ffff99">1. /Example/Uart/Uart.epx를 실행하여 EISC Studio 3로 Project를 Open한다.</span><br />
<span style="background-color: #ffff99"> 2. Project Explorer에서 Linker Script에 cantus.ld를 Open한다. 11번 행에서 0×00010000으로 지정된 부분을 0×00000000으로 수정하여 Program이 실행되는 Sector의 Start Address가 0 Sector가 되도록 변경한다.</span><br />
<span style="background-color: #ffff99"> 3. 메뉴에서 Build → Build Project를 눌러 Project를 Build한다.</span><br />
<span style="background-color: #ffff99"> 4. Build가 완료 되면 /Example/Uart/output/Uart.elf.bin이 생성된다.</span></p>
<p>/Example/Uart/output/Uart.elf.bin이 생성되면, E-CON을 통해 Target에 Download할 수 있다.</p>
<p><span style="color: #ff0000"><strong>3.3.2  Example Project Download : Uart</strong></span><br />
Download Option을 <span style="text-decoration: underline;background-color: #ffff99">4) Example Project Download : Uart (P.38)에서 0×10000</span>으로 설정하였기 때문에 <span style="text-decoration: underline"><span style="background-color: #ffff99">1) Example Project Build : Uart(P.39)에서 설정한 0×00000000</span></span>으로 Uart를 Download하기 위해 설정을 변경해 주어야 한다.</p>
<p><span style="background-color: #ffff99">1. 메뉴에서 Build → Download Option</span><br />
<span style="background-color: #ffff99"> 2. Download Manager 창이 나타나면, 다음과 같이 설정한다.</span><br />
<span style="background-color: #ffff99"> Set Command : C:\Program Files\ADChips \EISC Studio 3\econ\EConMan.exe</span><br />
<span style="background-color: #ffff99"> Set Argument : -target cantus -systeminit -jtagspeed 10 -flash_filewrite 0×0 $(TargetPath).bin</span><br />
<span style="background-color: #ffff99"> Set Argument중 -flash_filewrite 0×0은 Download할 Sector 의 Start Address를 뜻 한다. 위 cantus.ld에서 0×00000000</span><br />
<span style="background-color: #ffff99"> 으로 설정하였기에 0 Sector에 Download한다.</span><br />
<span style="background-color: #ffff99"> 3. E-CON과 Target을 연결하고, PC에서 E-CON이 인식된 것을 확인 한다. CANTUS를 JTAG Mode로 설정한다. EVM의 경우 SW1을 아래쪽을 향하게 한 상태에서 Reset한다.</span><br />
<span style="background-color: #ffff99"> 4. 메뉴에서 Build → Download To Target</span></p>
<p>EConMan의 실행창이 나타나고, Download가 진행 된다.</p>
<p>3) Execution<br />
CANTUS에 Download한 Program은 CANTUS가 NORMAL MODE일 때 실행한다. EVM의 경우 SW1을 위쪽으로 향하게 한 상태에서 Reset한다.<br />
EVM의 RS-232C를 PC와 연결하면, PC에서 Terminal을 통해 출력하는 Message를 확인할 수 있다. 이때 Terminal은 119200 bps, Data 8 bit, 1 Stop bit, Parity none으로 설정한다.<br />
0 Sector에 Download한 Uart Example을 실행 한 Terminal의 화면이다.</p>
<div id="attachment_8772" class="wp-caption alignnone" style="width: 299px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC014.jpg" rel="lightbox[8616]"><img class="size-full wp-image-8772" alt="그림14. Execution Uart" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC014.jpg" width="289" height="95" /></a><p class="wp-caption-text">그림14. Execution Uart</p></div>
<p><span style="color: #ff9900"><strong>4. Debugging</strong></span><br />
CANTUS는 EISC Studio 3에서 E-CON을 통해 Debugging 할 수 있다. GDB를 사용하며 V3.2.2의 경우 Insight 환경도 사용할 수 있다. 다운 받은 SDK에 관련 매뉴얼이 있다.</p>
<div id="attachment_8771" class="wp-caption alignnone" style="width: 506px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC015.jpg" rel="lightbox[8616]"><img class=" wp-image-8771 " alt="그림15. CANTUS Debugging Insight" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC015-620x610.jpg" width="496" height="488" /></a><p class="wp-caption-text">그림15. CANTUS Debugging Insight</p></div>
<p>&nbsp;</p>
<p><span style="font-size: medium;color: #ff6600"><strong>4부. SDK의 Example</strong></span></p>
<p>SDK의 Example은 크게 BootLoader와 Application 두 가지로 나누어 진다.</p>
<p><span style="color: #ff9900"><strong>1. BootLoader</strong></span><br />
BootLoader는 USB Download, USB Mass Storage, Application 호출의 기능을 갖고 있다. 0 Sector에서 CANTUS Reset후 실행되며, USB Download나 USB Mass Storage의 명령이 없으면 특정 Sector의 Application을 호출 하게 된다.<br />
USB Download는 PC로부터 CANTUS DevTool을 통해 0 Sector가 아닌 특정 Sector에 Program을 Write한다. BootLoader 영역은 지울 수 없기 때문에 제품에서 Program Update용도로 사용할 수 있다.</p>
<div id="attachment_8770" class="wp-caption alignnone" style="width: 347px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC016.jpg" rel="lightbox[8616]"><img class=" wp-image-8770 " alt="그림16. CANTUS devTool" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC016.jpg" width="337" height="490" /></a><p class="wp-caption-text">그림16. CANTUS devTool</p></div>
<p>USB Mass Storage를 사용하면 EVM의 NAND Flash Memory 또는 SD Card를 PC에서 이동식 디스크로 사용할 수 있으며, FAT를 사용하여 Application에서 Drive로 접근하여 Read/Write가 가능하다. USB Mass Storage기능이 불필요하다면, BootLoader_tiny를 사용할 수 있다.</p>
<div id="attachment_8769" class="wp-caption alignnone" style="width: 486px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC017.jpg" rel="lightbox[8616]"><img class=" wp-image-8769 " alt="그림17. USB Mass Storage와 Application에서 사용 예" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC017-595x620.jpg" width="476" height="496" /></a><p class="wp-caption-text">그림17. USB Mass Storage와 Application에서 사용 예</p></div>
<p>Application 호출은 CANTUS 128A/512에 따라 달라진다.</p>
<p>CANTUS 128A(4 Kbyte x 32 Sector)<br />
BootLoader : 8 Sector(0&#215;00008000)를 호출<br />
BootLoader_tiny : 4 Sector(0&#215;00004000)를 호출</p>
<p>CANTUS 512(64 Kbyte x 8 Sector)<br />
BootLoader : 1 Sector(0&#215;00010000)를 호출<br />
BootLoader_tiny : 1 Sector(0&#215;00010000)를 호출</p>
<p><span style="color: #ff9900"><strong>2. Application</strong></span><br />
Application은 다음과 같이 구성 되어 있다. BootLoader가 필요하지 않다면, 0 Sector에 Download함으로써 BootLoader없이 CANTUS Reset후 실행할 수 있다. 단, 이때 Application의 Build는 Linker Script ‘cantus.ld’ 의 11번 Line이 0×00000000으로 설정된 상태에서 수행되어야 한다.<br />
Build 및 Download는 앞서 살펴 보았던 Uart와 동일하다.</p>
<div id="attachment_8767" class="wp-caption alignleft" style="width: 285px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC019.jpg" rel="lightbox[8616]"><img class="size-full wp-image-8767 " alt="그림 19. SDK의 Application" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SCADC019.jpg" width="275" height="561" /></a><p class="wp-caption-text">그림 19. SDK의 Application</p></div>
<p>&nbsp;</p>
<p>홈페이지 : <a href="www.adc.co.kr" target="_blank">www.adc.co.kr</a><br />
개발자커뮤니티공간 : <a href="http://cafe.naver.com/adchips" target="_blank">http://cafe.naver.com/adchips</a><br />
E-mail : sales1@adc.co.kr<br />
Tel : 02-2107-5870</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/8616/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[7호]국제 스마트그리드 전시회/ 국제 전기설비 전시회</title>
		<link>http://www.ntrexgo.com/archives/8563</link>
		<comments>http://www.ntrexgo.com/archives/8563#comments</comments>
		<pubDate>Wed, 25 May 2011 07:21:17 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[핫 뉴스]]></category>
		<category><![CDATA[7호]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[스마트그리드]]></category>
		<category><![CDATA[전기설비]]></category>
		<category><![CDATA[전시회]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=8563</guid>
		<description><![CDATA[디바이스마트 매거진 7호 &#124; 한국전력기술인협회와 KOTRA 공동주최하고 태양광 발전설비 기술세미나, 전기안전과리 기술교육 과정, 프로젝트 수주 및 수출상담회등 부대행사를 선보였으며, 24개국 271개의 업체가 참가하고 3만명 이상이 참관하여 현장의 분위기를 달구었다.]]></description>
				<content:encoded><![CDATA[<h2><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTSG002.jpg" rel="lightbox[8563]"><img class=" wp-image-8715 alignleft" alt="07HTSG002" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTSG002-300x225.jpg" width="202" height="151" /></a><span style="color: #222268"><strong>국제 스마트그리드 전시회 /</strong></span></h2>
<h2><span style="color: #333399"><strong>국제 전기설비 전시회</strong></span></h2>
<p>&nbsp;</p>
<p style="text-align: right">글 | 김장원 기자 jwkim0@ntrex.co.kr</p>
<p>&nbsp;</p>
<p>봄의 끝자락에 접어든 2011년 5월 18일부터 20일까지 3일간 서울코엑스 1층에서는 &#8220;국제 스마트그리드 및 전기설비전&#8221;이 열렸다. 이번 전시회는 서울에서 개최되는 첨단 전기, 전력, 플랜트 에너지 분야 최고의 전시회이다.</p>
<p>한국전력기술인협회와 KOTRA 공동주최하고 태양광 발전설비 기술세미나, 전기안전과리 기술교육 과정, 프로젝트 수주 및 수출상담회등 부대행사를 선보였으며, 24개국 271개의 업체가 참가하고 3만명 이상이 참관하여 현장의 분위기를 달구었다.</p>
<p>스마트 그리드란 전력망에 IT를 접목하여 전력 공급자와 소비자가 양방향으로 실시간 정보를 교환할 수 있는 지능형 전력망이다. 이 기술의 좋은점은 불규칙한 신재생 전원의 보급을 확대할 수 있으며 에너지를 효율적으로 사용할수 있다는 점이다.</p>
<p>이번행사는 Global Electric Power Tech라는 이름과 국제스마트그리드 전시회, 국제 전기설비전 전시회란 이름으로 개최 되었다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTSG001.jpg" rel="lightbox[8563]"><img class="size-medium wp-image-8718 alignnone" alt="HIGEN모터의 전기자동차모터" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTSG001-300x225.jpg" width="300" height="225" /></a></td>
</tr>
<tr>
<td style="text-align: center">HIGEN모터의 전기자동차모터</td>
</tr>
</tbody>
</table>
<p>스마트그리드 소개되는 내용으로는 신재생에너지설비, 전기차 충전시스템, 배전자동화시스템(DAS), 스마트 프라이싱 시스템등이 있었고 전기설비 내용으로는 발전 프랜트 설비, DC전원, 연료전지, 방송통신 정보설비등이 소개되었다.<br />
이번 스마트그리드에서는 전기자동차 산업이 가장 큰 이슈였다. 효성을 비롯한 많은 업체들이 전기차 관련 기술들을 쉴틈없이 설명하느라 바빠보였다.<br />
입구에 들어서자 가장 먼저 보인 효성부스. 주력인 전기차관련 기술들을 내세워 급속 충전기, 완속 충전기의 시물레이션과 지난 전기차 시연회에서 선보였던 국산 전기차 블루온에 탑재되었던 모터가 소개 되고 있었다.<br />
광덕엔지니어에서 소개된 분전반 시스템 e-SMART는 전사적 에너지 관리 시스템을 갖춰 부하별 에너지 관리에 의한 패러다임 변화에 대응한다. 또한 고효율설비 에너지 효율성을 진단, 관리를 통해 비용을 절감 시키는 기능을 갖고 있다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTSG004.jpg" rel="lightbox[8563]"><img class="alignnone size-medium wp-image-8717" alt="07HTSG004" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTSG004-224x300.jpg" width="224" height="300" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTSG003.jpg" rel="lightbox[8563]"><img class="alignnone size-medium wp-image-8716" alt="07HTSG003" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTSG003-224x300.jpg" width="224" height="300" /></a></td>
</tr>
<tr>
<td style="text-align: center">광덕엔지니어링의 e-SMART</td>
<td style="text-align: center">쏠라에너비즈의 추적식 태양광 발전기</td>
</tr>
</tbody>
</table>
<p>쏠라 에너비즈의 양축 추적식 태양광 발전기는 고정식 대비 최대 64% 효율증대를 보이며 태풍, 지진등에 의한 자연재해 안전장치가 있으며 표면 자동세척과 냉각 장치가 내장되어 있다는 점에서 눈길을 끌었다.<br />
생각보다 많은 볼거리를 제공해 주지 못한 이번 스마트그리드 전시회였지만 매회 발전하는 모습을 보여주듯이 내년에도 더 좋은 전시회로 찾아오길 기대해본다.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/8563/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[7호]위드로봇 무료강좌 기술자료 &#8211; 3차</title>
		<link>http://www.ntrexgo.com/archives/7742</link>
		<comments>http://www.ntrexgo.com/archives/7742#comments</comments>
		<pubDate>Wed, 25 May 2011 07:11:38 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[스페셜 컬럼]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[7호]]></category>
		<category><![CDATA[강좌]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[스테레오]]></category>
		<category><![CDATA[영상]]></category>
		<category><![CDATA[자료]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=7742</guid>
		<description><![CDATA[디바이스마트 매거진 7호 &#124; 본고에서는 3차원 정보를 영상 정보를 통해 추출하기 위한 방법을 소개한다.]]></description>
				<content:encoded><![CDATA[<h3><span style="color: #333333"><a href="http://www.ntrexgo.com/wp-content/uploads/2011/05/07scwith3030.jpg" rel="lightbox[7742]"><img class=" wp-image-7778 alignleft" alt="07scwith3030" src="http://www.ntrexgo.com/wp-content/uploads/2011/05/07scwith3030-300x225.jpg" width="210" height="158" /></a>3차 릴레이 무료강좌 기술자료</span></h3>
<h2><span style="color: #006b00">스테레오 영상 및 3D Vision 기술</span></h2>
<p>&nbsp;</p>
<p>글 | 위드로봇(주) 김도윤대표</p>
<p>&nbsp;</p>
<p>위드로봇 연구실 확장 이전 기념 릴레이 무료 강좌 3차 교육이 2010년 12월 18일 토요일에 성수동 위드로봇 본사에서 진행 되었습니다. 영상 처리 시스템에 대한 주제로 진행된 이번 강좌의 강의 내용을 참석하지 못한 디바이스마트 매거진 구독자들을 위해 간단히 소개하고자 합니다.</p>
<p><span style="color: #008000"><strong>사람 눈이 2개인 이유</strong></span><br />
지난 달(2011년 3월호)에는 “영상 처리 시스템 소개”라는 제목으로 영상 처리 시스템에 대한 개요를 설명했다. 이 때 우리가 얻는 영상이란 “3차원 공간 상에 존재하는 물체들이 광원의 빛 입자를 반사하는 파장을 렌즈로 모아 2D 평면에 투영(projection)한 것” 이라 정의했다. 이 때 3차원 정보를 2차원 평면에 투영하기 때문에 거리(또는 깊이)에 대한 정보는 사라지게 된다. 즉, 2D 이미지 한 장 만으로는 어떤 물체가 원래 작아서 작게 보이는 것인지, 아니면 멀리 있는 물체를 찍어서 작게 보이는 것인지 알 수 없다는 것이다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3001.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7744" alt="07scwith3001" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3001-620x217.jpg" width="496" height="174" /></a></td>
</tr>
<tr>
<td style="text-align: center">그림 1. 2D 평면으로 투영되면 같은 ray상에 있는 물체는 같은 크기로 보인다.</td>
</tr>
</tbody>
</table>
<p>따라서 생명체들은 최소 두 개의 영상을 이용해 한 개의 눈으로 얻을 때 사라지는 거리의 정보를 다시 복원해 낸다. 이 때 재미있는 점은 두 눈이 바라보는 영역이 서로 많이 겹칠수록 거리를 정밀하게 알 수 있는 반면 한 번에 볼 수 있는 영역은 줄어들고, 반대로 서로 겹치지 않도록 하면 한 번에 많은 영역을 볼 수 있지만 거리 계산은 정확하지가 않다는 점이다. 이와 같은 특징은 동물의 진화에도 적용되었다. 육식 동물들은 눈이 앞쪽으로 달려있어 가능한 먹잇감과 나와의 거리를 정확하게 계산할 수 있도록 진화되었고, 초식 동물은 머리의 양 옆으로 붙어 거리 계산보다는 사방 팔방 중에 어디에 포식자가 있는지 방향을 판단하여 반대 방향으로 도망가기 쉽도록 진화되었다는 점은 재미있는 부분이다. 이와 같은 차이도 3D 비전 기술을 이해하면 쉽게 설명된다.</p>
<table style="border-collapse: collapse" width="600" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3002.jpg" rel="lightbox[7742]"><img class="wp-image-7745 aligncenter" alt="07scwith3002" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3002-173x300.jpg" width="138" height="240" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3003.jpg" rel="lightbox[7742]"><img class="wp-image-7746 aligncenter" alt="07scwith3003" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3003-208x300.jpg" width="166" height="240" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">그림 2. 초식 동물과 육식동물의 눈의 방향 비교</td>
</tr>
</tbody>
</table>
<p>본고에서는 3차원 정보를 영상 정보를 통해 추출하기 위한 방법을 소개한다. 지난 달 원고에서도 밝혔듯이 이 부분은 꽤나 복잡한 수학과 개념의 이해를 필요로 한다. 특히 우리가 이 때까지 배워왔던 기하학은 유클리드 기하학인데, 카메라 이미지에서 발생하는 기하학 문제는 프로젝티브 스페이스(projective space) 상에서 발생하는 기하학 문제이다. 따라서 직관적으로 이해하기 어려우며 수학의 벡터 스페이스 개념을 빌어야 온전히 이해가 가능하다. 대학원에서는 통상적으로 두 학기간의 과목을 통해 해당 개념을 학습하는 분량이기에 잡지의 한정된 분량에서 3D 기술을 모두 소개한다는 것은 무리이다. 따라서 최대한 개념과 그림을 위주로 3D 영상 처리 분야를 소개해 보려고 한다.</p>
<p><strong><span style="color: #008000">3D 정보를 얻기 위한 방법</span></strong><br />
두 대의 카메라로부터 3D 정보를 얻기 위한 연구는 미국 CMU, MIT 및 영국 Cambridge University를 필두로 유수 대학 및 연구소에서 50년 넘게 연구가 진행되고 있다. 가장 일반적인 방법, 즉 교과서에 나오는 방법은 1987년도 MIT의 O.Fangers의 연구로 현재 전형적인 3D 스테레오 비전 기술에 해당한다. 이전에는 계산량의 문제로 실시간 처리가 어려워 실제 사용이 불가했으나 최근 프로세서 성능의 개선으로 2000년대 들어 실시간 동작이 가능해 지고 있다. 이로 인해 보안 시스템, 무인 자동차, 군사용 로봇 등에서 많은 연구가 진행되고 있다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3004.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7747" alt="07scwith3004" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3004-620x434.jpg" width="434" height="304" /></a></td>
</tr>
<tr>
<td>그림 3. 전형적인 3D 스테레오 비전의 3D 좌표값을 계산하기 위한 수식</td>
</tr>
</tbody>
</table>
<p>3D 스테레오 비전 기술은 두 개의 카메라를 이용하여 각 영상의 차이(disparity)를 이용하여 2D 영상에서 사라진 거리 정보를 복원해 내는 기술이다. 즉, 두 카메라로부터 멀리 떨어진 물체는 각각의 카메라에 입력된 위치의 차이가 그다지 나지 않게 된다. 반면 두 카메라로부터 가까운 물체는 각각의 카메라에 입력된 위치의 차이가 크다. 이러한 차이를 디스패리티(disparity)라고 하며 디스패리티를 구하면 거리 정보를 복원할 수 있게된다.<br />
그런데 여기서 문제점이 왼쪽 영상의 한 점이 오른쪽 영상의 어디에 대응되는가를 알아야 디스패리티를 구할 수 있다. 이렇게 왼쪽, 오른쪽 영상의 일치점을 찾는 과정을 매칭(matching)이라고 한다. 통상적으로 한 점만으로는 서로 비교가 어렵기 때문에 대응점 주변의 정보를 하나의 블록으로 이용하여 찾는 것이 일반적이며, 이를 블록 매칭이라 부른다.<br />
매칭을 위해 한 블록을 다른 쪽 영상에서 처음부터 끝까지 모두 뒤지는 것은 불합리해 보이니 카메라간의 기하학적인 구조 정보를 이용하여 최소한 어느 근방에 있을 것 같다라는 정보를 이용하여 탐색 위치를 줄여주는 과정을 영상 교정(image rectification)이라고 한다.<br />
영상 교정이라는 표현보다는 이미지 렉티피케이션이라는 표현이 더 일반적으로 많이 쓰인다. Rectification을 위해서는 두 대의 카메라 사이의 배치 형태를 정확하게 알고 있어야만 한다. 이를 카메라 외부 파라미터(camera extrinsic parameter)라고 한다.<br />
마지막으로 앞서 디스패리티를 구하면 거리 정보를 알 수 있다고 했는데 이는 상대적인 정보까지만 알아낸 것이다. 영상 처리 분야에서는 이를 up to scale까지 찾아냈다고 표현하는데, 우리가 사용하는 단위, 즉 metrical information을 알고 싶다면, 좀 더 쉽게 설명하면 몇 cm 떨어져 있는지 알고 싶다면 카메라 내부 파라미터(camera intrinsic parameter)를 찾아내야 한다.<br />
이처럼 카메라 내부, 외부 파라미터를 찾아내는 과정을 카메라 캘리브레이션(camera calibration)이라고 한다. 꽤나 복잡하게 많이 파고 내려갔는데, 다시 한 번 정리해보자.</p>
<p>한 장의 영상만으로는 3D 정보를 얻을 수가 없으며 서로 다른 위치에서 촬영한 최소 두 장의 영상이 필요하다. 이 두 장의 영상에서 disparity를 계산하면 위치를 파악할 수 있는데, disparity를 구하려면 image matching을 풀어야 한다. 그냥 image matching을 하면 너무나 많은 시간이 걸리기에 image rectification을 수행하는데, 이를 위해서는 camera calibration이 필요하다. 따라서 3D 영상 처리의 순서는 역순으로 (1) 카메라 캘리브레이션을 수행한 뒤, (2) image rectification을 수행하고, (3) image matching을 통해 disparity를 구한 뒤, (4) camera intrinsic parameter값을 이용하여 유클리디안 공간 상의 3차원 좌표를 계산하는 순서로 이뤄진다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3005.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7748" alt="07scwith3005" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3005-620x293.jpg" width="397" height="187" /></a></td>
</tr>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3006.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7749" alt="07scwith3006" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3006-620x554.jpg" width="397" height="354" /></a></td>
</tr>
<tr>
<td style="text-align: center">그림 5. image rectification 과정</td>
</tr>
</tbody>
</table>
<p>그림 5에서 왼쪽과 오른쪽의 매칭이 되는 부분은 2D 공간에서 1D 직선으로 일치시키는 과정으로 매칭 시간을 줄여준다.<br />
이 위 한 문단이 영상 처리 대학원에서 약 반학기 동안 이뤄지는 내용이다. 3D 영상 처리를 하겠다면 필수적으로 알고 있어야 한다. 다행스러운 부분은 필자가 공부하던 1990년대까지만해도 위 모든 문제를 각자가 알아서 다 해결해야만 했다. 따라서 어느 한 부분에서 막혀서 진도가 나가지 않으면 고급 알고리즘의 구현은 고사하고, 3D 좌표값도 한 번 계산하지 못하고 시간만 버리는 경우도 많았다. 2000년대 접어들어 MATLAB에서 다양한 이미지 관련 Toolbox가 나오고, OpenCV라는 걸출한 오픈 소스 영상 처리 알고리즘이 공개되면서 위 내용을 모두 알지 못해도 3D 좌표값을 구할 수 있게 되었다. 하지만 그 근본 원리를 알고 라이브러리를 쓰는 개발자와 뭔지도 모르고, 그 결과값만을 받아 쓰기에 급급한 개발자 사이에는 새로운 문제를 접할 때 개발 속도에 차이가 나기 마련이다. 3D 영상 처리에 관심 있는 독자들은 별도의 책들을 통해 앞에서 소개한 각각의 기술들을 숙지하면 연구에 많은 도움을 받을 수 있을 것이다.</p>
<p>3D 스테레오 비전을 연구하는 사람들이 흔히 사용하는 시스템은 캐나다 Point Grey사의 Bumblebee 스테레오 카메라이다. CCD 센서 두 개를 내장하고 있으며, 320×240 크기의 영상을 동기화 맞춰 1394 Firewire 인터페이스로 출력하는 시스템으로 2000년대 초반에는 이 시스템이 3D 스테레오 영상을 얻는 방법으로 유일했었다.</p>
<table style="border-collapse: collapse" width="600" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3007.jpg" rel="lightbox[7742]"><img class="wp-image-7750 aligncenter" alt="07scwith3007" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3007-300x98.jpg" width="240" height="78" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3008.jpg" rel="lightbox[7742]"><img class="wp-image-7751 aligncenter" alt="07scwith3008" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3008-300x225.jpg" width="240" height="180" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">그림 6. Point Grey사의 Bumblebee(좌)와 이 카메라에서 출력되는 3D 이미지(우)</td>
</tr>
</tbody>
</table>
<p>그림6에서 2D이미지로 표시할 때 깊이 정보는 밝기값으로 표기가 된다. 위 이미지에서는 밝을수록 가까운 물체에 해당한다.<br />
Bumblebee 시스템의 경우 영상을 PC로 전달하며, 스테레오 비전 알고리즘은 PC에서 동작하기에 다양한 알고리즘을 시도해 볼 수 있어 국내의 많은 연구진들이 이를 구매하여 연구를 진행했었다. 최근에는 Tyzx사에서 Deepsea라는 고속 스테레오 카메라가 출시되었는데 이전의 복잡한 매칭 계산을 상대적으로 간단한 census transform을 사용하여 초당 200 프레임까지 계산이 가능하다. 실제로 census transform은 이전의 방식 보다는 결과가 더 좋지 않지만 빠른 연산으로 우선 매칭을 해결한 다음 post processing으로 계산 결과를 다시 한 번 정리하여 보다 짧은 시간에 이전의 복잡한 방식보다 더 나은 결과를 내고 있다.</p>
<table style="border-collapse: collapse" width="600" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3009.jpg" rel="lightbox[7742]"><img class="size-full wp-image-7752 aligncenter" alt="07scwith3009" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3009.jpg" width="208" height="137" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3010.jpg" rel="lightbox[7742]"><img class=" wp-image-7753 aligncenter" alt="07scwith3010" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3010-300x248.jpg" width="210" height="174" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">그림 7. Tyzx사의 Deepsea(좌)와 이 카메라에서 출력되는 3D 이미지(우)</td>
</tr>
</tbody>
</table>
<p>이와 비슷하게 위드로봇에서도 3D 좌표를 계산하는 카메라를 만들어 보유 중이다. CMOS 카메라 두 개를 이용하며 BumbleBee와 동일하게 싱크를 맞춘 영상을 USB 2.0 인터페이스를 통해 PC로 최대 640×480 크기로 전달하며, 3D 계산 알고리즘은 라이브러리로 제공되어 PC 상에서 30fps 속도로 320×240 크기에서 실시간 동작시킬 수 있다.</p>
<table style="border-collapse: collapse" width="600" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3011.jpg" rel="lightbox[7742]"><img class="wp-image-7754 aligncenter" alt="07scwith3011" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3011-300x277.jpg" width="180" height="166" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3012.jpg" rel="lightbox[7742]"><img class="wp-image-7755 aligncenter" alt="07scwith3012" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3012-300x224.jpg" width="210" height="157" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">그림 8. myVision-Stereo 프로토타입</td>
</tr>
</tbody>
</table>
<p>그림8은 최대 640×480 컬러 스테레오 이미지를 USB 2.0 HS 인터페이스를 통해 30프레임을 전달하는 장치이다.<br />
위 제품은 외형을 좀 더 손질하여 myVision-Stereo 라는 제품으로 9월 전에 출시할 예정이므로 3D 영상을 연구하는 분들이 외산 장비에 비해 보다 저렴하고 손쉽게 시작할 수 있는 계기를 마련할 것으로 보인다.</p>
<p><strong><span style="color: #008000">게임 분야에서 3D</span></strong><br />
앞서 소개한 스테레오 영상 장치들은 연구용이라 외산 제품의 경우 한 대의 가격이 최소 300만원에서 최대 1천만에 육박하는 고가 시스템이다. 따라서 이러한 제품에서 동작하는 알고리즘을 작성해 봤자 컨슈머 시장으로 진입하기에는 많은 어려움이 있어 시중에서는 3D 정보를 활용하는 장치를 보기가 어려웠었다.<br />
2000년 후반에 들어 3D 모션 인식 분야에서 패러다임 쉬프트가 발생하는데 바로 게임 분야의 적용 및 시장에서의 성공이다. 전통적인 스테레오 영상 처리 기술로는 가격도 비싸고, 성능도 원하는 만큼 나오지 않자 게임 분야에서는 또 다른 방법으로 3D 정보를 얻는 방법을 모색하기 시작했다. 그 첫 번째 신호탄이 닌텐도에서 Wii로 시장에 나타났다. TV 수상기 위에 적외선 LED 바를 올려 놓고, 손에 쥐고 게임을 조정하는 컨트롤로(WiiMote) 내에는 카메라 센서가 들어있어 TV 수상기 위에 위치한 적외선 LED 위치를 추적한다. 추가로 WiiMote 내에는 3축 가속도 센서가 내장되어 있어 WiiMote의 pose를 실시간으로 파악한다. 최근에는 Wii Motion Plus 팩이라고 해서 3축 자이로 센서를 WiiMote에 추가로 부착할 수 있는 장치가 출시되어 보다 정밀한 3차원 공간상에의 위치, 각도를 추정할 수 있다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3013.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7756" alt="07scwith3013" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3013-300x284.jpg" width="192" height="182" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3014.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7757" alt="07scwith3014" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3014-300x214.jpg" width="240" height="171" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">그림 9. 닌텐도 사의 WiiMote와 Wii Motion Plus</td>
</tr>
</tbody>
</table>
<p>소니의 플레이스테이션의 화려한 그래픽에 수세에 몰려있던 닌텐도는 3D 모션 인식이라는 신기술로 이러한 열세 분위기를 단번에 만회한다. 실제로 2007, 2008년도에는 매장마다 입고가 되자마자 매진되는 분위기였으며, 게임에 있어 가장 중요한 부분은 화려한 그래픽이 아닌 사용자의 몰입감이라는 사실을 다시 한 번 확인하게 된다.<br />
3D 모션 인식이 게임 분야에서 화두로 떠오르면서 소니 사에서도 플레이스테이션 아이라는 장치를 도입하여 추격을 하는데, 이는 닌텐도와 다른 본격적인 영상 처리를 통한 모션 인식에 해당한다. 3차원 공간 상에서 컨트롤러 앞단에 장착되어 있는 구의 색상과 크기를 이용하여 플레이스테이션 아이와 상대적인 위치를 파악하고, 포즈는 MEMS 기반 센서들로 파악한다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3015.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7758" alt="07scwith3015" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3015-291x300.jpg" width="186" height="192" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3016.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7759" alt="07scwith3016" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3016-300x223.jpg" width="240" height="178" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">그림 10. 소니 사의 플레이스테이션 아이(좌)와 무브 컨트롤러(우)</td>
</tr>
</tbody>
</table>
<p>이와 같은 방식은 앞서 소개한 닌텐도 방식에 비해 컨트롤러의 위치를 놓칠 확률이 줄어들고, 동작 범위가 넓어지는 효과가 있으며, 무엇보다 플레이스테이션에 카메라가 장착되는 셈이기에 각종 영상 처리 알고리즘을 응용한 게임이 가능해 진다는 장점이 있다. 이를 이용한 게임 타이틀도 출시 되었는데, eye toy 시리즈와 eye pet이 그것이다. 카메라로부터 입력된 영상을 이용하여 3D 캐릭터를 3차원 공간 상에 실제 존재하는 것처럼 출력하는 즉, 증강 현실 기술을 이용하여 게임을 구현하고 있다. 기존 게임기에 카메라가 붙으니 좀 더 지능적인 장치로 탈바꿈하는 경우이다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3017.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7760" alt="07scwith3017" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3017-300x170.jpg" width="192" height="109" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3018.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7761" alt="07scwith3018" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3018-300x141.jpg" width="216" height="102" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3019.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7762" alt="07scwith3019" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3019-300x168.jpg" width="216" height="121" /></a></td>
</tr>
<tr>
<td style="text-align: center">그림 11. EyePet 데모 동영상</td>
<td style="text-align: center" colspan="2">그림 12. MS사의 Kinect 내부 구조와 모션 인식</td>
</tr>
</tbody>
</table>
<p>2000년대 3D 동작 인식 게임기 시장을 닌텐도와 소니가 이끌어왔다면 2010년부터는 MS사의 XBOX 반격이 시작된다. XBOX에서 추가로 부착할 수 있는 Kinect 라는 장비를 선보이는데, 이 제품은 내부에 IR 카메라와 IR 방식의 소형 프로젝터(엄밀히 말하면 IR LED와 렌즈 및 패턴 필름)을 내장한 3D 카메라이다. 흔히 외부에서 보기에 두 개의 카메라가 배치되어 있어 Kinect가 스테레오 기법으로 3D 좌표를 추출하는 것으로 잘못 알고 있는 분들이 많이 있다. Kinect는 기존 3D 영상 처리와 다르게 하나의 카메라로 3D 좌표를 계산해 내는데, 카메라를 하나 사용하는 대신 광원을 이용하여 미리 알고 있는 패턴을 공간에 투사하고, 이 패턴이 어떻게 일그러지는가를 파악하여 거리 정보를 파악하는 방식이다. 이는 이스라엘의 프라임센서사가 가지고 있는 특허로, MS사는 이 특허를 이용하여 Kinect를 제작하였다. 패턴 매칭 및 거리 계산은 ASIC으로 구현하였고, 속도는 놀랍게도 60fps으로 계산이 가능하다. 또한 3D 스테레오 기법에서 해결 못한 고질적인 문제인 “특징점들이 없는 밋밋한 평면”의 거리도 깔끔하게 해결이 된다. 그리고, 오히려 이러한 밋밋한 평면에서 거리 계산이 좀 더 정밀하게 나오기에 게임기가 놓이는 공간인 거실 바닥면을 생각하면 매우 훌륭한 어플리케이션에 접목했다는 것을 알 수 있다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3020.jpg" rel="lightbox[7742]"><img class="alignnone size-medium wp-image-7763" alt="07scwith3020" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3020-300x225.jpg" width="300" height="225" /></a></td>
</tr>
<tr>
<td style="text-align: center">그림 13. Kinect에서 투사하는 random dot pattern</td>
</tr>
</tbody>
</table>
<p>그림 13 위 그림처럼 Kinect는 random dot stereogram의 패턴을 쏘고 이 패턴의 일그러짐을 찾아내어 거리를 계산한다.<br />
재미있는 점은 kinect가 시중에서 판매되는 가격이 20만원선인데, 열 배 가격인 연구용 3D 스테레오 시스템보다도 성능이 더 좋다는 사실이다. 이에 kinect를 XBOX가 아닌 일반 PC에서 사용하기 위한 해킹 시도가 있었으며, 실제로 해킹에 성공하여 PC와 리눅스에서 연결에 성공하였다. 이에 올해 4월 MS사는 정식으로 kinect를 지원하는 라이브러리를 공개하였으며, 이를 이용한 여러 PC 응용 프로그램이 출시될 가능성을 열어두었다. Kinect는 많은 가능성을 영상 처리 전공자들에게 열어 두었지만 그 방식의 한계상 실내에서만 사용이 가능하다. 이를 실외에서 응용할 수 있도록 개선한다면 그 활용 범위는 무궁무진하게 넓어질 것으로 예상된다.<br />
이와 같은 게임 분야에서 3D 영상 처리의 성공에 고무된 영상 처리 업체들은 앞다퉈 3D 좌표를 추출할 수 있는 카메라들을 선보이고 있으며, 재미있게도 그림-14의 Zcam은 MS사가 인수 합병하였다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3021.jpg" rel="lightbox[7742]"><img class="alignnone size-thumbnail wp-image-7764" alt="07scwith3021" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3021-150x150.jpg" width="150" height="150" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3022.jpg" rel="lightbox[7742]"><img class="alignnone size-thumbnail wp-image-7765" alt="07scwith3022" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3022-150x150.jpg" width="150" height="150" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3023.jpg" rel="lightbox[7742]"><img class="alignnone size-thumbnail wp-image-7766" alt="07scwith3023" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3023-150x150.jpg" width="150" height="150" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="3">그림 14. 여려 종류의 3D 카메라들 (좌에서부터 MESA사의 SR4000, PMDTec, ZCam)</td>
</tr>
</tbody>
</table>
<p><strong><span style="color: #008000">3D 정보를 얻는 또 다른 방법</span></strong></p>
<p>본고의 주제가 3D 영상 처리이기에 카메라 영상을 통해 3D 정보를 얻는 방법을 소개했지만 현재까지 3D 정보를 추출하는 방식으로는 카메라의 영상을 이용하는 것보다는 레이저를 이용하는 방식이 훨씬 신뢰도가 높다. 대표적인 회사로 SICK 시스템이 있는데, 실내-실외 모두 mm 이하의 정밀도로 거리를 빠르게 계산해 주기에 무인 차량에는 영상 처리용 카메라 이외에 레이저 스캐너 센서를 차량 천장에 주렁주렁 달고 실험을 하고 있다. 이러한 현실은 이런저런 영상 처리 기법으로 3D 정보를 찾아내는 방법이 레이저를 쏘고 물체에 맞아 돌아오는 시간을 측정하는 TOF(Time of Flight) 방식에 비해 아직 정밀도가 떨어진다는 것을 간접적으로 설명해 준다. 이와 같은 상황을 비관적으로 해석하여 ‘영상 처리로는 3D 정보를 얻는데 한계가 있다’라고 단정적으로 결론을 짓고 레이저 센서의 응용으로 분야를 바꾸는 연구자들도 있는 것이 사실이다. 하지만 실제 생태계에서 수많은 동물들이 영상 처리를 통해 3D 정보를 얻고 있으며, TOF 방식으로 공간에 대한 정보를 얻는 동물은 박쥐와 돌고래 정도 뿐이니 아직 우리에게 충분히 빠른 프로세서와 뛰어난 알고리즘이 없음을 탓해야 할 것 같다. 또한 달리 표현하면 아직 영상 처리 쪽에서는 할 일이 많이 남아있다고 해도 과언이 아닐 것이다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3024.jpg" rel="lightbox[7742]"><img class="alignnone size-full wp-image-7767" alt="07scwith3024" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3024.jpg" width="200" height="150" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3025.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7768" alt="07scwith3025" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3025-300x280.jpg" width="168" height="157" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">그림 15. SICK사의 레이저 스캐너와 무인 차량 모습</td>
</tr>
</tbody>
</table>
<p><strong><span style="color: #008000">카메라 캘리브레이션</span></strong><br />
이제서야 카메라 캘리브레이션을 설명하려고 한다. 통상적인 3D 스테레오 영상 처리 설명이라면 카메라 캘리브레이션부터 설명하지만 저자는 “왜 캘리브레이션이 필요한지, 어떤 분야에서 쓰게 되는 것인지”를 먼저 설명하고 싶었다. 전형적인 캘리브레이션의 수학적인 표현은 아래와 같다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3026.jpg" rel="lightbox[7742]"><img class="alignnone  wp-image-7769" alt="07scwith3026" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3026-620x349.jpg" width="434" height="244" /></a></td>
</tr>
<tr>
<td style="text-align: center">그림 16. 카메라 좌표계와 유클리디안 좌표계</td>
</tr>
</tbody>
</table>
<p>(x,y,z)는 일반적으로 우리가 알고 있는 3차원 공간 상의 좌표계이며, (u,v)는 이미지 상에서 좌표계이다. 이 때 카메라 내부 파라미터를 최대한 간략하게 표기하면 초점 거리 f와 scale factor w로 두 좌표계간의 변환을 쓸 수 있다.</p>
<p>카메라 캘리브레이션이란, 이 미지수들을 찾아내는 과정이며, 이를 찾기 위해 미리 3차원 공간상의 좌표를 알고 있는 특정 패턴을 카메라로 받아들여 계산해 낸다. 위에서 [u,v, w] 좌표와 [x,y,z] 사이의 좌표를 변환하는 행렬을 프로젝션 매트릭스 P라고 부르며, P를 계산하기 위해 3차원 공간의 여러 점 또는 한 점을 공간 상에서 움직여가며 촬영하여 수식을 쌓아(stacking) 최적화 문제로 해결한다. 이 때 P 매트릭스에 여러 가지 기하학적인 특징이 있기에 값을 계산할 때 이러한 기하학적 특징까지 고려하여 계산하면 보다 정밀한 값을 찾을 수 있다. 가장 일반적으로 많이 사용하는 방식은 SVD(Singular Value Decomposition)을 사용하며 좀 더 복잡하게 계산할 때는 전형적인 최적화 방식으로 계산하기도 한다.</p>
<p>캘리브레이션을 수행하기 위해 사용되는 패턴은 크게 2D 체커 보드와 3D 캘리브레이션 박스로 나눌 수 있다. 2D 체커 보드는 상대적으로 제작이 쉽지만 캘리브레이션을 위해 체커 보드를 이리저리 바꿔가며 여러 장의 이미지를 얻어야 한다는 단점이 있다. 반면 캘리브레이션 박스는 한 장의 이미지만으로 카메라 캘리브레이션을 수행할 수 있다는 장점이 있지만 제작이 복잡하다는 단점이 있다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3027.jpg" rel="lightbox[7742]"><img class="alignnone size-full wp-image-7770" alt="07scwith3027" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3027.jpg" width="263" height="199" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3028.jpg" rel="lightbox[7742]"><img class="alignnone size-medium wp-image-7771" alt="07scwith3028" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07scwith3028-300x224.jpg" width="300" height="224" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">그림 17. 카메라 캘리브레이션에 사용되는2D 체커 보드(좌)와 위드로봇에서 제작한 캘리브레이션 박스(우)</td>
</tr>
</tbody>
</table>
<p>위드로봇에서는 영상 처리 전공자들이 손쉽게 사용할 수 있는 캘리브레이션 박스를 제작하여 시판을 앞두고 있으며, PC와 무선으로 데이터를 주고 받을 수 있어 매칭 문제도 손쉽게 해결할 수 있도록 하였다.<br />
3D 좌표값의 정밀도는 카메라 캘리브레이션의 정확도와 연결된다. 위드로봇에서는 1280×1024 해상도의 카메라를 이용하여 전방 3m 앞의 물체가 움직일 때 mm 이하의 해상도로 0.01도의 움직임까지 측정할 수 있는 기술을 확보하고 있다. 이는 전적으로 캘리브레이션 기술에 의존적이기에 영상 처리를 통해 정밀한 계측이 필요하다면 캘리브레이션 기술 확보가 먼저 수행되어야 한다.</p>
<p><strong><span style="color: #008000">마감하며</span></strong><br />
원고를 정리하다 보니 해당 내용을 공개 강좌로 진행한지도 벌써 3개월이 지났다. 공개 강좌 때 여러 내용을 추가 보강하여 유료 강좌로 시작하겠다고 독자들에게 약속을 했었는데, 아직 그 약속이 실행되고 있지 못하고 있다. 다행스러운 점은 위드로봇 연구소에서 다양한 신기술들이 개발되어 올해 하반기에는 여러 종류의 영상 처리 시스템이 선 보일 것으로 예상된다. 하루 빨리 제품 개발을 마무리하고, 새로운 내용을 보강하여 강의 프로그램을 만들 것을 다시 한 번 약속 드린다. 다음 번 원고는 마지막 원고로 임베디드 비전 시스템에 대한 설명이 이어지며, 위드로봇의 여러 기술이 소개될 것이다.</p>
<div class="symple-box yellow none" style="text-align:left; width:100%;"> 
<span style="font-size: 13px;line-height: 19px">※이미지 출처</span><br />
그림6 PointGrey Inc. 홈페이지<br />
그림7 PointGrey Inc. 홈페이지<br />
그림9 Nintendo Inc.<br />
그림10 Sony Inc.<br />
그림11 YouTube<br />
그림12 www.ros.org, PrimeSense사<br />
그림13 www.ros.org<br />
그림14 산기평 비전 SoC 기획 보고서<br />
그림15 SICK Inc, DARPA<br />
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/7742/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[7호]2011국제 모션컨트롤 전시회</title>
		<link>http://www.ntrexgo.com/archives/8461</link>
		<comments>http://www.ntrexgo.com/archives/8461#comments</comments>
		<pubDate>Wed, 25 May 2011 06:43:42 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[핫 뉴스]]></category>
		<category><![CDATA[7호]]></category>
		<category><![CDATA[뉴스]]></category>
		<category><![CDATA[모션]]></category>
		<category><![CDATA[전시회]]></category>
		<category><![CDATA[컨트롤러]]></category>
		<category><![CDATA[핫]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=8461</guid>
		<description><![CDATA[디바이스마트 매거진 7호 &#124; 완연한 봄의 기운을 느낄 수 있었던, 지난 4월 21일 본 기자는 일산 킨텍스에서 열리는 ‘2011 한국전자부품산업전 &#38; 모션컨트롤러 전시회’에 다녀왔다.]]></description>
				<content:encoded><![CDATA[<h2><span style="color: #000080"><strong>2011 국제 모션컨트롤 전시회</strong></span></h2>
<p style="padding-left: 180px;text-align: right">글 | 이원영 기자 richard@ntrex.co.kr</p>
<p>&nbsp;</p>
<p>완연한 봄의 기운을 느낄 수 있었던, 지난 4월 21일 본 기자는 일산 킨텍스에서 열리는 ‘2011 한국전자부품산업전 &amp; 모션컨트롤러 전시회’에 다녀왔다.<br />
자유로변에 막바지 벚꽃들이 꽃비를 뿌리고 있어서, 그대로 나들이를 가고 싶은 마음이 굴뚝 같았지만, 억지로 누르며 킨텍스로 향하였다. 이번 전시회는, 한국전자공업협동조합과 전자부품연구원의 주최로 4월19일 부터 21일까지 3일간 개최되었다. 12개국 118개 업체가 참가하여, 규모가 그리 크지는 않았다.</p>
<p>본 기자는 사전등록을 하여서, 간단한 확인절차 후 입장할 수 있었다. 전시회장에 들어서니 좌, 우로 국내에서 인지도가 높은 모션컨트롤러 회사인 (주)컨벡스와 전자부품연구원 부스가 눈에 들어왔다. 우리 일행은 좌측부터 둘러보기로 했는데, 몇몇 눈에 띄는 부스들이 있었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTMO002.jpg" rel="lightbox[8461]"><img class="alignnone  wp-image-8714" alt="07HTMO002" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTMO002-620x465.jpg" width="446" height="335" /></a></p>
<p>우선, 입구쪽에서 규모면에서부터 가장 눈길을 끌었던 (주)컨벡스는 다양한 DC모터와 스테핑모터, 그리고 드라이버를 선보이고 있었다. 그리고 또 다른 곳은, EZ-SERVO로 더 잘 알려진 (주)파스텍과 일본의 오리엔탈 모터가 있었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTMO001.jpg" rel="lightbox[8461]"><img class="alignnone  wp-image-8713" alt="07HTMO001" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTMO001-620x465.jpg" width="434" height="326" /></a></p>
<p>2~3년 전만 해도 그렇지 않았던 것으로 기억되는데, 이번 전시회는 전반적으로 전자부품관련 업체는 거의 찾아볼 수 없고, 모션컨트롤러에 관련된 업체들이 주를 이루고 있었다. 또한 전체적인 전시 규모도 예년에 비해서는 초라하게 느껴질 정도로 축소되었음을 느낄 수 있었다. 다양하고, 새로운 전자부품을 기대하고 찾아갔던, 본 기자로써는 조금은 실망스러운 전시회였다. 실망감 때문인지는 몰라도, 전시회의 분위기가 전체적으로 위축되어 있어 보이기까지 하였다.</p>
<p>국내에서 열리는 유일한 전자부품전시회로 알고 있는데, 주최측의 많은 노력과, 업체들의 협조로 내년에는 더욱 볼거리가 풍성한 한국전자부품전이 되기를 바라면서 기사를 마친다.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/8461/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[7호]Multi-CAN Analyzer를 이용한 차량 ECU 모니터링</title>
		<link>http://www.ntrexgo.com/archives/8870</link>
		<comments>http://www.ntrexgo.com/archives/8870#comments</comments>
		<pubDate>Wed, 25 May 2011 06:19:23 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[스페셜 컬럼]]></category>
		<category><![CDATA[7호]]></category>
		<category><![CDATA[모니터링]]></category>
		<category><![CDATA[소프트웨어]]></category>
		<category><![CDATA[쇼케이스]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=8870</guid>
		<description><![CDATA[디바이스마트 매거진 7호 &#124; 본고에서는 CAN 메시지를 송수신하고 메시지로부터 프로토콜을 해석할 수 있는 Analyzer를 소개하고, 그것을 통해 실제 차량 ECU로부터 다양한 정보를 모니터링 하는 방법에 대해 소개한다.]]></description>
				<content:encoded><![CDATA[<h2><span style="color: #333399"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA001.jpg" rel="lightbox[8870]"><img class=" wp-image-8764 alignleft" alt="07SHMA001" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA001-300x225.jpg" width="194" height="146" /></a><strong>Multi-CAN Analyzer를 </strong></span></h2>
<h2><span style="color: #333399"><strong>이용한 </strong></span><strong><span style="color: #333399">차량 ECU 모니터링</span></strong></h2>
<p style="text-align: right">
<p style="text-align: right">자료제공 : 마을소프트웨어</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #000080;background-color: #ffffff"><strong>1. 들어가며</strong></span></p>
<p>CAN (Controller Area Network)은 멀티마스터(Multi-Master) 브로드케스트 시리얼(Broadcast Serial) 버스 표준으로 실시간 제어 응용시스템 내에 있는 센서나 기동장치 등과 같은 주변장치들을 서로 연결해 주는 메시지 통신방식으로 마이크로 제어기용 네트웍을 가리킨다. CAN에서는 이더넷 등에서 사용되는 것과 같은 주소 지정 개념은 사용되지 않으며, 메시지는 해당 네트웍에서의 고유한 식별자를 사용하여 네트웍 내에 있는 모든 노드들에게 동시에 뿌려진다. 개개의 노드들은 이 식별자에 기반하여 해당 메시지를 처리할 것인지의 여부를 결정하며. 버스 접근 순서 역시 경쟁원리에 따라 메시지 우선순위가 배정되어 충돌이 없어 중단 없는 데이터 전송이 가능하다. 또한 differential twisted pair방식을 사용하여 노이즈에 매우 강한 특성이 있다. 보다 자세한 CAN에 대한 역사나 기술적인 내용은 본고에서는 생략하기로 하고 참고자료를 참고한다.<br />
위와 같은 CAN 특성으로 최근 매우 안정성을 요구 하는 차량의 내부 네트워크로 CAN 통신을 사용하고 있는 추세다. 즉 주제어기인 ECU (Electronic Control Units) 끼리의 통신이나 각종 센서 및 작동기 등과 안정적인 통신을 위해 CAN이 사용되고 있는 것 이다. 따라서 CAN 통신을 이용하여 ECU가 이해할 수 있는 프로토콜로 통신을 하게 되면 차량 네트워크로부터 차량의 다양한 정보를 얻어 낼 수 있게 된다.<br />
본고에서는 CAN 메시지를 송수신하고 메시지로부터 프로토콜을 해석할 수 있는 Analyzer를 소개하고, 그것을 통해 실제 차량 ECU로부터 다양한 정보를 모니터링 하는 방법에 대해 소개한다.</p>
<p><span style="color: #000080"><strong>2. Multi-CAN Analyzer 소개</strong></span></p>
<p>마을소프트웨어는 반도체 및 LED 생산설비 제조 전문업체로 그간 산업용 제어 분야의 경험을 기반으로 다양한 CAN 제품을 출시하였다. CAN 경험이 없는 일반 사용자들을 위해 보다 쉽게 접근할 수 있는 CAN2RS232 컨버터와, 인터넷을 통한 원격 제어를 위한 CAN2Ethernet 게이트웨이 등이 그것이다. 이 제품들은 주로 제어기 용도로 개발되었기 때문에 필터 설정을 통해 필요로 하는 메시지들만 CAN 버스로부터 수신하고 전송하는 제품으로 컨버터나 게이트웨이가 처리할 수 있는 용량 이상으로 CAN버스 메시지를 모두 처리 할 수는 없었다. 또한 절연되지 않아 현장 상황에 따라 컨버터가 파손되는 경우도 있었다. 이런 이유로 Analyzer 용도로는 적합하지 못해 High-End급 고성능 절연 CAN-USB Analyzer와 Multi-CAN Analyzer를 개발 출시 하게 되었다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA001.jpg" rel="lightbox[8870]"><img class="size-medium wp-image-8764 aligncenter" alt="07SHMA001" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA001-300x225.jpg" width="300" height="225" /></a><br />
본고에서 소개될 Multi-CAN Analyzer는 이름에서 유추 할 수 있듯이 동시에 여러 인터페이스 방식을 사용할 수 있는데, 그것은 RS232C, USB 그리고 Ethernet이다. 따라서 어떠한 환경이나 조건에도 쉽게 Analyzer를 쓸 수 있는 장점이 있다. RS232C는 최대 460800bps의 속도 까지 사용할 수 있으며 인터페이스가 UART밖에 없는 소형 제어기와도 쉽게 연결된다. USB는 PC와 외부 전원 없이 연결할 수 있기 때문에 노트북으로 현장에서 디버깅하는데 매우 유용하다. Ethernet은 현장에 설치된 CAN버스의 문제점을 원격지 사무실에서 모니터링 하는데 매우 적합하다.<br />
본 Analyzer는 제공되는 전용 프로토콜을 통해 직접 Analyzer를 제어기들과 연결하여 고성능 컨버터 처럼 사용할 수도 있지만, Windows 응용프로그램으로 제공되는 전용 분석기인 CANTALKER를 통해 추가적인 소프트웨어 개발 없이 고수준의 CAN 프로토콜을 분석할 수 있다. 기본적으로 표준 프로토콜로 OBD-II, CANopen 그리고 DeviceNet등이 일부 지원되며 향후 J1939도 지원될 예정이다.</p>
<div id="attachment_8763" class="wp-caption alignnone" style="width: 630px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA002.jpg" rel="lightbox[8870]"><img class="size-large wp-image-8763" alt="그림1. CANTALKER Windows Application" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA002-620x228.jpg" width="620" height="228" /></a><p class="wp-caption-text">그림1. CANTALKER Windows Application</p></div>
<p>그 밖에 CANTALKER가 지원하는 주요 기능은 다음과 같다.</p>
<p>· 10us 단위 Timestamp<br />
· CAN 송신 메시지 프로그래밍<br />
· CAN 송수신 메시지 읽기 및 저장<br />
(텍스트 파일로 export지원)<br />
· 특정 CAN 메시지 모니터링 및 산술 계산 / 그래픽 표시 / 로깅(실시간/비실시간 지원)<br />
· CAN 수신 메시지 소프트웨어 필터링 / 트리거<br />
· CAN 송수신 메시지에서 특정 메시지 찾기 / 복사<br />
· CAN 버스 통계자료 제공<br />
· CAN 컨트롤러 상태 확인 및 제어<br />
· 터미널<br />
· 펌웨어 업그레이드</p>
<p>본고에서 ECU 모니터링에 사용될 장비와 프로그램은 Multi-CAN Analyzer와 CANTALKER이다.</p>
<p><span style="color: #000080"><strong>3. ECU 모니터링</strong></span></p>
<p>CAN통신을 지원하는 차량의 대부분은 OBD-II PID 프로토콜을 지원한다. ECU와 통신하기 위해서는이 프로토콜을 반드시 숙지 해야 하는데 그다지 복잡하기 않기 때문에 쉽게 구현될 수 있다. 그럼 OBD-II PID가 무엇인지 다음절에서 알아 본다.</p>
<p><span style="color: #3366ff"><strong>3.1 OBD-II PID란 ?</strong></span></p>
<p>OBD-II PID는 On Board Diagnostics Parameter ID의 약자로 정확하게 말하면 프로토콜이 아니라 코드를 의미 하며 SAE J1979 표준의 한 부분으로 1996년부터 북미의 모든 차량에 구현되었다. 이 코드는 고장 진단장치가 차량으로부터 데이터를 얻는데 사용되는데 데이터를 요청할 때 OBD-II PID 코드를 정해진 프로토콜을 이용하여 차량으로 요청하여 응답을 얻는다. 중요 PID종류와 관련 응답 데이터 형식은 표 1과 같다. 모든 PID는 모든 차량에서 지원하는 것은 아닌데, 지원여부는 PID 00의 응답 값으로부터 알 수 있다.<br />
표 1의 공식에서 사용되고 있는 알파벳 A, B, C, D 등은 수신된 데이터의 바이트 순서와 일치한다. 즉 첫번째 바이트는 A, 두번째는 B, 세번째는 C, 그리고 네번째는 D이다.</p>
<table style="border-collapse: collapse;width: 620px" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center">Mode</td>
<td style="text-align: center">PID</td>
<td style="text-align: center">수신크기</td>
<td style="text-align: center">설명</td>
<td style="text-align: center">Min</td>
<td style="text-align: center">Max</td>
<td style="text-align: center">단위</td>
<td style="text-align: center">공식</td>
</tr>
<tr>
<td style="text-align: center">00</td>
<td style="text-align: center">00</td>
<td style="text-align: center">4</td>
<td style="text-align: center">PID Supported [01-20]</td>
<td style="text-align: center">-</td>
<td style="text-align: center">-</td>
<td style="text-align: center">-</td>
<td style="text-align: center">Bit encoded [A7..D0]==<br />
[PID 0×01..PID 0×20]</td>
</tr>
<tr>
<td style="text-align: center">01</td>
<td style="text-align: center">04</td>
<td style="text-align: center">1</td>
<td style="text-align: center">Calculated engine load value</td>
<td style="text-align: center">0</td>
<td style="text-align: center">100</td>
<td style="text-align: center">%</td>
<td style="text-align: center">A*100/255</td>
</tr>
<tr>
<td style="text-align: center">01</td>
<td style="text-align: center">05</td>
<td style="text-align: center">1</td>
<td style="text-align: center">Engine Coolant Temperature</td>
<td style="text-align: center">-40</td>
<td style="text-align: center">215</td>
<td style="text-align: center">°C</td>
<td style="text-align: center">A-40</td>
</tr>
<tr>
<td style="text-align: center">01</td>
<td style="text-align: center">0C</td>
<td style="text-align: center">2</td>
<td style="text-align: center">Engine RPM</td>
<td style="text-align: center">0</td>
<td style="text-align: center">16383.75</td>
<td style="text-align: center">rpm</td>
<td style="text-align: center">((A*256)+B)/4</td>
</tr>
<tr>
<td style="text-align: center">01</td>
<td style="text-align: center">0D</td>
<td style="text-align: center">1</td>
<td style="text-align: center">Vehicle speed</td>
<td style="text-align: center">0</td>
<td style="text-align: center">255</td>
<td style="text-align: center">km/h</td>
<td style="text-align: center">A</td>
</tr>
<tr>
<td style="text-align: center">01</td>
<td style="text-align: center">0E</td>
<td style="text-align: center">1</td>
<td style="text-align: center">Timing Advance</td>
<td style="text-align: center">-64</td>
<td style="text-align: center">63.5</td>
<td style="text-align: center">relative to #1 cylinder</td>
<td style="text-align: center">A/2-64</td>
</tr>
<tr>
<td style="text-align: center">01</td>
<td style="text-align: center">0F</td>
<td style="text-align: center">1</td>
<td style="text-align: center">Intake air Temperature</td>
<td style="text-align: center">-40</td>
<td style="text-align: center">215</td>
<td style="text-align: center">°C</td>
<td style="text-align: center">A-40</td>
</tr>
<tr>
<td style="text-align: center">01</td>
<td style="text-align: center">10</td>
<td style="text-align: center">2</td>
<td style="text-align: center">MAF air flow rate</td>
<td style="text-align: center">0</td>
<td style="text-align: center">655.35</td>
<td style="text-align: center">g/s</td>
<td style="text-align: center">((A*256)+B)/100</td>
</tr>
<tr>
<td style="text-align: center">01</td>
<td style="text-align: center">11</td>
<td style="text-align: center">1</td>
<td style="text-align: center">Throttle Position</td>
<td style="text-align: center">0</td>
<td style="text-align: center">100</td>
<td style="text-align: center">%</td>
<td style="text-align: center">A*100/255</td>
</tr>
<tr>
<td style="text-align: right" colspan="8">표1. PID 목록 및 설명</td>
</tr>
</tbody>
</table>
<p>표 1의 Mode는 각 숫자별로 의미하는 내용은 표 2에서 알 수 있다. ECU의 각종 정보 데이터를 얻는 경우는 대부분 현재 데이터 표시용 Mode 0&#215;01만 이용하면 되며, 차량의 고장진단 코드를 얻고자 하는 경우는 Mode 0&#215;03를 사용한다.</p>
<table style="border-collapse: collapse;width: 620px" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center">Mode</td>
<td style="text-align: center">설명</td>
</tr>
<tr>
<td style="text-align: center">0&#215;01</td>
<td style="text-align: center">Show current data</td>
</tr>
<tr>
<td style="text-align: center">0&#215;02</td>
<td style="text-align: center">Show freeze frame data</td>
</tr>
<tr>
<td style="text-align: center">0&#215;03</td>
<td style="text-align: center">Show stored Diagnostic Trouble Codes</td>
</tr>
<tr>
<td style="text-align: center">0&#215;04</td>
<td style="text-align: center">Clear Diagnostic Trouble Codes and stored values</td>
</tr>
<tr>
<td style="text-align: center">0&#215;05</td>
<td style="text-align: center">Test results, oxygen sensor monitoring (non CAN only)</td>
</tr>
<tr>
<td style="text-align: center">0&#215;06</td>
<td style="text-align: center">Test results, other component/system monitoring<br />
(Test results, oxygen sensor monitoring for CAN only)</td>
</tr>
<tr>
<td style="text-align: center">0x0A7</td>
<td style="text-align: center">Show pending Diagnostic Trouble Codes<br />
(detected during current or last driving cycle)</td>
</tr>
<tr>
<td style="text-align: center">0&#215;08</td>
<td style="text-align: center">Control operation of on-board component/system</td>
</tr>
<tr>
<td style="text-align: center">0&#215;09</td>
<td style="text-align: center">Request vehicle information</td>
</tr>
<tr>
<td style="text-align: center">0x0A</td>
<td style="text-align: center">Permanent DTC&#8217;s (Cleared DTC&#8217;s)</td>
</tr>
<tr>
<td style="text-align: right" colspan="2">표 2. Mode별 설명</td>
</tr>
</tbody>
</table>
<p>차량으로부터 데이터를 얻기 위해 ECU로 PID를 전달하기 위한 질의 CAN 메시지 형태는 각 메시지 데이터 바이트 별로 다음과 같은 형식을 갖는다. CAN ID는 11비트를 사용하는 경우 반드시 0x7DF로 해야 한다.</p>
<table style="border-collapse: collapse;width: 620px" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center">Byte 0</td>
<td style="text-align: center">Byte 1</td>
<td style="text-align: center">Byte 2</td>
<td style="text-align: center">Byte 3</td>
<td style="text-align: center">Byte 4</td>
<td style="text-align: center">Byte 5</td>
<td style="text-align: center">Byte 6</td>
<td style="text-align: center">Byte 7</td>
</tr>
<tr>
<td style="text-align: center">추가데이터<br />
바이트 수 0×02</td>
<td style="text-align: center">Mode<br />
0×01=show current data</td>
<td style="text-align: center">PID Code</td>
<td style="text-align: center">0×55</td>
<td style="text-align: center">0×55</td>
<td style="text-align: center">0×55</td>
<td style="text-align: center">0×55</td>
<td style="text-align: center">0×55</td>
</tr>
</tbody>
</table>
<p>CAN메시지 전체 8바이트 중 첫번째 바이트(Byte0)는 몇 바이트의 정보가 오는지를 의미 하는 것으로 그 뒤로 Mode와 PID Code가 각각 1바이트씩 2바이트가 오기 때문에 2가 되며, 세번째 바이트(Byte2)는 PID코드가 위치하고 그 이상은 사용되지 않으므로 0&#215;55로 채워진다.</p>
<p><em id="__mceDel"> 이상과 같이 생성된 CAN 메시지를 ECU로 전송하면 ECU는 다음과 같은 형태의 CAN메시지로 응답한다. 이때 응답으로 오는 CAN ID는 주로 0x7E8이며, 0x7E9나 0x7EA가 될 수 도 있다.</em></p>
<table style="border-collapse: collapse;width: 620px" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center">Byte 0</td>
<td style="text-align: center">Byte 1</td>
<td style="text-align: center">Byte 2</td>
<td style="text-align: center">Byte 3</td>
<td style="text-align: center">Byte 4</td>
<td style="text-align: center">Byte 5</td>
<td style="text-align: center">Byte 6</td>
<td style="text-align: center">Byte 7</td>
</tr>
<tr>
<td style="text-align: center">추가데이터<br />
바이트 수 3~6</td>
<td style="text-align: center">Custom Mode<br />
0×40+Mode 0×41=show current data</td>
<td style="text-align: center">PID Code</td>
<td style="text-align: center">Value0(A)</td>
<td style="text-align: center">Value1(B) (Option)</td>
<td style="text-align: center">Value2(C) (Option)</td>
<td style="text-align: center">Value3 (D) (Option)</td>
<td style="text-align: center">0×55</td>
</tr>
</tbody>
</table>
<p>여기서 첫번째 바이트는 질의 메시지와 동일하게 이후에 올 추가 데이터의 크기이다. 두번째는 질의 메시지에서 사용된 Mode값에 0×40을 더한값과 같다. 내번째 부터는 질의한 PID에 대한 응답데이터가 온다. 데이터 크기는 1바이트부터 4바이트까지만 갖을 수 있어 마지막 Byte7은 사용되지 않아 0×55로 채워진다. 응답데이터는 첫번째 바이트부터 A, B, C, D로 명명되고 PID 표의 공식 부분에서 참조된다.</p>
<p><strong style="color: #3366ff">3.2 ECU 모니터링을 위한 전송 메시지 설정</strong></p>
<p>이제 ECU로 전달해야 할 CAN메시지 형식을 알게 되었기 때문에 Analyzer에서 질의 메시지를 작성하여 보내 보고자 한다. 보낼 PID는 표 1에 나와 있는 것으로 하고, 각 PID별로 보내는 시간 간격은 10ms로 한다. 모든 PID를 모두 보내면 10ms 만큼 대기하고 다시 처음부터 PID전송을 반복 한다. 이것을 Analyzer의 “CAN Send Message Tool”에서 설정하는 방법은 다음과 같다.</p>
<p>1. Engine RPM 질의를 위한 CAN메시지 예는 다음과 같다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA003.jpg" rel="lightbox[8870]"><img class="alignnone size-full wp-image-8762" alt="07SHMA003" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA003.jpg" width="558" height="44" /></a><br />
A. 전송하므로 Task Type은 “TX”<br />
B. 11비트 질의이므로 CAN ID는 0×7DF, 2.0B와 RTR은 설정하지 않음<br />
C. DATA는 “02 01 0C 55 55 55 55 55”로 함, 여기서 0×0C Engine RPM 질의 PID임.<br />
D. 추가 반복하지 않으므로 Repeat는 “0”<br />
E. 10ms이후에 다음 메시지 전송하므로 Interval은 “10”<br />
2. 위와 같은 형식으로 나머지 PID에 대해서 모두 추가 한다.<br />
3. 모든 PID가 전송된 후 10ms대기를 위해 Task Type이 “WAIT”, Wait Time을 10으로 설정한다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA004.jpg" rel="lightbox[8870]"><img class="alignnone size-full wp-image-8761" alt="07SHMA004" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA004.jpg" width="561" height="48" /></a><br />
4. 다시 처음부터 반복 전송을 위해 Task Type을 “GOTO”, Goto Index는 “0”으로 설정한다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA005.jpg" rel="lightbox[8870]"><img class="alignnone size-full wp-image-8760" alt="07SHMA005" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA005.jpg" width="546" height="46" /></a><br />
이렇게 모두 입력되면 “CAN Send Message Tool”창은 다음과 같이 보여지며 전송준비는 완료되며 (GO)버튼을 클릭하면 CAN메시지가 전송되기 시작한다. 이때 대부분 차량내에 사용되는 CAN통신 속도는 500kbps이므로 사전에 CAN통신 속도는 맞춰져 있어야 한다. 그렇지 않은 경우는 Analyzer의 Error LED가 켜질 것이다.</p>
<div id="attachment_8759" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA006.jpg" rel="lightbox[8870]"><img class=" wp-image-8759 " alt="그림2" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA006.jpg" width="480" height="283" /></a><p class="wp-caption-text">그림2</p></div>
<p><span style="color: #3366ff"><strong>3.3 ECU 모니터링을 위한 수신 메시지 설정</strong></span></p>
<p>3.1절에서 OBD-II PID가 포함된 질의 메시지에 대한 ECU 응답 메시지에 대한 형식을 알아 봤다. 이 정보를 토대로 CANTALKER에서 지원하는 “Monitor CAN ID &amp; Data” 기능을 이용하여 응답 메시지로부터 실제 물리적인 값들을 추출하여 그래프로 표시하여 보자.<br />
응답 메시지 형식과 표 1의 공식 부분을 참고 하여 “Monitor Condition”을 작성하여 보자. “Engine RPM”작성예를 보면 다음과 같다.</p>
<p>1. Item Title은 제목인 “Engine RPM”을 기록한다.<br />
2. “CAN ID To Monitor”는 모니터링 하고자 하는 CAN ID를 의미 하므로 0x7E8이 된다.<br />
3. “Engine RPM”의 경우 PID가 0x0C인데, CAN메시지 8바이트 중 세번째 바이트가 PID이므로 이 값이 0x0C인 메시지를 찾기 위해 Mask와 Compare는 다음과 같이 설정한다.<br />
4. Mask는 세번째 바이트만 관심 대상이므로 0xFF로 설정하고, Compare값의 세번째 바이트를 0x0C로 설정한다. 이유는 “MSG &amp; Mask == Compare”공식에 의해 각 바이트에 대해 모두 참이 되면 수신 메시지를 사용하게 된다.<br />
5. 이렇게 수신 조건에 의해 걸러진 “Engine PRM” 메시지에서 Engine PRM에 관련된 데이터를 추출하기 위해 다음과 같이 설정한다.<br />
6. Engine RPM값은 CAN 메시지 8바이트 중 4번째 바이트부터 2바이트 크기를 갖기 때문에 “Offset”은 3, “Length”는 2가 된다. 추출된 2바이트에서 첫번째가 상위 두번째가 하위 바이트가 되는 Big Endian형식이므로 “Big Endian”에 채크한다. 또한 공식에 의해 2바이트 값을 4로 나누거나 또는 0.25로 곱해야 하므로 “Multiply”에 0.25를 입력한다. 최종 생성되는 값은 산술 계산된 정수형이므로“Display Data Format”을“Scaled Integer”로 선택한다.<br />
7. 결과적으로 생성된 물리값은 그래프로 표시하고 싶으므로 “Display Type”을 “Graph”로 선택하고 최대 최소값을 각각 0과 6000으로 한다.<br />
그 밖의 다른 Item들도 위와 같은 형식에 의해 공식을 참고하여 비슷한 형식으로 아래 그림3과 같이 모두 입력한다.</p>
<div id="attachment_8758" class="wp-caption aligncenter" style="width: 387px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA007.jpg" rel="lightbox[8870]"><img class=" wp-image-8758 " alt="그림3. " src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA007.jpg" width="377" height="414" /></a><p class="wp-caption-text">그림3.</p></div>
<p><span style="color: #3366ff"><strong>3.4 실차량에서 모니터링 수행</strong></span></p>
<p>3.2절에서 전송할 메시지들를 생성하고 3.3절에서 추출할 수신메시지 형식과 표시형식을 모두 설정하였으므로 실제차량에서 ECU에서 정보가 실제로 오는지 확인해 보자.<br />
먼저 CAN 방식의 OBD-II가 지원되는 차량을 준비해야 한다. 대부분 최근에 생산된 차량은 거의 CAN 버스와 OBD-II를 지원하고 있다. 간혹 CAN은 지원하는데 OBD-II PID메시지에 대해 무응답하는 차량도 있으니 미리 확인해야 한다. Analyzer를 차량의 OBD-II단자에 연결하기 위해서는 OBD-II단자의 핀배열을 확인한 후 CAN 컨넥터와 맞게 케이블을 다음과 같이 제작해야 한다. OBD-II컨넥터는 디바이스마트에서 쉽게 구매할 수 있다.</p>
<div id="attachment_8757" class="wp-caption aligncenter" style="width: 456px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA008.jpg" rel="lightbox[8870]"><img class=" wp-image-8757  " alt="그림4. " src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA008-620x307.jpg" width="446" height="221" /></a><p class="wp-caption-text">그림4.</p></div>
<p>그림4에서 OBD-II Male Connector의 PIN6은 CAN_H, PIN14는 CAN_L 이므로 Analyzer DB9 Connector의 PIN7번과 PIN2번에 각각 연결한다. CAN_H와 CAN_L은 잘못 연결되어서는 절대 안되므로 주의 깊게 작업해야 한다.<br />
커넥터 작업이 완료되면, Analyzer를 차량의 OBD-II단자에 연결한다. 차량에 전원이 들어가거나 시동이 걸려있어야 CAN 통신이 되므로 사전에 전원을 넣거나 시동을 걸어 놓는다. 만약 컨넥터를 연결하자 마자 Analyzer의 Error LED가 점등 된다면, (1) 500kbps 속도 설정이 제대로 안되었거나, (2) CAN_H, CAN_L라인 결선에 문제가 있거나 (3) 종단저항 연결이 ON되어 있는 경우일 수 있으므로 다시 한번 확인해 본다.<br />
모든 준비가 완료되면, “CAN Send Message Tool”에서 (Go)버튼을 클릭하여 ECU에 질의 메시지를 전송시킨다. 그러면 아래와 같이 질의에 해당하는 응답이 수신되면서 그 값과 그래프가 표시된다.</p>
<div id="attachment_8756" class="wp-caption aligncenter" style="width: 630px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA009.jpg" rel="lightbox[8870]"><img class="size-large wp-image-8756" alt="그림5. " src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA009-620x247.jpg" width="620" height="247" /></a><p class="wp-caption-text">그림5.</p></div>
<p>&nbsp;</p>
<p><span style="color: #3366ff"><strong>3.5 기타 차량 네트웍의 데이터 분석</strong></span></p>
<p>차량에 Analyzer를 연결하여 보면 OBD-II PID질의 메시지를 보내지 않아도 수많은 메시지들이 수신되는 것 관찰 할 수 있다. 이 메시지들은 차량에 붙어있는 다양한 센서와 작동기 등과 ECU간에 정보 교류일 것인데 차량회사의 전용 프로토콜을 사용했을 것이다. 이에 알 수 없는 다양한 메시지들이 어떤 의미로 사용되는 것인지 분석하기 위한 방법을 본 절에서 제시하겠다.</p>
<div id="attachment_8755" class="wp-caption aligncenter" style="width: 405px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA010.jpg" rel="lightbox[8870]"><img class=" wp-image-8755 " alt="그림6. " src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA010.jpg" width="395" height="203" /></a><p class="wp-caption-text">그림6.</p></div>
<p>그림6은 뉴카렌스 차량에서 수신한 메시지들에 대해 “CAN Bus Statistics” 기능을 이용하여 어떤 메시지들이 있는지 통계를 보여주고 있다.<br />
OBD-II PID와 관련된 CAN ID를 제외하고 총8개의 CAN ID가 사용되고 있다. 각 ID에 대해 실시간으로 값을 모니터링 하려면 CANTALKER의 “Monitor ID &amp; Data” 기능에서 통계창에서 보여지는 각각의 CAN ID에 대해 “CAN ID to Monitor”에 ID를 입력하고,“Display Data Format”을 “All Data”로 설정하며 [Logging]을 체크하는 식으로 보든 CAN ID를 다음과 같이 입력한다.</p>
<div id="attachment_8754" class="wp-caption aligncenter" style="width: 392px"><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA011.jpg" rel="lightbox[8870]"><img class=" wp-image-8754 " alt="그림7. " src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07SHMA011.jpg" width="382" height="385" /></a><p class="wp-caption-text">그림7.</p></div>
<p>현재 차량에 연결되어 있는 상태라면 [RealTime]을 채크한 후 [Go]버튼을 클릭하면 실시간으로 수신되는 Data 내용을 볼 수 있으며 변화되는 내용이 쉽게 관찰될 수 있다. 만약에 이미 차량에서 데이터를 모두 수집한 상태에서 후처리로 확인하고 싶다면 [RealTime]을 끄고 [Go]버튼을 클릭한다. 처리가 완료되면 CANTALKER 프로그램에 있는 디렉토리에 “Item Title”을 파일이름으로 하고 확장명이 “log”인 파일들이 각각 생성된다. 예를들어 “test_271”에 대해서는 “test_271.log”로 생성된다.<br />
그럼 관찰된 데이터로부터 좀더 깊이 분석을 하기 위해 329 CAN ID의 데이터를 확인해 보자. 다음은 수신된 메시지 로그의 일부이다.</p>
<p>20087.55           40 5D 7D 04 04 20 FF 14<br />
20097.49           40 5D 7D 04 04 20 FF 14<br />
20107.47           40 5D 7D 04 04 20 FF 14<br />
20117.45           86 5D 7D 04 04 20 FF 14<br />
20127.48           86 5D 7D 04 04 20 FF 14<br />
20137.48           86 5D 7D 04 04 20 FF 14<br />
20147.43           86 5D 7D 04 04 20 FF 14<br />
20157.42           86 5D 7D 04 04 20 FF 14<br />
20167.46           86 5D 7D 04 04 20 FF 14<br />
20177.49           86 5D 7D 04 04 20 FF 14<br />
20187.40           86 5D 7D 04 04 20 FF 14<br />
20197.40           DE 5D 7D 04 04 20 FF 14<br />
20207.63           DE 5D 7D 04 04 20 FF 14<br />
20217.41           DE 5D 7D 04 04 20 FF 14<br />
20227.37           DE 5D 7D 04 04 20 FF 14<br />
20237.36           DE 5D 7D 04 04 20 FF 14</p>
<p>첫번째 컬럼은 timestamp이고 두번째가 메시지 내용이다. 메시지 내용을 보면 8바이트 중 첫번째 바이트만 변화되는 것을 볼 수 있다. 그럼 첫번째 컬럼에 대해 그래프로 확인하기 위해 “Monitor CAN ID &amp; Data”기능에서 “test_329” item에 대해 “Calculation Information”과 “Display”를 다음과 같이 수정한다.</p>
<p>1. Offset             : 0<br />
2. Length          : 1<br />
3. Multiply       : 1<br />
4. Add                : 0<br />
5. Display Data Format : Scaled Integer<br />
6. Display Type : Graph<br />
7. Min                : 0<br />
8. Max               : 256</p>
<p>이상과 같이 설정을 완료한 후 다시 [Go] 버튼을 클릭하면 다음과 같이 그래프가 그려지는 모습을 볼 수 있다. 정확하게 무엇을 의미하는지는 자동차 업계에서 일하는 사람이라면 알 수 있을지도 모르겠다.</p>
<p><span style="color: #000080"> <strong>4. 맺음말</strong></span></p>
<p>이상과 같이 차량의 ECU 정보값을 모니터링 하기 위해 OBD-II PID와 관련한 질의와 응답 프로토콜에 대해 확인하였고, 그 내용을 Analyzer에 적용하여 각각의 데이터를 수신하고 그래프까지 출력해 보았다.<br />
필자도 그러했지만 많은 사람들은 정보가 없었을 때 차량의 ECU와 통신을 해서 각종 정보를 얻어내는 것은 자동차 회사에서 프로토콜을 공개하지 않는 이상 불가능 한 것으로 여겨 왔었다. 그러나 정말 단순한 OBD-II PID 프로토콜만 인터넷 검색으로 찾아본다면 차량의 각종 상태나 고장진단 등을 Analyzer로 매우 쉽게 해낼 수 있다는 것을 알게 되었다.<br />
그 밖에 Analyzer에서 제공하는 CANopen이나 DeviceNet 프로토콜로 관련 프로토콜을 지원하는 다양한 장비들의 상태 체크나 고장진단 등에 활용할 수 있으며, 표준 프로토콜을 사용하지 않는 각종 장비나 차량 부품도 CAN버스 통계정보로 사용되는 모든 CAN ID를 찾아 낼 수 있고, 찾아낸 CAN ID에 대해 각각 실시간 모니터링 함으로써 그 메시지의 특성이나 프로토콜을 쉽게 알아 낼 수 있다.</p>
<p><span style="color: #000080"><strong>5. 참고자료</strong></span><br />
<a href="http://terms.co.kr/CAN.htm" target="_blank">http://terms.co.kr/CAN.htm</a><br />
<a href="http://en.wikipedia.org/wiki/Controller_area_network" target="_blank">http://en.wikipedia.org/wiki/Controller_area_network</a><br />
<a href="http://en.wikipedia.org/wiki/OBD-II#OBD-II" target="_blank">http://en.wikipedia.org/wiki/OBD-II#OBD-II</a><br />
<a href="http://en.wikipedia.org/wiki/OBD-II_PIDs" target="_blank">http://en.wikipedia.org/wiki/OBD-II_PIDs</a><br />
Multi-CAN Analyzer &amp; Converter User’s Manual (<a href="http://user.chollian.net/~ascbbs/can/MCA_100_Manual.pdf" target="_blank">http://user.chollian.net/~ascbbs/can/MCA_100_Manual.pdf</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/8870/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[7호]WORLD IT SHOW 2011</title>
		<link>http://www.ntrexgo.com/archives/8558</link>
		<comments>http://www.ntrexgo.com/archives/8558#comments</comments>
		<pubDate>Wed, 25 May 2011 04:30:14 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[핫 뉴스]]></category>
		<category><![CDATA[7호]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[show]]></category>
		<category><![CDATA[world]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[전시회]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=8558</guid>
		<description><![CDATA[디바이스마트 매거진 7호 &#124; Get It Smart(IT를 스마트하게)라는 슬로건으로 삼성전자, LG전자, SKT, KT등 전 세계 20여개국에서 약 500개의 IT관련 업체들이 참가하는 국내 최대 규모의 IT 전시회답게 첨단사양과 대중성 있는 스마트한 기술로 누구나 즐길수 있는 볼거리를 제공하였다.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT004.jpg" rel="lightbox[8558]"><img class=" wp-image-8722 alignleft" alt="07HTWIT004" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT004-300x225.jpg" width="154" height="115" /></a></p>
<h2><span style="color: #000080"><strong>WORLD IT SHOW 2011</strong></span></h2>
<p>&nbsp;</p>
<p style="text-align: right">글 | 김장원 기자 jwkim0@ntrex.co.kr</p>
<p><BR></p>
<p>2011년 5월 11일일 부터 14일까지 서울 삼성동 코엑스에서 2011 월드 IT쇼(World IT Show2011)가 열렸다.<br />
Get It Smart(IT를 스마트하게)라는 슬로건으로 삼성전자, LG전자, SKT, KT등 전 세계 20여개국에서 약 500개의 IT관련 업체들이 참가하는 국내 최대 규모의 IT 전시회답게 첨단사양과 대중성 있는 스마트한 기술로 누구나 즐길수 있는 볼거리를 제공하였다.<br />
전시장은 코엑스 1층과 3층으로 구성이 되어있었는데 1층에는 IT집합이라는 주제의 홍보관들이, 3층에는 디지털전자기기와 산업전자기기,모바일, 방송관련 홍보관이 자리잡고 있었다.<br />
각 홍보관에는 스마트 모바일과 4G, LTE, Wifi, VolP, Antennas, Qr코드 서비스, 3D TV와 IPTV, 홈네트워크, 각종 디지털 영상기기, 전자정부 및 보안 등 각종 솔루션이 눈에 띄었으며 스마트기기들이 대세인것을 확실시 하듯이 스마트기기들의 각종 악세서리들이 즐비하였다.<br />
삼성전자에서는 이번 전시회를 통해서 갤럭시 시리즈의 모바일 제품들과 3D기기, 홈씨어터 등을 선보였다.<br />
그중 단연 눈에 띄는 제품은 최고의 스마트폰이라 광고하는 갤럭시 S2! 그리고어떠한 영상도 3D로 변환하여 즐길 수 있는 3D 컨버터와 블루레이3D TV, IPTV 등이었다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT001.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8719" alt="07HTWIT001" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT001-300x225.jpg" width="300" height="225" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT008.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8709" alt="07HTWIT008" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT008-300x225.jpg" width="300" height="225" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">Full HD 3D 블루레이(좌), 갤럭시 S2(우)</td>
</tr>
</tbody>
</table>
<p>LG전자에서는 역시나 3D 분야의 최고 답게 TV, 컴퓨터 모니터, 모바일까지 3D로 승부하였다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT006.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8724" alt="07HTWIT006" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT006-300x225.jpg" width="300" height="225" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT012.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8811" alt="07HTWIT012" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT012-300x225.jpg" width="300" height="225" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">옵티머스3D(좌), 시네마 3D TV(우)</td>
</tr>
</tbody>
</table>
<p>TV와 모니터에서는 타회사의 3D제품과 비교하여, 화질과 3D 구현 성능이 다르다는 것을 어필하였다.<br />
그중 눈에 띄인 것은 옵티머스3D 스마트모바일이었는데 4.3인치의 큰 화면을 안경없이 3D화면으로 즐길수 있다는 점이 큰 장점인거 같다.<br />
SK텔레콤은 3G이동통신보다 약 10배 가량 빠른 4세대 이동통신인 롱텀에볼루션(LTE)을 주력으로 스마트 CEO, T스토어 등 최첨단 스마트 기술에 기반한 다양한 서비스와 요즘 한창 주가를 올리고 있는 클라우징 기술을 선보였다.<br />
KT는 역시 아이폰과 아이패드2를 주력으로 전자 기기들을 체험해 볼 수 있도록 하였고, 박찬욱 감독이 실제 아이폰으로 영화를 촬영할때 사용했던 장비가 전시되어 관람객들의 눈길을 끌었으며, NFC(근거리 무선통신)을 이용한 여러 기술들을 선보였다.<br />
NFC란 전자태그(RFID)의 하나로 13.56Mz 주파수 대역을 이용하여 비접촉식 근거리 무선통신 모듈로써 10Cm의 가까운 거리에서 단말기 간 데이터를 전송하는 기술이다. 예를 들면 교통카드 대신 스마트폰으로 지하철을 타고, 도착한 카페에서는 스마트 메뉴판에서 메뉴를 클릭해 주문과 결재를 하는 등 다양한 서비스로 이용이 가능하다는걸 체험할 수 있었다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT011.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8712" alt="07HTWIT011" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT011-300x193.jpg" width="300" height="193" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT010.jpg" rel="lightbox[8558]"><img class="alignnone  wp-image-8711" alt="07HTWIT010" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT010-300x225.jpg" width="270" height="203" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">NFC를 이용한 메뉴판(좌), 4G LTE와 3G WCDMA 속도비교(우)</td>
</tr>
</tbody>
</table>
<p>또한 어린이들의 맞춤형 눈높이 교육시스템을 선보여 어린이 손님들의 눈과 마음을 끌었다.<br />
기존의 3세대 WCDMA보다 7~8배 빠른속도로 4세대 LTE로 전향하기 위한 업체들의 치열한 경쟁도 느낄수 있었다.<br />
4세대 이동통신은 LTE망은 7월 즈음 전국으로 확대된다고 하니 기대해 볼만하다.<br />
그리고, 스마트폰과 주변기기, 악세서리 제품들이 눈에 많이 띄었다. 단순 편의를 위한 악세서리가 아닌 각자의 개성을 뽐낼수 있는 제품들도 많이 있었다.<br />
이점에서 한가지 아쉬웠던건 볼거리 제공도 좋았지만 판매를 위주로 하는 부스도 생각보다 많았다는점이다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT009.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8710" alt="07HTWIT009" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT009-300x225.jpg" width="300" height="225" /></a></td>
</tr>
<tr>
<td style="text-align: center">각종 악세서리 판매 부스</td>
</tr>
</tbody>
</table>
<p>또, 자기주도 학습 교육 컨텐츠가 많아짐으로써 스마트해진 IT기술력은 교육 부분에서도 확인할수 있었다.<br />
특히나 닷코트를 사용한 업체들이 많았는데 그 중 네오랩의 리틀바이리틀 파닉스는 펜을 교제에 대면 그에 맞는 영상이나 사운드가 실행되어, 쉽게 따라할 수 있는 제품을 선보였고, 이지런에서 소개한 디지로브 북은 현실 세계와 가상의 체험을 결합한 증강현실(AR)기법으로 교재를 펼치면, 페이지에 있는 코드를 인식하여 책 안의 내용과 관련된 3D 영상을 화면에 함께 재생함으로써 아이들의 실습 교육에 활용할 수 있는 모습을 보여주었다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT003.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8721" alt="07HTWIT003" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT003-224x300.jpg" width="224" height="300" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT002.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8720" alt="07HTWIT002" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT002-224x300.jpg" width="224" height="300" /></a></td>
</tr>
<tr>
<td style="text-align: center" colspan="2">이지런의 디지로브 북(좌), 지진격리 면진장치(우)</td>
</tr>
</tbody>
</table>
<p>에스알시에서 출품한 Fish Robot 또한 눈길이 가는 제품중 하나이다. 이 제품은 구현방식이 와이어 방식과 관절형 두가지 타입이 있으며, 물고기의 움직임을 그대로 구현해 연구용 및 완구, 교육용 상품으로 활용이 가능하며 조종방식은 RF통신 및 블루투스 방식이며 리모콘으로 수동조작과 프로그램 및 센서에 의해 자율유영이 가능하도록 설계되어있었다.</p>
<table style="border-collapse: collapse" border="1" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT007.jpg" rel="lightbox[8558]"><img class="alignnone size-medium wp-image-8725" alt="07HTWIT007" src="http://www.ntrexgo.com/wp-content/uploads/2013/04/07HTWIT007-300x225.jpg" width="300" height="225" /></a></td>
</tr>
<tr>
<td style="text-align: center">에스알시의 Fish Robot</td>
</tr>
</tbody>
</table>
<p>또 한가지 눈길을 끌었던 것은 얼마전에 있었던 일본 대지진의 여파일까 안정성과 보안성에 대한 제품들을 많이 볼 수가 있었다. 더 이상의 안전지대는 없다며 지진 피해에 대한 우려와 관심이 집중되고 있는 이때 지진 발생시 발생하는 충격과 진동으로부터 첨단기기를 격리, 보호시켜주는 장비들이 소개되었다.<br />
상원티엔세스의 지진격리 면진장치는 설치시 고정형이 아니여서 분해와 재설치가 용이하다는 장점이 있는 제품이었다.</p>
<p>이번 2011년 월드 IT쇼는 4회째에 접어들었다. 매회마다 다른 트랜드와 엄청난 기술발전, 상용화를 보여주며 우리의 생활수준을 한 단계 높여주고 있다.<br />
내년 5월에는 또 어떤 신기하고 즐거운 기술들이 우리를 반겨줄까 벌써부터 기대가 된다.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/8558/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
