EPICS 内 蔵 小 型 デバイスサーバの 開 発 帯 名 崇 / KEK 路 川 徹 也 / ( 株 ) 東 日 本 技 術 研 究 所 2014/08/11 加 速 器 学 会 年 会 ( 青 森 )
本 日 の 内 容 1. 開 発 の 動 機 2. ハードウェア 候 補 と 選 定 3. ハードウェア 設 計 製 作 4. ソフトウェア 5. デバイスサーバとしての 利 用 実 績 6. その 他 7. まとめと 情 報 公 開 について
加 速 器 制 御 の 一 般 論 として 1. 動 機 遠 隔 地 から 多 数 の 機 器 を 制 御 することが 必 要 :ネットワーク 経 由
制 御 プログラム 開 発 者 が 少 ない or 対 象 機 器 が 少 ないならば 単 純 な 通 信 と 制 御 のプログラムで 十 分 しかし 加 速 器 では 事 実 上 不 可 能
制 御 フレームワーク 複 数 の 開 発 者 プログラム 装 置 が 有 機 的 に 連 携 するには 制 御 フレームワーク が 必 須 : EPICS, MADOCA, TANGO 等
EPICSの 場 合 対 象 となるデバイスを 入 出 力 コントローラ(IOC, Input-Output Controller)が 制 御 IOCはPCだったり VMEだったり PLCだったり 色 々なパターンがある 制 御 対 象 デバイス 依 存 部 分 IOC フィールドバス 制 御 対 象 PC Device RS232C GPIB 等 Device CPU ADC DAC DIO DIO Device VME, cpci CAMAC 等 PLC Device Device Device
EPICS : 通 信 プロトコル チャンネルアクセス(CA)プロトコルを 通 して 状 態 変 数 (PV, Process Variable)のやりとりをする Ethernet 上 位 層 との 通 信 IOC 間 の 通 信 ともにCAを 使 用 デバイス 非 依 存 ネットワーク 透 過 分 散 型 Presentation IOC フィールドバス 制 御 対 象 PC Device Server RS232C GPIB 等 Device Archive CPU ADC DAC DIO DIO Device CA VME, cpci CAMAC 等 Operator Operator Console Operator Console Console CA PLC Device Device Device
新 しい 装 置 ( 市 販 品 )を 買 ってきたとき 既 存 の 制 御 フレームワークに 合 わせる 必 要 あり CA CA CA
しかし 現 実 には 最 初 から 加 速 器 制 御 フレームワークに 準 拠 している 製 品 など 市 販 品 にはほとんど 存 在 しない: 何 らかの 形 で 対 処 が 必 要 CA CA CA CA CA
EPICSの 場 合 :1つの 理 想 形 デバイスにEPICS IOC を 内 蔵 している CA Ethernet EPICS IOC 内 蔵 Device 買 ってきたものにEthernet 付 き EPICS IOC が 動 き CAで 通 信 できる 電 源 いれてEthernetつないだらおしまい! しかしそんな 製 品 は(ほぼ) 市 販 していない
現 状 :RS232C 機 器 を 例 にして Ethernet 変 換 器 (メディアコンバータ)を 使 用 IOCと 対 象 デバイスとの 距 離 が 長 くても 良 い 1つのIOCで 複 数 デバイス 制 御 も 楽 CA IOC Socket Media Converter Device Ethernet Ethernet USB RS232, RS422, RS485, etc PCにポートを 増 設 して とか RS485の 専 用 線 を 引 っ 張 って とか 苦 労 していた 時 代 にくらべるとかなり 楽 になった
製 品 例 RS232C をイーサネット 変 換 する Socket M.C. PC/IOC M.C. RS232 Device RS485 Device Device Device Ethernet M.C. Device Device Device Serial-Ether メディアコンバータ 各 社 から 出 ている: 値 段 も 機 能 も 多 種 多 様 1ポートのほか 多 ポート(4, 8, 16 port)の 製 品 もある http://www.lantronix.jp/products/xport.shtml http://japan.moxa.com/
EPICS + メディアコンバータで 制 御 する 例 サーバ 計 算 機 で Soft IOC を 動 かして 制 御 する 論 理 構 成 物 理 構 成 Linux Server CA Client Software IOC CA Socket Ethernet Channel Access DB Access IOC Database Stream Device Socket I/O Ethernet Soft IOC Channel Access DB Access IOC Database Stream Device Socket I/O Socket Ethernet CA CA Client Serial-Ether 変 換 Serial-Ether 変 換 RS232C Device RS232C Device
Soft IOC + メディアコンバータ 構 成 の 欠 点 トラフィック 増 加 につながる Socket 通 信 の 初 期 化 や 障 害 後 の 再 接 続 など セッション 管 理 を 自 分 でおこなう 必 要 がある(CAでは 規 定 済 み) Linux Server Software IOC セッション 管 理 MC 製 品 に 依 存 する 場 合 があり 多 種 多 数 の 変 換 器 を 使 うと 管 理 がたいへん ( 対 象 デバイス 数 が 少 なければ 大 した 負 荷 ではない) Socket Channel Access DB Access IOC Database Stream Device Socket I/O Serial-Ether 変 換 RS232C Device CA CA Client Ethernet ネットワーク トラフィックのムダ 低 速 シリアル 通 信 では 問 題 になることは 無 い
すこしでも 理 想 に 近 づきたい 外 付 けの 小 型 デバイスサーバがあれば 良 い CA Ethernet IOC Socket Ethernet Media Converter Device USB RS232, RS422, RS485, etc CA Ethernet Device Server Device USB RS232, RS422, RS485, etc EPICS IOC 内 蔵 の 小 型 デバイスサーバを 用 意 する (PoEかUSB 給 電 の 方 が 理 想 ) 対 象 機 器 の 近 くに 設 置 そこから 先 はCAによって 通 信
EPICS 内 蔵 デバイスサーバの 場 合 理 想 的 な 構 成 に 少 し 近 づく 論 理 構 成 CA CA Client Ethernet Channel Access DB Access IOC Database Stream Device /dev/ttys0 Serial RS232C Device Device Server IOC 物 理 構 成 Ethernet IOC CA Client CA Channel Access DB Access IOC Database Stream Device /dev/ttys0 Serial RS232C Device Device Server
デバイスサーバの 利 点 デバイス 制 御 用 の 通 信 と CAネットワークの 分 離 トラフィック 軽 減 : 必 要 なデータのみCAで 通 信 Socket 通 信 部 分 のセッション 管 理 不 要 : 安 定 した 制 御 実 現 管 理 が 容 易 安 価 に 製 作 可 能 小 型 低 消 費 電 力 EPICS 内 蔵 小 型 デバイスサーバを 製 作 する
本 日 の 内 容 1. 開 発 の 動 機 2. ハードウェア 候 補 と 選 定 3. ハードウェア 設 計 製 作 4. ソフトウェア 5. デバイスサーバとしての 利 用 実 績 6. その 他 7. まとめと 情 報 公 開 について
イメージ 概 略 小 型 デバイスサーバの 設 計 方 針 拡 張 ボード I/O Ethernet Linux OS ベースボード OS(EPICS IOC)はベースボード 側 にもたせる 拡 張 ボードを 交 換 することで 目 的 に 応 じた I/Oに 交 換 できるように (RS232C, USB, A/D, D/A, DIO など)
自 作 or 市 販 品? 開 発 にかかるコスト(お 金 と 時 間 の 両 方 )を 節 約 ベース 部 分 は 市 販 品 を 利 用 必 要 に 応 じて 拡 張 部 分 のみ 自 作 する ハード ソフトともに 多 くの 情 報 が 得 られる ベース 製 品 を 選 定 する という 方 針 を 決 定 した
名 刺 サイズ 小 型 ボード ベースとなるハードウェア 候 補 Arduino BeagleBone Black Raspberry Pi (model B) Raspberry Pi (model B+)
候 補 比 較 1 BeagleBone Black(Rev.C) Raspberry Pi (ModelB) Arduino Uno CPU TI AM3359 (ARM Cortex-A8) Broadcom BCM2835 (ARM11) Atmel ATMega 328 Speed 1 GHz 700 MHz 16 MHz RAM 512MB DDR3L@400MHz 512MB SDRAM@400MHz 2 KB Storage Onboard emmc 4GB microsd slot SD slot 32 KB Flash I/O(GPIO) 65 8 20 ADC 7 n/a 8 Ethernet 10/100 x1 10/100 x1 n/a OS Debian(default) Angstrom Linux Fedora etc Raspbian(Debian) Pidora(Fedora) ARCH linux etc Size [mm] 86.4 x 53.3 85.6 x 54 75 x 53.3 Price 6,500 3,940 3,024 n/a
候 補 比 較 2 Armadillo 840 Suzaku Galileo CPU Renesas R-Mobile A1 (ARM Cortex-A9) Xilinx Vertex-4 (PowerPC405) Intel Quark Soc X1000 Speed 792 MHz 350 MHz 400 MHz RAM 512MB DDR3@800MHz 64MB DDR2 256MB DDR3@800MHz Storage Onboard 128MB Onboard 8MB Onboard 8MB microsd Slot I/O(GPIO) 112 86 20 ADC n/a n/a 8 Ethernet 10/100 x1 10/100 x1 10/100 x 1 OS Debian(ATDE5) Linux(ATDE5) Linux Size[mm] 98 x 60 72 x 47 106.8 x 72 Price 32,400 42,000 7,693
( 参 考 資 料 )CPU 速 度 比 較 CPU Dhrystone MIPS 値 DMIPS/MHz VAX-11/780 1MIPS @ 5MHz 0.2 ARM2 4 MIPS @ 8 MHz 0.5 Motorola 68030 11 MIPS @ 33 MHz 0.3 Intel 386DX 11.4 MIPS @ 33 MHz 0.3 Motorola 68060 88 MIPS @ 66 MHz 1.33 ARM Cortex M3 125 MIPS @ 100MHz 1.25 Intel Pentium 188 MIPS @ 100 MHz 1.88 PowerPC 750 525 MIPS @ 233 MHz 2.3 PowerPC 405 608 MIPS @ 400 MHz 1.52 ARM11 v6kz 875MIPS @ 700MHz 1.25 ARM Cortex A8 2,000 MIPS @ 1.0 GHz 2.0 Intel Atom N270 (Single core) 3,846 MIPS @ 1.6 GHz 2.4 ARM Cortex A15 (Quad core) 35,000 MIPS @ 2.5 GHz 14.0 Intel Core i7 Extreme Edition 990x 159,000 MIPS @ 3.46 GHz 46.0 Virtex4 RasPi BBB
ベースとなるモジュール 候 補 比 較 用 途 と 傾 向 ( 主 観 含 む) デスクトップ 系 ( 高 スペックCPU) デスクトップPC + PCI 工 業 用 PC + PCI μtca ATCA cpci VME ホビー 用 途 Galileo BeagleBone Black 業 務 用 途 (I/O 数 価 格 ) Raspberry Pi Armadillo Arduino ZynQ 組 み 込 み 系 XPort 組 み 込 み 系 ( 低 消 費 電 力 小 型 ) Suzaku 注 : 厳 密 な 性 能 比 較 図 ではありません 大 凡 の 傾 向 として 見 てください
最 初 のApplication:RS232C 機 器 のデータ 取 得 cerlシールド 壁 4か 所 に 設 置 したエリアモニタ12 台 の 監 視 4-Port RS232C 用 Device Server を4 台 製 作 する 詳 細 後 述 これに 適 したボードは 何 か? RS232C 4port 以 上 BeagleBone Black HWで 最 大 5.5 Raspberry Pi HWで 最 大 2 Arduino HWで1 SWで4 Ethernet Shieldあり OS & Epics Linux Linux n/a 今 後 の 拡 張 性 も 考 慮
CPUパワー I/Oの 数 ハードウェア 選 定 基 準 OS EPICS 環 境 構 築 が 容 易 (Linux) 価 格 入 手 が 容 易 RS232C ホスト 機 能 必 須 USB ホスト 機 能 があればより 良 い ベースとなる 製 品 として BeagleBone Black (BBB) を 選 定 した
疑 問 これ 大 丈 夫 なの? 信 頼 性 とか サポートとか 色 々と
( 当 面 の) 結 論 まず やってみよう 安 い: 市 販 品 の 威 力 絶 大 壊 れたら 交 換 する 方 針 で Criticalな 所 に 使 わなければ 良 い 自 分 で 一 から 製 作 したからといって 信 頼 性 があるとは 言 えない
本 日 の 内 容 1. 開 発 の 動 機 2. ハードウェア 候 補 と 選 定 3. ハードウェア 設 計 製 作 4. ソフトウェア 5. デバイスサーバとしての 利 用 実 績 6. その 他 7. まとめと 情 報 公 開 について
BeagleBone Black を 選 定 したその 他 の 理 由 開 発 者 コミュニティがある オープンソースハードウェア: 情 報 が 全 て 公 開 されている Cape という 拡 張 ボードの 規 格 が 整 備 されている Cape 開 発 者 が 多 数 存 在 し 情 報 も 公 開 されている OSは Linux Angstrom Debian 各 種 I/Oコネクタ 配 置 が 組 み 込 みに 適 している
Capeとは? BBB 拡 張 ボードの 規 格 で ボード 上 の EEPROMに 対 応 するdriverが 自 動 的 に 読 み 込 まれる 仕 組 み EEPROMをI2Cの 特 定 アドレスに 接 続 Cape を 変 えることで 簡 単 に 機 能 を 追 加 変 更 できる 起 動 EEPROM あり なし driver 名 取 得 driver あり なし PIN 設 定 変 更 Cape 用 BBB 通 常 BBB BeagleBone Black System Reference Manual http://elinux.org/beagleboard:beagleboneblack
BBB拡張ボード Header Mode Cape でHeaderのモードを設定 拡張Header Modeは0 7まで モードの変更はEEPROMかdriverで行う 各PIN毎に別のモードを設定可能 Mode 0 Mode 6 引用元: http://elinux.org/beagleboard:cape_expansion_headers
市販品Cape 国内外で色々なCapeが市販されている 今回は必要な機能をもったCapeがなかったので 新規に 設計 作成することにした 単純な回路のみ 引用元: http://elinux.org/beagleboard:beaglebone_capes
Serial x4 Cape 製 作 Eagle CAD Free 版 で 基 板 を 設 計 2 層 基 板 で 実 装 部 品 はDIPで 設 計 基 板 はプリント 基 板 メーカーに 外 注 ( 約 6,000 円 / 枚 ) 部 品 実 装 は 自 前 ( 実 装 部 品 代 は 約 1,500 円 / 枚 ) 次 回 作 成 時 はSMT( 表 面 実 装 ) 化 予 定
ケース 製 作 タカチ kc5-13-10をベースにして 作 成 穴 位 置 スペーサ 等 のデータを 作 成 して 追 加 工 CADソフトはAR-CAD 一 般 版 を 使 用
ハードウェア 完 成 写 真 BBB Cape コネクタ(Dsub-9pin) 4 個 のサイズが 大 きい
本 日 の 内 容 1. 開 発 の 動 機 2. ハードウェア 候 補 と 選 定 3. ハードウェア 設 計 製 作 4. ソフトウェア 5. デバイスサーバとしての 利 用 実 績 6. その 他 7. まとめと 情 報 公 開 について
OSについて 手 軽 に 使 える 選 択 肢 として AngstromLinux (Rev A,B でのデフォルト) Debian (Rev C でのデフォルト) その 他 には 通 常 OS Fedora Android VxWorks OpenRTM-aist RT-PREEMPT Xenomai RTOS 通 常 Linux RTパッチ
ソフトウェア 開 発 RTOSが 必 要? 今 回 は 不 要 デフォルトのAngstrom Linuxで 作 成 した 情 報 は 多 い よく 使 われるLinux(RedHat, Debian 等 )と 設 定 方 法 が 少 し 違 うので 最 初 は 手 間 取 った 開 発 環 境 セルフコンパイル 環 境 BBBにログインして 開 発 ApplicationはNFSマウントしたディスクに 配 置 X 環 境 は 使 わない( 遅 いし メモリの 無 駄 )
EPICS 関 連 EPICS Base EPICS base 3.14.12.4 以 降 ではターゲット 環 境 として Linux-ARMが 最 初 から 用 意 されており 初 期 設 定 は 楽 インストール 方 法 の 詳 細 はwiki を 参 照 http://cerldev.kek.jp/trac/epicsusersjp/wiki/epics/bbb/epics コンパイル 時 に 追 加 Perlモジュールが 必 要 なので 個 別 にインストールしていく EPICS Extensions よく 使 う Asyn, StreamDevice, Sequencer 等 は 全 て 問 題 なくコンパイル 実 行 可 能 Rev. C デフォルトOSのDebianではもっと 楽 開 発 環 境 を 入 れて CONFIG_SITE 編 集 make 一 発
本 日 の 内 容 1. 開 発 の 動 機 2. ハードウェア 候 補 と 選 定 3. ハードウェア 設 計 製 作 4. ソフトウェア 5. デバイスサーバとしての 利 用 実 績 6. その 他 7. まとめと 情 報 公 開 について
ALOKA社製エリアモニタ cerl 配置図 センサーは加速器室内に設置し 壁外に計測 表示器を取り付け インターロックは別系統でリレー接続 RS232Cは数値取得のみ 合計12台 橙色表示 Box Box Box Box
設 置 写 真 製 作 したボックスを 固 定 (すこし 強 引 に 仮 設 置 のはずがそのまま)
ソフトウェア:EPICS IOC Asyn+StreamDeviceで 作 成 放 射 線 測 定 値 を1 秒 毎 に 読 み 出 す SerialPort 毎 に Soft IOC を 作 成 IOCプログラム 本 体 はNFSサーバに 置 いた 電 源 ONで 自 動 的 にEPICSが 動 作 するように 設 定
結 果 :データ 取 得 例 リアルタイム 数 値 表 示 と 時 系 列 プロット(CSSで 作 成 ) 半 年 以 上 再 起 動 なしで 連 続 稼 働 特 に 問 題 なし
本 日 の 内 容 1. 開 発 の 動 機 2. ハードウェア 候 補 と 選 定 3. ハードウェア 設 計 製 作 4. ソフトウェア 5. デバイスサーバとしての 利 用 実 績 6. その 他 7. まとめと 情 報 公 開 について
6.その 他 : 問 題 点 雑 感 など Onboard emmc (Flash) からOSが 立 ち 上 がらない 今 回 作 成 したCapeを 使 用 したときの 話 UARTで 使 用 するGPIOのpinがeMMCと 被 っていた microsdカードからは 立 ち 上 がるのでとりあえずOK 回 避 策 はあるが 次 回 製 作 時 に 検 討 する 予 定 ケース 加 工 が 基 板 に 比 べて 高 い ケース 自 体 は1,000 円 加 工 費 が10,000 円 CNCや3Dプリンタ 等 で 安 く 作 れないか 要 検 討 ケース 無 しでよければ 安 価 入 手 性 が 良 いこと を 条 件 にスタートしたのに 人 気 のため(!?) 入 手 困 難 に 今 は 多 少 改 善 された
応 用 : 多 機 能 バージョンの 製 作 NIMケース 版 を 製 作 した 60 bit 3.3 V TTL Digital I/O 6 Channel Analog IN (±10V) 1 port RS232C (D-Sub 9pin) 基 本 動 作 は 問 題 無 し あとは 実 運 用 背 面 BBB 単 体 でも 動 かせるように DC5V 入 力 と 切 り 替 えSW LANコネクタも 背 面
7.まとめ 市 販 の 名 刺 サイズ 小 型 ボード BeagleBone Black を 使 用 した 小 型 デバイスサーバを 製 作 した 思 い 立 ってから 設 計 製 作 運 用 まで 短 期 間 に 実 現 できた 4ポートのシリアルデバイスサーバとしてcERLの 運 転 で 使 用 し 半 年 以 上 問 題 なく 連 続 稼 働 中 NIM 版 なども 製 作 BBBは Quick Prototype ベースとして 非 常 に 良 い
製 作 費 用 今 回 ( 試 作 ) 量 産 BeagleBone Black 本 体 4,500 6,500 microsd(4gb) 500 500 Cape 基 板 製 造 6,000 200 部 品 1,500 2,000 実 装 - 1,000 ケース 11,000 3,000 合 計 23,500 13,200 今 回 は4 台 製 作 した 表 は1 台 あたりの 値 段 試 作 時 のBBB 本 体 価 格 は 4,500 であったが 現 在 のRevisionで 価 格 UPした フラッシュメモリ 容 量 増 加 2 GB 4 GB
参 考 :BeagleBone Black 購 入 先 国 内 秋 月 電 子 通 商 http://akizukidenshi.com/catalog/g/gm-06867/ RS http://jp.rs-online.com/web/p/processor-microcontroller-development-kits/7753805/ マルツ http://www.marutsu.co.jp/shohin_238963/ 若 松 電 商 http://www.wakamatsu-net.com/cgibin/biz/pageshousai.cgi?code=38330030&cate=3833 共 立 エレショップ http://eleshop.jp/shop/g/ge2p361/ 海 外 Adafruit https://www.adafruit.com/products/1876 Digi-key http://www.digikey.jp/product-detail/ja/bb-bblk-000/bb-bblk-000-revc-nd/4842211 Special Computing http://specialcomp.com/beaglebone/ Spark fun https://www.sparkfun.com/products/12857
情 報 共 有 今 後 の 予 定 製 作 した 基 板 (Cape)の 情 報 やケース 図 面 など 全 て 公 開 している EPICS Users JP wiki を 参 照 誰 かすでに 作 っている 例 があれば 情 報 を 共 有 し 活 発 な 開 発 につなげたい 興 味 がある 方 は 連 絡 をお 願 いします 今 後 の 予 定 シリアル 1 portモデル 製 作 4 port タイプ 量 産 USBホスト( 既 に 実 績 あり) PoE 対 応 様 々な I/O に 使 用 (Digital/Analog) 単 純 な 表 示 端 末 や 入 退 室 の 表 示 用 PCの 置 き 換 え その 他 色 々とアイディアあり
Thank you!