特許第6378966号(P6378966)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ラピスセミコンダクタ株式会社の特許一覧

特許6378966調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法
<>
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000002
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000003
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000004
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000005
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000006
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000007
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000008
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000009
  • 特許6378966-調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6378966
(24)【登録日】2018年8月3日
(45)【発行日】2018年8月22日
(54)【発明の名称】調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法
(51)【国際特許分類】
   H04L 7/04 20060101AFI20180813BHJP
   H04L 25/40 20060101ALI20180813BHJP
【FI】
   H04L7/04 400
   H04L25/40 R
【請求項の数】5
【全頁数】16
(21)【出願番号】特願2014-164837(P2014-164837)
(22)【出願日】2014年8月13日
(65)【公開番号】特開2016-40892(P2016-40892A)
(43)【公開日】2016年3月24日
【審査請求日】2017年4月25日
(73)【特許権者】
【識別番号】308033711
【氏名又は名称】ラピスセミコンダクタ株式会社
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(74)【代理人】
【識別番号】100099025
【弁理士】
【氏名又は名称】福田 浩志
(72)【発明者】
【氏名】清水 啓介
【審査官】 太田 龍一
(56)【参考文献】
【文献】 特開2012−257035(JP,A)
【文献】 特開平08−149120(JP,A)
【文献】 特開平10−126402(JP,A)
【文献】 米国特許出願公開第2005/0278608(US,A1)
【文献】 特開2005−333513(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/04
H04L 25/40
(57)【特許請求の範囲】
【請求項1】
スタートビットを含むシリアルデータの取得タイミングを規定するクロックが入力される回数をカウントするカウンタと、
前記スタートビットが入力されたタイミングでの前記クロックの遷移に応じて、前記スタートビットに対応する期間内に、前記カウンタによりカウントされるカウント値の上限値を変更する変更部と、
を含む調歩同期式シリアルデータ取得装置。
【請求項2】
前記変更部は、前記クロックの第1遷移と第2遷移とで前記スタートビットを検出し、前記スタートビットを前記第1遷移で先に検出した場合に前記上限値を減算せず、前記スタートビットを前記第2遷移で先に検出した場合に前記上限値を減算する請求項1に記載の調歩同期式シリアルデータ取得装置。
【請求項3】
前記変更部により減算された前記上限値が前記カウンタによりカウントされた場合に、前記カウンタのカウント値はリセットされ、かつ、前記上限値は減算前の値に復帰する請求項2に記載の調歩同期式シリアルデータ取得装置。
【請求項4】
前記カウンタは、前記第1遷移でカウントする請求項2又は請求項3に記載の調歩同期式シリアルデータ取得装置。
【請求項5】
スタートビットを含むシリアルデータの取得タイミングを規定するクロックが入力される回数をカウントし、
前記スタートビットが入力されたタイミングでの前記クロックの遷移に応じて、前記スタートビットに対応する期間内に、カウントしたカウント値の上限値を変更することを含む調歩同期式シリアルデータ取得方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法に関する。
【背景技術】
【0002】
調歩同期式シリアル通信では、クロックを伝送する信号線のように、常にシリアルデータの同期をとるための制御用信号線が存在しない。そのため、各通信回路内で通信用のクロックに基づいてボーレートを生成して通信を行っている。当然、各信号回路内で生成されるボーレートには誤差が生じる。ボーレートの誤差は、シリアルデータの取得タイミングの誤差となって現れる。
【0003】
従来の調歩同期式シリアル通信では、一例として図7に示すように、受信データが受信回路内で生成されたボーレートの立ち上がりエッジ(固定化されたタイミング)でサンプリングされる。そして、各通信回路間のボーレートの誤差は、ストップビット検出時に受信回路内で生成されたボーレートのハイレベル区間が調整されることによって補正される。
【0004】
また、特許文献1には、ボーレートの誤差を抑制するため技術として、受信データを同期化する同期クロックの出力を制御する同期回路が開示されている。この同期回路では、受信データの開始位置が検出クロックの立ち上がりエッジと立ち下がりエッジで検出され、立ち上がりエッジ及び立ち下がりエッジのうち開始位置の検出に近い方の同期クロックが出力される。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−216834号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
数十kHzオーダのクロックである低速のクロックでサンプリングする方式を採用した場合、一例として図9図9に示す例では、38.4kHzのクロック)に示すように、スタートビットが入力されるタイミングによっては、スタートビットの検出が最大で1クロック分遅れてしまうという問題点がある。
【0007】
一方、特許文献1に記載の技術では、立ち上がりエッジで動作する回路と立ち下がりエッジで動作する回路とが必要になるため、ボーレートを生成するカウンタの回路規模が倍増してしまう。
【0008】
また、シリアルデータの取得タイミングの誤差を抑制する技術として、クロックの何れかのエッジで検出されたかによって全ての動作クロックエッジを動的に切り替えるサンプリング方式も考えられる。しかし、この方式は、現在の主流であるRTL(Register Transfer Level)による同期設計(例えば、クロックの立ち上がりでデータを取得することを前提とした設計)や、同期設計を前提とした静的タイミング解析(STA)で推奨されていない。その上、難易度の高い設計や検証が必要になる。
【0009】
本発明は上記問題点を解決するために成されたものであり、シリアルデータの取得タイミングの誤差を簡易な構成で抑制することができる調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、請求項1に記載の調歩同期式シリアルデータ取得装置は、スタートビットを含むシリアルデータの取得タイミングを規定するクロックが入力される回数をカウントするカウンタと、前記スタートビットが入力されたタイミングでの前記クロックの遷移に応じて、前記スタートビットに対応する期間内に、前記カウンタによりカウントされるカウント値の上限値を変更する変更部と、を含む。
【0011】
上記目的を達成するために、請求項5に記載の調歩同期式シリアルデータ取得方法は、スタートビットを含むシリアルデータの取得タイミングを規定するクロックが入力される回数をカウントし、前記スタートビットが入力されたタイミングでの前記クロックの遷移に応じて、前記スタートビットに対応する期間内に、カウントしたカウント値の上限値を変更することを含む。
【発明の効果】
【0012】
本発明によれば、シリアルデータの取得タイミングの誤差を簡易な構成で抑制することができる、という効果が得られる。
【図面の簡単な説明】
【0013】
図1】実施形態に係る調歩同期式シリアルデータ取得装置の構成の一例を示すブロック図である。
図2】実施形態に係る調歩同期式シリアルデータ取得装置に含まれるスタートビット検出回路及び検出タイミング判別回路の構成の一例を示す回路図である。
図3】実施形態に係る調歩同期式シリアルデータ取得装置においてクロックの立ち上がりエッジよりも先にクロックの立ち下がりエッジでスタートビットが検出される場合の信号の遷移状態の一例を示すタイムチャートである。
図4】実施形態に係る調歩同期式シリアルデータ取得装置においてクロックの立ち下がりエッジよりも先にクロックの立ち上がりエッジでスタートビットが検出される場合の信号の遷移状態の一例を示すタイムチャートである。
図5】実施形態に係る調歩同期式シリアルデータ取得装置で実行されるカウント処理の流れの一例を示すフローチャートである。
図6】実施形態に係る調歩同期式シリアルデータ取得装置の構成の変形例を示すブロック図である。
図7】受信回路内のボーレートの誤差をストップビット検出時に補正される場合の受信データ、送信回路内のボーレート、及び受信回路内のボーレートの遷移状態の一例を示すタイムチャートである。
図8】高速のクロックと受信データとの対応関係の一例を示すタイムチャートである。
図9】低速のクロックと受信データとの対応関係の一例を示すタイムチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照して、本発明を実施するための形態例について詳細に説明する。
【0015】
一例として図1に示すように、調歩同期式シリアルデータ取得装置10は、調歩同期式でシリアルデータを1フレーム毎に取得する装置であり、低速発振回路12、カウンタ14、変更部16、及び受信データ取得部18を含む。なお、1フレーム分のシリアルデータとは、例えば、Mビットのスタートビット、N(≧M)ビットのデータビット、Mビットのパリティビット、及びMビットのストップビットを含むデータを指す。
【0016】
低速発振回路12は、シリアルデータの取得タイミングを規定するクロックとして38.4kHzのクロックを生成して出力する。
【0017】
カウンタ14は、低速発振回路12に接続されており、低速発振回路12からクロックが入力される回数をカウントする。なお、本実施形態では、1クロック毎にカウント値が1加算され、カウンタ14により“0”から“2”又は“3”までカウントアップされる。
【0018】
変更部16は、スタートビットが入力されたタイミングでのクロックの遷移に応じて、カウンタ14によりカウントされるスタートビットに対応するカウント値の上限値を変更する。なお、クロックの遷移とは、クロックの立ち上がり及び立ち下がりを指す。また、本実施形態では、スタートビットが入力されたタイミングでのクロックの遷移に応じて、カウント値の上限値として“2”と“3”が選択的に採用される。
【0019】
変更部16は、スタートビット検出回路20、検出タイミング判別回路22、及び減算回路24を含む。スタートビット検出回路20及び検出タイミング判別回路22は、低速発振回路12に接続されており、クロックが入力される。
【0020】
スタートビット検出回路20には、受信データが入力される。ここで、受信データとは、例えば、調歩同期式シリアルデータ取得装置10の入力ポート(図示省略)に入力されたシリアルデータを指す。スタートビット検出回路20は、低速発振回路12に接続されており、クロックの立ち上がりエッジと立ち下がりエッジとのうちのスタートビットが入力されたタイミングで先に入力されたエッジでスタートビットを検出する。そして、スタートビット検出回路20は、検出タイミング判別回路22に接続されており、スタートビットを検出すると、スタートビットを検出したことを示すスタートビット検出信号を検出タイミング判別回路22に出力する。
【0021】
また、スタートビット検出回路20は、カウンタ14に接続されており、立ち上がりエッジでスタートビットを検出すると、カウントの開始を指示するカウントスタート信号をカウンタ14に出力する。カウンタ14は、カウントスタート信号が入力されると、カウントを“0”から開始する。
【0022】
なお、本実施形態において、クロックの立ち上がりは本発明に係る第1遷移の一例であり、クロックの立ち下がりは本発明に係る第2遷移の一例である。
【0023】
検出タイミング判別回路22は、クロックの立ち上がりエッジ及び立ち下がりエッジのうちの立ち下がりエッジで先にスタートビットが検出されたか否かを判別する。検出タイミング判別回路22は、カウンタ14及び減算回路24に接続されており、立ち下がりエッジで先にスタートビットが検出されたと判別した場合に、減算指示信号を減算回路24に出力する。減算指示信号は、カウント値の上限値を1減算することを指示する信号である。
【0024】
減算回路24は、カウンタ14に接続されており、カウント値が入力される。減算回路24は、入力された減算指示信号及びカウント値に基づいて、カウンタ14のカウント値をクリアする(カウント値を“0”に戻す)ことを指示するカウントクリア信号をカウンタ14及び検出タイミング判別回路22に出力する。カウンタ14は、カウントクリア信号が入力されると、カウント値をクリアする。検出タイミング判別回路22は、カウントクリア信号が入力されると、減算指示信号をクリアする。なお、カウントクリア信号は、減算指示信号が入力された状態の減算回路24に対してカウント値の上限値(例えば、“3”)を1減算したカウント値(例えば、“2”)が入力された場合に、減算回路24によって出力される。また、カウントクリア信号は、減算指示信号がクリアされると、これ以降、カウンタ14から減算回路24にカウント値の上限値(例えば、“3”)が入力される毎に減算回路24によって出力される。
【0025】
受信データ取得部18は、シフトレジスタ26及び受信レジスタ28を含む。シフトレジスタ26は、低速発振回路12、カウンタ14、及び受信レジスタ28に接続されており、カウント値の上限値である“3”が入力されると、受信データを取得する。そして、シフトレジスタ26は、取得した受信データをクロックに応じて受信レジスタ28に出力する。受信レジスタ28は、シフトレジスタ26から入力された受信データを保持する。
【0026】
一例として図2に示すように、スタートビット検出回路20は、インバータ30、第1フリップフロップ32、及び第2フリップフロップ34を含む。また、検出タイミング判別回路22は、第1AND回路36、第2AND回路38、OR回路40、及び第3フリップフロップ42を含む。なお、第1フリップフロップ32、第2フリップフロップ34、及び第3フリップフロップ42は、D型のフリップフロップである。
【0027】
インバータ30には、受信データが入力される。インバータ30は、入力された受信データを反転して出力する。
【0028】
第1フリップフロップ32の一方の入力端子には、インバータ30の出力端子が接続されており、インバータ30によって反転された受信データが入力される。第1フリップフロップ32の他方の入力端子には、反転されたクロックが入力される。第1フリップフロップ32の出力端子には、第1AND回路36の一方の入力端子が接続されている。第1フリップフロップ32は、クロックの立ち下がりエッジで受信データのスタートビットを検出し、スタートビット信号を第1AND回路36の一方の入力端子に出力する。
【0029】
第2フリップフロップ34の一方の入力端子には、インバータ30の出力端子が接続されており、インバータ30によって反転された受信データが入力される。第2フリップフロップ32の他方の入力端子には、クロックが入力される。第2フリップフロップ34の出力端子には、第1AND回路36の他方の入力端子が接続されるとともにカウンタ14が接続されている。第2フリップフロップ34は、クロックの立ち上がりエッジで受信データのスタートビットを検出し、スタートビット信号を第2AND回路36の他方の入力端子に出力するとともに、カウンタ14にカウントスタート信号を出力する。
【0030】
第2AND回路36の一方の入力端子には、第1フリップフロップ34からスタートビット信号が入力される。第2AND回路36の他方の入力端子には、第2フリップフロップ34から、反転されたスタートビット信号が入力される。第2AND回路36の出力端子には、OR回路40の一方の入力端子が接続されている。
【0031】
第2AND回路36は、クロックの立ち上がりエッジ及び立ち下がりエッジのうちの立ち下がりエッジで先にスタートビットが検出された場合に判別信号を出力する。また、第2AND回路36は、クロックの立ち上がりエッジ及び立ち下がりエッジのうちの立ち上がりエッジで先にスタートビットが検出された場合に判別信号を出力しない。なお、ここで、判別信号とは、クロックの立ち上がりエッジ及び立ち下がりエッジのうちの立ち下がりエッジで先にスタートビットが検出されたと判別したことを示す信号を指す。
【0032】
OR回路40の出力端子には、第2AND回路38の一方の入力端子が接続されている。第2AND回路38の他方の入力端子には、反転されたカウントクリア信号が入力される。第2AND回路38の出力端子には、第3フリップフロップ42の一方の入力端子が接続されている。第3フリップフロップ42の他方の入力端子には、クロックが入力される。第3フリップフロップ42の出力端子には、OR回路40の他方の入力端子及び減算回路24が接続されている。
【0033】
第3フリップフロップ42は、OR回路40の第1入力端子に判別信号が入力されると、減算指示信号を減算回路24(図1参照)に出力し、反転されたカウントクリア信号が第2AND回路38に入力されると、減算指示信号をクリアする。
【0034】
次に、調歩同期式シリアルデータ取得装置10の動作について説明する。
【0035】
なお、以下では、説明の便宜上、1フレーム分のシリアルデータである受信データが調歩同期式シリアルデータ取得装置10によって取得される場合について説明する。また、以下では、説明の便宜上、受信データの取得がクロックの立ち上がりエッジで行われることを前提として説明する。また、以下では、受信データが9600bpsで受信されたシリアルデータである場合について説明する。この場合、各ビットの幅は約0.104ミリ秒(1s/9600b)であり、38.4kHz(0.026ミリ秒)の4クロック分に相当する。更に、以下では、説明の便宜上、信号レベルがハイレベルの信号をH信号と称し、信号レベルがローレベルの信号をL信号と称する。
【0036】
先ず、図3を参照して、スタートビット検出回路20によりクロックの立ち上がりエッジよりも先にクロックの立ち下がりエッジでスタートビットが検出される場合について説明する。
【0037】
一例として図3に示すように、入力された受信データに含まれるスタートビットが第1フリップフロップ32によってクロックの立ち下がりエッジで検出されると、第1フリップフロップ32の出力がローレベルからハイレベルに遷移し、H信号であるスタートビット検出信号が第1フリップフロップ32により出力される。
【0038】
第2フリップフロップ34によりスタートビット検出信号が出力されていない状態で第1フリップフロップ32から第1AND回路36にスタートビット検出信号が入力されると、第1AND回路36により半クロック分のH信号である判別信号が出力される。判別信号がOR回路40に入力されると、OR回路40により半クロック分のH信号が出力され、OR回路40から第2AND回路38にH信号が入力されると、第2AND回路38により半クロック分のH信号が出力される。
【0039】
ここで、第2フリップフロップ34によってクロックの立ち上がりエッジでスタートビットが検出されると、第2フリップフロップ34の出力がローレベルからハイレベルに遷移し、H信号であるスタートビット検出信号が第2フリップフロップ34により出力される。
【0040】
第2フリップフロップ34からカウンタ14にスタートビット検出信号がカウントスタート信号として入力されると、カウンタ14によるカウントが“0”から開始される。カウンタ14のカウント値は1クロックにつき1加算され、減算回路24及びシフトレジスタ26に出力される。
【0041】
第2AND回路38から第3フリップフロップ42にH信号が入力されると、3クロック分のH信号である減算指示信号が減算回路24に出力される。
【0042】
減算指示信号が入力された状態の減算回路24にカウント値の“2”が入力されると、減算回路24により1クロック分のH信号であるカウントクリア信号がカウンタ14及び第2AND回路38に出力される。減算回路24からカウンタ14にカウントクリア信号が入力されると、カウント値の“2”がクリアされてカウント値が“0”にリセットされる。また、減算回路24から第2AND回路38にカウントクリア信号が入力されると、第3フリップフロップ42の出力がハイレベルからローレベルに遷移して減算指示信号がクリアされる。減算指示信号がクリアされると、これ以降のデータ取得(例えば、データビットの取得)では、カウント値の上限値が“2”から“3”に復帰する。
【0043】
減算指示信号がクリアされると、これ以降、カウンタ14によりクロックの入力に応じて“0”からカウントが開始され、カウント値が減算回路24及びシフトレジスタ26に出力される。カウント値の上限値である“3”がシフトレジスタ26に入力されると、シフトレジスタ26により受信データが取得される。シフトレジスタ26によって取得された受信データは、クロックに同期して受信レジスタ28に出力される。シフトレジスタ26から受信レジスタ28に入力された受信データは、受信レジスタ28によって保持される。
【0044】
減算回路24にカウント値の“3”が入力されると、減算回路24によりカウントクリア信号がカウンタ14に出力される。減算回路24からカウンタ14にカウントクリア信号が入力されると、カウント値の“3”がクリアされ、再び“0”からカウントが開始される。
【0045】
次に、図4を参照して、スタートビット検出回路20によりクロックの立ち下がりエッジよりも先にクロックの立ち上がりエッジでスタートビットが検出される場合について説明する。
【0046】
一例として図4に示すように、入力された受信データに含まれるスタートビットが第2フリップフロップ34によってクロックの立ち上がりでエッジが検出されると、第2フリップフロップ34によりスタートビット信号が出力される。
【0047】
第2フリップフロップ34によってスタートビットが検出されてから半クロックが経過して第1フリップフロップ32によってクロックの立ち下がりエッジでスタートビットが検出されると、第1フリップフロップ32によりスタートビット信号が出力される。
【0048】
このように、クロックの立ち下がりエッジよりも先にクロックの立ち上がりエッジでスタートビットが検出されると、第1AND回路36により判別信号が出力されない。そのため、第3フリップフロップ42により減算指示信号も出力されない。
【0049】
第2フリップフロップ34からカウンタ14にスタートビット検出信号がカウントスタート信号として入力されると、カウンタ14によるカウントが“0”から開始される。カウンタ14のカウント値は減算回路24及びシフトレジスタ26に出力される。
【0050】
減算指示信号が入力されていない状態の減算回路24にカウント値の上限値である“3”が入力されると、減算回路24によりカウントクリア信号がカウンタ14に出力される。減算回路24からカウンタ14にカウントクリア信号が入力されると、カウント値の“3”がクリアされてカウント値が“0”にリセットされる。
【0051】
これ以降、カウンタ14によりクロックの入力に応じてカウントされ、カウント値が減算回路24及びシフトレジスタ26に出力される。カウント値の上限値である“3”がシフトレジスタ26に入力されると、シフトレジスタ26により受信データが取得される。シフトレジスタ26によって取得された受信データは、クロックに同期して受信レジスタ28に出力される。シフトレジスタ26から受信レジスタ28に入力された受信データは、受信レジスタ28によって保持される。また、減算回路24にカウント値の“3”が入力されると、減算回路24からカウンタ14にカウントクリア信号が入力され、カウント値の“3”クリアされてカウント値が“0”にリセットされる。
【0052】
次に、調歩同期式シリアルデータ取得装置10によって実行されるカウント処理について図5を参照して説明する。
【0053】
図5に示すカウント処理では、先ず、ステップ100で、変更部16は、スタートビットが入力されたか否かを判定する。ステップ100において、スタートビットが入力されていない場合は、判定が否定されて、ステップ100の判定が再び行われる。ステップ100において、スタートビットが入力された場合は、判定が肯定されて、ステップ102へ移行する。
【0054】
ステップ102で、変更部16は、ステップ100にてスタートビットがクロックの立ち上がりエッジで入力されたか否かを判定する。ステップ102において、ステップ100にてスタートビットがクロックの立ち下がりエッジで入力された場合は、判定が否定されて、ステップ104へ移行する。ステップ102において、ステップ100にてスタートビットがクロックの立ち上がりエッジで入力された場合は、判定が肯定されて、ステップ108へ移行する。
【0055】
ステップ104で、変更部16は、減算指示信号を生成することでカウンタ14のカウント値の上限値を“3”から“2”に変更し、その後、ステップ106へ移行する。
【0056】
ステップ106で、変更部16は、クロックの立ち上がりエッジが入力されたか否かを判定する。ステップ106において、クロックの立ち上がりエッジが入力されていない場合は、判定が否定されて、ステップ106の判定が再び行われる。ステップ106において、クロックの立ち上がりエッジが入力された場合は、判定が肯定されて、ステップ108へ移行する。
【0057】
ステップ108で、カウンタ14は、カウントを“0”から開始し、その後、ステップ110へ移行する。
【0058】
ステップ110で、カウンタ14は、クロックの立ち上がりエッジが入力されたか否かを判定する。ステップ110において、クロックの立ち上がりエッジが入力されていない場合は、判定が否定されて、ステップ110の判定が再び行われる。ステップ110において、クロックの立ち上がりエッジが入力された場合は、判定が肯定されて、ステップ112へ移行する。
【0059】
ステップ112で、カウンタ14は、カウント値に1を加算し、その後、ステップ114へ移行する。
【0060】
ステップ114で、変更部16は、カウンタ14のカウント値が上限値に達したか否かを判定する。ステップ114において、カウンタ14のカウント値が上限値に達していない場合は、判定が否定されて、ステップ110へ移行する。ステップ114において、カウンタ14のカウント値が上限値に達した場合は、判定が肯定されて、ステップ116へ移行する。
【0061】
ステップ116で、変更部16は、現時点でのカウンタ14のカウント値の上限値がステップ104の処理で変更された後の上限値(=2)か否かを判定する。ステップ116において、現時点でのカウンタ14のカウント値の上限値がステップ104の処理で変更された後の上限値の場合(上限値=2の場合)は、判定が肯定されて、ステップ118へ移行する。ステップ116において、現時点でのカウンタ14のカウント値の上限値がステップ104の処理で変更された後の上限値でない場合(上限値=3の場合)は、判定が否定されて、ステップ120へ移行する。
【0062】
ステップ118で、変更部16は、減算指示信号をクリアすることでカウンタ14のカウント値の上限値(=2)を元の値(=3)に戻し、その後、ステップ120へ移行する。
【0063】
ステップ120で、変更部16は、カウントクリア信号をカウンタ14に出力し、その後、ステップ122へ移行する。ステップ120の処理が実行されることによってカウントクリア信号がカウンタ14に入力されると、カウント値がクリアされる。
【0064】
ステップ122で、変更部16は、ストップビットが入力されたか否かを判定する。ステップ122において、スタートビットが入力されていない場合は、判定が否定されて、ステップ106へ移行する。ステップ122において、スタートビットが入力された場合は、判定が肯定されて、本カウント処理を終了する。
【0065】
以上説明したように、調歩同期式シリアルデータ取得装置10では、変更部16により、受信データに含まれるスタートビットが入力されたタイミングでのクロックの遷移に応じて、スタートビットに対応するカウント値の上限値が変更される。すなわち、スタートビットが入力されたタイミングでのクロックの遷移が立ち上がりの場合は、スタートビットに対応するカウント値の上限値が“3”となり、スタートビットが入力されたタイミングでのクロックの遷移が立ち下がりの場合は、スタートビットに対応するカウント値の上限値が“2”となる。これにより、スタートビットの検出遅れが半クロック分抑制され、結果的に、1フレーム分の受信データの取得タイミングの誤差が半クロック分の誤差に抑制される。
【0066】
ところで、仮に、1フレーム分のサンプリングに要するクロック数が44クロックから45クロックになると、45/44*100=102.27となり、受信データの取得タイミングの誤差として約2.27%の誤差が生じる。つまり、これが1クロック分の誤差である。一般的に調歩同期式シリアル通信では、1フレーム当たり約3%が許容される誤差の上限とされているため、約2.27%の誤差が生じると、通信相手に許容される誤差は0.73%(=3−2.27)になってしまう。
【0067】
これに対し、調歩同期式シリアルデータ取得装置10によれば、受信データの取得タイミングの誤差が半クロック分の誤差である約1.13%の誤差に抑制されるので、1クロック分の誤差が生じる場合に比べ、通信相手の誤差の許容範囲が拡がる。
【0068】
一方、従来の調歩同期式シリアル通信では、受信データの先頭のデータであるスタートビットの検出精度を高くするために、一例として図8に示すように、数MHzオーダのクロックである高速化されたクロックでサンプリングする方式が多く採用されている。
【0069】
しかし、高速化されたクロックでサンプリングする方式を採用した場合、高周波数でクロックが生成されるため、電流を無駄に消費してしまうという問題点がある。
【0070】
これに対し、調歩同期式シリアルデータ取得装置10によれば、受信データの取得タイミングの誤差を抑制するにあたって、高周波数でクロックを生成する必要がないので、高速化されたクロックでサンプリングする方式を採用した場合に比べ、消費電流の増加が抑制される。
【0071】
また、調歩同期式シリアルデータ取得装置10によれば、1フレーム分の受信データのうちのスタートビットに関してのみカウント値の上限値が変更されるようにすれば良い。よって、調歩同期式シリアルデータ取得装置10は、RTLによる同期設計を前提としている場合において、クロックの何れのエッジでサンプリングしたかによって全ての動作クロックエッジを動的に切り替えるという従来技術に比べ、RTLによる同期設計の難易度を低くすることができる。
【0072】
また、調歩同期式シリアルデータ取得装置10は、クロックの立ち上がりエッジで動作する回路及びクロックの立ち上がりエッジで動作する回路により制御される出力段でクロックをセレクトするという従来技術に比べ、回路規模の増大を抑制することができる。
【0073】
このように、調歩同期式シリアルデータ取得装置10は、受信データの取得タイミングの誤差を簡易な構成で抑制することができる。
【0074】
また、調歩同期式シリアルデータ取得装置10では、クロックの立ち上がりエッジと立ち下がりエッジとでスタートビットが検出される。そして、クロックの立ち上がりエッジで先にスタートビットが検出された場合、クロックの立ち上がりエッジに対して半クロック以内にスタートビットが検出されたと判断され、カウント値の上限値が減算されない。また、クロックの立ち下がりエッジで先にスタートビットが検出された場合、スタートビットの検出が半クロック以上遅れたと判断され、カウント値の上限値が1減算される。すなわち、クロックの立ち下がりエッジで先にスタートビットが検出された場合、スタートビット区間を−1クロックすることで0.5(=1−0.5)クロックの誤差が抑制される。
【0075】
これにより、調歩同期式シリアルデータ取得装置10では、1フレーム分の受信データのうちのスタートビットの検出のみに対して2倍の周波数のクロックを適用した場合と同様の効果が得られる。
【0076】
また、調歩同期式シリアルデータ取得装置10では、実際に2倍の周波数のクロックが生成されるわけではなく、クロックの立ち上がりエッジと立ち下がりエッジとでスタートビットが検出される。よって、実際に2倍の周波数のクロックが生成される場合に比べ、少ない消費電流で受信データの取得タイミングの誤差が抑制され、回路規模の増大も抑制される。
【0077】
また、調歩同期式シリアルデータ取得装置10では、減算された上限値である“2”がカウンタ14によりカウントされた場合に、カウンタ14のカウント値がリセットされ、かつ、上限値が、減算される前の値である“3”に戻される。これにより、調歩同期式シリアルデータ取得装置10は、カウント値の上限値が減算された場合であっても、上限値が減算されない場合と同様の構成でデータビットを取得することができる。
【0078】
また、調歩同期式シリアルデータ取得装置10では、カウンタ14によるカウントがクロックの立ち上がりエッジで行われる。これにより、調歩同期式シリアルデータ取得装置10は、カウント値の上限値が変更された場合であっても、カウント値の上限値がカウントされるタイミングをスタートビットの終了位置に合わせることができる。
【0079】
なお、上記実施形態では、変更部16を有する調歩同期式シリアルデータ取得装置10を例示したが、これに限らず、例えば、図6に示すように、調歩同期式シリアルデータ取得装置50であっても本発明は成立する。
【0080】
ここで、図6を参照して、調歩同期式シリアルデータ取得装置10と調歩同期式シリアルデータ取得装置50との相違点について説明する。調歩同期式シリアルデータ取得装置50は、調歩同期式シリアルデータ取得装置10に比べ、変更部16に代えてサンプリング部52を有する点、カウンタ部54を有する点、及び受信データ取得部18に代えて受信データ取得部56を有する点が異なる。
【0081】
サンプリング部52は、スタートビット検出回路58及び検出タイミング判別回路60を有する。サンプリング部52には、受信データ及びクロックが入力される。サンプリング部52に入力された受信データ及びクロックは、スタートビット検出回路58に入力される。スタートビット検出回路58は、スタートビット検出信号を検出タイミング判別回路60に出力すると共に、カウントスタート信号を生成する。検出タイミング判別回路60は、減算指示信号を生成する。サンプリング部52は、カウントスタート信号及び減算指示信号をカウンタ部54に出力する。
【0082】
カウンタ部54は、クロックが入力される回数をカウントするカウント回路であるカウンタ62、及び減算回路64を有する。カウンタ部54は、減算回路64によって生成されたカウントクリア信号をサンプリング部52に出力する。減算回路64は、カウントクリア信号をカウンタ62に出力する。カウンタ部54にカウントスタート信号が入力されると、カウンタ62はカウントを開始する。カウンタ62は、カウント値を減算回路に出力する。カウンタ部54は、カウンタ62のカウント値を受信データ取得部56に出力する。
【0083】
受信データ取得部56は、シフトレジスタ66及び受信レジスタ68を有する。受信データ取得部56には、カウント値、受信データ、及びクロックが入力される。受信データ取得部56にカウント値がシフトレジスタ66に入力されると、シフトレジスタ66は、受信データを取得し、取得した受信データをクロックに同期して受信レジスタ68に出力する。受信レジスタ68は、入力された受信データを保持する。
【0084】
また、上記実施形態では、受信データがクロックの立ち上がりで取得されることを前提として、クロックの立ち上がりエッジよりも先にクロックの立ち下がりエッジでスタートビットが検出された場合にカウント値の上限値が減算される場合を例示したが、本発明はこれに限定されるものではない。例えば、受信データがクロックの立ち下がりで取得されることを前提として、クロックの立ち下がりエッジよりも先にクロックの立ち上がりエッジでスタートビットが検出された場合にカウント値の上限値が減算されるようにしてもよい。但し、この場合、クロックの立ち下がりエッジよりも先にクロックの立ち下がりエッジでスタートビットが検出された場合にカウント値の上限値が減算されないようにする。
【0085】
また、上記実施形態では、4クロック毎にカウント値がリセットされる場合を例示したが、4クロック未満又は5クロック以上のクロック数毎にカウント値がリセットされるようにしてもよい。
【0086】
また、上記実施形態では、シリアルデータの取得がクロックの立ち上がりエッジで行われることを前提としているため、カウンタ14によるカウントがクロックの立ち上がりエッジで行われる場合を例示したが、本発明はこれに限定されるものではない。すなわち、シリアルデータの取得がクロックの立ち下がりエッジで行われる場合には、カウンタ14によるカウントがクロックの立ち下がりエッジで行われるようにすればよい。
【0087】
また、上記実施形態では、低速のクロックを例示したが、本発明は高速のクロックであっても成立することは言うまでもない。
【0088】
以上の実施形態に関し、更に以下の付記を開示する。
【0089】
(付記1)
スタートビットを含むシリアルデータと前記シリアルデータの取得タイミングを規定するクロックとが入力される調歩同期式シリアルデータ取得装置であって、
前記クロックが入力される回数をカウントするカウンタ部と、
前記カウンタ部によりカウントされる前記スタートビットに対応するカウント値の上限値を変更する減算回路と、を含む調歩同期式シリアルデータ取得装置。
【0090】
(付記2)
前記カウンタ部は、前記減算回路を有する付記1に記載の調歩同期式シリアルデータ取得装置。
【0091】
(付記3)
前記クロックの第1遷移と第2遷移とで前記スタートビットを検出すると共に、前記スタートビットを検出した際の前記クロックの遷移に応じて、前記上限値の減算を指示する減算指示信号を前記減算回路に出力するサンプリング部を更に含み、
前記減算回路は、前記サンプリング部から前記減算指示信号が入力された場合に、前記上限値を減算することで前記上限値を変更する付記1又は付記2に記載の調歩同期式シリアルデータ取得装置。
【0092】
(付記4)
前記サンプリング部は、前記スタートビットを前記第1遷移で先に検出した場合に前記減算指示信号を出力せず、前記スタートビットを前記第2遷移で先に検出した場合に前記減算指示信号を出力する付記3に記載の調歩同期式シリアルデータ取得装置。
【0093】
(付記5)
前記カウンタ部は、前記回数をカウントするカウント回路を有し、
前記減算回路は、前記カウント値をクリアすることを指示するカウントクリア信号を前記カウント回路及び前記サンプリング部に出力し、
前記カウント回路は、前記減算回路から前記カウントクリア信号が入力された場合に前記カウント値をクリアし、
前記サンプリング部は、前記減算回路から前記カウントクリア信号が入力された場合に前記減算指示信号をクリアする付記3又は付記4に記載の調歩同期式シリアルデータ取得装置。
【0094】
(付記6)
前記サンプリング部は、前記第1遷移と前記第2遷移とで前記スタートビットを検出するスタートビット検出回路と、前記スタートビット検出回路によって前記第1遷移と前記第2遷移との何れで先に前記スタートビットが検出されたかを判別し、前記スタートビット検出回路によって前記スタートビットが前記第1遷移で先に検出された場合に前記減算指示信号を出力せず、前記スタートビット検出回路によって前記スタートビットが前記第2遷移で先に検出された場合に前記減算指示信号を出力する検出タイミング判別回路と、を有する付記3から付記5の何れか1つに記載の調歩同期式シリアルデータ取得装置。
【0095】
(付記7)
前記スタートビット検出回路は、前記第1遷移で前記スタートビットを検出した場合に、前記カウンタ部による前記回数のカウントの開始を指示するカウントスタート信号を前記カウンタ部に出力し、前記カウンタ部は、前記カウントスタート信号が入力された場合に、前記カウントを開始する付記6に記載の調歩同期式シリアルデータ取得装置。
【0096】
(付記8)
前記減算指示信号は、前記上限値を1減算することを指示する信号である付記3から付記7の何れか1つに記載の調歩同期式シリアルデータ取得装置。
【符号の説明】
【0097】
10 調歩同期式シリアルデータ取得装置
14,62 カウンタ
16,52 変更部
図1
図2
図3
図4
図5
図6
図7
図8
図9