SS(スペクトラム拡散)モデム

 

2.4G帯の専用バンドを使用したSSモデムである。

無線区間最大400Kbps、RS-232Cインターフェース区間最大230Kbpsの転送レートを持ち、ピンポン方式で動作する。

チップ長最大127のSAWコンボルバ方式を用いており、メジャーとなっているIC方式のチップ長11のものに比べて、圧倒的に高品質のデータ転送が可能である。

 

 

    目次

 

アウトライン

インターフェース仕様

仕様

特徴

受信タイミング概要

パケット構成

通信手順

設定(ローカルコマンド)

回路構成

 

 

 

アウトライン

 

 

インターフェース仕様

プロトコル:   RS−232C、無手順、非同期半二重

信号レベル:   RS−232C標準叉はTTLレベル

転送速度:    9600/19200/38400/57600/115.2Kbps

モ ー ド:   データ8ビット/スタートビット1/ストップビット1/ノンパリティ

入出力端子:   8PMiniDIN

 

仕様

電源電圧:    DC5V叉はDC7〜12V

消費電流:    210mA typical/300mA max.

電源端子:    molex 2p: DC5V 又は

         Chg_Jack: DC7 〜 12V

基板外形:    140:L×80:W×35:H(mm)

重 量:     200(g)

入出力ケーブル: DSUB9P 又は DSUB25P

 

 

特徴

 

例えば通信ソフトが有れば、2台のパソコン間でファイルのやり取りが出来る。

アプリケーション・プログラムを準備すれば複数同士の接続も可能である。

 

余分なインターフェースやケーブルが不要のため、機器組み込みに便利である。

 

標準ロジックのDC5Vの他に7〜12Vの端子があるのでACアダプタ等も使える。

 

PN/PLL等IFの内部設定はRS-232Cを通して行う。

余分なスイッチ等が無いので小型化が可能になった。

又、組込み後も内部を開けないで設定変更が可能である。

 

無線区間のデータはパケットでやり取りされている。

このパケット長は2K/1K/512/256/128/64/32/16バイトの中から選択できる。

従って、電波の伝播状況に応じた効率の良い通信が行える。

ACK/NACK時や短いデータの場合は自動的に縮小される。

 

 

電波の伝播状況により発生する可能性の有るデータの重複などを次の手法で軽減している。

Key ID(フレーム及びパケットIDの組み合わせ)を管理することによる。

 

 

受信タイミング概要

下図は2端末間の送受信のやり取りの模式である。

 

 

t1:データ送信区間(同期区間+パケット長に依存)

t2:受信立ち上がり区間

t3:有効データ受信区間

 

データ送信区間に於いて意味のあるデータ転送区間は、相手側装置(ハード)の受信立ち上がり区間以降である。

 

従って相手側の受信立ち上がり区間に相当する間は、AGC安定及び同期用データとして、“1010…”のトグル繰り返しデータを送出する。(MKK標準)

この時間はそのまま伝送スループットの低下につながるため、極力短く出来るよう回路設計を行っている。

 

データ転送効率を上げる手段として、パケット長を長くすることが本システムでは可能であるが、あまり長くするとフェージングや他の障害の影響を受け易くなる。

 

 

パケット構成

 

      1. パケットはプリアンブルとデータ本体及びCRC及びSUMからなる。
      2.  

      3. プリアンブルは同期用のCode Sync.、データ開始を示すFrame Sync.、呼び出し符号(User’s ID)、Key ID及びデータ長を示すフレームData len.からなる。
      4.  

      5. CodeSync.は固定パターン繰り返し(10101010……)で、頭の何ビットかが失われても大勢に影響はしない。
      6. 受信の立ち上がりを待つ間持続する。

         

      7. FrameSync.はデータの始まりを示すフラグで、この間にビットのズレを補正して、次から始まるデータビットの再生に備える。
      8. パターンは31ビットM系列符号とし、次ぎの通りとする。(MKK)

        0001101110101000010010110011111

         

      9. 呼び出し符号は法令の規格に則った63ビット長とする。
      10. 詳細はMKKのRCR STD−33参照

         

      11. Key IDは送信フレームID1バイトとパケットID1バイトからなる。
      12. 詳細は次項の通信手順の後半に記述する。

         

      13. CRC/SUMはエラー検出用に付加されたデータで、SUMは全データの算術和の下桁4バイトの2の補数とし、CRC16のハードによる算術和と共に、受信側で送信データ末尾のそれらと照合する。

 

 

