태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'usb'에 해당되는 최근 글 8건

  1. 2009/10/13 비주얼 베이직에서 myVision 라이브러리를 사용하는 법
  2. 2009/10/13 VB에서 DLL 함수를 호출하는 법
  3. 2008/02/18 Smart-I V1.0 소개
  4. 2008/02/09 myUSB2UART device driver (2)
  5. 2008/02/09 myUSB2UART - 초소형 USB2UART 변환 보드 (3)
  6. 2008/01/24 USB2Serial FT2232EB User's Guide
  7. 2008/01/24 FT2232EB 외형 치수 및 신호선
  8. 2008/01/24 FT2232EB

비주얼 베이직에서 myVision 라이브러리를 사용하는 법

Image Processing/myVision USB 2009/10/13 14:32

기본적으로 비주얼 베이직에서는 DLL에 있는 함수를 호출할 수 있습니다.

하지만 myVision 라이브러리는 "c" 형태의 함수 호출을 지원하고

비주얼 베이직은 "파스칼" 형태의 함수 호출을 지원하기 때문에

래핑 함수(wrapping function)를 만들어 이부분을 변경할 필요가 있습니다.

사용자 삽입 이미지



즉, 아래와 같이 "파스칼" 형태의 함수 호출을 지원하는 별도의 MVULibVB.dll을 만들어

MVULibVB.dll에서 "c" 형태의 MVULib.dll의 함수를 호출하도록 하면 됩니다.


#include "MyVision.h"

#pragma comment(lib, "MVULib.lib")


extern "C" __declspec(dllexport) HDIG __stdcall DigAlloc(char* DigNum)

{

       return digAlloc(DigNum);

}

...


위의 함수에서 __stdcall이 파스칼 형태의 함수라는 것을 나타냅니다.

digAlloc()은 MVULib.dll에 있는 함수로 "c" 형태의 함수입니다.


따라서 위와 같이 DLL 함수를 만들면, 비주얼 베이직에서 DigAlloc() 함수를 호출할 수 있습니다.

MVULibVB.dll에 있는 DigAlloc() 함수를 비주얼 베이직에서 사용하기 위해서는

비주얼 베이직에서 아래와 같이 선언해야 합니다.


Public Declare Function DigAlloc Lib "MVULibVB.dll" (ByVal Dev As String) As Long


위와 같이 선언하면 최종적으로 비주얼 베이직에서 MVULibVB.dll의 DigAlloc() 함수를 거쳐

myVision 라이브러리의 digAlloc() 함수를 호출할 수 있게 됩니다.

이런 방식으로 myVision 라이브러리에 있는 모든 함수를 비주얼 베이직에서

사용하실 수 있습니다.


하지만 언어적 특징 때문에 사용할 수 없는 부분도 있습니다.

bufGetPtr2D() 함수와 같이 버퍼의 포인터를 리턴하는 함수의 경우 비주얼 베이직에서는

포인터를 사용할 수 없기 때문에 버퍼의 포인터를 얻어오는 것이 무의미합니다.

이를 위하여 MVLibVB.dll에서 BufCopyBuf2Array(), BufCopyArray2Buf() 함수를

별도로 만들었습니다.

BufCopyBuf2Array(), BufCopyArray2Buf() 함수는 비주얼 베이직의 배열과

myVision 라이브러리 버퍼의 데이터를 상호간에 복사하기 위한 함수입니다.


extern "C" __declspec(dllexport) void  __stdcall BufCopyBuf2Array(HBUF hBuf, void *Array, int Length)

{

       void **buf = (void **)bufGetPtr2D(hBuf);

       memcpy(Array, buf[0], Length);

}


extern "C" __declspec(dllexport) void  __stdcall BufCopyArray2Buf(HBUF hBuf, void *Array, int Length)

{

       void **buf = (void **)bufGetPtr2D(hBuf);

       memcpy(buf[0], Array, Length);

}


비주얼 베이직에서 먼저 영상정보를 저장할 배열을 선언한 뒤

BufCopyBuf2Array() 함수를 호출하면 비주얼 베이직 배열에 버퍼의 내용을 얻어 올 수 있습니다.

반대로 BufCopyArray2Buf()를 이용하연 비주얼 베이직 배열의 내용을 버퍼에 복사할 수 있습니다.

