アプリケーションノート 3435

無線通信用のマンチェスタデータ符号化方式


要約: マンチェスタ符号化方式は、ディジタルデータを安価に無線伝送するための変調方式として広く受け入れられています。この2相位相偏移変調という方式は、連続した0または1からなる長いストリングが含まれない任意のビットパターンのディジタルシリアルデータを符号化し、また符号化クロックレートを送信データ内に埋め込むための簡単な方法です。

マンチェスタ符号化方式は2相位相偏移変調(BPSK)という方式であり、ディジタルデータを安価に無線伝送するための変調方式として広く受け入れられています。マンチェスタ符号化は、連続する0または1からなる長いストリングが含まれない任意のビットパターンのディジタルシリアルデータを符号化し、また符号化クロックレートを送信データ内に埋め込むための簡単な方法です。これらの2つの特性によって、精度が高くない安価なデータレートクロックのトランスミッタから、信号強度が不安定な送信データを復号することができる安価なデータリカバリ回路を構築することが可能となります。

マンチェスタ方式におけるディジタルデータの符号化は、「1」と「0」のバイナリ状態を、静的な値ではなく遷移として定義付けています。立上りエッジと立下りエッジという2つの可能な遷移に対して、ロジックレベルの「0」と「1」(あるいはその逆)を割り当てることによって、2種類の定義が可能となります(図1図2を参照)。

図1. 論理バイナリデータをエッジの遷移として定義する方法
図1. 論理バイナリデータをエッジの遷移として定義する方法

図2. 論理バイナリデータをエッジの遷移として定義する、もう1つの別の方法(機能は同等)
図2. 論理バイナリデータをエッジの遷移として定義する、もう1つの別の方法(機能は同等)

マンチェスタ符号化データにおけるビットの定義は混乱を招くおそれがあります。というのは、符号化された各バイナリデータビットは、符号化されたデータストリームの中で2つの「ビット」として表されるからです。符号化されたデータビットが遷移として定義されていることに留意すれば、「マンチェスタデータストリームにはビットというものは存在しない」ということを容易に理解することができます。定義上、情報はローレベルからハイレベルへの遷移またはハイレベルからローレベルへの遷移として符号化されるため、マンチェスタ符号化データストリームでは、それぞれの遷移に2つのレベルが必要になります。このため、マンチェスタ符号化方式でデータを符号化するには、2倍のロジックレベルの状態が必要です。ただし、「マンチェスタビット」という言葉が今も使用されているため、「ビット」という用語を使用するときには十分に注意して、そのビットがシリアルデータビットなのか、あるいはマンチェスタ符号化ビットなのかを確実に指定する必要があります。「チップ」という用語は、しばしば、遷移またはエッジの片側のレベル期間を表すために使用されます。このため、ロジックレベルビットの各マンチェスタデータ符号化には、2つのチップが必要です。シリアルデータストリームのサンプルを図3に示します。

図3. シリアルデータストリームのマンチェスタ符号化(図1に示した定義を使用)
図3. シリアルデータストリームのマンチェスタ符号化(図1に示した定義を使用)

マンチェスタ符号化方式の主な利点は、符号化されたデータストリームのDC成分レベルが平均して0になるということです。符号化されたデータストリームのピークトゥピーク振幅とは関係なく、遷移は常に、符号化されたデータストリームの遷移が中間レベルを横切る点(この例では0)として特定することができます。安価なデータデコーダは、データスライサと呼ばれる簡単な遷移検出器の中でこの特性を利用しています。データスライサの簡単な実装を図4に示します。これは、符号化されたデータストリームを復号(すなわちスライス)するために単純なコンパレータを使用しています。R1とC1から構成されたローパスフィルタは、シリアルデータのチップレートよりもはるかに長くなるように選択した時定数によって、入力されるシリアルデータストリームのDC平均を追跡します。C1上の平均電圧がコンパレータの負の入力リファレンス値となります。また、シリアルデータストリームがコンパレータの正の入力となり、遷移が平均値を超えるまたは下回ると、コンパレータの出力が上側と下側の電源電圧の間をスイングするようにしています。

