Community Translation - Cypress Firmware Deliverables in Mbed OS – KBA228252

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
KoSa_1909416
Level 5
Level 5
Distributor - Marubun (Japan)
250 sign-ins 25 replies posted First solution authored

Hi,
I tried to translate this KBA228252 into Japanese.
https://community.cypress.com/docs/DOC-18173


----------------------------------------------------------------
タイトル:Mbed OSで提供されるサイプレス ファームウェア

この記事では、Mbed™OS向けにサイプレスから提供されるファームウェアの詳細について説明します。

図1は、Mbed OSのアーキテクチャを示しています(出典:Mbed OS Documentation)。

Mbed OSの概要については、https://os.mbed.com/docs/にあるドキュメントを参照してください。

                      図1

p1.png

この記事ではサイプレスが提供している、図1でオレンジ色で強調表示されている関連コンポーネントの詳細を説明します。

具体的には、以下のファームウェアとなります。

  • ハードウェア アブストラクション レイヤー(HAL)

  • ボード サポート パッケージ(BSP)

  • Wi-Fi および BLEの実装

1.ハードウェア アブストラクション レイヤー(HAL)

これには、デジタル/アナログI / Oピン、I2C、UART、SPI、クワッドSPI、PWMなどの一般的な周辺機器用のドライバーが含まれます。

ドライバーAPIの詳細については、https://os.mbed.com/docs/mbed-os/latest/apis/drivers.html を参照してください。

使用例については、https://os.mbed.com/docs/mbed-os/latest/tutorials/index.htmlを参照してください。

図2は、Mbed OSアプリケーションでのPSoC 6 MCU HAL、Mbed HAL、およびMbed OSドライバーの関係を示しています。

            図2

                           p2.png

1.1 PSoC 6 MCU ペリフェラル ドライバ ライブラリ

ペリフェラル ドライバ ライブラリ(PDL)は、PSoC 6 MCUアーキテクチャのソフトウェア開発を簡素化します。

PDLは、レジスタの使用法とビット構造を理解する必要性を減らし、幅広い周辺機器のソフトウェア開発を容易にします。

PDLにはMbed OS固有の情報は含まれておらず、一般的なRTOS環境で使用することができます。

PSoC 6 MCU PDLは mbed-os\targets\ TARGET_Cypress\TARGET_PSOC6\psoc6cspディレクトリにあります。

PDLドキュメントは PSoC 6 PDL API Reference Manual.にあります。

1.2 PSoC 6 HAL

PSoC 6 MCU HALは、PSoC 6 ペリフェラルとの高レベルのインターフェースを提供します。

このインターフェイスは、チップ固有の機能を抽象化します。

チップ固有の機能が必要な場合、またはパフォーマンスが重要な場合は、

PSoC 6 MCU PDLで提供される低レベルの機能を直接使用できます。

PSoC 6 MCU HALは、mbed-os \targets \TARGET_Cypress \TARGET_PSOC6 \psoc6cspディレクトリにあります。

1.3 Mbed HAL

異なるArm®Cortex®-Mベースのデバイス間でアプリケーションコードのシームレスな移植を可能にするために、

Mbed OSは異なるペリフェラルを使用するためのMbed HALレイヤーを提供します。

Mbed HAL API(ヘッダーファイル)は、\mbed-os \hal ディレクトリにあります。

PSoC 6 MCU向けに実装したMbed HAL API(ソースファイル)は、

\mbed-os \targets \TARGET_Cypress \TARGET_PSOC6ディレクトリにサイプレスから提供されています。

Mbed HALのサイプレスへの実装は、主にPSoC 6 MCU HAL APIに、必要に応じてPSoC 6 MCU PDL APIに依存しています。

1.4 Mbedドライバ

Mbed OSは、共通で使用されるMCUペリフェラルのC ++ラッパーを提供します。

これらは、\mbed-os \driversディレクトリにあります。

2.ボード サポート パッケージ

Mbed OSで、”ターゲット”とはハードウェア開発キットを指します。

サイプレスは、すべてのMbed OS対応キット用に、

ボード サポート パッケージ(BSP)とも呼ばれるターゲットへの実装を提供します。

BSPの詳細を以下に示します。

2.1ターゲットリスト

すべてのパートナーがMbed OSでサポートしているターゲット(BSP)のリストと、

それぞれの構成は、mbed-os \ targets \ targets.jsonファイルにあります。

このファイルには、Mbed OSでサポートされているサイプレスのターゲットも含まれています。

このファイルの詳細については、

https://os.mbed.com/docs/mbed-os/latest/reference/adding-and-configuring-targets.htmlを参照してください。

2.2ターゲット固有のBSP

ターゲットのBSPは、\ mbed-os \ targets \ TARGET_Cypress \ TARGET_PSOC6ディレクトリにあります。