(자세한 사용법은 첨부된 예제 코드 중 TestBuffer를 보시면 됩니다.)


Const g_Width As Long = 640

Const g_Height As Long = 480

Dim Buf(g_Width - 1, g_Height - 1) As Long


' 버퍼를 할당한다.

hBuf = BufAlloc(g_Width, g_Height, MV_RGB32)        

' 버퍼의 내용을 배열로 복사한다.

Call BufCopyBuf2Array(hBuf, Buf(0, 0), g_Width * g_Height * 4)


즉, 위와 같은 방법으로 적절히 이용하시면 비주얼 베이직에서 myVision 라이브러리를

사용하시는데 문제가 없을 것입니다.


예제 코드 설명


TestGrab

기장 기본적인 프로그램으로 myVision 라이브러리를 이용하여 카메라로부터 영상을

캡쳐하는 프로그램입니다. Grab 버튼을 누르시면 한장의 영상을 카메라로부터 캡쳐합니다.

GrabConti 버튼을 누르면 연속적으로 영상을 캡쳐하며 Halt 버튼을 누르면 정지합니다.

사용자 삽입 이미지



TestBuffer

TestBuffer는 캡쳐된 영상의 버퍼 사용법을 테스트하기 위한 프로그램입니다.

Grab 버튼을 눌러 영상을 캡쳐한 후 마우스를 영상위에 놓으면 놓여진 위치의 RGB 값이 표시됩니다.

Write 버튼을 누르면 버퍼에 청색박스를 그린 후 출력시킵니다.

사용자 삽입 이미지


 

예제 코드
Trackback 0 : Comment 0

VB에서 DLL 함수를 호출하는 법

Image Processing/myVision USB 2009/10/13 13:55

VB에서는 기본적으로 DLL에 있는 함수들을 호출할 수 있습니다.

물론, DLL에 있는 함수들은 VB에서 호출할 수 있도록 몇가지 규칙에 맞게 작성되어야 합니다.


VC++로 간단히 DLL함수를 만들어 VB에서 DLL 함수를 호출하는 법을 살펴보도록 하지요.

먼저, DLL로 간단한 함수를 만듭니다. 그냥 간단하게 덧셈 함수를 만들어 보지요.

함수 이름은 vb_add()로 합니다. 입력으로 두 값(int)을 받아서 더한 값을 리턴합니다.


int vb_add(int a, int b)

{

       return (a+b);

}


vb_add() 함수를 구현하기 위하여 먼저, VC++에서 DLL 프로젝트를 만듭니다.

프로젝트 이름은 VB에서 사용하는 라이브러리니깐 Lib4VB로 하지요.

사용자 삽입 이미지


DLL 종류는 아래와 같이 Regular DLL을 선택합니다.

사용자 삽입 이미지


프로젝트가 생성되면 Lib4VB.cpp 파일에 아래와 같이 vb_add() 함수를 만듭니다.

사용자 삽입 이미지

이제 컴파일하면 DLL 파일이 만들어지지만 컴파일하기 전에 해야할 일이 한가지 더 있습니다.

Lib4VB 디렉토리를 보시면 Lib4VB.def이란 파일이 있을 것입니다.

사용자 삽입 이미지



이 파일에 우리가 만든 함수의 이름을 적어 주어야 합니다.

이부분을 적지 않으면 VB에서 DLL 안의 함수를 찾지 못합니다.

사용자 삽입 이미지


자, 이제 컴파일해 보지요. 별다른 잘못이 없으면 Lib4VB.dll이 만들어질 것입니다.

이렇게 하면 DLL 함수를 만드는 일은 모두 끝이 납니다.


이제 Lib4VB.dll을 사용할 VB 프로그램을 만들어 봅시다.

사용자 삽입 이미지


프로젝트의 이름은 TestDLL이라고 합시다.

프로젝트를 생성하였으면 폼에서 간단히 Add라는 버튼을 만듭니다.

사용자 삽입 이미지


DLL에 있는 vb_add() 함수를 사용하기 위해서는 VB에 vb_add() 함수에 대하여 알려 주어야 합니다.

아래와 같이 알려 주도록 합시다.  아래 문장을 보면 함수의 원형과 함수가 어떤 DLL에 들어있는지가 나와 있습니다.


