• BLE 디바이스의 통신은 크게 두 단계로 나뉜다.

    • Advertise
    • Connection
  • Advertise

    • 장치의 존재를 알리는 단계
    • 브로드캐스트 방식으로 37, 38, 39 채널을 사용한다.
    • 디바이스는 다음 두 가지 타입으로 나뉜다.
      • Advertiser(=Broadcaster)
        • Non-Connectable Advertising Packet을 주기적으로 보내는 디바이스
      • Observer
        • Non-Connectable Advertising Packet을 받기 위해 주기적으로 Scanning하는 디바이스
    • 사용 의의
      • Advertise 방식은 한 번에 한 개 이상의 디바이스와 통신할 수 있는 방법이다.
      • 주로 디바이스가 자신의 존재를 알리거나 적은 양(31Bytes 이하)의 User 데이터를 보낼 때도 사용된다.
        • 한 번에 보내야 하는 데이터 크기가 작을 경우, 굳이 오버헤드가 큰 Connection 과정을 거쳐서 데이터를 보낼 필요가 없기 때문
      • 전송할 수 있는 데이터 크기 제한을 보완하기 위해 Scan Request, Scan Response을 이용해서 추가적인 데이터를 주고 받을 수 있다.
        • (다음 항목에서 자세히 설명한다)
      • Advertise 방식은 말 그대로 Signal을 일방적으로 뿌리는 것이기 때문에 상대적으로 보안에 취약하다.
  • Connection

    • 연결 후 지속적인 데이터 교환이 이뤄지는 단계
    • 1:1 연결 방식을 사용하며, 0~36 채널을 사용한다.
    • 디바이스는 다음 두 가지 타입으로 나뉜다.
      • Central(Master)
        • 다른 디바이스와 Connection을 맺기 위해 Connectable Advertising Signal을 주기적으로 스캔한다.
        • 연결이 완료되면 Central 디바이스는 timing을 설정하고 주기적인 데이터 교환을 주도한다.
        • timing
          • 두 디바이스가 매번 같은 Channel에서 데이터를 주고 받기 위해 정하는 hopping 규칙
        • hopping
          • 블루투스 디바이스들이 다른 디바이스와의 채널 간섭을 최소화하기 위해 사용하는 기술.
          • 두 블루투스 디바이스가 1초 동안 여러 번 채널을 바꿔가며 서로를 동기화한다.
      • Peripheral(Slave)
        • Peripheral 디바이스는 다른 디바이스와 Connection을 맺기 위해, Connectable Advertising Signal을 주기적으로 송신한다.
        • 이를 감지한 Central 디바이스가 Connection Request를 보내면 요청을 수락한 후 Connecion을 맺는다.
        • Connection을 맺고 나면 Central 디바이스가 지정한 timing에 맞추어 Channel을 같이 hopping을 하면서 주기적으로 데이터를 교환한다.
    • 사용 의의
      • 양방향으로 데이터를 주고받거나, Advertising Packet으로만 전달하기에는 많은 양의 데이터를 주고 받아야 하는 경우, Connection Mode를 사용 한다.
      • Advertise처럼 일대다 방식이 아닌, 일대일 방식으로 디바이스 간에 데이터 교환이 일어난다.
      • 디바이스간에 Channel hopping 규칙을 정해놓고 통신하기 때문에 Advertise보다 안전하다.
  • 디바이스 연결 프로세스

    Connect.jpg