通信手順

下図はデータ送受信の手順の概要を示す。

 

 

RTS on/off:    制御線のスイッチ(データのやり取り無し)

DATA:     データ本体(PC側)又はデータパケット(無線側)

ACK:      肯定応答パケット(‘OK’)

NACK:     否定応答パケット(‘NG’)

LOCAL:    PCとI/F間のみの制御コマンド

          データとの区別をする為、頭に特徴的フラグを付加

          (‘#LOCAL$ $ #’)

 

無線部分の通信手順を以下に示す。

 

      1. PN符号、PLL(1及び2)、チップ長、転送レートは各インターフェース個別に事前に設定しておく。
      2.  

      3. インターフェースは待ち時間(アイドリング時)は常に受信状態にある。
      4. PC2側が既に何かの信号を受信してPNが一致していれば、これが終了するまでPC1側からの信号は受け付けできない。

         

      5. PC1からデータが来たとき、PC1側のインターフェースは他からの受信状態に無ければ、設定されたパケットを構成してSSにて送出する。
      6.  

      7. パケットデータを受けたPC2側のインターフェースは、ID(送出側ID)、データ長及びチェックサム等からエラーの判定をして、エラーが無ければACKを有ればNACKをPC1側に返す。
      8. また、エラーが無い場合はPC2に受信データを送出する。

         

      9. PC1側のインターフェースは、PC2側のACKが来れば続きのデータを、NACKが来れば同一データを再度SSにて送出する。
      10.  

      11. PC1側とPC2側間で同じやり取りを、データの終了まで繰り返す。
      12.  

      13. 終了検出は受け手側で次のような判断で行う。
      14. 1)パケット長が継続時(最大パケット長)より短くなったとき。

        最後のパケット長は普通短くなるので判断できる。

        例えば1バイトのみのデータ等は1回で終了と認識する。


        2)送り手からのタイムアウトを検出したとき。

        偶然にデータ長がパケット長の整数倍であったときなどに機能する。

        無線回線のエラーで中断した場合(エラー再送でも回復出来なかった場合)は、アプリケーションで判断する必要がある。

         

        以上が手順であるが、インターフェースを除いてPC間のみに着目した場合、PC同士は無手順であるのが特徴である。

         

      15. 本システムでは以上の他にkey IDという、送信フレームとパケットを管理するIDを用いて、データの2重化を防止している。
      16. Key IDは、送信フレームID(TXID)1バイトと、パケットID(PID)1バイトからなり、次のように動作する。

         

        TXID: 新規データが送出される毎に+1する。

        エラーによるリトライ時は変化しない。

         

        PID:  パケット送出毎に+1する。

        リトライ時にも更新される。

         

    解説)データ転送時に、データ本体が相手に受信されない場合に於いては救済の余地はないが、返信のACK/NACKの受信のみに支障を来たした場合には、システム全体の手順に例外措置を取っても何とかしたい。

    そこで、受信側でこれらのIDを次のように監視する。

     

    ・データ着信時にTXID/PIDをみて、前回のデータ着信時のそれと比較して、TXIDが異なっている場合は新規データとみなし、ACKを返すと共にRS232Cにデータを出力する。

    ・TXIDが同じ場合はPIDが異なっていれば、リトライの再送データと判断して、同様の処理をする。

    ・これ以外の場合は通信回線に重大なエラーがあって、続行しても正常なデータの伝達が出来ていないものと判断できる。

     

    この処理は、受信時に返しているACKが正確に相手に届いていないようなケースに有効となる。

 

TXID

PID

パケット長 以下のデータ

データ更新時

+1

0クリア

リトライ時

変化せず

+1

パケット長 以上のデータ

データ更新時

+1

0クリア

データ継続時

変化せず

0クリア

リトライ時

変化せず

+1

 

 

 

設定(ローカルコマンド)

機器の設定はローカルコマンドで行う。

設定可能なコマンド/パラメータは次ぎの通りである。

      1. PN符号
      2. PLL1
      3. PLL2
      4. チップ長
      5. RS232C転送速度
      6. SS転送速度
      7. テスト送受信
      8. 設定内容の読み出し
      9. 通信記録の読み出し
      10. 通信記録のリセット
      11. リトライ回数の設定
      12. パケット長の設定

 

