1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op

Similar documents
USB2CAN USB2CAN-UART USB2CAN-FIFO API Reference Manual Copyright NTREXLAB

untitled

untitled

API 매뉴얼

일반적인 네트워크의 구성은 다음과 같다

The Pocket Guide to TCP/IP Sockets: C Version

DSP_MON 프로그램 메뉴얼

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

금오공대 컴퓨터공학전공 강의자료

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

Microsoft PowerPoint - chap06-2pointer.ppt

API 매뉴얼

SRC PLUS 제어기 MANUAL

untitled

게시판 스팸 실시간 차단 시스템

Mango-E-Toi Board Developer Manual

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

(72) 발명자 서진교 경기 용인시 수지구 풍덕천2동 1167 진산마을 삼성5차아파트526동 1004호 조필제 경기 용인시 풍덕천동 유스빌 401호 - 2 -

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

chap 5: Trees

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

PowerPoint 프레젠테이션

The Pocket Guide to TCP/IP Sockets: C Version

강의 개요

The Pocket Guide to TCP/IP Sockets: C Version

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

DSP_MON 프로그램 메뉴얼

ISP and CodeVisionAVR C Compiler.hwp

adfasdfasfdasfasfadf

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech

2주차: 입출력 제어 복습

SMB_ICMP_UDP(huichang).PDF

K&R2 Reference Manual 번역본

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

USB-AIO11 API

Microsoft Word - LKP-RTD 사용자 설명서

PowerPoint Presentation

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech

설계란 무엇인가?

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

DSP_MON 프로그램 메뉴얼

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

ComPortMaster 프로그램소개 특징 기능상특징 PC 의 COM 포트를이용한통신프로그램 ASCII/Hex 선택적으로데이터송수신가능 SLIP 및위드로봇에서제안하는확장 SLIP 인코딩, 디코딩기능선택적사용가능 명령어 2 바이트데이터길이 1 바이트로구성된 WRPu 패킷


CANTUS Evaluation Board Ap. Note

ComPortMaster 프로그램소개 특징 기능상특징 PC 의 COM 포트를이용한통신프로그램 ASCII/HEX 선택적으로데이터송수신가능 SLIP 및위드로봇에서제안하는확장 SLIP 인코딩, 디코딩기능선택적사용가능 명령어 2 바이트데이터길이 1 바이트로구성된 WRPu 패킷

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

3ÆÄÆ®-11

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

USB3-FRM01 API 매뉴얼

vm-웨어-앞부속

PowerPoint 프레젠테이션

<4D F736F F D E20B4DCB8BB20C1A1B0CB20B9D720C1B6C4A120B8C5B4BABEF35F76312E335F2E646F63>

5-03-Â÷¼¼´ëÀ¥Iš

Microsoft PowerPoint - 부호기와 복호기.PPT

USB3-DIO01

PowerPoint 프레젠테이션

디지털TV솔루션 브로셔

1217 WebTrafMon II

쉽게 풀어쓴 C 프로그래밍

제1장 Unix란 무엇인가?

어댑터뷰

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

bn2019_2

Analyst Briefing

0. 들어가기 전

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]


PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

T100MD+

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Microsoft PowerPoint - chap06-5 [호환 모드]

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

hd1300_k_v1r2_Final_.PDF

TTA Journal No.157_서체변경.indd

!K_InDesginCS_NFH

lecture4(6.범용IO).hwp

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션


Transcription:

USB2CAN USB2CAN-VCP USB2CAN-FIFO API Reference Manual ver. 1.00 Updated in November 2013

1 1. INTRODUCTION 2 2. DOWNLOAD 2 2-1. Windows Desktop & Server 2 2-2. Max OS X, Linux, Windows CE 2 3. API REFERENCE 3 3-1. CAN_OpenVcp 3 3-2. CAN_OpenUsb 4 3-3. CAN_Close 5 3-4. CAN_IsOpened 5 3-5. CAN_ SetTimeout 6 3-6. CAN_CountRxQueue 7 3-7. CAN_ Purge 8 3-8. CAN_ Recv 9 3-9. CAN_Send 10 3-10. CAN_ GetConfig 12 3-11. CAN_ SetConfig 13 3-12. CAN_ SetTransferMode 14

