Page 1 of 21 <DTPML-SPI-151> <DTPML-SPI-81> 비접촉온도측정 방사율조절가능 빠른온도업데이트 (50Hz) 원거리온도측정 High Accuracy Digital Interface : SPI 레이저포인터기본장착 제품설명 DTPML-SPI Series는접촉을하지않고원하는물체표면의온도를 20ms 이내에정확하게측정할수있는온도센서모듈입니다. DTPML-SPI Series는온도계산프로세서를내장하고있어정확한온도값을출력합니다. (Master Controller에온도계산알고리즘이필요하지않습니다.) 방사율조절이가능합니다 ( 초기값 0.97ε 으로출하 ). DTPML-SPI Series는디지털통신 (SPI) 으로온도값을출력합니다. 센서온도와대상온도를동시에측정합니다. 레이저포인터를장착하여측정방향을쉽게알수있습니다. Warning: This DTPML contains a class II laser device.(650nm) 특징 응용분야 8:1 모델측정온도구간 : -20 ~ 200 15:1 모델측정온도구간 : -20 ~ 270 동작온도구간 : -20 ~ 70 동작온도 ( 레이저 ) : -10 ~ 40 분해능 : 0.1 DTPML-SPI-81 DS ratio : 8:1 DTPML-SPI-151 DS ratio : 15:1 정확도 : ±2% 입력전압 : 3.3V 통신인터페이스 : SPI 과열방지시스템 산업용온도측정장치 체온측정을통한인체감지 가전기기
Page 2 of 21 Absolute Maximum Ratings Absolute Maximum Rating 값을초과하는조건에서 DTPML을동작시킬경우치명적인손상을 가할수있습니다. Parameter Symbol Conditions min Typ Max Unit Supply Voltage Vcc Measured Versus GND -0.2 4.0 V Storage temperature Tstor -40 85 Operating temperature Top -20 70 Electrical Requirements Parameter Symbol Conditions min Typ Max Unit 공급전압 Vcc Measured versus GND 3.1 3.3 3.5 V 방사율 (Emission Coefficient) ε 0.1 1 Full ambient temp. range, 소비전류 ( 3.3V 기준 ) Typical value, no output load 11.5 12 ma On Laser 37.89 ma SPI Clock 0.1 1 MHz INPUT High Level 3.1 3.6 V INPUT Low Level 0.9 V OUTPUT High Level Vcc-0.3 Vcc V OUTPUT LOW Level Vss Vss+0.3 V Operational Characteristics if not otherwise noted, 25 ambient temperature, 3.3V supply voltage and object with ε =0.97 were applied Parameter Symbol Conditions min Typ Max Unit DS ratio : DTPML-SPI-81 DTPML-SPI-151 8:1 15:1 온도측정범위 : DTPML-SPI-81-20 200 Tobj DTPML-SPI-151-20 270 동작온도 ( 주변온도 ) Tamb -20 70 동작온도 ( 레이저동작 ) -10 40 온도측정시간 Fout 20 msec 정확도 AccT ±2 % Resolution Digital 0.1 Standard Start-UP Time tstart 1 sec Stabilization Time tstab 1 min
Page 3 of 21 Mechanical Dimensions (DTPML-SPI-151) 단위 : mm < TOP View > < SIDE View > < BOTTOM View > 제품사진 (DTPML-SPI-151) < TOP View > < SIDE View > < BOTTOM View >
Page 4 of 21 Mechanical Dimensions (DTPML-SPI-81) 단위 : mm < TOP View > < SIDE View > < BOTTOM View > 제품사진 (DTPML-SPI-81) < TOP View > < SIDE View > < BOTTOM View >
Page 5 of 21 SPI Communication and Timings : Target & Sensor 온도읽기
Page 6 of 21 방사율 READ
Page 7 of 21 방사율 WRITE
Page 8 of 21 레이저 ON 레이저를눈으로바라보지마십시오. 레이저는명령후약 15~20 초간동작합니다. 레이저가꺼지기전에반복명령을주면마지막 Command 을기준으로 15~20 초간동작합니다. 레이저포인터는 1~2m 기준중심에서 10cm 이내로포인트오차가있을수있습니다. 가리키는방향을참고하시기바랍니다.
Page 9 of 21 온도계산방법 영상온도계산 ( 주의 : 결과값에 10 을나눠주면됩니다.) Target 0x6D 0x01 Sensor 0xFA 0x00 * 타겟온도계산 : 상위 Byte(0x01) + 하위 Byte(0x6D) = 0x016D => 365(HEX 10진수 ) 즉 36.5 도입니다. * 센서온도계산 : 상위 Byte(0x00) + 하위 Byte(0xFA) = 0x00FA = >250 (HEX 10진수 ) 즉 25.0 도입니다. 영하온도계산 ( 영하 (0 도미만 ) 일때는 2 의보수값으로전송됩니다.) Target 0xF1 0xFF Sensor 0x9C 0xFF * 타겟온도계산 : 상위 Byte(0xFF) + 하위 Byte(0xF1) = 0xFFF1 0xFFF1 = 1111 1111 1111 0001 (1의보수 + 1 의연산을합니다 ) 0000 0000 0000 1110 (1의보수 ) 0000 0000 0000 1111 = 0x000F (1의보수 +1) 0x000F = 15 즉, -1.5도입니다. * 센서온도계산 : 상위 Byte(0xFF) + 하위 Byte(0x9C) = 0xFF9C => 즉, -10.0도입니다. 방사율 READ DTPML 모듈의방사율설정을읽어옵니다. 수치는방사율ⅹ100 입니다. 예 ) 읽어온값이 hex : 0x61(dec : 97) 이면방사율 0.97를의미합니다. Request : 0xA2, 0x22(or 0x00), 0x22(or 0x00) Response : dummy, 방사율, 0x00 데이터범위 : 1~100 page17. 방사율표참고
Page 10 of 21 방사율 WRITE DTPML 모듈에방사율을저장합니다. 수치는방사율ⅹ100 입니다. 예 ) 방사율 0.97를쓰고자하면 hex: 0x61 (dec:97) 값을통신하면됩니다. Request : 0xA3, 0x22(or 0x00), 방사율 Response : dummy, 0xdd, 0xdd 데이터범위 : 1~100 page17. 방사율표참고 DISTANCE AND SPOT SIZE Spot Size 는아래그림에서와같이측정하고자하는대상의면적보다반드시작아야합니다.
Page 11 of 21 Optical field of view (FOV) The optical chart below indicates the nominal target spot diameter at any given distance from the sensing head and assumes 50% energy. < DTPML-SPI-81 > < DTPML-SPI-151 > Pin Assignment number Name Description Type 1 GND Ground Ground 2 SCE ENABLE Input 3 SCK CLOCK Input 4 SDI Signal Input Input 5 SDO Signal Output Output 6 VCC Supply Voltage 3.3V Supply Connector : (Header : molex 0533980671), ( Female : molex 51021-0600 ) Ordering Guide DTPML - - Laser Protocol DS ratio 측정온도범위 L Laser 장착 485 Modbus 485 RTU 81 8:1-20 ~ 200 SPI SPI 151 15:1-20 ~ 270 예 ) DTPML-SPI-151 - 레이저장착, 15:1 DS ratio, SPI 통신모델을의미합니다.
Page 12 of 21 테스트보드 ( 별도구매 ) - CT-Testboard-Plus 손쉽게측정하여온도값을다른 device(mcu, PC, embedded 등 ) 로전송 (RS-232) 할수있습니다. < CT-Testboard-Plus > 테스트보드에서레이저켜는법 : 온도측정중에 "ID" 버튼을누르면레이저가켜집니다. - 조건1. 연결된측정모듈이 DTPML-SPI series - 조건2. 테스트보드 Protocol 선택메뉴에서 "DTPML-S" 이있는버젼 < DTPML 메뉴화면 > Additional Information manufacturer : Diwell Electronics Co., Ltd. <( 주 ) 디웰전자 > Homepage : www.diwell.com shopping mall : www.diwellshop.com Phone : +82-70-8235-0820 Fax : +82-31-429-0821 Technical support : expoeb2@diwell.com, dsjeong@diwell.com
Page 13 of 21 Appendix - A (Example Code - ATMEGA128L 이용 ) 아래소스코드는 DTPML 모듈과통신을위한참고용소스코드중온도측정부분입니다. 풀코드는아래주소를통해프로젝트다운로드가가능합니다. ( 컴파일환경 : AVRSTUDIO 4.19, gcc 4.3.3, WinAVR-20100110) Download : http://www.diwell.com/base_1/img/download/dtpml-spi-master_atmega128l_8mhz.zip SPI 초기값세팅 <AVR SPI MODE = MODE 3 에해당 > - Clock 주파수최대 1Mhz - Internal SPI Clock(Master Mode) - SCK data transfer edge : Rising Edge - MSB first data transfer - SCK idle status : High 사용하는 MCU 환경에따라코드는달라지므로내용을이해하신후적용하고자하는 MCU에적용하시면됩니다. #include <avr/io.h> #include <stdio.h> #include <avr/interrupt.h> #define CS_HIGH PORTB =0x01; // SCE 1 #define CS_LOW PORTB &=0xFE; // SCE 0 #define TARGET_CMD 0xA0 // 대상온도커맨드 #define SENSOR_CMD 0xA1 // 센서온도커맨드 #define LASER_CMD 0xA4 // 레이저커맨드 #define ON 1 int itarget, isensor; // 부호 2byte 온도저장변수 unsigned char LASER_COMMAND=0; unsigned char dummy;
Page 14 of 21 void SPI_MasterTransmit(char cdata); int SEND_COMMAND(unsigned char ccmd); void DataOutput_UART0(void); ISR(INT0_vect) // INT0 인터럽트루틴 (PORT D.0 스위치누르면진입 ) EIMSK = 0x00; // INT0 인터럽트 Disable LASER_COMMAND = ON; int main(void) Device_Init(); // INT0, SPI 초기화 CS_HIGH; _delay_ms(200); _delay_ms(200); _delay_ms(200); _delay_ms(200); EIFR = 0x01; EIMSK = 0x01; sei(); // CS High Level // 모듈 setup 시간 wait // INT0 인터럽트개별허용 // 전체인터럽트 Enable while(1) itarget = SEND_COMMAND(TARGET_CMD); // 대상온도 Read _delay_10us(); // 10us : 이라인을지우지마세요 isensor = SEND_COMMAND(SENSOR_CMD); // 센서온도 Read _delay_ms(20); // 20ms : 이라인을지우지마세요. //DataOutput_UART0(); if(laser_command == ON) LASER_COMMAND = 0; SEND_COMMAND(0xA4); // 측정중에버튼을눌렀으면 // 레이저 ON 명령
Page 15 of 21 return 0; EIFR = 0x01; EIMSK = 0x01; // 플래그클리어 // INT0 인터럽트 Enable void INT0_Init(void) PORTD = 0x01; DDRD = 0x00; EICRA = 0x02; EIMSK = 0x00; void SPI_MasterInit(void) PORTB = 0xff; DDRB = 0x07; SPCR = 0x5d; SPSR = 0x01; void Device_Init(void) INT0_Init(); SPI_MasterInit(); // 내부풀업 // 하강엣지 // INT0 인터럽트불능 //MISO(PB3): INPUT // MOSI(PB2) : OUTPUT //SCK(PB1) : OUTPUT // PB0( 모듈 SCE 제어 ) : OUTPUT // SPI 초기화 void SPI_MasterTransmit(char cdata) /* Start transmission */ SPDR = cdata; /* Wait for transmission complete */ while(!(spsr & (1<<SPIF)));
Page 16 of 21 int SEND_COMMAND(unsigned char ccmd) unsigned char Low_Byte, High_Byte; CS_LOW; // SCE LOW _delay_10us(); // delay 10us ( 반드시지켜주세요 ) SPI_MasterTransmit(cCMD); dummy = SPDR; // Send 1st Byte // 첫데이터 dummy 처리 _delay_10us(); // delay 10us ( 필수 ) SPI_MasterTransmit(0x00); Low_Byte = SPDR; // Send 2nd Byte 0x22 or 0x00 // 하위바이트저장 _delay_10us(); // delay 10us ( 필수 ) SPI_MasterTransmit(0x00); High_Byte = SPDR; // Send 3rd Byte 0x22 or 0x00 // 상위바이트저장 CS_HIGH; // SCE HIGH return (High_Byte<<8 Low_Byte); // 상위, 하위바이트연산 // ms 는 delay.h 파일참고하거나다운받은프로젝트를참고하세요. void _delay_10us(void) // 8Mhz 클럭에서 10us 딜레이 volatile unsigned char i; for(i=0;i<4;i++) asm volatile(" NOP "); asm volatile(" NOP ");
Page 17 of 21 < 하이퍼터미널을통해출력 > COM 넘버는다를수있습니다. < 통신설정 >
Page 18 of 21 Appendix - B (Example Code - I/O) 하단코드는컨트롤러에서 SPI 레지스터설정이아닌 I/O 포트제어를통해통신하는예제코드입니다. 포트설정 / 포트상태읽는코드는사용하고자하는 MCU에맞게끔수정하셔야합니다.( 現, sonix MCU) I/O 포트전압레벨이 3.3V 인지를꼭확인하세요. SPI.H #define SCK_HIGH #define SCK_LOW #define SDO_HIGH #define SDO_LOW #define EN_HIGH #define EN_LOW FP16=1 FP16=0 FP14=1 FP14=0 FP17=1 FP17=0 long CHECK(unsigned char datum); Main.C #include "SN8F27E65.h" #include "delay.h" #include "SPI.H" Long Target_Value, Sensor_Value; // sonix 컴파일러는 long이 2byte 입니다. 해당하는컴파일러에맞게 2byte변수선언하세요 void main(void) While(1) Target_Value = CHECK(0xa0); // 대상온도 delay_us(10); Sensor_Value = CHECK(0xa1) // 센서온도 delay_ms(20); // LCD View CODE here
Page 19 of 21 SPI.C unsigned char buffer_lo, buffer_hi, p02; //1byte 선언 long CHECK(unsigned char datum) //2 byte return 함수 unsigned char i=0; buffer_lo=0; buffer_hi = 0; EN_LOW; delay_us(10); for(i=0; i<8; i++) if(((0x80 >>i)&datum)==0)sdo_low; else SDO_HIGH; SCK_LOW; delay_us(1); SCK_HIGH; delay_us(1); SDO_LOW; // 0x22 or 0x00 전부가능합니다만코드간결을위해 0x00 사용 delay_us(10); for(i=0; i<8; i++) // Low byte read buffer_lo = buffer_lo <<1; SCK_LOW; delay_us(1); SCK_HIGH; delay_us(1); p02=fp02; // 포트의상태읽는문장 if(p02 == 1)buffer_Lo = buffer_lo 0x01; elsebuffer_lo = buffer_lo&0xfe; SDO_LOW; delay_us(10); for(i=0; i<8; i++) // High byte read buffer_hi = buffer_hi <<1; SCK_LOW; delay_us(1); SCK_HIGH; delay_us(1); p02=fp02; // 포트의상태읽는문장 if(p02 == 1)buffer_Hi = buffer_hi 0x01; elsebuffer_hi = buffer_hi&0xfe; EN_HIGH; return (buffer_hi*256+buffer_lo);
Page 20 of 21 Appendix - C ( 방사율표 ) 방사율이란물체가외부적외선에너지를흡수, 투과및반사하는비율을말하는데, 이론적으로외부에너지를흡수만하고반사하지않는물체를흑체라하여이때의방사율은 "1" 입니다. 하지만, 일반적으로물체의표면상태 ( 광택, 거침, 산화여부등 ) 에따라흡수, 반사하는에너지량이변합니다. 재질에따른방사율값은하단의 " 방사율표 " 를참고하여변경하면됩니다. 단, " 방사율표 " 의값은절대적인값이아니며표면상태와그외복합적인환경요인에따라오차가있을수있으니, 이점참고하십시오. 대상 방사율 대상 방사율 대상 방사율 산화아연 0.1 에나멜 0.9 구리 ( 연마된 ) 0.5 아연도금철 0.3 페인트 0.95 구리 ( 산화된 ) 0.8 주석도금철 0.1 라카 0.9 니켈 ( 순수 ) 0.1 금 ( 연마된 ) 0.1 고무 (smooth) 0.9 니켈 ( 산화된 ) 0.4~0.5 은 ( 연마된 ) 0.1 고무 (Rough) 0.98 니켈크롬 0.7 크롬 ( 연마된 ) 0.1 플라스틱 0.8~0.95 니켈크롬 ( 산화된 ) 0.95 붉은벽돌 0.75~0.9 플라스틱필름 0.5~0.95 직물 0.9 흙 0.92~0.96 주철 ( 연마 ) 0.2 피부 0.98 석면 0.95 Steel 0.6 가죽 0.75~0.8 콘크리트 0.7 산화 Steel 0.9 얼음 0.96~0.98 대리석 0.9 목재 0.8~0.9 모래 0.9 모르타르 0.89~0.91 스테인레스 ( 연마된 ) 0.1 아스팔트 0.9~0.98 석고 0.85 스테인레스 ( 기타 ) 0.2~0.6 유리 0.8~0.9 시멘트 0.96 알루미늄 ( 연마된 ) 0.1 물 0.8~0.9 규토 ( 정제된 ) 0.4 알루미늄 ( 합금 ) 0.1~0.25 종이 0.9 세라믹 0.90~0.94 황동 ( 연마된 ) 0.1 실리콘 0.7 석영 0.9 황동 ( 거친 ) 0.2 주철 ( 부식된 ) 0.95 석탄 0.75 황동 ( 산화된 ) 0.6 Mild Steel 0.3~0.5 Fe( 부식된 ) 0.7~0.85 측정하고자하는대상의재질이코팅이돼있거나반짝이는재질이라면방사율을수정적용해도온도변화가적을수있습니다. 이때에는측정물체표면에무광의락카스프레이를칠하면됩니다.
Page 21 of 21 DTPML Revision History Version Date Description 1.0 2015-10-20 First version is released.