Getting started with Bluetooth Low Energy - 2.2. 링크 계층

목록

Link Layer

링크 계층

The Link Layer is the part that directly interfaces with the PHY, and it is usually implemented as a combination of custom hardware and software.

링크 계층은 PHY와 직접 인터페이스하는 부분으로, 일반적으로 맞춤형 하드웨어와 소프트웨어의 조합으로 구현됩니다.

It is also the only hard real time constrained layer of the whole protocol stack, since it is responsible for complying with all of the timing requirements defined by the specification.

이는 사양에 정의된 모든 타이밍 요구 사항을 준수해야 하기 때문에 전체 프로토콜 스택에서 유일하게 실시간으로 제한된 계층이기도 합니다.

It is therefore usually kept isolated from the higher layers of the protocol stack by means of a standard interface that hides the complexity and real-time requirements from the rest of the layers (see “Host Controller Interface (HCI)” on page 24).

따라서 일반적으로 나머지 계층의 복잡성과 실시간 요구 사항을 숨기는 표준 인터페이스를 통해 프로토콜 스택의 상위 계층에서 격리됩니다 (24페이지의 "호스트 컨트롤러 인터페이스 (HCI)" 참조).

Computationally expensive, easily automated functionality is typically implemented in hardware by silicon vendors to avoid overloading the central processing unit that runs all of the software layers in the stack.

계산적으로 비용이 많이 들고 쉽게 자동화될 수 있는 기능은 일반적으로 실리콘 공급업체가 하드웨어로 구현하여 스택의 모든 소프트웨어 계층을 실행하는 중앙 처리 장치에 과부하가 걸리는 것을 방지합니다.

This functionality usually includes:

이 기능에는 일반적으로 다음이 포함됩니다:

Preamble, Access Address, and air protocol framing

프리앰블, 액세스 주소 및 무선 프로토콜 프레이밍

CRC generation and verification

CRC 생성 및 검증

Data whitening

데이터 화이트닝

Random number generation

난수 생성

AES encryption

AES 암호화

The software half of the Link Layer manages the link state of the radio, which is how the device connects to other devices.

링크 계층의 소프트웨어 부분은 장치가 다른 장치에 연결되는 방식인 라디오의 링크 상태를 관리합니다.

A BLE device can be a master, a slave, or both, depending on the use case and requirements.

BLE 장치는 사용 사례 및 요구 사항에 따라 마스터, 슬레이브 또는 둘 다일 수 있습니다.

Devices that initiate connections will be masters and devices that advertise their availability and accept connections will be slaves.

연결을 시작하는 장치는 마스터가 되고 가용성을 알리고 연결을 수락하는 장치는 슬레이브가 됩니다.

A master can connect to multiple slaves and a slave can be connected to multiple masters.

마스터는 키보드의 슬레이브에 연결할 수 있고, 슬레이브는 키보드의 마스터에 연결될 수 있습니다.

Typically, devices such as smartphones or tablets tend to act as a master, while smaller, simpler, and memory-constrained devices such as standalone sensors usually adopt the slave role.

일반적으로 스마트폰이나 태블릿과 같은 장치는 마스터 역할을 하는 경향이 있는 반면, 독립형 센서와 같이 더 작고 단순하며 메모리가 제한된 장치는 일반적으로 슬레이브 역할을 채택합니다.

Bluetooth Low Energy has an inherent asymmetry in its lower layers between master and slave devices, because it requires more resources to act as a master.

Bluetooth Low Energy는 마스터 장치와 슬레이브 장치 사이의 하위 계층에 고유한 비대칭성을 가지고 있습니다. 마스터 역할을 하려면 더 많은 리소스가 필요하기 때문입니다.

This asymmetry is similar to USB, in which USB hosts require more resources than USB devices.

이러한 비대칭은 USB와 비슷한데, USB 호스트는 USB 장치보다 더 많은 리소스를 필요로 합니다.

