(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-11
(45)【発行日】2024-10-22
(54)【発明の名称】通信装置および通信方法、並びにプログラム
(51)【国際特許分類】
G06F 13/38 20060101AFI20241015BHJP
G06F 13/42 20060101ALI20241015BHJP
G06F 13/36 20060101ALI20241015BHJP
H04L 69/00 20220101ALI20241015BHJP
【FI】
G06F13/38 340D
G06F13/38 340A
G06F13/42 310
G06F13/36 530B
H04L69/00
(21)【出願番号】P 2020572171
(86)(22)【出願日】2020-01-31
(86)【国際出願番号】 JP2020003610
(87)【国際公開番号】W WO2020166378
(87)【国際公開日】2020-08-20
【審査請求日】2022-12-08
(31)【優先権主張番号】P 2019025702
(32)【優先日】2019-02-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】100121131
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】高橋 宏雄
(72)【発明者】
【氏名】百代 俊久
(72)【発明者】
【氏名】越坂 直弘
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2010-129018(JP,A)
【文献】特開2012-199724(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/36-13/42
H04L 69/00
(57)【特許請求の範囲】
【請求項1】
受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方を、前記レーンごとに独立して送信する送信部と、
前記パケットのペイロードの先頭に配置されるペイロードヘッダを生成するペイロードヘッダ生成部と
を備え、
前記送信部は、前記ペイロードヘッダを前記レーンごとに独立して送信し、
前記ペイロードヘッダには、前記レーンごとにインクリメントされるメッセージカウント、および、それぞれ送信される前記レーンを識別するレーンナンバーが含まれる
を備える通信装置。
【請求項2】
前記レーンごとの前記パケットフッタとして、それぞれ対応する前記レーンに分配される前記パケットのペイロードから算出されるCRC(Cyclic Redundancy Check)を生成するパケットフッタ生成部
をさらに備える請求項1に記載の通信装置。
【請求項3】
前記レーンごとの前記パケットヘッダを、それぞれ対応する前記レーンに分配される前記パケットのペイロードのバイト数を示すワードカウントを含めて生成するパケットヘッダ生成部
をさらに備える請求項1に記載の通信装置。
【請求項4】
通信装置が、
受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方を、前記レーンごとに独立して送信することと、
前記パケットのペイロードの先頭に配置されるペイロードヘッダを生成することと
を含み、
前記ペイロードヘッダを前記レーンごとに独立して送信し、
前記ペイロードヘッダには、前記レーンごとにインクリメントされるメッセージカウント、および、それぞれ送信される前記レーンを識別するレーンナンバーが含まれる
通信方法。
【請求項5】
通信装置のコンピュータに、
受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方を、前記レーンごとに独立して送信することと、
前記パケットのペイロードの先頭に配置されるペイロードヘッダを生成することと
を含み、
前記ペイロードヘッダを前記レーンごとに独立して送信し、
前記ペイロードヘッダには、前記レーンごとにインクリメントされるメッセージカウント、および、それぞれ送信される前記レーンを識別するレーンナンバーが含まれる
通信処理を実行させるためのプログラム。
【請求項6】
送信側の通信装置から、複数のレーンに分配して送信されてくるパケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、前記レーンごとに独立して送信され、
前記パケットのペイロードの先頭には、前記レーンごとにインクリメントされるメッセージカウントが含まれるとともに、それぞれ送信される前記レーンを識別するレーンナンバー
が含まれるペイロードヘッダが配置されており、
前記パケットを受信する受信部と、
前記メッセージカウントおよび前記レーンナンバーに基づいて、複数の前記レーンのうちの異常が発生している前記レーンを特定し、そのレーンの使用を停止するように前記送信側の通信装置に対して設定するエラー処理部と
を備える通信装置。
【請求項7】
前記レーンごとに送信されてくる前記パケットフッタは、それぞれ対応する前記レーンに分配される前記パケットのペイロードから算出されるCRC(Cyclic Redundancy Check)であり、
前記CRCに基づいて検出されるCRCエラーが所定回数以上となる前記レーンの使用を停止すると判断し、そのレーンの使用を停止するように前記送信側の通信装置に対して設定するエラー処理部をさらに備える
請求項6に記載の通信装置。
【請求項8】
前記レーンごとに送信されてくる前記パケットヘッダには、それぞれ対応する前記レーンに分配される前記パケットのペイロードのバイト数を示すワードカウントが含まれており、
前記受信部は、前記ワードカウントに基づいて、複数の前記レーンのうちの正常な前記レーンにより送信されてくる前記パケットのペイロードを受信する
請求項6に記載の通信装置。
【請求項9】
前記送信側の通信装置とバスを介して直接的に接続され、前記パケットのパケットヘッダまたはパケットフッタに基づいて、前記バスに所定の不具合が発生したことを検出したときに、後段にある受信側の他の通信装置に対して、前記不具合の内容を示すエラー情報を通知する通知部
をさらに備える請求項6に記載の通信装置。
【請求項10】
送信側の通信装置から、複数のレーンに分配して送信されてくるパケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、前記レーンごとに独立して送信され、
前記パケットのペイロードの先頭には、前記レーンごとにインクリメントされるメッセージカウントが含まれるとともに、それぞれ送信される前記レーンを識別するレーンナンバー
が含まれるペイロードヘッダが配置されており、
通信装置が、
前記パケットを受信することと、
前記メッセージカウントおよび前記レーンナンバーに基づいて、複数の前記レーンのうちの異常が発生している前記レーンを特定し、そのレーンの使用を停止するように前記送信側の通信装置に対して設定することを
を含む通信方法。
【請求項11】
送信側の通信装置から、複数のレーンに分配して送信されてくるパケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、前記レーンごとに独立して送信され、
前記パケットのペイロードの先頭には、前記レーンごとにインクリメントされるメッセージカウントが含まれるとともに、それぞれ送信される前記レーンを識別するレーンナンバー
が含まれるペイロードヘッダが配置されており、
通信装置のコンピュータに、
前記パケットを受信することと、
前記メッセージカウントおよび前記レーンナンバーに基づいて、複数の前記レーンのうちの異常が発生している前記レーンを特定し、そのレーンの使用を停止するように前記送信側の通信装置に対して設定することを
を含む通信処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置および通信方法、並びにプログラムに関し、特に、より信頼性を高めることができるようにした通信装置および通信方法、並びにプログラムに関する。
【背景技術】
【0002】
現在、規格化が進行中であるCSI(Camera Serial Interface)-2 ver4.0では、モバイル機器だけに用いられるのではなく、車載やIoT(Internet of Things)など様々な用途に広く用いられるように、修正および検討が進められている。
【0003】
ところで、車載カメラには、例えば、ISO26262規格で規定される機能安全(Functional Safety)への対応が義務付けられるなど、モバイル機器とは違った要件が課されている。特に、自動運転車両ではコンピュータが、車載カメラにより撮像された画像に基づいて環境を認識し、自律的に走行する。このため、車載カメラとしての用途では、エラーが発生しないようにする信頼性を備えることが必須となる。
【0004】
例えば、車両が衝突した際に、車載カメラおよびコンピュータを接続する配線が断線するなどのような何らかのエラーが発生したとしても、その他の断線していない配線を用いて画像の伝送を継続することが求められる。これにより、コンピュータが自走運転を行うことが可能となり、車両を路肩まで退避させて安全に停止させることできるようになる。
【0005】
また、特許文献1では、CSI-2規格を利用して、処理装置と複数の画像センサとを接続する際に、データバスの数を減らすことができるシステムが提案されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、既存のCSI-2の規格では、モバイル機器での使用に特化したパケット構造となっていたため、上述したような車載カメラでの用途に求められる信頼性を確保することは困難となっていた。
【0008】
本開示は、このような状況に鑑みてなされたものであり、より信頼性を高めることができるようにするものである。
【課題を解決するための手段】
【0009】
本開示の第1の側面の通信装置は、受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方を、前記レーンごとに独立して送信する送信部と、前記パケットのペイロードの先頭に配置されるペイロードヘッダを生成するペイロードヘッダ生成部とを備え、前記送信部は、前記ペイロードヘッダを前記レーンごとに独立して送信し、前記ペイロードヘッダには、前記レーンごとにインクリメントされるメッセージカウント、および、それぞれ送信される前記レーンを識別するレーンナンバーが含まれる。
【0010】
本開示の第1の側面の通信方法またはプログラムは、受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方を、前記レーンごとに独立して送信することと、前記パケットのペイロードの先頭に配置されるペイロードヘッダを生成することとを含み、前前記ペイロードヘッダを前記レーンごとに独立して送信し、前記ペイロードヘッダには、前記レーンごとにインクリメントされるメッセージカウント、および、それぞれ送信される前記レーンを識別するレーンナンバーが含まれる。
【0011】
本開示の第1の側面においては、受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、レーンごとに独立して送信され、パケットのペイロードの先頭に配置されるペイロードヘッダが生成される。ペイロードヘッダがレーンごとに独立して送信され、そのペイロードヘッダには、レーンごとにインクリメントされるメッセージカウント、および、それぞれ送信されるレーンを識別するレーンナンバーが含まれる。
【0012】
本開示の第2の側面の通信装置は、送信側の通信装置から、複数のレーンに分配して送信されてくるパケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、前記レーンごとに独立して送信され、前記パケットのペイロードの先頭には、前記レーンごとにインクリメントされるメッセージカウントが含まれるとともに、それぞれ送信される前記レーンを識別するレーンナンバーが含まれるペイロードヘッダが配置されており、前記パケットを受信する受信部と、前記メッセージカウントおよび前記レーンナンバーに基づいて、複数の前記レーンのうちの異常が発生している前記レーンを特定し、そのレーンの使用を停止するように前記送信側の通信装置に対して設定するエラー処理部とを備える。
【0013】
本開示の第2の側面の通信方法またはプログラムは、送信側の通信装置から、複数のレーンに分配して送信されてくるパケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、前記レーンごとに独立して送信され、前記パケットのペイロードの先頭には、前記レーンごとにインクリメントされるメッセージカウントが含まれるとともに、それぞれ送信される前記レーンを識別するレーンナンバーが含まれるペイロードヘッダが配置されており、前記パケットを受信することと、前記メッセージカウントおよび前記レーンナンバーに基づいて、複数の前記レーンのうちの異常が発生している前記レーンを特定し、そのレーンの使用を停止するように前記送信側の通信装置に対して設定することを含む。
【0014】
本開示の第2の側面においては、送信側の通信装置から、複数のレーンに分配して送信されてくるパケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、レーンごとに独立して送信され、パケットのペイロードの先頭には、レーンごとにインクリメントされるメッセージカウントが含まれるとともに、それぞれ送信されるレーンを識別するレーンナンバーが含まれるペイロードヘッダが配置されている。そして、パケットが受信され、メッセージカウントおよびレーンナンバーに基づいて、複数のレーンのうちの異常が発生しているレーンが特定され、そのレーンの使用を停止するように送信側の通信装置に対して設定される。
【図面の簡単な説明】
【0015】
【
図1】本技術を適用した通信システムの第1の実施の形態の構成例を示すブロック図である。
【
図2】従来のパケット構造およびLane Distributionについて説明する図である。
【
図3】拡張パケットのパケット構造およびパラレル伝送設定について説明する図である。
【
図4】エラー通知に用いるShort Packetのパケット構造の一例を示す図である。
【
図5】イメージセンサの構成例を示すブロック図である。
【
図6】アプリケーションプロセッサの構成例を示すブロック図である。
【
図7】シリアライザの構成例を示すブロック図である。
【
図8】イメージセンサがパケットを送信する処理を説明するフローチャートである。
【
図9】拡張モード送信処理を説明するフローチャートである。
【
図10】アプリケーションプロセッサがパケットを受信する処理を説明するフローチャートである。
【
図11】拡張モード受信処理を説明するフローチャートである。
【
図12】エラー処理を説明するフローチャートである。
【
図13】本技術を適用した通信システムの第2の実施の形態の構成例を示すブロック図である。
【
図14】拡張パケットのパケット構造の第2の構成例を示す図である。
【
図15】イメージセンサおよびアプリケーションプロセッサの概略的な構成例を示す図である。
【
図16】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0016】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0017】
<通信システムの第1の構成例>
図1は、本技術を適用した通信システムの第1の実施の形態の構成例を示すブロック図である。
【0018】
図1に示すように、通信システム11は、イメージセンサ21、アプリケーションプロセッサ22、シリアライザ23、およびデシリアライザ24を備えて構成されている。そして、イメージセンサ21およびシリアライザ23がバス25-1を介して接続され、アプリケーションプロセッサ22およびデシリアライザ24がバス25-2を介して接続され、シリアライザ23およびデシリアライザ24がバス26を介して接続される。例えば、通信システム11は、既存の車載カメラにおける接続に用いられる。
【0019】
イメージセンサ21は、例えば、レンズや撮像素子(いずれも図示せず)などとともに、拡張モード対応CSI-2送信回路31が組み込まれて構成される。例えば、イメージセンサ21は、撮像素子が撮像することで取得した画像の画像データを、拡張モード対応CSI-2送信回路31によりアプリケーションプロセッサ22へ送信する。
【0020】
アプリケーションプロセッサ22は、通信システム11を備えるモバイル機器で実行される各種のアプリケーションに応じた処理を行うLSI(Large Scale Integration)とともに、拡張モード対応CSI-2受信回路32が組み込まれて構成される。例えば、アプリケーションプロセッサ22は、イメージセンサ21から送信されてくる画像データを、拡張モード対応CSI-2受信回路32により受信し、その画像データに対して、アプリケーションに応じた処理をLSIにより行うことができる。
【0021】
シリアライザ23は、CSI-2受信回路33およびSerDes(Serializer Deserializer)送信回路34を備えて構成される。例えば、シリアライザ23は、CSI-2受信回路33が、拡張モード対応CSI-2送信回路31との間で通常のCSI-2の規格に準拠した通信を行うことにより、イメージセンサ21から送信されてくるビット並列の信号を取得する。そして、シリアライザ23は、その取得した信号をビット直列に変換して、SerDes送信回路34がSerDes受信回路35との間で1レーンでの通信を行うことにより、その信号をデシリアライザ24へ送信する。
【0022】
デシリアライザ24は、SerDes受信回路35およびCSI-2送信回路36を備えて構成される。例えば、デシリアライザ24は、SerDes受信回路35が、SerDes送信回路34との間で1レーンでの通信を行うことにより送信されてくるビット直列の信号を取得する。そして、デシリアライザ24は、その取得した信号をビット並列に変換して、CSI-2送信回路36が、拡張モード対応CSI-2受信回路32との間で通常のCSI-2の規格に準拠した通信を行うことにより、アプリケーションプロセッサ22へ送信する。
【0023】
バス25-1および25-2は、CSI-2の規格に準拠して信号を伝送する通信経路であり、例えば、信号を伝送することが可能な伝送距離は30cm程度となっている。また、バス25は、図示するように複数本の信号線(HS-GPIO,I2C or I3C,CLKP/N,D0P/N,D1P/N,D2P/N,D3P/N)によって、イメージセンサ21およびアプリケーションプロセッサ22を接続する。
【0024】
バス26は、FPD(Flat Panel Display)-LINK IIIなどのように、CSI-2以外のSerDes規格に準拠して信号を伝送する通信経路であり、例えば、信号を伝送することが可能な伝送距離は15m程度となっている。
【0025】
ここで、通信システム11では、拡張モード対応CSI-2送信回路31および拡張モード対応CSI-2受信回路32は、CSI-2の規格を拡張させた拡張モードでの通信に対応しており、例えば、後述する
図3に示すように拡張モードで用いられるパケット(以下、拡張パケットと称する)を送受信することができる。例えば、拡張モード対応CSI-2受信回路32は、バス25-2を介して送信されてくる拡張パケットに基づいて、バス25-2で発生するエラーを認識するエラー認識機能を備えている。なお、拡張モード対応CSI-2送信回路31および拡張モード対応CSI-2受信回路32の詳細な構成については、
図5および
図6を参照して後述する。
【0026】
また、通信システム11では、CSI-2受信回路33は、バス25-1を介して送信されてくる拡張パケットに基づいて、バス25-1で発生するエラーを認識するエラー認識機能を備えている。なお、CSI-2受信回路33の詳細な構成については、
図7を参照して後述する。
【0027】
ところで、上述したような車載カメラで通信システム11を採用する場合には、例えば、不具合が発生した場合にも迅速に通信を継続して行えるなど、より高い信頼性が求められるため、以下で説明するような2つの点を対策する必要がある。
【0028】
従来、イメージセンサ21からアプリケーションプロセッサ22へ送信されるパケットは、例えば、
図2に示すようなパケット構造となっており、複数のレーンに分配されて伝送される。
【0029】
図2の上側には、イメージセンサ21からアプリケーションプロセッサ22へ伝送されるパケットの一例として、物理層にD-PHYが用いられるときのD-PHY用のCSI-2 Long Packetのパケット構造が示されている。また、
図2の下側には、D-PHY用のCSI-2 Long Packetが、N本のレーンに分配(Lane Distribution)されて伝送される状態が示されている。
【0030】
そして、
図2に示すように、従来、パケットヘッダ(PH:Packet Header)およびパケットフッタ(PF:Packet Footer)のどちらも、複数のレーンに分配されて、並列的に伝送されていた。このため、これらのレーンのいずれかにエラーが発生した場合、エラーが発生したレーンを特定することができないことがある。
【0031】
例えば、Packet Dataに1bit errorが発生した場合、既存のCSI-2規格ではCRCエラーが検出される。しかし、パケット全体に対して1つのCRCしかないパケット構造であるため、どのレーンで1bit errorが発生したのかを受信側で特定することができなかった。このため、アプリケーションプロセッサ22が、Errorが頻発する特定のレーンを切り離して、そのレーン以外の正常なレーンのみで再度通信を継続することはできなかった。
【0032】
従って、通信システム11を車載カメラで採用する場合には、エラーが発生したレーンを特定することができるようにする対策が必要となる。
【0033】
また、例えば、
図1で×印が示されている信号線D1P/Nが断線した場合、受信側では、どのレーンが断線したのかを、即時に検出することができなかった。同様に、信号線D1P/Nにおいてビットエラーなどが発生することによってSYNCをロスした場合、受信側では、どのレーンでビットエラーが発生したためにSYNCをロスしたのかを、即時に検出することができなかった。
【0034】
例えば、シリアライザ23は、PayloadにCRC errorが発生した場合には、エラーがあってもSerDes送信回路34からデータを出力することができるような前提で構成されている。
【0035】
これに対し、シリアライザ23は、いずれかのレーンが断線した場合や、いずれかのレーンでビットエラーが発生したためにSYNCをロスした場合などには、Payloadそのものを受信することができず、SerDes送信回路34からデータを出力することができない。つまり、ハミング符号により1bit errorは訂正することができる一方で、2bit errorが検出(SECDED)された場合、シリアライザ23は、パケットヘッダ内のWC(Word Count:ペイロードのデータ長)を正しく受信することができない。このため、シリアライザ23は、Payloadの長さが分からず、断線などと同様に、SerDes送信回路34からデータを出力することができない。
【0036】
そして、単なるbit化けによるSyncロス、あるいは、パケットヘッダで2bit以上のerrorが発生した場合、次のパケットで通信が回復しても、どのレーンでパケットロスしたのか判別できない。このため、I2Cなどを用いて別途問い合わせが必要になってしまい、エラー頻度の高いレーンを回避して通信継続するまでに遅延が生じることになる。
【0037】
また、断線が発生した場合は、アプリケーションプロセッサ22側は以後一切の通信を受信できなくなる。そのため、後段のアプリケーションプロセッサ22は一定時間経過後に断線の可能性を疑い、I2Cなどを用いてシリアライザ23のレジストリ設定を読むことで断線エラーを検知できるが、それまでに遅延が生じることになる。車載カメラにおいては、この遅延が致命的となると想定される。
【0038】
従って、通信システム11を車載カメラで採用する場合には、不具合の発生を即時に検出して、通信を遅延なく継続することができるようにする対策が必要となる。
【0039】
そこで、通信システム11は、エラーが発生したレーンを特定することができるとともに、不具合の発生を即時に検出して通信を遅延なく継続することができるように構成されている。
【0040】
例えば、通信システム11では、
図3の上側に示すようなパケット構造の拡張パケット(D-PHY用のCSI-2 Long Packet)が、拡張モード対応CSI-2送信回路31から拡張モード対応CSI-2受信回路32へ送信される。そして、通信システム11では、
図3の下側に示すように、この拡張パケットが、N本のレーンに分配(Lane Distribution)されて伝送される状態が示されている。
【0041】
例えば、拡張パケットは、パケットヘッダおよびパケットフッタが既存のCSI-2規格と同一のパケット構造となっている。例えば、パケットヘッダには、仮想チャネルの回線数を示すVC(VirtualChannel)、データの種類を示すデータタイプ(DataType)、ペイロードのデータ長を示すWC(Word Count)、VCX/ECCが格納される。また、パケットフッタには、CRC(Cyclic Redundancy Check)が格納される。
【0042】
ここで、既存のCSI-2規格では、パケットヘッダで送信されるデータタイプは、0x38~0x3Fがリザーブと定義されている。そこで、D-PHY用の拡張パケットでは、既存ではリザーブとなっているデータタイプを利用して、受信側で拡張モードを識別するための設定情報が新たに定義される。
【0043】
例えば、データタイプとして、
・DataType[5:3]=3’b111の場合、拡張モード
・DataType[2]=Reserve(RES:将来の拡張のための予約)
・DataType[1:0]=extension mode type(4つの拡張モードを用意)
を定義する。
【0044】
即ち、既存のCSI-2規格ではリザーブと定義されているデータタイプの0x38~0x3Fのうち、例えば、DataType[5:3]が拡張モード設定情報として定義され、DataType[1:0]が拡張タイプ設定情報として定義される。拡張モード設定情報は、拡張モードであるか否かを示し、例えば、DataType[5:3]が3’b111である場合には拡張モードであることを示す。また、拡張モードのタイプとして、拡張モード0、拡張モード1、拡張モード2、および拡張モード3の4つのタイプが用意されるとき、拡張タイプ設定情報は、それらのうちの、いずれのタイプであるかを示す。例えば、DataType[1:0]が2’b00である場合には、拡張モードのタイプが拡張モード0であることを示す。
【0045】
そして、拡張モード0(DataType[1:0]=2’b00)では、例えば、ペイロードが4つに分離されたパケット構造が定義される。即ち、拡張モード0におけるペイロードは、
図3に示すように、拡張ペイロードヘッダ(ePH:extended Payload Header)、オプショナル拡張ペイロードヘッダ(OePH:Optional extended Payload Header)、レガシーペイロード(Legacy Payload)、および、オプショナル拡張ペイロードフッタ(OePF:Optional extended Payload Footer)に分離される。
【0046】
拡張ペイロードヘッダは、既存のCSI-2規格のペイロードに相当する先頭に配置され、拡張モードでは必ず送信する必要がある。例えば、拡張ペイロードヘッダは、図示するように、SROIの識別フラグ、拡張VC(VirtualChannel)、拡張DataType、OePHの選択フラグ、およびOePFの選択フラグなどの設定情報で構成される。ここで、拡張VCにより、既存のCSI-2規格では4ビットであったVCが8ビットに拡張され、拡張DataTypeにより、既存のCSI-2規格では4ビットであったDataTypeが8ビットに拡張される。
【0047】
例えば、D-PHY用のパケットでは、既存のパケットヘッダのVCが既に4ビット存在しており、拡張ペイロードヘッダの拡張VCを4ビットと定義することにより、合計で8ビットとすることができる。具体的には、OePH[7:0] = {5’h00,RSID,XY_POS,MC}、OePF[3:0] = {3’h0,pCRC}と定義することができ、それぞれの用途に必要なパケット送信のON/OFFを制御することができる。
【0048】
オプショナル拡張ペイロードヘッダおよびオプショナル拡張ペイロードフッタは、用途に応じて選択的に伝送される。
【0049】
レガシーペイロードは、既存のCSI-2の規格と同一のペイロードに相当する。
【0050】
このように、拡張ペイロードヘッダ、オプショナル拡張ペイロードヘッダ、およびオプショナル拡張ペイロードフッタを必要に応じて設定することで、様々な用途に対応したデータを送信することができるようになる。また、拡張ペイロードヘッダ、オプショナル拡張ペイロードヘッダ、およびオプショナル拡張ペイロードフッタで伝送されるデータは、26bit+6bitのECC(Error Correction Code)とする。これにより、既存のペイロードヘッダの回路を流用して回路規模の増大を抑制し、かつ、エラー耐性の向上を図ることができる。
【0051】
そして、通信システム11では、パケットヘッダはLane Distributionせずに、複数のレーンの数に応じてパケットヘッダがコピーされ、それぞれのレーンで独立してパケットヘッダが送信される。そして、受信側でペイロードをレーンごとに再生できるようにするため、パケットヘッダに含まれるWC(Word Count)のみを、既存のCSI-2規格から変更し、各レーンにおけるペイロードのバイト数を示すように新たに定義する。
【0052】
また、通信システム11では、パケットフッタもLane Distributionせずに、パケットフッタとなるCRCが各レーンにおけるペイロードごとに独立して計算され、それぞれのレーンで独立してパケットフッタが送信される。
【0053】
さらに、通信システム11では、パケットヘッダと同様に、ペイロードに含まれるMC(GLD用Message Count)をLane Distributionせずに、それぞれのレーンで独立してMCが送信される。このとき、通信システム11では、MCを送信するたびにインクリメント(+1)することで、どのレーンを介してMCが送信されたかを示すLN(Lane Number)も合わせて送信される。なお、MCは、
図3に示すように、オプショナル拡張ペイロードヘッダ(OePH:Optional extended Payload Header)に配置される。なお、LNの送信は必須ではなく、必要に応じてLNを送信すればよい。
【0054】
また、
図3では、PH(Packet Header),ePH(extended Payload Header),OePH, OePF(Optional extended Payload Footer)、およびPF(Packet Footer)をレーンごとにコピーして送信する例が示されている。そして、この例では、送信側でLeagcy payloadのみがLane Distributionされることになる。
【0055】
なお、
図3を参照して説明したように、パケットヘッダ、WC、およびパケットフッタをレーンごとに独立して伝送する設定(以下、パラレル伝送設定と称する)は、通信システム11を車載カメラで採用する場合には、ほぼ必須の機能となるため、動的にオン/オフを切り替える必要はない。従って、通信システム11では、アプリケーションプロセッサ22が、通信開始時にイメージセンサ21のレジストリに対して、このパラレル伝送設定をオン/オフするように構成される。
【0056】
従って、通信システム11は、どのレーンにエラーが発生したのか、発生したエラーの種類を認識するエラー認識機能を備えることができる。また、CSI-2受信回路33がエラーを認識した場合には、そのエラー情報をアプリケーションプロセッサ22に通知する。
【0057】
図4には、CSI-2受信回路33からアプリケーションプロセッサ22へエラー情報を通知するのに用いられるCSI-2 Short Packetのパケット構造が示されている。
【0058】
例えば、
図4に示すように、CSI-2 Short PacketのData IDには、エラーの発生を通知するためのDataType(=0x00-0x0F)が割り当てられる。
【0059】
また、CSI-2 Short PacketのData Fieldには、エラーが発生したレーンと、そのエラー内容{Error_Lane[7:0],Error_Type[7:0]}が格納される。例えば、Error_Lane[7:0]は、エラーが発生したレーンを示す。一例として、Error_Lane[0]は、Lane1でエラーが発生していることを示し、Error_Lane[1]は、Lane2でエラーが発生していることを示す。また、Error_Type[7:0]は、いずれかのレーンで発生したエラーの種類を示す。一例として、Error_Type[0]はSync lossを示し、Error_TypeはPH errorを示す。
【0060】
具体的には、Lane1は正常に受信を行うことができ、Lane2でSync lossが発生し、Lane3は正常に受信を行うことができ、Lane4でPH errorが発生している場合、CSI-2 Short PacketのData Fieldには、{8’b0000_1010,8’b0000_0011}が格納される。
【0061】
<イメージセンサ、アプリケーションプロセッサ、およびシリアライザの構成例>
図5は、拡張モード対応CSI-2送信回路31を備えるイメージセンサ21の構成例を示すブロック図である。
【0062】
図5に示すように、イメージセンサ21は、拡張モード対応CSI-2送信回路31の他に、画素41、AD変換器42、画像処理部43、画素CRC演算部44、物理層処理部45、I2C/I3Cスレーブ46、およびレジスタ47を備えて構成される。また、拡張モード対応CSI-2送信回路31は、パッキング部51、パケットヘッダ生成部52、ペイロードヘッダ生成部53、ペイロードフッタ生成部54、選択部55および56、CRC演算部57、レーン分配部58、CCIスレーブ59、並びに、コントローラ60を備えて構成される。
【0063】
画素41は、受光した光の光量に応じたアナログの画素信号を出力し、AD変換器(ADC:Analog-to-Digital Converter)42は、画素41から出力される画素信号をデジタル変換して画像処理部43に供給する。画像処理部(ISP:Image Signal Processor)43は、画素信号に基づく画像に対する各種の画像処理を施して得られる画像データを画素CRC演算部44およびパッキング部51に供給する。また、画像処理部43は、画像データが有効であるか否かを示すデータイネーブル信号data_enをパッキング部51およびコントローラ60に供給する。
【0064】
画素CRC演算部44は、画像処理部43から供給される画像データにおける画素ごとのCRCを演算して求め、そのCRCをペイロードフッタ生成部54に供給する。
【0065】
物理層処理部45は、C-PHYおよびD-PHYの両方の物理層処理を実行することができる。例えば、物理層処理部45は、コントローラ60から供給されるC層イネーブル信号cphy_enが有効である場合にはC-PHYの物理層処理を実行し、C層イネーブル信号cphy_enが無効である場合にはD-PHYの物理層処理を実行する。そして、物理層処理部45は、レーン分配部58により4レーンに分割されたパケットを、アプリケーションプロセッサ22へ送信する。
【0066】
I2C/I3Cスレーブ46は、I2C(Inter-Integrated Circuit)またはI3C(Improved Inter Integrated Circuits)の規格に基づき、アプリケーションプロセッサ22のI2C/I3Cマスタ72(
図6)による主導に従って通信を行う。
【0067】
レジスタ47には、アプリケーションプロセッサ22から送信されてくる各種の設定が、I2C/I3Cスレーブ46およびCCIスレーブ59を介して書き込まれる。ここで、レジスタ47に書き込まれる設定としては、例えば、CSI-2規格に従った通信設定や、拡張モードの使用の有無を示す拡張モード設定、拡張モードでの通信で必要となる固定の通信設定などがある。
【0068】
パッキング部51は、画像処理部43から供給される画像データを、パケットのペイロードに格納するパッキング処理を行い、そのペイロードを選択部55およびレーン分配部58に供給する。
【0069】
パケットヘッダ生成部52は、コントローラ60から供給されるパケットヘッダ生成指示信号ph_goに従って、パケットヘッダの生成が指示されると、レーンごとのペイロードのバイト数を示すWCを含むパケットヘッダを生成して選択部55およびレーン分配部58に供給する。
【0070】
即ち、パケットヘッダ生成部52は、パケットで伝送されるデータについて設定された条件を示す設定情報、例えば、データのタイプを示すデータタイプを格納するパケットヘッダを、既存のCSI-2規格に従って生成する。また、パケットヘッダ生成部52は、パケットで伝送されるデータのタイプを示す設定情報であるデータタイプにおいて、既存のCSI-2規格では未使用と定義されている未使用領域に、拡張ヘッダを使用する拡張モードであるか否かを示す拡張モード設定情報を格納する。さらに、パケットヘッダ生成部52は、未使用領域に、拡張モードとして用意される複数のタイプの拡張モードのうちの、いずれのタイプであるかを示す拡張タイプ設定情報を格納する。
【0071】
ペイロードヘッダ生成部53は、コントローラ60から供給される拡張ペイロードヘッダ生成指示信号eph_goおよび拡張ペイロードヘッダイネーブル信号ePH_enに従って、拡張ペイロードヘッダおよびオプショナル拡張ペイロードヘッダそれぞれを生成し、選択部56およびレーン分配部58に供給する。また、ペイロードヘッダ生成部53には、イメージセンサ21の用途に応じて、車載用行番号やソースID(identification)などが供給され、必要に応じて、それらを拡張ペイロードヘッダまたはオプショナル拡張ペイロードヘッダに格納する。
【0072】
即ち、ペイロードヘッダ生成部53は、パケットヘッダ生成部52により生成されるパケットヘッダとは別に、例えば、
図3に示したような拡張ペイロードヘッダを生成する。さらに、ペイロードヘッダ生成部53は、オプショナル拡張ヘッダを送信する場合、オプショナル拡張ヘッダを送信するか否かを示すオプショナル拡張ヘッダ設定情報(OePH[7:0])として、オプショナル拡張ヘッダを送信することを示すオプショナル拡張ヘッダ設定情報を拡張ヘッダに格納し、拡張ヘッダに続けてオプショナル拡張ヘッダを生成する。
【0073】
ペイロードフッタ生成部54は、コントローラ60から供給される拡張ペイロードフッタ生成指示信号epf_goおよび拡張ペイロードヘッダイネーブル信号ePF_enに従って、オプショナル拡張ペイロードフッタを生成し、選択部56およびレーン分配部58に供給する。
【0074】
即ち、ペイロードフッタ生成部54は、拡張モードにおいて伝送されるパケットが、既存のCSI-2規格においてペイロードとして伝送されるデータを格納する拡張ロングパケットである場合に、データが格納されるレガシーペイロードに続けて配置されるオプショナル拡張ペイロードフッタを生成する。
【0075】
また、パケットヘッダ生成部52、ペイロードヘッダ生成部53、およびペイロードフッタ生成部54には、コントローラ60からC層イネーブル信号cphy_enが供給される。そして、C層イネーブル信号cphy_enが有効を示している場合、パケットヘッダ生成部52はC-PHY用のパケットヘッダを生成し、ペイロードヘッダ生成部53はC-PHY用の拡張ペイロードヘッダおよびオプショナル拡張ペイロードヘッダを生成し、ペイロードフッタ生成部54はC-PHY用のオプショナル拡張ペイロードフッタを生成する。一方、C層イネーブル信号cphy_enが無効を示している場合、パケットヘッダ生成部52はD-PHY用のパケットヘッダを生成し、ペイロードヘッダ生成部53はD-PHY用の拡張ペイロードヘッダおよびオプショナル拡張ペイロードヘッダを生成し、ペイロードフッタ生成部54はD-PHY用のオプショナル拡張ペイロードフッタを生成する。
【0076】
選択部55は、コントローラ60から供給されるC層イネーブル信号cphy_enに従って、C層イネーブル信号cphy_enが有効である場合、パケットヘッダ生成部52から供給されるパケットヘッダを選択し、選択部56へ供給する。一方、選択部55は、C層イネーブル信号cphy_enが無効である場合、パッキング部51から供給されるペイロードを選択し、選択部56へ供給する。
【0077】
選択部56は、コントローラ60から供給されるデータ選択信号data_selに従って、選択部55を介して選択的に供給されるパケットヘッダまたはペイロード、ペイロードヘッダ生成部53から供給される拡張ペイロードヘッダおよびオプショナル拡張ペイロードヘッダ、ペイロードフッタ生成部54から供給されるオプショナル拡張ペイロードフッタのうち、いずれかを選択してCRC演算部57に供給する。
【0078】
CRC演算部57は、選択部56を介して選択的に供給されるパケットヘッダ、ペイロード、拡張ペイロードヘッダ、オプショナル拡張ペイロードヘッダ、またはオプショナル拡張ペイロードフッタのCRCを演算して求め、そのCRCをレーン分配部58に供給する。
【0079】
レーン分配部58は、コントローラ60の制御に従って、パッキング部51から供給されるペイロード、パケットヘッダ生成部52から供給されるパケットヘッダ、ペイロードヘッダ生成部53から供給される拡張ペイロードヘッダおよびオプショナル拡張ペイロードヘッダ、ペイロードフッタ生成部54から供給されるオプショナル拡張ペイロードフッタ、並びに、CRC演算部57から供給されるCRCを、CSI-2の規格に従った4レーンに分配して、物理層処理部45に供給する。
【0080】
CCI(Camera Control Interface)スレーブ59は、CSI-2の規格に基づき、アプリケーションプロセッサ22のCCIマスタ88(
図6)による主導に従って通信を行う。
【0081】
コントローラ60は、レジスタ47に記憶されている各種の設定を読み出して、それらの設定に従って、拡張モード対応CSI-2送信回路31を構成する各ブロックに対する制御を行う。例えば、コントローラ60は、送信対象のデータの内容に応じて、既存のCSI-2規格に従ったパケット構造のパケットの送信と、拡張モード時におけるパケット構造のパケットの送信との切り替えを制御する。
【0082】
そして、イメージセンサ21では、上述の
図3を参照して説明したようなパラレル伝送を行うことを設定する通信設定であるパラレル伝送設定が、アプリケーションプロセッサ22からレジスタ47に書き込まれる。これにより、コントローラ60は、レジスタ47のパラレル伝送設定を参照し、パラレル伝送が有効であるか否かを示すパラレル伝送イネーブル信号para_enを、パケットヘッダ生成部52、ペイロードヘッダ生成部53、CRC演算部57、レーン分配部58、および物理層処理部45に供給する。
【0083】
例えば、パラレル伝送イネーブル信号para_enが有効である場合、パケットヘッダ生成部52は、レーンごとにパケットヘッダを生成(コピー)し、ペイロードヘッダ生成部53は、レーンごとにMCおよびLNを生成する。また、この場合、CRC演算部57は、レーンごとのペイロードからCRCを算出してパケットフッタを生成し、レーン分配部58は、これらのレーンごとに送信するものを適宜分配する。
【0084】
このようにイメージセンサ21は構成されており、
図3を参照して説明したようなパラレル伝送によって、アプリケーションプロセッサ22へパケットを送信することができる。
【0085】
また、イメージセンサ21は、
図3に示したようなパケット構造の拡張パケットを生成して、アプリケーションプロセッサ22へ送信することができる。
【0086】
図6は、拡張モード対応CSI-2受信回路32を備えるアプリケーションプロセッサ22の構成例を示すブロック図である。
【0087】
図6に示すように、アプリケーションプロセッサ22は、拡張モード対応CSI-2受信回路32の他に、物理層処理部71、I2C/I3Cマスタ72、レジスタ73、およびエラー処理部74を備えて構成される。また、拡張モード対応CSI-2受信回路32は、パケットヘッダ検出部81、レーン併合部82、解釈部83、選択部84および85、CRC演算部86、アンパッキング部87、並びに、CCIマスタ88を備えて構成される。
【0088】
物理層処理部71は、C-PHYおよびD-PHYの両方の物理層処理を実行することができる。上述したように、イメージセンサ21の物理層処理部45では、C-PHYおよびD-PHYのうちの、いずれか一方の物理層処理が行われ、物理層処理部71は、物理層処理部45において実行されたのと同一の物理層処理を実行する。
【0089】
I2C/I3Cマスタ72は、I2CまたはI3Cの規格に基づき、イメージセンサ21のI2C/I3Cスレーブ46(
図5)との通信を主導して行う。
【0090】
レジスタ73には、イメージセンサ21のレジスタ47に書き込むべき各種の設定が記録される。
【0091】
エラー処理部74には、パケットヘッダ検出部81から出力されるエラー通知用のショートパケット受信フラグ、CRC演算部86から出力されるcrcエラー検出信号、解釈部83から出力されるMC(GLD用Message Count)およびLNが供給される。そして、エラー処理部74は、
図12のフローチャートを参照して後述するエラー処理を行って、断線の発生やエラーが頻発するような対象のレーンを特定し、対象のレーンの使用を中止するような設定をレジスタ73に書き込むことができる。また、エラー処理部74は、例えば、対象のレーンの使用を中止させるのに伴う通信速度の低下をCCIマスタ88に対して設定したり、対象のレーンの復帰処理を行わせるための通信をCCIマスタ88に行わせたりする。
【0092】
パケットヘッダ検出部81は、物理層処理部71から供給されるパケットからパケットヘッダを検出し、パケットヘッダに格納されているデータタイプを確認する。そして、パケットヘッダ検出部81は、パケットヘッダのデータタイプにおいて、拡張モード設定情報が拡張モードであることを示す場合(DataType[5:3]=3’b111)、拡張モードを示す拡張モード検出フラグを、解釈部83、選択部84、および選択部85に供給する。また、パケットヘッダ検出部81は、パケットヘッダに基づいて、分割されている4レーンの併合を有効とするか否かを示す併合イネーブル信号mrg_enをレーン併合部82に供給する。
【0093】
即ち、パケットヘッダ検出部81は、既存のCSI-2規格に従って、パケットで伝送されるデータについて設定された条件を示す設定情報(データタイプなど)が格納されるパケットヘッダを検出する。このとき、パケットヘッダ検出部81は、パケットで伝送されるデータのタイプを示す設定情報であるデータタイプにおいて、既存のCSI-2規格では未使用と定義されている未使用領域に格納されている、拡張ヘッダを使用する拡張モードであるか否かを示す拡張モード設定情報に従って、拡張モード検出フラグを出力することで、既存のCSI-2規格に従ったパケット構造のパケットの受信と、拡張モード時におけるパケット構造のパケットの受信との切り替えを行わせる。また、パケットヘッダ検出部81は、既存のCSI-2規格では未使用と定義されているデータタイプの未使用領域に格納されている拡張モードタイプ情報に従って、拡張モードとして用意される複数のタイプの拡張モードのうちの、いずれのタイプの拡張モードであるかを認識する。
【0094】
レーン併合部82は、パケットヘッダ検出部81から供給される併合イネーブル信号mrg_enが有効である場合、物理層処理部71から供給される4レーンに分割されたパケットを受信して併合する。そして、レーン併合部82は、1レーンのパケットを解釈部83、選択部84、および選択部85に供給する。
【0095】
解釈部83は、パケットヘッダ検出部81から供給される拡張モード検出フラグが、拡張モードであることを示している場合、拡張モードのパケット構造に基づいて、レーン併合部82から供給されるパケットから、拡張ペイロードヘッダ、オプショナル拡張ペイロードヘッダ、およびオプショナル拡張ペイロードフッタを読み出す。そして、解釈部83は、拡張ペイロードヘッダ、オプショナル拡張ペイロードヘッダ、およびオプショナル拡張ペイロードフッタに格納されている設定情報を解釈する。
【0096】
即ち、解釈部83は、拡張ヘッダとして、既存のCSI-2規格に従ったペイロードの先頭に配置される拡張ペイロードヘッダを受信し、拡張ペイロードヘッダに格納されている設定情報を解釈する。また、解釈部83は、拡張ヘッダに格納されているオプショナル拡張ヘッダ設定情報が、用途に応じて選択的に伝送されるオプショナル拡張ヘッダを送信することを示している場合、拡張ヘッダに続けてオプショナル拡張ヘッダを受信し、オプショナル拡張ヘッダに格納されている設定情報を解釈する。さらに、解釈部83は、拡張モードにおいて伝送されるパケットが、既存のCSI-2規格においてペイロードとして伝送されるデータを格納する拡張ロングパケットである場合に、データが格納されるレガシーペイロードに続けて配置されるオプショナル拡張ペイロードフッタを受信し、オプショナル拡張ペイロードフッタを解釈する。
【0097】
そして、解釈部83は、例えば、オプショナル拡張ペイロードヘッダに格納されている車載用行番号やソースIDなどを読み出して、後段のLSI(図示せず)へ出力する。
【0098】
なお、解釈部83は、パケットヘッダ検出部81から供給される拡張モード検出フラグが、拡張モードであることを示していない場合には、即ち、既存のパケット構造のパケットが供給されている場合には、上述したような処理を行わずに停止する。
【0099】
選択部84は、パケットヘッダ検出部81から供給される拡張モード検出フラグに従い、既存パケットのパケット構造または拡張パケットのパケット構造に基づいて、選択的に、アンパッキング部87へデータを供給する。
【0100】
選択部85は、パケットヘッダ検出部81から供給される拡張モード検出フラグに従い、既存パケットのパケット構造または拡張パケットのパケット構造に基づいて、選択的に、CRC演算部86へデータを供給する。
【0101】
CRC演算部86は、選択部85を介して選択的に供給されるパケットヘッダ、ペイロード、拡張ペイロードヘッダ、オプショナル拡張ペイロードヘッダ、またはオプショナル拡張ペイロードフッタのCRCを演算する。そして、CRC演算部86は、CRCエラーが検出された場合、その旨を示すcrcエラー検出信号を後段のLSI(図示せず)へ出力する。
【0102】
アンパッキング部87は、選択部84を介して選択的に供給されるペイロードに格納されている画像データを取り出すアンパッキング処理を行い、取得した画像データを後段のLSI(図示せず)へ出力する。
【0103】
CCIマスタ88は、CSI-2の規格に基づき、イメージセンサ21のCCIスレーブ59(
図5)との通信を主導して行う。
【0104】
そして、アプリケーションプロセッサ22では、イメージセンサ21のレジスタ47と同様に、パラレル伝送設定がレジスタ73に書き込まれる。そして、パケットヘッダ検出部81、レーン併合部82、解釈部83、およびCRC演算部86は、レジスタ73のパラレル伝送設定を参照して、イメージセンサ21からパラレル伝送されてくるパケットを受信する。
【0105】
例えば、パケットヘッダ検出部81は、レーンごとに送信されてくるパケットヘッダを検出し、解釈部83は、レーンごとに送信されてくるMCおよびLNを解釈する。また、CRC演算部86は、レーンごとのペイロードに基づいてCRCを算出して、CRCエラーを検出する。
【0106】
さらに、アプリケーションプロセッサ22では、パケットヘッダ検出部81は、後述する
図7のエラー通知用パケット生成部89から送信されてくるエラー通知用のパケット(
図4に示したCSI-2 Short Packet)を検出することができる。そして、パケットヘッダ検出部81は、エラー通知用のパケットを検出した場合、その旨を示すフラグ(Error通知用ShortPacket受信フラグ)を、後段のLSI(図示せず)へ出力する。
【0107】
このようにアプリケーションプロセッサ22は構成されており、
図3を参照して説明したようなパラレル伝送によってイメージセンサ21から送信されてくるパケットを受信することができる。
【0108】
また、アプリケーションプロセッサ22は、イメージセンサ21から送信されてくる拡張パケットを受信して、拡張ペイロードヘッダ、オプショナル拡張ペイロードヘッダ、およびオプショナル拡張ペイロードフッタに格納されている設定情報を解釈して、画像データを取得することができる。このとき、CSI-2受信回路32では、いずれかのレーンが断線していたとしても、レーンごとのペイロードのバイト数を示すWCに基づいて、複数のレーンのうちの正常なレーンにより送信されてくるパケットのペイロードを受信することができる。
【0109】
図7は、CSI-2受信回路33を備えるシリアライザ23の構成例を示すブロック図である。
【0110】
なお、
図7に示すシリアライザ23において、
図6のアプリケーションプロセッサ22と共通する構成については、同一の符号を付し、その詳細な説明は省略する。即ち、シリアライザ23は、物理層処理部71、I2C/I3Cマスタ72、およびレジスタ73を備えて構成され、CSI-2受信回路33は、パケットヘッダ検出部81、レーン併合部82、CRC演算部86、CCIマスタ88を備えて構成される点で、
図6のアプリケーションプロセッサ22と共通する構成となっている。
【0111】
一方、シリアライザ23は、CSI-2受信回路33がエラー通知用パケット生成部89を備える点で、
図6のアプリケーションプロセッサ22と異なる構成となっている。
【0112】
エラー通知用パケット生成部89は、パケットヘッダ検出部81から供給されるフラグ(Error通知用ShortPacket受信フラグ)に従って、
図4に示したエラー通知用のパケットを生成して出力する。
【0113】
以上のように、通信システム11では、レーンごとにパケットフッタ(CRC)を独立に送信する。これによって、どのレーンでエラーが発生したのかを特定できる。そして、一定回数以上のCRC errorを特定したレーンが検出された場合、そのレーンではError頻度が高いと判断し、そのレーンを使わないようアプリケーションプロセッサ22はイメージセンサ21のレジストリを設定し、モードを変更後、通信を再開する。
【0114】
また、通信システム11では、レーンごとにパケットヘッダを独立に送信するとともに、WCはPayload全体の長さではなく、各レーンで送るバイト数に定義を変更する。これにより、断線や、Syncロス、パケットヘッダで2bit errorが発生するような不具合が発生するようなレーンがあっても、それ以外の正常なレーンは受信を継続することができる。
【0115】
また、通信システム11では、MCをレーンごとに独立に送信し、レーンごとにインクリメントする。さらに、どのレーンで送ったものかを明示するため、LaneNumberを同時に送ってもよい。なお、MCはフレームの先頭で0クリアする。これにより、CSI-2受信回路33は、断線およびSync lossを、PHY層(D-PHY or C-PHY)に変更なく、LINK層(CSI-2)だけで容易に検出することができる。また、CSI-2受信回路33は、LINK層でMCの欠落だけで、断線あるいはSync lossを判断できる。
【0116】
さらに、通信システム11では、SerDes送信回路34からデータを出せない深刻なエラー(Syncロス、断線、PHに2bit 以上のerror)が発生した場合、エラー情報を後段のアプリケーションプロセッサ22に送信することができる。このとき、CSI-2のformatに合わせてエラー通知用のパケット(
図4に示したCSI-2 Short Packet)を送信することで、エラー情報を高速に伝えることができる。これにより、後段のアプリケーションプロセッサ22が即座にSerDes送信回路34でのエラーを知ることができる。そして、アプリケーションプロセッサ22は所定回数以上の特定のレーンでエラー情報を受信した場合、そのレーンの使用を中止するようイメージセンサ21やSerDes送信回路34に指示することができる。
【0117】
以上のように、通信システム11においては、断線や、SYNCロス、Errorの頻発がどのレーンで発生しているのかをアプリケーションプロセッサ22側が迅速に特定することができる。これによって、アプリケーションプロセッサ22は特定のレーンを迂回して、正常なレーンのみを用いて通信を継続することが可能になるため、信頼性の向上を図ることができ、車載などよりセキュアな通信に対応することができる。
【0118】
<通信処理>
図8乃至
図11を参照して、イメージセンサ21およびアプリケーションプロセッサ22で行われる通信処理について説明する。
【0119】
図8は、イメージセンサ21がパケットを送信する処理を説明するフローチャートである。
【0120】
例えば、バス26を介して、イメージセンサ21がアプリケーションプロセッサ22に接続されると処理が開始される。ステップS11において、コントローラ60は、アプリケーションプロセッサ22と通信を開始するにあたって、拡張モードを使用するか否かを判定する。例えば、コントローラ60は、レジスタ47に記憶されている拡張モード設定を確認し、拡張モードを使用することを示す拡張モード設定がアプリケーションプロセッサ22により書き込まれている場合、拡張モードを使用すると判定する。
【0121】
ステップS11において、コントローラ60が、拡張モードを使用しないと判定した場合、処理はステップS12に進む。
【0122】
ステップS12において、I2C/I3Cスレーブ46は、アプリケーションプロセッサ22から(後述する
図10のステップS54で)送信されてくる画像データの送信開始命令を受信する。さらに、I2C/I3Cスレーブ46は、その送信開始命令とともに送信されてくるCSI-2規格に従った通信設定を受信して、CCIスレーブ59を介してレジスタ47に書き込む。
【0123】
ステップS13において、イメージセンサ21では、レジスタ47に記憶されている通信設定に基づいて、既存のCSI-2規格に従ったパケット構造のパケットをアプリケーションプロセッサ22へ送信する、従来のパケット送信処理が実行される。
【0124】
一方、ステップS11において、コントローラ60が、拡張モードを使用すると判定した場合、処理はステップS14に進む。
【0125】
ステップS14において、I2C/I3Cスレーブ46は、拡張モードでの通信で必要となる固定の通信設定(例えば、GLD時のPH/PFのレーンごとのコピーなど)を受信して、CCIスレーブ59を介してレジスタ47に書き込む。
【0126】
ステップS15において、I2C/I3Cスレーブ46は、アプリケーションプロセッサ22から(後述する
図10のステップS57で)送信されてくる画像データの送信開始命令を受信する。さらに、I2C/I3Cスレーブ46は、その送信開始命令とともに送信されてくるCSI-2規格に従った通信設定を受信して、CCIスレーブ59を介してレジスタ47に書き込む。
【0127】
ステップS16において、コントローラ60は、パケットの送信を開始するか否かを判定し、パケットの送信を開始すると判定するまで処理を待機する。
【0128】
そして、ステップS16において、パケットの送信を開始すると判定された場合、処理はステップS17に進み、コントローラ60は、拡張モードで送信すべきデータであるか否かを判定する。ここで、コントローラ60は、送信対象のデータの内容に応じて、例えば、所定のユースケースで送信されるようなデータである場合、拡張モードで送信すべきデータであると判定する。
【0129】
ステップS17において、コントローラ60が、拡張モードで送信すべきデータであると判定した場合、処理はステップS18に進み、拡張モードに対応した拡張パケットを送信する拡張モード送信処理(
図9参照)が行われる。
【0130】
一方、ステップS17において、コントローラ60が、拡張モードで送信すべきデータでないと判定した場合、処理はステップS19に進む。
【0131】
ステップS19において、コントローラ60は、ショートパケットを送信するか否かを判定する。例えば、コントローラ60は、フレーム開始時およびフレーム終了時にショートパケットを送信すると判定する。
【0132】
ステップS19において、コントローラ60がショートパケットを送信すると判定した場合、処理はステップS20に進む。ステップS20において、パケットヘッダ生成部52がパケットヘッダを生成して、従来のパケット構造のショートパケットをアプリケーションプロセッサ22へ送信する。
【0133】
一方、ステップS19において、コントローラ60がショートパケットを送信しない(即ち、ロングパケットを送信する)と判定した場合、処理はステップS21に進む。ステップS21において、パッキング部51が画像データをペイロードに格納し、CRC演算部57がCRCを求めることにより、従来のパケット構造のロングパケットを生成して、アプリケーションプロセッサ22へ送信する。
【0134】
ステップS18、ステップS20、またはステップS21の処理後、処理はステップS22に進み、コントローラ60は、パケット送信処理を終了する。その後、処理はステップS16に戻り、以下、次のパケットを対象として、同様にパケットを送信する処理が繰り返して行われる。
【0135】
図9は、
図8のステップS18の処理で行われる拡張モード送信処理を説明するフローチャートである。
【0136】
ステップS31において、パケットヘッダ生成部52は、VCやデータタイプ、WCなどを格納したパケットヘッダを生成し、アプリケーションプロセッサ22へ送信する。このとき、パケットヘッダ生成部52は、パケットヘッダのデータタイプに、拡張モードであることを示す拡張モード設定情報(DataType[5:3]=3’b111)、および、拡張モードのモード設定が拡張モード0であることを識別する拡張タイプ設定情報(DataType[1:0] =2’b00)を書き込む。また、パケットヘッダは、レーンごとに独立して送信される。
【0137】
ステップS32において、アプリケーションプロセッサ22は、拡張ショートパケットを送信するか否かを判定する。例えば、コントローラ60は、フレーム開始時およびフレーム終了時に拡張ショートパケットを送信すると判定する。
【0138】
ステップS32において、アプリケーションプロセッサ22が、拡張ショートパケットを送信すると判定した場合、処理はステップS33に進む。
【0139】
ステップS33において、ペイロードヘッダ生成部53は、ペイロードの1バイト目で、データタイプ(DataType[7:0])をショートパケットと設定した拡張ペイロードヘッダを送信する。このとき、ペイロードヘッダ生成部53は、拡張ペイロードヘッダに格納される各種の設定(例えば、OePH[7:0]やOePF[3:0]など)を行う。
【0140】
ステップS34において、ペイロードヘッダ生成部53は、ペイロードの2バイト目に、フレームナンバー(FN:FrameNumber)を格納して送信する。
【0141】
ステップS35において、ペイロードヘッダ生成部53は、ステップS33で行われた設定(OePH[7:0])に従って、OePH(オプショナル拡張ペイロードヘッダ)を生成して送信する。
【0142】
ステップS36において、CRC演算部57は、CRCを求めて、パケットフッタとして送信する。このとき、パケットフッタは、レーンごとに独立して送信される。
【0143】
一方、ステップS32において、アプリケーションプロセッサ22が、拡張ショートパケットを送信しない(即ち、ロングパケットを送信する)と判定した場合、処理はステップS37に進む。
【0144】
ステップS37において、ペイロードヘッダ生成部53は、ペイロードの1バイト目で、データタイプ(DataType[7:0])をショートパケット以外と設定した拡張ペイロードヘッダを送信する。このとき、ペイロードヘッダ生成部53は、拡張ペイロードヘッダに格納される各種の設定(例えば、OePH[7:0]やOePF[3:0]など)を行う。
【0145】
ステップS38において、ペイロードヘッダ生成部53は、ステップS37で行われた設定(OePH[7:0])に従って、OePH(オプショナル拡張ペイロードヘッダ)を生成して送信する。
【0146】
ステップS39において、パッキング部51は、画像処理部43から供給される画像データをパッキングし、レガシーペイロードを生成して送信する。
【0147】
ステップS40において、ペイロードフッタ生成部54は、ステップS37で行われた設定(OePF[3:0])に従って、OePH(オプショナル拡張ペイロードヘッダ)を生成して送信する。
【0148】
ステップS41において、CRC演算部57は、CRCを求めて、パケットフッタとして送信する。このとき、パケットフッタは、レーンごとに独立して送信される。
【0149】
そして、ステップS36またはS41の処理後、拡張モード送信処理は終了される。
【0150】
以上のように、イメージセンサ21は、拡張ショートパケットまたは拡張ロングパケットを生成して送信することができる。
【0151】
図10は、アプリケーションプロセッサ22がパケットを受信する処理を説明するフローチャートである。
【0152】
例えば、バス26を介して、イメージセンサ21がアプリケーションプロセッサ22に接続されると処理が開始される。ステップS51において、イメージセンサ21の初期設定(例えば、物理層としてC-PHYおよびD-PHYのどちらを使用するかなど)をレジスタ73に書き込み、CCIマスタ88を介してI2C/I3Cマスタ72によりイメージセンサ21へ送信する。これにより、その初期設定が、イメージセンサ21のレジスタ47に書き込まれる。
【0153】
ステップS52において、イメージセンサ21が拡張モードに対応しているか否かを認識する。例えば、I2C/I3Cマスタ72によりイメージセンサ21のレジスタ47に記憶されている設定値(例えば、拡張PH/PF対応capability)を取得することで、イメージセンサ21が拡張モードに対応しているか否かを認識することができる。または、例えば、マニュアルなどによる入力に基づいて、事前に、イメージセンサ21が拡張モードに対応しているか否かを認識することができる。
【0154】
ステップS53において、イメージセンサ21が拡張モードに対応しており、かつ、アプリケーションプロセッサ22が実行するアプリケーションによって拡張モードの使用が求められているか否かを判定する。
【0155】
ステップS53において、イメージセンサ21が拡張モードに対応していない、または、拡張モードの使用が求められていないと判定した場合、処理はステップS54に進む。
【0156】
ステップS54において、I2C/I3Cマスタ72により画像データの送信開始命令をイメージセンサ21へ送信する。このとき、CSI-2規格に従った通信設定も送信させる。
【0157】
ステップS55において、アプリケーションプロセッサ22では、ステップS54で送信した通信設定に基づいて、既存のCSI-2規格に従ったパケット構造のパケットを受信する、従来のパケット受信処理が行われる。
【0158】
一方、ステップS53において、イメージセンサ21が拡張モードに対応しており、かつ、アプリケーションプロセッサ22が実行するアプリケーションによって拡張モードの使用が求められていると判定した場合、処理はステップS56に進む。
【0159】
ステップS56において、I2C/I3Cマスタ72は、拡張モードでの通信が開始される前に、拡張モードでの通信に必要となる固定の通信設定を送信する。これにより、その固定の通信設定が、イメージセンサ21のレジスタ47に書き込まれる(
図8のステップS14)。
【0160】
ステップS57において、I2C/I3Cマスタ72により画像データの送信開始命令をイメージセンサ21へ送信する。このとき、CSI-2規格に従った通信設定も送信させる。
【0161】
ステップS58において、パケットヘッダ検出部81は、物理層処理部71から供給されるデータを確認することによりパケットの受信を開始したか否かを判定し、パケットの受信を開始したと判定するまで処理を待機する。例えば、パケットヘッダ検出部81は、物理層処理部71から供給されるデータからパケットヘッダを検出した場合、パケットの受信を開始したと判定する。このとき、パケットヘッダは、レーンごとに独立して送信されてくる。
【0162】
ステップS58において、パケットヘッダ検出部81が、パケットの受信を開始したと判定した場合、処理はステップS59に進む。
【0163】
ステップS59において、パケットヘッダ検出部81は、ステップS58で検出したパケットヘッダのデータタイプを確認して、受信を開始したパケットが拡張モードに対応した拡張パケットであるか否かを判定する。例えば、パケットヘッダ検出部81は、パケットヘッダのデータタイプにおいて、拡張モード設定情報が拡張モードであることを示す場合(DataType[5:3]=3’b111)、受信を開始したパケットが拡張パケットであると判定する。
【0164】
ステップS59において、パケットヘッダ検出部81が、受信を開始したパケットが拡張パケットであると判定した場合、処理はステップS60に進み、拡張パケットを受信する拡張モード受信処理(
図11参照)が行われる。
【0165】
一方、ステップS59において、パケットヘッダ検出部81が、受信を開始したパケットが拡張パケットでないと判定した場合、処理はステップS61に進む。
【0166】
ステップS61において、パケットヘッダ検出部81は、ステップS58で検出したパケットヘッダのデータタイプ(DataType[5:0])を確認して、受信を開始したパケットがショートパケットであるか否かを判定する。
【0167】
ステップS61において、パケットヘッダ検出部81が、受信を開始したパケットがショートパケットであると判定した場合、処理はステップS62に進む。ステップS62において、パケットヘッダ検出部81は、イメージセンサ21から送信されてくる従来のパケット構造のショートパケットを受信する。
【0168】
一方、ステップS61において、パケットヘッダ検出部81が、受信を開始したパケットがショートパケットでない(即ち、ロングパケットの受信を開始している)と判定した場合、処理はステップS63に進む。ステップS63において、アンパッキング部87は、イメージセンサ21から送信されてくる従来のパケット構造のロングパケットのペイロードを受信して画像データを取り出し、CRC演算部86は、パケットヘッダに続けて送信されてくるWC+1バイト目をCRCとして受信する。
【0169】
ステップS60、ステップS62、またはステップS63の処理後、処理はステップS64に進み、パケット受信処理を終了する。その後、処理はステップS58に戻り、以下、次のパケットを対象として、同様にパケットを受信する処理が繰り返して行われる。
【0170】
図11は、
図10のステップS60の処理で行われる拡張モード受信処理を説明するフローチャートである。
【0171】
ステップS71において、パケットヘッダ検出部81は、拡張モードのモード設定が拡張モード0であるか否かを判定する。例えば、パケットヘッダ検出部81は、パケットヘッダのデータタイプにおいて、拡張タイプ設定情報が拡張モード0であることを示す場合(DataType[1:0] =2’b00)、拡張モードのモード設定が拡張モード0であると判定する。
【0172】
ステップS71において、パケットヘッダ検出部81が、拡張モードのモード設定が拡張モード0であると判定した場合、処理はステップS72に進む。ステップS72において、解釈部83は、ペイロードの1バイト目を拡張ペイロードヘッダとして受信する。
【0173】
ステップS73において、解釈部83は、ステップS72で受信した拡張ペイロードヘッダのデータタイプ(DataType[7:0])を確認して、受信を開始したパケットが拡張ショートパケットであるか否かを判定する。
【0174】
ステップS73において、解釈部83が、拡張ショートパケットであると判定した場合、処理はステップS74に進む。ステップS74において、解釈部83は、ステップS72で受信した拡張ペイロードヘッダに格納されている設定(OePH[7:0])に従って、オプショナル拡張ペイロードヘッダを受信する。
【0175】
ステップS75において、CRC演算部86は、オプショナル拡張ペイロードヘッダに続けて送信されてくるWC+1バイト目をCRCとして受信する。このとき、パケットフッタであるCRCは、レーンごとに独立して送信されてくる。
【0176】
一方、ステップS73において、解釈部83が、拡張ショートパケットでない(即ち、拡張ロングパケットの受信を開始している)と判定した場合、処理はステップS76に進む。ステップS76において、解釈部83は、ステップS72で受信した拡張ペイロードヘッダに格納されている設定(OePH[7:0])に従って、オプショナル拡張ペイロードヘッダを受信する。
【0177】
ステップS77において、アンパッキング部87は、イメージセンサ21から送信されてくる拡張ロングパケットのレガシーペイロードを受信して画像データを取り出す。
【0178】
ステップS78において、解釈部83は、ステップS72で受信した拡張ペイロードヘッダに格納されている設定(OePF[3:0])に従って、オプショナル拡張ペイロードフッタを受信する。
【0179】
ステップS79において、CRC演算部86は、オプショナル拡張ペイロードフッタに続けて送信されてくるWC+1バイト目をCRCとして受信する。このとき、パケットフッタであるCRCは、レーンごとに独立して送信されてくる。
【0180】
そして、ステップS71で拡張モードのモード設定が拡張モード0でないと判定した場合、ステップS75の処理後、またはステップS79の処理後、拡張モード受信処理は終了される。
【0181】
以上のように、アプリケーションプロセッサ22は、拡張ショートパケットまたは拡張ロングパケットを受信して、データを取得することができる。
【0182】
図12は、
図6のエラー処理部74で行われるエラー処理を説明するフローチャートである。
【0183】
ステップS81において、エラー処理部74は、CRCエラーを検出したか否か、即ち、CRC演算部86から出力されるcrcエラー検出信号が、CRCエラーが検出されたことを示しているか否かを判定する。
【0184】
ステップS81において、エラー処理部74が、CRCエラーを検出したと判定した場合、処理はステップS82に進む。ステップS82において、エラー処理部74は、CRCエラーを検出したレーンに対するエラーカウントレジスタをインクリメント(+1)する。
【0185】
ステップS83において、エラー処理部74は、ステップS82でインクリメントしたエラーカウントレジスタの値が、所定の回数を超えたか否かを判定する。
【0186】
ステップS83において、エラー処理部74が、エラーカウントレジスタの値が所定の回数を超えていないと判定した場合、処理はステップS84に進む。ステップS84において、アプリケーションプロセッサ22は、CRCエラーを検出した受信データを破棄した後、処理はステップS81に戻り、以下、同様の処理が繰り返して行われる。
【0187】
一方、ステップS81において、エラー処理部74が、CRCエラーを検出していないと判定した場合、処理はステップS85に進む。ステップS85において、エラー処理部74は、エラー通知用のショートパケットを受信したか否かを判定する。例えば、エラー処理部74は、パケットヘッダ検出部81から出力されるError通知用ShortPacket受信フラグに従って、この判定を行うことができる。
【0188】
ステップS85において、エラー処理部74が、エラー通知用のショートパケットを受信したと判定した場合、処理はステップS86に進む。
【0189】
ステップS86において、エラー処理部74は、エラー通知用のショートパケットにおいてエラーが発生していることが示されている対象のレーンの使用を中止する。そして、エラー処理部74は、対象のレーンを使用中止した旨の通知を、CCIマスタ88からI2C/I3Cマスタ72を介して、イメージセンサ21、シリアライザ23、およびデシリアライザ24へ送信し、対象のレーンの復帰処理を行わせる。
【0190】
即ち、この場合、エラー通知用のショートパケットを受信することができたことより、バス26およびバス25-2は正常であり、バス25-1に断線が発生していると認識することができる。ただし、バス25-1およびバス25-2は、両方とも同じレーン数でない場合には通信速度のバランスを保つことができない。このため、バス25-1の断線を検出したときには、バス25-2では使用可能なレーンであっても、バス25-1およびバス25-2でレーン数を同数にする処理が行われる。
【0191】
その後、処理はステップS81に戻り、以下、同様の処理が繰り返して行われる。
【0192】
一方、ステップS85において、エラー処理部74が、エラー通知用のショートパケットを受信していないと判定した場合、処理はステップS87に進む。ステップS87において、エラー処理部74は、一部のレーンが受信できない状態が所定回数以上となったか否かを判定する。
【0193】
ステップS87において、エラー処理部74が、一部のレーンが受信できない状態が所定回数以上となったと判定した場合、処理はステップS88に進む。
【0194】
ステップS88において、エラー処理部74は、解釈部83がオプショナル拡張ペイロードヘッダに格納されている設定情報を解釈して出力し、それぞれのレーンで独立して送信されるMC(GLD用Message Count)およびLN(Lane Number)に基づいて、エラーが発生している対象のレーンを特定する。ステップS88の処理後、処理はステップS86に進み、以下、上述したのと同様の処理が行われる。
【0195】
即ち、この場合、MCの欠落が連続で発生しているということは、バス25-1およびバス26は正常であり、バス25-2に断線が発生していると認識することができる。ただし、バス25-1およびバス25-2は、両方とも同じレーン数でない場合には通信速度のバランスを保つことができない。このため、バス25-2の断線したレーンを特定し、バス25-1の対応するレーンも使用禁止とする。
【0196】
一方、ステップS87において、エラー処理部74が、一部のレーンが受信できない状態が所定回数以上となっていないと判定した場合、処理はステップS89に進む。
【0197】
ステップS89において、エラー処理部74は、断線を通知する割り込みを受信したか否かを判定する。
【0198】
ここで、例えば、デシリアライザ24は、バス26の断線を検知した場合、バス25-2のHS-GPIO信号線のうちの1本を断線エラー検出割り込み線として用いて、バス26の断線を検知したことをエラー処理部74に通知することができる。従って、エラー処理部74は、ステップS87において、HS-GPIO信号線を断線エラー検出割り込み線用いて、断線を通知する割り込みを受信したか否かを判定することができる。また、その他、バス25-2のHS-GPIO信号線のうちの1本をエラー検出割り込み線として用い、具体的なエラーの内容は、I2C/I3Cマスタ72を経由して、デシリアライザ24の内部レジスタを読むことで、検出したエラーのうちの、バス26の断線を検知してもよい。
【0199】
ステップS89において、エラー処理部74は、断線を通知する割り込みを受信したと判定した場合、処理はステップS90に進む。ステップS90において、エラー処理部74は、断線が発生している対象のレーンの使用を中止し、CSI-2による通信の通信速度を低下させるように、CCIマスタ88に対する設定を行う。
【0200】
即ち、この場合、バス26で断線が発生したことになり、バス26が複数のレーンで構成されるとき、断線が発生している対象のレーンを使用禁止にして通信を継続する。そして、バス26の帯域が減少したことに合わせて、通信速度のバランスを保つために、バス25-1および25-2の通信速度の低下させることになる。
【0201】
ステップS90の処理後、または、ステップS89において断線を通知する割り込みを受信していないと判定された場合、ステップS81に戻り、以下、同様の処理が繰り返して行われる。
【0202】
以上のように、エラー処理部74は、CRCエラーが多く検出されているレーンや、エラー通知用のショートパケットにより通知された断線したレーン、受信できないことが頻発しているレーン、断線を通知する割り込みを受信により通知されたレーンなどを、迅速に特定することができる。これにより、アプリケーションプロセッサ22は、エラー処理部74により特定されたレーンの使用を中止して、正常なレーンのみを用いて通信を継続することができる。従って、通信システム11は、信頼性の向上を図ることができ、車載などよりセキュアな通信に対応することができる。
【0203】
<通信システムの第2の構成例>
図13乃至
図15を参照して、本技術を適用した通信システムの第2の実施の形態の構成例について説明する。
【0204】
図13では、第1の実施の形態である通信システム11と、第2の実施の形態である通信システム11Aとを比較して説明する。
【0205】
例えば、
図13のAに示すように、通信システム11は、イメージセンサ21側では、CSI-2送信回路が物理層(A-PHY Tx)に接続されるとともに、アプリケーションプロセッサ22側では、物理層(A-PHY Rx)がCSI-2受信回路に接続される構成となっている。
【0206】
従って、通信システム11では、既存のCSI-2受信回路およびCSI-2送信回路に対して回路構成を変更する必要があった。
【0207】
これに対し、
図13のBに示すように、通信システム11Aは、イメージセンサ21側で、CSI-2送信回路および物理層(A-PHY Tx)が中間レイヤ(Adaptation Layer)を介して接続されるとともに、アプリケーションプロセッサ22側で、物理層(A-PHY Rx)およびCSI-2受信回路が中間レイヤ(Adaptation Layer)を介して接続される構成となっている。
【0208】
このように、通信システム11Aは、中間レイヤを設けることにより、既存のCSI-2受信回路およびCSI-2送信回路の回路構成をそのまま使用することができる。即ち、上述の
図3を参照して説明したようなパラレル伝送に必要な機能を備えた中間レイヤを設けることで、既存のCSI-2受信回路およびCSI-2送信回路の回路構成を変更することを回避することができる。
【0209】
即ち、
図14に示すように、パケットヘッダおよびMCをレーンごとに独立して送信することや、CRCをレーンごとのペイロードから算出して、レーンごとに独立して送信することなどは、中間レイヤ(Adaptation Layer)により付加的に処理することができる。また、従来のCSI-2と同様のペイロードは、既存のCSI-2受信回路およびCSI-2送信回路において処理することができる。
【0210】
図15には、通信システム11Aを構成するイメージセンサ21Aおよびアプリケーションプロセッサ22Aの概略的な構成例が示されている。
【0211】
図15に示すように、イメージセンサ21Aは、不揮発性メモリ(Non-Volatile Memory)101、CSI-2送信回路102、中間レイヤ103、選択部104、および物理層処理部105を備えて構成される。アプリケーションプロセッサ22Aは、不揮発性メモリ111、物理層処理部112、中間レイヤ113、選択部114、およびCSI-2送信回路115を備えて構成される。
【0212】
例えば、物理層処理部105と物理層処理部112とは、A-PHY,D-PHY、およびC-PHYのうちの、いずれかの物理層を選択的に切り替えることができる。そして、それらを選択する選択信号が、不揮発性メモリ101からイメージセンサ21Aの各ブロックに供給され、不揮発性メモリ111からアプリケーションプロセッサ22Aの各ブロックに供給される。
【0213】
従って、例えば、選択信号がA-PHYが選択されていることを示している場合、イメージセンサ21Aでは、CSI-2送信回路102は中間レイヤ103にパケットを供給し、中間レイヤ103は、パケットヘッダおよびMCをレーンごと生成したり、CRCをレーンごとのペイロードから算出したりする。そして、選択部104は、中間レイヤ103からの出力を物理層処理部105へ供給し、物理層処理部105においてA-PHYを物理層とした処理が行われる。
【0214】
そして、アプリケーションプロセッサ22Aでは、物理層処理部112においてA-PHYを物理層とした処理を行って、受信したパケットが中間レイヤ113に供給され、レーンごとに送信されてくるものに対する処理が行われる。そして、選択部114は、中間レイヤ113からの出力をCSI-2送信回路115に供給し、CSI-2送信回路115においてパケットに対する処理が行われる。
【0215】
一方、選択信号がD-PHYまたはC-PHYが選択されていることを示している場合、イメージセンサ21Aでは、CSI-2送信回路102は選択部104を介して物理層処理部105へパケットを供給し、物理層処理部105においてD-PHYまたはC-PHYを物理層とした処理が行われる。
【0216】
そして、アプリケーションプロセッサ22Aでは、物理層処理部112においてD-PHYまたはC-PHYYを物理層とした処理を行って、受信したパケットが選択部114を介してCSI-2送信回路115へ供給される。
【0217】
<コンピュータの構成例>
図16は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0218】
コンピュータにおいて、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203、およびEEPROM(Electronically Erasable and Programmable Read Only Memory)204は、バス205により相互に接続されている。バス205には、さらに、入出力インタフェース206が接続されており、入出力インタフェース206が外部に接続される。
【0219】
以上のように構成されるコンピュータでは、CPU201が、例えば、ROM202およびEEPROM204に記憶されているプログラムを、バス205を介してRAM203にロードして実行することにより、上述した一連の処理が行われる。また、コンピュータ(CPU201)が実行するプログラムは、ROM202に予め書き込んでおく他、入出力インタフェース206を介して外部からEEPROM204にインストールしたり、更新したりすることができる。
【0220】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
【0221】
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0222】
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0223】
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0224】
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0225】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0226】
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0227】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0228】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0229】
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方を、前記レーンごとに独立して送信する送信部
を備える通信装置。
(2)
前記レーンごとの前記パケットフッタとして、それぞれ対応する前記レーンに分配される前記パケットのペイロードから算出されるCRC(Cyclic Redundancy Check)を生成するパケットフッタ生成部
をさらに備える上記(1)に記載の通信装置。
(3)
前記レーンごとの前記パケットヘッダを、それぞれ対応する前記レーンに分配される前記パケットのペイロードのバイト数を示すワードカウントを含めて生成するパケットヘッダ生成部
をさらに備える上記(1)または(2)に記載の通信装置。
(4)
前記パケットのペイロードの先頭に配置されるペイロードヘッダを生成するペイロードヘッダ生成部をさらに備え、
前記送信部は、前記ペイロードヘッダを前記レーンごとに独立して送信し、
前記ペイロードヘッダには、前記レーンごとにインクリメントされるメッセージカウントが含まれるとともに、それぞれ送信される前記レーンを識別するレーンナンバーが必要に応じて含まれる
上記(1)から(3)までのいずれかに記載の通信装置。
(5)
通信装置が、
受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方を、前記レーンごとに独立して送信すること
を含む通信方法。
(6)
通信装置のコンピュータに、
受信側の通信装置との間で、複数のレーンに分配してパケットを送信する際に、前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方を、前記レーンごとに独立して送信すること
を含む通信処理を実行させるためのプログラム。
(7)
送信側の通信装置から、複数のレーンに分配して送信されてくるパケットを受信する受信部
を備え、
前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、前記レーンごとに独立して送信されてくる
通信装置。
(8)
前記レーンごとに送信されてくる前記パケットフッタは、それぞれ対応する前記レーンに分配される前記パケットのペイロードから算出されるCRC(Cyclic Redundancy Check)であり、
前記CRCに基づいて検出されるCRCエラーが所定回数以上となる前記レーンの使用を停止すると判断し、そのレーンの使用を停止するように前記送信側の通信装置に対して設定するエラー処理部をさらに備える
上記(7)に記載の通信装置。
(9)
前記レーンごとに送信されてくる前記パケットヘッダには、それぞれ対応する前記レーンに分配される前記パケットのペイロードのバイト数を示すワードカウントが含まれており、
前記受信部は、前記ワードカウントに基づいて、複数の前記レーンのうちの正常な前記レーンにより送信されてくる前記パケットのペイロードを受信する
上記(7)または(8)に記載の通信装置。
(10)
前記パケットのペイロードの先頭には、前記レーンごとにインクリメントされるメッセージカウントが含まれるとともに、それぞれ送信される前記レーンを識別するレーンナンバーが必要に応じて含まれるペイロードヘッダが配置されており、
前記メッセージカウントおよび前記レーンナンバーに基づいて、複数の前記レーンのうちの異常が発生している前記レーンを特定し、そのレーンの使用を停止するように前記送信側の通信装置に対して設定するエラー処理部をさらに備える
上記(7)から(9)までのいずれかに記載の通信装置。
(11)
前記送信側の通信装置とバスを介して直接的に接続され、前記パケットのパケットヘッダまたはパケットフッタに基づいて、前記バスに所定の不具合が発生したことを検出したときに、後段にある受信側の他の通信装置に対して、前記不具合の内容を示すエラー情報を通知する通知部
をさらに備える上記(7)から(10)までのいずれかに記載の通信装置。
(12)
通信装置が、
送信側の通信装置から、複数のレーンに分配して送信されてくるパケットを受信すること
を含み、
前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、前記レーンごとに独立して送信されてくる
を含む通信方法。
(13)
通信装置のコンピュータに、
送信側の通信装置から、複数のレーンに分配して送信されてくるパケットを受信すること
を含み、
前記パケットのパケットヘッダおよびパケットフッタのうちの少なくとも一方が、前記レーンごとに独立して送信されてくる
を含む通信処理を実行させるためのプログラム。
【0230】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【符号の説明】
【0231】
11 通信システム, 21 イメージセンサ, 22 アプリケーションプロセッサ, 23 シリアライザ, 24 デシリアライザ, 25および26 バス, 31 拡張モード対応CSI-2送信回路, 32 拡張モード対応CSI-2受信回路, 33 CSI-2受信回路, 34 SerDes送信回路, 35 SerDes受信回路, 36 CSI-2送信回路, 41 画素, 42 AD変換器, 43 画像処理部, 44 画素CRC演算部, 45 物理層処理部, 46 I2C/I3Cスレーブ, 47 レジスタ, 51 パッキング部, 52 パケットヘッダ生成部, 53 ペイロードヘッダ生成部, 54 ペイロードフッタ生成部, 55および56 選択部, 57 CRC演算部, 58 レーン分配部, 59 CCIスレーブ, 60 コントローラ, 71 物理層処理部, 72 I2C/I3Cマスタ, 73 レジスタ, 81 パケットヘッダ検出部, 82 レーン併合部, 83 解釈部, 84および85 選択部, 86 CRC演算部, 87 アンパッキング部, 88 CCIマスタ, 89 エラー通知用パケット生成部