View
1.419
Download
4
Category
Preview:
DESCRIPTION
Eject-io 2013/12/26にささみ勉強会にて紹介
Citation preview
次世代 I/Oインターフェイスの提案
2013/12/26 ささみの会 Takeshi HASEGAWA (Twitter: @hasegaw) v 本資料中の解説内容は、所属組織における 統一的な見解を示すものではありません。
プロフィール 長谷川 猛 (HASEGAWA Takeshi) twitter: @hasegaw 主にLinuxや仮想化技術を得意とする雑食系SE Xen/KVMを調査、FreeBSD virtioを実装等 興味範囲:仮想化、ストレージ もんはんしようず ゚+.(・ω・)゚+.゚
2
おもな著書・寄稿
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
6 http://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ドライブをヘルメットの上に載せるには重すぎる o 傍目からみておかしい
8
本来の部分に立ち戻る • CD-ROMをIOインターフェイスとして使うなんて!
• まるでHDDのディスク部分をそのままフラッシュに置き換えた
「SSD」的な発想じゃないか!
• これでLEDつけたりリモコンのボタン押すならそもそも
ON/OFFできるI/Oインターフェイスがあればいいよね
9
時は満ちた • 「誰かが Eject を再定義する必要があったーー」
• よし作ろう
10
11
Eject-io
なぜEject-ioなのか • PICで実装されたシンプルなEjectデバイス
• USBマスストレージクラス準拠 o 特殊なドライバなく制御可能
• ON/OFFの出力が可能 o Ejectコマンドで出力
• エンドユーザの手にわたってもフィールドリプログラム可能なファームウエア o 後からの機能拡張やハックが可能、子供のマイコントレーニングにも
• 世界で最も低消費電力な eject 対応デバイス
12
Eject-io
13
Eject-ioにより軽量化された変態ヘルメット
14
15
Eject-io の作り方
買い物 • 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
18
19
組み立てた
20
USBサンプルをロードする
21 http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784
サンプルをビルド • USB\Device – Mass Storage – Internal Flash\ サンプルを
MPLAB Xでビルドする
• ビルドする時に最低限やらないといけないこと o ターゲットになるデバイスの設定
22
ファームウェアのカスタマイズ
23
24
USBの仕様が知りたい
25 http://usb.org/
USBの仕様が知りたい
26
プロトコルの解析 • USBPCap + Wireshark
o Windows 上でUSBパケットキャプチャできる
• VMware o デバッグオプションを .vmx に直書きすると USB のログがとれる
o VMware ログの仕様上1KB/s以上出力されると出力が止まるので注意
27
USBPcap
28
USBPcapでキャプチャしたログをWiresharkで見る
29 http://desowin.org/usbpcap/tour.html より引用
VmwareのUSB Log
30
まとめ • 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
Thank you
゚+.(・ω・)゚+.゚
32
Recommended