This type of architectural asymmetry allows low-cost peripherals running on cheap microcontrollers and radios, while the majority of the low-level protocol complexity occurs on devices with more resources, such as smartphones and tablets.

이러한 유형의 구조적 비대칭성은 저렴한 마이크로컨트롤러와 무선 장치에서 작동하는 저렴한 주변 장치를 허용하는 반면, 대부분의 저수준 프로토콜 복잡성은 스마트폰과 태블릿과 같이 리소스가 더 많은 장치에서 발생합니다.

The Link Layer defines the following roles:

링크 계층은 다음 역할을 정의합니다:

A device sending advertising packets.

광고 패킷을 보내는 장치입니다.

A device scanning for advertising packets.

광고 패킷을 검색하는 장치입니다.

A device that initiates a connection and manages it later.

연결을 시작하고 나중에 관리하는 장치입니다.

A device that accepts a connection request and follows the master’s timing.

연결 요청을 받아들이고 마스터의 타이밍을 따르는 장치입니다.

These roles can be logically grouped into two pairs: advertiser and scanner (when not in an active connection) and master and slave (when in a connection).

이러한 역할은 광고주와 스캐너 (활성 연결에 있지 않은 경우), 마스터와 슬레이브 (연결에 있는 경우)의 두 쌍으로 논리적으로 그룹화될 수 있습니다.

The fundamental identifier of a Bluetooth device, similar to an Ethernet Media Access Control (MAC) address, is the Bluetooth device address.

이더넷 MAC (미디어 액세스 제어) 주소와 유사한 Bluetooth 장치의 기본 식별자는 Bluetooth 장치 주소입니다.

This 48-bit (6-byte) number uniquely identifies a device among peers.

이 48비트 (6바이트) 숫자는 피어 중에서 장치를 고유하게 식별합니다.

There are two types of device addresses, and one or both can be set on a particular device:

장치 주소에는 두 가지 유형이 있으며, 하나 또는 둘 다 특정 장치에 설정할 수 있습니다.

This is the equivalent to a fixed, BR/EDR, factory-programmed device address.

이는 고정된 BR/EDR, 공장 프로그래밍 장치 주소와 동일합니다.

It must be registered with the IEEE Registration Authority and will never change during the lifetime of the device.

IEEE 등록 기관에 등록해야 하며 장치 수명 동안 변경되지 않습니다.

This address can either be preprogrammed on the device or dynamically generated at runtime.

이 장치에 미리 프로그래밍되거나 런타임에 동적으로 생성될 수 있습니다.

It has many practical uses in BLE, as discussed in more detail in “Address Types” on page 44.

이것은 BLE에서 많은 실용적인 용도를 가지고 있으며, 이에 대해서는 44페이지의 "주소 유형"에서 더 자세히 설명합니다.

Each procedure must be performed using one of the two, to be specified by the host.

각 절차는 호스트가 지정한 둘 중 하나를 사용하여 수행되어야 합니다.

BLE has only one packet format and two types of packets (advertising and data packets), which simplifies the protocol stack implementation immensely.

BLE에는 하나의 패킷 형식과 두 가지 유형의 패킷 (광고 및 데이터 패킷)만 있으므로 프로토콜 스택 구현이 엄청나게 단순화됩니다.

Advertising packets serve two purposes: To broadcast data for applications that do not need the overhead of a full connection establishment, To discover slaves and to connect to them, To broadcast data for applications that do not need the overhead of a full connection establishment

광고 패킷은 두 가지 목적을 위해 사용됩니다: 전체 연결 설정의 오버헤드가 필요 없는 애플리케이션에 대한 데이터를 브로드캐스트하고, 슬레이브를 검색하여 연결하고, 전체 연결 설정의 오버헤드가 필요 없는 애플리케이션에 대한 데이터를 브로드캐스트하려면

To broadcast data for applications that do not need the overhead of a full connection establishment

