3/16/2010 COM 포트통신프로그램 Withrobot Lab. 에서기능제한이없는프리웨어로제공하는 COM 포트통신테스트프로그램입니다. ASCII 전송및 Hex 값전송기능을가지고있으며특정패킷형태로도전송이가능하여임베디드시스템과의다양한통신실험을손쉽게수행할수있습니다. ComPortMaster 로보다편리하게시리얼통신실험을수행하시기바랍니다.
ComPortMaster 프로그램소개 특징 기능상특징 PC 의 COM 포트를이용한통신프로그램 ASCII/Hex 선택적으로데이터송수신가능 SLIP 및위드로봇에서제안하는확장 SLIP 인코딩, 디코딩기능선택적사용가능 명령어 2 바이트데이터길이 1 바이트로구성된 WRPu 패킷자동생성기능지원 수신데이터에 CR/LF 자동추가기능 수신데이터를파일로저장하는 Capture 기능 패킷반복전송기능및데이터패킷간지연시간설정가능 www.withrobot.com Page 1
흐름제어신호들의모니터링및값설정가능 무료로이용가능 응용분야 임베디드보드와 PC 의시리얼통신테스트 각종패킷통신실험 지원 OS Windows 98/XP/Vista/7 www.withrobot.com Page 2
설치방법 내려받기 Withrobot Lab 홈페이지의 Serial Program 항목에서최신버전의 ComPortMaster 설치 프로그램을내려받을수있습니다 (http://withrobot.com/118). 그림 1 ComPortMaster 통신프로그램을내려받는곳 www.withrobot.com Page 3
설치과정내려받은 ComPortMaster-1.4.0.exe 파일을실행하면설치과정이진행됩니다. 기본설치장소는 C:\Program Files\ComPortMaster 폴더이며설치과정중원하는폴더를직접선택하여설치할수도있습니다. 설치가완료되면시작메뉴에 ComPortMaster 프로그램그룹이생성되며그속에 ComPortMaster 바로가기아이콘이만들어집니다. 설치옵션으로바탕화면이나빠른실행도구모음에아이콘을만들수도있습니다. 인터페이스구성 그림 2 ComPortMaster 실행화면 ComPortMaster 의인터페이스구성은위그림과같습니다. 각각의부분에번호를붙여 번호순서대로설명합니다. www.withrobot.com Page 4
(1) 포트설정 Port Config 라고이름붙여진부분은 PC 측 COM 포트를설정하는부분입니다. 몇번 COM 포트를사용할것인지 (Device), 어떤통신속도 (Baudrate) 를사용할것인지, 데이터비트와스톱비트그리고패리티비트는어떻게설정할것인지를결정합니다. 자신의 PC 에장착되어있는 COM 포트번호를잘모르는경우에는장치관리자에서포트항목을보시면현재 PC 에장착되어있는 COM 포트번호를확인할수있습니다. 데스트톱 PC 와같이보드상에붙박이형태로장착되어있는 COM 포트는번호가고정적이며, USB 에연결하여사용하는 USB2Serial 케이블의 COM 포트는소프트웨어적으로번호를변경할수있습니다. 자신의 PC 에장착되어있는 COM 포트번호를설정하고, 속도및기타통신환경을선택한후 [Open port] 버튼을클릭하시면해당포트의사용준비가완료됩니다. 그림 3 장치관리자의포트항목 해당 PC 에존재하지않은 COM 포트를열려고시도했을경우에는다음과같은에러윈 도우창이뜹니다. 그림 4 존재하지않은 COM 포트를사용하려고했을경우 www.withrobot.com Page 5
ComPortMaster 를사용하기위해서는우선해당포트를초기화해야하므로사용할포트를설정하여 [Open port] 를클릭하여포트를초기화하시기바랍니다. Baudrate 에는사용하려는포트의통신속도를설정하게됩니다. 기본적으로 2400, 9600, 57600, 115200 bps 와같은표준통신속도들이사전에입력되어있어이들중하나를선택해서사용할수있습니다. 혹은자신만의통신속도를입력창에직접입력해서사용할수도있습니다. 직접입력하실경우 bps 단위로숫자만입력해야합니다. (2) 흐름제어용신호설정 COM 포트에는데이터를주고받는 TX, RX 신호이외에도흐름제어용으로여러신호가할당되어있습니다. COM 포트로실험을하다보면이러한흐름제어용신호를원하는상태로설정하거나, 현재신호레벨을확인해야할경우가있습니다. RTS, DTR 의경우는사용자가신호선출력레벨을설정하는핀이므로, 포트를연다음해당신호선의체크박스에서체크를하면하이레벨이, 체크를빼면로우레벨이출력됩니다. 또한 CTS, DSR, RI, CD 의신호선상태는 [Update Status] 버튼을클릭하면상태가화면에출력됩니다. (3) Tools & Options ComPortMaster 는다양한기능을위젯형식으로추가할수있도록구조를설계했습니다. 현재버전에서는확장 SLIP(Extended Serial Line Internet Protocol) 기능만지원하고있습니다. 확장 SLIP 으로인코딩하여데이터를전송하고싶으면 Tools & Options 항목에있는체크박스에체크표시를하고, (4) 전송창부분의 [Send] 버튼옆에있는체크박스에도같이체크를해주면확장 SLIP 으로인코딩되어전송됩니다. [Send] 버튼옆의체크박스에만체크가될경우는표준 SLIP 으로인코딩됩니다. 추후여러기능들이제공되면이항목에서기능을확장할수있습니다. Import/Export 버튼은각종설정값들을파일로내보내거나파일에서설정값들을가져올때사용할수있습니다. 여러개의프로젝트를수행하는경우프로젝트별로데이터파일을따로가져가면작업을전환할때마다일일이설정값을바꾸거나데이터를다시입력하는수고를줄일수있습니다. Show Device Manager 버튼은장치관리자를실행하는버튼입니다. 실험도중 COM 포트번호를확인하거나바꾸고자할때장치관리자를손쉽게띄울수있습니다. 하단의위드로봇로고를클릭하면프로그램을간단히소개하는 About 윈도우창이뜹니다. ComPortMaster 배포홈페이지를소개하고있으며, 클릭하면배포하는사이트로바 www.withrobot.com Page 6
로연결됩니다. 접속하면최신버전및 ComPortMaster 개발진행일정을확인하실수 있습니다. (4) 빠른전송 (Quick Send) 빠른전송은자주사용하는 1 바이트명령들을손쉽게송신할수있도록각데이터마다버튼을만든것입니다. 예를들어 ASCII 값 1 을전송하고싶다면 1 버튼을한번클릭하는것만으로 1 을전송합니다. 다음에서설명하는전송창부분에데이터 1 을입력하고 [Send] 버튼을클릭하는것과동일한효과이지만별도로입력하고 [Send] 버튼을클릭하는수고를덜기위해만들어진것입니다. 0~9, A~F, Space, CR/LF 의총 18 개버튼이있으며, 전송창부분에서와마찬가지로 ASCII/Hex 전송과 SLIP 인코딩, CR/LF 덧붙이기기능역시사용할수있습니다. 단동일 한패킷을여러번전송하는멀티송신은사용할수없습니다. (5) 전송창 (Send) 전송창부분은다양한패킷실험을위해총 8 개를가지고있습니다. 전송은 ASCII 값또는 HEX 형식의바이너리값을선택해서발송할수있습니다. [ASCII] 버튼을클릭하면버튼의캡션은 [HEX] 로바뀌며이경우는 HEX 단위로값을기록합니다. 그림 5 ComPortMaster 의 HEX 송신예 [Send] 버튼을클릭하면송신창에기록된데이터가 COM 포트를통해출력됩니다. [Hex] 또는 [ASCII] 버튼앞에있는체크박스는발송할때마다줄바꿈 (CR+LF) 제어문자를추가할것인지아닌지를결정합니다. 체크해두면매번발송할때마다줄바꿈문자가추가됩니다. [Send] 버튼앞의체크박스는 SLIP 인코딩기능을설정합니다. 체크를하면발송하는문자를 SLIP 방식으로인코딩해서발송합니다. SLIP 프로토콜에대해서는다음절을참고하시기바랍니다. 맨앞의체크박스는위드로봇에서자주사용하는 WRPu(WithRobot Packet-micro) 패킷구조로데이터를전송할것인지를결정합니다. WRPu 의구조는다음과같이앞의두바 www.withrobot.com Page 7
이트를명령어또는패킷종류를표현하는데사용하고, 그다음에는데이터길이를표시하는데한바이트를사용합니다. ComPortMaster 에서는자동으로데이터길이를채워서발송합니다. 그뒤로는데이터들이배치됩니다. SLIP 또는확장 SLIP 을이용하는경우 WRPu 로인코딩된데이터가다시 SLIP 또는확장 SLIP 으로자동인코딩되어발송됩니다. CMD0 CMD1 Data length Data 0 Data 1 Data n 표 1 WRPu 구조 그냥데이터만전송이필요한일반실험환경에서는송신창부분의체크박스를모두빼고전송할데이터를기록하면됩니다. 한패킷을여러번보내야할필요가있는경우는 Send Multiple 항목에반복횟수를기록한후 [Send] 버튼을클릭하면전송한횟수가출력되며, 지정한횟수만큼전송이되면전송을멈춥니다. 이때각패킷과패킷사이에지연시간이필요한경우 ms 단위로지연시간을지정하면그시간만큼패킷사이에지연시간이추가됩니다. 만일반복전송횟수를무한대로설정하고자할경우에는반복전송횟수입력창우측의상자에체크하고 [Send] 하면됩니다. 반복전송중에취소하고싶은경우 [ Cancel ] 버튼을클릭하면전송이취소됩니다. (6) 수신창 (Recv) COM 포트를통해수신한데이터는수신창에출력됩니다. 출력포맷은 ASCII 또는 Hex 형태로출력할수있습니다. Decode SLIP 체크박스에표시를하면수신한데이터를 SLIP 프로토콜로인식하여자동으로디코딩한결과를화면에출력합니다. Tools&Options 항목에서확장 SLIP 을사용하도록해두었다면확장 SLIP 프로토콜에맞춰디코딩을수행하고, 그렇지않은경우는표준 SLIP 프로토콜에맞춰디코딩을수행합니다. 수신한화면을지우고싶으면 [ Clear ] 버튼을클릭하면됩니다. www.withrobot.com Page 8
수신한데이터에일정시간동안데이터입력이없는경우자동으로줄바꿈하여다음패킷을받아출력하는것이편리할수있습니다. Auto CR/LF 체크박스에표시를하면데이터수신후일정시간동안데이터가들어오지않으면자동으로줄바꿈을해줍니다. 만일 SLIP 디코딩을사용중인경우에 Auto CR/LF 가선택되어있다면수신되는 SLIP 패킷마다자동으로줄바꿈을해줍니다. HEX 값으로데이터를출력할경우 CR/LF 값은그대로화면에바이너리값으로출력됩니다. HEX 값으로출력할때도 CR/LF 값을줄바꿈으로처리하고싶으면 Handle CR/LF 체크박스에체크를표시합니다. 이기능은 [HEX] 모드일때만동작합니다. [Start Capture] 버튼은수신되는데이터를파일로저장합니다. 이버튼을클릭하면파일탐색창이표시되면서데이터를저장할파일이름을입력하게됩니다. 파일이름을입력후 확인 을클릭하면 [Start Capture] 버튼이 [Stop Capture] 로변경되면서수신되는모든데이터를지정한파일에기록합니다. 기록을중지하려면 [Stop Capture] 버튼을클릭하면됩니다. 수신창에서는키보드단축키를사용할수있습니다. 단축키를사용하기위해서는수신창에입력포커스가가있어야합니다. 마우스를이용해수신창아무곳이나한번클릭해주면수신창이입력포커스를가지게됩니다. 수신창이입력포커스를가진상태에서 Ctrl+A 키를누르면수신창에표시된모든내용이선택 (select) 됩니다. 이단축키는수신창에서마우스오른쪽버튼을클릭해서 모두선택 (A) 를선택하는것과동일한기능을수행합니다. 수신창이입력포커스를가진상태에서 Ctrl+C 키를누르면현재선택된부분을 clipboard 로복사하게됩니다. 이단축키는수신창에서마우스오른쪽버튼을클릭해서 복사 (C) 를선택하는것과동일한기능을수행합니다. www.withrobot.com Page 9
SLIP (SERIAL LINE INTERNET PROTOCOL) SLIP 소개시리얼통신으로데이터를전송할때별도의흐름제어신호선을사용하지않으면, 데이터의시작과끝을알기가어렵습니다. 이럴때서로약속된문자로데이터의시작과끝을알려주고, 데이터전송의규칙을정한것을프로토콜이라고합니다. 시리얼통신에서사용할수있는프로토콜은여러종류가있지만인터넷프로토콜로 PPP 이전에사용되던 SLIP 을위드로봇에서는주로사용하고있습니다. SLIP 프로토콜에서는패킷의시작과끝을표시하기위해특정문자 (END, 0xC0) 을패킷시작과끝에추가합니다. 패킷내부에서 0xC0 이표시되는것을막기위해이스케이프문자 (ESC, 0xDB) 를이용하여추가로변경합니다. 0xC0 Data 0xC0 데이터전송을시작할때 END 바이트 (0xC0) 을먼저전송한다. 데이터전송이끝날때 END 바이트 (0xC0) 을덧붙여보낸다. 데이터내부에 END(0xC0) 과같은문자가있을경우 ESC(0xDB) ESC_END(0xDC) 로인코딩한다. 데이터내부에 ESC(0xDB) 와같은문자가있을경우 ESC(0xDB) ESC_ESC(0xDD) 로인코딩한다. 예를들어 0x11 0xC0 0xDB 0x22 데이터를 SLIP 으로인코딩해서발송하는경우라면, 0xC0 0x11 0xDB 0xDC 0xDB 0xDD 0x22 0xC0 으로바뀌어전송된다. ESLIP(Extended SLIP) SLIP 프로토콜은패킷의시작과끝을정확하게파악할수있지만내부데이터가중간에손실되는경우오류정정이불가능하다는단점이있습니다. 이와같은단점을보완하기위해패킷의길이와체크섬 (check sum) 정보를추가한확장 SLIP(ESLIP) 을위드로봇에서는제안합니다. 전체적인아이디어는 SLIP 과동일합니다만, 데이터가전송되기전에전송할데이터개수를한바이트로표시하고데이터전송이끝나면데이터의체크섬이한바이트추가됩니다. www.withrobot.com Page 10
0xC0 Length (1 Byte) Data Checksum (1 Byte) 0xC0 데이터길이는 SLIP 으로인코딩된최종데이터의길이가기록되며, 체크섬역시 SLIP 으로인코딩된결과를한바이트단위로모두더한후 256 으로나눈나머지가체크섬자리에기록됩니다. ESLIP 을이용하면수신한데이터필드의개수를확인할수있고, 체크섬을통해수신한데이터의신뢰성을높일수있습니다. 수신한데이터의체크섬결과와수신한체크섬의결과가틀리면수신한데이터는오류가있으므로다시재전송요구를하여전체시스템의신뢰성을높일수있습니다. 프로그램제거하기 ComPortMaster 는제어판의 프로그램추가 / 제거 항목을통하거나시작메뉴의 ComPortMaster 프로그램그룹에있는 Uninstall 항목을실행함으로써손쉽게제거할수있습니다. 프로그램제거가완료된후에 ComPortMaster 를설치했었던폴더를확인해보면 ComPortMaster.cpm 파일이남아있을수있습니다. 이파일은사용자별설정값들을저장하는것으로필요치않을경우삭제하셔도무방합니다. 사용시주의사항 ComPortMaster 는무상으로제공되는프리웨어프로그램으로사용시발생하는어떠한 상황에도 withrobot Lab. 은책임지지않습니다. www.withrobot.com Page 11
부록 A FT2232EB 특징 FTDI 사 FT2232 디바이스의기능테스트용소형보드 한개의 USB 포트로두개의가상 COM 포트생성 부가회로를내장하여 USB 포트에연결즉시사용가능 USB 버스전원으로외부전원없이동작 가상용 COM 포트 (VCP) 드라이버제공 직접제어방식 (D2XX) 의드라이버제공 다양한시리얼통신기능구현이가능한 MPSSE 인터페이스기능활용가능 제품소개홈페이지 http://withrobot.com/category/interface/ft2232eb%20(usb) www.withrobot.com Page 12
부록 B MYUSB2UART 특징 초소형 USB2UART MAX232 칩필요없이임베디드시스템의 UART 를바로 PC 의 USB 에연결 USB 버스전원공급기능 (5V, 500mA) 및전원보호회로내장 가상용 COM 포트 (VCP) 드라이버제공 2mm 간격의커넥터및흐름제어신호를포함한 100mil 간격의커넥터조합으로다양한형태의결합가능 제품소개홈페이지 http://www.withrobot.com/category/interface/myusb2uart www.withrobot.com Page 13
부록 C MYBLUETOOTH 특징 초소형무선통신모듈 Bluetooth Class2, 수신거리최대 20M myusb2uart 와핀이호환되며무선으로 UART 신호를전송가능 흐름제어신호를포함한 100mil(2.54mm) 간격의커넥터조합으로다양한형태의결합가능 레귤레이터내장 (3.6~8V 전원입력가능 ) 제품소개홈페이지 http://withrobot.com/entry/mybluetooth-ex www.withrobot.com Page 14
Designed by withrobot Lab.(http://withrobot.com) Change history Date Issue 변동사항 2008.5 A The first draft 2008.7 B V. 1.1.0 release 2008.9 C V. 1.2.0 release 2009.5 D V. 1.3.0 release 2010.3 E V. 1.4.0 release Copyright(c) 2003-2010 withrobot Lab. All right reserved. www.withrobot.com Page 15