5/5/2008 COM 포트통신프로그램 Withrobot Lab. 에서기능제한이없는쉐어웨어로제공하는 COM 포트통신테스트프로그램입니다. ASCII 전송및 Hex 값전송기능을가지고있으며특정패킷형태로도전송이가능하여임베디드시스템과의다양한통신실험을손쉽게수행할수있습니다. ComPortMaster 로보다편리하게시리얼통신실험을수행하시기바랍니다.
ComPortMaster 프로그램소개 특징 기능상특징 PC 의 COM 포트를이용한통신프로그램 ASCII/HEX 선택적으로데이터송수신가능 SLIP 및위드로봇에서제안하는확장 SLIP 인코딩, 디코딩기능선택적사용가능 명령어 2 바이트데이터길이 1 바이트로구성된 WRPu 패킷자동생성기능지원 수신데이터에 CR/LF 자동추가기능 패킷반복전송가능및데이터패킷간지연시간설정가능 흐름제어신호들의모니터링및값설정가능 비상업적인용도로무료로이용가능 응용분야 임베디드보드와 PC 의시리얼통신테스트 www.withrobot.com Page 1
각종패킷통신실험 지원 OS Windows 98/XP/Vista 설치방법 내려받기 Withrobot Lab 홈페이지의 Serial Program 항목에서최신버전의 ComPortMaster 프로 그램을내려받을수있습니다 (http://www.withrobot.com/entry/comportmaster). 그림 1 ComPortMaster 통신프로그램을내려받는곳 설치과정 내려받은 ComPortMaster.rar 압축을풀면여러개의파일이있는데, 별도의설치과정 필요없이 ComPortMaster.exe 파일을두번클릭하면프로그램이실행됩니다. www.withrobot.com Page 2
그림 2 ComPortMaster 실행파일 인터페이스구성 그림 3 ComPortMaster 실행화면 www.withrobot.com Page 3
ComPortMaster 의인터페이스구성은위그림과같습니다. 각각의부분에번호를붙여 번호순서대로설명합니다. (1) 포트설정 Port Config 라고이름붙여진부분은 PC 측 COM 포트를설정하는부분입니다. 몇번 COM 포트를사용할것인지 (Device), 어떤통신속도 (Baudrate) 를사용할것인지, 데이터비트와스톱비트그리고패리티비트는어떻게설정할것인지를결정합니다. 자신의 PC 에장착되어있는 COM 포트번호를잘모르는경우에는장치관리자에서포트항목을보시면현재 PC 에장착되어있는 COM 포트번호를확인할수있습니다. 데스트톱 PC 와같이보드상에붙박이형태로장착되어있는 COM 포트는번호가고정적이며, USB 에연결하여사용하는 USB2Serial 케이블의 COM 포트는소프트웨어적으로번호를변경할수있습니다. 자신의 PC 에장착되어있는 COM 포트번호를설정하고, 속도및기타통신환경을선택한후 [Open port] 버튼을클릭하시면해당포트의사용준비가완료됩니다. 그림 4 장치관리자의포트항목 해당 PC 에존재하지않은 COM 포트를열려고시도했을경우에는다음과같은에러윈 도우창이뜹니다. www.withrobot.com Page 4
그림 5 존재하지않은 COM 포트를사용하려고했을경우 ComPortMaster 를사용하기위해서는우선해당포트를초기화해야하므로사용할포 트를설정하여 [Open port] 를클릭하여포트를초기화하시기바랍니다. (2) 흐름제어용신호설정 COM 포트에는데이터를주고받는 TX, RX 신호이외에도흐름제어용으로여러신호가할당되어있습니다. COM 포트로실험을하다보면이러한흐름제어용신호를원하는상태로설정하거나, 현재신호레벨을확인해야할경우가있습니다. RTS, DTR 의경우는사용자가신호선출력레벨을설정하는핀이므로, 포트를연다음해당신호선의체크박스에서체크를하면하이레벨이, 체크를빼면로우레벨이출력됩니다. 또한 CTS, DSR, RI, CD 의신호선상태는 [Update Status] 버튼을클릭하면상태가화면에출력됩니다. (3) Tools & Options ComPortMaster 는다양한기능을위젯형식으로추가할수있도록구조를설계했습니다. 버전 1.0 에서는확장 SLIP(Extended Serial Line Internet Protocol) 기능만지원하고있습니다. 확장 SLIP 으로인코딩하여데이터를전송하고싶으면 Tools & Options 항목에있는체크박스에체크표시를하고, (4) 전송창부분의 [Send] 버튼옆에있는체크박스에도같이체크를해주면확장 SLIP 으로인코딩되어전송됩니다. [Send] 버튼옆의체크박스에만체크가될경우는표준 SLIP 으로인코딩됩니다. 추후여러기능들이제공되면이항목에서기능을확장할수있습니다. 하단의로고를클릭하면프로그램을간단히소개하는 About 윈도우창이뜹니다. ComPortMaster 배포홈페이지를소개하고있으며, 클릭하면배포하는사이트로바로연결됩니다. 접속하면최신버전및 ComPortMaster 개발진행일정을확인하실수있습니다. (4) 전송창부분 (Send) www.withrobot.com Page 5
전송창부분은다양한패킷실험을위해총 8 개를가지고있습니다. 전송은 ASCII 값또 는 HEX 형식의바이너리값을선택해서발송할수있습니다. [ASCII] 버튼을클릭하면버 튼의캡션은 [HEX] 로바뀌며이경우는 HEX 단위로값을기록합니다. 그림 6 ComPortMaster 의 HEX 송신예 [Send] 버튼을클릭하면송신창에기록된데이터가 COM 포트를통해출력됩니다. [Hex] 또는 [ASCII] 버튼앞에있는체크박스는발송할때마다줄바꿈 (CR+LF) 제어문자를추가할것인지아닌지를결정합니다. 체크해두면매번발송할때마다줄바꿈문자가추가됩니다. [Send] 버튼앞의체크박스는 SLIP 인코딩기능을설정합니다. 체크를하면발송하는문자를 SLIP 방식으로인코딩해서발송합니다. SLIP 프로토콜에대해서는다음절을참고하시기바랍니다. 맨앞의체크박스는위드로봇에서자주사용하는 WRPu(WithRobot Packet-micro) 패킷구조로데이터를전송할것인지를결정합니다. WRPu 의구조는다음과같이앞의두바이트를명령어또는패킷종류를표현하는데사용하고, 그다음에는데이터길이를표시하는데한바이트를사용합니다. ComPortMaster 에서는자동으로데이터길이를채워서발송합니다. 그뒤로는데이터들이배치됩니다. SLIP 또는확장 SLIP 을이용하는경우 WRPu 로인코딩된데이터가다시 SLIP 또는확장 SLIP 으로자동인코딩되어발송됩니다. CMD0 CMD1 Data length Data 0 Data 1 Data n 표 1 WRPu 구조 그냥데이터만전송이필요한일반실험환경에서는송신창부분의체크박스를모두빼고전송할데이터를기록하면됩니다. 한패킷을여러번보내야할필요가있는경우는 Send Multiple 항목에반복횟수를기록한후 [Send] 버튼을클릭하면전송한횟수가출력되며, 지정한횟수만큼전송이되면전송을멈춥니다. 이때각패킷과패킷사이에지연시간이필요한경우 ms 단위로지연시간을지정하면그시간만큼패킷사이에지연시간이추가됩니다. 전송중에취소하고싶은경우 [ Cancel ] 버튼을클릭하면전송이취소됩니다. www.withrobot.com Page 6
(5) 수신창부분 (Recv) COM 포트를통해수신한데이터는수신창에출력됩니다. 출력포맷은 ASCII 또는 Hex 형태로출력할수있습니다. Decode SLIP 체크박스에표시를하면수신한데이터를 SLIP 프로토콜로인식하여자동으로디코딩한결과를화면에출력합니다. Tools&Options 항목에서확장 SLIP 을사용하도록해두었다면확장 SLIP 프로토콜에맞춰디코딩을수행하고, 그렇지않은경우는표준 SLIP 프로토콜에맞춰디코딩을수행합니다. 수신한화면을지우고싶으면 [ Clear ] 버튼을클릭하면됩니다. 수신한데이터에일정시간동안데이터입력이없는경우자동으로줄바꿈하여다음패킷을받아출력하는것이편리할수있습니다. Auto CR/LF 체크박스에표시를하면데이터수신후일정시간동안데이터가들어오지않으면자동으로줄바꿈을해줍니다. HEX 값으로데이터를출력할경우 CR/LF 값은그대로화면에바이너리값으로출력됩니다. HEX 값으로출력할때도 CR/LF 값을줄바꿈으로처리하고싶으면 Handle CR/LF 체크박스에체크를표시합니다. 이기능은 [HEX] 모드일때만동작합니다. SLIP (SERIAL LINE INTERNET PROTOCOL) SLIP 소개시리얼통신으로데이터를전송할때별도의흐름제어신호선을사용하지않으면, 데이터의시작과끝을알기가어렵습니다. 이럴때서로약속된문자로데이터의시작과끝을알려주고, 데이터전송의규칙을정한것을프로토콜이라고합니다. 시리얼통신에서사용할수있는프로토콜은여러종류가있지만인터넷프로토콜로 PPP 이전에사용되던 SLIP 을위드로봇에서는주로사용하고있습니다. SLIP 프로토콜에서는패킷의시작과끝을표시하기위해특정문자 (END, 0xC0) 을패킷시작과끝에추가합니다. 패킷내부에서 0xC0 이표시되는것을막기위해이스케이프문자 (ESC, 0xDB) 를이용하여추가로변경합니다. 0xC0 Data 0xC0 데이터전송을시작할때 END 바이트 (0xC0) 을먼저전송한다. 데이터전송이끝날때 END 바이트 (0xC0) 을덧붙여보낸다. www.withrobot.com Page 7
데이터내부에 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 과동일합니다만, 데이터가전송되기전에전송할데이터개수를한바이트로표시하고데이터전송이끝나면데이터의체크섬이한바이트추가됩니다. 0xC0 Length (1 Byte) Data Checksum (1 Byte) 0xC0 데이터길이는 SLIP 으로인코딩된최종데이터의길이가기록되며, 체크섬역시 SLIP 으로인코딩된결과를한바이트단위로모두더한후 256 으로나눈나머지가체크섬자리에기록됩니다. ESLIP 을이용하면수신한데이터필드의개수를확인할수있고, 체크섬을통해수신한데이터의신뢰성을높일수있습니다. 수신한데이터의체크섬결과와수신한체크섬의결과가틀리면수신한데이터는오류가있으므로다시재전송요구를하여전체시스템의신뢰성을높일수있습니다. 프로그램제거하기 ComPortMaster 를제거하는과정은별도의언인스톨과정없이해당폴더를삭제함으 로써프로그램을제거할수있습니다. 사용시주의사항 ComPortMaster 는무상으로제공되는쉐어웨어프로그램으로사용시발생하는어떠한 상황에도 withrobot Lab. 은책임지지않습니다. www.withrobot.com Page 8
부록 A FT2232EB 특징 FTDI 사 FT2232 디바이스의기능테스트용소형보드 한개의 USB 포트로두개의가상 COM 포트생성 부가회로를내장하여 USB 포트에연결즉시사용가능 USB 버스전원으로외부전원없이동작 가상용 COM 포트 (VCP) 드라이버제공 직접제어방식 (D2XX) 의드라이버제공 다양한시리얼통신기능구현이가능한 MPSSE 인터페이스기능활용가능 제품소개홈페이지 http://withrobot.com/category/interface/ft2232eb%20(usb) www.withrobot.com Page 9
부록 B MYUSB2UART 특징 초소형 USB2UART MAX232 칩필요없이임베디드시스템의 UART 를바로 PC 의 USB 에연결 USB 버스전원공급기능 (5V, 500mA) 및전원보호회로내장 가상용 COM 포트 (VCP) 드라이버제공 2mm 간격의커넥터및흐름제어신호를포함한 100mil 간격의커넥터조합으로다양한형태의결합가능 제품소개홈페이지 http://www.withrobot.com/category/interface/myusb2uart Designed by withrobot Lab.(http://withrobot.com) Release Information The following changes have been made in this document. Change history Date Issue 변동사항 2008.5 A The first draft Copyright(c) 2003-2008 withrobot Lab. All right reserved. www.withrobot.com Page 10