(実用的な詳細)クイックスタート北斗ショートメッセージRDSSプロトコル/北斗プロトコル

Beidou Short Message Protocol(略してRDSSプロトコル)は元々バージョン4.0でしたが、使いにくいため、2015年頃にさらに包括的で使いやすい2.1プロトコルが導入されました。
RDSS 2.1プロトコルのステートメントはすべて、ドル記号$で始まり、英語の文字と*を区切り文字として使用し、キャリッジリターンとラインフィードで終わります\ r \ n。主に次の5つのコマンドが使用されます
。1。カード番号を読み取り
ます。1。シングルチップマイクロコンピューターを使用して、この文をRDモジュールに送信します。$ CCICA、0,00 * 7B \ r \ n
"CCICA"-コマンドキーワード北斗カード番号を読みます。
「0」-ローカル暗号化および復号化モジュール情報を
監視します(重要ではありません)「00」-従属ユーザー情報フレーム番号(重要ではありません)
「7B」-排他的またはチェックバイト。$と*の間のすべてのバイト($と*を除く)をXORしてチェックバイトを取得し、それを16進数に変換して、この16進数の上位4桁と下位4桁を取得します。たとえば、チェックバイトが16進数に変換された後は、0X07になり、ここに07と記述します。0は省略できません。

2. RDモジュールは、次のようにマイクロコントローラーに応答します。$ BDICI、0242286,00242286,0000011,6,60,3、N、0 * 38 \ r \ n
"BDICI"-コマンドキーワード。
「0242286」-北斗カード番号、7桁。
「00242286」-シリアル番号(重要ではありません)
「0000011 」-ブロードキャストアドレス(重要ではありません)
「6 」-ユーザーの特性を識別します。(重要ではありません)0はコマンドマシン、1はクラス1ユーザーマシン、2はクラス2ユーザーマシン、3はクラス3ユーザーマシン、4はコマンドユーザーマシン(ID認証用)、5はクラス1ユーザーマシン(ID用)を意味します認証)、6はタイプ2ユーザーマシン(ID認証用)を意味し、7はタイプ3ユーザーマシン(ID認証用)を意味します。
「60」-北斗カードのサービス頻度。60は北斗カードが60秒ごとに発行されることを意味します。
「3」-通信レベル(重要ではありません)
「N」-暗号化マーク。(重要ではありません)Eは暗号化されていることを意味し、Nは暗号化されていないことを意味します。
「0」-下位ユーザーの数。(重要ではありません)通常は0です。
「38」-XORチェックバイト。

Beidouカードが検出されない場合、RDモジュールは次のように応答することに注意してください:
$ BDICI、0000000,00000000,0000000,0,0,0、N、0 * 0B

2.信号ステータスの読み取り
1.シングルチップマイクロコンピューターを使用して、次の文をRDモジュールに送信します。$ CCRMO、BSI、2,0 * 26 \ r \ n
"CCRMO"-命令キーワード。
「BSI」-デフォルトパラメータ(重要ではありません)
「2」-指定された文を開きます(重要ではありません)
「0」-文の出力頻度。0は1回だけ出力することを意味します。1は、1秒に1回の出力を意味します。
「26」-XORチェックバイト。

2. RDモジュールは、次のようにマイクロコントローラーに応答します。$ BDBSI、08,01,4,4,0,0,1,0,1,4,0​​,0 * 53 \ r \ n
"BDBSI"-命令キーワード。
「08」-応答波の速度(読者は応答波の速度と呼ばれるものを気にする必要はありません。重要ではありません)
「01」-時差波の速度(読者はいわゆる時差を気にする必要はありません)波の速度、それは重要ではありません)
次は10の波の速度の信号値です。0が最も弱く、4が最も強くなります。波の速度が4の場合は、信号が良好であり、ポジショニングの適用とメッセージの送信に使用できることを示します。
 「53」-XORチェックバイト。

3.ポジショニングのアプリケーション
RDSSポジショニングは、100メートルの精度でアクティブポジショニングに属します。北斗のパッシブポジショニング精度は通常5メートル以内です。
そのため、RDSS測位は一般的に主な測位方法としては使用されませんが、RDSSは通信として使用され、北斗パッシブ測位モジュールが測位として使用されます。

1.シングルチップマイクロコンピューターを使用して、この文をRDモジュールに送信します。$ CCDWA、0000000、V、1、L ,, 0 ,,, 0 * 65 \ r \ n
"CCDWA"-コマンドキーワード。
「0000000」-これはデフォルトで使用されます(重要ではありません)
「V」-通常の位置(重要ではありません)
「1」-標高なし(重要ではありません)
「L」-通常の標高表示(重要ではありません)
「0」-アンテナの高さ、デフォルト0を使用(重要ではありません)
「0」-アプリケーションの頻度。デフォルトでは、0はポジショニングに1回だけ適用されることを意味します。
「65」-XORチェックバイト。

2. RDモジュールは、MCUの命令が正常に実行されたかどうかを応答します。たとえば、$ BDFKI、DWA、Y、Y、0,0060 * 0A \ r \ n
"BDFKI" --- instructionキーワード。
「DWA」-キーワード
「Y」-Yは命令が正常に実行されたことを意味し、Nは命令が失敗したことを意味します。 
「Y」-Yは周波数設定が成功したことを意味し、Nは周波数設定が失敗したことを意味します(重要ではありません)
「0」-エミッション抑制プロンプト(重要ではありません)
「0060」-周波数待機時間。再送信にかかる秒数を示します。
「0A」-XORチェックバイト。

