みなさん、こんにちは。
ソフトウェア設計課の南と申します。よろしくお願いいたします。
今回は組み込みプログラム開発におけるデバッグのお話です。
マイコンのプログラムはパソコンやスマートフォンのアプリケーションとは異なり、実際に基板上のハードウェアを操作するもので、組み込みソフトやファームウェアと呼ばれます。例えばマイコンで何らかのセンサのデータを取得する場合、そのセンサICの端子とマイコンの端子とを物理的、電気的に接続し、その配線内の電圧を変化させたり変化を読み取ったりして、目的の操作やデータ取得を行います。これら一連の制御を行うのが組み込みプログラムです。
ここで、プログラムが意図したとおりに動作しているかどうかを確認/修正する作業をデバッグと言います。
このデバッグにおいて、電圧の変動を確認する測定器としてはオシロスコープが一般的ですが、デジタル信号の通信波形のタイミング等を測定する場合はロジックアナライザという機器を使ったりします。
今回は、簡単なシリアルデータのデバッグにロジックアナライザを用いた例をご紹介します。使用するロジックアナライザは以下のようなスペックです。
- 最大サンプリング速度 :24 MHz
- 入力電圧範囲 :0~5 V
- チャンネル数 :8 ch
シリアルデータ伝送は1本の信号線の電圧が決められた手順で、マイコンその他機能ICの入力信号レベルが”1”と認識する電圧レベル以上の電圧(ハイレベル)と、マイコンその他機能ICの入力信号レベルが”0”と認識する電圧レベル以下の電圧(ローレベル)とを切り替えて設定し、目的の通信を行うもので、UART (Universal Asynchronous Receiver/Transmitter)、SPI(Serial Peripheral Interface)、USB(Universal Serial Bus)などいくつかの種類があります。
これらのデバッグは、電圧がハイレベルになったりローレベルになったりする状況を測定機の画面で確認して正常なデータかどうかを確認することになるのですが、ロジックアナライザを使って通信プロトコルを指定すると、データとして表示してくれます。
今回はI2C(Inter-Integrated Circuit)通信を例にしています。
開発環境は下の写真の通りで、Arduino nano基板を使ってキャラクタ表示液晶に文字を表示させています。これらのモジュール間は、I2Cの2本の信号線「SDA(データライン)」と「SCL(クロックライン)」で接続しています。
ロジックアナライザの測定プログラムは、sigrok製のPulseViewというフリーソフトを使用し、このツールのプロトコル解析機能を使いました。
このツールでSDAとSCL、2本の信号を取り込んで画面に波形を表示することができます。プロトコル解析機能がないとクロックの立ち上がりごとに1ビットずつ手動で読み込まないとだめなんですが、この機能を使うと
”0x7C”、”0x00”、”0x38”
という風に波形だけでなく、通信しているデータを簡単に読み取ることができます。
I2C程度の遅い信号であれば今回ご紹介した24MHzのサンプリング周波数で十分解析できます。実は今回使用したロジックアナライザはネット通販で¥1,000そこそこで入手可能です。マイコンのプログラミング(組み込みソフト)に興味をお持ちの方の入門用ツールとしては十分使えると思います。
このブログがみなさまの組み込みライフの参考となって、ソフトウェアの従事者の中でも技術者数が少ない組み込み分野技術者の裾野の拡大に少しでも貢献できれば幸いです。
ちなみにですが、我々が普段組み込みソフト開発業務で使用しているロジックアナライザはそれなりに高機能、高精度のスペックのものです。
我々はこのロジックアナライザも駆使してIoT機器や各種センサ応用機器などの開発を行っています。組み込みソフトの開発でお困りでしたら、お気軽に声をおかけ下さい。
【関連リンク】
【関連ブログ】
- IoT機器のOTA導入が意外と進まない理由とは
- IoT時代の開発者が知っておくべき組込みセキュリティ対策とは? PartⅡ
- IoT時代の開発者が知っておくべき組込みセキュリティ対策とは?
- 組込みソフトウェア作成時のポイントを紹介します
- Q-Learningでチーズパズルを解いてみました
- ESP32マイコンでOTA! Wi-Fiでプログラムを書き込む
- M5stackで簡易Wi-Fiチェッカーを作ってみました
- 無線モジュール搭載IoT機器の開発には幅広い知見と技術が必要です
- IoT化のお手伝い-ワンストップでアイデアを形にします
- WTIブログ(IoT関連)
- 無線通信モジュールのコストを抑える方法とは
- IoTのプロフェッショナルを顧客社内に育成する「テクノシェルパ」登場
WTIメールマガジンの配信(無料)
WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら
WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。