情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体
【課題】調歩同期式のシリアル通信における通信データのサンプリングタイミングを簡単な回路構成によって制御することで通信データ単位でのサンプリング誤差の累積を防止し、通信データの受信エラーの発生を抑止することができるようにした情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体を提供する。
【解決手段】調歩同期式のシリアル通信に用いられるビット単位の通信データの受信の際に、「基準クロックを分周したカウンタークロック」のカウンタークロック数に対する、「基準クロックから算出される分周値をもとにハード特性を考慮した特性分周値」を計算する。分周値と特性分周値を用いて算出されるそれぞれのカウンタークロックに基づく誤差からビット単位での誤差量を算出し、その誤差量をもとにカウンタークロック数の計数を行う際の初期値を決定する。
【解決手段】調歩同期式のシリアル通信に用いられるビット単位の通信データの受信の際に、「基準クロックを分周したカウンタークロック」のカウンタークロック数に対する、「基準クロックから算出される分周値をもとにハード特性を考慮した特性分周値」を計算する。分周値と特性分周値を用いて算出されるそれぞれのカウンタークロックに基づく誤差からビット単位での誤差量を算出し、その誤差量をもとにカウンタークロック数の計数を行う際の初期値を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体に関する。
【背景技術】
【0002】
通信装置間のダイレクト通信(PtoP)や通信モジュール間のダイレクト通信に用いられる調歩同期式(非同期式)のシリアル通信方式は、文字情報等のデータ送信に用いられる通信方式であって、非同期で通信を行うために、送信するデータの先頭部分にスタートビットを付与するとともに該データの末尾にストップビットを付与する。
【0003】
通信を行う通信装置ではこの調歩同期式(非同期式)のシリアル通信方式でデータの送受信を行うために、該データの受信前には通信ラインをハイレベル(Hレベル)の状態を維持しており、送信側の通信装置がデータのスタートビットとしてローレベル(Lレベル)を送信し、その信号を受信側の通信装置が受信することでデータの受信を開始する。
【0004】
受信したデータはビット列によって構成され、文字情報等の情報を構成するビット列は各ビットデータに対して基準となるクロック信号を分周したクロック信号で動作するカウンターを用いることで所定のカウンター値となるタイミングでサンプリングを行うことで取得して全データを受信している。
【0005】
特許文献1に開示された従来技術では、サンプリング用クロック信号の移動制御を行うことによってサンプリングのタイミングを変更できることができることが記載されている。この技術では、1ビット当たりの期間を複数に分周したときのサンプリングのタイミングを前後にずらす制御を行うことで受信エラーを防止することが記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−051034号公報(特許4352297号)
【発明の概要】
【発明が解決しようとする課題】
【0007】
このような従来技術では、1ビット当たりの期間(1ビット期間)を複数に分周したときのサンプリングを行う位置を、指定したサンプリング位置から前後にずらした位置においてサンプリングしているため、1ビット期間とサンプリングを行う位置とのマージンが十分でない場合には安定した受信ができない場合がある。これは、サンプリング位置が受信ビット列のビット間の変化点に近い場合、この変化店付近では信号の過度応答(例えば、オーバーシュートやリンギングなど)による波形歪みが生じる為である。
【0008】
また、受信したデータそのものに時間方向のジッタ(揺らぎ)が生じる可能性もあることから、この影響も考慮した場合にはより上記の過度応答による波形歪みの影響と相乗効果によってデータの安定受信ができない可能性がある。
【0009】
そこで、本発明は、調歩同期式のシリアル通信における通信データのサンプリングタイミングを簡単な回路構成によって制御することで通信データ単位でのサンプリング誤差の累積を防止し、通信データの受信エラーの発生を抑止することができるようにした情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、請求項1の発明は、基準クロックをカウンタークロックに分周するクロック分周手段と、調歩同期式のシリアル通信に用いられるビット単位の通信データのビットデータごとに前記クロック分周手段で分周した前記カウンタークロックのカウンタークロック数を計数する計数手段と、前記計数手段によって計数したカウンタークロック数が、予め指定した指定カウンタークロック数となることにより該指定カウンタークロック数の計数タイミングを前記ビットデータの取得タイミングとして検出する取得タイミング検出手段とを備える情報受信制御装置において、前記基準クロックを用いて算出される前記カウンタークロック数に対する分周値を元にカウンタークロック算出特性に基づいた特性分周値を計算する特性分周値計算手段と、前記特性分周値計算手段によって計算した前記特性分周値と前記基準クロックとに基づいて特性カウンタークロックを算出する特性カウンタークロック算出手段と、前記カウンタークロック数に対する分周値と前記基準クロックとに基づいてカウンタークロックを算出するカウンタークロック算出手段と、前記特性カウンタークロック算出手段によって算出した特性カウンタークロックと前記カウンタークロック算出手段によって算出したカウンタークロックとに基づき、前記計数手段によって前記カウンタークロック数を計数したときのビット単位当たりのビット単位誤差情報を算出するビット単位誤差情報算出手段と、前記ビット単位誤差情報算出手段によって算出したビット単位誤差情報を元に、前記計数手段により計数する総カウンタークロック数を前記ビットデータごとに決定する決定手段とを具備し、前記計数手段は、前記決定手段によって決定した前記総カウンタークロック数を計数する。
【0011】
また、請求項6の発明は、基準クロックをカウンタークロックに分周するクロック分周手段と、調歩同期式のシリアル通信に用いられるビット単位の通信データのビットデータごとに前記クロック分周手段で分周した前記カウンタークロックのカウンタークロック数を計数する計数手段と、前記計数手段によって計数したカウンタークロック数が、予め指定した指定カウンタークロック数となることにより該指定カウンタークロック数の計数タイミングを前記ビットデータの取得タイミングとして検出する取得タイミング検出手段とを備える情報受信制御装置により使用される情報受信制御方法であって、前記基準クロックを用いて算出される前記カウンタークロック数に対する分周値を元にカウンタークロック算出特性に基づいた特性分周値を計算する特性分周値計算工程と、前記特性分周値計算工程によって計算された前記特性分周値と前記基準クロックとに基づいて特性カウンタークロックを算出する特性カウンタークロック算出工程と、前記カウンタークロック数に対する分周値と前記基準クロックとに基づいてカウンタークロックを算出するカウンタークロック算出工程と、前記特性カウンタークロック算出工程によって算出された特性カウンタークロックと前記カウンタークロック算出工程によって算出されたカウンタークロックとに基づき、前記計数工程によって前記カウンタークロック数が計数されたときのビット単位当たりのビット単位誤差情報を算出するビット単位誤差情報算出工程と、前記ビット単位誤差情報算出工程によって算出されたビット単位誤差情報を元に、前記計数工程により計数する総カウンタークロック数を前記ビットデータごとに決定する決定工程とを含み、前記計数工程が、前記決定工程によって決定された前記総カウンタークロック数を計数することを特徴とする。
【0012】
また、請求項7の発明は、請求項6に記載の情報受信制御方法を演出手段に実行させる、ことを特徴とする。
【0013】
また、請求項8の発明は、請求項7に記載の情報受信制御プログラムが、演出手段により読み取り可能に記録されていることを特徴とする。
【図面の簡単な説明】
【0014】
【図1】調歩同期式のシリアル通信で用いるビット単位のデータ構造および各ビットのデータのサンプリング状態を示す図。
【図2】本発明の実施の形態における情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体を適用して構成した情報送受信制御装置の詳細な構成を示すブロック図の一例。
【図3】図2に示す基準クロック発生部の詳細な構成を示す図。
【図4】誤差情報を算出する誤差情報算出登録部の詳細な構成を示す図。
【図5】図2に示すサンプリングタイミング制御部の詳細な構成を示すブロック図。
【図6】図2に示すサンプリングタイミング制御部の詳細な構成を示す回路構成図。
【図7】図6に示す回路構成において算出されるデータのタイミングチャートを示す図。
【図8】本発明の実施の形態による情報送受信装置で用いる誤差情報を算出する処理の流れを示すフローチャート。
【図9】本発明の実施の形態による情報送受信装置において行われる処理の流れを示すフローチャート。
【図10】図9に示すカウント制御処理の詳細な流れを示すフローチャート。
【図11】図10に示すサンプリングタイミングを指定する処理の詳細な流れを示すフローチャート。
【発明を実施するための形態】
【0015】
以下、本発明に係わる情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体の一実施例を添付図面を参照して詳細に説明する。
【0016】
通信路が構築された装置間若しくはモジュール間で行われる調歩同期式のシリアル通信では、この調歩同期式の通信の特徴として、送信側装置(送信側モジュール)と受信側装置(受信側モジュール)との間で同期信号を相互に共有することなくデータの送受信を行う。このため、調歩同期式の通信を「非同期通信」とも称されることがある。
【0017】
この調歩同期式の通信に際して、データの送受信が行われていない場合には通信路がH(High)レベルに維持された状態となっており、HレベルからL(Low)レベルとなることでデータの受信が開始される。
【0018】
すなわち、調歩同期式のシリアル通信に用いられるデータは、図1(a)に示すように、ビット構造からなる場合にLレベルのビットデータが開始信号(スタートビット)に設定されており、この開始信号のタイミングで同期をとって通信が行われることとなる。
【0019】
そして、図1(a)に示すように、開始信号に続けて設けられた各ビットが送信側装置(送信側モジュール)と受信側装置(受信側モジュール)との間で送受信を行うデータであって、この図1(a)に示す例では、Lレベルの開始信号に続く8ビット分がそのデータとなっている。
【0020】
図1(a)では、この8ビット分のデータに続いて、パリティビットが設定され、このパリティビットに続いてHレベルの終了信号(ストップビット)が設定されている。
【0021】
このようなビットデータを受信する際には、1ビット当たりの転送時間に相当するタイミングによって各ビットにおけるデータをサンプリングする。そして、Hレベルの終了信号をサンプリングすることによってデータの受信が完了することとなる。
【0022】
このときのサンプリングを行う時点は、受信側に搭載するクロック発生器から発生した基準周波数(以下、「基準クロック」という)をカウンタークロックに分周したときのカウンタークロック数をカウント(計数)して、予め指定されたカウンタークロックをカウントしたときがサンプリングタイミングである。
【0023】
また、図1(b)には、基準クロックを16個のカウンタークロックに分周した(16分周した)状態を示している。
【0024】
この図1(b)では、初期値「0(ゼロ)」から計数していき、カウンター値が「7」となったときのカウンタークロックの立ち上がり時点を予め指定したカウンタークロックとした場合の例であって、すなわち、8番目のカウンタークロックが計数されたときにサンプリングパルスが発生することからこのときが各ビットにおけるサンプリングタイミングである。
【0025】
そして、分周した分周数、図1(b)に示す例では「16」を計数すると、すなわちカウンター値が「15」となると、そのカウンター値を「0(ゼロ)」に初期化(リセット)して、次のビットデータのサンプリングを可能とする。もちろん、Lレベルの開始信号を受信することによってカウンター値を「0(ゼロ)」にリセットするような構成であってもよい。
【実施例】
【0026】
図2は、本発明の実施の形態における情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体を適用して構成した情報送受信制御装置の詳細な構成を示すブロック図の一例である。
【0027】
送信元から送信された通信データは情報受信制御部100における受信部101で受信する。この受信部101で受信した通信データはデータ形式がビット形式からなるデータ(「ビットデータ」という)であって、例えば図1(a)に示すようなデータ構造からなる。
【0028】
この図1(a)に示すようなビットデータを受信部101で受信すると、開始信号検出部102では、そのビットデータのスタートビットに設けられているLレベルの開始信号を検出する。この検出処理では、上記に示すように、通信路がH(High)レベルに維持された状態からLレベルへの変化を検出する。
【0029】
このとき、開始信号検出部102では、検出した開始信号と、基準クロック発生部110により発生された基準クロックを分周部120でカウンタークロックに分周した当該カウンタークロックで動作するカウンターとの同期をとる。この開始信号検出部102はサンプリングタイミング制御部103に対して同期信号を通知する。
【0030】
この基準クロック発生部110の詳細な構成を図3に示している。
【0031】
図3において、基準クロック発生部110は、水晶発振器110−1、PLL110−2を具備して構成されている。
【0032】
水晶発振器110−1は、高精度で所定の周波数を発振する素子であって、この水晶発振器110−1から発振された周波数をPLL110−2へと送出する。
【0033】
PLL(Phase Locked Loop)110−2は、水晶発振器110−1から発振された周波数を可変として所定の発振周波数を一定に保ち、分周部120に対して基準クロックとして発振する。このPLL110−2は、この分周部120以外にもCPU(Central Processing Unit)や各種のモジュールへと基準クロックや可変された所定の周波数を発振することが可能になる。
【0034】
続いて、図2に示すサンプリングタイミング制御部103は、開始信号検出部102より同期信号が通知されると、情報記憶部130で記憶している「誤差情報」を読み出す。
【0035】
サンプリングタイミング制御部103では、読み出した誤差情報を元にサンプリングタイミングの補正処理を行って補正後のサンプリングタイミングとしてデータサンプリング部104へとサンプリングパルス(サンプリング信号)を送信する。
【0036】
これによって、データサンプリング部104は、サンプリングタイミング制御部103からサンプリングパルスを受信したタイミングで受信部101において送信元から受信した通信データのビット単位ごとにサンプリングを行う。このサンプリングタイミング制御部103の詳細な構成を図5に示し、以下で説明する。
【0037】
このようにして、データサンプリング部104においてビット単位でサンプリングを行うと、作業領域(図示せず)へと一時記憶されていき、このデータサンプリング部104が通信データのパリティビットをサンプリングした後、終了信号(ストップビット)のサンプリングを行うことによって作業領域に記憶されているビット単位でサンプリングした通信データを変換部105へと送出する。
【0038】
この変換部105は、作業領域に記憶されているシリアル通信形式における通信データのデータ形式をパラレル通信形式に変換する。
【0039】
そして、変換部105では、パラレル通信形式に変換した通信データを保持部200(単に、「レジスタ」ともいう)に転送することによって保持部200で保持した状態とする。
【0040】
この保持部200において保持されている通信データは、パスI/F300を介してその通信データを用いた処理を行う処理部(図示せず)へと転送される。
【0041】
情報記憶部130で記憶している誤差情報は、図4に示すような構成からなる誤差情報算出登録部によって登録される。
【0042】
図4に示す誤差情報算出登録部は、図2に示すサンプリングタイミング制御部103において誤差情報算出登録機能として構成することができるほか、情報送受信制御装置とは異なる装置としても構成することができ、この誤差情報算出登録部によって算出した誤差情報を図2の情報記憶部130で記憶している。
【0043】
この誤差情報算出登録部は、分周情報記憶部501、分周値算出部502、特性分周値計算部503、カウンタークロック算出部504、誤差情報算出部505、登録処理部506を具備して構成される。
【0044】
分周情報記憶部501は、分周情報を記憶しており、この分周情報として、例えば、図2に示す分周部120において分周されるカウンタークロック数(「分周数」ともいう)の情報(上記の例では「16」)、図2に示す基準クロック発生部110によって発生される基準クロックの情報(P)、変調数であるボーレートの情報(B)などを記憶している。
【0045】
分周値算出部502では、分周情報記憶部501で記憶する分周情報を元に分周値を算出する。
【0046】
まず、カウンタークロック(周波数)(C_clk)は、以下の(式1)によって算出することができる。
【0047】
C_clk = B × カウンタークロック数 ・・・(式1)
【0048】
次に、分周値を「N」とすると、分周値算出部502によって算出される分周値Nは、以下の(式2)によって算出することができる。
【0049】
N = P / C_clk ・・・(式2)
【0050】
すなわち、上記の(式2)を満たす分周値においてサンプリングタイミングを検出している場合には開始信号との同期により、通信データのビットデータごとのサンプリングタイミングが一定となり、各ビットデータを正常にサンプリングすることができるものである。このことから、分周値算出部502によって算出される分周値を「最適分周値」とも称することがある。
【0051】
この分周値算出部502によって算出した分周値(最適分周値)は記憶領域(図示せず)に一時的に記憶され、特性分周値計算部503およびカウンタークロック算出部504へと分周値を算出したことを通知する。
【0052】
この特性分周値計算部503では、分周情報記憶部501で記憶している特性情報(「算出特性情報」ともいう)を読み出してその特性情報に基づく「特性分周値」を計算する。
【0053】
このときの特性情報は、分周値算出部502の算出処理における処理特性を示す情報であって、例えばハードウェア回路によって構成される場合、そのハードウェア回路によって扱える処理数値の形式である。すなわち、分周値算出部502がハードウェア回路によって構成される場合に当該ハードウェア回路で整数値のみを用いて処理がされるという制約があるときには小数値を含む数値は取り扱うことができないという特性を有することとなる。
【0054】
この特性の場合、特性分周値計算部503では、分周値算出部502で算出して記憶領域に記憶している分周値を用いてその特性に基づいた特性分周値を計算する。計算した特性分周値は、上記の記憶領域へと記憶する。
【0055】
このようにして特性分周値を計算した特性分周値計算部503は、特性分周値を計算したことをカウンタークロック算出部504へと通知する。
【0056】
カウンタークロック算出部504では、分周値算出部502によって算出して記憶領域に記憶している分周値および特性分周値計算部503によって計算して記憶領域に記憶している特性分周値を用いて、それぞれの分周値(「最適分周値」、「特性分周値」)に基づくカウンタークロック(C_clk)を算出する。
【0057】
すなわち、このような処理によって分周値Nと特性分周値N_charとが算出された状態となり、上記の(式2)から分周値Nに基づくカウンタークロック(C_clk)および特性分周値N_charに基づく特性カウンタークロック(C_clk_char)は、以下の(式3)および(式4)によって算出される。
【0058】
C_clk = P / N ・・・(式3)
【0059】
C_clk_char = P / N_char ・・・(式4)
【0060】
このように、カウンタークロック算出部504によって算出されると、カウンタークロック算出部504は、カウンタークロック(C_clk)および特性カウンタークロック(C_clk_char)を記憶領域へと記憶し、誤差情報算出部505に対して算出したことを通知する。
【0061】
誤差情報算出部505は、カウンタークロック算出部504からカウンタークロック等が算出されたことが通知されると、分周情報記憶部501から分周情報を読み出す。そして、誤差情報算出部505は、読み出した分周情報および記憶領域に記憶されている情報を元に、ビットデータのビット単位における誤差量および誤差方向からなる誤差情報を算出する。
【0062】
このビット単位における誤差情報ERは以下の(式5)を用いて算出する。
【0063】
ER = ((B / (P /(カウンタークロック数 × N_char))) −1 ) × カウンタークロック数 ・・・(式5)
【0064】
この誤差情報ERにより示される絶対値は、各ビットにおけるサンプリングタイミング間の誤差量であって、符号(プラス(+)、マイナス(−))は、誤差方向を示している。
【0065】
このようにして誤差情報が算出されると、誤差情報算出部505は、この誤差情報を登録処理部506へと送出する。
【0066】
誤差情報算出部505から登録処理部506に送出された場合、この登録処理部506は、図2に示す情報記憶部130に登録する。
【0067】
図2に示す情報送受信制御装置は、さらに、情報送信制御部400を備え、この情報送信制御部400は、変換部401、サンプリングタイミング制御部402、データサンプリング部403、送信部404を具備して構成されている。
【0068】
送信するビット単位のビットデータは、変換部401によってパラレル形式からシリアル形式に変換され、データサンプリング部403は、サンプリングタイミング制御部402によって誤差情報を元にサンプリングタイミングの補正処理が行われたサンプリングタイミングでサンプリングを行う。
【0069】
そして、送信部404から送信先へとサンプリングタイミングでサンプリングしたデータを送信する。
【0070】
これにより、送信元は誤差なくデータを送信することができ、また、送信先は誤差なくデータが送られてくることを前提として受信できる。
【0071】
図5は、図2に示すサンプリングタイミング制御部103およびサンプリングタイミング制御部403の詳細な構成を示すブロック図である。
【0072】
サンプリングタイミング制御部103、サンプリングタイミング制御部403は、誤差情報読込み部103−1、誤差カウンター制御部103−2、カウンター制御量情報保持部103−4、カウンター部103−5、カウンター値判断部103−6、パルス出力制御部103−7を具備して構成される。
【0073】
図2に示す開始信号検出部102から同期信号を誤差カウンター制御部103−2で受信すると、誤差カウンター制御部103−2は、誤差情報読込み部103−1へと誤差情報の読み込みを指示する。
【0074】
これにより、誤差情報読込み部103−1は、図2に示す情報記憶部130で記憶している誤差情報を読み込む処理を行う。誤差情報を読み込んだ誤差情報読込み部103−1では、誤差カウンター制御部103−2に応答する。なお、このとき読み込んだ誤差情報は分周情報に基づいて算出された誤差情報であることから、場合によっては、処理単位の変換が必要となることがある。
【0075】
この場合、誤差カウンター制御部103−2が備える単位変換部103−3によって誤差情報の単位を変換する。
【0076】
この単位変換部103−3では、サンプリングタイミングを決定する際に用いられる単位に変換する。例えば、図2に示すサンプリングタイミング制御部103が、図6に示すような回路構成によって実現される場合、この回路において使用できる誤差情報の単位へと変換する。
【0077】
ちなみに、図6に示すような回路構成によって誤差情報を用いる場合、誤差情報算出部505で算出した誤差情報を8ビット単位の誤差情報へと変換する。
【0078】
8ビット単位に変換後の誤差情報は、例えば、誤差量の絶対値である誤差量ERVを「9ビット」で表し、誤差方向を示す符号ERSを「1ビット」で表すことができる。
【0079】
誤差カウンター制御部103−2は、誤差情報読込み部103−1で読み込んで単位変換部103−3によって単位変換された誤差情報を用いて、基準クロックを分周したカウンタークロックの誤差量を算出してカウンター制御量情報保持部103−4で「カウンター制御量」として保持する。
【0080】
誤差カウンター制御部103−2では、カウンタークロックの誤差量に、カウンター制御量情報保持部103−4で保持しているカウンター制御量の誤差量を積算する。
【0081】
この積算によって、予め指定した積算量となったとき、その積算量を訂正する若しくは低減する、誤差方向に基づく「誤差低減カウンタークロック数」を算出する。この誤差低減カウンタークロック数により訂正される若しくは低減される誤差量を、積算した誤差量から差し引いた新たな誤差量をカウンター制御量としてカウンター制御量情報保持部103−4で保持する。
【0082】
そして、誤差カウンター制御部103−2は、誤差低減カウンタークロック数に基づいてカウンター部103−5により分周したカウンタークロック数までカウント(計数)する際の「カウンター初期値」を決定する。そして、誤差カウンター制御部103−2は、カウンター部103−5に対して決定した「カウンター初期値」を送出する。
【0083】
この誤差カウンター制御部103−2では、「カウンター初期値」を決定しているが、これに限定されることなく、ビットデータの各ビットにおいてカウントするカウンター数を決定するように構成してもよい。この場合、誤差カウンター制御部103−2は、カウンター部103−5に対して決定した「カウンター数」を送出する。
【0084】
続いて、カウンター部103−5は、誤差カウンター制御部103−2からカウンター初期値の情報を受信すると、そのカウンター初期値から分周したカウンタークロック数までをインクリメントしてカウンター値に設定して計数処理を行う。なお、このカウンター部103−5では、誤差カウンター制御部103−2から「カウンター数」を受信すると、すなわち、「カウンター初期値」の情報を受信せずに「カウンター数」を受信すると、予め指定された初期値である「0(ゼロ)」からその「カウンター数」までを計数する処理を行う。
【0085】
このカウンター値判断部103−6では、カウンター部103−5で計数したカウンター値が予め指定したサンプリングタイミングのカウンター値となったと判断することによってサンプリングの指示をパルス出力制御部103−7へと行い、このパルス出力制御部103−7は、サンプリングパルスを図2に示すデータサンプリング部104に対して送信する。
【0086】
また、カウンター値判断部103−6が、カウンター部103−5でカウンター初期値から分周したカウンタークロック数までを計数したと判断すると、若しくは、予め指定された初期値である「0(ゼロ)」からその「カウンター数」までを計数したと判断すると、パルス出力制御部103−7は、誤差カウンター制御部103−2に対してこれを通知する。これにより、誤差カウンター制御部103−2が次のビットデータに対するカウンター初期値を決定する処理、若しくは、ビットデータの各ビットにおいてカウントするカウンター数を決定する処理を行う。
【0087】
このような処理を開始信号から終了信号まで繰り返し行う。
【0088】
図6は、図2に示すサンプリングタイミング制御部103の詳細な構成を示す回路構成図である。
【0089】
この図6に示す回路構成図では8ビット単位で計算が行われることから、図4の誤差情報算出部505で算出した誤差情報を8ビット単位に変換して情報記憶部130で記憶しておく。
【0090】
このときの8ビット単位への単位変換前の誤差情報に係る誤差量が、上記の(式5)を用いて「マイナス1.254」と算出された場合、すなわち、ビット単位での誤差量が「1.254」であって、符号が「マイナス」であることから各ビットにおけるサンプリングタイミングが早まる方に誤差が生じることとなる。
【0091】
この誤差量ERVの「1.254」は、基準クロック(P)が「20MHz」であって、変調数であるボーレート(B)が「230400bps」であって、特性分周数(N_char)が「5」であって、カウンタークロック数が「16」である場合に算出される値である。なお、特性分周数(N_char)の「5」は、(式1)および(式2)を用いて算出された分周数の小数点を四捨五入して切り捨てた値である。
【0092】
この誤差量ERVを8ビット単位へと単位変換することによって、単位変換後の誤差量ERVは、「1.254」に「2の8乗」を乗算することにより「321」と算出することができる。また、符号ERSは誤差情報の符号が「マイナス」であることから「1」とする。この符号ERSはプラスの場合「0」に設定し、マイナスの場合「1」と設定することが予め指定されているため、「1」と設定したものである。
【0093】
このようにして誤差情報を記憶している状態で図6に示す回路による処理が行われる。
【0094】
まず、開始信号を検出することにより誤差情報をカウントする誤差カウンターERCNTに誤差量ERVをセットする(代入する)。さらに、サンプリングタイミングを決定するためのカウンター初期値となるカウンター値CNTに、ERVを二進数で表した値を8ビット右シフトし、符号ERSに従って符号化を行った値でセットする。
【0095】
上記の例では、誤差量ERVの「321」を誤差カウンターERCNTにセットすることで誤差カウンターERCNTが「321」となり、この誤差量ERV「321」を二進数で表した値を8ビット右シフトして符号ERSに従って符号化した「−1」をカウンター値CNTに「−1」をセットする。
【0096】
このとき、誤差カウンターERCNTを誤差量ERVでリセットする。すなわち、誤差カウンターERCNTは誤差量ERVの「321」がセットされた状態となる。
【0097】
続いて、8ビット右シフトした二進数の値を8ビット左シフトして算出された値で減算した残誤差カウンターERCNT_DECを算出する。上記例では、8ビット右シフトした二進数の値を8ビット左シフトして算出された値が「256」であることから、誤差カウンターERCNTの「321」から減算した「65」が残誤差カウンターERCNT_DECとなる。
【0098】
これにより、1ビット分の誤差量が算出された状態となり、この残誤差カウンターERCNT_DECをラッチ回路601で一時的に保持した状態(ラッチ状態)とする。
【0099】
そして、サンプリングタイミングで誤差量ERVと、ラッチした残誤差カウンターERCNT_DECとを加算する。このとき、新たにスタートビットを検出しているかを第1セレクタ602で判断して開始信号が検出されていない場合には、誤差量ERVと残誤差カウンターERCNT_DECとを加算した加算値を選択する。この加算値は新たな誤差カウンターERCNTとなる。また、開始信号が検出された場合には、誤差情報として記憶されている誤差量ERVを選択することとなる。
【0100】
続いて、この加算値の二進数に対して8ビット右シフトを行い、符号ERSにしたがって符号化する。このようにして符号化した値を決定したカウンター初期値として第2セレクタ603へ送出する。
【0101】
そして、新たな誤差カウンターERCNTに対して上記のような処理を繰り返して行うことにより残誤差カウンターERCNT_DECを算出して、ビットごとのカウンター初期値を決定する。
【0102】
次に、カウンター604はカウンタークロックのタイミングによってインクリメントされて計数され、計数されたカウンター値CNTは第2セレクタ603へと送出される。このカウンター値が予め指定されている「サンプリングタイミングのカウンター値」となった場合、図6に示す例ではカウンター値が「7」となった場合にサンプリングパルスを発生させる。
【0103】
第2セレクタ603は、開始信号が検出された場合には誤差量ERVの二進数に対して8ビット右シフトして符号ERSによって符号化された値を選択し、カウンター604によりカウンター初期値からカウンタークロック数までが計数された場合、図6に示す例ではカウンター値が「15」となった場合には、上記で決定したカウンター初期値が選択される。
【0104】
これ以外のときには、第2セレクタ603は、カウンター604によって計数されたカウンター値が選択されることとなる。
【0105】
図7は、図6に示す回路構成において算出されるデータのタイミングチャートを示す図である。
【0106】
図7に示すデータは、図1(a)に示すデータと同様に、スタートビット(1ビット)、データビット(8ビット)、パリティビット(1ビット)、ストップビット(1ビット)により構成されるビットデータである。
【0107】
スタートビット受信時のカウンター初期値(b)の行(レコード)には、スタートビットを検出したときのカウンター初期値が示されており、このカウンター初期値として「−1」が設定されている。すなわち、スタートビットを検出したときには「−1」からカウンタークロック数の「16」でカウンター値が「15」となるまでカウントすることとなり、全体として、「17」をカウントすることとなる。
【0108】
まず、誤差カウンターERCNTの行(レコード)として、図6で示すように誤差情報として記憶された誤差量を8ビット単位で表してセットした「321」がセットされ、予め指定されたカウンタークロック数をカウントすることによってサンプリングタイミングとなってサンプリングが行われる。サンプリングが行われると、誤差カウンターERCNTの値「321」を二進数表示して8ビット右シフトした値を8ビット左シフトして算出された値「256」で減算した残誤差カウンターERCNT_DECに「65」をセットした状態を残誤差カウンターERCNT_DECの行(レコード)に示している。
【0109】
これによって、誤差カウンターERCNTでは図6で示すように誤差情報として記憶された誤差量を8ビット単位で表してセットした「321」と、その残誤差カウンターERCNT_DECの値である「65」とを加算した「386」がサンプリングタイミングによりサンプリングされた後に算出される。
【0110】
また、ERCNT_DEC+ERVの行(レコード)には、上記の誤差カウンターERCNTの値「65」と誤差情報として記憶している誤差量「321」とを加算した「386」を示している。このERCNT_DEC+ERVの行(レコード)は、結果として誤差カウンターERCNTの値に対応することとなる。
【0111】
さらに、誤差カウンターERCNTの値「386」が予め指定した誤差を訂正する若しくは低減する「誤差低減カウンタークロック数」の「512(2の8乗×2)」に満たないことから、この誤差カウンターERCNTの値「386」を二進数にした値を8ビット右シフトし、符号ERSにしたがって符号化した「−1」をカウンター初期値(a)にセットする。このようにしてセットされたカウンター初期値(a)は、カウンター初期値の行(レコード)に各ビットに対して示している。
【0112】
また、誤差カウンターERCNTの値が「誤差低減カウンタークロック数」の「512(2の8乗×2)」以上となる場合、例えば、誤差カウンターERCNTの値が「516」の場合には、この誤差カウンターERCNTの値「516」を二進数にした値を8ビット右シフトし、符号ERSにしたがって符号化した「−2」をカウンター初期値(a)にセットする。
【0113】
この場合、カウンター値を「−2」からカウンタークロック数の「16」の数量である「15」までカウントすることとなり、全体として、「18」をカウントすることとなる。このカウント数を、ビット間のカウンター幅(CNT)の行(レコード)に示している。
【0114】
このようにして、各ビットに対して順次、計算を行ったときのデータを示したものが図7に示されている。
【0115】
図8は、本発明の実施の形態による情報送受信装置で用いる誤差情報を算出する処理の流れを示すフローチャートである。
【0116】
図8において、まず、予め設定されている「分周情報」を読み出す(S801)。
【0117】
続いて、読み出した分周情報を構成する基準クロックの情報(P)や、変調数であるボーレートの情報(B)のほか、分周されたカウンタークロック数(分周数)の情報を用いて分周値を算出する(S802)。
【0118】
この分周値は、最適サンプリングタイミングを算出する値であって、「最適分周値」とも称される。
【0119】
次に、この分周値(最適分周値)に対してハード特性に基づく「特性分周値」を計算し(S803)、計算した特性分周値を用いてカウンタークロックを算出する(S804、S805)。
【0120】
そして、この算出したカウンタークロックでカウンタークロック数をカウントしたときに、1ビット毎に何クロック分誤差が発生するかを規定した「誤差情報(ER)」を算出する(S806)。
【0121】
この誤差情報(ER)を回路等において用いる場合等であって単位変換が必要なときにその回路等に応じた単位へと変換する(S807)。そして、その誤差情報を登録する(S808)。
【0122】
図9は、本発明の実施の形態による情報送受信装置において行われる処理の流れを示すフローチャートである。
【0123】
図9において、通信データの開始信号(スタートビット)を検出したかを判断し(S901)、検出するまで(S901でNO)は本フローチャートにおける処理が行われない。
【0124】
データの開始信号(スタートビット)を検出した場合(S901でYES)には、図8に示すような処理によって記憶されている「誤差情報」を読み込む読込み処理を行う(S902)。
【0125】
これにより、基準クロックを分周したカウンタークロックと開始信号とを同期し(S903)、さらに、カウンター値の初期化処理(リセット)を行う(S904)。
【0126】
この状態となると、読み出した「誤差情報」に基づき、分周されたカウンタークロックのカウント制御処理を行う(S905)。このカウント制御処理の詳細な流れを図10に示す。
【0127】
このカウント制御処理が行われて所定のカウンター値となることによってデータをビット単位でサンプリングする(S906)。
【0128】
そして、通信データの終了信号(ストップビット)を検出したかを判断し(S907)、この終了信号を検出していない場合(S907でNO)にはサンプリングしたビット列のデータに続いて受信したビット列のデータに対してS905のカウント制御処理以降を行う。
【0129】
また、終了信号を検出した場合(S907でYES)には、通信形式をシリアル通信形式からパラレル通信形式へと変換し(S908)、変換後の通信データをレジスタへ登録する(S909)。
【0130】
図10は、図9に示すカウント制御処理の詳細な流れを示すフローチャートである。
【0131】
図10において、誤差情報に係る誤差量ERVを誤差カウンターERCNTにセットする(S1001)。この誤差カウンターERCNTの二進数の値を8ビット右シフトする処理を行い(S1002)、誤差情報に係る符号ERSに基づいて8ビット右シフトした値を符号化する(S1003)。
【0132】
そして、符号化した値を開始信号(スタートビット)におけるカウンター初期値として設定する(S1004)。
【0133】
続いて、8ビット右シフトした値を8ビット左シフトした値で減算し(S1005)、減算した値を保持する(ラッチする)(S1006)。このラッチした値に、誤差情報に係る誤差量ERVを加算する(S1007)。
【0134】
このとき、開始信号(スタートビット)を受信したかを判断し(S1008)、開始信号を受信した場合(S1008でYES)には、S1001の処理から繰り返し行う。また、開始信号を受信していない場合(S1008でNO)には、ラッチした値に、誤差情報に係る誤差量ERVを加算した加算値を8ビット右シフトして誤差情報に係る符号ERSに基づいて加算値を符号化する(S1010)。
【0135】
この符号化後の加算値をカウンター初期値として設定する(S1011)。
【0136】
このカウンター初期値が設定されると、基準クロックを分周したカウンタークロック数のカウント(計数)が行われて所定のカウンター値となることによるサンプリングタイミングを指定する処理が行われる(S1012)。このサンプリングタイミングを指定する処理の詳細な流れを図11に示し、後述する。
【0137】
このサンプリングタイミングを指定する処理が行われてビット単位でサンプリングパルスが送信されると、通信データの全ビットに対して送信されたかを判断する(S1013)。
【0138】
通信データの全ビットに対して送信された場合(S1013でYES)には、本フローチャートにおける処理を終了するが、通信データの全ビットに対して送信されていない場合(S1013でNO)には、上記の8ビット右シフト処理した加算値に対して8ビット左シフトした値で減算する処理(S1005)以降を行う。
【0139】
図11は、図10に示すサンプリングタイミングを指定する処理の詳細な流れを示すフローチャートである。
【0140】
図11において、まず、カウンタークロックを受信したかを判断し(S1101)、カウンタークロックを受信するまでは(S1101でNO)本フローチャートにおける処理が待機状態となる。また、カウンタークロックを受信した場合(S1101でYES)には、カウンタークロックを計数するカウンター値をインクリメントする(S1102)。
【0141】
このインクリメントされることによって、カウンター値が予め指定された「サンプリングパルス」を発生させるカウンター値となったかを判断し(S1103)、「サンプリングパルス」を発生させるカウンター値となった場合(S1103でYES)には、サンプリングパルスを発生させる(S1104)。
【0142】
また、「サンプリングパルス」を発生させるカウンター値となっていない場合(S1103でNO)およびサンプリングパルスを発生させた後は、そのカウンター値が「カウンタークロック数−1」となったかを判断する(S1105)。
【0143】
そのカウンター値が「カウンタークロック数−1」となっていない場合(S1105でNO)には、S1101のカウンタークロックを受信したかの判断処理から繰り返し行う。
【0144】
また、そのカウンター値が「カウンタークロック数−1」となった場合(S1105でYES)には、続いて、全ビットデータに対する処理が終了したかを判断する(S1106)。全ビットデータに対する処理が終了した場合(S1106でYES)には、本フローチャートにおける処理を終了する。
【0145】
それに対して、全ビットデータに対する処理が終了していない場合(S1106でNO)には、S1101のカウンタークロックを受信したかの判断処理から繰り返し行う。
【0146】
以上に示す実施の形態は、本発明の実施の一形態であって、これらの実施例に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
【0147】
なお、本発明は、上述の手段を構成させるためのプログラムを格納した記録媒体(CD−ROM、DVD−ROM等)から該プログラムをコンピュータにインストールし、これを実行させることにより、上述の処理を実行するコンピュータを構成することも可能である。このときのコンピュータには、システムバスを介してCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクが接続され、CPUは、ROMまたはハードディスクに記憶されているプログラムに従い、RAMを作業領域にして処理を行う。
【0148】
また、プログラムを供給するための媒体は、記録媒体(通信回線、通信システムのように一時的または流動的にプログラムを保持する媒体)でもよい。例えば、通信ネットワークの電子掲示板(BBS:Bulletin Board Service)に該プログラムを掲示し、これを通信回線を介して配信するようにしてもよい。
【符号の説明】
【0149】
100 情報受信制御部
101 受信部
102 開始信号検出部
103 サンプリングタイミング制御部
104 データサンプリング部
105 変換部
110 基準クロック発生部
120 分周部
130 情報記憶部
200 保持部(レジスタ)
300 パスI/F
400 情報送信制御部
401 変換部
402 カウンター部
403 データサンプリング部
404 送信部
【技術分野】
【0001】
本発明は、情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体に関する。
【背景技術】
【0002】
通信装置間のダイレクト通信(PtoP)や通信モジュール間のダイレクト通信に用いられる調歩同期式(非同期式)のシリアル通信方式は、文字情報等のデータ送信に用いられる通信方式であって、非同期で通信を行うために、送信するデータの先頭部分にスタートビットを付与するとともに該データの末尾にストップビットを付与する。
【0003】
通信を行う通信装置ではこの調歩同期式(非同期式)のシリアル通信方式でデータの送受信を行うために、該データの受信前には通信ラインをハイレベル(Hレベル)の状態を維持しており、送信側の通信装置がデータのスタートビットとしてローレベル(Lレベル)を送信し、その信号を受信側の通信装置が受信することでデータの受信を開始する。
【0004】
受信したデータはビット列によって構成され、文字情報等の情報を構成するビット列は各ビットデータに対して基準となるクロック信号を分周したクロック信号で動作するカウンターを用いることで所定のカウンター値となるタイミングでサンプリングを行うことで取得して全データを受信している。
【0005】
特許文献1に開示された従来技術では、サンプリング用クロック信号の移動制御を行うことによってサンプリングのタイミングを変更できることができることが記載されている。この技術では、1ビット当たりの期間を複数に分周したときのサンプリングのタイミングを前後にずらす制御を行うことで受信エラーを防止することが記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−051034号公報(特許4352297号)
【発明の概要】
【発明が解決しようとする課題】
【0007】
このような従来技術では、1ビット当たりの期間(1ビット期間)を複数に分周したときのサンプリングを行う位置を、指定したサンプリング位置から前後にずらした位置においてサンプリングしているため、1ビット期間とサンプリングを行う位置とのマージンが十分でない場合には安定した受信ができない場合がある。これは、サンプリング位置が受信ビット列のビット間の変化点に近い場合、この変化店付近では信号の過度応答(例えば、オーバーシュートやリンギングなど)による波形歪みが生じる為である。
【0008】
また、受信したデータそのものに時間方向のジッタ(揺らぎ)が生じる可能性もあることから、この影響も考慮した場合にはより上記の過度応答による波形歪みの影響と相乗効果によってデータの安定受信ができない可能性がある。
【0009】
そこで、本発明は、調歩同期式のシリアル通信における通信データのサンプリングタイミングを簡単な回路構成によって制御することで通信データ単位でのサンプリング誤差の累積を防止し、通信データの受信エラーの発生を抑止することができるようにした情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、請求項1の発明は、基準クロックをカウンタークロックに分周するクロック分周手段と、調歩同期式のシリアル通信に用いられるビット単位の通信データのビットデータごとに前記クロック分周手段で分周した前記カウンタークロックのカウンタークロック数を計数する計数手段と、前記計数手段によって計数したカウンタークロック数が、予め指定した指定カウンタークロック数となることにより該指定カウンタークロック数の計数タイミングを前記ビットデータの取得タイミングとして検出する取得タイミング検出手段とを備える情報受信制御装置において、前記基準クロックを用いて算出される前記カウンタークロック数に対する分周値を元にカウンタークロック算出特性に基づいた特性分周値を計算する特性分周値計算手段と、前記特性分周値計算手段によって計算した前記特性分周値と前記基準クロックとに基づいて特性カウンタークロックを算出する特性カウンタークロック算出手段と、前記カウンタークロック数に対する分周値と前記基準クロックとに基づいてカウンタークロックを算出するカウンタークロック算出手段と、前記特性カウンタークロック算出手段によって算出した特性カウンタークロックと前記カウンタークロック算出手段によって算出したカウンタークロックとに基づき、前記計数手段によって前記カウンタークロック数を計数したときのビット単位当たりのビット単位誤差情報を算出するビット単位誤差情報算出手段と、前記ビット単位誤差情報算出手段によって算出したビット単位誤差情報を元に、前記計数手段により計数する総カウンタークロック数を前記ビットデータごとに決定する決定手段とを具備し、前記計数手段は、前記決定手段によって決定した前記総カウンタークロック数を計数する。
【0011】
また、請求項6の発明は、基準クロックをカウンタークロックに分周するクロック分周手段と、調歩同期式のシリアル通信に用いられるビット単位の通信データのビットデータごとに前記クロック分周手段で分周した前記カウンタークロックのカウンタークロック数を計数する計数手段と、前記計数手段によって計数したカウンタークロック数が、予め指定した指定カウンタークロック数となることにより該指定カウンタークロック数の計数タイミングを前記ビットデータの取得タイミングとして検出する取得タイミング検出手段とを備える情報受信制御装置により使用される情報受信制御方法であって、前記基準クロックを用いて算出される前記カウンタークロック数に対する分周値を元にカウンタークロック算出特性に基づいた特性分周値を計算する特性分周値計算工程と、前記特性分周値計算工程によって計算された前記特性分周値と前記基準クロックとに基づいて特性カウンタークロックを算出する特性カウンタークロック算出工程と、前記カウンタークロック数に対する分周値と前記基準クロックとに基づいてカウンタークロックを算出するカウンタークロック算出工程と、前記特性カウンタークロック算出工程によって算出された特性カウンタークロックと前記カウンタークロック算出工程によって算出されたカウンタークロックとに基づき、前記計数工程によって前記カウンタークロック数が計数されたときのビット単位当たりのビット単位誤差情報を算出するビット単位誤差情報算出工程と、前記ビット単位誤差情報算出工程によって算出されたビット単位誤差情報を元に、前記計数工程により計数する総カウンタークロック数を前記ビットデータごとに決定する決定工程とを含み、前記計数工程が、前記決定工程によって決定された前記総カウンタークロック数を計数することを特徴とする。
【0012】
また、請求項7の発明は、請求項6に記載の情報受信制御方法を演出手段に実行させる、ことを特徴とする。
【0013】
また、請求項8の発明は、請求項7に記載の情報受信制御プログラムが、演出手段により読み取り可能に記録されていることを特徴とする。
【図面の簡単な説明】
【0014】
【図1】調歩同期式のシリアル通信で用いるビット単位のデータ構造および各ビットのデータのサンプリング状態を示す図。
【図2】本発明の実施の形態における情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体を適用して構成した情報送受信制御装置の詳細な構成を示すブロック図の一例。
【図3】図2に示す基準クロック発生部の詳細な構成を示す図。
【図4】誤差情報を算出する誤差情報算出登録部の詳細な構成を示す図。
【図5】図2に示すサンプリングタイミング制御部の詳細な構成を示すブロック図。
【図6】図2に示すサンプリングタイミング制御部の詳細な構成を示す回路構成図。
【図7】図6に示す回路構成において算出されるデータのタイミングチャートを示す図。
【図8】本発明の実施の形態による情報送受信装置で用いる誤差情報を算出する処理の流れを示すフローチャート。
【図9】本発明の実施の形態による情報送受信装置において行われる処理の流れを示すフローチャート。
【図10】図9に示すカウント制御処理の詳細な流れを示すフローチャート。
【図11】図10に示すサンプリングタイミングを指定する処理の詳細な流れを示すフローチャート。
【発明を実施するための形態】
【0015】
以下、本発明に係わる情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体の一実施例を添付図面を参照して詳細に説明する。
【0016】
通信路が構築された装置間若しくはモジュール間で行われる調歩同期式のシリアル通信では、この調歩同期式の通信の特徴として、送信側装置(送信側モジュール)と受信側装置(受信側モジュール)との間で同期信号を相互に共有することなくデータの送受信を行う。このため、調歩同期式の通信を「非同期通信」とも称されることがある。
【0017】
この調歩同期式の通信に際して、データの送受信が行われていない場合には通信路がH(High)レベルに維持された状態となっており、HレベルからL(Low)レベルとなることでデータの受信が開始される。
【0018】
すなわち、調歩同期式のシリアル通信に用いられるデータは、図1(a)に示すように、ビット構造からなる場合にLレベルのビットデータが開始信号(スタートビット)に設定されており、この開始信号のタイミングで同期をとって通信が行われることとなる。
【0019】
そして、図1(a)に示すように、開始信号に続けて設けられた各ビットが送信側装置(送信側モジュール)と受信側装置(受信側モジュール)との間で送受信を行うデータであって、この図1(a)に示す例では、Lレベルの開始信号に続く8ビット分がそのデータとなっている。
【0020】
図1(a)では、この8ビット分のデータに続いて、パリティビットが設定され、このパリティビットに続いてHレベルの終了信号(ストップビット)が設定されている。
【0021】
このようなビットデータを受信する際には、1ビット当たりの転送時間に相当するタイミングによって各ビットにおけるデータをサンプリングする。そして、Hレベルの終了信号をサンプリングすることによってデータの受信が完了することとなる。
【0022】
このときのサンプリングを行う時点は、受信側に搭載するクロック発生器から発生した基準周波数(以下、「基準クロック」という)をカウンタークロックに分周したときのカウンタークロック数をカウント(計数)して、予め指定されたカウンタークロックをカウントしたときがサンプリングタイミングである。
【0023】
また、図1(b)には、基準クロックを16個のカウンタークロックに分周した(16分周した)状態を示している。
【0024】
この図1(b)では、初期値「0(ゼロ)」から計数していき、カウンター値が「7」となったときのカウンタークロックの立ち上がり時点を予め指定したカウンタークロックとした場合の例であって、すなわち、8番目のカウンタークロックが計数されたときにサンプリングパルスが発生することからこのときが各ビットにおけるサンプリングタイミングである。
【0025】
そして、分周した分周数、図1(b)に示す例では「16」を計数すると、すなわちカウンター値が「15」となると、そのカウンター値を「0(ゼロ)」に初期化(リセット)して、次のビットデータのサンプリングを可能とする。もちろん、Lレベルの開始信号を受信することによってカウンター値を「0(ゼロ)」にリセットするような構成であってもよい。
【実施例】
【0026】
図2は、本発明の実施の形態における情報受信制御装置、情報受信制御方法、情報受信制御プログラムおよび記録媒体を適用して構成した情報送受信制御装置の詳細な構成を示すブロック図の一例である。
【0027】
送信元から送信された通信データは情報受信制御部100における受信部101で受信する。この受信部101で受信した通信データはデータ形式がビット形式からなるデータ(「ビットデータ」という)であって、例えば図1(a)に示すようなデータ構造からなる。
【0028】
この図1(a)に示すようなビットデータを受信部101で受信すると、開始信号検出部102では、そのビットデータのスタートビットに設けられているLレベルの開始信号を検出する。この検出処理では、上記に示すように、通信路がH(High)レベルに維持された状態からLレベルへの変化を検出する。
【0029】
このとき、開始信号検出部102では、検出した開始信号と、基準クロック発生部110により発生された基準クロックを分周部120でカウンタークロックに分周した当該カウンタークロックで動作するカウンターとの同期をとる。この開始信号検出部102はサンプリングタイミング制御部103に対して同期信号を通知する。
【0030】
この基準クロック発生部110の詳細な構成を図3に示している。
【0031】
図3において、基準クロック発生部110は、水晶発振器110−1、PLL110−2を具備して構成されている。
【0032】
水晶発振器110−1は、高精度で所定の周波数を発振する素子であって、この水晶発振器110−1から発振された周波数をPLL110−2へと送出する。
【0033】
PLL(Phase Locked Loop)110−2は、水晶発振器110−1から発振された周波数を可変として所定の発振周波数を一定に保ち、分周部120に対して基準クロックとして発振する。このPLL110−2は、この分周部120以外にもCPU(Central Processing Unit)や各種のモジュールへと基準クロックや可変された所定の周波数を発振することが可能になる。
【0034】
続いて、図2に示すサンプリングタイミング制御部103は、開始信号検出部102より同期信号が通知されると、情報記憶部130で記憶している「誤差情報」を読み出す。
【0035】
サンプリングタイミング制御部103では、読み出した誤差情報を元にサンプリングタイミングの補正処理を行って補正後のサンプリングタイミングとしてデータサンプリング部104へとサンプリングパルス(サンプリング信号)を送信する。
【0036】
これによって、データサンプリング部104は、サンプリングタイミング制御部103からサンプリングパルスを受信したタイミングで受信部101において送信元から受信した通信データのビット単位ごとにサンプリングを行う。このサンプリングタイミング制御部103の詳細な構成を図5に示し、以下で説明する。
【0037】
このようにして、データサンプリング部104においてビット単位でサンプリングを行うと、作業領域(図示せず)へと一時記憶されていき、このデータサンプリング部104が通信データのパリティビットをサンプリングした後、終了信号(ストップビット)のサンプリングを行うことによって作業領域に記憶されているビット単位でサンプリングした通信データを変換部105へと送出する。
【0038】
この変換部105は、作業領域に記憶されているシリアル通信形式における通信データのデータ形式をパラレル通信形式に変換する。
【0039】
そして、変換部105では、パラレル通信形式に変換した通信データを保持部200(単に、「レジスタ」ともいう)に転送することによって保持部200で保持した状態とする。
【0040】
この保持部200において保持されている通信データは、パスI/F300を介してその通信データを用いた処理を行う処理部(図示せず)へと転送される。
【0041】
情報記憶部130で記憶している誤差情報は、図4に示すような構成からなる誤差情報算出登録部によって登録される。
【0042】
図4に示す誤差情報算出登録部は、図2に示すサンプリングタイミング制御部103において誤差情報算出登録機能として構成することができるほか、情報送受信制御装置とは異なる装置としても構成することができ、この誤差情報算出登録部によって算出した誤差情報を図2の情報記憶部130で記憶している。
【0043】
この誤差情報算出登録部は、分周情報記憶部501、分周値算出部502、特性分周値計算部503、カウンタークロック算出部504、誤差情報算出部505、登録処理部506を具備して構成される。
【0044】
分周情報記憶部501は、分周情報を記憶しており、この分周情報として、例えば、図2に示す分周部120において分周されるカウンタークロック数(「分周数」ともいう)の情報(上記の例では「16」)、図2に示す基準クロック発生部110によって発生される基準クロックの情報(P)、変調数であるボーレートの情報(B)などを記憶している。
【0045】
分周値算出部502では、分周情報記憶部501で記憶する分周情報を元に分周値を算出する。
【0046】
まず、カウンタークロック(周波数)(C_clk)は、以下の(式1)によって算出することができる。
【0047】
C_clk = B × カウンタークロック数 ・・・(式1)
【0048】
次に、分周値を「N」とすると、分周値算出部502によって算出される分周値Nは、以下の(式2)によって算出することができる。
【0049】
N = P / C_clk ・・・(式2)
【0050】
すなわち、上記の(式2)を満たす分周値においてサンプリングタイミングを検出している場合には開始信号との同期により、通信データのビットデータごとのサンプリングタイミングが一定となり、各ビットデータを正常にサンプリングすることができるものである。このことから、分周値算出部502によって算出される分周値を「最適分周値」とも称することがある。
【0051】
この分周値算出部502によって算出した分周値(最適分周値)は記憶領域(図示せず)に一時的に記憶され、特性分周値計算部503およびカウンタークロック算出部504へと分周値を算出したことを通知する。
【0052】
この特性分周値計算部503では、分周情報記憶部501で記憶している特性情報(「算出特性情報」ともいう)を読み出してその特性情報に基づく「特性分周値」を計算する。
【0053】
このときの特性情報は、分周値算出部502の算出処理における処理特性を示す情報であって、例えばハードウェア回路によって構成される場合、そのハードウェア回路によって扱える処理数値の形式である。すなわち、分周値算出部502がハードウェア回路によって構成される場合に当該ハードウェア回路で整数値のみを用いて処理がされるという制約があるときには小数値を含む数値は取り扱うことができないという特性を有することとなる。
【0054】
この特性の場合、特性分周値計算部503では、分周値算出部502で算出して記憶領域に記憶している分周値を用いてその特性に基づいた特性分周値を計算する。計算した特性分周値は、上記の記憶領域へと記憶する。
【0055】
このようにして特性分周値を計算した特性分周値計算部503は、特性分周値を計算したことをカウンタークロック算出部504へと通知する。
【0056】
カウンタークロック算出部504では、分周値算出部502によって算出して記憶領域に記憶している分周値および特性分周値計算部503によって計算して記憶領域に記憶している特性分周値を用いて、それぞれの分周値(「最適分周値」、「特性分周値」)に基づくカウンタークロック(C_clk)を算出する。
【0057】
すなわち、このような処理によって分周値Nと特性分周値N_charとが算出された状態となり、上記の(式2)から分周値Nに基づくカウンタークロック(C_clk)および特性分周値N_charに基づく特性カウンタークロック(C_clk_char)は、以下の(式3)および(式4)によって算出される。
【0058】
C_clk = P / N ・・・(式3)
【0059】
C_clk_char = P / N_char ・・・(式4)
【0060】
このように、カウンタークロック算出部504によって算出されると、カウンタークロック算出部504は、カウンタークロック(C_clk)および特性カウンタークロック(C_clk_char)を記憶領域へと記憶し、誤差情報算出部505に対して算出したことを通知する。
【0061】
誤差情報算出部505は、カウンタークロック算出部504からカウンタークロック等が算出されたことが通知されると、分周情報記憶部501から分周情報を読み出す。そして、誤差情報算出部505は、読み出した分周情報および記憶領域に記憶されている情報を元に、ビットデータのビット単位における誤差量および誤差方向からなる誤差情報を算出する。
【0062】
このビット単位における誤差情報ERは以下の(式5)を用いて算出する。
【0063】
ER = ((B / (P /(カウンタークロック数 × N_char))) −1 ) × カウンタークロック数 ・・・(式5)
【0064】
この誤差情報ERにより示される絶対値は、各ビットにおけるサンプリングタイミング間の誤差量であって、符号(プラス(+)、マイナス(−))は、誤差方向を示している。
【0065】
このようにして誤差情報が算出されると、誤差情報算出部505は、この誤差情報を登録処理部506へと送出する。
【0066】
誤差情報算出部505から登録処理部506に送出された場合、この登録処理部506は、図2に示す情報記憶部130に登録する。
【0067】
図2に示す情報送受信制御装置は、さらに、情報送信制御部400を備え、この情報送信制御部400は、変換部401、サンプリングタイミング制御部402、データサンプリング部403、送信部404を具備して構成されている。
【0068】
送信するビット単位のビットデータは、変換部401によってパラレル形式からシリアル形式に変換され、データサンプリング部403は、サンプリングタイミング制御部402によって誤差情報を元にサンプリングタイミングの補正処理が行われたサンプリングタイミングでサンプリングを行う。
【0069】
そして、送信部404から送信先へとサンプリングタイミングでサンプリングしたデータを送信する。
【0070】
これにより、送信元は誤差なくデータを送信することができ、また、送信先は誤差なくデータが送られてくることを前提として受信できる。
【0071】
図5は、図2に示すサンプリングタイミング制御部103およびサンプリングタイミング制御部403の詳細な構成を示すブロック図である。
【0072】
サンプリングタイミング制御部103、サンプリングタイミング制御部403は、誤差情報読込み部103−1、誤差カウンター制御部103−2、カウンター制御量情報保持部103−4、カウンター部103−5、カウンター値判断部103−6、パルス出力制御部103−7を具備して構成される。
【0073】
図2に示す開始信号検出部102から同期信号を誤差カウンター制御部103−2で受信すると、誤差カウンター制御部103−2は、誤差情報読込み部103−1へと誤差情報の読み込みを指示する。
【0074】
これにより、誤差情報読込み部103−1は、図2に示す情報記憶部130で記憶している誤差情報を読み込む処理を行う。誤差情報を読み込んだ誤差情報読込み部103−1では、誤差カウンター制御部103−2に応答する。なお、このとき読み込んだ誤差情報は分周情報に基づいて算出された誤差情報であることから、場合によっては、処理単位の変換が必要となることがある。
【0075】
この場合、誤差カウンター制御部103−2が備える単位変換部103−3によって誤差情報の単位を変換する。
【0076】
この単位変換部103−3では、サンプリングタイミングを決定する際に用いられる単位に変換する。例えば、図2に示すサンプリングタイミング制御部103が、図6に示すような回路構成によって実現される場合、この回路において使用できる誤差情報の単位へと変換する。
【0077】
ちなみに、図6に示すような回路構成によって誤差情報を用いる場合、誤差情報算出部505で算出した誤差情報を8ビット単位の誤差情報へと変換する。
【0078】
8ビット単位に変換後の誤差情報は、例えば、誤差量の絶対値である誤差量ERVを「9ビット」で表し、誤差方向を示す符号ERSを「1ビット」で表すことができる。
【0079】
誤差カウンター制御部103−2は、誤差情報読込み部103−1で読み込んで単位変換部103−3によって単位変換された誤差情報を用いて、基準クロックを分周したカウンタークロックの誤差量を算出してカウンター制御量情報保持部103−4で「カウンター制御量」として保持する。
【0080】
誤差カウンター制御部103−2では、カウンタークロックの誤差量に、カウンター制御量情報保持部103−4で保持しているカウンター制御量の誤差量を積算する。
【0081】
この積算によって、予め指定した積算量となったとき、その積算量を訂正する若しくは低減する、誤差方向に基づく「誤差低減カウンタークロック数」を算出する。この誤差低減カウンタークロック数により訂正される若しくは低減される誤差量を、積算した誤差量から差し引いた新たな誤差量をカウンター制御量としてカウンター制御量情報保持部103−4で保持する。
【0082】
そして、誤差カウンター制御部103−2は、誤差低減カウンタークロック数に基づいてカウンター部103−5により分周したカウンタークロック数までカウント(計数)する際の「カウンター初期値」を決定する。そして、誤差カウンター制御部103−2は、カウンター部103−5に対して決定した「カウンター初期値」を送出する。
【0083】
この誤差カウンター制御部103−2では、「カウンター初期値」を決定しているが、これに限定されることなく、ビットデータの各ビットにおいてカウントするカウンター数を決定するように構成してもよい。この場合、誤差カウンター制御部103−2は、カウンター部103−5に対して決定した「カウンター数」を送出する。
【0084】
続いて、カウンター部103−5は、誤差カウンター制御部103−2からカウンター初期値の情報を受信すると、そのカウンター初期値から分周したカウンタークロック数までをインクリメントしてカウンター値に設定して計数処理を行う。なお、このカウンター部103−5では、誤差カウンター制御部103−2から「カウンター数」を受信すると、すなわち、「カウンター初期値」の情報を受信せずに「カウンター数」を受信すると、予め指定された初期値である「0(ゼロ)」からその「カウンター数」までを計数する処理を行う。
【0085】
このカウンター値判断部103−6では、カウンター部103−5で計数したカウンター値が予め指定したサンプリングタイミングのカウンター値となったと判断することによってサンプリングの指示をパルス出力制御部103−7へと行い、このパルス出力制御部103−7は、サンプリングパルスを図2に示すデータサンプリング部104に対して送信する。
【0086】
また、カウンター値判断部103−6が、カウンター部103−5でカウンター初期値から分周したカウンタークロック数までを計数したと判断すると、若しくは、予め指定された初期値である「0(ゼロ)」からその「カウンター数」までを計数したと判断すると、パルス出力制御部103−7は、誤差カウンター制御部103−2に対してこれを通知する。これにより、誤差カウンター制御部103−2が次のビットデータに対するカウンター初期値を決定する処理、若しくは、ビットデータの各ビットにおいてカウントするカウンター数を決定する処理を行う。
【0087】
このような処理を開始信号から終了信号まで繰り返し行う。
【0088】
図6は、図2に示すサンプリングタイミング制御部103の詳細な構成を示す回路構成図である。
【0089】
この図6に示す回路構成図では8ビット単位で計算が行われることから、図4の誤差情報算出部505で算出した誤差情報を8ビット単位に変換して情報記憶部130で記憶しておく。
【0090】
このときの8ビット単位への単位変換前の誤差情報に係る誤差量が、上記の(式5)を用いて「マイナス1.254」と算出された場合、すなわち、ビット単位での誤差量が「1.254」であって、符号が「マイナス」であることから各ビットにおけるサンプリングタイミングが早まる方に誤差が生じることとなる。
【0091】
この誤差量ERVの「1.254」は、基準クロック(P)が「20MHz」であって、変調数であるボーレート(B)が「230400bps」であって、特性分周数(N_char)が「5」であって、カウンタークロック数が「16」である場合に算出される値である。なお、特性分周数(N_char)の「5」は、(式1)および(式2)を用いて算出された分周数の小数点を四捨五入して切り捨てた値である。
【0092】
この誤差量ERVを8ビット単位へと単位変換することによって、単位変換後の誤差量ERVは、「1.254」に「2の8乗」を乗算することにより「321」と算出することができる。また、符号ERSは誤差情報の符号が「マイナス」であることから「1」とする。この符号ERSはプラスの場合「0」に設定し、マイナスの場合「1」と設定することが予め指定されているため、「1」と設定したものである。
【0093】
このようにして誤差情報を記憶している状態で図6に示す回路による処理が行われる。
【0094】
まず、開始信号を検出することにより誤差情報をカウントする誤差カウンターERCNTに誤差量ERVをセットする(代入する)。さらに、サンプリングタイミングを決定するためのカウンター初期値となるカウンター値CNTに、ERVを二進数で表した値を8ビット右シフトし、符号ERSに従って符号化を行った値でセットする。
【0095】
上記の例では、誤差量ERVの「321」を誤差カウンターERCNTにセットすることで誤差カウンターERCNTが「321」となり、この誤差量ERV「321」を二進数で表した値を8ビット右シフトして符号ERSに従って符号化した「−1」をカウンター値CNTに「−1」をセットする。
【0096】
このとき、誤差カウンターERCNTを誤差量ERVでリセットする。すなわち、誤差カウンターERCNTは誤差量ERVの「321」がセットされた状態となる。
【0097】
続いて、8ビット右シフトした二進数の値を8ビット左シフトして算出された値で減算した残誤差カウンターERCNT_DECを算出する。上記例では、8ビット右シフトした二進数の値を8ビット左シフトして算出された値が「256」であることから、誤差カウンターERCNTの「321」から減算した「65」が残誤差カウンターERCNT_DECとなる。
【0098】
これにより、1ビット分の誤差量が算出された状態となり、この残誤差カウンターERCNT_DECをラッチ回路601で一時的に保持した状態(ラッチ状態)とする。
【0099】
そして、サンプリングタイミングで誤差量ERVと、ラッチした残誤差カウンターERCNT_DECとを加算する。このとき、新たにスタートビットを検出しているかを第1セレクタ602で判断して開始信号が検出されていない場合には、誤差量ERVと残誤差カウンターERCNT_DECとを加算した加算値を選択する。この加算値は新たな誤差カウンターERCNTとなる。また、開始信号が検出された場合には、誤差情報として記憶されている誤差量ERVを選択することとなる。
【0100】
続いて、この加算値の二進数に対して8ビット右シフトを行い、符号ERSにしたがって符号化する。このようにして符号化した値を決定したカウンター初期値として第2セレクタ603へ送出する。
【0101】
そして、新たな誤差カウンターERCNTに対して上記のような処理を繰り返して行うことにより残誤差カウンターERCNT_DECを算出して、ビットごとのカウンター初期値を決定する。
【0102】
次に、カウンター604はカウンタークロックのタイミングによってインクリメントされて計数され、計数されたカウンター値CNTは第2セレクタ603へと送出される。このカウンター値が予め指定されている「サンプリングタイミングのカウンター値」となった場合、図6に示す例ではカウンター値が「7」となった場合にサンプリングパルスを発生させる。
【0103】
第2セレクタ603は、開始信号が検出された場合には誤差量ERVの二進数に対して8ビット右シフトして符号ERSによって符号化された値を選択し、カウンター604によりカウンター初期値からカウンタークロック数までが計数された場合、図6に示す例ではカウンター値が「15」となった場合には、上記で決定したカウンター初期値が選択される。
【0104】
これ以外のときには、第2セレクタ603は、カウンター604によって計数されたカウンター値が選択されることとなる。
【0105】
図7は、図6に示す回路構成において算出されるデータのタイミングチャートを示す図である。
【0106】
図7に示すデータは、図1(a)に示すデータと同様に、スタートビット(1ビット)、データビット(8ビット)、パリティビット(1ビット)、ストップビット(1ビット)により構成されるビットデータである。
【0107】
スタートビット受信時のカウンター初期値(b)の行(レコード)には、スタートビットを検出したときのカウンター初期値が示されており、このカウンター初期値として「−1」が設定されている。すなわち、スタートビットを検出したときには「−1」からカウンタークロック数の「16」でカウンター値が「15」となるまでカウントすることとなり、全体として、「17」をカウントすることとなる。
【0108】
まず、誤差カウンターERCNTの行(レコード)として、図6で示すように誤差情報として記憶された誤差量を8ビット単位で表してセットした「321」がセットされ、予め指定されたカウンタークロック数をカウントすることによってサンプリングタイミングとなってサンプリングが行われる。サンプリングが行われると、誤差カウンターERCNTの値「321」を二進数表示して8ビット右シフトした値を8ビット左シフトして算出された値「256」で減算した残誤差カウンターERCNT_DECに「65」をセットした状態を残誤差カウンターERCNT_DECの行(レコード)に示している。
【0109】
これによって、誤差カウンターERCNTでは図6で示すように誤差情報として記憶された誤差量を8ビット単位で表してセットした「321」と、その残誤差カウンターERCNT_DECの値である「65」とを加算した「386」がサンプリングタイミングによりサンプリングされた後に算出される。
【0110】
また、ERCNT_DEC+ERVの行(レコード)には、上記の誤差カウンターERCNTの値「65」と誤差情報として記憶している誤差量「321」とを加算した「386」を示している。このERCNT_DEC+ERVの行(レコード)は、結果として誤差カウンターERCNTの値に対応することとなる。
【0111】
さらに、誤差カウンターERCNTの値「386」が予め指定した誤差を訂正する若しくは低減する「誤差低減カウンタークロック数」の「512(2の8乗×2)」に満たないことから、この誤差カウンターERCNTの値「386」を二進数にした値を8ビット右シフトし、符号ERSにしたがって符号化した「−1」をカウンター初期値(a)にセットする。このようにしてセットされたカウンター初期値(a)は、カウンター初期値の行(レコード)に各ビットに対して示している。
【0112】
また、誤差カウンターERCNTの値が「誤差低減カウンタークロック数」の「512(2の8乗×2)」以上となる場合、例えば、誤差カウンターERCNTの値が「516」の場合には、この誤差カウンターERCNTの値「516」を二進数にした値を8ビット右シフトし、符号ERSにしたがって符号化した「−2」をカウンター初期値(a)にセットする。
【0113】
この場合、カウンター値を「−2」からカウンタークロック数の「16」の数量である「15」までカウントすることとなり、全体として、「18」をカウントすることとなる。このカウント数を、ビット間のカウンター幅(CNT)の行(レコード)に示している。
【0114】
このようにして、各ビットに対して順次、計算を行ったときのデータを示したものが図7に示されている。
【0115】
図8は、本発明の実施の形態による情報送受信装置で用いる誤差情報を算出する処理の流れを示すフローチャートである。
【0116】
図8において、まず、予め設定されている「分周情報」を読み出す(S801)。
【0117】
続いて、読み出した分周情報を構成する基準クロックの情報(P)や、変調数であるボーレートの情報(B)のほか、分周されたカウンタークロック数(分周数)の情報を用いて分周値を算出する(S802)。
【0118】
この分周値は、最適サンプリングタイミングを算出する値であって、「最適分周値」とも称される。
【0119】
次に、この分周値(最適分周値)に対してハード特性に基づく「特性分周値」を計算し(S803)、計算した特性分周値を用いてカウンタークロックを算出する(S804、S805)。
【0120】
そして、この算出したカウンタークロックでカウンタークロック数をカウントしたときに、1ビット毎に何クロック分誤差が発生するかを規定した「誤差情報(ER)」を算出する(S806)。
【0121】
この誤差情報(ER)を回路等において用いる場合等であって単位変換が必要なときにその回路等に応じた単位へと変換する(S807)。そして、その誤差情報を登録する(S808)。
【0122】
図9は、本発明の実施の形態による情報送受信装置において行われる処理の流れを示すフローチャートである。
【0123】
図9において、通信データの開始信号(スタートビット)を検出したかを判断し(S901)、検出するまで(S901でNO)は本フローチャートにおける処理が行われない。
【0124】
データの開始信号(スタートビット)を検出した場合(S901でYES)には、図8に示すような処理によって記憶されている「誤差情報」を読み込む読込み処理を行う(S902)。
【0125】
これにより、基準クロックを分周したカウンタークロックと開始信号とを同期し(S903)、さらに、カウンター値の初期化処理(リセット)を行う(S904)。
【0126】
この状態となると、読み出した「誤差情報」に基づき、分周されたカウンタークロックのカウント制御処理を行う(S905)。このカウント制御処理の詳細な流れを図10に示す。
【0127】
このカウント制御処理が行われて所定のカウンター値となることによってデータをビット単位でサンプリングする(S906)。
【0128】
そして、通信データの終了信号(ストップビット)を検出したかを判断し(S907)、この終了信号を検出していない場合(S907でNO)にはサンプリングしたビット列のデータに続いて受信したビット列のデータに対してS905のカウント制御処理以降を行う。
【0129】
また、終了信号を検出した場合(S907でYES)には、通信形式をシリアル通信形式からパラレル通信形式へと変換し(S908)、変換後の通信データをレジスタへ登録する(S909)。
【0130】
図10は、図9に示すカウント制御処理の詳細な流れを示すフローチャートである。
【0131】
図10において、誤差情報に係る誤差量ERVを誤差カウンターERCNTにセットする(S1001)。この誤差カウンターERCNTの二進数の値を8ビット右シフトする処理を行い(S1002)、誤差情報に係る符号ERSに基づいて8ビット右シフトした値を符号化する(S1003)。
【0132】
そして、符号化した値を開始信号(スタートビット)におけるカウンター初期値として設定する(S1004)。
【0133】
続いて、8ビット右シフトした値を8ビット左シフトした値で減算し(S1005)、減算した値を保持する(ラッチする)(S1006)。このラッチした値に、誤差情報に係る誤差量ERVを加算する(S1007)。
【0134】
このとき、開始信号(スタートビット)を受信したかを判断し(S1008)、開始信号を受信した場合(S1008でYES)には、S1001の処理から繰り返し行う。また、開始信号を受信していない場合(S1008でNO)には、ラッチした値に、誤差情報に係る誤差量ERVを加算した加算値を8ビット右シフトして誤差情報に係る符号ERSに基づいて加算値を符号化する(S1010)。
【0135】
この符号化後の加算値をカウンター初期値として設定する(S1011)。
【0136】
このカウンター初期値が設定されると、基準クロックを分周したカウンタークロック数のカウント(計数)が行われて所定のカウンター値となることによるサンプリングタイミングを指定する処理が行われる(S1012)。このサンプリングタイミングを指定する処理の詳細な流れを図11に示し、後述する。
【0137】
このサンプリングタイミングを指定する処理が行われてビット単位でサンプリングパルスが送信されると、通信データの全ビットに対して送信されたかを判断する(S1013)。
【0138】
通信データの全ビットに対して送信された場合(S1013でYES)には、本フローチャートにおける処理を終了するが、通信データの全ビットに対して送信されていない場合(S1013でNO)には、上記の8ビット右シフト処理した加算値に対して8ビット左シフトした値で減算する処理(S1005)以降を行う。
【0139】
図11は、図10に示すサンプリングタイミングを指定する処理の詳細な流れを示すフローチャートである。
【0140】
図11において、まず、カウンタークロックを受信したかを判断し(S1101)、カウンタークロックを受信するまでは(S1101でNO)本フローチャートにおける処理が待機状態となる。また、カウンタークロックを受信した場合(S1101でYES)には、カウンタークロックを計数するカウンター値をインクリメントする(S1102)。
【0141】
このインクリメントされることによって、カウンター値が予め指定された「サンプリングパルス」を発生させるカウンター値となったかを判断し(S1103)、「サンプリングパルス」を発生させるカウンター値となった場合(S1103でYES)には、サンプリングパルスを発生させる(S1104)。
【0142】
また、「サンプリングパルス」を発生させるカウンター値となっていない場合(S1103でNO)およびサンプリングパルスを発生させた後は、そのカウンター値が「カウンタークロック数−1」となったかを判断する(S1105)。
【0143】
そのカウンター値が「カウンタークロック数−1」となっていない場合(S1105でNO)には、S1101のカウンタークロックを受信したかの判断処理から繰り返し行う。
【0144】
また、そのカウンター値が「カウンタークロック数−1」となった場合(S1105でYES)には、続いて、全ビットデータに対する処理が終了したかを判断する(S1106)。全ビットデータに対する処理が終了した場合(S1106でYES)には、本フローチャートにおける処理を終了する。
【0145】
それに対して、全ビットデータに対する処理が終了していない場合(S1106でNO)には、S1101のカウンタークロックを受信したかの判断処理から繰り返し行う。
【0146】
以上に示す実施の形態は、本発明の実施の一形態であって、これらの実施例に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
【0147】
なお、本発明は、上述の手段を構成させるためのプログラムを格納した記録媒体(CD−ROM、DVD−ROM等)から該プログラムをコンピュータにインストールし、これを実行させることにより、上述の処理を実行するコンピュータを構成することも可能である。このときのコンピュータには、システムバスを介してCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクが接続され、CPUは、ROMまたはハードディスクに記憶されているプログラムに従い、RAMを作業領域にして処理を行う。
【0148】
また、プログラムを供給するための媒体は、記録媒体(通信回線、通信システムのように一時的または流動的にプログラムを保持する媒体)でもよい。例えば、通信ネットワークの電子掲示板(BBS:Bulletin Board Service)に該プログラムを掲示し、これを通信回線を介して配信するようにしてもよい。
【符号の説明】
【0149】
100 情報受信制御部
101 受信部
102 開始信号検出部
103 サンプリングタイミング制御部
104 データサンプリング部
105 変換部
110 基準クロック発生部
120 分周部
130 情報記憶部
200 保持部(レジスタ)
300 パスI/F
400 情報送信制御部
401 変換部
402 カウンター部
403 データサンプリング部
404 送信部
【特許請求の範囲】
【請求項1】
基準クロックをカウンタークロックに分周するクロック分周手段と、
調歩同期式のシリアル通信に用いられるビット単位の通信データのビットデータごとに前記クロック分周手段で分周した前記カウンタークロックのカウンタークロック数を計数する計数手段と、
前記計数手段によって計数したカウンタークロック数が、予め指定した指定カウンタークロック数となることにより該指定カウンタークロック数の計数タイミングを前記ビットデータの取得タイミングとして検出する取得タイミング検出手段と
を備える情報受信制御装置において、
前記基準クロックを用いて算出される前記カウンタークロック数に対する分周値を元にカウンタークロック算出特性に基づいた特性分周値を計算する特性分周値計算手段と、
前記特性分周値計算手段によって計算した前記特性分周値と前記基準クロックとに基づいて特性カウンタークロックを算出する特性カウンタークロック算出手段と、
前記カウンタークロック数に対する分周値と前記基準クロックとに基づいてカウンタークロックを算出するカウンタークロック算出手段と、
前記特性カウンタークロック算出手段によって算出した特性カウンタークロックと前記カウンタークロック算出手段によって算出したカウンタークロックとに基づき、前記計数手段によって前記カウンタークロック数を計数したときのビット単位当たりのビット単位誤差情報を算出するビット単位誤差情報算出手段と、
前記ビット単位誤差情報算出手段によって算出したビット単位誤差情報を元に、前記計数手段により計数する総カウンタークロック数を前記ビットデータごとに決定する決定手段と
を具備し、
前記計数手段は、
前記決定手段によって決定した前記総カウンタークロック数を計数する情報受信制御装置。
【請求項2】
前記決定手段は、
前記ビット単位誤差情報算出手段によって算出したビット単位誤差情報を元に、前記ビットデータごとに前記計数手段によりカウンタークロック数を計数するときのカウンター初期値を決定し、
前記計数手段は、
前記決定手段によって決定した前記カウンター初期値から前記特性カウンタークロック算出手段によって算出した前記特性カウンタークロックのカウンタークロック数までの総カウンタークロック数を計数する請求項1記載の情報受信制御装置。
【請求項3】
前記取得タイミング検出手段により検出した取得タイミングにおける前記ビットデータを取得するビットデータ取得手段
をさらに具備し、
前記ビットデータ取得手段は、
前記計数手段によって総カウンタークロック数を計数する際に、前記指定カウンタークロック数を計数することにより前記ビットデータを取得する請求項1または2に記載の情報受信制御装置。
【請求項4】
前記特性カウンタークロック算出手段によって算出した特性カウンタークロックと前記カウンタークロック算出手段によって算出したカウンタークロックとからカウンタークロック単位におけるカウンタークロック誤差情報を算出するカウンタークロック単位誤差情報算出手段
をさらに具備し、
前記ビット単位誤差情報算出手段は、
前記カウンタークロック単位誤差情報算出手段によって算出した前記カウンタークロック誤差情報に基づくカウンタークロック誤差量を前記総カウンタークロック数、積算することによって前記ビット単位誤差情報を算出する請求項1または2に記載の情報受信制御装置。
【請求項5】
前記取得タイミング検出手段は、
特定単位を用いて前記取得タイミングを検出する演算回路によって構成され、
前記演算回路は、
前記ビット単位誤差情報算出手段によって算出した前記ビット単位誤差情報を前記特定単位の特定ビット単位誤差情報に変換する単位変換手段
を具備し、
前記決定手段は、
前記単位変換手段によって変換した特定ビット単位誤差情報をもとに前記総カウンタークロック数を決定する請求項1乃至4のいずれかに記載の情報受信制御装置。
【請求項6】
基準クロックをカウンタークロックに分周するクロック分周手段と、
調歩同期式のシリアル通信に用いられるビット単位の通信データのビットデータごとに前記クロック分周手段で分周した前記カウンタークロックのカウンタークロック数を計数する計数手段と、
前記計数手段によって計数したカウンタークロック数が、予め指定した指定カウンタークロック数となることにより該指定カウンタークロック数の計数タイミングを前記ビットデータの取得タイミングとして検出する取得タイミング検出手段と
を備える情報受信制御装置により使用される情報受信制御方法であって、
前記基準クロックを用いて算出される前記カウンタークロック数に対する分周値を元にカウンタークロック算出特性に基づいた特性分周値を計算する特性分周値計算工程と、
前記特性分周値計算工程によって計算された前記特性分周値と前記基準クロックとに基づいて特性カウンタークロックを算出する特性カウンタークロック算出工程と、
前記カウンタークロック数に対する分周値と前記基準クロックとに基づいてカウンタークロックを算出するカウンタークロック算出工程と、
前記特性カウンタークロック算出工程によって算出された特性カウンタークロックと前記カウンタークロック算出工程によって算出されたカウンタークロックとに基づき、前記計数工程によって前記カウンタークロック数が計数されたときのビット単位当たりのビット単位誤差情報を算出するビット単位誤差情報算出工程と、
前記ビット単位誤差情報算出工程によって算出されたビット単位誤差情報を元に、前記計数工程により計数する総カウンタークロック数を前記ビットデータごとに決定する決定工程と
を含み、前記計数工程が、前記決定工程によって決定された前記総カウンタークロック数を計数することを特徴とする情報受信制御方法。
【請求項7】
請求項6に記載の情報受信制御方法を演出手段に実行させる、ことを特徴とする情報受信制御プログラム。
【請求項8】
請求項7に記載の情報受信制御プログラムが、演出手段により読み取り可能に記録されていることを特徴とする記録媒体。
【請求項1】
基準クロックをカウンタークロックに分周するクロック分周手段と、
調歩同期式のシリアル通信に用いられるビット単位の通信データのビットデータごとに前記クロック分周手段で分周した前記カウンタークロックのカウンタークロック数を計数する計数手段と、
前記計数手段によって計数したカウンタークロック数が、予め指定した指定カウンタークロック数となることにより該指定カウンタークロック数の計数タイミングを前記ビットデータの取得タイミングとして検出する取得タイミング検出手段と
を備える情報受信制御装置において、
前記基準クロックを用いて算出される前記カウンタークロック数に対する分周値を元にカウンタークロック算出特性に基づいた特性分周値を計算する特性分周値計算手段と、
前記特性分周値計算手段によって計算した前記特性分周値と前記基準クロックとに基づいて特性カウンタークロックを算出する特性カウンタークロック算出手段と、
前記カウンタークロック数に対する分周値と前記基準クロックとに基づいてカウンタークロックを算出するカウンタークロック算出手段と、
前記特性カウンタークロック算出手段によって算出した特性カウンタークロックと前記カウンタークロック算出手段によって算出したカウンタークロックとに基づき、前記計数手段によって前記カウンタークロック数を計数したときのビット単位当たりのビット単位誤差情報を算出するビット単位誤差情報算出手段と、
前記ビット単位誤差情報算出手段によって算出したビット単位誤差情報を元に、前記計数手段により計数する総カウンタークロック数を前記ビットデータごとに決定する決定手段と
を具備し、
前記計数手段は、
前記決定手段によって決定した前記総カウンタークロック数を計数する情報受信制御装置。
【請求項2】
前記決定手段は、
前記ビット単位誤差情報算出手段によって算出したビット単位誤差情報を元に、前記ビットデータごとに前記計数手段によりカウンタークロック数を計数するときのカウンター初期値を決定し、
前記計数手段は、
前記決定手段によって決定した前記カウンター初期値から前記特性カウンタークロック算出手段によって算出した前記特性カウンタークロックのカウンタークロック数までの総カウンタークロック数を計数する請求項1記載の情報受信制御装置。
【請求項3】
前記取得タイミング検出手段により検出した取得タイミングにおける前記ビットデータを取得するビットデータ取得手段
をさらに具備し、
前記ビットデータ取得手段は、
前記計数手段によって総カウンタークロック数を計数する際に、前記指定カウンタークロック数を計数することにより前記ビットデータを取得する請求項1または2に記載の情報受信制御装置。
【請求項4】
前記特性カウンタークロック算出手段によって算出した特性カウンタークロックと前記カウンタークロック算出手段によって算出したカウンタークロックとからカウンタークロック単位におけるカウンタークロック誤差情報を算出するカウンタークロック単位誤差情報算出手段
をさらに具備し、
前記ビット単位誤差情報算出手段は、
前記カウンタークロック単位誤差情報算出手段によって算出した前記カウンタークロック誤差情報に基づくカウンタークロック誤差量を前記総カウンタークロック数、積算することによって前記ビット単位誤差情報を算出する請求項1または2に記載の情報受信制御装置。
【請求項5】
前記取得タイミング検出手段は、
特定単位を用いて前記取得タイミングを検出する演算回路によって構成され、
前記演算回路は、
前記ビット単位誤差情報算出手段によって算出した前記ビット単位誤差情報を前記特定単位の特定ビット単位誤差情報に変換する単位変換手段
を具備し、
前記決定手段は、
前記単位変換手段によって変換した特定ビット単位誤差情報をもとに前記総カウンタークロック数を決定する請求項1乃至4のいずれかに記載の情報受信制御装置。
【請求項6】
基準クロックをカウンタークロックに分周するクロック分周手段と、
調歩同期式のシリアル通信に用いられるビット単位の通信データのビットデータごとに前記クロック分周手段で分周した前記カウンタークロックのカウンタークロック数を計数する計数手段と、
前記計数手段によって計数したカウンタークロック数が、予め指定した指定カウンタークロック数となることにより該指定カウンタークロック数の計数タイミングを前記ビットデータの取得タイミングとして検出する取得タイミング検出手段と
を備える情報受信制御装置により使用される情報受信制御方法であって、
前記基準クロックを用いて算出される前記カウンタークロック数に対する分周値を元にカウンタークロック算出特性に基づいた特性分周値を計算する特性分周値計算工程と、
前記特性分周値計算工程によって計算された前記特性分周値と前記基準クロックとに基づいて特性カウンタークロックを算出する特性カウンタークロック算出工程と、
前記カウンタークロック数に対する分周値と前記基準クロックとに基づいてカウンタークロックを算出するカウンタークロック算出工程と、
前記特性カウンタークロック算出工程によって算出された特性カウンタークロックと前記カウンタークロック算出工程によって算出されたカウンタークロックとに基づき、前記計数工程によって前記カウンタークロック数が計数されたときのビット単位当たりのビット単位誤差情報を算出するビット単位誤差情報算出工程と、
前記ビット単位誤差情報算出工程によって算出されたビット単位誤差情報を元に、前記計数工程により計数する総カウンタークロック数を前記ビットデータごとに決定する決定工程と
を含み、前記計数工程が、前記決定工程によって決定された前記総カウンタークロック数を計数することを特徴とする情報受信制御方法。
【請求項7】
請求項6に記載の情報受信制御方法を演出手段に実行させる、ことを特徴とする情報受信制御プログラム。
【請求項8】
請求項7に記載の情報受信制御プログラムが、演出手段により読み取り可能に記録されていることを特徴とする記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−134899(P2012−134899A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−287006(P2010−287006)
【出願日】平成22年12月24日(2010.12.24)
【出願人】(000005016)パイオニア株式会社 (3,620)
【Fターム(参考)】
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願日】平成22年12月24日(2010.12.24)
【出願人】(000005016)パイオニア株式会社 (3,620)
【Fターム(参考)】
[ Back to top ]