๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ก work work work/BLE8

iOS BLE - CoreBluetooth : APIs https://www.youtube.com/watch?v=YHeCH-OfWY0&list=LL&index=7&t=1356s ์ด ๊ฐ•์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑํ•œ bluetooth ์—ฐ๊ฒฐ ๊ณผ์ •์— ๋”ฐ๋ฅธ iOS coreBluetooth API๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. (1) Device Discovery CBCentralManager : ์Šค์บ๋‹, Advertising Peripherals์™€ ๊ฐ™์€ GAP Central ์ ˆ์ฐจ ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•œ API ์ œ๊ณต (์ฃผ๋ณ€๊ธฐ๊ธฐ ๊ฒ€์ƒ‰, ์—ฐ๊ฒฐ : CentralManager) with CBCentralManagerDelegate (2) Connect CBCentralManager : ํŠน์ • Peripheral๊ณผ ์—ฐ๊ฒฐ์„ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. CBCentralManagerDelegate : ์—ฐ๊ฒฐ.. 2022. 2. 7.
BLE ์ฑ… ์ •๋ฆฌ - 6 : GAP(๊ฒŒ์‹œ์™€ ์—ฐ๊ฒฐ), GATT(์„œ๋น„์Šค์™€ ํŠน์„ฑ) 1. GAP (๊ฒŒ์‹œ์™€ ์—ฐ๊ฒฐ) ๋””๋ฐ”์ด์Šค๊ฐ€ BLE ๋„คํŠธ์›Œํฌ์— ํ•ฉ๋ฅ˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ฑ„ํƒํ•  ์ˆ˜ ์žˆ๋Š” 4๊ฐ€์ง€ ์—ญํ• ์„ ์ง€์ •ํ•œ๋‹ค. (1) Broadcaster : ๋ธŒ๋กœ๋“œ์บ์Šคํ„ฐ ์ •๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ์ „์†ก ์ „์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์ตœ์ ํ™”๋ฅผ ํ•œ๋‹ค. ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒŒ์‹œ ํŒจํ‚ท์„ ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ์ „์†กํ•œ๋‹ค. ์• ๋“œ๋ฒ„ํƒ€์ด์ง• ์ด๋ฒคํŠธ๋ฅผ ์†ก์‹ ํ•œ๋‹ค. transmitter๋ฅผ ๊ฐ–๊ณ ์žˆ์œผ๋ฉฐ, ๋™์‹œ์— receiver๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๋งํฌ ๊ณ„์ธต ์• ๋“œ๋ฒ„ํƒ€์ด์ € ์—ญํ• ์„ ์‚ฌ์šฉํ•œ๋‹ค. (2) Observer : ์˜ต์ €๋ฒ„ ๋ฐฉ์†ก ํ”ผ์–ด๋กœ๋ถ€ํ„ฐ ๊ฒŒ์‹œ ํŒจํ‚ท์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•œ๋‹ค. receiver๋ฅผ ๊ฐ–๊ณ ์žˆ์œผ๋ฉฐ, ๋™์‹œ์— transmitter๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๋งํฌ ๊ณ„์ธต ์Šค์บ๋„ˆ ์—ญํ• ์„ ์‚ฌ์šฉํ•œ๋‹ค. (3) Central : ์ค‘์•™์žฅ์น˜ ํ•ญ์ƒ ์—ฐ๊ฒฐ์˜ ๊ฐœ์‹œ์ž, ๋””๋ฐ”์ด์Šค๊ฐ€ ๋„คํŠธ์›Œํฌ ์ƒ.. 2022. 1. 26.
BLE ์ฑ… ์ •๋ฆฌ - 5 : L2CAP, ATT, SM, GATT, GAP 1. L2CAP : ๋…ผ๋ฆฌ์  ๋งํฌ ์ œ์–ด ๋ฐ ์ ์šฉ ํ”„๋กœํ† ์ฝœ Logical Link Control and Adaption Protocol ๋ธ”๋ฃจํˆฌ์Šค ํ”„๋กœํ† ์ฝœ ์Šคํƒ ์ƒ์—์„œ ํ˜ธ์ŠคํŠธ ๋ถ€๋ถ„์˜ ํ•ต์‹ฌ ๊ณ„์ธต ๊ธฐ๋Šฅ ์†Œํ”„ํŠธ์›จ์–ด์ ์ธ ์ƒ์œ„ ๊ณ„์ธต๊ณผ ํ•˜์œ„ ๋ฌผ๋ฆฌ์ ์ธ ๊ณ„์ธต๊ณผ์˜ ๋ฐ์ดํ„ฐ ํ†ต์‹  ์—ฐ๊ฒฐ ์ง€์› ์ €์ „๋ ฅ ๋ธ”๋ฃจํˆฌ์Šค๋ฅผ ์œ„ํ•ด L2CAP ๊ณ„์ธต์€ - ์†์„ฑ ํ”„๋กœํ† ์ฝœ(ATT) : BLE ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์˜ ๊ธฐ๋ณธ์„ ํ˜•์„ฑ - ๋ณด์•ˆ ๊ด€๋ฆฌ์ž ํ”„๋กœํ† ์ฝœ(SMP) : ํ”ผ์–ด๋“ค ์‚ฌ์ด์—์„œ ๋ณด์•ˆํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” framework ์ œ๊ณต ์ด ๋‘๊ฐ€์ง€ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค. ํŠน์ง• ์—ฐ๊ฒฐ์„ฑ ๋ฐ ๋น„์—ฐ๊ฒฐ์„ฑ ๋ฐ์ดํ„ฐ ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ๋ชจ๋‘ ์ง€์› ๊ฐ€๋Šฅ (BLE์—์„œ๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ๋งŒ ์ง€์›) ๋‹ค์ค‘ํ™”(Multiplexing) ์—ฐ๊ฒฐ ์ง€์› ํ๋ฆ„์ œ์–ด, ์žฌ์ „์†ก ๊ธฐ๋ฐ˜ ์—๋Ÿฌ์ œ์–ด.. 2022. 1. 25.
BLE ์ฑ… ์ •๋ฆฌ - 4 : BD_ADDR, ๊ฒŒ์‹œ์™€ ์Šค์บ๋‹, HCI 1. ๋ธ”๋ฃจํˆฌ์Šค ๋””๋ฐ”์ด์Šค ์–ด๋“œ๋ ˆ์Šค (BD_ADDR) ์ด๋”๋„ท MAC ์–ด๋“œ๋ ˆ์Šค์™€ ์œ ์‚ฌํ•œ ๋ธ”๋ฃจํˆฌ์Šค ๋””๋ฐ”์ด์Šค์˜ ๊ธฐ๋ณธ ์‹๋ณ„์ž (48๋น„ํŠธ, 6byte) ์œ ํ˜• ํผ๋ธ”๋ฆญ ๋””๋ฐ”์ด์Šค ์–ด๋“œ๋ ˆ์Šค: ๊ณ ์ •๋จ, BR/EDR, ๊ณต์žฅ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋œ Address, IEEE ๋“ฑ๋ก ๊ธฐ๊ด€์— ๋“ฑ๋ก, ๋””๋ฐ”์ด์Šค์˜ ์ˆ˜๋ช… ๊ธฐ๊ฐ„๋™์•ˆ ๋ณ€ํ•˜์ง€ ์•Š์Œ ๋žœ๋ค ๋””๋ฐ”์ด์Šค ์–ด๋“œ๋ ˆ์Šค: ๊ณ ์ • or ๋™์  ์ƒ์„ฑ, ์‹ค์šฉ์ ์ธ BLE Usecase๋“ค์ด ๋งŽ๋‹ค 2. ๊ฒŒ์‹œ์™€ ์Šค์บ๋‹ ๊ฒŒ์‹œ ํŒจํ‚ท์˜ ๋‘๊ฐ€์ง€ ์šฉ๋„ ์ „์ฒด ์—ฐ๊ฒฐ ์„ค์ •์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋ฐฉ์†ก ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ด๋“ค์—๊ฒŒ ์—ฐ๊ฒฐ ๊ฐ ๊ฒŒ์‹œ ํŒจํ‚ท์€ ์ตœ๋Œ€ 31๋ฐ”์ดํŠธ์˜ ๊ฒŒ์‹œ ๋ฐ์ดํ„ฐ ํŽ˜์ด๋กœ๋“œ๋ฅผ ๊ธฐ๋ณธ ํ—ค๋”์ •๋ณด์™€ ํ•จ๊ป˜ ์ˆ˜์šฉ ๊ฒŒ์‹œ ํŒจํ‚ท ์œ ํ˜•์€ ์„ธ๊ฐ€์ง€ ๋‹ค๋ฅธ ํŠน์„ฑ์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ (1) ์—ฐ๊ฒฐ์„ฑ (2) ์Šค์บ๋‹ ๊ฐ€๋Šฅ์„ฑ (.. 2022. 1. 24.
BLE ์ฑ… ์ •๋ฆฌ - 3 : ํ”„๋กœํ† ์ฝœ ๊ธฐ์ดˆ ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ ๊ธฐ๋ณธ๊ตฌ์„ฑ์š”์†Œ๋Š” ๊ฐ๊ฐ ์ž‘๋™์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ตœ์ƒ์œ„ ๊ณ„์ธต ๋ชจ๋“ ๊ฒƒ์˜ ๋กœ์ง, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ถ€๋ถ„ ํ˜ธ์ŠคํŠธ GAP, GATT ๋ฐ ๋…ผ๋ฆฌ์  ๋งํฌ ์ œ์–ด ๋ฐ ์ ์šฉ ํ”„๋กœํ† ์ฝœ(L2CAP) ์†์„ฑํ”„๋กœํ† ์ฝœ(ATT), ๋ณด์•ˆ ๊ด€๋ฆฌ์ž(SM) ํ˜ธ์ŠคํŠธ์ธก ํ˜ธ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค(HCI) ๊ณ„์ธต์„ ํฌํ•จ ์ปจํŠธ๋กค๋Ÿฌ ์ปจํŠธ๋กค๋Ÿฌ์ธก HCI, ๋งํฌ๋ ˆ์ด์–ด(LL), ๋ฌผ๋ฆฌ์  ๊ณ„์ธต(PHY) Physical: 2.4 GHz ISM ๋Œ€์—ญ์—์„œ 1 Mbps์˜ ์†๋„๋กœ ํŒจํ‚ท ์†ก์ˆ˜์‹  ์—ญํ•  (์‹ค์ œ Bluetooth Analog Signal๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ํšŒ๋กœ๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Œ) LL (Link Layer): 5๊ฐ€์ง€์˜ RF ์ƒํƒœ ์ œ์–ด (standby, advertising, sca.. 2022. 1. 21.
BLE ์ฑ… ์ •๋ฆฌ - 2 : ํ”„๋กœํ† ์ฝœ, ํ”„๋กœํŒŒ์ผ 1. ํ”„๋กœํ† ์ฝœ vs ํ”„๋กœํŒŒ์ผ ํ”„๋กœํ† ์ฝœ: ๋ฐ์ดํ„ฐ๊ฐ€ ํ”ผ์–ด๊ฐ„์— ํšจ๊ณผ์ ์œผ๋กœ ์ „์†ก๋˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ท ํฌ๋งท, ๋ผ์šฐํŒ…, ๋ฉ€ํ‹ฐ ํ”Œ๋ ‰์‹ฑ, ์ธ์ฝ”๋”ฉ, ๋””์ฝ”๋”ฉ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณ„์ธต ํ”„๋กœํŒŒ์ผ: ๋ชจ๋“  ๋””๋ฐ”์ด์Šค์— ํ•„์š”ํ•œ ์ž‘์—…์˜ ๊ธฐ๋ณธ๋ชจ๋“œ๋‚˜ ํŠน์ •ํ•œ Usecase๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋Šฅ์˜ Vertical slice๋กœ์จ ํ”„๋กœํ† ์ฝœ์ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์ •์˜ 2. ์ผ๋ฐ˜ ํ”„๋กœํŒŒ์ผ ๊ทœ๊ฒฉ์— ์˜ํ•ด ์ •์˜ํ•œ๋‹ค. ์ผ๋ฐ˜ ์•ก์„ธ์Šค ํ”„๋กœํŒŒ์ผ(GAP) : ๋ณธ์งˆ์ ์œผ๋กœ BLE์˜ ์ตœ์ƒ์œ„ ์ œ์–ด๊ณ„์ธต. ๋ชจ๋“  BLE Device๋“ค์—๊ฒŒ ํ•„์ˆ˜, ๋ชจ๋‘ ์ค€์ˆ˜ํ•ด์•ผ ํ•จ. ์ผ๋ฐ˜ ์†์„ฑ ํ”„๋กœํŒŒ์ผ(GATT) : BLE์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์ฒ˜๋ฆฌ, ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์ ˆ์ฐจ ์ •์˜. >> ํ”„๋กœํ† ์ฝœ ์Šคํƒ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ง„์ž…์ง€์ ์œผ๋กœ์จ API๋ฅผ ์œ„ํ•œ ๊ธฐ์ดˆ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. 3. Usecas.. 2022. 1. 20.
LIST