各ターゲットには、TARGET_(ターゲット名)という命名則でディレクトリがあります。

たとえば、図3に示すように、CY8CKIT-062-WiFi-BTのフォルダーはTARGET_CY8CKIT_062_WiFi_BTです。

                   図3

              p3.png

BSPには、ターゲット ハードウェアの初期化コード、構成設定、スタートアップコード、リンカースクリプトなどがあります。

フォルダーで提供されるBSPファイルの情報は、以下の表になります。

ファイル / フォルダ詳細

cybsp_target_name.c

cybsp_target_name.h

ターゲットの初期化関数cybsp_init()が含まれています。

この関数は、LED、ボタン、デバッグUARTなどのボード上のコンポーネントを初期化します。

cybsp_types.h

LEDやボタンなどのボード上のコンポーネントの定義が含まれています。

これらの定義はBSP初期化コードで使用されます。

design.modus file and

Generated Source folder

design.modusファイルは、BSP設定のためにBSPファイルによって使用されます。

ターゲットハードウェアで使用されるPSoC 6 MCUホストのハードウェア構成情報を保持します。

このファイルは、必要に応じて、ModusToolboxの「Device Configurator」ツールで表示できます。

design.modusから生成された構成ファイルは、Generated Sourceフォルダーに格納されます。

PinNames.h

ボード上のインターフェイスとMCUピンのマッピングが含まれています。

例としては、LED、ボタン、Arduinoヘッダーピン、I2C / UART / SPIインターフェイス ピンなどがあります。

PeripheralNames.h

PSoC 6 の機能ブロックへのMbed OSペリフェラル名のマッピングが含まれています。

これには、UART、SPI、I2C、PWMなどが含まれます。

PeripheralPins.c

MCUピン、ブロック インスタンス名、およびそのブロック インスタンスに関連するピンの機能のマッピングが含まれます

( P1 [0]がUART_0インスタンスにマップされ、UART_RXピンとして機能するなど)。

device folderさまざまなツールチェーンのスタートアップコードとリンカー スクリプトが含まれています

2.3 PSoC 6 MCU CM0+ CPUイメージ

サイプレスは、デュアルCPU PSoC 6 MCUのCortex M0+コアで実行される

プリコンパイルされたアプリケーションイメージを提供します。

これらのイメージは、\mbed-os \targets \ ARGET_Cypress \TARGET_PSOC6 \psoc6cm0pフォルダーにあります。

イメージは、Cortex M4アプリケーションの一部としてコンパイルできるC言語の配列として提供されます。

Cortex M0+アプリケーションコードは、Cortex M4リンカースクリプトによって内部フラッシュに配置されます。

さまざまなCM0+イメージのタイプの詳細を以下に示します。

        TARGET_CM0P_SLEEP:このフォルダーには、CY_CORTEX_M4_APPL_ADDR = 0x10002000から

                                                    CM4コアを開始して書き込むCM0+イメージが含まれています。

3. Wi-FiとBLEの実装

図4は、PSoC 6 MCUのWi-FiおよびBLEプロトコル実装のレイヤーと、

MBed OSのCYW43xxxベースのソリューションを示しています。

                                                 図4

                   pastedImage_31.png

CYW43xxxのWANサブシステムは、SDIOインターフェースを介してPSoC 6 MCUと通信します。
SDIOインターフェイスは、SDIO_CMD、SDIO_CLK、およびSDIO_DATA [3:0]の6つの信号で構成されています。
CYW43xxxのWLANサブシステムには、802.11物理層(PHY)と802.11メディアアクセス制御(MAC)層が含まれています。
ネットワークスタックを含むWi-Fiプロトコルの上位層、および上位層プロトコル(IP、TCP / UDP、HTTP、MQTTなど)は、PSoC 6 MCUで処理されます。

CYW43xxxのBluetoothサブシステムは、フロー制御が有効になっている(TX、RX、RTS、CTS)HCI UARTインターフェースを介してPSoC 6 MCUと通信します。
CYW43xxxのBluetoothサブシステムは、無線とリンク層を含むBLEスタックのコントローラー部分を実装します。
BLEスタックのホスト部分、BLEプロファイル、およびアプリケーションコードはPSoC 6 MCUに常駐します。

SDIOおよびUARTインターフェースに加えて、PSoC 6 MCUとCYW43xxxデバイスの間には6つの制御信号があります。
これらには、電力制御信号(WL_REG_ON、BT_REG_ON)、CYW43xxxデバイスウェイクアップ信号(WL_DEV_WAKE、HOST_DEV_WAKE)、
およびPSoC 6 MCUホストウェイクアップ信号(WL_HOST_WAKE、BT_HOST_WAKE)があります。
これらの制御信号、SDIO、およびUARTインターフェースの詳細については、CYW43xxxデバイスのデータシートを参照してください。

