JP2022182021A - シリアル通信装置及びシリアル通信方法 - Google Patents
シリアル通信装置及びシリアル通信方法 Download PDFInfo
- Publication number
- JP2022182021A JP2022182021A JP2021089306A JP2021089306A JP2022182021A JP 2022182021 A JP2022182021 A JP 2022182021A JP 2021089306 A JP2021089306 A JP 2021089306A JP 2021089306 A JP2021089306 A JP 2021089306A JP 2022182021 A JP2022182021 A JP 2022182021A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transmission
- packet
- lanes
- lane
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 title claims description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 154
- 238000012546 transfer Methods 0.000 claims abstract description 44
- 238000001514 detection method Methods 0.000 claims abstract description 15
- 238000007689 inspection Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 51
- 238000010586 diagram Methods 0.000 description 32
- 238000006243 chemical reaction Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- WBMKMLWMIQUJDP-STHHAXOLSA-N (4R,4aS,7aR,12bS)-4a,9-dihydroxy-3-prop-2-ynyl-2,4,5,6,7a,13-hexahydro-1H-4,12-methanobenzofuro[3,2-e]isoquinolin-7-one hydrochloride Chemical compound Cl.Oc1ccc2C[C@H]3N(CC#C)CC[C@@]45[C@@H](Oc1c24)C(=O)CC[C@@]35O WBMKMLWMIQUJDP-STHHAXOLSA-N 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- KNMAVSAGTYIFJF-UHFFFAOYSA-N 1-[2-[(2-hydroxy-3-phenoxypropyl)amino]ethylamino]-3-phenoxypropan-2-ol;dihydrochloride Chemical compound Cl.Cl.C=1C=CC=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC=C1 KNMAVSAGTYIFJF-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/14—Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Communication Control (AREA)
- Dc Digital Transmission (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
【課題】シリアル通信において、複数の経路で転送されるシリアルデータの間のタイミングのずれを効率的に解消することを目的とする。【解決手段】シリアルデータを複数のレーンで転送するシリアル通信装置において、送信側通信手段は、送信データを等分に分割して、分割後の送信データをレーン毎に分配し、ヘッダー情報を各レーンに分配された分割後の送信データに付加するパケット送信手段を含み、受信側通信手段は、各レーンで受信したデータのスキューを調整する受信パケットスキュー調整手段を含み、受信パケットスキュー調整手段は、各レーンで受信したデータのヘッダー情報を検出し、検出タイミングで受信したデータのデータ本体をデータバッファにライトさせ、各レーンで所定のサイクル数のデータ本体のライトアクセスが完了したタイミングで、外部へのデータ転送を開始する。【選択図】図7
Description
本発明は、シリアル通信装置及びシリアル通信方法に関する。
プロダクション・プリント分野では、高性能のRIP(ラスターイメージプロセッサ)処理部を持つ印刷制御装置から、プリンタや複合機(MFP)等の画像形成装置に対して、印刷制御を行う印刷システムが利用されている。
近年の印刷システムの高画質化及び高生産性化に伴い、送信側に配置されている印刷制御装置から受信側に配置されている画像形成装置への画像データの高速な送受信(以下、単に「画像データの高速転送」とも称する)が要請されている。このような要請に対処するために、印刷システムでは、画像データの転送方法として、パラレルシリアル変換(以下、単に「P/S変換」と称する)により画像データをシリアル化して高速に転送するシリアル通信方法が採用されている。
具体的に、上述したシリアル通信方法を採用した印刷システムでは、大容量の画像データを複数の経路(即ち、レーン)に分割して、同時並行で分割後の画像データをP/S変換して、複数の経路でシリアルデータとして転送するようになっている。この場合、複数の経路のシリアルデータが並行して転送(送信)されるが、経路毎のデータ転送遅延等による各経路で転送されるシリアルデータの間のタイミングのずれがあるため、複数の経路のシリアルデータの同期を取ることが必要となる。
シリアル通信において、複数の経路で並行して転送されるシリアルデータの同期を取る技術として、例えば、特許文献1の技術が提案されている。特許文献1の技術では、シリアル通信装置において、送信処理回路は、データ送信開始フレームとデータ送信完了フレームとの間に複数の有効データを付加したプロトコルをチャネル(レーン)毎に生成する。また、受信処理回路は、各チャネルのデータ送信開始フレームを検知して、有効データをチャネル毎に設けた受信バッファ回路に格納し、有効データとデータ送信完了フレームの境界を検知し、受信バッファ回路から有効データを抽出する。このように、特許文献1の技術では、プロトコルとして、有効データに対してデータ送信開始フレームとデータ送信完了フレームを付加することにより、複数の経路で並行して転送されるシリアルデータの同期を取るようにしている。
しかし、特許文献1の技術では、プロトコルとして、有効データに対してデータ送信開始フレームとデータ送信完了フレームを付加するようにしているため、データの実効的な転送効率が低下してしまうという問題が生じる。また、特許文献1の受信処理回路では、各チャネルのデータ送信開始フレームを検知して有効データをチャネル毎に設けた受信バッファ回路に格納し、スキュー除去処理後に受信バッファ回路から外部へのデータ転送を行うという複雑な制御が必要となる。この複雑な制御を行うために、受信処理回路の回路規模が増大してしまうという問題も生じる。
本発明は、シリアル通信において、複数の経路で転送されるシリアルデータの間のタイミングのずれを効率的に解消することを目的とする。
上記目的を達成するために、本発明のシリアル通信装置は、送信側に配置されている送信側通信手段から送信されるシリアルデータを、複数のレーンで、受信側に配置されている受信側通信手段へ転送するシリアル通信装置であって、前記送信側通信手段は、送信データをレーン数に応じて等分に分割して、分割後の送信データをデータ本体として前記レーン毎に分配し、前記送信データの種類を示すヘッダー情報を各レーンに分配された前記分割後の送信データに付加するパケット送信手段を備えており、前記受信側通信手段は、前記各レーンで受信したデータのスキューを調整する受信パケットスキュー調整手段を備えており、前記受信パケットスキュー調整手段は、前記各レーンで受信したデータの前記ヘッダー情報を検出し、検出タイミングで前記受信したデータの前記データ本体をデータバッファにライトさせ、前記各レーンで所定のサイクル数の前記データ本体のライトアクセスが完了したタイミングで、前記データバッファから外部へのデータ転送を開始することを特徴とする。
本発明によれば、シリアル通信において、複数の経路で転送されるシリアルデータの間のタイミングのずれを効率的に解消することができる。
以下、本発明の各実施形態について図面を参照しながら詳細に説明する。しかしながら、以下の各実施形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施形態に記載されている構成によって限定されることはない。
<第1実施形態>
以下、図面を参照して、本発明の第1実施形態について説明する。図1は、本発明の第1実施形態に係る印刷システムの全体構成例を示すブロック図である。
以下、図面を参照して、本発明の第1実施形態について説明する。図1は、本発明の第1実施形態に係る印刷システムの全体構成例を示すブロック図である。
図1に示すように、第1実施形態に係る印刷システム100は、クライアントPC101、印刷制御装置102及び画像形成装置103を有する。クライアントPC101、印刷制御装置102及び画像形成装置103は、ネットワーク104を介して接続されている。また、印刷制御装置102及び画像形成装置103は、ネットワーク105と画像データ用通信路106を介して接続されている。
クライアントPC101は、ネットワーク104を介して、印刷制御で用いられる印刷データを印刷制御装置102へ送信する。なお、クライアントPC101は、PCに限られるものではなく、例えば、モバイル端末などの情報処理装置であってもよい。
印刷制御装置102は、受信した印刷データに対して、RIP処理を行うことにより、画像形成装置103で読み込み可能なラスター画像データ(以下、単に「画像データ」と称する)を生成する。また、印刷制御装置102は、ネットワーク105を介して、印刷データに含まれる設定情報(以下、単に「印刷情報」と称する)を画像形成装置103へ送信する。更に、印刷制御装置102は、画像データ用通信路106を介して、RIP処理によって生成した画像データを画像形成装置103へ送信する。
画像形成装置103は、受信した画像データ及び印刷情報に基づいて、受信した画像データの印刷を行う。
図2は、第1実施形態に係る印刷システムにおける印刷制御装置の構成例を示すブロック図である。
図2に示すように、印刷システム100における印刷制御装置102は、送信側CPU(中央処理装置)201、送信側RAM(ランダムアクセスメモリ)202、送信側ROM(リードオンリーメモリ)203及び送信側記憶部204を有する。また、印刷制御装置102は、通信I/F206、通信I/F207、送信側画像通信I/F208、送信側画像信号制御部209、送信側操作部210、送信側表示部211及びRIP処理部212を有する。印刷制御装置102の各部は、システムバス205を介して互いに接続されている。
送信側CPU201は、送信側制御手段として、制御プログラムに基づいて、システムバス205を介して接続されている、印刷制御装置102の各部(送信側CPU201を除く)を制御する。
ワークメモリとしての送信側RAM202には、各種制御プログラムが実行される際の処理データなどが一時的に格納されている。
送信側ROM203には、送信側CPU201が制御を行うための各種制御プログラムやデータなどが格納されている。なお、送信側CPU201が制御を行うための各種制御プログラムやデータなどは、送信側記憶部204に格納されてもよい。送信側記憶部204は、例えば、ハードディスクドライブ装置(HDD)で構成されてもよい。
通信I/F206は、ネットワーク104を介して、クライアントPC101との通信を行うためのインターフェースである。第1実施形態に係る印刷システム100では、印刷制御装置102が、通信I/F206を介して、ネットワーク104に接続されているクライアントPC101から、印刷データを受信する。また、送信側CPU201は、通信I/F206を介して、画像形成装置103に関する各種情報をクライアントPC101へ通知する。
通信I/F207は、ネットワーク105を介して、画像形成装置103との通信を行うためのインターフェースである。第1実施形態に係る印刷システム100では、印刷制御装置102の送信側CPU201が、通信I/F207を介してネットワーク105に接続されている画像形成装置103へ印刷情報を送信することにより、印刷制御を行う。
送信側画像通信I/F208は、画像データ用通信路106を介して、画像形成装置103との画像データ通信を行うためのインターフェースである。第1実施形態に係る印刷システム100では、印刷制御装置102の送信側CPU201が、送信側画像通信I/F208を介して、画像データ用通信路106に接続されている画像形成装置103へ画像データを送信する。
送信側CPU201が送信側画像通信I/F208を介して画像形成装置103へ画像データを送信するために、送信側画像信号制御部209は画像データの送信制御を行う。
送信側操作部210は、表示手段や入力手段を有しており、送信側CPU201によって制御され、印刷システム100のオペレータに対して印刷制御装置102における印刷情報の設定が可能である。
送信側表示部211は、送信側操作部210によって設定される印刷情報の設定画面や印刷状況を表示する。
RIP処理部212は、印刷データに対してRIP処理を行うことにより、画像データを生成する。
図3は、第1実施形態に係る印刷システムにおける画像形成装置の構成例を示すブロック図である。
図3に示すように、印刷システム100における画像形成装置103は、受信側CPU301、受信側RAM302、受信側ROM303、受信側記憶部304及び通信I/F306を有する。また、画像形成装置103は、受信側画像通信I/F307、受信側画像信号制御部308、印刷制御部309、受信側操作部310及び受信側表示部311を有する。画像形成装置103の各部は、システムバス305を介して互いに接続されている。
受信側CPU301は、受信側制御手段として、制御プログラムに基づいて、システムバス305を介して接続されている、画像形成装置103の各部(受信側CPU301を除く)を制御する。
ワークメモリとしての受信側RAM302には、各種制御プログラムが実行される際の処理データなどが一時的に格納されている。
受信側ROM303には、受信側CPU301が制御を行うための各種制御プログラムやデータなどが格納されている。なお、受信側CPU301が制御を行うための各種制御プログラムやデータなどは、受信側記憶部304に格納されてもよい。受信側記憶部304は、例えば、ハードディスクドライブ装置(HDD)で構成されてもよい。
通信I/F306は、ネットワーク105を介して、印刷制御装置102との通信を行うためのインターフェースである。第1実施形態に係る印刷システム100では、画像形成装置103の受信側CPU301が、通信I/F306を介してネットワーク105に接続されている印刷制御装置102から印刷情報を受信し、印刷制御部309を用いて印刷情報に基づく印刷制御を行う。
受信側画像通信I/F307は、画像データ用通信路106を介して、印刷制御装置102との画像データ通信を行うためのインターフェースである。第1実施形態に係る印刷システム100では、画像形成装置103の受信側CPU301が、受信側画像通信I/F307を介して、画像データ用通信路106に接続されている印刷制御装置102から画像データを受信する。
受信側CPU301が受信側画像通信I/F307を介して印刷制御装置102から画像データを受信するために、受信側画像信号制御部308は、画像データの受信制御を行う。
印刷制御部309は、印刷制御装置102から受信した印刷情報及び画像データに基づいて、受信した画像データの印刷を行う。
受信側操作部310は、表示手段や入力手段を有しており、受信側CPU301によって制御され、印刷システム100のオペレータに対して画像形成装置103における設定メニューの操作が可能である。
受信側表示部311は、受信側操作部310によって設定される設定メニューの設定画面や印刷状況を表示する。
図4は、印刷システム100において、印刷制御装置102の送信側画像通信I/F208と画像形成装置103の受信側画像通信I/F307とで構成されるシリアル通信装置(第1実施形態に係るシリアル通信装置)の構成例を示すブロック図である。
図4に示すように、第1実施形態に係るシリアル通信装置では、送信側画像通信I/F208と受信側画像通信I/F307が、画像データ用通信路106を介して、接続されている。画像データ用通信路106は、例えば、同一規格の複数本のケーブルで構成される。図4の画像データ用通信路106は、同一規格の2本のケーブルで構成されている。
送信側画像通信制御部400は、送信側画像通信I/F208のハードウェア構成部分である。送信側画像通信I/F208は、第1実施形態に係るシリアル通信装置の送信側通信手段として機能する。また、受信側画像通信I/F307は、第1実施形態に係るシリアル通信装置の受信側通信手段として機能する。送信側画像通信制御部400は、送信側画像処理部401、パラレルシリアル変換部(P/S変換部)402、送信ドライバ(TX)403、受信ドライバ(RX)404及びシリアルパラレル変換部(S/P変換部)405を有する。
受信側画像通信制御部410は、受信側画像通信I/F307のハードウェア構成部分である。受信側画像通信制御部410は、受信ドライバ(RX)411、シリアルパラレル変換部(S/P変換部)412、受信側画像処理部413、パラレルシリアル変換部(P/S変換部)414及び送信ドライバ(TX)415を有する。
P/S変換部402は、送信側画像処理部401から出力されるパラレルデータをシリアルデータ(即ち、シリアル形式のデータ)に変換する。P/S変換部402により変換されたシリアルデータは、TX403により、画像データ用通信路106(ケーブル)を経由して、RX411へ転送される。
P/S変換部414は、受信側画像処理部413から出力されるパラレルデータをシリアルデータに変換する。P/S変換部414により変換されたシリアルデータは、TX415により、画像データ用通信路106(ケーブル)を経由して、RX404へ転送される。
ちなみに、図4に示すように、第1実施形態に係るシリアル通信装置は、複数の送信ドライバ(4つのTX403と1つのTX415)を有しており、これらの送信ドライバは同一の構成を有する。しかしながら、送信側画像通信制御部400と受信側画像通信制御部410は別基板であるため、TX403、TX415へ供給されるクロックの周波数が同一でない場合もあり、かつ各々が独立に動作するため、同期関係にはない。TX403、TX415へ供給されるクロックの周波数が同一である場合であっても、その位相関係は同一ではないため、やはり同期関係にはない。
図4には、送信側画像通信I/F208が8レーンのシリアルデータを送信し、1レーンのシリアルデータを受信する例を示している。P/S変換部402、P/S変換部414は、送信側画像処理部401、受信側画像処理部413の処理経路とは非同期に動作するので、タイミング信号の受け渡しタイミングによっては、処理するデータにスキューが生じることがある。以下、このスキューを「レーン間スキュー」と称する。また、P/S変換部402、P/S変換部414のリセット解除タイミングの違いや、TXからRXへの伝送路の配線長差による伝搬遅延時間の違いによって、スキューが生じる。以下、このスキューを「レーン内スキュー」と称する。レーン間スキューは、各レーンにおける水平同期期間でスキューの量が変化し、一定ではない。他方、レーン内スキューは、スキューの発生要因が動的に変化するものではないため、スキューの量は変化せず、一定である。なお、レーン間スキューとレーン内スキューを特に区別せず、単に「スキュー」と称する場合もある。即ち、複数のレーンに起因するレーン間スキューとレーン内スキューを「スキュー」と総称する。
送信側画像通信I/F208において、S/P変換部405は、RX404からのシリアルデータを取得して、内部のシフトレジスタに蓄える。S/P変換部405は、蓄えられたシリアルデータから、予め決められたシンボル長のデータのうち、特定のデータを検出し、その検出タイミングに従って、予め決められたシンボル長毎にパラレルデータとして送信側画像処理部401へ出力する。更に、S/P変換部405は、データを受信するためのクロックをシリアルデータから復元する。また、S/P変換部405は、復元したクロックをパラレルデータのシンボル長に合わせて分周し、この分周したクロックも送信側画像処理部401へ出力する。
受信側画像通信I/F307において、S/P変換部412は、RX411からのシリアルデータを取得して、内部のシフトレジスタに蓄える。S/P変換部412は、蓄えられたシリアルデータから、予め決められたシンボル長のデータのうち、特定のデータを検出し、その検出タイミングに従って、予め決められたシンボル長毎にパラレルデータとして受信側画像処理部413へ出力する。更に、S/P変換部412は、データを受信するためのクロックをシリアルデータから復元する。また、S/P変換部412は、復元したクロックをパラレルデータのシンボル長に合わせて分周し、この分周したクロックも受信側画像処理部413へ出力する。
図5(A)は、第1実施形態に係るシリアル通信装置の送信側画像通信I/F208における送信側画像処理部401の構成例を示すブロック図である。また、図5(B)は、第1実施形態に係るシリアル通信装置の受信側画像通信I/F307における受信側画像処理部413の構成例を示すブロック図である。
図5(A)に示すように、送信側画像処理部401は、パケット送信部501、パケットデコード部502、受信パケットスキュー調整部503及び非同期クロック乗換部504を有する。
パケット送信部501は、パケットデコード部502から受け取った送信コマンド、あるいは、図5(A)で図示しない前段の処理ブロックからの画像データのいずれを送信するかの調停を行い、P/S変換部402へ出力する。
また、パケット送信部501は、送信するデータ(以下、単に「送信データ」と称する)をレーン数(図4の例の場合は、このレーン数が8である)に応じて等分に分割して、分割後の送信データを各レーンに分配する。更に、パケット送信部501は、各レーンに分配された分割後の送信データに制御用コードを付加し、必要に応じて、レーンに分配された分割後の送信データに余白を付与する。なお、余白の意味について後述する。パケット送信部501は、第1実施形態に係るシリアル通信装置のパケット送信手段として機能する。
パケットデコード部502は、受信パケットスキュー調整部503でスキュー調整されたパケットをデコードし、図5(A)で図示しない後段の処理ブロックに対して、データを出力するか、パケット送信部501に対して送信コマンドを出力する。
ちなみに、パケットデコード部502は、次のような場合に、パケット送信部501に対して送信コマンドを出力する。
場合(1):画像データの受信が正常に完了した旨を送信側(相手側)に通知する場合
場合(2):コマンドデータやステータスデータなどの画像データ以外のデータの受信があった時に、そのデータの受信が正常に完了した旨を送信側に通知する場合
場合(3):受信した画像データに欠損を検知した場合に、欠損したデータの再送を要求する旨を送信側に通知する場合
受信パケットスキュー調整部503は、入力された1レーン以上のパラレルデータのレーン内スキューを調整(補正)して、スキュー調整されたパケットをパケットデコード部502へ出力する。受信パケットスキュー調整部503は、第1実施形態に係るシリアル通信装置の受信パケットスキュー調整手段として機能する。
場合(1):画像データの受信が正常に完了した旨を送信側(相手側)に通知する場合
場合(2):コマンドデータやステータスデータなどの画像データ以外のデータの受信があった時に、そのデータの受信が正常に完了した旨を送信側に通知する場合
場合(3):受信した画像データに欠損を検知した場合に、欠損したデータの再送を要求する旨を送信側に通知する場合
受信パケットスキュー調整部503は、入力された1レーン以上のパラレルデータのレーン内スキューを調整(補正)して、スキュー調整されたパケットをパケットデコード部502へ出力する。受信パケットスキュー調整部503は、第1実施形態に係るシリアル通信装置の受信パケットスキュー調整手段として機能する。
非同期クロック乗換部504は、例えば、書き込みクロックと読み出しクロックが別々に入力されるFIFO(ファースト・イン・ファースト・アウト)で構成される。書き込みクロックとして、S/P変換部405から出力されるクロックを使用し、読み出しクロックとして、例えば、送信側画像通信制御部400の全体の動作を制御するシステムクロックを選択して使用することができる。
S/P変換部405から出力されるパラレルデータは、非同期クロック乗換部504で読み出しクロックとして使用されたシステムクロックに同期したタイミングで、後段の処理ブロックである受信パケットスキュー調整部503へ出力される。なお、図5(A)の送信側画像処理部401は、独立の処理ブロック(モジュール)として構成された非同期クロック乗換部504を有しているが、非同期クロック乗換部504が実現する機能を受信パケットスキュー調整部503に取り込むようにしてもよい。その場合は、非同期クロック乗換部504は不要である。
図5(B)に示すように、受信側画像処理部413は、パケット送信部514、パケットデコード部513、受信パケットスキュー調整部512及び非同期クロック乗換部511を有する。
パケット送信部514は、パケットデコード部513から受け取った送信コマンド、あるいは、図5(B)で図示しない前段の処理ブロックからの画像データのいずれを送信するかの調停を行い、P/S変換部414へ出力する。
また、パケット送信部514は、送信データをレーン数(図4の例の場合は、このレーン数が1である)に応じて等分に分割して、分割後の送信データを各レーンに分配する。更に、パケット送信部514は、各レーンに分配された分割後の送信データに制御用コードを付加し、必要に応じて、レーンに分配された分割後の送信データに余白を付与する。パケット送信部514も、第1実施形態に係るシリアル通信装置のパケット送信手段として機能する。
パケットデコード部513は、受信パケットスキュー調整部512でスキュー調整されたパケットをデコードし、図5(B)で図示しない後段の処理ブロックに対して、データを出力するか、パケット送信部514に対して送信コマンドを出力する。
ちなみに、パケットデコード部513も、上述した場合(1)、場合(2)又は場合(3)に、パケット送信部514に対して送信コマンドを出力する。
受信パケットスキュー調整部512は、入力された1レーン以上のパラレルデータのレーン内スキューを調整(補正)して、スキュー調整されたパケットをパケットデコード部513へ出力する。受信パケットスキュー調整部512も、第1実施形態に係るシリアル通信装置の受信パケットスキュー調整手段として機能する。
非同期クロック乗換部511は、例えば、書き込みクロックと読み出しクロックが別々に入力されるFIFOで構成される。書き込みクロックとして、S/P変換部412から出力されるクロックを使用し、読み出しクロックとして、例えば、受信側画像通信制御部410の全体の動作を制御するシステムクロックを選択して使用することができる。
S/P変換部412から出力されるパラレルデータは、非同期クロック乗換部511で読み出しクロックとして使用されたシステムクロックに同期したタイミングで、後段の処理ブロックである受信パケットスキュー調整部512へ出力される。なお、図5(B)の受信側画像処理部413は、独立の処理ブロック(モジュール)として構成された非同期クロック乗換部511を有しているが、非同期クロック乗換部511が実現する機能を受信パケットスキュー調整部512に取り込むようにしてもよい。その場合は、非同期クロック乗換部511は不要である。
次に、図6を参照しながら、パケット送信部で行われる送信データの分割及び分割後の送信データのパケット構成について説明する。
図6は、第1実施形態に係るシリアル通信装置によって転送される送信データ(即ち、パケット送信部で行われる送信データの分割によって得られた分割後の送信データ)のパケット構成を示す概念図である。図6(A)は8レーンに分割された送信データのパケット構成を示す概念図であり、また、図6(B)6レーンに分割された送信データのパケット構成を示す概念図である。
図6(A)及び図6(B)に示すように、headerと記載されている部分は、後続するデータの本体(以下、単に「データ本体」と称する)の開始位置及びデータの種類を示す制御用コードである。制御用コードは、ヘッダー情報に相当する。データの種類には、画像データ、コマンドデータ、ステータスデータなどがある。コマンドデータには、例えば、画像データの主走査及び副走査方向のサイズを示すコマンドや画像データの転送開始を通知するコマンドなどがある。また、ステータスデータには、例えば、異常状態が発生した旨を通知するエラーステータスや相手方からのコマンドデータに対する応答(ACK)を返答するACKステータスなどがある。データの種類によって構成されるデータパケットのサイズが異なるため、データを受信する側で適切な処理が出来るように、データ本体にheader(制御用コード)を付加したデータが転送される。header(制御用コード)に基づいて、データの種類を判別することができる。
図6(A)及び図6(B)に示すように、dataと記載されている部分は、データ本体である。図6(A)には、第1実施形態に係るシリアル通信装置がLane0~Lane7の計8レーンを並列で使用してデータを転送する例を示している。図6(A)に示すように、各レーンでN[cycle](Nは1以上の整数である)転送されると、dataは8レーンの合計で8Nとなる。例えば、データ幅を32[bit]とし、Nを32とすると、レーン数×データ幅×N(サイクル数)=8×32×32=8,192[bit]=8K[Byte]が転送されることになる。
図6(B)には、第1実施形態に係るシリアル通信装置がLane0~Lane5の計6レーンを並列で使用してデータを転送する例を示している。図6(B)において、Mは1以上の整数である。図6(A)の例と同様に、8K[Byte]=8,192[bit]のデータを転送するために、8,192÷32÷6=42.6666[cycle]が必要となるが、割り切りないため、実際に43[cycle]をかけて転送することになる。この場合、転送されるデータのサイズは、レーン数×データ幅×M(サイクル数)=6×32×43=8,256[bit]となり、8,256―8,192=64[bit]が余分に転送されることになる。この余分なデータ転送分を余白(padding)と呼ぶ。
このように、パケット送信部501とパケット送信部514は、送信データをレーン数に応じて等分に分割して、分割後の送信データをデータ本体として各レーンに分配し、制御用コード(ヘッダー情報)を各レーンに分配された分割後の送信データに付加する。また、図6(B)に示すように、パケット送信部501とパケット送信部514は、必要に応じて、レーン(図6(B)のLane5)に分配された分割後の送信データに余白を付与する。
受信パケットスキュー調整部512と受信パケットスキュー調整部503は各レーンで受信したデータのスキューを調整しデータとして再合成し、パケット送信部によって送信データに余白が付与された場合にレーンで受信したデータに付与された余白を除去する。
次に、受信パケットスキュー調整部について詳細に説明する。
図7は、第1実施形態に係るシリアル通信装置の受信側画像処理部413における受信パケットスキュー調整部512の構成例を示すブロック図である。図7を参照しながら、受信側画像処理部413における受信パケットスキュー調整部512について説明する。なお、送信側画像処理部401における受信パケットスキュー調整部503の構成は、受信側画像処理部413における受信パケットスキュー調整部512の構成と同様であるため、その説明は省略する。
図7に示すように、受信側画像処理部413における受信パケットスキュー調整部512は、ライト制御部701、バッファ制御部702、データバッファ703及びリード制御部704を有する。
ライト制御部701は、非同期クロック乗換部511から入力される各レーンのクロック乗り換え後のデータに基づいて、各レーンで個別にデータバッファ703へのライトデータ及びライト動作の制御信号を生成し、バッファ制御部702に出力する。
バッファ制御部702は、ライト制御部701から入力されてきたライト動作の制御信号に基づき、ライト制御部701から入力されてきたライトデータを順次、データバッファ703に格納(ライト)させる。
そして、ライト制御部701は、予め定められたサイクル数のデータがライトされると(即ち、各レーンで所定のサイクル数のデータのライトアクセスが完了したタイミングで)、ライト動作が完了したことをリード制御部704へ通知する。以下、ライト動作が完了したという通知を単に「ライト完了通知」と称する。ライト完了通知は、各レーンで個別に行われる。
リード制御部704は、ライト制御部701からの全てのレーンに対応するライト完了通知が出揃ったタイミングで、バッファ制御部702に対してリード動作を開始する通知を行う。以下、リード動作を開始するという通知を単に「リード開始通知」と称する。
バッファ制御部702はリード制御部704からリード開始通知を受け取ったタイミングでデータバッファ703に対してリードアクセス制御を行うことにより、リード動作(リードアクセス)を開始し、データバッファ703から外部へのデータ転送を開始する。
次に、受信パケットスキュー調整部512が行うスキュー調整動作について説明する。
図8は、図7の受信パケットスキュー調整部512が行うスキュー調整動作の例を示す図である。図8(A)は図7の受信パケットスキュー調整部512のライト側のスキュー調整動作を説明するための概念図であり、また、図8(B)は図7の受信パケットスキュー調整部512のリード側のスキュー調整動作を説明するための概念図である。
図8(A)に示すように、非同期クロック乗換部511から入力される各レーン(Lane0~Lane7)のデータは、スキューの影響を受けたままで、受信パケットスキュー調整部512へ入力される。
各レーン(Lane0~Lane7)のデータは、データ本体の開始位置を示す制御用コードheaderとデータ本体から構成される。受信パケットスキュー調整部512は、各レーンでこの制御用コードheaderを検出し、その検出タイミングに基づいてデータバッファ703へのライトアクセス(ライト動作)を行う。
前述のように、レーン間スキューは、各レーンにおける水平同期期間でスキューの量が動的に変化することで発生する。そのため、たとえデータの先頭でスキューが調整(補正)されたとしても、その後、各レーンにおける水平同期期間でデータにレーン間スキューが生じてしまう可能性があるという問題が存在する。
そこで、本発明の実施形態に係るシリアル通信装置では、受信パケットスキュー調整部512が次のようなスキュー調整動作を行うことで、上述した問題を解決した。即ち、ライト制御部701は、各レーンで所定のサイクル数のデータのライトアクセスが完了したタイミングで、ライト完了通知(図8(A)では、wr_done0~wr_done7として表記される信号)をリード制御部704に対して通知する。次に、リード制御部704は、ライト制御部701からの各レーンに対応したすべてのライト完了通知を受け取ったタイミングで、リード開始通知(図8(A)では、rd_startとして表記される信号)をバッファ制御部702に対して通知する。
上述したスキュー調整動作を行うことで、図8(B)に示すように、特別な制御コードを用いずに、レーン間スキューを補正(調整)した状態で、データの読み出し(図8(B)では、rd_dataとして表記される信号)ができる。因みに、レーン間スキューを補正した状態は、スキュー調整がされて各レーンのデータの位相が揃っている状態を意味する。また、リードデータの有効期間は、図8(B)では、rd_validとして表記されている。
図6(A)の例では、各レーンのデータ幅32[bit]で32[cycle]転送されると、受信パケットスキュー調整部512のライト側は、dataが8レーンの合計で、8×32×32=8,192[bit]=8K[Byte]を受信する。
受信パケットスキュー調整部512のリード側は、リードデータ幅を32×8=256[bit]とすると、8,192÷256=32[cycle]でデータの読み出し(データリード)を完了する。
一方、図6(B)の例では、各レーンのデータ幅32[bit]で43[cycle]転送されると、受信パケットスキュー調整部512のライト側は、dataが6レーンの合計で、6×32×43=8,256[bit]を受信する。
受信パケットスキュー調整部512のライト側が受信したデータのうち、8,256―8,192=64[bit]は余白部分である。受信パケットスキュー調整部512のリード側は、リードデータ幅を図6(A)の例と同様に256[bit]とすると、8,192÷256=32[cycle]で所望のデータの読み出し(データリード)を完了する。余白部分である64[bit]については、受信パケットスキュー調整部512のリード側は、データの読み出し(データリード)を行わないことにより、余白部分である64[bit]を除去する。
次に、受信パケットスキュー調整部512が制御用コードheaderを検出(認識)できない場合の第1実施形態に係るシリアル通信装置の動作について説明する。
受信パケットスキュー調整部512は、いずれか1つ以上のレーンでデータ本体の開始位置を示す制御用コードheaderを認識できない場合に、データバッファ73からのデータ読み出しを行わないようにする。その場合、まず、受信パケットスキュー調整部512は、パケットデコード部513を経由してパケット送信部514に対して、制御用コードheaderの認識が失敗した旨の通知(以下、単に「header認識失敗通知」と称する)を行う。次に、パケット送信部514は、受信パケットスキュー調整部512からheader認識失敗通知を受け取ったタイミングで、制御用コードheaderを認識できなかったデータの再送を要求するデータ(ステータスパケット)を送信する。
制御用コードheaderを認識できない場合とは、制御用コードheaderの位置のコード値が伝送経路で発生したノイズ等の影響により値の変化があり、予め定められた値から変化してしまうことで、コード値としての認識が出来ないことを言う。
受信パケットスキュー調整部512は、制御用コードheaderを認識できない場合に、データバッファ703へのライトアクセスを開始することができない。従って、あるレーンのみで制御用コードheaderを認識できないとなると、データバッファ703からのデータの読み出しの際に、送信時に分割されたデータが正常に結合することができない。そこで、第1実施形態に係るシリアル通信装置において、受信側画像通信制御部410は、当該データを破棄し、送信側画像通信制御部400に対して当該データからの再送を要求するステータスパケットをパケット送信部514により送信する。因みに、当該データは、制御用コードheaderを認識できなかったデータを意味する。
受信側画像通信制御部410から当該データからの再送を要求された送信側画像通信制御部400は、パケット送信部501の動作を停止し、再送の要求を受けたデータパケットからの送信を行う。このパケット送信部501のデータ再送までの間には、送信中であったデータパケット(送信途中のデータパケット)が存在している可能性がある。そこで、受信側画像処理部413は、送信側画像通信制御部400が送信途中のデータパケットを再送要求した所望のデータパケットの再送と認識するまでの間は、受信したデータを破棄する動作を行う。即ち、受信パケットスキュー調整部512は、パケット送信部501に対して再送を要求した場合に、パケット送信部501から再送要求したデータの再送を受信するまでの間に、受信したデータを破棄する。送信途中のデータパケットを再送要求したデータパケットと誤認識してしまうと、データの連続性が途切れてしまうからである。
このように、受信側画像通信制御部410は、送信側画像通信制御部400から再送されたデータパケットを正常に受信するに成功すると、データの欠損を補完することができる。
次に、画像データのバースト転送が行われる場合の第1実施形態に係るシリアル通信装置の動作について説明する。
図9は、図6(A)に示す、8レーンに分割されたデータのパケット構成で、データをバースト転送する(連続して転送する)場合を説明するための概念図である。
図6(A)と同様に、図9に示すように、headerと記載されている部分は、後続するデータ本体の開始位置を示す制御用コードであり、dataと記載されている部分は、データ本体である。図9には、第1実施形態に係るシリアル通信装置がLane0~Lane7の計8レーンを並列で使用してデータをバースト転送する例を示している。図9に示すように、1つのデータパケットとして、各レーンでN[cycle](Nは1以上の整数である)転送され、dataは8レーンの合計で8Nとなることは、図6(A)の例(以下、単に「実施例1」と称する)と同じである。なお、図9のバースト転送の例(以下、単に「実施例2」と称する)では、制御用コードheaderは、連続データパケットの数(以下、単に「連続データパケット数」と称する)をも示すものとする。
実施例1において、次のデータパケットを転送する際には、必ず制御用コードheaderから始める必要があったが、少なくとも1[cycle]の期間は、データ本体を転送しない。よって、実施例1の実効的な転送効率は、32/(1+32)≒96.97[%]となる。このように、第1実施形態に係るシリアル通信装置が行うデータ転送によれば、高い実効的な転送効率を獲得することができた。
また、実施例2において、制御用コードheaderの後に、1以上のデータパケットを連続して転送するようにしている。例えば、burst=20の場合の実施例2の実効的な転送効率は、32×20/(1+32×20)≒99.84[%]となる。このように、第1実施形態に係るシリアル通信装置が行うバースト転送によれば、ほぼ100%に近い実効的な転送効率を獲得することができた。
第1実施形態に係るシリアル通信装置がバースト転送を行う場合に、パケット送信部及び受信パケットスキュー調整部の動作は、次のようになる。
パケット送信部501とパケット送信部514は、送信データをレーン数に応じて等分に分割して、分割後の送信データをデータ本体として各レーンに分配し、制御用コード(ヘッダー情報)を各レーンに分配された分割後の送信データに付加する。また、パケット送信部501とパケット送信部514は、必要に応じて、レーンに分配された分割後の送信データに余白を付与する。更に、パケット送信部501とパケット送信部514は、データパケットを連続して送信する際に、データパケットに制御用コードheaderの付加を行うこととデータパケットに制御用コードheaderの付加をスキップすることを切り替える。
受信パケットスキュー調整部512と受信パケットスキュー調整部503は各レーンで受信したデータのスキューを調整しデータとして再合成し、パケット送信部によって送信データに余白が付与された場合にレーンで受信したデータに付与された余白を除去する。更に、受信パケットスキュー調整部512と受信パケットスキュー調整部503は、データパケットを連続して受信する際に、制御用コードheaderの解釈により、バッファ制御部702に対して、データバッファ703を切り替えるための通知をする。
第1実施形態に係るシリアル通信装置がバースト転送を行うために、データバッファ703は、ダブルバッファで構成されている。
図10を用いて、データバッファAとデータバッファBで構成されているデータバッファ703の切り替えが必要となる理由を説明する。図10は、図7の受信パケットスキュー調整部が行うデータバッファ切り替え動作を説明するための概念図である。
図10に示すように、連続するデータパケットの1つ目をburst=0と、2つ目をburst=1と表記しており、図示しないが、3つ目以降は、このburst値が1ずつインクリメントしていく。各レーン(Lane0~Lane7)で受信したburst=0のデータは、データバッファAにライトされるが、burst=0のデータのリードタイミングには、次のburst=1のデータを受信している状態である。同じデータバッファAに対して、burst=1のデータをライトすると、burst=0のデータのリード前に上書きすることとなるから、データの上書きを防ぐために、データバッファ703がダブルバッファの構成を採用する必要がある。そして、burst=0のデータはデータバッファAに、burst=1のデータはデータバッファBにライトしている途中で、burst=0のデータリードが開始される。burst=0のデータリードの完了タイミングがburst=2のデータの書き込み開始よりも早ければ、burst=2のデータのライトは、データバッファAに対して行うことが出来る。
なお、burst=0のデータリードの完了タイミングがburst=2のデータの書き込み開始よりも遅い場合に、burst=2のデータのライトは、データバッファC(図10では図示していない)に対して行う必要がある。これもデータの上書きを防ぐためである。なお、データバッファ703がデュアルポートのSRAMで構成される場合には、ライト動作がリード動作を追い越さない限り、ダブルバッファ構成でも構わない。
次に、画像データのパケット構成にCRCを付加した場合の第1実施形態に係るシリアル通信装置の動作について説明する。
図11は、図6(A)に示す、8レーンに分割されたデータのパケット構成にCRCを付加した場合を説明するための概念図である。
図6(A)と同様に、図11に示すように、headerと記載されている部分は、後続するデータ本体の開始位置を示す制御用コードであり、dataと記載されている部分は、データ本体である。
データ本体に後続するCRC(Cyclic Redundancy Check)は、巡回冗長検査符号であり、誤り検出符号の一種で、主にデータ転送などに伴う偶発的な誤りの検出に使われる。送信側は定められた生成多項式で除算した余りを検査値として送信データに付加して送信し、受信側で同じ生成多項式を使用して受信データを除算し、その余り(演算値)を検査値と比較照合することによって受信データの誤りや破損を検出することができる。
検査値の長さがnビットになるCRCは、nビットCRCと呼ばれ、図11では、データ本体に後続するCRCの検査値として、32ビットのCRC―32が使用されている。CRC―32は、例えば、crc32という関数を用いて生成される。
図11には、第1実施形態に係るシリアル通信装置がLane0~Lane7の計8レーンを並列で使用してデータを転送する例(以下、単に「実施例3」と称する)を示している。図11に示すように、1つのデータパケットとして、各レーンでN[cycle](Nは1以上の整数である)転送され、dataは8レーンの合計で8Nとなることは、図6(A)の例(実施例1)と同じである。
実施例1で制御用コードheaderを認識できない場合に既に述べた、伝送経路で発生したノイズ等の影響による値の変化は、制御用コードheader部分以外のデータ本体に対しても起こる可能性があり、それが起きた場合、データとしては欠損してしまう。
第1実施形態に係るシリアル通信装置が制御用コードheader及びデータ本体に続き、CRCを付加したパケット構成を有するデータを転送する場合に、パケット送信部及び受信パケットスキュー調整部の動作は、次のようになる。
パケット送信部501とパケット送信部514は、送信データをレーン数に応じて等分に分割して、分割後の送信データをデータ本体として各レーンに分配し、制御用コード(ヘッダー情報)を各レーンに分配された分割後の送信データに付加する。また、パケット送信部501とパケット送信部514は、必要に応じて、レーンに分配された分割後の送信データに余白を付与する。更に、パケット送信部501とパケット送信部514は、データの欠損を確認するための誤り検出符号の検査値(実施例3では、CRC符号の検査値であるCRC―32)を各レーンに分配された分割後の送信データに付加する。
受信パケットスキュー調整部512と受信パケットスキュー調整部503は各レーンで受信したデータのスキューを調整しデータとして再合成し、パケット送信部によって送信データに余白が付与された場合にレーンで受信したデータに付与された余白を除去する。更に、受信パケットスキュー調整部512と受信パケットスキュー調整部503は、レーン毎に受信した制御用コードheader及びデータパケット(受信データ)に基づいて、誤り検出符号の演算値(実施例3ではCRC符号の演算値)をレーン毎に生成する。
そして、受信パケットスキュー調整部512と受信パケットスキュー調整部503は、レーン毎に受信した誤り検出符号の検査値と、レーン毎に生成した誤り検出符号の演算値とに基づいて、レーン毎にデータの欠損の有無を判断する。
受信パケットスキュー調整部512はCRC符号の検査値と演算値に基づいてデータの欠損を検知した場合に、データバッファ703からのデータの読み出しをキャンセルするために、データ欠損を検知したレーンではwr_done信号をアクティブにしない。因みに、wr_done信号をアクティブにしないことは、ライト制御部701がライト完了通知をリード制御部704に対して通知しないことである。そうすることで、データバッファ703から欠損したデータを含むデータを読み出すことが出来なくなり、受信側画像処理部413は当該欠損したデータを破棄することができる。そして、データの欠損を補完するために、受信側画像通信制御部410は、送信側画像通信制御部400に対して、当該欠損したデータからの再送を要求するステータスパケットをパケット送信部514により送信する。
受信側画像通信制御部410から欠損したデータからの再送を要求された送信側画像通信制御部400は、パケット送信部501の動作を停止し、再送の要求を受けたデータパケットからの送信を行う。このように、受信側画像通信制御部410は、送信側画像通信制御部400から再送されたデータパケットを正常に受信するに成功すると、データの欠損を補完することができる。
なお、第1実施形態に係るシリアル通信装置が実施例2と実施例3を組み合わせて画像データのバースト転送を行うことができる。実施例2と実施例3を組み合わせてバースト転送を行う場合に、制御用コードheaderの後に、1以上のデータパケットを連続させ、その連続データの後にCRC符号の検査値を付加するというパケット構成となる。
次に、タイムアウトが検知された場合の第1実施形態に係るシリアル通信装置の動作について説明する。
受信側画像通信制御部410から送信側画像通信制御部400に対するデータの再送を要求したにも関わらず、送信側画像通信制御部400が再送の要求を受けたデータパケットからの送信を行ず、第一場合や第二場合がある。因みに、第一場合は、従前からの連続データを送信し続けた場合であり、また、第二場合は、パケット送信部501の動作を停止し続け、再送の要求を受けたデータパケットからの送信を行わない場合である。これは、データの再送要求を送信側画像通信制御部400が正常に受信できなかったことが原因と考えられる。
このままでは、受信側画像通信制御部410は、送信側画像通信制御部400から再送されたデータパケットを正常に受信することができず、データの欠損を補完することができない。
そこで、第1実施形態に係るシリアル通信装置の動作はこのようになる。
受信側画像通信制御部410はいずれか1つ以上のレーンで期待するデータ受信を所定時間が経過しても出来なかった場合にタイムアウトしたと判断し、送信側画像通信制御部400に対してタイムアウトを検知したデータからの再送を要求するデータを送信する。
受信側画像通信制御部410からデータの再送を要求された送信側画像通信制御部400は、再度のデータの再送要求を受信することに成功すれば、再送の要求を受けたデータパケットからの送信を行うことができる。そして、受信側画像通信制御部410は、送信側画像通信制御部400から再送されたデータパケットを正常に受信するに成功すると、データの欠損を補完することができる。
上述したように、第1実施形態に係るシリアル通信装置は各実施例で説明した方法により、複数の経路で転送されるシリアルデータの間のタイミングのずれを、実効的な転送効率を下げず、回路規模を増大させることもなく、更に複雑な制御を要せずに解消できる。
以上、本発明の好ましい実施の形態や実施例について説明したが、本発明は上述した実施の形態や実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100 印刷システム
101 クライアントPC
102 印刷制御装置
103 画像形成装置
106 画像データ用通信路
208 送信側画像通信I/F
307 受信側画像通信I/F
400 送信側画像通信制御部
401 送信側画像処理部
410 受信側画像通信制御部
413 受信側画像処理部
501、514 パケット送信部
503、512 受信パケットスキュー調整部
701 ライト制御部
702 バッファ制御部
703 データバッファ
704 リード制御部
101 クライアントPC
102 印刷制御装置
103 画像形成装置
106 画像データ用通信路
208 送信側画像通信I/F
307 受信側画像通信I/F
400 送信側画像通信制御部
401 送信側画像処理部
410 受信側画像通信制御部
413 受信側画像処理部
501、514 パケット送信部
503、512 受信パケットスキュー調整部
701 ライト制御部
702 バッファ制御部
703 データバッファ
704 リード制御部
Claims (9)
- 送信側に配置されている送信側通信手段から送信されるシリアルデータを、複数のレーンで、受信側に配置されている受信側通信手段へ転送するシリアル通信装置であって、
前記送信側通信手段は、送信データをレーン数に応じて等分に分割して、分割後の送信データをデータ本体としてレーン毎に分配し、前記送信データの種類を示すヘッダー情報を各レーンに分配された前記分割後の送信データに付加するパケット送信手段を備えており、
前記受信側通信手段は、前記各レーンで受信したデータのスキューを調整する受信パケットスキュー調整手段を備えており、
前記受信パケットスキュー調整手段は、前記各レーンで受信したデータの前記ヘッダー情報を検出し、検出タイミングで前記受信したデータの前記データ本体をデータバッファにライトさせ、前記各レーンで所定のサイクル数の前記データ本体のライトアクセスが完了したタイミングで、前記データバッファから外部へのデータ転送を開始することを特徴とするシリアル通信装置。 - 前記受信パケットスキュー調整手段は、前記パケット送信手段によって前記レーンに分配された前記分割後の送信データに余白が付与された場合に、前記余白を除去することを特徴とする請求項1に記載のシリアル通信装置。
- 前記送信側通信手段は、前記ヘッダー情報の後に、1以上のデータパケットを連続して送信し、
前記受信パケットスキュー調整手段は、前記データパケットを連続して受信し、
前記ヘッダー情報は、前記データパケットの数をも示し、
前記データバッファは、ダブルバッファで構成されていることを特徴とする請求項1又は2に記載のシリアル通信装置。 - 前記送信側通信手段は、データの欠損を確認するための誤り検出符号の検査値を前記各レーンに分配された前記分割後の送信データに付加し、
前記受信パケットスキュー調整手段は、前記レーン毎に受信した前記検査値と、前記レーン毎に生成した前記誤り検出符号の演算値とに基づいて、前記レーン毎にデータの欠損の有無を判断することを特徴とする請求項1乃至3のうち何れか1項に記載のシリアル通信装置。 - 前記受信パケットスキュー調整手段は、前記検査値と前記演算値に基づいてデータの欠損を検知した場合に、データの欠損を検知したレーンではライト完了通知を行わず、前記送信側通信手段に対して、欠損を検知したデータからの再送を要求することを特徴とする請求項4に記載のシリアル通信装置。
- 前記受信パケットスキュー調整手段は、前記各レーンで受信したデータの前記ヘッダー情報を認識できない場合に、前記送信側通信手段に対して、前記ヘッダー情報を認識できなかったデータからの再送を要求することを特徴とする請求項1乃至5のうち何れか1項に記載のシリアル通信装置。
- 前記受信パケットスキュー調整手段は、前記各レーンで受信したデータのタイムアウトを検知した場合に、前記送信側通信手段に対して、前記タイムアウトを検知したデータからの再送を要求することを特徴とする請求項1乃至6のうち何れか1項に記載のシリアル通信装置。
- 前記受信パケットスキュー調整手段は、前記送信側通信手段に対して、前記再送を要求した場合に、前記送信側通信手段から前記再送を要求したデータの再送を受信するまでの間に、受信したデータを破棄することを特徴とする請求項5乃至7のうち何れか1項に記載のシリアル通信装置。
- 送信側に配置されている送信側通信手段から送信されるシリアルデータを、複数のレーンで、受信側に配置されている受信側通信手段へ転送するようになっており、
前記送信側通信手段は、送信データをレーン数に応じて等分に分割して、分割後の送信データをデータ本体としてレーン毎に分配し、前記送信データの種類を示すヘッダー情報を各レーンに分配された前記分割後の送信データに付加するパケット送信手段を備えており、
前記受信側通信手段は、前記各レーンで受信したデータのスキューを調整する受信パケットスキュー調整手段を備えるシリアル通信装置において用いられるシリアル通信方法であって、
前記受信パケットスキュー調整手段が、前記各レーンで受信したデータの前記ヘッダー情報を検出し、検出タイミングで前記受信したデータの前記データ本体をデータバッファにライトさせ、前記各レーンで所定のサイクル数の前記データ本体のライトアクセスが完了したタイミングで、前記データバッファから外部へのデータ転送を開始する工程を有することを特徴とするシリアル通信方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021089306A JP2022182021A (ja) | 2021-05-27 | 2021-05-27 | シリアル通信装置及びシリアル通信方法 |
US17/730,439 US11777627B2 (en) | 2021-05-27 | 2022-04-27 | Serial communication apparatus and serial communication method that are capable of efficiently eliminating a timing lag between serial, data transferred via a plurality of routes in serial communication |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021089306A JP2022182021A (ja) | 2021-05-27 | 2021-05-27 | シリアル通信装置及びシリアル通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022182021A true JP2022182021A (ja) | 2022-12-08 |
Family
ID=84194485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021089306A Pending JP2022182021A (ja) | 2021-05-27 | 2021-05-27 | シリアル通信装置及びシリアル通信方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11777627B2 (ja) |
JP (1) | JP2022182021A (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8970750B2 (en) * | 2010-11-12 | 2015-03-03 | Sony Corporation | Image outputting apparatus, image outputting method, image processing apparatus, image processing method, program, data structure and imaging apparatus |
TWI686085B (zh) * | 2012-11-29 | 2020-02-21 | 日商索尼半導體解決方案公司 | 攝像裝置及圖像感測器之資料傳送方法、資訊處理裝置及資訊處理方法以及程式 |
US9648148B2 (en) * | 2013-12-24 | 2017-05-09 | Intel Corporation | Method, apparatus, and system for QoS within high performance fabrics |
JP6531513B2 (ja) | 2015-06-22 | 2019-06-19 | 株式会社リコー | シリアル通信装置及びシリアル通信方法 |
JP7094952B2 (ja) * | 2017-06-09 | 2022-07-04 | ソニーセミコンダクタソリューションズ株式会社 | 受信装置、制御方法、プログラム、および送受信システム |
JP7037035B2 (ja) * | 2017-09-01 | 2022-03-16 | 富士通株式会社 | データ伝送装置、演算処理装置及びデータ伝送装置の制御方法 |
-
2021
- 2021-05-27 JP JP2021089306A patent/JP2022182021A/ja active Pending
-
2022
- 2022-04-27 US US17/730,439 patent/US11777627B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11777627B2 (en) | 2023-10-03 |
US20220385388A1 (en) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7821919B2 (en) | Data processing apparatus and data processing method | |
US7248384B2 (en) | Method, system, and program for responding to an acknowledgement request from a printer driver | |
JPS602813B2 (ja) | コンピュ−タ間通信方法及びそのシステム | |
KR102516027B1 (ko) | 헤더 처리 장치, 프로세서 및 전자장치 | |
US20140325107A1 (en) | Reception apparatus, information processing apparatus and method of receiving data | |
KR20060103133A (ko) | 데이터 전송 제어 장치 및 전자 기기 | |
KR20080087588A (ko) | 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치 | |
JPWO2013145240A1 (ja) | 情報処理装置及び情報処理装置制御方法 | |
JP5151176B2 (ja) | データ通信装置、画像処理システムおよびデータ通信方法 | |
US7760655B2 (en) | Method and device for transfer of data over a data connection from a sender to a receiver by means of packets | |
JP2022182021A (ja) | シリアル通信装置及びシリアル通信方法 | |
JP4693576B2 (ja) | データ転送制御装置、およびデータ転送制御方法 | |
US11729030B2 (en) | De-skew circuit, de-skew method, and receiver | |
JP2017224896A (ja) | 画像形成システム、画像データ送信部および画像データ伝送方法 | |
JP4035969B2 (ja) | 画像生成装置、画像形成装置、印刷制御装置、データ転送方法、データ変換方法、データ転送プログラムおよびデータ変換プログラム | |
EP3671720B1 (en) | Real-time on-chip data transfer system | |
JP4048988B2 (ja) | フォルトトレラントシステム及びそれに用いる同期化方法 | |
JP2011071579A (ja) | PCIExpress通信システム | |
JP6107119B2 (ja) | 画像データ転送システム | |
US20210288781A1 (en) | Communication device, communication system and communication method | |
JP2001162894A (ja) | データ通信装置およびデータ通信方法 | |
JPH0973373A (ja) | パラレルインターフェース | |
US20110320900A1 (en) | Apparatus and method for error check of transmission data | |
JP2005260620A (ja) | 画像処理装置およびそのデータ伝送方法 | |
KR20000026467A (ko) | 비동기 데이터 통신 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240522 |