Private Declare Function vb_add Lib "Lib4VB.dll" (ByVal a As Long, ByVal b As Long) As Long

사용자 삽입 이미지


자, 이제 기다리던 실행 버튼을 누를 시간이 왔습니다. 실행 버튼을 눌러 보지요....

앗, 그런데, 에러가 나오네요... 단순하게 Lib4VB.dll을 찾지 못한다는 에러입니다.

사용자 삽입 이미지


앞에서 만든 Lib4VB.dll을 VB 프로젝트 디렉토리로 복사해 줍니다.

사용자 삽입 이미지


다시 프로그램을 실행시켜 Add 버튼을 눌러 봅시다. 아래와 같이 정상적으로 결과가 나오네요

사용자 삽입 이미지




이것으로 간단히 DLL에서 만든 함수를 VB에서 호출하는 방법을 살펴 보았습니다.


이제 조금 더 자세하게 살펴 보도록 하지요.

기본적으로 VB에서는 __stdcall 형태의 함수 호출을 지원합니다.

함수 호출방식(calling convention - 인터넷 찾아보면 자세히 나옵니다. ^^;)은 사용 언어마다 조금씩 다른데

일반적으로 파스칼이나 윈도우 API 함수들은 __stdcall 방식을 사용하고
c에서는 기본적으로 __cdecl 방식을 사용합니다.

그래서 일반적으로 VC++로 그냥 DLL을 만들면 VB에서는 호출할 수가 없는 것이죠.

VC++에서 그냥 DLL을 만들고 VB에서 함수를 호출하면 아래와 같은 메시지가 나옵니다.


사용자 삽입 이미지


함수 호출 형식을 맞추기 위하여 사용하는 문장이 __stdcall이란 문장입니다.

DLL에 있는 vb_add() 함수를 보면 앞에 __stdcall이라고 적혀 있지요?

이렇게 적으면 vb_add() 함수가 __stdcall 형태로 함수 호출이 된다는 것을 의미합니다.

윈도우 API들도 __stdcall 형태의 함수 호출을 지원하기 때문에

헤더파일(windef.h, winuser.h)들을 찾아보면 아래와 같이 적혀 있습니다.


#define WINAPI __stdcall

BOOL WINAPI SetWindowTextA(...)


그래서 VB에서 윈도우의 API 함수들을 불러 쓸 수 있는 것입니다.


그런데, 재미있게도 VB에서 인터프리터 방식으로 동작시키지 않고 exe 형태의 실행 파일로 만들어

동작시키면 DLL 함수가 __stdcall 이건 __cdecl 건 모두 잘 동작합니다.

즉, Lib4VB.dll을 만들 때 함수 앞에 __stdcall을 적어 주지 않았더라도

TestDLL 프로젝트를 TestDLL.exe로 만들어 동작시키면 vb_add() 함수를 호출할 수 있다는 것이지요.


VB에서 VC++로 만든 DLL을 호출할 때 주의해야 할 또 다른 점 중 하나는 데이터 타입입니다.

VB에서는 int가 2바이트인데 반하여 VC에서는 int가 4바이트입니다.

따라서 VC++에서 int로 입출력 변수를 선언하였다면 VB에서는 Long 타입을 사용해야 합니다.


VC++      : int vb_add(int a, int b);

VB         : vb_add (ByVal a As Long, ByVal b As Long) As Long


VC++에서 포인터를 사용하였다면 VB에서는 ByVal 대신 ByRef를 사용하면 됩니다.

ByVal를 값을 넘겨주고, ByRef는 주소를 넘겨주는 방식입니다.


VC++      : int vb_ptr(int *a);

VB         : vb_ptr (ByRef a As Long) As Long


문자열을 전달할 경우에는 VC++에서는 char *를 사용하고 VB에서는 String을 사용하면 됩니다.

VC++에서 문자열이 포인터라고 해서 VB에서 ByRef를 사용하면 안됩니다. 그냥 String 타입의 ByVal를 사용하면

VB에서 알아서 변환하여 넘겨줍니다.


VC++      : void vb_string(char *text);

VB         : vb_string (ByVal text As String)


VB에 있는 배열을 VC++로 전달하기 위해서는 ByRef를 사용해야 합니다.

