JP2014007695A - カスケード接続による通信システム及び通信装置 - Google Patents

カスケード接続による通信システム及び通信装置 Download PDF

Info

Publication number
JP2014007695A
JP2014007695A JP2012143966A JP2012143966A JP2014007695A JP 2014007695 A JP2014007695 A JP 2014007695A JP 2012143966 A JP2012143966 A JP 2012143966A JP 2012143966 A JP2012143966 A JP 2012143966A JP 2014007695 A JP2014007695 A JP 2014007695A
Authority
JP
Japan
Prior art keywords
communication
data
communication device
control unit
stage
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.)
Granted
Application number
JP2012143966A
Other languages
English (en)
Other versions
JP5968119B2 (ja
JP2014007695A5 (ja
Inventor
Daisuke Morikawa
大輔 森川
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2012143966A priority Critical patent/JP5968119B2/ja
Priority to US13/897,019 priority patent/US8966354B2/en
Publication of JP2014007695A publication Critical patent/JP2014007695A/ja
Publication of JP2014007695A5 publication Critical patent/JP2014007695A5/ja
Application granted granted Critical
Publication of JP5968119B2 publication Critical patent/JP5968119B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/21Pc I-O input output
    • G05B2219/21028Address of module determined by position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/21Pc I-O input output
    • G05B2219/21039Slaves, modules in daisy chain, each handles control data, transmits to next
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4637Interconnected ring systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】複数の通信装置をカスケード接続した通信システムにおいて、宛先の通信装置まで適切に通信パケットを送信することができるようにする。
【解決手段】メイン制御部101は、自身からみてn段先の他の通信装置宛の情報を発信する際に、n段までの残段数と上記情報とを含む通信データに対する誤り判定コード(CRC)を作成し、このCRCを通信データと共に前段サブ制御部111へ送信する。前段サブ制御部111は、受信した通信データに対するCRCを作成し、受信したCRCと比較する。一致するときは、残段数により上記情報が自身宛のものかどうかを判定する。自身宛のものでない場合は残段数を1段減らした新たな通信データと、この新たな通信データに対するCRCとを作成し、作成したCRCを、新たな通信データと共に第3通信装置121へ送信する。各サブ制御部111,121は、自身宛の通信データかどうかは、残段数をみれば良い。
【選択図】図1

Description

本発明は、複数の通信装置がカスケード接続された通信システムに関する。
例えば、電子写真方式を採用する画像形成装置の制御には、メイン制御部による集中制御方式が採用されていることが多い。しかし、このような画像形成装置では、制御の一点集中のためにメイン制御部が備えるCPU(Central Processing Unit)にかかる負荷が増大する。そのため、パフォーマンス低下を防止する観点から、メイン制御部には、できるだけ高性能のCPUが必要となっていた。
最近は、画像形成装置における負荷の増大に伴い、制御系統を分散し、メイン制御部を中心として、負荷ユニットに設けられた複数のサブ制御部との協働で、画像形成処理を分散制御することも行われている。この場合、メイン制御部から物理的に離れた複数のサブ制御部まで制御通信束線を引き回す必要があり、束線コストも増加する傾向にある。
そのため、画像形成装置を構成する複数の制御部を、それぞれサブCPU、あるいは、ASIC(Application Specific Integrated Circuit)に分割し、分散制御することも行われている。分散制御を行う場合、CPU間、あるいは、CPUとASIC間、または、ASICとASIC間のデータのやり取りにシリアル通信が適用されることが多い。また、データのやり取りにおいては、通信パケットが用いられることが多い。
シリアル通信で使われる通信線に着目しても、単純にメインCPUとサブCPU(ASICを含む。以下、サブCPUと記載する場合、ASICをも含めるものとする。)間で1対1に対応させると、サブCPUの個数だけ通信線が増加する。そこで、複数のサブCPUをカスケード接続し、後段のサブCPUに対する通信を前段のサブCPUが中継することで、通信線の使用を最低限に抑えた、カスケード接続による通信システムが提案されている。
例えば、特許文献1には、通信制御装置を搭載した装置からみた場合のカスケード接続先の装置の相対アドレスを決定し、この相対アドレスを用いてカスケード接続先の装置との通信を行う通信システムが開示されている。この通信システムでは、マスター側であるメインCPUと、スレーブ側であるサブCPUとの間で通信を行う。その際、メインCPUと、スレーブ側のサブCPUの後段に接続されるサブCPU(メインCPUからみた場合、カスケード接続先のサブCPU)との間でも通信を行う。このような通信形態では、通信線を共有することができるため、通信線の数と長さを最小限に抑えられるという利点がある。
特許文献2に開示された通信システムでは、メインCPUが、カスケード接続された最終端に位置するサブCPUまでのカスケード段数を判定する。具体的には、サブCPUが通信パケット内のID番号(自身への通信と認識するための番号)に「+1」したID番号をカスケード接続先へと順次転送していく。最終端に位置するサブCPUが所定時間以上カスケード接続先から応答がない場合は、自身が最終端のCPUと判断する。そして、自身が最終端であることを示すIDを通信パケットに含め、前段のサブCPU群を経由して、メインCPUに向けてデータを送信する。これにより、メインCPUが最終端までのカスケード段数を把握することができる。そして、以降は、メインCPUはどの段数のサブCPUに対して通信すべきかが分かることとなる。
特開平11−321027号公報 特開2002−44089号公報
しかしながら、カスケード接続を前提とする従来の通信システムでは、通信線へのノイズの混入等により、通信パケットに含まれるデータに歪みが生じることがある。このデータの歪みは、処理が正確に行えなくなる等の問題の原因となる。
例えば、特許文献1での相対アドレスを指定する箇所、特許文献2でのIDを指定する箇所にそれぞれノイズが重畳した場合を想定する。ノイズの重畳により、相対アドレス、あるいは、IDが誤って解釈される場合がある。その結果、本来はメインCPUに直接接続されるサブCPUへの通信が、誤ってカスケード接続された別のサブCPUへ行われてしまうことがある。それに加え、本来必要とされる通信が行われないため、システム全体の動作が、異常終了してしまう場合もある。
このようなノイズに対する通信品質を確保する手段として、通信パケットに含まれるデータの誤りを検知する方式が存在する。例えば、通信パケットの最終フレーム位置にCRC(Cyclic Redundancy Check:巡回冗長検査コード)やチェックサムを付加する手法である。しかし、CRCやチェックサムを付加しても、カスケード接続による通信の場合、以下のような特有の問題が残る。
すなわち、通信パケットを受信したサブCPUにおいて、データの誤りチェックのために通信パケットの全てをバッファした後に、カスケード接続先へと通信パケットを転送すると、バッファの時間だけ転送が遅れることになる。そして、そのような処理がカスケード接続された各サブCPUで行われると、カスケード接続の段数分だけ、実効的な通信ボーレートが低減することになる。
この通信ボーレートの低減を最小限にするために、メインCPUからの通信パケットを前段のサブCPUが受信している最中に、後段のサブCPUへと通信パケットの転送を開始する方法も提案されている。しかし、この場合は、前段のサブCPUでCRCを検証し、必要に応じてCRCを再計算するよりも前に、通信パケットの転送が行われてしまう。そのため、後段のサブCPUでは、有効なCRCによるデータ誤り検知が不可能となる。
本発明は、複数の通信装置をカスケード接続した通信システムにおいて、宛先の通信装置まで適切に通信パケットを送信することができるようにすることを課題とする。
上記の課題を解決するため、本発明は、複数の通信装置がカスケード接続された通信システム及び通信装置を提供する。
本発明の通信システムは、自身からみてn段(nは自然数)先の他の通信装置宛の情報を発信する第1通信装置が、前記n段までの残段数と前記情報とを含む通信データに対する誤り判定コードを作成する。そして、この誤り判定コードを前記通信データと共に次段の第2通信装置へ送信する。
また、前記第2通信装置が、前記第1通信装置より受信した通信データに対する誤り判定コードを作成し、この誤り判定コードを受信した誤り判定コードと比較する。一致するときは、当該通信データに含まれる残段数により前記情報が自身宛のものかどうかを判定する。自身宛のものでない場合は前記残段数を1段減らした新たな通信データと、この新たな通信データに対する誤り判定コードとを新たに作成し、作成した誤り判定コードを、前記新たな通信データと共に次段の第3通信装置へ送信する。
本発明の通信装置は、それぞれカスケード接続される複数の通信装置の初段となる通信装置であって、通信制御手段、バッファ部、処理手段、及びデータ変換手段を備える。
通信制御手段は、次段の通信装置との間でシリアル通信を行う。バッファ部は送信バッファ及び受信バッファを有する。
処理手段は、自身からみてn段(nは自然数)先の通信装置宛の情報と、前記n段までの残段数と、前記n段先の通信装置宛の情報及び残段数を含む通信データに対する誤り判定コードとを作成する。そして、作成した通信データ及び誤り判定コードを前記送信バッファに保持させるとともに、前記受信バッファに保持されている前記n段先の通信装置からの情報に対する所定の処理を実行する。
データ変換手段は、前記送信バッファに保持されている通信データ及び誤り判定コードをシリアルデータに変換し、変換したシリアルデータを前記通信制御手段を通じて次段の通信装置に向けて送信する。また、前記次段の通信装置から前記通信制御手段を通じて受信したシリアルデータをパラレルデータに変換し、変換したパラレルデータを前記受信バッファに保持させる。
本発明の他の通信装置は、それぞれカスケード接続される複数の通信装置の初段以外の通信装置であって、通信制御手段、バッファ部、処理手段、第1及び第2データ変換手段を備える。通信制御手段は、前段の通信装置及び後段の通信装置との間でシリアル通信を行う。バッファ部は送信バッファ及び受信バッファを有する。
処理手段は、前段の通信装置より誤りコードと共に受信した通信データに対する誤り判定コードを作成するとともに、この誤り判定コードと受信した誤り判定コードとを比較する。一致した場合は、当該前段の通信装置からみてm段(mは自然数)先の通信装置宛の情報と共に前記通信データに含まれるm段までの残段数に基づき、自身が送信先であるか否かを判定する。自身宛のものでない場合は前記残段数を1段減らした新たな通信データと、この新たな通信データに対する誤り判定コードとを新たに作成する。そして、作成した誤り判定コードを、前記新たな通信データと共に前記送信バッファに保持させるとともに、前記m段先の通信装置からの情報が受信されたときは当該情報を前記受信バッファに保持させる。
第1データ変換手段は、前記送信バッファに保持されている通信データ及び誤り判定コードをシリアルデータに変換し、変換したシリアルデータを前記通信制御手段を通じて次段の通信装置に向けて送信する。また、前記次段の通信装置から前記通信制御手段を通じて受信したシリアルデータをパラレルデータに変換し、変換したパラレルデータを前記受信バッファに保持させる。
第2データ変換手段は、前記受信バッファに保持されている前記次段の通信装置より受信したパラレルデータをシリアルデータに変換し、変換したシリアルデータを前記通信制御手段を通じて前段の通信装置に向けて送信する。
本発明では、カスケード接続された各通信装置が、受信した通信データの発信元から送信先である通信装置までの残段数を参照するだけで、自身への通信なのか、他の通信装置宛の通信データなのかの判定が可能となる。しかも、受信した通信データの誤りがある場合は、そのことを各段での受信時点で確認することができるため、誤った通信データが拡散される事態を回避することができる。
本発明を適用した通信システムの実施の形態例を示す構成図。 シリアル通信I/Fの内部構成図。 送信バッファへ書き込むときの通信パケット構成例を示す図。 受信バッファから読み出す際の通信パケット構成例を示す図。 通信パケットのコマンド(CMND)のデータ構造例を示す図。 前段サブ制御部111の動作手順説明図。 通信パケットの送受信タイミングの説明図。 自動送信パケットの送受信タイミングの説明図。 自動送信パケットの調整のシーケンス説明図。 自動送信パケットを保持するバッファの説明図。 後段サブ制御部における自動送信パケットの調停動作の手順説明図。
以下、本発明の実施の形態例を説明する。
[通信システムの構成]
図1は、本実施形態にかかる通信システムの構成例を示す図である。
本実施形態の通信システムは、それぞれ隣合うものと相互にシリアル通信が可能となるように、メイン制御部101と前段サブ制御部111と後段サブ制御部121とをカスケード接続した通信システムとして構成される。メイン制御部101は、例えば画像形成装置における全体的な動作制御を司るメイン制御ユニットに搭載され、各サブ制御部111,121は、画像形成装置の画像形成ユニットあるいは搬送機構等に搭載されるサブ制御ユニットに搭載される。
各制御部101,111,121は、通信に関しては同一の機能を備えており、相互の通信には、二線式の調歩同期式(UART)シリアル通信を採用して、パケット単位でデータを送受信する。このようなカスケード接続を採用することで、メイン制御部101と前段サブ制御部111との間の通信線を後段サブ制御部121のために共有することができる。そのため、線材や通信線のコネクタのコスト低減に有益となる。
なお、図1の例では、前段サブ制御部111と後段サブ制御部121の2段の接続としたが、これ以上のサブ制御部が接続される構成であっても良い。
メイン制御部101は、各サブ制御部111、121の動作状態を監視するとともに、各サブ制御部111、121に指示を与える動作の主体となる。メイン制御部101からは、前段サブ制御部111、あるいは、後段サブ制御部121に対して、シリアル通信を介して指示を与えることができる。後段サブ制御部121に指示を与える場合には、前段サブ制御部111を経由することになる。
メイン制御部101は、所定のコンピュータプログラムを実行して周辺装置を使用しながら種々のデバイスを制御したり、後述する通信データの生成、誤り検出コードの生成、その他の処理を実行するCPU102を備える。また、ROM(Read Only Memory)104、RAM(Random Access Memory)105を備えている。ROM104には、CPU102が読取可能なデータやコンピュータプログラムが保持される。RAM105は、CPU102のワーク用のメモリとして用いられる。
メイン制御部101は、また、前段サブ制御部111との間のシリアル通信を制御するシリアル通信I/F(Inter face)103を備えている。
メイン制御部101は、さらに、WDT(Watch dog timer)106、IRQ(Interrupt ReQuest)107、ポート108、タイマ109を備えている。WDT106は、CPU102の動作状態を監視する。IRQ107は、必要に応じてCPU102の処理の中断を促し、処理を切り替えるための割り込み要因を受け付ける。ポート108は、複数の汎用入出力ポートを有する。タイマ109は、モータ駆動信号などを生成するための高速周期割り込みを発生する。
前段サブ制御部111と後段サブ制御部121は、通信機能に関してはメイン制御部101と同じなので、共通する部分についての説明を省略する。ただし、本発明はCPU102が同じものに限定されるわけではなく、特にシリアル通信I/F103と同等の機能が各サブ制御部111,121において実現されれば良い。
次に、図2を参照して、シリアル通信I/F103について説明する。
シリアル通信I/F103は、カスケード接続された他の制御部との間でシリアル通信を行う際の通信制御手段として機能するものである。
シリアル通信I/F103は、データカウント部201、クロック生成部202、送信バッファと受信バッファを内部に持つバッファ部204を備えている。また、PS(パラレル−シリアル)変換部205,207、SP(シリアル−パラレル)変換部206,208、バッファコントローラ209を備えている。このシリアル通信I/F103は、CPUバス203を介して、CPU102等との間で、データ、コマンドその他の情報の受け渡しを行う。
PS変換部205,207は、入力されたパラレルデータをシリアルデータに変換し、変換したシリアルデータを、バッファコントローラ209を介してバッファ部204の送信バッファに保持させる。SP変換部206,208は、入力されたシリアルデータをパラレルデータに変換し、変換したパラレルデータを、バッファコントローラ209を介してバッファ部204の受信バッファに保持させる。いずれも、個別にデータ送受信とデータ転送レートの設定が可能である。
データカウント部201はバッファ部204内に保持されている送信待ちデータの数をカウントする。クロック生成部202はデータカウント部201からバッファ部204に保持されている送信待ちデータ数を受け取り、クロック生成を行う。
バッファコントローラ209は、バッファ部204の送信バッファに保持されている各種情報を、PS変換部205,207へと転送する制御、あるいは、SP変換部206,208で変換された情報をバッファ部204の受信バッファへ転送する制御を行う。
図2を参照し、メイン制御部101と前段サブ制御部111との間のシリアル通信における、シリアル通信I/F103の動作について説明する。
なお、前段サブ制御部111と後段サブ制御部121との間の通信の動作も、メイン制御部101と前段サブ制御部111との間の通信の動作と同じである。
シリアル通信I/F103のバッファ部204内の送信バッファには、メイン制御部101のCPU102からCPUバス203を介して送信用の情報が書き込まれる。この情報が上述した送信待ちデータとなる。送信待ちデータは、PS変換部205に読み出され、PS変換後に前段サブ制御部111のシリアル通信/F113に向けて送信される。
前段サブ制御部111のシリアル通信/F113からの受信データは、SP変換部206によってSP変換された後にバッファ部204の受信バッファへと格納される。格納された受信データは、CPU102によってCPUバス203を介してリードされる。
データカウント部201は、CPUバス203からバッファ部204に送信待ちデータが書き込まれる度に、1カウントアップする。また、PS変換部205へ送信待ちデータが読み出される度に1カウントダウンする。このようにして、送信待ちデータの数を計測する。
同様に、データカウント部201は、SP変換部206でシリアルデータに変換され、バッファ部204の受信バッファに保持される度に1カウントアップする。また、CPUバス203を通じてバッファ部204の受信バッファが読み出される度に1カウントダウンする。
クロック生成部202はデータカウント部201からバッファ部204に保持されている送信待ちデータの数を受け取り、受け取ったデータ数に応じてクロック生成を行う。具体的には、データ数に応じて分周カウンタの最大値を切り替える。この分周カウンタは、シリアル通信時のデータの1ビット幅を送信するのに要するカウント数を決定するためのものである。つまり、送信待ちデータの数が多い場合には、通信ボーレートを上げるべく分周カウンタ値を小さくすることで、1ビット送信に要する時間を短くする。結果として、送信バッファ内の送信待ちデータを早く減らすことができるようになる。
次に、送信待ちデータの出力タイミングについて説明する。本実施形態では、シリアル通信I/F103へ入力されるシステムクロックでカウントアップするカウンタを用い、送信待ちデータの1ビット分を生成できるカウント値までのクロックをカウントする。その後、カウンタを「0」クリアし、再び所定カウント値までカウントする動作を繰り返すことで、PS変換部205へのデータ出力タイミングを作り出している。
次に、メイン制御部101とカスケード接続された後段サブ制御部121との間のシリアル通信形態について説明する。
メイン制御部101と後段サブ制御部121との間の通信は、前段サブ制御部111のシリアル通信I/F113を中継して行う。そのため、ここでは、前段サブ制御部111の動作、特に、前段サブ制御部111が備えるシリアル通信I/F113の動作を中心に説明する。
前段サブ制御部111のシリアル通信I/F113の構成は、図2に示したメイン制御部101が備えるシリアル通信I/F103と同様である。そのため、同様の構成要素については、図2と同じ符号を用いて説明を省略する。
前段サブ制御部111は、メイン制御部101((シリアル通信I/F103)からパケット化された通信データ(以下、「通信パケット」と称する。)を受信し、受信した通信パケットをSP変換部206でパラレルデータに変換した後、バッファ部204の受信バッファにこれを保持させる。その後、CPU112で後述するデータ書き換え等を行った後、書き換えられた通信パケットをPS変換部207でシリアルデータに変換する。そして、変換されたシリアルデータを後段サブ制御部121(シリアル通信I/F123)へ送信する。
また、後段サブ制御部121(シリアル通信I/F123)からメイン制御部101宛の通信パケットをシリアル通信で受信し、受信したシリアルデータをSP変換部208でパラレルデータに変換した後、バッファ部204の受信バッファへ保持させる。その後、この保持されている情報をPS変換部205でシリアルデータに変換し、変換したシリアルデータをメイン制御部101へ送信する。
シリアル通信の際のデータフォーマット例を図3及び図4を参照して説明する。図3は送信バッファへ書き込む際の通信パケット構成例、図4は受信バッファから読み出す際の通信パケット構成例である。
図3及び図4において、MOSI(Master Out Slave In)は、主局であるメイン制御部101からの通信パケットを、従局である前段サブ制御部111で受信ことを意味する。また、MISO(Master In Slave Out)は、従局である前段サブ制御部111からの通信パケットを主局であるメイン制御部101で受信することを意味する。
図3を参照すると、メイン制御部101からは、CMND(コマンド)、ADRS(アドレス)、DATA(データ)、巡回冗長検査コード(CRC:Cyclic Redundancy Check)がこの順に配列された通信パケットが送信される。
前段サブ制御部111(CPU112)は、受信した通信パケットに含まれるCRCと、CMND,ADRS及びDATAから自身で作成したCRCとを比較する。一致している場合は、ACK(コマンド)をメイン制御部101へ送信する。図示を省略したが、受信したCRCと前段サブ制御部111で作成したCRCとが不一致の場合は、NACK(コマンド)をメイン制御部101に送信する。CMND等をフレームデータという場合がある。
メイン制御部101からの通信パケットに含まれるCMNDには、ADRSで指定される領域へのデータ書き込み(ライト)命令、あるいは上記領域からのデータ読み出し(リード)命令等が含まれる。また、読み出したデータの後段の制御部への転送指定を含む場合もある。
ここで、図3に示したフレームデータについて、簡単に説明する。調歩同期式のシリアル通信では、通信開始を表すスタートビット、複数ビットのデータ、データの誤りを検出するパリティビット、通信の終了を判別するストップビットを一つのフレームデータとする。例えば、上述したACKのように、このフレームデータ単体で使用することもできる。また、CMND、ADRS、DATA、CRCと複数のフレームデータを組み合わせて、一つの通信パケットとして構成し、上述したライト命令やリード命令を実行する通信という形で通信における意味合いを持たせることもできる。
CRCについては、従来技術で述べた通りであるが、再度、詳しく説明する。CRCは、任意長のデータ入力に対し、固定サイズの値を出力する関数の一種であり、連続する誤りを検出するための誤り検出符号の一種でもある。例えば、対象となる通信データをある定数で除算し、その剰余を検査用の数値として用いる。パリティ・チェックサム方式に比べて誤り検出精度が高く、高速に演算することができ、1ビットずつの走査により計算できる利点がある。また、これを実現するためのハードウェア回路が容易などの特徴を持つことから、ネットワークからハードウェア回路におけるデータ転送に幅広く使われている。後述するが、本実施形態においては、このCRCを通信パケットを受信する際に自身で作成し、この作成したCRCと受信されてきたCRCとを比較する。
図3に戻り、メイン制御部101は、前段サブ制御部111からACKを受信することで、通信が成功したと判断し、次の通信に備える。他方、NACKを受信した場合、通信が失敗したと判断し、従前に送信したデータを再送する。再送は、前段サブ制御部111からACKが返信されるまで繰り返す。
また、前段サブ制御部111からのACKあるいはNACKが受信できない場合、メイン制御部101は、所定時間待機した後、従前に送信した通信パケットを再送する。ただし、複数回の再送の結果、全てNACKが返信され、あるいは、無応答の場合、通信が確立できなかったとして、通信エラー表示を行い、通信を停止する。
図4は、図3とは通信パケットのフレームデータの配列が異なる。図4の例では、メイン制御部101からは、CMND、ADRS、CRCの順に配列された通信パケットが送信される。CMNDには、指定アドレス(ADRS)からのデータ(DATA)の読み出し命令が含まれているものとする。
前段サブ制御部111は、受信した通信パケットに含まれるCMND及びADRSに対してCRCを作成する。そして、受信した通信パケットに含まれるCRCと、自身で作成したCRCとを比較する。一致した場合、ACK、指定アドレスに対して読み出したDATA、CRCをメイン制御部101に送信する。前段サブ制御部111から送信するCRCは、送信するDATAに対して算出する。
他方、受信したCRCと、自身が作成したCRCとが不一致の場合、NACKをメイン制御部101に送信することは、図3の場合と同様である。この場合には、DATA及びCRCは送信しない。
メイン制御部101は、前段サブ制御部111からACKを受信することで、通信の成功を確認し、次に続くDATA及びCRCを受信することになる。
前段サブ制御部111からの通信パケットに誤りがないかどうかは、CRCを用いたチェックにより判定する。すなわち、メイン制御部101において受信したCMND等のフレームデータについてのCRCを作成し、受信したCRCと、メイン制御部101自身で作成したCRCとを比較する。一致した場合は、受信した通信パケットが信頼できるものとして扱う。メイン制御部101がNACKを受信した場合、あるいは、受信したCRCで不一致となった場合の処理は、図3の場合と同様である。すなわち、従前のリード実行動作を再度実施する。
なお、メイン制御部101から前段サブ制御部111への通信パケットにはノイズ混入などがなく、通信が成功したときであっても、前段サブ制御部111からのACKにノイズが混入することがある。この場合、メイン制御部101は、ACKと認識することができない。この場合は、従前の通信パケットを再送することになる。
次に、通信パケットに含まれるCMNDについて、詳しく説明する。
CMNDのデータ構造例を図5に示す。図5の例では、CMNDは、11ビットで構成される。すなわち、通信パケットのフレーム開始を示すスタートビット(start)、続いて8ビットのデータ(Data)、データ誤りを検知するパリティビット(parity)、フレームの終了を示すストップビット(stop)の順で構成される。
8ビットのデータ(Data)の内訳は、上位の2ビット(7,6)が通信認識ビット、上位から3ビット目(5)が自身への通信か他のカスケード接続先への通信かを示す識別情報(ID)である。上位から4及び5ビット目(4,5)がライト(データ書込)実行、あるいは、リード(データ読出)実行かを示す指示コマンド、下位3ビット(2,1,0)は、情報の送信先までのカスケードの残段数をそれぞれ示している。
通信認識ビットは、受信データの異常による誤動作を防止する役割を果たす。例えば、通信線へのノイズの混入により、受信した通信パケットが所定間隔連続で"L(Low)"となった場合を想定する。非通信時の通信線の論理が"H(High)"であるとすると、スタートビット(start)の論理は"L"である。メイン制御部101,前段サブ制御部111は、ノイズによる通信線の"L"を検知すると、通信が開始されたと判断する。すると、各制御部101,111は、以降の"L"入力をスタートビットに続くデータ(Data)及びパリティビット(parity)と判断することになる。最終的には、ストップビット(stop)の論理が、想定の"H"に対して"L"まで連続する場合もある。その場合、フレーム長が異常という形でエラー判定できる。しかし、ストップビット(stop)の位置ではノイズが"H"側に振れた場合には、エラーとは判断されないことになる。このような不具合を防止するため、スタートビット(start)に続くデータ(Data)の上位2ビットを通信認識ビットとして、"HL"、"LH"、"HH"のいずれかの組み合わせとした。これにより、ノイズによる誤動作を防止することができる。
続くIDを示す1ビット(5)は、情報の送信先が次段の制御部であることを示すIDである。例えば、メイン制御部101から送信される際、IDが"L"であれば、前段サブ制御部111は、情報の送信先が自身宛てと判断する。他方、IDが"H"であった場合は、送信先が後段サブ制御部121宛と判断する。
指定コマンドを示す2ビット(4,3)は、例えば"HL"ならばライト実行、"LH"ならばリード実行という形で割り当てる。
カスケードの残段数を示す下位3ビットは、何段先の装置(制御部)への通信かを示すものである。例えば残段数が"000"ならば自身宛の通信、残段数が"001"ならば次段のカスケード先への通信、残段数が"010"ならば自身から2つ後段のカスケード先への通信であることを示す。この残段数を示すビットは、後段のカスケード先へと転送する際に、デクリメントしていく。
本実施形態では、メイン制御部101及びサブ制御部111、121は同様の構成であり、かつ、相対的なアドレスの割振りをするために、特定のポートを使った認識を実施していない。つまり、前段サブ制御部111及び後段サブ制御部121は、特定ポートの情報などから自身がメイン制御部101からどれだけ後段にカスケード接続された位置にあるのかを認識することができない。そのため、自身宛の通信パケットかどうかをID及びカスケードの残段数を参照して判断する。そして、自身宛の通信パケットの場合は受信処理を行い、自身宛の通信パケットでない場合は中継器として動作するようにした。また、中継器として動作するときはID、及び/又は、残段数を書き換えて次段のカスケード先へ転送するようにした。例えばIDが"H"で残段数が"001"の場合は、次段のカスケード先への通信パケットということになるので、CMNDのIDを"L"、残段数を"000"に書き換えて、次段のカスケード先へ送信する。
これにより、通信パケットを受信した制御部は、自身宛の通信なのか、後段のカスケード先への通信なのかを判断するだけで良くなる。その結果、相対アドレスの割り振りなどの構成を採らなくても、簡易な回路構成で、相対アドレスを割り振った場合と同等の機能を実現することができる。
なお、本実施形態では、宛先を示す情報としてIDと残段数を示す下位3ビットという2つの情報を用いている。これは、宛先を示す情報の信頼度を高めるためである。宛先を示す情報として残段数を示す下位3ビットのみ使用するようにしてもかまわない。また、残段数を示す情報のビット数はカスケード接続可能な段数に応じて設定されればよく、3ビット以外のビット数でもかまわない。
[通信形態]
次に、上記のように構成される通信システムにおいて、メイン制御部101から、前段サブ制御部111を経由して後段サブ制御部121に対して通信を行う場合の手順を、より具体的に説明する。
図6は、この場合の前段サブ制御部111の動作手順説明図である。
メイン制御部101は、自身からみれば後段サブ制御部121は2段先なので、CMNDに含まれるIDを"H"、カスケード段数を"001"とする。また、CMNDに対するCRCを作成する。そして、これらを含む通信パケットを生成し、前段サブ制御部111に送信する。
前段サブ制御部111は、メイン制御部101から上記の通信パケットを受信すると(S601)、通信パケットをバッファリングする。そして、その内容をデコードし、CMNDに含まれるID及びカスケード段数のビット情報から、その通信パケットの通信先を判別する(S602)。本例では、後段サブ制御部121宛の通信パケットなので、受信したCMNDに対するCRCを作成する(S603)。そして、作成したCRCと受信したCRCとを比較し、一致するかどうかを判定する(S604)。CRCが一致した場合には(S604:Yes)、受信したCMNDに含まれるID及びカスケード段数を示すビット情報を書き換える(S605)。すなわち、CMNDに含まれるIDを"H"から"L"、残段数を"001"から"000"に書き換える。
その後、書き換えたID及び残段数に応じてCRCを再計算する(S606)。通信パケット内のCMNDにおけるビット情報が変更されているため、それ応じてCRCも変更しないと、後段サブ制御部121において正常なエラー判定ができなくなるためである。
一方、S604において、CRCが一致しなかった場合には(S604:No)、CRCに所定値を設定する(S607)。具体的には、CRCを通常の演算式で求められるものとは異なったものに設定し、擬似CRCを作成する。擬似CRCを作成するのは、以下の理由による。
再計算時に通常の演算式のままCRCを計算すると、ノイズ影響を含んだ状態、つまり、CMNDのビット情報に誤りが生じた状態で再計算を実行することになってしまう。すなわち、後段サブ制御部121では、再計算されたCRCに基づいて、受信したデータに基づき内部で生成したCRCと受信したCRCの一致を見るため、このデータに誤りが生じている状態を後段のカスケード先で検知することが出来なくなる。この事態を放置すると、ノイズ影響が後段に伝播してしまう不具合が生じるおそれがある。このような事態の発生を防止するために、本実施形態では、擬似CRCを作成する。
このように、後段サブ制御部121で敢えてエラー処理がされるようにすることで、後段サブ制御部121へのライト命令又はリード命令の送信を防止し、メイン制御部101からの再送を促すことができる。
前段サブ制御部111は、CRCの再計算あるいは擬似CRCの作成を終えると、そのCRCあるいは擬似CRCと変更されたCMNDとを含む通信パケットを、後段サブ制御部121へ送信する(S608)。
ところで、前段サブ制御部111において、通信パケットの中継を行う場合は、必ず一定の遅延が生じる。また、通信以外の時間、通信線は使用されていない。以下、このことを、図7を参照して説明する。
図7はカスケード接続先との間の通信タイミングの説明図である。上段はメイン制御部101と前段サブ制御部111、下段は前段サブ制御部111と後段サブ制御部121との間の通信タイミングである。MOSIは従局への送信、MISOは従局からの受信を表す。
前段サブ制御部111では、メイン制御部101から通信パケット701を受信すると、それをバッファ部204の受信バッファにバッファリングする。そして、それが自身宛のものか、後段サブ制御部121へ転送するものかを判断する。自身宛でないときは、通信パケットに含まれるCMNDの内容を書き換える処理を行う。そのために、後段サブ制御部121へ送信(中継)するときの通信パケット702は、通信パケット701に対して遅延d1が生じる。
また、後段サブ制御部121に対して通信パケット702を送信した後、応答の通信パケット703を受信する場合は、原則的には、受信した通信パケット703に対してCRC等の再計算などをすることなく、そのまま転送する。ただし、受信した通信パケット703をバッファ部204の受信バッファにバッファリングする。そして、最初のフレームデータが何かを判断するため、通信パケット703は、メイン制御部101に応答するときの通信パケット704に対して遅延d2が生じる。この間、通信線は使用されていない。
メイン制御部101から前段サブ制御部111への通信パケット701の送信前、後段サブ制御部121から前段サブ制御部111への通信パケット704の送信前、あるいは通信パケット704の送信後に通信を行わない期間中も、通信線は使用されていない。
また、メイン制御部101と前段サブ制御部111を繋ぐ2つの通信線のうち1線に注目すると、メイン制御部101から前段サブ制御部111への通信パケット701の送信中、MOSI(主局から従局)では通信線Rx0を使用している。しかし、MISOでは通信線Tx0を使用していない。逆に、前段サブ制御部111からメイン制御部101へ通信パケット704への送信中、MOSIで通信線Rx0は使われておらず、MISOでは通信線Tx0を使っている状態にある。
本実施形態では、このような通信線の空いているタイミングで、各サブ制御部111,121からメイン制御部101に向けて通信パケットを自動送信する。この機能を、本実施形態では、サブ制御部自動送信機能と呼ぶ。また、各サブ制御部111,121から自動送信される通信パケットを、特に「自動送信パケット」と称する。以下、サブ制御部自動送信機能について、図8を参照して説明する。
メイン制御部101と前段サブ制御部111との間の自動送信は、メイン制御部101から前段サブ制御部111へ通信パケットを送信する前、及び、前段サブ制御部111からメイン制御部101への通信パケットの送信が終了した後に可能となる。同様の関係が、前段サブ制御部111と後段サブ制御部121との間にも成り立つ。図8の例では、前段サブ制御部111からメイン制御部101への受信線Rx0のうち、空いているタイミングで自動送信パケット801を挿入する。また、後段サブ制御部121から前段サブ制御部111への受信線Rx1のうち、空いているタイミングで自動送信パケット802を挿入する。
自動送信パケット801,802は、最初のフレームに、ACKやNACKとは異なる判別コマンド、図8に示した例では「Po_Cmnd」が割り当てられる。この判別コマンドは、自動送信パケットの開始であることを示す開始コマンドである。これにより、自動送信パケットとメイン制御部101の要求に対する応答の通信パケット(ACKとDATAなど)との判別が容易となる。
また、判別コマンドの後に、現在送信された自動送信パケットが最初に送信したものから何番目の自動送信パケットであるかを示すID、DATA(メイン制御部101に伝達すべきデータ)、CRCの順にフレームに割り当てられる。IDは、メイン制御部101が送信すべき旨を設定した順序に従う番号(昇順/降順)である。これにより、自動送信パケットが、複数パケットのうち何番目のものかの判別が容易となる。
この自動送信パケット801,802の送信は、後段サブ制御部121に対するCMNDにおいて指定された送信要求回数に応じた回数、及び、順序で行われる。メイン制御部101は、送信要求回数及び順序をメモリ等に記録するとともに、自動送信パケット801,802を受信する度に、記録した送信要求回数を減じるように構成される。
自動送信パケット801,802の内容は、例えば、後段サブ制御部121が監視するポート情報やアナログ信号のA/D(アナログ/デジタル)変換後のデータ、タイマーモジュールのステータスなど、状態が刻々と変更していく情報である。
自動送信パケット802を受信する側(図8の例では前段サブ制御部111)からすると、自身が通信パケットを送信していないにも関わらず、受信するものである。そのため、前段サブ制御部111は、それが通信線へのノイズによる影響なのか、自動送信パケット802なのかを判別する必要がある。また、後段サブ制御部121がメイン制御部101に返信する自動送信パケットなのか、メイン制御部101の要求に対する応答の通信パケット(ACKとDATAなど)なのかの判別も必要となる。
そこで、前段サブ制御部111は、通信パケットを受信し、それをバッファ部204の受信バッファへ送る際に、最初のフレームを参照する。上述した通り、ACKやDATAであれば、メイン制御部101の要求に対する応答の通信パケットと判別し、他方、「Po_Cmnd」が割り当てられている場合は、自動送信パケットと判別する。
図8に示す通り、前段サブ制御部111は、後段サブ制御部121からの通信パケットの受信が完了して、それをメイン制御部101へ転送するまでは、自動送信を禁止する。前段サブ制御部111がメイン制御部101へと送信する通信パケットと、後段サブ制御部121から受信しメイン制御部101へと転送する通信パケットとの衝突が発生しないように調停するためである。この調停のシーケンスを図9に示す。
図9において、「自動送信」は自動送信パケットの送信である。「カスケード」はカスケード接続先への送信を要求する通信である。「通常送信」は、カスケード接続の前段から後段への通常の通信パケットの送信である。「応答送信」はメイン制御部101からの命令に応答する送信である。「応答スルー送信」は、後段サブ制御部121からの応答送信を受信した前段サブ制御部111がその応答送信をメイン制御部101へそのままスルーとする送信である。
前段サブ制御部111からメイン制御部101への自動送信901は、前段サブ制御部111がメイン制御部101からの通信パケットを受信していない間に行う。また、後段サブ制御部121から前段サブ制御部111への自動送信902は、後段サブ制御部121が前段サブ制御部111からの通信パケットを受信していない間に行う。
カスケード903では、接続先を指定する分、通常送信とは異なるID及びCRCを持つ。カスケード903の発生を検知した前段サブ制御部111は、自動送信を停止する。
通常送信904では、あたかもメイン制御部101から送信された通信パケットを後段サブ制御部121が直接受信したかのようにするために、上記のようにIDの変更及びCRCの再演算を実施した後に、通常送信という形で送信する。本実施形態ではカスケード段数を1段(前段サブ制御部111と後段サブ制御部121のみ)の関係で示しているため、この段階で通常送信となる。しかし、カスケード段数が2以上の場合、前段サブ制御部111で示した通常送信は、カスケード送信(メイン制御部101のカスケード送信とは異なるID及びCRCを持つ)となる。
応答送信905は、メイン制御部101からの命令がライト命令の場合には、ACK(あるいは、NACK)のみを返信する。他方、リード命令の場合には、ACKに続き、指定のアドレスのDATA及びCRCを1つの通信パケットとして返信する。
応答スルー送信906ではCRCの再計算は実施されない。つまり、メイン制御部101からは、あたかも後段サブ制御部121から直接応答を受けたかのように見えることになる。
自動送信907は、後段サブ制御部121から前段サブ制御部111に対し、通信線Rx1が空いている時間帯に行われる。ただし、応答スルー送信906が実施されているときは、その途中であっても後段サブ制御部121から自動送信ができる。後段サブ制御部121から見ると、前段サブ制御部111からの通信がない限り、自身が送信すべき通信パケットの送信が完了した時点で、自動送信が可能となる。
自動送信908も自動送信907と同様の関係が成り立つ。つまり、前段サブ制御部111から見ると、メイン制御部101からの通信がなく、かつ、後段サブ制御部121からの自動送信を除く通信がない場合、自身が送信すべき通信パケットの送信が完了した時点で、自動送信可能となる。
通常送信909は、メイン制御部101から前段サブ制御部111へ対して行われる。この場合、前段サブ制御部111は、自身への通信であると認識するため、カスケード接続先である後段サブ制御部121へは、通信パケットを転送せず、自身で応答送信911を行う。この応答送信911の有無に関わらず、後段サブ制御部121は、前段サブ制御部111へ対して自動送信910を継続できる。
なお、前段サブ制御部111及び後段サブ制御部121は、自身が応答送信、あるいは、応答スルー送信を行う際には、自動送信を停止する。
後段サブ制御部121と前段サブ制御部111との間の調停は、上述した前段サブ制御部111とメイン制御部101との間の出力データ調停と同じ関係である。自身がカスケード接続先かどうかを意識しないでデータの調停ができるため、より簡易な構成設計が可能となる。
次に、ポーリングデータの識別と転送方法について説明する。前段サブ制御部111において、後段サブ制御部121から受信した通信パケットをそのまま転送すると、メイン制御部101は、受信した通信パケットが、どこから送信されたものかを特定することができない。特に、自動送信パケットは、前段サブ制御部111からのものなのか、後段サブ制御部121からのものなのかを判別できない。また、自動送信パケットを単純に転送してしまうと、自身の自動送信パケットの送信とカスケード接続先からの自動送信パケットの転送とが衝突する可能性がある。
そこで、本実施形態では、この衝突を避けるための調停を行う。具体的には、後段サブ制御部121からの通信パケット(あるいは自動送信パケット)を受信する際に、所定数の通信パケットをバッファ部204にバッファリングできるように制御する。この制御は、バッファコントロール部209が行う。制御されるのは、シリアル通信I/F113のバッファ部204である。この調停動作の手順を図10を参照して説明する。
図10を参照すると、前段サブ制御部111及び後段サブ制御部121のバッファ部204には、それぞれバッファ領域1001,1002が形成されている。これらのバッファ領域1001,1002は、共に、ポーリングデータ格納用バッファとカスケード接続先ポーリングデータ格納用バッファが形成されている。ポーリングデータ格納用バッファには、自身の自動送信パケットが格納される。カスケード接続先ポーリングデータ格納用バッファには、カスケード接続先からの自動送信パケットが格納される。
バッファコントロール部209は、バッファ領域1002のポーリングデータ格納用バッファに格納された自動送信パケットを、一度、バッファ領域1001のカスケード接続先ポーリングデータ格納用バッファに格納する。その後、前段サブ制御部111は、カスケード接続先ポーリングデータ格納用バッファに格納された後段サブ制御部121からの自動送信パケットと、自身が自動送信する自動送信パケットとの優先順位を決定する。優先順位は、例えば通信路Rx1の状況や自身の負荷状況に応じて決定する。その後、決定した順位で自動送信パケットを順次送信する。このようにして、衝突を防止する。
この場合の制御手順例を図11に示す。図11において、前段サブ制御部111のバッファコントロール部209は、受信中、あるいは、送信中の通信パケットの有無を確認する。つまり、ポーリングを行う(S1101)。パケット受信中であれば、受信完了まで所定時間待った後に再度確認する。パケット送信中であれば、所定時間待った後に再度確認をする(S1101:Yes)。
パケット送受信中でない場合(S1101:No)、バッファコントロール部209は、メイン制御部101又は後段サブ制御部121からの自動送信要求の有無を確認する(S1102)。自動送信要求があった場合は(S1102:Yes)、カスケード接続先からの通信パケットの受信の有無に関わらず、自動送信を実行する(S1105)。
他方、自動送信要求がなかった場合(S1102:No)、バッファコントロール部209は、カスケード接続先からの通信パケットの受信の有無を確認する(S1103)。カスケード接続先からの受信があり、かつ、自動送信パケットと判断した場合には(S1103:Yes)、カスケード接続先からの自動送信パケットをバッファ部204へと格納する(S1105)。カスケード接続先からの受信がない場合には(S1103:No)、バッファ部204への通信パケットの格納を行わない。
S1104でカスケード接続先からの自動送信パケットをバッファリングする際には、その転送順序を示すIDをインクリメントし、自動送信パケットの最終フレームのCRCも再演算する。なお、受信したCRCと自身の生成したCRCが一致しない場合、S1105にてバッファした自動送信パケットを破棄する。
その後、自動送信を開始する(S1105)。全てのパケットが転送され、自動送信が終了すると(S1106:Yes)、バッファコントロール部209は、調停のための処理を終了する。バッファされた自動送信パケットで未転送のものがあれば(S1106:No)、S1101へと戻る。
なお、設定により自動転送を終了することもできる。
このように本実施形態では、前段サブ制御部111が、受信した通信パケットに含まれるCMND、特にID及びカスケードの残段数を参照して、自身宛の通信パケットか、後段への通信なのかを判断するだけで良い。そのため、通信ボーレートの減少を最低限に抑制することができる。
また、通信に際して、ノイズ混入の有無に応じて、デクリメントしたCMNDに基づいてCRCを再演算し、又は、所定値に設定するため、有効に誤り検知を行うことができる。さらに、サブ制御部自動送信機能によって、通信線を有効活用して、通信ボーレートを向上させることもできる。
なお、本実施形態では、誤り判定コードとしてCRCを用いた場合の例を示したが、チェックサムその他の誤り判定コードを用いても良い。
また、本実施形態では、通信データをパケット化して通信パケットとする例を示したが、必ずしもパケット化する必要はない。フレームデータのものを通信データとすることもできる。
また、本実施形態では、メイン制御部101が画像形成装置におけるメイン制御ユニット、各サブ制御部111,121が画像形成ユニットあるいは搬送機構等に搭載されるサブ制御ユニットに搭載されるものとして説明したが、この例に限定されない。通信機能を有する複数の装置によって分散制御を行う他の用途においても、本発明は適用が可能である。
101・・・メイン制御部、111・・・前段サブ制御部、121・・・後段サブ制御部、102,112,122・・・CPU、104、114,124・・・ROM、105,115,125・・・RAM、103,113,123・・・シリアル通信I/F。106、116,126・・・WDT、107,117,127・・・IRQ、108,118,128・・・ポート、109,119,129・・・タイマ。201・・・データカウント部、202・・・クロック生成部、203・・・CPUバス、204・・・バッファ部。205,207・・・PS(パラレルシリアル)変換部、206,208・・・SP(シリアルパラレル)変換部、209・・・バッファコントローラ。

Claims (10)

  1. 複数の通信装置がカスケード接続された通信システムであって、
    自身からみてn段先の他の通信装置宛の情報を発信する第1通信装置が、前記n段までの残段数と前記情報とを含む通信データに対する誤り判定コードを作成し、この誤り判定コードを前記通信データと共に次段の第2通信装置へ送信するように構成されており、
    前記第2通信装置が、前記第1通信装置より受信した通信データに対する誤り判定コードを作成し、この誤り判定コードを受信した誤り判定コードと比較して、一致するときは当該通信データに含まれる残段数により前記情報が自身宛のものかどうかを判定し、自身宛のものでない場合は前記残段数を1段減らした新たな通信データと、この新たな通信データに対する誤り判定コードとを新たに作成し、作成した誤り判定コードを、前記新たな通信データと共に次段の第3通信装置へ送信するように構成されていることを特徴とする、
    カスケード接続による通信システム。
  2. 前記第1通信装置は、前記他の通信装置が次段の通信装置であるときは第1識別情報、それ以外であるときは前記第1識別情報と異なる第2識別情報を、前記通信データに含めて前記第2通信装置へ送信するように構成されており、
    前記第2通信装置は、受信した通信データに含まれる残段数を参照して前記他の通信装置が自身でも前記第3通信装置でもないと判定したときは当該通信データに含まれる第2識別情報をそのままとし、他方、前記他の通信装置が前記第3通知装置と判定したときは前記通信データに含まれる第2識別情報を前記第1識別情報に書き換えるように構成されていることを特徴とする、
    請求項1記載の通信システム。
  3. 前記第2通信装置は、前記作成した誤り判定コードと受信した誤り判定コードとが一致しない場合は、前記第3通信装置で確実に誤りと判定される内容の擬似誤り判定コードを作成し、作成した擬似誤り判定コードを、前記誤りコードに代えて、前記新たな通信データと共に前記第3通信装置へ送信するように構成されていることを特徴とする、
    請求項1又は2記載の通信システム。
  4. 前記第1通信装置は、前記他の通信装置に対して、前記通信データに対する応答又は不応答とは区別される自動送信パケットの送信を要求するコマンドを含んで前記通信データを生成するように構成されており、
    前記他の通信装置は、前記コマンドに応答する自動送信パケットを、通信路が空いているタイミングで前記第1通信装置宛に返信するように構成されていることを特徴とする、
    請求項1、2又は3記載の通信システム。
  5. 前記コマンドは、前記自動送信パケットの送信要求回数を含んでおり、前記第1通信装置は、前記送信要求回数を記録するとともに、前記自動送信パケットを受信する度に、記録した前記送信要求回数を減じるように構成されていることを特徴とする、
    請求項4記載の通信システム。
  6. 前記第2通信装置は、受信した前記通信データをバッファリングし、前記他の通信装置が自身でないと判定し、かつ、当該通信データ以外の通信対象情報を保有しているときは、通信路の状況に応じて、前記通信データの前記第3通信装置への送信と、前記通信対象情報の送信先の装置への送信との優先順位を決定するように構成されていることを特徴とする、
    請求項1ないし5のいずれかの項記載の通信システム。
  7. それぞれカスケード接続される複数の通信装置の初段となる通信装置であって、
    次段の通信装置との間でシリアル通信を行う通信制御手段と、
    送信バッファ及び受信バッファを有するバッファ部と、
    自身からみてn段先の通信装置宛の情報と、前記n段までの残段数と、前記n段先の通信装置宛の情報及び残段数を含む通信データに対する誤り判定コードとを作成し、作成した通信データ及び誤り判定コードを前記送信バッファに保持させるとともに、前記受信バッファに保持されている前記n段先の通信装置からの情報に対する所定の処理を実行する処理手段と、
    前記送信バッファに保持されている通信データ及び誤り判定コードをシリアルデータに変換し、変換したシリアルデータを前記通信制御手段を通じて次段の通信装置に向けて送信するとともに、前記次段の通信装置から前記通信制御手段を通じて受信したシリアルデータをパラレルデータに変換し、変換したパラレルデータを前記受信バッファに保持させるデータ変換手段と、を備えたことを特徴とする、
    通信装置。
  8. それぞれカスケード接続される複数の通信装置の初段以外の通信装置であって、
    前段の通信装置及び次段の通信装置との間でシリアル通信を行う通信制御手段と、
    送信バッファ及び受信バッファを有するバッファ部と、
    前段の通信装置より誤りコードと共に受信した通信データに対する誤り判定コードを作成するとともに、この誤り判定コードと受信した誤り判定コードとを比較し、一致した場合は、当該前段の通信装置からみてm段先の通信装置宛の情報と共に前記通信データに含まれるm段までの残段数に基づき、自身が送信先であるか否かを判定し、自身宛のものでない場合は前記残段数を1段減らした新たな通信データと、この新たな通信データに対する誤り判定コードとを新たに作成し、作成した誤り判定コードを、前記新たな通信データと共に前記送信バッファに保持させるとともに、前記m段先の通信装置からの情報が受信されたときは当該情報を前記受信バッファに保持させる処理手段と、
    前記送信バッファに保持されている通信データ及び誤り判定コードをシリアルデータに変換し、変換したシリアルデータを前記通信制御手段を通じて次段の通信装置に向けて送信するとともに、前記次段の通信装置から前記通信制御手段を通じて受信したシリアルデータをパラレルデータに変換し、変換したパラレルデータを前記受信バッファに保持させる第1データ変換手段と、
    前記受信バッファに保持されている前記次段の通信装置より受信したパラレルデータをシリアルデータに変換し、変換したシリアルデータを前記通信制御手段を通じて前段の通信装置に向けて送信する第2データ変換手段と、を備えたことを特徴とする、
    通信装置。
  9. シリアル通信時の1ビット幅を送信するのに要するカウント数を決定するための分周カウンタをさらに備えており、
    前記通信制御手段は、前記送信バッファに保持されている通信データの数を受け取り、受け取った通信データ数が多い場合は前記分周カウンタの値を小さくすることにより、1ビット送信に要する時間を短くするように構成されることを特徴とする、
    請求項7又は8記載の通信装置。
  10. 前記通信データは、スタートビットに続く上位いくつかのビットのうち、少なくとも1ビットが前記スタートビットと異なる論理レベルの通信認識ビットとして含むことを特徴とする、
    請求項7又は8記載の通信装置。
JP2012143966A 2012-06-27 2012-06-27 カスケード接続による通信システム Expired - Fee Related JP5968119B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012143966A JP5968119B2 (ja) 2012-06-27 2012-06-27 カスケード接続による通信システム
US13/897,019 US8966354B2 (en) 2012-06-27 2013-05-17 Communication system via cascade connection and communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012143966A JP5968119B2 (ja) 2012-06-27 2012-06-27 カスケード接続による通信システム

Publications (3)

Publication Number Publication Date
JP2014007695A true JP2014007695A (ja) 2014-01-16
JP2014007695A5 JP2014007695A5 (ja) 2015-08-13
JP5968119B2 JP5968119B2 (ja) 2016-08-10

Family

ID=49779581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012143966A Expired - Fee Related JP5968119B2 (ja) 2012-06-27 2012-06-27 カスケード接続による通信システム

Country Status (2)

Country Link
US (1) US8966354B2 (ja)
JP (1) JP5968119B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101808776B1 (ko) 2015-12-08 2017-12-13 문현정 칩 간 통신중개장치
JP2020154757A (ja) * 2019-03-20 2020-09-24 株式会社デンソーウェーブ 出力制御装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158538B (zh) * 2014-08-22 2017-04-05 深圳芯邦科技股份有限公司 波特率生成方法、波特率发生器及通信设备
JP6498043B2 (ja) * 2015-05-29 2019-04-10 キヤノン株式会社 電子機器
US10817528B2 (en) * 2015-12-15 2020-10-27 Futurewei Technologies, Inc. System and method for data warehouse engine
JP6922639B2 (ja) * 2017-10-13 2021-08-18 オムロン株式会社 制御装置、スレーブ装置の制御方法
GB2574614B (en) * 2018-06-12 2020-10-07 Advanced Risc Mach Ltd Error detection in an interconnection network for an integrated circuit
US11425183B2 (en) * 2019-06-07 2022-08-23 Eaton Intelligent Power Limited Multi-threaded data transfer to multiple remote devices using wireless hart protocol
CN110636393B (zh) * 2019-09-10 2021-11-16 烽火通信科技股份有限公司 一种olt设备双主控1+1并发工作方法及系统
JP2023140396A (ja) 2022-03-23 2023-10-05 株式会社東芝 磁気ディスク装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920267A (en) * 1994-05-09 1999-07-06 Europlex Research Limited Ring network system
JP2003124962A (ja) * 2001-10-18 2003-04-25 Fujitsu Ltd パケット転送装置、パケット転送方法、および、半導体装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110344A1 (en) * 1996-09-18 2003-06-12 Andre Szczepanek Communications systems, apparatus and methods
JPH10135951A (ja) * 1996-10-29 1998-05-22 Canon Inc 通信システムと画像形成装置、及び通信システムの異常診断方法
US6847614B2 (en) * 1998-04-20 2005-01-25 Broadcom Corporation Apparatus and method for unilateral topology discovery in network management
JPH11321027A (ja) 1998-05-19 1999-11-24 Canon Inc 通信制御装置、通信制御方法、及び記憶媒体
JP4467727B2 (ja) * 2000-07-24 2010-05-26 キヤノン株式会社 電子機器の接続方法およびその電子機器およびその動作処理プログラムを記憶した記憶媒体
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920267A (en) * 1994-05-09 1999-07-06 Europlex Research Limited Ring network system
JP2003124962A (ja) * 2001-10-18 2003-04-25 Fujitsu Ltd パケット転送装置、パケット転送方法、および、半導体装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101808776B1 (ko) 2015-12-08 2017-12-13 문현정 칩 간 통신중개장치
JP2020154757A (ja) * 2019-03-20 2020-09-24 株式会社デンソーウェーブ 出力制御装置

Also Published As

Publication number Publication date
US8966354B2 (en) 2015-02-24
JP5968119B2 (ja) 2016-08-10
US20140006912A1 (en) 2014-01-02

Similar Documents

Publication Publication Date Title
JP5968119B2 (ja) カスケード接続による通信システム
US5020020A (en) Computer interconnect system with transmit-abort function
FI92262B (fi) Joustava väyläjärjestelmä
EP0391583B1 (en) Dual-path computer interconnect system with four-ported packet memory control
CN100405309C (zh) 文件控制系统和文件控制装置
CN101656595B (zh) 传输系统、设备和方法
US20160004659A1 (en) Bus controller, data forwarding system, and method for controlling buses
US6862283B2 (en) Method and apparatus for maintaining packet ordering with error recovery among multiple outstanding packets between two devices
JP5151500B2 (ja) コンピュータシステム、障害処理方法および障害処理プログラム
CN109154925A (zh) 通信设备、通信方法、程序和通信系统
JPH02199938A (ja) データ伝送誤り検出方式
US20100042756A1 (en) Data transfer device
US8799548B2 (en) I/O bridge device, response-reporting method, and program
JP5857568B2 (ja) 情報処理システム、受信装置、及び情報処理方法
JP2008193262A (ja) データ通信システム及びデータ通信方法
US8090986B2 (en) System module and data relay method
JP2011151769A (ja) データ通信システム及びデータ通信方法
US6487679B1 (en) Error recovery mechanism for a high-performance interconnect
CN116185936B (zh) 一种spi通信数据收发异常检测控制系统及检测方法
JP6330541B2 (ja) データ送受信システム、データ送信装置、データ送受信システムの制御方法
JP4152387B2 (ja) バスシステム
JP2009104391A (ja) メモリ二重化システム及び情報処理装置
JP3741077B2 (ja) データ転送装置
JP2000261416A (ja) 二重化データ転送回路
KR100211960B1 (ko) 패리티 방식을 이용한 프레임 구별방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150625

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160516

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: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160705

R151 Written notification of patent or utility model registration

Ref document number: 5968119

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees