異なる周波数を用いて二値の信号を通信する通信装置であって、一定の周期の間に変化する前記信号のエッジ数を検出して、前記信号の論理を生成する信号生成部を備えたことを特徴とする通信装置。前記信号生成部は、前記周期を計測するタイマと、このタイマが前記周期を計測するまでの間の前記エッジ数をカウントするエッジカウンタと、このエッジカウンタがカウントした前記エッジ数に基づいて前記信号の論理を判定する論理判定回路と、を備えていることを特徴とする請求項1記載の通信装置。前記タイマは、第1の周波数の1周期分よりも短く、この第1の周波数よりも高い第2の周波数の1.5周期分よりも長い時間を前記周期として計測し、前記論理判定回路は、前記エッジ数が3つ以上であるか否かに基づいて論理の判定を行うことを特徴とする請求項2記載の通信装置。前記論理判定回路は、前記第1の周波数を1200Hz、第2の周波数を2200Hzとしたときに、前記エッジ数が3つ以上の場合は論理0であると判定し、3つ未満の場合には論理1であると判定することを特徴とする請求項3記載の通信装置。前記論理判定回路は、前記エッジ数が0のときには前記信号が通信されていないと判定し、前記エッジ数が0から3に変化したときに前記信号の通信が開始されたと判定することを特徴とする請求項4記載の通信装置。前記タイマは、前記論理判定回路が判定した論理を出力するタイミングをレート周期として計測していることを特徴とする請求項5記載の通信装置。請求項1乃至6の何れか1項に記載の通信装置を備えたことを特徴とするフィールド機器システム。従って、論理の判定は、エッジとエッジとの間の間隔時間:パルス幅を基準として検出するようにしている。この点は、図7に示した技術でも前述した特許文献1の技術でも同様である。そして、このエッジとエッジとの間隔は、入力信号rxdの論理が0であるか1であるかによって異なる。つまり、HART通信では、入力信号rxdを1200Hzと2200Hzとで周波数を異ならせることにより、論理を表現している。このため、エッジが出現するタイミングは論理が0=2200Hzであるか、論理が1=1200Hzであるかによって時間軸方向に変化する。従って、信号の論理が変化するタイミングは不定になる。一方、復調部100は一定の周波数レート周期CTの周波数で出力信号sigを生成しており、復調部100に接続される出力信号sigを処理する回路においてレート周期CTの周波数で出力信号sigを取得して所定の処理が行われる。このときのレート周期CTはあくまでも復調部100および後段の回路が動作する一定の周期であり、入力信号rxdの論理とは無関係になる。つまり、レート周期CTの周波数と入力信号rxdの周波数とは同期がされていないことになる。このため、レート周期CTのタイミングと入力信号rxdの論理が変化するタイミングとが近接すると、レート周期CTの間に本来であれば検出されるエッジが検出されず、或いは本来であれば検出されないエッジが検出されることがある。このため、タイマ回路104のカウント値が本来の入力信号rxdの値と異なるようになり、エッジとエッジとの間隔を正確に検出できなくなる。これにより、入力信号rxdが示す論理を正確に復調できなくなり、正しい通信を行うことができなくなる。また、論理を正確に復調できないために、通信の開始を検出することができない。送信側装置から受信側装置に向けて信号の送信を開始したときに、通信の開始が検出されるが、この通信の開始は入力信号rxdの論理が0であることを検出したときに、通信開始を検出する。このときに、前述したように、レート周期CTの周波数と入力信号rxdの周波数とが同期していないために論理を正確に復調できないとすると、通信の開始も正確に検出することができなくなる。そこで、本発明は、異なる周波数を用いて信号の値を表現して通信するときに、正確な通信を行うことを目的とする。以上の課題を解決するため、本発明の通信装置は、異なる周波数を用いて二値の信号を通信する通信装置であって、一定の周期の間に変化する前記信号のエッジ数を検出して、前記信号の論理を生成する信号生成部を備えたことを特徴とする。この通信装置によれば、エッジ間隔ではなく、一定の時間ごとに検出されるエッジ数に基づいて論理を判定しているため、正確な通信を行うことができる。また、前記信号生成部は、前記周期を計測するタイマと、このタイマが前記周期を計測するまでの間の前記エッジ数をカウントするエッジカウンタと、このエッジカウンタがカウントした前記エッジ数に基づいて前記信号の論理を判定する論理判定回路と、を備えていることを特徴とする。これにより、タイマのカウントにより周期を測定して、エッジ数のカウントを行うことができる。このため、正しく論理の判定を行って、出力信号を生成することができる。また、前記タイマは、第1の周波数の1周期分よりも短く、この第1の周波数よりも高い第2の周波数の1.5周期分よりも長い時間を前記周期として計測し、前記論理判定回路は、前記エッジ数が3つ以上であるか否かに基づいて論理の判定を行うことを特徴とする。これにより、第1の周波数と第2の周波数とで必ずエッジ数を異ならせることができるため、論理の判定を確実に行うことができ、正確な通信を実現することができる。また、前記論理判定回路は、前記第1の周波数を1200Hz、第2の周波数を2200Hzとしたときに、前記エッジ数が3つ以上の場合は論理0であると判定し、3つ未満の場合には論理1であると判定することを特徴とする。これにより、1200Hzと2200Hzとの周波数を用いたHART通信を行うときに、正確に通信を行うことができるようになる。また、前記論理判定回路は、前記エッジ数が0のときには前記信号が通信されていないと判定し、前記エッジ数が0から3に変化したときに前記信号の通信が開始されたと判定することを特徴とする。これにより、通信の開始を検出することができるようになる。また、前記タイマは、前記論理判定回路が判定した論理を出力するタイミングをレート周期として計測していることを特徴とする。これにより、タイマは判定周期とレート周期との2つの時間を計測する機能を持つことができ、2つの周期を計測するタイマを独立して設けることがないことから、回路を単純化することができる。また、本発明のフィールド機器システムは、前記何れかの通信装置を備えたことを特徴とする。通信装置はフィールド機器システムの上位制御装置とフィールド機器との間の通信に適用することができる。本発明は、異なる2つの周波数により論理を表現する通信を行うときに、信号のエッジ間隔ではなく、一定の判定周期ごとのエッジ数に基づいて論理を判定している。これにより、信号の論理によらず、常に正しい論理を復調でき、正確な通信を行うことができるようになる。以下、図面を参照して、本発明の実施形態について説明する。本実施形態の通信装置は、例えばフィールド機器システムに適用することができる。フィールド機器システムは、差圧計や流量計、温度計等のセンサ、アクチュエータ、コントローラ等の各種フィールド機器と上位制御装置とを接続する。このときの、フィールド機器と上位制御装置との間で通信を行うときに、以下の通信装置を適用することができる。勿論、フィールド機器システム以外にも任意のシステムに適用してもよい。また、本実施形態ではHARTHighwayAddressableRemoteTransducer通信により通信を行っている。HART通信は、信号の周波数を1200Hzまたは2200Hzとすることにより、論理を表現している。以下では、周波数が1200Hzの場合は論理1を示し、2200Hzの場合は論理0を示すものとする。勿論、周波数に対応する論理を逆にしてもよく、また論理を示す周波数を任意に設定してもよい。なお、本実施形態の通信装置であれば、HART通信という名称には限定されない。図1は通信装置1を示している。この通信装置1はUART送信部2と変調部3とアナログ波形送信回路4とアナログ波形受信回路5と復調部6とUART受信部7とを備えている。UART送信部2は送信する信号論理が0または1の信号を生成して、変調部3に出力する。図1の実施形態において、UART送信部2と変調部3とアナログ波形送信回路4とアナログ波形受信回路5と復調部6とでHART通信を行う。変調部3は入力した信号の論理によって、送信する信号の周波数を第1の周波数FLと第2の周波数FHFH>FLとに変調する。ここでは、論理が1のときには第1の周波数FL=1200Hzに変調し、0のときには第2の周波数FH=2200Hzに変調する。アナログ波形送信回路4は変調部3が変調した後の信号をデジタル信号からアナログ信号に変換する。そして、このアナログ信号を送信する。UART送信部2からアナログ波形送信回路4までが送信側回路を構成する。送信側回路としては例えばフィールド機器に設けることができる。アナログ波形受信回路5はアナログ波形送信回路4が送信したアナログ信号を受信する。そして、受信したアナログ信号をデジタル信号に変換する。このデジタル信号を入力信号rxdとして復調部6に入力し、復調部6は入力信号rxdから論理を復元する復調を行う。そして、UART受信部7に復調後の信号を出力信号sigとして出力する。UART受信部7は一定の周期レート周期CTのタイミングで入力される出力信号sigを取得して、所定の信号処理を行う。以上のアナログ波形受信回路5からUART受信部7までが受信側回路を構成する。例えば、フィールド機器システムにおける上位制御装置に受信側回路を設けることができる。次に、図2を用いて復調部6について説明する。この復調部6は出力信号sigを生成する信号生成部になる。復調部6は、ライズエッジ検出回路11とフォールエッジ検出回路12と論理和回路13と状態判定回路14とタイマ回路15とエッジ数カウンタ16と論理判定回路17とスタートビット検出回路18とを備えて構成している。復調部6は所定のクロック周波数CLKに基づいて動作を行っている。ここでは、クロック周波数CLKの周波数は1.2288MHzとする。勿論、クロック周波数CLKの値はこれに限定されず、任意の周波数とすることができる。ライズエッジ検出回路図中ではRエッジ検出回路11はクロック周波数CLKで動作を行っており、入力信号rxdの立ち上がりエッジライズエッジを検出する。フォールエッジ検出回路図中ではFエッジ検出回路12はクロック周波数CLKで動作を行っており、入力信号rxdの立ち下りエッジフォールエッジを検出している。論理和回路13は、ライズエッジ検出回路11がライズエッジを検出したことを示すライズエッジ信号rxdrおよびフォールエッジ検出回路12がフォールエッジを検出したことを示すフォールエッジ信号rxdfの論理和の演算を行っている。つまり、論理和回路13は入力信号rxdのエッジライズエッジおよびフォールエッジを検出していることになる。論理和回路13が出力する信号をエッジ信号rxdrfとする。状態判定回路14は入力信号rxdを受信した受信状態であるか、入力信号rxdを受信していないアイドル状態であるかを判定している。このために、ライズエッジ信号rxdrを入力している。このライズエッジ信号rxdrを入力したときに、アイドル状態から受信状態に切り替わったと判定する。そして、受信状態であることを示す状態信号statを出力する。タイマ回路15はクロック周波数CLKで動作を行うカウンタである。このタイマ回路15は10ビットカウンタ図中のdataとしており、カウント値が0から1023までカウントアップカウント値のインクリメントを行う。このタイマ回路15は状態信号statを入力しているとき、つまり受信状態であるときに動作を行う。タイマ回路15がカウントするカウント値が0から開始して、1023に到達したタイミングでキャリアウト信号carryを出力する。そして、キャリアウト信号carryを出力するタイミング、つまりカウント値が1023に到達したタイミングで、タイマ回路15はカウント値のリセットを行うカウント値を0に戻す。このキャリアウト信号carryはレート周期CTのタイミングを規定している。このレート周期CTは出力信号sigを出力するタイミング、つまりUART受信部7が出力信号sigを取得するタイミングになる。また、タイマ回路15は制御信号ctrを出力する。この制御信号ctrはタイマ回路15のカウント値が所定の閾値thここでは、837としているに到達した時点で、その旨を示す信号になる。エッジ数カウンタ16は論理和回路13が出力したエッジ信号rxdrfを入力した回数を計測して、計測した回数をエッジ数として検出する。エッジ数カウンタ16は初期値を0としており、エッジ信号rxdrfを入力するたびに値のインクリメントを行う。このエッジ数カウンタ16にはキャリアウト信号carryが入力されており、キャリアウト信号carryを入力したタイミング、つまりレート周期CTのタイミングごとに値のリセットを行うカウント値を0に戻す。エッジ数カウンタ16は計測したエッジ数カウント値をエッジ信号edgとして出力する。なお、エッジ数カウンタ16には状態信号statが入力されており、受信状態のときにエッジ数カウンタ16は動作を行う。論理判定回路17は入力信号rxdの論理を判定している。論理の判定はエッジ数カウンタ16が出力するエッジ信号edgに基づいて行う。論理判定回路17は制御信号ctrを入力しており、制御信号ctrのタイミング、つまり閾値thに到達したタイミングでエッジ信号edgに基づいて論理の判定を行う。このときに、エッジ信号edgが3のときには論理が0であると判定し、3未満のときには論理が1であると判定する。判定した論理はレート周期CTごとに出力信号sigとしてUART受信部7に出力する。このため、タイマ回路15からキャリアウト信号carryを入力して、この信号のタイミングレート周期CTのタイミングで出力信号sigを出力している。これにより、信号を復元する復調を行う。スタートビット検出回路18は通信の開始を検出する。ここでは、入力信号rxdの論理が最初に0を示したときに、通信の開始を検出している。なお、論理が1のときに通信の開始を検出してもよい。このために、エッジ数カウンタ16からエッジ信号edgを入力する。そして、制御信号ctrを入力するタイミング、つまりタイマ回路15がカウントするカウント値が閾値thに到達したタイミングでエッジ信号edgを入力する。このときに入力したエッジ信号edgが3のときに、論理が0であることを認識して、通信の開始を検出する。以上の構成における動作について図3、図4のフローチャート並びに図5のタイミングチャートを用いて説明する。まず、状態判定回路14はライズエッジ信号rxdrに基づいて通信状態を検出するステップS11。そして、ライズエッジが検出されているか否かの判定を行うステップS12。ライズエッジが検出されなければ、アイドル状態となる。よって、ステップS11に戻る動作を繰り返す。一方、ライズエッジが検出されたときには、状態判定回路14は受信状態となったことを示す状態信号statを出力する。この状態信号statを入力することにより、タイマ回路15は自身のカウント値をリセットして、値を0に戻すステップS13。また、エッジ数カウンタ16の値もリセットして、値を0にするステップS14。そして、タイマ回路15はカウントアップを開始するステップS15。タイマ回路15はクロック周波数CLKに同期したタイミングで動作を行っており、0から1023までカウントを行う。このときのカウントの最大値である1023はクロック周波数CLK=1.2288MHzをレート周期CTの周波数=1200Hzで除算した値=1024=1.2288MHz/1200Hzになる。ここでは、第1の周波数FLと第2の周波数FHとのうち低い周波数である第1の周波数FL=1200Hzとレート周期CTの周波数とを一致させている。これにより、第1の周波数FLのタイミングで出力信号sigを生成して出力している。このレート周期CTの周波数は第1の周波数FL以外の周波数に設定してもよい。従って、タイマ回路15はクロック周波数CLKの1クロックごとにカウントアップを行う。タイマ回路15には閾値thが設定されており、カウント値が閾値thに到達したか否かを判定するステップS16。到達していない場合には、ステップS15に戻ってカウントアップを続行する。閾値thはエッジ数カウンタ16がエッジ数をカウントするタイミングであり、ここでは閾値thを837としている。タイマ回路15はカウント値が0から837になるまでの間を判定周期JTとして計測している。この判定周期JTはエッジ数カウンタ16がエッジ数をカウントする周期つまり、論理を判定するタイミングを規定している。ここでは、判定周期JTを第2の周波数FH=2200Hzの1.5周期分としている。レート周期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として出力する。エッジ数カウンタ16は制御信号ctrを入力するまでにカウントしたエッジ数を検出するステップS17。エッジ数カウンタ16は初期値としては0になっており、論理和回路13が出力するエッジ信号rxdrfを入力するごとに、その回数を計測している。そして、制御信号ctrを入力したタイミングのカウント値をエッジ信号edgとして出力する。なお、制御信号ctrを入力したときには、エッジ数カウンタ16は自身のカウント値を0に戻す。このときのエッジ信号edgは入力信号rxdの論理を示している。図5のタイミングチャートにも示すように、入力信号rxdが第1の周波数FLであるか第2の周波数FHであるかによって、判定周期JTの間に検出するエッジ数が異なってくる。つまり、第2の周波数FH=2200Hzのときには、判定周期JTの間に検出するエッジ数は3になり、第1の周波数FL=1200Hzのときには、判定周期JTの間に検出するエッジ数は2つまり、3未満になる。これは、所定の判定周期JTの時間のエッジ数が高い周波数では多くなり、低い周波数では少なくなるためである。ここでは、第1の周波数FLと第2の周波数FHとを明確に識別するために、閾値thを第2の周波数FHの1.5周期分としている。入力信号rxdが第2の周波数FHであれば、第2の周波数FHの1.5周期の間のエッジ数は3つライズ、フォール、ライズまたはフォール、ライズ、フォールになる。一方、第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とで必ずエッジ数が異なるようになる。つまり、論理を確実に判定することができる。スタートビット検出回路18は通信の開始を検出したか否かを判定するステップS18。このために、スタートビット検出回路18はエッジ数カウンタ16からエッジ信号edgを入力している。エッジ信号edgが3のときには第2の周波数FHであることを示しており、つまり論理が0であることが認識される。よって、スタートビット検出回路18はエッジ信号edgが3のときには通信の開始を検出する。一方、エッジ信号edgが3未満のときには通信の開始を検出しない。この場合には、ステップS13のタイマ回路15をリセットする処理に戻り、当該処理からフローを開始する。状態判定回路14がアイドル状態と判定しているときには、入力信号rxdのエッジは変化をしていない。つまり、通信を行っていない状態では検出するエッジ信号edgが0になる。よって、スタートビット検出回路18はエッジ信号edgが0から3に変化したときに、通信の開始を検出する。ステップS18において通信の開始を検出したときには、タイマ回路15はそのままカウントを続行するタイマフリーラン:ステップS19。これにより、タイマ回路15のカウント値が837に到達した後も、続けて838からカウントアップを行う。そして、タイマ回路15はカウント値が1023に到達したか否か、つまりレート周期CTが終了したか否かを判定するステップS20。カウント値が1023に到達するまでは、タイマ回路15はカウントアップを行う。タイマ回路15のカウント値が1023になったときには、1レート周期CTが終了したとして、キャリアウト信号carryを出力する。図4に示すように、このキャリアウト信号carryを出力したタイミングでタイマ回路15はカウント値のリセットを行うステップS21。また、エッジ数カウンタ16はカウント値をリセットするステップS22。そして、タイマ回路15はカウントアップを行うステップS23。タイマ回路15はカウント値が閾値th=837に到達したか否かの判定を行いステップS24、到達していないと判定した場合には、ステップS23に戻ってカウントアップを続行する。一方、閾値thに到達したと判定したときには、タイマ回路15が制御信号ctrを出力する。そして、この制御信号ctrに基づいて、エッジ数カウンタ16は計測したエッジ数をエッジ信号edgとして出力するステップS25。このエッジ信号edgが論理判定回路17に入力される。論理判定回路17は入力したエッジ信号edgの判定を行うステップS26。エッジ信号edgが3を示しているときには、前述したように入力信号rxdが第2の周波数FHであることを認識する。これにより、論理が0であることを判定するステップS27。一方、エッジ信号edgが2であるとき3未満であるときには、前述したように入力信号rxdが第1の周波数FLであることを認識する。これにより、論理が1であることを判定するステップS28閾値thに到達したタイミング、つまり制御信号ctrを入力して論理判定回路17が論理の判定を行うタイミングは、未だレート周期CTが終了していない。よって、タイマ回路15は閾値th=837の続きである838からカウントアップを行うタイマフリーラン:ステップS29。そして、タイマ回路15のカウント値が1023に到達したか否か、つまり1レート周期CTが終了したか否かを判定するステップS30。カウント値が1024に到達していなければ、引き続きステップS29のタイマフリーランを行う。一方、レート周期CTが終了したときには、論理判定回路17は判定した論理を出力信号sigとしてUART受信部7に出力する。UART受信部7はこのレート周期CTのタイミングごとに出力信号sigを入力して、所定の信号処理を行う。このときのUART受信部7が出力信号sigを取得するタイミングは常に一定の周期レート周期CTになっている。このために、論理判定回路17はキャリアウト信号carryを入力したタイミングごとに出力信号sigを出力する。そして、全ての通信が終了したか否かを判定しステップS31、終了していないと判定されれば再びステップS21に戻り、終了したと判定されれば処理を終了する。従って、タイマ回路15が一定の判定周期JTごとに入力信号rxdのエッジ数を検出して、このエッジ数に基づいて論理を判定している。つまり、一定の時間を区切って、この時間内における入力信号rxdのエッジ数に基づいて論理を判定している。入力信号rxdの論理は第1の周波数FLと第2の周波数FHとで周波数を異ならせることにより表現している。エッジとエッジとの間隔時間:パルス幅を計測して論理を判定する場合には、レート周期CTの間に本来検出されるべきエッジを検出せず、或いは本来検出されるべきではないエッジが検出されることがある。このために、通信された信号の正確性が損なわれる。この点、本実施形態では、エッジの間隔ではなく一定時間判定周期JTの間のエッジ数を検出して論理の判定を行っている。このため、入力信号rxdの論理が0、1の何れであるかによってタイミングが左右されることはなく、一定のレート周期CTの間に常に正しい論理の判定を行うことができる。これにより、正確な通信を行うことができるようになる。また、本実施形態の動作を実現するために、判定周期JTとレート周期CTとの2つの時間を検出する必要がある。この点、図2に示したように、判定周期JTもレート周期CTも1つのタイマ回路15がカウントを行っている。つまり、判定周期JTを検出するためのカウンタとレート周期CTを検出するためのカウンタとを別個に設けないで、1つのタイマ回路で実現しているため、回路の単純化を図ることができる。以上において、通信の開始を行うときには、プリアンブルデータを送信することが望ましい。プリアンブルデータは最初の1ビット目の論理が0であり、その後の数ビットは1のデータが複数回繰り返されたデータになるつまり、0111101111のようなデータ。このプリアンブルデータは通信の開始を示すデータになる。図6は図5のタイミングチャートについて、最初のパルスを喪失エッジが出現しないしたものを示している。通信の開始時にはノイズ等により最初のパルスを喪失することがある。このため、図6のように最初の判定周期JTで、本来であればエッジ数は3であることを検出すべきであるが、パルスの喪失によりエッジ数は2として検出することになる。この場合には、論理0を検出すべきであるが、論理1を検出する。よって、通信の開始を検出することができない。このときに、プリアンブルデータを送信するようにする。これにより、最初のパルスを喪失したとしても、次に論理が0となるときには、エッジ数は3になり、スターとビットとして通信の開始を検出することができるようになる。いずれにしても、エッジ数カウンタ16が検出するエッジ数が0から最初に3になったときに、通信の開始を検出する。また、判定周期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のように設定してもよい。これは、判定周期JTの間に、入力信号rxdが第2の周波数FHつまり、論理が0のときにはエッジ数が3となるように、且つ入力信号rxdが第1の周波数FLつまり、論理が1のときにはエッジ数が23未満となるようにしているためである。このため、第2の周波数FHと第1の周波数FLとで、判定周期JTの間に検出するエッジ数が必ず異なるのであれば、判定周期JTつまり、閾値thは任意に設定することができる。また、論理0のときにはエッジ数が4になり、論理1のときには4未満となるようにしてもよい。また、レート周期CTの周波数は第1の周波数FLと一致させているが、第1の周波数FLと一致させなくてもよい。ただし、UART受信部7が第1の周波数FLに同期したタイミングで出力信号sigを取得する場合には、レート周期CTを第1の周波数FLに一致させる。