단, 배열의 첫 인자를 입력 변수로 넣어 주어야 합니다.

ByRef이기 때문에 첫 인자의 주소가 vb_array() 함수로 넘어가게 됩니다.


VC++      : void vb_array(int *data);

VB         : vb_array (ByRef data As Long)


    Dim buffer(10) As Long

   

    Call vb_array(buffer(0), ...)


자세한 구현 내용은 첨부 파일을 참조하시면 됩니다.


그럼, 좋은 결과가 있기를 바랍니다.~


소스코드


Trackback 0 : Comment 0

Smart-I V1.0 소개

Image Processing/Smart-I V1.0 2008/02/18 04:49

Smart-I 소개

Smart-I는 CMOS 카메라에 프로세서를 장착하여 필요한 영상 처리를 카메라 레벨에서 수행할 수 있는 임베디드 영상 처리 장치입니다. 컬러 스페이스 변환, 화이트 밸런스, 가우시안 스무딩(Gaussian smoothing)과 같은 프리-프로세싱(pre-processing)에서부터 엣지(edge) 검출, 이진화(thresholding), 특정 색상 추출 및 추적 등 다양한 영상 처리를 임베디드 시스템에서 바로 처리할 수 있어 다양한 시스템에 적용해 볼 수 있습니다.

Smart-I 시리즈는 다양한 프로세서와 추가 옵션 기능을 가진 여러 모델을 준비하여 주어진 환경에 최적의 시스템을 선정할 수 있도록 제품군을 추가하고 있습니다.

Smart-I V1.0 사양

Types

Contents

Processor

S3C2440-300 (ARM920T)

Flash

512KB or 2MB NOR flash

RAM

32MB or 64MB PC100 SDRAM

Interface ports

USB 1.1 device 1 port, UART(RX,TX) 1 port

UART(RX,TX, CTS, RTS) 1 port

SPI 2 ports, PWM 4ch, JTAG port

ITU 656 format Camera interface (8bits)

Digital IO 1 port for the light control board(8pin, multiplexed)

Camera

1.3M pixel CMOS camera with white LED

Operating Voltage

4.5V ~ 14V

Dimension

55mm x 55mm without support holes

Options

RTC battery board, LED light Control board

Camera

Types

Contents

Dimension

9.1 x 27.45 x 6.8 (W x L x H)

Responsibility

1.0V/lux-sec (550nm)

Optical format

1/3 inch

Active imager size

4.6mm(H) x 3.7mm(V) - 5.9mm(diagonal)

Active pixels

1280 x 1024 (SXGA)

Pixel size

3.6um x 3.6um

Shutter type

Electrical Rolling Shutter

Max data rate

54MHz

Frame rate

SXGA(1280 x 1024) - 15fps

VGA(640 x 480) - 30fps

Lens

3P, F#: 2.8, FOV: 66 deg(+-5)

Smart-I V.10 에서는 1.3M급 CMOS 카메라를 바로 장착할 수 있는 커넥터를 가지고 있습니다. 또한 도터 보드(daughter board)를 장착하면 다른 모델의 CMOS 카메라 및 NTSC 카메라도 장착할 수 있도록 설계되어 있습니다.

Trackback 0 : Comment 0

myUSB2UART device driver

Interface/myUSB2UART 2008/02/09 06:39
myUSB2UART Device Driver

'Interface > myUSB2UART' 카테고리의 다른 글

myUSB2UART device driver  (2) 2008/02/09
myUSB2UART - 초소형 USB2UART 변환 보드  (3) 2008/02/09
Trackback 0 : Comments 2

myUSB2UART - 초소형 USB2UART 변환 보드

