Note : 본 문서는 인터넷/책 등에서 중요 내용들을 발췌하여 정리한 사항입니다.

Bluetooth Low Energy (BLE)

기존 legacy bluetooth와 4.0에 소개된 저전력 블루투스(BLE)는 상위 프로토콜 계층인 on-air protocol과 application이 다르고 호환되지 않는다. 두 개의 연속적인 이벤트 사이 간격은 7.5ms ~ 4 sec에 다라 전송 data 량이 달라진다.
작동범위는 -30~0dBm에서 구성되지만, 배터리 수명의 절약을 위해 2~5m로 근접 접근 고려가 필요하다.

 

1. Advertise mode (Broadcast mode)

Advertise (Broadcaster) 와 Observer(scanner)로 역할을 구분하며, 31Bytes이아의 데이터를 방송 한다.
Scan response라고 불리는 옵션 사항도 지원한다. 총 62바이트의 두번째 프레임을 요청할 수 있다.
Peripheral device는 정해진 advertising interval time이 있다.

 

2. Connection mode

다른 디바이스가 스니핑을 하지 않는 한, 연결은 본질적으로 비공개임
Central(Master) 디바이스는 타이밍을 관리하고 주기적인 데이터 교환을 시작한다. 연결이 되면 Central device는 두 디바이스가 같은 channel에서 데이터를 주고 받도록 hopping 규칙을 정한다. Peripheral(slave) 디바이스는 중앙 장치의 타이밍과 함께 정기적으로 데이터를 교환한다.

한 디바이스는 중앙 장치과 주변 장치로 동시에 작동할 수 있다. 중앙 장치는 다수의 주변 장치에, 주변 장치는 다수의 중앙 장치에 연결할 수 있다. (4.0이전에는 연결 갯수의 제한이 있었음)

Advertise mode와 비교시 추가적인 프로토콜 계층들과 함께 세분화된 제어 데이터를 구성할 수 있다. GATT 일반 속성 프로파일을 사용한다.

 

Protocol / Profile / Service

프로토콜 : 데이터를 효과적으로 전송하기 위한 패킷 포멧, 라우팅, 멀티플렉싱, 인코딩, 디코딩
프로파일 : 일반적인 기능이나 특정한 경우의 목표를 달성하기 위해 어떻게 사용해야 하는지 정의
서비스 ? 5.2?

  • Generic profile
    • Generic Access Profile : role, process, broadcast, connection, connection management등의 낮은 레벨의 무선 프로토콜 사용 모델
    • Generic Attribute Profile : 데이터의 읽기,쓰기, 밀어 넣기를 허용하기 위한 기본 데이터 모델과 절차를 정의
  • Usecase specific profiles : GATT기반으로 한 특정 프로파일

Protocol Stack


Physical Layer

2.4Ghz ISM band, 37, 38, 39 channel is for broadcasting and connection setup.

https://www.argenox.com/library/bluetooth-low-energy/ble-advertising-primer/

Using 'frequency hopping spraed spectrum) and GFSK
아래는 FHSS의 예이다.

https://microchipdeveloper.com/wireless:ble-link-layer-channel

Link Layer

규격에 정의된 시간 요구 사항을 모두 준수해야 한다. 이 계층의 복잡성과 실시간 요구사항을 숨기기 위해 표준 인터페이스를 이용하여 프로토콜 스택의 상위 계층들로 부터 분리 시킨다. 계산 비용이 많이 들고 쉽게 자동화 할 수 있어서, 일반적으로 컨트롤러의 하드웨어로 구현된다.
e.g) Preamble, access address, framing, CRC generation/checking, Data bit randomization(Whitening), random number generation, AES Ciphering

Master 역할을 위해서는 더 많은 자원이 필요하기 때문에 Slave와 비대칭 구조를 가지며, 아래와 같은 Role이 정의되고 이에 따른 state를 가진다.
Roles : Advertiser, Scanner (passive / active with scan_request and response ), Master, Slave
connection 전에는 advertiser와 scanner의 역할, 연결 이후에는 Master와 Slave로 분류된다.

Scanning

아래는 Passive scanning의 예제이다. Scanner에서 Advertiser에 비해 보다 많은 양의 전류를 소비하게 된다.

https://microchipdeveloper.com/wireless:ble-link-layer-discovery

아래는 Active scanning의 예제이다. 추가적인 패킷을 보내게 할 수는 있지만 사용자 데이터를 보내는 것은 아니다.

Advertising data는 연결성, 스캐닝 가능성, 방향성으로 분류된다.

https://binux.tistory.com/26

Connection

교환하는 메세지들을 연결 이벤트라고 부른다. Connection request packet에는 호핑 순서를 결정하는 frequency hop increment를 포함한다. 마스트에서 전달되는 연결 매개 변수에는 연결 간격, 슬레이브 대기 시간, 연결 감시 시간 제한이 있다.

Connection events : https://microchipdeveloper.com/wireless:ble-link-layer-connections

 

