1. アーキテクチャと用語の説明
これは主に I/O 機能に関するもので、その中でいくつかのモジュールが使用されます。次の方法で使用するモジュールが強調表示され、右側に拡大されてサブモジュールが表示されます (このサブモジュールは BSW です) ADC サブモジュールなどの最小単位)。ここで強調すべき点は、I/O は私たちがよく言う GPIO ではなく、ここでの I/O には DIO (デジタル入出力、マイクロコントローラーの GPIO に相当)、ADC、PWM が含まれるということです。
以下では、上記のサブモジュールの機能について詳しく説明します。
- I/O 信号インターフェイス:入力デバウンスなどの入力データの予備処理
- 外部 ADC ASIC 用ドライバー:外部 ADC ドライバー、たとえば、外部 ADC サンプリング チップがある場合、データは SPI 通信を通じてメイン チップに送信されます。ここでは、外部 ADC 処理用のドライバー モジュールが必要です。
- 外部 I/O ASIC のドライバー:上記と同じですが、ここでは I/O について説明します。
- SPI ハンドラー: SPI 処理ドライバー。ハードウェア内の SPI を上位層呼び出し用の API にカプセル化します (I2C を使用するものもありますが、ここでは個別にリストしません。図内の SPI を I2C に変更するだけです)。
- ADC PWM DIO: MCAL のドライバーは、ハードウェア内の ADC、PWM、および DIO を上位層呼び出し用の API にカプセル化します。
- SPI ADC PWM DIO (ハードウェア):チップ内のこれらの機能モジュールを指します。
I/OHwAb には手書きのコードが必要であることに注意してください (もちろん、Matlab で生成することもできます。ここでの手書きコードとは、AutoSAR 以外のコードを指し、自分で追加する必要があります)。 A c ファイルとして IOHwAb として SWC 宣言を作成し、その中にコードを追加します (端的に言うと、SWC として使用されます)。
2、例を挙げてください
例:車の温度センサーから温度データを送信し、ECUで処理するプロセス
上の図では:
- Adc_ReadGroupは MCAL が上位層に公開する API 関数で、Read は ADC サンプリング値 (例えば 12 ビットの最大精度は 4095) です。
- Get_SensorValueは IoHwAb、Sensor で書かれたサービス関数です。
SWC と IoHwAb は C/S 経由で接続されており、Sensor
SWC は Rte_Call_Get_<port>_SensorValue を通じて関数全体を呼び出すことができます。この関数の主な機能は、ADC サンプリング値を通じて実際のセンサー抵抗 (何オーム) を計算することです。
- Send_Temperatureは、Sensor SWC のツリーを App SWC に渡します。
オーム値は SWC で実際の温度値に計算できます。このようにして、最終的なアプリ
SWC は実際の温度値を取得します。