この仕事は、「マイコンの通信機能が他の機能を動作させている場合でも正しく動作する事を確認する」というもので、先輩が打ち合わせや仕様検討をして、実作業を私が担当する、という分担で仕事を行うことになりました。
私の作業は以下の2点でした。
(1) 各確認項目のプログラムを仕様に沿って作成、および動作確認(コーディング・動作確認)
(2) ロジックアナライザ
(※2)を使用して波形を取得しながら項目ごとの確認をする(機能確認作業)
(1) コーディング・動作確認
当初の予定は上記のとおりだったのですが、私はその時複数の仕事を担当していて今回の仕事に集中できない状況になってしまいました。
そのため、見かねた先輩がほとんどプログラムを作ってくださることになりました。「先輩も自分の仕事があるのに申し訳ない・・・」と思いましたが、先輩のプログラムの作り方を見ることができ、とても勉強になりました。
今回のプログラムは、確認項目ごとにプログラムが違うため、確認項目が変わるたびにマイコンのプログラムを書き換える必要がありました。
先輩の作ったプログラムは、確認項目ごとにプログラムのすべてを変更するのではなく、メインファイルのみに違いを作りメインファイルを差し替えることで確認項目にあったプログラムに変更する、という仕組みにしていました。
これならば、ひとつの確認項目のプログラムに不都合が出てしまっても全ての項目のプログラムをいちいち修正することなく、全体のプログラムとしてのひとつのソースファイルを修正するだけで済みます。(図1)
また、確認項目ごとに通信対象マイコンにもプログラムを書き込まなければならないのですが、確認項目ごとに確認対象マイコンと通信対象マイコンの2つにプログラムの書き込みを行うのは、手間と時間がかかってしまいます。
そこで、通信対象マイコンのプログラムを工夫して基板上のボタン操作で使用するプログラムを選択できるようにし、通信対象マイコンは1度プログラムを書き込むだけで済むようにしていました。
私がもし同じものを作ったとしても、「プログラムが動作するかどうか」というところにばかり気をとられてしまい、後の作業や作業全体への影響を考えずに作ってしまったと思います。
効率的に作業を進めるためには、作業全体のことを考えながらひとつひとつの作業を行う必要があると思いました。
 |
| 図1. プログラム構造 |
(2) 機能確認作業
各確認項目の確認は、前項の動作確認でプログラムが正常に動くことを確認してから行いました。
機能確認では、ロジックアナライザで動作中の波形を取得しながら、通信機能が正常かどうかをプログラムで判定しました。(図2)
ロジックアナライザを使用したのは、波形をみることにより「本当に仕様どおりの動作を行っているのか」という確認をするためと、「動作に問題が起きたときに何が原因なのか」ということを調べるためです。
実際に確認作業を行ってみると、ひとつひとつロジックアナライザで波形を取得したことと、確認項目が何十項目もあったため、思った以上に時間がかかってしまいました。効率的に確認作業を行えるプログラムになっていなかった場合、もっと時間がかかってしまったのかと思うと、効率性を考えたプログラムは大切だと思いました。
また、今までマイコンがどんな信号を出して動いているのかは知らなかったので、今回の作業でロジックアナライザを使い取得した波形を解析することでマイコンに対する理解が深まりました。
 |
| 図2. システム構成 |