Bluetooth 경희대학교 컴퓨터공학과 조 진 성.

Slides:



Advertisements
Similar presentations
한국기술교육대학교 Ubiquitous Networks – 4 ( 보조자료 ) - WLAN, Bluetooth, UWB- Laboratory of Intelligent Networks Youn-Hee Han.
Advertisements

설계사를 위한 Mobile 영업지원 System 설계사를 위한 Mobile 영업 지원 System 설계사를 위한 Mobile 영업 지원 System 1 Agenda Ⅰ. Mobile Project 추진 목적 Ⅱ. Mobile 환경 분석 Ⅲ.
Dept. Computer Engineering DBLAB 정보처리개론 담당 교수 : 김정석 2009 년도 1 학기.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
이동통신 표준화 동향과 비젼 2008년 11월 수원대학교 정보통신 공학과 양윤기 1 참고문헌
WHAT IS ANT ? (TI CC2570, CC2571) Jae-hoon Woo.
Ubiquitous Networks WLAN, Bluetooth, UWB-
WAP, Stinger, Bluetooth 순천향 대학원 전산학과 1학기 정재헌.
소프트웨어와 운영체제.
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
제 1장 C 언어의 소개.
15 장 무선랜 15.1 IEEE 블루투스 15.3 요약.
Understanding of Socket and File I/O
Bluetooth Applications - 국내 Bluetooth기술 활성를 위한 -
BLUE TOOTH - 근거리 무선통신의 혁신 기술인 블루투스에 대하여…
2013 스마트 컨트롤러 중간 프로젝트 김성엽 진종영 조유진
개발 환경 개발 환경 개요 PXA270과 타겟 시스템 툴체인 환경 구축 JTAG 유틸리티 미니컴 Make 유틸리티
BLUE TOOTH 인터넷미디어공학부 배지태.
사업계획서.
제어기술 소개 목표 : 제어기의 종류, 제어 방식 등을 살펴본다. 주요내용 제어기의 종류 제어방식 : 시퀀스, 피드백, 등.
Department of Computer Engineering
10장 주변장치 (PIO) Slide 1 (of 28).
인공지능실험실 석사 2학기 김승겸 TCP/IP Socket Programming… 제 10장 멀티태스킹 기반의 서버구현 인공지능실험실 석사 2학기 김승겸
Signal & Inter-Process Communication
FUSING.
디바이스 드라이버 기초 디바이스 드라이버의 개요 파일 연산 디바이스 드라이버 등록 디바이스 드라이버 구성
디바이스 드라이버 개요 가상 디바이스드라이버 실습
Department of Computer Engineering
임베디드 프로그래밍 Lecture #
PXA255-FPGA 장비 개요 및 실습 Lecture #9.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
PXA255-FPGA 장비 계요 및 실습 Lecture #9.
General Topic Seminar Joo-Young Baek
6장 무선과 이동 네트워크.
무선 네트워크 기술 (Wireless Networks) 과 목 : 컴퓨터 네트워크 학 반 : E12반 조 : 6조
제  3 장  Lex 사용하기.
컴퓨터 구조.
FND (Flexible Numeric Display)
Department of Computer Engineering
15장 무선 LAN (Wireless LANs)
Department of Computer Engineering
Step Motor Device Driver
개발 환경.
Term Project Team Member
Chapter 12. 직렬 통신과 무선 프로토콜.
6장 무선과 이동 네트워크.
Department of Computer Engineering
Mobile braille system for the blind
제 3 장 상수와 변수
-제어문, 함수, 클래스- IS lab. 김건영 Python -제어문, 함수, 클래스- IS lab. 김건영
제 11 장 전처리기.
adopted from KNK C Programming : A Modern Approach
문자 디바이스 드라이버 임베디드 시스템.
Signal & Inter-Process Communication
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
CGI (Common Gateway Interface)
주제 : 블루투스 팀원 : 최용구, 안지원, 이준엽, 박우흠
네트워크 프로그래밍의 이해 School of Electronics and Information.
씨엔아이는 왜 무선데이터 통신사업에 특화했나?
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Stepper Motor 디바이스 드라이버
U N I X 창원대학교 전자계산학과 김병찬.
Operating System Multiple Access Chatting Program using Multithread
Ubiquitous Networks RFID & USN -
-Part2- 제1장 1차원 배열이란 무엇인가.
Department of Computer Engineering
3. LAN의 주소지정과 프레임 (3장. LAN: Local Area Network)
Signal & Inter-Process Communication
C.
어서와 C언어는 처음이지 제22장.
Presentation transcript:

Bluetooth 경희대학교 컴퓨터공학과 조 진 성

