次世代
I/Oインターフェイスの提案
2013/12/26 ささみの会
Takeshi HASEGAWA
(Twitter: @hasegaw)
v  本資料中の解説内容は、所属組織における
統一的な見解を示すものではありません。
プロフィール
長谷川 猛 (HASEGAWA Takeshi)
twitter: @hasegaw
主にLinuxや仮想化技術を得意とする雑食系SE
Xen/KVMを調査、FreeBSD virtioを実装等 
興味範囲:仮想化、ストレージ
も...
おもな著書・寄稿
3
Webサイトの記事など
エンジニアなら知っておきたい仮想マシンのしくみ
http://gihyo.jp/dev/serial/01/vm_work/
4
これまでのI/O
•  I/Oポート (8ビット)、割り込み、MMIO
o  コンピュータの複雑化にともない簡単なポートI/Oがしづらくなった
•  Serial, GPIO
•  Eject
o  簡単
5
6http://www.raspberrypi.org/archives/4824	
Ejectコマンドはいまや
非常に有名なIO手段となった
どうしてEjectなのか
•  電子機器部品の知識なくモノを動かせる
•  ハンダ付け不要
•  お子様ですら “DIY” 可能
•  いまどき CD-ROM ドライブのドライバがないOSなんてない
o  Eject 最強ってことですね
7
Ejectの課題
•  ジャンクCD-ROMは安く手に入る(100円∼)が、
しかしシステムへの接続にはインターフェイスが必要
E.g.) USB-ATA アダプタ
•  電力供給。5インチのCD-ROMドライブは12V必要
•  CD-ROM...
本来の部分に立ち戻る
•  CD-ROMをIOインターフェイスとして使うなんて!
•  まるでHDDのディスク部分をそのままフラッシュに置き換えた
「SSD」的な発想じゃないか!
•  これでLEDつけたりリモコンのボタン押すならそもそも
ON...
時は満ちた
•  「誰かが Eject を再定義する必要があったーー」
•  よし作ろう
10
11
Eject-io
なぜEject-ioなのか
•  PICで実装されたシンプルなEjectデバイス
•  USBマスストレージクラス準拠
o  特殊なドライバなく制御可能
•  ON/OFFの出力が可能
o  Ejectコマンドで出力
•  エンドユーザの手にわ...
Eject-io
13
Eject-ioにより軽量化された変態ヘルメット
14
15
Eject-io
の作り方
買い物
•  PIC18F25J50
o  選定理由
o  USB対応、メインメモリ3KB以上 (マスストレージのサンプルが約2KB)
o  ブレットボードで使えるICタイプ
o  5.0Vだとよかったけど3.3Vタイプで妥協
•  東芝製三端...
17
18
19
組み立てた
20
USBサンプルをロードする
21http://www.microchip.com/stellent/idcplg?
IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784
サンプルをビルド
•  USBDevice – Mass Storage – Internal Flash サンプルを
MPLAB Xでビルドする
•  ビルドする時に最低限やらないといけないこと
o  ターゲットになるデバイスの設定
22
ファームウェアのカスタマイズ
23
24
USBの仕様が知りたい
25http://usb.org/
USBの仕様が知りたい
26
プロトコルの解析
•  USBPCap + Wireshark
o  Windows 上でUSBパケットキャプチャできる
•  VMware
o  デバッグオプションを .vmx に直書きすると USB のログがとれる
o  VMware ログ...
USBPcap
28
USBPcapでキャプチャしたログをWiresharkで見る
29http://desowin.org/usbpcap/tour.html より引用
VmwareのUSB Log
30
まとめ
•  Eject はすでに広く認知されたI/O手段である
o  でも5インチCD-ROMはヘルメット重くなる
o  アクチュエータが不要であればCD-ROMドライブである必要はない
•  Eject-io
o  アクチュエータを使う理由...
Thank you
゚+.(・ω・)゚+.゚
32
Upcoming SlideShare
Loading in...5
×

次世代I/Oインターフェイス「Eject-io」

1,531

Published on

Eject-io
2013/12/26にささみ勉強会にて紹介

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,531
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

