]> Git Repo - esp-hosted.git/blob - docs/Linux_based_host/Linux_based_architecture.md
Merge branch 'feature/control_path_async_resp_notifications_ym_17nov' into 'master'
[esp-hosted.git] / docs / Linux_based_host / Linux_based_architecture.md
1 # System Architecture: Linux Based Host
2 Below diagram depicts building blocks of Linux based ESP-Hosted solution.
3
4 ![ESP-Hosted linux based design](./linux_hosted_design.png)
5
6
7 ## 1. ESP Host Software
8
9 This implements ESP-Hosted solution part that runs on Linux host. It mainly consists of following.
10 * ESP Host Driver
11 * Control/command interface
12 * Python convenience scripts
13   
14 ---
15
16 ### 1.1 ESP Host Driver
17
18 ESP Host driver implements following.  
19
20 * **SDIO Host driver**  
21 This implements data path over SDIO interface. Communication protocol is explained in further section.
22
23 * **SPI Host driver**  
24 This implements data path over SPI interface. Communication protocol is explained in further section.
25
26 * **Virtual Serial interface driver**  
27 This implements virtual serial interface over SDIO/SPI interface. This virtual serial interface is used as a control interface to configure Wi-Fi of ESP peripheral
28
29 * **802.3 network interface**  
30 This registers two network interfaces with Linux kernel: ethsta0 and ethap0. This allows exchange of 802.3 frames between Linux kernel and ESP firmware.
31
32 * **HCI interface**  
33 This registers HCI interface with Linux kernel. This interface is implemented over SDIO/SPI.
34
35   
36 ---
37
38 ### 1.2 Control/Command Interface
39
40 * This implements custom control commands that are based on protobuf.
41 * These commands are used to control and configure Wi-Fi on ESP peripheral.
42 * Control interface makes use of virtual serial interface provided by ESP Host driver.
43 * There are 2 flavors of control interface implementation:
44         * C based implementation
45         * Python based implementation - It uses C based implementation using `ctypes` package.
46 * API's are described in subsequent section
47 * Control path design and implemetation details explained in [Control Path](../common/contrl_path.md) documentation
This page took 0.026376 seconds and 4 git commands to generate.