通信装置およびフィールド機器システム
【課題】異なる周波数を用いて信号の値を表現して通信するときに、正確な通信を行うことを目的とする。
【解決手段】本発明の通信装置は、第1の周波数FLと第2の周波数FHとを用いて二値の信号を通信する通信装置1であって、一定の判定周期JTの間に変化する入力信号rxdのエッジ数を検出して、出力信号sigの論理を生成する信号生成部を備えている。エッジとエッジとの間隔ではなく、一定の判定周期JTの間のエッジ数を検出して、このエッジ数に基づいて入力信号rxdが第1の周波数FLであるか第2の周波数FHであるかを認識でき、入力信号rxdの論理の判定を行うことができる。これにより、出力信号sigを生成することができる。
【解決手段】本発明の通信装置は、第1の周波数FLと第2の周波数FHとを用いて二値の信号を通信する通信装置1であって、一定の判定周期JTの間に変化する入力信号rxdのエッジ数を検出して、出力信号sigの論理を生成する信号生成部を備えている。エッジとエッジとの間隔ではなく、一定の判定周期JTの間のエッジ数を検出して、このエッジ数に基づいて入力信号rxdが第1の周波数FLであるか第2の周波数FHであるかを認識でき、入力信号rxdの論理の判定を行うことができる。これにより、出力信号sigを生成することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2つの異なる周波数を用いて二値の信号の通信を行う通信装置およびこの通信システムを適用したフィールド機器システムに関するものである。
【背景技術】
【0002】
2つの異なる装置間で信号を通信する方式の1つとしてHART(Highway Addressable Remote Transducer)通信を用いることができる。HART通信では信号の論理を異なる周波数で表現している。一般的な規格としては、論理「0」を示すときには2200Hzの周波数とし、論理「1」を示すときには1200Hzの周波数としている。よって、送信側装置は、論理が「0」であるときには2200Hz、論理が「1」のときには1200Hzの信号に変調して信号を送信する。
【0003】
受信側装置では、送信側装置から送信された信号を受信して、この信号の周波数に基づいて信号を復調する。つまり、信号の周波数が2200Hzのときには論理「0」とし、1200Hzのときには論理「1」として復調する。これにより、HART通信が行われる。この種の技術としては、特許文献1に開示されている技術がある。
【0004】
図7は受信側装置を構成する復調部100の一例を示している。復調部100は受信側装置から送信された信号を入力信号rxdとして入力している。この入力信号rxdを復調して論理を判定し、出力信号sigとして出力している。同図に示すように、復調部100はライズエッジ検出回路101(図中ではRエッジ検出回路)とフォールエッジ検出回路102(図中ではFエッジ検出回路)と第1の論理和回路103とタイマ回路104と第2の論理和回路105とフリップフロップ106と第1比較器107と第2比較器108と第3の論理和回路109とを備えている。
【0005】
ライズエッジ検出回路101は入力信号rxdの立ち上がりエッジ(ライズエッジ)を検出しており、フォールエッジ検出回路102は入力信号rxdの立ち下りエッジ(フォールエッジ)を検出している。第1の論理和回路103はライズエッジ検出回路101が出力するライズエッジ信号rxdrとフォールエッジ検出回路102が出力するフォールエッジ信号rxdfとの論理和の演算を行っている。
【0006】
タイマ回路104は9ビット(図中data)のカウンタであり、「0」から開始して「511」までカウントを行う。「511」までカウントされたときには、9ビットの値は全て「1」になっている。タイマ回路104は所定のクロック周波数(ここでは、1.2288MHz)で動作を行っており、この1クロックの間にカウント値をインクリメントする。そして、タイマ回路104のカウント値が「511」に到達した後には、「511」を固定して出力する(ラップアラウンドしない)。
【0007】
タイマ回路104は第1の論理和回路103の出力(図中のtrig)を入力して、これをトリガとして、カウントを開始する。つまり、入力信号rxdが変化したエッジのタイミングでカウントを開始する。このときには、カウント値をリセット(値を「0」にする)してからカウントを開始する。
【0008】
タイマ回路104はカウントした値をカウント値prdpreとして出力する。また、タイマ回路104はカウント値が「511」まで到達したときには、その旨を示すパルスをキャリアウト信号carryとして出力する。第2の論理和回路105は第1の論理和回路103の出力trigとキャリアウト信号carryとの論理和の演算を行って、イネーブル信号としてフリップフロップ106に出力する。
【0009】
フリップフロップ106はタイマ回路104からのカウント値prdpreを入力して、その値を保持する。このとき、第2の論理和回路105からイネーブル信号を入力したときに値を保持するようにする。そして、保持した値は次のタイミングでカウント値prdとして第1比較器107に出力される。
【0010】
第1比較器107はフリップフロップ106から出力されたカウント値prdの比較を行って、第1出力信号prdhを出力する。カウント値prdが「361」以上であれば、第1出力信号prdhをハイ(High)として出力し、「361」未満であればロー(Low)として出力する。同様に、第2比較器108はタイマ回路104が出力したカウント値prdpreを比較して、第2出力信号prdprehを出力する。この第2出力信号prdprehは、カウント値が「361」以上のときにハイとなり、「361」未満のときにローとなる。
【0011】
第1出力信号prdhはフリップフロップ106を経由した信号であり、第2出力信号prdprehはフリップフロップ106を経由していない信号である。よって、もともとは同じカウント値prdpreである。このため、第1出力信号prdhと第2出力信号prdprehは同じ信号であり、且つタイミングがずれたものになる。
【0012】
第3の論理和回路109は第1出力信号prdhと第2出力信号prdprehとの論理和の演算を行っている。そして、出力信号sigとして後段の信号処理回路に出力している。この出力信号sigは送信側装置から送信された信号を復調した信号になる。以上により、HART通信による通信が行われて、論理が復元される。
【0013】
次に、図8のタイミングチャートを用いて動作について説明する。ライズエッジ検出回路101、フォールエッジ検出回路102で入力信号rxdのエッジが検出される。タイマ回路104はエッジを検出したタイミングでカウント値をゼロから開始し、次にエッジを検出するまでカウントアップを行う。そして、エッジを検出したときにはカウント値をゼロに戻す。
【0014】
入力信号rxdは異なる論理を表現するために、1200Hzの周波数または2200Hzの周波数になっている。入力信号rxdが1200Hzの場合と2200Hzの場合とでカウント値が異なる。つまり、タイマ回路104はエッジとエッジとの間の時間的な間隔を計測しており、入力信号rxdの周波数によってカウント値は異なる。これにより、論理を表現している。
【0015】
第1比較器107および第2比較器108が比較を行う基準となる値「361」は入力信号rxdの周波数の判定の基準となっている。周波数1200Hzと2200Hzとの中間値は1700Hzであり、これを復調部100のクロック周波数である1.2288MHzを基準とすると、そのカウント値は「722」となる。つまり、カウント値「722=1.2288MHz/1700Hz」となる。
【0016】
入力信号rxdは1周期の間に1回の立ち上がりと1回の立ち下りとがある。よって、エッジ(ライズエッジまたはフォールエッジ)とエッジ(フォールエッジまたはライズエッジ)との間隔は1周期の半分となる。このため、閾値を「722」の半分の「361」としている。この「361」以上となっているか否かを第1比較器107および第2比較器108は判定している。
【0017】
「361」未満になっているときは、入力信号rxdの周波数は高いことが認識される。よって、論理を「0」(つまり、入力信号rxdの周波数が2200Hz)として判定する。一方、「361」以上になっているときには、入力信号rxdの周波数が低いことが認識される。よって、論理を「1」(つまり、入力信号rxdの周波数が1200Hz)として判定する。
【0018】
従って、「361」を閾値として、入力信号rxdのエッジとエッジとの間の時間をタイマ回路104が計測することで、論理の判定を行っている。これにより、入力信号rxdの論理を判定して復調することができ、出力信号sigを出力することができるようになる。
【先行技術文献】
【特許文献】
【0019】
【特許文献1】特開2002−111752号公報
【発明の概要】
【発明が解決しようとする課題】
【0020】
従って、論理の判定は、エッジとエッジとの間の間隔(時間:パルス幅)を基準として検出するようにしている。この点は、図7に示した技術でも前述した特許文献1の技術でも同様である。そして、このエッジとエッジとの間隔は、入力信号rxdの論理が「0」であるか「1」であるかによって異なる。
【0021】
つまり、HART通信では、入力信号rxdを1200Hzと2200Hzとで周波数を異ならせることにより、論理を表現している。このため、エッジが出現するタイミングは論理が「0」(=2200Hz)であるか、論理が「1」(=1200Hz)であるかによって時間軸方向に変化する。従って、信号の論理が変化するタイミングは不定になる。
【0022】
一方、復調部100は一定の周波数(レート周期CTの周波数)で出力信号sigを生成しており、復調部100に接続される出力信号sigを処理する回路においてレート周期CTの周波数で出力信号sigを取得して所定の処理が行われる。このときのレート周期CTはあくまでも復調部100および後段の回路が動作する一定の周期であり、入力信号rxdの論理とは無関係になる。
【0023】
つまり、レート周期CTの周波数と入力信号rxdの周波数とは同期がされていないことになる。このため、レート周期CTのタイミングと入力信号rxdの論理が変化するタイミングとが近接すると、レート周期CTの間に本来であれば検出されるエッジが検出されず、或いは本来であれば検出されないエッジが検出されることがある。このため、タイマ回路104のカウント値が本来の入力信号rxdの値と異なるようになり、エッジとエッジとの間隔を正確に検出できなくなる。これにより、入力信号rxdが示す論理を正確に復調できなくなり、正しい通信を行うことができなくなる。
【0024】
また、論理を正確に復調できないために、通信の開始を検出することができない。送信側装置から受信側装置に向けて信号の送信を開始したときに、通信の開始が検出されるが、この通信の開始は入力信号rxdの論理が「0」であることを検出したときに、通信開始を検出する。このときに、前述したように、レート周期CTの周波数と入力信号rxdの周波数とが同期していないために論理を正確に復調できないとすると、通信の開始も正確に検出することができなくなる。
【0025】
そこで、本発明は、異なる周波数を用いて信号の値を表現して通信するときに、正確な通信を行うことを目的とする。
【課題を解決するための手段】
【0026】
以上の課題を解決するため、本発明の通信装置は、異なる周波数を用いて二値の信号を通信する通信装置であって、一定の周期の間に変化する前記信号のエッジ数を検出して、前記信号の論理を生成する信号生成部を備えたことを特徴とする。この通信装置によれば、エッジ間隔ではなく、一定の時間ごとに検出されるエッジ数に基づいて論理を判定しているため、正確な通信を行うことができる。
【0027】
また、前記信号生成部は、前記周期を計測するタイマと、このタイマが前記周期を計測するまでの間の前記エッジ数をカウントするエッジカウンタと、このエッジカウンタがカウントした前記エッジ数に基づいて前記信号の論理を判定する論理判定回路と、を備えていることを特徴とする。これにより、タイマのカウントにより周期を測定して、エッジ数のカウントを行うことができる。このため、正しく論理の判定を行って、出力信号を生成することができる。
【0028】
また、前記タイマは、第1の周波数の1周期分よりも短く、この第1の周波数よりも高い第2の周波数の1.5周期分よりも長い時間を前記周期として計測し、前記論理判定回路は、前記エッジ数が3つ以上であるか否かに基づいて論理の判定を行うことを特徴とする。これにより、第1の周波数と第2の周波数とで必ずエッジ数を異ならせることができるため、論理の判定を確実に行うことができ、正確な通信を実現することができる。
【0029】
また、前記論理判定回路は、前記第1の周波数を1200Hz、第2の周波数を2200Hzとしたときに、前記エッジ数が3つ以上の場合は論理「0」であると判定し、3つ未満の場合には論理「1」であると判定することを特徴とする。これにより、1200Hzと2200Hzとの周波数を用いたHART通信を行うときに、正確に通信を行うことができるようになる。
【0030】
また、前記論理判定回路は、前記エッジ数が「0」のときには前記信号が通信されていないと判定し、前記エッジ数が「0」から「3」に変化したときに前記信号の通信が開始されたと判定することを特徴とする。これにより、通信の開始を検出することができるようになる。
【0031】
また、前記タイマは、前記論理判定回路が判定した論理を出力するタイミングをレート周期として計測していることを特徴とする。これにより、タイマは判定周期とレート周期との2つの時間を計測する機能を持つことができ、2つの周期を計測するタイマを独立して設けることがないことから、回路を単純化することができる。
【0032】
また、本発明のフィールド機器システムは、前記何れかの通信装置を備えたことを特徴とする。通信装置はフィールド機器システムの上位制御装置とフィールド機器との間の通信に適用することができる。
【発明の効果】
【0033】
本発明は、異なる2つの周波数により論理を表現する通信を行うときに、信号のエッジ間隔ではなく、一定の判定周期ごとのエッジ数に基づいて論理を判定している。これにより、信号の論理によらず、常に正しい論理を復調でき、正確な通信を行うことができるようになる。
【図面の簡単な説明】
【0034】
【図1】通信装置の構成を示すブロック図である。
【図2】復調部の構成を示すブロック図である。
【図3】実施形態の復調部の動作を示すフローチャートである。
【図4】図3の続きのフローチャートである。
【図5】実施形態の動作のタイミングを示すタイミングチャートである。
【図6】パルスを喪失した場合のタイミングチャートである。
【図7】従来の復調部の構成を示すブロックである。
【図8】従来の復調部の動作のタイミングを示すタイミングチャートである。
【発明を実施するための形態】
【0035】
以下、図面を参照して、本発明の実施形態について説明する。本実施形態の通信装置は、例えばフィールド機器システムに適用することができる。フィールド機器システムは、差圧計や流量計、温度計等のセンサ、アクチュエータ、コントローラ等の各種フィールド機器と上位制御装置とを接続する。このときの、フィールド機器と上位制御装置との間で通信を行うときに、以下の通信装置を適用することができる。勿論、フィールド機器システム以外にも任意のシステムに適用してもよい。
【0036】
また、本実施形態ではHART(Highway Addressable Remote Transducer)通信により通信を行っている。HART通信は、信号の周波数を1200Hzまたは2200Hzとすることにより、論理を表現している。以下では、周波数が1200Hzの場合は論理「1」を示し、2200Hzの場合は論理「0」を示すものとする。勿論、周波数に対応する論理を逆にしてもよく、また論理を示す周波数を任意に設定してもよい。なお、本実施形態の通信装置であれば、HART通信という名称には限定されない。
【0037】
図1は通信装置1を示している。この通信装置1はUART送信部2と変調部3とアナログ波形送信回路4とアナログ波形受信回路5と復調部6とUART受信部7とを備えている。UART送信部2は送信する信号(論理が「0」または「1」の信号)を生成して、変調部3に出力する。図1の実施形態において、UART送信部2と変調部3とアナログ波形送信回路4とアナログ波形受信回路5と復調部6とでHART通信を行う。
【0038】
変調部3は入力した信号の論理によって、送信する信号の周波数を第1の周波数FLと第2の周波数FH(FH>FL)とに変調する。ここでは、論理が「1」のときには第1の周波数FL(=1200Hz)に変調し、「0」のときには第2の周波数FH(=2200Hz)に変調する。
【0039】
アナログ波形送信回路4は変調部3が変調した後の信号をデジタル信号からアナログ信号に変換する。そして、このアナログ信号を送信する。UART送信部2からアナログ波形送信回路4までが送信側回路を構成する。送信側回路としては例えばフィールド機器に設けることができる。
【0040】
アナログ波形受信回路5はアナログ波形送信回路4が送信したアナログ信号を受信する。そして、受信したアナログ信号をデジタル信号に変換する。このデジタル信号を入力信号rxdとして復調部6に入力し、復調部6は入力信号rxdから論理を復元する復調を行う。そして、UART受信部7に復調後の信号を出力信号sigとして出力する。
【0041】
UART受信部7は一定の周期(レート周期CT)のタイミングで入力される出力信号sigを取得して、所定の信号処理を行う。以上のアナログ波形受信回路5からUART受信部7までが受信側回路を構成する。例えば、フィールド機器システムにおける上位制御装置に受信側回路を設けることができる。
【0042】
次に、図2を用いて復調部6について説明する。この復調部6は出力信号sigを生成する信号生成部になる。復調部6は、ライズエッジ検出回路11とフォールエッジ検出回路12と論理和回路13と状態判定回路14とタイマ回路15とエッジ数カウンタ16と論理判定回路17とスタートビット検出回路18とを備えて構成している。
【0043】
復調部6は所定のクロック周波数CLKに基づいて動作を行っている。ここでは、クロック周波数CLKの周波数は1.2288MHzとする。勿論、クロック周波数CLKの値はこれに限定されず、任意の周波数とすることができる。
【0044】
ライズエッジ検出回路(図中ではRエッジ検出回路)11はクロック周波数CLKで動作を行っており、入力信号rxdの立ち上がりエッジ(ライズエッジ)を検出する。フォールエッジ検出回路(図中ではFエッジ検出回路)12はクロック周波数CLKで動作を行っており、入力信号rxdの立ち下りエッジ(フォールエッジ)を検出している。
【0045】
論理和回路13は、ライズエッジ検出回路11がライズエッジを検出したことを示すライズエッジ信号rxdrおよびフォールエッジ検出回路12がフォールエッジを検出したことを示すフォールエッジ信号rxdfの論理和の演算を行っている。つまり、論理和回路13は入力信号rxdのエッジ(ライズエッジおよびフォールエッジ)を検出していることになる。論理和回路13が出力する信号をエッジ信号rxdrfとする。
【0046】
状態判定回路14は入力信号rxdを受信した受信状態であるか、入力信号rxdを受信していないアイドル状態であるかを判定している。このために、ライズエッジ信号rxdrを入力している。このライズエッジ信号rxdrを入力したときに、アイドル状態から受信状態に切り替わったと判定する。そして、受信状態であることを示す状態信号statを出力する。
【0047】
タイマ回路15はクロック周波数CLKで動作を行うカウンタである。このタイマ回路15は10ビットカウンタ(図中のdata)としており、カウント値が「0」から「1023」までカウントアップ(カウント値のインクリメント)を行う。このタイマ回路15は状態信号statを入力しているとき、つまり受信状態であるときに動作を行う。
【0048】
タイマ回路15がカウントするカウント値が「0」から開始して、「1023」に到達したタイミングでキャリアウト信号carryを出力する。そして、キャリアウト信号carryを出力するタイミング、つまりカウント値が「1023」に到達したタイミングで、タイマ回路15はカウント値のリセットを行う(カウント値を「0」に戻す)。
【0049】
このキャリアウト信号carryはレート周期CTのタイミングを規定している。このレート周期CTは出力信号sigを出力するタイミング、つまりUART受信部7が出力信号sigを取得するタイミングになる。また、タイマ回路15は制御信号ctrを出力する。この制御信号ctrはタイマ回路15のカウント値が所定の閾値th(ここでは、837としている)に到達した時点で、その旨を示す信号になる。
【0050】
エッジ数カウンタ16は論理和回路13が出力したエッジ信号rxdrfを入力した回数を計測して、計測した回数をエッジ数として検出する。エッジ数カウンタ16は初期値を「0」としており、エッジ信号rxdrfを入力するたびに値のインクリメントを行う。このエッジ数カウンタ16にはキャリアウト信号carryが入力されており、キャリアウト信号carryを入力したタイミング、つまりレート周期CTのタイミングごとに値のリセットを行う(カウント値を「0」に戻す)。
【0051】
エッジ数カウンタ16は計測したエッジ数(カウント値)をエッジ信号edgとして出力する。なお、エッジ数カウンタ16には状態信号statが入力されており、受信状態のときにエッジ数カウンタ16は動作を行う。
【0052】
論理判定回路17は入力信号rxdの論理を判定している。論理の判定はエッジ数カウンタ16が出力するエッジ信号edgに基づいて行う。論理判定回路17は制御信号ctrを入力しており、制御信号ctrのタイミング、つまり閾値thに到達したタイミングでエッジ信号edgに基づいて論理の判定を行う。
【0053】
このときに、エッジ信号edgが「3」のときには論理が「0」であると判定し、「3」未満のときには論理が「1」であると判定する。判定した論理はレート周期CTごとに出力信号sigとしてUART受信部7に出力する。このため、タイマ回路15からキャリアウト信号carryを入力して、この信号のタイミング(レート周期CTのタイミング)で出力信号sigを出力している。これにより、信号を復元する復調を行う。
【0054】
スタートビット検出回路18は通信の開始を検出する。ここでは、入力信号rxdの論理が最初に「0」を示したときに、通信の開始を検出している。なお、論理が「1」のときに通信の開始を検出してもよい。このために、エッジ数カウンタ16からエッジ信号edgを入力する。そして、制御信号ctrを入力するタイミング、つまりタイマ回路15がカウントするカウント値が閾値thに到達したタイミングでエッジ信号edgを入力する。このときに入力したエッジ信号edgが「3」のときに、論理が「0」であることを認識して、通信の開始を検出する。
【0055】
以上の構成における動作について図3、図4のフローチャート並びに図5のタイミングチャートを用いて説明する。まず、状態判定回路14はライズエッジ信号rxdrに基づいて通信状態を検出する(ステップS11)。そして、ライズエッジが検出されているか否かの判定を行う(ステップS12)。
【0056】
ライズエッジが検出されなければ、アイドル状態となる。よって、ステップS11に戻る動作を繰り返す。一方、ライズエッジが検出されたときには、状態判定回路14は受信状態となったことを示す状態信号statを出力する。この状態信号statを入力することにより、タイマ回路15は自身のカウント値をリセットして、値を「0」に戻す(ステップS13)。また、エッジ数カウンタ16の値もリセットして、値を「0」にする(ステップS14)。
【0057】
そして、タイマ回路15はカウントアップを開始する(ステップS15)。タイマ回路15はクロック周波数CLKに同期したタイミングで動作を行っており、「0」から「1023」までカウントを行う。このときのカウントの最大値である「1023」はクロック周波数CLK(=1.2288MHz)をレート周期CTの周波数(=1200Hz)で除算した値(=1024=1.2288MHz/1200Hz)になる。
【0058】
ここでは、第1の周波数FLと第2の周波数FHとのうち低い周波数である第1の周波数FL(=1200Hz)とレート周期CTの周波数とを一致させている。これにより、第1の周波数FLのタイミングで出力信号sigを生成して出力している。このレート周期CTの周波数は第1の周波数FL以外の周波数に設定してもよい。
【0059】
従って、タイマ回路15はクロック周波数CLKの1クロックごとにカウントアップを行う。タイマ回路15には閾値thが設定されており、カウント値が閾値thに到達したか否かを判定する(ステップS16)。到達していない場合には、ステップS15に戻ってカウントアップを続行する。
【0060】
閾値thはエッジ数カウンタ16がエッジ数をカウントするタイミングであり、ここでは閾値thを「837」としている。タイマ回路15はカウント値が「0」から「837」になるまでの間を判定周期JTとして計測している。この判定周期JTはエッジ数カウンタ16がエッジ数をカウントする周期(つまり、論理を判定するタイミング)を規定している。ここでは、判定周期JTを第2の周波数FH(=2200Hz)の1.5周期分としている。
【0061】
レート周期CTの周波数は1200Hzになっており、タイマ回路15が「1024」カウントすることで、レート周期CTの1周期分を検出している。よって、第2の周波数FH(=2200Hz)の1.5周期分である判定周期JTを規定する閾値thは「th=(1200/2200)×1024×1.5=837」となる。なお、判定周期JTは第2の周波数FHの1.5周期分としなくても、所定条件を満たすことで、任意の値に設定することができる。この点は後述する。タイマ回路15のカウント値が閾値thに到達したときには、その旨を制御信号ctrとして出力する。
【0062】
エッジ数カウンタ16は制御信号ctrを入力するまでにカウントしたエッジ数を検出する(ステップS17)。エッジ数カウンタ16は初期値としては「0」になっており、論理和回路13が出力するエッジ信号rxdrfを入力するごとに、その回数を計測している。そして、制御信号ctrを入力したタイミングのカウント値をエッジ信号edgとして出力する。なお、制御信号ctrを入力したときには、エッジ数カウンタ16は自身のカウント値を「0」に戻す。
【0063】
このときのエッジ信号edgは入力信号rxdの論理を示している。図5のタイミングチャートにも示すように、入力信号rxdが第1の周波数FLであるか第2の周波数FHであるかによって、判定周期JTの間に検出するエッジ数が異なってくる。つまり、第2の周波数FH(=2200Hz)のときには、判定周期JTの間に検出するエッジ数は「3」になり、第1の周波数FL(=1200Hz)のときには、判定周期JTの間に検出するエッジ数は「2」(つまり、「3」未満)になる。これは、所定の判定周期JTの時間のエッジ数が高い周波数では多くなり、低い周波数では少なくなるためである。
【0064】
ここでは、第1の周波数FLと第2の周波数FHとを明確に識別するために、閾値thを第2の周波数FHの1.5周期分としている。入力信号rxdが第2の周波数FHであれば、第2の周波数FHの1.5周期の間のエッジ数は3つ(ライズ、フォール、ライズまたはフォール、ライズ、フォール)になる。
【0065】
一方、第2の周波数FHの1.5周期分は第1の周波数FLの1周期分(カウント値が「1024」)よりは少なくなっている。よって、入力信号rxdが第1の周波数FLであれば、第2の周波数FHの1.5周期分の間にエッジ数は2つ(ライズ、フォールまたはフォール、ライズ)になる。これにより、判定周期JTが第2の周波数FHの1.5周期分となるように閾値thを設定することにより、第1の周波数FLと第2の周波数FHとで必ずエッジ数が異なるようになる。つまり、論理を確実に判定することができる。
【0066】
スタートビット検出回路18は通信の開始を検出したか否かを判定する(ステップS18)。このために、スタートビット検出回路18はエッジ数カウンタ16からエッジ信号edgを入力している。エッジ信号edgが「3」のときには第2の周波数FHであることを示しており、つまり論理が「0」であることが認識される。
【0067】
よって、スタートビット検出回路18はエッジ信号edgが「3」のときには通信の開始を検出する。一方、エッジ信号edgが「3」未満のときには通信の開始を検出しない。この場合には、ステップS13のタイマ回路15をリセットする処理に戻り、当該処理からフローを開始する。
【0068】
状態判定回路14がアイドル状態と判定しているときには、入力信号rxdのエッジは変化をしていない。つまり、通信を行っていない状態では検出するエッジ信号edgが「0」になる。よって、スタートビット検出回路18はエッジ信号edgが「0」から「3」に変化したときに、通信の開始を検出する。
【0069】
ステップS18において通信の開始を検出したときには、タイマ回路15はそのままカウントを続行する(タイマフリーラン:ステップS19)。これにより、タイマ回路15のカウント値が「837」に到達した後も、続けて「838」からカウントアップを行う。そして、タイマ回路15はカウント値が「1023」に到達したか否か、つまりレート周期CTが終了したか否かを判定する(ステップS20)。カウント値が「1023」に到達するまでは、タイマ回路15はカウントアップを行う。
【0070】
タイマ回路15のカウント値が「1023」になったときには、1レート周期CTが終了したとして、キャリアウト信号carryを出力する。図4に示すように、このキャリアウト信号carryを出力したタイミングでタイマ回路15はカウント値のリセットを行う(ステップS21)。また、エッジ数カウンタ16はカウント値をリセットする(ステップS22)。
【0071】
そして、タイマ回路15はカウントアップを行う(ステップS23)。タイマ回路15はカウント値が閾値th(=837)に到達したか否かの判定を行い(ステップS24)、到達していないと判定した場合には、ステップS23に戻ってカウントアップを続行する。
【0072】
一方、閾値thに到達したと判定したときには、タイマ回路15が制御信号ctrを出力する。そして、この制御信号ctrに基づいて、エッジ数カウンタ16は計測したエッジ数をエッジ信号edgとして出力する(ステップS25)。このエッジ信号edgが論理判定回路17に入力される。
【0073】
論理判定回路17は入力したエッジ信号edgの判定を行う(ステップS26)。エッジ信号edgが「3」を示しているときには、前述したように入力信号rxdが第2の周波数FHであることを認識する。これにより、論理が「0」であることを判定する(ステップS27)。一方、エッジ信号edgが「2」であるとき(「3」未満であるとき)には、前述したように入力信号rxdが第1の周波数FLであることを認識する。これにより、論理が「1」であることを判定する(ステップS28)
【0074】
閾値thに到達したタイミング、つまり制御信号ctrを入力して論理判定回路17が論理の判定を行うタイミングは、未だレート周期CTが終了していない。よって、タイマ回路15は閾値th(=837)の続きである「838」からカウントアップを行う(タイマフリーラン:ステップS29)。
【0075】
そして、タイマ回路15のカウント値が「1023」に到達したか否か、つまり1レート周期CTが終了したか否かを判定する(ステップS30)。カウント値が「1024」に到達していなければ、引き続きステップS29のタイマフリーランを行う。一方、レート周期CTが終了したときには、論理判定回路17は判定した論理を出力信号sigとしてUART受信部7に出力する。
【0076】
UART受信部7はこのレート周期CTのタイミングごとに出力信号sigを入力して、所定の信号処理を行う。このときのUART受信部7が出力信号sigを取得するタイミングは常に一定の周期(レート周期CT)になっている。このために、論理判定回路17はキャリアウト信号carryを入力したタイミングごとに出力信号sigを出力する。そして、全ての通信が終了したか否かを判定し(ステップS31)、終了していないと判定されれば再びステップS21に戻り、終了したと判定されれば処理を終了する。
【0077】
従って、タイマ回路15が一定の判定周期JTごとに入力信号rxdのエッジ数を検出して、このエッジ数に基づいて論理を判定している。つまり、一定の時間を区切って、この時間内における入力信号rxdのエッジ数に基づいて論理を判定している。
【0078】
入力信号rxdの論理は第1の周波数FLと第2の周波数FHとで周波数を異ならせることにより表現している。エッジとエッジとの間隔(時間:パルス幅)を計測して論理を判定する場合には、レート周期CTの間に本来検出されるべきエッジを検出せず、或いは本来検出されるべきではないエッジが検出されることがある。このために、通信された信号の正確性が損なわれる。
【0079】
この点、本実施形態では、エッジの間隔ではなく一定時間(判定周期JT)の間のエッジ数を検出して論理の判定を行っている。このため、入力信号rxdの論理が「0」、「1」の何れであるかによってタイミングが左右されることはなく、一定のレート周期CTの間に常に正しい論理の判定を行うことができる。これにより、正確な通信を行うことができるようになる。
【0080】
また、本実施形態の動作を実現するために、判定周期JTとレート周期CTとの2つの時間を検出する必要がある。この点、図2に示したように、判定周期JTもレート周期CTも1つのタイマ回路15がカウントを行っている。つまり、判定周期JTを検出するためのカウンタとレート周期CTを検出するためのカウンタとを別個に設けないで、1つのタイマ回路で実現しているため、回路の単純化を図ることができる。
【0081】
以上において、通信の開始を行うときには、プリアンブルデータを送信することが望ましい。プリアンブルデータは最初の1ビット目の論理が「0」であり、その後の数ビットは「1」のデータが複数回繰り返されたデータになる(つまり、0111101111のようなデータ)。このプリアンブルデータは通信の開始を示すデータになる。
【0082】
図6は図5のタイミングチャートについて、最初のパルスを喪失(エッジが出現しない)したものを示している。通信の開始時にはノイズ等により最初のパルスを喪失することがある。このため、図6のように最初の判定周期JTで、本来であればエッジ数は「3」であることを検出すべきであるが、パルスの喪失によりエッジ数は「2」として検出することになる。
【0083】
この場合には、論理「0」を検出すべきであるが、論理「1」を検出する。よって、通信の開始を検出することができない。このときに、プリアンブルデータを送信するようにする。これにより、最初のパルスを喪失したとしても、次に論理が「0」となるときには、エッジ数は「3」になり、スターとビットとして通信の開始を検出することができるようになる。いずれにしても、エッジ数カウンタ16が検出するエッジ数が「0」から最初に「3」になったときに、通信の開始を検出する。
【0084】
また、判定周期JTは第2の周波数FHの1.5周期分としており、これに対応するタイマ回路15の閾値を「837」としているが、判定周期JTは第2の周波数FHの1.5周期分以外の値として設定してもよい。判定周期JTとしては、第2の周波数FH(=2200Hz)の1.5周期分以上であり、且つ第1の周波数FL(=1200Hz)の1周期分以下であれば、任意の値としてもよい。例えば、閾値thを「837」ではなく「900」のように設定してもよい。
【0085】
これは、判定周期JTの間に、入力信号rxdが第2の周波数FH(つまり、論理が「0」)のときにはエッジ数が「3」となるように、且つ入力信号rxdが第1の周波数FL(つまり、論理が「1」)のときにはエッジ数が「2」(「3」未満)となるようにしているためである。このため、第2の周波数FHと第1の周波数FLとで、判定周期JTの間に検出するエッジ数が必ず異なるのであれば、判定周期JT(つまり、閾値th)は任意に設定することができる。また、論理「0」のときにはエッジ数が「4」になり、論理「1」のときには「4」未満となるようにしてもよい。
【0086】
また、レート周期CTの周波数は第1の周波数FLと一致させているが、第1の周波数FLと一致させなくてもよい。ただし、UART受信部7が第1の周波数FLに同期したタイミングで出力信号sigを取得する場合には、レート周期CTを第1の周波数FLに一致させる。
【符号の説明】
【0087】
1 通信装置
6 復調部
7 UART受信部
11 ライズエッジ検出回路
12 フォールエッジ検出回路
13 論理和回路
14 状態判定回路
15 タイマ回路
16 エッジ数カウンタ
17 論理判定回路
18 スタートビット検出回路
【技術分野】
【0001】
本発明は、2つの異なる周波数を用いて二値の信号の通信を行う通信装置およびこの通信システムを適用したフィールド機器システムに関するものである。
【背景技術】
【0002】
2つの異なる装置間で信号を通信する方式の1つとしてHART(Highway Addressable Remote Transducer)通信を用いることができる。HART通信では信号の論理を異なる周波数で表現している。一般的な規格としては、論理「0」を示すときには2200Hzの周波数とし、論理「1」を示すときには1200Hzの周波数としている。よって、送信側装置は、論理が「0」であるときには2200Hz、論理が「1」のときには1200Hzの信号に変調して信号を送信する。
【0003】
受信側装置では、送信側装置から送信された信号を受信して、この信号の周波数に基づいて信号を復調する。つまり、信号の周波数が2200Hzのときには論理「0」とし、1200Hzのときには論理「1」として復調する。これにより、HART通信が行われる。この種の技術としては、特許文献1に開示されている技術がある。
【0004】
図7は受信側装置を構成する復調部100の一例を示している。復調部100は受信側装置から送信された信号を入力信号rxdとして入力している。この入力信号rxdを復調して論理を判定し、出力信号sigとして出力している。同図に示すように、復調部100はライズエッジ検出回路101(図中ではRエッジ検出回路)とフォールエッジ検出回路102(図中ではFエッジ検出回路)と第1の論理和回路103とタイマ回路104と第2の論理和回路105とフリップフロップ106と第1比較器107と第2比較器108と第3の論理和回路109とを備えている。
【0005】
ライズエッジ検出回路101は入力信号rxdの立ち上がりエッジ(ライズエッジ)を検出しており、フォールエッジ検出回路102は入力信号rxdの立ち下りエッジ(フォールエッジ)を検出している。第1の論理和回路103はライズエッジ検出回路101が出力するライズエッジ信号rxdrとフォールエッジ検出回路102が出力するフォールエッジ信号rxdfとの論理和の演算を行っている。
【0006】
タイマ回路104は9ビット(図中data)のカウンタであり、「0」から開始して「511」までカウントを行う。「511」までカウントされたときには、9ビットの値は全て「1」になっている。タイマ回路104は所定のクロック周波数(ここでは、1.2288MHz)で動作を行っており、この1クロックの間にカウント値をインクリメントする。そして、タイマ回路104のカウント値が「511」に到達した後には、「511」を固定して出力する(ラップアラウンドしない)。
【0007】
タイマ回路104は第1の論理和回路103の出力(図中のtrig)を入力して、これをトリガとして、カウントを開始する。つまり、入力信号rxdが変化したエッジのタイミングでカウントを開始する。このときには、カウント値をリセット(値を「0」にする)してからカウントを開始する。
【0008】
タイマ回路104はカウントした値をカウント値prdpreとして出力する。また、タイマ回路104はカウント値が「511」まで到達したときには、その旨を示すパルスをキャリアウト信号carryとして出力する。第2の論理和回路105は第1の論理和回路103の出力trigとキャリアウト信号carryとの論理和の演算を行って、イネーブル信号としてフリップフロップ106に出力する。
【0009】
フリップフロップ106はタイマ回路104からのカウント値prdpreを入力して、その値を保持する。このとき、第2の論理和回路105からイネーブル信号を入力したときに値を保持するようにする。そして、保持した値は次のタイミングでカウント値prdとして第1比較器107に出力される。
【0010】
第1比較器107はフリップフロップ106から出力されたカウント値prdの比較を行って、第1出力信号prdhを出力する。カウント値prdが「361」以上であれば、第1出力信号prdhをハイ(High)として出力し、「361」未満であればロー(Low)として出力する。同様に、第2比較器108はタイマ回路104が出力したカウント値prdpreを比較して、第2出力信号prdprehを出力する。この第2出力信号prdprehは、カウント値が「361」以上のときにハイとなり、「361」未満のときにローとなる。
【0011】
第1出力信号prdhはフリップフロップ106を経由した信号であり、第2出力信号prdprehはフリップフロップ106を経由していない信号である。よって、もともとは同じカウント値prdpreである。このため、第1出力信号prdhと第2出力信号prdprehは同じ信号であり、且つタイミングがずれたものになる。
【0012】
第3の論理和回路109は第1出力信号prdhと第2出力信号prdprehとの論理和の演算を行っている。そして、出力信号sigとして後段の信号処理回路に出力している。この出力信号sigは送信側装置から送信された信号を復調した信号になる。以上により、HART通信による通信が行われて、論理が復元される。
【0013】
次に、図8のタイミングチャートを用いて動作について説明する。ライズエッジ検出回路101、フォールエッジ検出回路102で入力信号rxdのエッジが検出される。タイマ回路104はエッジを検出したタイミングでカウント値をゼロから開始し、次にエッジを検出するまでカウントアップを行う。そして、エッジを検出したときにはカウント値をゼロに戻す。
【0014】
入力信号rxdは異なる論理を表現するために、1200Hzの周波数または2200Hzの周波数になっている。入力信号rxdが1200Hzの場合と2200Hzの場合とでカウント値が異なる。つまり、タイマ回路104はエッジとエッジとの間の時間的な間隔を計測しており、入力信号rxdの周波数によってカウント値は異なる。これにより、論理を表現している。
【0015】
第1比較器107および第2比較器108が比較を行う基準となる値「361」は入力信号rxdの周波数の判定の基準となっている。周波数1200Hzと2200Hzとの中間値は1700Hzであり、これを復調部100のクロック周波数である1.2288MHzを基準とすると、そのカウント値は「722」となる。つまり、カウント値「722=1.2288MHz/1700Hz」となる。
【0016】
入力信号rxdは1周期の間に1回の立ち上がりと1回の立ち下りとがある。よって、エッジ(ライズエッジまたはフォールエッジ)とエッジ(フォールエッジまたはライズエッジ)との間隔は1周期の半分となる。このため、閾値を「722」の半分の「361」としている。この「361」以上となっているか否かを第1比較器107および第2比較器108は判定している。
【0017】
「361」未満になっているときは、入力信号rxdの周波数は高いことが認識される。よって、論理を「0」(つまり、入力信号rxdの周波数が2200Hz)として判定する。一方、「361」以上になっているときには、入力信号rxdの周波数が低いことが認識される。よって、論理を「1」(つまり、入力信号rxdの周波数が1200Hz)として判定する。
【0018】
従って、「361」を閾値として、入力信号rxdのエッジとエッジとの間の時間をタイマ回路104が計測することで、論理の判定を行っている。これにより、入力信号rxdの論理を判定して復調することができ、出力信号sigを出力することができるようになる。
【先行技術文献】
【特許文献】
【0019】
【特許文献1】特開2002−111752号公報
【発明の概要】
【発明が解決しようとする課題】
【0020】
従って、論理の判定は、エッジとエッジとの間の間隔(時間:パルス幅)を基準として検出するようにしている。この点は、図7に示した技術でも前述した特許文献1の技術でも同様である。そして、このエッジとエッジとの間隔は、入力信号rxdの論理が「0」であるか「1」であるかによって異なる。
【0021】
つまり、HART通信では、入力信号rxdを1200Hzと2200Hzとで周波数を異ならせることにより、論理を表現している。このため、エッジが出現するタイミングは論理が「0」(=2200Hz)であるか、論理が「1」(=1200Hz)であるかによって時間軸方向に変化する。従って、信号の論理が変化するタイミングは不定になる。
【0022】
一方、復調部100は一定の周波数(レート周期CTの周波数)で出力信号sigを生成しており、復調部100に接続される出力信号sigを処理する回路においてレート周期CTの周波数で出力信号sigを取得して所定の処理が行われる。このときのレート周期CTはあくまでも復調部100および後段の回路が動作する一定の周期であり、入力信号rxdの論理とは無関係になる。
【0023】
つまり、レート周期CTの周波数と入力信号rxdの周波数とは同期がされていないことになる。このため、レート周期CTのタイミングと入力信号rxdの論理が変化するタイミングとが近接すると、レート周期CTの間に本来であれば検出されるエッジが検出されず、或いは本来であれば検出されないエッジが検出されることがある。このため、タイマ回路104のカウント値が本来の入力信号rxdの値と異なるようになり、エッジとエッジとの間隔を正確に検出できなくなる。これにより、入力信号rxdが示す論理を正確に復調できなくなり、正しい通信を行うことができなくなる。
【0024】
また、論理を正確に復調できないために、通信の開始を検出することができない。送信側装置から受信側装置に向けて信号の送信を開始したときに、通信の開始が検出されるが、この通信の開始は入力信号rxdの論理が「0」であることを検出したときに、通信開始を検出する。このときに、前述したように、レート周期CTの周波数と入力信号rxdの周波数とが同期していないために論理を正確に復調できないとすると、通信の開始も正確に検出することができなくなる。
【0025】
そこで、本発明は、異なる周波数を用いて信号の値を表現して通信するときに、正確な通信を行うことを目的とする。
【課題を解決するための手段】
【0026】
以上の課題を解決するため、本発明の通信装置は、異なる周波数を用いて二値の信号を通信する通信装置であって、一定の周期の間に変化する前記信号のエッジ数を検出して、前記信号の論理を生成する信号生成部を備えたことを特徴とする。この通信装置によれば、エッジ間隔ではなく、一定の時間ごとに検出されるエッジ数に基づいて論理を判定しているため、正確な通信を行うことができる。
【0027】
また、前記信号生成部は、前記周期を計測するタイマと、このタイマが前記周期を計測するまでの間の前記エッジ数をカウントするエッジカウンタと、このエッジカウンタがカウントした前記エッジ数に基づいて前記信号の論理を判定する論理判定回路と、を備えていることを特徴とする。これにより、タイマのカウントにより周期を測定して、エッジ数のカウントを行うことができる。このため、正しく論理の判定を行って、出力信号を生成することができる。
【0028】
また、前記タイマは、第1の周波数の1周期分よりも短く、この第1の周波数よりも高い第2の周波数の1.5周期分よりも長い時間を前記周期として計測し、前記論理判定回路は、前記エッジ数が3つ以上であるか否かに基づいて論理の判定を行うことを特徴とする。これにより、第1の周波数と第2の周波数とで必ずエッジ数を異ならせることができるため、論理の判定を確実に行うことができ、正確な通信を実現することができる。
【0029】
また、前記論理判定回路は、前記第1の周波数を1200Hz、第2の周波数を2200Hzとしたときに、前記エッジ数が3つ以上の場合は論理「0」であると判定し、3つ未満の場合には論理「1」であると判定することを特徴とする。これにより、1200Hzと2200Hzとの周波数を用いたHART通信を行うときに、正確に通信を行うことができるようになる。
【0030】
また、前記論理判定回路は、前記エッジ数が「0」のときには前記信号が通信されていないと判定し、前記エッジ数が「0」から「3」に変化したときに前記信号の通信が開始されたと判定することを特徴とする。これにより、通信の開始を検出することができるようになる。
【0031】
また、前記タイマは、前記論理判定回路が判定した論理を出力するタイミングをレート周期として計測していることを特徴とする。これにより、タイマは判定周期とレート周期との2つの時間を計測する機能を持つことができ、2つの周期を計測するタイマを独立して設けることがないことから、回路を単純化することができる。
【0032】
また、本発明のフィールド機器システムは、前記何れかの通信装置を備えたことを特徴とする。通信装置はフィールド機器システムの上位制御装置とフィールド機器との間の通信に適用することができる。
【発明の効果】
【0033】
本発明は、異なる2つの周波数により論理を表現する通信を行うときに、信号のエッジ間隔ではなく、一定の判定周期ごとのエッジ数に基づいて論理を判定している。これにより、信号の論理によらず、常に正しい論理を復調でき、正確な通信を行うことができるようになる。
【図面の簡単な説明】
【0034】
【図1】通信装置の構成を示すブロック図である。
【図2】復調部の構成を示すブロック図である。
【図3】実施形態の復調部の動作を示すフローチャートである。
【図4】図3の続きのフローチャートである。
【図5】実施形態の動作のタイミングを示すタイミングチャートである。
【図6】パルスを喪失した場合のタイミングチャートである。
【図7】従来の復調部の構成を示すブロックである。
【図8】従来の復調部の動作のタイミングを示すタイミングチャートである。
【発明を実施するための形態】
【0035】
以下、図面を参照して、本発明の実施形態について説明する。本実施形態の通信装置は、例えばフィールド機器システムに適用することができる。フィールド機器システムは、差圧計や流量計、温度計等のセンサ、アクチュエータ、コントローラ等の各種フィールド機器と上位制御装置とを接続する。このときの、フィールド機器と上位制御装置との間で通信を行うときに、以下の通信装置を適用することができる。勿論、フィールド機器システム以外にも任意のシステムに適用してもよい。
【0036】
また、本実施形態ではHART(Highway Addressable Remote Transducer)通信により通信を行っている。HART通信は、信号の周波数を1200Hzまたは2200Hzとすることにより、論理を表現している。以下では、周波数が1200Hzの場合は論理「1」を示し、2200Hzの場合は論理「0」を示すものとする。勿論、周波数に対応する論理を逆にしてもよく、また論理を示す周波数を任意に設定してもよい。なお、本実施形態の通信装置であれば、HART通信という名称には限定されない。
【0037】
図1は通信装置1を示している。この通信装置1はUART送信部2と変調部3とアナログ波形送信回路4とアナログ波形受信回路5と復調部6とUART受信部7とを備えている。UART送信部2は送信する信号(論理が「0」または「1」の信号)を生成して、変調部3に出力する。図1の実施形態において、UART送信部2と変調部3とアナログ波形送信回路4とアナログ波形受信回路5と復調部6とでHART通信を行う。
【0038】
変調部3は入力した信号の論理によって、送信する信号の周波数を第1の周波数FLと第2の周波数FH(FH>FL)とに変調する。ここでは、論理が「1」のときには第1の周波数FL(=1200Hz)に変調し、「0」のときには第2の周波数FH(=2200Hz)に変調する。
【0039】
アナログ波形送信回路4は変調部3が変調した後の信号をデジタル信号からアナログ信号に変換する。そして、このアナログ信号を送信する。UART送信部2からアナログ波形送信回路4までが送信側回路を構成する。送信側回路としては例えばフィールド機器に設けることができる。
【0040】
アナログ波形受信回路5はアナログ波形送信回路4が送信したアナログ信号を受信する。そして、受信したアナログ信号をデジタル信号に変換する。このデジタル信号を入力信号rxdとして復調部6に入力し、復調部6は入力信号rxdから論理を復元する復調を行う。そして、UART受信部7に復調後の信号を出力信号sigとして出力する。
【0041】
UART受信部7は一定の周期(レート周期CT)のタイミングで入力される出力信号sigを取得して、所定の信号処理を行う。以上のアナログ波形受信回路5からUART受信部7までが受信側回路を構成する。例えば、フィールド機器システムにおける上位制御装置に受信側回路を設けることができる。
【0042】
次に、図2を用いて復調部6について説明する。この復調部6は出力信号sigを生成する信号生成部になる。復調部6は、ライズエッジ検出回路11とフォールエッジ検出回路12と論理和回路13と状態判定回路14とタイマ回路15とエッジ数カウンタ16と論理判定回路17とスタートビット検出回路18とを備えて構成している。
【0043】
復調部6は所定のクロック周波数CLKに基づいて動作を行っている。ここでは、クロック周波数CLKの周波数は1.2288MHzとする。勿論、クロック周波数CLKの値はこれに限定されず、任意の周波数とすることができる。
【0044】
ライズエッジ検出回路(図中ではRエッジ検出回路)11はクロック周波数CLKで動作を行っており、入力信号rxdの立ち上がりエッジ(ライズエッジ)を検出する。フォールエッジ検出回路(図中ではFエッジ検出回路)12はクロック周波数CLKで動作を行っており、入力信号rxdの立ち下りエッジ(フォールエッジ)を検出している。
【0045】
論理和回路13は、ライズエッジ検出回路11がライズエッジを検出したことを示すライズエッジ信号rxdrおよびフォールエッジ検出回路12がフォールエッジを検出したことを示すフォールエッジ信号rxdfの論理和の演算を行っている。つまり、論理和回路13は入力信号rxdのエッジ(ライズエッジおよびフォールエッジ)を検出していることになる。論理和回路13が出力する信号をエッジ信号rxdrfとする。
【0046】
状態判定回路14は入力信号rxdを受信した受信状態であるか、入力信号rxdを受信していないアイドル状態であるかを判定している。このために、ライズエッジ信号rxdrを入力している。このライズエッジ信号rxdrを入力したときに、アイドル状態から受信状態に切り替わったと判定する。そして、受信状態であることを示す状態信号statを出力する。
【0047】
タイマ回路15はクロック周波数CLKで動作を行うカウンタである。このタイマ回路15は10ビットカウンタ(図中のdata)としており、カウント値が「0」から「1023」までカウントアップ(カウント値のインクリメント)を行う。このタイマ回路15は状態信号statを入力しているとき、つまり受信状態であるときに動作を行う。
【0048】
タイマ回路15がカウントするカウント値が「0」から開始して、「1023」に到達したタイミングでキャリアウト信号carryを出力する。そして、キャリアウト信号carryを出力するタイミング、つまりカウント値が「1023」に到達したタイミングで、タイマ回路15はカウント値のリセットを行う(カウント値を「0」に戻す)。
【0049】
このキャリアウト信号carryはレート周期CTのタイミングを規定している。このレート周期CTは出力信号sigを出力するタイミング、つまりUART受信部7が出力信号sigを取得するタイミングになる。また、タイマ回路15は制御信号ctrを出力する。この制御信号ctrはタイマ回路15のカウント値が所定の閾値th(ここでは、837としている)に到達した時点で、その旨を示す信号になる。
【0050】
エッジ数カウンタ16は論理和回路13が出力したエッジ信号rxdrfを入力した回数を計測して、計測した回数をエッジ数として検出する。エッジ数カウンタ16は初期値を「0」としており、エッジ信号rxdrfを入力するたびに値のインクリメントを行う。このエッジ数カウンタ16にはキャリアウト信号carryが入力されており、キャリアウト信号carryを入力したタイミング、つまりレート周期CTのタイミングごとに値のリセットを行う(カウント値を「0」に戻す)。
【0051】
エッジ数カウンタ16は計測したエッジ数(カウント値)をエッジ信号edgとして出力する。なお、エッジ数カウンタ16には状態信号statが入力されており、受信状態のときにエッジ数カウンタ16は動作を行う。
【0052】
論理判定回路17は入力信号rxdの論理を判定している。論理の判定はエッジ数カウンタ16が出力するエッジ信号edgに基づいて行う。論理判定回路17は制御信号ctrを入力しており、制御信号ctrのタイミング、つまり閾値thに到達したタイミングでエッジ信号edgに基づいて論理の判定を行う。
【0053】
このときに、エッジ信号edgが「3」のときには論理が「0」であると判定し、「3」未満のときには論理が「1」であると判定する。判定した論理はレート周期CTごとに出力信号sigとしてUART受信部7に出力する。このため、タイマ回路15からキャリアウト信号carryを入力して、この信号のタイミング(レート周期CTのタイミング)で出力信号sigを出力している。これにより、信号を復元する復調を行う。
【0054】
スタートビット検出回路18は通信の開始を検出する。ここでは、入力信号rxdの論理が最初に「0」を示したときに、通信の開始を検出している。なお、論理が「1」のときに通信の開始を検出してもよい。このために、エッジ数カウンタ16からエッジ信号edgを入力する。そして、制御信号ctrを入力するタイミング、つまりタイマ回路15がカウントするカウント値が閾値thに到達したタイミングでエッジ信号edgを入力する。このときに入力したエッジ信号edgが「3」のときに、論理が「0」であることを認識して、通信の開始を検出する。
【0055】
以上の構成における動作について図3、図4のフローチャート並びに図5のタイミングチャートを用いて説明する。まず、状態判定回路14はライズエッジ信号rxdrに基づいて通信状態を検出する(ステップS11)。そして、ライズエッジが検出されているか否かの判定を行う(ステップS12)。
【0056】
ライズエッジが検出されなければ、アイドル状態となる。よって、ステップS11に戻る動作を繰り返す。一方、ライズエッジが検出されたときには、状態判定回路14は受信状態となったことを示す状態信号statを出力する。この状態信号statを入力することにより、タイマ回路15は自身のカウント値をリセットして、値を「0」に戻す(ステップS13)。また、エッジ数カウンタ16の値もリセットして、値を「0」にする(ステップS14)。
【0057】
そして、タイマ回路15はカウントアップを開始する(ステップS15)。タイマ回路15はクロック周波数CLKに同期したタイミングで動作を行っており、「0」から「1023」までカウントを行う。このときのカウントの最大値である「1023」はクロック周波数CLK(=1.2288MHz)をレート周期CTの周波数(=1200Hz)で除算した値(=1024=1.2288MHz/1200Hz)になる。
【0058】
ここでは、第1の周波数FLと第2の周波数FHとのうち低い周波数である第1の周波数FL(=1200Hz)とレート周期CTの周波数とを一致させている。これにより、第1の周波数FLのタイミングで出力信号sigを生成して出力している。このレート周期CTの周波数は第1の周波数FL以外の周波数に設定してもよい。
【0059】
従って、タイマ回路15はクロック周波数CLKの1クロックごとにカウントアップを行う。タイマ回路15には閾値thが設定されており、カウント値が閾値thに到達したか否かを判定する(ステップS16)。到達していない場合には、ステップS15に戻ってカウントアップを続行する。
【0060】
閾値thはエッジ数カウンタ16がエッジ数をカウントするタイミングであり、ここでは閾値thを「837」としている。タイマ回路15はカウント値が「0」から「837」になるまでの間を判定周期JTとして計測している。この判定周期JTはエッジ数カウンタ16がエッジ数をカウントする周期(つまり、論理を判定するタイミング)を規定している。ここでは、判定周期JTを第2の周波数FH(=2200Hz)の1.5周期分としている。
【0061】
レート周期CTの周波数は1200Hzになっており、タイマ回路15が「1024」カウントすることで、レート周期CTの1周期分を検出している。よって、第2の周波数FH(=2200Hz)の1.5周期分である判定周期JTを規定する閾値thは「th=(1200/2200)×1024×1.5=837」となる。なお、判定周期JTは第2の周波数FHの1.5周期分としなくても、所定条件を満たすことで、任意の値に設定することができる。この点は後述する。タイマ回路15のカウント値が閾値thに到達したときには、その旨を制御信号ctrとして出力する。
【0062】
エッジ数カウンタ16は制御信号ctrを入力するまでにカウントしたエッジ数を検出する(ステップS17)。エッジ数カウンタ16は初期値としては「0」になっており、論理和回路13が出力するエッジ信号rxdrfを入力するごとに、その回数を計測している。そして、制御信号ctrを入力したタイミングのカウント値をエッジ信号edgとして出力する。なお、制御信号ctrを入力したときには、エッジ数カウンタ16は自身のカウント値を「0」に戻す。
【0063】
このときのエッジ信号edgは入力信号rxdの論理を示している。図5のタイミングチャートにも示すように、入力信号rxdが第1の周波数FLであるか第2の周波数FHであるかによって、判定周期JTの間に検出するエッジ数が異なってくる。つまり、第2の周波数FH(=2200Hz)のときには、判定周期JTの間に検出するエッジ数は「3」になり、第1の周波数FL(=1200Hz)のときには、判定周期JTの間に検出するエッジ数は「2」(つまり、「3」未満)になる。これは、所定の判定周期JTの時間のエッジ数が高い周波数では多くなり、低い周波数では少なくなるためである。
【0064】
ここでは、第1の周波数FLと第2の周波数FHとを明確に識別するために、閾値thを第2の周波数FHの1.5周期分としている。入力信号rxdが第2の周波数FHであれば、第2の周波数FHの1.5周期の間のエッジ数は3つ(ライズ、フォール、ライズまたはフォール、ライズ、フォール)になる。
【0065】
一方、第2の周波数FHの1.5周期分は第1の周波数FLの1周期分(カウント値が「1024」)よりは少なくなっている。よって、入力信号rxdが第1の周波数FLであれば、第2の周波数FHの1.5周期分の間にエッジ数は2つ(ライズ、フォールまたはフォール、ライズ)になる。これにより、判定周期JTが第2の周波数FHの1.5周期分となるように閾値thを設定することにより、第1の周波数FLと第2の周波数FHとで必ずエッジ数が異なるようになる。つまり、論理を確実に判定することができる。
【0066】
スタートビット検出回路18は通信の開始を検出したか否かを判定する(ステップS18)。このために、スタートビット検出回路18はエッジ数カウンタ16からエッジ信号edgを入力している。エッジ信号edgが「3」のときには第2の周波数FHであることを示しており、つまり論理が「0」であることが認識される。
【0067】
よって、スタートビット検出回路18はエッジ信号edgが「3」のときには通信の開始を検出する。一方、エッジ信号edgが「3」未満のときには通信の開始を検出しない。この場合には、ステップS13のタイマ回路15をリセットする処理に戻り、当該処理からフローを開始する。
【0068】
状態判定回路14がアイドル状態と判定しているときには、入力信号rxdのエッジは変化をしていない。つまり、通信を行っていない状態では検出するエッジ信号edgが「0」になる。よって、スタートビット検出回路18はエッジ信号edgが「0」から「3」に変化したときに、通信の開始を検出する。
【0069】
ステップS18において通信の開始を検出したときには、タイマ回路15はそのままカウントを続行する(タイマフリーラン:ステップS19)。これにより、タイマ回路15のカウント値が「837」に到達した後も、続けて「838」からカウントアップを行う。そして、タイマ回路15はカウント値が「1023」に到達したか否か、つまりレート周期CTが終了したか否かを判定する(ステップS20)。カウント値が「1023」に到達するまでは、タイマ回路15はカウントアップを行う。
【0070】
タイマ回路15のカウント値が「1023」になったときには、1レート周期CTが終了したとして、キャリアウト信号carryを出力する。図4に示すように、このキャリアウト信号carryを出力したタイミングでタイマ回路15はカウント値のリセットを行う(ステップS21)。また、エッジ数カウンタ16はカウント値をリセットする(ステップS22)。
【0071】
そして、タイマ回路15はカウントアップを行う(ステップS23)。タイマ回路15はカウント値が閾値th(=837)に到達したか否かの判定を行い(ステップS24)、到達していないと判定した場合には、ステップS23に戻ってカウントアップを続行する。
【0072】
一方、閾値thに到達したと判定したときには、タイマ回路15が制御信号ctrを出力する。そして、この制御信号ctrに基づいて、エッジ数カウンタ16は計測したエッジ数をエッジ信号edgとして出力する(ステップS25)。このエッジ信号edgが論理判定回路17に入力される。
【0073】
論理判定回路17は入力したエッジ信号edgの判定を行う(ステップS26)。エッジ信号edgが「3」を示しているときには、前述したように入力信号rxdが第2の周波数FHであることを認識する。これにより、論理が「0」であることを判定する(ステップS27)。一方、エッジ信号edgが「2」であるとき(「3」未満であるとき)には、前述したように入力信号rxdが第1の周波数FLであることを認識する。これにより、論理が「1」であることを判定する(ステップS28)
【0074】
閾値thに到達したタイミング、つまり制御信号ctrを入力して論理判定回路17が論理の判定を行うタイミングは、未だレート周期CTが終了していない。よって、タイマ回路15は閾値th(=837)の続きである「838」からカウントアップを行う(タイマフリーラン:ステップS29)。
【0075】
そして、タイマ回路15のカウント値が「1023」に到達したか否か、つまり1レート周期CTが終了したか否かを判定する(ステップS30)。カウント値が「1024」に到達していなければ、引き続きステップS29のタイマフリーランを行う。一方、レート周期CTが終了したときには、論理判定回路17は判定した論理を出力信号sigとしてUART受信部7に出力する。
【0076】
UART受信部7はこのレート周期CTのタイミングごとに出力信号sigを入力して、所定の信号処理を行う。このときのUART受信部7が出力信号sigを取得するタイミングは常に一定の周期(レート周期CT)になっている。このために、論理判定回路17はキャリアウト信号carryを入力したタイミングごとに出力信号sigを出力する。そして、全ての通信が終了したか否かを判定し(ステップS31)、終了していないと判定されれば再びステップS21に戻り、終了したと判定されれば処理を終了する。
【0077】
従って、タイマ回路15が一定の判定周期JTごとに入力信号rxdのエッジ数を検出して、このエッジ数に基づいて論理を判定している。つまり、一定の時間を区切って、この時間内における入力信号rxdのエッジ数に基づいて論理を判定している。
【0078】
入力信号rxdの論理は第1の周波数FLと第2の周波数FHとで周波数を異ならせることにより表現している。エッジとエッジとの間隔(時間:パルス幅)を計測して論理を判定する場合には、レート周期CTの間に本来検出されるべきエッジを検出せず、或いは本来検出されるべきではないエッジが検出されることがある。このために、通信された信号の正確性が損なわれる。
【0079】
この点、本実施形態では、エッジの間隔ではなく一定時間(判定周期JT)の間のエッジ数を検出して論理の判定を行っている。このため、入力信号rxdの論理が「0」、「1」の何れであるかによってタイミングが左右されることはなく、一定のレート周期CTの間に常に正しい論理の判定を行うことができる。これにより、正確な通信を行うことができるようになる。
【0080】
また、本実施形態の動作を実現するために、判定周期JTとレート周期CTとの2つの時間を検出する必要がある。この点、図2に示したように、判定周期JTもレート周期CTも1つのタイマ回路15がカウントを行っている。つまり、判定周期JTを検出するためのカウンタとレート周期CTを検出するためのカウンタとを別個に設けないで、1つのタイマ回路で実現しているため、回路の単純化を図ることができる。
【0081】
以上において、通信の開始を行うときには、プリアンブルデータを送信することが望ましい。プリアンブルデータは最初の1ビット目の論理が「0」であり、その後の数ビットは「1」のデータが複数回繰り返されたデータになる(つまり、0111101111のようなデータ)。このプリアンブルデータは通信の開始を示すデータになる。
【0082】
図6は図5のタイミングチャートについて、最初のパルスを喪失(エッジが出現しない)したものを示している。通信の開始時にはノイズ等により最初のパルスを喪失することがある。このため、図6のように最初の判定周期JTで、本来であればエッジ数は「3」であることを検出すべきであるが、パルスの喪失によりエッジ数は「2」として検出することになる。
【0083】
この場合には、論理「0」を検出すべきであるが、論理「1」を検出する。よって、通信の開始を検出することができない。このときに、プリアンブルデータを送信するようにする。これにより、最初のパルスを喪失したとしても、次に論理が「0」となるときには、エッジ数は「3」になり、スターとビットとして通信の開始を検出することができるようになる。いずれにしても、エッジ数カウンタ16が検出するエッジ数が「0」から最初に「3」になったときに、通信の開始を検出する。
【0084】
また、判定周期JTは第2の周波数FHの1.5周期分としており、これに対応するタイマ回路15の閾値を「837」としているが、判定周期JTは第2の周波数FHの1.5周期分以外の値として設定してもよい。判定周期JTとしては、第2の周波数FH(=2200Hz)の1.5周期分以上であり、且つ第1の周波数FL(=1200Hz)の1周期分以下であれば、任意の値としてもよい。例えば、閾値thを「837」ではなく「900」のように設定してもよい。
【0085】
これは、判定周期JTの間に、入力信号rxdが第2の周波数FH(つまり、論理が「0」)のときにはエッジ数が「3」となるように、且つ入力信号rxdが第1の周波数FL(つまり、論理が「1」)のときにはエッジ数が「2」(「3」未満)となるようにしているためである。このため、第2の周波数FHと第1の周波数FLとで、判定周期JTの間に検出するエッジ数が必ず異なるのであれば、判定周期JT(つまり、閾値th)は任意に設定することができる。また、論理「0」のときにはエッジ数が「4」になり、論理「1」のときには「4」未満となるようにしてもよい。
【0086】
また、レート周期CTの周波数は第1の周波数FLと一致させているが、第1の周波数FLと一致させなくてもよい。ただし、UART受信部7が第1の周波数FLに同期したタイミングで出力信号sigを取得する場合には、レート周期CTを第1の周波数FLに一致させる。
【符号の説明】
【0087】
1 通信装置
6 復調部
7 UART受信部
11 ライズエッジ検出回路
12 フォールエッジ検出回路
13 論理和回路
14 状態判定回路
15 タイマ回路
16 エッジ数カウンタ
17 論理判定回路
18 スタートビット検出回路
【特許請求の範囲】
【請求項1】
異なる周波数を用いて二値の信号を通信する通信装置であって、
一定の周期の間に変化する前記信号のエッジ数を検出して、前記信号の論理を生成する信号生成部を備えたこと
を特徴とする通信装置。
【請求項2】
前記信号生成部は、
前記周期を計測するタイマと、
このタイマが前記周期を計測するまでの間の前記エッジ数をカウントするエッジカウンタと、
このエッジカウンタがカウントした前記エッジ数に基づいて前記信号の論理を判定する論理判定回路と、
を備えていることを特徴とする請求項1記載の通信装置。
【請求項3】
前記タイマは、第1の周波数の1周期分よりも短く、この第1の周波数よりも高い第2の周波数の1.5周期分よりも長い時間を前記周期として計測し、
前記論理判定回路は、前記エッジ数が3つ以上であるか否かに基づいて論理の判定を行うこと
を特徴とする請求項2記載の通信装置。
【請求項4】
前記論理判定回路は、前記第1の周波数を1200Hz、第2の周波数を2200Hzとしたときに、前記エッジ数が3つ以上の場合は論理「0」であると判定し、3つ未満の場合には論理「1」であると判定すること
を特徴とする請求項3記載の通信装置。
【請求項5】
前記論理判定回路は、前記エッジ数が「0」のときには前記信号が通信されていないと判定し、前記エッジ数が「0」から「3」に変化したときに前記信号の通信が開始されたと判定すること
を特徴とする請求項4記載の通信装置。
【請求項6】
前記タイマは、前記論理判定回路が判定した論理を出力するタイミングをレート周期として計測していること
を特徴とする請求項5記載の通信装置。
【請求項7】
請求項1乃至6の何れか1項に記載の通信装置を備えたことを特徴とするフィールド機器システム。
【請求項1】
異なる周波数を用いて二値の信号を通信する通信装置であって、
一定の周期の間に変化する前記信号のエッジ数を検出して、前記信号の論理を生成する信号生成部を備えたこと
を特徴とする通信装置。
【請求項2】
前記信号生成部は、
前記周期を計測するタイマと、
このタイマが前記周期を計測するまでの間の前記エッジ数をカウントするエッジカウンタと、
このエッジカウンタがカウントした前記エッジ数に基づいて前記信号の論理を判定する論理判定回路と、
を備えていることを特徴とする請求項1記載の通信装置。
【請求項3】
前記タイマは、第1の周波数の1周期分よりも短く、この第1の周波数よりも高い第2の周波数の1.5周期分よりも長い時間を前記周期として計測し、
前記論理判定回路は、前記エッジ数が3つ以上であるか否かに基づいて論理の判定を行うこと
を特徴とする請求項2記載の通信装置。
【請求項4】
前記論理判定回路は、前記第1の周波数を1200Hz、第2の周波数を2200Hzとしたときに、前記エッジ数が3つ以上の場合は論理「0」であると判定し、3つ未満の場合には論理「1」であると判定すること
を特徴とする請求項3記載の通信装置。
【請求項5】
前記論理判定回路は、前記エッジ数が「0」のときには前記信号が通信されていないと判定し、前記エッジ数が「0」から「3」に変化したときに前記信号の通信が開始されたと判定すること
を特徴とする請求項4記載の通信装置。
【請求項6】
前記タイマは、前記論理判定回路が判定した論理を出力するタイミングをレート周期として計測していること
を特徴とする請求項5記載の通信装置。
【請求項7】
請求項1乃至6の何れか1項に記載の通信装置を備えたことを特徴とするフィールド機器システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【公開番号】特開2012−199616(P2012−199616A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−60681(P2011−60681)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】
[ Back to top ]