次世代I/Oインターフェイス「Eject-io」

  1. 1. 次世代 I/Oインターフェイスの提案 2013/12/26 ささみの会 Takeshi HASEGAWA (Twitter: @hasegaw) v  本資料中の解説内容は、所属組織における 統一的な見解を示すものではありません。
  2. 2. プロフィール 長谷川 猛 (HASEGAWA Takeshi) twitter: @hasegaw 主にLinuxや仮想化技術を得意とする雑食系SE Xen/KVMを調査、FreeBSD virtioを実装等  興味範囲:仮想化、ストレージ もんはんしようず ゚+.(・ω・)゚+.゚ 2
  3. 3. おもな著書・寄稿 3
  4. 4. Webサイトの記事など エンジニアなら知っておきたい仮想マシンのしくみ http://gihyo.jp/dev/serial/01/vm_work/ 4
  5. 5. これまでのI/O •  I/Oポート (8ビット)、割り込み、MMIO o  コンピュータの複雑化にともない簡単なポートI/Oがしづらくなった •  Serial, GPIO •  Eject o  簡単 5
  6. 6. 6http://www.raspberrypi.org/archives/4824 Ejectコマンドはいまや 非常に有名なIO手段となった
  7. 7. どうしてEjectなのか •  電子機器部品の知識なくモノを動かせる •  ハンダ付け不要 •  お子様ですら “DIY” 可能 •  いまどき CD-ROM ドライブのドライバがないOSなんてない o  Eject 最強ってことですね 7
  8. 8. Ejectの課題 •  ジャンクCD-ROMは安く手に入る(100円∼)が、 しかしシステムへの接続にはインターフェイスが必要 E.g.) USB-ATA アダプタ •  電力供給。5インチのCD-ROMドライブは12V必要 •  CD-ROMドライブをヘルメットの上に載せるには重すぎる o  傍目からみておかしい 8
  9. 9. 本来の部分に立ち戻る •  CD-ROMをIOインターフェイスとして使うなんて! •  まるでHDDのディスク部分をそのままフラッシュに置き換えた 「SSD」的な発想じゃないか! •  これでLEDつけたりリモコンのボタン押すならそもそも ON/OFFできるI/Oインターフェイスがあればいいよね 9
  10. 10. 時は満ちた •  「誰かが Eject を再定義する必要があったーー」 •  よし作ろう 10
  11. 11. 11 Eject-io
  12. 12. なぜEject-ioなのか •  PICで実装されたシンプルなEjectデバイス •  USBマスストレージクラス準拠 o  特殊なドライバなく制御可能 •  ON/OFFの出力が可能 o  Ejectコマンドで出力 •  エンドユーザの手にわたってもフィールドリプログラム可能な ファームウエア o  後からの機能拡張やハックが可能、子供のマイコントレーニングにも •  世界で最も低消費電力な eject 対応デバイス 12
  13. 13. Eject-io 13
  14. 14. Eject-ioにより軽量化された変態ヘルメット 14
  15. 15. 15 Eject-io の作り方
  16. 16. 買い物 •  PIC18F25J50 o  選定理由 o  USB対応、メインメモリ3KB以上 (マスストレージのサンプルが約2KB) o  ブレットボードで使えるICタイプ o  5.0Vだとよかったけど3.3Vタイプで妥協 •  東芝製三端子レギュレータ o  USBバスパワー 5.0V を 3.3V にできればなんでもない •  USB端子、コンデンサ、LED、抵抗などは手持ちのもので適当に •  ROMライター(PICKit2 とか PICKit3 とか色々ある) •  ブレットボードなど o  ブレットボード、ジャンパなど 16
  17. 17. 17
  18. 18. 18
  19. 19. 19
  20. 20. 組み立てた 20
  21. 21. USBサンプルをロードする 21http://www.microchip.com/stellent/idcplg? IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784
  22. 22. サンプルをビルド •  USBDevice – Mass Storage – Internal Flash サンプルを MPLAB Xでビルドする •  ビルドする時に最低限やらないといけないこと o  ターゲットになるデバイスの設定 22
  23. 23. ファームウェアのカスタマイズ 23
  24. 24. 24
  25. 25. USBの仕様が知りたい 25http://usb.org/
  26. 26. USBの仕様が知りたい 26
  27. 27. プロトコルの解析 •  USBPCap + Wireshark o  Windows 上でUSBパケットキャプチャできる •  VMware o  デバッグオプションを .vmx に直書きすると USB のログがとれる o  VMware ログの仕様上1KB/s以上出力されると出力が止まるので注意 27
  28. 28. USBPcap 28
  29. 29. USBPcapでキャプチャしたログをWiresharkで見る 29http://desowin.org/usbpcap/tour.html より引用
  30. 30. VmwareのUSB Log 30
  31. 31. まとめ •  Eject はすでに広く認知されたI/O手段である o  でも5インチCD-ROMはヘルメット重くなる o  アクチュエータが不要であればCD-ROMドライブである必要はない •  Eject-io o  アクチュエータを使う理由がなければPICで置き換え可能 o  PICならUSBマスストレージも簡単に実装可能 o  最も消費電力が低いEject可能デバイスを実現 o  Raspberry Piと組み合わせての5Vバッテリ動作が可能 •  PIC USBプログラミング o  意外と手軽に始められる o  USBスニファの手段 … VMware ログ、USBPcap + Wireshark 31
  32. 32. Thank you ゚+.(・ω・)゚+.゚ 32
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×