JP2007141127A - 通信プロトコル - Google Patents

通信プロトコル Download PDF

Info

Publication number
JP2007141127A
JP2007141127A JP2005336869A JP2005336869A JP2007141127A JP 2007141127 A JP2007141127 A JP 2007141127A JP 2005336869 A JP2005336869 A JP 2005336869A JP 2005336869 A JP2005336869 A JP 2005336869A JP 2007141127 A JP2007141127 A JP 2007141127A
Authority
JP
Japan
Prior art keywords
data
data string
message
header
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005336869A
Other languages
English (en)
Inventor
Takumi Morita
拓実 森田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawamura Electric Inc
Original Assignee
Kawamura Electric Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawamura Electric Inc filed Critical Kawamura Electric Inc
Priority to JP2005336869A priority Critical patent/JP2007141127A/ja
Publication of JP2007141127A publication Critical patent/JP2007141127A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

【課題】 多量の数値データを含むメッセージを送受信する通信システムにおいて、経済的かつ効率のよい通信を的確に行う。
【解決手段】 通信メッセージ11を数値データが含まれるデータ列12と、データ列12の先頭に付加されるヘッダ13とで構成する。データ列12中の数値データを、ASCIIコードに変換することなく、そのまま16進数の数値で表す。ただし、データ列12で使用可能な数値に上限値を設定する。そして、ヘッダ13にその上限値を超える特定の数値、例えば、2バイト16進数の最大値である「0xFF」を4回連続させて指定する。
【選択図】 図2

Description

