不採用案件:SNTC
提案-->試作-->不採用の経緯
2020年の秋ごろ、息子(susukuma鉄道模型チャンネル)に
鉄道模型レイアウト用の新しい制御方式=SNTC※を提案しました。
※Serial Network Train Control system
提案の目的は主に以下の2つでした。
1. 大規模レイアウトで問題となる多数の閉塞区間/ポイント/信号機 と コントロールパネル間の配線を減らす。
2. デュアルキャブ方式の発展形としてポイントや列車位置と信号機を連動させ、自動速度制御(ATS,ATC)によりマニュアル操作のサポートを行なう。
※Serial Network Train Control system
提案の目的は主に以下の2つでした。
1. 大規模レイアウトで問題となる多数の閉塞区間/ポイント/信号機 と コントロールパネル間の配線を減らす。
2. デュアルキャブ方式の発展形としてポイントや列車位置と信号機を連動させ、自動速度制御(ATS,ATC)によりマニュアル操作のサポートを行なう。
鉄道模型マニアがどのような新機能を喜ぶのか私にはよくわからなかったので とりあえずハードウェアを試作して息子に聞きながら制御ソフトを改善して行こうと考えました。
息子に頼んで試作用のレイアウトを送ってもらい、ポイント、信号機、センサと閉塞区間毎の駆動回路を組み込みました。
制御ソフトは第1段階としてデュアルキャブ方式と同じ事ができるもの(ATS/ATCはなし)を組み込みました。
【試作SNTCの裏面】
「動くものができたぞー!」とうれしくなって息子に見せたのですが
「回路やマイコンプログラムが複雑すぎる」
という意見でした。
あちゃー、やりすぎました。
多数のマイコンチップネットワークシステムというのは個人の趣味というよりもどこかの会社で企画販売すべき物かもしれません。
そこでSNTCの構成要素(ポイント駆動機構、信号機、センサー、関連回路)をそれぞれスイッチで直接操作するように修正し息子に提供しました。
それらの詳細はすでに本サイトに掲載済みです。
というわけでSNTCは開発を中止し、未完成なため これまで掲載していませんでした。
しかしながらいくつかのアイデアや回路、実験結果は将来susukuma鉄道模型チャネルや他の鉄道模型マニアの方々に役立つかもしれないので、部分的ではありますが忘れないうちに記載することにしました。
SNTCのアーキテクチャ
安価なマイコンチップを載せた多数の小基板をNゲージレイアウトに分散配置します。
ポイントや信号機、センサー、列車駆動用の閉塞区間への配線はそれぞれ近くの小基板に接続します。
操作パネルのスイッチ類はパネル裏面の基板に接続します。
基板間の通信はマイコンチップに内蔵されたシリアルインターフェイスモジュール(信号線は送受各1本)を使ったループネットワークで行ないます。
操作パネルから各小基板への接続は電源線とループ接続の送受信号線だけとなり、大規模レイアウトでのタコ足配線が解消できます。
ポイントや信号機、センサー、列車駆動用の閉塞区間への配線はそれぞれ近くの小基板に接続します。
操作パネルのスイッチ類はパネル裏面の基板に接続します。
基板間の通信はマイコンチップに内蔵されたシリアルインターフェイスモジュール(信号線は送受各1本)を使ったループネットワークで行ないます。
操作パネルから各小基板への接続は電源線とループ接続の送受信号線だけとなり、大規模レイアウトでのタコ足配線が解消できます。
試作したSNTCでは電源線もループ状にしたので操作パネルとレイアウト間の配線は8本(12V✕2+GND✕2+送信+GND+受信+GND)です。
各ポイントや車両センサー、各閉塞区間別の駆動電圧(PWM制御値)と電流値はループネットワークを通して操作パネル側メインマイコンチップから制御、監視できるのでプログラム次第でいろいろな事が可能になります。
私が考えたマイコン制御の既存システムであるDCCやTNOSとの違いは以下の通りです。
・DCCは車両側に仕掛けが必要。SNTCは車両側に修正は不要。
・TNOSはTOMIXが提供する小規模レイアウトプランのみ対応。
SNTCは大規模レイアウトの制御をマニアがカスタマイズするためのシステム。
ループネットワークについて
マイコンチップ(PIC)の内蔵シリアル通信機能はSPI、I2C、UARTの3種から選択可能でした。
一般的にSPIやI2Cは基板内や基板間の近距離用、UARTは装置間用の規格です。
試作では接続信号本数が1本でよいUARTの調歩同期方式を400Kbpsの通信速度で使っています。
調歩同期式では基準となるクロック周波数がずれるとまずいので、念のため各基板のクロックは水晶発振子で生成しています。
ループ通信のソフトウェア上の手順は以下の通りです。
操作パネル裏のメイン基板から周期的に固定長の送信データを送ります。
送信データは各基板に対する制御またはダミーのデータです。
データを受け取った基板は先頭データを取り込みます。
それ以降の他の基板用データはそのまま後段へ送信し、最後にセンサー値や自分の状態を示すデータを後段へ送信します。
通信経路がループになっているので、一周するとメイン基板へは他の小基板からの状態データが戻ってきます。
メイン基板は他の小基板の状態データ(パネルスイッチ状態、センサー情報、閉塞区間の電流値)を使って次の制御指令を送ることを繰り返します。
一般的にSPIやI2Cは基板内や基板間の近距離用、UARTは装置間用の規格です。
試作では接続信号本数が1本でよいUARTの調歩同期方式を400Kbpsの通信速度で使っています。
調歩同期式では基準となるクロック周波数がずれるとまずいので、念のため各基板のクロックは水晶発振子で生成しています。
ループ通信のソフトウェア上の手順は以下の通りです。
操作パネル裏のメイン基板から周期的に固定長の送信データを送ります。
送信データは各基板に対する制御またはダミーのデータです。
データを受け取った基板は先頭データを取り込みます。
それ以降の他の基板用データはそのまま後段へ送信し、最後にセンサー値や自分の状態を示すデータを後段へ送信します。
通信経路がループになっているので、一周するとメイン基板へは他の小基板からの状態データが戻ってきます。
メイン基板は他の小基板の状態データ(パネルスイッチ状態、センサー情報、閉塞区間の電流値)を使って次の制御指令を送ることを繰り返します。
【シリアルデータの送受信方式】
試作基板
感光基板で試作し動作確認後、基板メーカーに発注しました。
【メイン基板:MC02】
PIC16F18456にシステム全体制御のプログラムを書き込んで他の小基板の監視と制御を行います。
小基板とはUARTのシリアルインターフェイスで接続します。
各種設定や状態表示用に4つのプッシュスイッチと16文字のキャラクタディスプレイ(I2C接続)を付けました。
その他のI/Oとして、カラーLED(シリアル接続できるタイプ)用インターフェイスや圧電ブザーを付けました。
USB-RS232C変換コードを介してPCと接続できるRS232Cインターフェイスも付けられる基板設計にしましたがこれは未使用です。
【メイン基板:MC02】
PIC16F18456にシステム全体制御のプログラムを書き込んで他の小基板の監視と制御を行います。
小基板とはUARTのシリアルインターフェイスで接続します。
各種設定や状態表示用に4つのプッシュスイッチと16文字のキャラクタディスプレイ(I2C接続)を付けました。
その他のI/Oとして、カラーLED(シリアル接続できるタイプ)用インターフェイスや圧電ブザーを付けました。
USB-RS232C変換コードを介してPCと接続できるRS232Cインターフェイスも付けられる基板設計にしましたがこれは未使用です。
MC02基板(感光基板実装)
MC02基板(外注)
【スイッチ類入力基板:SWSCAN02】
コントロールパネルのスイッチやボリュームと接続し、その状態をメイン基板へ送ります。
チャンネル切替のロータリースイッチのポジションはロータリースイッチに抵抗を付けて電圧に変換し、マイコンチップのA/D変換機能で入力しています。
この方法によりロータリースイッチのポジション数に関係なく1本の信号線でポジションをマイコンチップに取り込めます。
速度指示のボリューム位置もA/D変換して取り込みます。
1枚のSWSCAN02基板にはボリューム、ロータリースイッチ、トグルスイッチ、プッシュスイッチを合わせて18個まで接続できます。
スイッチなどの数が18個を超えた場合は同じ基板を複数枚使ってシリアルインターフェイスでループ接続します。
SWSCAN02基板(感光基板実装)
SWSCAN02基板(外注)
【PWMドライブ基板:BSC02】
閉塞区間の車両駆動用の基板です。
電流をA/D変換で検出するので閉塞区間上の走行列車の有無が判定できます。
プログラムを入れ替えるとFM90を用いたポイント切替装置やPECO社のポイント切替装置を駆動することもできます。
また、車両のセンサー(フォトリフレクタ)を2個、3灯式信号機を2系統接続できます。
BSC02基板(表面)
駆動電圧や電流が大きいので基板裏面にドライバーICを接続し、PICマイコン内のPWMモジュールを使って制御しています。
ドライバーICはA4953ELJというのを使いました。
このICは下面中央にも放熱用パッドがあり、ここを半田付けしないと放熱がうまくできません。
クリームはんだを使ってヒートガンで加熱するという簡易リフロー的な方法もありますが、クリームはんだの入手や加熱具合が難しそうです。
そこで穴径の大きいスルーホールをICの下に開け、逆側(表面)から半田ごてではんだを流し込みました。
これでドライバーICの熱が表面のGNDベタパターンに効率よく伝わります。
なおA4953ELJは秋月電子通商で買ったのですが現在(2022年4月)では買えなくなっているようです。
置き換え可能なICとしてTB67H450FNGというのが売られています。
BSC02基板(裏面)
モータードライバーA4953ELJのパッケージ
PWM駆動の問題と対策
【テールライト問題】
当初、PWM方式でモーターを駆動しない期間はドライバーIC出力をハイインピーダンス(OPEN)にしていました。
その場合、車両のヘッドライトとテールライトが両方点灯してしまいました。
PWMの駆動期間にはヘッドライトが光り、OFF期間ではモーターからの逆起電力によってテールライトが光っていました。
対策として、PWM方式でモーターを駆動しない期間はドライバーICの2本の出力を両方0V(GNDとショート)にすることでモーターの逆起電力電圧を下げてテールライトが光らないようにしました。
当初、PWM方式でモーターを駆動しない期間はドライバーIC出力をハイインピーダンス(OPEN)にしていました。
その場合、車両のヘッドライトとテールライトが両方点灯してしまいました。
PWMの駆動期間にはヘッドライトが光り、OFF期間ではモーターからの逆起電力によってテールライトが光っていました。
対策として、PWM方式でモーターを駆動しない期間はドライバーICの2本の出力を両方0V(GNDとショート)にすることでモーターの逆起電力電圧を下げてテールライトが光らないようにしました。
【ショート保護】
レールからモーターへの電流取り込みを安定化するため複数の車輪がモーターに接続されています。
そのためそれらの車輪がレールの絶縁部分をまたぐとき、隣接する閉塞区間がショートします。
SNTCでは各閉塞区間をそれぞれ別基板からPWM駆動するので、2つの基板がショート状態でPWM駆動しても問題が起きないようにする必要があります。
列車が閉塞区間の境界をまたぐとき、隣接閉塞区間のPWM駆動パルスを一致させるのが理想的ですがハード、ソフトともにかなり厄介です。
当初はPWMの駆動休止期間にドライブ出力をOFF(OPEN)にして過大なショート電流が流れないようにしていました。
しかし前述の通り後方のヘッドライトも点灯してしまう不具合が発覚しました。
さらに閉塞区間境界を列車が通過する時に位相がずれているとパルス幅が加算されて瞬間的に列車が加速してしまいます。
そこでドライブ回路は常に12Vか0Vを出力し、とりあえずのショート対策として駆動出力2本のそれぞれに保護抵抗5Ωを挿入しました。
閉塞区間境界を列車が通過する時のショート対策と駆動電圧
保護抵抗により閉塞区間境界を列車が通過する時のショート電流が約1A程度に制限されます。
12V元電源は最大電流8.5Aのスイッチングレギュレーターにしたので元電源の電流容量は実用上問題なさそうです。
ショート電流に合わせて抵抗のサイズは5W(=抵抗値*電流2)にしました。
駆動パルスの位相がずれた分だけ駆動時間の割合が増加しますが、ずれた期間の駆動電圧は1/2に近くに減ります。
そのため列車が閉塞区間をまたぐときの速度変動がある程度抑えられるようです。
なお列車の連結数が多くてモーター負荷が高い場合に保護抵抗を入れていて駆動力が問題ないかは試していません。
SNTCのまとめと回路図
SNTCは回路基板が多数必要でマイコンプログラムもそれなりに複雑です。
そのためsusukuma鉄道模型チャンネルで不採用となり開発は中断しました。
ですが試作により以下の可能性を示せたと思います。
1.大規模レイアウトでのタコ足配線削減
2.マニュアル操作のインテリジェントなサポート
3.プログラム次第で部分的または全自動の列車運行も可能
4.ハイコストパフォーマンス(基板が小さくシンプル、使用部品も安価)
ループネットワークで動かすSNTCプログラムは固定レイアウト限定の初期段階で掲載できるレベルではありません。
一方、各基板の回路は個別にいろいろ応用できる可能性があると思うので
電気回路やマイコンチップ(PIC)に興味がある人向けに参考情報として回路図を添付します。
なお利用する場合は自己責任でお願いいたします。
メイン基板回路図 MC02_Circuit.pdf
スイッチ類入力基板回路図 SWSCAN02_Circuit.pdf
PWMドライブ基板回路図 BSC02_Circuit.pdf (ショート保護抵抗5Ωは別基板なので含まず)
そのためsusukuma鉄道模型チャンネルで不採用となり開発は中断しました。
ですが試作により以下の可能性を示せたと思います。
1.大規模レイアウトでのタコ足配線削減
2.マニュアル操作のインテリジェントなサポート
3.プログラム次第で部分的または全自動の列車運行も可能
4.ハイコストパフォーマンス(基板が小さくシンプル、使用部品も安価)
ループネットワークで動かすSNTCプログラムは固定レイアウト限定の初期段階で掲載できるレベルではありません。
一方、各基板の回路は個別にいろいろ応用できる可能性があると思うので
電気回路やマイコンチップ(PIC)に興味がある人向けに参考情報として回路図を添付します。
なお利用する場合は自己責任でお願いいたします。
メイン基板回路図 MC02_Circuit.pdf
スイッチ類入力基板回路図 SWSCAN02_Circuit.pdf
PWMドライブ基板回路図 BSC02_Circuit.pdf (ショート保護抵抗5Ωは別基板なので含まず)