JP6260189B2 - 通信装置、制御装置、および画像形成装置 - Google Patents

通信装置、制御装置、および画像形成装置 Download PDF

Info

Publication number
JP6260189B2
JP6260189B2 JP2013216153A JP2013216153A JP6260189B2 JP 6260189 B2 JP6260189 B2 JP 6260189B2 JP 2013216153 A JP2013216153 A JP 2013216153A JP 2013216153 A JP2013216153 A JP 2013216153A JP 6260189 B2 JP6260189 B2 JP 6260189B2
Authority
JP
Japan
Prior art keywords
code
packet
control
communication
nack
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.)
Active
Application number
JP2013216153A
Other languages
English (en)
Other versions
JP2015080091A (ja
Inventor
欣一 吉田
欣一 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2013216153A priority Critical patent/JP6260189B2/ja
Publication of JP2015080091A publication Critical patent/JP2015080091A/ja
Application granted granted Critical
Publication of JP6260189B2 publication Critical patent/JP6260189B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、通信装置、制御装置、および画像形成装置に関する。
PCI Express技術が知られている。非特許文献1の第4章には、パケットの通し番号であるシーケンス番号が付加されたパケットを送受信し、受信側は送信側からシーケンス番号順に正常に届いた事を確認し、エラー等によりパケットが欠落した場合は、復旧のためのリトライを実行することが記載されている。
『PCI Express入門講座』、荒井信隆・里見尚志・田中顕裕 共著、電波新聞社 、2007年4月1日発行(3月15日発売)
本発明は、シーケンス番号を省くことで高速通信可能とし、かつビット化けを生じてもシステムエラーを回避した通信装置、制御装置、および画像形成装置を提供することを目的とする。
請求項1は、互いを通信相手としてパケット通信を行なう第1通信部および第2通信部を備え、該第1通信部および該第2通信部のそれぞれが、
複数種類の制御コードのうちのいずれかの制御コードが記録されたヘッダと、ペイロードと、該ヘッダと該ペイロードとの双方を符号化対象とするエラー検出符号とを有する制御パケットを生成して通信相手に向けて送信する送信部と、
通信相手から送信されてきた制御パケットを受信して該制御パケットのエラーの有無を調べ、前記送信部に、前記制御コードと同一のビット長からなるNACKコードおよび前記制御コードと同一のビット長からなるACKコードのいずれか一方を記録した、前記ヘッダと同一ビット長の返信パケットの送信を依頼する受信部とを備え、
前記送信部がさらに、前記受信部からの依頼に応じて、前記返信パケットを生成して通信相手に向けて送信し、
前記受信部がさらに、通信相手から送信されてきた返信パケットを受信するものであって、
前記複数種類の制御コードのいずれもが1ビットエラーが発生しても前記NACKコードおよび前記ACKコードのいずれとも異なるエラーコードが発生するコードであって、かつ前記NACKコードおよび前記ACKコードのいずれもが1ビットエラーが発生しても前記複数種類の制御コードのいずれとも異なるエラーコードが発生するコードであるとともに、該NACKコードおよび該ACKコードが、1ビットエラーを生じたときにそれぞれACKコードと同一のエラーコードおよびNACKコードと同一のエラーコードとなることがあるコードであり、
前記返信パケットが、NACKコードおよびACKコードのいずれか一方のコードとパリティビットとを含むパケットであって、
前記受信部が、受信した前記制御パケットのヘッダに、前記複数種類の制御コードのうちのいずれか、あるいは制御コードの種類が判明するエラーコードが含まれていたときは、当該制御パケットの前記エラー検出符号あるいは該エラー検出符号に相当する領域に記録されている符号に基づき、エラーの有無に応じてそれぞれNACKコードあるいはACKコードを記録した返信パケットを返信し、
受信した前記制御パケットのヘッダに、制御コードの種類が不明なエラーコードが含まれていたときは、該不明なエラーコードが含まれていたことをもってNACKコードを記録した返信パケットを返信するものであることを特徴とする通信装置である。
請求項2は、前記NACKコードが記録された返信パケットは、該NACKコードに1ビットエラーが生じた場合であってもエラーを生じたNACKコードであることが必ず判明する形式の、パリティビットを含む返信パケットであって、
前記受信部は、受信した返信パケットにNACKコードあるいはNACKコードであると判明するエラーコードが含まれていたときに、前記送信部に、当該返信パケットに対応する制御パケットを再送させるものであることを特徴とする請求項1記載の通信装置である。
請求項3は、前記ACKコードが、1ビットエラーが発生したときに、前記複数の制御コードのうちのいずれかの制御コードに1ビットエラーが発生したときのエラーコードと同一のエラーコードとなることがあるコードであって、
前記受信部は、受信した返信パケットに、該同一のエラーコードが含まれていたときに、前記送信部に、NACKコードを含む返信パケットを再返信させるものであることを特徴とする請求項1又は2記載の通信装置である。
請求項4は、前記受信部は、NACKコードあるいはACKコードを含む返信パケットを受信した場合において該返信パケットに対応する制御パケットが存在しないときは、前記送信部に、ACKコードを記録した返信パケットを再返信させるものであることを特徴とする請求項1から3のうちいずれか1項記載の通信装置である。
請求項は、前記受信部は、受信した返信パケットにパリティエラーが発生し、かつNACKコードあるいはACKコードと同一のコードが含まれていたときは、前記送信部に、当該返信パケットに対応する制御パケットを再送させるものであることを特徴とする請求項記載の通信装置である。
請求項は、前記返信パケットが、前記制御パケットのヘッダのビット長に対応したビット長のパケットであることを特徴とする請求項1からのうちのいずれか1項記載の通信装置である。
請求項は、請求項1からのうちのいずれか1項記載の通信装置を備えて被制御機器の動作を制御する制御装置であって、
前記被制御機器の状態を認識して該被制御機器を制御するための指令を発する中央処理装置と、前記通信装置のうちの前記第1通信部とを備えた主制御部と、
前記通信装置のうちの前記第2通信部を備え、前記主制御部と前記被制御機器の双方に接続されて、前記中央処理装置から発せられ前記通信装置により送信されきた指令に基づいて前記被制御機器の動作を制御するとともに該被制御機器の状態を該通信装置により前記主制御部に送信する機器制御部とを備えたことを特徴とする制御装置である。
請求項は、請求項記載の制御装置と、前記機器制御部に接続された、画像を形成する被制御機器とを備えたことを特徴とする画像形成装置である。
請求項1の通信装置、請求項の制御装置、および請求項の画像形成装置によれば、シーケンス番号を付したパケットの送受信と比べ高速通信可能であって、かつ、1ビット化けが生じてもシステムエラーを回避することができる。
また、請求項1の通信装置、請求項7の制御装置、および請求項8の画像形成装置によれば、通信パケットにパリティビットを含めることによってビット化けによるNACKコードやACKコードと同一のエラーコードの発生が許容され、システムエラーが回避される。
請求項2の通信装置によれば、NACKコードとして、NACKコードのビットエラーであることが分からない場合があるコードを採用した場合と比べ、速やかな再送が可能となる。
請求項3の通信装置によれば、制御パケットの1ビットエラーとACKコードの1ビットエラーとを統一的に取り扱うことができる。
請求項4の通信装置によれば、稀なケースにもシステムエラーを回避できる。
請求項の通信装置によれば、パリティエラーという異常が生じたときは一層安全サイドのシーケンスが実行される。
請求項の通信装置によれば、一層高速な通信が可能である。
本発明の一実施形態としての画像形成装置の構成を示すブロック図である。 図1に示す主制御部を構成する第1通信部の構成を示すブロック図である。 図1に示す機器制御部を構成する第2通信部の構成を示すブロック図である。 図1〜図3に示す第1通信部と第2通信部との間で送受信されるパケットのフレーム構成を示した図である。 各種のコードと、各コードごとの1ビット化けのパターンを示した図である。 基本通信フローを示した図である。 パケット受信側での処理フローを示したフローチャートである。 ACKコードにビット化けが生じたときのパケット送受信シーケンスの、稀なケースを示した図である。 図7に示したパケット受信側の処理フローの変形例を示したフローチャートである。
以下、本発明の実施の形態を説明する。
図1は、本発明の一実施形態としての画像形成装置の構成を示すブロック図である。この画像形成装置は、本発明の各一実施形態としての制御装置および通信装置を内包している。
この画像形成装置1は、制御装置10と機器50を備えている。
機器50は、用紙上に画像を形成する機能を備えた機器であって、例えばコピー機、プリンタ、ファクシミリ装置等がこれに該当する。この機器50としては、好適な一例として、電子写真方式が採用されている。ただし、この機器50は、電子写真方式を採用した機器である必要はなく、例えばインクジェット方式あるいは感熱方式等、電子写真方式以外の方式により画像を形成する機器であってもよい。ただしここでは、機器50として電子写真方式を採用した機器を念頭において説明する。
機器50には、用紙の有無を検出するセンサなど、この機器50の状態を知るための様々なセンサが備えられている。また、この機器50には、感光体を駆動するモータなど複数の動力源が備えられている。
制御装置10は、この機器50と接続されており、この機器50に備えられた様々なセンサによる検出値を入力してこの機器50の状態を知り、また、この機器50の様々な動力源を駆動してこの機器50を動作させる役割を担っている。この制御装置10は、本発明の制御装置の一例に相当する。
尚、この図1では、制御装置10と機器50は、別々のブロックで示しているが、制御装置10と機器50は、物理的にはそれらの双方が1つの筐体内に収容されていてもよい。
制御装置10には、主制御部20と機器制御部30が備えられており、それら主制御部20と機器制御部30は、シリアルバス40で相互に接続されている。
主制御部20には、CPU21、第1通信部22、および複写レジスタ群23が備えられている。また機器制御部30には、第2通信部31、入出力制御レジスタ群32、および駆動・受信回路33を備えている。シリアルバス40は、主制御部20の第1通信部22と機器制御部30の第2通信部31とを接続している。このシリアルバス40で接続された第1通信部22と第2通信部31との組合せが、本発明の通信装置の一例に相当する。
機器50の各種センサや各種動力源は、機器制御部30の駆動・受信回路33に接続されている。駆動・受信回路33は、機器50の各種センサによる検出値を機器50から取得して入出力制御レジスタ群32に書き込む。
第2通信部31は、入出力制御レジスタ群32の一連の内容全てを定期的に第1通信部22に送信する。第1通信部は、第2通信部31から送信されてきた入出力制御レジスタ群32の内容を複写レジスタ群23に記録する。ここでは、この動作を、入出力制御レジスタ群32の内容を複写レジスタ群23に「複写する」と表現する。複写レジスタ群23に複写された、機器50の各種センサの検出値は、CPU21によって参照される。ここで、入出力レジスタ群32からの複写レジスタ群23への複写は、短い周期で繰り返し行なわれる。このためCPU21は、基本的には、この複写レジスタ群23を参照するだけで、機器50の現在の状態を正確に認識することができる。
CPU21は、機器50の現在の状態を認識し、機器50にその現在の状態に応じた動作を実行させるための指令、すなわち制御値を出力する。CPU21から出力された制御値は、第1通信部22から第2通信部31に送信され、第2通信部31はその制御値を入出力制御レジスタ群32に書き込む。駆動・受信回路33は、その入出力制御レジスタ群32に書き込まれた制御値を参照しその制御値に従って機器50の動力源を駆動する。
ここで、入出力制御レジスタ群32には、入力レジスタ、出力レジスタ、割込みレジスタ、および割込み要因レジスタが含まれている。入力レジスタは、駆動・受信回路33が機器50から受け取った、各種センサによる検出値が書き込まれるレジスタである。この入力レジスタに書き込まれた検出値は前述の複写により複写レジスタ群23に書き込まれてCPU21により参照される。また出力レジスタは、CPU21から出力された指令に基づく制御値が書き込まれるレジスタである。この出力レジスタに書き込まれた制御値は、駆動・受信回路33によって読み出される。駆動・受信回路33は、その読み出した制御値に従って機器50を制御する。
また、機器50に何らかの異常、例えば用紙詰まり、異常な温度上昇等が発生すると、機器50から割込信号が発せられる。割込みレジスタおよび割込み要因レジスタは、機器50から割込信号を受信したときに、割込みが発生したことを示すデータおよび割込要因を示すデータがそれぞれ書き込まれるレジスタである。
なお主制御部20を構成しているCPU21は、不図示のシステムタイマを基準として動作する。このシステムタイマはあらかじめ定められた周期ごとにタイムアップしてシステムロックを生成し、各クロックパルス毎にCPU21に対しタイマ割込みを発生させる。システムタイマは、リアルタイムOS(オペレーティングシステム)による一般的な技術であり、ここでの説明は省略する。
また機器制御部30にも不図示のタイマが備えられていて、主制御部20のシステムクロックと同じ周期のクロックを出力する。この機器制御部30では、その出力されたクロックに基づいて、主制御部20と同期した動作が実行される。
図2は、図1に示す主制御部を構成する第1通信部の構成を示すブロック図である。
図2に示す第1通信部22には、CPUバスインタフェース221、コントローラ222、パケット生成回路223、バッファ224、およびパラレルシリアル変換回路225が備えられている。またこの第1通信部22にはさらに、シリアルパラレル変換回路226、バッファ27、パケットデコード回路228、およびアドレスカウンタ229を備えている。
CPUバスインタフェース221は、CPU21と第1通信部22との間の通信を担うインタフェースであって、図1に示すCPU21との間がCPUバスで接続されている。
また、コントローラ222は、この第1通信部22を構成する各要素と接続され、この第1通信部22の全体の制御を担っている。
パケット生成回路223では、図1に示す機器制御部30への送信用のパケットが生成される。その生成されたパケットは、一旦、バッファ224に格納される。バッファ224に一旦格納されたパケットはパラレルシリアル変換回路225により取り出されてシリアル形式のパケットに変換され、シリアルバス40を介して機器制御部30に送信される。
ここで、バッファ224には送信待バッファ224aと送信済バッファ224bが設けられている。送信待バッファ224aは、未だ送信されていないパケットが格納されるバッファである。また送信済バッファ224bは、機器制御部30に向けて送信された後のパケットが格納されるバッファである。これは、機器制御部30側からNACKパケットが送信されてきたときの再送用である。このNACKパケットは、機器制御部30に向けて送信したパケットが機器制御部30で正常に受信できなかったときに機器制御部30から返信されるパケットである、本実施形態は再送は1回のみ許容するシステムとなっている。2度連続して正常な受信ができなかったときはハードウエア障害の可能性が高く、システムエラーとなる。送信済バッファ224bに格納しておいたパケットは、機器制御部30から、正常に受信したことを表わすACKパケットを受信した場合に、その送信済バッファ224bから消去される。
すなわち、パケット回路223で生成されたパケットは送信待バッファ224aに格納され、機器制御部30に向けて送信されるとそのパケットは送信待バッファ224aからは消去されて送信済バッファ224bに格納される。そしてその送信済バッファ224bに格納されたパケットは、ACKパケットを受信すると、その送信済バッファ224bからも消去される。
一方、機器制御部30からシリアルバス40を介して送信されてきたパケットは、シリアルパラレル変換回路226によりパラレル形式のパケットに変換されてバッファ227に一旦格納される。このバッファ227に格納されたパケットはパケットデコード回路228により取り出されデコードされて、そのパケットからコードやデータ等が取り出される。
アドレスカウンタ229は、複写レジスタ群23へのデータ書込みのアドレスを生成する。詳細は後述する。
また、この図2には、コントローラ222内の構成要素として、未定義コード制御部222a、検出フラグ222b、再送管理部222cが示されている。再送管理部222cは、上述したパケットの再送を管理している。未定義コード制御部222aおよび検出フラグの作用については後述する。
図3は、図1に示す機器制御部を構成する第2通信部の構成を示すブロック図である。
この図3に示す第2通信部31には、コントローラ311、シリアルパラレル変換回路312、バッファ313、およびパケットデコード回路314が備えられている。また、この第2通信部31にはさらに、アドレスカウンタ315、パケット生成回路316、バッファ317、およびパラレルシリアル変換回路318が備えられている。
コントローラ311は、この第2通信部31を構成する各要素と接続され、この第2通信部31の全体の制御を担っている。
図1に示す主制御部20からシリアルバス40を介して送信されてきたパケットは、シリアルパラレル変換回路312によりシリアル形式のパケットに変換されてバッファ313に一旦格納される。このバッファ313に格納されたパケットはパケットデコード回路314により取り出されてデコードされ、そのパケットからコードやデータが取り出される。
アドレスカウンタ315は、入出力制御レジスタ群32からのデータ読出しのアドレスを生成する。詳細は後述する。
また、パケット生成回路316では、図1に示す主制御部20側への送信用のパケットが生成される。その生成されたパケットは、一旦、バッファ317に格納される。バッファ317に一旦格納されたパケットはパラレルシリアル変換回路318により取り出されてシリアル形式のパケットに変換され、シリアルバス40を介して主制御部20に送信される。
バッファ317には送信待バッファ317aと送信済バッファ317bが設けられている。これら送信待バッファ317aおよび送信済バッファ317bの役割は、図2に示す第1通信部22におけるバッファ224を構成している送信待バッファ224aおよび送信済バッファ224bとそれぞれ同じである。すなわち、パケット生成回路316で生成されたパケットは送信待バッファ317aに格納され、そのパケットが主制御部20に向けて送信されるとそのパケットは送信待バッファ317aからは消去されて送信済バッファ317bに格納される。そしてその送信済バッファ317bに格納されたパケットは、主制御部20からACKパケットを受信すると、その送信済バッファ317bからも消去される。
また、この図3には、図2と同様、コントローラ311内の構成要素として、未定義コード制御部311a、検出フラグ311b、再送管理部311cが示されている。これら
未定義コード制御部311a、検出フラグ311b、再送管理部311cの役割は、図2に示す第1通信部22のコントローラ222における、未定義コード制御部222a、検出フラグ222b、再送管理部222cとそれぞれ同一である。
次に本実施形態に係る制御装置10におけるデータの流れについて説明する。
<入出力制御レジスタ群32の更新>
CPU21は、機器50を制御するための制御値を書込むための書込要求をCPUバスを介して第1通信部22に出力する。この書込要求には、書き込むべきデータだけでなく、入出力制御レジスタ群32の、そのデータの書込先となるレジスタのアドレスが指定されている。第1通信部22のコントローラ222は、CPUバスインタフェース221を介して書込要求を受け取り、パケット生成回路223、バッファ224、およびパラレルシリアル変換回路225を制御し、CPU21から受け取った書込要求をパケット化して送信する。
機器制御部30のコントローラ311は、シリアルパラレル変換回路312、バッファ313、およびパケットデコード回路314を制御し、書込要求のパケットをデコードして書込要求を取り出す。
コントローラ311は、入出力制御レジスタ群32に含まれる出力レジスタのうち、上記デコードにより得られた書込要求で指定されたアドレスの出力レジスタに、当該出力レジスタに対応する動力源を制御するための制御値を書込む。これにより、書込まれた制御値に応じて、機器50の対応する動力源が駆動される。
なお、CPU21からの書込要求の出力による入出力レジスタ群32への書込みについては、CPU21から第1通信部22に対して書込要求を出力しさえすれば、その後は、第1通信部22でパケットが生成され、機器制御部30で書込処理されるため、CPU21が書込処理待ちとなることはない。
また、図1に示す駆動・受信回路33は、機器50からその機器50の状態を示すセンサの検出値が入力されると、その検出値を入出力制御レジスタ群32の、そのセンサに対応する入力レジスタに書込む。
本実施形態では、機器制御部30に、不図示の割込検出回路が設けられている。その割込検出回路により機器50からの割込が検出された場合には、機器制御部30の第2通信部31に設けられたコントローラ311は、入出力制御レジスタ群32の割込レジスタに、割込発生を示すデータを書き込むと共に、割込要因レジスタに、割込要因のデータを書き込む。さらに、コントローラ311は、パケット生成回路316に割込パケットを生成させ、パラレルシリアル変換回路318にシリアル変換させて主制御部20に送信させる。
<複写レジスタ群23への複写>
本実施形態の制御装置10では、システムタイマのタイムアップの毎周期ごと、すなわちシステムクロックの各パルスごとに、入出力制御レジスタ群32に記憶されている全データを読み出しシリアルバス40を介して送信して複写レジスタ群23に書込む複写処理が行なわれる。この複写処理は高速に行なわれ、例えば、システムクロックの周期が1msであれば、一回の複写処理は、その1msよりも短い時間に余裕を持って完了する。本実施形態では、入出力制御レジスタ群32に記憶された各データを先頭アドレスから順に読み出して、読み出したデータの複写先のアドレスを指定せずに複数のパケットを生成して順次送信し、複数のパケットの転送順に複写レジスタ群23の先頭アドレスから順次にデータを書き込む。
以下、この複写処理を詳しく説明する。
機器制御部30の第2通信部31のコントローラ311は、機器制御部30に設けられた、システムクロックと同期したクロックを発生するタイマからのクロックの1パルスごとに、入出力制御レジスタ群32から複写レジスタ群23へのデータ複写のための読出処理が開始される。
具体的には、コントローラ311は、アドレスカウンタ315から出力されたアドレスに従って、入出力制御レジスタ群32の先頭アドレスから順次に、予め定められた読出サイズ分(本実施形態では4ワードずつ)のデータを読み出して、読み出したデータをパケット生成回路316に順次に入力する。そして、コントローラ311がデータを読み出す毎に、アドレスカウンタ315が読出サイズ分(4ワード分)だけカウントアップする。コントローラ311は、入出力制御レジスタ群32から全データを読み出すまで、アドレスカウンタ315のカウント値が示すアドレスから読出サイズ分(4ワード分)のデータを読み出してパケット生成回路316に入力することを繰り返す。
パケット生成回路316は、複写対象のデータが入力される毎に、そのデータを複写レジスタ群23に書き込ませるための複写命令のパケット(以下、複写パケットという)を生成し、バッファ317に記憶する。なお、複写パケットには、複写先(書込先)のアドレスの情報は含めない。これにより、データ量が削減され、高速送信が行なわれる。
パラレルシリアル変換回路318は、コントローラ311の制御の下、バッファ317に記憶された複写パケットをシリアル形式に変換して、シリアルバス40に出力する。これにより、入出力制御レジスタ群32に記憶されている全データが主制御部20に転送される。
主制御部20に転送された複写パケットは、シリアルパラレル変換回路226によりパラレル形式の複写パケットに変換されて、バッファ227に記憶される。パケットデコード回路228は、バッファ227に記憶された複写パケットをデコードして複写すべきデータを取り出す。
コントローラ222は、パケットデコード回路228でデコードされて得られたデータを、複写レジスタ群23の、アドレスカウンタ229から出力されたアドレスが示すレジスタに書込む。1つの複写パケットにより書込まれるデータのサイズは、入出力制御レジスタ群32からデータを読出したときの読出サイズ(4ワード)に等しい。アドレスカウンタ229の初期値は、複写レジスタ群23の先頭アドレスである。そして、コントローラ222が、複写レジスタ群23に全ての複写パケットのデータを書き込むまで、アドレスカウンタ229が上記読出サイズ分(4ワード分)ずつカウントアップする。そしてコントローラ222は、入出力制御レジスタ群32から読み出されて送信されてきたデータをアドレスカウンタ229のカウント値が示すアドレスに書き込む処理を繰り返す。
このように、本実施形態の制御装置10は、入出力制御レジスタ群32の先頭アドレスから順にデータを読み出して複写レジスタ群23に順次に書き込む処理を繰り返すことにより、最終的に全データを複写レジスタ群23に複写するため、複写パケットで複写先(書込先)のアドレスを指定しなくても、問題なく複写処理が実行される。これにより、複写処理が簡易化される。
ここで、複写パケットの転送処理中に割込みが発生した場合、転写処理中の1つの複写パケットが送信された後、次の複写パケットが送信されるまでの間に、割込パケットが主制御部20に送信される。その場合であっても複写処理はシステムクロックの一周期内で余裕をもって終了する。
<CPU21によるデータ読出し>
CPU21は、入出力制御レジスタ群32に書き込まれたデータを参照する場合、入出力制御レジスタ群32からデータを直接に取得するのではなく、複写レジスタ群23からデータを読み出すことで、入出力制御レジスタ群32に書込まれたデータを参照することができる。
従って、CPU21は、データ読出しの際には、複写レジスタ群23のアドレスを指定した読出要求を第1通信部22に出力する。第1通信部22のコントローラ222は、CPUバスインタフェース221を介してCPU222から複写レジスタ群23のデータの読出要求を取得すると、複写レジスタ群23に複写されたデータ(読出要求で指定されたアドレスのデータ)を読み出して、CPU21に供給する。
本実施形態では、主制御部20に複写レジスタ群23を設け、入出力制御レジスタ群32のデータを複写レジスタ群23に複写するようにしたため、CPU21は、シリアルバス40を介さずとも、複写レジスタ群23に複写されたデータを読み出すことで、入出力制御レジスタ群32に記憶されたデータを取得することができる。
従って、データ読出しの遅延は生じず、必要以上に高速な伝送路を用いなくても高速な読出性能が確保される。
<直接読出処理>
上述の「CPUによるデータ読出し」では、CPU21が複写レジスタ群23からデータを読み出す場合について説明したが、CPU21は、入出力制御レジスタ群32からデータを直接に読み出すこともできる。この場合、CPU21から入出力制御レジスタ群32からデータを直接読み出す読出要求が出力される。
コントローラ222は、複写レジスタ群23からデータを読み出す通常の読出要求を受け取った場合には、上述したように、複写レジスタ群21の指定アドレスのレジスタからデータを読み出して、CPU21に供給する。一方、コントローラ222は、入出力制御レジスタ群32からデータを直接に読み出す読出要求を受け取った場合には、複写レジスタ群23からのデータの読出しは行なわずに、入出力制御レジスタ群32からデータを読み出す直接読出処理を行なう。
具体的には、コントローラ222は、入出力制御レジスタ群32のアドレスが指定された読出要求をパケット生成回路223によりパケット化してバッファ224に記憶させる。パラレルシリアル変換回路225は、バッファ224に記憶された読出要求のパケットをシリアル形式のパケットに変換して、シリアルバス40に出力する。
機器制御部30の第2通信部31において、読出要求のパケットを受信すると、受信したパケットをシリアルパラレル変換回路312によりパラレル化してバッファ313に記憶し、パケットデコード回路314により、バッファ313に記憶した読出要求のパケットをデコードして、読出要求のデータを取り出す。コントローラ311は、その読出要求に基づき、読出要求の指定アドレスが示す入出力制御レジスタ群32のレジスタからデータを読み出し、その読み出したデータをパケット生成回路316によりパケット化してバッファ317に記憶し、バッファ317に記憶したパケットをパラレルシリアル変換回路318でシリアル形式に変換して、シリアルバス40に出力する。
主制御部20の第1通信部22は、機器制御部30から送信されてきた読出データのパケットを受け取ると、シリアルパラレル変換回路226によりパラレル形式に変換し、パケットデコード回路228によりデコードしてデータを取り出し、そのデータをCPUバスインタフェース221がCPUバスを介してCPU21に供給する。
このような直接読出処理を可能に構成することで、CPU21が、入出力制御レジスタ群32のデータを直接参照したい場合にも対応可能である。
<その他>
なお、ここでは、主制御部20と機器制御部30が1つずつ設けられている場合を例に挙げて説明したが、本実施形態の制御装置10は、1つの主制御部20に対し機器制御部30が2つ設けられている場合にも対応している。その場合、それらの2つの機器制御部30の各々と、それらに共通の1つの主制御部20とがシリアルバス40を介して接続されるよう構成される。そして上記のように2つの機器制御部30双方の入出力制御レジスタ群32に対する複写が、双方合わせてもシステムクロックの一周期以内の時間で完了するように実行される。
以上、図1〜図3に示す画像形成装置1におけるデータの流れについて説明したが、1回の制御パケット(後述する)の送信毎に、受信側から送信側に返信パケットが返信される。具体的には、受信側において、受信した制御パケットに対しエラーの有/無が調べられる。エラーが有ったときはNACKコードを含む返信パケット(NACKパケット)が返信され、エラーが無く正常に受信できたときはACKコードを含む返信パケット(ACKパケット)が返信される。NACKパケットの返信を受け取ると、そのNACKパケットの受信の直前に送信した制御パケットが再送される。
ここでは以下の2つの前提を置き、その前提を越えるエラーが発生したときは、ハードウエア障害が考えられるためシステムエラーとし、画像形成装置1の全体の動作を停止するものとする。
(1)1つのパケットの送受信においてエラーが発生するのは高々1ビット化けであって、1つのパケット内で同時に複数ビットが化けることはない。ここで「1ビット化け」とは、‘1’,‘0’の1ビットの信号がそれぞれ‘0’,‘1’に変化することを言う。
(2)受信した連続する2つのパケットの双方に「1ビット化け」が発生することはない。
以下では、上記(1),(2)の前提の下で、図1〜図3に示した制御装置20における、ビット化けが発生したときの回復措置について説明する。
図4は、図1〜図3に示す第1通信部と第2通信部との間で送受信されるパケットのフレーム構成を示した図である。
図4(A)は制御パケットのフレーム構成を示している。
制御パケットは、ヘッダと、ペイロードと、CRCとから構成されている。
ヘッダは7ビットで構成されていて、ここには、後述する複数種類の制御コードのうちのいずれかの制御コードが書き込まれる。
ペイロードは、実際に送受信したいデータの中身である。このペイロードの長さは、転送量を無駄に増やすのを避けるために、制御コードの種類により異なっている。
CRCは、エラー検出符号の一種である。受信側でこのCRCが参照されてビット化け発生の有無が調べられる。
図4(B)は、制御パケットのヘッダの構成を示している。この図4(B)は返信パケットの構成の説明も兼ねている。すなわち、返信パケット(NACKパケットあるいはACKパケット)は、制御パケット(図4(A))のヘッダと同じく7ビットで構成されている。
最初の1ビット目はシンクビットである。マーク(パケットが存在しない状態)を‘0’とすると、このシンクビットは‘1’であり、パケットの開始点であることを示している。
2ビット目は、宛先を示している。図1に示す制御装置10は、1つの主制御部20と1つの機器制御部30とで構成されているが、前述の通り、1つの主制御部20に対し機器制御部30を2つ接続することが可能である。そこで、この2ビット目に‘0’または‘1’を書き込んで送受信することにより、2つの機器制御部30のいずれが受信するかが決定される。また機器制御部30から主制御部20へ送信するときも、この2ビット目に、2つの機器制御部30にそれぞれ割り当てられている‘0’または‘1’の符号が書き込まれる。これにより、主制御部20はどちらの機器制御部30から送信されてきたパケットであるかを知ることができる。
次の3〜5ビット目は、その次の6ビット目のA/Nと合わせて4ビットのコードを表わしている。コードの詳細は後述する。
7ビット目の再/Pには、制御パケットを初回に送信する際は‘0’、その制御パケットを再送する際は‘1’が書き込まれる。返信パケットのときは、パリティビットとして作用する。詳細は後述する。
図5は、各種のコードと、各コードごとの1ビット化けのパターンを示した図である。図5(A)は制御コード、図5(B)はNACKコード、図5(C)はACKコードである。
制御コード(図5(A))は、4種類存在する。制御コードの場合、4ビットの制御コードのうち1〜3ビット目のうちのいずれか2ビット以上が‘1’であり、4ビット目は常に‘0’である。
NACKコード(図5(B))は、4ビットのうちの1〜3ビット目は‘0’、4ビット目が‘1’である。
またACKコード(図5(C))は、4ビットのうちの1〜3ビット目は、NACKコードと同じく‘0’、4ビット目も‘0’である。
図5(A)に示す制御コードは4種類であるが、コードとしては同じであっても主制御部20で発行される制御パケットと機器制御部30で発行される制御パケットとではそのコードの意味が異なっている。以下、1つずつ説明する。
<主制御部発行制御コード>
・「Write Word」‘1110’は、主制御部20から機器制御部30への1ワード分のデータの書込みを指示する制御コードである。主制御部20でこの「Write Word」‘1110’の制御コードを持った制御パケットが発行されると、入出力制御レジスタ群32の、その制御パケットのペイロードに埋め込まれたアドレスのレジスタに、同じくそのペイロードに埋め込まれた1ワード分のデータが書き込まれる。
・「Write Block」‘1100’は、主制御部20から機器制御部30への4ワード分(ここでは4ワードの集合を「ブロック」と称する)のデータの書込みを指示する制御コードである。「Write Word」の1ワードが1ブロック(4ワード)に変更される点を除き、「Write Word」と同様である。
・「Read Word」‘1010’は、主制御部20から機器制御部30への1ワード分のデータの読出要求を表わしている。主制御部20でこの「Read Word」の制御コードを持った制御パケットが発行されると、機器制御部30では、その制御パケットのペイロードに埋め込まれている入出力制御レジスト群32のアドレスから1ワード分のデータが読み出されてそのデータを埋め込んだ制御パケットが発行され、その制御パケットが主制御部20に向けて送信される。尚、この機器制御部30で発行される制御パケットについては後述する。
・「Read Block」‘0110’は、主制御部20から機器制御部30への1ブロック分のデータの読出要求を表わしている。この「Read Block」は、「Read Word」の1ワードが1ブロックに変更される点を除き、「Read Word」と同様である。
<機器制御部発行制御コード>
・「IRQ」‘1110’は、割込み発生を意味する制御コードである。
・「Mirror」‘1100’は、主制御部20からのデータ読出要求を受けることなく、機器制御部30から主制御部20に向けて1ブロック分のデータを転送することを意味する制御コードである。
前述の通り、入出力制御レジスタ群32の格納データは、複写レジスタ群23に繰り返し複写される。この複写の際は1ブロック(4ワード)ずつを1つの制御パケット(前述の複写パケットに相当する)にして転送される。「Mirror」は、この処理を実行するときに発行される制御コードである。
・「Send Word」‘1010’は、主制御部20からの「Read Word」による読出要求に応じて、入出力制御レジスタ群32のうちの指定されたアドレスに格納されている1ワード分のデータを主制御部20に向けて送信することを表わす制御コードである。機器制御部30は、主制御部20で発行された「Read Word」の制御コードを持った制御パケットを受け取ると、先ずはACKパケットを主制御部20に送信する。主制御部20はこのACKパケットを受け取ると、一旦、データ受取りの処理から解放され、別の処理を実行することができる。その後、機器制御部30で「Sand Word」の制御コードを持った制御パケットが発行されて、主制御部20で、その1ワード分のデータが受信される。
・「Send Block」‘0110’は、主制御部20からの「Read Block」に対応する制御コードである。1ワードではなく1ブロックである点を除き「Send Word」と同様である。
各制御コードは4ビットで構成されているため、コード化けパターンは、図5(A)に示す通り、各制御コードにつき4通りずつ存在する。このコード化けパターンのうち、(A−1)の欄に実線で示したパターンは、4種類の正規の制御コードのいずれかと一致している。この場合、受信側では、そのコード化けした後のパターンが正規の制御コードであるとして処理される。すなわち、この場合は、そのコード化けした後のパターンを正規の制御コードと考えたときのその制御パケットのCRCに相当する領域に記録されている符号に基づいてエラーの発生の有無が調べられる。この場合、正規の制御パケットではないため、常にエラー発生を有りという結果が得られることになる。
ビット化けは、制御コードのみではなく、制御パケットのどのビットについても発生し得る。ビット化けが発生していない制御コードを持つ制御パケットを受信した場合であっても、受信側では、その制御パケットのCRCの領域が参照されて、ビット化けの有無が判定される。
図5(A)の(A−1)の欄に破線で示したパターンは、4種類の正規の制御コードでのいずれとも異なっている。この場合は、正規の制御コードではないことを持ってエラー発生有り、とされる。
図5(A)の(A−2)の欄に示したパターンも正規の制御コードの中のいずれとも異なるパターンである。ただし、このパターンは、制御コードの、常に‘0’であるべき4ビット目が‘1’にビット化けしたパターンであり、1〜3ビット目を参照することで正規の制御コードが判明する。したがって、(A−2)の欄のビット化けは、それに対応する正規の制御コードの制御パケットとして処理される。この場合も、ビット化けがあるので、CRCチェックによりエラー有りという結果が得られることになる。
図5(B)のNACKコード‘0001’および図5(C)のACKコード‘0000’は、いずれの制御コードのいずれのビット化けパターンとも異なっている。したがって制御コードにビット化けが発生してもNACKコードあるいはACKコードと混同されるおそれはない。これと同様に、以下に説明する通り、NACKコードやACKコードにビット化けが発生しても正規の制御コードのいずれとも異なるビット化けパターンである。
図5(B)のNACKコード‘0001’は、受信側でビット化けが検出された場合に受信側で発行されて送信側に返信されるNACKパケットに書き込まれるコードである。
このNACKコード‘0001’にビット化けが発生すると、図5(B)に示した4種類のビット化けパターンのいずれかになる。この4種類のビット化けパターンのうち(B−1)の欄に示した3種類のビット化けパターンは、4種類の制御コードおよびそれら4種類の制御コードのビット化けパターンのいずれとも異なるパターンであり、さらに図5(C)に示すACKコードおよびACKコードのビット化けパターンのいずれとも異なるパターンである。したがって、これら3種類のビット化けが発生してもNACKコードであることが特定される。
また図5(B)の(B−2)の欄に示したビット化けパターン‘0000’は、図5(C)に示す正規のACKコード‘0000’と同じパターンである。ただし、図4(B)を参照して説明した通り、返信パケットにはパリティビットが含まれており、NACKコードのビット化けによるパターン‘0000’か、正規のACKコード‘0000’であるかは、パリティエラーが発生しているか否かで判別される。
したがってNACKコード‘0001’については、4種類のビット化けパターンのうちのいずれのビット化けが発生してもNACKコードであることが特定される。
図5(C)のACKコード‘0000’は、制御パケットの受信側でその制御パケットにビット化けなしと判定された場合に受信側で発行されて送信側に返信されるACKパケットに書き込まれるコードである。
このACKコード‘0000’にビット化けが発生すると、図5(C)に示した4種類のビット化けパターンのいずれかとなる。この4種類のビット化けパターンのうち(C−1)の欄に示した3種類のビット化けパターンは、図4(A)に示す制御コードのビット化けパターンのうちの(A−1)の欄に破線で示したビット化けパターンのいずれかと一致する。すなわち、(C−1)の欄に示したビット化けパターンは、何のコードがビット化けしたパターンなのか不明なパターンである。この場合、上述の通り、正規のコードではないことをもってエラー発生あり、とされ、このビット化けしたACKコードを含むACKパケットの受信側、すなわち、そのACKパケットに対応する制御パケットの発行側からNACKコードが発行される。このビット化けしたACKコードを含むACKパケットが、相手側で発行された制御パケットがビット化けしたパケットかも知れないからである。
図5(C)に示す4種類のビット化けパターンのうちの(C−2)の欄に示したビット化けパターン‘0001’は、図5(B)に示す正規のNACKコード‘0001’と同じパターンである。この場合は、その返信パケットのパリティエラーの有無により、ACKコードのビット化けパターンか正規のNACKコードかが判別される。
図6は、基本通信フローを示した図である。ここでは、制御パケットを主制御部20から機器制御部30に向けて送信する場合を例に挙げて説明する。ただし、制御パケットを機器制御部30から主制御部20に向けて送信する場合も同様である。ここでは、この通信フローについて、図6とともに図1〜図3を参照しながら説明する。
主制御部20の第1通信部22を構成するパケット生成回路223で制御パケットが生成されて送信待バッファ224aに格納される。パラレルシリアル変換回路225は、その送信待バッファ224aから制御パケットを取り出して送信済バッファ224bに格納し、さらにシリアル形式に変換して(以下この点の記載は省略する)機器制御部30に送信する(図6(a))。
機器制御部30では、この制御パケットが受信され、この制御パケットについてエラー発生の有無が調べられる。ここではエラーの発生はなかったものとする。図3に示す第2通信部31のパケットデコード回路314で、先ずは、受信したパケットのコードが読み出されてコントローラ311に送られる。コントローラ311の未定義コード制御部311aには、図5を参照して説明した全ての正規コード、全てのビット化けパターンが記憶されていて、ビット化けパターンに関しては、正規のコードが一義的に判明するビット化けパターンのときは正規のコードが何であるかが認識される。今回、すなわち図6(a)の制御パケットに関しては、エラーがないことを前提としているため、コントローラ311では、今回受信した制御パケットに含まれているコードが正規の制御コードであると認識される。パケットデコード回路314では、コードに続きペイロード、CRCも取り出されてコントローラ311に送られる。コントローラ311は、CRCを参照して今回受信したパケットにビットエラーのないことを確認し、パケット生成回路316にACKパケットを生成するよう指示する。するとパケット生成回路316はACKパケットを生成して送信待バッファ317aに格納する。パラレルシリアル変換回路318は、送信待バッファ317aからACKパケットを取り出して主制御部20に向けて送信する(図6(b))。このACKパケットは送信済バッファ317bには格納されない。
主制御部20ではそのACKパケットを受信し、パケットデコード回路228でACKコードが取り出され、コントローラ222でACKコードであることが判定されて、送信済バッファ224bに格納しておいた制御パケットが消去される。
次に、主制御部20から上記と同様にして、次の制御パケットが発行されて機器制御部30に送信される(図6(c))。上記と同様に、機器制御部30のパケットデコード回路314では受信したパケットのコード等が読み出されてコントローラ311に送られる。ここでは、この受信した制御パケットにビット化けが発生していたものとする。このとき、コントローラ311で行なわれる処理は以下の複数種類が存在する。
先ずコード自体には、ビット化けは発生しておらず正規のコードが含まれていた場合について説明する。このときは、コントローラ311ではさらにこの制御パケットのCRCがチェックされ、この時点でビット化けが発生していたことが判明する。
次に、制御コードにビット化けが発生していて、そのビット化けパターンが図5(A)の(A−1)の欄に実線で示したビット化けパターンであった場合について説明する。このビット化けパターンの場合、未定義コード制御部311aでは正規の制御コードと区別がつかない。そこでコントローラ311では、正規の制御コードとしての処理が行なわれる。すなわち、その制御コードが正しい制御コードとした場合の制御パケットのCRCの領域に相当する領域にCRCが書き込まれているとして処理が実行される。その結果、エラーが存在すると判定されることになる。
制御コードにビット化けが発生していて、そのビット化けパターンが、図5(A)の(A−1)の欄に破線で示したビット化けパターンであった場合について説明する。この場合、未定義コード制御部311aでは何のコードか不明であるため、CRCチェックを行なうことなくエラーが存在すると判定される。
さらに、図5(A)の(A−2)の欄のビット化けパターンが発生していたときは、未定義コード制御部311aにおいて正規の制御コードが認識されるため、その正規の制御コードに従う制御パケットのCRCの領域が参照されてCRCチェックが行なわれ、エラーの存在が認識される。
コントローラ311は、上記のいずれかの処理により、受信した制御パケットにエラーが存在していたことを認識すると、検出フラグ311bをセットし、さらにパケット生成回路316にNACKパケットの生成を指示する。パケット生成回路316ではNACKパケットが生成されて送信待バッファ317aに格納される。パラレルシリアル変換回路318は送信待バッファ317aからNACKパケットを取り出して主制御部20に向けて送信する(図6(d))。このNACKパケットも、ACKパケットと同様、送信済バッファ317bには格納されない。
主制御部20では、そのNACKパケットを受信し、パケットデコード回路228でNACKコードが取り出されコントローラ222でNACKコードであることが判定される。ここではNACKコードが返信されてきたため、再送管理部222cの制御により、送信済バッファ224bに格納されている、出力済の制御パケットが再送信される(図6(e))。この再送信にあたっては、再送信される制御パケットのヘッダの7ビット目に再送信であることを意味する‘1’がセットされる(図4(B)参照)。この再送信された制御パケットが機器制御部30に正常に受信されると、機器制御部30の検出フラグ311bがリセットされる。そして、機器制御部30からACKパケットが返信される(図6(f))。主制御部20でこのACKパケットを受信すると、送信済バッファ224b内の、再送信された制御パケットが消去される。
仮に、この再送信された制御パケットにもエラーが発生していたときは、検出フラグ311bがセットされている状況においてエラーが再度発生したことになる。このように2回のパケットに連続してエラーが発生すると、ハードウエア障害等、重大な障害の発生と見なされ、システムエラーの処理に移行する。
尚、ここでは、制御パケットを主制御部20から機器制御部30に向けて送信する場合を例に挙げて説明したが、制御パケットを機器制御部30から主制御部20に向けて送信する場合も同様である。主制御部20の第1通信部22のコントローラ222の、未定義コード制御部222a、検出フラグ222b、および再送管理部222cと、機器制御部30の第2通信部31のコントローラ311の、未定義コード制御311a、検出フラグ311b、および再送管理部311cは、それぞれ互いに同じ作用を成す構成要素であり、機器制御部30から主制御部20に送信する場合は、上記の説明とは役割が交替することになる。
図7は、パケット受信側での処理フローを示したフローチャートである。
ここで受信することを想定しているパケットは、制御パケットおよび返信パケットの双方である。また、この処理フローは、第1通信部22および第2通信部31のいずれにも当てはまる。
先ず、図4(B)に示す3〜5ビット目のコード部と6ビット目のA/Nとからなる、4ビットのコードがデコードされて取り出される(ステップS01)。そしてその取り出されたコードが定義済の正常なコード(図5(A)〜(C)の「ビット列」の欄に記載された6種類のコードのいずれか)であるか否かが判定される(ステップS02)。尚、ここでは、ビット化けが発生し、その結果その6種類の正常なコードのいずれかと同一のパターンが生成された場合にも、コード自体は正常なコードであると判定される。また、図5(A)の(A−2)の欄に示すビット化けパターンの場合、ビット化けを生じた制御コードが特定できるため、ここでは正常なコードであると判定される。
正常なコードであると判定されると、次にそのコードが制御コード(図5(A))であるか、ACKコードあるいはNACKコード(図5(B),(C))であるかが判定される(ステップS03)。そして制御コードであったときは、次にCRCチェックが行なわれ(ステップS04)。そしてCRCエラーの有無に応じて(ステップS05)、CRCエラーがなかったときはACKパケットが返信され(ステップS06)、CRCエラーがあったときはNACKパケットが返信される(ステップS07)。このステップS01〜S06,S07の処理は、制御パケットを受信し、その制御パケットのヘッダに記録されている制御コードが上記の意味で正常だったときの処理である。すなわち、この処理には、図5(A)の(A−1)欄に実線で示したビット化けが発生し、そのビット化けにより元々の制御コードとは異なるものの正常な制御コードと同一のビット化けパターンが発生した場合、および(A−2)の欄の、正しい制御コードが特定できるビット化けパターンが発生した場合も含まれる。ただし、これらの場合はCRCエラーとなり、ステップS07に進み、NACKパケットが返信されることになる。
ステップS03において、今回受信したパケットのコードが制御コードではなく、ACKコードもしくはNACKコードであると判定されたときは、次に送信済バッファ(図2の送信済バッファ224b,図3の送信済バッファ317b)にパケットが存在するか否かが判定される(ステップS08)。ACKパケットあるいはNACKパケットを受信したということは、通常は、その直前に自らが送信側となって制御パケットを送信していて、その制御パケットが送信済バッファに格納されているはずである。ところが、自らが制御パケットの受信側となってACKパケットを返信したとき、そのACKパケットにエラーを生じて受信側に受信され、そのビットエラーを生じたACKパケットに対するNACKパケットが再返信されることが有り得る。この場合、このステップS08で送信済バッファを確認し、その送信済バッファにパケットが存在するか否かにより、上記の状況が発生したか否かを判定している。但しこれは、ACKパケットを返信したことに対するNACKパケットを受信した場合であるが、これとは別に、送信済バッファにパケットが存在しないにも拘らずACKパケットを受信する事態も発生し得る。この点については図8を参照して後述する。
ACKパケットあるいはNACKパケットを受信し、かつ送信済バッファにパケットが存在しない場合は、ACKパケットの再送処理が行なわれる(ステップS09)。NACKパケットあるいはACKパケットを受信して送信済バッファにパケットが存在しなかったときは、ACKパケットを再送信することで、そのACKパケットの受信側(元々の制御パケットの送信側)における、ACKパケットを受信したときに行なわれる処理(ACKパケット受信側の送信済バッファからの制御パケットの消去等)が完結する。
ステップS08において、送信済バッファにパケットが存在する旨、判定されると、次はパリティエラーの有無が判定される(ステップS10)。パリティエラーがなく、正常なACKパケットあるいは正常なNACKパケットであったときは、次にそのパケットがACKパケットであるかNACKパケットであるかが判定される(ステップS11)。そしてACKパケットであったときは、送信済バッファに格納されている制御パケットの消去等のACK受信処理が行なわれる(ステップS12)。また、NACKパケットであったときは、送信済バッファに格納さている制御パケットの再送処理等のNACK受信処理が行なわれる(ステップS13)。
一方、ステップS10においてパリティエラーがあった旨、判定されると、ACKコードとNACKコードが入れ替わっていることになるため(図5(B)の(B−2)欄および図5(C)の(C−2)欄参照)、NACKコードのときはACK受信処理、ACKコードのときはNACK受信処理が行なわれる(ステップS14)。
ステップS02において未定義コードであると判定されると、その未定義コードが図5(B)の(B−1)欄に示した3つのビット化けパターンのいずれかであるか否かが判定される(ステップS15)。これら3つのビット化けパターンは、NACKコード‘0001’のビット化けパターンであることが一義的に判明するパターンであるため、送信済バッファに格納しておいた制御パケットの再送処理等のNACK受信処理が行なわれる(ステップS16)。一方、ステップS15で、それらの3つのビット化けパターン以外のビット化けパターンであると判定されると、NACKパケットが送信される(ステップS17)。このときは、図5(A)の(A−1)欄に破線で示した制御コードのビット化けパターンであるか、図5(C)の(C−1)欄に示したACKコードのビット化けパターンとの区別がつかないため、一律にNACKパケットを送信することになる。
尚、この図7の処理フローでは検出フラグ(図2の検出フラグ222b、図3の検出フラグ311b)のセット、リセットについての説明は省略したが、何らかのビット化が発生したパケットを受信したときに検出フラグがセットされ、次にビット化けのないパケットを受信するとリセットされる。検出フラグがセットされていて、次に受信したパケットにもビット化けが発生していたときは、システムエラーとなる。
図8は、ACKコードにビット化けが生じたときのパケット送受信シーケンスの、稀なケースを示した図である。ここでは、このパケット送受信シーケンスを例に挙げて、送信済バッファにパケットが存在しないときにACKパケットを受信する場合もあり、この場合にもACKパケットを再送信する(図7、ステップS09)必要があることを説明する。
(1)先ず、第1通信部22から第2通信部31に向けて制御パケットAが送信される。このとき、第1通信部22では送信済バッファにその制御パケットが格納される。
(2)この制御パケットAは第2通信部31で正常に受信され、第2通信部31から第1通信部22にACKパケットが返信される(図7、ステップS06)。ところが、このACKパケットにビット化け(図5(C)の(C−1)欄のいずれかのビット化けパターン)が発生し、そのビット化けしたACKパケットが第1通信部22で受信されたものとする。
(3)そのビット化けしたACKパケットに対しては(4)のNACKパケットが返信されるが、ここでは、そのNACKパケットの返信よりも先に、第2通信部31から第1通信部22に向けて制御パケットBが送信されている。このとき、第2通信側31の送信済バッファに制御パケットBが格納される。
(4)第1通信部22では、(2)のACKパケットが化けたことによる未定義コードが検出されて検出フラグがセットされ、さらに第2通信部31に向けてNACKパケットが返信される(図7、ステップS17)。
(5)NACKパケットの返信は(3)の制御パケットBの送信よりも遅れて行なわれていたため、第2通信部31ではそのNACKパケットが(3)の制御パケットBの送信に対して返信されたNACKパケットであるとみなされ、第2通信部31では制御パケットB(再送)が送信される。
(6)第1通信部22では、(3)の制御パケットBの受信が正常であったため検出フラグがリセットされてACKパケットが返信される。第2通信部31では、このACKパケットが(5)の制御パケットB(再送)に対して返信されてきたACKパケットであると見做されて、第2通信部31の送信済バッファがクリアされる。
(7)第1通信部22では、(5)の制御パケットB(再送)に対するACKパケットの返信が行なわれる。
(8)第2通信部31では、このACKパケットを受信したとき送信済バッファが空であったため(図7、ステップS08)、ACKパケットが再送信される(図7、ステップS09)。第1通信部22では、このACKパケットを受信して送信済バッファがクリアされる。仮に、この(8)のACKパケットの再送信を行なわないと、(2)のACKパケットにビット化けが生じていたため、第1通信部22における送信済バッファのクリア等、ACKパケットを受信したことに伴う処理が未処理のまま残ってしまうことになる。
このように、ACKパケットを受信したときであっても、送信済バッファにパケットが存在しなかったときは(図7、ステップS08)、ACKパケットを再返信することで(図7、ステップS09)、処理が完結する。
図9は、図7に示したパケット受信側の処理フローの変形例を示したフローチャートである。図7のフローチャートとの相違点のみ説明する。
この図9のフローチャートでは、図7のフローチャートにおけるステップS14が省かれていて、パリティエラーが存在していたとき(ステップS10)は、ACKコード/NACKコードに拘らずNACK受信処理(該当する制御パケットの再送等)が行なわれている。これは、1ビットエラーの範囲内ではあるがエラーという異常があったことと、ACKパケットを受信した場合に制御パケットを再送しても問題はないことから、ここでは、パリティエラーがあったことをもって一律にNACK受信処理を実行している。
尚、ここでは、本発明の通信装置および制御装置を画像形成装置に適用した例について説明したが、本発明の通信装置および制御装置は画像形成装置にのみ適用されるものではなく、他の装置の制御に適用してもよい。また、本発明の通信装置は制御装置にのみ適用されるものではなく、一般の通信用としても広く適用することができる。
1 画像形成装置
10 制御装置
20 主制御部
21 CPU
22 第1通信部
23 複写レジスタ群
229,315 アドレスカウンタ
30 機器制御部
31 第2通信部
32 入出力制御レジスタ群
33 駆動・受信回路
40 シリアルバス
50 機器
221 CPUバスインタフェース
222,311 コントローラ
222a,311a 未定義コード制御部
222b,311b 検出フラグ
222c,311c 再送管理部
223,316 パケット生成回路
224,227,313,317 バッファ
224a,317a 送信待バッファ
224b,317b 送信済バッファ
225,318 パラレルシリアル変換回路
226,312 シリアルパラレル変換回路
228,314 パケットデコード回路

Claims (8)

  1. 互いを通信相手としてパケット通信を行なう第1通信部および第2通信部を備え、該第1通信部および該第2通信部のそれぞれが、
    複数種類の制御コードのうちのいずれかの制御コードが記録されたヘッダと、ペイロードと、該ヘッダと該ペイロードとの双方を符号化対象とするエラー検出符号とを有する制御パケットを生成して通信相手に向けて送信する送信部と、
    通信相手から送信されてきた制御パケットを受信して該制御パケットのエラーの有無を調べ、前記送信部に、前記制御コードと同一のビット長からなるNACKコードおよび前記制御コードと同一のビット長からなるACKコードのいずれか一方を記録した、前記ヘッダと同一ビット長の返信パケットの送信を依頼する受信部とを備え、
    前記送信部がさらに、前記受信部からの依頼に応じて、前記返信パケットを生成して通信相手に向けて送信し、
    前記受信部がさらに、通信相手から送信されてきた返信パケットを受信するものであって、
    前記複数種類の制御コードのいずれもが1ビットエラーが発生しても前記NACKコードおよび前記ACKコードのいずれとも異なるエラーコードが発生するコードであって、かつ前記NACKコードおよび前記ACKコードのいずれもが1ビットエラーが発生しても前記複数種類の制御コードのいずれとも異なるエラーコードが発生するコードであるとともに、該NACKコードおよび該ACKコードが、1ビットエラーを生じたときにそれぞれACKコードと同一のエラーコードおよびNACKコードと同一のエラーコードとなることがあるコードであり、
    前記返信パケットが、NACKコードおよびACKコードのいずれか一方のコードとパリティビットとを含むパケットであって、
    前記受信部が、受信した前記制御パケットのヘッダに、前記複数種類の制御コードのうちのいずれか、あるいは制御コードの種類が判明するエラーコードが含まれていたときは、当該制御パケットの前記エラー検出符号あるいは該エラー検出符号に相当する領域に記録されている符号に基づき、エラーの有無に応じてそれぞれNACKコードあるいはACKコードを記録した返信パケットを返信し、
    受信した前記制御パケットのヘッダに、制御コードの種類が不明なエラーコードが含まれていたときは、該不明なエラーコードが含まれていたことをもってNACKコードを記録した返信パケットを返信するものであることを特徴とする通信装置。
  2. 前記NACKコードが記録された返信パケットは、該NACKコードに1ビットエラーが生じた場合であってもエラーを生じたNACKコードであることが必ず判明する形式の、パリティビットを含む返信パケットであって、
    前記受信部は、受信した返信パケットにNACKコードあるいはNACKコードであると判明するエラーコードが含まれていたときに、前記送信部に、当該返信パケットに対応する制御パケットを再送させるものであることを特徴とする請求項1記載の通信装置。
  3. 前記ACKコードが、1ビットエラーが発生したときに、前記複数の制御コードのうちのいずれかの制御コードに1ビットエラーが発生したときのエラーコードと同一のエラーコードとなることがあるコードであって、
    前記受信部は、受信した返信パケットに、該同一のエラーコードが含まれていたときに、前記送信部に、NACKコードを含む返信パケットを再返信させるものであることを特徴とする請求項1又は2記載の通信装置。
  4. 前記受信部は、NACKコードあるいはACKコードを含む返信パケットを受信した場合において該返信パケットに対応する制御パケットが存在しないときは、前記送信部に、ACKコードを記録した返信パケットを再返信させるものであることを特徴とする請求項1から3のうちいずれか1項記載の通信装置。
  5. 前記受信部は、受信した返信パケットにパリティエラーが発生し、かつNACKコードあるいはACKコードと同一のコードが含まれていたときは、前記送信部に、当該返信パケットに対応する制御パケットを再送させるものであることを特徴とする請求項4記載の通信装置。
  6. 前記返信パケットが、前記制御パケットのヘッダのビット長に対応したビット長のパケットであることを特徴とする請求項1から5のうちのいずれか1項記載の通信装置。
  7. 請求項1から6のうちのいずれか1項記載の通信装置を備えて被制御機器の動作を制御する制御装置であって、
    前記被制御機器の状態を認識して該被制御機器を制御するための指令を発する中央処理装置と、前記通信装置のうちの前記第1通信部とを備えた主制御部と、
    前記通信装置のうちの前記第2通信部を備え、前記主制御部と前記被制御機器の双方に接続されて、前記中央処理装置から発せられ前記通信装置により送信されてきた指令に基づいて前記被制御機器の動作を制御するとともに該被制御機器の状態を該通信装置により前記主制御部に送信する機器制御部とを備えたことを特徴とする制御装置
  8. 請求項7記載の制御装置と、前記機器制御部に接続された、画像を形成する被制御機器とを備えたことを特徴とする画像形成装置
JP2013216153A 2013-10-17 2013-10-17 通信装置、制御装置、および画像形成装置 Active JP6260189B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013216153A JP6260189B2 (ja) 2013-10-17 2013-10-17 通信装置、制御装置、および画像形成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013216153A JP6260189B2 (ja) 2013-10-17 2013-10-17 通信装置、制御装置、および画像形成装置

Publications (2)

Publication Number Publication Date
JP2015080091A JP2015080091A (ja) 2015-04-23
JP6260189B2 true JP6260189B2 (ja) 2018-01-17

Family

ID=53011183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013216153A Active JP6260189B2 (ja) 2013-10-17 2013-10-17 通信装置、制御装置、および画像形成装置

Country Status (1)

Country Link
JP (1) JP6260189B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6787318B2 (ja) * 2015-07-31 2020-11-18 ソニー株式会社 データ伝送装置およびデータ伝送方法、受信装置および受信方法、プログラム、並びにデータ伝送システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040206A (ja) * 1996-07-26 1998-02-13 Matsushita Electric Ind Co Ltd データ通信装置
JP2000032055A (ja) * 1998-07-16 2000-01-28 Toshiba Corp 情報データ多重化伝送システム
JP2005129008A (ja) * 2003-09-29 2005-05-19 Sharp Corp ホスト側コントローラ,usbシステム,通信コントローラ,パケット通信方法,パケット通信プログラムおよび記録媒体
JP5102005B2 (ja) * 2007-12-12 2012-12-19 関東精機株式会社 工作機械の温度制御装置
JP5375230B2 (ja) * 2009-03-17 2013-12-25 株式会社Jvcケンウッド 通信システム、及び通信方法
JP5733899B2 (ja) * 2010-02-25 2015-06-10 三菱電機株式会社 メディア分離装置

Also Published As

Publication number Publication date
JP2015080091A (ja) 2015-04-23

Similar Documents

Publication Publication Date Title
TW583841B (en) Methodology for detecting lost packets
US9201623B2 (en) Control device and image forming apparatus with two controllers
US9389939B2 (en) Information processing apparatus with error verification including error processing or transferring again based on a code coinciding with codes defined by an interface communication standard
US10516789B2 (en) Information processing apparatus and image processing apparatus that perform transmission and reception of data, and method of controlling information processing apparatus
JP5256855B2 (ja) データ転送装置、データ転送方制御方法
JP2006285378A (ja) データ転送装置
JP2005202956A (ja) 破損データを処理する方法
JP6260189B2 (ja) 通信装置、制御装置、および画像形成装置
JPWO2009050761A1 (ja) ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法及びそのプログラム
JP6876235B2 (ja) 電子装置及び画像処理装置
JP6136754B2 (ja) 通信制御装置及び画像形成装置
JP2014082578A (ja) 通信パケットを用い送信装置と受信装置を有する全二重通信装置及びその通信方法
JP6107499B2 (ja) 通信制御装置及び画像形成装置
CN112217611A (zh) 用于实现混合自动重复请求过程的系统和方法
JP6217206B2 (ja) 通信制御装置、画像処理装置、転送制御プログラム
JP5913454B2 (ja) 制御装置、第1制御装置、第2制御装置、画像形成装置
JP5713136B2 (ja) 制御装置、第1制御装置、第2制御装置、画像形成装置
TWI242716B (en) Method for processing interference of noise
JP6163941B2 (ja) 制御装置及び画像形成装置
US20160139860A1 (en) Communication system, image forming apparatus and communication method
JP2017204738A (ja) データ送信装置、データ受信装置、データ送受信方法、及び情報処理装置
JP2004349783A (ja) 移動体通信方法及びシステム
JP3867762B2 (ja) 復号化装置
JP6213003B2 (ja) 通信制御装置、画像処理装置、通信制御プログラム
JP2015037281A (ja) 通信装置、制御装置、及び通信処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171127

R150 Certificate of patent or registration of utility model

Ref document number: 6260189

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350