このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
参照実装を使用して,基本ソフトウェアメモリと診断サービスへのAUTOSARコンポーネント呼び出しをシミュレートします。
AUTOSAR規格には,AUTOSARランタイム環境で実行される基本ソフトウェア(BSW正在)サービスが定義されています。サービスにはNVRAM经理(NvM)诊断事件管理器(民主党)および函数抑制经理(鳍)があります。AUTOSARランタイム環境では,AUTOSARソフトウェアコンポーネントは通常,クライアント/サーバー通信または送信側/受信側通信を使用してBSW正在サービスにアクセスします。
AUTOSARソフトウェアコンポーネントモデルでNvM,民主党および鱼翅サービスインターフェイスへのクライアント呼び出しを実装するには,事前構成済みのNvM,民主党および鱼翅の呼び出し側ブロックをドラッグアンドドロップします。(客户端端口名称)や(操作)などの各ブロックのパラメーターには,値が事前に入力されています。ブロックパラメーターを構成することで、たとえば、呼び出すサービス オペレーションを選択します。AUTOSAR ソフトウェア コンポーネントに追加された Caller ブロックを構成するには、モデルを同期します。ソフトウェアで AUTOSAR クライアント サービス インターフェイス、オペレーションおよびポートが作成され、各 Simulink 関数呼び出しが AUTOSAR クライアント ポートとオペレーションにマッピングされます。詳細については、AUTOSAR NVRAM经理サービスの呼び出しの構成、AUTOSAR诊断事件管理器サービスの呼び出しの構成およびAUTOSAR函数抑制经理サービスの呼び出しの構成を参照してください。
以下に示すのは,スロットル位置の統合モデルです。このモデルには2つのスロットル位置センサーコンポーネントと,1つのスロットル位置モニターコンポーネントが統合されています。センサーコンポーネントは,生のスロットル位置センサー(TPS)値を受け取り,TPSパーセント値に変換します。モニターコンポーネントは、プライマリ センサー コンポーネントとセカンダリ センサー コンポーネントから提供された TPS パーセント値を受け取り、どちらの TPS 信号を通過させるかを決定します。センサー コンポーネントは BSW NvM および Dem サービスを呼び出し、モニター コンポーネントは BSW Dem サービスを呼び出します。
open_system (“autosar_bsw_presim”);
センサーコンポーネントautosar_bsw_sensor1
およびautosar_bsw_sensor2
のそれぞれに初始化函数ブロックが含まれています。このブロックはNvMサービスインターフェイスNvMService
を呼び出します。これらの呼び出しは,基本软件ライブラリブロックNvMServiceCallerを使用して実装されています。各ブロックは,NvMService
オペレーションReadBlock
を呼び出すよう構成されています。ReadBlock
の呼び出しには,クライアントポートS1LowSetPoint
およびS2LowSetPoint
が使用されます。autosar_bsw_sensor1
の初始化函数ブロックを以下に示します。
以下に示すのは,初始化函数ブロックにおけるReadBlock
呼び出しのNvMServiceCallerブロックのダイアログボックスです。詳細については,NvMServiceCallerを参照してください。
センサーコンポーネントautosar_bsw_sensor1
およびautosar_bsw_sensor2
のそれぞれに,民主党サービスインターフェイスDiagnosticMonitor
への呼び出しが2つ含まれています。両呼び出しは、基本软件ライブラリブロックDiagnosticMonitorCallerを使用して実装されています。各ブロックは,DiagnosticMonitor
オペレーションSetEventStatus
を呼び出すよう構成されています。SetEventStatus
の呼び出しには,クライアントポートS1StuckLow
、S1StuckHigh
、S2StuckLow
、S2StuckHigh
が使用されます。
以下に示すのは1つ目のセンサーコンポーネントのStuckLow
呼び出しのDiagnosticMonitorCallerブロックのダイアログボックスです。詳細については,DiagnosticMonitorCallerを参照してください。
モニターコンポーネントautosar_bsw_monitor
には,民主党サービスインターフェイスDiagnosticMonitor
への呼び出しが1つと,民主党サービスインターフェイスDiagnosticInfo
への呼び出しが4つ含まれています。
センサーコンポーネントと同様,DiagnosticMonitor
呼び出しはDiagnosticMonitorCaller
ブロックによって実装されており,このブロックはSetEventStatus
オペレーションを呼び出すよう構成されています。クライアントポートの名前はTPS
です。
4つのDiagnosticInfo
呼び出しは、基本软件ライブラリブロックDiagnosticInfoCallerを使用して実装されています。各ブロックは,DiagnosticInfo
オペレーションGetEventFailed
を呼び出すよう構成されています。GetEventFailed
の呼び出しには,クライアントポートTPS1StuckLow
、TPS1StuckHigh
、TPS2StuckLow
、TPS2StuckHigh
が使用されます。
以下に示すのは,TPS1StuckLow
呼び出しのDiagnosticinfoCaller
ブロックのダイアログボックスです。詳細については,DiagnosticInfoCallerを参照してください。
金宝app仿真软件编码器および嵌入式编码器のソフトウェアをお持ちの場合,NvMおよび民主党サービス呼び出しのCコードを生成してARXML記述をエクスポートできます。各コンポーネントモデルを開いてビルドします。たとえば,モデルautosar_bsw_monitor
をビルドするには,そのモデルを開きます。Ctrl + Bキーを押すか,MATLABコマンドslbuild(“autosar_bsw_monitor”)
を入力します。
モデルのビルド結果を確認するには,コード生成レポートを調べます。
BSW正在サービスを呼び出すAUTOSARコンポーネントモデルのシミュレーションを実行するには,含まれるコンポジション,システムまたはハーネスモデルを作成します。その含まれるモデルで,コンポーネントによって呼び出されるNvMサービスオペレーション,民主党サービスオペレーションおよび鱼翅サービスオペレーションの参照実装を提供します。
AUTOSAR基本软件ブロックライブラリにはNVRAM服务组件ブロックと诊断服务组件ブロックが含まれます。これらのブロックはNvMサービスオペレーション,民主党サービスオペレーションおよび鱼翅サービスオペレーションの参照実装を提供します。NvMサービス,民主党サービスおよび鱼翅サービスに対するコンポーネント呼び出しのシミュレーションをサポートするには,含まれているモデル内にこれらのブロックを含めます。ブロックは次の2つの方法のいずれかで挿入できます。
金宝app仿真软件测试ハーネスモデルを作成することにより,自動的にブロックを挿入する。
含まれるコンポジション,システムまたはハーネスモデルに手動でブロックを挿入する。
BSW正在NvMサービス,民主党サービスおよび鱼翅サービスを呼び出すモデルに服务组件ブロックを自動的に挿入するには,モデル(または含まれるモデル)を開き,仿真软件测试テストハーネスを作成します(仿金宝app真软件测试が必要)。[アプリ]タブで(金宝app仿真软件测试)をクリックします。次に,[テスト]タブで,[テストハーネスの追加)をクリックします。[テストハーネスの作成]ダイアログボックスで,(好的)をクリックします。ソフトウェアによってモデルがコンパイルされ,NVRAM服务组件ブロックと诊断服务组件ブロックが追加され,シミュレーションに必要な端子およびその他の要素が作成されます。たとえば,スロットル位置の統合モデル用に作成されたテストハーネスを以下に示します。
この例のNvMおよび民主党サービス呼び出しに服务组件ブロックを手動で挿入するには,統合モデルを開きます。ライブラリブラウザーまたはadd_block
コマンドを使用するか,モデルウィンドウにブロック名を入力して,モデルにNVRAMおよび诊断服务组件ブロックを追加します。
open_system (“autosar_bsw_presim”);add_block (“autosarlibnvm / NVRAM服务组件”,“autosar_bsw_presim / NVRAM服务组件”);add_block (“autosarlibdem /诊断服务组件”,“autosar_bsw_presim /诊断服务组件”);set_param (“autosar_bsw_presim”,“SimulationCommand”,“更新”);
NVRAM服务组件ブロックには,ランタイム環境(RTE)パラメーターや,(NVRAM属性)パラメーターなど,事前に値が入力されているパラメーターがあります。パラメーター設定を調べて,NvMサービスオペレーションの使用方法に基づいて変更が必要かどうかを検討します。詳細については,NVRAM服务组件を参照してください。
RTEタブテーブルはコンポーネントクライアントポートとそれぞれのNvMサービスブロックIDへのマッピングを一覧表示します。テーブルの各列は,基本ソフトウェアの呼び出し側ブロックからNvMサービスへの呼び出しを表します。同じNvMブロックを処理する呼び出しは,通常,同じブロックIDを使用します。この例ではNvMReadBlock
クライアントポートを異なるブロックIDにマッピングします。
诊断服务组件ブロックには,RTEパラメーターや民主党の[Counter-Based消除抖动)パラメーターなど,事前に値が入力されているパラメーターがあります。パラメーター設定を調べて,民主党サービスオペレーションの使用方法に基づいて変更が必要かどうかを検討します。
[Counter-Based消除抖动)パラメーターは,民主党サービスの参照実装で提供されるカウンターベースのデバウンスアルゴリズムを制御します。複数のシミュレーションを実行する際に,イベントステップサイズパラメーターとしきい値パラメーターを調整して,その影響を確認できます。詳細については,诊断服务组件を参照してください。
RTEタブテーブルはコンポーネントクライアントポートとそれぞれの民主党または鱼翅サービスID(この例では,イベントID)へのマッピングを一覧表示します。テーブルの各列は,基本ソフトウェアの呼び出し側ブロックから民主党サービスへの呼び出しを表します。同じイベントを処理する呼び出しは,通常,同じイベントIDを使用します。この例では,民主党SetEventStatus
クライアントポートを異なるイベントIDにマッピングした後,民主党GetEventFailed
クライアントポートを,SetEventStatus
ポートと共有されたイベントIDにマッピングします。たとえば,SetEventStatus
ポートのS1StuckHigh
とGetFailedEvent
ポートのTPS1StuckHigh
はイベントID 1を共有し,S1Stucklow
とTPS1StuckLow
はイベントID 2を共有するなどです。
統合モデルでNVRAM服务组件ブロックと诊断服务组件ブロックを構成してから,モデルをシミュレーションします。このシミュレーションでは,スロットル位置センサーコンポーネントおよびモニターコンポーネントのモデルで,AUTOSAR NvMおよび民主党サービス呼び出しを実行します。
open_system (“autosar_bsw_simulation”);simOutIntegration = sim卡(“autosar_bsw_simulation”);