전체 연결 설정의 오버헤드가 필요하지 않은 애플리케이션에 대한 데이터를 브로드캐스트하려면

To discover slaves and to connect to them

슬레이브를 발견하고 그들과 연결하려면

Each advertising packet can carry up to 31 bytes of advertising data payload, along with the basic header information (including Bluetooth device address).

각 광고 패킷은 기본 헤더 정보 (Bluetooth 장치 주소 포함)와 함께 최대 31바이트의 광고 데이터 페이로드를 전달할 수 있습니다.

Such packets are simply broadcast blindly over the air by the advertiser without the previous knowledge of the presence of any scanning device.

이러한 패킷은 스캐닝 장치의 존재에 대한 사전 지식 없이 광고주가 무작정 무선으로 방송합니다.

They are sent at a fixed rate defined by the advertising interval, which ranges from 20 ms to 10.24 s.

광고 간격에 따라 정의된 고정된 속도로 전송되며, 광고 간격은 20ms에서 10.24초까지입니다.

The shorter the interval, the higher the frequency at which advertising packets are broadcast, leading to a higher probability of those packets being received by a scanner, but higher amounts of packets transmitted also translate to higher power consumption.

간격이 짧을수록 광고 패킷이 방송되는 빈도가 높아지고, 스캐너가 해당 패킷을 수신할 확률이 높아지지만, 전송되는 패킷 양이 많아질수록 전력 소모량도 늘어납니다.

Because advertising uses a maximum of three frequency channels and the advertiser and the scanner are not synchronized in any way, an advertising packet will be received successfully by the scanner only when they randomly overlap, as shown in Figure 2-3.

광고는 최대 3개의 주파수 채널을 사용하고 광고주와 스캐너는 어떤 방식으로도 동기화되지 않기 때문에 그림 2-3과 같이 광고 패킷은 무작위로 겹칠 때에만 스캐너에 의해 성공적으로 수신됩니다.

The scan interval and scan window parameters define how often and for how long a scanner device will listen for potential advertising packets.

스캔 간격 및 스캔 윈도우 매개변수는 스캐너 장치가 잠재적인 광고 패킷을 수신하는 빈도와 기간을 정의합니다.

As with the advertising interval, those values have a deep impact on power consumption, since they directly relate to the amount of time the radio must be turned on.

광고 간격과 마찬가지로 이러한 값은 라디오를 켜야 하는 시간과 직접적인 관련이 있으므로 전력 소비에 큰 영향을 미칩니다.

The specification defines two basic types of scanning procedures:

사양은 두 가지 기본 유형의 스캐닝 절차를 정의합니다:

Passive scanning

수동 스캐닝

The scanner simply listens for advertising packets, and the advertiser is never aware of the fact that one or more packets were actually received by a scanner.

스캐너는 단순히 광고 패킷을 수신하며 광고주는 스캐너가 실제로 하나 이상의 패킷을 수신했다는 사실을 결코 인식하지 못합니다.

Active scanning

능동 스캐닝

The scanner issues a Scan Request packet after receiving an advertising packet.

스캐너는 광고 패킷을 수신한 후 스캔 요청 패킷을 발행합니다.

The advertiser receives it and responds with a Scan Response packet.

광고주는 이를 수신하고 Scan Response 패킷으로 응답합니다.

This additional packet doubles the effective payload that the advertiser is able to send to the scanner, but it is important to note that this does not provide a means for the scanner to send any user data at all to the advertiser.

이 추가 패킷은 광고주가 스캐너에 보낼 수 있는 효과적인 페이로드를 두 배로 늘려주지만, 이것이 스캐너가 광고주에게 사용자 데이터를 전송할 수 있는 수단을 제공하는 것은 아니라는 점에 유의하는 것이 중요합니다.

Figure 2-4 illustrates the difference between passive and active scanning.

