1985 年に私がこの回路を設計したのは、孤独で話し相手が必要だったからです。トーキング ボックスは私が言ったことを何でも言います。
冗談抜きで、デジタル留守番電話として電話機に接続していました。AT&T のデータ アクセス契約 (DAA) を持っていて、電話回線インターフェイスでしたが、非常にうまく機能していました。タッチ トーンをいじっていて、忠実度が高かったのです。それで、郡の家庭児童サービス局が、私の電話番号を間違えて名刺に載せてしまいました。特に、私は下品な詩を書いて、それを応答メッセージとして読んでいたため、非常に多くの電話を受けました。ハイファイ ベイビーの話をしているんですよ! 自分がどれだけ愛されていたか、何度も証言してもらいました。基本的に、1985 年、ラップが生まれる前からラップをやっていたのです。「こんにちは、お子様のサービスを受けるためにお電話ですか?」は、おそらく今日では受け入れられない挨拶でしょう。
私は、デバイス機能を管理するアセンブリ言語プログラムを Z80 アセンブラで作成し、その後、IBM PC 互換機のシリアル I/O デバイスソケットに差し込むアダプタボードを作成し、非同期 UART デバイスを Intel のユニバーサル同期/同期バージョンである USART Intel 8251A に置き換えました。その後、友人の Tommy Cobb または「the Cobbler」という人物が、私の Z80 コードを PC 用の 8088 アセンブラに変換しました。IBM PC シリアル I/O ボード用のアダプタを最後に見たのはいつだったか思い出せません。私が知る限りのドキュメントはありません。また、私のプロトタイプ Talking Box が見つからないようですが、間違いなくこの家のどこかにあるでしょう。これは写真映えするユニットなので、ここに写真を何枚か掲載したいのですが、残念です。
携帯電話に接続するだけでなく、このソフトウェアでは、オーディオのストレージ スコープのように使用できる優れたループを選択して再生できます。録音を逆再生して、声を聞くことができます... ああ、気にしないでください。☺
とにかく、ラジオ エレクトロニクス誌がこの記事を記事として買い上げ、かなり高額な頭金を支払ってくれました。私は本当に感銘を受け、やる気も出ました。北米初の連載権です。設計や製作、コーディング、執筆が好きな私にとって、これは本当に良い生計手段に思えました。すでに何度も登場している著者が数人いたので、独創的なアイデアではありませんでした。その後、1985 年 4 月に雑誌が倒産して廃刊となり、この記事は印刷されることはありませんでした。その時点でメーカー印刷業界は終わり、趣味で製作する読者層は消え去ったというのが私の考えでした。これはインターネットが普及する前のことでした。そこで、いわば復活した記事がここにあります。古くなっても楽しんでいただければ幸いです。電気玩具は、使われなくなっても概念としての有用性を維持します。
著者はまた、記事のタイプされたページの JPG スキャンを OCR キックを使用してテキストに変換してくれた John T. Smith (K3GO) にも特別な感謝の意を表したいと思います。
Talking Box は、簡単に構築できる経済的なプロジェクトで、人間の音声や同様のオーディオ周波数アナログ信号をデジタルエンコードして再生する方法をほぼすべてのコンピューターに提供できます。操作を簡単にするために、このプロジェクトはコンピューターのシリアル I/O ポートに接続するように設計されており、同期電話モデムのように見えます。これにより、多数のアプリケーションで簡単に接続できるデバイスインターフェイスが実現します。プロジェクトの回路は、連続可変技術を使用しています。
スロープデルタ変調を使用して、アナログ信号をバイナリ データにエンコードし、このバイナリ データをアナログ信号にデコードします。このエンコード/デコード処理のため、このデバイスは一般に単にコーデックと呼ばれます。
シリアル データ レートが 16 キロビット/秒 (kbps) の Talking Box は、ほとんどの留守番電話機に匹敵する忠実度で音声を録音および再生できます。データ レートを 32 kbps に上げると (再生される音声の 1 秒あたり約 4 キロバイトのデータが保存されます)、周波数が 300 ~ 3000 Hz のオーディオ信号に対する歪みは 5% 未満になります。これにより、このプロジェクトをコンピューターで簡単に使用して、たとえば電話のプッシュホン信号を再生および認識できます。この記事の主な目的は、Talking Box 回路の設計と構築、およびオーディオ信号または音声信号のバイナリ保存と再生への使用について説明することですが、このコーデック デバイスは、通信、産業用制御、計測など、さまざまな用途に使用できます。このプロジェクトが使用される可能性のある方法としては、デジタル フィルター、モーターのリモート コントロール、音声信号のスクランブル、保存または表示用の過渡信号のエンコード、信号の振幅圧縮、残響用のデジタル遅延線、合成音声を形成するための異音の抽出と再生、音響モデム用の信号のエンコードまたはデコード、パケット化された音声データ メッセージ、および画像処理または分析などがあります。
ほとんどのデジタル エンコーダは、一定間隔で連続的に変化する信号の振幅をサンプリングし、これらのサンプルを振幅と極性を示すバイナリ ワードで表します。これに対して、デルタ モジュレータは、入力信号自体の値を表すのではなく、トラッキング信号内の量子化エラー、つまり「デルタ」(A) を表す値を持つ 1 ビット ワードを生成します。技術的には、デルタ モジュレータは、現在サンプリングされている入力信号と、前の入力信号の量子化された近似値との差を表す極性を持つバイナリ出力を生成する、閉ループ サンプル データ制御システムです。これは、単純な制御ループのフォワード パスにコンパレータを配置し、フィードバック パスに積分器を配置することで実現されます。図 1 の線形デルタ変調システム ブロック図に示すように、コンパレータへの入力は、入力信号と積分器またはローカル デコーダの出力です。
したがって、コンパレータ出力は、入力信号と積分器出力の差の符号を反映します。この符号ビットは、積分器に次に適用される電荷の極性を制御し、デジタル出力も形成します。コンパレータ出力は通常、同期帯域制限シリアルデジタルビットストリームを提供するようにクロックされます。必要な回路の単純さと出力データのシリアル性は、デルタ変調器の 2 つの基本的な利点です。結果として得られるクロックされたシリアルビットストリームが、図 1にも示されているように、同様に構成された受信積分器に送信される場合は、このデコード積分器の出力は、元の送信制御ループ積分器出力のコピーになります。同期シリアルデータストリームにはフレーミング情報は含まれておらず、エンコーダからのビットストリームで表される元の入力の複製は、このデータがデコーダに入力されるとすぐに開始されます。このコピーの忠実度は、送信積分器が元の入力信号を追跡する程度に最も大きく依存します。図 2 の線形デルタ変調器の波形図に示されている波形からわかるように、エンコーダのフィードバック信号は、サイズが一定である一連の傾斜ステップで入力信号を追跡しようとします。ローカル デコーダからのフィードバック信号は、線形ネットワークによって形成された一定またはほぼ一定サイズのステップで構成されるため、このタイプのデルタ変調は線形デルタ変調と呼ばれます。デコーダ出力にこれらの増分ステップが存在すると、粒状ノイズと呼ばれる量子化ノイズ信号が発生します。ビット ストリームのクロック レートが入力信号の帯域幅より 1 オクターブ以上高い場合、レシーバ出力でのロー パス フィルタリングにより、このノイズ信号のほとんどが除去されます。このノイズ信号のレベルをさらに下げるには、ステップ サイズを小さくするか、サンプリング周波数を上げるか、またはその両方を行います。
線形変調システムの主な欠点は、単純に考案された制御ループでは、広範囲の入力信号電力にわたって適切な信号対雑音比 (S/N) を維持することが比較的不可能なことです。つまり、ダイナミック レンジが限られています。たとえば、音声録音では、さまざまな個人の音声パターンで発生するさまざまな電力レベルによって、S/N 比が大幅に異なります。
デルタ変調エンコーダでは、入力信号の瞬間的な傾斜、つまり振幅の変化率に関する情報は、各バイナリまたは論理出力レベルの連続的な発生率によって示されます。図 2 の左側に示すように、入力にゼロ傾斜の一定振幅信号が存在する場合、結果として得られるトラッキング信号は、レベルは同じで極性が反対の一連の傾斜ステップになります。これにより、デジタル出力で 0 と 1 の交互シーケンスが生成され、入力信号における相対的な無音期間、つまり一定振幅レベルを示すか、または対応するものとして見なすことができます。無音期間中にこの望ましい結果から逸脱すると、アイドル チャネル ノイズと呼ばれ、当然、関連するデコーダから非ゼロ信号が出力されます。
説明したように、ゼロ傾斜の入力信号を適用すると、1 と 0 の交互のシーケンスが出力されます。しかし、入力信号の傾斜が急激に変化し、フィードバック信号 (つまり、エンコーダの積分器出力) が入力信号を追跡できなくなるとします。この場合、出力には一定極性のビット ストリームが生成されます。この状態は傾斜オーバーロードと呼ばれ、これが発生すると、デコーダからの出力は元の信号とはまったく異なる可能性があります。元の信号とそのレプリカ間の差の度合いは、傾斜オーバーロード ノイズと呼ばれます。傾斜オーバーロード ノイズは、粒状ノイズや量子化ノイズよりも、複製された波形の歪みに大きく影響するため、絶対的な波形忠実度に大きな影響を与えます。ただし、人間のリスナーは、再生された音声信号では粒状ノイズの方が知覚的に目立ち、不快だと感じます。
このように、リニア エンコーダの S/N 比は入力信号電力レベルに直接影響されることがわかります。入力電力レベルが低い場合、フィードバック トラッキング信号が比較的小さな入力信号を中心に大きく変動し、比較的大きなステップ サイズによって大量の粒状ノイズが発生するため、信号トラッキングは不十分です。入力信号電力レベルが増加すると、量子化ノイズが総電力に占める割合が小さくなるため、S/N 比は直線的に向上します。エンコーダがわずかに傾斜オーバーロードになるまで、エンコーダの入力信号追跡能力は徐々に向上します。この時点で、ノイズ電力含有量が信号電力含有量よりも急速に増加するため、S/N 比は低下し始めます。これらの関係をグラフで表したものが、図 3「デルタ変調器システムの信号電力とノイズ電力」です。
エンコーダへのアナログ入力信号の周波数制限は、上限で制限されます。ナイキスト サンプリング レートによって決定されるクロック周波数があり、これは入力信号帯域幅よりも大きく、十分に小さいステップ サイズがあれば、特定のノイズ レベルで信号をエンコードします。ただし、入力信号の振幅制限は、上限と下限の両方で制限されます。特定の入力信号レベルには、最適な S/N 比を提供する関連する積分器ステップ サイズがあります。残念ながら、固定ステップ サイズでは、リニア エンコーダの有効な入力信号ダイナミック レンジの制限値が比較的小さくなります。
ここで、入力信号の傾きが小さいときにトラッキング ステップ サイズを小さくし、傾きが急峻になったときにトラッキング ステップ サイズを大きくすることができれば、S/N 比がどのように改善されるかを考えてみましょう。これは、積分器のゲインを調整することで実現できます。明らかに、フィードバック信号は、より広範囲の入力電力レベルにわたってより適切にトラッキングされます。量子化ノイズはステップ サイズの 2 乗に比例するため、ステップ サイズをより広範囲の入力信号に適応可能にすると、線形デルタ変調の場合のようにノイズ電力が入力信号電力に依存しないのではなく、ノイズ電力が入力信号電力に応じて変化します。したがって、ノイズ電力を信号電力に比例させると、S/N 比は入力信号レベルに依存しない一定の値になります。これが、適応デルタ変調の原理です。特定のクロック レートと入力信号帯域幅の場合、積分器のゲインを調整するアプローチにより、図 3 に示すように、有効なダイナミック レンジを大幅に拡大できます。
トラッキング インテグレータのステップ サイズを適応的に変更するために多くのアルゴリズムが使用されてきましたが、Talking Box では連続可変スロープ デルタ (CVSD) 変調と呼ばれる手法が採用されています。これは、音節圧縮デルタ変調とも呼ばれ、音声やその他のダイナミック レンジの広いアナログ信号をエンコードおよびデコードするための好ましい方法です。前述の線形デルタ変調器に含まれる動作要素の外部には、デルタ変調器からの現在および過去のいくつかのデジタル出力を監視し、それに応じてエンコーダ インテグレータのゲインを調整するアルゴリズムが実装されています。図 4 の CVSD 変調システム ブロック図に示されているように、アルゴリズムの監視部分は、最後の 3 つまたは 4 つの出力ビットを格納する単純なシフト レジスタで実現されています。受け入れられている標準アルゴリズムでは、これらの順次格納されたビットがすべて同じロジック レベルである場合 (つまり一致と呼ばれる状態) に、そのことを示す表示が提供されます。真の一致出力の発生は、現在のインテグレータ ゲインがアナログ入力を追跡するには小さすぎる可能性があることを示します。一致出力により、より大きな電流でローパス フィルタを充電できます。このフィルタの電圧出力は、エンコーダ インテグレータ ゲインの絶対値を調整するために使用されます。ほとんどのアプリケーションでは、約 5 ~ 10 ミリ秒 (有声音声の一般的なピッチ周期に相当) から最大約 100 ミリ秒 (音声の一般的な音節持続時間に相当) までの範囲の固定一致時間定数を持つ単純な単極ローパス フィルタが使用されます。そのため、このフィルタは、音声コーデック アプリケーションでは音節フィルタと呼ばれることがよくあります。多くの場合、時間定数の値は最終的には主観的な好みによって選択されます。
この一致したロジック レベル シーケンス検出アルゴリズムは、その簡潔さの点でも、また、シフト レジスタを使用する他の多くのアルゴリズムが試されたが満足のいく結果が得られなかった点でも重要です。承認されたアルゴリズムでは、一致信号の存在は入力信号のエンベロープの性質に関連しているため、他のシーケンス検出方法が提供する入力曲線の傾斜に関するより瞬間的な情報ではなく、信号の時間平均電力レベルを示します。このアルゴリズムの効果は、信号を圧縮し、実現可能なダイナミック レンジを増やすことです。
このアルゴリズムはデコーダーで繰り返され、受信側でレベル データが復元されます。CVSO エンコーダー データ ストリームがリニア デコーダーに入力された場合、エンコーダーのアナログ入力信号の基本的な形状は複製されますが、出力はすべて同じレベルになります。ビット ストリームは、入力レベルが一定のリニア エンコーダーから送信されたかのように表示されるため、デコーダー側では、信号をデコンパンドまたは拡張して振幅レベルの変化を復元するアルゴリズムが必要です。このアルゴリズムは過去のシリアル データのみで動作するため、チャネル ビット レートを変更せずにビット ストリームの情報量を増やすのと実質的に同じであることに注意してください。
したがって、デルタ変調の原理と CVSO アルゴリズムを組み合わせると、音声周波数のアナログ情報をシリアル データ ストリームにデジタル化するための、実装が容易で効率的な方法が実現されることがわかります。
Talking Box は、モトローラ MC3417 または MC3418 集積回路 (IC) を使用して CVSD エンコーダおよびデコーダの電子回路を実装し、デルタ変調器機能を実現します。これらの IC は汎用 CVSO ビルディング ブロックであり、回路の実現をアプリケーションの特定の要件に合わせて調整できます。モトローラによると、スロープ極性スイッチの電流マッチングは MC3418 IC の製造中にレーザー トリムされ、アイドル チャネルのパフォーマンスを最小 5 ミリボルトのステップ サイズと、15 マイクロアンペアから 3 ミリアンペアまでの標準的な 1 パーセントの電流マッチングで保証します。これにより、300 対 1 のステップ サイズ変動が可能になり、これは、アナログ信号のダイナミック レンジを大幅に拡張できる能力を反映しています。
Talking Box の回路自体は、独立したエンコーダーとデコーダーのパスで構成されているため、送信と受信の両方に同時に使用でき、全二重操作が可能になります。エンコーダーとデコーダーは両方とも、同じ可変レート TTL クロック ジェネレーター回路によって駆動されます。プリント回路カード上のその他の部品は、電圧レギュレーターのペアと RS232 インターフェイス レベル コンバーター IC で構成されるサポート要素のみです。
エンコーダ パスの電子回路は、図 5 の CVSD コーデック音声デジタイザ (A/D) の回路図に示されています。図に示されているように、回路は 4 つの機能領域に分かれており、マイク プリアンプ回路から始まり、自動ゲイン制御 (AGC) アンプ、音声バンドパス フィルタ、そして最後に CVSD 変調器回路自体が続きます。
マイクプリアンプは、典型的なトランスレスアンバランス、またはシングルエンドの入力増幅回路です。ダイナミックマイクなどのオーディオソースから予想される低レベル信号で最適なノイズ性能を得るために、設計では非反転構成を使用しています。この実装は、高インピーダンス電界効果トランジスタ(FET)入力を備えたTL084タイプのクワッドオペアンプ(オペアンプ)ICの4分の1で実現されています。プリアンプには調整可能なゲインがあり、MIC GAINというラベルの付いたフィードバック抵抗として接続されたトリムポットを使用して変更できます。アンプには低周波ロールオフ、つまりハイパス特性もあり、そのコーナー周波数は、オペアンプの反転入力からグランドに向かう直列抵抗/コンデンサの組み合わせの値によって決まります。これにより、プリアンプの周囲のACフィールド(通常60Hz)ハムピックアップ感度が低減され、入力信号の低周波電力コンテンツが低減されます。最後に、プリアンプには、オペアンプの非反転入力または信号入力からグランドまでに配置された小さな値のコンデンサもあり、これは、マイク ケーブルに存在する可能性のある望ましくない高周波ノイズをバイパスする役割を果たします。 一部のアプリケーションでは、直列入力抵抗 (100 オーム) を、通常約 1 マイクロファラッドのコンデンサに置き換えることができることに注意してください。
マイク プリアンプの後には A6C アンプ回路があり、音声信号をスピーチ フィルターと CVSD コーデックに適用する前に、音声信号のレベル圧縮を行います。この動作により、周波数バンドパスとエンコーダー処理に送られる前の信号振幅のダイナミック レンジが制限されます。Talking Box で使用されている AGO 回路は、Burr-Brown Research Corporation* の Jerald Graeme によって説明されたものです。この回路の動作は、このステージのゲイン範囲と出力振幅を決定する T 電圧分割ネットワークで制御された可変抵抗素子として FET を使用することに基づいています。
AGC 回路の動作は、すでに説明したマイクロフォン プリアンプに部分的に使用されている同じクワッド パッケージの FET と 2 つのオペアンプによって実現されます。最初のオペアンプはゲイン制御反転アンプとして機能し、2 番目はピーク センシング アンプとして機能します。出力信号のピーク正レベルが AGC LEVEL ポテンショメータのワイパー アームで設定された電圧値を超えると、センシング コンパレータの出力が正に振れ、FET のゲート電圧が増加して、その dr in-to-source 抵抗が低下します。これにより、より多くの入力信号がグランドにシャントされ、最終的にこのステージの全体的な回路ゲインが低下します。出力信号の振幅は、前述の AGC LEVEL 制御ポテンショメータを調整することで、ゲイン制御アンプの飽和レベルまたはクリッピング レベルからゼロまでの間で設定できます。
オーディオ信号用の可変抵抗素子として FET の概念を使用する多くの実装で遭遇する問題は、デバイス自体の抵抗が、その両端に印加される信号によって変調されるという事実にあります。FET の特性のこの側面を適切に補正しないと、信号レベルに依存するゲインと歪みが生じます。図 5 に示す回路は、この信号レベル変調を大幅に削減する新しい補正フィードバック方式を採用しています。図からわかるように、FET のドレイン リードに現れる信号は、関連する AGC アンプの出力から得られる等しいが逆位相の同相信号と整合しています。回路で使用される抵抗値は、FET が小信号レベルで動作できるように選択されており、この状況は歪みを最小限に抑えるのにも役立ちます。図に示すように、AGC ステージの出力は、エンコーダの信号パスで次に見られる音声バンドパス フィルタに適用されます。
音声バンドパス フィルタ回路ステージでは、通常、300 ~ 3000 Hz の周波数帯域内の入力信号は通過させ、この範囲外の信号は拒否します。バンドパス フィルタの実装手法を選択する際に考慮すべき主な事項の 1 つは、正規化帯域幅または分数帯域幅と呼ばれる派生パラメータの値です。数値的には、これは、上側の -3dB カットオフ周波数から下側の -3dB または半電力カットオフ周波数を減算し、さらにこの差の値をこれら 2 つの周波数の幾何平均で割ることによって得られる結果です。当然、幾何平均は、計算された差の値の平方根です。エンコーダ音声フィルタの指定された(高および低)カットオフ周波数から計算された分数帯域幅の値はおよそ 3 ですが、この分数帯域幅の計算値が約 0.8 の値を通り始め、1 未満から 1 に近づくか 1 を超えると、バンドパス フィルタのパフォーマンスは、真のバンドパス実装よりも、カスケードされたハイパス フィルタ セクションとローパス フィルタ セクションから得られる結果のほうが一般的に優れていることがわかります。これは、エンコーダ音声フィルタ回路で使用される方法です。
考慮すべきもう 1 つの領域は、音声フィルタの優れた周波数特性と過渡応答特性の必要性です。バターワース タイプのフィルタは、最も平坦な通過帯域振幅を持ち、適度に速い初期減衰ロールオフ レートを提供します。これらのフィルタを使用すると、通過帯域全体で周波数が変化すると位相シフトが発生しますが、これは緩やかで、耳で認識できるものではありません。さらに、この種のフィルタはオーバーシュートが少なく、過渡応答も許容範囲です。これらすべての要素が組み合わさって、この種類のフィルタで低い信号歪みが実現します。エンコーダで使用するために選択されたハイ パス フィルタとロー パス フィルタのタイプは、3 次アクティブ フィルタで、コーナー周波数を超えると -18dB/オクターブの急峻なカットオフ レートと、帯域全体で位相シフトが緩やかに変化する平坦な電力および電圧周波数応答を示します。フィルタを実装するために採用された特定の電子回路は、無限ゲイン # 多重フィードバック設計と呼ばれ、複雑さとコンポーネント値の広がりおよび感度の間の適切な妥協点を提供するため選択されました。各セクションは、LM353 デュアル FET 入力オペアンプ IC の半分で実現されています。これらのデバイスは、非常に高い入力インピーダンス、高速スルーレート、および容量性負荷での極めて安定した動作を備えています。フィルタには 2 つの反転オペアンプがカスケード接続されているため、最終結果はステージ全体でゼロ位相変化に近似します。
音声バンドパス フィルタからの出力信号は、最終的に CVSD 変調回路に適用されます。基本的に、このステージのすべてのアクティブ機能は IC 自体に含まれており、個別のコンポーネントは、デバイス動作の 3 つの領域の特定のパラメータを確立するために使用されます。
まず、IC のピン 12 からグランドに 2 つのシリコン ダイオードが接続されており、これにより、デバイスへのロジック信号入力のしきい値ポイントがグランドより約 1.4 ボルト (約 2 つのダイオード降下) 高く設定され、ボード上の TTL ロジック レベルまたは RS232 インターフェイス ICS で使用されます。
2番目に考慮すべき点は、トラッキング積分フィルタネットワークです。トーキングボックス回路は、ICのピン6と7の間のローカルデコーダ積分アンプに接続された単極積分フィルタネットワークを使用します。出力
ピン 7 に現れるトラッキング積分器の信号は、ピン 2 のアナログ信号コンパレータの 1 つの入力にも接続されます。このフィルタに 2 極ネットワークを使用すると、単極で実現した場合よりも 1 ~ 2 dB s/n 比が向上します。必要に応じて、プリント回路カードの上部にあるピン 2 と 7 を接続するトレースを切断し、導体側のピンを適切な抵抗でジャンパーし、ピン 2 からグランドにコンデンサを追加することで、2 極ネットワークを実装できます。必要なコンポーネント値の導出については、モトローラのデータ シート 2 で説明されています。
ただし、ここで示され、通常使用される単極フィルタは、MC3417 デバイスを使用した 32 kbps のデータ レートでの TouchTone 再生に完全に十分であることが証明されています。
CVSD 変調器の動作の最後の領域は、シラビック フィルタ ネットワークと、IC デバイスの積分器の最小ステップ サイズとループ ゲインの決定です。シラビック フィルタは、Rs および Rp というラベルの付いた 2 つの抵抗器とコンデンサ Cs で構成される単純な単極ローパス回路です。通常、コンデンサは直列の Rs と Rp を介して充電されます。ただし、一致出力 (IC のピン 11) が true になると、これは Cs の充電パスから上側の抵抗器 Rp を効果的に削除する働きをするため、充電電流が増加し、結果として積分器のステップ サイズが増加します。抵抗器 Rm は最小積分器のステップ サイズを決定する役割を果たし、抵抗器 Rx の値は単純な線形電流-電圧変換によってループ ゲインを確立する役割を果たします。この変換関係を変更すると、S/N 比が大幅に向上しますが、それに伴って電子回路の複雑さが増します。たとえば、この機能を実現するためにアクティブ回路デバイスを使用すると、32 kbps のデータ レートで動作する場合、30 dB の S/N 比で 50 dB の有効信号振幅 (ダイナミック) 範囲を簡単に実現できます。
CVSD エンコーダ IC の動作には、3 つのデジタルまたはロジック レベルの信号パスが関連しています。最初の信号はピン 14 へのクロック入力で、通常は以下に説明するクロック ジェネレータ回路によって提供されます。2 番目のロジック信号はピン 9 に表示されるデジタル出力で、これは変調器から送られる実際のシリアル データ ストリームです。データ ビットは、ピン 14 の IC へのクロック入力の立ち下がりエッジでデバイスからクロック出力されます。3 番目で最後のロジック信号は、回路への強制アイドル入力 (IC ピン 15) です。図に示すように、ピン 9 からのデジタル出力が IC のピン 13 に接続されると、デバイス内にトグル フリップフロップが形成され、強制アイドル入力ピンをアクティブにすると、エンコーダ デジタル出力からアイドル チャネル パターンが送信されます。この機能により、データ リンク同期を確立したり、エンコーダから無音パターンを強制したりすることが簡単になります。
トーキング ボックスのエンコーダ パスを構成する回路の詳細について検討したので、次にデコーダ パスで使用される回路設計に注目してみましょう。デコーダ パス全体の回路図は、図 6 の CVSD コーデック音声ジェネレータ (D/A) に示されています。この図からわかるように、デコーダ パスは 3 つの主要な動作段階で構成されています。CVSD 復調器から始まり、音声バンドパス フィルタが続き、その出力が最終的に出力アンプを駆動します。
デルタ変調の原理のセクションで説明したように、デコーダー機能はエンコーダー機能とある程度補完的なものとして捉えられ、理解されることがあります。当然のことながら、それぞれの電子回路とコンポーネントの値には、鏡像的な類似性が見られます。
したがって、CVSD 復調器ステージの回路図では、Rp および Rs というラベルの付いた抵抗器とコンデンサ Cs の動作機能と値は、エンコーダ パス回路の図 5 の同じラベルの付いたコンポーネントの動作機能と値と完全に類似しています。同様に、Rx および Rm というラベルの付いた抵抗器は、エンコーダ実装の同じラベルの付いた補数と類似した方法で機能します。同様に、CVSD 復調器のデコーダ積分器フィルタ ネットワークを形成するコンポーネントも、変調器回路にあるものと類似しています。最後に、デコーダ IC のロジックしきい値レベルも、エンコーダ IC の場合と同様に、シリコン ダイオードのペアの電圧降下によって設定されます。
ただし、デコーダ パスでは、回路に関連付けられているデジタル信号パスは 2 つだけです。クロック入力があり、これは通常、エンコード機能に使用されるのと同じ TTL クロック ジェネレータ回路によって駆動されます。この信号はデコーダ IC のピン 14 に適用され、データ ビットをクロックして、デジタル入力ピン 13 に順番に IC に送り込まれます。
CVSD 復調器段の出力は、もちろん、エンコーダ パスに入力された元のアナログ信号のフィルタリングされていないコピーです。次に、デコーダ パスの音声バンドパス フィルタに適用され、前述の粒状ノイズまたは量子化ノイズを除去します。ハードウェアの実現は、ハイパス回路とローパス回路のカスケード順序が逆になっていることを除いて、エンコーダ パスで使用されているものと基本的に同じです。デコーダ フィルタでは、量子化ノイズをできるだけ除去することが第一の目的であるため、ローパス関数を最初に配置し、フィルタ ステージの入力 (したがってデコーダ出力にも) に最も近い位置に配置して、この減衰を最大化します。
デコーダ信号パスのスピーチ フィルタの次には、3 番目で最後のデコーダ回路である出力アンプがあります。名前が示すように、このステージはスピーチ フィルタから出力されるオーディオ信号を増幅します。この回路で使用される LF356 オペアンプ IC の電力出力能力を向上させるために、一対の相補型シリコン バイポーラ トランジスタがバッファ デバイスとして接続されています。ゲイン (または出力レベル) コントロールは、フィードバック パスのトリムポットの形で提供されますが、オペアンプ IC の非反転入力からグランドまでの抵抗値を変更して、出力レベルの範囲を調整することもできます。最終的に、増幅された信号は、大きな値の電解コンデンサを介して出力トランスの一次側に結合されます。二次側で生成された信号は、デコーダ パスの最終出力であり、これで電子回路のこの部分の説明は完了します。
前述のように、今説明したエンコーダ パスとデコーダ パス回路に加えて、トーキング ボックスのもう 1 つの主要な回路要素は、最初の 2 つのタイミングを制御するために使用されるクロック ジェネレータです。この回路の概略図は、図 7 の「選択可能な周波数 TTL クロック ジェネレータ回路」に示されています。この回路は基本的に、関連するディップスイッチで設定された値によって分周係数が決定されるプログラム可能な分周器チェーンを駆動する水晶制御発振器で構成されています。したがって、プログラム可能な分周器は、広範囲のデータ クロック レートに合わせて非常に簡単に構成できます。実際、柔軟性のために、このクロック レートは、接続インターフェイスを介して関連するコンピューターによって選択できるように設定できます。
プリント基板上の最終的な電子回路部品は、コンピュータ インターフェイスで使用される正負の電圧レギュレータと RS232 レベル コンバータ IC で構成されるサポート要素です。これらの部品を含む回路図は、図 B (RS232 インターフェイス回路と電圧レギュレータの図) に示されています。
デルタ変調器が一般的にどのように動作するか、さらにこの変調器が具体的にどのように動作するかを確認した後、実際のハードウェアがどのように実現され、物理的に構築されるかを見てみましょう。
上で説明した電子回路はすべて、1 枚の両面プリント基板に収められています。この基板の片面は主にグランド プレーンとして使用され、デジタル回路とアナログ回路を近接して配置したり、混在させたりすることができます。プリント配線基板の両面の回路トレースのポジ画像が、図 9 (CVSD コーデック プリント基板レイアウト) に示されています。カードは両面、つまり基板の前面と背面の両方に導電パスがありますが、レイアウトでは 2 つの面を接続するためにメッキ スルー ホール (導電ホール) を使用する必要がないことに注意してください。これはもちろん、プロジェクトで使用するために提案されている回路基板を実験者が簡単かつ安価に複製できるようにするためです。部品リストに示すように、メッキ スルー ホール付きの完成回路基板とアートワークのフィルム コピーが入手可能です。
前面と背面の回路レイアウト自体の両側の周辺領域に、位置合わせターゲットが用意されていることに注意してください。まず、このアートワークを各面のフィルム画像として (通常はネガとして) 持ち上げ、各ケースにこれらのターゲットが含まれていることを確認します。次に、これらのターゲットを使用して、前面と背面のフィルム画像を互いに重ねて位置合わせし、互いに所定の位置に貼り付けます。次に、丸い紙パンチを使用して、両方のフィルム シートに同時に 3 つの別々の位置合わせ穴を開けます。回路アートワークの領域外の場所に穴を開けるように注意してください。これらの位置合わせ穴があると、露出する回路基板材料をサンドイッチのようにその間に置いた状態で、これらの穴に適切なピンを配置して前面と背面のフィルム シートを互いに位置合わせできるようになります。これにより、回路カードの 2 つの面の前面から背面への位置合わせが簡単になります。このような位置合わせピンは、精密なサイズでプリント回路サプライ ハウスから市販されていますが、経験上、適切なサイズの成形ロッドのようなものが入手できない場合は、鉛筆またはサイズに合わせて削ったダボで十分です。サポートされている穴、つまりコンポーネント リードが通る穴のほとんどには、68 番のドリル サイズで十分です。例外は、37 番のレギュレータ取り付け穴と、直径 3/16 インチのフォノ コネクタ取り付け穴です。
プリント基板のコンポーネントの取り付けと組み立ての詳細を示すために、2 つの図が使用されています。最初の図 10 (CVSD コーデック回路基板コンポーネントの組み立て図) は、基板に取り付けてはんだ付けする部品の配置を示しており、回路図内のさまざまなラベル付きポイントの位置も示しています。これらのラベル付き回路位置の一部は、テスト ポイントとして使用する接続として機能し、その他の位置はさまざまな構成オプションを固定するためのものです。
2 番目の図。図 11 の CVSD コーデック回路基板の「Z ワイヤ」位置図は、カードの上部またはコンポーネント側ではんだ付けする必要がある回路基板の穴の位置を詳細に示しています。この手順は、基板にメッキされたスルー ホールがなく、部品リストに示されている基板にそのような穴がある場合にのみ必要であることに注意してください。この穴の位置にコンポーネント リードがある場合は、基板の両側ではんだ付けします。この穴にコンポーネント リードが通っていない場合は、ワイヤ リードを穴とクリンチに通し、両側で基板にはんだ付けします。回路基板の片側からもう一方の側への導電性ビアまたはパスを実現するこの方法は、ジャンパーの見た目が文字どおり粗雑であることから「Z ワイヤ」と呼ばれることが多く、図 11 のタイトルもこのことから来ています。回路基板の導体側にはんだ付けする必要がある穴はどれも盲穴ではなく、つまりコンポーネントを取り付けた状態ではアクセスできない穴ではないことに注意してください。これにより、メッキされたスルーホールやジャンパーをほとんど必要としない自作のプリント基板を使用して、プロジェクトの回路を簡単に組み立てることができます。
RS232 コネクタ自体は、上段のピン (つまり 1 番から 13 番) をボードの上面またはコンポーネント側にはんだ付けし、下段のピン (つまり 12 番から 25 番) をボードの背面側にはんだ付けします。
CVSD の動作の電子原理とプロジェクト回路基板の物理的な構成について説明しました。次に検討するのは、デバイスを関連するコンピューターに接続するために必要なソフトウェアです。
はじめに述べたように、トーキング ボックスは、接続されたサポート コンピュータへの同期モデムのように見えます。 これまで、プロジェクト回路に出入りする 5 つのデジタル信号パスについて説明しました。 これらは、もちろん、デコーダへの 1 つとエンコーダからの 1 つの 2 つのデータ パス、2 つの関連するクロック信号、およびエンコーダへの強制アイドル入力です。 その他のオプションの物理インターフェイス信号については、次のセクションのアプリケーション例で説明します。 ただし、次の説明はデータ交換操作自体のプログラム的な側面のみを対象としているため、これらの 5 つの信号ラインだけが、関連するコンピュータのシリアル I/O ポートとの間で接続されているものと想定します。 この相互接続のハードウェア仕様は、図 12 (CVSD ボード使用時の SIO デバイス配線図) に詳細に示されています。
以下の説明では、リスト 1 の CVSD ドライバ プログラムというソフトウェア ルーチンを参照します。このプログラム リストには、Intel 8251 互換シリアル I/O デバイス (USART) を制御するために必要なルーチンのモジュールと、Zilog SIO 互換シリアル I/O デバイスを制御するために必要なモジュールの両方が含まれています。ドライバ モジュールを適切に選択すると、これらのデバイスはいずれも Talking Box の要件に適した同期モードで簡単に操作できます。ソース コードはすべて Intel 8080 アセンブリ言語で記述されており、モジュール間の使用の選択は等式ステートメントによって行われます。
USART と SIO ソフトウェア ドライバー モジュールにはそれぞれ、コンピュータとエンコーダ/デコーダ間のデータ交換に直接関係する 4 つのメイン ルーチン、つまりエントリ ポイントが含まれています。これらの 4 つのエントリ ポイントは、INUART ルーチン、SERIN および SEROUT ルーチン、および GETSYNC ルーチンです。
どちらの方向にもデータを転送するために初めて使用する前に、ユーザーはまずシリアル I/O デバイス自体を同期モードで動作するように初期化するか、ソフトウェアで構成する必要があります。これは、INUART というルーチンを呼び出すことによって行われます。どちらのモジュールでも、この命令シーケンスは基本的に I/O デバイスの制御レジスタをロードして、パリティ ビットを追加せずに 8 ビット (バイト幅) のデータ文字で動作するようにし、シリアル ビット ストリーム内で一致するパターンのテンプレートとして 1 つの文字 (SYNC 文字と呼ばれることが多い) を使用して、文字境界での同期が検出されたと想定します (同期検出と呼ばれる)。
ほとんどの同期通信には、非同期または文字指向のシリアル通信プロトコルでよく見られる開始ビットや停止ビットなどの文字フレーミング ビットがないことに注意してください。代わりに、文字を形成する各ビットは、別の信号コネクタ パスで提供されるタイミング信号によってシリアル デバイスに転送されたり、シリアル デバイスから転送されたりします。文字の境界は、クロックされたビット ストリームから適切に定義された 1 文字あたりのビット数をカウントすることによって決定されます。ほとんどの「実際の」、つまり同期電話モデムのデータ転送アプリケーションは、データ ストリームの定期的な再同期や、各ブロックの内容のエラー チェックなどを可能にするために、転送の間に一時停止しながら、データ文字をブロック単位で送受信します。そのため、明らかな理由から、同期方式はメッセージ指向のシリアル通信プロトコルと呼ばれることがよくあります。
SIO または USART デバイスのいずれかが初期化され、動作状態になると、どちらもソフトウェアで比較的簡単に制御できます。どちらの場合も、SERIN (ポートから文字を取得) ルーチンと SEROUT (ポートに文字を出力) ルーチンは、単純な非同期アプリケーションの場合と同じです。したがって、文字の入力および出力ルーチンには、文字が受け入れまたは配信される準備ができているかどうかを判断するために、I/O デバイスから繰り返し読み取られるステータス バイト内のビット レベルのループ テストのみが含まれます。このテストが最終的に満たされると、文字自体が実際にシリアル ポートから読み取られるか、シリアル ポートに書き込まれ、その後ルーチンが終了して呼び出し元に戻ります。
残りのドライバ ルーチンは、GETSYNC というラベルの付いたものです。このルーチンは、どちらの I/O デバイスを選択してもほぼ同じ機能を実行します。このエントリ ポイントは通常、録音サイクルの開始時に呼び出され、エンコーダからのオーディオ データの実際の入力を開始します。このタスクでは、ルーチンは最初にエンコーダへの強制アイドル入力を true に保持し、これにより、シリアル I/O デバイスが同期文字に一致するビットの文字列を検出するまで、エンコーダは無音を表す同じ 1 と 0 の交互のビット シーケンス出力を生成します。この文字の存在のテストが満たされると、強制アイドル信号ラインはすぐに false に返され、エンコーダはシリアル ポートにオーディオ データを送信できるようになります。次に、ルーチンが終了する前に、シリアル ポートがこのデータを受信するように設定されます。一部のアプリケーションでは、使用されるこのビット パターンの値 (つまり、同期文字) が変更され、たとえば信号波形の特定の場所に対応する一致するシーケンスがハードウェアで検出されたときにオーディオ録音を開始できることに注意してください。
これらの 4 つのハードウェア ドライバー プリミティブ ルーチンは、オーディオ データをコンピューターとの間で物理的に転送するタスクを実行するためにアプリケーション プログラムによって呼び出されます。次のセクションでは、プロジェクト ボードとサポート コンピューターでこれらのルーチンを使用するアプリケーションの例をいくつか示します。
著者が使用した Talking Box デモ プログラムは、上記のドライバー ルーチンを採用し、図 13 (CVSD コーデック回路基板デモ プログラム コマンド メニュー) に示すコマンド メニューからタスクを選択して実行できます。このプログラムは CP/M オペレーティング システムで実行され、8080 (自作) および Z80 ベース (Televideo TS802H) のマイクロコンピュータ システムの両方でテストされています。このプログラムのアセンブリ ソース コードは、リスト 2 (CVSD コーデック回路基板デモ プログラム) に示されています。[-optional including]
このコマンド表からわかるように、プログラムは、オペレータがローカルのマイクとスピーカーのペアまたは電話回線から音声を録音および再生できるように設定されています。デモ プログラムと Talking Box を備えたコンピュータを交換電話ネットワークに接続するために使用する相互接続構成は、データ アクセス構成 (DAA) と呼ばれるデバイスに基づいています。著者が使用する特定のデバイスは、古い (1976 年製) Bell Telephone Type 1001F データ カプラですが、DAA 機能を複製する新しい FCC Part 68 登録ハイブリッド モジュールは、Cermetek (CH1810 Direct Connect Protective Hybrid、または DCPH、参考文献を参照) などの会社から 20 ドル弱で入手できます。これらのモジュールは、機能的にはまったく同じ接続を提供しますが、サイズが大幅に小さく、使いやすさが大幅に向上しています。これは、別の筐体で壁に掛けるのではなく、デバイス内に取り付けるように設計されています。DCPH モジュールは CMOS ロジック レベルの信号パスを採用していますが、DAA には RS232 信号レベルの要件があることに注意してください。 DAA または DCPH は、電話が鳴っていることを通知し、コンピュータがデバイスのオンフック/オフフック (または応答/切断) 状態を制御し、電話回線へのオーディオの適用または受信を制御できるようにします。どちらも、いわゆる課金遅延タイマー、信号過負荷保護、回線分離、保護、および電話回線を捕捉してダイヤル パルス (つまりコール アウト) する機能を提供します。DAA または DPCH と Talking Box をホスト コンピュータに接続するために使用される物理的な配線は、図 14 (CVSD ボードと DAA からコンピュータへの配線図) に示されています。
デモ プログラムでは、コンピュータがローカルおよび電話からオーディオを録音および再生できるだけでなく、オーディオ信号を表すメモリ領域の内容を表示および変更するルーチン、すべてをプリセット (SYNC) 文字値にクリアするルーチン、およびホスト コンピュータ システムのディスク ドライブからこのオーディオ メモリの内容を保存または読み込むルーチンも用意されています。また、プロジェクトで使用されるシリアル I/O ポートを初期化し、SYNC 文字値を変更し、ユーザー定義の制御出力 (フラグ ビットと呼ばれる) 信号を高または低に設定することもできます。この出力信号は、図 7 および 8 に示すように、コンピュータの制御下にあるエンコード/デコード シリアル クロック レートのペアから選択するために使用できます。最後に、プログラムは、オシロスコープの表示をトリガーするなど、各再生サイクルの開始時に出力される同期パルス信号も提供します。
明らかに、このプログラムとそのルーチンのいくつかは、数多くの便利なデバイス アプリケーションの核となることができます。プロジェクト システムがすぐに実行できる数多くの機能の中には、コンピューター化された電子音声メッセージ システムや留守番電話としての使用、保存された音声からデータ サンプルとして異音 (または話者依存の音素例) を抽出して再生する機能、これらの異音や過渡的な音声周波数信号などを分析用に保存して (オシロスコープで) 表示する機能、後で再生できるように単語や文全体をディスクに保存する機能などがあります。
このように、Talking Box は、コンピューターで音声やその他のオーディオ信号をデジタル化して再生するための、構築が簡単で使いやすいプロジェクトであることがわかります。
著者は、このプロジェクトの実現に向けて多大な支援と貢献をしてくださった WH Kerr 氏、EP Norwood 氏、CP Quinn 氏に特に感謝します。
Radio Electronics 誌に購入された記事はこれで終わりです。次は Motorola の CVSD コーデック データ シートのコピーです。このドキュメントは非常に興味深く、有益です。
上で紹介した私たちの長文が、皆さんにとって有益であったり、興味を持たれたりしたなら幸いです☺ 真面目な話、コメント、批評、提案はいつでも歓迎します。皆さんに神のご加護がありますように。