次のセクションでは、Wi-FiとBLEに関連するサイプレスファームウェアの詳細について説明します。

3.1 Wi-Fi ファームウェア

3.1.1 ホスト ドライバー  (WHD)
Wi-Fi ホスト ドライバー (WHD)は、ホストMCU (PSoC 6 MCU) で実行されるドライバー ファームウェアであり、
通信インターフェース(通常、SDIOインターフェースに限定されません)を使用して、

CYW43xxxデバイスのWLANサブシステムとインターフェースします。
WHDは、ホストMCUソフトウェアフレームワークの上位層で使用できるWLAN APIを提供します。
これらには、スキャン、ジョイン、SoftAPなどのAPIがあります。
サイプレスは、Mbed OSの一部としてWHDファームウェアを提供しています。
mbed-os \ targets \ TARGET_Cypress \ TARGET_PSOC6 \ TARGET_WHDフォルダーにあります。

WHDフォルダーには、以下に示す他のリソースも含まれています。

   • \TARGET_WHD \resources \firmware : CYW43xxxデバイスのWLANファームウェア AN225347

   • \TARGET_WHD \resources \nvram : ハードウェアプラットフォームに対応するNVRAMファイル。

       このファイルには、RF構成やアンテナ設定などのボードハードウェア構成設定が含まれています。

3.1.2イーサネット MAC (EMAC)

イーサネット MAC(EMAC)WHDからMbed Ethernet MAC(EMAC)へのドライバーインターフェイスは、

mbed-os \ features \ netsocket \ emac-drivers \ TARGET_WHDフォルダーに保持されます。

WiFiのEMACドライバーの詳細については、

https://os.mbed.com/docs/mbed-os/v5.13/porting/ethernet-port.html を参照してください。

3.1.3 LWIP ネットワーク スタック

Wi-Fi接続をサポートするボードは、mbed-os \ features \ lwipstack \ mbed_lib.jsonファイルに適切な設定で追加する必要があります。

Wi-Fi機能を備えたサイプレスキットのLWIPスタック設定がこのファイルに追加されました。

3.1.4ネットワーク ソケット API

IPネットワーキングのAPIがソケットAPIです。

ソケットAPIは、トランスポート層であるOSIレイヤー4に関連しています。

Mbed OSでは、ソケットAPIが抽象化され、TCPやUDPなどのさまざまなプロトコルをサポートしています。

Mbed OSネットワークソケットAPIについては、

https://os.mbed.com/docs/mbed-os/latest/apis/network-socket.htmlを参照してください。

3.1.5 ネットワーク インターフェイス API

ソケットには、ソケットを作成する必要があるネットワーク インターフェイスを示すインスタンスが必要となります。

ネットワーク インターフェイスは、基盤となるソケット操作を実装するネットワークスタックを提供します。

ネットワーク インターフェイス、アプリケーションがネットワーク構成を指定するために使用する制御APIでもあります。

Mbed OSネットワークインターフェイスAPIの詳細については、

https://os.mbed.com/docs/mbed-os/latest/apis/network-interfaces.htmlを参照してください。

3.2 BLEファームウェア

CYW43xxx Wi-Fi / BTコンボデバイス(CYW43012、CYW4343W)には、

デュアルモードBluetoothの無線とコントローラー機能が含まれています。
これらのコンボデバイスのBluetoothサブシステムは、HCI UARTインターフェースを介してPSoC 6 MCUホストとインターフェースし、

BLEホストスタックはPSoC 6 MCUで実行されます。
Mbed OSはクラシックBluetoothをサポートしていません。
サイプレスのBLE実装とCordio BLEスタックの間の抽象化レイヤーは、

mbed-os \features \FEATURE_BLE \targets \TARGET_Cypressにあります。

Arm Mbed BLEはBLE_APIとも呼ばるMbed OS用のBluetooth Low Energyソフトウェアソ リューションです。
開発者はこれを使用して、新しいBLE対応アプリケーションを作成できます。
Mbed OSのBLE_APIは、プラットフォーム上のBLEコントローラーとインターフェースします。
これは、BLEスタックの複雑さをC ++の抽象化の背後に隠し、BLE対応のすべてのMbedプラットフォームと互換性があります。
BLE APIの詳細については、https://os.mbed.com/docs/mbed-os/latest/apis/ble.htmlを参照してください。

----------------------------------------------------------------

Best Regards,

Sakagami

0 Likes
1 Reply
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello,Sakagami-san

We receive your translation, it will be published to KBA to Community.

After upload, You will receive the points as the word of KBA.

Due to the current delay of processed work, Please bear with me for the delayed the response.

It could be delayed, but it will be processed soon.

Thanks for your contribution to CDC!

Will keep you update the status.

Thanks,

Jenna Jo

Jenna Jo
0 Likes