그림 2-4는 수동 검색과 능동 검색의 차이점을 보여줍니다.

Advertising packet types can be classified according to three different properties.

광고 패킷 유형은 세 가지 다른 속성에 따라 분류될 수 있습니다.

The first is connectability:

첫 번째는 연결성입니다:

Connectable

연결 가능

A scanner can initiate a connection upon reception of such an advertising packet.

스캐너는 이러한 광고 패킷을 수신하면 연결을 시작할 수 있습니다.

Non-connectable

연결 불가

A scanner cannot initiate a connection (this packet is intended for broadcast only).

스캐너가 연결을 시작할 수 없습니다 (이 패킷은 브로드캐스트 전용입니다).

The second property is scannability:

두 번째 속성은 스캐닝 가능성입니다:

Scannable

스캔 가능

A scanner can issue a scan request upon reception of such an advertising packet.

스캐너는 그러한 광고 패킷을 수신하면 스캔 요청을 발행할 수 있습니다.

Non-scannable

스캔 불가능

A scanner cannot issue a scan request upon reception of such an advertising packet.

스캐너는 이러한 광고 패킷을 수신하면 스캔 요청을 발행할 수 없습니다.

And the third is directability:

그리고 세 번째는 방향성입니다:

Directed

방향성

A packet of this type contains only the advertiser’s and the target scanner’s Bluetooth Addresses in its payload.

이 유형의 패킷에는 페이로드에 광고주 및 대상 스캐너의 Bluetooth 주소만 포함됩니다.

No user data is allowed. All directed advertising packets are therefore connectable.

사용자 데이터가 허용되지 않습니다. 따라서 모든 지향성 광고 패킷은 연결 가능합니다.

Undirected

무방향성

A packet of this type is not targeted at any particular scanner, and it can contain user data in its payload.

이 유형의 패킷은 특정한 스캐너를 대상으로 하지 않으며 페이로드에 사용자 데이터를 포함할 수 있습니다.

Table 2-1 shows the different advertising packet types and their properties.

표 2-1에는 다양한 광고 패킷 유형과 해당 속성이 나와 있습니다.

The advertising packet types are used by the upper layers and, more specifically, GAP to differentiate between operating modes and to define procedures.

광고 패킷 유형은 상위 계층, 특히 GAP에서 작동 모드를 구별하고 절차를 정의하는 데 사용됩니다.

Therefore, “Modes and Procedures” on page 37 makes extensive use of them at its core.

따라서 37페이지의 "모드 및 절차"에서는 이를 핵심으로 광범위하게 사용합니다.

To establish a connection, a master first starts scanning to look for advertisers that are currently accepting connection requests.

연결을 설정하기 위해 마스터는 먼저 현재 연결 요청을 수락하고 있는 광고자를 찾기 위해 검색을 시작합니다.

The advertising packets can be filtered by Bluetooth Address or based in the advertising data itself.

광고 패킷은 Bluetooth 주소를 기준으로 필터링하거나 광고 데이터 자체를 기반으로 필터링할 수 있습니다.

When a suitable advertising slave is detected, the master sends a connection request packet to the slave and, provided the slave responds, establishes a connection.

적절한 광고 슬레이브가 감지되면 마스터는 슬레이브에 연결 요청 패킷을 보내고 슬레이브가 응답하면 연결을 설정합니다.

The connection request packet includes the frequency hop increment, which determines the hopping sequence that both the master and the slave will follow during the lifetime of the connection.

연결 요청 패킷에는 주파수 홉 증가가 포함되어 있으며, 이는 연결 기간 동안 마스터와 슬레이브가 따라야 할 홉핑 순서를 결정합니다.

A connection is simply a sequence of data exchanges between the slave and the master at predefined times.

연결은 단순히 사전 정의된 시간에 슬레이브와 마스터 간의 일련의 데이터 교환입니다.

Shown in Figure 2-5, each exchange is called a connection event.