State

https://dev.ti.com/tirex/content/simplelink_cc2640r2_sdk_1_40_00_45/

Connection Flow

Peripheral 디바이스에서 advertising동작을 수행함으로 시작. ADV이후에 RX시간이 있어, advertising 주기와 scanning주기가 겹치는 시점에 central device의 CREQ(connection request)를 수신하게 된다. 이때 부터 무선연결의 시작

무선 연결이 시작되면, 데이터 교환을 위한 파라메터를 주고 받는다. 이때 advertising 채널을 제외한 37개의 채널을 이용하여 FHSS 방식으로 통신한다. 해당 파라메터들은 central이 결정 권한이 있지만, pheripheral device도 다음 파라메터들을 제안한다.
minium connection interval, maximum connection interval, slave latency, connection supervision timeout

https://microchipdeveloper.com/wireless:ble-link-layer-connections
https://binux.tistory.com/26


- l2cap
> 상위 계층을 위한 프로토콜 멀티플렉서의 역할, 이를 BLE 패킷으로 캡슐화/de캡슐화. 어플리케이션간 데이터 교환을 위한 기본을 형성하는 속성 프로토콜 (ATT)과 피어들 사이의 보안 키 생성및 배포를 위한 프레임워크인 보안 관리자 프로토콜 (SMP)을 라우팅

>상위 패킷들을 27바이트 단위로 fragmentatation 및 recombination. l2cap 패킷해더 4 +23bytes
4.2이후에 사용자 정의 채널을 만들어 복잡성이 낮은 데이터 전송이 가능. 낮은 지연 시간과 대용량 데이터 채널을 설정할 수 있다.

- 속성 프로토콜
client/server stateless protocol
순서에 관해서는 매우 엄격해서 수신된 응답이 없다면 처리될때까지 추가 요청을 전송할 수 없다
> Error handling / response
>Server configuration
>> Exchange MTU Request/Response
> Find information
>> Find information Request/Response
>> Find by TypeValue
> Read Operations
>> Ready by Type Request/Response
>> Read Request/Response
>> Read Blob Request/Response
>> Read Multiple Request/Response
>> Read by Group Type Requet/Response
> Write operation
>> Write Request/REsponse
>> Write command
>> Signed Write command
> Queued Writes : 하나의 단일 패킷보다 더 긴 속성값
>> Prepare Write Request/Response
>> ExecuteWrite Request/Response
> Server Initiated
>> Handle Value Indication/Confirmation
>> Handle Value Notification

보안 관리자 ( SM )
피어가 암호화된 링크를 통해 안정하게 통신하고, 원격 장치의 아이덴티티를 신뢰하고, 특정 디바이스를 추적하는 악성 피어를 피할 필요가 있는 경우 공용 플루투스 어드레스를 숨기게 해준다.
Role : Initiator <> Responder
1. Pairing : 임시 공통 보안 암호 키가 생성. 이 키는 저장되지 않음
2. Bonding : 영구 보안 키의 생성과 교환에 뒤이은 페어링 sequence.
3. 암호화 재 설정 : 재 페어링이나 본딩 없이 후속 연결을 재설정 하기 위함
[그림]

페어링 알고리즘
단기키(STK)라 불리는 임시 암호화 키 생성을 위함
- Just Works 단순히 일반 택스트로 교환. MITM에 대한 보안은 제공되지 않음
- Passkey Display : 6자리의 패크 키를 표시하고 입력
- OOB : BLE 이외의 NFC와 같은 다른 무설 기술 방식으로 전송

암호화 / 개인 정보 보호 / 서명

- 암호화 정보(LTK)에 의해 마스터 식별(EDIV, Rand)
128비트의 암호화 키
- IRK (Identity Resolving Key)와 ID address 정보
IRS는 개인정보 보호기능을 구현하기 위함. 디바이스를 보호하는 분석 가능한 주소를 생성하고 분해할 수 있다. Public혹은 static임의의 주소가 IRK에 포함된
- CSRK (Connection Signing Resolving Key)
비대칭적이고 단방향인 키. 마스터와 슬레이브를 전환하고자 하는 경우, 각각은 키 유형에 대한 키 모음을 배포해야 한다. (슬레이스에서 마스터로 3개, 마스터에서 슬레이브로 3개)를 위해 negotiation해야 한다.

일반 속성 프로파일 (GATT)
ATT에서 동일한 클라이언트/서버 아키텍처를 유지하지만 데이터는 하나 혹은 그 이상의 특성(attribute)로 구성된 Service에 캡슐화 되는 것을 의미한다. 각 특성은 Metadata와 함께 하는 사용자 데이터 조각의 연합체로 생각 가능

일반 억세스 프로파일 (GAP)
디바이스 검색, 연결, 보안 구축, 상호 운용성을 보장. 다른 vendor간 데이터 교환을 허용하기 위해 어떤 제어 절차를 수행할지 정의
- 역할, 상호작용
- 운영 모드 및 전환
- 운영 절차 및 보안 모드
- 비프로토콜(nonprotocol) 데이터를 위한 추가적인 데이터 유형

[참고]
https://binux.tistory.com/26
O'Reilly : 저전력 블루투스(BLE)
https://enidanny.github.io/ble/ble-protocol-stack/

반응형

'Communication > WiFi' 카테고리의 다른 글

About USB 3.0  (0) 2021.05.26
WIFI 6 Ghz Band for 802.11ax  (0) 2021.05.25

간단히 USB 3.0에 대해서 알아보는 시간을 갖겠습니다.

 

https://www.sony.com/electronics/support/articles/00024571 

소니에서 간단히 정리를 해주신 자료로 속도를 확인해 보도록 하죠.

이글에서 관심 있게 보고 싶은 것은 Hi-speed와 SuperSpeed 입니다.

  • USB 1.0/Low-Speed: 1.5 Megabits per second (Mbps)
  • USB 1.1/Full-Speed: 12 Mbps
  • USB 2.0/Hi-Speed: 480 Mbps
  • USB 3.0/SuperSpeed: 5 Gbps
  • USB 3.1/SuperSpeed: 10 Gbps

 

https://www.techdesignforums.com/practice/technique/usb-3-0-physical-layer/
위 싸이트에서 시놉시스에서 찍어둔 USB파형을 살펴보도록 하죠.

USB 2.0 파형을 오실로스코프로 아래와 같이 잔상을 남겨서 찍어보는 것을 Eye-diagram이라고 부릅니다. 눈처럼 생겼서 그런데 가운데 공간이 얼마나 여유있게 비어 있는지, 파란색 선이 균일하게 모여 있는지로 신호의 품질을 알 수 있습니다. USB 3.0의 경우 파형이 더 복잡하고 아름답게 나오는 군요.

USB 관련 디버깅이 궁금하다면 아래 문서를 참조해도 좋을듯합니다.

https://download.tek.com/document/55W_23452_3_MR_Letter.pdf

 

https://m.blog.naver.com/kangyh5/222062643612

USB 2.0은 선이 아래와 같습니다.  VCC/GRND/D+/D-

https://blog.naver.com/specialist0/221036953055

D+와 D-의 differential 신호로 0/1을 구분하게 됩니다.

각 신호의 의미는 아래의 예제처럼 확인할 수 있습니다.

 

USB 3.0은 선이 아래와 같습니다. 기존의 USB D+와 D- 핀은 하위 호환성을 위해 필요합니다.
스펙상 USB 2.0핀을 체크하는 경우가 있습니다.

USB3.0의 경우(하단 그림) 전 이중 통신 방식을 사용하기 때문에 USB2.0과는 다르게 버스트(상단그림)가 아닌 연속된 신호로 측정이 됩니다.

아래는 USB spec에 정의되어 있는 link training flow에 대한 status chart입니다.

대부분의 상태는 USB host에 의해 변화가 일어나게 됩니다.

https://blog.naver.com/gboarder/90111861771

 

USB3.0의 Max speed인 5GBps로 동작을 하게 되는 경우 2.4~2.5Ghz 무선 대역에 간섭 신호를 발생합니다.

이러한 desence를 보상하기 위해서 3.0라인들에 차폐를 한다거나 산업 표준이 아닌 2.5Gbps등의 속도를 사용하는 별도의 방법들이 필요합니다.

 

https://www.intel.com/content/www/us/en/products/docs/io/universal-serial-bus/usb3-frequency-interference-paper.html

https://patents.justia.com/patent/10275387

반응형

'Communication > WiFi' 카테고리의 다른 글

BLE | Basic simple summary  (0) 2022.04.01
WIFI 6 Ghz Band for 802.11ax  (0) 2021.05.25

간단한 WIFI 역사

  • 6Ghz는 802.11ax 하위 스펙으로 HE operation만을 사용 가능
  • PSE (preferred scanning channel)의 채널 셋으로 좀더 빠른 passive scanning을 가능하게 함
    • 1200Mhz에 59개의 새로운 채널들이 추가됨
    • 한 채널당 일반적으로 dwell time이 100ms임, 그래서 최대 6초 정도 시간이 걸림
    • PSE는 80Mhz 간격으로 15개의 20Mhz 채널들의 집합을 AP에서 primary channel들로 사용함
  • 불필요한 management traffic을 줄임
    • 2.4Ghz나 5Ghz AP를 찾게되면, AP의 6Ghz band로 probe request없이 이동

시작 주파수는 5950Mhz로 각 edge영역에 25Mhz guard band를 두었음

 

본 글은 아래 링크 내용의 간단 정리임

https://www.litepoint.com/ko/blog/wi-fi-6e-standard-and-channels/

반응형

'Communication > WiFi' 카테고리의 다른 글

BLE | Basic simple summary  (0) 2022.04.01
About USB 3.0  (0) 2021.05.26

+ Recent posts