MIPI CSI-2の規格書は企業向けの有料で個人ではダウンロードが難しいです。
但し、ドラフト版やメーカのデータシートから規格をある程度は把握できます。
役に立った情報元、実際に測定した波形含めて紹介していきます。
MIPI CSI-2の規格を調べて波形を確認してみた
MIPI CSI-2の規格を個人のレベルで調べてみました。
そして実際にMIPI CSI-2のカメラの波形を測定して確認しています。
MIPI CSI-2の正式な規格書は有料かつ企業の登録が必要で、個人での入手が難しいです。
しかし、ドラフト版やメーカのデータシートからある程度は規格を把握できます。
把握できた情報を基にオシロスコープで波形測定してみました。
役に立った情報元、実際に測定した波形含めて紹介していきます。
MIPI CSI-2の規格書のダウンロードはドラフト版が可能
MIPI規格団体(MIPI.org)からのMIPI CSI-2の規格書HPは下記にあります。
但し、正規の規格書のダウンロードは登録された企業の方からしか出来ません。
残念ながら個人では最新の規格書の入手は難しいです。
MIPI Camera Serial Interface 2 (MIPI CSI-2)
規格書に関して2009年とかなり古いですが、初期のドラフト版はネットにありました。
2020年11月現在では無料でダウンロード可能です。
http://caxapa.ru/thumbs/799244/MIPI_Alliance_Specification_for_Camera_S.pdf
MIPI CSI-2とはカメラ向けのIF
MIPI CSI-2は名前の通りカメラ向けのIFです。
- MIPI…Mobile Industry Processor Interface
- CSI-2…Camera Serial Interface
ラズベリーパイのカメラIFに使われている
身近な所でMIPI CSI-2はラズベリーパイのカメラに使われています。
汎用的なラズパイのカメラだと約500万画素(5M pixels)、1080p30fpsのスペックがあります。
カメラの種類によっては更に高解像度のもあります。
ラズパイのカメラはコネクタに挿すだけで簡単に使えます。非常に便利です。
下記記事で使い方をまとめています。(リンク先はこちら)
FPGAのカメラIFとしても増えている
また最近筆者が購入したFPGAの評価ボードでもMIPI CSI-2が搭載されていました。
XilinxのFPGAでSpartan7の評価ボードとなります。
ラズパイのカメラがそのまま使えて、非常に面白いFPGA評価ボードでした。
下記記事で紹介しています。(リンク先はこちら)
また実際にFPGAからカメラ設定を行い、MIPI CSI-2の出力も確認しています。
下記記事で紹介しています。(リンクはこちら)
MIPI CSI-2のコネクタの例
MIPI CSI-2を搭載している評価ボードを確認すると、様々なコネクタが使われていました。
ただ汎用性・ケーブル取り回しを考慮してか、FFCケーブル接続のコネクタが多かった印象です。
(FFC(フレキシブルフラットケーブル)…薄く、狭い箇所を通せるケーブル)
あくまで確認したのはWebに情報が落ちていたFPGAの評価ボードがメインです。
15ピンや30ピン、60ピンのコネクタなどもありました。
実際のスマートフォンや車載のカメラではもっと小さいコネクタだと思われます。
MIPI CSI-2のケーブルの例
FFCのような平らなケーブルでMIPI CSI-2の差動信号を送っているケースが多いと思われます。
狭いモバイル・車載向けの狭いスペースで差動信号を送るにも便利です。
MIPI CSI-2のデータ・クロックのインピーダンスは差動100Ωということです。
ただMIPI CSI-2はデータの各レーンで最大1.5Gbps(750MHz)の高速通信を行います。
これだけ通信速度が速いとFFCケーブルが長くならないように注意が必要そうです。
(高速の信号ほど減衰しやすいため)
下記記事でMIPI CSI-2のケーブル長さを延長した場合のカメラ動作の確認をしています。
最高解像度の静止画と動画でテストしています。(リンク先はこちら)
MIPI CSI-2のレーンの例
MIPI CSI-2のレーンは各ボード・基板で異なります。
規格としては最大データ_4レーン + クロック_1レーンということです。
データのレーンが多ければ多いほど大量のデータが送ることができます。
ラズベリーパイの例
例えばラズパイのMIPI CSI-2としてはデータ_2レーン、クロック_1レーンとなっています。
ラズベリーパイのカメラIFとしてのコネクタピン配置は下記です。
MIPI CSI-2の差動ペアとペアの間にGNDを挟む形でガードしています。
MIPI CSI-2以外にも電源やカメラ認識用のI2Cなどの信号も入っている形です。
- 2ピン…CAM1_DN0
- 3ピン…CAM1_DP0
- 5ピン…CAM1_DN1
- 6ピン…CAM1_DP1
- 8ピン…CAM1_CN
- 9ピン…CAM1_CP
- 11ピン…CAM_GPIO
- 13ピン…SCL0
- 14ピン…SDA0
- 15ピン…3V3
- 4,7,10ピン…GND
30ピンのコネクタですが、半分の16~30ピンは使用していない形(NC_未接続)でした。
ラズベリーパイの回路図の調べ方に関しては下記記事で紹介しています。(リンク先はこちら)
FPGAの評価ボードの例
筆者のFPGAボードのMIPI CSI-2構成はラズパイと同じでした。
データ_2レーン、クロック_1レーンとなります。
※あくまで筆者の一例です。最大のデータ_4レーンのボード・基板もあると思います。
若干異なりますが、MIPI CSI-2以外のピン配置もラズパイと大体は同じです。
GPIOの信号のピンが11-12ピン辺りが変わっています。
回路図上では逆側の16-30ピンも接続されている形でした。
- 2(17)ピン…FPGA_CAM_DN0
- 3(18)ピン…FPGA_CAM_DP0
- 5(20)ピン…FPGA_CAM_DN1
- 6(21)ピン…FPGA_CAM_DP1
- 8(23)ピン…FPGA_CAM_CN
- 9(24)ピン…FPGA_CAM_CP
- 11(26)ピン…FPGA_CAM_RST
- 12(27)ピン…FPGA_CAM_GPIO1
- 13(28)ピン…FPGA_SCL0
- 14(29)ピン…FPGA_SDA0
- 15(30)ピン…VCC_3V3
- 1(16),4(19),7(22),10(25)ピン…GND
今回の評価ボードの詳細は下記記事で紹介しています。(リンク先はこちら)
XilinxのFPGAの評価ボードを購入してみた。Spartan7に入門!
MIPI CSI-2のD-PHY(物理層)を仕様を確認してみる
MIPI CSI-2の電気的仕様を決める物理層はMIPI D-PHYと呼ばれています。
波形測定する上での特性が記載されているのはMIPI D-PHYとなります。
ディスプレイIFのMIPI DSIもMIPI-CSI2と同じ物理層のMIPI D-PHYということです。
MIPI DSIのディスプレイの仕様・波形を下記記事で調査しています。
電気的特性はMIPI CSI-2と同じのため参考になるはずです。
是非合わせてご覧ください。(リンク先はこちら)
MIPI D-PHYも規格書のダウンロードはドラフト版が可能
MIPI D-PHYも公式の規格書は企業向けとなっており、一個人ではダウンロードできません。
但し、MIPI D-PHYの方も2009年度の古いドラフト版はネットにありました。
2020年11月現在では無料でダウンロード可能です。
MIPI Alliance Specification for D-PHY
MIPI D-PHYの仕様で参考になった記事
規格書以外でもMIPI D-PHYの仕様を確認する上で下記記事が非常に参考となりました。
運営者様・管理者様の方々には深くお礼を申し上げます。
MIPI規格動向と測定ソリューション - Tektronix
MIPI D-PHYの波形測定は個人の環境では難しい
今回MIPI CSI-2(MIPI D-PHY)を測定してみましたが、一部しか確認できていません。
最大で1.5Gbps(750MHz)の通信速度で、差動信号100Ωの測定は個人の環境では難しいです。
周波数帯域・インピーダンスが合っていないため正確な測定は無理です。
筆者の個人のオシロスコープは周波数帯域50MHzのエントリーモデルです。
この環境だと以前に下記記事でUSB2.0(480Mbps)でも測定が難しい旨を紹介していました。
オシロスコープの周波数帯域を超えての測定はNG?実際に確認してみた
但し、MIPI D-PHYでも「通信が遅い」「差動100Ωが切り替わる」タイミングがあります。
個人のオシロスコープでも測定できる箇所を確認していきます。
MIPI CSI-2のカメラ動作中に波形測定をする
測定環境を用意します。今回はラズベリーパイを使います。
ラズベリーパイでカメラ動画撮影中に波形測定をしてみます。
ラズパイで動画撮影するのは簡単です。Pythonで簡単にプログラム可能です。
実際に使ったプログラムは下記です。
実行したら20秒動画撮影するプログラムです。十行で簡単に作成できます。
1 2 3 4 5 6 7 8 9 10 |
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (640, 480) camera.start_preview() time.sleep(2) camera.start_recording('test.h264') camera.wait_recording(20) camera.stop_recording() |
ラズパイにはデフォルトでPythonがインストールされており、誰でも簡単に使用できます。
初心者の方でも大丈夫です。下記記事で使い方を紹介しています。(リンク先はこちら)
MIPI CSI-2の波形測定した箇所
MIPI CSI-2を波形確認する際はコネクタのピンで測定しています。
本来は差動信号用の「差動プローブ」を使うべきですが、高価で個人では購入が難しいです。
今回は普通のパッシブの10:1プローブで測定していきます。
データとクロックの両方測定したくコネクタでは難しい場合はカメラ側で確認しました。
カメラ側の基板にはTP(テストポイント)があって測定が楽でした。
今回はあくまで個人的な趣味の測定なので、とにかく波形が確認できれば良しとします。
MIPI CSI-2の電圧レベル
まずMIPI CSI-2の物理層であるMIPI D-PHYには2つのモードがあります。
LP(Low Power)モードとHS(High Speed)モードです。通信中は各モードが切り替わっています。
モードで回路構成が変わり、電圧レベルも変わります。
またクロック・データともに同じ電圧レベル・回路構成となっています。
全部の信号の測定は難しいため今回はクロックとデータの一部を測定しています。
LP(Low Power)モードの電圧レベル
LP(Low Power)モードは低消費電力の状態となります。
LPモードでは差動100Ωが切り離されて、シングルエンドの構成となっています。
電圧レベルは1.2Vとなります。(VOH(min)_1.1V ~ VOH(max)_1.3V)
HS(High Speed)モードの電圧レベル
HS(High Speed)モードでは高速通信をしています。
HSモードでは差動100Ωの回路に切り替わり、差動信号となります。
一応差動信号の片方の測定を試みましたが、案の定まともに測定できていません。
出力側のTyp値として差動振幅(VOD)が200mVとなるはずです。
(VOD(min)_140mV ~ VOD(min)_270mV)
※上記波形が出力なのか入力なのかも不明です。あくまで参考波形です。
MIPI CSI-2の終端100Ωの切り替わり
LP(Low Power)モードはシングルエンドで、HS(High Speed)は差動100Ωの回路となります。
つまり、LPモードとHSモードの切り替わり時に終端100Ωを付け外ししていることになります。
切り替わりのタイミングを確認していきます。
SOT(Start of Transmission)
LPモードからHSモード移行時の終端100Ωを付けるタイミングがSOTとなります。
SOT(Start of Transmission)の名前の通り終端100Ωの状態が始まります。
カメラの画像・動画などの大きいデータはHSモードで送られます。
EOT(End of Transmission)
HSモードからSPモード移行時の終端100Ωを外すタイミングがEOTとなります。
EOT(End of Transmission)の名前の通り終端100Ωの状態が終わります。
終端100Ωを取り外すことで電力消費が抑えられ、低消費電力モードとなります。
MIPI CSI-2のクロックとデータの遷移を確認してみる
まともな波形は測定出来ませんが、クロックとデータの遷移を確認していきます。
今回の測定環境はラズパイのカメラで動画撮影です。
カメラ動作中の際に差動信号のクロック(CN)とデータ(DN0)の片方づつ確認します。
数百MHz帯の信号ですが、ms単位の長い時間で波形を測定すると上記形になります。
「LP」→「LPとHSの繰り返し」が繰り返されていました。
「LPとHSの繰り返し」の冒頭箇所をアップしてみると下記波形となります。
MIPI CSI-2含めて信号はクロック基準にデータが送られます。
「クロックが高速通信」してから「(画像)データを高速通信」をする必要があります。
そのため基本的に下記流れで遷移すると思われます。
- 「クロックがLP→HSに遷移」→「データもLP→HSに遷移」
- 「データがHS→LPに遷移」→「クロックもHS→LPに遷移」
クロックとデータのLP→HSの遷移をアップした波形例が下記になります。
クロックの方がSOTが終わって差動100Ωになってから、データが遷移しています。
まとめ
今回はMIPI CSI-2の規格・波形の一部を紹介させていただきました。
記事をまとめますと下記になります。
ラズベリーパイ(raspberry pi)ならばMIPI CSI-2のカメラを簡単に使用することができます。
下記記事でも紹介していますので、よろしければご覧ください。(リンク先はこちら)
コメント