本発明は、通信メッセージをコンピュータが認識可能な形式に変換するプログラム、特に、数値データを含むメッセージの通信に適した通信プロトコルに関する。
従来、通信ソースをASCIIコードに変換し、多数のASCIIコードを並べて通信メッセージを構成する通信プロトコルが知られている。メッセージを送受信する上で、メッセージの始めと終わりを認識することは重要であり、特に、メッセージの始まりを認識できないと、コンピュータは受信したメッセージを解読することが困難となる。ASCIIコードでは、図5に示すように、メッセージの先頭に付される“STX”に「0x02」が用意され、メッセージの末尾に付される“ETX”に「0x03」が用意されている。このため、コンピュータは“STX”,“ETX”をデータ中の他の文字(数字:「0x3*」、英文字:「0x4*」,「0x5*」)と区別して認識できる。
しかし、ASCIIコード変換を行う通信プロトコルにおいて、16進数の数値をそのまま1バイトで表すと、コンピュータが16進数の数値データ「0x02」を“STX”として誤認する可能性がある。そこで、従来の通信プロトコルは、図6に示すように、メッセージ51の先頭に“STX”を付加し、末尾に“ETX”を付加し、データ列52中の複数の数値データをそれぞれ二つのASCIIコードに変換している。この方式によれば、例えば、“データ1”の数値「0x02」が「0」を表すASCIIコード「0x30」と、「2」を表すASCIIコード「0x32」とに分割されるため、“STX”を“データ1”と混同する可能性がなくなる。
なお、特許文献1には、7ビットのASCIIコードを6ビットの短縮コードに変換することで、文字データを圧縮する方法が記載されている。特許文献2には、複数の文字列をASCIIコード中の制御コードに割り当てて符号化する方法が記載されている。
特開2005−31868号公報 特開平11−85459号公報
ところが、従来の通信プロトコルによると、データ列52中の数値データを二つのASCIIコードに変換しているので、1バイトの数値データを送るのに2バイトの電文長が必要になる。このため、多量の数値データを含むメッセージ51を送受信する際に、電文53の全長がいたずらに長くなり、通信時間がかかり、有料回線を使用する場合にパケット料等の通信費が高くつく問題点があった。また、多量の数値データをASCIIコードに変換すると、制御プログラムの負担が重くなるため、コンピュータによる他の処理が遅くなる不都合もあった。
そこで、本発明の目的は、コンピュータが数値データを含むメッセージの通信を効率よく行うことができる通信プロトコルを提供することにある。
上記の課題を解決するために、本発明の通信プロトコルは、通信メッセージをコンピュータが認識可能な形式に変換するプログラムであって、通信メッセージを数値データが含まれるデータ列と、データ列の先頭に付加されるヘッダとで構成し、データ列中の数値データを特定値を除く16進数の数値で表し、ヘッダに該特定値を表す16進数の数値を指定することを特徴とする。
ここで、ヘッダに指定する16進数の数値は、データ列中に発生し得ない特定の数値である。該特定値の選定にあたり、好ましくは、次の手段を採用できる。
(1)データ列中で使用可能な数値に上限値を設定し、ヘッダにその上限値を超える特定値を指定する。この場合、上限値は、特定の数値や桁数に限定されず、通信プロトコルの適用分野、又は該プロトコルが扱う数値データの種類等に応じて適宜に設定できる。
(2)ヘッダに16進数の特定値を複数回連続させて指定する。特定値及びこれを連続させる回数は、特に限定されず、通信プロトコルの適用分野、又は数値データの種類等に応じて適宜に選択できる。
(3)例えば、特定値に2バイト16進数の最大値である「0xFF」を用い、ヘッダに該数値を複数回連続させて指定することができる。
また、本発明は上記通信プロトコルに次の手段を加えて実施することも可能である。
(4)データ列中にメッセージの長さを示す指標となる16進数の数値を付加する。
(5)データ列中にノイズ等による通信エラーを示す16進数の数値を付加する。
本発明の通信プロトコルは、データ列中の数値データを16進数の数値で表すので、1バイトの数値データを分割することなく1バイトのままで送受信できる。このため、メッセージの長さを短くし、通信時間を短縮して、通信費を節約できるとともに、ASCIIコードへの変換処理を不要にして、コンピュータの負担を軽減できる。また、データ列中に発生し得ない特定値をヘッダに指定するので、コンピュータが数値データをヘッダと誤認する可能性もなくなる。従って、本発明の通信プロトコルによれば、特に多量の数値データを含むメッセージを送る場合に、経済的かつ効率のよい通信を的確に行うことができるという効果がある。
以下、本発明を実施するための最良の形態を図面に基づいて説明する。図1に示すように、この実施形態の通信システム1は、ネットワーク2に接続された複数のコンピュータ3が通信プロトコル4を用いて主に数値データからなるビジネスメッセージの送受信を行うように構成されている。通信プロトコル4は、通信プログラムの一部として各コンピュータ3に実装され、受信したメッセージを該コンピュータ3の他のプログラムが認識可能な形式に変換する。以下に、通信プロトコル4の具体的な機能について幾つかの実施例をあげて詳細に説明する。
図2に示すように、実施例1の通信プロトコルでは、メッセージ11が多数の数値データを並べたデータ列12と、データ列12の先頭に位置するヘッダ13とで構成されている。データ列12の数値データは、ASCIIコード等への変換を行わずに、そのまま16進数の数値で表されている。例えば、送信先の“アドレス”は「0x80」、“コマンド”は「0xA1」、“データ1”は「0x02」でそれぞれ表現されている。そして、ヘッダ13に2バイト16進数の最大値である「0xFF」が指定されている。
しかし、「0xFF」はデータ列12の中に多数紛れ込んでいるはずであるから、実施例1の通信プロトコルは、データ列12で使用可能な数値に上限値を設定し、ヘッダ13にその上限値を超える特定の数値を指定する。具体的には、データ列12中の数値を10進数の8桁までに制限する。10進数の「99,999,999」は16進数の「0x5F5E0FF」である。これを上限値に設定すれば、データ列12に「0xFF」が連続して現れる最大値は「0x4FFFFFF」(83,886,079)であり、「FF」が3回連続する。従って、ヘッダ13に「FF」が4回連続する特定の数値、つまり「0xFFFFFFFF」を指定すれば、ヘッダ13と数値データとの混同を回避できる。
この場合、実際の電文14がヘッダ13の表示に4バイトを必要とするため、“STX”にASCIIコードの「0x02」(図6参照)を指定する従来と比較し、ヘッダ13の電文長が4倍となる。しかし、実施例1の通信プロトコルによれば、例えば、ASCIIコードで200バイトを要したデータ列12の電文長が半分の100バイトまで圧縮される。このため、電文14の全長が差し引き96バイトに相当する長さだけ短くなる。従って、メッセージ11に含まれる数値データの量が増えるほど、通信時間を短縮でき、有料回線を利用する場合にパケット料等の通信費を節約できて、経済的かつ効率のよい通信を的確に行うことができる。
図3に示すように、実施例2の通信プロトコルでは、メッセージ21がデータ列22とヘッダ23とで構成され、データ列22の先頭付近に“データ長”を表すセル25が設けられている。“データ長”はデータ列22の全長をバイトで示すデータであり、データ列22の他の数値データと同様、16進数の数値でセル25に表されている。例えば、データ列22に99の数値データが含まれている場合、セル25に自身を含む“データ長”が「0x64」(10進数の100)で表記される。
こうすれば、セル25のデータに基づいてコンピュータ3が受信した電文24の終わりを正しく認識できる。従って、ASCIIコードの“ETX”をメッセージ21から省略したとしても、通信になんらの支障をきたさない。その他の構成、作用効果は実施例1と同じである。
図4に示すように、実施例3の通信プロトコルでは、メッセージ31がデータ列32とヘッダ33とで構成され、データ列32の末尾に“BCC”を表すセル35が設けられている。“BCC”は電文34にノイズ等による通信エラーが生じていないかどうかを示すデータであり、データ列32の他の数値データと同様、16進数の数値でセル35に表記されている。ここで、“BCC”の計算結果が「0xFF」となる可能性がある。さらに偶然に、“BCC”直前の“データ99”が「0x4FFFFFF」であった場合、“BCC”と合わせて「FF」が4回連続し、これをコンピュータ3がヘッダ33と誤認するおそれがある。
従って、実施例3の通信プロトコルは、“BCC”を付加する場合に、「FF」が5回連続する特定の数値、つまり「0xFFFFFFFFFF」をヘッダ33に指定する。こうすれば、“BCC”によるエラー表示機能を備えた通信システム1において、ヘッダ33と数値データとの混同を確実に回避することができる。その他の構成、作用効果は実施例1と同じである。
本発明の通信プロトコルが適用される通信システムの概略図である。 実施例1の通信プロトコルを示す機能図である。 実施例2の通信プロトコルを示す機能図である。 実施例3の通信プロトコルを示す機能図である。 従来の通信プロトコルが使用するASCIIコード表である。 従来の通信プロトコルを示す機能図である。
符号の説明
1 通信システム
2 ネットワーク
3 コンピュータ
4 通信プロトコル
11,21,31 メッセージ
12,22,32 データ列
13,23,33 ヘッダ
14,24,34 電文

