Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

Mbed OSで提供されるサイプレス ファームウェア – KBA228252 - Community Translated (JA)

Mbed OSで提供されるサイプレス ファームウェア – KBA228252 - Community Translated (JA)

GeethaP_31
Employee
Employee
50 questions asked 10 questions asked 5 questions asked

Community Translated by  KoSa_1909416          Version: **

Translation - English: Cypress Firmware Deliverables in Mbed OS – KBA228252

この記事では、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を参照してください。

0 件の賞賛
2460 件の閲覧回数
寄稿者