3.数秒以内に、衛星は測位情報をRDモジュールに応答し、次にRDモジュールは次のような文をマイクロコントローラーに出力します:$ BDDWR、1,0242286,021549.65,2240.4051、N、11402.5601、 E、47、M、-3、M、1、V、V、L * 1F \ r \ n
"BDDWR"-ポジショニング応答コマンド。
「1」-測位情報のタイプ(重要ではありません)
「0242286」-ユーザーアドレスID 
「021549.65」-測位時間UTC。最初の02に8を追加して、東8区で北京時間を取得します。
「2240.4051」-緯度「
N 」-緯度方向。
「11402.5601」-経度「
E 」-経度方向。
「47」-地面の高さ
「M」-地面の高さの単位。Mはメートルを意味します。
「-3」-標高異常(重要ではない)
「M」-標高異常の単位、Mはメートル(重要ではない)を
意味します。「1」-1は100メートルの測位精度を意味し、0は20メートルの測位精度を意味します。
「V」-Vは非緊急測位を意味し、Aは緊急測位を意味します。(重要で
はありません「V」-Vは非多値解を意味し、Aは多値解を意味します。(重要ではありません)
「L」-Lは標高タイプが正常であることを意味し、Hは標高タイプが高いことを意味します(重要ではありません)
「1F」-XORチェックバイト。

4.情報の送受信
一般に、混合コーディングモードとコードコーディングモードが使用されます。
混合符号化モードを例にとると、メッセージの最初の文字は「A4」に固定され、各文字はシーケンスに従って大文字の16進数に変換されます。
16進数が16以下の場合は、上位に0を追加します。
英語は1バイトで表され、漢字は2バイトで表されます。たとえば、メッセージ「hello Beidou」を送信するには、次のようにします
。1。マイクロコントローラーを使用してこの文をRDモジュールに送信します。$ CCTXA、0242286,1,2、A468656C6C6FB1B1B6B7 * 7F
"CCTXA"-コマンドキーワード。
「0242286」-受信者アドレスID 
「1」-1は通常の通信、0は高速通信
「2」-2は混合コーディング、1はコードコーディング、0は漢字コーディング
「A4……。」-メッセージの内容を意味します。たとえば、hの16進数は68です。
 「7F」-XORチェックバイト。

その中で、
A4は混合コード化された識別子である1バイトとしてカウントされ、77バイトのユーザーコンテンツの後にそれを続けることができます。
68656C6C6FB1B1B6B7は9バイトとしてカウントされ、これらのユーザーコンテンツはGBKエンコーディングです。受信側もUNICODEデコードを使用している限り、ユーザーはUNICODEエンコーディングを使用することもできます。
コードエンコーディングを使用し、A4を削除する場合、上記の送信ステートメントは次のとおりです。$ CCTXA、0242286,1,1,1,68656C6C6FB1B1B6B7 * 09
コードエンコーディングも非常に主流のアプリケーションであり、78バイトのユーザーコンテンツを送信できます。
混合エンコーディングでは、バイトA4にマークを付ける必要があるため、77バイトのユーザーコンテンツしか送信できません。

2. RDモジュールは、MCUの命令が正常に実行されたかどうかを応答します。たとえば、$ BDFKI、TXA、Y、Y、0,0060 * 15 \ r \ n
"BDFKI" --- instructionキーワード。
「TXA」-通信アプリケーション
「Y」のキーワード-Yは命令が正常に実行されたことを示し、Nは命令が失敗したことを示します。 
「Y」-Yは周波数設定が成功したことを意味し、Nは周波数設定が失敗したことを意味します(重要ではありません)
「0」-エミッション抑制プロンプト(重要ではありません)
「0060」-周波数待機時間。再送信にかかる秒数を示します。
「15」-XORチェックバイト。

3.設定された受信者アドレスIDが自分自身の場合、数秒以内に衛星は情報をRDモジュールに転送し、RDモジュールは次のようにマイクロコントローラーに文を出力します。$ BDTXR、1,0242286 、2、、A468656C6C6FB1B1B6B7 * 46 \ r \ n
"BDTXR"-通信応答コマンド。
「1」-1は通常の通信(重要ではない)
「0242286」-送信者アドレスID 
「2」-2はメッセージ形式が混合送信であることを意味し、1はコード送信を意味し、0は漢字送信
「A4……」を意味します-メッセージ content
"1F"-排他的論理和チェックバイト。

送信側がコード化されている場合、受信後の文の出力もコードエンコード形式になります:
$ BDTXR、1,0242286,1 ,, 68656C6C6FB1B1B6B7 * 10 \ r \ n

4.ユーザーが北斗ショートメッセージを使用して情報を送信する場合、コンテンツは英語、漢字、または16進数にすることができます。
最大78の16進数/英語/数字、または39の漢字を送信できます。



5、現在の時刻を取得します

北斗衛星導航衛星が信号と時間を地上に放送しているので、RDSSは時間を取得することができます。したがって、取得時間は取得時間と同じであり、北斗ショートメッセージを送信する頻度を占めることはありません。

1.シングルチップマイクロコンピューターを使用して、次の文をRDモジュールに送信します。$ CCRMO、ZDA、2,0 * 21 \ r \ n
"CCRMO"-命令キーワード。
「ZDA」-デフォルトパラメータ(重要ではありません)
「2」-指定された文を開きます(重要ではありません)
「0」-文の出力頻度。0は1回だけ出力することを意味します。1は、1秒に1回の出力を意味します。
「21」-XORチェックバイト。
2. RDモジュールは、次のようにマイクロコントローラーに応答します。$ BDZDA、1,005407.00,29,09,2019、-8,00,0,0、Y * 04 \ r \ n
"BDZDA"-命令キーワード。
「1」モード表示。1はRDSSタイミング結果、2はRNSSタイミング結果
「005407.00」-UTC時間
「29 」-日
「09」-
「2019」-年「-8」-タイム 
ゾーン。東経は、国際日線に近い領域を除いて、通常は負の値として表されます。したがって、-8は東8ゾーンの
「00」を意味します-このタイムゾーンの分差(重要で
はありません)
「0」-タイミング補正値(重要ではありません)「0」-正確な表示。0は検出されず、1は0〜10ナノ秒、2は20〜20ナノ秒、3は20ナノ秒を超えます。
「Y」-Yは信号ロック、Nは信号ロック解除です。
「04」-排他的論理和チェックバイト

完全な情報のダウンロードリンク:https://pan.baidu.com/s/1rs8uAZQZePBV1tffaNqhjA抽出コード:xqsg

おすすめ

転載: blog.csdn.net/weixin_42172577/article/details/113051699