Interface/myUSB2UART 2008/02/09 06:31
사용자 삽입 이미지
제품 특징
임베디드 시스템을 PC와 연결해야 할 때 비동기 시리얼 방식인 UART통신은 가장 손쉽고 편리한 인터페이스입니다.  IBM에서 PC를 처음 출시했을 때부터 UART와 연결이 가능한 COM 포트를 장착하고 있었고, 현재까지도 데스크톱 컴퓨터에는 COM 포트가 장착되어 출시되는 경우가 많기 때문에 PC에 별도의 확장 카드를 장착할 필요 없이 바로 통신이 가능한 장점 때문에 마이크로컨트롤러의 통신에 많이 사용됩니다. 하지만 최근에는 PnP 기능을 제공하고 전원 공급이 가능하여 많은 장점을 가지고 있는 USB 포트로 대치되고 있고 특히 노트북에는 공간상의 문제로 대부분 USB로 대치되어 COM 포트를 장착한 모델을 찾기가 어렵습니다. myUSB2UART는 PC의 USB 포트를 이용해 마이크로컨트롤러의 UART와 바로 연결할 수 있도록 신호를 변환해 주는 보드입니다. 데이터 송수신만 필요한 경우라면 RXD, TXD 두 가닥의 선을 이용하여 데이터를 주고 받을 수 있으며, 흐름 제어가 필요한 경우도 필요한 신호들이 준비되어 있어 편리하게 연결이 가능합니다. 또한 USB 버스 파워를 임베디드 보드에 공급하여 별도의 전원 공급 장치가 필요 없이 편리하게 실험을 할 수 있습니다.
휴대 및 장착에 용이하도록 이 모든 기능을 15mm x 17mm 의 공간에 넣었습니다. 이전에 MAX232 + USB2Serial 변환 조합으로 USB 포트를 이용해 임베디드 보드와 연결했다면 이제 myUSB2UART를 이용해 편리하게 마이크로컨트롤러와 연결하여 사용하시기 바랍니다.

  • 특징 요약
    • 초소형 USB2UART 변환 보드
    • USB 전원 공급
    • 750mA 이상의 전류 소비 시 자동 전원 차단 기능
    • 응용 분야
      • 임베디드 보드와 PC의 시리얼 통신
      • 임베디드 보드에 5V 전원 공급
    • 지원 OS
      • Windows 98/XP/Vista
      • Mac. 0SX/OS9, Linux 2.6/2.4

사용자 삽입 이미지


관련 자료

'Interface > myUSB2UART' 카테고리의 다른 글

myUSB2UART device driver  (2) 2008/02/09
myUSB2UART - 초소형 USB2UART 변환 보드  (3) 2008/02/09
Trackback 0 : Comments 3

USB2Serial FT2232EB User's Guide

Technical Reports 2008/01/24 20:14
사용자 삽입 이미지

USB2Serial 기능을 두 포트 가지고 있어 마이크로프로세서 보드를 손쉽게 USB 포트에 연결할 수 있는 FT2232EB 보드의 사용자 설명서입니다.

'Technical Reports' 카테고리의 다른 글

myUSB2UART 사용자 설명서  (0) 2008/03/19
myAccel7260EB 매뉴얼  (0) 2008/01/28
USB2Serial FT2232EB User's Guide  (0) 2008/01/24
JTAG이란?  (0) 2008/01/24
myAVRICE User's Guide  (0) 2008/01/24
An Introduction to the ARM Cortex-M3 Processor  (0) 2008/01/22
Trackback 0 : Comment 0

FT2232EB 외형 치수 및 신호선

Interface/FT2232EB (USB) 2008/01/24 18:35

외형 치수

그림 1 외형 치수

인터페이스 커넥터 설명

그림 2 2232 내부 블록 다이어그램

FT보드 양쪽에 총 30핀의 커넥터가 배치되어 있으며, 이를 이용해 다른 장치와 인터페이스가 가능합니다. FT2232EB의 신호선은 크게 두 개의 그룹으로 구성되어 있으며, 각각 J1의 왼쪽과 오른쪽에 나뉘어 배치되어 있습니다. 각 그룹은 하늘색과 연두색으로 구분하여 정리하였습니다.

UART 모드

UART 모드로 사용할 경우 신호와 용도는 다음 표와 같습니다.

J1 번호

FT2232 칩 번호

신호 이름

용도

1

27

TXLEDB

송신 확인용 LED 신호

2

26

RXLEDB

수신 확인용 LED 신호

3

29

SLEEPB

USB가 대기모드로 전환하면 이 핀의 신호는 L로 떨어짐

4

30

TXDENB

RS485용 데이터 전송 이네이블 신호

5

32

RIB

Ring indicator

6

33

DCDB

Data carrier detect

7

35

DSRB

Data set ready

8

36

DTRB

Data terminal ready

9

37

CTSB

Clear to send

10

38

RTSB

Request to send

11

39

RXDB

Receive data

12

40

TXDB

Transmit data

13

31

VCCIOB

IO 블록 B의 메인 전원

14

14

VCCIOA

IO 블록 A의 메인 전원

15

9

GND

접지

16

18

GND

접지

17

  

VCCUSB

USB 버스 파워, 5V

18

5

RSTOUT

리셋 신호 출력

19

11

TXLEDA

송신 확인용 LED 신호

20

12

RXLEDA

수신 확인용 LED 신호

21

13

SLEEPA

USB가 대기모드로 전환하면 이 핀의 신호는 L로 떨어짐

22

15

TXDENA

RS485용 데이터 전송 이네이블 신호

23

16

RIA

Ring indicator

24

17

DCDA

Data carrier detect

전체 모드 비교

FT2232는 UART 이외에 RS245, bit-bang, MPSSE, 호스트 버스 등으로 변환하여 사용이 가능합니다. 이 때 각 신호선간의 대응표는 다음과 같습니다.

J1 번호

FT2232 번호

범용 핀 이름

232 UART

245 FIFO

Bit-bang 모드

MPSSE

MCU
호스트 버스

16

18

  

GND

  

  

  

  

17

  

  

VCCUSB

  

  

  

  

18

5

  

RSTOUT

  

  

  

  

19

11

ACBUS3

TXLEDA

WR

RD#

GPIOH3

OSC

20

12

ACBUS2

RXLEDA

RD#

WR#

GPIOH2

IORDY

21

13

ACBUS1

SLEEPA

TXE#

RD#

GPIOH1

IO1

22

15

ACBUS0

TXDENA

RXF#

WR#

GPIOH0

IO0

23

16

ADBUS7

RIA

D7

D7

GPIOL3

AD7

24

17

ADBUS6

DCDA

D6

D6

GPIOL2

AD6

25

19

ADBUS5

DSRA

D5

D5

GPIOL1

AD5

26

20

ADBUS4

DTRA

D4

D4

GPIOL0

AD4

27

21

ADBUS3

CTSA

D3

D3

TMS/CS

AD3

28

22

ADBUS2

RTSA

D2

D2

TDO/DI

AD2

29

23

ADBUS1

RXDA

D1

D1

TDI/D0

AD1

30 

24

ADBUS0

TXDA

D0

D0

TCK/SK

AD0

채널 A의 신호선


J1 번호

FT2232 번호

범용 핀 이름

232 UART

245 FIFO

Bit-bang 모드

MPSSE

MCU
Host bus

1

27

BCBUS3

TXLEDB

WR

RD#

 

WR#

2

26

BCBUS2

RXLEDB

RD#

WR#

 

RD#

3

29

BCBUS1

SLEEPB

TXE#

RD#

 

ALE

4

30

BCBUS0

TXDENB

RXF#

WR#

 

CS#

5

32

BDBUS7

RIB

D7

D7

 

A15

6

33

BDBUS6

DCDB

D6

D6

 

A14

7

35

BDBUS5

DSRB

D5

D5

 

A13

8

36

BDBUS4

DTRB

D4

D4

 

A12

9

37

BDBUS3

CTSB

D3

D3

 

A11

10

38

BDBUS2

RTSB

D2

D2

 

A10

11

39

BDBUS1

RXDB

D1

D1

 

A9

12

40

BDBUS0

TXDB

D0

D0

 

A8

13

31

  

VCCIOB

  

  

 

  

14

14

  

VCCIOA

  

  

 

  

15

9

  

GND

  

  

 

  

채널 B의 신호선

관련 자료

  • FT2232 데이터쉬트
    • http://www.ftdichip.com/Documents/DataSheets/ds2232c_15.pdf
  • FT2232 가상 COM 포트(VCP) 디바이스 드라이버
    • http://www.ftdichip.com/Drivers/CDM/Win2000/CDM_Setup.exe
  • FT2232 D2xx 디바이스 드라이버
    • http://www.ftdichip.com/Drivers/CDM/Win2000/CDM_Setup.exe
  • FT2232 어플리케이션 데이터쉬트
    • Bit Mode Functions for the FT2232C
    • D2XX Programmer's Guide

