2017年03月28日

DiSEqCコントローラ

すごく久しぶりの更新になってしまいました。
二人目の子供も生まれ、いろいろと忙しい日々が続いております。

さて、通信衛星(静止衛星)は赤道上空に並んで配置されており、H-Hマウントと
呼ばれる一軸の回転装置を使っていろんな衛星の方向を向けることができます。
通信衛星のアンテナを切り替えたり、上記回転装置をコントロールするのに
DiSEqCというプロトコルが定められており、例えばDiSEqC1.0では4入力のスイッチ、
1.1では16入力、といったようにバージョンによって制御可能な装置が異なります。
H-Hマウントをコントロールするには1.2または1.3のDiSEqCが必要で、
DiSEqC1.2は西に回しなさい、東に回しなさい、止まりなさい、
今の場所を〇番に保存しなさい、〇番の位置に動かしなさい、といったコマンドで
制御し、DiSEqC1.3は直接何度の角度に回しなさい、というコマンドを送るようです。
一応、僕もDiSEqC 1.0,1.1,1.2,1.3対応のチューナーを持っているのですが、
どうも1.3での制御がうまくいかず(設定画面では制御するが衛星切り替えに反応しない)、
1.0と1.2の組み合わせだと1.0の命令が無視される、等チューナーのバグなのか、
DiSEqCスイッチとH-Hマウントの相性が悪いのか、思ったっ通りに動いてくれません。
さらに、Cバンドは本来のディッシュセンターについていますがKuバンドのLNBFは
少しオフセットして付いているためDiSEqC 1.3では思った位置に持っていけません。

なので、チューナーとDiSEqC機器との間に、コマンドの変換をするボックスでも
入れて、チューナーからはDiSEqC 1.2のコマンドのみ送ってボックスから
DiSEqC 1.3や1.0のコマンドに変換するようなことを考えています。

DiSEqCのプロトコルはシリアル通信ですが、スタートストップなしの8bit+パリティ
を22kHzでPWM変調というフォーマットで、通常のUSARTでは難しいのでFPGAで
組もうと思います。ちょうど手元にえすびさんのところで紹介されていたボードが落ちています(数年前に海外に住んでいた頃購入)ので
これでやってみようと考えているのですが、やはりハードウェアだけでは角度計算等、
難しいので何かしらのCPU-IPも入れたいと思っています。
候補は2つ。
・NiosII
・T80(Z80core)
本来ならNiosIIで行きたいのですが、このボード、10kB程度しかブロックRAMを持っていないので
NiosIIでCでプログラムを組むとHello Worldでもきついです。アセンブラで書けば
楽なのかもしれませんが、今からNiosIIのアセンブラを覚える気にもならず、
であればアセンブラが身についているZ80で行こうと思うのですが、三角関数の計算が
アセンブラで書ける自信もなく。ですが、乗算程度ならハードで組んでIOなり
メモリ領域にでも入れておけば簡単に計算させられますので計算式を調べてアセンブラだけで
何とかならないか検討中です。
posted by プー at 22:49| Comment(0) | 海外衛星放送 | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください