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

Similar documents
<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

PowerPoint 프레젠테이션

Microsoft Word - KPMC-400,401 SW 사용 설명서

OCW_C언어 기초

API 매뉴얼

review hwp

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

(SW3704) Gingerbread Source Build & Working Guide

10.

Microsoft PowerPoint - ch07 - 포인터 pm0415

제1장 Unix란 무엇인가?

실험 5

PowerPoint 프레젠테이션

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

T100MD+

슬라이드 1

개요

Microsoft PowerPoint - chap06-2pointer.ppt

6주차.key

untitled

ABC 11장

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Chapter #01 Subject

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Microsoft Word doc

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

CAN-fly Quick Manual

API 매뉴얼

Microsoft PowerPoint - ch09_파이프 [호환 모드]

2009년 상반기 사업계획

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

전기설비의 검사˚점검 및 시험등

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - [2009] 02.pptx

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

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

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

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

COMFILE_VOL13_ cdr

PowerPoint 프레젠테이션

11장 포인터

2012³â8¿ùÈ£˙ȸš

Çмú´ëȸ¿Ï¼º

컴파일러

Lab 3. 실습문제 (Single linked list)_해답.hwp

untitled

chap 5: Trees

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx

실험 5

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

鍮뚮┰硫붾돱??李⑤낯

고급 프로그래밍 설계

BMP 파일 처리

중간고사

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

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

2주차: 입출력 제어 복습

제1장 Unix란 무엇인가?

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Microsoft PowerPoint - chap01-C언어개요.pptx

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - 알고리즘_4주차_1차시.pptx

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

untitled

슬라이드 1

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

PRO1_14E [읽기 전용]

Microsoft PowerPoint - chap06-1Array.ppt

실험 5

한글사용설명서

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 - Lecture_Note_5.ppt [Compatibility Mode]

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

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

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

H3250_Wi-Fi_E.book

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

The Pocket Guide to TCP/IP Sockets: C Version

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

ADP-2480

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

디바이스드라이버 (Device Driver) Driver is literally a subject which drive a object. 응용프로그램에서하드웨어장치를이용해서데이터를직접읽고쓰거나제어해야하는경우에디바이스드라이버를이용 하드웨어를제어하는프로그램과애플리케이션에서

PowerPoint 프레젠테이션

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc


Microsoft Word - KVME-316A SW 사용자 메뉴얼

제12장 파일 입출력

Microsoft PowerPoint - IOControl [호환 모드]

½Å¹®319È£

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

SRC PLUS 제어기 MANUAL

Microsoft Word - PEB08_USER_GUIDE.doc

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Microsoft PowerPoint - Chapter 6.ppt

Transcription:

LKP-RTD 보드 사용자설명서 Version Information H/W Version : Version 1.0 소속 : ( 주 ) 엘케이일레븐연구소주소 : 성남시중원구상대원동 190-1 SKn테크노파크메가센터 1306호전화 : 031-776-4120 / FAX : 031-766-4119

목차 1. 개요... 5 2. 사양... 6 3. 블록도... 7 4. 커넥터위치... 8 5. 외부연결... 9 5.1 PMC 슬롯핀번호... 9 5.2 RS-422 커넥터핀번호... 9 5.3 LKV-080 보드와연결... 10 5.4 RTD 연결... 11 6. 디바이스드라이버... 12 6.1 UART 관련함수... 12 6.2 RTD 초기화... 12 6.3 RTD 타입설정... 12 6.4 RTD 저항값읽기... 13 6.5 RTD 온도값읽기... 13 6.6 RTD 조정하기... 13 6.7 RTD 디버깅함수들... 13 7. 예제프로그램... 15 7.1 UART... 15 7.2 RTD... 19 작성일 : 2009-02-18 PM 3:27:00 2/20

그림목차 그림 1. LKP-RTD... 5 그림 2. LKP-RTD 블록도... 7 그림 3. LKP-RTD 커넥터배치... 8 그림 4. LKP-RTD PMC 커넥터핀번호... 9 그림 5. LKP-RTD RS-422 커넥터핀번호... 10 그림 6. LKP-RTD RTD 연결방법... 11 작성일 : 2009-02-18 PM 3:27:00 3/20

표목차 표 1. LKV-080 P2 핀번호... 10 표 2. RTD 타입... 12 표 3. ioctl 기능... 17 표 4. ioctl 옵션... 18 작성일 : 2009-02-18 PM 3:27:00 4/20

1. 개요 LKP-RTD 보드는 RTD 센서인터페이스및 RS-422 통신을지원하는보드이다. RTD 16채널및 RS-422 시리얼 6 채널을처리할수있고, PMC 슬롯을통해 LKV-080 보드와인터페이스된다. RTD의경우각각의채널에대해 Sigma Delta ADC가사용되므로 multiplexing 과정에서생기는 noise가없고, 데이터처리속도를빠르게할수있다. RS-422 통신은 16550 UART와호환된다. 그림 1. LKP-RTD 작성일 : 2009-02-18 PM 3:27:00 5/20

2. 사양 PMC-RTD 보드는다음과같은사양을가진다. 센서인터페이스 : RTD(Resistive Temperature Device), 3-Wire Type 채널 : 16 채널 Resolution : 16 bit A/D Converter: Sigma Delta A/D Converter 16개 RS-422 인터페이스 6 채널 작성일 : 2009-02-18 PM 3:27:00 6/20

3. 블록도 다음은 LKP-RTD 보드의블록도이다. 16개의 RTD 입력은각각의 16비트 Sigma Delta A/D 컨버터로입력되고, 디지털로변환되어 PMC 인터페이스를통해읽을수있도록되어있다. EEPROM에는이득이나오프셋등의값을저장할수있다. 6개의 RS-422 인터페이스를통해외부와통신할수있다. 그림 2. LKP-RTD 블록도 작성일 : 2009-02-18 PM 3:27:00 7/20

4. 커넥터위치 다음그림은 LKP-RTD 보드의커넥터위치이다. 왼쪽에는 3개의 64핀 PMC 커넥터가배치되고, 오른쪽에는 6개의 RS-422 커넥터가배치된다. 그림 3. LKP-RTD 커넥터배치 RTD 센서는 P4 커넥터를통해인터페이스되고, RS-422 은전면커넥터를통해인터페이스된다. 작성일 : 2009-02-18 PM 3:27:00 8/20

5. 외부연결 5.1 PMC 슬롯핀번호 PMC 슬롯의핀번호는다음과같다. 그림 4. LKP-RTD PMC 커넥터핀번호 J1 과 J2 에는 PCI 신호가인터페이스되고, J4 에는 16 개의 RTD 신호가인터페이스된다. 5.2 RS-422 커넥터핀번호 RS-422 커넥터의핀번호는다음과같다. 작성일 : 2009-02-18 PM 3:27:00 9/20

그림 5. LKP-RTD RS-422 커넥터핀번호 RS-422 커넥터는 DF11-4DP-2DS를사용한다. 이커넥터에인터페이스할때는 DF11-4DS-2C 커넥터와 DF11-22SC 핀을사용할수있다. 5.3 LKV-080 보드와연결 LKV-080 보드와연결했을때 LKV-080의 P2로연결되는핀번호는다음과같다. 표 1. LKV-080 P2 핀번호 핀 신호 핀 신호 A1 C1 A2 INP1 C2 INP9 A3 INN1 C3 INN9 A4 IOUTN1 C4 IOUTN9 A5 C5 A6 INP2 C6 INP10 A7 INN2 C7 INN10 A8 IOUTN2 C8 IOUTN10 A9 C9 A10 INP3 C10 INP11 A11 INN3 C11 INN11 A12 IOUTN3 C12 IOUTN11 A13 C13 A14 INP4 C14 INP12 A15 INN4 C15 INN12 A16 IOUTN4 C16 IOUTN12 A17 C17 작성일 : 2009-02-18 PM 3:27:00 10/20

핀 신호 핀 신호 A18 INP5 C18 INP13 A19 INN5 C19 INN13 A20 IOUTN5 C20 IOUTN13 A21 C21 A22 INP6 C22 INP14 A23 INN6 C23 INN14 A24 IOUTN6 C24 IOUTN14 A25 C25 A26 INP7 C26 INP15 A27 INN7 C27 INN15 A28 IOUTN7 C28 IOUTN15 A29 C29 A30 INP8 C30 INP16 A31 INN8 C31 INN16 A32 IOUTN8 C32 IOUTN16 5.4 RTD 연결 RTD 연결방법은다음그림과같다. 그림 6. LKP-RTD RTD 연결방법 작성일 : 2009-02-18 PM 3:27:00 11/20

6. 디바이스드라이버 6.1 UART 관련함수 UART 는대부분기능이 16550 과호환되므로 16550 드라이버를그대로사용한다. 6.2 RTD 초기화 RTD 초기화함수는다음과같이정의된다. STATUS sysrtdinit(void); 이함수는 RTD 인터페이스에사용되는 A/D 변환기, 각채널별이득값및 RTD 타입을초기화하는함수이다. RTD 타입은 Pt 100 타입 ( 계수 0.00392) 으로초기화된다. 초기화가정상적으로이루어졌을경우 OK를아닐경우 ERROR를리턴한다. 6.3 RTD 타입설정 RTD 타입을설정하는함수는다음과같이정의된다. STATUS sysrtdsettype(int channel, int type); 첫째인자는채널번호로, 16개의채널이있으므로 0에서 15까지의값이들어갈수있다. 둘째인자는 RTD 타입으로다음과같이설정된다. 표 2. RTD 타입 번호 이름 설명 0 NONE 초기화되지않은상태 1 RTD_CU10_TYPE Cu 10 타입, 계수 0.00427 2 RTD_DIN_TYPE Pt 100 타입, 계수 0.00385 3 RTD_PURE_TYPE Pt 100 타입, 계수 0.00392 4 RTD_N_120_TYPE Ni 120 타입, 계수 0.00672 리턴값은함수가성공한경우 OK, 없는채널번호를선택하거나없는타입일경우 ERROR이다. 설정된타입을얻는함수는다음과같다. int sysrtdgettype(int channel); 첫째인자는채널번호이다. 리턴값은설정되어있는타입이다. 작성일 : 2009-02-18 PM 3:27:00 12/20

6.4 RTD 저항값읽기 RTD 의저항값을읽는함수는다음과같다. float sysrtdgetresistance(int channel); 첫째인자는채널번호이다. 리턴값은저항값이다. 6.5 RTD 온도값읽기 RTD의온도를읽는함수는다음과같다. float sysrtdgettemperature(int channel); 첫째인자는채널번호이다. 리턴값은온도값 ( 섭씨 ) 이다. 6.6 RTD 조정하기 RTD의이득값을조정하는함수는다음과같다. STATUS sysrtdcalibrate(void); 리턴값은이득값이조정되어 EEPROM에저장되면 OK를아니면에러를리턴한다. 이함수는반드시각채널에 100옴저항을연결하고, 실행시켜야한다. 출하할때이득값이측정되어저장된상태로출하되므로별도로이함수를실행시킬필요는없다. 6.7 RTD 디버깅함수들다음은 RTD를디버깅하기위해사용되는함수들이다. STATUS sysrtddumpadc(int channel); STATUS sysrtddumpeeprom(void); STATUS sysrtddumpresistance(void); STATUS sysrtddumptemperature(void); sysrtddumpadc는 ADC의레지스터값을표시한다. sysrtddumpeeeprom은 EEPROM에저장되어있는데이터를표시한다. 작성일 : 2009-02-18 PM 3:27:00 13/20

