JP2010178199A - シリアル通信システム、及び通信方法 - Google Patents
シリアル通信システム、及び通信方法 Download PDFInfo
- Publication number
- JP2010178199A JP2010178199A JP2009020570A JP2009020570A JP2010178199A JP 2010178199 A JP2010178199 A JP 2010178199A JP 2009020570 A JP2009020570 A JP 2009020570A JP 2009020570 A JP2009020570 A JP 2009020570A JP 2010178199 A JP2010178199 A JP 2010178199A
- Authority
- JP
- Japan
- Prior art keywords
- transmission
- data
- node
- control circuit
- waiting
- 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.)
- Withdrawn
Links
Images
Landscapes
- Bidirectional Digital Transmission (AREA)
- Communication Control (AREA)
Abstract
【課題】半二重通信を行なうノードにおける演算処理装置の処理効率を向上させる。
【解決手段】本発明によるシリアル通信システムは、通信バス10を介して他のノードとシリアル通信を行なうノード2を具備する。ノード2は、他のノードへの送信データを生成する演算処理装置14と、送信データ200を保持する送信バッファ32と、半二重通信を行なう際、送信バッファ32が保持する送信データ200を所定の期間待機させた後、他のノードに送信する送信制御回路31とを備える。
【選択図】図5
【解決手段】本発明によるシリアル通信システムは、通信バス10を介して他のノードとシリアル通信を行なうノード2を具備する。ノード2は、他のノードへの送信データを生成する演算処理装置14と、送信データ200を保持する送信バッファ32と、半二重通信を行なう際、送信バッファ32が保持する送信データ200を所定の期間待機させた後、他のノードに送信する送信制御回路31とを備える。
【選択図】図5
Description
本発明は、シリアル通信システム、及び通信方法に関し、特に半二重通信を行なう複数のノードを有するシリアル通信システム、及び通信方法に関する。
非同期シリアル通信として半二重通信方式がある。半二重通信方式では、1つの伝送路で送信と受信を同時に行なうため、自ノードが送信を行なっている間は他のノードからのデータの受信することはできない。又、自ノードが受信を行なっている間は送信を行なうことはできない。よって複数のノードで送信されると通信経路(通信バス)上で競合が起きて正しいデータが伝送されなくなる。従って、半二重通信方式において各ノードが送信する場合には、受信動作を行なっていないときに送信を行なう必要がある。又、受信中の場合、受信の終了を確認してから送信を行なう必要がある。このため、受信を終了したことを示すために受信完了割込みや受信中を示すステータスフラグを用いることが一般的である。
一方、各ノードはそれぞれの動作クロックを基にボーレートを生成しているのが一般的である。動作クロックの周波数の違いや動作クロック生成部の精度により各ノードのボーレート間で誤差が生じている。このため非同期シリアル通信を行なうシステムでは、ノード(ユニット)毎に許容ボーレート誤差範囲が設定されている。このため、データビットを受信するタイミングは各ノードによって異なり、データの最終ビットを受信するタイミングは、ノード間において最悪条件下で1ビット近くの差が生じることがある。
例えば、ノードAからデータが送信され、ボーレートの誤差が許容範囲の早い側にあるノードBが当該データの受信完了割込みを受けてデータの送信を行なう場合、ボーレートの誤差が許容範囲の遅い側にあるノードCは、ノードAからのデータを受信完了する前に、ノードBから送信されたデータを先に受信してしまい、受信エラーとなることがある。
図1を参照して、上述のようにデータの受信から送信に切り替わる際に、他のノードにおいて受信エラーとなる場合の動作の詳細を説明する。ここで、ノードAのサンプリング信号を標準とし、ノードBのサンプリングタイミングは許容誤差における最小値、ノードCのサンプリングタイミングは許容誤差における最大値であるものとする。
データ通信バスにデータが送信され、時刻T1においてノードBがストップビットを検出すると、ノードBにおいて受信割込み信号が出力される(受信割込みがハイレベルに遷移する)。時刻T2においてノードBでは、受信割込み信号に応じて送信データが送信バッファに書き込まれた後、データ通信バスに送出される。
データ通信バス上のストップビットは、ノードBから送出されたデータ(スタートビット)によって変更される。これによりストップビットのビット長Tstは、1ビットよりも短くなる場合がある。ノードBのサンプリングタイミングとノードCのサンプリングタイミングの差が、例えば1ビットである場合、ノードCがストップビットを受信する前にデータ通信バス上にスタートビットが送出されてしまう。この場合、ノードCは、ストップビットを検出するタイミング(時刻T3)でスタートビットのデータをサンプリングするためフレーム受信エラーとなり、システム全体のエラーを誘発してしまう。
すなわち、ノードBからデータが送出される時刻T2より、ノードCにおけるストップビットを検出するタイミング(時刻T3)が遅れる場合、ノードCは受信エラーを起こしてしまう。このようなエラーの発生を防ぐため、受信から送信に切り替わる際にも、通信バス上のストップビットのビット長Tstが所定の長さ(例えば1ビット分の長さ)となるように制御する必要がある。
以上のような問題を回避するため、受信完了割込み処理を遅延させてノードBからのデータの送信を遅延させる方法が知られている。例えば、ソフトウェア処理によって受信割込み処理や受信中のステータスフラグの立上りを確認し、それを基点にソフトカウンタを利用してデータ送信を遅延させる時間を計測する方法がある。しかし、この方法では、システム周波数に依存する場合や、ノード毎にドライバソフトの共通化(共用化)ができない場合、CPUの処理負荷が増大し処理効率が悪化する。一方、ソフトカウンタにより充分な時間を取ってドライバソフトを共通化した場合、通信バスの空き時間が増加するため、通信バス効率が悪化してしまう。
このような効率の悪化を回避するため、モード設定によって受信割込みを遅延させる技術が特開2001−237811に記載されている(特許文献1参照)。図2は、特許文献1に記載のシリアル通信装置の構成を示す図である。図2を参照して、特許文献1に記載のノード10は、受信制御回路51、遅延用シフトレジスタ52、セレクタ53、割込み制御回路54、CPU55を備える。受信制御回路51はストップビットを検出して受信終了フラグを立てる。遅延用シフトレジスタ52は受信終了フラグを遅延させてセレクタ53にセットする。セレクタ53は、モード信号に応じて受信制御回路51からの受信終了フラグと、遅延用シフトレジスタ52からの受信終了フラグの一方を選択して割込み制御回路54にセットする。割込み制御回路54は、セットされた受信終了フラグに応じて割込み要求信号をCPU55に出力する。CPU55は、割込み要求信号に応じて送信データを出力する。
半二重モードのとき、セレクタ53は、遅延された受信終了フラグを割込み制御回路54にセットする。これによりCPU55からのデータの出力は遅延し、ストップビットのビット長が1ビットを超える時刻に通信バス上にデータが送出される。この結果、通信バス上におけるストップビットのビット長が送信データによって短くなることを回避できる。
このように、特許文献1に記載のシリアル通信装置では、モード設定により受信完了割込みを遅延させているため、モード設定した際には必ず受信割込みが遅れて発生し、CPUの受信処理時間が遅延するため効率が悪化してしまう。
図3を参照して、特許文献1に記載のシリアル通信装置では、時刻T1において通信バス上のストップビットを検出(サンプリング)してから、次のサンプリング(時刻T3)までの間、受信完了割込み信号の発行が遅延される。このため、ストップビットの検出後の受信データが確定する時刻T2から受信割込み信号の発行後の時刻T4までの期間TB、CPU55は、送信データの準備及び出力処理を実行できない。例えば、受信データの1フレームが、データ(8ビット)、スタートビット(1ビット)、ストップビット(1ビット)で構成されている場合、1フレームに対して1割の時間を送信データの準備及び送信に利用できないことになる。
又、CPUは割込み信号が入力されるとすぐにその割込み信号に応じた処理を行なうとは限らない。割込み信号の優先順位にも依存するがCPUにおいて複数の割込み処理が行なわれる場合、送信データの準備や出力(送信データ用シフトレジスタへの書き込み)には、1ビット長以上を費やすこともある。この場合では割込み信号を遅らせる意味がなく、通信バス上のデータもストップビットが1ビット長以上となるため通信バス効率も悪くなる。更に、近年では、様々な周辺機器が追加されており、割込み処理も多様化している。このため、少しでも、CPUの処理効率や、データの受信から送信までにかかる時間を短縮する必要がある。
以下に、[発明を実施するための形態]で使用される番号・符号を括弧付きで用いて、[課題を解決するための手段]を説明する。この番号・符号は、[特許請求の範囲]の記載と[発明を実施するための形態]の記載との対応関係を明らかにするために付加されたものであるが、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明によるシリアル通信システムは、通信バス(10)を介して他のノードとシリアル通信を行なうノード(2)を具備する。ノード(2)は、他のノードへの送信データを生成する演算処理装置(14)と、送信データ(200)を保持する送信バッファ(32)と、半二重通信を行なう際、送信バッファ(32)が保持する送信データ(200)を所定の期間待機させた後、他のノードに送信する送信制御回路(31)とを備える。
本発明による通信方法は、通信バス(10)を介して他のノードとシリアル通信を行なうノード内で行なわれる。本発明による通信方法は、演算処理装置(14)が、他のノードへの送信データ(200)を生成するステップと、送信バッファ(32)が、送信データ(200)を保持するステップと、半二重通信を行なう際、保持する送信データ(200)を所定の期間待機させた後、他のノードに送信するステップを備える。
以上のように、本発明では、演算処理装置(14)におけるデータの出力処理を待機させずに、他のノードへの送信タイミングを変更することができる。
従って、本発明によれば、半二重通信を行なうシリアル通信システムにおいて、データの送信に係るCPUの処理効率を向上させることができる。
又、他のノードにおけるデータ受信を妨げないように、受信データと送信データのフレーム間のビット長を確保可能となり、通信エラーを回避できる。
以下、添付図面を参照して、本発明によるシリアル通信システムの実施の形態を詳細に説明する。一般的に非同期シリアル通信を採用した通信システムでは全二重通信方式にも半二重方式にも対応可能となっている。この場合、製品仕様やユーザのニーズに応じてどちらか一方が選択使用される。このため、本実施の形態では、半二重通信方式と全二重通信方式を切り換え可能な非同期シリアル通信システムについて説明する。本発明は、それぞれが演算処理装置を備える複数のノードをシリアル通信で接続したマイクロコンピュータに好適に利用される。
1.第1の実施の形態
(構成)
図4から図7を参照して、本発明によるシリアル通信システムの第1の実施の形態における構成を説明する。図4は、本発明によるシリアル通信システムの構成を示すブロック図である。図4を参照して、シリアル通信システムは、通信バス10(データバス)を介して接続される複数のシリアル通信装置(ノード)1、2、3、…を具備する。複数のノード1、2、3、…のそれぞれは、通信バス10に接続される受信端子11及び送信端子12を備える。ノード1、2、3、…のそれぞれの受信端子11及び送信端子12は、半二重通信方式のとき共通の伝送線に接続される。又、全二重通信方式のときは自ノードの受信端子11と他のノードの送信端子12、自ノードの送信端子12と他のノードの受信端子11とが相互に接続される。
(構成)
図4から図7を参照して、本発明によるシリアル通信システムの第1の実施の形態における構成を説明する。図4は、本発明によるシリアル通信システムの構成を示すブロック図である。図4を参照して、シリアル通信システムは、通信バス10(データバス)を介して接続される複数のシリアル通信装置(ノード)1、2、3、…を具備する。複数のノード1、2、3、…のそれぞれは、通信バス10に接続される受信端子11及び送信端子12を備える。ノード1、2、3、…のそれぞれの受信端子11及び送信端子12は、半二重通信方式のとき共通の伝送線に接続される。又、全二重通信方式のときは自ノードの受信端子11と他のノードの送信端子12、自ノードの送信端子12と他のノードの受信端子11とが相互に接続される。
図5は、本発明によるシリアル通信装置(ノード)2の実施の形態における構成を示す図である。図5を参照してノード2の構成を説明する。尚、ノード1、3の構成はノード2と同様なので、説明を省略する。図5を参照して、ノード2は、それぞれが通信バス13を介して接続される演算処理装置(CPU)14、割込み制御回路U1、受信ユニットU2、送信ユニットU3と、ボーレートジェネレータ34とを具備する。
受信ユニットU2は、ボーレートジェネレータ34で生成されたボーレートに応じて動作し、受信端子11から入力されるデータ100を、通信バス13を介してCPU14に入力する。詳細には、受信ユニットU2は、受信制御回路21、受信シフトレジスタ22、受信バッファ23、受信サンプリング回路24を備える。
受信端子11から入力されたデータ100は、受信サンプリング回路24から出力される受信サンプリング信号101に応じて、受信シフトレジスタ22に取り込まれる。受信サンプリング回路24は、ボーレートジェネレータ34からのボーレートに応じたタイミングで受信サンプリング信号101を生成する。ボーレートジェネレータ34は、図示しないクロック信号に応じた周期のボーレートを生成する。クロック信号は、例えばノード固有に生成される。このため、ノード1、2、3…のそれぞれのボーレートは、動作クロックの周波数の違いや受信サンプリング回路24の精度差により誤差が生じている。従って、本発明によるシリアル通信システムでは、従来と同様にノード毎に許容ボーレート誤差範囲が設定されている。
受信制御回路21は、受信シフトレジスタ22で取り込まれたデータのデータ形式を検出する。受信端子11で受信されるデータフレームは、スタートビット、データビット、ストップビットを含む。受信制御回路21は、ストップビットを検出すると割込み制御回路U1及び送信ユニットU3(待機制御回路(Wait Tim制御回路)40)に通知するとともに、受信シフトレジスタ22を制御してデータフレームを受信バッファ23に転送させる。
受信制御回路21はストップビットを検出すると受信完了通知信号102を割込み制御回路U1及び送信ユニットU3(待機制御回路40)に出力する。あるいは、受信制御回路21はストップビットを検出すると受信完了を示す受信完了フラグを立てても良い。この場合、割込み制御回路U1及び送信ユニットU3(待機制御回路40)は、受信完了フラグによって受信完了を確認することができる。受信バッファ23に書き込まれたデータフレームは通信バス13を介してCPU14に出力される。
割込み制御回路U1は、データフレームの受信完了の通知に応じてCPU14に対し受信割込みを設定する。CPU14は受信割込みに応じた割込み処理を実行する。例えば、CPU14は、割込み処理として受信に応じて他のノードに送信するデータフレーム(送信データ)の生成及び出力処理を行なう。
送信ユニットU3は、CPU13から出力されたデータフレームを、ボーレートに応じたタイミングで送信端子12を介して送信する。詳細には、送信ユニットU3は、送信制御回路31、送信シフトレジスタ32、送信タイミング生成回路33、待機制御回路40、及びアドレス検出回路(アドレスチェック)41を備える。
送信シフトレジスタ32には、半二重通信用の第1アドレスと全二重用の第2アドレスが割り当てられている。CPU32は、半二重通信を行なう際、第1アドレスを宛先として送信データを出力し、全二重通信を行なう際、第2アドレスを宛先として送信データを出力する。CPU14から出力されたデータは、送信タイミング生成回路33で生成される送信タイミングに応じて、送信シフトレジスタ32に取り込まれる。送信タイミング生成回路33は、ボーレートジェネレータ34からのボーレートに応じたタイミングで送信タイミングを決定する。
アドレス検出回路41は、CPU14が送信シフトレジスタにアクセスする際の宛先アドレス(書き込みアドレス)を検出して、待機制御回路40に通知するともに、送信データ100の送信要求信号104を待機制御回路40に出力する。書き込みアドレスの通知は、例えばフラグを用いて行なわれる。アドレス検出回路41は、フラグのレベルを第1アドレスを検出すると半二重通信方式を示す第1レベル(例えばハイレベル)に設定し、第2アドレスを検出すると全二重通信方式を示す第2レベル(例えばローレベル)に設定する。すなわち、本発明ではアドレス検出回路41によって、シリアル通信システムで使用される通信方式を検出することができる。
待機制御回路40は、受信制御回路21からの受信完了の通知と、アドレス検出回路41において検出された書き込みアドレス(通信方式)とに応じて送信データの送信待機時間(待機期間)を設定する。待機制御回路40は、全二重通信方式で通信する場合、アドレス検出回路41から出力された送信要求信号104をそのまま送信開始信号105として送信制御回路31に出力する。一方、半二重通信方式で通信する場合、待機制御回路40は、アドレス検出回路41から出力された送信要求信号104を、所定の期間(待機期間)待機させてから送信開始信号105として送信制御回路31に出力する。待機制御回路40は、送信タイミング生成回路33からの送信タイミングに基づき待機期間を設定する。すなわち、送信タイミングに応じて送信開始信号105を出力する時刻が待機期間の終了時刻となる。
送信制御回路31は、送信シフトレジスタ32に書き込まれた送信データ200を、待機制御回路40からの送信開始信号105に応じて送信端子12(通信バス10)に送出させる。この際、送信データ200は、ボーレートに基づく送信タイミングで送出される。
(動作)
図6及び図7を参照して、本発明によるシリアル通信システムの半二重通信方式による通信動作の詳細を説明する。図6は、本発明によるシリアル通信システムの第1の実施の形態における動作の一例を示すタイミングチャートである。第1の実施の形態では、待機期間Tsは予め設定されており、ストップビットの検出(データ100の受信完了)に応じて待機期間Tsの開始時刻が設定される(開始時刻の設定に応じて待機期間の終了時刻も決定する)。図6を参照して、予め設定された待機期間Ts中にCPU14から送信データが出力された場合のシリアル通信システムの動作を説明する。
図6及び図7を参照して、本発明によるシリアル通信システムの半二重通信方式による通信動作の詳細を説明する。図6は、本発明によるシリアル通信システムの第1の実施の形態における動作の一例を示すタイミングチャートである。第1の実施の形態では、待機期間Tsは予め設定されており、ストップビットの検出(データ100の受信完了)に応じて待機期間Tsの開始時刻が設定される(開始時刻の設定に応じて待機期間の終了時刻も決定する)。図6を参照して、予め設定された待機期間Ts中にCPU14から送信データが出力された場合のシリアル通信システムの動作を説明する。
ここでは、ノード1から送信されたデータ100の受信に応じて送信データ200を送出するノード2の動作について説明する。ノード1は、スタートビット、データビット(8ビット)、ストップビットを含むフレームデータ(データ100)を通信バス10に送出する。時刻T1において、ノード2はストップビットを検出する。この際、ハイレベルの受信完了通知信号102が待機制御回路40にセットされる。時刻T2において、待機制御回路40には、受信完了通知信号102に応じてハイレベルの待機制御信号103がセットされる。これによりデータ送信の待機期間が設定される。本実施の形態では、待機制御信号103は、予め設定された期間(待機期間Ts)ハイレベルにセットされる。すなわち、時刻T2から待機期間Tsだけ経過した時刻T5が待機期間の終了時刻となる。
一方、ストップビットの受信が検出されると、受信完了割込みが発生し、時刻T3においてCPU14から送信データ200が送信シフトレジスタ(送信バッファ)32に出力されるとともに、アドレス検出回路41を介して送信要求信号104が出力される。この際、アドレス検出回路41は、送信シフトレジスタ32への書き込みアドレスが第1アドレスであることを検出し、検出結果を待機制御回路40に通知する。これにより待機制御回路40は、待機期間中に入力される送信要求信号104を待機させる制御を行なう。詳細には、送信要求信号104の出力された時刻T3が待機期間Ts内である場合、すなわち、待機期間Ts中にCPU14からデータ200が出力された場合、待機制御回路40は、送信要求信号104の立下り時刻T4から待機期間Tsが終了する時刻T5までの間(期間Tw)、送信要求信号104を待機させた後、送信開始信号105として送信制御回路31に出力する。
時刻T6において、送信制御回路31は、送信開始信号105に応じて送信シフトレジスタ32に書き込まれた送信データ200を送信端子11から通信バス10上に送出させる。ノード1から送出された通信バス10上のストップビットは、時刻T6においてデータ200のスタートビットに置き換わるが、そのデータ幅は、待機期間Ts以上となる。ここで、待機期間Tsを1ビット長以上に設定することで、データ100のストップビットのビット長Tstを1ビット長以上とすることができる。すなわち、本発明によれば、データ100の受信完了に応じてデータ200を送信しても、データ100のストップビットのデータ幅を短縮させることがない。これにより、ノード2と他のノード3とのサンプリングタイミングに大きな誤差(許容範囲内の誤差)があっても、ストップビットのデータ長が1ビット以上確保され、ノード3は受信エラーを起こすことなくデータ100を受信することができる。
又、本発明では、CPU14から送信シフトレジスタ32に書き込まれたデータ200を所定の期間Tw待機している。このため、CPU14は、受信完了後速やかに出力される受信完了割込み信号に応じて、送信データの準備及び出力処理を行なうことができる。すなわち、CPU14は、受信完了後すぐに送信データを送信するための割込み処理を行なうことが可能となる。従来問題となっていたCPUの処理効率の低下や、データの受信から送信までにかかる時間の長大化を解消することができる。
更に、本発明によるシリアル通信装置2では、送信シフトレジスタ32に2つのアドレスを割り当て、書き込みアドレスの相違に応じて、全二重通信方式と半二重通信方式とを切り換えている。例えば、全二重通信方式用の第2アドレスにアクセスがある場合、待機制御回路40は、待機期間Tsの有無に関わらず送信要求信号104をそのまま送信開始信号105として送信制御回路31に出力する。これにより、ノード2は、データの受信完了の有無に関わらず、CPU14からの送信データ200を送出し全二重通信を行なうことが可能となる。
図7は、本発明によるシリアル通信システムの第1の実施の形態における動作の他の一例を示すタイミングチャートである。図7を参照して、予め設定された待機期間Tsが経過した後にCPU14から送信データが出力された場合のシリアル通信システムの動作を説明する。
ここでは、図6と同様に、ノード1は、スタートビット、データビット(8ビット)、ストップビットを含むフレームデータ(データ100)を通信バス10に送出する。時刻T1において、ノード2はストップビットを検出する。この際、ハイレベルの受信完了通知信号102が待機制御回路40にセットされる。時刻T2において、待機制御回路40には、受信完了通知信号102に応じてハイレベルの待機制御信号103がセットされる。これによりデータ送信の待機期間が設定される。本実施の形態では、待機制御信号103は、予め設定された期間(待機期間Ts)ハイレベルにセットされる。すなわち、時刻T2から待機期間Tsだけ経過した時刻T3が待機期間の終了時刻となる。
ストップビットの受信が検出されると、受信完了割込みが発生し、時刻T4においてCPU14から送信データ200が送信シフトレジスタ(送信バッファ)32に出力されるとともに、アドレス検出回路41を介して送信要求信号104が出力される。この際、アドレス検出回路41は、送信シフトレジスタ32への書き込みアドレスが第1アドレスであることを検出し、検出結果を待機制御回路40に通知する。これにより待機制御回路40は、待機期間中に入力される送信要求信号104を待機させる制御を行なう。
ここで、送信要求信号104の出力された時刻T4が、待機期間Tsの終了後である場合、すなわち、待機期間Tsの経過後にCPU14からデータ200が出力された場合、待機制御回路40は、送信要求信号104を待機させずに(スルーして)送信開始信号105として送信制御回路31に出力する。
時刻T5において、送信制御回路31は、送信開始信号105に応じて送信シフトレジスタ32に書き込まれた送信データ200を送信端子11から通信バス10上に送出させる。すなわち、本発明では、CPU14からのデータ200の送出が、所定の期間(待機期間Ts)だけ経過した後に行なわれた場合、データ200を待機させずに通信バス10に送出することができる。この場合も、ノード1から送出された通信バス10上のストップビットは、時刻T5においてデータ200のスタートビットに置き換わるが、そのデータ幅は、待機期間Ts以上となる。ここで、待機期間Tsを1ビット長以上に設定することで、データ100のストップビットのビット長Tstは、1ビット長以上となる。
又、CPU14は割込み信号が入力されるとすぐにその割込み信号に応じた処理を行なうとは限らず、データ200を送出してもストップビットのビット長Tstは1ビット以上を確保している場合がある。このような場合、本発明では、受信割込み信号及びCPU14からの出力されたデータ200も遅延させていないため、受信からCPU14によるデータ200の送信まで最短の時間で処理することができる。このため、ストップビットのビット長Tstが充分確保されている場合、データの送信を従来よりも早めることができ、通信バス効率を向上させることができる。更に、近年では、様々な周辺機器が追加されており、割込み処理も多様化している。
以上のように、本発明では、データ100の受信からデータ200の送出までの間、CPU14の処理を遅滞させることがないため、CPUの処理効率を向上させることができる。例えば、受信データの1フレームが、データ(8ビット)、スタートビット(1ビット)、ストップビット(1ビット)で構成されている場合、従来技術では利用できなかった1フレームに対して1割の時間を送信データの準備及び送信に利用できる。又、本発明では、受信完了時を基準として終了時刻が決まる待機期間Ts内にCPU14から送出されたデータを待機させ、待機期間Ts経過後に送出させたデータを遅滞なく送信する。これにより、CPU14の処理に関わらず設定可能な待機期間Ts以上に通信バス10上のストップビットのビット長Tstを効率良く確保することができる。
更に、本発明では、アドレスを用いて全二重通信方式と半二重通信方式との切り換えが行なわれる。このため、従来技術によるモード切り替えと異なり、送信シフトレジスタ32(送信バッファ)に割り当てるアドレスを変更するだけで、ソフトウェアの大幅な変更を必要としない。ソフトウェアを改良する場合、ノード毎に対応する変更を必要とするとともにシステム全体に整合した改良を行なう必要がある。このため、ソフトウェアの改良には多くのコストを要する。本発明では簡易な変更によって半二重通信と全二重通信を切り換え可能なシリアル通信システムを提供できるため、開発コストを削減することができる。
2.第2の実施の形態
図8を参照して、本発明によるシリアル通信システムの第2の実施の形態における動作を説明する。図8は、本発明によるシリアル通信システムの第2の実施の形態における動作を示すタイミングチャートである。第2の実施の形態におけるシリアル通信システムの構成は第1の実施の形態と同様であるので説明は省略する。第2の実施の形態では、スタートビットの検出(データ100の受信開始)に応じて待機期間Tsの開始時刻が設定され、ストップビットの検出(データ100の受信完了)に応じて待機期間Tsの終了時刻が設定される。
図8を参照して、本発明によるシリアル通信システムの第2の実施の形態における動作を説明する。図8は、本発明によるシリアル通信システムの第2の実施の形態における動作を示すタイミングチャートである。第2の実施の形態におけるシリアル通信システムの構成は第1の実施の形態と同様であるので説明は省略する。第2の実施の形態では、スタートビットの検出(データ100の受信開始)に応じて待機期間Tsの開始時刻が設定され、ストップビットの検出(データ100の受信完了)に応じて待機期間Tsの終了時刻が設定される。
ここでは、図6と同様に、ノード1は、スタートビット、データビット(8ビット)、ストップビットを含むフレームデータ(データ100)を通信バス10に送出する。時刻T1において、受信制御回路21はスタートビットを検出し、受信スタート信号107を割込み制御回路U1及び待機制御回路40に出力する。この際、ハイレベルの受信スタート信号107が待機制御回路40にセットされる。時刻T2において、待機制御回路40には、受信スタート信号107に応じてハイレベルの待機制御信号103がセットされる。これによりデータ送信の待機期間の開始時刻が設定される。すなわち、時刻T2が待機期間の開始時刻となる。尚、受信制御回路21は受信スタート信号107に替えてフラグによって受信開始を待機制御回路40に通知しても良い。
本実施の形態では、CPU14は、受信完了割込みに関係なく送信データ200を生成及び出力しても構わない。例えば、ノード1から送信データ100が送信されている途中の時刻T3において、CPU14から送信データ200が送信シフトレジスタ(送信バッファ)32に出力されるとともに、アドレス検出回路41を介して送信要求信号104が出力されても良い。この場合、第1の形態と同様に、アドレス検出回路41は、送信シフトレジスタ32への書き込みアドレスが第1アドレスであることを検出し、検出結果を待機制御回路40に通知する。これにより待機制御回路40は、待機期間中に入力される送信要求信号104を待機させる制御を行なう。すなわち、待機期間Ts中にCPU14からデータ200が出力された場合、待機制御回路40は、送信要求信号の立下り時刻T4から待機期間Tsが終了する時刻T7までの間(期間Tw)、送信要求信号104を待機させた後、送信開始信号105として送信制御回路31に出力する。
時刻T5において、ノード2はストップビットを検出する。この際、ハイレベルの受信完了通知信号102が待機制御回路40にセットされる。時刻T6において、待機制御回路40には、受信完了通知信号102に応じてハイレベルの待機制御信号103がセットされる。これによりデータ送信の待機期間Tsの終了時刻が設定される。本実施の形態では、待機制御信号103は、受信完了通知信号102の立下り時刻T6から予め設定された期間Te後の時刻T7が待機期間Tsの終了時刻として設定される。
時刻T7において、送信制御回路31は、送信開始信号105に応じて送信シフトレジスタ32に書き込まれた送信データ200を送信端子11から通信バス10上に送出させる。ノード1から送出された通信バス10上のストップビットは、時刻T7においてデータ200のスタートビットに置き換わるが、そのデータ幅は、期間Te以上となる。ここで、期間Teを1ビット長以上に設定することで、データ100のストップビットのビット長Tstを1ビット長以上とすることができる。すなわち、本発明によれば、データ100の受信完了に応じてデータ200を送信しても、データ100のストップビットのデータ幅を短縮させることがない。これにより、ノード2と他のノード3とのサンプリングタイミングに大きな誤差(許容範囲内の誤差)があっても、ストップビットのデータ長が1ビット以上確保され、ノード3は受信エラーを起こすことなくデータ100を受信することができる。
又、本実施の形態において、待機期間Tsが経過した後にCPU14から送信データが出力された場合でも、図7に示す一例と同様に、CPU14からの出力されたデータ200を遅延させずに通信バス10に送出することができる。又、第1の実施の形態と同様に送信シフトレジスタ32に2つのアドレスを割り当てることで半二重通信と全二重通信を切り換えることができる。
以上のように、本実施の形態におけるシリアル通信システムは、データの受信が完了する前でもCPU14による送信データ200の準備及び出力を行なうことができる。これにより、更にCPU14の処理効率を向上させることができる。
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。上述の実施の形態では、半二重通信方式と全二重通信方式とを切り換え可能なシステムについて説明したが、半二重通信方式のみを利用するシリアル通信システムにも適用できる。又、待機制御回路40は、受信完了通知信号102に応じて待機期間の終了時刻を設定しているが、割込み制御回路U1からの受信割込み信号に応じて設定しても良い。
1〜3:ノード
10:通信バス(データバス)
11:受信端子
12:送信端子
13:通信バス
14:CPU
21:受信制御回路
22:受信シフトレジスタ
23:受信バッファ
24:受信サンプリング生成回路
31:送信制御回路
32:送信シフトレジスタ
33:送信タイミング生成回路
34:ボーレートジェネレータ
40:待機制御回路(Wait Tim制御回路)
41:アドレス検出回路(アドレスチェック)
100:データ(受信データ、ノード1の送信データ)
101:受信サンプリング信号
102:受信完了通知信号
103:待機制御信号
104:送信要求信号
105:送信開始信号
107:受信スタート信号
200:データ(送信データ)
U1:割込み制御回路
U2:受信ユニット
U3:送信ユニット
10:通信バス(データバス)
11:受信端子
12:送信端子
13:通信バス
14:CPU
21:受信制御回路
22:受信シフトレジスタ
23:受信バッファ
24:受信サンプリング生成回路
31:送信制御回路
32:送信シフトレジスタ
33:送信タイミング生成回路
34:ボーレートジェネレータ
40:待機制御回路(Wait Tim制御回路)
41:アドレス検出回路(アドレスチェック)
100:データ(受信データ、ノード1の送信データ)
101:受信サンプリング信号
102:受信完了通知信号
103:待機制御信号
104:送信要求信号
105:送信開始信号
107:受信スタート信号
200:データ(送信データ)
U1:割込み制御回路
U2:受信ユニット
U3:送信ユニット
Claims (14)
- 通信バスを介して他のノードとシリアル通信を行なうノードを具備し、
前記ノードは、
前記他のノードへの送信データを生成する演算処理装置と、
前記送信データを保持する送信バッファと、
半二重通信を行なう際、前記送信バッファが保持する送信データを所定の期間待機させた後、前記他のノードに送信する送信制御回路と、
を備え、
シリアル通信システム。 - 請求項1に記載のシリアル通信システムにおいて、
前記ノードは、データの受信完了時を基準として待機期間の終了時刻を設定する待機制御回路を更に備え、
半二重通信を行なう際、前記送信制御回路は、前記待機期間中に前記送信バッファに書き込まれた送信データを、前記終了時刻まで待機させた後、前記他のノードに送信する
シリアル通信システム。 - 請求項2に記載のシリアル通信システムにおいて、
前記送信バッファには半二重通信用の第1アドレスが割り当てられ、
前記ノードは、前記演算処理装置による前記送信バッファへの書き込みアドレスを検出するアドレス検出回路を更に備え、
前記送信制御回路は、前記待機期間中に前記書き込みアドレスとして前記第1アドレスが検出されると、前記送信バッファに書き込まれた送信データの送信を待機する
シリアル通信システム。 - 請求項2又は3に記載のシリアル通信システムにおいて、
前記送信バッファには全二重通信用の第2アドレスが更に割り当てられ、
前記送信制御回路は、前記書き込みアドレスとして前記第2アドレスが検出されると前記送信バッファに書き込まれた送信データを待機させずに送信する
シリアル通信システム。 - 請求項2から4のいずれか1項に記載のシリアル通信システムにおいて、
前記待機期間が経過した後に送信データが前記送信バッファに書き込まれた場合、前記送信制御回路は、前記送信バッファに書き込まれたデータを待機させずに送信する。
シリアル通信システム。 - 請求項2から5のいずれか1項に記載のシリアル通信システムにおいて、
前記演算処理装置は、前記送信データの生成とともに送信要求信号を発行し、
半二重通信を行なう際、前記待機制御回路は、前記待機期間中に受け取った前記送信要求信号を前記終了時刻まで保持した後、送信開始信号として前記送信制御回路に出力し、
前記送信制御回路は、前記送信開始信号に応じて、前記送信バッファが保持する送信データを前記他のノードに送信する
シリアル通信システム。 - 請求項6に記載のシリアル通信システムにおいて、
前記待機期間が経過した後に受け取った前記送信要求信号を待機させずに前記送信開始信号として送信する。
シリアル通信システム。 - 通信バスを介して他のノードとシリアル通信を行なうノード内で行なわれる通信方法において、
演算処理装置が、前記他のノードへの送信データを生成するステップと、
送信バッファが、前記送信データを保持するステップと、
半二重通信を行なう際、前記保持する送信データを所定の期間待機させた後、前記他のノードに送信するステップと、
を具備する
通信方法。 - 請求項8に記載の通信方法において、
データの受信完了時を基準として待機期間の終了時刻を設定するステップを更に具備し、
前記送信データを送信するステップは、前記待機期間中に前記送信バッファに書き込まれた送信データを、前記終了時刻まで待機させた後、前記他のノードに送信するステップを備える
通信方法。 - 請求項9に記載の通信方法において、
前記送信バッファには半二重通信用の第1アドレスが割り当てられ、
前記演算処理装置による前記送信バッファへの書き込みアドレスを検出するステップを更に具備し、
前記送信データを送信するステップは、前記待機期間中に前記書き込みアドレスとして前記第1アドレスが検出されると、前記送信バッファに書き込まれた送信データの送信を待機する
通信方法。 - 請求項9又は10に記載の通信方法において、
前記送信バッファには全二重通信用の第2アドレスが更に割り当てられ、
前記書き込みアドレスとして前記第2アドレスが検出されると前記送信バッファに書き込まれた送信データを待機させずに送信するステップを更に具備する
通信方法。 - 請求項9から11のいずれか1項に記載の通信方法において、
前記待機期間が経過した後に送信データが前記送信バッファに書き込まれた場合、前記送信バッファに書き込まれたデータを待機させずに送信するステップを更に具備する
通信方法。 - 請求項9から12のいずれか1項に記載の通信方法において、
前記演算処理装置が、前記送信データの生成とともに送信要求信号を発行するステップを更に具備し、
前記送信データを送信するステップは、
前記待機期間中に受け取った前記送信要求信号を前記終了時刻まで保持した後、送信開始信号として前記送信制御回路に出力するステップと、
前記送信開始信号に応じて、前記送信バッファが保持する送信データを前記他のノードに送信するステップと
を備える
通信方法。 - 請求項13に記載の通信方法において、
前記待機期間が経過した後に受け取った前記送信要求信号を待機させずに前記送信開始信号として送信するステップを更に具備する。
通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009020570A JP2010178199A (ja) | 2009-01-30 | 2009-01-30 | シリアル通信システム、及び通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009020570A JP2010178199A (ja) | 2009-01-30 | 2009-01-30 | シリアル通信システム、及び通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010178199A true JP2010178199A (ja) | 2010-08-12 |
Family
ID=42708674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009020570A Withdrawn JP2010178199A (ja) | 2009-01-30 | 2009-01-30 | シリアル通信システム、及び通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010178199A (ja) |
-
2009
- 2009-01-30 JP JP2009020570A patent/JP2010178199A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386025B2 (en) | Daisy chain complex commands | |
KR20120106638A (ko) | 동기식 데이터 프로세싱 시스템 및 방법 | |
JPWO2010013340A1 (ja) | データ転送装置、データ送信装置、データ受信装置およびデータ転送方法 | |
US8588234B2 (en) | Data processing apparatus, method, and computer-readable storage medium for dynamically controlling a transmission interval | |
JP5930767B2 (ja) | 電子デバイス、通信制御方法 | |
JP6272847B2 (ja) | クロック・ドメイン間のデータ転送 | |
JP2006079621A (ja) | ベースバンドプロセッサと無線周波数集積モジュールとの間のデジタルプログラミングインターフェース | |
JP2010178199A (ja) | シリアル通信システム、及び通信方法 | |
JP2009163531A (ja) | 割り込み管理機構およびマイクロコンピュータ | |
JP2010218170A (ja) | データ転送装置、情報処理装置、アービトレーション方法及び画像形成システム | |
JP5334173B2 (ja) | データ転送システム及びリトライ制御方法 | |
JP5482306B2 (ja) | データ転送制御装置及び電子機器 | |
JP3586603B2 (ja) | データ転送装置及びデータ転送方法 | |
JP2000299716A (ja) | データ受信装置及びデータ受信方法 | |
JP2022134510A (ja) | 通信装置、通信装置の制御方法、プログラム、および記憶媒体 | |
JP6213003B2 (ja) | 通信制御装置、画像処理装置、通信制御プログラム | |
JP2008047033A (ja) | 制御装置及び制御方法 | |
JP5315882B2 (ja) | 半導体装置及び通信方法 | |
JP2023030295A (ja) | ラッチ回路装置及びポートサンプリングシステム | |
JP2005182505A (ja) | データ転送制御装置および画像形成装置 | |
JP2019133567A (ja) | データ受信装置、データ送受信システム、及びデータ送受信システムの制御方法 | |
JP2010198429A (ja) | 割込制御装置および画像形成装置 | |
JP2008046874A (ja) | データ転送装置及び方法 | |
JP2001005742A (ja) | データ転送方式 | |
JP2018088096A (ja) | 制御装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120403 |