コマンドの実行は通常RS-232Cで接続された端末を通して行う。

コマンドの内容はこの後の説明を参照するが、2種類の方法がある。

 

1.PN符号

コマンド:#Local$PNDAT$パラメータ#

パラメータ以外は半角ASCIIコード

パラメータ:(帰還タップ8ビット+初期値8ビット)×4=16バイト

帰還タップの位置と初期ロードデータの組み合わせになる。

下記に代表的な設定例を送受2組分示す。尚、この値はデフォールトの設定データとして、システムROMに書き込まれている。

タップ

0

1

0

0

0

0

0

1

初期値

1

1

1

1

1

1

1

1


タップ

0

0

0

0

0

0

0

0

初期値

0

0

0

0

0

0

0

0


タップ

0

1

0

0

0

1

0

0

初期値

1

1

1

1

1

1

1

1


タップ

0

0

0

0

0

0

0

0

初期値

0

0

0

0

0

0

0

0


 

  上記データとペアを組む設定。

タップ

0

1

1

0

0

0

0

0

初期値

1

1

1

1

1

1

1

1


タップ

0

0

0

0

0

0

0

0

初期値

0

0

0

0

0

0

0

0


タップ

0

0

0

0

0

0

0

0

初期値

1

1

1

1

1

1

1

1


タップ

0

0

0

0

0

0

0

0

初期値

0

0

0

0

0

0

0

0


PNのデフォールト値ペアの決定はDIP-SW1で行う。

ON端末/OFF端末

 

2.PLL1/2

1:2nd局発用

コマンド:#Local$PLL1D$パラメータ1#