sysrtddumpresistance는각채널의저항값을표시한다. sysrtddumptemperature는각채널의온도값을표시한다. 작성일 : 2009-02-18 PM 3:27:00 14/20

7. 예제프로그램 LKV-080 보드의 BSP에는 LKP-RTD 보드드라이버가포함되어있고, 보드초기화할때검색해서 LKP-RTD 보드가설치되어있으면자동으로초기화하므로, LKV-080 보드에서는별도의초기화과정없이바로 LKP-RTD 보드에서제공하는기능들을사용할수있다. 어플리케이션에서 LKP-RTD 보드의설치여부에관한별도의확인이필요하다면다음과같은코드로가능하다. #define RTD_PCI_VENDOR_ID 0x1895 #define RTD_PCI_DEVICE_ID 0x0002 Int b,d,f; if (pcifinddevice(rtd_pci_vendor_id, RTD_PCI_DEVICE_ID, 0, &b, &d, &f)!= OK) { printf( LKP-RTD board is not found n ); return ERROR; 7.1 UART UART는 16550과호환되므로, 별도의드라이버를제공하지않고, vxworks가제공하는 tty 드라이버를사용하게되어있다. LKV-080 보드에서 LKP-RTD를설치하고 devs 명령을실행시키면다음과같이출력된다. -> devs drv name 0 /null 1 /tyco/0 1 /tyco/1 1 /tyco/2 1 /tyco/3 1 /tyco/4 1 /tyco/5 1 /tyco/6 1 /tyco/7 1 /tyco/8 1 /tyco/9 5 host: 6 /pty/rlogin.s 7 /pty/rlogin.m 작성일 : 2009-02-18 PM 3:27:00 15/20

