マイコンを利用した組み込みソフト開発の中で、ソフテックが得意とするのは、さまざま通信を利用するシステムです。
このページでは、PCからのスケジュール設定によって、外部機器への同期制御を行う通信インターフェイスユニットの開発について紹介します。
インターフェイスユニットには、最大32台の異なる外部機器が接続されます。予定時刻に対する実際の制御は10ms以内の正確さが要求されており、高精度時計の接続だけでなく、ソフトウェアにおいてもいくつかの工夫を行っています。
開発したシステムの構成は図1のとおりです。
図1. システム構成図
ハードウェアの仕様は表1の通りです。
マスター基板 | CPU | H8S/2633 |
---|---|---|
RAM | 内蔵16キロバイト、外付512キロバイト | |
RTC | RTC-4543 | |
PCポート | RS-232C 通信速度 9600bps、19200bps |
|
Ch1ポート | RS-422/485、高精度時計接続用 最大通信速度 76800bps |
|
Ch2ポート | RS-422/485、カウンタ接続用 最大通信速度 76800bps |
|
Linkポート | RS-485 | |
内部伝送 | RS-485、スレーブ通信用 | |
スレーブ基板 | CPU | H8S/2633 |
RAM | 内蔵16キロバイト | |
通信ポート | RS-422/485×4、外部制御機器接続用 最大通信速度 38400bps |
|
内部伝送 | RS-485、マスター通信用 |
表1. ハードウェア仕様
当社の開発範囲は、マスター基板とスレーブ基板となります。ソフトウェアは当社で開発し、それぞれの基板のハードウェア製作は、関連会社の田原電機製作所へ委託しました。
PC側のアプリケーション開発は、お客様側の担当です。
開発にあたって、要求仕様はお客様からご提示いただきましたが、外部設計からは当社側で責任をもって対応を進めています。マスター基板−スレーブ基板の通信プロトコルのほかに、PC−マスター基板の通信プロトコルの設計も担当しています。
各基板の単体試験のあとは、当社にPCや外部機器を用意してシステム試験を実施し、最終的な検証を行いました。
主な機能を紹介します。
PCからのスケジュール登録によって指定した時刻に指定したデータを送信する機能です。
PCからの即時出力要求によって、最も早い時刻で指定したポートからデータを送信する機能です。
主な通信データの流れは図2のようになります。
図2. データの流れ
PCアプリ、マスター基板、スレーブ基板、制御対象のすべての機器で時間を管理しています。全くズレが無ければよいのですが、基板の起動タイミング、各機器クロックの誤差により、タイミングが合わなくなります。
誤差によるタイミングのズレを最小限にするために、高精度時計が接続されるマスター基板の時計を基準にしました。マスター基板からスレーブ基板へは90秒ごとに同期パルスを出すことにより、定期的にスレーブ基板での制御周期の補正を行います。
この時刻校正処理によりマスター ― スレーブ間の制御タイミングのズレを少なくします。さらに、PCアプリからはマスター基板とRS-232C接続でシリアル通信を行い、PCの時刻を更新します。
外部機器のカウント値をPC側で表示させる場合、
PC → マスター → スレーブ → 外部機器
の経路で要求送信が行われ、逆の経路でカウント値が返ってきます。カウント値の取得を頻繁に行う場合、主機能であるスケジュール送信への影響も大きくなってきます。システム全体へのパフォーマンスに影響が出ないように、通信の負荷を軽減させる必要があります。
そこで、マスター基板が1度カウント値を取得した後は、外部からのカウント同期信号を元に、マスター基板側で外部機器ごとのカウントアップ処理を実行することにしました。PCからカウント値取得要求を受けた際には、マスター基板で処理しているカウント値を返しています。
本システムのスレーブ基板には、スケジュール送信で使用するユーザーデータを持たせる必要がありました。任意のデータを保持させる仕組みとしては、不揮発性メモリ(たとえばFlashメモリ)を実装して、そこにデータを書き込む方法がありますが、使用するCPUは内蔵ROMがフラッシュメモリタイプの製品であったため、プログラムデータと一緒にユーザーデータをCPUに書き込んでおくことでユーザーデータを保持しています。CPU内蔵ROMであるため、頻繁な書き換えはできませんが、部品点数を少なくすることでユニットの製作コスト低下にもつながります。
本システムでは、スレーブ基板(CPU内)に登録されたユーザーデータのスケジュール送信だけでなく、PCからの直接出力にも対応します。
スケジュール送信、PCからの即時出力の送信タイミングが同じになった場合は、PCからの送信を優先して送信するようにしていますが、マスターからの要求受信とスレーブ内での制御周期によるスケジュール送信の開始が重なって、スレーブ基板での処理状態管理がうまくできずに、制御周期が止まったり、送信データが期待通りでなかったりといった問題も出てしまいました。
今回の開発はRS-422/485を利用したインターフェイスユニットですが、ソフテックではさまざまな通信を利用したシステムの開発を行っております。たとえば、Ethernet、CAN、ARCNET、IICなどの実績が多数あります。市販の各種機器との接続に対応するのはもちろんですが、既存システムとの接続が必要な場合にはプロトコル解析から対応するケースもあります。
また、今回紹介したシステムのように、複数の基板のソフト開発を行う場合には、ソフテックにて通信プロトコルの設計から担当して、ご要求にこたえております。
詳細は、組み込みソフト開発のページを参照願います。
(W.T.)
関連ページへのリンク
関連するソフテックだより