図5は、マンチェスタ符号化のシリアル入力データストリームと得られる出力データストリームの例を示しています。この例では、符号化されたデータストリームに、RFレシーバでは一般的な、ゼロレベルからのDCオフセットがあることに留意してください。データスライサは、電源レイル間をスイングするバイナリシリアルストリームに、入力データストリームを効果的に変換しますが、これはディジタルシステムでは一般的です。このバイナリレベルの復元によって、符号化されたシリアルデータストリームは、標準的なディジタル回路によるその後の復号と処理に最適なものとなります。

図4. バイナリロジックレベルを復元するための簡単なデータスライサ回路
図4. バイナリロジックレベルを復元するための簡単なデータスライサ回路

図5に示す回路例には、コンパレータ回路で追加されたヒステリシスのための正のフィードバックを形成する抵抗器R2とR3も含まれます。ヒステリシスは、変化の遅い、またはノイズの多い入力信号で発生する多重エッジを低減します。

図5. ローレベルのマンチェスタデータストリーム入力がロジックレベル出力にデータスライスされています。
図5. ローレベルのマンチェスタデータストリーム入力がロジックレベル出力にデータスライスされています。

マンチェスタ符号化データがいったんデータスライスされて、復元されたロジックレベル電圧を持つシリアルデータストリームに変換されると、データデコーダを使用して、符号化された元のシリアルデータ情報を抽出します。データデコーダは通常、単純なマイクロコントローラであり、ロジックレベル間のバイナリ遷移を識別してバイナリの「1」または「0」の値をデータに割り当てるソフトウェアアルゴリズムを実行しています。ある特定のシステムでは、マイクロコントローラソフトウェアは、符号化されたデータのおおよそのボーレートを認識して、ロジックレベルの遷移のタイミングを予測することができます。これは、ボーレートクロックが埋め込まれているという、マンチェスタ符号化データの2番目の利点を利用しています。受信したデータストリームがノイズフロアに近い状況では(例えば、遠く離れたトランスミッタからのRF信号のレベルが低い場合)、データスライサの出力で、遷移のエッジが多重遷移を示す可能性があります。マイクロコントローラのソフトウェアアルゴリズムを記述することにより、有効なエッジのタイミングを予測することができるだけでなく、次の有効なエッジの遷移時刻までに発生するすべてのエッジを拒否することもできます。ハードウェアによるデータデコーダの実装も実現可能ですが、多くの場合、回路が複雑になって単純なマイクロコントローラとコスト面で競合することができません。さらに、マイクロコントローラは、特定のデータを受信したときにディジタル出力をアクティブにするなど、他の機能を実行することができます。たとえば、正しい識別キーや制御機能を復号したときに車のドアのロックを解除したりするような場合です。

図6. RFマンチェスタデータの標準レシーバシステムの基本部品
図6. RFマンチェスタデータの標準レシーバシステムの基本部品

マンチェスタデータ符号化方式は一般的に、符号化するシルアルデータと、ビットレートを確定するために使用するクロックを論理的に結合するプロセスとして表せます。この回路の例を図7に示します。このような回路の使用法の1つとして、マイクロコントローラのUARTから出力されるシリアルデータの符号化が挙げられます。図に示した回路では、クロック入力とデータ入力の遷移中に生じる多重エッジの防止に必要な機能は省略しています。これらは、ロジックレベルの中間状態を遷移するときに生じるものです。

図7. XORによってデータレートクロックとシリアルデータを結合したマンチェスタ符号化
図7. XORによってデータレートクロックとシリアルデータを結合したマンチェスタ符号化

ただし、データの符号化にXORを使用しても、即座にマンチェスタ符号化データストリームを簡単に生成できるということにはなりません。図8に示すようにマイクロコントローラをトランスミッタのエンコーダとして使用し、また符号化とシリアルデータレートのタイミング機能を実行するソフトウェアを使用することで、マンチェスタ符号化データストリームを簡単に生成することができます。この方法では、マンチェスタ符号化データを送信するためにマイクロコントローラとともにハードウェアUARTや外付け回路を使用する必要はありません。マイクロコントローラの内部タイマが、送信するデータに応じて、サブルーチンをトリガして出力端子を更新することで、データレート時間を確定します。マイクロコントローラのタイムベースは、高精度である必要はありません。符号化するデータの内部に、復号レシーバが使用するデータとクロックに関する情報のすべてが埋め込まれているからです。

図8. マイクロコントローラは、ソフトウェアを使用してマンチェスタ符号化を生成することができます。
図8. マイクロコントローラは、ソフトウェアを使用してマンチェスタ符号化を生成することができます。