전체 글에 해당하는 글 153

ESP-Hosted mode에 관하여

ESPRESSIF|2025. 4. 10. 14:12

 ESP32 Hosted 모드란

 

ESP32의 Hosted Mode는 일반적으로 ESP32가 메인 프로세서가 아닌, Slave형 Wi-Fi 네트워크 인터페이스 칩(NIF, Network Interface)같이 동작되는 방식을 의미합니다. 이 모드는 주로 Host가 리눅스 기반 시스템(예: Raspberry Pi, BeagleBone, 기타 임베디드 SoC 등)에 ESP32를 SPI 또는 SDIO 인터페이스로 연결하여 Wi-Fi 기능을 확장하는 데 사용됩니다.

1. 역할: ESP32는 Wi-Fi/Bluetooth 기능만 담당하고, 주 프로세싱은 Host 시스템에서 수행
2. 연결 방식: SPI, SDIO, UART 등을 통해 Host 시스템과 통신
3. 동작 구조: ESP32는 펌웨어가 올라가고, Host는 드라이버 및 WiFi/BT(네트워크)스택을 담당
4. ESP32 펌웨어 : 기본 제공되는 펌웨어를 사용합니다. 
5. ESP32가 완전한 Slave로 동작을 하더라도 펌웨어는 필요 합니다. 펌웨어는 소스코드 혹은 Bin파일 형태로 제공됩니다.   
6. Host 쪽에는 ESP32에서 제공하는 device 드라이버가 필요하고, WiFi / Bluetooth stack이 필요하며 보통 O/S에서 지원하는 Stack을 사용합니다.

 

 하드웨어 연결 Interface

 

SDIO Only - Wi-Fi and Bluetooth, traffic for both runs over SDIO
SDIO+UART - Wi-Fi runs over SDIO and Bluetooth runs over UART
SPI Only - Wi-Fi and Bluetooth, traffic for both runs over SPI
SPI+UART - Wi-Fi runs over SPI and Bluetooth runs over UART

https://github.com/espressif/esp-hosted/blob/master/esp_hosted_fg/docs/Linux_based_host/SDIO_setup.md

 

라즈베리파이와 연결 예제 : 하드웨어 연결은 ESP32종류에 따라서 결정 하며, 아래는 ESP32와 라즈베리파이의 연결 예제입니다.  아래와 같은 연결 방식을 지원합니다. (칩 종류별로 차이 발생)

 

 상세 메뉴얼 / 디바이스 드라이버 / 펌웨어

 

아래는 전체 상세 메뉴얼 및 펌웨어코드, 디바이스 드라이버 코드, 포팅 가이드, 하드웨어 연결 가이드가 통합된 Git 으로, 먼저 아래 사이트를 참고 바랍니다.

 

https://github.com/espressif/esp-hosted

 

GitHub - espressif/esp-hosted: Hosted Solution (Linux/MCU) with ESP32 (Wi-Fi + BT + BLE)

Hosted Solution (Linux/MCU) with ESP32 (Wi-Fi + BT + BLE) - espressif/esp-hosted

github.com

 

Hosted 모드에는 NG와 FG 방식이 있으며, 차이점은 아래와 같습니다. 

https://github.com/espressif/esp-hosted?tab=readme-ov-file#22-key-differences

 

각 방식에 대하여, 메뉴얼, 펌웨어, 디바이스 드라이버가 제공됩니다. (NG의 예)

 

 

 사전 점검 사항

 

1. Throughput은 충분한가 ? Hosted모드는 FG와 NG 2가지 방식이 있으며, Throughput 성능은 비슷합니다. 

 

FG 방식

 

NG방식 (현재, ESP32와 ESP32-C3만 지원)

 

2. Interface 지원이 가능한가 ?

Throughput이 빠른 SDIO를 지원하는 칩은 ESP32, ESP32-C6이고, 다른 제품은 SPI만 지원 됩니다. 

 

3. 디바이스 드라이버의 호환성

NG방식의 경우, Linux kernel 4.19.x에서 시험이 되어 있습니다. 

https://github.com/espressif/esp-hosted/blob/master/esp_hosted_ng/docs/porting_guide.md#2-software-porting

 

4. Bluetooth 스택의 지원 여부 

BlueZ stack을 사용합니다.

https://github.com/espressif/esp-hosted/blob/master/esp_hosted_ng/docs/bluetooth.md

 

 ESP32용 펌웨어 빌드가 필요한가 ?

 

ESP32용 펌웨어는 빌드된 Bin파일을 제공하며, 아래 Tags에서 각 버젼별 펌웨어를 다운로드 가능합니다.

예> ESP32, SDIO only 용 펌웨어 bin 파일

 

만약 펌웨어의 수정이 필요한 경우(호환성 등의 문제로 인하여), 직접 펌웨어 수정 후 빌드가 가능하도록 소스코드를 제공하고 있습니다. 다만, 호환이 안되는 Host도 있을 수 있으니, 미리 아래에서 Issue를 점검해 보시는 것을 추천드립니다.

 

 


 

 

'ESPRESSIF' 카테고리의 다른 글

ESP32 펌웨어 덤핑 방법  (0) 2025.04.09
ESP32-P4 소개서  (0) 2025.03.26
ESP32 Etherent(이더넷) 설계 관련 (2)  (0) 2025.03.12
ESP32 Etherent(이더넷) 설계 관련 (1)  (0) 2025.03.12
ESP32-P4 function EV kit - 조립 방법  (0) 2025.03.11