スパイス  組み込み制御装置の受注製作

自社標準仕様の製作
平成27年10月13日

 汎用の高速シリアル通信機能(11)  実験基板の製作と経緯
 実験基板の主要な機能ブロックは説明が終わりました。残りはSPI接続のFROM, FRAMおよびPIC CPUのみです。これらはほぼSPI接続そのものです。SPIで接続されたPIC CPUには更に2CHのRS-485 IFが接続されています。
 この基板は既に基板業者に発注してあり、数日中には届くと思います。

 さて、基板の概要が説明できたので、8月以降の経緯について概要を説明します。8月の段階で通信プログラムはある程度のデバッグが出来ていました。ただし、これでは実際の使用環境とは大きく異なるのです。実験に使用したオプティマイズ社製PIC32ボードにはRS-485のIFが乗っていないので,2CHまではUSARTの入出力を直接接続することで動作確認できるものの、3CH以上のRS-485接続はドライバICを外付けする必要があります。これはそれなりに面倒な作業です。このため実験基板の製作へと傾いていきました。

 ソフトウェアの面でも問題があります。デバッグでは通信のマスタとスレーブを一つのCPUに割り当ててデバッグしています。スレーブ側が一つのときはいいのですが、これを二つに増やそうとすると問題が出てきます。仮にスレーブ1とスレーブ2と呼ぶことにすると、多くの処理ではどのスレーブを処理するかを引数に追加するかグローバル変数に設定する必要があります。
実際の通信処理では、このような処理は必要ないので、どうしようかと考えていました。デバッグのために無駄な処理が残るのは嬉しいことではありません。幾つかの方法はあるのですが、この状況は明らかにC++言語の多体性です。ならC++を使うのが本来ではないのか?
 C++言語に関しては10年以上前に何冊かの本で読んだ程度で詳しくはありません。従ってC++を使うとなると多くの時間が必要になるのですが、今回は納期を切られた請負仕事ではないので多少の融通は利きます。また、PC以外の組み込み環境でもC++が使える環境が多くなってきていることもあり、多少調べてみました。
 調べた結果、状況は当時とは随分変わっています。C++のメリット・デメリットとしては  良い点だけではないのですが、基本的にC言語の書き方で問題がないのは魅力的です。C++の複雑な機能を避けて、基本的にはC言語の機能でプログラムを作り、必要な部分のみをC++で記述することで当面の学習時間を短縮できます。
 勉強を兼ねてC++への移行を検討しています。最初はネット上に沢山あるC++入門からです。

 と文書で書くと数行ですが、実際には未だに終わっていない状況です。とりあえず、C++コンパイラのコンパイル方法を調べることから始め、クラスや継承について勉強しているところです。基本的な考え方は分かり易いのですが、実装段階では細かな制約や注意点があるようなので、ある程度使いこなせるようになるまでには、それなりの時間が必要です。

目次へ  前へ  次へ