(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-16
(45)【発行日】2024-08-26
(54)【発明の名称】通信装置及び通信システム
(51)【国際特許分類】
H04L 25/02 20060101AFI20240819BHJP
H04L 1/16 20230101ALI20240819BHJP
H04L 7/00 20060101ALI20240819BHJP
【FI】
H04L25/02 Z
H04L1/16
H04L7/00 500
(21)【出願番号】P 2022508289
(86)(22)【出願日】2021-03-11
(86)【国際出願番号】 JP2021009854
(87)【国際公開番号】W WO2021187320
(87)【国際公開日】2021-09-23
【審査請求日】2024-01-24
(32)【優先日】2020-03-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】100091487
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(72)【発明者】
【氏名】平間 孝廉
(72)【発明者】
【氏名】山田 順也
(72)【発明者】
【氏名】高橋 宏雄
(72)【発明者】
【氏名】百代 俊久
【審査官】川口 貴裕
(56)【参考文献】
【文献】特開2016-149609(JP,A)
【文献】米国特許第7317733(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 25/02
H04L 1/16
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
第1の外部装置からの第1の外部信号に基づいて第1の出力信号を生成して第2の外部装置に出力するとともに、前記第2の外部装置からの第2の外部信号に基づいて第2の出力信号を生成して前記第1の外部装置に出力するLINKを備え、
前記第1の出力信号及び前記第2の外部信号のそれぞれは、
前記第1の外部装置から送信されるコマンドの内容を示すコマンド情報と、
前記第1の外部装置から送信されるデータの最終宛先装置を識別する最終宛先装置識別情報と、
前記最終宛先装置の内部のアドレスを示す内部アドレス情報と、
前記第1の外部装置から送信されるデータの長さを示すデータ長情報と、
前記第1の外部装置から送信されるデータの終了位置を示すデータ終了位置情報と、を含む、通信装置。
【請求項2】
前記最終宛先装置識別情報は、前記コマンド情報の次に配置され、
前記内部アドレス情報は、前記最終宛先装置識別情報の次に配置され、
前記データ長情報は、前記内部アドレス情報の次に配置される、請求項1に記載の通信装置。
【請求項3】
前記コマンド情報は、前記通信装置と前記第2の外部装置との間の所定の通信規格上のコマンドフォーマットを定義するコマンドフォーマット情報を含む、請求項1に記載の通信装置。
【請求項4】
前記コマンド情報は、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報を含む、請求項1に記載の通信装置。
【請求項5】
前記第1の出力信号及び前記第2の外部信号のそれぞれは、前記第2の外部装置と前記最終宛先装置の間の通信周波数を指定する通信周波数情報をさらに含む、請求項1に記載の通信装置。
【請求項6】
前記第1の出力信号及び前記第2の外部信号は、I2C(Inter-Integrated Circuit)通信のコマンドを前記通信装置と前記第2の外部装置との間の所定の通信規格にプロトコル変換したコマンドを含む、請求項1に記載の通信装置。
【請求項7】
前記LINKは、前記第1の外部信号を構成する各情報単位を前記第1の外部装置から受信するたびに、肯定応答を示すACK信号、又は否定応答を示すNACK信号を前記第1の外部装置に送信する、請求項1に記載の通信装置。
【請求項8】
前記LINKは、前記第1の外部信号に応じた信号と、前記第2の外部信号に応じた信号を記憶する記憶部を有し、
前記LINKは、前記第1の外部装置からの前記第1の外部信号の受信が終了すると、前記受信されて前記記憶部に記憶された第1の外部信号をまとめてプロトコル変換した後に前記第1の出力信号を生成する、請求項1に記載の通信装置。
【請求項9】
前記LINKによるプロトコル変換は、TDD(Time Division Duplex)のプロトコル変換である、請求項8に記載の通信装置。
【請求項10】
前記LINKは、前記第1の出力信号を前記第2の外部装置に送信し、前記第2の外部装置から前記第1の出力信号に対する処理が完了したことを示す情報を受信すると、処理完了を示す信号を前記記憶部に記憶する、請求項8に記載の通信装置。
【請求項11】
前記LINKは、前記第1の外部装置からのコマンドに基づいて、前記記憶部の記憶領域を解放する、請求項8に記載の通信装置。
【請求項12】
前記LINKは、前記第2の外部装置から送信された前記第2の外部信号に対する処理完了情報を、前記第1の外部装置からの要求信号に応じて前記第1の外部装置に出力するか、又は前記第1の外部装置に対して割り込み処理用の割り込み要求フラグを前記第1の外部装置に出力する、請求項1に記載の通信装置。
【請求項13】
前記LINKは、前記第1の出力信号の出力を指示する出力指示情報と、前記第1の外部信号の送信終了を示す送信終了情報とを含む前記第1の外部信号を前記第1の外部装置から受信する、請求項1に記載の通信装置。
【請求項14】
前記LINKは、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報として第1の値が受信された場合には、前記第1の外部信号の送信終了を示す送信終了情報が受信されると、前記第1の外部装置から送信される前記第1の外部信号が終了したと認識する、請求項1に記載の通信装置。
【請求項15】
前記LINKは、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報として第2の値が受信された場合には、その後に受信する前記データ終了判定条件情報の値によらず、前記第1の出力信号の出力を指示する出力指示情報及び前記第1の外部信号の送信終了を示す送信終了情報が受信されると、前記第1の外部装置から送信される前記第1の外部信号が終了したと認識する、請求項1に記載の通信装置。
【請求項16】
前記LINKは、前記第1の出力信号を前記第2の外部装置に送信した後、前記記憶部の記憶領域を解放する、請求項8に記載の通信装置。
【請求項17】
前記LINKは、
前記記憶部に記憶された前記第2の外部信号に基づく信号に対して前記第2の出力信号に対するプロトコル変換を行った後の信号を前記第1の外部装置に情報単位ごとに出力することと、
前記第1の外部装置から出力される前記第1の外部信号を構成する各情報単位を受信することと、の少なくとも一方を、予め定めた回数又は時間内に行う、請求項8に記載の通信装置。
【請求項18】
第1のLINKを備えるMaster SerDesと、
第2のLINKを備えるSlave SerDesと、を備え、
前記第1のLINKは、Masterからの第1の外部信号に基づいて第1の出力信号を生成して前記Slave SerDesに出力するとともに、前記Slave SerDesからの第2の出力信号に基づいて第3の出力信号を生成して前記Masterに出力し、
前記第2のLINKは、Slaveからの第2の外部信号に基づいて前記第2の出力信号を生成して前記Master SerDesに出力するとともに、前記Master SerDesからの前記第1の出力信号に基づいて第4の出力信号を生成して前記Slaveに出力し、
前記第1の出力信号、前記第2の出力信号、前記第1の外部信号及び前記第2の外部信号のそれぞれは、
前記Masterから送信されるコマンドの内容を示すコマンド情報と、
前記Slaveを識別する最終宛先装置識別情報と、
前記Slaveの内部のアドレスを示す内部アドレス情報と、
前記Masterから送信されるデータの長さを示すデータ長情報と、
前記Masterから送信されるデータの終了位置を示すデータ終了位置情報と、を含む、通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置及び通信システムに関する。
【背景技術】
【0002】
マスタ装置とスレーブ装置の間でデータ通信を行う場合に、マスタ装置用のSerDes装置とスレーブ装置用のSerDes装置との間で、シリアル通信を行う技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
マスタ装置から送信されたデータをスレーブ装置が受信した場合、受信したことを示すACK信号をスレーブ装置からマスタ装置に送信するのが一般的であるが、マスタ装置とスレーブ装置の間に、2つのSerDes装置が配置されている場合には、ACK信号はこれらのSerDes装置を通過するため、スレーブ装置がACK信号を送信してから、そのACK信号をマスタ装置が受信されるまでにかなりの時間を要してしまう。
【0005】
マスタ装置が、スレーブ装置からのACK信号が届くまでは、新たな信号をスレーブ装置に送信できない仕様になっている場合には、ACK信号の受信に時間がかかるために、マスタ装置の処理が遅延してしまうおそれがある。
【0006】
そこで、本開示では、効率よくデータ通信を行うことが可能な通信装置及び通信システムを提供するものである。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本開示によれば、第1の外部装置からの第1の外部信号に基づいて第1の出力信号を生成して第2の外部装置に出力するとともに、前記第2の外部装置からの第2の外部信号に基づいて第2の出力信号を生成して前記第1の外部装置に出力するLINKを備え、
前記第1の出力信号及び前記第2の外部信号のそれぞれは、
前記第1の外部装置から送信されるコマンドの内容を示すコマンド情報と、
前記第1の外部装置から送信されるデータの最終宛先装置を識別する最終宛先装置識別情報と、
前記最終宛先装置の内部のアドレスを示す内部アドレス情報と、
前記第1の外部装置から送信されるデータの長さを示すデータ長情報と、
前記第1の外部装置から送信されるデータの終了位置を示すデータ終了位置情報と、を含む、通信装置が提供される。
【0008】
前記最終宛先装置識別情報は、前記コマンド情報の次に配置され、
前記内部アドレス情報は、前記最終宛先装置識別情報の次に配置され、
前記データ長情報は、前記内部アドレス情報の次に配置されてもよい。
【0009】
前記コマンド情報は、前記通信装置と前記第2の外部装置との間の所定の通信規格上のコマンドフォーマットを定義するコマンドフォーマット情報を含んでもよい。
【0010】
前記コマンド情報は、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報を含んでもよい。
【0011】
前記第1の出力信号及び前記第2の外部信号のそれぞれは、前記第2の外部装置と前記最終宛先装置の間の通信周波数を指定する通信周波数情報をさらに含んでもよい。
【0012】
前記第1の出力信号及び前記第2の外部信号は、I2C(Inter-Integrated Circuit)通信のコマンドを前記通信装置と前記第2の外部装置との間の所定の通信規格にプロトコル変換したコマンドを含んでもよい。
【0013】
前記LINKは、前記第1の外部信号を構成する各情報単位を前記第1の外部装置から受信するたびに、肯定応答を示すACK信号、又は否定応答を示すNACK信号を前記第1の外部装置に送信してもよい。
【0014】
前記LINKは、前記第1の外部信号に応じた信号と、前記第2の外部信号に応じた信号を記憶する記憶部を有し、
前記LINKは、前記第1の外部装置からの前記第1の外部信号の受信が終了すると、前記受信されて前記記憶部に記憶された第1の外部信号をまとめてプロトコル変換した後に前記第1の出力信号を生成してもよい。
【0015】
前記LINKによるプロトコル変換は、TDD(Time Division Duplex)のプロトコル変換であってもよい。
【0016】
前記LINKは、前記第1の出力信号を前記第2の外部装置に送信し、前記第2の外部装置から前記第1の出力信号に対する処理が完了したことを示す情報を受信すると、処理完了を示す信号を前記記憶部に記憶してもよい。
【0017】
前記LINKは、前記第1の外部装置からのコマンドに基づいて、前記記憶部の記憶領域を解放してもよい。
【0018】
前記LINKは、前記第2の外部装置から送信された前記第2の外部信号に対する処理完了情報を、前記第1の外部装置からの要求信号に応じて前記第1の外部装置に出力するか、又は前記第1の外部装置に対して割り込み処理用の割り込み要求フラグを前記第1の外部装置に出力してもよい。
【0019】
前記LINKは、前記第1の出力信号の出力を指示する出力指示情報と、前記第1の外部信号の送信終了を示す送信終了情報とを含む前記第1の外部信号を前記第1の外部装置から受信してもよい。
【0020】
前記LINKは、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報として第1の値が受信された場合には、前記第1の外部信号の送信終了を示す送信終了情報が受信されると、前記第1の外部装置から送信される前記第1の外部信号が終了したと認識してもよい。
【0021】
前記LINKは、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報として第2の値が受信された場合には、その後に受信する前記データ終了判定条件情報の値によらず、前記第1の出力信号の出力を指示する出力指示情報及び前記第1の外部信号の送信終了を示す送信終了情報が受信されると、前記第1の外部装置から送信される前記第1の外部信号が終了したと認識してもよい。
【0022】
前記LINKは、前記第1の出力信号を前記第2の外部装置に送信した後、前記記憶部の記憶領域を解放してもよい。
【0023】
前記LINKは、
前記記憶部に記憶された前記第2の外部信号に基づく信号に対して第2の出力信号に対するプロトコル変換を行った後の信号を前記第1の外部装置に情報単位ごとに出力することと、
前記第1の外部装置から出力される前記第1の外部信号を構成する各情報単位を受信することと、の少なくとも一方を、予め定めた回数又は時間内に行ってもよい。
【0024】
本開示によれば、第1のLINKを備えるMaster SerDesと、
第2のLINKを備えるSlave SerDesと、を備え、
前記第1のLINKは、Masterからの第1の外部信号に基づいて第1の出力信号を生成して前記Slave SerDesに出力するとともに、前記Slave SerDesからの第2の出力信号に基づいて第3の出力信号を生成して前記Masterに出力し、
前記第2のLINKは、Slaveからの第2の外部信号に基づいて前記第2の出力信号を生成して前記Master SerDesに出力するとともに、前記Master SerDesからの前記第1の出力信号に基づいて第4の出力信号を生成して前記Slaveに出力し、
前記第1の出力信号、前記第2の出力信号、前記第1の外部信号及び前記第2の外部信号のそれぞれは、
前記Masterから送信されるコマンドの内容を示すコマンド情報と、
前記Slaveを識別する最終宛先装置識別情報と、
前記Slaveの内部のアドレスを示す内部アドレス情報と、
前記Masterから送信されるデータの長さを示すデータ長情報と、
前記Masterから送信されるデータの終了位置を示すデータ終了位置情報と、を含む、通信システムが提供される。
【図面の簡単な説明】
【0025】
【
図1】一実施形態による通信装置を備えた通信システムの概略構成を示すブロック図。
【
図2】一般的なSerDesデバイスを介してのMaster-Slave間のI2C通信にて書き込みを行う場合のパケットのwrite formatを示す図。
【
図3】、Master SerDes がMasterとSlave SerDesとの間でI2C通信を行う際の等価的なブロック図。
【
図4】Slave SerDesがSlaveとMaster SerDesとの間でI2C通信を行う際の等価的なブロック図。
【
図5】通信規格Xプロトコルの信号のフレーム構造の一例を示す図。
【
図6】Random Write時のI2C通信のプロトコルを示す図。
【
図7】MasterとMaster SerDesとの間で送受される信号を示す図。
【
図8】mem1内のtable1に保存されるdataの一例を示す図。
【
図9】Cmd_modeの1バイト中の各ビットの意味を示す図。
【
図10】通信規格Xプロトコル上で伝送するコマンドの種類とビット列を示す図。
【
図11】Master SerDesからSlave SerDesに通信規格XにてRandom Write Commandを送信する処理を示す図。
【
図12】Random Write 動作時のmem2内のtable3の一例を示す図 。
【
図13】Slave SerDesからSlaveにI2C通信にてデータを送信する処理を示す図。
【
図14】Slave SerDesからMaster SerDesに通信プロトコルXにてRandom Write Commandに対する返信を行う処理を示す図。
【
図15】Random Write Commandに対する記憶領域解放前のmem2の記憶領域状態を示す図。
【
図16】Master SerDesの動作を示す図。
【
図17】Random Write Commandに対するSlave SerDesからの返信データ受信後のmem1内の状態table1を示す図。
【
図18】MasterがMaster SerDesにRandom Write Commandに対するポーリングを行い、実行結果を読み出す場合の処理を示す図。
【
図19】MasterがMaster SerDesに対してRandom Write動作終了処理としてmem1の記憶領域を解放する信号の伝送を示す図。
【
図20】Random Write Commandに対する記憶領域が解放される前のmem1内の保存データを示す図。
【
図21】Cmd_mode[7]=1による一括command伝送を示す図。
【
図23】Cmd_mode[7]=1による一括command伝送時のmem1内のtable1の保存データの詳細を示す図。
【
図25】Random Read動作時のmem1内のtable1の保存データを示す図。
【
図26】Master SerDesからSlave SerDesに通信プロトコルXにてRandom Read commandを送信する処理を示す図。
【
図27】Random Read動作時のmem2内のtable3の保存データを示す図。
【
図28A】Slave SerDesからSlaveへのrandom read commandを送信する処理を示す図。
【
図28B】Random Read動作時のI2C通信プロトコルを示す図。
【
図29】Random Read動作後のmem2内のtable3の保存データを示す図。
【
図30】Slave SerDesからMaster SerDesに通信規格XにてRead command に対する返信処理を示す図。
【
図31】Random Read Commandに対するSlave SerDesからの返信を受信した際のMaster SerDesの処理を示す図。
【
図32】Random Read Commandに対するSlave SerDesからの返信データを受信後のmem1内のデータの一例を示す図。
【
図33】MasterがMaster SerDesにRandom Read Commandに対するポーリングを行い、実行結果を読み出す場合の処理を示す図。
【
図34】Random Read Commandに対する記憶領域が解放される前のmem1内のtable1の保存データの一例を示す図。
【
図35A】Current readを行う場合の処理を示す図。
【
図35B】Current readを行う場合のI2C通信プロトコルを示す図。
【
図36】Current readを行う場合のmem2内のtable3の保存データの一例を示す図。
【
図37】本実施形態による通信システムの等価的なブロック図。
【発明を実施するための形態】
【0026】
以下、図面を参照して、通信装置及び通信システム3の実施形態について説明する。以下では、通信装置及び通信システム3の主要な構成部分を中心に説明するが、通信装置及び通信システム3には、図示又は説明されていない構成部分や機能が存在しうる。以下の説明は、図示又は説明されていない構成部分や機能を除外するものではない。
【0027】
図1は一実施形態による通信装置1を備えた通信システム3の概略構成を示すブロック図である。
図1の通信システム3は、例えばADAS (Advanced Driver Assistance System) の一部のシステムであるカメラ映像認識システムである。
図1の通信システム3は、Master 21として動作可能なECU 4およびSoC 5と、Slave 22として動作可能なimage sensor 12およびtemperature sensor 14と、Master SerDes 7と、Slave SerDes 13と、を備えている。Master SerDes 7とSlave SerDes 13は、所定の通信規格(以降では、「通信規格X」と呼ぶこととする)により互いに通信可能に接続される。所定の通信規格Xとしては、例えばFPD-Link III、A-phy、ASAなどがあり、限定されるものではない。Master SerDes 7とSlave SerDes 13のそれぞれは、本実施形態による通信装置1に該当する。本明細書では、Master SerDes 7をSerDes1と呼び、Slave SerDes 13をSerDes2と呼ぶことがある。
【0028】
Master 21とMaster SerDes 7とは、例えばI2C (Inter-Integrated Circuit)通信により互いに通信可能に接続されている。なお、Master 21とMaster SerDes 7との通信はI2C通信に限定されず、例えばGPIO(General Purpose Input/Output)を用いた通信であってもよい。
【0029】
同様に、Slave 22とSlave SerDes 13とは、例えばI2C通信により互いに通信可能に接続されている。なお、Slave 22とSlave SerDes 13との通信はI2C通信に限定されず、例えばGPIOを用いた通信であってもよい。
【0030】
ECU 4は、通信システム3全体を制御するものであり、I2C 4aを有する。ECU 4は、Master SerDes 7から画像信号を受信するとともに、I2C 4aを介してMaster SerDes 7とI2C通信を行う。
【0031】
SoC 5は、例えば画像認識や映像処理を行うものであり、I2C 5aを有する。SoC 5は、Master SerDes 7から画像信号を受信するとともに、I2C 5aを介してECU4及びMaster SerDes 7とI2C通信を行う。
【0032】
image sensor 12は、画像を撮影するものであり、I2C 12aとmem 19を有する。image sensor 12は、撮影した画像の画像データをSlave SerDes 13に出力するとともに、I2C 12aを介してSlave SerDes 13とI2C通信を行う。本明細書では、image sensor 12を、CIS (CMOS image sensor)と呼ぶ場合がある。mem 19は、image sensor 12で撮像された画素データを記憶したり、Master 21から送信されたデータを記憶することができる。本明細書では、mem 19をmem3と呼ぶことがある。
【0033】
temperature sensor 14は、任意の対象(例えばimage sensor 12)の温度を計測するものであり、I2C 14aを有する。temperature sensor 14は、I2C 14aを介してSlave SerDes 13とI2C通信して、計測した温度に関する温度データなどをSlave SerDes 13に送信する。
【0034】
Master SerDes 7は、Master 21から受信したI2Cプロトコルの信号を通信規格Xプロトコルの信号にフォーマット変換してSlave SerDes 13に送信するとともに、Slave SerDes 13から受信した通信規格Xプロトコルの信号を適宜フォーマット変換して画像データやI2Cプロトコルの信号を生成し、Master 21に出力する。このMaster SerDes 7は、LINK 11と、forward receiver (Fw.Rx) 9と、reverse transmitter (Rv.Tx) 10と、I2C 7aを有する。
【0035】
LINK 11は、I2C 7aを介してMaster 21から受信したI2Cプロトコルの信号を通信規格Xプロトコルの信号にフォーマット変換して、Rv.Tx 10を介してSlave SerDes 13に送信する。また、LINK 11は、Fw.Rx 9を介してSlave SerDes 13から受信した通信規格Xプロトコルの信号から、画像データを生成してMaster 21に送信したり、画像データ以外の情報を含んだI2Cプロトコルの信号を生成したりして、I2C 7aを介してMaster 21に出力する。
【0036】
Slave SerDes 13は、Slave 22から受信したI2Cプロトコルの信号や画像信号を通信規格Xプロトコルの信号にフォーマット変換してMaster SerDes 7に送信するとともに、Master SerDes 7から受信した通信規格Xプロトコルの信号を適宜I2Cプロトコルの信号にフォーマット変換して、Slave 22に出力する。このSlave SerDes 13は、I2C 13aと、LINK 17と、forward transmitter (Fw.Tx) 16と、reverse receiver (Rv.Rx) 15と、I2C 13aを有する。
【0037】
LINK 17は、I2C 13aを介してSlave 22から受信したI2Cプロトコルの信号や画像データを通信規格Xプロトコルの信号にフォーマット変換して、Fw.Tx 16を介してMaster SerDes 7に送信する。また、LINK 17は、Rv.Rx 15を介してMaster SerDes 7から受信した通信規格Xプロトコルの信号をI2C規格の信号に変換し、I2C 13aを介してSlave 22に送信する。このとき、以下の1)と2)の問題が生じるおそれがある。
【0038】
1)Master 21を構成するECU 4またはSoC 5がI2C通信を用いて、Slave 22を構成するimage sensor 12またはtemperature sensor 14を制御する場合、Master 21は、1バイト等の情報単位を送信するごとに、Slave 22からのACK信号またはNACK信号を受信する必要がある。このとき、Master SerDes 7およびSlave SerDes 13を介したI2C通信の伝搬遅延は、一般的にI2C通信の1クロックの周期(1クロックの周波数は400kHzまたは1MHzなど)と比べて大きくなることがある。この場合、Master SerDes 7は、Slave 22からのACK信号またはNACK信号をSlave SerDes 13から受け取り、I2Cプロトコル変換が終了して、I2C 7aを介して、Master 21にACK信号またはNACK信号を出力する準備が整うまで、I2Cプロトコル信号のクロック(SCL)をLowレベルに保持する。Master SerDes 7は、Master 21にSlave 22が送信したACK信号またはNACK信号を出力する準備が整ったのち、保持していたI2Cプロトコル信号のクロック(SCL)のLowレベルを開放する。その結果、Master 21はI2C通信を再開できるようになり、ACK信号またはNACK信号を受信できる。Master SerDes 7が、SCLをLowレベルに保持している期間では、Master 21はI2C通信ができないため、コマンド転送に時間が掛かったり、I2Cバスに接続される他のSlave 22(例えばimage sensor 12からのACK信号またはNACK信号を待っている場合には、temperature sensor 14)との通信を行うことができなかったりする、という問題が生じる。
【0039】
図2は、HOST I2C(例えば、Master 21)からMaster SerDes 7とSlave SerDes13を介して、REMOTE I2C (例えばSlave 22)にI2C通信にて書き込みを行う場合の、I2C通信を示している。ここで、HOST I2CのSCL low区間は、Master SerDes7が、Slave22からのACK信号またはNACK信号を出力する準備が整うまでの間、SCLをlowレベルに保持していることを示しており、この間、HOST I2CはI2C通信が出来ないことを示している。
【0040】
2)また、Slave SerDes 13には、image sensor 12やtemperature sensor 14以外にも、様々な機器をSlave 22として接続できることが好ましい。これら様々なSlave 22は、それぞれI2C動作クロックが異なる可能性がある。このため、Slave SerDes 13は、様々なSlave 22とI2C通信を行う事が想定され、Slave 22のI2C動作クロック(Slave 22とSlave SerDes 13との間でのI2C通信の動作クロック)が必要以上に低く設定される場合がある。
【0041】
図2において、前述のようにSlave 22のI2C動作クロック周波数が必要以上に低く設定された場合、REMOTE I2CのI2C動作区間(
図2のREMOTE I2C側のSCL low以外の区間)が長くなることを意味し、これはHOST I2C側のSCLLow区間が長くなることになるという課題と合わせて、I2C通信が完了するのに必要な時間がさらに伸びてしまうことになる。
【0042】
図1の通信システム3は、上述した1)を解決するために、Master SerDes 7内に記憶装置(
図1のmem 11a)を設け、Master SerDes 7が、Master 21から1バイトを受信すると、その1バイトを記憶装置に記憶するとともに、Slave 22の代わりにACK信号またはNACK信号をMaster 21に返すようにする。このため、Master 21が延長するSCL lowの期間を短くすることができる。
【0043】
また、
図1の通信システム3は、上述した2)を解決するために、後述のCLK_value(Data[0])をMaster 21が設定し、CLK_value(Data[0])で指定された周波数でSlave SerDes 13がSlave 22とI2C通信を行うようにする。このため、Slave 22とSlave SerDes 13は、指定された周波数でI2C通信を実現できる。
【0044】
図1のLINK 11は、I2C Cmd Unit8と、mem 11aを有する。I2C Cmd Unit8は、table2をROM(図示省略)に記憶し、mem 11aは、table1を記憶する。mem 11aは揮発メモリである。本明細書では、mem 11aを、mem1と呼ぶことがある。このLINK 11は、I2C 7aを介してMaster 21から1バイトを受信するたびに、その1バイトをmem 11aのtable1に書き込むとともに、Slave 22の代わりにACK信号またはNACK信号をMaster 21に返し、所定の条件が満たされると(End of dataまで書き込んだ等)、table1を読み出してRv.Tx10を介してSlave SerDes 13に送信する。また、LINK 11は、Fw.Rxを介してSlave SerDes 13から受信した信号をmem 11aのtable1に書き込み、所定の条件が満たされる(End of dataまで書き込んだ等)と、table1を読み出してI2C 7aを介してMaster 21とI2C通信を行ったり、同時にFw.Rx 9を介してSlave SerDes13から受信したImage Sensor 12が撮影した画像データを、Master21に送信したりする。
【0045】
図1のLINK 17は、I2C Cmd Unit18と、mem 17aを有する。I2C Cmd Unit18は、table2をROM(図示省略)に記憶し、mem 17aは、table3を記憶する。本明細書では、mem 17aをmem2と呼ぶことがある。このLINK 17は、Rv.Rx15を介してMaster SerDes 7から受信した信号をmem 17aのtable3に書き込み、所定の条件が満たされると(End of dataまで書き込んだ等)、table3を読み出してI2C 13aを介してSlave 22に送信する。また、LINK 17は、I2C 13aを介してSlave 22とI2C通信を行って信号を受信したり、temperature sensor 14からI2Cプロトコルに変換された温度データをI2C 13aを介して受信したりすると、それらをmem 17aのtable3に書き込み、所定の条件が満たされると(End of dataまで書き込んだ等)、table3を読み出してFw.Tx 16を介してMaster SerDes 7に送信する。
【0046】
図3は、
図1の通信システム3のうち、Master SerDes 7がMaster 21とSlave SerDes 13との間でI2C通信を行う際の等価的なブロック図である。
図3では、Master SerDes 7を通信装置1とし、Master 21を第1の外部装置とし、Slave SerDes 13を第2の外部装置としている。
【0047】
図3の通信装置1(Master SerDes 7)は、第1の外部装置(Master 21)からの第1の外部信号に基づいて第1の出力信号を生成して第2の外部装置(Slave SerDes 13)に出力する。また、通信装置1(Master SerDes 7)は、第2の外部装置(Slave SerDes 13)からの第2の外部信号に基づいて第2の出力信号を生成して第1の外部装置(Master 21)に出力する。
【0048】
図4は、
図1の通信システム3のうち、Slave SerDes 13がSlave 22とMaster SerDes 7との間でI2C通信を行う際の等価的なブロック図である。
図4では、Slave SerDes 13を通信装置1とし、Slave 22を第1の外部装置とし、Master SerDes 7を第2の外部装置としている。
【0049】
図4の通信装置1(Slave SerDes 13)は、第1の外部装置(Slave 22)からの第1の外部信号に基づいて第1の出力信号を生成して第2の外部装置(Master SerDes 7)に出力する。また、通信装置1(Slave SerDes 13)は、第2の外部装置(Master SerDes 7)からの第2の外部信号に基づいて第2の出力信号を生成して第1の外部装置(Slave 22)に出力する。
【0050】
図3及び
図4における第1の出力信号及び第2の外部信号のそれぞれは、第1の外部装置から送信されるコマンドの内容を示すコマンド情報Cmd_modeと、第1の外部装置から送信されるデータの最終宛先装置を識別する最終宛先装置識別情報Slave_Adrと、最終宛先装置の内部アドレス情報Sub_Adrと、第1の外部装置から送信されるデータのデータ長情報Lengthと、第1の外部装置から送信されるデータ終了位置情報End of Dataと、を含んでいる。
【0051】
Slave_Adrは、Cmd_modeの次に配置され、Sub_Adrは、Slave_Adrの次に配置され、Lengthは、Sub_Adrの次に配置されてもよい。
【0052】
Cmd_modeは、Write命令とRead命令を識別する機能を含む通信規格X上のコマンドフォーマットを定義するコマンドフォーマット情報Cmd_mode[2:0]を含んでいてもよい。すなわち、Cmd_modeは、通信装置1と第2の外部装置との間の所定の通信規格上のコマンドフォーマットを定義するCmd_mode[2:0]を含んでいてもよい。
【0053】
Cmd_modeは、Cmd_mode[0]-Cmd_mode[7]を少なくとも含み、データ終了判定条件情報Cmd_mode[7]は、第1の外部装置から送信されるデータの終了判定の条件を指定してもよい。
【0054】
第1の出力信号及び第2の外部信号のそれぞれは、第2の外部装置と最終宛先装置の間の通信周波数を指定する通信周波数情報CLK_valueをさらに含んでいてもよい。
【0055】
第1の出力信号及び第2の外部信号は、I2C(Inter-Integrated Circuit)通信のコマンドを前記通信装置と前記第2の外部装置との間の所定の通信規格にプロトコル変換したコマンドを含んでいてもよい。
【0056】
LINK11, 17は、第1の外部信号を構成する各情報単位を第1の外部装置から受信するたびに、肯定応答を示すACK信号、又は否定応答を示すNACK信号を第1の外部装置に送信してもよい。
【0057】
LINK11, 17は、第1の外部信号に応じた信号と、第2の外部信号に応じた信号を記憶する記憶部を有し、
【0058】
LINK11, 17は、第1の外部装置からの第1の外部信号の受信が終了すると、受信されて記憶部に記憶された第1の外部信号をまとめてプロトコル変換した後に第1の出力信号を生成してもよい。
【0059】
LINK11, 17によるプロトコル変換は、TDD(Time Division Duplex)に対応したプロトコル変換であってもよい。
【0060】
LINK11, 17は、第1の出力信号を第2の外部装置に送信し、第2の外部装置から第1の出力信号に対する処理が完了したことを示す情報を受信すると、処理完了を示す信号を記憶部に記憶してもよい。
【0061】
LINK11, 17は、第1の外部装置からのコマンドに基づいて、記憶部の記憶領域を解放してもよい。
【0062】
LINK11, 17は、第2の外部装置から送信された第2の外部信号に対する処理完了情報を、第1の外部装置からの要求信号に応じて第1の外部装置に出力するか、又は第1の外部装置に対して割り込み処理を行うための割り込み要求フラグを第1の外部装置に出力してもよい。
【0063】
LINK11, 17は、第1の出力信号の出力を指示する出力指示情報cmd_doneと、第1の外部信号の送信終了を示す送信終了情報P(STOP condition)とを含む第1の外部信号を第1の外部装置から受信してもよい。
【0064】
LINK11, 17は、第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報として第1の値が受信された場合には、第1の外部信号の送信終了を示す送信終了情報P(STOP condition)が受信されると、第1の外部装置から送信される第1の外部信号が終了したと認識してもよい。
【0065】
LINK11, 17は、第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報として第2の値が受信された場合には、その後に受信するデータ終了判定条件情報の値によらず、第1の出力信号の出力を指示する出力指示情報及び第1の外部信号の送信終了を示す送信終了情報が受信されると、第1の外部装置から送信される第1の外部信号が終了したと認識してもよい。
【0066】
LINK11, 17は、第1の出力信号を第2の外部装置に送信した後、記憶部の記憶領域を解放してもよい。
【0067】
LINK11, 17は、記憶部に記憶された第2の外部信号に基づく信号に対して第2の出力信号に対するプロトコル変換を行った後の信号を第1の外部装置に情報単位ごとに出力することと、第1の外部装置から出力される第1の外部信号を構成する各情報単位を受信することと、の少なくとも一方を、予め定めた回数又は時間内に行ってもよい。
【0068】
図5はMaster SerDes 7とSlave SerDes 13との間で送受される通信規格Xプロトコルの信号のフレーム構造の一例を示す図である。
【0069】
図5のフレーム構造は、SyncパターンとParityの間に、複数のコンテナを含んでいる。Syncパターンは、Master SerDes 7とSlave SerDes 13の物理層を同期させるための信号パターンである。複数のコンテナは、例えば2~100個程度のコンテナを含んでいる。信号伝送状態によって、フレーム構造に含まれるコンテナの数が変化する。Parityは誤り検出もしくは誤り訂正処理のためのビット又はビット列である。
【0070】
コンテナの構造は、Headerと、Payloadと、Parityを含んでいる。Headerは、Payloadの伝送先を示すアドレス情報などを含む。Payloadは、送受される信号の本体部分である。Payloadは、映像信号の他に、SerDes制御のためのOAM (Operations, Administration, Maintenance)を含んでいる。Parityは、Payloadの誤り検出もしくは誤り訂正処理のためのビット又はビット列である。
【0071】
Palyloadは、CLK value, Cmd_mode, Slave Adr, length, data及びEnd of dataの各情報を含んでいる。CLK valueは、Slave 22の動作クロック、すなわちSlave SerDes 13がSlave 22とのI2C通信で用いるSCL周波数である。Cmd_modeは、Master 21から送信されるコマンドの内容を 示す。Slave Adrは、Slave 22を識別するアドレス情報である。lengthは、Master 21から送信されるデータの長さである。End of dataは、Master 21から送信されるデータの終了位置である。
【0072】
なお、Cmd_modeを2バイトに拡張する場合、Cmd_modeの上位1バイトをCmd_IDに割り当ててもよい。Cmd_IDは、Master 21から送信されるコマンドを区別し、識別するための識別情報である。
【0073】
TDD方式でMaster 21とSlave 22との間でデータ通信を行う場合、1TDDサイクル内のMaster 21からSlave 22への信号Rvの信号比率と、Slave 22からMaster 21への信号Fwの信号比率を変更するには、それぞれのフレーム構造に含まれるコンテナの数を変更することで実現できる。なお、信号Rvと信号Fwでは、コンテナのサイズが同じでも、異なっていてもよい。
【0074】
次に、Master 21からSlave 22にRandom Writeを行う場合について説明する。Master 21は、Slave 22にRandom Writeを行う場合、Master SerDes 7に対して、I2C通信にてコマンドセットを送信する。Random Write時のI2C通信のプロトコルは、
図6に示すものであり、このプロトコルに準拠して、Master 21はMaster SerDes 7に対してコマンドセットを送信する。
【0075】
図7は、Master 21とMaster SerDes 7との間で送受される信号を示す図である。本明細書では、Master 21からMaster SerDes 7へのI2Cプロトコルの信号を、M I2C protocol (M2SerDes)と呼ぶ。
図7に示すように、M I2C protocolは、S (START condition)、SerDes1 St_adr、W、mem1 Sub_adr、mem1 Sub_adr、I2C設定CLK、Cmd_mode、最終対象Slave adr、最終対象Sub adrH、最終対象Sub adrL、Data lengthH、Data lengthL、Data×2、P (STOP condition)を含んでいる。これらの情報の詳細については、後述する。
【0076】
Master 21から送信されたI2Cプロトコル内のdataは、Master SerDes 7のmem1内のtable1に保存される。
図8はmem1内のtable1に保存されるdataの一例を示す図である。各dataは、M I2C protocolが伝送するSub_Adrが示すmem1のアドレス番地にI2C設定クロックCLKの設定値であるCLK_valueが格納され、以降M I2C protocolが伝送するdataは、mem1のインクリメントされていくアドレス番地に格納されていく。CLK_valueは、上述したようにSCL周波数を示す1バイトの情報であり、Slave 22は、CLK_valueで指定された動作周波数で、Slave SerDes 13とI2C通信を行う。
【0077】
Sub_Adr[1]のCmd_modeは、Master SerDes 7がMaster 21から受信した命令の内容を示す1バイトの情報である。
図9はCmd_modeの1バイト中の各ビットの意味を示す図である。Cmd_modeの1バイト中の下位3ビット[2:0]は、ビット列の値により以下の情報を示す。000は、writeコマンドの伝送形式であることを示す。001は、readコマンドの伝送形式であることを示す。010は、ACK/NACK信号の伝送形式であることを示す。011は、read又は応答の伝送形式であることを示す。1XXは、特殊コマンドの伝送形式であることを示し、Cmd_modeに続いて伝送される1バイトデータの値により動作が決定される。本実施形態では、特別コマンドと定義される、後述するcmd_doneを示す0xFFを書き込むことで、後述するようにcmd_doneによる一括送信が行われることを示す。
【0078】
Cmd_mode[3]が0であれば、random locationを示す。例えば、Slave 22がimage sensor 12の場合、image sensor 12内のmem3の任意のSub_adr、またはtemperature sensor 14内のメモリの任意のSub_adrに(ランダム)アクセスすることを示す。
【0079】
Cmd_mode[3]が1であれば、current locationを示す。すなわち、WriteまたはReadしたメモリの最後のSub_adr+1、例えば対象Slave 22がimage sensor 12の場合、image sensor 12内のmem3に対して最後にWriteまたはReadしたSub_adrを「M」とすると、「M+1」に、(シーケンシャル)アクセスすることを示す。
【0080】
Cmd_mode[4]は、Reservedであり、現時点では規定されていない。
【0081】
Cmd_mode[6]が0であれば、normalを示す。Cmd_mode[6]が1であれば、retryを示す。このとき、Slave SerDes 13がSlave 22からNACK信号を受信したときに、Slave 22に対してWriteまたはReadコマンドセットを再送するように指示することを示す。
【0082】
Cmd_mode[7] が0であれば、End of dataで終了判定P(STOP condition)を受信した場合に、Master 21から送信されるI2Cプロトコルの信号の終了だと判定するように指示することを示す。Cmd_mode[7] が1であれば、End of dataかつcmd_doneで終了判定するように指示することを示す。より詳細には、cmd_doneを受信した後に、P(STOP condition)を受信した場合に、Master 21から送信されるI2Cプロトコルの信号の終了だと判定するように指示することを示す。
【0083】
図8のtable1内のSub_Adr[2]のSlave Adrは、Write又はRead対象となるSlave 22のアドレス(例えば、image sensor 12なら0x02)を示す1バイトの情報である。
【0084】
Sub_Adr[3]のSub_adrHは、image sensor 12内のmem 19 (mem 3)のどのSub_adrにアクセスするのか、又はtemperature sensor 14内のmem 20のどのSub_adrにアクセスするのかを示すアドレスの上位1バイト情報である。
【0085】
Sub_Adr[4]のSub_adrLは、image sensor 12内のmem 19 (mem 3)のどのSub_adrにアクセスするのか、又はtemperature sensor 14内のmem 20のどのSub_adrにアクセスするのかを示すアドレスの下位1バイト情報である。
【0086】
Sub_Adr[5]のLengthHは、wdata(Data[N-2:7])のデータ長の上位1バイト情報である。Sub_Adr[6]のLengthLは、wdata(Data[N-2:7])のデータ長の下位1バイト情報である。
【0087】
Sub_Adr[N-2:7]のwdataは、Slave 22にwriteするデータ、又はSlave 22からreadするデータである。Sub_Adrの各ビットごとに1バイトのデータを格納する。
【0088】
Sub_Adr[N-1]のEnd of Dataは、P (STOP condition)をMaster 21から受信すると、0x9Fが書き込まれる。デフォルトは、0x00等の初期値が書き込まれている。
【0089】
図10は通信規格Xプロトコル上で伝送するI2Cコマンドの種類とビット列を示す図である。
図10において、ACKは肯定応答であり、処理が正常に完了したことを示す。NACKは否定応答であり、処理が正常に終了しなかったことを示す。
【0090】
Repeated_startは、I2Cプロトコルの信号が継続していることを示すスタートフラグである。具体的には、
図6に示すI2Cのcombined formatにおけるSrに該当する。Master 21からMaster SerDes 7へのI2C通信を開始した後(S(START condition)を発行した後)、このI2C通信を終了することなく(P(STOP condition)を発行することなく)次のI2C通信を開始する場合に、次のI2C通信を開始する前に発行されるフラグである。
【0091】
通信規格Xプロトコル上で伝送するI2CコマンドにおけるEnd of dataは、P(STOP condition)を示す。Cmd_mode[7]=0の場合、S(START condition)からP(STOP condition)までのI2Cプロトコルの信号がSlave SerDes 13に送信されることを示す。
【0092】
通信規格Xプロトコル上で伝送するI2Cコマンドにおけるcmd_doneは、Cmd_mode[7]=1の場合に、次のデータが0xFFであるときの特殊コマンドである。cmd_doneは、S(START condition)からP(STOP condition)までのI2Cプロトコルの信号を1セットとして、1つ以上のセットをSlave SerDes 13に送信するように指示する情報である。
【0093】
通信規格Xプロトコル上で伝送するI2CコマンドにおけるRsv_commandは、Reservedであり、現時点では規定されない。I2Cコマンドにおけるdataは、Slave 22にWriteするデータ、またはSlave 22からReadしたデータを示す。
【0094】
図10では、通信規格Xプロトコル上で伝送するI2Cコマンドが8ビットで表現される例を示したが、これに限らず、9ビット以上で表現されてもよい。例えば、9bitで表現する場合には、I2Cプロトコルの信号が「data」の場合にはMSB側の1ビットを「0」とし、I2Cプロトコルの信号が「data」以外の場合にはMSB側の1ビットを「1」とすることで、I2Cプロトコルの信号が「data」なのかそれ以外なのかを容易に判別できるようにすることができる。
【0095】
本明細書では、
図1の通信システム3におけるMaster 21とSlave 22とのデータ通信の前提条件として、各機器のアドレスを一例として以下のように割り当てる。ECU 4のアドレスは0x00、SoC 5のアドレスは0x01、Master SerDes 7のアドレスは0x10、Slave SerDes 13のアドレスは0x11、image sensor 12のアドレスは0x02、temperature sensor 14のアドレスは0x03とする。
【0096】
本明細書では、Master 21からMaster SerDes 7へのI2Cプロトコルの信号の送信を、M I2C protocol (M2SerDes)と呼ぶ(ステップS1)。
図7に示すように、M I2C protocol (M2SerDes)内のS (START condition)は、Master 21からSlave 22へのI2Cプロトコル信号の開始を示す。I2Cプロトコルにおいて、「S」と「Sl_adr」と「W(Write)またはR(Read)」と「Sub_adr」が順番に送信されることが規定されている。
【0097】
SerDes1 St_adr(Sl_adr(0x10))は、アドレスとしてMaster SerDes 7のアドレスである0x10を指定することを意味する。Wはwriteコマンドであることを示す。
【0098】
mem1 Sub_adr(Sub_adr(0x00))は、mem 11aのSub_adrの上位ビットとして「0x00」を指定することを示す。
【0099】
mem1 Sub_adr(Sub_adr(0x00))は、mem 11aのSub_adrの下位ビットとして「0x00」を指定する情報である。すなわち、mem 11aの「0x0000」にアクセスすることをMaster 21が指定することを示す。
【0100】
I2C設定CLK(DATA(0x04))は、CLK_valueとして「0x04(400kHz)」を指定することを示す。
【0101】
Cmd_mode(DATA(0x00))は、Cmd_mode[7:0]=0x00を指定することを示す。
【0102】
最終Slave adr(DATA(0x02))は、対象Slave 22のアドレスとして「0x02」を指定することを示している。「0x02」なので、Master 21がimage sensor 12を選択したということを示す。
【0103】
最終対象Sub adrH(DATA(0x00))は、image sensor 12内のmem3(最終的にアクセスしたい対象)のSub_adrの上位ビットとして「0x00」を指定することを示す。
【0104】
最終対象Sub adrL(DATA(0x00)):image sensor 12内のmem3(最終的にアクセスしたい対象)のSub_adrの下位ビットとして「0x00」を指定することを示す。すなわち、mem3の「0x0000」にアクセスすることをMaster 21が指定したことを示す
【0105】
Data lengthH(DATA(0x00))は、その後に続くデータ長を表す値の上位ビットとして「0x00」を指定することを示す。
【0106】
Data lengthL(DATA(0x10))は、その後に続くデータ長を表す値の下位ビットとして「0x10」を指定することを示す。すなわち、length[15:0]=0x0010となり、16バイトであるMaster 21が指定したことを示す。
【0107】
(DATA×2):16バイト分のデータが送信される。
【0108】
P (STOP condition)は、Master 21からSlave 22へのI2Cプロトコルの信号の終了を明示することを示す。
【0109】
Master 21からMaster SerDes 7にM I2C protocolのデータ送信に並行して、Master SerDes 7は、mem 11aに格納した
図8のtable1の情報をSlave SerDes 13に送信し始めるとともに、Master 21に対して、S I2C protocol (SerDes2M)にて、ACK信号を送信する(ステップS1)。Master SerDes 7が、I2Cプロトコルの信号を構成する各バイトをMaster 21から受信するたびに、Master 21に対してACK信号を返す。
【0110】
Master 21としては、すぐにACK信号が返ってくるので、Master SerDes 7が延長する
図2に示すSCL lowの期間を短くすることができる。ただし、SCL lowの期間には下限があり、ゼロにすることはできない。なぜなら、SCL lowは、SCL(I2Cのクロック信号)がLowである期間のことであり、SCL lowが下限未満になると、I2Cのクロック信号として機能しなくなるためである。
【0111】
Master SerDes 7は、Master 21からMaster SerDes7へのI2Cプロトコルの信号に基づく信号、すなわち、Master 21からMaster SerDes 7に送信されたI2Cプロトコル信号を、
図10のtable2を用いて変換したI2Cコマンドパケットを、
図8のtable1に書き込む。例えば、Master SerDes 7は、以下のようなデータの変換情報を
図8のtable1に書き込む。これを、mem1 (Save I2C command packet)と呼ぶ(ステップS2)。
【0112】
(data)CLK_value(0x04)は、CLK_valueとして「0x04(400kHz)」を書き込む。(data)Cmd_mode(0x00)は、Cmd_mode[7:0]=0x00を書き込む。(data)sl_adr(0x02)は、対象Slave 22のアドレスとして「0x02」を書き込む。「0x02」なので、image sensor 12が選択されたことになる。(data)Sub_adrH(0x00)は、image sensor 12内のmem3(最終的にアクセスしたい対象)のSub_adrの上位ビットとして「0x00」を書き込む。(data)Sub_adrL(0x00)は、image sensor 12内のmem3(最終的にアクセスしたい対象)のSub_adrの下位ビットとして「0x00」を書き込む。(data)lengthH(0x00)は、その後に続くデータ長を表す値の上位ビットとして「0x00」を書き込む。(data)lengthL(0x10)は、その後に続くデータ長を表す値の下位ビットとして「0x10」を書き込む。例えば、length[15:0]=0x0010となり、16バイトであることを書き込む。(data)wdata×2は、16バイト分のデータを書き込む。End of dataは、「0x9F」を書き込む。
【0113】
図11は、
図7に続くものであり、Master SerDes 7からSlave SerDes 13に通信規格XにてRandom Write Commandを送信する処理を示す図である。
図11におけるS I2C protocol (Sedes2M)とmem1 (Save I2C command Packet)(ステップS1,S2)は、
図7で説明したものと同じである。
【0114】
Master SerDes7は、
図8のtable1のデータを読み出して通信規格Xプロトコルの信号にプロトコル変換し、Packetized I2C on PHY (depend on the each PHY specification) forward channel にて、Slave SerDes 13に送信する(ステップS3)。
【0115】
Cmd_mode=0x00の場合、Cmd_mode[7]=0で「End of dataごとの終了判定」である。このため、Master SerDes 7のLINK11は、「End of data(0x9F)」を受信すると、「End of data(0x9F)」を
図8のtable1に書き込むとともに、
図8のtable1を読み出してRv.Tx10を介してSlave SerDes 13に送信する。
【0116】
Cmd_mode=0x80の場合、End of dataかつcmd_doneが書き込まれた段階で、mem1のデータ(
図8のtable1)をまとめてI2Cコマンド変換して、Rv.Tx10を介してSlave SerDes 13に送信する。
【0117】
Slave SerDes 13は、受信した通信規格Xプロトコルの信号からI2Cコマンドパケットを抽出し、mem2内のtable3に書き込む。これを
図11では、mem2 (Save I2C command Packet)と呼んでいる(ステップS4)。
図12は、Random Write 動作時のmem2内のtable3の一例を示す図である。table3には、
図8のtable1と同内容の情報が書き込まれる。
【0118】
Slave SerDes 13は、Reverse linkの受信データをプロトコル変換して、mem2内で元のmem1の保存データを復元する。Slave SerDes 13は、End of dataの復元で、I2Cコマンドパケットの復元終了を判定する。
【0119】
図13は、
図11に続くものであり、Slave SerDes 13からSlave 22にI2C通信にてデータを送信する処理を示す図である。
図11のmem2 (Save I2C command Packet)(ステップS4)は、
図11で説明したものである。
【0120】
Slave SerDes 13は、
図12に示すmem2内のtable3にEnd of dataを書き込むと、table3を読み出して、I2Cプロトコルの信号にフォーマット変換し、M I2C protocol (Sedes2Slave)にて、I2C 13aを介してSlave 22に送信する(ステップS5)。
【0121】
(data)Cmd_mode(0x00)は、S(START condition)を発行するとともに、次のSl_adrが発行された後に、Cmd_mode[0]の値に応じてW(Write)コマンドまたはR(Read)コマンドを生成する。
【0122】
(data)Sl_adr(0x02)は、上述のSl_adrとして「0x02」を指定することを示す。「0x02」なので、image sensor 12が選択されたことになる。(data)Sub_adrH(0x00)は、image sensor 12内のmem3(最終的にアクセスしたい対象)のアドレスの上位ビットとして「0x00」を指定することを示す。(data)Sub_adrL(0x00)は、image sensor 12内のmem3(最終的にアクセスしたい対象)のアドレスの下位ビットとして「0x00」を指定することを示す。(data)wdata×2は、16バイト分のデータを示す。
【0123】
Slave 22は、S I2C protocol (Slave2SerDes)にて、正常に信号を受信したことを示すACK信号を逐次Slave SerDes 13に返す(ステップS5)。
【0124】
なお、Slave SerDes 13からSlave 22にI2C通信によりデータを送信している間は、mem2内のtable3には、
図12と同様の情報が保存される。
【0125】
Slave SerDes 13が、Cmd_mode[6]=0の場合であって、Slave 22から返ってきた信号が全てACK信号であった場合にはACKを、1つ以上のNACK信号があった場合にはNACKを、table3のSub_Adr=Nに書き込む。
【0126】
Slave SerDes 13が、Cmd_mode[6]=1の場合であって、Slave 22から返ってきた信号が全てACK信号であった場合にはACKをtable3のSub_Adr=Nに書き込み、1つ以上のNACK信号があった場合には再Writeを行う。2回目もNACK信号であった場合には、NACKをtable3のSub_Adr=Nに書き込む。
図15は、Slave SerDes 13とSlave 22の間のI2C通信が完了し、Sub_Adr=Nに、ACK、もしくはNACKが書き込まれた、Random Write Commandに対する記憶領域解放前のmem2の記憶領域状態を示している。
【0127】
mem2内のtable3のSub_Adr=Nに書き込むACKやNACKの生成方法としては、例えばSlave 22から返ってきたACK信号およびNACK信号の論理積を取ってもよい。
【0128】
図14は、
図13に続くものであり、Slave SerDes 13からMaster SerDes 7に通信プロトコルXにてRandom Write Commandに対する返信を行う処理を示す図である。
図14のS I2C protocol (Slave2SerDes)(ステップS5)は、
図13で説明したものである。
【0129】
Slave SerDes 13は、Slave 22とのI2C通信結果を、通信規格Xプロトコルの信号にプロトコル変換して、Packetized I2C on PHY (depend on the each PHY specification) forward channelにて、Master SerDes7に送信する(ステップS6)。Slave SerDes 13は、mem2内のtable3のSub_Adr=NにACKまたはNACKを書き込むと、table3(Sub_Adrの0からNまで)を読み出して、必要な情報(本実施形態ではSub_Adrが2とNの場合のData[7:0]のことで、Cmd_modeを2バイトに拡張する場合にはCmd_IDも含む)をMaster SerDes7に送信する。送信が完了すると、Slave SerDes 13は、
図15に示したmem2の記憶領域を解放する。
【0130】
ここで、mem1とmem2は同じメモリ領域を占有(Sub_Adr=0~N-1)しているため、Slave SerDes 13はmem1の次の書き込むべきSub_Adr(mem2で空いていてACK/NACKを書き込んだ)Sub_Adrを把握している。また、Slave SerDes 13は、自身がSlave 22にwriteした場合は2バイト(I2C通信をしたSlave adrとI2C通信結果)をMaster SerDes 7に返信する必要があることを理解している。
【0131】
図16は、
図14に続くものであり、Master SerDes 7の動作を示す図である。
図16のPacketized I2C on PHY (depend on the each PHY specification) forward channel(ステップS6)は
図14で説明したものである。Master SerDes 7は、Slave SerDes 13から受信した通信規格Xプロトコルの信号からI2Cコマンドパケットを抽出し、mem1内のtable1のSub_AdrのNからN+9に書き込む。
【0132】
図17はRandom Write Commandに対するSlave SerDesからの返信データ受信後のmem1内のtable1を示す図である。table1のsub_Adr N~N+6とN+9には、
図14のSlave SerDes 13内のI2C Cmd Unitで生成したI2Cコマンドパケットが保存される。また
図17のtable1のsub_Adr N+7とN+8には、mem2内のsub_Adr(2)のSlave adrと、sub_Adr(N)のACK or NACKを読み出して転送した内容になる。
【0133】
図18はMaster 21がMaster SerDes7にRandom Write Commandに対するポーリングを行い、実行結果を読み出す場合の処理を示す図である。Master 21は、M I2C protocol (M2SerDes)にて、SerDes1に対して依頼命令結果のポーリングを行う(ステップS7)。Master 21は、table1のSub_Adr=N+9をポーリングして、0x9FならSub_Adr=N+8をReadして、ACK/NACKのどちらかを判断する。
【0134】
例えば、Master SerDes 7に依頼した、「Slave 22への16バイトwrite」が完了していれば、End of Data (0x9F)とその結果であるACK(0x81)を読み出せる。なお、本例では、1バイトreadで、End of Dataの結果を見てポーリングの判断を行い、再度1バイトreadでACK又はNACKをreadしているが、一度に2バイトreadして、ポーリング結果とSlave 22へのI2C通信結果とを判断してもよい。仮にNACKが返ってきた場合には、そのNACKを該当のSlave 22が送信したかどうかを、Sub_adr (N+7)のSlave adrを読み出すことで、Master 21は確認可能である。
【0135】
図17は、mem1内の保存データの一例を示す図である。Master 21は、自身でMaster SerDes 7に対してwriteコマンドを発行しているため、Master SerDes 7のmem1のアクセスポイントを把握している。同様に、Master SerDes 7は、自身でmem1にデータを保存するため、mem1のアクセスポイントを把握している。例えば、Slave 22にwriteした場合に、その返信が2Bの場合、Headerは、7Byte+2Bbyte+EoD(1Byte)=10Byteとなり、次のSub_Adrは、N+10=34となる。
【0136】
図19はMaster 21がMaster SerDes 7に対してRandom Write動作終了処理としてmem1の記憶領域を解放する信号の伝送を示す図である。
図20はRandom Write Commandに対する記憶領域が解放される前のmem1内の保存データを示す図である。Master 21は、M I2C protocol処理、S I2C protocol処理と、mem1 (Save I2C command packet)処理を行って、table1のSub_Adr=N+8をReadして、ACKであれば、
図20に示すように、mem1内のtable1のSub_Adr=N+10にClearを書き込む(ステップS8)。Master SerDes7は、このClearが書き込まれると、mem1内のtable1のメモリ領域が解放される。
【0137】
Master SerDes 7は、mem1内のSub_adr (N+10)に0xFFが書き込まれたら、依頼命令の終了処理として、使用していたmem1の記憶領域を解放する。又は、Master 21が利用したメモリ領域を初期化する書き込みコマンドに従って、mem1の記憶領域を解放してもよい。
【0138】
図21~
図23はI2Cコマンド一括送信動作を示す図である。
図21及び
図22はCmd_mode[7]=1による一括command伝送を示す図である。
図23はCmd_mode[7]=1による一括command伝送時のmem1内のtable1の保存データの詳細を示す図である。I2Cコマンド一括送信動作は、Cmd_mode [2:0]=000、かつCmd_mode [7]=1の場合のwrite動作である。具体的には、Master21がimage sensor 12 (Sl_adr=0x02)とtemperature sensor 14(Sl_adr=0x03)に対して、それぞれ8byteのデータを一括してwriteする場合を示す。
【0139】
図21のBlock b1はimage sensor 12(Sl_adr=0x02)に対する8byteのデータのWrite動作、Block b2はtemperature sensor 14(Sl_adr=0x03)に対する8byteのデータのWrite動作を示す。Block b3は、一括動作の終了をcmd_doneおよびP(STOP condition)で示している。
【0140】
より詳細には、
図21及び
図22に示すように、まずb1の動作は、M I2C protocol (M2SerDes)にて、Master 21が、Master SerDes 7に対して、Slave 22とのI2C通信を依頼する命令を発行する(ステップS11)。Master SerDes 7は、Master 21からのデータを受信すると、S I2C protocolにて、自身のタイミングでACKを返す(ステップS11)。
この依頼命令はCmd_mode [2:0]=000、かつCmd_mode [7]=1のI2Cコマンド一括動作を示しているためEnd of Dataをmem1に保存してもSlave SerDes13への転送は開始されない。次に続くb2の動作はb1のSlave_adrがtemperature sensor 14(Sl_adr=0x03)と異なるだけで同じである。
最期のb3は、Cmd_code[2]=1で特別なコードであることを示しており、次に続くDataが特別なコードを示す。本例ではコマンドの終了を示す特別なcmd_done(0xFF)とSTOP conditionを連続受信する(ステップS12)ことでMaster SerDes7はmem1内に保存していた受信データ(
図23)をI2Cコマンド一括送信としてSlave SerDes13へ一括送信する。
【0141】
なお、本実施形態では、Master 21がCmd_mode[7]=1を設定した場合には、その後にcmd_doneに0xFFが書き込まれるまでは、Cmd_mode[7]=0を設定してはいけないことにしている。
【0142】
図24~
図34はRandom Read動作(Cmd_mode [3:0]=0001かつ[7]=0の場合のRead動作)を示す。Random Read動作で、Random Write動作と大きく異なる点は、以下の通りである。
【0143】
Read動作では、
図24~
図27に示すように、まずMaster 21はMaster SerDes7に対してReadの依頼を書き込み(
図24~
図25)、このReadの依頼をMaster SerDes7がSlave SerDes 13に書き込む(
図26~
図27)。
【0144】
その後、
図28A及び
図29のステップS25におけるM I2C protocol (Sedes2Slave)の処理に示すように、「S」「SL_adr」「W」「Sub_adr」で、処理対象がimage sensor 12のmem3であることをWriteした後に、「Sr」「SL_adr」「R」で、処理対象からReadを行う。
【0145】
以下、Random Readの処理手順を
図24~
図34に基づいて順に説明する。
図24は、Master 21からMaster SerDes 7へのI2C command packetの送信手順を示している。まず、
図24のステップS21に示すように、M I2C protocol (M2SerDes)の処理を行う。ここでは、Master 21は、Master SerDes 7に対して、Slave 22とのI2C通信を依頼する命令を発行する。Master 21から送信されるコマンドセットには、SerDes1 St_adrと、mem1 Sub_adrと、mem1 Sub_adrと、I2C設定CLKと、Cmd_modeと、最終対象Slave adrと、最終対象Sub_adrHと、最終対象Sub_adrと、Data lengthHと、Data lengthLと、P (STOP condition)とが含まれている。
【0146】
Master SerDes 7は、Master 21から情報単位を受信するごとに、S I2C protocol (SerDes2M)にて、ACK信号をMaster 21に返送する(ステップS21)。また、Master SerDes 7は、受信されたI2C command packetをmem1に格納する(ステップS22)。mem1には、
図25に示すように、(data) CLK_value, (data) Cmd_mode, (data) Sl_adr, (data) Sub_adrH, (data) Sub_adrL, (data) length, (data) lengthL, End of dataが格納される。
【0147】
図26は、
図24に続いて行われるものであり、Master SerDes 7からSlave SerDes 13に通信プロトコルXにてRandom Read commandを送信する処理を示す図である。Master SerDes 7は、Packetized I2C on PHY (depend on the each PHY specification) forward channelにて、mem1内のデータをプロトコル変換してSlave SerDes 13に送信する(ステップS23)。より具体的には、Cmd_mode=0x00で、mem1にEnd of dataが格納されると、mem1内のデータをまとめて、I2Cコマンド変換して、reserve linkにてSlave SerDes 13に送信する。一方、Cmd_mode=0x10で、mem1にEnd of dataが格納され、かつcmd_doneが書き込まれると、mem1内のデータをまとめてI2Cコマンド変換して、reserve linkでSlave SerDes 13に送信する。Slave SerDes 13は、reserve linkの受信データをプロトコル変換して、元のmem1の保存データをmem2に保存する(ステップS24)。Slave SerDes 13は、End of dataを復元した段階で、I2Cコマンドパケットの復元が終了したと判断する。
図27は、mem2内の保存データの一例を示す図である。
【0148】
図28Aは、
図26に続いて行われるものであり、Slave SerDes 13からSlave 22へのrandom read commandを送信する処理を示す図である。Slave SerDes 13は、M I2C protocol (SerDes2Slave)にて、I2C command packetをSlave 22に送信する(ステップS25)。Slave 22は、受信した情報単位ごとに、S I2C protocol (Slave2SerDes) にて、ACK信号をSlave SerDes 13に返送するとともに、Sub_adrH, Sub_adrLで指定されたアドレスから順次rdataをSlave SerDes 13に送信する。Slave SerDes 13は、
図29に示すように、Slave 22に対してrdataを受信したことを示すACK信号を1バイトごとに送信するとともに、Slave 22からのrdataをmem2に格納する。
【0149】
図28AにおけるSlave SerDes 13とSlave 22は、
図28Bに示すRandom Read動作時のI2C通信プロトコルに準拠したプロトコルによる通信を行っていることがわかる。
【0150】
図30は、
図28に続いて行われるものであり、Slave SerDes 13からMaster SerDes 7に通信規格XにてRead command に対する返信を行う処理を示す図である。Slave SerDes 13は、packetized I2C on PHY (depend on the each PHY specification) forward channelを介して、rdataを送信する(ステップS26)。より詳細には、Slave SerDes 13は、Slave 22とのI2C通信結果(Rdata, ACK)+End of dataを変換して、forward linkでMaster SerDes 7に送信する。
図29は、Random Read動作後のmem2内のtable3の保存データを示している。
【0151】
図31は、
図30に続いて行われるものであり、Random Read Commandに対するSlave SerDes 13からの返信を受信した際のMaster SerDes 7の処理を示す図である。Master SerDes 7は、forward linkの受信データをプロトコル変換して、Slave 22とのI2C通信結果(ACK/NACK)を含む受信データをmem1に保存する。
図32は、Random Read Commandに対するSlave SerDes 13からの返信データを受信後のmem1内のデータの一例を示す図である。
【0152】
図33は、Master 21がMaster SerDes 7にRandom Read Commandに対するポーリングを行い、実行結果を読み出す場合の処理を示す図である。Master 21は、M I2C protocol (M2SerDes)にて、Master SerDes 7に対して依頼命令結果のポーリングを行う(ステップS27)。Master 21は、Slave 22側のACKを待つこと無く、自身のタイミングで、Master 21にACKを返す(ステップS27)。
【0153】
Master 21が、Master SerDes 7に依頼した、「Slave 22への16バイトread」の結果が終わっていれば、End of data (0x9F)と、その結果であるACK (0x81)を読み出せる。仮に、End of dataの読み出し結果が0x9F以外の場合は、ポーリングを継続する。本例では、1バイトreadでEnd of dataの結果を見てポーリング判断を行い、再度、17バイトReadでrdata (16バイト)+ACK/NACKをreadしているが、一度に18バイトのreadを行って、ポーリング結果とSlave 22へのI2C通信結果を判断してもよい。仮に結果がNACKの場合、そのNACKが該当Slave 22からのものかをSub_Adr (15)のSlave adrを読み出すことで、Master 21は確認できる。
【0154】
図34はRandom Read Commandに対する記憶領域が解放される前のmem1内のtable1の保存データの一例を示す図である。Slave 22からの16バイトreadは、Header (7バイト)+Sl_adr (1バイト)+rdata (16バイト)+A (1バイト)+End of data (1バイト)=26バイトなので、Sub_adr=8~33を使用することから、次のSub_adrはN=34になる。
【0155】
図19はMaster 21がMaster SerDes 7に対してRandom Read動作終了処理としてmem1の記憶領域を解放する信号の伝送を示す図である。Master 21は、M I2C protocol (M2SerDes)にて、依頼コマンド結果の読み込みを完了し、Master SerDes 7のクリア処理命令を発行する(ステップS28)。Master SerDes 7は、mem1 Sub_adr (N)に0xFFが書き込まれたら、依頼命令の終了処理として使用していたmem1の領域を解放するか、又はMaster 21は、利用していたメモリ領域を初期化する書き込みコマンドを発行してもよい。
【0156】
図34はmem1内のtable1の保存データの一例を示す図である。Sub_adr (N)に、Clearが書き込まれる。
図35AはCurrent readを行う場合の処理を示す図である。
図35BはCurrent readを行う場合のI2Cプロトコルを示す図である。
図36はCurrent readを行う場合のmem2内のtable3の保存データの一例を示す図である。
【0157】
図28Aでは、Slave SerDes 13がSlave 22にrandom readを行う処理を説明したが、
図35Aに示すように、Slave 22内のmem3に最初にアクセスする際は必ずrandom readを行う必要があるが、二回目以降はcurrent readでもよい。
【0158】
Slave SerDes 13は、mem2にEnd of data、又はEnd of dataとcmd_doneが書き込まれると、mem2に書き込まれたデータをI2Cプロトコル変換してSlave 22とI2C通信を行う。current readを行う場合(Cmd_mode[3:0]=1001の場合)は、
図36に示すmem2内のSub_adrHとSub_adrLは使用されない。このため、Slave SerDes 13からSlave 22に送信するI2C command protocolが2バイト分少なくなる。
【0159】
図35AにおけるSlave SerDes 13とSlave 22は、
図35Bに示すI2C通信プロトコルに準拠したプロトコルによる通信を行っていることがわかる。
【0160】
このように、本実施形態では、Master 21とSlave 22との間でデータ通信を行う場合に、Master 21とSlave 22との間に、Master SerDes 7とSlave SerDes 13を設け、Master 21がSlave 22宛てに送信したコマンドを、Master SerDes 7が受信すると、Master SerDes 7は、Slave 22からのACKを待たずに、自身の判断で、Master 21にACKを返す。これにより、Master 21は、迅速にACKを受信でき、ACKを受信後の処理を迅速に行うことができる。すなわち、Master 21はACKを受信するまでクロックをストレッチさせる期間を短縮でき、Master 21の処理効率を向上できる。
【0161】
図37は、本実施形態による通信システム3の等価的なブロック図である。
図37の通信システム3は、Master 21に対応する第1の外部装置と、Slave 22に対応する第2の外部装置との間で、データ通信を行う際に、Master 21とSlave 22の間に、Master SerDes 7とSlave SerDes 13を設けて、Master 21とSlave 22との間のデータ通信を中継するようにしている。Master SerDes 7は第1のLINK(LINK 11)を有する。Slave SerDes 13は第2のLINK(LINK 17)を有する。第1のLINKは、Master 21からの第1の外部信号に基づいて第1の出力信号を生成してSlave SerDes 13に出力するとともに、Slave SerDes 13からの第2の出力信号に基づいて第3の出力信号を生成してMaster 21に出力する。第2のLINKは、Slave 22からの第2の外部信号に基づいて第2の出力信号を生成してMaster SerDes 7に出力するとともに、Master SerDes 7からの第1の出力信号に基づいて第4の出力信号を生成してSlaveに出力する。
【0162】
第1の出力信号、第2の出力信号、第1の外部信号及び第2の外部信号のそれぞれは、Master 21から送信されるコマンドの内容を示すCmd_modeと、Slave 22を識別するSlave_Adrと、Slave 22の内部のアドレス情報Sub_Adrと、Master 21から送信されるデータの長さLengthと、Master 21から送信されるデータの終了位置End of Dataと、を含む。
【0163】
図37のように通信システム3を構成することにより、Master 21とSlave 22間で高速にデータ通信を行うことができる。
【0164】
Master SerDes 7とSlave SerDes 13間では、例えばTDD方式又はFDD(Frequency Division Duplexing)方式にて、高速にデータ通信を行うことができる。
【0165】
なお、本技術は以下のような構成を取ることができる。
(1)第1の外部装置からの第1の外部信号に基づいて第1の出力信号を生成して第2の外部装置に出力するとともに、前記第2の外部装置からの第2の外部信号に基づいて第2の出力信号を生成して前記第1の外部装置に出力するLINKを備え、
前記第1の出力信号及び前記第2の外部信号のそれぞれは、
前記第1の外部装置から送信されるコマンドの内容を示すコマンド情報と、
前記第1の外部装置から送信されるデータの最終宛先装置を識別する最終宛先装置識別情報と、
前記最終宛先装置の内部のアドレスを示す内部アドレス情報と、
前記第1の外部装置から送信されるデータの長さを示すデータ長情報と、
前記第1の外部装置から送信されるデータの終了位置を示すデータ終了位置情報と、を含む、通信装置。
(2)前記最終宛先装置識別情報は、前記コマンド情報の次に配置され、
前記内部アドレス情報は、前記最終宛先装置識別情報の次に配置され、
前記データ長情報は、前記内部アドレス情報の次に配置される、(1)に記載の通信装置。
(3)前記コマンド情報は、前記通信装置と前記第2の外部装置との間の所定の通信規格上のコマンドフォーマットを定義するコマンドフォーマット情報を含む、(1又)は(2)に記載の通信装置。
(4)前記コマンド情報は、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報を含む、(1)乃至(3)のいずれか一項に記載の通信装置。
(5)前記第1の出力信号及び前記第2の外部信号のそれぞれは、前記第2の外部装置と前記最終宛先装置の間の通信周波数を指定する通信周波数情報をさらに含む、(1)乃至(4)のいずれか一項に記載の通信装置。
(6)前記第1の出力信号及び前記第2の外部信号は、I2C(Inter-Integrated Circuit)通信のコマンドを前記通信装置と前記第2の外部装置との間の所定の通信規格にプロトコル変換したコマンドを含む、(1)乃至(5)のいずれか一項に記載の通信装置。
(7)前記LINKは、前記第1の外部信号を構成する各情報単位を前記第1の外部装置から受信するたびに、肯定応答を示すACK信号、又は否定応答を示すNACK信号を前記第1の外部装置に送信する、(1)乃至(6)のいずれか一項に記載の通信装置。
(8)前記LINKは、前記第1の外部信号に応じた信号と、前記第2の外部信号に応じた信号を記憶する記憶部を有し、
前記LINKは、前記第1の外部装置からの前記第1の外部信号の受信が終了すると、前記受信されて前記記憶部に記憶された第1の外部信号をまとめてプロトコル変換した後に前記第1の出力信号を生成する、(1)乃至(7)のいずれか一項に記載の通信装置。
(9)前記LINKによるプロトコル変換は、TDD(Time Division Duplex)のプロトコル変換である、(8)に記載の通信装置。
(10)前記LINKは、前記第1の出力信号を前記第2の外部装置に送信し、前記第2の外部装置から前記第1の出力信号に対する処理が完了したことを示す情報を受信すると、処理完了を示す信号を前記記憶部に記憶する、(8)又は(9)に記載の通信装置。
(11)前記LINKは、前記第1の外部装置からのコマンドに基づいて、前記記憶部の記憶領域を解放する、(8)乃至(10)のいずれか一項に記載の通信装置。
(12)前記LINKは、前記第2の外部装置から送信された前記第2の外部信号に対する処理完了情報を、前記第1の外部装置からの要求信号に応じて前記第1の外部装置に出力するか、又は前記第1の外部装置に対して割り込み処理を行って前記第1の外部装置に出力する、(1)乃至(11)のいずれか一項に記載の通信装置。
(13)前記LINKは、前記第1の出力信号の出力を指示する出力指示情報と、前記第1の外部信号の送信終了を示す送信終了情報とを含む前記第1の外部信号を前記第1の外部装置から受信する、(1)乃至(12)のいずれか一項に記載の通信装置。
(14)前記LINKは、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報として第1の値が受信された場合には、前記第1の外部信号の送信終了を示す送信終了情報が受信されると、前記第1の外部装置から送信される前記第1の外部信号が終了したと認識する、(1)乃至(13)のいずれか一項に記載の通信装置。
(15)前記LINKは、前記第1の外部装置から送信されるデータの終了判定の条件を指定するデータ終了判定条件情報として第2の値が受信された場合には、その後に受信する前記データ終了判定条件情報の値によらず、前記第1の出力信号の出力を指示する出力指示情報及び前記第1の外部信号の送信終了を示す送信終了情報が受信されると、前記第1の外部装置から送信される前記第1の外部信号が終了したと認識する、(1)乃至(14)のいずれか一項に記載の通信装置。
(16)前記LINKは、前記第1の出力信号を前記第2の外部装置に送信した後、前記記憶部の記憶領域を解放する、(8)又は(9)に記載の通信装置。
(17)前記LINKは、
前記記憶部に記憶された前記第2の外部信号に基づく信号に対して前記第2の出力信号に対するプロトコル変換を行った後の信号を前記第1の外部装置に情報単位ごとに出力することと、
前記第1の外部装置から出力される前記第1の外部信号を構成する各情報単位を受信することと、の少なくとも一方を、予め定めた回数又は時間内に行う、(8)乃至(11)、(16)のいずれか一項に記載の通信装置。
(18)第1のLINKを備えるMaster SerDesと、
第2のLINKを備えるSlave SerDesと、を備え、
前記第1のLINKは、Masterからの第1の外部信号に基づいて第1の出力信号を生成して前記Slave SerDesに出力するとともに、前記Slave SerDesからの第2の出力信号に基づいて第3の出力信号を生成して前記Masterに出力し、
前記第2のLINKは、Slaveからの第2の外部信号に基づいて前記第2の出力信号を生成して前記Master SerDesに出力するとともに、前記Master SerDesからの前記第1の出力信号に基づいて第4の出力信号を生成して前記Slaveに出力し、
前記第1の出力信号、前記第2の出力信号、前記第1の外部信号及び前記第2の外部信号のそれぞれは、
前記Masterから送信されるコマンドの内容を示すコマンド情報と、
前記Slaveを識別する最終宛先装置識別情報と、
前記Slaveの内部のアドレスを示す内部アドレス情報と、
前記Masterから送信されるデータの長さを示すデータ長情報と、
前記Masterから送信されるデータの終了位置を示すデータ終了位置情報と、を含む、通信システム。
【0166】
本開示の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本開示の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本開示の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【0167】
1 通信装置、3 通信システム、4 ECU、4a I2C、5 SoC、5a I2C、7 Master SerDes、8 I2C Cmd Unit、9 Fw. Rx、10 Rv. Tx、11 LINK、11a mem、12 image sensor、12a I2C、13 Slave SerDes、14 temperature sensor、17 LINK、19 mem、20 mem、21 Master、22 Slave