2 1. Introduction 은 Host PC에서 USB 포트를이용하여 CAN bus에쉽게접근할수있게해주는 USB to CAN BUS 어댑터모듈입니다. 이문서는 USB2CAN 컨버터를엑세스하기위한 CAN Access DLL에서사용가능한기능들에대하여설명합니다. [ 그림 1-1] 2. Download 2-1. Windows Desktop & Server 엔티렉스의공식홈페이지 (ntrexgo.com) 에서 Library.zip 파일을다운로드받으시고압축을해제하면 CAN_Access.dll, CAN_Access.lib, CAN_Access.h, CAN_Test.exe 총 4개의파일이있는것을확인할수있습니다. 사용자는별도의개발모듈을사용하거나또는, CAN_Test.exe를통해서 USB2CAN을테스트할수있습니다. 2-2. Max OS X, Linux, Windows CE 이 API 는 Mac OS X, Linux, Windows CE 에서는사용할수없습니다.

3 3. API Reference 3-1. CAN_OpenVcp USB2CAN(UART) 컨버터를엑세스하기위해핸들을얻어옵니다. CAN_HANDLE CAN_OpenVcp(const char *comportname, long combaudrate) comportname : COM port 이름을나타내는문자열포인터 combaudrate : Baudrate 값을나타내는숫자 : 921600bps 로고정 성공한경우 USB2CAN 컨버터의핸들을리턴하고실패한경우 -1 을리턴합니다. Remarks 이함수는 FTDI FT232칩을기반으로만들어진 USB2CAN 컨버터를오픈하는데사용합니다. FT232 칩의 Windows용드라이버는가상시리얼포트 (VCP; Virtual COM Port) 드라이버를제공하는데, 가상시리얼포트를통해 COM 포트를엑세스하는것과동일하게 USB2CAN 컨버터를엑세스하게됩니다. Examples CAN_HANDLE hbus = CAN_OpenVcp ("\\\\.\\COM3", 921600); if (0 <= hbus) { CAN_SetTransferMode (hbus, 1); // Open 성공 else { // Open 실패, Error 처리

4 3-2. CAN_OpenUsb USB2CAN(FIFO) 컨버터를엑세스하기위해핸들을얻어옵니다. CAN_HANDLE CAN_OpenUsb(const char *serialnumber) serialnumber : USB2CAN 의 Serial Number 문자열포인터 성공한경우핸들을리턴하고실패한경우 -1 을리턴합니다. Remarks 이함수는 FTDI FT245칩을기반으로만들어진 USB2CAN 컨버터를오픈하는데사용합니다. FT245 칩이 USB로 PC에연결되었을때칩을구분하는 Serial Number가제공되는데, 이 Serial Number를통해 FIFO 포트를오픈하여 USB2CAN 컨버터를엑세스하게됩니다. Serial Number는 USB2CAN UI를실행하면다음과같이검색됩니다. Examples CAN_HANDLE hbus = CAN_OpenUsb ("NTWXHPOP"); if (0 <= hbus) { CAN_SetTransferMode (hbus, 1); // Open 성공 else { // Open 실패, Error 처리

5 3-3. CAN_Close USB2CAN 컨버터의열린핸들을닫아사용을종료합니다. int CAN_Close(CAN_HANDLE handle) handle : USB2CAN 컨버터의핸들 성공한경우 1 을리턴하고실패한경우 0 을리턴합니다. 여기서실패한경우란, 열려있 지않은핸들을닫으려고하는경우입니다. 3-4. CAN_IsOpened USB2CAN 핸들이열려있는지확인합니다. int CAN_IsOpened (CAN_HANDLE handle) handle : USB2CAN 컨버터의핸들 USB2CAN 컨버터의핸들이열려있는경우 1 을리턴하고열려있지않은경우 0 을리턴 합니다.

6 3-5. CAN_ SetTimeout 읽기와쓰기요청에대한타임아웃값을밀리초단위로설정합니다. int CAN_SetTimeout (CAN_HANDLE handle, unsigned long readtimeout, unsigned long writetimeout, unsigned long latencytimer) handle readtimeout writetimeout latencytimer : USB2CAN 컨버터의핸들 : 읽기요청에대한타임아웃값 ( 범위 : 1 ~ 1000 ms) : 쓰기요청에대한타임아웃값 ( 범위 : 1 ~ 1000 ms) : USB2CAN(UART) 인경우, Inter character timeout 값 ( 범위 : 1~1000 ms); USB2CAN(FIFO) 인경우, Latency timer 값 ( 범위 : 0 ~ 32 ms) 성공한경우 1 을리턴하고실패한경우 0 을리턴합니다. Remarks Inter character timeout은문자를받은후다음문자를받기까지얼마나기다릴것인지를밀리초단위로설정합니다. Latency timer는수신버퍼에문자가들어왔는지를체크하는타이머주기를설정합니다. 이값을줄이면수신버퍼를체크하는주기가짧아져 CPU의부하를증가시키고읽기요청에대한응답속도가빨라집니다. 반대로이값을늘이면 CPU의부하를줄이는대신읽기요청에대한응답속도가느려집니다.

7 Examples CAN_HANDLE hbus = CAN_OpenUsb ("NTWXHPOP"); if (0 <= hbus) { CAN_SetTransferMode (hbus, 1); CAN_SetTimeout (hbus, 33, 100, 0); // Open 성공 else { // Open 실패, Error 처리 3-6. CAN_CountRxQueue 수신버퍼에들어온문자수를셉니다. int CAN_CountRxQueue (CAN_HANDLE handle) handle : USB2CAN 컨버터의핸들 성공한경우수신버퍼의문자수를리턴하고실패한경우 0 을리턴합니다. 즉, 0 이리 턴된경우는함수호출이실패하였거나수신버퍼에들어온문자가없다는의미입니다.

8 Examples while (1) { if (0 < CAN_CountRxQueue (hbus)) { long ID; int length; char data[8]; int ext, rtr; if (CAN_Recv (hbus, &ID, &length, data, &ext, &rtr)) { // CAN message 읽기성공 else { Sleep (10); 3-7. CAN_ Purge 송신과수신버퍼의문자들을비웁니다. void CAN_Purge (CAN_HANDLE handle) handle : USB2CAN 컨버터의핸들

9 3-8. CAN_ Recv 수신버퍼의문자열로부터하나의 CAN 메시지를읽습니다. int CAN_Recv (CAN_HANDLE handle, long *ID, int *length, char data[8], int *Ext, int *RTR) handle : USB2CAN 컨버터의핸들 ID : CAN 메시지를송신한장치의 ID 를담는변수의포인터 ( 범위 : Standard message 인경우 0x000 ~ 0x7FF, Extended message 인경우 0x00000000 ~ 0x1FFFFFFF) length : CAN 메시지에서 data 의길이를담는변수의포인터 ( 범위 : 0 ~ 8 byte) data : CAN 메시지의데이터를저장하는배열의포인터 ( 크기 : 최대 8 byte) Ext : 수신된 CAN ID 가 Standard 혹은 Extended 인지를구분하는변수의포인터 : - 변수의값이 0 인경우 Standard CAN message, - 변수의값이 1 인경우 Extended CAN message RTR : 수신된 CAN 메시지의종류가 RTR 인지를구분하는변수의포인터 : - 변수의값이 0 인경우데이터전송, - 변수의값이 1 인경우 RTR 로데이터전송요청 * RTR(Remote Transmission Request) - 일반적으로데이터전송은센서와같은데이터를발생시키는노드에의해자동으로 Data Frame을전송되게됩니다. 어쨌거나, 데이터를수집하는노드가 Remote Frame을보냄으로데이터전송을요청하는것도가능합니다. CAN 메시지를읽기성공한경우 1 을리턴하고실패한경우 0 을리턴합니다.

10 Remarks CAN_Recv() 함수는수신버퍼에수신된문자열이존재하고, 이문자열로부터하나의 CAN 메시지를조립할수있다면즉각적으로리턴합니다. 하지만수신버퍼에문자가수신되지않았거나수신된문자열이하나의 CAN 메시지를조립하기에부족하다면 CAN_SetTimeout() 함수로설정된 readtimeout 시간동안완전한문자열이수신되기를기다립니다. Examples while (1) { long ID; int length; char data[8]; int ext, rtr; if (CAN_Recv (hbus, &ID, &length, data, &ext, &rtr)) { // CAN message 읽기성공 else { Sleep (10); 3-9. CAN_Send CAN 메시지를전송합니다. int CAN_Send (CAN_HANDLE handle, long ID, int length, char data[8], int Ext, int RTR)

11 Handle ID : USB2CAN 컨버터의핸들 : CAN 메시지를수신할장치의 ID ( 범위 : Standard message 인경우 0x000 ~ 0x7FF, Extended message 인경우 0x00000000 ~ 0x1FFFFFFF) length data : CAN 메시지에서 data 의길이를저장 ( 범위 : 0 ~ 8 byte) : CAN 메시지의데이터를저장하는배열의포인터 ( 크기 : 최대 8 byte) Ext : 전송할 CAN ID 가 Standard 혹은 Extended 인지를구분하는변수 : - 변수의값이 0 인경우 Standard CAN message, - 변수의값이 1 인경우 Extended CAN message RTR : 전송할 CAN 메시지의종류가 RTR 인지를구분하는변수 : - 변수의값이 0 인경우데이터전송, - 변수의값이 1 인경우 RTR 로데이터전송요청 CAN 메시지의전송을성공한경우 1 을리턴하고실패한경우 0 을리턴합니다. Examples char data[8] = {0x83, 0x11, 0x00, 0x03, ; // 최대 8 byte if (CAN_Send (hbus, 0x11, 4, data, 0, 0)) { // 전송성공

12 3-10. CAN_ GetConfig CAN 포트의설정을읽어옵니다. int CAN_GetConfig (CAN_HANDLE handle, long *bitrate, unsigned long *filterid, unsigned long *filtermask) handle bitrate filterid filtermask : USB2CAN 컨버터의핸들 : CAN 통신속도를저장하는변수의포인터 ( 단위 : kbps) : CAN Filter Identifier를담는변수의포인터 ( 범위 : 0x0 ~ 0x1FFFFFFF) : CAN Filter Mask를담는변수의포인터 ( 범위 : 0x0 ~ 0x1FFFFFFF) 성공한경우 1 을리턴하고실패한경우 0 을리턴합니다. Examples long bitrate; unsigned long filterid; unsigned long filtermask; if (CAN_GetConfig (hbus, &bitrate, &filterid, &filtermask)) { // 설정값읽기성공

13 3-11. CAN_ SetConfig CAN 포트의설정을 USB2CAN 컨버터로내려보냅니다. int CAN_SetConfig (CAN_HANDLE handle, long bitrate, unsigned long filter_id, unsigned long filter_mask) handle bitrate : USB2CAN 컨버터의핸들 : CAN 통신속도 ( 단위 : kbps). 설정가능한 CAN 통신속도는다음과같습니다 : 1000-1M Bps 800-800K Bps 500-500K Bps 250-250K Bps 125-125K Bps 50-50K Bps 25-25K Bps 10-10K Bps filterid filtermask : CAN Filter Identifier ( 범위 : 0x0 ~ 0x1FFFFFFF) : CAN Filter Mask ( 범위 : 0x0 ~ 0x1FFFFFFF) 성공한경우 1 을리턴하고실패한경우 0 을리턴합니다.

14 Remarks CAN_SetConfig() 함수가호출되면 USB2CAN 컨버터에서는다음과같은과정을거치게 됩니다 : 1 bitrate, filterid, filtermask 값으로 CAN port 를설정합니다. 2 bitrate, filterid, filtermask 값을 Flash memory 에저장합니다. 이함수에의해설정된값은 USB2CAN 컨버터가재시작되어도 Flash memory 에저장 된설정값에의해 CAN port 의설정이유지됩니다. Examples if (CAN_GetConfig (hbus, 1000, 0x0000, 0x0000)) { // 설정값읽기성공 3-12. CAN_ SetTransferMode 컨버터의 CAN port와 PC간패킷전송을활성화 / 비활성화하거나전송방식을결정합니다. 선택가능한전송방식은다음과같습니다. 0 CAN port와 PC간 CAN 메시지패킷만의송수신을금지합니다. 하지만설정이나명령과관련된패킷의송수신은가능합니다. 1 USB2CAN 컨버터와 PC간바이너리형식의패킷을송수신합니다. 이때, CAN 메시지및설정, 명령과관련된패킷의송수신형태는바이너리형식으로인코딩됩니다. 2 - USB2CAN 컨버터와 PC간텍스트형식의패킷을송수신합니다. 이때, CAN 메시지및설정, 명령과관련된패킷의송수신형태는텍스트형식으로인코딩됩니다. int CAN_SetTransferMode (CAN_HANDLE handle, int mode)

15 handle : USB2CAN 컨버터의핸들 mode : 패킷전송모드설정 : 0 Disable transmit 1 패킷을 Binary 형식으로인코딩하여송수신 2 - 패킷을 Text 형식으로인코딩하여송수신 성공한경우 1 을리턴하고실패한경우 0 을리턴합니다. Remarks CAN_Access.DLL 파일에서는 Text/Binary 형식의인코딩이내부적으로처리되기때문에사용자에게 Text와 Binary 형식의전송방식을구분하는것은중요하지않습니다. 그이유는사용자는 CAN_Recv(), CAN_Send() 함수에의해항상디코딩된 CAN message 형식으로읽고쓰기때문입니다. 또한, 전송모드의설정과상관없이, PC에서 USB2CAN 컨버터로 CAN 메시지를전송할때는항상바이너리형식으로인코딩된패킷을전송하게됩니다. 그렇기때문에, 사용자가텍스트모드로변경하더라도패킷을주고받는과정에서바이너리형식으로변경하게됩니다.