WO2022154279A1 - 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법 - Google Patents

프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
WO2022154279A1
WO2022154279A1 PCT/KR2021/019034 KR2021019034W WO2022154279A1 WO 2022154279 A1 WO2022154279 A1 WO 2022154279A1 KR 2021019034 W KR2021019034 W KR 2021019034W WO 2022154279 A1 WO2022154279 A1 WO 2022154279A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
information
service
packet
processor
Prior art date
Application number
PCT/KR2021/019034
Other languages
English (en)
French (fr)
Inventor
안준환
강민구
김수현
이규진
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Publication of WO2022154279A1 publication Critical patent/WO2022154279A1/ko
Priority to US18/334,623 priority Critical patent/US20230328632A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/08Access restriction or access information delivery, e.g. discovery data delivery
    • H04W48/10Access restriction or access information delivery, e.g. discovery data delivery using broadcasted information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals

Definitions

  • Various embodiments of the present disclosure relate to an electronic device for transmitting and/or receiving protocol/service information and an operating method thereof.
  • a Bluetooth low energy (BLE) method which is one of short-range communication methods, may transmit and/or receive low-power, low-capacity data in a frequency band of about 2.4 GHz .
  • Electronic devices using the BLE method may operate in an active mode only during a time when a connection operation between electronic devices and a data transmission and/or reception operation is performed, and may operate in a sleep mode during other times. Accordingly, when the BLE method is used, power consumption of electronic devices may be reduced compared to when the general Bluetooth method is used. Accordingly, the BLE method may be mainly used in electronic devices in which power supply is limited, such as a health care device, a sensor device, or a wearable electronic device (eg, a BLE earphone, a smart watch, or smart glasses).
  • the electronic device using the BLE method may broadcast an advertisement packet for communication with an external electronic device.
  • the external electronic device may recognize the electronic device that has transmitted the advertisement packet based on advertisement data (eg, an address of the electronic device) included in the advertisement packet, and may request a connection to the recognized electronic device.
  • advertisement data eg, an address of the electronic device
  • the external electronic device may obtain service list information from the electronic device by performing a service search operation on the electronic device.
  • the external electronic device may select a service to be used based on the acquired service list information, and may transmit and/or receive data packets for the selected service.
  • the external electronic device may transmit a data packet including data to be included in the characteristic information to the electronic device.
  • the external electronic device may receive a data packet including data included in the characteristic information from the electronic device.
  • the external electronic device may select a service to be used based on service list information and obtain connection information for using the selected service instead of performing the data packet transmission and/or reception operation as described above.
  • the external electronic device may perform an operation for establishing a connection for service use based on the acquired connection information. For example, connection for service use may be performed in a logical link control and adaptation protocol (L2CAP) layer of a BLE protocol stack.
  • L2CAP logical link control and adaptation protocol
  • protocol/service information may be used for connection between electronic devices.
  • the protocol/service information may be, for example, protocol service multiplexer (PSM) information.
  • PSM protocol service multiplexer
  • the external electronic device electronically transmits, for example, a service search operation for the electronic device, an operation of selecting a service based on a service search operation, and/or protocol/service information for using the selected service.
  • the device can perform a requested operation.
  • the L2CAP layer may support connections for a plurality of services based on various protocols.
  • the PSM information may be used to confirm which protocol the connection between electronic devices in the L2CAP layer is based on.
  • the PSM information may be used as a port number for distinguishing a plurality of connections based on the same protocol.
  • an advertisement packet transmission and/or reception operation for example, an advertisement packet transmission and/or reception operation, a connection operation between electronic devices, and/or a service search operation may be performed.
  • a connection is established based on an advertisement packet transmission and/or reception operation, a connection operation between electronic devices, a service search operation, a protocol/service information request operation, and/or protocol/service information.
  • a setting operation may be performed.
  • Various embodiments of the present disclosure may provide an electronic device for transmitting and/or receiving protocol/service information and an operating method thereof.
  • Various embodiments of the present disclosure may provide an electronic device for transmitting and/or receiving protocol/service information in a short-range communication network based on a BLE scheme, and an operating method thereof.
  • Various embodiments of the present disclosure may provide an electronic device that transmits and/or receives encrypted protocol/service information in a short-range communication network based on a BLE scheme, and an operating method thereof.
  • An electronic device includes; communication circuit; and at least one processor, wherein the at least one processor broadcasts, through the communication circuit, an advertisement packet including at least one first protocol/service information, and through the communication circuit, an external electronic device Receives a connection request packet including at least one second protocol/service information from It may be configured to transmit a connection response packet.
  • An electronic device includes; communication circuit; and at least one processor, wherein the at least one processor receives, through the communication circuit, an advertisement packet including at least one first protocol/service information from an external electronic device, and includes generating a connection request packet including at least one piece of second protocol/service information identical to at least one piece of first protocol/service information, and transmitting the connection request packet to the external electronic device through the communication circuit; It may be configured to receive a connection response packet from the external electronic device through a communication circuit.
  • a method for an electronic device to transmit protocol/service information comprising: broadcasting an advertisement packet including at least one piece of first protocol/service information; and at least one piece of second protocol/service information from an external electronic device receiving a connection request packet, and transmitting a connection response packet to the external electronic device when the at least one second protocol/service information is the same as the at least one first protocol/service information can
  • a method for an electronic device to receive protocol/service information comprising: receiving an advertisement packet including at least one first protocol/service information from an external electronic device; / Generating a connection request packet including at least one second protocol/service information identical to the service information, transmitting the connection request packet to the external electronic device, and receiving a connection response packet from the external electronic device It may include an operation of receiving.
  • An electronic device for transmitting and/or receiving protocol/service information and an operating method thereof provide an electronic device without a service search operation by enabling the protocol/service information to be transmitted and/or received through an advertisement packet. You can set up a connection between devices. Accordingly, a procedure for connection between electronic devices may be simplified, and time and/or resources may be saved according to the simplified procedure.
  • FIG. 1 is a block diagram of an electronic device in a network environment according to various embodiments of the present disclosure
  • FIG. 2 is a block diagram of an electronic device according to various embodiments of the present disclosure.
  • FIG. 3 is a diagram illustrating an example of a service related to a trigger event according to various embodiments of the present disclosure
  • 4A is a signal flow diagram schematically illustrating an example of an operation of connecting electronic devices in a BLE network according to various embodiments of the present disclosure.
  • 4B is a signal flow diagram schematically illustrating another example of an operation of connecting electronic devices in a BLE network according to various embodiments of the present disclosure.
  • FIG. 5 is a signal flow diagram schematically illustrating another example of an operation of connecting electronic devices in a BLE network according to various embodiments of the present disclosure.
  • FIG. 6 is a diagram schematically illustrating an example of an advertisement packet according to various embodiments of the present disclosure
  • FIG. 7 is a diagram schematically illustrating an example of an AD 0 element according to various embodiments of the present disclosure.
  • FIG. 8 is a flowchart illustrating an operation in which an electronic device provides a service to which ADV_PSM is allocated in a BLE network according to various embodiments of the present disclosure.
  • FIG. 9 is a flowchart illustrating an operation in which an electronic device is provided with a service to which ADV_PSM is allocated in a BLE network according to various embodiments of the present disclosure.
  • 10A, 10B, and 10C are flowcharts for explaining an operation of providing a service by an electronic device in a BLE network according to various embodiments of the present disclosure
  • 11A, 11B, and 11C are flowcharts for explaining an operation in which an electronic device receives a service in a BLE network according to various embodiments of the present disclosure
  • FIG. 12 is a signal flow diagram schematically illustrating an example of an operation of filtering a connection request packet in a BLE network according to various embodiments of the present disclosure.
  • FIG. 13 is a signal flow diagram schematically illustrating an example of an operation of providing a secure ADV_PSM in a BLE network according to various embodiments of the present disclosure.
  • FIG. 1 is a block diagram 100 of an electronic device 101 in a network environment 100 according to various embodiments of the present disclosure.
  • an electronic device 101 communicates with an electronic device 102 through a first network 198 (eg, a short-range wireless communication network) or a second network 199 . It may communicate with the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • a first network 198 eg, a short-range wireless communication network
  • a second network 199 e.g., a second network 199
  • the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • the electronic device 101 includes a processor 120 , a memory 130 , an input module 150 , a sound output module 155 , a display module 160 , an audio module 170 , and a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or an antenna module 197 .
  • at least one of these components eg, the connection terminal 178
  • some of these components are integrated into one component (eg, display module 160 ). can be
  • the processor 120 for example, executes software (eg, a program 140) to execute at least one other component (eg, a hardware or software component) of the electronic device 101 connected to the processor 120. It can control and perform various data processing or operations. According to an embodiment, as at least part of data processing or operation, the processor 120 stores a command or data received from another component (eg, the sensor module 176 or the communication module 190 ) into the volatile memory 132 . may be stored in , process commands or data stored in the volatile memory 132 , and store the result data in the non-volatile memory 134 .
  • software eg, a program 140
  • the processor 120 stores a command or data received from another component (eg, the sensor module 176 or the communication module 190 ) into the volatile memory 132 .
  • the processor 120 stores a command or data received from another component (eg, the sensor module 176 or the communication module 190 ) into the volatile memory 132 .
  • the processor 120 is a main processor 121 (eg, a central processing unit or an application processor) or a secondary processor 123 (eg, a graphic processing unit, a neural network processing unit) a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor).
  • a main processor 121 eg, a central processing unit or an application processor
  • a secondary processor 123 eg, a graphic processing unit, a neural network processing unit
  • NPU neural processing unit
  • an image signal processor e.g., a sensor hub processor, or a communication processor.
  • the secondary processor 123 may, for example, act on behalf of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or when the main processor 121 is active (eg, executing an application). ), together with the main processor 121, at least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or the communication module 190) It is possible to control at least some of the related functions or states.
  • the auxiliary processor 123 eg, image signal processor or communication processor
  • the auxiliary processor 123 may include a hardware structure specialized for processing an artificial intelligence model.
  • Artificial intelligence models can be created through machine learning. Such learning may be performed, for example, in the electronic device 101 itself on which artificial intelligence is performed, or may be performed through a separate server (eg, the server 108).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but in the above example not limited
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the above example.
  • the artificial intelligence model may include, in addition to, or alternatively, a software structure in addition to the hardware structure.
  • the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176 ) of the electronic device 101 .
  • the data may include, for example, input data or output data for software (eg, the program 140 ) and instructions related thereto.
  • the memory 130 may include a volatile memory 132 or a non-volatile memory 134 .
  • the program 140 may be stored as software in the memory 130 , and may include, for example, an operating system 142 , middleware 144 , or an application 146 .
  • the input module 150 may receive a command or data to be used by a component (eg, the processor 120 ) of the electronic device 101 from the outside (eg, a user) of the electronic device 101 .
  • the input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
  • the sound output module 155 may output a sound signal to the outside of the electronic device 101 .
  • the sound output module 155 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive incoming calls. According to an embodiment, the receiver may be implemented separately from or as a part of the speaker.
  • the display module 160 may visually provide information to the outside (eg, a user) of the electronic device 101 .
  • the display module 160 may include, for example, a control circuit for controlling a display, a hologram device, or a projector and a corresponding device.
  • the display module 160 may include a touch sensor configured to sense a touch or a pressure sensor configured to measure the intensity of a force generated by the touch.
  • the audio module 170 may convert a sound into an electric signal or, conversely, convert an electric signal into a sound. According to an embodiment, the audio module 170 acquires a sound through the input module 150 , or an external electronic device (eg, a sound output module 155 ) connected directly or wirelessly with the electronic device 101 .
  • the electronic device 102) eg, a speaker or headphones
  • the electronic device 102 may output a sound.
  • the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the sensed state. can do.
  • the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface 177 may support one or more specified protocols that may be used by the electronic device 101 to directly or wirelessly connect with an external electronic device (eg, the electronic device 102 ).
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • the connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the electronic device 102 ).
  • the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 179 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic sense.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 may capture still images and moving images. According to an embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 may manage power supplied to the electronic device 101 .
  • the power management module 188 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 189 may supply power to at least one component of the electronic device 101 .
  • the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). It can support establishment and communication performance through the established communication channel.
  • the communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 190 is a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, : It may include a local area network (LAN) communication module, or a power line communication module).
  • a wireless communication module 192 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 194 eg, : It may include a local area network (LAN) communication module, or a power line communication module.
  • a corresponding communication module among these communication modules is a first network 198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
  • a first network 198 eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
  • a second network 199 eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
  • a telecommunication network
  • the wireless communication module 192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199 .
  • subscriber information eg, International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the electronic device 101 may be identified or authenticated.
  • the wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, a new radio access technology (NR).
  • NR access technology includes high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency) -latency communications)).
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low-latency
  • the wireless communication module 192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
  • a high frequency band eg, mmWave band
  • the wireless communication module 192 uses various techniques for securing performance in a high-frequency band, for example, beamforming, massive multiple-input and multiple-output (MIMO), all-dimensional multiplexing. It may support technologies such as full dimensional MIMO (FD-MIMO), an array antenna, analog beam-forming, or a large scale antenna.
  • the wireless communication module 192 may support various requirements defined in the electronic device 101 , an external electronic device (eg, the electronic device 104 ), or a network system (eg, the second network 199 ).
  • the wireless communication module 192 may include a peak data rate (eg, 20 Gbps or more) for realizing eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency for realizing URLLC ( Example: Downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) can be supported.
  • a peak data rate eg, 20 Gbps or more
  • loss coverage eg, 164 dB or less
  • U-plane latency for realizing URLLC
  • the antenna module 197 may transmit or receive a signal or power to the outside (eg, an external electronic device).
  • the antenna module 197 may include an antenna including a conductor formed on a substrate (eg, a PCB) or a radiator formed of a conductive pattern.
  • the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is connected from the plurality of antennas by, for example, the communication module 190 . can be selected. A signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna.
  • other components eg, a radio frequency integrated circuit (RFIC)
  • RFIC radio frequency integrated circuit
  • the antenna module 197 may form a mmWave antenna module.
  • the mmWave antenna module comprises a printed circuit board, an RFIC disposed on or adjacent to a first side (eg, bottom side) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, an array antenna) disposed on or adjacent to a second side (eg, top or side) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
  • peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • the command or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 .
  • Each of the external electronic devices 102 or 104 may be the same as or different from the electronic device 101 .
  • all or part of the operations executed by the electronic device 101 may be executed by one or more external electronic devices 102 , 104 , or 108 .
  • the electronic device 101 may perform the function or service itself instead of executing the function or service itself.
  • one or more external electronic devices may be requested to perform at least a part of the function or the service.
  • One or more external electronic devices that have received the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit a result of the execution to the electronic device 101 .
  • the electronic device 101 may process the result as it is or additionally and provide it as at least a part of a response to the request.
  • cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 104 may include an Internet of things (IoT) device.
  • the server 108 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 104 or the server 108 may be included in the second network 199 .
  • the electronic device 101 may be applied to an intelligent service (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • the electronic device may be a device of various types.
  • the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a laptop, a desktop, a tablet, or a portable multimedia device
  • portable medical device e.g., a portable medical device
  • camera e.g., a camera
  • a wearable device e.g., a smart watch
  • a home appliance device e.g., a home appliance
  • first, second, or first or second may simply be used to distinguish an element from other elements in question, and may refer elements to other aspects (e.g., importance or order) is not limited. It is said that one (eg, first) component is “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively”. When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.
  • module used in various embodiments of the present disclosure may include a unit implemented in hardware, software, or firmware, for example, interchangeably with terms such as logic, logic block, component, or circuit.
  • a module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • one or more instructions stored in a storage medium may be implemented as software (eg, the program 140) including
  • the processor eg, the processor 120
  • the device eg, the electronic device 101
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium is a tangible device and does not contain a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.
  • a signal eg, electromagnetic wave
  • the method according to various embodiments of the present disclosure may be included and provided in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store (eg Play Store TM ) or on two user devices ( It can be distributed (eg downloaded or uploaded) directly or online between smartphones (eg: smartphones).
  • a part of the computer program product may be temporarily stored or temporarily created in a machine-readable storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server.
  • each component (eg, module or program) of the above-described components may include a singular or a plurality of entities, and some of the plurality of entities may be separately disposed in other components.
  • one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg, a module or a program
  • the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.
  • BLE Bluetooth low energy
  • Various embodiments of the present disclosure may provide an electronic device for transmitting and/or receiving protocol/service information and an operating method thereof.
  • the protocol/service information may be protocol service multiplexer (PSM) information.
  • PSM protocol service multiplexer
  • one or more protocol/service information may be included in an advertisement packet and/or a connection request packet.
  • protocol/service information is a channel (eg, connection-oriented channel: CoC) in a logical link control and adaptation protocol (L2CAP) layer of the BLE protocol stack. )) can be used to set
  • the electronic device may transmit a connection request packet for establishing a channel in the L2CAP layer to the external electronic device.
  • SD_PSM protocol/service information that may be obtained by performing a service search operation according to various embodiments
  • ADV_PSM protocol/service information that may be included in an advertisement packet
  • FIG. 2 is a block diagram 200 of an electronic device 101 according to various embodiments of the present disclosure.
  • the electronic device 101 may include a display 210 , a communication circuit 220 , a memory 230 , and/or a processor 240 .
  • the display 210 displays, under the control of the processor 240 , information generated by the processor 240 , information transmitted and/or received through the communication circuit 220 , or a set communication method (eg, : BLE method), an operation of connecting and communicating with at least one external electronic device (eg, the electronic device 102 ) may be visually displayed.
  • the display 210 may be included in the display module 160 of FIG. 1 .
  • the communication circuit 220 may communicate with an external electronic device based on a BLE method.
  • the communication circuit 220 performs an advertisement packet broadcast operation under the control of the processor 240 , a scan operation for receiving an advertisement packet broadcast by an external electronic device, and an asynchronous connectionless (ACL) connection. at least one of an operation, a service discovery request packet transmission and/or reception operation, a service search response packet transmission and/or reception operation, a connection request packet transmission and/or reception operation for channel establishment, or a data packet transmission and/or reception operation.
  • ACL asynchronous connectionless
  • the communication circuit 220 may be included in the communication module 190 of FIG. 1 .
  • the memory 230 may store information transmitted and/or received by the communication circuit 220 and information generated by the processor 240 . According to various embodiments, the memory 230 provides information on an application used to provide or receive a service, information on at least one ADV_PSM allocated to at least one service, and a connection or channel setting with an external electronic device. information, instructions, and/or indicators for
  • the memory 230 may include a volatile memory or a non-volatile memory, and may be included in the memory 130 of FIG. 1 .
  • the processor 240 may perform the following operations to provide at least one service.
  • the processor 240 may monitor the occurrence of a trigger event for determining whether to generate an advertisement packet. In an embodiment, the processor 240 may monitor whether a trigger event is generated within a set time from the time the monitoring operation is started.
  • the trigger event may include, for example, at least one of the following events. However, the trigger event may not be limited thereto.
  • the processor 240 allocates at least one ADV_PSM to at least one service related to the generated trigger event, and generates an advertisement packet including the allocated at least one ADV_PSM.
  • the processor 240 may control the communication circuit 220 to broadcast the generated advertisement packet.
  • At least one ADV_PSM may be used to establish a connection for using at least one service provided by the electronic device 101 . Accordingly, the processor 240 may broadcast the advertisement packet through the communication circuit 220 and wait for reception of the connection request packet.
  • the processor 240 may confirm that the connection request packet has been received through the communication circuit 220 .
  • the connection request packet may be received from an external electronic device (eg, the electronic device 102 ) that has performed a scan operation to receive the advertisement packet.
  • the processor 240 may check whether at least one ADV_PSM is included in the received connection request packet. In an embodiment, when at least one ADV_PSM is included in the received connection request packet, the processor 240 determines that at least one ADV_PSM included in the received connection request packet is the same as at least one ADV_PSM included in the advertisement packet. You can check whether
  • the processor 240 converts the received connection request packet to an inappropriate connection request packet. can be considered and discarded.
  • the processor 240 transmits information on at least one ADV_PSM included in the advertisement packet to the communication circuit 220 , and transmits an inappropriate connection request packet from the communication circuit 220 to the processor 240 . You can instruct them to dispose of them.
  • the processor 240 transmits the connection response packet to the external electronic device through the communication circuit 220 .
  • the connection response packet may include information indicating that the connection request of the external electronic device is accepted.
  • the processor 240 may set at least one channel for communicating with an external electronic device. For example, the processor 240 may allocate at least one channel for performing communication with an external electronic device, and transmit information on the allocated at least one channel to the external electronic device through the communication circuit 220 . have. The processor 240 may transmit and/or receive at least one data packet related to an external electronic device and at least one service through the communication circuit 220 in at least one allocated channel.
  • the processor 240 may check whether the received connection request packet is an ACL connection request packet received in a configured channel.
  • the configured channel may be a channel having a channel identifier (CID) of 0X0004, and a channel through which a connection request packet including at least one ADV_PSM can be received (eg, a channel having a CID of 0X0005) and may be different.
  • the processor 240 may transmit the ACL connection response packet to the external electronic device.
  • the service search request packet may be received from the external electronic device through the communication circuit 220 .
  • the service search request packet may include information for requesting to provide information on one or more services provided by the electronic device 101 .
  • the processor 240 may transmit a service search response packet to the external electronic device through the communication circuit 220 in response to the service search request packet.
  • the service search response packet may include service list information.
  • the processor 240 may control the communication circuit 220 to transmit and/or receive a data packet related to a service selected by the external electronic device to the external electronic device through an ACL connection.
  • the processor 240 may receive a data packet requesting SD_PSM through the ACL connection from the external electronic device through the communication circuit 220 .
  • SD_PSM may be assigned to a service of the electronic device 101 selected by the external electronic device, for example.
  • the processor 240 transmits the data packet including the SD_PSM to the external electronic device through the communication circuit 220, and transmits and/or receives the data packet related to the service selected by the external electronic device to the external electronic device. 220) can be controlled.
  • the processor 240 may perform the following operations to receive at least one service.
  • the processor 240 may perform a scan operation to monitor whether an advertisement packet broadcast by an external electronic device (eg, the electronic device 102 ) is received.
  • the scan operation may be performed for a set time.
  • the processor 240 may check whether at least one ADV_PSM is included in the received advertisement packet.
  • the processor 240 may generate a connection request packet including at least one ADV_PSM.
  • the processor 240 may transmit the generated connection request packet to an external electronic device that has broadcast the advertisement packet through the communication circuit 220 .
  • the processor 240 may include information on the external electronic device included in the advertisement packet (eg, a media access control (MAC) address of the external electronic device, and a product identifier (ID) of the external electronic device). ) or the name of the external electronic device), the generated connection request packet may be transmitted to the external electronic device through the communication circuit 220 .
  • the advertisement packet e.g, a media access control (MAC) address of the external electronic device, and a product identifier (ID) of the external electronic device.
  • ID product identifier
  • the generated connection request packet may be transmitted to the external electronic device through the communication circuit 220 .
  • the processor 240 determines at least one service provided by the external electronic device based on information on at least one service included in the advertisement packet. You can decide whether to use it or not.
  • the processor 240 may transmit a connection request packet including at least one ADV_PSM to the external electronic device through the communication circuit 220 .
  • the processor 240 may receive a connection response packet from an external electronic device through the communication circuit 220 . In an embodiment, when the received connection response packet includes information indicating that the connection request is accepted, the processor 240 may determine that the connection with the external electronic device is successful.
  • the processor 240 may set at least one channel for communication with an external electronic device. For example, when information on at least one channel allocated by the external electronic device is received through the communication circuit 220 , the processor 240 may be configured to use at least one for communication with the external electronic device based on the received information. channels can be set.
  • the processor 240 may control the communication circuit 220 to perform a data packet transmission and/or reception operation with an external electronic device in at least one channel.
  • the processor 240 may receive a service through an ACL connection operation or a connection operation for CoC setting.
  • the processor 204 may perform the following operation as an ACL connection operation.
  • the processor 240 may transmit the ACL connection request packet to the external electronic device through the communication circuit 220 .
  • the ACL connection request packet may be transmitted, for example, in a configured channel, and the configured channel may be a channel having a CID of 0X0004.
  • the processor 240 may check whether an ACL connection response packet is received from the external electronic device through the communication circuit 220 . In an embodiment, if the ACL connection response packet is not received within the set time, the processor 240 may perform a scan operation to monitor whether the advertisement packet is received again.
  • the processor 240 may transmit a service discovery request packet to the external electronic device through the communication circuit 220 .
  • the processor 240 may check whether the service search response packet is received from the external electronic device through the communication circuit 220 . In an embodiment, if the service search response packet is not received within a set time, the processor 240 may perform a scan operation to monitor whether an advertisement packet is received again.
  • the processor 240 may transmit and/or receive a data packet with an external electronic device through the communication circuit 220 .
  • the service search response packet may include service list information.
  • the service list information may include information on one or more services provided by the electronic device 101 .
  • the information on the one or more services may include information on whether at least one of a read operation and a write operation on data related to the service can be performed.
  • the processor 240 may transmit and/or receive a data packet with an external electronic device through the communication circuit 220 based on information on one or more services.
  • the processor 240 when it is detected that the processor 240 can perform a read operation based on information on one or more services, the processor 240 transmits a data packet including data related to the service through the communication circuit 220 to the external electronic device. can be received from
  • the processor 240 when it is detected that the processor 240 can perform a write operation based on information on one or more services, the processor 240 transmits a data packet including data related to the service through the communication circuit 220 to the external electronic device. can be sent to
  • the processor 204 may perform the following operation as a connection operation for CoC setting.
  • the processor 240 may transmit the ACL connection request packet to the external electronic device through the communication circuit 220 .
  • the ACL connection request packet may be transmitted, for example, in a configured channel, and the configured channel may be a channel having a CID of 0X0004.
  • the processor 240 may check whether an ACL connection response packet is received from the external electronic device through the communication circuit 220 . In an embodiment, if the ACL connection response packet is not received within the set time, the processor 240 may perform a scan operation to monitor whether the advertisement packet is received again.
  • the processor 240 may transmit a service discovery request packet to the external electronic device through the communication circuit 220 .
  • the processor 240 may check whether the service search response packet is received from the external electronic device through the communication circuit 220 . In an embodiment, if the service search response packet is not received within a set time, the processor 240 may perform a scan operation to monitor whether an advertisement packet is received again.
  • the processor 240 may transmit and/or receive a data packet with an external electronic device through the communication circuit 220 .
  • the service search response packet may include service list information, and the processor 240 may select a service to use based on the service list information.
  • the processor 240 transmits a data packet requesting SD_PSM for the selected service to the external electronic device through the communication circuit 220 , and transmits the data packet including the requested SD_PSM to the communication circuit 220 . through the external electronic device.
  • the processor 240 may transmit a connection request packet including the SD_PSM to the external electronic device through the communication circuit 220 .
  • the connection request packet including SD_PSM may be, for example, a connection request for establishing a channel, and the channel to be set may indicate a channel for performing a service-related data packet transmission and/or reception operation.
  • the processor 240 may check whether a connection response packet is received within a set time. In an embodiment, when a connection response packet is not received within a set time, the processor 240 may perform a scan operation to monitor whether an advertisement packet is received again.
  • the processor 240 determines that the connection with the external electronic device is successful. can do.
  • the processor 240 may establish at least one communication channel with an external electronic device. For example, when information on at least one communication channel allocated by the external electronic device is received, the processor 240 may set at least one communication channel based on the received information.
  • the processor 240 may transmit and/or receive at least one data packet related to an external electronic device and a service through at least one established communication channel.
  • the processor 240 may perform operations related to the electronic device 101 to be described later.
  • FIG. 3 is a diagram 300 illustrating an example of a service related to a trigger event according to various embodiments of the present disclosure.
  • a first electronic device 301 may be an electronic device that provides a service
  • a second electronic device 302 may be an electronic device that receives a service.
  • the first electronic device 301 and/or the second electronic device 302 may be, for example, substantially the same as the electronic device 101 of FIG. 1 or the electronic device 200 of FIG. 2 .
  • the first electronic device 301 may check a service related to the trigger event. For example, the first electronic device 301 may detect that a “clipboard copy” event as shown in FIG. 3A has occurred, and check a service related to the “clipboard copy” event.
  • the “clipboard copy” event indicates an event in which text displayed on the display 210 of the first electronic device 301 (eg, “SAMSUNG ELECTONICS”) is stored in the temporary storage space of the memory 230 .
  • the first electronic device 301 may allocate ADV_PSM to the identified service and broadcast an advertisement packet including the allocated ADV_PSM.
  • the second electronic device 302 may receive the broadcast advertisement packet and transmit a connection request packet including ADV_PSM to the first electronic device 301 .
  • the first electronic device 301 may receive the connection request packet and determine whether the connection request packet includes the same ADV_PSM as ADV_PSM included in the advertisement packet. When the first electronic device 301 determines that the connection request packet includes the same ADV_PSM as the ADV_PSM included in the advertisement packet, the connection response including information indicating that the connection request of the second electronic device 302 is accepted The packet may be transmitted to the second electronic device 302 .
  • the first electronic device 301 allocates at least one channel for data packet transmission and/or reception with the second electronic device 302 , and transmits information on the allocated at least one channel to the second electronic device 302 . It may transmit to the electronic device 302 .
  • a data packet for a service related to a “clipboard copy” event may be transmitted and/or received through at least one allocated channel.
  • the data packet transmitted from the first electronic device 301 to the second electronic device 302 may include information stored in the temporary storage space of the memory 230 of the first electronic device 301 .
  • the second electronic device 302 receives a data packet from the first electronic device 301 and displays information included in the received data packet as shown in FIG. 3B . It can be displayed on the screen of (302). Based on these operations, for example, the same information 420 as the information 410 displayed on the screen of the first electronic device 301 may be displayed on the screen of the second electronic device 302 .
  • FIG. 3 illustrates a service related to a “copy clipboard” event as an example of a service related to a trigger event, the following services may be used without being limited thereto.
  • the first electronic device 301 allocates ADV_PSM to a service related to the trigger event (eg, recently executed application information providing service). can do.
  • the first electronic device 301 may broadcast an advertisement packet including the allocated ADV_PSM.
  • the first electronic device 301 when the first electronic device 301 receives a connection request packet including the same ADV_PSM as the ADV_PSM included in the advertisement packet from the second electronic device 302, information indicating that the connection request is accepted is included.
  • the connected connection response packet may be transmitted to the second electronic device 302 .
  • the first electronic device 301 allocates at least one channel for data packet transmission and/or reception with the second electronic device 302 , and transmits information on the allocated at least one channel to the second electronic device 302 . It may transmit to the electronic device 302 .
  • a data packet including information on an application executed in the first electronic device 301 may be transmitted and/or received through at least one allocated channel.
  • the second electronic device 302 may add and display the recently executed application history information of the second electronic device 302 based on the information on the application executed by the first electronic device 301 . have.
  • the first electronic device 301 when a trigger event in which the first electronic device 301 is connected to a Wi-Fi network occurs, the first electronic device 301 provides a service related to the trigger event (eg, an access point (AP)).
  • ADV_PSM can be assigned to the connection service).
  • the first electronic device 301 may broadcast an advertisement packet including the allocated ADV_PSM.
  • the first electronic device 301 when the first electronic device 301 receives a connection request packet including the same ADV_PSM as the ADV_PSM included in the advertisement packet from the second electronic device 302, information indicating that the connection request is accepted is included.
  • the connected connection response packet may be transmitted to the second electronic device 302 .
  • the first electronic device 301 allocates at least one channel for data packet transmission and/or reception with the second electronic device 302 , and transmits information on the allocated at least one channel to the second electronic device 302 . It may transmit to the electronic device 302 .
  • a data packet including Wi-Fi network connection information of the first electronic device 301 may be transmitted and/or received through at least one allocated channel.
  • the second electronic device 302 may connect to the same AP as the AP to which the first electronic device 301 is connected based on the Wi-Fi network connection information of the first electronic device 301 .
  • An electronic device 101 includes; communication circuitry 220; and at least one processor (eg, the processor 240 of FIG. 2 ), wherein the at least one processor includes, through the communication circuit 220 , at least one piece of first protocol/service information (eg, at least one ADV_PSM), and receives a connection request packet including at least one second protocol/service information from the external electronic device 102 through the communication circuit 220, and the at least When one piece of second protocol/service information is the same as the at least one piece of first protocol/service information, it may be configured to transmit a connection response packet to the external electronic device 102 .
  • the at least one processor includes, through the communication circuit 220 , at least one piece of first protocol/service information (eg, at least one ADV_PSM), and receives a connection request packet including at least one second protocol/service information from the external electronic device 102 through the communication circuit 220, and the at least When one piece of second protocol/service information is the same as the at least one piece of first protocol/service information, it may be
  • the at least one processor allocates at least one channel for transmitting and/or receiving at least one data packet with the external electronic device 102, and via the communication circuit 220, It can be configured to transmit information on the at least one allocated channel to the external electronic device 102 and transmit and/or receive at least one data packet with the external electronic device 101 on the allocated channel. have.
  • the advertisement packet includes a type field and a data field
  • the type field includes information indicating that data included in the data field is data set by the electronic device 101
  • the data field may include the at least one first protocol/service information and product identifier (ID) information of the electronic device 101 .
  • the data field may further include at least one of name information of the electronic device 101 , user information of the electronic device 101 , and user account information of the electronic device 101 .
  • the advertisement packet includes a type field and a data field
  • the type field includes information indicating that data included in the data field is data set by the electronic device 101
  • the data field may include the first protocol/service information and service identifier (ID) information of the electronic device 101 .
  • the data field may further include at least one of user account information, service type information, service name information, service provider information, and service description information of the electronic device.
  • the at least one processor generates encryption information based on user account information and a set security algorithm, and encrypts the at least one first protocol/service information based on the generated encryption information, It may be configured to generate the advertisement packet including the user account information and the encrypted at least one first protocol/service information, and to broadcast the generated advertisement packet through the communication circuit 220 .
  • An electronic device 101 includes; communication circuitry 220; and at least one processor (eg, the processor 240 of FIG. 2 ), wherein the at least one processor includes, through the communication circuit 220 , at least one piece of first protocol/service information (eg, at least one ADV_PSM) of the external electronic device 102 is received, and the connection request includes at least one second protocol/service information identical to at least one first protocol/service information included in the advertisement packet.
  • the connection request includes at least one second protocol/service information identical to at least one first protocol/service information included in the advertisement packet.
  • the at least one processor receives, through the communication circuit 220 , information on at least one channel allocated by the external electronic device 102 , and the received at least one channel is set as at least one channel for communication with the external electronic device 102 , and through the communication circuit 220 , transmits at least one data packet with the external electronic device 102 in the set at least one channel It may be configured to transmit and/or receive.
  • the advertisement packet includes a type field and a data field
  • the type field includes information indicating that data included in the data field is data set by the external electronic device 102
  • the data The field may include the at least one first protocol/service information and product identifier (ID) information of the external electronic device 102 .
  • the data field may further include at least one of name information of the external electronic device 102 , user information of the external electronic device 102 , or user account information of the external electronic device 102 .
  • the advertisement packet includes a type field and a data field
  • the type field includes information indicating that data included in the data field is data set by the external electronic device 102
  • the data The field may include the at least one first protocol/service information and service identifier (ID) information of the external electronic device 102 .
  • the data field may further include at least one of user account information, service type information, service name information, service provider information, and service description information of the electronic device.
  • the at least one processor when the at least one first protocol service information is encrypted, the at least one processor generates decryption information based on a preset security algorithm and user account information included in the advertisement packet, It may be configured to decrypt the encrypted at least one first protocol service information based on the generated decryption information.
  • 4A is a signal flow diagram 400 schematically illustrating an example of an operation of connecting electronic devices in a BLE network according to various embodiments of the present disclosure.
  • a first electronic device 401 may be an electronic device that provides a service
  • a second electronic device 402 may be an electronic device that receives a service.
  • the first electronic device 401 and/or the second electronic device 402 may be, for example, substantially the same as the electronic device 101 of FIG. 1 , respectively.
  • the first electronic device 401 may broadcast an advertisement packet.
  • the advertisement packet may include address information of the first electronic device 401 .
  • the advertisement packet may be periodically broadcast according to a set period.
  • the broadcast advertisement packet may be received by the second electronic device 402 .
  • the second electronic device 402 receives the advertisement packet, in operation 412 , based on the address of the first electronic device 401 included in the advertisement packet, the second electronic device 402 transmits an ACL connection request packet for requesting an ACL connection to the first electronic device. may transmit to device 401 .
  • the ACL connection may be, for example, a connection for transmitting and/or receiving a data packet between the first electronic device 401 and the second electronic device 402 .
  • the first electronic device 401 may receive the ACL connection request packet and determine whether to accept the ACL connection request of the second electronic device 402 . In operation 414 , the first electronic device 401 may transmit an ACL connection response packet including whether to accept the ACL connection request to the second electronic device 402 .
  • the second electronic device 402 may confirm that the connection with the first electronic device 401 has been successful.
  • a service search request packet for searching for at least one service provided by the first electronic device 401 may be transmitted to the first electronic device 401 .
  • the first electronic device 401 may transmit a service search response packet including service list information to the second electronic device 402 in response to the service search request packet.
  • the service search operation as shown in operation 416 and/or operation 418 may be a generic attribute profile (GATT)-based service search operation.
  • the GATT-based service search operation may include an operation for acquiring information included in the profile information of the first electronic device 401 .
  • the profile information of the first electronic device 401 may include one or more service elements, and the one or more service elements may include one or more characteristic elements.
  • the one or more service elements may include information (eg, blood pressure change detection service) on one or more services provided by the first electronic device 401
  • the one or more characteristic elements may include data (eg, a corresponding service) related to the service. blood pressure measurements).
  • one or more characteristic elements may have a property value.
  • the attribute value may indicate, for example, at least one of a read operation and a write operation.
  • the second electronic device 402 transmits a data packet to or from the first electronic device 401 based on an attribute value of at least one characteristic element among the one or more characteristic elements. can receive
  • the second electronic device 402 transmits a data packet including data to be included in the at least one characteristic element to the first electronic device in operation 420 . may transmit to device 401 .
  • the second electronic device 402 transmits the first data packet including the data included in the at least one characteristic element. It may be received from the electronic device 401 .
  • the channel on which operations 412 to 422 is performed may be a channel using an attribute (ATT) protocol, and may be a channel having a set CID (eg, “0X0004”).
  • ATT attribute
  • CID eg, “0X0004”.
  • connection operations for channel establishment in a state in which an ACL connection is established between electronic devices are performed as shown in FIG. 4B so that more data related to a service can be transmitted and/or received between electronic devices. can be performed together.
  • 4B is a signal flow diagram 460 schematically illustrating another example of an operation of connecting electronic devices in a BLE network according to various embodiments of the present disclosure.
  • a first electronic device 461 may be an electronic device that provides a service
  • a second electronic device 462 may be an electronic device that receives a service.
  • the first electronic device 461 and/or the second electronic device 462 may be, for example, substantially the same electronic device as the electronic device 101 of FIG. 1 , respectively.
  • the first electronic device 461 may broadcast an advertisement packet.
  • the advertisement packet may include address information of the first electronic device 461 .
  • the advertisement packet may be periodically broadcast according to a set period.
  • the broadcast advertisement packet may be received by the second electronic device 462 .
  • the second electronic device 462 Upon receiving the advertisement packet, in operation 432 , the second electronic device 462 first transmits an ACL connection request packet for requesting an ACL connection based on the address information of the first electronic device 461 included in the advertisement packet. It may transmit to the electronic device 461 .
  • the ACL connection may be, for example, a connection for transmitting and/or receiving a data packet between the first electronic device 461 and the second electronic device 462 .
  • the first electronic device 461 may receive the ACL connection request packet and determine whether to accept the ACL connection request of the second electronic device 462 . In operation 434 , the first electronic device 461 may transmit an ACL connection response packet including whether to accept the ACL connection request to the second electronic device 462 .
  • the second electronic device 462 may confirm that the connection with the first electronic device 461 has been successful.
  • a service search request packet for searching for at least one service provided by the first electronic device 461 may be transmitted to the first electronic device 461 .
  • the first electronic device 461 may transmit a service search response packet including service list information to the second electronic device 462 in response to the service search request packet.
  • the service discovery operation as shown in operation 436 and/or operation 438 may be a GATT-based service discovery operation.
  • the second electronic device 462 may select a service to be used based on service list information.
  • the second electronic device 462 may transmit a data packet for requesting to provide the SD_PSM allocated to the selected service to the first electronic device 461 .
  • the first electronic device 461 may transmit a data packet including SD_PSM to the second electronic device 462 in response to the data packet.
  • the second electronic device 462 may perform an operation for establishing a channel for service use while the first electronic device 461 and the ACL connection are established. For example, in operation 444 , the second electronic device 462 may transmit a connection request packet for channel establishment to the first electronic device 461 .
  • the connection request packet transmitted to the first electronic device 461 may include the SD_PSM obtained in operation 442 .
  • the first electronic device 461 when the connection request packet for channel establishment is received, the first electronic device 461 includes SD_PSM included in the connection request packet for channel establishment with the SD_PSM allocated to the service of the first electronic device 461 and It is possible to detect whether they are the same.
  • the first electronic device 461 transmits the connection response packet for channel establishment to the second in operation 446. It may transmit to the electronic device 462 .
  • the connection response packet for channel setting may include, for example, information indicating that the connection of the second electronic device 462 is accepted.
  • the first electronic device 461 allocates at least one channel for performing a data packet transmission and/or reception operation with the second electronic device 462 , and information on the allocated at least one channel may be transmitted to the second electronic device 625 .
  • the second electronic device 462 when the second electronic device 462 receives a connection response packet including information indicating that the connection is accepted, it detects that the connection with the first electronic device 461 has been successful, and the first electronic device 461 ) can receive information about the channel allocated by
  • the second electronic device 462 may transmit a data packet including service-related data to the first electronic device 461 through at least one channel indicated by the received information.
  • the second electronic device 462 may receive a data packet including service-related data from the first electronic device 461 in at least one channel indicated by the received information.
  • the order of operations 448 and 450 may be changed.
  • each of operations 448 and 450 may be performed one or more times, and one of operations 448 and 450 may be omitted.
  • the channel on which operations 432 to 442 are performed may be a channel using the ATT protocol, and may be a channel having a set CID (eg, “0X0004”).
  • the channel on which operations 444 and 446 are performed may be a signaling channel of the L2CAP layer, and may be a channel having a configured CID (eg, “0X0005”).
  • operations 448 and 450 are performed
  • the at least one channel to be used may be at least one channel having a set CID (eg, at least one of "0x0040-0xFFFF").
  • FIG. 5 is a signal flow diagram 500 schematically illustrating another example of an operation of connecting electronic devices in a BLE network according to various embodiments of the present disclosure.
  • a first electronic device 501 may be an electronic device that provides a service
  • a second electronic device 502 may be an electronic device that receives a service.
  • the first electronic device 501 and/or the second electronic device 502 may be, for example, substantially the same as the electronic device 101 of FIG. 1 .
  • the first electronic device 501 may detect the occurrence of a trigger event for transmitting an advertisement packet.
  • the trigger event is a screen power state change of the first electronic device 501 , a Wi-Fi connection state change of the first electronic device 501 , a call state change of the first electronic device 501 , and a second It may include an event related to at least one of a change in the operating state of the electronic device 502 and execution of an application by the first electronic device 501 .
  • the first electronic device 501 may allocate at least one ADV_PSM to at least one service related to the generated trigger event. For example, the first electronic device 501 may determine a protocol to be used for at least one service and check allocatable port numbers corresponding to the determined protocol. The first electronic device 501 may set at least one unused port number among allocatable port numbers as at least one ADV_PSM to be allocated to at least one service.
  • At least one ADV_PSM may be used as a protocol identifier. In an embodiment, since the at least one ADV_PSM may be set differently for each service, the at least one ADV_PSM may be used as a service identifier. According to an embodiment, since the range allocable for each protocol is different for the port number, when at least one ADV_PSM is checked, a used protocol may be checked. According to an embodiment, since a port number is allocated differently for each service, when at least one ADV_PSM is checked, an available service may be checked.
  • the first electronic device 501 may generate an advertisement packet including at least one set ADV_PSM.
  • the advertisement packet includes additional service information (eg, at least one of service ID information, service type information, service name information, service provider information, or service description information) or a first electronic Information related to the device 501 (eg, a company ID that manufactured the first electronic device 501 , name information of the first electronic device 501 , user information of the first electronic device 501 , or the first electronic device 501 ) 1 of the user account information of the electronic device 501).
  • the advertisement packet may further include information indicating that it is a connectable and scannable omni-directional advertisement type.
  • the connectable and scannable omni-directional advertisement type is, for example, that an external electronic device (eg, the second electronic device 502 ) that has received the advertisement packet can perform a connection operation to the first electronic device 501 . It may be an indicating type.
  • the first electronic device 501 may broadcast the generated advertisement packet.
  • the advertisement packet broadcast by the first electronic device 501 may be received by the second electronic device 502 .
  • the second electronic device 502 may be an external electronic device that performs a scan operation for receiving an advertisement packet.
  • the scan operation that may be performed by the second electronic device 502 may include an active scan operation.
  • the second electronic device 502 when receiving an advertisement packet, may notify the first electronic device 501 that the advertisement packet has been received. In an embodiment, when receiving the advertisement packet, the second electronic device 502 may transmit a scan request packet including information indicating that the advertisement packet has been received to the first electronic device 501 . Upon receiving the scan request packet, the first electronic device 501 may transmit a scan response packet corresponding to the scan request packet to the second electronic device 502 .
  • the second electronic device 502 may identify at least one ADV_PSM included in the received advertisement packet. In an embodiment, the second electronic device 502 may further check additional service information included in the received advertisement packet. Since the second electronic device 502 may obtain at least one ADV_PSM from the received advertisement packet or obtain at least one ADV_PSM and additional service information, the operation for searching for service information may be omitted. .
  • the second electronic device 502 performs a connection operation with the first electronic device 501 based on at least one ADV_PSM or at least one ADV_PSM obtained from the received advertisement packet and additional service information. can decide whether When the second electronic device 502 determines to perform a connection operation with the first electronic device 501, in operation 510, at least one ADV_PSM that is the same as at least one ADV_PSM included in the received advertisement packet.
  • a connection request packet may be transmitted to the first electronic device 501 .
  • connection request packet may be a credit-based connection request (eg, L2CAP_LE_CREDIT_BASED_CONNECTION_REQ) packet for requesting channel creation between the first electronic device 501 and the second electronic device 502 .
  • a credit-based connection request eg, L2CAP_LE_CREDIT_BASED_CONNECTION_REQ
  • connection request packet includes an ADV_PSM field, a code information field, an identifier information field, a length information field, a source CID information field, a maximum transmission unit (MTU) information field, a maximum protocol data unit ( It may further include at least one of a protocol data unit: PDU) payload size (maximum PDU payload size: MPS) information field and an initial credit information field.
  • the ADV_PSM field may include information indicating at least one ADV_PSM.
  • the code information field may include code information indicating that the corresponding packet is a connection request packet.
  • the identifier information field may include identifier information used to determine whether a connection response packet to the connection request packet is received. For example, when a connection response packet including identifier information identical to identifier information included in the connection request packet is received, the second electronic device 502 transmits the received connection response packet to the second electronic device 502 . It can be confirmed as a connection response packet for one connection request packet.
  • the length information field may include length information on at least one remaining field except for the code information field, the identifier information field, and the length information field included in the connection request packet.
  • the source CID information field is a channel that can be used for data packet transmission and/or reception with the first electronic device 501 when the second electronic device 502 is connected to the first electronic device 501 . It may contain information indicating According to an embodiment, a channel that can be used for data packet transmission and/or reception with the first electronic device 501 may be any one unused channel among configured channels (eg, 0x0040-0xFFFF).
  • the MTU information field may include information indicating the size of a maximum service data unit (SDU) that the second electronic device 502 can receive.
  • SDU maximum service data unit
  • the minimum SDU size that the second electronic device 502 can receive since the minimum SDU size that the second electronic device 502 can receive may be set, information on the minimum SDU size that the second electronic device 502 can receive is included in the connection request packet. may not be included. In an embodiment, the minimum SDU size that the second electronic device 502 can receive may be 23 bytes.
  • the MPS information field may include information indicating the maximum PDU payload size that the second electronic device 502 can receive.
  • the maximum PDU payload size may be, for example, 65533 bytes.
  • the minimum PDU payload size that the second electronic device 502 can receive since the minimum PDU payload size that the second electronic device 502 can receive may be set, information on the minimum PDU payload size that the second electronic device 502 can receive is It may not be included in the connection request packet. In an embodiment, the minimum PDU payload size that the second electronic device 502 can receive may be 23 bytes.
  • the initial credit information field may include frame number information indicating the number of frames that the first electronic device 501 can transmit to the second electronic device 502 .
  • the frame number information may be set to a value within a set range (eg, 0 to 65535) to indicate the number of frames that the first electronic device 501 can transmit to the second electronic device 502 .
  • Table 1 shows examples of fields that may be included in a connection request packet and values set for each field, according to an embodiment.
  • connection request packet may include “0X0080” as information indicating ADV_PSM.
  • the connection request packet according to an embodiment may further include the following information.
  • the connection request packet according to an embodiment includes “0X14”, which is code information indicating that it is a connection request packet, and “2”, which is identifier information used to check whether a connection response packet to the connection request packet is received, included in the connection request packet.
  • the first electronic device 501 may transmit a connection response packet to the above-described connection request packet to the second electronic device 502 .
  • the connection response packet may be a credit-based connection response (eg, L2CAP_LE_CREDIT_BASED_CONNECTION_RSP) packet.
  • connection response packet may include at least one of a code information field, an identifier information field, a length information field, a result information field, a destination CID field, an MTU information field, an MPS information field, or an initial credit information field.
  • the code information field may include code information indicating that it is a connection response packet.
  • the identifier information field may include identifier information identical to identifier information included in the connection request packet.
  • the length information field may include length information on at least one remaining field except for the code information field, the identifier information field, and the length information field included in the connection response packet.
  • the result information field includes information indicating whether to accept the connection request of the second electronic device 502 according to the connection request packet (eg, connection acceptance (0X0000) or connection rejection (0X0002)). can do.
  • the destination CID information field is a channel that can be used for data packet transmission and/or reception with the second electronic device 502 when the first electronic device 501 is connected to the second electronic device 502 . It may contain information indicating According to an embodiment, a channel that can be used for data packet transmission and/or reception with the second electronic device 502 may be any one unused channel among configured channels (eg, 0x0040-0xFFFF).
  • the MTU information field may include information indicating the size of the maximum SDU that the first electronic device 501 can receive.
  • the minimum SDU size that the first electronic device 501 can receive since the minimum SDU size that the first electronic device 501 can receive may be set, information on the minimum SDU size that the first electronic device 501 can receive is included in the connection response packet. may not be included. In an embodiment, the minimum SDU size that the first electronic device 501 can receive may be 23 bytes.
  • the MPS information field may include information indicating the maximum PDU payload size that the first electronic device 501 can receive.
  • the maximum PDU payload size may be, for example, 65533 bytes.
  • the minimum PDU payload size that the first electronic device 501 can receive since the minimum PDU payload size that the first electronic device 501 can receive may be set, information on the minimum PDU payload size that the first electronic device 501 can receive is It may not be included in the connection response packet. In an embodiment, the minimum PDU payload size that the first electronic device 501 can receive may be 23 bytes.
  • the initial credit information field may include frame information indicating the number of frames that the second electronic device 502 can transmit to the first electronic device 501 .
  • the frame number information is set to a value within a preset range (eg, 0 to 65535) to indicate the number of frames that the second electronic device 502 can transmit to the first electronic device 501 . can do.
  • Table 2 shows examples of fields that may be included in a connection response packet and values set for each field, according to an embodiment.
  • the connection response packet is code information, “0X15” indicating that it is a connection response packet, and “2”, which is identifier information used to indicate that it is a connection response packet to the connection request packet, code information included in the connection response packet.
  • identifier information, and length information “14” for information other than length information, information “0X0000” indicating acceptance of the connection request of the second electronic device 502 as result information, and destination CID information “0X0042” , MTU information “65535 bytes”, MPS information “251 bytes”, or initial credit information “65535” may include at least one.
  • the first electronic device 501 may establish a communication channel for transmitting and/or receiving data packets with the second electronic device 502 .
  • the first electronic device 501 accepts the connection request with the second electronic device 502 , it connects to a channel indicated by the source CID information (eg, 0X0041) included in the connection request packet;
  • a channel indicated by destination CID information (eg, 0X0042) included in the response packet may be set as a communication channel.
  • the first electronic device 501 may newly allocate a channel for communication with the second electronic device 502 .
  • the first electronic device 501 may transmit and/or receive a data packet for providing a service with the second electronic device 502 through an assigned channel.
  • the second electronic device 502 when at least one ADV_PSM is not included in the received advertisement packet, the second electronic device 502 performs The operations may be performed or operations of the second electronic device 462 included in operations 432 to 450 of FIG. 4B may be performed.
  • ADV_PSM or SD_PSM is not used, and service-related data packet transmission and/or reception operations may be performed based on an ACL connection operation and a GATT-based service search operation.
  • an ACL connection operation In operations 432 to 450 of FIG. 4B, an ACL connection operation, a service search operation, a data packet transmission and/or reception operation for obtaining SD_PSM, a connection operation for channel establishment using SD_PSM, and service-related data packet transmission and/or reception An action may be performed.
  • the advertisement packet may be transmitted on an advertisement physical channel, and may be periodically broadcast according to a set advertisement period (eg, 20 ms to 10.24 s).
  • the advertisement packet may have a format as illustrated in FIG. 6 .
  • FIG. 6 is a diagram 600 schematically illustrating an example of a format of an advertisement packet according to various embodiments of the present disclosure.
  • an advertisement packet includes a preamble field 602 , an access address field 604 , a PDU field 606 , and/or a cyclical redundancy check (CRC). field 608 .
  • the preamble field 602 may include one byte of information used to perform frequency synchronization and/or symbol timing estimation in an external electronic device (eg, the electronic device 102) that has received the advertisement packet.
  • the preamble field 602 may include a fixed sequence of 1 byte configured in the form of alternating bits of 0 and 1 based on the address information included in the access address field 604 .
  • the preamble field 602 may include “10101010” when the address information included in the access address field 604 starts with 1, and the address information included in the access address field 604 is set to 0. It may contain “01010101” when it starts.
  • the access address field 604 may include 4 bytes of address information for the advertisement packet.
  • the PDU field 606 may have a variable length from a minimum of 2 bytes to a maximum of 39 bytes. In one embodiment, the PDU field 606 may include an advertisement physical channel PDU.
  • the CRC field 608 may include 3-byte information used to detect an error with respect to an advertisement packet received from the external electronic device.
  • the PDU field 606 may include a header field 610 of 2 bytes and a payload field 612 that may have a maximum length of 37 bytes.
  • the header field 610 may include information indicating the type and length of data included in the payload field 612 . In an embodiment, the header field 610 may include information indicating that the type of data included in the payload field 612 is advertisement data.
  • the payload field 612 may have a variable length of 37 bytes or less, and may include an AdvA field 614 and an AdvData field 616 .
  • the AdvA field 614 may include the address 618 of the electronic device 101 that has transmitted the advertisement packet.
  • the address 618 of the electronic device 101 may be the MAC address of the electronic device 101 .
  • the AdvData field 616 may include advertisement data 620 of up to 31 bytes, and may include one or more advertising data (AD) elements.
  • the one or more AD elements may be, for example, N AD elements including AD 0 element 622 through AD N element 626 .
  • the one or more AD elements may each include a length field, a type field, and an AD data field.
  • 6 illustrates a length field 622 , a type field 630 , and an AD data field 632 that the AD 0 element 622 includes.
  • the AD N element 626 may include a length field, a type field, and an AD data field, like the AD 0 element 622 .
  • the length field 622 may include length information of the AD data field 632
  • the type field 630 may include type information of data included in the AD data field 630 .
  • the type field 630 may include information indicating at least one of data types as shown in Table 3 below.
  • the AD data field 630 may include at least one ADV_PSM.
  • the structure of the AD 0 element 622 according to an embodiment is as shown in FIG. 7 .
  • the AD 0 element 622 will be described as an example with reference to FIG. 7 , but the structure of the AD 0 element 622 illustrated in FIG. 7 may also be applied to the AD N element 626 .
  • FIG. 7 is a diagram schematically illustrating an example of an AD 0 element 622 according to various embodiments of the present disclosure.
  • the structure of the AD 0 element 622 may be defined by a number of formats.
  • the plurality of formats may include at least one of a format including company ID information and a format including service UUID information.
  • the format including the company ID information is as illustrated in (a) of FIG. 7 .
  • the AD 0 element 622 may include a length field 622 , a type field 630 , and an AD data field 632 .
  • the length field 622 may include length information of the AD data field 632 .
  • Length information included in the AD data field 632 may be, for example, 1 byte.
  • the type field 630 may include type information of data included in the AD data field 632 .
  • the type field 630 may include information indicating one of the data types listed in Table 3 above.
  • Information included in the type field 630 may have a length of 1 byte, for example.
  • the type field 630 includes information indicating a manufacturer-specific data type, according to an embodiment.
  • the AD data field 632 may include data set by the electronic device 101 .
  • the AD data field 632 may include a company ID field 712 including ID information of a company that manufactured the electronic device 101 .
  • the company ID information may have a length of 2 bytes, for example.
  • the AD data field 632 may include an ADV_PSM field 714 , or a data field 716 .
  • the ADV_PSM field 714 may include at least one ADV_PSM.
  • One ADV_PSM may have a length of 2 bytes, for example, and the length of the ADV_PSM field 714 may be changed based on the number of ADV_PSMs included in the ADV_PSM field 714 .
  • the data field 716 includes information related to the electronic device 101 (eg, name information of the electronic device 101 , user information of the electronic device 101 , or user account information of the electronic device 101 ). ) or service information of the electronic device 101 (eg, at least one of service ID information, service type information, service name information, service provider information, and service description information). Information included in the data field 716 may have a length of at least 0 bytes to a maximum of 25 bytes.
  • the arrangement order of fields included in the AD data field 632 may be changed.
  • (a) of FIG. 7 shows that "company ID field 712 + ADV_PSM field 714 + data field 716" is arranged in the order, but is not limited thereto, and AD data field 632 is not limited thereto.
  • the arrangement order of fields included in may be changed.
  • the data field 716 may be placed before the ADV_PSM field 714
  • the ADV_PSM field 714 may be placed before the company ID field 712 .
  • FIG. 7B is a diagram illustrating a format including a service UUID capable of defining the structure of the AD 0 element 622 according to an embodiment.
  • the AD 0 element 622 may include a length field 622 , a type field 630 , and an AD data field 632 .
  • the length field 622 may include length information of the AD data field 632 .
  • Information included in the length field 622 may have a length of 1 byte, for example.
  • the type field 630 may include type information of data included in the AD data field 632 .
  • Information included in the type field 630 may have a length of 1 byte, for example.
  • the type field 630 may include information indicating at least one of data types as shown in Table 3 above.
  • the type field 630 includes information indicating a manufacturer-specific data type, according to an embodiment.
  • the AD data field 632 may include a service UUID field 722 including service UUID information for identifying a service provided by the electronic device 101 .
  • the service UUID information may include, for example, information on one of a service UUID of 16 bits (2 bytes), a service UUID of 32 bits (4 bytes), or a service UUID of 128 bits (16 bytes).
  • the AD data field 632 may include an ADV_PSM field 724 , or a data field 726 .
  • the ADV_PSM field 724 may include at least one ADV_PSM.
  • the data field 726 includes service information (eg, at least one of service type information, service name information, service provider information, or service description information) of the electronic device 101 or the electronic device 101 and It may include at least one of related information (eg, name information of the electronic device 101 , user information of the electronic device 101 , or user account information of the electronic device 101 ).
  • the data field 726 may have a variable length, for example, a minimum of 0 bytes and a maximum of 24 bytes.
  • the arrangement order of fields included in the AD data field 632 may be changed.
  • (b) of FIG. 7 shows the arrangement of the "service UUID field 722 + ADV_PSM field 724 + data field 726" in the order, but the present invention is not limited thereto, and the AD data field 632 is not limited thereto.
  • the arrangement order of fields included in may be changed.
  • the data field 726 may be placed before the ADV_PSM field 724
  • the ADV_PSM field 724 may be placed before the service UUID field 722 .
  • the AD data field 632 may be formed in a format including company ID information, service UUID information, and ADV_PSM in addition to the format shown in FIGS. can
  • FIG. 8 is a flowchart 800 for explaining an operation in which the electronic device 101 provides a service to which ADV_PSM is allocated in a BLE network according to various embodiments of the present disclosure.
  • the processor 240 may monitor the occurrence of a trigger event for determining whether to generate an advertisement packet.
  • the processor 240 may monitor whether a trigger event is generated within a set time from the time the monitoring operation is started.
  • the trigger event may include a screen power state change of the electronic device 101 , a Wi-Fi connection state change of the electronic device 101 , a call state change of the electronic device 101 , and an external electronic device (eg, the electronic device 102 ). )), and an event related to at least one of an operation state change of the electronic device 101 or an application execution of the electronic device 101 .
  • the processor 240 may end the operation if the occurrence of the trigger event is not detected within a set time from the time when the monitoring operation is started.
  • the processor 240 allocates at least one ADV_PSM to at least one service related to the generated trigger event when the occurrence of the trigger event is detected within a set time from the time when the monitoring operation starts, and the allocated at least one An advertisement packet including ADV_PSM may be generated.
  • the processor 240 may broadcast the generated advertisement packet.
  • the processor 240 may detect whether a connection request packet including at least one ADV_PSM is received within a set time from the time when the advertisement packet is broadcast.
  • the connection request packet including at least one ADV_PSM may be a connection request packet for the external electronic device to request a connection with the electronic device 101 .
  • the processor 240 may end the operation.
  • connection request packet including at least one ADV_PSM is received within a set time from the time when the advertisement packet is broadcast
  • at least one ADV_PSM included in the received connection request packet is broadcast. It may be detected whether it is the same as at least one ADV_PSM included in the advertisement packet.
  • the processor 240 detects that the at least one ADV_PSM included in the received connection request packet is the same as the at least one ADV_PSM included in the broadcast advertisement packet, the processor 240 performs a connection request based on the received connection request packet.
  • the processor 240 can accept In addition, when the processor 240 detects that the at least one ADV_PSM included in the received connection request packet is different from the at least one ADV_PSM included in the broadcast advertisement packet, the connection based on the received connection request packet You can decline the request.
  • the processor 240 may generate a connection response packet including information on whether to accept or reject the connection request based on the received connection request packet.
  • the processor 240 may transmit the generated connection response packet to the external electronic device in operation 816 .
  • the processor 240 may transmit a connection response packet including information indicating that the connection request is accepted and establish a channel for communication with an external electronic device. For example, the processor 240 may allocate at least one channel and set the allocated at least one channel as a channel for communication with an external electronic device. In an embodiment, the processor 240 may transmit information on a set channel to an external electronic device.
  • the processor 240 when the external electronic device receives the connection response packet, it is sent to the channel or connection response packet corresponding to the source CID information included in the connection request packet. At least one of the channels corresponding to the included destination CID information may be set as a channel for communication with the electronic device 101 .
  • a channel established between the electronic device 101 and the external electronic device may be used for data packet transmission and/or reception operations between the electronic device 101 and the external electronic device.
  • FIG. 9 is a flowchart 900 for explaining an operation in which the electronic device 101 (eg, the second electronic device 502 of FIG. 5 ) receives a service to which ADV_PSM is allocated in a BLE network according to various embodiments of the present disclosure.
  • the electronic device 101 eg, the second electronic device 502 of FIG. 5
  • receives a service to which ADV_PSM is allocated in a BLE network according to various embodiments of the present disclosure.
  • the processor 240 may perform a scan operation to monitor whether an advertisement packet is received.
  • the scan operation may be performed for a set time.
  • the processor 240 may determine whether a broadcast advertisement packet is received within a set time period. In an embodiment, if the broadcast advertisement packet is not received within a set time, the processor 240 may end the operation.
  • the processor 240 may check whether at least one ADV_PSM is included in the received advertisement packet in operation 912 . In an embodiment, the processor 240 checks whether the received advertisement packet is related to a service to be used and/or whether the received advertisement packet is broadcast from an electronic device providing a service to be used, It may be checked whether at least one ADV_PSM is included in the received advertisement packet.
  • the processor 240 may obtain at least one of a company ID and a service UUID from the received advertisement packet. For example, when the processor 240 obtains the company ID from the received advertisement packet, the processor 240 may check whether the electronic device indicated by the obtained company ID is the same as the ID of the electronic device providing the desired service. have. The ID of the electronic device providing the service to be used may be stored in the memory 230 . When the ID of the electronic device that provides the service the electronic device wants to use is the same as the ID of the electronic device that is indicated by the obtained company ID, the processor 240 may check whether at least one ADV_PSM is included in the received advertisement packet.
  • the processor 240 may check whether the obtained service UUID is a UUID related to a service to be used.
  • the UUID related to the service to be used may be stored in the memory 230 .
  • the processor 240 may check whether at least one ADV_PSM is included in the received advertisement packet.
  • the processor 240 may end the operation illustrated in FIG. 9 and perform the operations illustrated in FIGS. 4A or 4B . .
  • the processor 240 In operation 914, if it is determined that at least one ADV_PSM is included in the received advertisement packet, in operation 916, the processor 240 generates a connection request packet including at least one ADV_PSM obtained from the received advertisement packet.
  • the processor 240 may transmit the generated connection request packet to an external electronic device that has broadcast the advertisement packet (eg, the first electronic device 501 of FIG. 5 ) through the communication circuit 220 . have.
  • the processor 240 based on information on the external electronic device included in the advertisement packet (eg, at least one of a MAC address of the external electronic device, a company ID of the external electronic device, or the name of the external electronic device).
  • the generated connection request packet may be transmitted to the external electronic device through the communication circuit 220 .
  • the processor 240 may receive a connection response packet to the connection request packet from the external electronic device.
  • the processor 240 may set at least one channel for communicating with an external electronic device.
  • the processor 240 receives information on at least one channel allocated by the external electronic device from the external electronic device, and communicates with the external electronic device through at least one channel based on the received information. You can set the channel for
  • the processor 240 may transmit and/or receive data packets with an external electronic device through at least one set channel.
  • the processor 240 uses at least one of a channel corresponding to the source CID information included in the connection request packet and a channel corresponding to the destination CID information included in the connection response packet as a channel for communication with an external electronic device. can be set.
  • 10A to 10C are flowcharts 1000 for explaining an operation of providing a service by the electronic device 101 (eg, the first electronic device 501 of FIG. 5 ) in a BLE network according to various embodiments of the present disclosure.
  • the processor 240 may monitor whether a trigger event for determining whether to generate an advertisement packet occurs.
  • the processor 240 may monitor whether a trigger event is generated within a set time from the time the monitoring operation is started.
  • the trigger event may include a screen power state change of the electronic device 101 , a Wi-Fi connection state change of the electronic device 101 , a call state change of the electronic device 101 , and an external electronic device (eg, the electronic device 102 ). )), and an event related to at least one of an operation state change of the electronic device 101 or an application execution of the electronic device 101 .
  • the processor 240 may end the operation if the occurrence of the trigger event is not detected within a set time from the time when the monitoring operation is started.
  • the processor 240 may allocate at least one ADV_PSM to at least one service related to the generated trigger event.
  • the processor 240 may generate an advertisement packet including the allocated at least one ADV_PSM, and in operation 1008 , through the communication circuit 220 , broadcast the generated advertisement packet.
  • At least one ADV_PSM may be used to establish a connection for using at least one service provided by the electronic device 101 .
  • the processor 240 may broadcast an advertisement packet through the communication circuit 220 and wait for reception of the connection request packet.
  • the processor 240 may receive a connection request packet through the communication circuit 220 .
  • the connection request packet may be received from an external electronic device (eg, the electronic device 102 ) that has performed a scan operation to receive the advertisement packet.
  • the processor 240 may detect whether at least one ADV_PSM is included in the connection request packet received from the external electronic device. For example, the processor 240 may detect whether the received connection request packet includes at least one ADV_PSM identical to at least one ADV_PSM included in the broadcast advertisement packet.
  • the processor 240 transmits a connection response packet to the communication circuit 220 may be transmitted to an external electronic device.
  • the connection response packet may include information indicating that the connection request of the external electronic device is accepted.
  • the processor 240 may set at least one channel for communication with an external electronic device.
  • the at least one channel may be at least one channel allocated by the processor 240 .
  • the at least one channel may be at least one of a channel corresponding to the source CID information included in the connection request packet and a channel corresponding to the destination CID information included in the connection response packet.
  • the processor 240 may transmit and/or receive at least one data packet related to an external electronic device and a service through the communication circuit 220 in at least one set channel.
  • operation 1012 when it is detected that at least one ADV_PSM is not included in the connection request packet received from the external electronic device, the processor 240 performs operation 1022 of FIG. At least one of operation 1042 of FIG. 10C followed by 2 may be performed.
  • the processor 240 determines whether the received connection request packet is an ACL connection request packet received on a set channel in operation 1022 .
  • the configured channel may be a channel having a CID of 0X0004, and may be different from a channel (eg, a channel having a CID of 0X0005) through which a connection request packet including at least one ADV_PSM may be received.
  • the processor 240 may transmit an ACL connection response packet to the external electronic device through the communication circuit 220 .
  • the ACL connection response packet may include information indicating that a connection request from an external electronic device (eg, the second electronic device 402 of FIG. 4A ) is accepted.
  • the processor 240 may receive a service search request packet from the external electronic device through the communication circuit 220 .
  • the service search request packet may include information for requesting to provide information on one or more services provided by the electronic device 101 .
  • the processor 240 may transmit a service search response packet to the external electronic device through the communication circuit 220 in response to the service search request packet.
  • the service search response packet may include service list information.
  • the service list information may include information on one or more services provided by the electronic device 101 .
  • the information on the one or more services may include information on whether at least one of a read operation and a write operation on data related to the service can be performed.
  • the processor 240 may transmit and/or receive a data packet with an external electronic device through the communication circuit 220 based on information on one or more services.
  • the processor 240 transmits the data packet including the service-related data to the external electronic device through the communication circuit 220 . can be sent to
  • the processor 240 may receive a data packet including service-related data as data for a write operation from the external electronic device through the communication circuit 220 .
  • the configured channel may be a channel having a CID of 0X0004, and may be different from a channel (eg, a channel having a CID of 0X0005) through which a connection request packet including at least one ADV_PSM may be received.
  • the processor 240 may transmit an ACL connection response packet to the external electronic device through the communication circuit 220 .
  • the ACL connection response packet may include information indicating acceptance of a connection request from an external electronic device (eg, the second electronic device 402 of FIG. 4B ).
  • the processor 240 may receive a service search request packet from the external electronic device through the communication circuit 220 .
  • the service search request packet may include information for requesting to provide information on one or more services provided by the electronic device 101 .
  • the processor 240 may transmit a service search response packet to the external electronic device through the communication circuit 220 in response to the service search request packet.
  • the service search response packet may include service list information.
  • the processor 240 may receive a data packet requesting SD_PSM from the external electronic device through the communication circuit 220 .
  • the requested SD_PSM may be related to a service included in the service list information.
  • the processor 240 may transmit a data packet including the requested SD_PSM to the external electronic device through the communication circuit 220 .
  • the processor 240 may check whether a connection request packet including SD_PSM is received from the external electronic device. The processor 240 may end the operation when the connection request packet including the SD_PSM is not received from the external electronic device.
  • the processor 240 may transmit a connection response packet to the external electronic device in operation 1056 .
  • the processor 240 may transmit the connection response packet to the external electronic device.
  • the processor 240 may set at least one channel for communicating with an external electronic device.
  • the processor 240 allocates at least one channel for performing communication with an external electronic device, and transmits information on the allocated at least one channel to the external electronic device through the communication circuit 220 .
  • the processor 240 may transmit and/or receive at least one data packet related to an external electronic device and a service through at least one allocated channel.
  • 11A to 11C are flowcharts 1100 for explaining an operation in which an electronic device (eg, the second electronic device 502 of FIG. 5 ) receives a service in a BLE network according to various embodiments of the present disclosure.
  • an electronic device eg, the second electronic device 502 of FIG. 5
  • receives a service in a BLE network according to various embodiments of the present disclosure.
  • the processor 240 performs a scan operation to monitor whether an advertisement packet broadcast by an external electronic device (eg, the first electronic device 501 of FIG. 5 ) is received. can do.
  • the scan operation may be performed for a set time.
  • the processor 240 may end the operation.
  • the processor 240 may check whether at least one ADV_PSM is included in the received advertisement packet in operation 1112 .
  • the processor 240 checks whether the received advertisement packet is related to a service to be used and/or whether the received advertisement packet is broadcast from an electronic device providing a service to be used, It may be checked whether at least one ADV_PSM is included in the received advertisement packet.
  • the processor 240 may obtain at least one of a company ID and a service UUID from the received advertisement packet. For example, when the processor 240 obtains the company ID from the received advertisement packet, the processor 240 may check whether the electronic device indicated by the obtained company ID is the same as the ID of the electronic device providing the desired service. have. The ID of the electronic device providing the service to be used may be stored in the memory 230 . When the ID of the electronic device that provides the service the electronic device wants to use is the same as the ID of the electronic device that is indicated by the obtained company ID, the processor 240 may check whether at least one ADV_PSM is included in the received advertisement packet.
  • the processor 240 may check whether the obtained service UUID is a UUID related to a service to be used.
  • the UUID related to the service to be used may be stored in the memory 230 .
  • the processor 240 may check whether at least one ADV_PSM is included in the received advertisement packet.
  • the processor 240 may generate a connection request packet including at least one ADV_PSM.
  • the processor 240 may transmit the generated connection request packet to the external electronic device that has broadcast the advertisement packet through the communication circuit 220 .
  • the processor 240 based on information on the external electronic device included in the advertisement packet (eg, at least one of a MAC address of the external electronic device, a company ID of the external electronic device, or the name of the external electronic device).
  • the generated connection request packet may be transmitted to the external electronic device through the communication circuit 220 .
  • the processor 240 when it is detected that at least one ADV_PSM is included in the advertisement packet, the processor 240 provides at least one service provided by the external electronic device based on information on at least one service included in the advertisement packet. You can decide whether to use it or not.
  • the processor 240 may transmit a connection request packet including at least one ADV_PSM to the external electronic device through the communication circuit 220 .
  • at least one ADV_PSM included in the connection request packet may be the same as at least one ADV_PSM included in the advertisement packet.
  • the processor 240 may receive a connection response packet from the external electronic device through the communication circuit 220 .
  • the processor 240 may determine that the connection with the external electronic device is successful.
  • the processor 240 may set at least one channel for communication with an external electronic device. For example, when information on at least one channel allocated by the external electronic device is received through the communication circuit 220 , the processor 240 may be configured to at least perform communication with the external electronic device based on the received information. One channel can be set. As another example, the processor 240 may set at least one of channels indicated by a source CID or a destination CID included in a connection request packet and a connection response packet including ADV_PSM, respectively, as a channel for communication with an external electronic device. have.
  • operation 1114 when it is confirmed that at least one ADV_PSM is not included in the received advertisement packet, the processor 240 follows operation 1122 of FIG. At least one of operation 1142 of FIG. 11C may be performed.
  • the processor 240 may transmit an ACL connection request packet to the external electronic device through the communication circuit 220 .
  • the ACL connection request packet may be transmitted on a configured channel, and the configured channel may be a channel having a CID of 0X0004.
  • the processor 240 may check whether an ACL connection response packet is received from the external electronic device through the communication circuit 220 . In an embodiment, if the ACL connection response packet is not received within the set time, the processor 240 repeats operation 1118 (eg, performing a scan operation to monitor whether an advertisement packet is received) of FIG. 11A again. can be done
  • the processor 240 may transmit a service search request packet to the external electronic device through the communication circuit 220 in operation 1146 .
  • the processor 240 may check whether a service search response packet is received from the external electronic device through the communication circuit 220 . In an embodiment, if the service search response packet is not received within the set time, the processor 240 repeats operation 1118 of FIG. 11A (eg, performing a scan operation to monitor whether an advertisement packet is received) again. can be done
  • the processor 240 may transmit and/or receive a data packet with an external electronic device through the communication circuit 220 in operation 1150 .
  • the service search response packet may include service list information.
  • the service list information may include information on one or more services provided by the electronic device 101 .
  • the information on the one or more services may include information on whether at least one of a read operation and a write operation on data related to the service can be performed.
  • the processor 240 may transmit and/or receive a data packet with an external electronic device through the communication circuit 220 based on information on one or more services.
  • the processor 240 when it is detected that the processor 240 can perform a read operation based on information on one or more services, the processor 240 transmits a data packet including data related to the service through the communication circuit 220 to the external electronic device. can be received from
  • the processor 240 when it is detected that the processor 240 can perform a write operation based on information on one or more services, the processor 240 transmits a data packet including data related to the service through the communication circuit 220 to the external electronic device. can be sent to
  • the processor 240 may transmit the ACL connection request packet to the external electronic device through the communication circuit 220 .
  • the ACL connection request packet may be transmitted on a configured channel, and the configured channel may be a channel having a CID of 0X0004.
  • the processor 240 may check whether an ACL connection response packet is received from the external electronic device through the communication circuit 220 . In an embodiment, if the ACL connection response packet is not received within the set time, the processor 240 repeats operation 1118 (eg, performing a scan operation to monitor whether an advertisement packet is received) of FIG. 11A again. can be done
  • the processor 240 may transmit a service discovery request packet to the external electronic device through the communication circuit 220 in operation 1166 .
  • the processor 240 may check whether a service search response packet is received from the external electronic device through the communication circuit 220 . In an embodiment, if the service search response packet is not received within the set time, the processor 240 repeats operation 1118 of FIG. 11A (eg, performing a scan operation to monitor whether an advertisement packet is received) again. can be done
  • the processor 240 may transmit a data packet requesting SD_PSM to the external electronic device through the communication circuit 220 in operation 1170 .
  • the service search response packet may include service list information, and the SD_PSM requested in operation 1170 may be related to a service included in the service list information.
  • the processor 240 may receive a data packet including the requested SD_PSM from the external electronic device through the communication circuit 220 .
  • the processor 240 may transmit a connection request packet including SD_PSM to the external electronic device through the communication circuit 220 .
  • the processor 240 may determine whether a connection response packet is received within a set time. In an embodiment, when the connection response packet is not received within the set time, the processor 240 performs operation 1118 (eg, performing a scan operation to monitor whether an advertisement packet is received) of FIG. 11A again. can do.
  • operation 1118 eg, performing a scan operation to monitor whether an advertisement packet is received
  • the processor 240 determines that the connection with the external electronic device is successful. can do.
  • the processor 240 may establish at least one communication channel with an external electronic device. For example, when information on at least one communication channel allocated by the external electronic device is received, the processor 240 may set at least one communication channel based on the received information. As another example, the processor 240 may set at least one of a channel indicated by the source CID information included in the connection request packet and a channel indicated by the destination CID information included in the connection response packet as the communication channel.
  • the processor 240 may transmit and/or receive at least one data packet related to an external electronic device and a service through at least one established communication channel.
  • FIG. 12 is a signal flow diagram 1200 schematically illustrating an example of an operation of filtering a connection request packet in a BLE network according to various embodiments of the present disclosure.
  • the operation of filtering the connection request packet in the electronic device 101 may be controlled by the operation of the processor 240 and the communication circuit 220 of the electronic device 101 .
  • the processor 240 may allocate one or more ADV_PSMs for one or more services.
  • the processor 240 may initiate one or more service servers for providing one or more services, and allocate one or more ADV_PSMs to use for connection with the one or more service servers.
  • one or more service servers may be initiated when one or more trigger events occur.
  • initiating one or more service servers may mean that the processor 240 starts an operation to provide one or more services.
  • the processor 240 may generate at least one advertisement packet including one or more ADV_PSMs assigned to one or more services.
  • the processor 240 may generate a permitted PSM list including one or more ADV_PSMs included in at least one advertisement packet, and may provide the permitted PSM list to the communication circuit 220 .
  • the processor 240 may request the communication circuit 220 to broadcast at least one advertisement packet.
  • the communication circuit 220 may broadcast at least one advertisement packet based on the request of the processor 240 .
  • the communication circuit 220 may receive one or more connection request packets from one or more external electronic devices.
  • the communication circuit 220 may perform a filtering operation on one or more connection request packets based on the permitted PSM list.
  • the filtering operation for one or more connection request packets may include the following operations.
  • the communication circuit 220 may detect whether one or more ADV_PSMs are included in one or more connection request packets. The communication circuitry may ignore the one or more connection request packets when the one or more ADV_PSMs are not included in the one or more connection packets. For example, if the one or more ADV_PSMs are not included in the one or more connection request packets, the communication circuit 220 considers the one or more connection request packets for an inappropriate connection request, respectively, and sends the one or more connection request packets to the processor ( 240) and may be discarded.
  • the communication circuit 220 when one or more ADV_PSMs are included in the one or more concatenation packets, the communication circuit 220 is configured such that the one or more ADV_PSMs included in the one or more concatenation packets are the same as the one or more ADV_PSMs included in the allowed PSM list. It can be detected whether one or more ADV_PSMs are included in the allowed PSM list.
  • the communication circuit 220 may ignore one or more connection request packets when one or more ADV_PSMs included in the one or more connection packets are not the same as one or more ADV_PSMs included in the allowed PSM list. For example, if the one or more ADV_PSMs included in the one or more connection request packets are not the same as the one or more ADV_PSMs included in the allowed PSM list, the communication circuit 220 may send the one or more connection request packets to the inappropriate connection request. As a result of this, one or more connection request packets may be discarded without forwarding them to the processor 240 .
  • the communication circuit 220 transmits the one or more connection request packets to the processor 240 in operation 1218. ) can be passed as
  • the processor 240 may determine whether to accept a connection request for one or more connection request packets transmitted from the communication circuit 220 . In operation 1220 , the processor 240 may transmit one or more connection response packets including information on whether to accept a connection request for one or more connection request packets to the communication circuit 220 . When one or more connection response packets are transmitted, the communication circuit 220 may transmit one or more connection response packets to one or more external electronic devices.
  • the processor 240 may set one or more channels for performing a data packet transmission and/or reception operation with one or more external electronic devices.
  • Data packet transmission and/or reception operations may include data packet transmission and/or reception operations for one or more services.
  • the communication circuit 220 may filter out one or more inappropriate connection request packets based on the allowed PSM list. Accordingly, since the processor 240 does not unnecessarily perform an operation due to one or more inappropriate connection request packets, it is possible to prevent wasted power due to the unnecessary operation.
  • ADV_PSM included in the advertisement packet may be encrypted for security.
  • FIG. 13 is a signal flow diagram 1300 schematically illustrating an example of an operation of providing a secure ADV_PSM in a BLE network according to various embodiments of the present disclosure.
  • a first electronic device 1301 may be an electronic device that provides a service assigned with ADV_PSM
  • a second electronic device 1302 may be an electronic device that receives a service assigned with ADV_PSM.
  • the first electronic device 1301 and/or the second electronic device 1302 may be the same electronic device as the electronic device 101 of FIG. 1 .
  • the first electronic device 1301 and the second electronic device 1302 obtain security information for common use by the first electronic device 1301 and the second electronic device 1302 .
  • can create In an embodiment, when the user of the first electronic device 1301 and the second electronic device 1302 is the same, the first electronic device 1301 and the second electronic device 1302 have the same user information (eg, a user account). information) can be used to create security information.
  • the first electronic device 1301 and the second electronic device 1302 may generate security information based on user information and a set security algorithm.
  • the set security algorithm may be a secure hash algorithm (SHA) 256.
  • the user information may be used as an input value of a security function based on SHA 256, and the output value of the security function generates security information to be commonly used by the first electronic device 1301 and the second electronic device 1302 .
  • SHA secure hash algorithm
  • Table 4 exemplifies the result of inputting user information into the SHA256 function.
  • SHA256() may indicate a security function based on SHA256
  • user information may indicate an input value of the security function
  • SOURCE may indicate an output value of the security function.
  • some of the output values of the security function may be used as security information.
  • a value (0xC1B4) having the same length as the length (eg, 2 bytes) of ADV_PSM may be used as security information.
  • information input to the SHA256 function may be at least one of date information and model information instead of user information.
  • the first electronic device 1301 may encrypt ADV_PSM based on the generated security information in operation 1304 .
  • the first electronic device 1301 may encrypt ADV_PSM by performing an exclusive or (XOR) operation in units of bytes on the security information and ADV_PSM.
  • Table 5 exemplifies that the result of byte-unit XOR operation on security information (eg 0xC1B4) and ADV_PSM (eg 0x0081) is generated as a result of ADV_PSM encryption (eg 0xC1 0x35 (0xC135)).
  • the first electronic device 1301 may generate an advertisement packet including the encrypted ADV_PSM.
  • the first electronic device 1301 may broadcast the generated advertisement packet in operation 1308 .
  • the broadcast advertisement packet may be received by the second electronic device 1302 .
  • the second electronic device 1302 may obtain an encrypted ADV_PSM from the received advertisement packet, and decrypt the encrypted ADV_PSM based on the security information in operation 1310 .
  • the second electronic device 1302 may decrypt the encrypted ADV_PSM by performing a byte-by-byte XOR operation on the security information and the encrypted ADV_PSM.
  • Table 6 illustrates that the result of XOR operation in bytes for security information (eg 0xC1B4) and encrypted ADV_PSM (eg 0xC135) is generated as a result of decrypting the encrypted ADV_PSM (eg 0x00 0x81 (0x0081)) will be.
  • the second electronic device 1302 may transmit a connection request packet including the decrypted ADV_PSM to the first electronic device 1301 .
  • a connection response packet including information indicating that the connection request is accepted is received from the first electronic device 1301
  • the second electronic device 1302 determines that the connection with the first electronic device 1301 has been successful, and At least one channel for communication with the electronic device 1301 may be set.
  • the first electronic device 1301 may start an operation for providing a service to generate an advertisement packet.
  • the first electronic device 1301 may generate an advertisement packet including service information, user account information, and ADV_PSM.
  • Service information may have a length of 2 bytes
  • user account information may have a length of 6 bytes
  • ADV_PSM may have a length of 2 bytes.
  • the first electronic device 1301 may encrypt ADV_PSM to be included in the advertisement packet.
  • the first electronic device 1301 may generate security information based on user account information and a set security algorithm (eg, SHA 256).
  • ADV_PSM may be included in the ADV_PSM field 632 shown in FIG. 7A
  • service information and user account information may be included in the data field 716 .
  • the data field 716 may be disposed before the ADV_PSM field 632 .
  • service information, user account information, and ADV_PSM may be included in the advertisement packet in the order of service information, user account information, and ADV_PSM.
  • the type field 630 may include information indicating that the data type included in the advertisement data field 632 is a type including data set by the first electronic device 1301 (eg, a manufacturer-specific data type). .
  • the second electronic device 1302 receives the broadcast advertisement packet, and receives “02 18 11 A1 F5 F9 11 5B CF 88 7E C8 A7 95” from the advertisement data field 711 of the received advertisement packet. such information can be obtained.
  • the second electronic device 1302 considers that “service information (3 bytes) + user account information (6 bytes) + ADV_PSM (2 bytes)” is included in order, and the encrypted ADV_PSM (eg: 7E C8) can be identified.
  • the second electronic device 1302 may decrypt the encrypted ADV_PSM by performing a byte-by-byte XOR operation on the encrypted ADV_PSM with the security information set in the same manner as the first electronic device 1301 .
  • the second electronic device 1302 may transmit a connection request packet including the decrypted ADV_PSM (eg, 0x0080) to the first electronic device 1301 .
  • the second electronic device 1302 may determine that the connection with the first electronic device 1301 has been successful.
  • first protocol/service information eg, at least one ADV_PSM
  • an operation of allocating at least one channel for transmitting and/or receiving at least one data packet with the external electronic device and transmitting information on the assigned at least one channel to the external electronic device and transmitting and/or receiving at least one data packet with the external electronic device through the assigned channel.
  • the advertisement packet includes a type field 630 and a data field 632 , and the type field 630 indicates that the data included in the data field 632 is data set by the electronic device.
  • information and the data field 632 may include the at least one first protocol/service information 714 and product identifier (ID) information 712 of the electronic device.
  • the data field 632 may further include at least one 716 of name information of the electronic device, user information of the electronic device, or user account information of the electronic device.
  • the advertisement packet includes a type field 630 and a data field 632 , and the type field 630 indicates that the data included in the data field 632 is data set by the electronic device.
  • information and the data field 632 may include the at least one first protocol/service information 724 and service identifier (ID) information 722 of the electronic device.
  • the data field 632 may further include at least one 726 of user account information, service type information, service name information, service provider information, and service description information of the electronic device.
  • a method in the method for the electronic device (101, 502) to receive protocol/service information, the operation (506) (910) of receiving an advertisement packet including at least one piece of first protocol/service information (eg, at least one ADV_PSM) ) 1110, and generating a connection request packet including at least one second protocol/service information identical to at least one first protocol/service information included in the advertisement packet (508, 916, 1116); , operations (510, 918, 1118) of transmitting the connection request packet to the external electronic device (102. 501), and operations (512, 920, 1120) of receiving a connection response packet from the external electronic device may include

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 개시의 다양한 실시 예들은 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법을 제공한다. 일 실시 예에 따른 전자 장치는 적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 브로드캐스트하고, 외부 전자 장치로부터 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 수신하고, 상기 적어도 하나의 제 2 프로토콜/서비스 정보가 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 경우, 상기 외부 전자 장치로 연결 응답 패킷을 송신할 수 있다.

