stm32wb55rg는 ST사의 보드입니다. 이 보드를 이용해 플젝을 진행하는데, MCU 레벨에서의 이벤트 등록은 어떤식으로 진행할까 궁금했습니다. 해당 제품의 버튼을 누르면 이벤트가 발생해 이벤트 핸들러가 호출되는데, 단순히 현상만 이해하는게 아닌 원리를 이해하고 싶어졌습니다. 그래서 이 글을 게시합니다.

 

우선 필요한것들은 다음과 같습니다. 

  • stm32wb55의 특정 프로젝트 파일(저는 Thread_FTD_Coap_Multicast 이 프로젝트를 참고하고 있습니다.)
  • AN5289 문서, RM0434 문서(구글로 검색하시면 됩니다.)

AN5289에서는 app을 어떤식으로 만들어야하는지에 대한 가이드 문서이고, rm0434는 테크니컬 노트입니다.

위 모두 준비가 되면 본격적으로 분석할 수 있을것 같습니다.

 

 해당 프로젝트에는 sw1을 누르면 coap 메시지를 멀티캐스트 방식으로 송신합니다. 즉, sw1을 누르면 SendCoap이라는 이벤트 핸들러가 호출됩니다. 아래와 같이 확인가능합니다.

 

'전기전자 > STM32' 카테고리의 다른 글

thread protocol 이해하기  (0) 2021.12.23

 최근 회사에서 Thread protocol로 플젝을 진행했습니다. 다행히 내부 네트워크만 구성하는것이라 st의 예제로 어렵지않게 구현할 수 있었네요. 네트워크의 topology는 full mesh입니다. router는 leader router를 포함한 32개였습니다. Thread 표준으로 한 partition에서의 router max는 32개인데, 회사에서 이를 준수한것으로 보입니다.

 

Thread 프로토콜을 이해하기 위해서는 아래 페이지를 반드시 참고하셔야 합니다. 비교적 최근에 개발된 프로토콜이기에 자료가 생각보다 많이 없다고 느끼실 수 있습니다.

 https://openthread.io/

 

OpenThread

An open foundation for the connected home.

openthread.io

 

 이제부터 중요한 개념만 설명하겠습니다. 물론 틀린 설명이 있을수도 있습니다. 그렇다면 댓글로 정정해주시길 부탁드립니다.

 

 총 두가지로 나누어 설명할 수 있겠네요. 

1. router type에 따른 설명

2 device type에 따른 설명

 

 첫째로, router type에 따른 설명입니다. 

 Thread network는 32개의 router로 형성됩니다. 그리고 1개의 router는 511개의 end device를 가질 수 있습니다. 이론적으로는 하나의 network에는 32 x 511 만큼의 디바이스가 있을 수 있죠. 

 

 router를 좀 더 구분하자면 다음과 같습니다.

 Leader router, normal router 그리고 border router.

 Leader router는 반드시 1개만 존재합니다. 이에 따라1개의 Leader router와 31개의 normal router로 이루어집니다.

 

 border router는 외부 네트워크와 통신하기 위한 일종의 게이트웨이 역할입니다. 사실 Thread는 IPv6 기반입니다. 따라서 다른 IPv4 기반의 외부 네트워크와 통신하기 위한 게이트웨이가 필요한것이라고 이해하고 있습니다. 엄연히 IPv6와 IPv4는 다른 프로토콜이니깐요. 

 다시 border router에 대해 설명하자면, 네트워크상에서 여러개 존재할 수 있습니다. Leader router가 border router 롤을 수행할 수도 있고, normal router가 border router 롤을 수행할 수도 있다는 얘기인거죠.

 

 둘째로, Device type에 따른 설명입니다.

 device는 FTD와 MTD로 나눌 수 있습니다. FTD는 Full Thread Device이고 MTD는 Minimal Thread Device입니다. full과 minimal을 통해서 기능상의 차이점을 의미하는것이라고 보면 됩니다.

 FTD는 end device역할을 할 수도 있고 router역할을 수행할 수도 있습니다. end device를 수행하는 디바이스를 FED(full end device), router역할도 수행할 수 있는 디바이스를 REED(Router Eligible end end device)라고 합니다.

 MTD는 MED(minimal end device), SED(sleepy end device)로 나눌 수 있습니다. MED는 항상 tranceive를 하는 디바이스고 SED는 평소에는 disabled였다가 특정 경우에 폴링하기 위해 깨어나는 디바이스입니다.

 

 위 내용을 숙지한 상태면 Thread 네트워크를 이해하기 위한 준비는 대강 끝났습니다. 다음 게시글에서는 ST의 보드와 예제 코드를 이용하여 실제 동작을 설명하도록 하겠습니다.  

 

 

 

'전기전자 > STM32' 카테고리의 다른 글

STM32WB55RG 이벤트 등록 메커니즘  (0) 2022.01.02

 ic칩을 다루다보면 위와 같은 용어를 만나게 됩니다. 어떤 용도로 이용하는지, 확인해봅시다!!

 

https://www.etechnog.com/2019/06/vcc-vss-vdd-vee-in-electronics.html

 

What is Vcc, Vss, Vdd, Vee in Electronics? Differences and Full Forms

You may notice electronic circuits and ICs have these pins Vcc, Vss, Vdd, Vee. Now the question is what is the full form or meaning of these pins and why different names are used for different ICs and Electronic Circuits.

www.etechnog.com

이해한 후 정리하겠습니다!

'전기전자 > MCU' 카테고리의 다른 글

spi 통신  (0) 2021.09.12

 업무에 i2c 통신과 spi 통신이 필수입니다. 하지만 최근, 취업준비를 하면서 애플리케이션 레벨에서 계속 작업을 했었기 때문에 로우 레벨의 하드웨어 통신에 대해서 많이 미숙해진것 같습니다. 집에 있는 stm32 mcu와 atmga128 보드로 다시 연습좀 해야할 것 같네요. 

 위의 이유로 다시 통신 공부를 시작할건데 그 시작은 spi 통신으로 시작하려고 합니다. 참고할 만한 사이트입니다.

 

1) https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi

 

Serial Peripheral Interface (SPI) - learn.sparkfun.com

Introduction Serial Peripheral Interface (SPI) is an interface bus commonly used to send data between microcontrollers and small peripherals such as shift registers, sensors, and SD cards. It uses separate clock and data lines, along with a select line to

learn.sparkfun.com

2) https://www.analog.com/en/analog-dialogue/articles/introduction-to-spi-interface.html

 

Introduction to SPI Interface | Analog Devices

Serial peripheral interface (SPI) is one of the most widely used interfaces between microcontroller and peripheral ICs such as sensors, ADCs, DACs, shift registers, SRAM, and others. This article provides a brief description of the SPI interface followed b

www.analog.com

 

'전기전자 > MCU' 카테고리의 다른 글

what is Vcc Vss Vdd, Vee  (0) 2021.09.12

+ Recent posts