USB2.0 KIT 용 적외선 온도센서와 온/습도 센서 보드 1. 주의 사항(필독) 2. 시스템 구성 3. USB 프로그램 다운로드 방법 4, PC 프로그램 5. PC Library 사용방법 6. 상품 구입시 회 사 명 : IESystems Website : www.iesystems.co.kr Email : matrixhj@iesystems.co.kr 전화번호 : 031-907-2668
1. 주의 사항(필독) 1) USB제공되는 전원만 사용하는 제품입니다. 따로 전원을 제공할 필요는 없습니 다. 2) USB2.0 KIT를 장착할 경우 아래의 제품 사진처럼 올바른 방향으로 장착해야 합니다. 3) 보드에 장착된 USB2.0 KIT를 분리할 경우에 반드시 약한 힘을 이용하여 좌우를 조금씩 위로 올려서 분리하셔야 커넥터 핀이 휘어지지 않습니다. 4) 적외선 온도센서(DSTM-01)를 탈 부착이 가능하며 만약 보드에서 분리해서 다시 장착할 경우 제품 사진처럼 올바른 방향으로 장착하셔야 합니다. 5) 온/습도 센서(SHT71)은 보드에서 분리할 수 없습니다.
2. 시스템 구성 USB2.0 KIT가 장착되는 부분 USB전원 사용하기 위한 연결방법 DSTM-01 SHT71 내부 메모리를 사용 하기 위한 연결 방법 USB2.0 KIT 장착된 형태로 USB 자체전원만으로 동작함 1) USB2.0 KIT에서 내부 메모리를 사용하기 위해서는 시리얼 EEPROM에 USB 프로그램을 다운로드 한 상태에서 사용 가능하지만 바로 SRAM에 프로그램을 다운로드 해서 사용해도 됩니다. 자세한 설명은 3장에서 설명하겠습니다. 2). 적외선 온도 센서 - 디웰전자의 비접촉식 적외선 온도센서모듈소형(DSTM-01) IC 2 통신방식 디바이스마트에 판매되고 있는 모듈입니다.
적외선 온도센서의 상세정보는 디바이스마트에서 제공되는 데이터시트를 참조하십시오. - 적외선 온도 센서는 센서의 앞쪽 공간의 평균값을 표시함. 신속하게 온도 변화를 볼 수 있는 장점이 있음. 3) 온/습도 센서 - SENSIRION사의 온/습도 센서 SHT71 - IC 2 통신방식 디바이스마크에 판매되고 있는 모듈입니다. 온/습도 센서의 상세정보는 디바이스마크에서 제공되는 데이터시트를 참조 하십시오 - 적외선 온도 센서보다는 온도 변화를 추적하는데 조금 느린 편입니다. 하지만 습도 센서와 함께 있다는 장점이 있습니다.
3. USB 프로그램 다운로드 방법 SRAM EEPROM 위의 프로그램은 Cypress에서 제공되어지는 프로그램으로써 USB2.0 KIT에 EEPROM이나 SRAM 프로그램을 다운로드할 수 있습니다. USB 프로그램을 변경하여 컴파일해서 새롭게 사용할 경우 반드시 SRAM 프로그램 을 다운로드한 후에 동작에 이상이 없으면 EEPROM에 프로그램을 다운로드 하시 는 것이 좋습니다. SRAM은 전원이 꺼지면 프로그램이 사라집니다. 하지만 EEPROM에는 전원을 꺼져 도 프로그램이 사라지지 않습니다. 그리고 맨 처음 EEPROM에 프로그램을 다운로 드한 다음에는 반드시 전원을 끈 후 다시 전원을 켜야지만 정상 동작하게 됩니다. CD에 제공되어지는 USB프로그램에서 EEPROM.icc 파일은 USB2.0 KIT의 EEPROM에 다운로드하기 위한 파일이며, portcstb.hex 파일은 USB2.0 KIT의 SRAM에 다운로드하기 위한 파일입니다.
4. PC프로그램 실제 온도와 습도 변화를 보여주는 프로그램입니다.
5. PC Library 사용방법 : CD내에서 Program Library 디렉터리 내에 들어있는 2개의 파일 FX2dll.dll과 FX2dll.lib는 반드시 사용자가 만든 실행 프로그램이 있는 디렉토리에 같이 존재 해야 합니다. IESystems에서 제공하는 예제에서도 실행 파일이 있는 디렉토리 내 에 Library 파일이 존재합니다. (1) Visual C++6.0을 이용하여 기본 틀을 구성합니다. 여기서 사용된 예는 주로 Control Box 창을 이용하였습니다. (여기서는 Visual C++에 대한 자세한 이야 기는 생략합니다. 필요한 부분은 전문 서적을 참조 바랍니다) (2) 기본 틀을 구성하고 난 뒤에 IESystems에서 제공되는 Library 파일을 실행 파일이 만들어지는 디렉토리에 복사합니다. 그런 후에 Visual C++프로그램에서 Library 파일을 연결시켜 줍니다. - Library 파일 연결 방법 2 3 1 빨간 표시가 있는 부분을 순서대로 선택하면 아래와 같이 됩니다. 1 FileView 선택 2 Project 이름을 선택한 후 마우스 오른쪽 버튼을 클릭하여 팝업 창이 나타 나도록 한다. 3 팝업 창에서 Add Files to Project 선택하면 다음 페이지의 창이 나타남.
위의 창에서 Library Files를 선택한 후에 IESystems에서 제공하는 Library 파일 을 연결하면 됩니다. (3) Head File(*Dlg.h)에 Library함수 사용을 위한 선언을 합니다. 예) extern "C"_declspec(dllimport) BOOLEAN USB_Write(HANDLE hdevice, int Data_Size, int pattern[64]); extern "C"_declspec(dllimport) int USB_Read(HANDLE hdevice, int Data_Size_In, int Read_Data[64]); extern "C"_declspec(dllimport) BOOLEAN bopendriver (HANDLE * phdevicehandle, PCHAR devname); - 위에서 선언한 함수에 사용법은 아래와 같습니다. 먼전 USB2.0 KIT의 Driver를 열기 위한 함수 bopendriver()함수를 선언합니다. 선언하는 방법은 아래와 같습니다. 먼저 아래와 같이 변수를 선언해야 합니다. HANDLE hdevice = NULL; char pcdrivername[8] = "ezusb-0"; 다음으로 아래와 같이 프로그램을 적어 줍니다. if (bopendriver (&hdevice, pcdrivername) == TRUE) {} else { MessageBox ("Failed to Open Driver"); hdevice = NULL; }
위의 과정은 틀림없이 한번 거쳐야 USB_Write()함수와 USB_Read()함수를 사용 할 수 있습니다. - USB_Write(hDevice, 전송 데이터 크기, 전송 데이터) (1) hdeivce : bopendriver()함수를 위한 변수 선언에서 이미 선언된 변수입니다. (2) 전송 데이터 크기 : USB2.0 KIT는 한번에 최대 64 bytes 데이터를 보낼 수 있습니다. (3) 전송 데이터 : 사용자가 USB2.0 KIT로 전송할 데이터 값을 넣는 곳입니다. 예) 64 bytes의 데이터를 전송할 경우 HANDLE hdevice = NULL; char pcdrivername[8] = "ezusb-0"; int pattern[64]; int Data_Size; if (bopendriver (&hdevice, pcdrivername) == TRUE) {} else { MessageBox ("Failed to Open Driver"); hdevice = NULL; } for(int i=0; i<64;i++) { pattern[i]=i; } USB_Write(hDevice, Data_Size, &Output_Value[0]); CloseHandle (hdevice); //USB에 관련된 프로그램을 종료하기 전에 꼭 필요함. 위와 같이 프로그램을 작성한 후 실행하면 64개의 데이터가 USB 프로그램의 EP1OUTBUF[0] ~ EP1OUTBUF[63]로 전달되게 됩니다. 이렇게 PC로부터 USB 버퍼로 전달된 데이터는 사용자가 원하는 데로 프로그램을 작성하면 됩니다.
- USB_Read(hDevice, 입력 데이터 크기, 전송 받을 데이터) (1) 입력 데이터 크기 : 입력 데이터 크기는 항상 64로 해야 합니다. (2) 전송 받을 데이터 : 64개의 데이터가 입력됩니다. 예) USB2.0 KIT로부터 데이터를 입력 받음. HANDLE hdevice = NULL; char pcdrivername[8] = "ezusb-0"; BOOLEAN bresult = FALSE; int Read_Data[64],Data_Size_In; CString Read; CListBox *plist=(clistbox *)GetDlgItem(IDC_LIST1); if (bopendriver (&hdevice, pcdrivername) == TRUE) {} else { MessageBox ("Failed to Open Driver"); hdevice = NULL; } Data_Size_In=64; bresult=usb_read(hdevice, Data_Size_In, &Read_Data[0]); CloseHandle (hdevice); //USB에 관련된 프로그램을 종료하기 전에 꼭 필요함. 위와 같이 프로그램을 입력하게 되면 USB 프로그램의 EP1INBUF[0]~ EP1INBUF[63]까지의 64개 USB 데이터가 PC의 Read_Data[0] ~ Read_Data[63]까지의 변수에 입력하게 됩니다. Read_Data 버퍼에 저장된 USB로부터 입력된 데이터를 사용자가 원하는 데로 프 로그램을 작성하시면 됩니다.
5. 상품 구입시 Visual C++ 소스 코드 및 USB 소스 코드 그리고 회로도가 첨부됩니다.