Description

프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법
본 개시의 다양한 실시 예들은 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법에 관한 것이다.
근거리 통신 방식들 중 하나인 저전력 블루투스(bluetooth low energy: BLE) 방식은 약 2.4GHz 주파수 대역에서 저전력 저용량 데이터 송신 및/또는 수신할 수 있다. BLE 방식을 사용하는 전자 장치들은 전자 장치들 간 연결 동작 및 데이터 송신 및/또는 수신 동작을 수행하는 시간 동안에만 활성화 모드로 동작하고, 그 외의 시간 동안에는 슬립 모드(sleep mode)로 동작할 수 있다. 따라서 BLE 방식이 사용될 경우 전자 장치들의 전력 소비는 일반적인 블루투스 방식이 사용될 때와 비교하여 줄어들 수 있다. 이에 따라, BLE 방식은 헬스 케어 장치, 센서 장치, 또는 웨어러블(wearable) 전자 장치(예: BLE 이어폰, 스마트 시계, 또는 스마트 안경)와 같이 전력 공급이 제한되는 전자 장치들에서 주로 사용될 수 있다.
한편, BLE 방식을 사용하는 전자 장치는 외부 전자 장치와의 통신을 위해 광고 패킷(advertisement packet)을 브로드캐스트할 수 있다. 외부 전자 장치는 광고 패킷에 포함된 광고 데이터(예: 전자 장치의 주소)를 기반으로 광고 패킷을 송신한 전자 장치를 인식하고, 인식한 전자 장치에 연결을 요청할 수 있다.
외부 전자 장치는 전자 장치가 연결 요청을 수락할 경우, 전자 장치에 대한 서비스 검색 동작을 수행하여 전자 장치로부터 서비스 목록 정보를 획득할 수 있다. 외부 전자 장치는 획득한 서비스 목록 정보를 기반으로 이용할 서비스를 선택하고, 선택된 서비스에 대한 데이터 패킷 송신 및/또는 수신 동작을 수행할 수 있다.
일 예로서, 외부 전자 장치는 선택된 서비스가 기록(write) 동작이 가능한 특성(characteristic) 정보를 포함하는 경우, 특성 정보에 포함될 데이터를 포함하는 데이터 패킷을 전자 장치로 송신할 수 있다. 다른 예로서, 외부 전자 장치는 선택된 서비스가 읽기(read) 동작이 가능한 특성 정보를 포함하는 경우, 특성 정보에 포함된 데이터를 포함하는 데이터 패킷을 전자 장치로부터 수신할 수 있다.
외부 전자 장치는 서비스 목록 정보를 기반으로 이용할 서비스를 선택하고, 상기와 같은 데이터 패킷 송신 및/또는 수신 동작을 수행하는 것 대신에, 선택된 서비스를 이용하기 위한 연결 정보를 획득할 수 있다. 외부 전자 장치는 획득한 연결 정보를 기반으로 서비스 이용을 위한 연결을 설정하기 위한 동작을 수행할 수 있다. 예를 들어, 서비스 이용을 위한 연결은 BLE 프로토콜 스택(protocol stack)의 논리적 링크 제어 및 적응 프로토콜(logical link control and adaptation protocol: L2CAP) 계층(layer)에서 수행될 수 있다.
L2CAP 계층에서는 전자 장치들 간의 연결을 위해 프로토콜/서비스 정보가 이용될 수 있다. 프로토콜/서비스 정보는 일 예로, 프로토콜 서비스 멀티플렉서(protocol service multiplexer: PSM) 정보가 될 수 있다. 외부 전자 장치는 프로토콜/서비스 정보를 획득하기 위하여 일 예로, 전자 장치에 대한 서비스 검색 동작, 서비스 검색 동작을 기반으로 서비스를 선택하는 동작, 및/또는 선택된 서비스를 이용하기 위한 프로토콜/서비스 정보를 전자 장치로 요청하는 동작을 수행할 수 있다.
L2CAP 계층에서는 프로토콜들 및 서비스들에 대한 다중화(multiplexing)가 지원될 수 있다. 이에 따라, L2CAP 계층에서는 다양한 프로토콜들을 기반으로 하는 복수개의 서비스들에 대한 연결들이 존재할 수 있다. PSM 정보는 L2CAP 계층에서의 전자 장치들 간의 연결이 어떠한 프로토콜을 기반으로 하는지를 확인하기 위해 사용될 수 있다. 또한, PSM 정보는 동일한 프로토콜을 기반으로 하는 복수개의 연결들을 구분하기 위한 포트(port) 번호로서 사용될 수 있다.
BLE 방식을 이용한 통신을 위해서는 일 예로, 광고 패킷 송신 및/또는 수신 동작, 전자 장치들 간 연결 동작, 및/또는 서비스 검색 동작이 수행될 수 있다.
또 다른 예로, BLE 방식을 이용한 통신을 위해서는 광고 패킷 송신 및/또는 수신 동작, 전자 장치들 간 연결 동작, 서비스 검색 동작, 프로토콜/서비스 정보 요청 동작, 및/또는 프로토콜/서비스 정보를 기반으로 연결을 설정하는 동작이 수행될 수 있다.
따라서 전자 장치들 간에 BLE 방식을 이용한 통신을 위해서는 다수의 동작들이 수행되어야 하므로, 통신을 시작하기까지 많은 시간이 필요할 수 있고 전자 장치들의 전력도 많이 소모될 수 있다.
본 개시의 다양한 실시 예들은 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법을 제공할 수 있다.
본 개시의 다양한 실시 예들은 BLE 방식을 기반으로 하는 근거리 통신 네트워크에서 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법을 제공할 수 있다.
본 개시의 다양한 실시 예들은 BLE 방식을 기반으로 하는 근거리 통신 네트워크에서 암호화된 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법을 제공할 수 있다.
다양한 실시 예들에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 다양한 실시 예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 다양한 실시 예들에 따른 전자 장치는; 통신 회로; 및 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 상기 통신 회로를 통해, 적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 브로드캐스트하고, 상기 통신 회로를 통해, 외부 전자 장치로부터 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 수신하고, 상기 적어도 하나의 제 2 프로토콜/서비스 정보가 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 경우, 상기 외부 전자 장치로 연결 응답 패킷을 송신하도록 설정될 수 있다.
본 개시의 다양한 실시 예들에 따른 전자 장치는; 통신 회로; 및 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 상기 통신 회로를 통해, 적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 외부 전자 장치로부터 수신하고, 상기 광고 패킷에 포함된 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 생성하고, 상기 통신 회로를 통해, 상기 연결 요청 패킷을 상기 외부 전자 장치로 송신하고, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 연결 응답 패킷을 수신하도록 설정될 수 있다.
본 개시의 다양한 실시 예들에 따른 방법은; 전자 장치가 프로토콜/서비스 정보를 송신하는 방법에 있어서, 적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 브로드캐스트 하는 동작과, 외부 전자 장치로부터 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 수신하는 동작과, 상기 적어도 하나의 제 2 프로토콜/서비스 정보가 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 경우, 상기 외부 전자 장치로 연결 응답 패킷을 송신하는 동작을 포함할 수 있다.
본 개시의 다양한 실시 예들에 따른 방법은; 전자 장치가 프로토콜/서비스 정보를 수신하는 방법에 있어서, 적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 외부 전자 장치로부터 수신하는 동작과, 상기 광고 패킷에 포함된 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 생성하는 동작과, 상기 연결 요청 패킷을 상기 외부 전자 장치로 송신하는 동작과, 상기 외부 전자 장치로부터 연결 응답 패킷을 수신하는 동작을 포함할 수 있다.
본 개시의 다양한 실시 예들에 따른 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법은, 프로토콜/서비스 정보를 광고 패킷을 통해 송신 및/또는 수신할 수 있도록 함으로써 서비스 검색 동작 없이 전자 장치들 간 연결을 설정하도록 할 수 있다. 따라서, 전자 장치들 간에 연결을 위한 절차는 간소화될 수 있으며, 간소화된 절차에 따라 시간 및/또는 자원이 절약될 수 있다.
도 1은 다양한 실시 예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 다양한 실시 예들에 따른 전자 장치의 블록도이다.
도 3은 다양한 실시 예들에 따른 트리거 이벤트와 관련된 서비스의 일 예를 도시한 도면이다.
도 4a는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치들을 연결하는 동작의 일 예를 개략적으로 도시하고 있는 신호 흐름도이다.
도 4b는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치들을 연결하는 동작의 다른 예를 개략적으로 도시하고 있는 신호 흐름도이다.
도 5는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치들을 연결하는 동작의 또 다른 예를 개략적으로 도시하고 있는 신호 흐름도이다.
도 6은 다양한 실시 예들에 따른 광고 패킷의 일 예를 개략적으로 도시하고 있는 도면이다.
도 7은 다양한 실시 예들에 따른 AD0 엘리먼트의 일 예를 개략적으로 도시하고 있는 도면이다.
도 8은 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치가 ADV_PSM이 할당된 서비스를 제공하는 동작을 설명하기 위한 흐름도이다.
도 9는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치가 ADV_PSM이 할당된 서비스를 제공받는 동작을 설명하기 위한 흐름도이다.
도 10a, 도 10b, 및 도 10c는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치가 서비스를 제공하는 동작을 설명하기 위한 흐름도이다.
도 11a, 도 11b, 및 도 11c는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치가 서비스를 제공받는 동작을 설명하기 위한 흐름도이다.
도 12는 다양한 실시 예들에 따른 BLE 네트워크에서 연결 요청 패킷을 필터링하는 동작의 일 예를 개략적으로 도시하고 있는 신호 흐름도이다.
도 13은 다양한 실시 예들에 따른 BLE 네트워크에서 보안 ADV_PSM을 제공하는 동작의 일 예를 개략적으로 도시하고 있는 신호 흐름도이다.
이하 본 개시의 다양한 실시 예들을 첨부된 도면을 참조하여 상세히 설명한다. 그리고, 본 개시의 다양한 실시 예들을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 다양한 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시의 다양한 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 개시의 다양한 실시 예들을 한정하려는 의도가 아님을 유의해야 한다. 또는, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또는, 본 명세서에서 사용되는 기술적인 용어가 본 개시의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또는, 본 개시의 다양한 실시예들에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
도 1은 다양한 실시 예들에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블록도(100)이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시 예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시 예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시 예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시 예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시 예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시 예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시 예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시 예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시 예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시 예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시 예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시 예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
다양한 실시 예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시 예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시 예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시 예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시 예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
본 개시의 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 개시의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 개시의 다양한 실시 예들 및 이에 사용된 용어들은 본 개시에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 개시에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 개시의 다양한 실시 예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 개시의 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
본 개시의 다양한 실시 예들을 구체적으로 설명함에 있어서, 저전력 블루투스(bluetooth low energy: BLE) 규격들을 참조로 할 것이지만, 본 개시의 주요한 요지는 유사한 기술적 배경을 가지는 여타의 통신 시스템들에도 본 개시의 범위를 크게 벗어나지 않는 범위에서 약간의 변형으로 적용 가능하며, 이는 본 개시의 기술 분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다.
본 개시의 다양한 실시 예들은 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법을 제공할 수 있다.
다양한 실시 예들에 따르면, 프로토콜/서비스 정보는 프로토콜 서비스 멀티플렉서(protocol service multiplexer: PSM) 정보가 될 수 있다. 다양한 실시 예들에 따르면, 프로토콜/서비스 정보는 광고 패킷 및/또는 연결 요청 패킷에 하나 이상 포함될 수 있다.
다양한 실시 예들에 따르면, 프로토콜/서비스 정보는 BLE 프로토콜 스택의 논리적 링크 제어 및 적응 프로토콜(logical link control and adaptation protocol: L2CAP) 계층(layer)에서 채널(예: 연결 지향형 채널(connection-oriented channel: CoC))을 설정하기 위해 사용될 수 있다. 다양한 실시 예들에 따르면, 전자 장치는 프로토콜/서비스 정보를 포함하는 광고 패킷을 외부 전자 장치로부터 수신한 경우, L2CAP 계층에서 채널을 설정하기 위한 연결 요청 패킷을 외부 전자 장치로 송신할 수 있다.
이하에서는 다양한 실시 예들에 따른 서비스 검색 동작을 수행하고 획득할 수 있는 프로토콜/서비스 정보를 “SD_PSM”이라 칭하기로 하고, 광고 패킷에 포함될 수 있는 프로토콜/서비스 정보를 “ADV_PSM“이라 칭하기로 한다.
도 2는 다양한 실시 예들에 따른 전자 장치(101)의 블록도(200)이다.
도 2를 참조하면, 일 실시 예에서, 전자 장치(101)는 디스플레이(210), 통신 회로(220), 메모리(230), 및/또는 프로세서(240)를 포함할 수 있다.
일 실시 예에서, 디스플레이(210)는 프로세서(240)의 제어에 따라, 프로세서(240)에 의해 생성된 정보, 통신 회로(220)를 통해 송신 및/또는 수신된 정보, 또는 설정된 통신 방식(예: BLE 방식)을 기반으로 적어도 하나의 외부 전자 장치(예: 전자 장치(102))와 연결하고 통신하는 동작을 시각적으로 표시할 수 있다. 일 실시 예에서, 디스플레이(210)는 도 1의 디스플레이 모듈(160)에 포함될 수 있다.
일 실시 예에서, 통신 회로(220)는 BLE 방식을 기반으로 외부 전자 장치와 통신을 수행할 수 있다. 일 실시 예에서, 통신 회로(220)는 프로세서(240)의 제어 하에 광고 패킷 브로드캐스트 동작, 외부 전자 장치가 브로드캐스트한 광고 패킷을 수신하기 위한 스캔 동작, 비동기식 비연결형(asynchronous connectionless: ACL) 연결 동작, 서비스 검색 요청 패킷 송신 및/수신 동작, 서비스 검색 응답 패킷 송신 및/수신 동작, 채널 설정을 위한 연결 요청 패킷 송신 및/또는 수신 동작, 또는 데이터 패킷 송신 및/수신 동작 중 적어도 하나를 수행할 수 있다.
일 실시 예에서, 통신 회로(220)는 도 1의 통신 모듈(190)에 포함될 수 있다.
일 실시 예에서, 메모리(230)는 통신 회로(220)에서 송신 및/또는 수신된 정보 및 프로세서(240)에 의해 생성된 정보를 저장할 수 있다. 다양한 실시 예들에 따라, 메모리(230)는 서비스를 제공하거나 제공받기 위해 사용하는 어플리케이션에 대한 정보, 적어도 하나의 서비스에 할당된 적어도 하나의 ADV_PSM에 대한 정보, 외부 전자 장치와의 연결 또는 채널 설정을 위한 정보, 명령, 및/또는 지시자를 저장할 수 있다.
일 실시 예에서, 메모리(230)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있고, 도 1의 메모리(130)에 포함될 수 있다.
일 실시 예에서, 프로세서(240)는 적어도 하나의 서비스를 제공하기 위한 다음과 같은 동작들을 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 광고 패킷을 생성할지 여부를 결정하기 위한 트리거 이벤트(trigger)의 발생을 모니터링할 수 있다. 일 실시 예에서, 프로세서(240)는 모니터링 동작이 시작된 시점부터 설정된 시간 이내에 트리거 이벤트가 발생되는지 여부를 모니터링할 수 있다. 트리거 이벤트는 예를 들어, 다음과 같은 이벤트들 중 적어도 하나를 포함할 수 있다. 다만, 트리거 이벤트가 이에 한정되는 것은 아닐 수 있다.
- 전자 장치(101)에서 특정 어플리케이션(예: 인터넷, 컨텍트(contact), 또는 노트 어플리케이션 중 적어도 하나) 실행
- 전자 장치(101)의 화면 전원 상태(켜짐/꺼짐(on/off)) 변경
- 전자 장치(101)의 Wi-Fi 연결 상태(켜짐/꺼짐/연결됨(Wi-Fi on/off/connected)) 변경
- 전자 장치(101)의 클립보드 복사(clipboard copy)
- 전자 장치(101)의 호 상태(call state)(예: 유휴(idle) 상태/벨 울림(ringing) 상태/통화 중 상태) 변경
- 외부 전자 장치의 동작 상태 변경(예: 외부 전자 장치가 웨어러블 장치인 경우 착용 상태 변경, 또는 외부 전자 장치의 네트워크 연결 상태 변경)
일 실시 예에서, 프로세서(240)는 트리거 이벤트가 발생된 경우, 발생된 트리거 이벤트와 관련된 적어도 하나의 서비스에 적어도 하나의 ADV_PSM을 할당하고, 할당된 적어도 하나의 ADV_PSM을 포함하는 광고 패킷을 생성할 수 있다. 프로세서(240)는 생성된 광고 패킷을 브로드캐스트하도록 통신 회로(220)를 제어할 수 있다.
일 실시 예에서, 적어도 하나의 ADV_PSM은 전자 장치(101)에 의해 제공되는 적어도 하나의 서비스를 이용하기 위한 연결을 설정하기 위해 사용될 수 있다. 이에 따라, 프로세서(240)는 통신 회로(220)를 통해 광고 패킷을 브로드캐스트하고 연결 요청 패킷의 수신을 대기할 수 있다.
일 실시 예에서, 프로세서(240)는 연결 요청 패킷이 수신되었음을 통신 회로(220)를 통해 확인할 수 있다. 일 실시 예에서, 연결 요청 패킷은 광고 패킷을 수신하기 위해 스캔 동작을 수행한 외부 전자 장치(예: 전자 장치(102))로부터 수신될 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 연결 요청 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 수신된 연결 요청 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는 경우, 수신된 연결 요청 패킷에 포함된 적어도 하나의 ADV_PSM이 광고 패킷에 포함된 적어도 하나의 ADV_PSM과 동일한지 여부를 확인할 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 연결 요청 패킷에 포함된 적어도 하나의 ADV_PSM이 광고 패킷에 포함된 적어도 하나의 ADV_PSM과 동일하지 않은 경우, 수신된 연결 요청 패킷을 적절하지 않은 연결 요청 패킷으로 판단하여 폐기할 수 있다. 다른 예로서, 프로세서(240)는 광고 패킷에 포함된 적어도 하나의 ADV_PSM에 대한 정보를 통신 회로(220)로 전달하여, 통신 회로(220)에서 적절하지 않은 연결 요청 패킷을 프로세서(240)로 전달하지 않고 폐기하도록 지시할 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 연결 요청 패킷에 포함된 적어도 하나의 ADV_PSM이 광고 패킷에 포함된 적어도 하나의 ADV_PSM과 동일한 경우, 연결 응답 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 연결 응답 패킷은 외부 전자 장치의 연결 요청을 수락함을 나타내는 정보를 포함할 수 있다.
일 실시 예에서, 프로세서(240)는 외부 전자 장치와 통신을 수행하기 위한 적어도 하나의 채널을 설정할 수 있다. 예를 들어, 프로세서(240)는 외부 전자 장치와 통신을 수행하기 위한 적어도 하나의 채널을 할당하고, 할당된 적어도 하나의 채널에 대한 정보를 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 프로세서(240)는 할당된 적어도 하나의 채널에서 외부 전자 장치와 적어도 하나의 서비스와 관련된 적어도 하나의 데이터 패킷을 통신 회로(220)를 통해 송신 및/또는 수신할 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 연결 요청 패킷에 적어도 하나의 ADV_PSM이 포함되어 있지 않은 경우, 수신된 연결 요청 패킷이 설정된 채널에서 수신된 ACL 연결 요청 패킷인지 여부를 확인할 수 있다. 일 실시 예에서, 설정된 채널은 채널 식별자(channel identifier: CID)가 0X0004인 채널일 수 있고, 적어도 하나의 ADV_PSM이 포함된 연결 요청 패킷이 수신될 수 있는 채널(예: CID가 0X0005인 채널)과 상이할 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 연결 요청 패킷이 설정된 채널에서 수신된 ACL 연결 요청 패킷으로 확인되면, ACL 연결 응답 패킷을 외부 전자 장치로 송신할 수 있다.
일 실시 예에서, 서비스 검색 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다. 서비스 검색 요청 패킷은 전자 장치(101)에 의해 제공되는 하나 이상의 서비스들에 대한 정보를 제공해줄 것을 요청하기 위한 정보를 포함할 수 있다. 프로세서(240)는 서비스 검색 요청 패킷에 대한 응답으로, 서비스 검색 응답 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 서비스 검색 응답 패킷은 서비스 목록 정보를 포함할 수 있다.
일 실시 예에서, 프로세서(240)는 ACL 연결을 통해 외부 전자 장치가 선택한 서비스와 관련된 데이터 패킷을 외부 전자 장치와 송신 및/또는 수신하도록 통신 회로(220)를 제어할 수 있다.
다른 예에서, 프로세서(240)는 ACL 연결을 통해 SD_PSM을 요청하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다. SD_PSM은 일 예로, 외부 전자 장치가 선택한 전자 장치(101)의 서비스에 할당된 것일 수 있다. 프로세서(240)는 SD_PSM을 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신하고, 외부 전자 장치가 선택한 서비스와 관련된 데이터 패킷을 외부 전자 장치와 송신 및/또는 수신하도록 통신 회로(220)를 제어할 수 있다.
일 실시 예에서, 프로세서(240)는 적어도 하나의 서비스를 제공받기 위한 다음과 같은 동작들을 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 스캔 동작을 수행하여 외부 전자 장치(예: 전자 장치(102))에 의해 브로드캐스트된 광고 패킷이 수신되는지 여부를 모니터링할 수 있다. 일 실시 예에서, 스캔 동작은 설정된 시간 동안 수행될 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 이내에 브로드캐스트된 광고 패킷이 수신되면, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함됨이 확인되면, 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷을 생성할 수 있다. 프로세서(240)는 생성된 연결 요청 패킷을 통신 회로(220)를 통해, 광고 패킷을 브로드캐스트한 외부 전자 장치로 송신할 수 있다.
일 실시 예에서, 프로세서(240)는 광고 패킷에 포함된 외부 전자 장치에 대한 정보(예: 외부 전자 장치의 매체 접속 제어(media access control: MAC) 주소, 외부 전자 장치의 제품 식별자(identifier: ID), 또는 외부 전자 장치의 이름 중 적어도 하나)를 기반으로, 생성된 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
일 실시 예에서, 프로세서(240)는 광고 패킷에 적어도 하나의 ADV_PSM이 포함됨이 확인되면, 광고 패킷에 포함된 적어도 하나의 서비스에 대한 정보를 기반으로 외부 전자 장치에 의해 제공되는 적어도 하나의 서비스를 이용할지 여부를 결정할 수 있다. 프로세서(240)는 외부 전자 장치에 의해 제공되는 적어도 하나의 서비스를 이용하기로 결정한 경우, 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
일 실시 예에서, 프로세서(240)는 통신 회로(220)를 통해, 외부 전자 장치로부터 연결 응답 패킷을 수신할 수 있다. 일 실시 예에서, 프로세서(240)는 수신된 연결 응답 패킷에 연결 요청을 수락함을 나타내는 정보가 포함된 경우, 외부 전자 장치와의 연결이 성공된 것으로 판단할 수 있다.
일 실시 예에서, 프로세서(240)는 외부 전자 장치와의 통신을 위한 적어도 하나의 채널을 설정할 수 있다. 예를 들어, 프로세서(240)는 외부 전자 장치에 의해 할당된 적어도 하나의 채널에 대한 정보가 통신 회로(220)를 통해 수신되면, 수신된 정보를 기반으로 외부 전자 장치와의 통신을 위한 적어도 하나의 채널을 설정할 수 있다.
일 실시 예에서, 프로세서(240)는 적어도 하나의 채널에서 외부 전자 장치와 데이터 패킷 송신 및/또는 수신 동작을 수행하도록 통신 회로(220)를 제어할 수 있다.
또 다른 예로, 프로세서(240)는 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있지 않은 것으로 확인되면, ACL 연결 동작 또는 CoC 설정을 위한 연결 동작을 통해 서비스를 제공받을 수 있다.
일 실시 예에서, 프로세서(204)는 ACL 연결 동작으로 다음과 같은 동작을 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 ACL 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. ACL 연결 요청 패킷은 일 예로, 설정된 채널에서 송신될 수 있으며, 설정된 채널은 CID가 0X0004인 채널일 수 있다.
일 실시 예에서, 프로세서(240)는 통신 회로(220)를 통해, 외부 전자 장치로부터 ACL 연결 응답 패킷이 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 ACL 연결 응답 패킷이 수신되지 않는 경우, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 다시 모니터링할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 ACL 연결 응답 패킷이 수신된 경우, 서비스 검색 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 프로세서(240)는 통신 회로(220)를 통해, 서비스 검색 응답 패킷이 외부 전자 장치로부터 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 서비스 검색 응답 패킷이 수신되지 않는 경우, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 다시 모니터링할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 서비스 검색 응답 패킷이 수신된 경우, 통신 회로(220)를 통해, 외부 전자 장치와 데이터 패킷 송신 및/또는 수신 동작을 수행할 수 있다. 일 실시 예에서, 서비스 검색 응답 패킷은 서비스 목록 정보를 포함할 수 있다.
일 실시 예에서, 서비스 목록 정보는 전자 장치(101)가 제공하는 하나 이상의 서비스들에 대한 정보를 포함할 수 있다. 하나 이상의 서비스들에 대한 정보는 서비스와 관련된 데이터에 대한 읽기 동작 또는 기록 동작 중 적어도 하나를 수행할 수 있는지에 대한 정보를 포함할 수 있다. 프로세서(240)는 하나 이상의 서비스들에 대한 정보를 기반으로, 통신 회로(220)를 통해 외부 전자 장치와 데이터 패킷 송신 및/또는 수신 동작을 수행할 수 있다.
예를 들어, 프로세서(240)는 하나 이상의 서비스들에 대한 정보를 기반으로 읽기 동작을 수행할 수 있음이 검출되면, 서비스와 관련된 데이터를 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다.
또 다른 예로, 프로세서(240)는 하나 이상의 서비스들에 대한 정보를 기반으로 기록 동작을 수행할 수 있음이 검출되면, 서비스와 관련된 데이터를 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
일 실시 예에서, 프로세서(204)는 CoC 설정을 위한 연결 동작으로서 다음과 같은 동작을 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 ACL 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. ACL 연결 요청 패킷은 일 예로, 설정된 채널에서 송신될 수 있으며, 설정된 채널은 CID가 0X0004인 채널일 수 있다.
일 실시 예에서, 프로세서(240)는 통신 회로(220)를 통해, 외부 전자 장치로부터 ACL 연결 응답 패킷이 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 ACL 연결 응답 패킷이 수신되지 않는 경우, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 다시 모니터링할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 ACL 연결 응답 패킷이 수신된 경우, 서비스 검색 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 프로세서(240)는 통신 회로(220)를 통해, 서비스 검색 응답 패킷이 외부 전자 장치로부터 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 서비스 검색 응답 패킷이 수신되지 않는 경우, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 다시 모니터링할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 서비스 검색 응답 패킷이 수신된 경우, 통신 회로(220)를 통해, 외부 전자 장치와 데이터 패킷 송신 및/또는 수신 동작을 수행할 수 있다. 일 실시 예에서, 서비스 검색 응답 패킷은 서비스 목록 정보를 포함할 수 있고, 프로세서(240)는 서비스 목록 정보를 기반으로 이용할 서비스를 선택할 수 있다.
일 실시 예에서, 프로세서(240)는 선택된 서비스에 대한 SD_PSM을 요청하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신하고, 요청된 SD_PSM을 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다.
일 실시 예에서, 프로세서(240)는 SD_PSM을 포함하는 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. SD_PSM을 포함하는 연결 요청 패킷은 일 예로, 채널을 설정하기 위한 연결 요청일 수 있고, 설정할 채널은 서비스와 관련된 데이터 패킷 송신 및/또는 수신 동작을 수행하기 위한 채널을 나타낼 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 연결 응답 패킷이 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 연결 응답 패킷이 수신되지 않는 경우, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 다시 모니터링할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 연결 응답 패킷이 수신되고, 수신된 연결 응답 패킷에 연결 요청을 수락함을 나타내는 정보가 포함된 경우, 외부 전자 장치와의 연결이 성공된 것으로 판단할 수 있다.
일 실시 예에서, 프로세서(240)는 외부 전자 장치와의 적어도 하나의 통신 채널을 설정할 수 있다. 예를 들어, 프로세서(240)는 외부 전자 장치에 의해 할당된 적어도 하나의 통신 채널에 대한 정보가 수신되면, 수신된 정보를 기반으로 적어도 하나의 통신 채널을 설정할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 적어도 하나의 통신 채널을 통해 외부 전자 장치와 서비스와 관련된 적어도 하나의 데이터 패킷을 송신 및/또는 수신할 수 있다.
다양한 실시 예들에 따라, 프로세서(240)는 후술될 전자 장치(101)와 관련된 동작들을 수행할 수 있다.
도 3은 다양한 실시 예들에 따른 트리거 이벤트와 관련된 서비스의 일 예를 도시한 도면(300)이다.
도 3에서, 제 1 전자 장치(301)는 서비스를 제공하는 전자 장치일 수 있고, 제 2 전자 장치(302)는 서비스를 제공받는 전자 장치일 수 있다. 제 1 전자 장치(301) 및/또는 제 2 전자 장치(302)는 예를 들어, 도 1의 전자 장치(101) 또는 도 2의 전자 장치(200)와 실질적으로 동일한 전자 장치일 수 있다.
일 실시 예에서, 제 1 전자 장치(301)는 트리거 이벤트가 발생하면 트리거 이벤트와 관련된 서비스를 확인할 수 있다. 예를 들어, 제 1 전자 장치(301)는 도 3의 (a)에 나타난 바와 같은 “클립보드 복사” 이벤트가 발생되었음을 검출하고, “클립보드 복사” 이벤트와 관련된 서비스를 확인할 수 있다.
일 실시 예에서, “클립보드 복사” 이벤트는 제 1 전자 장치(301)의 디스플레이(210)에 표시된 텍스트(예: “SAMSUNG ELECTONICS”)가 메모리(230)의 임시 저장 공간에 저장되는 이벤트를 나타낼 수 있다.
일 실시 예에서, 제 1 전자 장치(301)는 확인된 서비스에 ADV_PSM을 할당하고, 할당된 ADV_PSM을 포함하는 광고 패킷을 브로드캐스트할 수 있다.
일 실시 예에서, 제 2 전자 장치(302)는 브로드캐스트된 광고 패킷을 수신하고, ADV_PSM을 포함하는 연결 요청 패킷을 제 1 전자 장치(301)로 송신할 수 있다.
일 실시 예에서, 제 1 전자 장치(301)는 연결 요청 패킷을 수신하고, 연결 요청 패킷이 광고 패킷에 포함된 ADV_PSM과 동일한 ADV_PSM을 포함하는지 여부를 판단할 수 있다. 제 1 전자 장치(301)는 연결 요청 패킷이 광고 패킷에 포함된 ADV_PSM과 동일한 ADV_PSM을 포함하고 있는 것을 확인한 경우, 제 2 전자 장치(302)의 연결 요청을 수락함을 나타내는 정보가 포함된 연결 응답 패킷을 제 2 전자 장치(302)로 송신할 수 있다.
일 실시 예에서, 제 1 전자 장치(301)는 제 2 전자 장치(302)와의 데이터 패킷 송신 및/또는 수신을 위한 적어도 하나의 채널을 할당하고, 할당된 적어도 하나의 채널에 대한 정보를 제 2 전자 장치(302)로 송신할 수 있다. 일 실시 예에서, 할당된 적어도 하나의 채널에서는 “클립보드 복사” 이벤트와 관련된 서비스에 대한 데이터 패킷이 송신 및/또는 수신될 수 있다. 예를 들어, 제 1 전자 장치(301)에서 제 2 전자 장치(302)로 송신되는 데이터 패킷에는 제 1 전자 장치(301)의 메모리(230)의 임시 저장 공간에 저장된 정보가 포함될 수 있다.
일 실시 예에서, 제 2 전자 장치(302)는 제 1 전자 장치(301)로부터 데이터 패킷을 수신하고, 수신된 데이터 패킷에 포함된 정보를 도 3의 (b)에 나타난 바와 같이 제 2 전자 장치(302)의 화면에 표시할 수 있다. 이와 같은 동작들을 기반으로, 예를 들어, 제 2 전자 장치(302)의 화면에는 제 1 전자 장치(301)의 화면에 표시되었던 정보(410)와 동일한 정보(420)가 표시될 수 있다.
도 3에서는 트리거 이벤트와 관련된 서비스로서 “클립보드 복사” 이벤트와 관련된 서비스를 일 예로 도시하였으나, 이에 한정되지 않고 다음과 같은 서비스들이 이용될 수 있다.
예를 들어, 제 1 전자 장치(301)는 제 1 전자 장치(301)에서 특정 어플리케이션이 실행되는 트리거 이벤트가 발생한 경우, 트리거 이벤트와 관련된 서비스(예: 최근 실행 어플리케이션 정보 제공 서비스)에 ADV_PSM을 할당할 수 있다. 제 1 전자 장치(301)는 할당된 ADV_PSM을 포함하는 광고 패킷을 브로드캐스트할 수 있다.
일 실시 예에서, 제 1 전자 장치(301)는 제 2 전자 장치(302)로부터 광고 패킷에 포함된 ADV_PSM과 동일한 ADV_PSM을 포함하는 연결 요청 패킷을 수신하면, 연결 요청을 수락함을 나타내는 정보가 포함된 연결 응답 패킷을 제 2 전자 장치(302)로 송신할 수 있다.
일 실시 예에서, 제 1 전자 장치(301)는 제 2 전자 장치(302)와의 데이터 패킷 송신 및/또는 수신을 위한 적어도 하나의 채널을 할당하고, 할당된 적어도 하나의 채널에 대한 정보를 제 2 전자 장치(302)로 송신할 수 있다. 일 실시 예에서, 할당된 적어도 하나의 채널에서는 제 1 전자 장치(301)에서 실행된 어플리케이션에 대한 정보를 포함하는 데이터 패킷이 송신 및/또는 수신될 수 있다. 일 실시 예에서, 제 2 전자 장치(302)는 제 1 전자 장치(301)에서 실행된 어플리케이션에 대한 정보를 기반으로 제 2 전자 장치(302)의 최근 실행된 어플리케이션 이력 정보에 추가하고 표시할 수 있다.
또 다른 예로서, 제 1 전자 장치(301)는 제 1 전자 장치(301)가 Wi-Fi 네트워크에 연결되는 트리거 이벤트가 발생한 경우, 트리거 이벤트와 관련된 서비스(예: 액세스 포인트(access point: AP) 연결 서비스)에 ADV_PSM을 할당할 수 있다. 제 1 전자 장치(301)는 할당된 ADV_PSM을 포함하는 광고 패킷을 브로드캐스트할 수 있다.
일 실시 예에서, 제 1 전자 장치(301)는 제 2 전자 장치(302)로부터 광고 패킷에 포함된 ADV_PSM과 동일한 ADV_PSM을 포함하는 연결 요청 패킷을 수신하면, 연결 요청을 수락함을 나타내는 정보가 포함된 연결 응답 패킷을 제 2 전자 장치(302)로 송신할 수 있다.
일 실시 예에서, 제 1 전자 장치(301)는 제 2 전자 장치(302)와의 데이터 패킷 송신 및/또는 수신을 위한 적어도 하나의 채널을 할당하고, 할당된 적어도 하나의 채널에 대한 정보를 제 2 전자 장치(302)로 송신할 수 있다. 일 실시 예에서, 할당된 적어도 하나의 채널에서는 제 1 전자 장치(301)의 Wi-Fi 네트워크 연결 정보를 포함하는 데이터 패킷이 송신 및/또는 수신될 수 있다. 일 실시 예에서, 제 2 전자 장치(302)는 제 1 전자 장치(301)의 Wi-Fi 네트워크 연결 정보를 기반으로, 제 1 전자 장치(301)가 연결된 AP와 동일한 AP에 연결할 수 있다.
본 개시의 다양한 실시 예들에 따른 전자 장치(101)는; 통신 회로(220); 및 적어도 하나의 프로세서(예: 도 2의 프로세서(240))를 포함하며, 상기 적어도 하나의 프로세서는, 상기 통신 회로(220)를 통해, 적어도 하나의 제 1 프로토콜/서비스 정보(예: 적어도 하나의 ADV_PSM)를 포함하는 광고 패킷을 브로드캐스트하고, 상기 통신 회로(220)를 통해, 외부 전자 장치(102)로부터 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 수신하고, 상기 적어도 하나의 제 2 프로토콜/서비스 정보가 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 경우, 상기 외부 전자 장치(102)로 연결 응답 패킷을 송신하도록 설정될 수 있다.
다양한 실시 예에서, 상기 적어도 하나의 프로세서는, 상기 외부 전자 장치(102)와 적어도 하나의 데이터 패킷을 송신 및/또는 수신하기 위한 적어도 하나의 채널을 할당하고, 상기 통신 회로(220)를 통해, 상기 할당된 적어도 하나의 채널에 대한 정보를 상기 외부 전자 장치(102)로 송신하고, 상기 할당된 채널에서 상기 외부 전자 장치(101)와 적어도 하나의 데이터 패킷을 송신 및/또는 수신하도록 설정될 수 있다.
다양한 실시 예에서, 상기 광고 패킷은 타입 필드와 데이터 필드를 포함하고, 상기 타입 필드는 상기 데이터 필드에 포함된 데이터가 상기 전자 장치(101)에 의해 설정된 데이터임을 나타내는 정보를 포함하고, 상기 데이터 필드는 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 상기 전자 장치(101)의 제품 식별자(identifier: ID) 정보를 포함할 수 있다.
다양한 실시 예에서, 상기 데이터 필드는 상기 전자 장치(101)의 이름 정보, 상기 전자 장치(101)의 사용자 정보, 또는 상기 전자 장치(101)의 사용자 계정 정보 중 적어도 하나를 더 포함할 수 있다.
다양한 실시 예에서, 상기 광고 패킷은 타입 필드와 데이터 필드를 포함하고, 상기 타입 필드는 상기 데이터 필드에 포함된 데이터가 상기 전자 장치(101)에 의해 설정된 데이터임을 나타내는 정보를 포함하고, 상기 데이터 필드는 상기 제 1 프로토콜/서비스 정보와 상기 전자 장치(101)의 서비스 식별자(identifier: ID) 정보를 포함할 수 있다.
다양한 실시 예에서, 상기 데이터 필드는 상기 전자 장치의 사용자 계정 정보, 서비스 타입 정보, 서비스 이름 정보, 서비스 제공자 정보, 또는 서비스 설명 정보 중 적어도 하나를 더 포함할 수 있다.
다양한 실시 예에서, 상기 적어도 하나의 프로세서는, 사용자 계정 정보와 설정된 보안 알고리즘을 기반으로 암호화 정보를 생성하고, 상기 생성된 암호화 정보를 기반으로 상기 적어도 하나의 제 1 프로토콜/서비스 정보를 암호화하고, 상기 사용자 계정 정보와 상기 암호화된 적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 상기 광고 패킷을 생성하고, 상기 통신 회로(220)를 통해, 상기 생성된 광고 패킷을 브로드캐스트하도록 설정될 수 있다.
본 개시의 다양한 실시 예들에 따른 전자 장치(101)는; 통신 회로(220); 및 적어도 하나의 프로세서(예: 도 2의 프로세서(240))를 포함하며, 상기 적어도 하나의 프로세서는, 상기 통신 회로(220)를 통해, 적어도 하나의 제 1 프로토콜/서비스 정보(예: 적어도 하나의 ADV_PSM)를 포함하는 광고 패킷을 외부 전자 장치(102)로부터 수신하고, 상기 광고 패킷에 포함된 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 생성하고, 상기 통신 회로(220)를 통해, 상기 연결 요청 패킷을 상기 외부 전자 장치(102)로 송신하고, 상기 통신 회로(220)를 통해, 상기 외부 전자 장치(102)로부터 연결 응답 패킷을 수신하도록 설정될 수 있다.
다양한 실시 예에서, 상기 적어도 하나의 프로세서는, 상기 통신 회로(220)를 통해, 상기 외부 전자 장치(102)에 의해 할당된 적어도 하나의 채널에 대한 정보를 수신하고, 상기 수신된 적어도 하나의 채널을 상기 외부 전자 장치(102)와의 통신을 위한 적어도 하나의 채널로 설정하고, 상기 통신 회로(220)를 통해, 상기 설정된 적어도 하나의 채널에서 상기 외부 전자 장치(102)와 적어도 하나의 데이터 패킷을 송신 및/또는 수신하도록 설정될 수 있다.
다양한 실시 예에서, 상기 광고 패킷은 타입 필드와 데이터 필드를 포함하고, 상기 타입 필드는 상기 데이터 필드에 포함된 데이터가 상기 외부 전자 장치(102)에 의해 설정된 데이터임을 나타내는 정보를 포함하고, 상기 데이터 필드는 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 상기 외부 전자 장치(102)의 제품 식별자(identifier: ID) 정보를 포함할 수 있다.
다양한 실시 예에서, 상기 데이터 필드는 상기 외부 전자 장치(102)의 이름 정보, 상기 외부 전자 장치(102)의 사용자 정보, 또는 상기 외부 전자 장치(102)의 사용자 계정 정보 중 적어도 하나를 더 포함할 수 있다.
다양한 실시 예에서, 상기 광고 패킷은 타입 필드와 데이터 필드를 포함하고, 상기 타입 필드는 상기 데이터 필드에 포함된 데이터가 상기 외부 전자 장치(102)에 의해 설정된 데이터임을 나타내는 정보를 포함하고, 상기 데이터 필드는 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 상기 외부 전자 장치(102)의 서비스 식별자(identifier: ID) 정보를 포함할 수 있다.
다양한 실시 예에서, 상기 데이터 필드는 상기 전자 장치의 사용자 계정 정보, 서비스 타입 정보, 서비스 이름 정보, 서비스 제공자 정보, 또는 서비스 설명 정보 중 적어도 하나를 더 포함할 수 있다.
다양한 실시 예에서, 상기 적어도 하나의 프로세서는, 상기 적어도 하나의 제 1 프로토콜 서비스 정보가 암호화 된 경우, 미리 설정된 보안 알고리즘 및 상기 광고 패킷에 포함된 사용자 계정 정보를 기반으로 해독화 정보를 생성하고, 상기 생성된 해독화 정보를 기반으로 상기 암호화된 적어도 하나의 제 1 프로토콜 서비스 정보를 해독화하도록 설정될 수 있다.
도 4a는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치들을 연결하는 동작의 일 예를 개략적으로 도시하고 있는 신호 흐름도(400)이다.
도 4a에서, 제 1 전자 장치(401)는 서비스를 제공하는 전자 장치이고, 제 2 전자 장치(402)는 서비스를 제공받는 전자 장치일 수 있다. 제 1 전자 장치(401) 및/또는 제 2 전자 장치(402)는 예를 들어, 각각 도 1의 전자 장치(101)와 실질적으로 동일한 전자 장치일 수 있다.
도 4a를 참조하면, 동작 410에서, 제 1 전자 장치(401)는 광고 패킷을 브로드캐스트할 수 있다. 광고 패킷에는 제 1 전자 장치(401)의 주소 정보가 포함될 수 있다. 광고 패킷은 설정된 주기에 따라 주기적으로 브로드캐스트될 수 있다.
일 실시 예에서, 브로드캐스트된 광고 패킷은 제 2 전자 장치(402)에 의해 수신될 수 있다. 제 2 전자 장치(402)는 광고 패킷을 수신하면, 동작 412에서, 광고 패킷에 포함된 제 1 전자 장치(401)의 주소를 기반으로, ACL 연결을 요청하기 위한 ACL 연결 요청 패킷을 제 1 전자 장치(401)로 송신할 수 있다. ACL 연결은 일 예로, 제 1 전자 장치(401)와 제 2 전자 장치(402) 간의 데이터 패킷 송신 및/또는 수신을 위한 연결이 될 수 있다.
제 1 전자 장치(401)는 ACL 연결 요청 패킷을 수신하고, 제 2 전자 장치(402)의 ACL 연결 요청을 수락할지 여부를 결정할 수 있다. 제 1 전자 장치(401)는 동작 414에서, ACL 연결 요청을 수락할지 여부가 포함된 ACL 연결 응답 패킷을 제 2 전자 장치(402)로 송신할 수 있다.
일 실시 예에서, 제 2 전자 장치(402)는 ACL 연결 응답 패킷에 ACL 연결 요청을 수락함을 나타내는 정보가 포함된 경우, 제 1 전자 장치(401)와의 연결이 성공되었음을 확인할 수 있다.
제 2 전자 장치(402)는 제 1 전자 장치(401)와의 연결이 성공되었음을 확인하면, 동작 416에서, 제 1 전자 장치(401)에 의해 제공되는 적어도 하나의 서비스를 검색하기 위한 서비스 검색 요청 패킷을 제 1 전자 장치(401)로 송신할 수 있다. 동작 418에서, 제 1 전자 장치(401)는 서비스 검색 요청 패킷에 대한 응답으로, 서비스 목록 정보를 포함하는 서비스 검색 응답 패킷을 제 2 전자 장치(402)로 송신할 수 있다.
일 실시 예에서, 동작 416 및/또는 동작 418에 나타난 바와 같은 서비스 검색 동작은 GATT(generic attribute profile) 기반의 서비스 검색 동작일 수 있다. GATT 기반의 서비스 검색 동작은 제 1 전자 장치(401)의 프로파일 정보에 포함된 정보를 획득하기 위한 동작을 포함할 수 있다.
일 실시 예에서, 제 1 전자 장치(401)의 프로파일 정보는 하나 이상의 서비스 엘리먼트들을 포함할 수 있고, 하나 이상의 서비스 엘리먼트들은 하나 이상의 특성(characteristic) 엘리먼트들을 포함할 수 있다. 하나 이상의 서비스 엘리먼트들은 제 1 전자 장치(401)가 제공하는 하나 이상의 서비스들에 대한 정보(예: 혈압 변화 감지 서비스)를 포함할 수 있고, 하나 이상의 특성 엘리먼트들은 해당하는 서비스와 관련된 데이터(예: 혈압 측정값)를 포함할 수 있다.
일 실시 예에서, 하나 이상의 특성 엘리먼트들은 속성(property)값을 가질 수 있다. 속성값은 일 예로, 읽기(read) 동작 또는 기록(write) 동작 중 적어도 하나를 지시할 수 있다. 제 2 전자 장치(402)는 하나 이상의 특성 엘리먼트들 중 적어도 하나의 특성 엘리먼트에 대한 속성값을 기반으로, 제 1 전자 장치(401)로 데이터 패킷을 송신하거나 제 1 전자 장치(401)로부터 데이터 패킷을 수신할 수 있다.
예를 들어, 제 2 전자 장치(402)는 적어도 하나의 특성 엘리먼트에 대한 속성값이 기록 동작을 지시하는 경우, 동작 420에서, 적어도 하나의 특성 엘리먼트에 포함될 데이터를 포함하는 데이터 패킷을 제 1 전자 장치(401)로 송신할 수 있다.
또 다른 예로, 제 2 전자 장치(402)는 적어도 하나의 특성 엘리먼트에 대한 속성값이 읽기 동작을 지시하는 경우, 동작 422에서, 적어도 하나의 특성 엘리먼트에 포함된 데이터를 포함하는 데이터 패킷을 제 1 전자 장치(401)로부터 수신할 수 있다.
일 실시 예에서, 동작 412 내지 422가 수행되는 채널은 ATT(attribute) 프로토콜이 사용되는 채널일 수 있고, 설정된 CID(예:“0X0004”)를 갖는 채널일 수 있다.
다양한 실시 예들에 따르면, 전자 장치들 간에 서비스와 관련된 좀 더 많은 데이터가 송신 및/또는 수신될 수 있도록, 전자 장치들 간에 ACL 연결이 되어 있는 상태에서 채널 설정을 위한 연결 동작들이 도 4b에 나타난 바와 같이 수행될 수 있다.
도 4b는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치들을 연결하는 동작의 다른 예를 개략적으로 도시하고 있는 신호 흐름도(460)이다.
도 4b에서, 제 1 전자 장치(461)는 서비스를 제공하는 전자 장치이고, 제 2 전자 장치(462)는 서비스를 제공받는 전자 장치일 수 있다. 제 1 전자 장치(461) 및/또는 제 2 전자 장치(462)는 예를 들어, 각각 도 1의 전자 장치(101)와 실질적으로 동일한 전자 장치일 수 있다.
도 4b를 참조하면, 동작 430에서, 제 1 전자 장치(461)는 광고 패킷을 브로드캐스트할 수 있다. 광고 패킷에는 제 1 전자 장치(461)의 주소 정보가 포함될 수 있다. 광고 패킷은 설정된 주기에 따라 주기적으로 브로드캐스트될 수 있다.
일 실시 예에서, 브로드캐스트된 광고 패킷은 제 2 전자 장치(462)에 의해 수신될 수 있다. 제 2 전자 장치(462)는 광고 패킷을 수신하면, 동작 432에서, 광고 패킷에 포함된 제 1 전자 장치(461)의 주소 정보를 기반으로, ACL 연결을 요청하기 위한 ACL 연결 요청 패킷을 제 1 전자 장치(461)로 송신할 수 있다. ACL 연결은 일 예로, 제 1 전자 장치(461)와 제 2 전자 장치(462) 간의 데이터 패킷 송신 및/또는 수신을 위한 연결이 될 수 있다.
제 1 전자 장치(461)는 ACL 연결 요청 패킷을 수신하고, 제 2 전자 장치(462)의 ACL 연결 요청을 수락할지 여부를 결정할 수 있다. 제 1 전자 장치(461)는 동작 434에서, ACL 연결 요청을 수락할지 여부가 포함된 ACL 연결 응답 패킷을 제 2 전자 장치(462)로 송신할 수 있다.
일 실시 예에서, 제 2 전자 장치(462)는 ACL 연결 응답 패킷에 ACL 연결 요청을 수락함을 나타내는 정보가 포함된 경우, 제 1 전자 장치(461)와의 연결이 성공되었음을 확인할 수 있다.
제 2 전자 장치(462)는 제 1 전자 장치(461)와의 연결이 성공되었음을 확인하면, 동작 436에서, 제 1 전자 장치(461)에 의해 제공되는 적어도 하나의 서비스를 검색하기 위한 서비스 검색 요청 패킷을 제 1 전자 장치(461)로 송신할 수 있다. 동작 438에서, 제 1 전자 장치(461)는 서비스 검색 요청 패킷에 대한 응답으로, 서비스 목록 정보를 포함하는 서비스 검색 응답 패킷을 제 2 전자 장치(462)로 송신할 수 있다. 일 실시 예에서, 동작 436 및/또는 동작 438에 나타난 바와 같은 서비스 검색 동작은 GATT 기반의 서비스 검색 동작일 수 있다.
일 실시 예에서, 제 2 전자 장치(462)는 서비스 목록 정보를 기반으로 이용할 서비스를 선택할 수 있다. 제 2 전자 장치(462)는 동작 440에서, 선택된 서비스에 할당된 SD_PSM을 제공해줄 것을 요청하기 위한 데이터 패킷을 제 1 전자 장치(461)로 송신할 수 있다. 제 1 전자 장치(461)는 동작 442에서, 데이터 패킷에 대한 응답으로, SD_PSM을 포함하는 데이터 패킷을 제 2 전자 장치(462)로 송신할 수 있다.
일 실시 예에서, 제 2 전자 장치(462)는 제 1 전자 장치(461)와 ACL 연결이 되어 있는 상태에서, 서비스 이용을 위한 채널을 설정하기 위한 동작을 수행할 수 있다. 예를 들어, 제 2 전자 장치(462)는 동작 444에서, 채널 설정을 위한 연결 요청 패킷을 제 1 전자 장치(461)로 송신할 수 있다. 제 1 전자 장치(461)로 송신된 연결 요청 패킷은 동작 442에서 획득한 SD_PSM을 포함할 수 있다.
일 실시 예에서, 제 1 전자 장치(461)는 채널 설정을 위한 연결 요청 패킷이 수신되면, 채널 설정을 위한 연결 요청 패킷에 포함된 SD_PSM이 제 1 전자 장치(461)의 서비스에 할당된 SD_PSM과 동일한지 여부를 검출할 수 있다. 제 1 전자 장치(461)는 채널 설정을 위한 연결 요청 패킷에 포함된 SD_PSM이 제 1 전자 장치(461)의 서비스에 할당된 SD_PSM과 동일한 경우, 동작 446에서 채널 설정을 위한 연결 응답 패킷을 제 2 전자 장치(462)로 송신할 수 있다. 채널 설정을 위한 연결 응답 패킷은 일 예로, 제 2 전자 장치(462)의 연결을 수락함을 나타내는 정보를 포함할 수 있다.
일 실시 예에서, 제 1 전자 장치(461)는 제 2 전자 장치(462)와의 데이터 패킷 송신 및/또는 수신 동작을 수행하기 위한 적어도 하나의 채널을 할당하고, 할당된 적어도 하나의 채널에 대한 정보를 제 2 전자 장치(625)로 송신할 수 있다.
일 실시 예에서, 제 2 전자 장치(462)는 연결을 수락함을 나타내는 정보를 포함하는 연결 응답 패킷을 수신하면, 제 1 전자 장치(461)와의 연결이 성공되었음을 검출하고 제 1 전자 장치(461)에 의해 할당된 채널에 대한 정보를 수신할 수 있다.
동작 448에서, 제 2 전자 장치(462)는 수신된 정보에 의해 지시되는 적어도 하나의 채널에서, 서비스와 관련된 데이터를 포함하는 데이터 패킷을 제 1 전자 장치(461)로 송신할 수 있다. 동작 450에서, 제 2 전자 장치(462)는 수신된 정보에 의해 지시되는 적어도 하나의 채널에서, 서비스와 관련된 데이터를 포함하는 데이터 패킷을 제 1 전자 장치(461)로부터 수신할 수 있다. 일 실시 예에서, 동작 448 및 450의 동작 순서는 변경될 수 있다. 일 실시 예에서, 동작 448 및 450 각각은 한 번 이상 수행될 수 있고, 동작 448 또는 450 중 하나는 생략될 수도 있다.
일 실시 예에서, 동작 432 내지 442가 수행되는 채널은 ATT 프로토콜이 사용되는 채널일 수 있고, 설정된 CID(예: “0X0004”)를 갖는 채널일 수 있다. 일 실시 예에서, 동작 444 및 446이 수행되는 채널은 L2CAP 계층의 시그널링 채널일 수 있고, 설정된 CID(예: “0X0005")를 갖는 채널일 수 있다. 일 실시 예에서, 동작 448 및 450이 수행되는 적어도 하나의 채널은 설정된 CID(예: "0x0040-0xFFFF" 중 적어도 하나)를 갖는 적어도 하나의 채널일 수 있다.
도 5는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치들을 연결하는 동작의 또 다른 예를 개략적으로 도시하고 있는 신호 흐름도(500)이다.
도 5에서, 제 1 전자 장치(501)는 서비스를 제공하는 전자 장치이고, 제 2 전자 장치(502)는 서비스를 제공받는 전자 장치일 수 있다. 제 1 전자 장치(501) 및/또는 제 2 전자 장치(502)는 예를 들어, 도 1의 전자 장치(101)와 실질적으로 동일한 전자 장치일 수 있다.
도 5를 참조하면, 동작 503에서, 제 1 전자 장치(501)는 광고 패킷을 송신할 수 있는 트리거 이벤트의 발생을 검출할 수 있다. 일 실시 예에서, 트리거 이벤트는 제 1 전자 장치(501)의 화면 전원 상태 변경, 제 1 전자 장치(501)의 Wi-Fi 연결 상태 변경, 제 1 전자 장치(501)의 호 상태 변경, 제 2 전자 장치(502)의 동작 상태 변경, 또는 제 1 전자 장치(501)의 어플리케이션 실행 중 적어도 하나와 관련된 이벤트를 포함할 수 있다.
일 실시 예에서, 제 1 전자 장치(501)는 발생된 트리거 이벤트와 관련된 적어도 하나의 서비스에 적어도 하나의 ADV_PSM을 할당할 수 있다. 예를 들어, 제 1 전자 장치(501)는 적어도 하나의 서비스를 위해 사용될 프로토콜을 결정하고, 결정된 프로토콜에 대응하여 할당 가능한 포트 번호들을 확인할 수 있다. 제 1 전자 장치(501)는 할당 가능한 포트 번호들 중 사용되지 않은 적어도 하나를 적어도 하나의 서비스에 할당될 적어도 하나의 ADV_PSM으로 설정할 수 있다.
일 실시 예에서, 프로토콜 별로 할당 가능한 포트 번호들은 다르게 설정될 수 있으므로, 적어도 하나의 ADV_PSM은 프로토콜 식별자로서 사용될 수 있다. 일 실시 예에서, 적어도 하나의 ADV_PSM은 서비스 별로 다르게 설정될 수 있으므로, 적어도 하나의 ADV_PSM은 서비스 식별자로서 사용될 수 있다. 일 실시 예에 따르면, 포트 번호는 프로토콜 별로 할당 가능한 범위가 다르므로, 적어도 하나의 ADV_PSM이 확인되면 이용되는 프로토콜이 확인될 수 있다. 일 실시 예에 따르면, 서비스 별로 포트 번호는 다르게 할당되기 때문에, 적어도 하나의 ADV_PSM이 확인되면 이용 가능한 서비스가 확인될 수 있다.
동작 504에서, 제 1 전자 장치(501)는 설정된 적어도 하나의 ADV_PSM을 포함하는 광고 패킷을 생성할 수 있다. 일 실시 예에서, 광고 패킷은 설정된 적어도 하나의 ADV_PSM와 함께, 추가적인 서비스 정보(예: 서비스 ID 정보, 서비스 타입 정보, 서비스 이름 정보, 서비스 제공자 정보, 또는 서비스 설명 정보 중 적어도 하나) 또는 제 1 전자 장치(501)와 관련된 정보(예: 제 1 전자 장치(501)를 제조한 회사(company) ID, 제 1 전자 장치(501)의 이름 정보, 제 1 전자 장치(501)의 사용자 정보, 또는 제 1 전자 장치(501)의 사용자 계정 정보 중 적어도 하나) 중 적어도 하나를 더 포함할 수 있다. 일 실시 예에서, 광고 패킷은 연결 가능하고 스캔 가능한 무지향성 광고 타입임을 나타내는 정보를 더 포함할 수 있다. 연결 가능하고 스캔 가능한 무지향성 광고 타입은 일 예로, 광고 패킷을 수신한 외부 전자 장치(예: 제 2 전자 장치(502))가 제 1 전자 장치(501)에 대한 연결 동작을 수행하는 것이 가능함을 지시하는 타입일 수 있다.
동작 506에서, 제 1 전자 장치(501)는 생성된 광고 패킷을 브로드캐스트할 수 있다.
일 실시 예에서, 제 1 전자 장치(501)가 브로드캐스트한 광고 패킷은 제 2 전자 장치(502)에 의해 수신될 수 있다. 제 2 전자 장치(502)는 광고 패킷 수신을 위한 스캔 동작을 수행하는 외부 전자 장치가 될 수 있다. 일 실시 예에서, 제 2 전자 장치(502)에 의해 수행될 수 있는 스캔 동작은 액티브(active) 스캔 동작을 포함할 수 있다.
일 실시 예에 따라, 액티브 스캔 동작에서, 제 2 전자 장치(502)는 광고 패킷을 수신할 경우, 제 1 전자 장치(501)에 광고 패킷을 수신했음을 알릴 수 있다. 일 실시 예에서, 제 2 전자 장치(502)는 광고 패킷을 수신할 경우 광고 패킷을 수신했음을 지시하는 정보를 포함하는 스캔 요청 패킷을 제 1 전자 장치(501)로 송신할 수 있다. 제 1 전자 장치(501)는 스캔 요청 패킷을 수신하면, 스캔 요청 패킷에 상응하는 스캔 응답 패킷을 제 2 전자 장치(502)로 송신할 수 있다.
동작 508에서, 제 2 전자 장치(502)는 수신된 광고 패킷에 포함된 적어도 하나의 ADV_PSM을 확인할 수 있다. 일 실시 예에서, 제 2 전자 장치(502)는 수신된 광고 패킷에 포함된 추가적인 서비스 정보를 더 확인할 수 있다. 제 2 전자 장치(502)는 수신된 광고 패킷으로부터 적어도 하나의 ADV_PSM을 획득할 수 있거나, 또는 적어도 하나의 ADV_PSM과 추가적인 서비스 정보를 획득할 수 있으므로, 서비스 정보를 검색하기 위한 동작은 생략할 수 있다.
일 실시 예에서, 제 2 전자 장치(502)는 수신된 광고 패킷으로부터 획득한 적어도 하나의 ADV_PSM, 또는 적어도 하나의 ADV_PSM과 추가적인 서비스 정보를 기반으로 제 1 전자 장치(501)와 연결 동작을 수행할지 여부를 결정할 수 있다. 제 2 전자 장치(502)는 제 1 전자 장치(501)와 연결 동작을 수행하기로 결정한 경우, 동작 510에서, 수신된 광고 패킷에 포함되어 있는 적어도 하나의 ADV_PSM와 동일한 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷을 제 1 전자 장치(501)로 송신할 수 있다.
일 실시 예에서, 연결 요청 패킷은 제 1 전자 장치(501)와 제 2 전자 장치(502) 간의 채널 생성을 요청하기 위한 크레딧(credit) 기반의 연결 요청(예: L2CAP_LE_CREDIT_BASED_CONNECTION_REQ) 패킷이 될 수 있다.
일 실시 예에서, 연결 요청 패킷은 ADV_PSM 필드, 코드(code) 정보 필드, 식별자 정보 필드, 길이 정보 필드, 소스 CID 정보 필드, 최대 송신 유닛(maximum transmission unit: MTU) 정보 필드, 최대 프로토콜 데이터 유닛(protocol data unit: PDU) 페이로드 사이즈(maximum PDU payload size: MPS) 정보 필드, 또는 초기 크레딧 정보 필드 중 적어도 하나를 더 포함할 수 있다.
일 실시 예에서, ADV_PSM 필드는 적어도 하나의 ADV_PSM을 나타내는 정보를 포함할 수 있다.
일 실시 예에서, 코드 정보 필드는 해당 패킷이 연결 요청 패킷임을 나타내는 코드 정보를 포함할 수 있다.
일 실시 예에서, 식별자 정보 필드는 연결 요청 패킷에 대한 연결 응답 패킷이 수신되는지를 확인하기 위해 사용되는 식별자 정보를 포함할 수 있다. 예를 들어, 제 2 전자 장치(502)는 연결 요청 패킷에 포함된 식별자 정보와 동일한 식별자 정보가 포함된 연결 응답 패킷이 수신된 경우, 수신된 연결 응답 패킷을 제 2 전자 장치(502)가 송신한 연결 요청 패킷에 대한 연결 응답 패킷으로 확인할 수 있다.
일 실시 예에서, 길이 정보 필드는 연결 요청 패킷에 포함된 코드 정보 필드, 식별자 정보 필드, 및 길이 정보 필드를 제외한 적어도 하나의 나머지 필드에 대한 길이 정보를 포함할 수 있다.
일 실시 예에서, 소스 CID 정보 필드는 제 2 전자 장치(502)가 제 1 전자 장치(501)와 연결될 경우, 제 1 전자 장치(501)와의 데이터 패킷 송신 및/또는 수신을 위해 사용될 수 있는 채널을 지시하는 정보를 포함할 수 있다. 일 실시 예에 따라, 제 1 전자 장치(501)와의 데이터 패킷 송신 및/또는 수신을 위해 사용될 수 있는 채널은 설정된 채널들(예: 0x0040-0xFFFF) 중 사용되지 않은 어느 한 채널이 될 수 있다.
일 실시 예에서, MTU 정보 필드는 제 2 전자 장치(502)가 수신할 수 있는 최대 서비스 데이터 유닛(service data unit: SDU)의 사이즈를 지시하는 정보를 포함할 수 있다.
일 실시 예에 따라, 제 2 전자 장치(502)가 수신할 수 있는 최소 SDU 사이즈는 설정될 수 있으므로, 제 2 전자 장치(502)가 수신할 수 있는 최소 SDU 사이즈에 대한 정보는 연결 요청 패킷에 포함되지 않을 수 있다. 일 실시 예에서, 제 2 전자 장치(502)가 수신할 수 있는 최소 SDU 사이즈는 23 바이트(bytes)가 될 수 있다.
일 실시 예에서, MPS 정보 필드는 제 2 전자 장치(502)가 수신할 수 있는 최대 PDU 페이로드 사이즈를 지시하는 정보를 포함할 수 있다. 최대 PDU 페이로드 사이즈는 일 예로, 65533 바이트가 될 수 있다.
일 실시 예에 따라, 제 2 전자 장치(502)가 수신할 수 있는 최소 PDU 페이로드 사이즈는 설정될 수 있으므로, 제 2 전자 장치(502)가 수신할 수 있는 최소 PDU 페이로드 사이즈에 대한 정보는 연결 요청 패킷에 포함되지 않을 수 있다. 일 실시 예에서, 제 2 전자 장치(502)가 수신할 수 있는 최소 PDU 페이로드 사이즈는 23바이트가 될 수 있다.
일 실시 예에서, 초기 크레딧 정보 필드는 제 1 전자 장치(501)가 제 2 전자 장치(502)로 송신할 수 있는 프레임들의 개수를 지시하는 프레임 개수 정보를 포함할 수 있다. 프레임 개수 정보는 일 예로 설정된 범위(예: 0~65535) 내의 한 값으로 설정되어 제 1 전자 장치(501)가 제 2 전자 장치(502)로 송신할 수 있는 프레임들의 개수를 지시할 수 있다.
표 1은 일 실시 예에 따른, 연결 요청 패킷에 포함될 수 있는 필드들과 각 필드 별로 설정된 값의 예를 나타내고 있다.
Figure PCTKR2021019034-appb-T000001
표 1을 참조하면, 일 실시 예에 따른 연결 요청 패킷은 ADV_PSM을 나타내는 정보로서 “0X0080”을 포함할 수 있다. 일 실시 예에 따른 연결 요청 패킷은 다음과 같은 정보를 더 포함할 수 있다. 일 실시 예에 따른 연결 요청 패킷은 연결 요청 패킷임을 나타내는 코드 정보인 “0X14”, 연결 요청 패킷에 대한 연결 응답 패킷이 수신되는지를 확인하기 위해 사용되는 식별자 정보인 “2”연결 요청 패킷에 포함된 코드 정보 필드, 식별자 정보 필드, 및 길이 정보 필드를 제외한 적어도 하나의 나머지 필드에 대한 길이 정보인 “10”, 소스 CID 정보인 “0X0041”, MTU 정보인 “65535 바이트”, MPS 정보인 “251 바이트”, 또는 초기 크레딧 정보인 “65535”중 적어도 하나를 더 포함할 수 있다.
도 5에 도시되지는 않았으나, 일 실시 예에 따라, 제 1 전자 장치(501)는 전술한 바와 같은 연결 요청 패킷에 대한 연결 응답 패킷을 제 2 전자 장치(502)로 송신할 수 있다. 일 실시 예에서, 연결 응답 패킷은 크레딧 기반의 연결 응답(예: L2CAP_LE_CREDIT_BASED_CONNECTION_RSP) 패킷이 될 수 있다.
일 실시 예에서, 연결 응답 패킷은 코드 정보 필드, 식별자 정보 필드, 길이 정보 필드, 결과 정보 필드, 목적지 CID 필드, MTU 정보 필드, MPS 정보 필드, 또는 초기 크레딧 정보 필드 중 적어도 하나를 포함할 수 있다.
일 실시 예에서, 코드 정보 필드는 연결 응답 패킷임을 나타내는 코드 정보를 포함할 수 있다.
일 실시 예에서, 식별자 정보 필드는 연결 요청 패킷에 포함된 식별자 정보와 동일한 식별자 정보를 포함할 수 있다.
일 실시 예에서, 길이 정보 필드는 연결 응답 패킷에 포함된 코드 정보 필드, 식별자 정보 필드, 및 길이 정보 필드를 제외한 적어도 하나의 나머지 필드에 대한 길이 정보를 포함할 수 있다.
일 실시 예에서, 결과 정보 필드는 연결 요청 패킷에 의한 제 2 전자 장치(502)의 연결 요청을 수락할지 여부를 지시하는 정보(예: 연결 수락(0X0000), 또는 연결 거절(0X0002))를 포함할 수 있다.
일 실시 예에서, 목적지 CID 정보 필드는 제 1 전자 장치(501)가 제 2 전자 장치(502)와 연결될 경우, 제 2 전자 장치(502)와의 데이터 패킷 송신 및/또는 수신을 위해 사용될 수 있는 채널을 지시하는 정보를 포함할 수 있다. 일 실시 예에 따라, 제 2 전자 장치(502)와의 데이터 패킷 송신 및/또는 수신을 위해 사용될 수 있는 채널은 설정된 채널들(예: 0x0040-0xFFFF) 중 사용되지 않은 어느 한 채널이 될 수 있다.
일 실시 예에서, MTU 정보 필드는 제 1 전자 장치(501)가 수신할 수 있는 최대 SDU의 사이즈를 지시하는 정보를 포함할 수 있다.
일 실시 예에 따라, 제 1 전자 장치(501)가 수신할 수 있는 최소 SDU 사이즈는 설정될 수 있으므로, 제 1 전자 장치(501)가 수신할 수 있는 최소 SDU 사이즈에 대한 정보는 연결 응답 패킷에 포함되지 않을 수 있다. 일 실시 예에서, 제 1 전자 장치(501)가 수신할 수 있는 최소 SDU 사이즈는 23 바이트가 될 수 있다.
일 실시 예에서, MPS 정보 필드는 제 1 전자 장치(501)가 수신할 수 있는 최대 PDU 페이로드 사이즈를 지시하는 정보를 포함할 수 있다. 최대 PDU 페이로드 사이즈는 일 예로, 65533 바이트가 될 수 있다.
일 실시 예에 따라, 제 1 전자 장치(501)가 수신할 수 있는 최소 PDU 페이로드 사이즈는 설정될 수 있으므로, 제 1 전자 장치(501)가 수신할 수 있는 최소 PDU 페이로드 사이즈에 대한 정보는 연결 응답 패킷에 포함되지 않을 수 있다. 일 실시 예에서, 제 1 전자 장치(501)가 수신할 수 있는 최소 PDU 페이로드 사이즈는 23바이트가 될 수 있다.
일 실시 예에서, 초기 크레딧 정보 필드는 제 2 전자 장치(502)가 제 1 전자 장치(501)로 송신할 수 있는 프레임들의 개수를 지시하는 프레임 정보를 포함할 수 있다. 일 실시 예에서, 프레임 개수 정보는 미리 설정된 범위(예: 0~65535) 내의 한 값으로 설정되어 제 2 전자 장치(502)가 제 1 전자 장치(501)로 송신할 수 있는 프레임들의 개수를 지시할 수 있다.
표 2는 일 실시 예에 따른, 연결 응답 패킷에 포함될 수 있는 필드들과 각 필드 별로 설정된 값의 예를 나타내고 있다.
Figure PCTKR2021019034-appb-T000002
표 2를 참조하면, 연결 응답 패킷은 코드 정보로서 연결 응답 패킷임을 나타내는 “0X15”, 연결 요청 패킷에 대한 연결 응답 패킷임을 나타내기 위해 사용되는 식별자 정보인 “2”연결 응답 패킷에 포함된 코드 정보, 식별자 정보, 및 길이 정보를 제외한 나머지 정보에 대한 길이 정보인 “14”, 결과 정보로서 제 2 전자 장치(502)의 연결 요청을 수락함을 나타내는 정보 “0X0000”, 목적지 CID 정보인 “0X0042”, MTU 정보인 “65535 바이트”, MPS 정보인 “251 바이트”, 또는 초기 크레딧 정보인 “65535”중 적어도 하나를 포함할 수 있다.
다시 도 5를 참조하면, 동작 512에서, 제 1 전자 장치(501)는 제 2 전자 장치(502)와 데이터 패킷 송신 및/또는 수신을 위한 통신 채널을 설정할 수 있다. 일 실시 예에서, 제 1 전자 장치(501)가 제 2 전자 장치(502)와의 연결 요청을 수락한 경우, 연결 요청 패킷에 포함된 소스 CID 정보(예: 0X0041)에 의해 지시되는 채널과, 연결 응답 패킷에 포함된 목적지 CID 정보(예: 0X0042)에 의해 지시되는 채널이 통신 채널로서 설정될 수 있다. 또 다른 예로, 제 1 전자 장치(501)는 제 2 전자 장치(502)와의 통신을 위한 채널을 새로 할당할 수도 있다. 일 실시 예에서, 제 1 전자 장치(501)는 할당된 채널을 통해 제 2 전자 장치(502)와 서비스 제공을 위한 데이터 패킷 송신 및/또는 수신을 수행할 수 있다.
도 5에 도시되지는 않았지만, 제 2 전자 장치(502)는 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되지 않은 경우에는, 도 4a의 동작 412 내지 422에 포함된 제 2 전자 장치(462)의 동작들을 수행하거나, 도 4b의 동작 432 내지 450에 포함된 제 2 전자 장치(462)의 동작들을 수행할 수 있다.
도 4a의 동작 412 내지 422에서는 ADV_PSM 또는 SD_PSM은 사용되지 않고, ACL 연결 동작과 GATT 기반의 서비스 검색 동작을 기반으로 서비스와 관련된 데이터 패킷 송신 및/또는 수신 동작 이 수행될 수 있다.
도 4b의 동작 432 내지 450에서는 ACL 연결 동작, 서비스 검색 동작, SD_PSM 획득을 위한 데이터 패킷 송신 및/또는 수신 동작, SD_PSM을 이용한 채널 설정을 위한 연결 동작, 및 서비스와 관련된 데이터 패킷 송신 및/또는 수신 동작이 수행될 수 있다.
다양한 실시 예들에 따른, 광고 패킷은 광고 물리 채널(advertising physical channel)에서 송신될 수 있고, 설정된 광고 주기(예: 20ms~10.24s)에 따라 주기적으로 브로드캐스트될 수 있다. 다양한 실시 예들에 따른, 광고 패킷은 도 6에 예시된 바와 같은 포맷을 가질 수 있다.
도 6은 다양한 실시 예들에 따른 광고 패킷의 포맷의 일 예를 개략적으로 도시하고 있는 도면(600)이다.
도 6을 참조하면, 다양한 실시 예들에 따른, 광고 패킷은 프리앰블(preamble) 필드(602), 접속 주소(access address) 필드(604), PDU 필드(606), 및/또는 CRC(cyclical redundancy check) 필드(608)를 포함할 수 있다.
일 실시 예에서, 프리앰블 필드(602)는 광고 패킷을 수신한 외부 전자 장치(예: 전자 장치(102))에서 주파수 동기화 및/또는 심볼 타이밍 추정을 수행하기 위해 사용되는 1바이트의 정보를 포함할 수 있다. 일 실시 예에서, 프리앰블 필드(602)는 접속 주소 필드(604)에 포함된 주소 정보를 기반으로, 0과 1의 비트가 번갈아가는 형태로 구성된 1바이트의 고정된 시퀀스를 포함할 수 있다. 예를 들어, 프리앰블 필드(602)는 접속 주소 필드(604)에 포함된 주소 정보가 1로 시작되는 경우 “10101010”을 포함할 수 있고, 접속 주소 필드(604)에 포함된 주소 정보가 0으로 시작되는 경우 “01010101”을 포함할 수 있다.
일 실시 예에서, 접속 주소 필드(604)는 광고 패킷에 대한 4바이트의 주소 정보를 포함할 수 있다.
일 실시 예에서, PDU 필드(606)는 최소 2바이트에서 최대 39바이트까지의 가변적인 길이를 가질 수 있다. 일 실시 예에서, PDU 필드(606)는 광고 물리적 채널 PDU를 포함할 수 있다.
일 실시 예에서, CRC 필드(608)는 외부 전자 장치에서 수신된 광고 패킷에 대한 오류를 검출하기 위해 사용되는 3바이트의 정보를 포함할 수 있다.
일 실시 예에서, PDU 필드(606)는 2바이트의 헤더(header) 필드(610)와 최대 37바이트의 길이를 가질 수 있는 페이로드(payload) 필드(612)를 포함할 수 있다.
일 실시 예에서, 헤더 필드(610)는 페이로드 필드(612)에 포함된 데이터의 타입과 길이를 지시하는 정보를 포함할 수 있다. 일 실시 예에서, 헤더 필드(610)는 페이로드 필드(612)에 포함된 데이터의 타입이 광고 데이터임을 지시하는 정보를 포함할 수 있다.
일 실시 예에서, 페이로드 필드(612)는 37바이트 이하의 가변적인 길이를 가질 수 있으며, AdvA 필드(614), 및 AdvData 필드(616)를 포함할 수 있다.
일 실시 예에서, AdvA 필드(614)는 광고 패킷을 송신한 전자 장치(101)의 주소(618)를 포함할 수 있다. 일 실시 예에서, 전자 장치(101)의 주소(618)는 전자 장치(101)의 MAC 주소가 될 수 있다.
일 실시 예에서, AdvData 필드(616)는 최대 31바이트의 광고 데이터(620)를 포함할 수 있고, 하나 이상의 광고 데이터(advertising data: AD) 엘리먼트(element)들을 포함할 수 있다. 하나 이상의 AD 엘리먼트들은 예를 들어, AD0 엘리먼트(622) 내지 ADN 엘리먼트(626)를 포함하는 N개의 AD 엘리먼트들이 될 수 있다.
일 실시 예에서, 하나 이상의 AD 엘리먼트들은 각각 길이 필드, 타입 필드, 및 AD 데이터 필드를 포함할 수 있다. 도 6은 AD0 엘리먼트(622)가 포함하는 길이 필드(622), 타입 필드(630), 및 AD 데이터 필드(632)를 예시하고 있다. 도 6에 도시되지는 않았으나, ADN 엘리먼트(626)는 AD0 엘리먼트(622)와 마찬가지로 길이 필드, 타입 필드, 및 AD 데이터 필드를 포함할 수 있다.
일 실시 예에서, 길이 필드(622)는 AD 데이터 필드(632)의 길이 정보를 포함할 수 있고, 타입 필드(630)는 AD 데이터 필드(630)에 포함된 데이터의 타입 정보를 포함할 수 있다. 일 실시 예에서, 타입 필드(630)는 다음 표 3에 나타난 바와 같은 데이터 타입들 중 적어도 하나를 지시하는 정보를 포함할 수 있다.
Figure PCTKR2021019034-appb-T000003
일 실시 예에서, AD 데이터 필드(630)는 적어도 하나의 ADV_PSM을 포함할 수 있다.
일 실시 예에 따른 AD0 엘리먼트(622)의 구조는 도 7에 나타난 바와 같다. 이하에서는 도 7을 참조하여 AD0 엘리먼트(622)를 예로 들어 설명하지만, 도 7에 도시된 AD0 엘리먼트(622)의 구조는 ADN 엘리먼트(626)에도 적용될 수 있다.
도 7은 다양한 실시 예들에 따른 AD0 엘리먼트(622)의 일 예를 개략적으로 도시하고 있는 도면이다.
다양한 실시 예들에 따르면, AD0 엘리먼트(622)의 구조는 다수의 포맷들에 의해 정의될 수 있다. 일 실시 예에서, 다수의 포맷들은 회사 ID 정보를 포함하는 포맷 또는 서비스 UUID 정보를 포함하는 포맷 중 적어도 하나를 포함할 수 있다.
일 실시 예에서, 회사 ID 정보를 포함하는 포맷은 도 7의 (a)에 예시된 바와 같다.
도 7의 (a)를 참조하면, 일 실시 예에 따라, AD0 엘리먼트(622)는 길이 필드(622), 타입 필드(630), 및 AD 데이터 필드(632)를 포함할 수 있다.
일 실시 예에서, 길이 필드(622)는 AD 데이터 필드(632)의 길이 정보를 포함할 수 있다. AD 데이터 필드(632)에 포함되는 길이 정보는 일 예로, 1바이트가 될 수 있다.
일 실시 예에서, 타입 필드(630)는 AD 데이터 필드(632)에 포함된 데이터의 타입 정보를 포함할 수 있다. 타입 필드(630)는 앞서 살펴본 표 3에 기재된 데이터 타입들 중 하나를 지시하는 정보를 포함할 수 있다. 타입 필드(630)에 포함되는 정보는 일 예로 1바이트의 길이를 가질 수 있다.
도 7의 (a)는 일 실시 예에 따라, 타입 필드(630)가 제조사 특정 데이터 타입을 지시하는 정보를 포함함을 예시하고 있다. 타입 필드(630)가 제조사 특정 데이터 타입을 지시하는 정보를 포함한 경우, AD 데이터 필드(632)는 전자 장치(101)에 의해 설정된 데이터를 포함할 수 있다.
일 실시 예에서, AD 데이터 필드(632)는 전자 장치(101)를 제조한 회사의 ID 정보를 포함하는 회사 ID 필드(712)를 포함할 수 있다. 회사 ID 정보는 일 예로 2바이트의 길이를 가질 수 있다.
일 실시 예에서, AD 데이터 필드(632)는 ADV_PSM 필드(714), 또는 데이터 필드(716)를 포함할 수 있다.
일 실시 예에서, ADV_PSM 필드(714)는 적어도 하나의 ADV_PSM을 포함할 수 있다. 하나의 ADV_PSM은 일 예로 2바이트의 길이를 가질 수 있고, ADV_PSM 필드(714)에 포함된 ADV_PSM의 개수를 기반으로 ADV_PSM 필드(714)의 길이는 변경될 수 있다.
일 실시 예에서, 데이터 필드(716)는 전자 장치(101)와 관련된 정보(예: 전자 장치(101)의 이름 정보, 전자 장치(101)의 사용자 정보, 또는 전자 장치(101)의 사용자 계정 정보), 또는 전자 장치(101)의 서비스 정보(예: 서비스 ID 정보, 서비스 타입 정보, 서비스 이름 정보, 서비스 제공자 정보, 또는 서비스 설명 정보 중 적어도 하나) 중 적어도 하나를 포함할 수 있다. 데이터 필드(716)에 포함되는 정보는 최소 0바이트에서 최대 25바이트의 길이를 가질 수 있다.
일 실시 예에서, AD 데이터 필드(632)에 포함된 필드들의 배치 순서는 변경될 수 있다. 예를 들어, 도 7의 (a)는 “회사 ID 필드(712) + ADV_PSM 필드(714) + 데이터 필드(716)”의 순서로 배치된 것을 보이고 있으나, 이에 한정되지 않고 AD 데이터 필드(632)에 포함된 필드들의 배치 순서는 변경될 수 있다. 예를 들어, 데이터 필드(716)가 ADV_PSM 필드(714) 보다 앞서 배치되거나, ADV_PSM 필드(714)가 회사 ID 필드(712) 보다 앞서 배치될 수 있다.
도 7의 (b)는 일 실시 예에 따른 AD0 엘리먼트(622)의 구조를 정의할 수 있는 서비스 UUID를 포함하는 포맷을 예시한 도면이다.
도 7의 (b)를 참조하면, 일 실시 예에 따라, AD0 엘리먼트(622)는 길이 필드(622), 타입 필드(630), 및 AD 데이터 필드(632)를 포함할 수 있다.
일 실시 예에서, 길이 필드(622)는 AD 데이터 필드(632)의 길이 정보를 포함할 수 있다. 길이 필드(622)에 포함되는 정보는 일 예로 1바이트의 길이를 가질 수 있다.
일 실시 예에서, 타입 필드(630)는 AD 데이터 필드(632)에 포함된 데이터의 타입 정보를 포함할 수 있다. 타입 필드(630)에 포함되는 정보는 일 예로 1바이트의 길이를 가질 수 있다. 일 실시 예에서, 타입 필드(630)는 앞서 살펴본 표 3에 나타난 바와 같은 데이터 타입들 중 적어도 하나를 지시하는 정보를 포함할 수 있다.
도 7의 (b)는 일 실시 예에 따라, 타입 필드(630)가 제조사 특정 데이터 타입을 지시하는 정보를 포함한 경우를 예시하고 있다.
일 실시 예에서, AD 데이터 필드(632)는 전자 장치(101)가 제공하는 서비스를 식별하기 위한 서비스 UUID 정보를 포함하는 서비스 UUID 필드(722)를 포함할 수 있다. 서비스 UUID 정보는 일 예로 16비트(2바이트)의 서비스 UUID, 32비트(4바이트)의 서비스 UUID, 또는 128비트(16바이트)의 서비스 UUID 중 하나에 대한 정보를 포함할 수 있다.
일 실시 예에서, AD 데이터 필드(632)는 ADV_PSM 필드(724), 또는 데이터 필드(726)를 포함할 수 있다.
일 실시 예에서, ADV_PSM 필드(724)는 적어도 하나의 ADV_PSM을 포함할 수 있다.
일 실시 예에서, 데이터 필드(726)는 전자 장치(101)의 서비스 정보(예: 서비스 타입 정보, 서비스 이름 정보, 서비스 제공자 정보, 또는 서비스 설명 정보 중 적어도 하나), 또는 전자 장치(101)와 관련된 정보(예: 전자 장치(101)의 이름 정보, 전자 장치(101)의 사용자 정보, 또는 전자 장치(101)의 사용자 계정 정보) 중 적어도 하나를 포함할 수 있다. 데이터 필드(726)는 가변적인 길이를 가질 수 있으며, 일 예로 최소 0바이트에서 최대 24바이트의 길이를 가질 수 있다.
일 실시 예에서, AD 데이터 필드(632)에 포함된 필드들의 배치 순서는 변경될 수 있다. 예를 들어, 도 7의 (b)는 “서비스 UUID 필드(722) + ADV_PSM 필드(724) + 데이터 필드(726)”의 순서로 배치된 것을 보이고 있으나, 이에 한정되지 않고 AD 데이터 필드(632)에 포함된 필드들의 배치 순서는 변경될 수 있다. 예를 들어, 데이터 필드(726)가 ADV_PSM 필드(724) 보다 앞서 배치되거나, ADV_PSM 필드(724)가 서비스 UUID 필드(722) 보다 앞서 배치될 수 있다.
다양한 실시 예에 따라, AD 데이터 필드(632)는 도 7의 (a)와 도 7의 (b)에 나타난 바와 같은 포맷 외에도, 회사 ID 정보, 서비스 UUID 정보, 및 ADV_PSM를 포함하는 포맷으로 형성될 수 있다.
도 8은 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치(101)가 ADV_PSM이 할당된 서비스를 제공하는 동작을 설명하기 위한 흐름도(800)이다.
도 8을 참조하면, 동작 806에서, 프로세서(240)는 광고 패킷을 생성할지 여부를 결정하기 위한 트리거 이벤트의 발생을 모니터링할 수 있다. 일 실시 예에서, 프로세서(240)는 모니터링 동작이 시작된 시점부터 설정된 시간 이내에 트리거 이벤트가 발생되는지 여부를 모니터링할 수 있다. 예를 들어, 트리거 이벤트는 전자 장치(101)의 화면 전원 상태 변경, 전자 장치(101)의 Wi-Fi 연결 상태 변경 전자 장치(101)의 호 상태 변경, 외부 전자 장치(예: 전자 장치(102))의 동작 상태 변경, 또는 전자 장치(101)의 어플리케이션 실행 중 적어도 하나와 관련된 이벤트를 포함할 수 있다.
동작 808에서, 프로세서(240)는 모니터링 동작이 시작된 시점부터 설정된 시간 이내에 트리거 이벤트의 발생이 검출되지 않으면, 동작을 종료할 수 있다.
동작 808에서, 프로세서(240)는 모니터링 동작이 시작된 시점부터 설정된 시간 이내에 트리거 이벤트의 발생이 검출되면, 발생된 트리거 이벤트와 관련된 적어도 하나의 서비스에 적어도 하나의 ADV_PSM을 할당하고, 할당된 적어도 하나의 ADV_PSM을 포함하는 광고 패킷을 생성할 수 있다. 동작 812에서, 프로세서(240)는 생성된 광고 패킷을 브로드캐스트할 수 있다.
동작 814에서, 프로세서(240)는 광고 패킷을 브로드캐스트한 시점부터 설정된 시간 이내에 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷이 수신되었는지 여부를 검출할 수 있다. 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷은 외부 전자 장치가 전자 장치(101)와의 연결을 요청하기 위한 연결 요청 패킷일 수 있다.
동작 814에서, 프로세서(240)는 광고 패킷을 브로드캐스트한 시점부터 설정된 시간 이내에 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷이 수신되지 않으면, 동작을 종료할 수 있다.
동작 814에서, 프로세서(240)는 광고 패킷을 브로드캐스트한 시점부터 설정된 시간 이내에 적어도 하나의 ADV_PSM들을 포함하는 연결 요청 패킷이 수신되면, 수신된 연결 요청 패킷에 포함된 적어도 하나의 ADV_PSM이 브로드캐스트된 광고 패킷에 포함된 적어도 하나의 ADV_PSM과 동일한지 여부를 검출할 수 있다. 프로세서(240)는 수신된 연결 요청 패킷에 포함된 적어도 하나의 ADV_PSM이 브로드캐스트된 광고 패킷에 포함된 적어도 하나의 ADV_PSM와 동일함을 검출한 경우, 수신된 연결 요청 패킷을 기반으로 하는 연결 요청을 수락할 수 있다. 또한, 프로세서(240)는 수신된 연결 요청 패킷에 포함된 적어도 하나의 ADV_PSM이 브로드캐스트된 광고 패킷에 포함된 적어도 하나의 ADV_PSM와 상이함을 검출한 경우, 수신된 연결 요청 패킷을 기반으로 하는 연결 요청을 거절할 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 연결 요청 패킷을 기반으로 하는 연결 요청을 수락할지 또는 거절할지에 대한 정보를 포함하는 연결 응답 패킷을 생성할 수 있다. 프로세서(240)는 생성된 연결 응답 패킷을 동작 816 단계에서 외부 전자 장치로 송신할 수 있다.
일 실시 예에서, 프로세서(240)는 연결 요청을 수락함을 나타내는 정보를 포함하는 연결 응답 패킷을 송신하고, 외부 전자 장치와의 통신을 위한 채널을 설정할 수 있다. 예를 들어, 프로세서(240)는 적어도 하나의 채널을 할당하고, 할당된 적어도 하나의 채널을 외부 전자 장치와의 통신을 위한 채널로 설정할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 채널에 대한 정보를 외부 전자 장치로 송신할 수 있다.
다른 예에서, 프로세서(240)가 설정된 통신 채널에 대한 정보를 송신하지 않더라도, 외부 전자 장치는 연결 응답 패킷을 수신하게 되면, 연결 요청 패킷에 포함된 소스 CID 정보에 대응하는 채널 또는 연결 응답 패킷에 포함된 목적지 CID 정보에 대응하는 채널 중 적어도 하나를 전자 장치(101)와의 통신을 위한 채널로 설정할 수 있다.
일 실시 예에서, 전자 장치(101)와 외부 전자 장치 간의 설정된 채널은 전자 장치(101)와 외부 전자 장치 간의 데이터 패킷 송신 및/또는 수신 동작을 위해 사용될 수 있다.
도 9는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치(101)(예: 도 5의 제 2 전자 장치(502))가 ADV_PSM이 할당된 서비스를 제공받는 동작을 설명하기 위한 흐름도(900)이다.
도 9를 참조하면, 동작 908에서, 프로세서(240)는 스캔 동작을 수행하여 광고 패킷이 수신되는지 여부를 모니터링할 수 있다. 일 실시 예에서, 스캔 동작은 설정된 시간 동안 수행될 수 있다.
동작 910에서, 프로세서(240)는 설정된 시간 이내에 브로드캐스트된 광고 패킷이 수신되는지 여부를 판단할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 이내에 브로드캐스트된 광고 패킷이 수신되지 않으면, 동작을 종료할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 이내에 브로드캐스트된 광고 패킷을 수신한 경우, 동작 912에서, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 수신된 광고 패킷이 이용하고자 하는 서비스와 관련된 것인지 여부 및/또는 수신된 광고 패킷이 이용하고자 하는 서비스를 제공하는 전자 장치로부터 브로드캐스트된 것인지 여부를 확인하고, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다.
일 실시 예에서 프로세서(240)는 수신된 광고 패킷으로부터 회사 ID 또는 서비스 UUID 중 적어도 하나를 획득할 수 있다. 예를 들어, 프로세서(240)는 수신된 광고 패킷으로부터 회사 ID를 획득한 경우, 획득된 회사 ID에 의해 지시되는 전자 장치가 이용하고자 하는 서비스를 제공하는 전자 장치의 ID와 동일한지 여부를 확인할 수 있다. 이용하고자 하는 서비스를 제공하는 전자 장치의 ID는 메모리(230)에 저장된 것일 수 있다. 프로세서(240)는 획득된 회사 ID에 의해 지시되는 전자 장치가 이용하고자 하는 서비스를 제공하는 전자 장치의 ID와 동일한 경우, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다.
또 다른 예에서, 프로세서(240)는 수신된 광고 패킷으로부터 서비스 UUID를 획득한 경우, 획득된 서비스 UUID가 이용하고자 하는 서비스와 관련된 UUID인지 확인할 수 있다. 이용하고자 하는 서비스와 관련된 UUID는 메모리(230)에 저장된 것일 수 있다. 프로세서(240)는 획득된 서비스 UUID가 이용하고자 하는 서비스와 관련된 UUID인 경우, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다.
동작 914에서, 프로세서(240)는 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있지 않은 것으로 확인되면, 도 9에 도시된 동작을 종료하고 도 4a 또는 도 4b에 도시된 동작들을 수행할 수 있다.
동작 914에서, 프로세서(240)는 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는 것으로 확인되면, 동작 916에서, 수신된 광고 패킷으로부터 획득한 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷을 생성할 수 있다.
동작 918에서, 프로세서(240)는 생성된 연결 요청 패킷을 통신 회로(220)를 통해, 광고 패킷을 브로드캐스트한 외부 전자 장치(예: 도 5의 제 1 전자 장치(501))로 송신할 수 있다. 일 실시 예에서, 프로세서(240)는 광고 패킷에 포함된 외부 전자 장치에 대한 정보(예: 외부 전자 장치의 MAC 주소, 외부 전자 장치의 회사 ID, 또는 외부 전자 장치의 이름 중 적어도 하나)를 기반으로, 생성된 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
동작 920에서, 프로세서(240)는 외부 전자 장치로부터 연결 요청 패킷에 대한 연결 응답 패킷을 수신할 수 있다. 일 실시 예에서, 프로세서(240)는 수신된 연결 응답 패킷이 연결 요청을 수락함을 지시하는 정보를 포함하는 경우, 외부 전자 장치와 통신을 수행하기 위한 적어도 하나의 채널을 설정할 수 있다.
일 실시 예에서, 프로세서(240)는 외부 전자 장치에 의해 할당된 적어도 하나의 채널에 대한 정보를 외부 전자 장치로부터 수신하고, 수신된 정보를 기반으로 적어도 하나의 채널을 외부 전자 장치와의 통신을 위한 채널로 설정할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 적어도 하나의 채널을 통해 외부 전자 장치와 데이터 패킷 송신 및/또는 수신 동작을 수행할 수 있다. 다른 예로서, 프로세서(240)는 연결 요청 패킷에 포함된 소스 CID 정보에 대응하는 채널 또는 연결 응답 패킷에 포함된 목적지 CID 정보에 대응하는 채널 중 적어도 하나를 외부 전자 장치와의 통신을 위한 채널로서 설정할 수 있다.
도 10a 내지 도 10c는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치(101)(예: 도 5의 제 1 전자 장치(501))가 서비스를 제공하는 동작을 설명하기 위한 흐름도(1000)이다.
도 10a을 참조하면, 동작 1002에서, 프로세서(240)는 광고 패킷을 생성할지 여부를 결정하기 위한 트리거 이벤트가 발생하는지를 모니터링할 수 있다. 일 실시 예에서, 프로세서(240)는 모니터링 동작이 시작된 시점부터 설정된 시간 이내에 트리거 이벤트가 발생되는지 여부를 모니터링할 수 있다. 예를 들어, 트리거 이벤트는 전자 장치(101)의 화면 전원 상태 변경, 전자 장치(101)의 Wi-Fi 연결 상태 변경 전자 장치(101)의 호 상태 변경, 외부 전자 장치(예: 전자 장치(102))의 동작 상태 변경, 또는 전자 장치(101)의 어플리케이션 실행 중 적어도 하나와 관련된 이벤트를 포함할 수 있다.
동작 1004에서, 프로세서(240)는 모니터링 동작이 시작된 시점부터 설정된 시간 이내에 트리거 이벤트의 발생이 검출되지 않으면, 동작을 종료할 수 있다.
동작 1004에서, 프로세서(240)는 모니터링 동작이 시작된 시점부터 설정된 시간 이내에 트리거 이벤트의 발생이 검출되면, 발생된 트리거 이벤트와 관련된 적어도 하나의 서비스에 적어도 하나의 ADV_PSM을 할당할 수 있다.
동작 1006에서, 프로세서(240)는 할당된 적어도 하나의 ADV_PSM을 포함하는 광고 패킷을 생성하고, 동작 1008에서 통신 회로(220)를 통해, 생성된 광고 패킷을 브로드캐스트할 수 있다.
일 실시 예에서, 적어도 하나의 ADV_PSM은 전자 장치(101)에 의해 제공되는 적어도 하나의 서비스를 이용하기 위한 연결을 설정하기 위해 사용될 수 있다. 프로세서(240)는 통신 회로(220)를 통해 광고 패킷을 브로드캐스트하고 연결 요청 패킷의 수신을 대기할 수 있다.
동작 1010에서, 프로세서(240)는 통신 회로(220)를 통해 연결 요청 패킷을 수신할 수 있다. 일 실시 예에서, 연결 요청 패킷은 광고 패킷을 수신하기 위해 스캔 동작을 수행한 외부 전자 장치(예: 전자 장치(102))로부터 수신될 수 있다.
동작 1012에서, 프로세서(240)는 외부 전자 장치로부터 수신된 연결 요청 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 검출할 수 있다. 예를 들어, 프로세서(240)는 수신된 연결 요청 패킷에 브로드캐스트한 광고 패킷에 포함된 적어도 하나의 ADV_PSM과 동일한 적어도 하나의 ADV_PSM이 포함되어 있는지 검출할 수 있다.
동작 1014에서, 프로세서(240)는 수신된 연결 요청 패킷에 브로드캐스트한 광고 패킷에 포함된 적어도 하나의 ADV_PSM과 동일한 적어도 하나의 ADV_PSM이 포함되어 있음을 검출하면, 연결 응답 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 연결 응답 패킷은 외부 전자 장치의 연결 요청을 수락함을 나타내는 정보를 포함할 수 있다.
동작 1016에서, 프로세서(240)는 외부 전자 장치와의 통신을 위한 적어도 하나의 채널을 설정할 수 있다.예를 들어, 적어도 하나의 채널은 프로세서(240)에 의해 할당된 적어도 하나의 채널일 수 있다. 또 다른 예로, 적어도 하나의 채널은 연결 요청 패킷에 포함된 소스 CID 정보에 대응하는 채널 또는 연결 응답 패킷에 포함된 목적지 CID 정보에 대응하는 채널 중 적어도 하나일 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 적어도 하나의 채널에서 외부 전자 장치와 서비스와 관련된 적어도 하나의 데이터 패킷을 통신 회로(220)를 통해 송신 및/또는 수신 할 수 있다.
동작 1012에서, 프로세서(240)는 외부 전자 장치로부터 수신된 연결 요청 패킷에 적어도 하나의 ADV_PSM이 포함되어 있지 않음이 검출된 경우, 도 10a의 ①에 의해 이어지는 도 10b의 동작 1022, 또는 도 10a의 ②에 의해 이어지는 도 10c의 동작 1042 중 적어도 하나를 수행할 수 있다.
도 10b를 참조하면, 프로세서(240)는 수신된 연결 요청 패킷에 ADV_PSM이 포함되어 있지 않음이 검출된 경우, 동작 1022에서 수신된 연결 요청 패킷이 설정된 채널에서 수신된 ACL 연결 요청 패킷인지 여부를 확인할 수 있다. 일 실시 예에서, 설정된 채널은 CID가 0X0004인 채널일 수 있고, 적어도 하나의 ADV_PSM이 포함된 연결 요청 패킷이 수신될 수 있는 채널(예: CID가 0X0005인 채널)과 상이할 수 있다.
동작 1022에서, 프로세서(240)는 수신된 연결 요청 패킷이 ACL 연결 요청 패킷임이 확인되면, 동작 1024에서, ACL연결 응답 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, ACL 연결 응답 패킷은 외부 전자 장치(예: 도 4a의 제 2 전자 장치(402))의 연결 요청을 수락함을 나타내는 정보를 포함할 수 있다.
동작 1026에서, 프로세서(240)는 서비스 검색 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다. 서비스 검색 요청 패킷은 전자 장치(101)에 의해 제공되는 하나 이상의 서비스들에 대한 정보를 제공해줄 것을 요청하기 위한 정보를 포함할 수 있다.
동작 1028에서, 프로세서(240)는 서비스 검색 요청 패킷에 대한 응답으로, 서비스 검색 응답 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 서비스 검색 응답 패킷은 서비스 목록 정보를 포함할 수 있다.
일 실시 예에서, 서비스 목록 정보는 전자 장치(101)가 제공하는 하나 이상의 서비스들에 대한 정보를 포함할 수 있다. 하나 이상의 서비스들에 대한 정보는 서비스와 관련된 데이터에 대한 읽기 동작 또는 기록 동작 중 적어도 하나를 수행할 수 있는지에 대한 정보를 포함할 수 있다.
동작 1030에서, 프로세서(240)는 하나 이상의 서비스들에 대한 정보를 기반으로, 통신 회로(220)를 통해 외부 전자 장치와 데이터 패킷 송신 및/또는 수신 동작을 수행할 수 있다.
예를 들어, 프로세서(240)는 서비스와 관련된 데이터에 대한 읽기 동작을 요청하는 데이터 패킷이 외부 전자 장치로부터 수신되면, 서비스와 관련된 데이터를 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
또 다른 예로, 프로세서(240)는 기록 동작을 위한 데이터로서 서비스와 관련된 데이터를 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다.
한편, 도 10a의 ②에 의해 이어지는 도 10c의 동작 1042에서, 프로세서(240)는 수신된 연결 요청 패킷에 ADV_PSM이 포함되어 있지 않음이 검출된 경우, 동작 1022에서 수신된 연결 요청 패킷이 설정된 채널에서 수신된 ACL 연결 요청 패킷인지 여부를 확인할 수 있다. 일 실시 예에서, 설정된 채널은 CID가 0X0004인 채널일 수 있고, 적어도 하나의 ADV_PSM이 포함된 연결 요청 패킷이 수신될 수 있는 채널(예: CID가 0X0005인 채널)과 상이할 수 있다.
동작 1044에서, 프로세서(240)는 수신된 연결 요청 패킷이 ACL 연결 요청 패킷임이 확인되면, 동작 1024에서, ACL 연결 응답 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, ACL 연결 응답 패킷은 외부 전자 장치(예: 도 4b의 제 2 전자 장치(402))의 연결 요청을 수락함을 나타내는 정보를 포함할 수 있다.
동작 1046에서, 프로세서(240)는 서비스 검색 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다. 서비스 검색 요청 패킷은 전자 장치(101)에 의해 제공되는 하나 이상의 서비스들에 대한 정보를 제공해줄 것을 요청하기 위한 정보를 포함할 수 있다.
동작 1048에서, 프로세서(240)는 서비스 검색 요청 패킷에 대한 응답으로, 서비스 검색 응답 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 서비스 검색 응답 패킷은 서비스 목록 정보를 포함할 수 있다.
동작 1050에서, 프로세서(240)는 SD_PSM을 요청하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다. 일 실시 예에서, 요청된 SD_PSM은 서비스 목록 정보에 포함된 서비스와 관련된 것일 수 있다.
동작 1052에서, 프로세서(240)는 요청된 SD_PSM을 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
동작 1054에서, 프로세서(240)는 SD_PSM을 포함하는 연결 요청 패킷이 외부 전자 장치로부터 수신되는지 여부를 확인할 수 있다. 프로세서(240)는 SD_PSM을 포함하는 연결 요청 패킷이 외부 전자 장치로부터 수신되지 않으면 동작을 종료할 수 있다.
프로세서(240)는 SD_PSM을 포함하는 연결 요청 패킷이 외부 전자 장치로부터 수신되면, 동작 1056에서, 연결 응답 패킷을 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 프로세서(240)는 연결 요청 패킷에 포함된 SD_PSM이 동작 1052에서 외부 전자 장치로 송신한 SD_PSM과 동일한 경우, 연결 응답 패킷을 외부 전자 장치로 송신할 수 있다.
동작 1058에서, 프로세서(240)는 외부 전자 장치와 통신을 수행하기 위한 적어도 하나의 채널을 설정할 수 있다. 일 실시 예에서, 프로세서(240)는 외부 전자 장치와 통신을 수행하기 위한 적어도 하나의 채널을 할당하고, 할당된 적어도 하나의 채널에 대한 정보를 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 프로세서(240)는 할당된 적어도 하나의 채널을 통해 외부 전자 장치와 서비스와 관련된 적어도 하나의 데이터 패킷을 송신 및/또는 수신할 수 있다.
도 11a 내지 11c는 다양한 실시 예들에 따른 BLE 네트워크에서 전자 장치(예: 도 5의 제 2 전자 장치(502))가 서비스를 제공받는 동작을 설명하기 위한 흐름도(1100)이다.
도 11a를 참조하면, 동작 1108에서, 프로세서(240)는 스캔 동작을 수행하여 외부 전자 장치(예: 도 5의 제 1 전자 장치(501))에 의해 브로드캐스트된 광고 패킷이 수신되는지 여부를 모니터링할 수 있다. 일 실시 예에서, 스캔 동작은 설정된 시간 동안 수행될 수 있다.
동작 1110에서, 프로세서(240)는 설정된 시간 이내에 브로드캐스트된 광고 패킷이 수신되지 않으면, 동작을 종료할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 이내에 브로드캐스트된 광고 패킷이 수신되면, 동작 1112에서, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 광고 패킷이 이용하고자 하는 서비스와 관련된 것인지 여부 및/또는 수신된 광고 패킷이 이용하고자 하는 서비스를 제공하는 전자 장치로부터 브로드캐스트된 것인지 여부를 확인하고, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다.
일 실시 예에서, 프로세서(240)는 수신된 광고 패킷으로부터 회사 ID 또는 서비스 UUID 중 적어도 하나를 획득할 수 있다. 예를 들어, 프로세서(240)는 수신된 광고 패킷으로부터 회사 ID를 획득한 경우, 획득된 회사 ID에 의해 지시되는 전자 장치가 이용하고자 하는 서비스를 제공하는 전자 장치의 ID와 동일한지 여부를 확인할 수 있다. 이용하고자 하는 서비스를 제공하는 전자 장치의 ID는 메모리(230)에 저장된 것일 수 있다. 프로세서(240)는 획득된 회사 ID에 의해 지시되는 전자 장치가 이용하고자 하는 서비스를 제공하는 전자 장치의 ID와 동일한 경우, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다.
또 다른 예에서, 프로세서(240)는 수신된 광고 패킷으로부터 서비스 UUID를 획득한 경우, 획득된 서비스 UUID가 이용하고자 하는 서비스와 관련된 UUID인지 확인할 수 있다. 이용하고자 하는 서비스와 관련된 UUID는 메모리(230)에 저장된 것일 수 있다. 프로세서(240)는 획득된 서비스 UUID가 이용하고자 하는 서비스와 관련된 UUID인 경우, 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있는지 여부를 확인할 수 있다.
동작 1114에서, 프로세서(240)는 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함됨이 확인되면, 동작 1116에서, 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷을 생성할 수 있다.
동작 1118에서, 프로세서(240)는 생성된 연결 요청 패킷을 통신 회로(220)를 통해, 광고 패킷을 브로드캐스트한 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 프로세서(240)는 광고 패킷에 포함된 외부 전자 장치에 대한 정보(예: 외부 전자 장치의 MAC 주소, 외부 전자 장치의 회사 ID, 또는 외부 전자 장치의 이름 중 적어도 하나)를 기반으로, 생성된 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
일 실시 예에서, 프로세서(240)는 광고 패킷에 적어도 하나의 ADV_PSM이 포함됨이 검출되면, 광고 패킷에 포함된 적어도 하나의 서비스에 대한 정보를 기반으로 외부 전자 장치에 의해 제공되는 적어도 하나의 서비스를 이용할지 여부를 결정할 수 있다. 프로세서(240)는 외부 전자 장치에 의해 제공되는 적어도 하나의 서비스를 이용하기로 결정한 경우, 적어도 하나의 ADV_PSM을 포함하는 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 연결 요청 패킷에 포함된 적어도 하나의 ADV_PSM은 광고 패킷에 포함된 적어도 하나의 ADV_PSM과 동일할 수 있다.
동작 1120에서, 프로세서(240)는 통신 회로(220)를 통해, 외부 전자 장치로부터 연결 응답 패킷을 수신할 수 있다. 일 실시 예에서, 프로세서(240)는 수신된 연결 응답 패킷에 연결 요청을 수락함을 나타내는 정보가 포함된 경우, 외부 전자 장치와의 연결이 성공된 것으로 판단할 수 있다.
동작 1124에서, 프로세서(240)는 외부 전자 장치와의 통신을 위한 적어도 하나의 채널을 설정할 수 있다. 예를 들어, 프로세서(240)는 외부 전자 장치에 의해 할당된 적어도 하나의 채널에 대한 정보가 통신 회로(220)를 통해 수신되면, 수신된 정보를 기반으로 외부 전자 장치와 통신을 수행하기 위한 적어도 하나의 채널로 설정할 수 있다. 다른 예로, 프로세서(240)는 ADV_PSM을 포함하는 연결 요청 패킷 및 연결 응답 패킷에 각각 포함된 소스 CID 또는 목적지 CID에 의해 지시되는 채널들 중 적어도 하나를 외부 전자 장치와의 통신을 위한 채널로 설정할 수 있다.
한편, 동작 1114에서, 프로세서(240)는 수신된 광고 패킷에 적어도 하나의 ADV_PSM이 포함되어 있지 않은 것으로 확인되면, 도 11a의 ①에 의해 이어지는 도 11b의 동작 1122, 또는 도 11a의 ②에 의해 이어지는 도 11c의 동작 1142 중 적어도 하나를 수행할 수 있다.
도 11b를 참조하면, 동작 1142에서, 프로세서(240)는 ACL 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, ACL 연결 요청 패킷은 설정된 채널에서 송신될 수 있으며, 설정된 채널은 CID가 0X0004인 채널일 수 있다.
동작 1144에서, 프로세서(240)는 통신 회로(220)를 통해, 외부 전자 장치로부터 ACL 연결 응답 패킷이 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 ACL 연결 응답 패킷이 수신되지 않는 경우, 도 11a의 동작 1118(예를 들어, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 모니터링하는 동작)을 다시 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 ACL 연결 응답 패킷이 수신된 경우, 동작 1146에서, 서비스 검색 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
동작 1148에서, 프로세서(240)는 통신 회로(220)를 통해, 서비스 검색 응답 패킷이 외부 전자 장치로부터 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 서비스 검색 응답 패킷이 수신되지 않는 경우, 도 11a의 동작 1118(예를 들어, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 모니터링하는 동작)을 다시 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 서비스 검색 응답 패킷이 수신된 경우, 동작 1150에서 통신 회로(220)를 통해, 외부 전자 장치와 데이터 패킷 송신 및/또는 수신 동작을 수행할 수 있다. 일 실시 예에서, 서비스 검색 응답 패킷은 서비스 목록 정보를 포함할 수 있다.
일 실시 예에서, 서비스 목록 정보는 전자 장치(101)가 제공하는 하나 이상의 서비스들에 대한 정보를 포함할 수 있다. 하나 이상의 서비스들에 대한 정보는 서비스와 관련된 데이터에 대한 읽기 동작 또는 기록 동작 중 적어도 하나를 수행할 수 있는지에 대한 정보를 포함할 수 있다. 프로세서(240)는 하나 이상의 서비스들에 대한 정보를 기반으로, 통신 회로(220)를 통해 외부 전자 장치와 데이터 패킷 송신 및/또는 수신 동작을 수행할 수 있다.
예를 들어, 프로세서(240)는 하나 이상의 서비스들에 대한 정보를 기반으로 읽기 동작을 수행할 수 있음이 검출되면, 서비스와 관련된 데이터를 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다.
또 다른 예로, 프로세서(240)는 하나 이상의 서비스들에 대한 정보를 기반으로 기록 동작을 수행할 수 있음이 검출되면, 서비스와 관련된 데이터를 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
한편, 도 11a의 ②에 의해 이어지는 도 11c의 동작 1162에서, 프로세서(240)는 ACL 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, ACL 연결 요청 패킷은 설정된 채널에서 송신될 수 있으며, 설정된 채널은 CID가 0X0004인 채널일 수 있다.
동작 1164에서, 프로세서(240)는 통신 회로(220)를 통해, 외부 전자 장치로부터 ACL 연결 응답 패킷이 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 ACL 연결 응답 패킷이 수신되지 않는 경우, 도 11a의 동작 1118(예를 들어, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 모니터링하는 동작)을 다시 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 ACL 연결 응답 패킷이 수신된 경우, 동작 1166에서, 서비스 검색 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
동작 1168에서, 프로세서(240)는 통신 회로(220)를 통해, 서비스 검색 응답 패킷이 외부 전자 장치로부터 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 서비스 검색 응답 패킷이 수신되지 않는 경우, 도 11a의 동작 1118(예를 들어, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 모니터링하는 동작)을 다시 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 서비스 검색 응답 패킷이 수신된 경우, 동작 1170에서 SD_PSM을 요청하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다. 일 실시 예에서, 서비스 검색 응답 패킷은 서비스 목록 정보를 포함할 수 있고, 동작 1170에서 요청된 SD_PSM은 서비스 목록 정보에 포함된 서비스와 관련된 것일 수 있다.
동작 1172에서, 프로세서(240)는 요청된 SD_PSM을 포함하는 데이터 패킷을 통신 회로(220)를 통해 외부 전자 장치로부터 수신할 수 있다.
동작 1174에서, 프로세서(240)는 SD_PSM을 포함하는 연결 요청 패킷을 통신 회로(220)를 통해 외부 전자 장치로 송신할 수 있다.
동작 1176에서, 프로세서(240)는 설정된 시간 내에 연결 응답 패킷이 수신되는지 여부를 확인할 수 있다. 일 실시 예에서, 프로세서(240)는 설정된 시간 내에 연결 응답 패킷이 수신되지 않는 경우, 도 11a의 동작 1118(예를 들어, 스캔 동작을 수행하여 광고 패킷이 수신되는지를 모니터링하는 동작)을 다시 수행할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 시간 내에 연결 응답 패킷이 수신되고, 수신된 연결 응답 패킷에 연결 요청을 수락함을 나타내는 정보가 포함된 경우, 외부 전자 장치와의 연결이 성공된 것으로 판단할 수 있다.
동작 1178에서, 프로세서(240)는 외부 전자 장치와의 적어도 하나의 통신 채널을 설정할 수 있다. 예를 들어, 프로세서(240)는 외부 전자 장치에 의해 할당된 적어도 하나의 통신 채널에 대한 정보가 수신되면, 수신된 정보를 기반으로 적어도 하나의 통신 채널을 설정할 수 있다. 다른 예로, 프로세서(240)는 연결 요청 패킷에 포함된 소스 CID 정보에 의해 지시되는 채널 또는 연결 응답 패킷에 포함된 목적지 CID 정보에 의해 지시되는 채널 중 적어도 하나를 통신 채널로 설정할 수 있다.
일 실시 예에서, 프로세서(240)는 설정된 적어도 하나의 통신 채널을 통해 외부 전자 장치와 서비스와 관련된 적어도 하나의 데이터 패킷을 송신 및/또는 수신할 수 있다.
도 12는 다양한 실시 예들에 따른 BLE 네트워크에서 연결 요청 패킷을 필터링하는 동작의 일 예를 개략적으로 도시하고 있는 신호 흐름도(1200)이다.
다양한 실시 예들에 따른, 전자 장치(101)에서 연결 요청 패킷을 필터링하는 동작은 전자 장치(101)의 프로세서(240)와 통신 회로(220)의 동작에 의해 제어될 수 있다.
도 12를 참조하면, 동작 1204에서 프로세서(240)는 하나 이상의 서비스들에 대한 하나 이상의 ADV_PSM들을 할당할 수 있다. 예를 들어, 프로세서(240)는 하나 이상의 서비스들을 제공하기 위한 하나 이상의 서비스 서버들을 개시하고, 하나 이상의 서비스 서버들과의 연결을 위해 사용할 하나 이상의 ADV_PSM들을 할당할 수 있다. 일 실시 예에서, 하나 이상의 서비스 서버들은 하나 이상의 트리거 이벤트들이 발생되면 개시될 수 있다. 일 실시 예에서, 하나 이상의 서비스 서버들을 개시한다는 것은 프로세서(240)가 하나 이상의 서비스들을 제공하기 위한 동작을 시작한다는 것을 의미할 수 있다.
동작 1206에서, 프로세서(240)는 하나 이상의 서비스들에 할당된 하나 이상의 ADV_PSM들을 포함하는 적어도 하나의 광고 패킷을 생성할 수 있다.
동작 1208에서, 프로세서(240)는 적어도 하나의 광고 패킷에 포함된 하나 이상의 ADV_PSM들을 포함하는 허가된 PSM 리스트를 생성하고, 허가된 PSM 리스트를 통신 회로(220)로 제공할 수 있다.
동작 1210에서, 프로세서(240)는 통신 회로(220)로 적어도 하나의 광고 패킷을 브로드캐스트할 것을 요청할 수 있다. 동작 1212에서, 통신 회로(220)는 프로세서(240)의 요청에 기반하여 적어도 하나의 광고 패킷을 브로드캐스트할 수 있다.
동작 1214에서, 통신 회로(220)는 하나 이상의 외부 전자 장치들로부터 하나 이상의 연결 요청 패킷들을 수신할 수 있다. 동작 1216에서, 통신 회로(220)는 허가된 PSM 리스트를 기반으로 하나 이상의 연결 요청 패킷들에 대한 필터링 동작을 수행할 수 있다. 일 실시 예에서, 하나 이상의 연결 요청 패킷들에 대한 필터링 동작은 다음과 같은 동작들을 포함할 수 있다.
일 실시 예에서, 통신 회로(220)는 하나 이상의 연결 요청 패킷들에 하나 이상의 ADV_PSM들이 포함되었는지를 검출할 수 있다. 통신 회로는 하나 이상의 연결 패킷들에 하나 이상의 ADV_PSM들이 포함되지 않은 경우, 하나 이상의 연결 요청 패킷들을 무시할 수 있다. 예컨대, 하나 이상의 연결 요청 패킷들에 하나 이상의 ADV_PSM들이 포함되지 않은 경우, 통신 회로(220)는 하나 이상의 연결 요청 패킷들을 각각 적절하지 않은 연결 요청에 대한 것으로 간주하여, 하나 이상의 연결 요청 패킷들을 프로세서(240)로 전달하지 않고 폐기할 수 있다.
일 실시 예에서, 통신 회로(220)는 하나 이상의 연결 패킷들에 하나 이상의 ADV_PSM들이 포함된 경우, 하나 이상의 연결 패킷들에 포함된 하나 이상의 ADV_PSM들이 허가된 PSM 리스트에 포함된 하나 이상의 ADV_PSM들과 동일한지 여부를 검출할 수 있다.
일 실시 예에서, 통신 회로(220)는 하나 이상의 연결 패킷들에 포함된 하나 이상의 ADV_PSM들이 허가된 PSM 리스트에 포함된 하나 이상의 ADV_PSM들과 동일하지 않은 경우, 하나 이상의 연결 요청 패킷들을 무시할 수 있다. 예컨대, 하나 이상의 연결 요청 패킷들에 포함된 하나 이상의 ADV_PSM들이 허가된 PSM 리스트에 포함된 하나 이상의 ADV_PSM들과 동일하지 않은 경우, 통신 회로(220)는 하나 이상의 연결 요청 패킷들을 적절하지 않은 연결 요청에 대한 것으로 간주하여, 하나 이상의 연결 요청 패킷들을 프로세서(240)로 전달하지 않고 폐기할 수 있다.
일 실시 예에서, 통신 회로(220)는 하나 이상의 연결 패킷들에 포함된 하나 이상의 ADV_PSM들이 허가된 PSM 리스트에 포함된 하나 이상의 ADV_PSM들과 동일한 경우, 동작 1218에서 하나 이상의 연결 요청 패킷들을 프로세서(240)로 전달할 수 있다.
프로세서(240)는 통신 회로(220)로부터 전달된 하나 이상의 연결 요청 패킷들에 대한 연결 요청을 수락할지 여부를 결정할 수 있다. 동작 1220에서, 프로세서(240)는 하나 이상의 연결 요청 패킷들에 대한 연결 요청을 수락할지 여부에 대한 정보를 포함하는 하나 이상의 연결 응답 패킷들을 통신 회로(220)로 전달할 수 있다. 통신 회로(220)는 하나 이상의 연결 응답 패킷들이 전달되면, 하나 이상의 연결 응답 패킷들을 하나 이상의 외부 전자 장치들로 송신할 수 있다.
일 실시 예에서, 프로세서(240)는 하나 이상의 외부 전자 장치들과 데이터 패킷 송신 및/또는 수신 동작을 수행하기 위한 하나 이상의 채널들을 설정할 수 있다. 데이터 패킷 송신 및/또는 수신 동작은 하나 이상의 서비스들에 대한 데이터 패킷 송신 및/또는 수신 동작을 포함할 수 있다.
전술한 바와 같이, 통신 회로(220)는 허가된 PSM 리스트를 기반으로, 적절하지 않은 하나 이상의 연결 요청 패킷들을 필터링할 수 있다. 따라서, 프로세서(240)는 적절하지 않은 하나 이상의 연결 요청 패킷들로 인한 동작을 불필요하게 수행하지 않으므로, 불필요한 동작으로 인해 전력이 낭비되는 것을 방지할 수 있다.
다양한 실시 예들에 따르면, 광고 패킷에 포함되는 ADV_PSM은 보안을 위해 암호화 될 수 있다.
도 13은 다양한 실시 예들에 따른 BLE 네트워크에서 보안 ADV_PSM을 제공하는 동작의 일 예를 개략적으로 도시하고 있는 신호 흐름도(1300)이다.
도 13에서, 제 1 전자 장치(1301)는 ADV_PSM이 할당된 서비스를 제공하는 전자 장치이고, 제 2 전자 장치(1302)는 ADV_PSM이 할당된 서비스를 제공받는 전자 장치일 수 있다. 제 1 전자 장치(1301) 및/또는 제 2 전자 장치(1302)는 도 1의 전자 장치(101)와 동일한 전자 장치일 수 있다.
도 13을 참조하면, 동작 1302에서, 제 1 전자 장치(1301)와 제 2 전자 장치(1302)는 제 1 전자 장치(1301)와 제 2 전자 장치(1302)가 공통으로 사용하기 위한 보안 정보를 생성할 수 있다. 일 실시 예에서, 제 1 전자 장치(1301)와 제 2 전자 장치(1302)는 제 1 전자 장치(1301)와 제 2 전자 장치(1302)의 사용자가 동일한 경우, 동일한 사용자 정보(예: 사용자 계정 정보)를 이용하여 보안 정보를 생성할 수 있다.
일 실시 예에서, 제 1 전자 장치(1301)와 제 2 전자 장치(1302)는 사용자 정보와 설정된 보안 알고리즘을 기반으로 보안 정보를 생성할 수 있다. 예를 들어, 설정된 보안 알고리즘은 SHA(secure hash algorithm) 256이 될 수 있다. 이 경우, 사용자 정보는 SHA 256을 기반으로 하는 보안 함수의 입력값으로 사용될 수 있고, 보안 함수의 출력값은 제 1 전자 장치(1301)와 제 2 전자 장치(1302)가 공통으로 사용할 보안 정보를 생성하기 위해 사용될 수 있다.
표 4는 사용자 정보가 SHA256 함수에 입력된 결과를 예시하고 있다.
Figure PCTKR2021019034-appb-T000004
표 4에서 SHA256()은 SHA 256을 기반으로 하는 보안 함수를 나타내고, 사용자 정보는 보안 함수의 입력값을 나타내고, SOURCE는 보안 함수의 출력값을 나타낼 수 있다. 일 실시 예에 따라, 보안 함수의 출력값 중 일부 값이 보안 정보로서 사용될 수 있다. 예를 들어, 보안 함수의 출력값에서 ADV_PSM의 길이(예: 2바이트)와 동일한 길이의 값(0xC1B4)이 보안 정보로서 사용될 수 있다. 다른 실시 예에 따라, SHA256 함수에 입력되는 정보는 사용자 정보에 대신에, 날짜 정보 또는 모델 정보 중 적어도 하나가 될 수도 있다.
제 1 전자 장치(1301)는 동작 1304에서, 생성된 보안 정보를 기반으로 ADV_PSM을 암호화할 수 있다. 일 실시 예에서, 제 1 전자 장치(1301)는 보안 정보와 ADV_PSM에 대한 바이트 단위의 배타적 논리합(exclusive or: XOR) 연산을 수행하여 ADV_PSM을 암호화할 수 있다.
표 5는 보안 정보(예: 0xC1B4)와 ADV_PSM(예: 0x0081)에 대한 바이트 단위의 XOR 연산 결과가 ADV_PSM을 암호화한 결과(예: 0xC1 0x35 (0xC135))로서 생성된 것을 예시한 것이다.
Figure PCTKR2021019034-appb-T000005
제 1 전자 장치(1301)는 동작 1306에서, 암호화된 ADV_PSM을 포함하는 광고 패킷을 생성할 수 있다. 제 1 전자 장치(1301)는 동작 1308에서, 생성된 광고 패킷을 브로드캐스트할 수 있다. 일 실시 예에서, 브로드캐스트된 광고 패킷은 제 2 전자 장치(1302)에 의해 수신될 수 있다. 제 2 전자 장치(1302)는 수신된 광고 패킷으로부터 암호화된 ADV_PSM을 획득하고, 동작 1310에서, 보안 정보를 기반으로 암호화된 ADV_PSM을 해독할 수 있다. 일 실시 예에서, 제 2 전자 장치(1302)는 보안 정보와 암호화된 ADV_PSM에 대한 바이트 단위의 XOR 연산을 수행하여 암호화된 ADV_PSM을 해독할 수 있다.
표 6은 보안 정보(예: 0xC1B4)와 암호화된 ADV_PSM(예: 0xC135)에 대한 바이트 단위의 XOR 연산 결과가 암호화된 ADV_PSM을 해독한 결과(예: 0x00 0x81 (0x0081))로서 생성된 것을 예시한 것이다.
Figure PCTKR2021019034-appb-T000006
일 실시 예에서, 제 2 전자 장치(1302)는 ADV_PSM이 해독되면, 해독된 ADV_PSM을 포함하는 연결 요청 패킷을 제 1 전자 장치(1301)로 송신할 수 있다. 제 2 전자 장치(1302)는 연결 요청을 수락함을 나타내는 정보가 포함된 연결 응답 패킷이 제 1 전자 장치(1301)로부터 수신되면, 제 1 전자 장치(1301)와의 연결이 성공되었음을 판단하고 제 1 전자 장치(1301)와의 통신을 위한 적어도 하나의 채널을 설정할 수 있다.
이하 다양한 실시 예들에 따라, 제 1 전자 장치(1301)와 제 2 전자 장치(1302)가 암호화된 ADV_PSM을 기반으로 채널을 설정하는 동작을 예를 들어 설명하기로 한다.
일 실시 예에서, 제 1 전자 장치(1301)는 트리거 이벤트가 발생하면, 서비스 제공을 위한 동작을 시작하여 광고 패킷을 생성할 수 있다. 예를 들어, 제 1 전자 장치(1301)는 서비스 정보, 사용자 계정 정보, 및 ADV_PSM이 포함된 광고 패킷을 생성할 수 있다. 서비스 정보는 2바이트, 사용자 계정 정보는 6바이트, ADV_PSM은 2바이트의 길이를 가질 수 있다.
일 실시 예에서, 제 1 전자 장치(1301)는 광고 패킷에 포함될 ADV_PSM을 암호화할 수 있다. 예를 들어, 제 1 전자 장치(1301)는 사용자 계정 정보와 설정된 보안 알고리즘(예: SHA 256)을 기반으로 보안 정보를 생성할 수 있다.
일 실시 예에서, ADV_PSM는 도 7의 (a)에 도시된 ADV_PSM 필드(632)에 포함될 수 있고, 서비스 정보 및 사용자 계정 정보는 데이터 필드(716)에 포함될 수 있다. 도 7의 (a)에 나타난 바와 달리, 데이터 필드(716)는 ADV_PSM 필드(632) 보다 앞서 배치될 수 있다. 따라서, 서비스 정보, 사용자 계정 정보, 및 ADV_PSM는 서비스 정보, 사용자 계정 정보, 및 ADV_PSM의 순서로 광고 패킷에 포함될 수 있다. 타입 필드(630)은 광고 데이터 필드(632)에 포함된 데이터 타입이 제 1 전자 장치(1301)에 의해 설정된 데이터를 포함하는 타입(예: 제조사 특정 데이터 타입)임을 지시하는 정보를 포함할 수 있다.
일 실시 예에서, 제 2 전자 장치(1302)는 브로드캐스트된 광고 패킷을 수신하고, 수신된 광고 패킷의 광고 데이터 필드(711)로부터 “02 18 11 A1 F5 F9 11 5B CF 88 7E C8 A7 95”와 같은 정보를 획득할 수 있다.
제 2 전자 장치(1302)는 “서비스 정보(3 바이트) + 사용자 계정 정보(6 바이트) + ADV_PSM(2 바이트)”가 순서대로 포함되어 있는 것을 고려하여, 획득된 정보로부터 암호화된 ADV_PSM(예: 7E C8)을 식별할 수 있다.
제 2 전자 장치(1302)는 제 1 전자 장치(1301)와 동일한 방법으로 설정한 보안 정보와 암호화된 ADV_PSM에 대한 바이트 단위의 XOR 연산을 수행함으로써, 암호화된 ADV_PSM을 해독할 수 있다. 일 실시 예에서, 제 2 전자 장치(1302)는 해독된 ADV_PSM(예: 0x0080)을 포함하는 연결 요청 패킷을 제 1 전자 장치(1301)로 송신할 수 있다. 제 2 전자 장치(1302)는 연결 요청 패킷에 대한 수락을 나타내는 정보가 포함된 연결 응답 패킷이 수신되면 제 1 전자 장치(1301)와의 연결이 성공되었음을 판단할 수 있다.
본 개시의 다양한 실시 예들에 따른 방법은; 전자 장치(101, 501)가 프로토콜/서비스 정보를 송신하는 방법에 있어서, 적어도 하나의 제 1 프로토콜/서비스 정보(예: 적어도 하나의 ADV_PSM)를 포함하는 광고 패킷을 브로드캐스트하는 동작(506)(812)(1008)(1212)과, 외부 전자 장치(102, 502)로부터 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 수신하는 동작(510)(814)(1010)(1218)과, 상기 적어도 하나의 제 2 프로토콜/서비스 정보가 상기 제 1 프로토콜/서비스 정보와 동일한 경우, 상기 외부 전자 장치로 연결 응답 패킷을 송신하는 동작(512)(816)(1014)(1220)을 포함할 수 있다.
다양한 실시 예에서, 상기 외부 전자 장치와 적어도 하나의 데이터 패킷을 송신 및/또는 수신하기 위한 적어도 하나의 채널을 할당하는 동작과, 상기 할당된 적어도 하나의 채널에 대한 정보를 상기 외부 전자 장치로 송신하는 동작과, 상기 할당된 채널을 통해 상기 외부 전자 장치와 적어도 하나의 데이터 패킷을 송신 및/또는 수신하는 동작을 더 포함할 수 있다.
다양한 실시 예에서, 상기 광고 패킷은 타입 필드(630)와 데이터 필드(632)를 포함하고, 상기 타입 필드(630)는 상기 데이터 필드(632)에 포함된 데이터가 상기 전자 장치에 의해 설정된 데이터임을 나타내는 정보를 포함하고, 상기 데이터 필드(632)는 상기 적어도 하나의 제 1 프로토콜/서비스 정보(714)와 상기 전자 장치의 제품 식별자(identifier: ID) 정보(712)를 포함할 수 있다.
다양한 실시 예에서, 상기 데이터 필드(632)는 상기 전자 장치의 이름 정보, 상기 전자 장치의 사용자 정보, 또는 상기 전자 장치의 사용자 계정 정보 중 적어도 하나(716)를 더 포함할 수 있다.
다양한 실시 예에서, 상기 광고 패킷은 타입 필드(630)와 데이터 필드(632)를 포함하고, 상기 타입 필드(630)는 상기 데이터 필드(632)에 포함된 데이터가 상기 전자 장치에 의해 설정된 데이터임을 나타내는 정보를 포함하고, 상기 데이터 필드(632)는 상기 적어도 하나의 제 1 프로토콜/서비스 정보(724)와 상기 전자 장치의 서비스 식별자(identifier: ID) 정보(722)를 포함할 수 있다.
다양한 실시 예에서, 상기 데이터 필드(632)는 상기 전자 장치의 사용자 계정 정보, 서비스 타입 정보, 서비스 이름 정보, 서비스 제공자 정보, 또는 서비스 설명 정보 중 적어도 하나(726)를 더 포함할 수 있다.
본 개시의 다양한 실시 예들에 따른 방법은; 전자 장치(101, 502)가 프로토콜/서비스 정보를 수신하는 방법에 있어서, 적어도 하나의 제 1 프로토콜/서비스 정보(예: 적어도 하나의 ADV_PSM)를 포함하는 광고 패킷을 수신하는 동작(506)(910)(1110)과, 상기 광고 패킷에 포함된 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 생성하는 동작(508, 916, 1116)과, 상기 연결 요청 패킷을 외부 전자 장치(102. 501)로 송신하는 동작(510)(918)(1118)과, 상기 외부 전자 장치로부터 연결 응답 패킷을 수신하는 동작(512)(920)(1120)을 포함할 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (14)

  1. 전자 장치에 있어서,
    통신 회로; 및
    적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는,
    상기 통신 회로를 통해, 적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 브로드캐스트하고,
    상기 통신 회로를 통해, 외부 전자 장치로부터 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 수신하고,
    상기 적어도 하나의 제 2 프로토콜/서비스 정보가 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 경우, 상기 외부 전자 장치로 연결 응답 패킷을 송신하도록 설정되는 전자 장치.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 외부 전자 장치와 적어도 하나의 데이터 패킷을 송신 및/또는 수신하기 위한 적어도 하나의 채널을 할당하고,
    상기 통신 회로를 통해, 상기 할당된 적어도 하나의 채널에 대한 정보를 상기 외부 전자 장치로 송신하고,
    상기 통신 회로를 통해, 상기 할당된 적어도 하나의 채널에서 상기 외부 전자 장치와 상기 적어도 하나의 데이터 패킷을 송신 및/또는 수신하도록 설정된 전자 장치.
  3. 제 1 항에 있어서,
    상기 광고 패킷은 타입 필드와 데이터 필드를 포함하고,
    상기 타입 필드는 상기 데이터 필드에 포함된 데이터가 상기 전자 장치에 의해 설정된 데이터임을 나타내는 정보를 포함하고,
    상기 데이터 필드는 상기 적어도 하나의 제 1 프로토콜/서비스 정보, 상기 전자 장치의 제품 식별자(identifier: ID) 정보, 및 상기 전자 장치의 사용자 계정 정보를 포함하는 전자 장치.
  4. 제 1 항에 있어서,
    상기 광고 패킷은 타입 필드와 데이터 필드를 포함하고,
    상기 타입 필드는 상기 데이터 필드에 포함된 데이터가 상기 전자 장치에 의해 설정된 데이터임을 나타내는 정보를 포함하고,
    상기 데이터 필드는 상기 적어도 하나의 제 1 프로토콜/서비스 정보, 상기 전자 장치의 서비스 식별자(identifier: ID) 정보, 및 상기 전자 장치의 사용자 계정 정보를 포함하는 전자 장치.
  5. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    사용자 계정 정보와 설정된 보안 알고리즘을 기반으로 암호화 정보를 생성하고,
    상기 생성된 암호화 정보를 기반으로 상기 제 1 프로토콜/서비스 정보를 암호화하고,
    상기 사용자 계정 정보와 상기 암호화된 제 1 프로토콜/서비스 정보를 포함하는 상기 광고 패킷을 생성하고,
    상기 통신 회로를 통해, 상기 생성된 광고 패킷을 브로드캐스트하도록 설정된 전자 장치.
  6. 전자 장치에 있어서,
    통신 회로; 및
    적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는,
    상기 통신 회로를 통해, 적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 외부 전자 장치로부터 수신하고,
    상기 광고 패킷에 포함된 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 생성하고,
    상기 통신 회로를 통해, 상기 연결 요청 패킷을 상기 외부 전자 장치로 송신하고,
    상기 통신 회로를 통해, 상기 외부 전자 장치로부터 연결 응답 패킷을 수신하도록 설정된 전자 장치.
  7. 제 6 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 통신 회로를 통해, 상기 외부 전자 장치에 의해 할당된 적어도 하나의 채널에 대한 정보를 수신하고,
    상기 수신된 적어도 하나의 채널을 상기 외부 전자 장치와의 통신을 위한 적어도 하나의 채널로 설정하고,
    상기 통신 회로를 통해, 상기 설정된 적어도 하나의 채널에서 상기 외부 전자 장치와 적어도 하나의 데이터 패킷을 송신 및/또는 수신하도록 설정된 전자 장치.
  8. 제 6 항에 있어서,
    상기 광고 패킷은 타입 필드와 데이터 필드를 포함하고,
    상기 타입 필드는 상기 데이터 필드에 포함된 데이터가 상기 외부 전자 장치에 의해 설정된 데이터임을 나타내는 정보를 포함하고,
    상기 데이터 필드는 상기 적어도 하나의 제 1 프로토콜/서비스 정보, 상기 외부 전자 장치의 제품 식별자(identifier: ID) 정보, 및 상기 외부 전자 장치의 사용자 계정 정보를 포함하는 전자 장치.
  9. 제 6 항에 있어서,
    상기 광고 패킷은 타입 필드와 데이터 필드를 포함하고,
    상기 타입 필드는 상기 데이터 필드에 포함된 데이터가 상기 외부 전자 장치에 의해 설정된 데이터임을 나타내는 정보를 포함하고,
    상기 데이터 필드는 상기 적어도 하나의 제 1 프로토콜/서비스 정보, 상기 외부 전자 장치의 서비스 식별자(identifier: ID) 정보, 및 상기 외부 전자 장치의 사용자 계정 정보를 포함하는 전자 장치.
  10. 제 6 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 적어도 하나의 제 1 프로토콜 서비스 정보가 암호화 된 경우, 미리 설정된 보안 알고리즘 및 상기 광고 패킷에 포함된 사용자 계정 정보를 기반으로 해독화 정보를 생성하고,
    상기 생성된 해독화 정보를 기반으로 상기 암호화된 적어도 하나의 제 1 프로토콜 서비스 정보를 해독화하도록 설정된 전자 장치.
  11. 전자 장치가 프로토콜/서비스 정보를 송신하는 방법에 있어서,
    적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 브로드캐스트하는 동작과,
    외부 전자 장치로부터 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 수신하는 동작과,
    상기 적어도 하나의 제 2 프로토콜/서비스 정보가 상기 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 경우, 상기 외부 전자 장치로 연결 응답 패킷을 송신하는 동작을 포함하는 방법.
  12. 제 11 항에 있어서,
    제 2 항 내지 제 5 항 중 어느 한 항에 기재된 상기 전자 장치에 의해 수행되는 동작을 포함하는 방법.
  13. 전자 장치가 프로토콜/서비스 정보를 수신하는 방법에 있어서,
    적어도 하나의 제 1 프로토콜/서비스 정보를 포함하는 광고 패킷을 외부 전자 장치로부터 수신하는 동작;
    상기 광고 패킷에 포함된 적어도 하나의 제 1 프로토콜/서비스 정보와 동일한 적어도 하나의 제 2 프로토콜/서비스 정보를 포함하는 연결 요청 패킷을 생성하는 동작;
    상기 연결 요청 패킷을 상기 외부 전자 장치로 송신하는 동작; 및
    상기 외부 전자 장치로부터 연결 응답 패킷을 수신하는 동작을 포함하는 방법.
  14. 제 13 항에 있어서,
    제 7 항 내지 제 10 항 중 어느 한 항에 기재된 상기 전자 장치에 의해 수행되는 동작을 포함하는 방법.
PCT/KR2021/019034 2021-01-13 2021-12-15 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법 WO2022154279A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/334,623 US20230328632A1 (en) 2021-01-13 2023-06-14 Electronic device for transmitting and/or receiving protocol/service information, and method for operating same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210004835A KR20220102461A (ko) 2021-01-13 2021-01-13 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법
KR10-2021-0004835 2021-01-13

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/334,623 Continuation US20230328632A1 (en) 2021-01-13 2023-06-14 Electronic device for transmitting and/or receiving protocol/service information, and method for operating same

Publications (1)

Publication Number Publication Date
WO2022154279A1 true WO2022154279A1 (ko) 2022-07-21

Family

ID=82447189

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/019034 WO2022154279A1 (ko) 2021-01-13 2021-12-15 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법

Country Status (3)

Country Link
US (1) US20230328632A1 (ko)
KR (1) KR20220102461A (ko)
WO (1) WO2022154279A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024133903A1 (fr) * 2022-12-23 2024-06-27 Banks And Acquirers International Holding Sortie de veille d'un terminal de paiement électronique

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110054835A (ko) * 2009-11-18 2011-05-25 삼성전자주식회사 근거리 통신을 이용한 기능 제어 방법 및 그를 수행하는 단말기
US20130157568A1 (en) * 2011-12-16 2013-06-20 Arbitron, Inc. Media exposure linking utilizing bluetooth signal characteristics
US20160100311A1 (en) * 2014-10-06 2016-04-07 Derek D. Kumar Secure broadcast beacon communications
US20170353979A1 (en) * 2014-09-14 2017-12-07 Lg Electronics Inc. Method and device for controlling device by using bluetooth technology
US20190082038A1 (en) * 2016-05-13 2019-03-14 Huawei Technologies Co., Ltd. Method for establishing wireless connection and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110054835A (ko) * 2009-11-18 2011-05-25 삼성전자주식회사 근거리 통신을 이용한 기능 제어 방법 및 그를 수행하는 단말기
US20130157568A1 (en) * 2011-12-16 2013-06-20 Arbitron, Inc. Media exposure linking utilizing bluetooth signal characteristics
US20170353979A1 (en) * 2014-09-14 2017-12-07 Lg Electronics Inc. Method and device for controlling device by using bluetooth technology
US20160100311A1 (en) * 2014-10-06 2016-04-07 Derek D. Kumar Secure broadcast beacon communications
US20190082038A1 (en) * 2016-05-13 2019-03-14 Huawei Technologies Co., Ltd. Method for establishing wireless connection and device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024133903A1 (fr) * 2022-12-23 2024-06-27 Banks And Acquirers International Holding Sortie de veille d'un terminal de paiement électronique

Also Published As

Publication number Publication date
KR20220102461A (ko) 2022-07-20
US20230328632A1 (en) 2023-10-12

Similar Documents

Publication Publication Date Title
WO2019132344A1 (en) Method for controlling earpiece and electronic device for supporting the same
WO2021054616A1 (en) External audio electronic device, electronic device, and method of managing communication link
WO2015137601A1 (ko) 무선통신 시스템에서 데이터 전송률 조절 방법 및 장치
WO2015163680A1 (ko) 무선 통신 시스템에서 블루투스 저전력 에너지 기술을 이용하여 데이터를 송수신하기 위한 방법 및 장치
WO2021010588A1 (en) Electronic device for transmitting data through split bearer and method of operating electronic device
WO2020022578A1 (ko) 무선 충전을 이용하여 통신 채널을 제어하는 전자 장치 및 전자 장치의 동작 방법
WO2022055291A1 (ko) 전자 장치 및 전자 장치의 업데이트 방법
WO2021010587A1 (en) Electronic device for transmitting data through split bearer and method of operating electronic device
WO2021112646A1 (ko) 무선 통신 시스템에서 근거리 무선 통신을 이용한 오디오 데이터 전송 방법 및 이에 대한 장치
WO2022154279A1 (ko) 프로토콜/서비스 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법
WO2024005606A1 (ko) Nan 통신의 클러스터 병합을 수행하는 전자 장치 및 전자 장치의 동작 방법
WO2022231140A1 (ko) 장치 식별 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법
WO2022158740A1 (ko) 통신을 수행하는 전자 장치 및 그 동작 방법
WO2022086178A1 (en) Method for detecting foreign object using sensor coil and electronic device
WO2022005149A1 (en) Electronic device for providing call function continuity and operating method thereof
WO2024122877A1 (ko) 파일 공유를 위한 전자 장치 및 그 동작 방법
WO2023058980A1 (ko) 오디오 서비스를 제공하는 전자 장치 및 그 동작 방법
WO2023048436A1 (ko) 식별 정보를 송신 및/또는 수신하는 전자 장치 및 그 동작 방법
WO2024214964A1 (ko) 오디오 서비스를 제공하는 전자 장치 및 그 동작 방법
WO2023182660A1 (ko) 검색 서비스를 제공하는 전자 장치 및 그 동작 방법
WO2024219660A1 (ko) 블루투스 통신 시간을 결정하는 전자 장치 및 그 동작 방법
WO2023243866A1 (ko) 오디오 서비스를 제공하는 전자 장치 및 그 동작 방법
WO2023008861A1 (ko) Uwb 신호 운용 방법 및 전자 장치
WO2023136453A1 (ko) Wlan을 위한 가용 채널들을 설정하는 방법 및 그 방법을 수행하는 전자 장치
WO2023090711A1 (ko) 링크의 스캔을 수행하는 전자 장치 및 전자 장치의 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21919903

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21919903

Country of ref document: EP

Kind code of ref document: A1