그림 2-5에 표시된 각 교환을 연결 이벤트라고 합니다.

The following three connection parameters are another set of key variables communicated by the master during the establishment of a connection:

다음 세 가지 연결 매개변수는 연결 설정 중에 마스터가 전달하는 또 다른 주요 변수 세트입니다.

Connection interval

연결 간격

The time between the beginning of two consecutive connection events.

두 개의 연속 연결 이벤트가 시작되는 사이의 시간입니다.

This value ranges from 7.5 ms (high throughput) to 4 s (lowest possible throughput but also least power hungry).

이 값의 범위는 7.5ms (높은 처리량)에서 4초 (가장 낮은 처리량이지만 가장 전력 소모가 적음)입니다.

Slave latency

슬레이브 대기 시간

The number of connection events that a slave can choose to skip without risking a disconnection.

슬레이브가 연결 끊김 위험 없이 건너뛰도록 선택할 수 있는 연결 이벤트 수입니다.

Connection supervision timeout

연결 감독 타임아웃

The maximum time between two received valid data packets before a connection is considered lost.

연결이 끊어진 것으로 간주되기 전에 수신된 두 개의 유효한 데이터 패킷 사이의 최대 시간입니다

Because many BLE devices might exist in a given area, or even just for security reasons (in which the master or the slave might be interested in only a small set of preknown devices), the Link Layer implements a whitelist feature, which specifies device addresses of interest to the advertiser or the scanner.

특정 지역에 여러 BLE 장치가 있을 수 있거나, 심지어 보안상의 이유로 (마스터나 슬레이브가 알려진 소수의 장치에만 관심이 있을 수 있음) 링크 계층은 광고주나 스캐너에게 관심 있는 장치 주소를 지정하는 화이트리스트 기능을 구현합니다.

Any advertising (if a scanner) or connection request (if an advertiser) packets received from devices whose Bluetooth Address is not present in the white list will simply be dropped.

Bluetooth 주소가 화이트리스트에 없는 장치로부터 수신된 모든 광고 (스캐너인 경우) 또는 연결 요청 (광고인 경우) 패킷은 간단히 삭제됩니다.

An important feature available in BLE controllers, white lists allow hosts to filter devices when advertising, scanning, and establishing connections on both sides.

화이트 리스트는 BLE에서 가능한 중요한 기능으로서 호스트가 게시나 스캐닝 혹은 둘 다에 연결을 설정할 때 디바이스들을 필터링할 수 있게 한다.

White lists are simply arrays of Bluetooth device addresses that are populated by the host and stored and used in the controller.

BLE 컨트롤러에서 사용할 수 있는 중요한 기능인 화이트리스트를 통해 호스트는 양쪽에서 광고, 검색 및 연결 설정 시 장치를 필터링할 수 있습니다.

A device scanning or initiating a connection can use a whitelist to limit the number of devices that will be detected or with which it can connect, and the advertising device can use a whitelist to specify which peers it will accept an incoming connection from.

스캐닝이나 연결을 시작하는 장치는 허용 목록을 사용하여 감지되거나 연결할 수 있는 장치 수를 제한할 수 있으며, 광고 장치는 허용 목록을 사용하여 들어오는 연결을 허용할 피어를 지정할 수 있습니다.

The setting that defines whether a white list is to be used or not is called a filter policy.

화이트리스트 사용 여부를 정의하는 설정을 필터 정책이라고 합니다.

This essentially acts as a switch to turn whitelist filtering on and off.

이는 본질적으로 화이트리스트 필터링을 켜고 끄는 스위치 역할을 합니다.

Data packets are the workhorse of the protocol and are used to transport user data bidirectionally between the master and slave.

데이터 패킷은 프로토콜의 핵심이며 마스터와 슬레이브 사이에서 양방향으로 사용자 데이터를 전송하는 데 사용됩니다.