Bluetooth 유래 Bluetooth 이름의 유래 10세기 덴마크와 노르웨이를 통일한 바이킹 지도자 Harald Blaatand의 별명 말 그대로 파란 이빨이란 의미 다른 통신 장치 기기들간의 연결을 통일하자는 의미로 Project명으로 사용 서로 다른 기기들을 선이 없이 연결하겠다는 뜻과 경쟁 관계에 있는 통신 표준을 제치고 세계시장을 장악하겠다는 뜻이 담김 Ericsson Mobile Communication의 사내 프로젝트로 시작,1994

Bluetooth 개념 Bluetooth SIG (Special Interest Group) Members Promoters : Ericsson, Nokia, IBM, Toshiba, Intel, Microsoft, Motorola , 3Com, Lucent Technologies Associate Adopter Website : www.bluetooth.com , www.bluetooth.org

Bluetooth Concept

Data/Voice Access Points Personal Ad-hoc Networks Bluetooth Concept Cable Replacement Data/Voice Access Points Personal Ad-hoc Networks

Bluetooth 특징 특징 스펙 79 Channel ,1MHz/CH 사용 범위 : 10~100m 저렴한 비용, 낮은 전력 소모, 작은 범위 Low Cost : $5 per Chip Low Power : 0.3~30mA (휴대용 기기에 적합) Short Range : 10m~100m 네트워크의 자유도, 개인성 (PAN), 다른 기종과의 접속, 글로벌성 스펙 2.4GHz ISM (Industrial Scientific Medical) Band 79 Channel ,1MHz/CH 사용 범위 : 10~100m 최대 전송 속도 : 1Mbps

Bluetooth 적용 범위 적용 범위 핸드폰, PDA, 노트북과 같은 정보기기들간의 양방향 근거리 통신을 위한 기술로 SIG (Special Interest Group) 에서 개발한 무선 홈 네트워크 기술, 표준 및 제품을 총칭한다. 휴대폰 : 무선헤드셋, 인터넷 접속, 인터콤/무선전화/휴대폰의 복합기능 폰 노트북 : 휴대폰을 통한 인터넷 접속 자동차, 컴퓨터 주변기기, 가전제품 등에 적용

Bluetooth 코어 규격

Bluetooth 무선접속형태 단말기 : 휴대전화, PC (노트북 PC), PC주변기기, PDA, 헤드폰 스테레오, AV기기, 디지털카메라, 카 네비게이터, 레지스터, 무선 LAN (단말측) 등 고정기기 : 고정 전화회선, 무선 LAN (고정회선), 오피스 네트워크 등 인프라 측의 설비

Bluetooth 네트워크 구성 무선 접속 형태 피코넷 (Piconet) 스캐터넷 (Scatternet) 1대의 Master 주위 약 10m 이내의 거리에 최대 7대까지 Slave를 접속 스캐터넷 (Scatternet) 피코넷을 연결하여 구성하는 네트워크 100m 범위 내에서 구현 가능 이론상 피코넷을 100개 이상 접속한 스캐터넷 구축 가능

유사 기술 비교

Pxa255 Pro Bluetooth Module Product Name : BlueSEM-CII Bluetooth V1.1 Module New Product ID : BTxZ50x2xx (Old ID :BTM1C2NR50, BTMZ5012x0 &BTMZ5012x1) Product ID Definition Digit 1~2 : Product's Abbreviation (BT: Bluetooth) Digit 3 : Interface/Application (A: USB Interface) (B: RFCOMM Interface) (E: UART Interface, 115.2k) (x: Undecided Code) Digit 4~6 : Module Size ( Z50 : 0.5cc ) Digit 7 : Hardware Revision (Starting from 0 ; x: Undecided Code) Digit 8 : Power Class ( 2 : Class2 ) Digit 9 : Customer Code (x: Undecided Code) Digit 10 : Firmware Revision (x: Undecided Code)

Bluetooth Block Diagram

Bluetooth Physical Dimension

Bluetooth Pin Description

Bluetooth Pin Description

Bluetooth Test Application PXA-255 Bluetooth 사용 준비 점퍼 스위치 : 7번 스위치 On Bluetooth는 ttyS1으로 통신 Ramdisk에서 ttys2 이외 것들은 사용되지 않도록 수정

Bluetooth Test Application #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <termios.h> // 시리얼 통신 프로그램 tcgetattr(), tcsetattr() #include <stdio.h> #include <strings.h> #include <signal.h> #define BAUDRATE B115200 //속도 제어 #define MODEMDEVICE "/dev/ttyS1" //ttys!으로 통신 #define _POSIX_SOURCE 1 #define FALSE 0 volatile int STOP=FALSE;

