ハードウェアからサーバ・アプリまでワンストップで開発

CAN/Ethernet対応周辺機器用マザー(3) 仕様とか

CAN/Ethernet対応周辺機器用マザーの仕様とか目的とかを書いておきます。

元々、このボードは「某潜水艇制御システム」の一部として開発したものです。

この図の「機器制御装置」と書いてある部分に使います。推進モータやサーボモータは、それ自身でCANをしゃべりますが、それ以外の諸々の機器(本当に諸々としか言いようがない)は直接CANでは制御出来ないので、この制御装置でスイッチなり何なりしてやるわけです。

「スイッチなり何なり」については、このボードにあるピンソケットで接続されるドータボードで行います。

このボードのサイズ等は、TAKACHIPR-140に合わせてあります。

ボードの目的

このボードは、

  • ホスト通信(CAN/Ethernet)
  • I/O制御
  • PLC動作

を行うことを目的としています。

ホスト通信

基本的にこのボードは単体で動かすことは目的としていません。ホスト側マイコンからの指令に従って動作させるという構成を念頭に置いています。まぁその辺はプログラムの書き方次第でしかないので、スタンドアローンで動かしてはいけないってことはないのですが。

ホスト側マイコンは、Linuxのような「汎用OS」を使うことになっています。このボードは、その「足まわり」を担当するボードだという位置づけです。

I/O制御

言うまでもないですね。ドータボードにあるデバイスをコントロールするわけです。現在あるドータボードは、汎用接点入出力、汎用アナログ入出力、大電流スイッチの3種類のI/Oが載ったボードです。

PLC動作

ホスト側マイコンは汎用OSなので、応答時間にシビアな動作とか高速を要求される動作とかはあまり得意としていません。そういった、「脊髄反射」的な動作を行うために、ある程度のインテリジェンスを持たせることも必要になります。「わざわざホストにさせるまでもない動作」については、このボード上のコードで実行させるわけです。

たとえば、「ハッチが閉まるとハッチ駆動モータを止める」といったPLCの初歩みたいなプログラムはここで動かしてしまい、ホストは「ハッチを閉めろ」という指令を出すだけにするわけですね。

デバイスについて

CPU

CPUはSTM32F407VGです(奥にあるチップ)。各種状態の保持のために、バックアップ電池がつけられるようになっています。

電源

制御用の機器なので、24Vで動かすことを基本にしています。まぁ、この辺はレギュレータの交換次第で12Vなり5Vなりに対応することは容易です。件の船の基幹電源は48Vなので48Vにしても良かったのですが、他の制御用機器が24Vのものが多かったのでそちらに合わせています。

バス

ドータボードとの通信のためのバスで、必要そうなピンはだいたい出してあります。これは以前に作ったセンサー用マザーボード(ESP32を使ってます)と上位互換を持たせているので、そっちのドータボードも流用出来るようになってます。図にあるように現在センサーとマイコンは無線でつながっていますが、このボードを使って有線でつなぐことも出来るわけです。

ピンとしては、GPIO, I2C, SPIが取れるものを選んでいます。

設定スイッチ

手前に並んでいるロータリースイッチは、いわゆる「アドレス設定用」です。まぁ、16進データの出て来るスイッチに過ぎないので、アドレス設定以外にも使えるのですが、CAN用のMACを「見えるところで直接的に設定」したいというニーズがあるためスイッチにしました。

CAN

CANは非絶縁 5Vです。ここはいろいろ思うところあるのですが、他のCANデバイスの仕様とかの都合です。この5Vはこのボードではなくて、「制御マイコン」と書かれたところで作っています。一応、終端抵抗を搭載していて、ジャンパーでON/OFF出来るようにはなっていますが、このボードが終端になることはないんじゃないかと思ってます。

Ethernet

Ethernetはオマケです。「某潜水艇制御システム」はクライアントの強い要望で、内部通信にはCANを使うことになっているので、本来は不要です。ただ、いろいろな可能性(危険性とも言う)を考えた時にCAN専用ボードにするのは抵抗があったので、保険をかける意味でEthernetをつけました。その方が「汎用ボード」にしやすいだろうという考えもあります。Ethernetの使い方としては、TCP/IPを載せてModbus動かすのが妥当なところじゃないかと思ってます。

100/10Mbpsの普通のRJ-45のコネクタです。

デバッグポート

デバッグ用の10ピンのコネクタが用意してあります。内訳はJTAGとUARTです。UARTはデバッグコンソールにもISPにもなります。残りのピンは、電源、GND、リセット、ブートセレクトです。

その他

状態表示のためのLEDが1つ、アラート等を目的として圧電スピーカがついています。単なるアラート目的であれば圧電スピーカじゃなくて圧電ブザーでも良かったと思うのですが、多少色気wもあった方が良いのではないかと思って、圧電スピーカにしてみました。

CPUのクロック用に水晶が載っています。普通はRC発信を使うと思うのですが、水晶が載っていても良いかなと思って。今のところ、水晶に依存するようなことはないと思います。

ファームウェア

鋭意開発中ですw

関連エントリー

CAN/Ethernet対応周辺機器用マザー(0) 予告
CAN/Ethernet対応周辺機器用マザー(1) 基板
CAN/Ethernet対応周辺機器用マザー(2) 実装
CAN/Ethernet対応周辺機器用マザー(3) 仕様とか
CAN/Ethernet対応周辺機器用マザー(4) その後

最近のエントリー

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル

LED行燈の試作(1)