SE道場 - 電話機制御システム開発秘話(前編) |     ✤ We Love Softbrain ✤ 

    ✤ We Love Softbrain ✤ 

        日々の仕事や、プライベートな趣味まで掲載しています。

こんにちは、ソフトブレインのシニアAですクローバー

いつもSE道場をお読み頂きありがとうございますお願い

 

本日は現在につながる無線通信を使ったシステムですひらめき電球

 

ではどうぞ・・・

『最後にシニアAさん、先週の報告をお願いします。』


『はい課長。 私が担当しているCADシステムの進捗ですが・・・・・』


1980年代に勤めていた会社は毎週金曜日の朝、各課ごとに週報会を行っていたビックリマーク

『次に、A社よりお仕事を受注しました。 コードレス電話制御ソフトです。 開発はTさん・シニアAさん・Eさんの3人を予定しています。』


『はい、わかりました。 何か詳しい資料がありますかはてなマーク


『ここにある。 私の分を含めて、コピーしておいてほしい。』


毎回、こんな感じで開発がスタートするひらめき電球

メンバーのTさんは中途入社、Eさんは新卒経験1年目の若手だビックリマーク


「電話機制御システム」というタイトルの資料を開けてみると、ハードウェアのことばかり書いてあり、ソフトウェアのことは最後の方にちょろっと書いてあった鉛筆

「パリティビットとCRCにより誤り検出・補正の実施」「チャンネルの競合によるチャンネルの切り替え」などの文が読み取れたビックリマーク

 

当時、経験が浅かった私にとって、読んですぐ、難しい処理があるんだなという感想を持ったクローバー


電話機制御システムは、CPUはザイログ社Z80、言語はZ80アセンブラ、周辺チップは、8253カウンタ制御、8255入出力ライン、8259割込コントローラなどを使用するひらめき電球


パリティビットについては、256バイトの受信バッファの1バイト1バイトに対して7ビットパリティを取り、それをパリティビットと比較して誤り検出を行った。


CRCについては、255バイトの合計(オーバーフローは無視)を取り、最終バイトのCRCと比較して誤り検出を行った。


補正については、パリティビット誤りが1か所の時に限って、CRCの誤りビット位置を判定し、データ1バイトとCRCの補正を行った。


問題は、チャネルの競合だったビックリマーク

 

電話機の傍にもう一つの電話機が現れた場合、チャネルがぶつかって干渉が起きると、割り込みが入るガーン

 

その場合プログラムは任意のチャンネルを決め、相手側にそのチャンネルに変更しようという電文を送ったあと、自分もそのチャンネルに切り替え、相手側が接続してくるのを待つのだビックリマーク


チャンネルは64チャンネルもあるのに、お借りしている実機は、2台しかなく実機テストができなかったあせる

 

万が一できたとしても、ログを取ることなどしない組み込みソフトがチャンネルの切り替えが行ったかどうか判定ができなかったガーン
これは、割り込み直後のアドレスから実行することにより、模擬テストを行い、ロジックを確かめた筋肉

開発は、3ヶ月に及んだクローバー

桜の花が散り始めた4月上旬ごろ、ようやくソフトが完成した音譜


今回は、ここまでですクローバー

次回のSE道場(後編)をお楽しみに・・・

 


SE道場では、プログラミングの極意や開発の苦労話等、様々な記事を投稿していますビックリマーク 

是非ご覧くださいクローバー 

 

1つ前の開発秘話は...