マイクロコンピュータを用いた制御はさまざまな機 器で行われています.
制御システムは,制御したい目標値=指示値に対し, 現在の状態をセンサ値などを用いて把握し,差分を調 整するための制御値を演算して,機器をコントロール します(図1).コントロールは一度きりではなく繰り返 し行われ,センサ値や指示値の変化に応じた演算を行 い制御値を出力することで,実際の状態であるセンサ 値との差分を埋める処理が繰り返されます.
一連の制御処理を検証するには,実際に機器を動かし ながら複数の制御パラメータを連続的に確認し,その相 関・変化が妥当かを確認していく必要があります.
図1 制御システムは制御対象の状態をフィードバックしてコントロールする
制御システムの検証として指示値,演算結果である 制御値,実際の状態であるセンサ値などの相関や変化 を確認していきます.しかし,この作業は大変な労力 を必要とします.測定器を用いていろいろな配線や設 定を行ったり,制御ソフトウェア(プログラム)にログ やprint文を用いたり,検証データを得るのにさまざま な工夫が必要です.また,そのデータを後日CSVファ イルなどにまとめる必要もあります.制御の異常発生 を確認するために測定器の波形とにらめっこなどとい うこともあるかも知れません.ログ・システムやprint 文によりプログラム実行の速度に影響を受けてしまい, 本来機器が動作すべき速度での検証ができず,検証の 透過性を欠く,あるいは見たい情報を見ることができ ない場合も多々あります(図2).
図2 測定器の接続やprint文の挿入が大変! システムの挙動が変わった!?
DTSインサイトが提供するEVRICAは,マイコン内部のデータを高速に読み取り記録するデータロガーです. しかも,プログラムの実行速度に影響を与えません.プ ログラムを動かした状態でマイコン内部のメモリに格納 されるデータを高速かつ連続的に記録できます.本来, マイコンの内部でソフトウェアが用いる変数やIO値(IO レジスタ値)などは可視化することが困難ですが,DTS インサイトのデバッグ技術とマイコン知見により EVRICAではそれを可能にしました.制御演算などで用 いる指示値やセンサ値,制御値などを簡単な接続と設定 で可視化でき,システム検証を容易かつ適格に行えるよ うになり,効率化と品質向上に寄与します(図3).
図3 EVRICAをつなげるだけでデータ計測が簡単に!
CoreSight™は,Arm®搭載のSOCのデバッグやトレー スを支援する技術です.EVRICAは,Arm® CoreSight™ 搭載マイコンのArm® Cortex®-A/R/Mに対応しています.
接続は,Debug I/F(JTAG/SWD)に接続するだけで, 設定はマイコン名と変数名を選ぶだけでロギングが可 能です.
EVRICAを使用することにより,プログラムの実行速度 に影響を与えない透過性の高い動作検証が可能です.
プログラムへのログ埋め込みなど不要で,すぐにロギングが可能です.
変数1点あたり最速6.5μsでロギングします.
データはPCのHDD/SSDに保存するため長時間の記録が可能です.
システムの状態をEVRICAから簡単に変えることができます.ロギング中の書き換えも可能です.
モーター制御では,目的に応じて回転速度やトルク,位置などを適切に調整するためのパラメータの調整が必要です.このパラメータ調整は,実機環境で試行錯誤の方法で行われ,最適な設定を見つけるためには時間と労力が必要になる場合があります.
EVRICAを使うことで,実機のモーターを動作させな がら,回転速度や回転数,トルク,位置情報,パラメー タ値をリアルタイムで確認できます(図4).パラメータ値 を変更したい場合,EVRICAのデータライト機能によ り,マイコンのプログラムを書き換えずにチューニング できます.モーターの挙動とパラメータ値との関連性を 迅速に把握し,パラメータ調整を効率的に進めることが でき,開発工数の削減及び製品のパフォーマンスと品質 の向上が実現可能です.
図4 モーター制御情報のロギング結果
通信システムの開発では,通信のマスターデバイスとスレーブデバイスの状態のズレが問題になる場合があります.例えば,マスターデバイスが特定のモードに入っている時に,スレーブデバイスは異なるモードにいると誤認識することがあります.このような誤認識は,システムの動作異常につながるため,正しく状態管理ができているかの確認が必要です.
EVRICAは,PCに複数台接続可能であるため,マスターデバイスとスレーブデバイスのそれぞれの状態を同時にロギングすることで,状態のズレの有無を可視化することが可能です(図5).
図5 2台のEVRICAを使ったロギング例
プログラムの状態を示す変数をロギングすることで シーケンスをわかりやすく確認可能です(図6,図7).
図6 状態遷移図の例 図7 EVRICA確認結果のイメージ
ロギングした変数の時間測定が可能です(図8).
図8 SPI信号(xSCS)のロギング結果
元々シリアル通信で値を出力して確認していたが, システムの挙動が変わるので困っていた.EVRICAを使うことで実環境と同じ条件で検証ができ,大幅に検証時間を短縮できた.
EVRICAの長時間ロギングにより,1日に1回しか再現しない問題発生時の状態を捉えることができ解決することができた.