Bluetooth Test Application int main() { int test = 0; int c, res; struct termios oldtio,newtio; //termids 구조체 설정 pid_t pid; int fdttyS1; char my_nick[9]; char other_nick[9]; char sendtemp[255]; char sendbuf[255]; char receivebuf[255]; char ch; int nicksize,sendsize,i;

Bluetooth Test Application fdttyS1 = open(MODEMDEVICE, O_RDWR | O_NOCTTY );// 읽기, 쓰기 모드로 모뎀장치를 연다 if (fdttyS1 <0) {perror(MODEMDEVICE); exit(-1); } tcgetattr(fdttyS1,&oldtio); //guswo wkdclfmf djesmsek , termios 구조체 초기화, 기존 세팅 모드 저장 bzero(&newtio, sizeof(newtio));//새로운 포트를 위한 구조체 clear newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD; //사이즈 조정, 전송속도, 8bit문자, local connetction(모뎀제어하지 않음), 문자수신 가능 newtio.c_iflag = IGNPAR | ICRNL; /* IGNPAR : Parity 에러가 있는 문자 바이트를 무시한다. ICRNL : CR 문자를 NL 문자로 변환 처리한다. (이 설정을 안하면 다른 컴퓨터는 CR 문자를 한 줄의 종료문자로 인식하지 않을 수 있다.) otherwise make device raw (no other input processing) */ newtio.c_oflag = 0; newtio.c_lflag = ICANON; ICANON : canonical 입력을 가능하게 한다. disable all echo functionality, and don't send signals to calling program

Bluetooth Test Application newtio.c_cc[VINTR] = 0; //ctrl-c newtio.c_cc[VQUIT] = 0; //ctrl-/ newtio.c_cc[VERASE] = 0; //del newtio.c_cc[VKILL] = 0; //@ newtio.c_cc[VEOF] = 4; //ctrl-d newtio.c_cc[VTIME] = 0; //time 시간 설정 -> inter-character timer unused newtio.c_cc[VMIN] = 1; //read시 최소한의 문자 갯수, blocking read until 1 character arrives newtio.c_cc[VSWTC] = 0; //'\0' newtio.c_cc[VSTART] = 0; //ctrl-q newtio.c_cc[VSTOP] = 0; //ctrl-s newtio.c_cc[VSUSP] = 0; //ctrl-z newtio.c_cc[VEOL] = 0; //'\0' newtio.c_cc[VREPRINT] = 0; //ctrl-r newtio.c_cc[VDISCARD] = 0; //ctrl-u newtio.c_cc[VWERASE] = 0; //ctrl-w newtio.c_cc[VLNEXT] = 0; //ctrl-v newtio.c_cc[VEOL2] = 0; //'\0' /* 이제 modem 라인을 초기화하고 포트 세팅을 마친다. */ tcflush(fdttyS1, TCIFLUSH); tcsetattr(fdttyS1,TCSANOW,&newtio);

Bluetooth Test Application printf("input your nickname(length<=8):"); scanf("%8s",&my_nick); nicksize=strlen(my_nick); for(i=0;i<nicksize;i++) sendbuf[i]=my_nick[i]; //닉사이즈 만큼 my_nick의 내용을 버퍼에 저장 sendbuf[nicksize++]='`'; //버퍼에 추가 내용 기입 sendbuf[nicksize++]='s'; sendbuf[nicksize++]='a'; sendbuf[nicksize++]='y'; sendbuf[nicksize++]=':'; sendsize=0; char recv_ID[9]; char allo_ID[9]; //broadcast로 전송함으로 모든 bluetooth메세지를 받으나 그 중 원하는 nickname에게서 온 메시지만 화면에 출력한다 printf("Input nickname to communicate(length<=8):"); scanf("%8s",&allo_ID); printf("Input 'q' to quit\n");

Bluetooth Test Application if((pid=fork())<0){//child process생성 printf("error!!"); return -1; } if(pid>0){//parent process //terminal에서 data를 read하여 화면에 출력 while(ch!='q'){ res = read(fdttyS1,receivebuf,255); //ttyS1에서 읽어옴. for(i = 0; i < 9; i++){ if(receivebuf[i] != '`') recv_ID[i] = receivebuf[i]; else break; if(!strcmp(allo_ID, recv_ID)){//설정한 nickname과 같은지 비교 후 출력 if(res>0) printf("%s\n",receivebuf); ch=receivebuf[nicksize]; kill(pid, SIGQUIT);

Bluetooth Test Application else{//child process //입력받은 data를 terminal에 write gets(sendtemp); while(ch!='q'){ printf("=>"); sendsize=strlen(sendtemp); if(sendsize>0){ for(i=nicksize;i<nicksize+sendsize;i++) sendbuf[i]=sendtemp[i-nicksize]; sendbuf[sendsize+nicksize]='\0'; sendbuf[sendsize+nicksize+1]='\n'; test = write(fdttyS1,sendbuf,nicksize+2+sendsize); if(test == 0) printf("write error\n"); printf("%s\n",sendbuf); ch=sendtemp[0]; } kill(pid, SIGQUIT); tcsetattr(fdttyS1,TCSANOW,&oldtio); return 0;

Bluetooth 실행 화면