IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニーセミコンダクタソリューションズ株式会社の特許一覧

特許7592590通信装置および通信方法、並びにプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-22
(45)【発行日】2024-12-02
(54)【発明の名称】通信装置および通信方法、並びにプログラム
(51)【国際特許分類】
   H04L 69/00 20220101AFI20241125BHJP
   H04L 1/16 20230101ALI20241125BHJP
【FI】
H04L69/00
H04L1/16
【請求項の数】 13
(21)【出願番号】P 2021526039
(86)(22)【出願日】2020-06-03
(86)【国際出願番号】 JP2020021971
(87)【国際公開番号】W WO2020250778
(87)【国際公開日】2020-12-17
【審査請求日】2023-04-13
(31)【優先権主張番号】P 2019111476
(32)【優先日】2019-06-14
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】宮崎 聡一郎
(72)【発明者】
【氏名】高橋 宏雄
(72)【発明者】
【氏名】百代 俊久
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2000-188609(JP,A)
【文献】特開平10-262015(JP,A)
【文献】特開2005-039726(JP,A)
【文献】国際公開第2005/096523(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-69/40
H04L 1/16
(57)【特許請求の範囲】
【請求項1】
送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントを取得し、再送を要求する候補となる前記パケットの前記メッセージカウントを再送候補メッセージカウントとして検出する再送検出部と、
前記再送候補メッセージカウントの前記パケットのうち、前記送信側の通信装置で再送可能に保持されている前記パケットの再送を要求する再送要求データを生成する再送要求部と
を備え
前記再送要求部は、
前記再送候補メッセージカウントで示された前記メッセージカウントのうち、前記送信側の通信装置において送信済みの前記パケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部と、
前記送信側の通信装置において再送の対象となる前記パケットを保持する第2のバッファの待ち数に基づいたタイミングで、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送要求の送信要求を、前記送信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行するタイミング制御部と
を有する通信装置。
【請求項2】
前記再送要求部は、前記タイミング制御部による送信要求に対して前記送受信スケジューラから送信許可が得られた場合、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送を要求する再送要求データを生成して前記送受信スケジューラに供給する再送要求データ生成部を有する
請求項1に記載の通信装置。
【請求項3】
前記再送要求データ生成部は、前記送信側の通信装置において新規に送る前記パケットを保持する第3のバッファの待ち数に基づいて、前記送信側の通信装置から新規に送られてくる前記パケットの送信に対する、再送されてくる前記パケットの送信の頻度を示す再送頻度を求めて、前記再送要求データに付与する
請求項2に記載の通信装置。
【請求項4】
前記再送検出部は、前記メッセージカウントの受信をトリガとして、取得した前記メッセージカウントが連続しているか否かを判定し、その判定結果に基づいて前記再送候補メッセージカウントを検出する
請求項1に記載の通信装置。
【請求項5】
前記再送検出部は、前記パケットの検出をトリガとして、取得した前記メッセージカウントが連続しているか否かを判定し、その判定結果に基づいて前記再送候補メッセージカウントを検出するとともに、ヘッダエラーが検出された前記パケットを、再送を要求する候補とする
請求項1に記載の通信装置。
【請求項6】
受信側の通信装置が、
送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントを取得し、再送を要求する候補となる前記パケットの前記メッセージカウントを再送候補メッセージカウントとして検出することと、
前記再送候補メッセージカウントの前記パケットのうち、前記送信側の通信装置で再送可能に保持されている前記パケットの再送を要求する再送要求データを生成することと
を含み、
前記送信側の通信装置において再送の対象となる前記パケットを保持する第2のバッファの待ち数に基づいたタイミングで、前記再送候補メッセージカウントで示された前記メッセージカウントのうち、前記送信側の通信装置において送信済みの前記パケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部に登録されている前記メッセージカウントの前記パケットの再送要求の送信要求を、前記送信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行する
通信方法。
【請求項7】
受信側の通信装置のコンピュータに、
送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントを取得し、再送を要求する候補となる前記パケットの前記メッセージカウントを再送候補メッセージカウントとして検出することと、
前記再送候補メッセージカウントの前記パケットのうち、前記送信側の通信装置で再送可能に保持されている前記パケットの再送を要求する再送要求データを生成することと
を含み、
前記送信側の通信装置において再送の対象となる前記パケットを保持する第2のバッファの待ち数に基づいたタイミングで、前記再送候補メッセージカウントで示された前記メッセージカウントのうち、前記送信側の通信装置において送信済みの前記パケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部に登録されている前記メッセージカウントの前記パケットの再送要求の送信要求を、前記送信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行する
通信処理を実行させるためのプログラム。
【請求項8】
受信側の通信装置から制御チャネルを介して送信されてくる制御データを識別し、前記受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求する前記パケットを、そのパケットのヘッダに含まれているメッセージカウントによって指定する再送要求データを検出する制御データ識別部と、
前記再送要求データで再送が要求されている前記パケットの送信、および、前記受信側の通信装置へ新規に送る前記パケットの送信について切り替えを制御する送信スケジューラと
前記受信側の通信装置へ送信された送信済みパケットを保持する第1のバッファと、
前記再送要求データの前記メッセージカウントによって指定されたパケットを送信の対象として、そのパケットに対する上書きを禁止して保持する第2のバッファと
を備え、
前記受信側の通信装置には、再送を要求する候補となる前記パケットの前記メッセージカウントである再送候補メッセージカウントで示された前記メッセージカウントのうち、前記第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部が設けられており、
前記第2のバッファの待ち数に基づいたタイミングで、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送要求の送信要求が、前記受信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行される
通信装置。
【請求項9】
前記第1のバッファおよび前記第2のバッファとしての機能が1つのバッファのアドレス管理で実現される
請求項8に記載の通信装置。
【請求項10】
前記送信スケジューラは、前記受信側の通信装置へ新規に送る前記パケットを保持する第3のバッファを有する
請求項9に記載の通信装置。
【請求項11】
前記送信スケジューラは、前記再送要求データに付与されている、前記受信側の通信装置へ新規に送る前記パケットの送信に対する、再送する前記パケットの送信の頻度を示す再送頻度に従って、送信の切り替えを制御する
請求項8に記載の通信装置。
【請求項12】
送信側の通信装置が、
受信側の通信装置から制御チャネルを介して送信されてくる制御データを識別し、前記受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求する前記パケットを前記パケットのヘッダに含まれているメッセージカウントによって指定する再送要求データを検出することと、
前記再送要求データで再送が要求されている前記パケットの送信、および、前記受信側の通信装置へ新規に送る前記パケットの送信について切り替えを制御することと
を含み、
前記受信側の通信装置には、再送を要求する候補となる前記パケットの前記メッセージカウントである再送候補メッセージカウントで示された前記メッセージカウントのうち、前記受信側の通信装置へ送信された送信済みパケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部が設けられており、
前記再送要求データの前記メッセージカウントによって指定されたパケットを送信の対象として、そのパケットに対する上書きを禁止して保持する第2のバッファの待ち数に基づいたタイミングで、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送要求の送信要求が、前記受信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行される
通信方法。
【請求項13】
送信側の通信装置のコンピュータに、
受信側の通信装置から制御チャネルを介して送信されてくる制御データを識別し、前記受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求する前記パケットを前記パケットのヘッダに含まれているメッセージカウントによって指定する再送要求データを検出することと、
前記再送要求データで再送が要求されている前記パケットの送信、および、前記受信側の通信装置へ新規に送る前記パケットの送信について切り替えを制御することと
を含み、
前記受信側の通信装置には、再送を要求する候補となる前記パケットの前記メッセージカウントである再送候補メッセージカウントで示された前記メッセージカウントのうち、前記受信側の通信装置へ送信された送信済みパケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部が設けられており、
前記再送要求データの前記メッセージカウントによって指定されたパケットを送信の対象として、そのパケットに対する上書きを禁止して保持する第2のバッファの待ち数に基づいたタイミングで、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送要求の送信要求が、前記受信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行される
通信処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置および通信方法、並びにプログラムに関し、特に、より高い通信品質を提供することができるようにした通信装置および通信方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、車両の自動運転技術を実現するために、CIS(CMOS(Complementary Metal Oxide Semiconductor) Image Sensor)などの画像センサや、TOF(Time of Flight)を利用した距離センサなどの各種のセンサが車両に搭載されている。そして、これらのセンサとアプリケーションプロセッサ(AP:Application Processor)との通信に、CSI(Camera Serial Interface)-2の規格を利用することが検討されている。
【0003】
また、特許文献1では、CSI-2の規格を利用して、処理装置と複数の画像センサとを接続する際に、データバスの数を減らすことができるシステムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2017-211864号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、既存のCSI-2の規格では、例えば、画像を伝送しているパケットの一部に通信エラーが発生した場合、そのパケットを含む1フレーム全体を送り直すことや、そのパケットを含む1フレームごと失ってしまうことなどが発生し、通信品質が低下することが懸念されていた。
【0006】
本開示は、このような状況に鑑みてなされたものであり、より高い通信品質を提供することができるようにするものである。
【課題を解決するための手段】
【0007】
本開示の第1の側面の通信装置は、送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントを取得し、再送を要求する候補となる前記パケットの前記メッセージカウントを再送候補メッセージカウントとして検出する再送検出部と、前記再送候補メッセージカウントの前記パケットのうち、前記送信側の通信装置で再送可能に保持されている前記パケットの再送を要求する再送要求データを生成する再送要求部とを備え、前記再送要求部は、前記再送候補メッセージカウントで示された前記メッセージカウントのうち、前記送信側の通信装置において送信済みの前記パケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部と、前記送信側の通信装置において再送の対象となる前記パケットを保持する第2のバッファの待ち数に基づいたタイミングで、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送要求の送信要求を、前記送信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行するタイミング制御部とを有する
【0008】
本開示の第1の側面の通信方法またはプログラムは、送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントを取得し、再送を要求する候補となる前記パケットの前記メッセージカウントを再送候補メッセージカウントとして検出することと、前記再送候補メッセージカウントの前記パケットのうち、前記送信側の通信装置で再送可能に保持されている前記パケットの再送を要求する再送要求データを生成することとを含み、前記送信側の通信装置において再送の対象となる前記パケットを保持する第2のバッファの待ち数に基づいたタイミングで、前記再送候補メッセージカウントで示された前記メッセージカウントのうち、前記送信側の通信装置において送信済みの前記パケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部に登録されている前記メッセージカウントの前記パケットの再送要求の送信要求を、前記送信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行する
【0009】
本開示の第1の側面においては、送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントが取得され、再送を要求する候補となるパケットのメッセージカウントが再送候補メッセージカウントとして検出さ れ、再送候補メッセージカウントのパケットのうち、前記送信側の通信装置で再送可能に保持されているパケットの再送を要求する再送要求データが生成される。そして、送信側の通信装置において再送の対象となるパケットを保持する第2のバッファの待ち数に基づいたタイミングで、再送候補メッセージカウントで示されたメッセージカウントのうち、送信側の通信装置において送信済みのパケットを保持する第1のバッファの一番古いメッセージカウントよりも新しいメッセージカウントが登録される再送リストを保持する再送リスト保持部に登録されているメッセージカウントのパケットの再送要求の送信要求が、送信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行される。
【0010】
本開示の第2の側面の通信装置は、受信側の通信装置から制御チャネルを介して送信されてくる制御データを識別し、前記受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求する前記パケットを前記パケットのヘッダに含まれているメッセージカウントによって指定する再送要求データを検出する制御データ識別部と、前記再送要求データで再送が要求されている前記パケットの送信、および、前記受信側の通信装置へ新規に送る前記パケットの送信について切り替えを制御する送信スケジューラと、前記受信側の通信装置へ送信された送信済みパケットを保持する第1のバッファと、前記再送要求データの前記メッセージカウントによって指定されたパケットを送信の対象として、そのパケットに対する上書きを禁止して保持する第2のバッファとを備え、前記受信側の通信装置には、再送を要求する候補となる前記パケットの前記メッセージカウントである再送候補メッセージカウントで示された前記メッセージカウントのうち、前記第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部が設けられており、前記第2のバッファの待ち数に基づいたタイミングで、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送要求の送信要求が、前記受信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行される
【0011】
本開示の第2の側面の通信方法またはプログラムは、受信側の通信装置から制御チャネルを介して送信されてくる制御データを識別し、前記受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求する前記パケットを前記パケットのヘッダに含まれているメッセージカウントによって指定する再送要求データを検出することと、前記再送要求データで再送が要求されている前記パケットの送信、および、前記受信側の通信装置へ新規に送る前記パケットの送信について切り替えを制御することとを含み、前記受信側の通信装置には、再送を要求する候補となる前記パケットの前記メッセージカウントである再送候補メッセージカウントで示された前記メッセージカウントのうち、前記受信側の通信装置へ送信された送信済みパケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部が設けられており、前記再送要求データの前記メッセージカウントによって指定されたパケットを送信の対象として、そのパケットに対する上書きを禁止して保持する第2のバッファの待ち数に基づいたタイミングで、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送要求の送信要求が、前記受信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行される
【0012】
本開示の第2の側面においては、受信側の通信装置から制御チャネルを介して送信されてくる制御データが識別され、受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求するパケットをパケットのヘッダに含まれているメッセージカウントによって指定する再送要求データが検出され、その再送要求データで再送が要求されているパケットの送信、および、受信側の通信装置へ新規に送るパケットの送信について切り替えが制御される。そして、受信側の通信装置には、再送を要求する候補となるパケットのメッセージカウントである再送候補メッセージカウントで示されたメッセージカウントのうち、受信側の通信装置へ送信された送信済みパケットを保持する第1のバッファの一番古いメッセージカウントよりも新しいメッセージカウントが登録される再送リストを保持する再送リスト保持部が設けられており、再送要求データのメッセージカウントによって指定されたパケットを送信の対象として、そのパケットに対する上書きを禁止して保持する第2のバッファの待ち数に基づいたタイミングで、再送リストに登録されているメッセージカウント記パケットの再送要求の送信要求が、受信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行される。
【図面の簡単な説明】
【0013】
図1】本技術を適用した通信システムを車両に搭載した一実施の形態の構成例を示すブロック図である。
図2】パケットフォーマットの一例を示す図である。
図3】送信側通信装置および受信側通信装置の構成例を示すブロック図である。
図4】パケット再送処理について説明するフローチャートである。
図5】ペイロードエラーが発生した場合の再送検出処理について説明する図である。
図6】ヘッダエラーが発生した場合の再送検出処理について説明する図である。
図7】シンクロスが発生した場合の再送検出処理について説明する図である。
図8】ヘッダに含まれているメッセージカウントの受信をトリガとした再送検出処理を説明するフローチャートである。
図9】ヘッダエラーが発生した場合の再送検出処理について説明する図である。
図10】シンクロスおよびヘッダエラーが発生した場合の再送検出処理について説明する図である。
図11】シンクロス、ヘッダエラー、およびペイロードエラーが発生した場合の再送検出処理について説明する図である。
図12】パケットの検出をトリガとした再送検出処理を説明するフローチャートである。
図13】再送制御器の構成例を示すブロック図である。
図14】再送リストを管理する処理を説明するフローチャートである。
図15】再送要求データを送信する処理を説明するフローチャートである。
図16】送信済みバッファの第1の構成例を示すブロック図である。
図17】送信済みバッファの第2の構成例を示すブロック図である。
図18】送信済みバッファのメモリ構造について説明する図である。
図19】再送要求された送信済みパケットが検索結果として得られたときの処理について説明する図である。
図20】送信済みパケットを再送したときの処理について説明する図である。
図21】送信スケジューラの構成例を示すブロック図である。
図22】画像センサの第1の実装例を示す図である。
図23】画像センサの第2の実装例を示す図である。
図24】アプリケーションプロセッサの第1の実装例を示す図である。
図25】アプリケーションプロセッサの第2の実装例を示す図である。
図26】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0015】
<通信システムの構成例>
まず、図1を参照して、本技術を適用した通信システムを車両に搭載した一実施の形態の構成例について説明する。
【0016】
例えば、図1に示す通信システム11は、車両12に搭載され、センサユニット13-1および13-2、制御装置14、並びに、同軸ケーブル15-1および15-2を備えて構成される。
【0017】
また、図1に示す通信システム11では、車両12の前方に向かって配置されるセンサユニット13-1と、車両12の後方に向かって配置されるセンサユニット13-2とが図示されているが、その他、様々な方向に向かって多数のセンサユニット13(図示せず)が車両12に配置されている。そして、それらのセンサユニット13は、例えば、同軸ケーブル15を介して制御装置14に接続され、センサユニット13および制御装置14の間で信号が伝送される。ここで、このような車両12における通信での利用を想定してMIPI(Mobile Industry Processor Interface) Allianceで開発されている物理層の規格であるA-PHYでは、例えば、最大15mの伝送距離に対応することが想定されている。
【0018】
センサユニット13は、画像センサ21(CIS)や距離センサ22(TOF)などの各種のセンサを有しており、それらのセンサが、CSI-2の規格に従ったバスを介してシリアライザ23(SER)に接続されている。制御装置14は、アプリケーションプロセッサ31(AP)を有しており、アプリケーションプロセッサ31が、CSI-2の規格に従ったバスを介してデシリアライザ32(DES)に接続されている。
【0019】
そして、画像センサ21や距離センサ22などのセンサとシリアライザ23との間、並びに、アプリケーションプロセッサ31とデシリアライザ32との間では、CSI-2の規格に従った通信が行われる。また、シリアライザ23とデシリアライザ32との間は、例えば、FPD(Flat Panel Display)-LINK IIIなどの規格に従って、同軸ケーブル15を介した通信が行われる。
【0020】
従って、通信システム11は、シリアライザ23およびデシリアライザ32を介在した構成となっているが、各センサユニット13が有する複数のセンサと、アプリケーションプロセッサ31とは、互いにCSI-2の規格に従って信号を送受信することができる。即ち、通信システム11では、アプリケーションプロセッサ31の1つの入力ポートに、CSI-2の規格に従ったバスを介して画像センサ21や距離センサ22などの複数のセンサが接続されているように通信が行われる。
【0021】
以下では、通信システム11において、画像センサ21が有するCSI-2送信回路と、アプリケーションプロセッサ31が有するCSI-2受信回路との間で行われる通信について説明する。また、通信システム11は、既存のCSI-2の規格に従った通信を行うことができるとともに、既存のCSI-2から拡張されたCSI-2(以下、拡張CSI-2と称する)の規格に従った通信を行うことができるように構成されている。
【0022】
ここで、図2を参照して、既存のCSI-2で規定されているパケットフォーマット、および、拡張CSI-2で規定されているパケットフォーマットについて説明する。
【0023】
例えば、1フレーム分の画像を伝送するフレームフォーマットでは、フレームの開始を示すフレームスタート(FS:Frame Start)から、フレームの終了を示すフレームエンド(FE:Frame End)までの間に、画像のラインごとに、そのラインのデータが格納されたパケットが生成される。
【0024】
まず、図2のAに示すように、既存のCSI-2におけるパケットフォーマットは、先頭にパケットヘッダが配置されるとともに、後尾にパケットフッタが配置されて構成される。
そして、パケットヘッダおよびパケットフッタの間に、データが格納されるペイロードが配置される構成となっている。
【0025】
一方、図2のBに示すように、拡張CSI-2におけるパケットフォーマットでは、パケットヘッダおよびパケットフッタは、既存のCSI-2と同様に構成される。そして、拡張CSI-2におけるパケットフォーマットでは、既存のパケットヘッダの後に追加パケットヘッダが配置されるとともに、既存のパケットフッタの前に追加パケットフッタが配置され、追加パケットヘッダおよび追加パケットフッタの間に、データが格納されるペイロードが配置される構成となっている。つまり、既存のCSI-2におけるパケットフォーマットのペイロードに、追加パケットヘッダ、データ、および追加パケットフッタが格納されるように、拡張CSI-2におけるパケットフォーマットは構成されている。
【0026】
例えば、追加パケットヘッダには、パケットを識別するためのメッセージカウント(MC:Message Count)が含まれており、メッセージカウントとしては、パケットを伝送するたびにインクリメントされる伝送番号を用いることができる。なお、追加パケットヘッダは、メッセージカウントの他、例えば、通信システム11を車両12に適用するのに必要となる各種の情報が含まれるように構成される。
【0027】
そして、通信システム11では、追加パケットヘッダに含まれるメッセージカウントを利用して、パケットを個別に識別することができることより、パケットごとの再送を実現することができる。
【0028】
<送信側および受信側の通信装置の構成例>
図3は、画像センサ21に設けられる送信側通信装置41、および、アプリケーションプロセッサ31に設けられる受信側通信装置42の構成例を示すブロック図である。
【0029】
例えば、通信システム11では、送信側通信装置41および受信側通信装置42の間で互いに、低速かつ双方向の制御チャネルを介して、制御データの送受信が行われる。また、通信システム11では、送信側通信装置41から受信側通信装置42に向かって、高速かつ単方向のデータチャネルを介して、例えば、画像などのセンサデータの送信が行われる。
【0030】
送信側通信装置41は、トランスミッタ51、レシーバ52、誤り検出符号計算器53、誤り検出器54、制御データ識別器55、送信済みバッファ56、送信スケジューラ57、誤り検出符号計算器58、およびトランスミッタ59を備えて構成される。例えば、送信側通信装置41に図示される破線より上側に配置されている各ブロックは、制御データを送受信する処理に用いられ、その破線より下側に配置されている各ブロックは、センサデータを送信する処理に用いられる。
【0031】
受信側通信装置42は、トランスミッタ61、レシーバ62、誤り検出符号計算器63、誤り検出器64、送受信スケジューラ65、レシーバ66、誤り検出器67、再送検出器68、および再送制御器69を備えて構成される。例えば、受信側通信装置42に図示される破線より上側に配置されている各ブロックは、制御データを送受信する処理に用いられ、その破線より下側に配置されている各ブロックは、センサデータを受信する処理に用いられる。
【0032】
トランスミッタ51は、誤り検出符号計算器53から供給される制御データを、制御チャネルを介して受信側通信装置42へ送信する。
【0033】
レシーバ52は、受信側通信装置42から制御チャネルを介して送信されてくる制御データを受信し、誤り検出器54へ供給する。
【0034】
誤り検出符号計算器53は、制御データ識別器55を介して供給される制御データに対する誤り検出用の符号として、例えば、パリティビットやCRC(Cyclic Redundancy Check)などを計算する。そして、誤り検出符号計算器53は、算出した誤り検出用の符号を制御データに付加して、トランスミッタ51に供給する。
【0035】
誤り検出器54は、レシーバ52から供給される制御データに付加されている誤り検出用の符号を用いて、制御データに誤りが発生しているか否かを検出する。そして、誤り検出器54は、制御データの誤り検出を行った結果に従って、制御データに誤りが発生していない場合には、そのまま制御データを制御データ識別器55に供給する。一方、誤り検出器54は、制御データの誤り検出を行った結果に従って、制御データに誤りが発生している場合には、制御データに誤りが発生していることを通知するとともに制御データを制御データ識別器55に供給する。
【0036】
制御データ識別器55は、例えば、画像センサ21を制御する制御回路(図示せず)との間で制御データの入出力を行うとともに、受信側通信装置42から送信されてきた制御データを識別する。即ち、制御データ識別器55は、制御回路から入力される制御データを誤り検出符号計算器53に供給し、誤り検出器54から供給される制御データを制御回路に出力する際に、その制御データを識別する。例えば、制御データ識別器55は、誤り検出器54から供給される制御データとして、後述するような再送要求データが受信側通信装置42から送信されてきた場合、その再送要求データを検出して送信済みバッファ56に供給する。
【0037】
送信済みバッファ56には、送信側通信装置41から受信側通信装置42へ送信される送信パケットが、送信スケジューラ57から供給される。そして、送信済みバッファ56は、送信スケジューラ57から供給された送信パケットを、送信済みパケットとして一時的に保持する。また、送信済みバッファ56は、制御データ識別器55から再送要求データが供給されると、適宜、保持している送信済みパケットの中から、再送要求データで再送が要求されている送信済みパケットを、再送パケットとして送信スケジューラ57に供給する。なお、再送パケットのペイロードに格納されているセンサデータを、以下適宜、再送データとも称する。
【0038】
送信スケジューラ57には、画像センサ21が有する撮像素子(図示せず)からセンサデータが入力される。ここで、画像センサ21から送信スケジューラ57に新規に入力されたセンサデータ、即ち、再送データでないセンサデータがペイロードに格納されているパケットを、以下適宜、新規パケットと称する。また、送信スケジューラ57は、送信済みバッファ56との間で、後述するように再送データ送信要求および再送データ送信許可をやり取りし、送信済みバッファ56から再送パケットが供給される。そして、送信スケジューラ57は、新規パケットまたは再送パケットを、それぞれを送信するタイミングを調整して順次、送信側通信装置41から受信側通信装置42へ送信される送信パケットとして、送信済みバッファ56および誤り検出符号計算器58に供給する。
【0039】
誤り検出符号計算器58は、送信スケジューラ57から供給される送信パケットの誤り検出用の符号として、例えば、パリティビットやCRCなどを計算し、その誤り検出用の符号を送信パケットに付加してトランスミッタ59に供給する。
【0040】
トランスミッタ59は、誤り検出符号計算器58から供給される送信パケットを、データチャネルを介して受信側通信装置42へ送信する。
【0041】
トランスミッタ61、レシーバ62、誤り検出符号計算器63、および誤り検出器64は、トランスミッタ51、レシーバ52、誤り検出符号計算器53、および誤り検出器54と、それぞれ同様に構成される。
【0042】
送受信スケジューラ65は、例えば、アプリケーションプロセッサ31を制御する制御回路(図示せず)との間で制御データの入出力を行うとともに、送信側通信装置41との間で送受信される制御データのスケジュールを管理する。即ち、送受信スケジューラ65は、誤り検出器64から供給される制御データを制御回路に出力するとともに、制御回路から入力される制御データを所定のタイミングで誤り検出符号計算器63に供給して、送信側通信装置41へ送信させる。さらに、送受信スケジューラ65は、再送制御器69から再送要求データが供給されると、その再送要求データを制御データとして誤り検出符号計算器63に供給し、送信側通信装置41へ送信させる。
【0043】
レシーバ66は、送信側通信装置41からデータチャネルを介して送信されてくる送信パケットを受信し、誤り検出器67へ供給する。
【0044】
誤り検出器67は、レシーバ66から供給される送信パケットに付加されている誤り検出用の符号を用いて、その送信パケットに誤りが発生しているか否かを検出する。そして、誤り検出器67は、送信パケットに付加されている誤り検出用の符号を用いて、送信パケットに誤りが発生しているか否かを検出した結果を示す誤り検出結果とともに、送信パケットのペイロードに格納されているセンサデータを、後段の処理回路へ出力する。
【0045】
さらに、誤り検出器67は、送信パケットに発生している誤りを検出した結果を示す誤り検出結果を再送検出器68に供給する。例えば、誤り検出器67は、受信側通信装置42が受信した送信パケットにヘッダエラーまたはペイロードエラーが発生していることを検出した場合、ヘッダエラーまたはペイロードエラーが検出されたことを示す誤り検出結果を再送検出器68に供給する。また、誤り検出器67は、受信側通信装置42が受信した送信パケットの追加パケットヘッダに含まれているメッセージカウントを再送検出器68に供給する。
【0046】
再送検出器68は、誤り検出器67から供給される誤り検出結果およびメッセージカウントに基づいて、受信側通信装置42が受信することができずに再送が必要となった送信パケットのメッセージカウントを検出する再送検出処理を行う。そして、再送検出器68は、再送検出処理で検出したメッセージカウントを、再送を要求する候補となる再送候補メッセージカウントとして検出して再送制御器69に供給する。なお、再送検出器68が行う再送検出処理については、図5乃至12を参照して後述する。
【0047】
再送制御器69は、再送検出器68から供給される再送候補メッセージカウント、および、送信側通信装置41から送信されてくる各種の情報に基づいて、再送パケットの送信を要求する再送要求データを生成し、送受信スケジューラ65に供給する再送要求処理を行う。なお、再送検出器68が行う再送要求処理については、図13乃至15を参照して後述する。
【0048】
ここで、通信システム11では、再送制御器69において再送要求処理を行うのに必要となる各種の情報が、センサデータがペイロードに格納されている送信パケットのヘッダに埋め込んで、送信側通信装置41から受信側通信装置42へ送信される。例えば、送信側通信装置41は、拡張CSI-2で規定されている追加パケットヘッダのユーザ定義領域を利用して、再送制御器69において再送要求処理を行うのに必要となる各種の情報を送信することができ、それらの情報は、誤り検出器67を介して再送制御器69に供給される。
【0049】
このように送信側通信装置41および受信側通信装置42は構成されており、拡張CSI-2で規定されている追加パケットヘッダに含まれるメッセージカウントを利用することで、パケットごとの再送を実現することができる。
【0050】
図4に示すフローチャートを参照して、通信システム11において実行されるパケット再送処理について概略的な説明を行う。
【0051】
ステップS11において、受信側通信装置42の再送検出器68が再送検出処理を行う。例えば、再送検出器68は、誤り検出器67から供給される誤り検出結果およびメッセージカウントに基づいて、受信側通信装置42が受信することができずに再送が必要となった送信パケットのメッセージカウントを検出する。
【0052】
ステップS12において、受信側通信装置42の再送制御器69が再送要求処理を行う。例えば、再送制御器69は、再送検出器68から供給される再送候補メッセージカウントの中から、送信済みバッファ56に保持されている一番古いメッセージカウントでフィルタしつつ、再送を要求するパケットのメッセージカウントが登録される再送リストを作成する。これにより、再送リストには、再送候補メッセージカウントのうちの、送信済みバッファ56に保持されている一番古いメッセージカウントよりも新しいメッセージカウントが登録される。そして、再送制御器69は、送信済みバッファ56の待ち数を考慮して再送要求の送信タイミングを調整し、再送要求時の送信済みバッファ56の待ち数を考慮した再送頻度を付与したメッセージカウントを指定した再送要求データを生成する。
【0053】
ステップS13において、送信側通信装置41の制御データ識別器55および送信済みバッファ56が再送受付処理を行う。例えば、制御データ識別器55は、誤り検出器54から供給される制御データの中から、再送制御器69により生成された再送要求データを識別し、再送要求のパケットを送信済みバッファ56に供給する。そして、送信済みバッファ56は、保持している送信済みパケットを、再送要求データで指定されているメッセージカウントを用いて検索し、再送が要求されている送信済みパケットを検索結果として取得すると、その送信済みパケットを再送パケットとして確保する。一方、送信済みバッファ56は、再送が要求されている送信済みパケットを検索結果として取得することができなかった場合、その検索に用いた再送要求データを破棄する。
【0054】
ステップS14において、送信側通信装置41の送信スケジューラ57が再送データ送信処理を行う。例えば、送信スケジューラ57は、送信済みバッファ56で確保されている再送パケットと、新規に入力されたセンサデータがペイロードに格納されている新規パケットとを送信するタイミングを調整して、新規パケットまたは再送パケットを適宜、送信パケットとして送信する。
【0055】
以上のように、通信システム11では、送信側通信装置41から受信側通信装置42へ送信される送信パケットごとに再送を要求することができ、再送が要求された再送パケットの送信を実行することができる。
【0056】
<再送検出処理の処理例>
図5乃至図12を参照して、再送検出器68が行う再送検出処理について説明する。なお、以下では、図2に示す既存のパケットヘッダおよび追加パケットヘッダをヘッダと称し、ヘッダより後ろに配置される全てのデータをペイロードと称する。
【0057】
図5乃至図7は、ヘッダに含まれているメッセージカウントの受信をトリガとした再送検出処理を説明する図であり、それぞれ図示されている矩形の枠に囲われている番号(1~6)がメッセージカウントを表している。
【0058】
図5には、ヘッダは正常に受信できていてペイロードのみにエラーが発生するペイロードエラーの場合に、再送候補メッセージカウントを検出する再送検出処理の一例が示されている。また、図5には、メッセージカウント2の送信パケットにペイロードエラーが発生した状態が示されている。
【0059】
まず、受信側通信装置42が、メッセージカウント1の送信パケットを正常に受信すると、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント1を取得し、再送するか否かの検出が既に行われた再送検出済みメッセージカウントとして更新する。その後、受信側通信装置42が、メッセージカウント2の送信パケットを受信するが、その送信パケットにはペイロードエラーが発生している。従って、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント2を取得し、メッセージカウント2の送信パケットにペイロードエラーが発生したことを認識する。
【0060】
このとき、再送検出器68は、再送検出済みメッセージカウントであるメッセージカウント1と、ペイロードエラーが発生した送信パケットのメッセージカウント2とが連続であることより、再送候補メッセージカウントとしてメッセージカウント2を検出することができる。
【0061】
図6には、ヘッダエラーが発生していて、ペイロードは正常またはエラーのいずれかである場合に、再送候補メッセージカウントを検出する再送検出処理の一例が示されている。また、図6には、メッセージカウント2の送信パケットにヘッダエラーが発生した状態が示されている。
【0062】
まず、受信側通信装置42が、メッセージカウント1の送信パケットを正常に受信すると、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント1を取得し、再送検出済みメッセージカウントとして更新する。その後、受信側通信装置42が、メッセージカウント2の送信パケットを受信するが、その送信パケットにはヘッダエラーが発生している。従って、再送検出器68は、その送信パケットのヘッダを確認することができず、再送検出済みメッセージカウントは更新されない。
【0063】
そして、受信側通信装置42が、メッセージカウント3の送信パケットを正常に受信した場合、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント3を取得する。このとき、再送検出器68は、再送検出済みメッセージカウントであるメッセージカウント1と、正常に受信できた送信パケットのメッセージカウント3とが不連続であることより、それらの間にあるべきメッセージカウント2を再送候補メッセージカウントとして検出することができる。
【0064】
図7には、送信パケットの先頭検出を失敗し、受信側通信装置42において送信パケットの存在を認識することができないシンクロスが発生している場合に、再送候補メッセージカウントを検出する再送検出処理の一例が示されている。また、図7には、メッセージカウント2およびメッセージカウント3においてシンクロスが発生した状態が示されている。
【0065】
まず、受信側通信装置42が、メッセージカウント1の送信パケットを正常に受信すると、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント1を取得し、再送検出済みメッセージカウントとして更新する。その後、シンクロスが発生したために、受信側通信装置42では、メッセージカウント2およびメッセージカウント3の送信パケットの存在を認識することができず、再送検出済みメッセージカウントは更新されない。
【0066】
そして、受信側通信装置42が、メッセージカウント4の送信パケットを正常に受信した場合、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント4を取得する。このとき、再送検出器68は、再送検出済みメッセージカウントであるメッセージカウント1と、正常に受信できた送信パケットのメッセージカウント4とが不連続であることより、それらの間にあるべきメッセージカウント2およびメッセージカウント3を、再送候補メッセージカウントとして検出することができる。
【0067】
このように、受信側通信装置42では、再送検出器68は、ヘッダに含まれているメッセージカウントの受信をトリガとして、再送候補メッセージカウントを検出することができる。
【0068】
図8に示すフローチャートを参照して、ヘッダに含まれているメッセージカウントの受信をトリガとした再送検出処理について説明する。
【0069】
例えば、受信側通信装置42において送信パケットが新規に受信されると処理が開始され、ステップS21において、再送検出器68は、誤り検出器67から供給される誤り検出結果に従って、新規に受信した送信パケットについてヘッダエラーが検出されたか否かを判定する。
【0070】
ステップS21において、再送検出器68が、新規に受信した送信パケットについてヘッダエラーが検出されていないと判定した場合、処理はステップS22に進む。
【0071】
ステップS22において、再送検出器68は、新規に受信した送信パケットのヘッダから確認したメッセージカウントと、再送検出済みメッセージカウントとが連続しているか否かを判定する。例えば、再送検出器68は、新規に受信した送信パケットのヘッダから確認したメッセージカウントと再送検出済みメッセージカウントの差が1の場合には連続していると判定し、その差が1より大きい場合には連続していないと判定する。
【0072】
ステップS22において、再送検出器68が、新規に受信した送信パケットのヘッダから確認したメッセージカウントと、再送検出済みメッセージカウントとが連続してないと判定した場合、処理はステップS23に進む。
【0073】
ステップS23において、再送検出器68は、新規に受信した送信パケットのヘッダに含まれているメッセージカウントと、再送検出済みメッセージカウントとの間で不連続となっている部分のメッセージカウントを、再送候補メッセージカウントとして検出する。例えば、再送検出器68は、再送検出済みメッセージカウントに対して1を加算したメッセージカウントから、新規に受信したパケットのヘッダに含まれているメッセージカウントに対して1を減算したメッセージカウントまでを、再送候補メッセージカウントとして検出する。
【0074】
ステップS23の処理後、または、ステップS22において送信パケットのヘッダに含まれているメッセージカウントと再送検出済みメッセージカウントとが連続していると判定された場合、処理はステップS24に進む。
【0075】
ステップS24において、再送検出器68は、誤り検出器67から供給される誤り検出結果に従って、新規に受信した送信パケットについてペイロードエラーが検出されたか否かを判定する。
【0076】
ステップS24において、再送検出器68が、新規に受信した送信パケットについてペイロードエラーが検出されたと判定した場合、処理はステップS25に進む。
【0077】
ステップS25において、再送検出器68は、ペイロードエラーが検出された送信パケットのヘッダに含まれているメッセージカウントを、再送候補メッセージカウントとして検出する。例えば、再送検出器68は、再送検出済みメッセージカウントに対して1を加算したメッセージカウントから、新規に受信した送信パケットのヘッダに含まれているメッセージカウントまでを、再送候補メッセージカウントとして検出する。
【0078】
ステップS25の処理後、または、ステップS24において送信パケットについてペイロードエラーが検出されていないと判定された場合、処理はステップS26に進む。
【0079】
ステップS26において、新規に受信した送信パケットのヘッダから確認したメッセージカウントにより再送検出済みメッセージカウントを更新する。
【0080】
ステップS26の処理後、または、ステップS21において送信パケットについてヘッダエラーが検出されたと判定された場合、処理は終了される。
【0081】
以上のように、再送検出器68は、ヘッダに含まれているメッセージカウントの受信をトリガとして、再送を要求する候補となる再送候補メッセージカウントを検出することができる。
【0082】
図9乃至図11は、送信パケットの検出をトリガとした再送検出処理を説明する図であり、それぞれ図示されている矩形の枠に囲われている番号(1~6)がメッセージカウントを表している。なお、ペイロードエラー(図5)およびシンクロス(図7)が発生した場合における再送検出処理は上述と同様に行われ、それら以外のパターンが発生した場合について説明する。
【0083】
図9には、ヘッダエラーが発生していて、ペイロードは正常またはエラーのいずれかである場合に、再送候補メッセージカウントを検出する再送検出処理の一例が示されている。また、図9には、メッセージカウント2の送信パケットにヘッダエラーが発生した状態が示されている。
【0084】
まず、受信側通信装置42が、メッセージカウント1の送信パケットを正常に受信すると、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント1を取得し、再送検出済みメッセージカウントとして更新する。その後、受信側通信装置42が、メッセージカウント2の送信パケットを受信するが、その送信パケットにはヘッダエラーが発生している。従って、再送検出器68は、その送信パケットのヘッダを確認することができず、再送検出済みメッセージカウントは更新されない。このとき、再送検出器68は、再送検出済みメッセージカウントであるメッセージカウント1と連続するメッセージカウント2が少なくとも再送候補であると推定する。
【0085】
そして、受信側通信装置42が、メッセージカウント3の送信パケットを正常に受信した場合、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント3を取得する。このとき、再送検出器68は、再送候補として推定されているメッセージカウント2と、正常に受信できた送信パケットがメッセージカウント3とが連続していることより、再送候補として推定していたメッセージカウント2だけを、再送候補メッセージカウントとして検出することができる。
【0086】
図10には、シンクロスおよびヘッダエラーが発生している場合に、再送候補のメッセージカウントを検出する再送検出処理の一例が示されている。また、図10には、メッセージカウント2およびメッセージカウント4の送信パケットにおいてシンクロスが発生し、メッセージカウント3の送信パケットにヘッダエラーが発生した状態が示されている。
【0087】
まず、受信側通信装置42が、メッセージカウント1の送信パケットを正常に受信すると、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント1を取得し、再送検出済みメッセージカウントとして更新する。その後、シンクロスが発生したために、受信側通信装置42では、メッセージカウント2の送信パケットの存在を認識することができず、再送検出済みメッセージカウントは更新されない。
【0088】
さらに、受信側通信装置42が、メッセージカウント3の送信パケットを受信するが、その送信パケットにはヘッダエラーが発生している。従って、再送検出器68は、その送信パケットのヘッダを確認することができず、再送検出済みメッセージカウントは更新されない。このとき、再送検出器68は、再送検出済みメッセージカウントであるメッセージカウント1と連続するメッセージカウント2が少なくとも再送候補であると推定する。
その後、シンクロスが発生したために、受信側通信装置42では、メッセージカウント4の送信パケットの存在を認識することができず、再送検出済みメッセージカウントは更新されない。
【0089】
そして、受信側通信装置42が、メッセージカウント5の送信パケットを正常に受信した場合、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント5を取得する。このとき、再送候補として推定されているメッセージカウント2と、正常に受信できた送信パケットのメッセージカウント5とが不連続である。従って、再送検出器68は、再送候補として推定していたメッセージカウント2に加えて、不連続の間にあるべきメッセージカウント3およびメッセージカウント4を、再送候補メッセージカウントとして検出することができる。
【0090】
図11には、シンクロス、ヘッダエラー、およびペイロードエラーが発生している場合に、再送候補のメッセージカウントを検出する再送検出処理の一例が示されている。また、図11には、メッセージカウント2の送信パケットにおいてシンクロスが発生し、メッセージカウント3の送信パケットにヘッダエラーが発生し、メッセージカウント4の送信パケットにペイロードエラーが発生した状態が示されている。
【0091】
まず、受信側通信装置42が、メッセージカウント1の送信パケットを正常に受信すると、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント1を取得し、再送検出済みメッセージカウントとして更新する。その後、シンクロスが発生したために、受信側通信装置42では、メッセージカウント2の送信パケットの存在を認識することができず、再送検出済みメッセージカウントは更新されない。
【0092】
さらに、受信側通信装置42が、メッセージカウント3の送信パケットを受信するが、その送信パケットにはヘッダエラーが発生している。従って、再送検出器68は、その送信パケットのヘッダを確認することができず、再送検出済みメッセージカウントは更新されない。このとき、再送検出器68は、再送検出済みメッセージカウントであるメッセージカウント1と連続するメッセージカウント2が少なくとも再送候補であると推定する。
【0093】
その後、受信側通信装置42が、メッセージカウント4の送信パケットを受信するが、そのパケットにはペイロードエラーが発生している。従って、再送検出器68は、その送信パケットのヘッダを確認することで、ヘッダに含まれているメッセージカウント4を取得する。このとき、再送候補として推定されているメッセージカウント2と、ペイロードエラーが発生している送信パケットのメッセージカウント4とが不連続である。従って、再送検出器68は、再送候補として推定していたメッセージカウント2に加えて、不連続の間にあるべきメッセージカウント3、および、ペイロードエラーが発生しているメッセージカウント4を、再送候補メッセージカウントとして検出することができる。
【0094】
図12に示すフローチャートを参照して、送信パケットの検出をトリガとした再送検出処理について説明する。
【0095】
ステップS31乃至ステップS36において、図8のステップS21乃至S26と同様の処理が行われ、その詳細な説明は省略する。
【0096】
そして、ステップS31において、再送検出器68が、新規に受信した送信パケットについてヘッダエラーが検出されたと判定した場合、処理はステップS37に進む。
【0097】
ステップS37において、再送検出器68は、再送検出済みメッセージカウントに対して1を加算したメッセージカウントを、再送候補メッセージカウントとして検出する。さらに、再送検出器68は、現在の再送検出済みメッセージカウントをインクリメント(+1)して、再送検出済みメッセージカウントを更新する。ステップS37の処理後、処理は終了される。
【0098】
即ち、送信パケットの検出をトリガとした再送検出処理では、ヘッダエラーが検出された場合に、上述した図8のヘッダに含まれているメッセージカウントの受信をトリガとした再送検出処理とは異なる処理が行われる。つまり、送信パケットの検出をトリガとした再送検出処理では、ヘッダエラーが検出された場合、少なくとも再送検出済みメッセージカウントに対して1を加算したメッセージカウントを再送候補として推定し、ステップS37において再送候補メッセージカウントとして検出している。
【0099】
以上のように、再送検出器68は、送信パケットの検出をトリガとして、再送を要求する候補となる再送候補メッセージカウントを検出することができる。
【0100】
<再送制御器の構成例および再送要求処理の処理例>
図13乃至図15を参照して、再送制御器69の構成例および再送要求処理の処理例について説明する。
【0101】
図13は、再送制御器69の構成例を示すブロック図である。
【0102】
図13に示すように、再送制御器69は、再送リスト保持部71、タイミング制御部72、および再送要求データ生成部73を備えて構成される。
【0103】
ここで、再送制御器69には、例えば、送信パケットのヘッダに埋め込んで送信されてくる各種の情報が供給される。例えば、この情報としては、送信済みバッファ56の再送パケット用バッファ85(図16)の待ち数を示す情報、送信済みバッファ56の送信済みパケット用バッファ84(図16)の一番古いメッセージカウントを示す情報、および、送信スケジューラ57のセンサデータ用バッファ91(図21)の待ち数を示す情報が用いられる。
【0104】
再送リスト保持部71は、再送を要求するパケットのメッセージカウントが登録される再送リストを保持し、再送リストを管理する。例えば、再送リスト保持部71は、再送検出器68により検出された再送候補メッセージカウントのうちの、送信済みバッファ56に保持されている一番古いメッセージカウントよりも新しいメッセージカウントだけが登録されるように再送リストを管理する。
【0105】
例えば、再送候補メッセージカウントに従ってメッセージカウント98~102が再送リストに登録されているときに、送信済みバッファ56の送信済みパケット用バッファ84の一番古いメッセージカウントとしてメッセージカウント100が新たに供給されたとする。この場合、再送リスト保持部71は、メッセージカウント100よりも古いメッセージカウント98および99を再送リストから削除することで、メッセージカウント100よりも新しいメッセージカウント100~102だけが再送リストに登録される。なお、再送リスト保持部71が再送リストを管理する処理については、図14のフローチャートを参照して後述する。
【0106】
タイミング制御部72は、送信済みバッファ56の再送パケット用バッファ85の待ち数に基づいて、再送リスト保持部71の再送リストに登録されているメッセージカウントに対応する送信済みパケットを、再送パケットとして再送させるタイミングを制御する。例えば、タイミング制御部72は、再送リストにメッセージカウントが登録されていて、かつ、送信済みバッファ56の再送パケット用バッファ85の待ち数が規定値より小さい場合に、再送リスト保持部71の再送リストからメッセージカウントを読み出す。そして、タイミング制御部72は、その読み出したメッセージカウントに対応する送信済みパケットの再送要求の送信要求を、送受信スケジューラ65に対して発行する。
【0107】
再送要求データ生成部73は、タイミング制御部72によって発行された送信要求に対して、送受信スケジューラ65から送信許可が得られた場合、再送リスト保持部71の再送リストから読み出したメッセージカウントに対応する送信済みパケットの再送を要求する再送要求データを生成し、送受信スケジューラ65に供給する。このとき、再送要求データ生成部73は、送信スケジューラ57のセンサデータ用バッファ91の待ち数に基づいて、新規パケットの送信に対する再送パケットの送信の頻度を示す再送頻度を求めて、再送要求データに付与する。例えば、再送要求データ生成部73は、送信スケジューラ57のセンサデータ用バッファ91の待ち数が多ければ再送頻度が低下し、送信スケジューラ57のセンサデータ用バッファ91の待ち数が少なければ再送頻度が増加するように求めることができる。
【0108】
図14に示すフローチャートを参照して、再送リスト保持部71が再送リストを管理する処理について説明する。
【0109】
例えば、再送検出器68から再送候補メッセージカウントが通知されると処理が開始され、ステップS41において、再送リスト保持部71は、再送候補メッセージカウントとして通知されたメッセージカウントを、再送リストに追加する。
【0110】
ステップS42において、再送リスト保持部71は、送信済みバッファ56の送信済みパケット用バッファ84の一番古いメッセージカウントが更新されたか否かを判定する。例えば、再送リスト保持部71は、送信済みバッファ56の送信済みパケット用バッファ84の一番古いメッセージカウントを示す情報が新たに供給されると、更新されたと判定する。
【0111】
ステップS42において、再送リスト保持部71は、送信済みバッファ56の送信済みパケット用バッファ84の一番古いメッセージカウントが更新されたと判定した場合、処理はステップS43に進む。
【0112】
ステップS43において、再送リスト保持部71は、再送リストに登録されているメッセージカウントの中から、送信済みバッファ56の送信済みパケット用バッファ84の一番古いメッセージカウントよりも古いメッセージカウントを削除する。
【0113】
ステップS43の処理後、または、ステップS42において、送信済みバッファ56の送信済みパケット用バッファ84の一番古いメッセージカウントが更新されていないと判定された場合、処理は終了される。
【0114】
以上のように、再送リスト保持部71は、送信済みバッファ56の送信済みパケット用バッファ84の一番古いメッセージカウントよりも新しいメッセージカウントのみが登録されるように再送リストを管理することができる。これにより、送信済みバッファ56に保持されていない送信済みパケットのメッセージカウントが再送リストに登録されることを回避し、送信済みバッファ56に保持されていない送信済みパケットを再送パケットとして送信を要求することが行われないようにすることができる。
【0115】
図15に示すフローチャートを参照して、タイミング制御部72および再送要求データ生成部73により再送要求データを送信する処理について説明する。
【0116】
例えば、送受信スケジューラ65が空状態となると処理が開始され、ステップS51において、タイミング制御部72は、再送リスト保持部71が保持している再送リストにメッセージカウントが登録されているか否かを判定する。ステップS51において、タイミング制御部72が、再送リスト保持部71が保持している再送リストにメッセージカウントが登録されていると判定した場合、処理はステップS52に進む。
【0117】
ステップS52において、タイミング制御部72は、送信済みバッファ56の再送パケット用バッファ85の待ち数が規定値より小さいか否かを判定する。ステップS52において、タイミング制御部72が、送信済みバッファ56の再送パケット用バッファ85の待ち数が規定値より小さいと判定した場合、処理はステップS53に進む。
【0118】
ステップS53において、タイミング制御部72は、再送リスト保持部71が保持している再送リストからメッセージカウントを読み出し、送受信スケジューラ65に対して再送要求の送信要求を発行する。
【0119】
ステップS54において、再送要求データ生成部73は、ステップS53での送信要求に対して送受信スケジューラ65から送信許可が得られたか否かを判定し、送信許可が得られるまで処理を待機する。
【0120】
ステップS54において、再送要求データ生成部73が、送受信スケジューラ65から送信許可が得られたと判定した場合、処理はステップS55に進む。ステップS55において、再送要求データ生成部73は、再送リスト保持部71の再送リストから読み出したメッセージカウントに対応する送信済みパケットの再送を要求する再送要求データを生成して、再送頻度を付与し、送受信スケジューラ65に供給する。
【0121】
ステップS55の処理後、ステップS51において再送リスト保持部71が保持している再送リストにメッセージカウントが登録されていないと判定された場合、または、ステップS52において送信済みバッファ56の再送パケット用バッファ85の待ち数が規定値より小さくない(即ち、大きい)と判定した場合、処理は終了される。
【0122】
以上のように、タイミング制御部72は、送信済みバッファ56の再送パケット用バッファ85の待ち数を考慮し、その待ち数が規定値より大きい場合、送信済みパケットの再送の要求を待機する。これにより、例えば、送信済みバッファ56の再送パケット用バッファ85が再送パケットで溢れることを回避し、より効率良く、送信済みパケットの再送を行うことができる。また、再送要求データに再送頻度を付与して、新規パケットの送信に対する再送パケットの送信の頻度を調整することで、例えば、再送パケットの送信によって新規パケットの送信が滞るようなことを回避することができる。
【0123】
<送信済みバッファの構成例および再送受付処理の処理例>
図16乃至図20を参照して、送信済みバッファ56の構成例および再送受付処理について説明する。
【0124】
図16は、送信済みバッファ56の第1の構成例を示すブロック図である。
【0125】
図16に示すように、送信済みバッファ56は、ライト制御部81、転送制御部82、リード制御部83、送信済みパケット用バッファ84、および再送パケット用バッファ85を備えて構成される。即ち、送信済みバッファ56は、送信済みパケット用バッファ84および再送パケット用バッファ85の2つを有するダブルバッファ構造を採用している。
【0126】
ライト制御部81は、送信スケジューラ57から供給される送信済みパケットを、送信済みパケット用バッファ84に書き込むライト制御を行う。
【0127】
転送制御部82は、制御データ識別器55から供給される再送要求データで指定されるメッセージカウントの送信済みパケットを、送信済みパケット用バッファ84が保持している送信済みパケットの中から検索する。そして、転送制御部82は、再送要求データで指定されるメッセージカウントの送信済みパケットを検索結果として取得することができた場合、その送信済みパケットを再送パケット用バッファ85に転送する転送制御を行う。なお、転送制御部82は、再送要求データで指定されるメッセージカウントの送信済みパケットを検索結果として取得することができなかった場合、その再送要求データを破棄する。
【0128】
リード制御部83は、再送パケット用バッファ85が保持している再送パケットのアドレスを管理するととともに、送信スケジューラ57に対して、再送パケット用バッファ85が保持している再送パケットの送信を要求する再送データ送信要求を発行する。そして、リード制御部83は、送信スケジューラ57から再送データ送信許可が得られると、再送パケット用バッファ85から再送パケットを読み出して送信スケジューラ57へ供給するリード制御を行う。
【0129】
送信済みパケット用バッファ84は送信済みパケットを保持し、再送パケット用バッファ85は再送パケットを保持する。
【0130】
図17は、送信済みバッファ56の第2の構成例を示すブロック図である。
【0131】
図17に示すように、送信済みバッファ56Aは、ライト制御部81、リード制御部83A、並びに、送信済みパケットおよび再送パケット用バッファ86を備えて構成される。即ち、送信済みバッファ56Aは、送信済みパケットおよび再送パケット用バッファ86を1つだけ有するシングルバッファ構造を採用している。
【0132】
ライト制御部81は、送信スケジューラ57から供給される送信済みパケットを、送信済みパケットおよび再送パケット用バッファ86に書き込むライト制御を行う。
【0133】
リード制御部83Aは、制御データ識別器55から供給される再送要求データで指定されるメッセージカウントの送信済みパケットを、送信済みパケットおよび再送パケット用バッファ86が保持している送信済みパケットの中から検索する。そして、リード制御部83Aは、再送要求データで指定されるメッセージカウントの送信済みパケットを検索結果として取得することができた場合、その送信済みパケットを再送パケットとするアドレス管理を行う。なお、リード制御部83Aは、再送要求データで指定されるメッセージカウントの送信済みパケットを検索結果として取得することができなかった場合、その再送要求データを破棄する。
【0134】
さらに、リード制御部83Aは、送信スケジューラ57に対して、送信済みパケットおよび再送パケット用バッファ86が保持している再送パケットの送信を要求する再送データ送信要求を発行する。そして、リード制御部83Aは、送信スケジューラ57から再送データ送信許可が得られると、送信済みパケットおよび再送パケット用バッファ86から再送パケットを読み出して送信スケジューラ57へ供給するリード制御を行う。
【0135】
送信済みパケットおよび再送パケット用バッファ86は、送信済みパケットおよび再送パケットを保持する。
【0136】
ここで、図18を参照して、送信済みパケットおよび再送パケット用バッファ86のメモリ構造について説明する。
【0137】
図18の左側に示すように、送信済みパケットおよび再送パケット用バッファ86の物理構造では、アドレス番号0~Nで識別されるアドレスごとに、ネクストアドレスリスト、メッセージカウントリスト、および送信済みパケット用メモリが設けられる。また、それらとは別に、再送アドレスリストが設けられる。
【0138】
ネクストアドレスリストは、そのアドレスに送信済みパケットが書き込まれたときに、次の送信済みパケットを書き込む対象となるアドレスのアドレス番号を格納する。
【0139】
メッセージカウントリストは、送信済みパケット用メモリに格納したパケットと同一のメッセージカウントを格納する。これにより、例えば、再送要求の受信時に、送信済みパケット用メモリがライトアクセス中であっても、メッセージカウントリストに格納されているメッセージカウントを利用した検索を可能とする。
【0140】
送信済みパケット用メモリは、送信済みパケットのデータを格納する。
【0141】
再送アドレスリストは、再送要求データで指定されたメッセージカウントと一致する送信済みパケットの格納先となるアドレスのアドレス番号を格納する。そして、再送アドレスリストに格納されているアドレス番号のアドレスに対する上書きが禁止される。ここで、送信済みパケットおよび再送パケット用バッファ86では、再送アドレスリストに登録されているメッセージカウントの登録数が、図16の送信済みバッファ56の再送パケット用バッファ85の待ち数に対応する。
【0142】
また、図18の右側に示すように、送信済みパケットおよび再送パケット用バッファ86の論理構造は、ネクストアドレス、メッセージカウント、および送信済みパケットを1つのセットとした構造体が、それぞれネクストアドレスに従って連結された連結リストのように構成される。
【0143】
図19は、送信済みバッファ56Aにおいて再送要求データで指定されたメッセージカウントと一致する送信済みパケットが検索結果として得られたときの処理の一例について説明する。
【0144】
例えば、検索ポインタのnowポインタがアドレス番号1を示しているときに、再送要求データで指定されたメッセージカウントBが検索されて、メッセージカウントBと一致する送信済みパケットがアドレス番号1のアドレスに格納されていることが検索結果として得られたとする。
【0145】
このとき、まず、検索ポインタのprevポインタが示すアドレス番号のアドレスのネクストアドレスに、検索ポインタのnowポインタが示すアドレス番号のアドレスのネクストアドレスに格納されているアドレス番号をセットする。つまり、図19に示す例では、検索ポインタのprevポインタが示すアドレス番号0のアドレスのネクストアドレス(現時点ではアドレス番号1)に、検索ポインタのnowポインタが示すアドレス番号1のアドレスのネクストアドレスに格納されているアドレス番号2がセットされることが図示されている。
【0146】
次に、検索ポインタのnowポインタが示すアドレス番号を再送アドレスリストに登録する。つまり、図19に示す例では、検索ポインタのnowポインタが示すアドレス番号1が、再送アドレスリストに登録されることが図示されている。
【0147】
このように、送信済みパケットおよび再送パケット用バッファ86では、再送が要求された送信済みパケットが、再送パケットとしてアドレス管理され、再送パケットに対する上書きが禁止される。つまり、図19に示す例では、メッセージカウントBの送信済みパケットが送信済みパケット用バッファに格納されているアドレス番号1のアドレスに対する上書きが禁止されることが図示されている。
【0148】
図20は、送信済みバッファ56Aにおいて再送アドレスリストに格納したアドレス番号のアドレスの送信済みパケットメモリに格納されている送信済みパケットを再送したときの処理の一例について説明する図である。
【0149】
例えば、書込ポインタのnowポインタがアドレス番号N(ここで、アドレス番号Nが一番古いアドレス番号とする)を示すように更新されたときに、再送アドレスリストに格納されているアドレス番号1のアドレスの送信済みパケットの再送が発生したとする。
【0150】
このとき、まず、再送が発生した送信済みパケットのアドレスのネクストアドレスに、書込ポインタのnowポインタが示すアドレス番号をセットする。つまり、図20に示す例では、再送アドレスリストに格納されているアドレス番号1のアドレスのネクストアドレス(現時点ではアドレス番号2)に、書込ポインタのnowポインタが示すアドレス番号Nがセットされることが図示されている。
【0151】
そして、次に、書込ポインタのprevポインタが示すアドレス番号のアドレスのネクストアドレスに、送信キューのアドレス番号をセットする。つまり、図20に示す例では、書込ポインタのprevポインタが示すアドレス番号N-1のアドレスのネクストアドレスに、送信キューのアドレス番号1をセットする。
【0152】
このように、送信済みパケットおよび再送パケット用バッファ86では、送信済みパケットが再送パケットとして再送されると、その送信済みパケットが格納されていた送信済みパケットメモリのアドレスに対する上書きが可能となるようにアドレス管理される。つまり、図19に示す例では、メッセージカウントBの送信済みパケットが再送パケットとして送信され、メッセージカウントBの送信済みパケットが格納されていたアドレス番号1のアドレスに対する上書きが可能となることが図示されている。
【0153】
このように構成される送信済みバッファ56Aのシングルバッファ構造は、図16の送信済みバッファ56のダブルバッファ構造と比較してアドレス制御が複雑となるのに対して有利な点もある。
【0154】
即ち、送信済みバッファ56Aは、再送パケットの再度書き込み(送信済みバッファ56のような転送制御)が発生しないため、送信済みパケット用メモリに同一内容のパケットが書き込まれることが回避され、効率良くメモリを利用することができる。なお、ここでは、同一内容のパケットとしているが、厳密には、再送時にメッセージカウントを更新する必要があるため、再送データは完全に同一ではない。
【0155】
また、再送時にはバッファにリードを行い、通常送信時にはバッファにライトを行うため、リードライトが排他動作となることより、送信済みパケットおよび再送パケット用バッファ86は、シングルポートRAMで構成可能となる。さらに、送信済みパケット用バッファ長の内で、再送パケット用バッファ長を調整することができ、柔軟性を高めることができる。
【0156】
<送信スケジューラの構成例>
図21は、送信スケジューラ57の構成例を示すブロック図である。
【0157】
図21に示すように、送信スケジューラ57は、センサデータ用バッファ91、切り替え部92、および制御部93を備えて構成される。
【0158】
センサデータ用バッファ91は、例えば、画像センサ21が有する撮像素子(図示せず)から新規に入力されるセンサデータがペイロードに格納された新規パケットを一時的に格納する。例えば、センサデータ用バッファ91は、送信済みバッファ56から供給される再送パケットの出力中に、センサデータがペイロードに格納された新規パケットが入力されることが想定されるために必要となる。
【0159】
切り替え部92は、制御部93による制御に従って、センサデータ用バッファ91に格納されている新規パケットと、送信済みバッファ56から供給される再送パケットとを切り替えて、送信スケジューラ57から出力する。
【0160】
制御部93は、送信済みバッファ56から発行された再送データ送信要求を取得し、その再送データ送信要求に含まれている再送頻度に従って、送信済みバッファ56に対して再送データ送信許可を与えるとともに、切り替え部92による出力の切り替えを制御する。例えば、制御部93は、送信スケジューラ57のセンサデータ用バッファ91の待ち数が多い場合には、再送頻度が低くなっており、再送パケットの送信が少なくなるように切り替え部92による出力の切り替えを制御する。一方、送信スケジューラ57のセンサデータ用バッファ91の待ち数が少ない場合には、再送頻度が高くなっており、再送パケットの送信が多くなるように切り替え部92による出力の切り替えを制御する。
【0161】
このように送信スケジューラ57は構成されており、新規パケットの送信に対する再送パケットの送信の頻度が適切となるように、例えば、新規パケットがセンサデータ用バッファ91で溢れることがないように、新規パケットと再送パケットとの送信を制御することができる。
【0162】
<画像センサおよびアプリケーションプロセッサの実装例>
図22乃至図25を参照して、画像センサ21およびアプリケーションプロセッサ31の実装例について説明する。
【0163】
図22には、画像センサ21の第1の実装例が示されている。
【0164】
図22に示す画像センサ21は、送信側通信装置41を備えるとともに、画素101、AD変換器102、画像処理部103、画素CRC演算部104を備えて構成される。また、送信側通信装置41は、CSI-2トランスミッタ111、CSI-2アダプテーションレイヤ112、リンク層/物理層処理部113、I2C/I3Cアダプテーションレイヤ114、I2C/I3Cスレーブ115、およびレジスタ116を備えて構成される。
【0165】
そして、CSI-2トランスミッタ111は、拡張CSI-2に対応しており、パッキング部121、パケットヘッダ生成部122、ペイロードヘッダ生成部123、ペイロードフッタ生成部124、選択部125および126、CRC演算部127、CCIスレーブ128、並びに、コントローラ129を備えて構成される。さらに、CSI-2トランスミッタ111は、図3に示した制御データ識別器55、送信済みバッファ56、および送信スケジューラ57を備えて構成される。
【0166】
このように、送信側通信装置41は、制御データ識別器55、送信済みバッファ56、送信スケジューラ57をCSI-2トランスミッタ111に実装することで、パケットごとの再送を実現することができる。
【0167】
図23には、画像センサ21Aの第2の実装例が示されている。
【0168】
図23に示す画像センサ21Aは、送信側通信装置41Aを備えるとともに、画素101、AD変換器102、画像処理部103、画素CRC演算部104を備えて構成される。また、送信側通信装置41Aは、CSI-2トランスミッタ111A、CSI-2アダプテーションレイヤ112、リンク層/物理層処理部113A、I2C/I3Cアダプテーションレイヤ114、I2C/I3Cスレーブ115、およびレジスタ116を備えて構成される。
【0169】
また、CSI-2トランスミッタ111Aは、パッキング部121、パケットヘッダ生成部122、ペイロードヘッダ生成部123、ペイロードフッタ生成部124、選択部125および126、CRC演算部127、CCIスレーブ128、並びに、コントローラ129を備えて構成される。
【0170】
そして、リンク層/物理層処理部113Aは、ルーティングおよびパッキング部131、並びに、トランシーバ132を備え、さらに、図3に示した制御データ識別器55、送信済みバッファ56、および送信スケジューラ57を備えて構成される。なお、トランシーバ132、制御データ識別器55、送信済みバッファ56、および送信スケジューラ57は、受信側通信装置42との間で通信を行うレーンの本数(例えば、4本)に応じた個数、並列的に配置される。
【0171】
このように、送信側通信装置41Aは、制御データ識別器55、送信済みバッファ56、送信スケジューラ57をリンク層/物理層処理部113Aに実装することで、パケットごとの再送を実現することができる。
【0172】
図24には、アプリケーションプロセッサ31の第1の実装例が示されている。なお、図24に示すアプリケーションプロセッサ31では、受信側通信装置42以外を構成するブロックの図示は省略されている。
【0173】
図24に示すように、受信側通信装置42は、CSI-2レシーバ151、CSI-2アダプテーションレイヤ152、リンク層/物理層処理部153、I2C/I3Cアダプテーションレイヤ154、I2C/I3Cマスタ155、レジスタ156、およびコントローラ157を備えて構成される。
【0174】
そして、CSI-2レシーバ151は、拡張CSI-2に対応しており、パケットヘッダ検出部161、解釈部162、選択部163および164、CRC演算部165、アンパッキング部166、並びに、CCIマスタ167を備えて構成される。さらに、CSI-2レシーバ151は、図3に示した送受信スケジューラ65、再送検出器68、および再送制御器69を備えて構成される。
【0175】
このように、受信側通信装置42は、送受信スケジューラ65、再送検出器68、および再送制御器69をCSI-2レシーバ151に実装することで、パケットごとの再送を実現することができる。
【0176】
図25には、アプリケーションプロセッサ31Aの第2の実装例が示されている。なお、図25に示すアプリケーションプロセッサ31Aでは、受信側通信装置42A以外を構成するブロックの図示は省略されている。
【0177】
図25に示すように、受信側通信装置42Aは、CSI-2レシーバ151A、CSI-2アダプテーションレイヤ152、リンク層/物理層処理部153A、I2C/I3Cアダプテーションレイヤ154、I2C/I3Cマスタ155、レジスタ156、およびコントローラ157を備えて構成される。
【0178】
また、CSI-2レシーバ151Aは、拡張CSI-2に対応しており、パケットヘッダ検出部161、解釈部162、選択部163および164、CRC演算部165、アンパッキング部166、並びに、CCIマスタ167を備えて構成される。
【0179】
そして、リンク層/物理層処理部153Aは、ルーティングおよびパッキング部171、トランシーバ172、並びに、ヘッダ検出解釈部173を備え、さらに、図3に示した送受信スケジューラ65、再送検出器68、および再送制御器69を備えて構成される。なお、トランシーバ172、ヘッダ検出解釈部173、送受信スケジューラ65、再送検出器68、および再送制御器69は、送信側通信装置41との間で通信を行うレーンの本数(例えば、4本)に応じた個数、並列的に配置される。
【0180】
このように、受信側通信装置42Aは、送受信スケジューラ65、再送検出器68、および再送制御器69をリンク層/物理層処理部153Aに実装することで、パケットごとの再送を実現することができる。
【0181】
<コンピュータの構成例>
図26は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0182】
コンピュータにおいて、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が外部に接続される。
【0183】
以上のように構成されるコンピュータでは、CPU201が、例えば、ROM202およびEEPROM204に記憶されているプログラムを、バス205を介してRAM203にロードして実行することにより、上述した一連の処理が行われる。また、コンピュータ(CPU201)が実行するプログラムは、ROM202に予め書き込んでおく他、入出力インタフェース206を介して外部からEEPROM204にインストールしたり、更新したりすることができる。
【0184】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
【0185】
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0186】
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0187】
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0188】
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0189】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0190】
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0191】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0192】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0193】
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントを取得し、再送を要求する候補となる前記パケットの前記メッセージカウントを再送候補メッセージカウントとして検出する再送検出部と、
前記再送候補メッセージカウントの前記パケットのうち、前記送信側の通信装置で再送可能に保持されている前記パケットの再送を要求する再送要求データを生成する再送要求部と
を備える通信装置。
(2)
前記再送要求部は、前記再送候補メッセージカウントされた前記メッセージカウントのうち、前記送信側の通信装置において送信済みの前記パケットを保持する第1のバッファの一番古い前記メッセージカウントよりも新しい前記メッセージカウントが登録される再送リストを保持する再送リスト保持部を有する
上記(1)に記載の通信装置。
(3)
前記再送要求部は、前記送信側の通信装置において再送の対象となる前記パケットを保持する第2のバッファの待ち数に基づいたタイミングで、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送要求の送信要求を、前記送信側の通信装置との間で制御チャネルを介した制御データの送受信を管理する送受信スケジューラに発行するタイミング制御部を有する
上記(2)に記載の通信装置。
(4)
前記再送要求部は、前記タイミング制御部による前記送受信スケジューラによる送信要求に対して前記送受信スケジューラから送信許可が得られた場合、前記再送リストに登録されている前記メッセージカウントの前記パケットの再送を要求する再送要求データを生成して前記送受信スケジューラに供給する再送要求データ生成部を有する
上記(3)に記載の通信装置。
(5)
前記再送要求データ生成部は、前記送信側の通信装置において新規に送る前記パケットを保持する第3のバッファの待ち数に基づいて、前記送信側の通信装置から新規に送られてくる前記パケットの送信に対する、再送されてくる前記パケットの送信の頻度を示す再送頻度を求めて、前記再送要求データに付与する
上記(4)に記載の通信装置。
(6)
前記再送検出部は、前記メッセージカウントの受信をトリガとして、取得した前記メッセージカウントが連続しているか否かを判定し、その判定結果に基づいて前記再送候補メッセージカウントを検出する
上記(1)から(5)までのいずれかに記載の通信装置。
(7)
前記再送検出部は、前記パケットの検出をトリガとして、取得した前記メッセージカウントが連続しているか否かを判定し、その判定結果に基づいて前記再送候補メッセージカウントを検出するとともに、ヘッダエラーが検出された前記パケットを、再送を要求する候補とする
上記(1)から(6)までのいずれかに記載の通信装置。
(8)
受信側の通信装置が、
送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントを取得し、再送を要求する候補となる前記パケットの前記メッセージカウントを再送候補メッセージカウントとして検出することと、
前記再送候補メッセージカウントの前記パケットのうち、前記送信側の通信装置で再送可能に保持されている前記パケットの再送を要求する再送要求データを生成することと
を含む通信処理。
(9)
受信側の通信装置のコンピュータに、
送信側の通信装置からデータチャネルを介して送信されてきたパケットのヘッダに含まれているメッセージカウントを取得し、再送を要求する候補となる前記パケットの前記メッセージカウントを再送候補メッセージカウントとして検出することと、
前記再送候補メッセージカウントの前記パケットのうち、前記送信側の通信装置で再送可能に保持されている前記パケットの再送を要求する再送要求データを生成することと
を含む通信処理を実行させるためのプログラム。
(10)
受信側の通信装置から制御チャネルを介して送信されてくる制御データを識別し、前記受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求する前記パケットを、そのパケットのヘッダに含まれているメッセージカウントによって指定する再送要求データを検出する制御データ識別部と、
前記再送要求データで再送が要求されている前記パケットの送信、および、前記受信側の通信装置へ新規に送る前記パケットの送信について切り替えを制御する送信スケジューラと
を備える通信装置。
(11)
前記受信側の通信装置へ送信された送信済みパケットを保持する第1のバッファと、
前記再送要求データの前記メッセージカウントによって指定されたパケットを送信の対象として、そのパケットに対する上書きを禁止して保持する第2のバッファと
さらに備える(10)に記載の通信装置。
(12)
前記第1のバッファおよび前記第2のバッファとしての機能が1つのバッファのアドレス管理で実現される
上記(11)に記載の通信装置。
(13)
前記送信スケジューラは、前記受信側の通信装置へ新規に送る前記パケットを保持する第3のバッファを有する
上記(10)に記載の通信装置。
(14)
前記送信スケジューラは、前記再送要求データに付与されている、前記受信側の通信装置へ新規に送る前記パケットの送信に対する、再送する前記パケットの送信の頻度を示す再送頻度に従って、送信の切り替えを制御する
上記(10)に記載の通信装置。
(15)
送信側の通信装置が、
受信側の通信装置から制御チャネルを介して送信されてくる制御データを識別し、前記受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求する前記パケットを前記パケットのヘッダに含まれているメッセージカウントによって指定する再送要求データを検出することと、
前記再送要求データで再送が要求されている前記パケットの送信、および、前記受信側の通信装置へ新規に送る前記パケットの送信について切り替えを制御することと
を含む通信処理。
(16)
送信側の通信装置のコンピュータに、
受信側の通信装置から制御チャネルを介して送信されてくる制御データを識別し、前記受信側の通信装置へデータチャネルを介して送信したパケットのうち、再送を要求する前記パケットを前記パケットのヘッダに含まれているメッセージカウントによって指定する再送要求データを検出することと、
前記再送要求データで再送が要求されている前記パケットの送信、および、前記受信側の通信装置へ新規に送る前記パケットの送信について切り替えを制御することと
を含む通信処理を実行させるためのプログラム。
【0194】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【符号の説明】
【0195】
11 通信システム, 12 車両, 13 センサユニット, 14 制御装置, 15 同軸ケーブル, 21 画像センサ, 22 距離センサ, 23 シリアライザ, 31 アプリケーションプロセッサ, 32 デシリアライザ, 41 送信側通信装置, 42 受信側通信装置, 51 トランスミッタ, 52 レシーバ, 53 誤り検出符号計算器, 54 誤り検出器, 55 制御データ識別器, 56 送信済みバッファ, 57 送信スケジューラ, 58 誤り検出符号計算器, 59 トランスミッタ, 61 トランスミッタ, 62 レシーバ, 63 誤り検出符号計算器, 64 誤り検出器, 65 送受信スケジューラ, 66 レシーバ, 67 誤り検出器, 68 再送検出器, 69 再送制御器, 71 再送リスト保持部, 72 タイミング制御部, 73 再送要求データ生成部, 81 ライト制御部, 82 転送制御部, 83 リード制御部, 84 送信済みパケット用バッファ, 85 再送パケット用バッファ, 86 送信済みパケットおよび再送パケット用バッファ, 91 センサデータ用バッファ, 92 切り替え部, 93 制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26