'Interface > FT2232EB (USB)' 카테고리의 다른 글

FT2232EB 외형 치수 및 신호선  (0) 2008/01/24
FT2232EB  (0) 2008/01/24
Trackback 0 : Comment 0

FT2232EB

Interface/FT2232EB (USB) 2008/01/24 18:30

사용자 삽입 이미지

제품 특징

영국에 있는 FTDI사에서는 USB와 연결하여 UART, SPI, i2c, JTAG, 일반 IO 등으로 사용할 수 있는 FT2232 칩을 출시하였습니다. 특히 복잡한 USB 통신 프로토콜에 대한 학습할 필요 없이 바로 USB 포트를 가상 COM 포트로 인식시켜주는 VCP(virtual com port) 기술 덕분에 많은 임베디드 개발자들에게 인기가 높습니다. FT2232EB는 FT2232 디바이스와 EEPROM, 전원 회로 및 mini-B 타입의 USB 커넥터를 보드에 배치하여, USB 케이블로 PC와 연결하면 바로 FT2232의 기능을 테스트할 수 있는 FT2232 평가 보드입니다.

보드 양쪽에 표준 100mil 간격의 헤더 핀 30핀을 연결할 수 있도록 배치해 두었으며, 이곳으로 FT2232의 외부 인터페이스용 신호를 연결해 두었습니다. 이를 이용하면 브레드 보드나, 기타 확장 보드를 제작하여 다른 마이크로프로세서와 손쉽게 연결하여 실험하실 수 있습니다. 특히 UART를 내장한 마이크로프로세서일 경우 별도의 USB에 대한 학습 없이 FT2232EB 보드와 바로 연결하여 PC와 마이크로프로세서를 USB 포트로 연결할 수 있습니다.

FT2232EB와 함께 보다 쉽게 USB 관련 프로젝트를 수행하시기 바랍니다.

  • 특징 요약
    • FTDI사 FT2232 디바이스의 기능 테스트용 소형 보드
    • 부가 회로를 내장하여 USB 포트에 연결 즉시 사용 가능
    • USB 버스 전원으로 외부 전원 없이 동작
    • 가상용 COM 포트(VCP) 드라이버 제공
    • 직접 제어 방식(D2XX)의 드라이버 제공
    • MPSSE 인터페이스 기능 테스트 가능
  • 응용 분야
    • USB-to-Serial, USB-to-SPI, USB-to-i2c
    • USB-to-JTAG
    • USB-to-RS422, USB-to-RS485, USB-to-CAN
    • USB-to-ADC 등 각종 USB 인터페이스 응용 분야

용어 설명

  • VCP: Virtual Com Port의 약자로 인터페이스는 USB이지만, USB 포트에 연결하면 PC쪽에서는 통신용 COM 포트로 보이는 기술을 의미합니다. FT2232는 VCP용 디바이스 드라이버를 제공하며, 이를 이용하여 최대 2개의 가상용 COM 포트를 생성할 수 있습니다. 이렇게 생성된 가상 포트는 COM 포트 번호를 사용자가 임의로 부여할 수 있어 시리얼 통신 관련 테스트 시 매우 편리합니다.
  • D2XX: USB Direct Driver를 뜻하는 약어로 FTDI 칩을 USB 포트를 통해 직접 사용자가 제어하는 방식을 의미합니다. VCP 방식으로 이용하는 것에 비하면 어플리케이션 프로그래밍이 조금 복잡하다는 단점이 있지만, USB 2.0 Full speed의 속도로 데이터를 송수신할 수 있다는 장점이 있습니다.
  • MPSSE: Multi-Protocol Synchronous Serial Engine의 약자로 FT2232 칩을 다양한 시리얼 프로토콜을 생성하는 하드웨어 장치로 사용할 수 있게 만들어 주는 기능입니다. 이를 이용하면 SPI, i2c, JTAG에 관련된 신호를 생성할 수 있습니다. 각각의 시리얼 프로토콜을 지원하는 라이브러리도 FTDI사에서 제공하고 있습니다.

'Interface > FT2232EB (USB)' 카테고리의 다른 글

FT2232EB 외형 치수 및 신호선  (0) 2008/01/24
FT2232EB  (0) 2008/01/24
Trackback 0 : Comment 0