パラメータ1:プリスケーラの16ビットと、分周比の19ビットの頭に5ビット長0fillを付加した24ビット(合計わせた5バイトをMSBから入れる。

1stプリスケーラ

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

1


1st分周比

0

0

0

0

0


0

0

1

0

1

1

0

0

1

0

0

0

1

1

1

0

0

0

0


 

2:1st局発用

コマンド:#Local$PLL2D$パラメータ2#

パラメータ2:プリスケーラの16ビットと、分周比の19ビットの頭に5ビットを0で埋めた24ビットの合わせた5バイトをMSBから入れる。

2ndプリスケーラ

0

0

0

0

1

0

1

0

0

0

1

0

1

0

0

1


2nd分周比

0

0

0

0

0


0

0

1

0

0

1

1

1

0

0

0

0

1

0

0

0

0

0

0


 

 

3.チップ長

コマンド:#Local$CHIPL$パラメータ#

パラメータ:チップ長イメージの031又は063又は127をASCII3バイトで入れる。

 

4.RS232C転送レート

コマンド:#Local$RSSPD$パラメータ#

パラメータ:転送レートイメージの096192384576115をASCII3バイトで入れる。

 

5.SS転送レート

コマンド:#Local$SSSPD$パラメータ#

パラメータ:転送レートイメージの13K26K51K103206をASCII3バイトで入れる。

転送レートはRS-232C側とは独立して設定できるが、RS232Cより高い転送速度を設定する必要がある。

 

6.固定パターンデータによる連続送信/受信モード

コマンド:#Local$TRXTG$パラメータ#

パラメータ:繰り返しデータ8ビットのイメージ(バイナリ1バイト)

HEX表記をする。

このコマンドを送り込んだ直後から、送信側では固定データによる繰り返しパケットが送信される。

送信のOFF時間は転送速度に関わらず、約0.5秒間の固定である。パケットのデータ構成は本仕様書通り(MKKのルール内)である。

 

受信したデータはそのまま受信側のRS-232Cから送出される。

受信側では送信キャラクタのOK/NGの判断は行わない。但し、データ本体を除くパケット単位でのエラー検出は通常通り行い、エラー数/パケット数の累積個数はカウントされ、メモリに記憶される。

このカウントデータの読み出し/リセットはローカルコマンドによって行う。

このカウントは通常のパケットと同じ扱いを受け、区別なく累積されるので、テストを行う前/後にカウント値のリセットを行っておくとよい。

 

受信/送信はDIPスイッチの1で決定(電源を切らないで設定)する。

ON:受信/OFF:送信

「通常モード」に戻す場合はリセットスイッチを押す。

 

7.設定内容の読み出し

コマンド:#Local$DREAD$パラメータ#

パラメータ:1バイトの任意データ(何でも良い)

 

設定内容の全てをRS-232Cから出力。出力フォーマットはコマンド表記。

 

8.通信記録の読み出し

コマンド:#Local$EREAD$パラメータ#

パラメータ:1バイトの任意データ(何でも良い)

 

エラーパケット数/通信パケット数をRS-232Cから出力(ASCII)

 

9.通信記録のリセット

コマンド:#Local$RESET$パラメータ#

パラメータ:1バイトの任意データ(何でも良い)

 

10.リトライ回数の設定

コマンド:#Local$RETRY$パラメータ#

パラメータ:1〜9の数値(ASCII)

 

エラー時の再送回数を設定

 

11.パケット長の設定

コマンド:#Local$PAKET$パラメータ#

パラメータ:016/032/064/128/256/512/1KB/2KBの数値イメージの文字(ASCII)

 

★Default(出荷時設定)への復帰

間違ってローカルコマンドを実行し、動作不能に陥った場合に行う。

DIP-SWを全てONにしてリセットを行った後、今度は全てOFFにしてリセットを行う。(転送速度などの設定で発生した場合、コマンドによる復帰は不能)

 

 

回路構成

ブロック図

 

アナログインターフェース端子(FPGA)

信号名

入出力

仕  様

TXD

入力

送信データ

RTS

入力

受信制御線

TXLE

出力

受信データ検出でLに制御

RXD

出力

受信データ

CTS

出力

送信制御線

PND

入力

PN設定データ(信号仕様参照)

PNC

入力

PN設定クロック(信号仕様参照)PLLと共用

PNLE

入力

PN設定イネーブル(信号仕様参照)

PLLD

入力

PLL設定データ(信号仕様参照)

PLLC

入力

PLL設定クロック(信号仕様参照)PNと共用

PLLE1

入力

PLL1イネーブル(信号仕様参照)

PLLE2

入力

PLL2イネーブル(信号仕様参照)

T/R

出力

送受信切替(H:送信)

DV0−1

分周比設定/下表参照

CP0−1

チップ長設定/下表参照

PW0−1

送信出力設定/別表参照

D7

仕様未定義

 

 

データ転送速度設定

DV0

DV1

CP0

CP1

分周比

チップ長

SS転送

RS232C

1/1

31

412Kbps

115.2Kbps

1/1

63

206K

115.2K

1/1

127

103K

57.6K

1/2

31

206K

115.2K

1/2

63

103K

57.6K

1/2

127

51K

38.4K

1/4

31

103K

57.6K

1/4

63

51K

38.4K

1/4

127

26K

19.2K

1/8

31

51K

38.4K

1/8

63

26K

19.2K

1/8

127

13K

9.6K

 

 

V25CPU端子

端子/信号名

入出力

仕  様

TXD0

出力

CH0送信データ(無線側)

RXD0

入力

CH0受信データ

CTS0

入力

CH0受信データ制御

TXD1

出力

CH1送信データ(PC側)

RXD1

入力

CH1受信データ

CTS1

入力

CH1受信データ制御

CRTL(外部制御)

出力

MREQ/RW/IOSTB

PT0−7

入力

DIP−SW/外部入力

P00

出力

DATA1/2用タイミングクロック

P01

出力

PN設定データ出力

P02

出力

PNデータロード信号

P03

出力

送受切替え

P04

出力

PLL設定データ出力

P05

出力

PLL1データロード信号

P06

出力

PLL2データロード信号

P07(ClockOut)

出力

外部出力(外部は全て準備のみ)

P10(NMI)

入力

デバッグ用

P11(INTP0)

入力

仕様未定義(割込用)

P12(INTP1)

入力

外部割り込み

P13(INTP2)

入力

予備

P14(INT)

入力

予備

P15(TOUT)

入力

予備

P16(SCK0)

出力

CH0受信データ制御(RTS)

P17(READY)

入力

予備

P20

出力

EEROM:CS

P21

出力

EEROM:CLK

P22

出力

EEROM:DI

P23

入力

EEROM:DO

P24

出力

予備

P25

出力

外部制御

P26

入力

外部入力

P27

出力

CH1受信データ制御(RTS)

 

送信出力設定

PW0

PW1

内   容

最小パワー

中間パワー/低め

中間パワー/高め

最大パワー