These packets have a usable data payload of 27 bytes, but additional protocols further up the stack typically limit the actual amount of user data to 20 bytes per packet, although that logically depends on the protocol being used.

이러한 패킷은 27바이트의 사용 가능한 데이터 페이로드를 가지고 있지만, 스택 상위에 있는 추가 프로토콜은 일반적으로 패킷당 실제 사용자 데이터 양을 20바이트로 제한합니다. 다만 이는 논리적으로 사용되는 프로토콜에 따라 달라집니다.

It is important to note that the Link Layer acts as a reliable data bearer.

링크 계층은 신뢰할 수 있는 데이터 전달자 역할을 한다는 점에 유의하는 것이 중요합니다.

All packets received are checked against a 24-bit CRC and retransmissions are requested when the error checking detects a transmission failure.

수신된 모든 패킷은 24비트 CRC에 대해 검사되고 오류 검사에서 전송 실패가 감지되면 재전송이 요청됩니다.

There is no upper limit for retransmissions; the Link Layer will resend the packet until it is finally acknowledged by the receiver.

재전송에는 상한이 없습니다. 링크 계층은 수신자가 최종적으로 확인할 때까지 패킷을 다시 보냅니다.

Other than advertising, scanning, establishing (and tearing down) connections, and transmitting and receiving data, the Link Layer is also responsible for several control procedures, including these two critical processes:

광고, 스캐닝, 연결 설정 (및 해제), 데이터 전송 및 수신 외에도 링크 계층은 다음 두 가지 중요한 프로세스를 포함한 여러 제어 절차를 담당합니다:

Changing the connection parameters

연결 매개변수 변경

Each connection is established with a given set of connection parameters set by the master, but conditions and requirements might change during the lifetime of the connection.

각 연결은 마스터가 설정한 일련의 연결 매개변수를 사용하여 설정되지만 연결 수명 동안 조건과 요구 사항이 변경될 수 있습니다.

A slave might suddenly require a higher throughput for a short burst of data, or conversely, it might detect that in the near future a longer connection interval will suffice to keep the connection alive.

슬레이브는 짧은 데이터 버스트에 대해 갑자기 더 높은 처리량을 요구할 수도 있고, 반대로 가까운 미래에 연결을 유지하는 데 더 긴 연결 간격이면 충분할 것임을 감지할 수도 있습니다.

The Link Layer allows the master and the slave to request new connection parameters and, in the case of the master, to set them unilaterally at any time.

링크 계층을 사용하면 마스터와 슬레이브가 새로운 연결 매개변수를 요청할 수 있으며, 마스터의 경우 언제든지 이를 일방적으로 설정할 수 있습니다.

That way, each connection can be fine-tuned to provide the best balance between throughput and power consumption.

이렇게 하면 처리량과 전력 소비 간에 최상의 균형을 제공하도록 각 연결을 미세 조정할 수 있습니다.

Security is critical in BLE, and the Link Layer provides the means to exchange data securely over an encrypted link.

BLE에서는 보안이 매우 중요하며 링크 계층은 암호화된 링크를 통해 안전하게 데이터를 교환하는 수단을 제공합니다.

The keys are generated and managed by the host, but the Link Layer performs the actual data encryption and decryption transparently to the upper layers.

키는 호스트에서 생성 및 관리되지만 실제 데이터 암호화 및 복호화는 링크 계층에서 상위 계층에 투명하게 수행됩니다.

These two procedures are especially relevant, because they each require involvement from the host on both sides to be carried out.

이 두 절차는 각각 수행되려면 양쪽 호스트의 참여가 필요하기 때문에 특히 관련이 있습니다.

The Link Layer handles additional procedures to exchange version information and capabilities internally, so they are transparent to both the host and application developer.

링크 계층은 버전 정보 및 기능을 내부적으로 교환하기 위한 추가 절차를 처리하므로 호스트와 애플리케이션 개발자 모두에게 투명합니다.