Claims (1)

  1. 通信メッセージをコンピュータが認識可能な形式に変換するプログラムであって、通信メッセージを数値データが含まれるデータ列と、データ列の先頭に付加されるヘッダとで構成し、データ列中の数値データを特定値を除く16進数の数値で表し、ヘッダに該特定値を表す16進数の数値を指定することを特徴とする通信プロトコル。
JP2005336869A 2005-11-22 2005-11-22 通信プロトコル Pending JP2007141127A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005336869A JP2007141127A (ja) 2005-11-22 2005-11-22 通信プロトコル

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005336869A JP2007141127A (ja) 2005-11-22 2005-11-22 通信プロトコル

Publications (1)

Publication Number Publication Date
JP2007141127A true JP2007141127A (ja) 2007-06-07

Family

ID=38203878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005336869A Pending JP2007141127A (ja) 2005-11-22 2005-11-22 通信プロトコル

Country Status (1)

Country Link
JP (1) JP2007141127A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205369A (ja) * 2008-02-27 2009-09-10 Omron Corp Rfidシステムにおける通信制御方法およびrfidタグ用の交信制御装置
JP2020039115A (ja) * 2018-08-31 2020-03-12 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド インテリジェント運転自動車のデータ伝送方法、装置及びデバイス

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205369A (ja) * 2008-02-27 2009-09-10 Omron Corp Rfidシステムにおける通信制御方法およびrfidタグ用の交信制御装置
JP2020039115A (ja) * 2018-08-31 2020-03-12 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド インテリジェント運転自動車のデータ伝送方法、装置及びデバイス
US11374688B2 (en) 2018-08-31 2022-06-28 Apollo Intelligent Driving Technology (Beijing) Co., Ltd. Data transmission method and device for intelligent driving vehicle, and device

Similar Documents

Publication Publication Date Title
CN105450232A (zh) 编码、解码方法以及编码装置和解码装置
US5912752A (en) Method and apparatus for improving serial infrared asynchronous communication performance
JP2007141127A (ja) 通信プロトコル
JPH10233820A (ja) データ伝送方法
CN101196861A (zh) Dma传送设备、数据传送控制方法和数据传送控制程序
KR100927092B1 (ko) 피엘시 네트워크에서 파라미터 설정 방법
CN105207747A (zh) 一种基于hid协议的数据传输方法
CN102594989A (zh) 数据通信方法及系统、终端
CN111064560B (zh) 数据加密传输方法及装置、终端、数据加密传输系统
JPH03190498A (ja) リモートコントロール方法
JP2008257564A (ja) 印刷システム及びそのファームウェア更新方法
JP2786161B2 (ja) データ転送方法
KR20030033411A (ko) 직렬 인터페이스에서 바이너리 데이터의 아스키데이터로의 변환방법
CN115499523B (zh) 一种业务交互系统、方法、电子设备及存储介质
CN1941751B (zh) 一种船载自动识别系统换码收发含汉字的信息的方法
JP2512031B2 (ja) デ―タ通信方式
CN101001215A (zh) 一种船载自动识别系统使用汉字交换信息的方法
JP4618107B2 (ja) キーボードを用いた入力装置および入力方法
KR100241705B1 (ko) 전전자교환기의 보드 모니터링 방법
JPH10164172A (ja) テキストデータ伝送方法
JPS6112424B2 (ja)
JPS6041347A (ja) パケツト組立分解装置
JP2000242686A (ja) Cad装置、異機種cad間データ交換装置及びその方法
KR20070014646A (ko) 아스키코드/유니코드 변환방법
JPH0497650A (ja) 遠隔ファクシミリ装置へのプリントシステム