HOME > 開発システム事例 > 組み込みソフト開発「同期制御インターフェイスユニット」
開発システム事例

組み込みソフト開発「同期制御インターフェイスユニット」

1. はじめに

マイコンを利用した組み込みソフト開発の中で、ソフテックが得意とするのは、さまざま通信を利用するシステムです。

このページでは、PCからのスケジュール設定によって、外部機器への同期制御を行う通信インターフェイスユニットの開発について紹介します。

インターフェイスユニットには、最大32台の異なる外部機器が接続されます。予定時刻に対する実際の制御は10ms以内の正確さが要求されており、高精度時計の接続だけでなく、ソフトウェアにおいてもいくつかの工夫を行っています。

2. システム構成

開発したシステムの構成は図1のとおりです。

図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. ハードウェア仕様

3.開発範囲

当社の開発範囲は、マスター基板とスレーブ基板となります。ソフトウェアは当社で開発し、それぞれの基板のハードウェア製作は、関連会社の田原電機製作所へ委託しました。

PC側のアプリケーション開発は、お客様側の担当です。

開発にあたって、要求仕様はお客様からご提示いただきましたが、外部設計からは当社側で責任をもって対応を進めています。マスター基板−スレーブ基板の通信プロトコルのほかに、PC−マスター基板の通信プロトコルの設計も担当しています。
各基板の単体試験のあとは、当社にPCや外部機器を用意してシステム試験を実施し、最終的な検証を行いました。

4. 機能の概要

主な機能を紹介します。

4-1. スケジュール制御

PCからのスケジュール登録によって指定した時刻に指定したデータを送信する機能です。

  1. PCからユニットへ送信されたスケジュールデータは、一時マスター基板上のRAMへ蓄えられます。マスター内部時計で送出時刻3秒前になった時点で、マスターから各スレーブへスケジュール通知を行います。
  2. スケジュールデータを受け取ったスレーブは、スレーブ内部時計で設定時刻になったときに、指定されたポートから通信データの出力を行います。設定時刻からの遅れは10ms以内が求められています。
  3. スケジュール制御は32ポート(8スレーブ×4ポート)同時出力が可能です。
  4. PCからの時刻の指定は年月日時分秒とします。
  5. 外部機器への通信データは、スレーブ基板上に設定されているプロトコルやパラメータを利用します。
4-2. 即時出力制御

PCからの即時出力要求によって、最も早い時刻で指定したポートからデータを送信する機能です。

  1. PCからユニットへ送信された即時出力要求は、一時マスター基板上のRAMへ蓄えられます。マスターはスレーブ通信処理の切れ目に割り込んで、スレーブへ即時出力通知を行います。
  2. 即時出力を受けたスレーブは、通信ポートの使用状況をチェックして、スケジュール制御を行っていない場合に外部機器に対して即時出力の通信データ送信を行います。
  3. スケジュール制御を行っていた場合は、スケジュール制御が終わるまで待ってから即時出力データの送信を行います。
  4. 即時送出も32ポート同時出力が可能です。

主な通信データの流れは図2のようになります。

図2. データの流れ
図2. データの流れ

5. 開発のポイント

5-1. 制御の時間差を最小限に

PCアプリ、マスター基板、スレーブ基板、制御対象のすべての機器で時間を管理しています。全くズレが無ければよいのですが、基板の起動タイミング、各機器クロックの誤差により、タイミングが合わなくなります。
誤差によるタイミングのズレを最小限にするために、高精度時計が接続されるマスター基板の時計を基準にしました。マスター基板からスレーブ基板へは90秒ごとに同期パルスを出すことにより、定期的にスレーブ基板での制御周期の補正を行います。
この時刻校正処理によりマスター ― スレーブ間の制御タイミングのズレを少なくします。さらに、PCアプリからはマスター基板とRS-232C接続でシリアル通信を行い、PCの時刻を更新します。

5-2. カウント同期処理

外部機器のカウント値をPC側で表示させる場合、
PC → マスター → スレーブ → 外部機器
の経路で要求送信が行われ、逆の経路でカウント値が返ってきます。カウント値の取得を頻繁に行う場合、主機能であるスケジュール送信への影響も大きくなってきます。システム全体へのパフォーマンスに影響が出ないように、通信の負荷を軽減させる必要があります。
そこで、マスター基板が1度カウント値を取得した後は、外部からのカウント同期信号を元に、マスター基板側で外部機器ごとのカウントアップ処理を実行することにしました。PCからカウント値取得要求を受けた際には、マスター基板で処理しているカウント値を返しています。

5-3. CPU外部に不揮発性メモリを搭載せずにユーザーデータを保持

本システムのスレーブ基板には、スケジュール送信で使用するユーザーデータを持たせる必要がありました。任意のデータを保持させる仕組みとしては、不揮発性メモリ(たとえばFlashメモリ)を実装して、そこにデータを書き込む方法がありますが、使用するCPUは内蔵ROMがフラッシュメモリタイプの製品であったため、プログラムデータと一緒にユーザーデータをCPUに書き込んでおくことでユーザーデータを保持しています。CPU内蔵ROMであるため、頻繁な書き換えはできませんが、部品点数を少なくすることでユニットの製作コスト低下にもつながります。

5-4. 登録データによるスケジュール送信と、PCからの即時出力

本システムでは、スレーブ基板(CPU内)に登録されたユーザーデータのスケジュール送信だけでなく、PCからの直接出力にも対応します。
スケジュール送信、PCからの即時出力の送信タイミングが同じになった場合は、PCからの送信を優先して送信するようにしていますが、マスターからの要求受信とスレーブ内での制御周期によるスケジュール送信の開始が重なって、スレーブ基板での処理状態管理がうまくできずに、制御周期が止まったり、送信データが期待通りでなかったりといった問題も出てしまいました。

6. おわりに

今回の開発はRS-422/485を利用したインターフェイスユニットですが、ソフテックではさまざまな通信を利用したシステムの開発を行っております。たとえば、Ethernet、CAN、ARCNET、IICなどの実績が多数あります。市販の各種機器との接続に対応するのはもちろんですが、既存システムとの接続が必要な場合にはプロトコル解析から対応するケースもあります。
また、今回紹介したシステムのように、複数の基板のソフト開発を行う場合には、ソフテックにて通信プロトコルの設計から担当して、ご要求にこたえております。
詳細は、組み込みソフト開発のページを参照願います。

(W.T.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