8 /vio value = 25 = 0x19 -> /tyco/0 에서 /tyco/3 까지는 LKV-080에내장되어있는시리얼포트이고, /tyco/4 에서 /tyco/9 까지는 LKP-RTD의시리얼포트이다. UART로값을보낼때는 open 함수로디바이스를열고, write 함수로쓰면된다. 다음은 LKP- RTD의첫번째포트에 Hello, World! 를출력하는예제이다. int uart_example1(void) { int fd = open("/tyco/4", O_RDWR, 0); if (fd < 0) { printf("error opening /tyco/4 n"); return -1; write(fd, "Hello World! n", 13); close(fd); return 0; 이때 baud rate 는콘솔과같은 baud rate 로설정된다. UART에서받을때는 open 함수로디바이스를열고, read 함수로읽으면된다. 다음은 LKP-RTD 의두번째포트에서값을읽어오는예제이다. int uart_example2(void) { char c; int fd = open("/tyco/5", O_RDWR, 0); if (fd < 0) { printf("error opening /tyco/5 n"); return -1; FOREVER { read(fd, &c, 1); putchar(c); 작성일 : 2009-02-18 PM 3:27:00 16/20

close(fd); return 0; tty 디바이스는 ioctl 함수를통해다양한기능이가능하다. tty 가지원하는기능은다음과같다. 표 3. ioctl 기능 FIOBAUDRATE Baud rate 설정 FIOCANCEL Read/Write 동작취소 FIOFLUSH 입력과출력버퍼의모든값을버림 FIOGETNAME fd의이름을얻음 FIOGETOPTIONS 옵션을읽음 FIONREAD 입력버퍼에서읽지않은바이트수를구함 FIONWRITE 출력버퍼에서출력되지않은바이트수를구함 FIOSETOPTIONS 옵션을설정. 다음은 LKP-RTD 보드의세번째포트의 Baud rate를 115200으로변경하고, Hello World! 를출력하는예제이다. int uart_example3(void) { int fd = open("/tyco/6", O_RDWR, 0); if (fd < 0) { printf("error opening /tyco/6 n"); return -1; ioctl(fd, FIOBAUDRATE, 115200); write(fd, "Hello World! n", 13); close(fd); return 0; 다음은 LKP-RTD 보드의네번째포트의 baud rate를 115200으로변경하고, 값을읽어오는예제이다. int uart_example4(void) 작성일 : 2009-02-18 PM 3:27:00 17/20

{ char c; int fd = open("/tyco/7", O_RDWR, 0); if (fd < 0) { printf("error opening /tyco/7 n"); return -1; ioctl(fd, FIOBAUDRATE, 115200); FOREVER { read(fd, &c, 1); putchar(c); close(fd); return 0; 옵션값은다음과같다. 표 4. ioctl 옵션 OPT_ECHO OPT_CRMOD OPT_TANDEM OPT_7_BIT OPT_MON_TRAP OPT_ABORT OPT_TERMINAL OPT_RAW 입력에코 lf를 crlf로변경 ^S/^Q 플로우컨트롤프로토콜입력에서 8번째비트를없앰 ^X 활성화 ^C 활성화위의모든옵션셋위의모든옵션셋안함 다음은 LKP-RTD 보드의옵션을읽어오는예제이다. int uart_example5(void) { int opt; int fd = open("/tyco/8", O_RDWR, 0); if (fd < 0) { printf("error opening /tyco/8 n"); 작성일 : 2009-02-18 PM 3:27:00 18/20

return -1; opt = ioctl(fd, FIOGETOPTIONS, 0); if (opt & OPT_ECHO) printf("opt_echo n"); if (opt & OPT_CRMOD) printf("opt_crmod n"); if (opt & OPT_TANDEM) printf("opt_tandem n"); if (opt & OPT_7_BIT) printf("opt_7_bit n"); if (opt & OPT_MON_TRAP) printf("opt_mon_trap n"); if (opt & OPT_ABORT) printf("opt_abort n"); if (opt & OPT_LINE) printf("opt_line n"); if (opt == 0) printf("opt_raw n"); close(fd); return 0; 초기의옵션은 OPT_RAW 로설정되므로위예제의출력값은다음과같다. -> uart_example5 OPT_RAW value = 0 = 0x0 -> 7.2 RTD RTD의온도를구할때는 sysrtdgettemperature 함수를이용한다. 첫번째인자는채널번호이고 0부터시작한다. 리턴값은 float 형으로온도값이리턴된다. 사용방법은다음예제와같다. #define RTD_CHANNELS 16 float sysrtdgettemperature(int channel); int rtd_example(void) { int i; for (i = 0; i < RTD_CHANNELS; i++) printf("the temperature of channel %d is %f Celsius n", 작성일 : 2009-02-18 PM 3:27:00 19/20

return 0; i, sysrtdgettemperature(i)); 콘솔에표시되는값은다음과같다. -> rtd_example The temperature of channel 0 is 0.001408 Celsius The temperature of channel 1 is 0.016267 Celsius The temperature of channel 2 is 0.034851 Celsius The temperature of channel 3 is 0.034889 Celsius The temperature of channel 4 is 0.001408 Celsius The temperature of channel 5 is 0.034755 Celsius The temperature of channel 6 is 0.071578 Celsius The temperature of channel 7 is -0.053960 Celsius The temperature of channel 8 is 0.001408 Celsius The temperature of channel 9 is 0.016343 Celsius The temperature of channel 10 is 0.016267 Celsius The temperature of channel 11 is 0.016343 Celsius The temperature of channel 12 is 0.001408 Celsius The temperature of channel 13 is 0.001408 Celsius The temperature of channel 14 is 0.001408 Celsius The temperature of channel 15 is 0.016324 Celsius value = 50 = 0x32 = '2' -> 작성일 : 2009-02-18 PM 3:27:00 20/20