(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022177879
(43)【公開日】2022-12-02
(54)【発明の名称】通信装置およびプログラム
(51)【国際特許分類】
H04L 1/08 20060101AFI20221125BHJP
H04L 45/60 20220101ALI20221125BHJP
H04W 28/04 20090101ALI20221125BHJP
【FI】
H04L1/08
H04L12/775
H04W28/04
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021084298
(22)【出願日】2021-05-19
(71)【出願人】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】渡邊 久
【テーマコード(参考)】
5K014
5K030
5K067
【Fターム(参考)】
5K014AA01
5K014DA03
5K014FA03
5K030GA01
5K030HC09
5K030KA03
5K030LA01
5K030MD02
5K067AA33
5K067EE02
5K067EE10
5K067HH22
5K067HH26
5K067HH28
(57)【要約】
【課題】通信速度を向上させることができる。
【解決手段】通信装置10は、第1通信モジュール11aによって送信装置1から取得した第1データ2aを第1メモリ12aに格納する。また、通信装置10は、第2通信モジュール11bによって送信装置1から取得した第2データ2bを第2メモリ12bに格納する。そして、通信装置10は、第1データ2aと第2データ2bとが一致した場合、第1データ2aまたは第2データ2bの受信処理をする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
送信装置と無線通信可能な第1通信モジュールと、
前記送信装置と無線通信可能な第2通信モジュールと、
第1メモリと、
第2メモリと、
前記第1通信モジュールによって前記送信装置から取得した第1データを前記第1メモリに格納し、前記第2通信モジュールによって前記送信装置から取得した第2データを前記第2メモリに格納し、前記第1データと前記第2データとが一致した場合、前記第1データまたは前記第2データの受信処理をする処理部と、
を有する通信装置。
【請求項2】
前記処理部は、前記送信装置から前記通信装置への送信データの一部である所定サイズの前記第1データを前記第1通信モジュールに取得させ、前記送信装置に前記第1データと同内容の前記第2データを送信させ、前記第2通信モジュールに前記送信装置から前記第2データを取得させる処理を、前記送信データ全体の受信処理をするまで繰り返す、
請求項1記載の通信装置。
【請求項3】
前記処理部は、前記第1データのチェックサムと前記第2データのチェックサムとが一致した場合、前記第1データと前記第2データとが一致したと判定する、
請求項1または2記載の通信装置。
【請求項4】
前記処理部は、前記第1データと前記第2データとが一致しない場合、前記送信装置に前記第1データおよび前記第2データを再送信させる、
請求項1ないし3のいずれかに記載の通信装置。
【請求項5】
通信装置に、
送信装置と通信可能な第1通信モジュールによって前記送信装置から取得した第1データを第1メモリに格納し、
前記送信装置と通信可能な第2通信モジュールによって前記送信装置から取得した第2データを第2メモリに格納し、
前記第1データと前記第2データとが一致した場合、前記第1データまたは前記第2データの受信処理をする、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置およびプログラムに関する。
【背景技術】
【0002】
近年、大量のデータを無線通信によって送受信することが多くなっている。無線通信では、通信障害等によってデータが破損することがあるため、データの正確な送受信が重要である。
【0003】
データの正確な送受信に関する技術としては、例えば、基地局のセンタ装置とリモート装置間で障害発生した時でも、インチャネル情報を確実に送受信する基地局システムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理装置が無線通信によってデータを取得すると、情報処理装置全体を制御するプロセッサが実行するソフトウェアによって、データの正確性を確認することがある。すると、当該プロセッサに負荷がかかるため、受信データの処理に時間がかかり通信速度が低下することがある。
【0006】
1つの側面では、本件は、通信速度を向上させることを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、第1通信モジュールと、第2通信モジュールと、第1メモリと、第2メモリと、処理部とを有する通信装置が提供される。第1通信モジュールは、送信装置と無線通信可能である。第2通信モジュールは、送信装置と無線通信可能である。処理部は、第1通信モジュールによって送信装置から取得した第1データを第1メモリに格納し、第2通信モジュールによって送信装置から取得した第2データを第2メモリに格納し、第1データと第2データとが一致した場合、第1データまたは第2データの受信処理をする。
【発明の効果】
【0008】
1態様によれば、通信速度を向上させることができる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施の形態に係る情報処理システムの一例を示す図である。
【
図2】第2の実施の形態に係る情報処理システムの一例を示す図である。
【
図3】情報処理システムのハードウェアの一構成例を示す図である。
【
図4】通信装置のハードウェアの一構成例を示す図である。
【
図6】受信制御処理の手順の一例を示すフローチャート(その1)である。
【
図7】受信制御処理の手順の一例を示すフローチャート(その2)である。
【
図8】受信制御処理の手順の一例を示すフローチャート(その3)である。
【発明を実施するための形態】
【0010】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの一例を示す図である。第1の実施の形態は、通信装置10が送信装置1からデータを受信するものである。
【0011】
送信装置1は、無線通信可能な装置である。例えば、送信装置1は、PC(Personal Computer)、タブレット端末、スマートフォン等の機器であってもよいし、アクセスポイントであってもよい。
【0012】
通信装置10は、電子機器が無線通信をするために搭載される装置である。例えば、通信装置10は、PC、タブレット端末、スマートフォン、アクセスポイント等に搭載される。通信装置10は、第1通信モジュール11aと、第2通信モジュール11bと、第1メモリ12aと、第2メモリ12bと、処理部13とを有する。
【0013】
第1通信モジュール11aおよび第2通信モジュール11bは、所定の通信規格にしたがって無線通信をする。第1通信モジュール11aおよび第2通信モジュール11bが用いる通信規格としては、例えば、6G(Generation)、5G、Wi-Fi(Wireless Fidelity,登録商標)、Bluetooth(登録商標)等がある。第1通信モジュール11aおよび第2通信モジュール11bは、同じ通信規格を用いてもよいし、異なる通信規格を用いてもよい。第1通信モジュール11aおよび第2通信モジュール11bは、送信装置1と無線通信可能である。つまり、送信装置1は、第1通信モジュール11aおよび第2通信モジュール11bが用いる通信規格で無線通信可能である。
【0014】
第1メモリ12aおよび第2メモリ12bは、第1通信モジュール11aおよび第2通信モジュール11bが無線通信により取得したデータをキャッシュするためのメモリである。第1メモリ12aには、第1通信モジュール11aが通信相手から取得したデータが格納される。また、第2メモリ12bには、第2通信モジュール11bが通信相手から取得したデータが格納される。
【0015】
処理部13は、通信装置10を制御し、所要の処理を実行可能である。処理部13は、例えば、通信装置10が有するプロセッサ、または演算回路である。処理部13は、送信装置1から通信装置10へ送信データが送信されるときに、以下の処理を、送信装置1から通信装置10への送信データ全体の受信処理をするまで繰り返す。
【0016】
処理部13は、送信装置1から通信装置10への送信データの一部である所定サイズの第1データ2aを第1通信モジュール11aに取得させる。例えば、送信装置1は、第1通信モジュール11aが用いる通信規格で、通信装置10へパケットごとにデータを送信する。処理部13は、送信装置1が通信装置10へ送信したパケットを所定のサイズ(例えば、第1メモリ12aのサイズ)になるまで第1通信モジュール11aに取得させ、取得したパケットを第1データ2aとする。処理部13は、第1通信モジュール11aによって送信装置1から取得した第1データ2aを第1メモリ12aに格納する。
【0017】
処理部13は、送信装置1に第1データ2aと同内容の第2データ2bを送信させる。例えば、処理部13は、第2通信モジュール11bが用いる通信規格で通信装置10へ第2データ2bを送信させる。処理部13は、第2通信モジュール11bに送信装置1から第2データ2bを取得させる。処理部13は、第2通信モジュール11bによって送信装置1から取得した第2データ2bを第2メモリ12bに格納する。
【0018】
処理部13は、第1データ2aと第2データ2bとを比較し、第1データ2aと第2データ2bとが一致するか否かを判定する。ここで、処理部13は、第1データ2aのチェックサムと第2データ2bのチェックサムとが一致した場合、第1データ2aと第2データ2bとが一致したと判定する。処理部13は、第1データ2aと第2データ2bとが一致した場合、第1データ2aまたは第2データ2bの受信処理をする。例えば、処理部13は、第1データ2aまたは第2データ2bを、通信装置10が搭載された装置を制御するプロセッサに送信する。また、処理部13は、第1データ2aと第2データ2bとが一致しない場合、送信装置1に第1データ2aおよび第2データ2bを再送信させる。
【0019】
第1の実施の形態によれば、通信装置10の処理部13は、第1通信モジュール11aによって送信装置1から取得した第1データ2aを第1メモリ12aに格納する。また、処理部13は、第2通信モジュール11bによって送信装置1から取得した第2データ2bを第2メモリ12bに格納する。そして、処理部13は、第1データ2aと第2データ2bとが一致した場合、第1データ2aまたは第2データ2bの受信処理をする。
【0020】
これにより、通信装置10は、送信装置1から取得したデータの正確性を確認することができる。すると、通信装置10が搭載された装置のプロセッサが送信装置1から取得したデータの正確性を確認する処理を実行しなくてもよくなるため、通信装置10は、当該プロセッサへの負荷を軽減できる。よって、通信装置10は、通信速度を向上させることができる。
【0021】
また、処理部13は、送信装置1から通信装置10への送信データの一部である所定サイズの第1データ2aを第1通信モジュール11aに取得させ、送信装置1に第1データ2aと同内容の第2データ2bを送信させ、第2通信モジュール11bに送信装置1から第2データ2bを取得させる処理を、送信データ全体の受信処理をするまで繰り返す。これにより、通信装置10は、送信装置1からの送信データの正確性を小さい単位で確認できる。よって、通信装置10は、データが不正確である場合に送信装置1に再送信させるデータの大きさを小さくすることができる。
【0022】
また、処理部13は、第1データ2aのチェックサムと第2データ2bのチェックサムとが一致した場合、第1データ2aと第2データ2bとが一致したと判定する。これにより、通信装置10は、送信装置1から取得したデータの正確性を効率的に確認できる。
【0023】
また、処理部13は、第1データ2aと第2データ2bとが一致しない場合、送信装置1に第1データ2aおよび第2データ2bを再送信させる。これにより、通信装置10は、送信装置1から正確なデータを受信できる。
【0024】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、情報処理装置およびアクセスポイントが一体となっている情報処理システムとユーザ端末とが無線通信するものである。
【0025】
図2は、第2の実施の形態に係る情報処理システムの一例を示す図である。第2の実施の形態の情報処理システムは、ユーザ端末20および情報処理システム200を有する。ユーザ端末20は、ユーザが操作するコンピュータである。ユーザ端末20は、例えば、ノートPC、スマートフォン、タブレット端末等である。ユーザ端末20は、無線通信によって情報処理システム200にアクセスし、情報処理システム200を介してネットワーク30に接続される。なお、ユーザ端末20は、第1の実施の形態に示した送信装置1の一例である。
【0026】
情報処理システム200は、情報処理装置とアクセスポイントとが一体となっている装置である。情報処理システム200は、ユーザ端末20と無線通信によって接続し、ユーザ端末20がネットワーク30に接続するための中継をする。
【0027】
なお、第2の実施の形態では、ユーザ端末20および情報処理システム200は、Wi-FiおよびBluetoothによる無線通信をする。つまり、ユーザ端末20および情報処理システム200は、Wi-FiおよびBluetoothに対応している。
【0028】
図3は、情報処理システムのハードウェアの一構成例を示す図である。情報処理システム200は、情報処理装置200aおよびアクセスポイント200bを有する。情報処理装置200aは、プロセッサ201aによって装置全体が制御されている。プロセッサ201aには、バス206aを介してメモリ202aと複数の周辺機器が接続されている。プロセッサ201aは、マルチプロセッサであってもよい。プロセッサ201aは、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ201aがプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0029】
メモリ202aは、情報処理装置200aの主記憶装置として使用される。メモリ202aには、プロセッサ201aに実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ202aには、プロセッサ201aによる処理に利用する各種データが格納される。メモリ202aとしては、例えば、RAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0030】
バス206aに接続されている周辺機器としては、ストレージ装置203a、媒体リーダ204aおよびネットワークインタフェース205aがある。ストレージ装置203aは、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置203aは、情報処理装置200aの補助記憶装置として使用される。ストレージ装置203aには、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置203aとしては、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0031】
媒体リーダ204aは、記録媒体41に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体41として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0032】
ネットワークインタフェース205aは、アクセスポイント200bに接続されている。ネットワークインタフェース205aは、アクセスポイント200bおよびネットワーク30を介して、他の装置との間でデータの送受信を行う。
【0033】
アクセスポイント200bは、ネットワークインタフェース201b,202bおよび通信装置100を有する。なお、ネットワークインタフェース201b,202bおよび通信装置100は、バス203bに接続されている。ネットワークインタフェース201bは、ネットワーク30に接続されている。ネットワークインタフェース201bは、ネットワーク30を介して、他の装置との間でデータの送受信を行う。
【0034】
ネットワークインタフェース202bは、情報処理装置200aに接続されている。ネットワークインタフェース202bは、情報処理装置200aからデータを受信する。そして、ネットワークインタフェース202bは、ネットワークインタフェース201bに、情報処理装置200aから受信したデータをネットワーク30を介して他の装置に送信させる。また、ネットワークインタフェース202bは、ネットワークインタフェース201bがネットワーク30を介して他の装置から受信したデータを取得する。そして、ネットワークインタフェース202bは、ネットワークインタフェース201bから取得したデータを情報処理装置200aに送信する。
【0035】
通信装置100は、2つの通信モジュールによって、ユーザ端末20と通信する。通信装置100は、無線通信によって接続されたユーザ端末20からデータを受信し、受信したデータをプロセッサ201aに通知する。また、通信装置100は、プロセッサ201aから通知されたデータ(例えば、ネットワークインタフェース201bがネットワーク30を介して他の装置から受信したデータ)をユーザ端末20に送信する。
【0036】
図4は、通信装置のハードウェアの一構成例を示す図である。通信装置100は、コントローラ101、メモリ102a,102b、通信モジュール103a,103bおよびアンテナ104a,104bを有する。
【0037】
コントローラ101は、通信装置100全体を制御する。コントローラ101は、プロセッサ101a、メモリ101bおよび不揮発性メモリ101cを有する。プロセッサ101aは、コントローラ101全体を制御する。プロセッサ101aは、マルチプロセッサであってもよい。プロセッサ101aは、例えばCPU、MPU、またはDSPである。プロセッサ101aがプログラムを実行することで実現する機能の少なくとも一部を、ASIC、PLD等の電子回路で実現してもよい。
【0038】
メモリ101bは、コントローラ101の主記憶装置として使用される。メモリ101bには、プロセッサ101aに実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ101bには、プロセッサ101aによる処理に利用する各種データが格納される。メモリ101bとしては、例えばRAMなどの揮発性の半導体記憶装置が使用される。
【0039】
不揮発性メモリ101cは、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。不揮発性メモリ101cは、コントローラ101の補助記憶装置として使用される。不揮発性メモリ101cには、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、不揮発性メモリ101cとしては、例えばフラッシュメモリを使用することができる。
【0040】
メモリ102a,102bは、通信モジュール103a,103bが受信したデータがキャッシュされるメモリである。コントローラ101は、M1/M2信号線から信号を送信することで、メモリ102a,102bのうちの読み取るメモリを切り替える。メモリ102a,102bとしては、例えばRAMなどの揮発性の半導体記憶装置が使用される。
【0041】
メモリ102aには、通信モジュール103aが受信したデータが格納される。メモリ102aは、RM1信号線によって、メモリ102aがフルであることをコントローラ101に通知する。また、メモリ102aは、メモリ102aに記憶されたデータをRD1信号線からコントローラ101に送信する。また、メモリ102aは、コントローラ101からM1/CLR信号線による信号を取得すると、記憶しているデータをクリアする。
【0042】
メモリ102bには、通信モジュール103bが受信したデータが格納される。メモリ102bは、RM2信号線によって、メモリ102bがフルであることをコントローラ101に通知する。また、メモリ102bは、メモリ102bに記憶されたデータをRD2信号線からコントローラ101に送信する。また、メモリ102bは、コントローラ101からM2/CLR信号線による信号を取得すると、記憶しているデータをクリアする。
【0043】
通信モジュール103a,103bは、無線通信によって他の装置との間でデータの送受信をする。コントローラ101は、MS1/MS2信号線から信号を送信することで通信モジュール103a,103bのうちの一方を送信モードに設定し、他方を受信モードに設定する。
【0044】
通信モジュール103aは、アンテナ104aによって、他の装置と無線通信する通信モジュールである。通信モジュール103aは、Wi-Fiの通信規格にしたがって無線通信をする。通信モジュール103aは、スイッチ103a-1、受信ユニット103a-2および送信ユニット103a-3を有する。
【0045】
スイッチ103a-1は、受信ユニット103a-2および送信ユニット103a-3のいずれかとアンテナ104aとを接続させる。スイッチ103a-1は、受信モードに設定されている場合、受信ユニット103a-2とアンテナ104aとを接続させる。また、スイッチ103a-1は、送信モードに設定されている場合、送信ユニット103a-3とアンテナ104aとを接続させる。コントローラ101は、MS1/MS2信号線から信号を送信することでスイッチ103a-1を切り替える。
【0046】
受信ユニット103a-2は、アンテナ104aによって他の装置からデータを受信する。受信ユニット103a-2は、受信したデータをRxD1信号線からメモリ102aに送信する。また、受信ユニット103a-2は、他の装置からデータを受信したことを、ST1信号線から信号を送信することでコントローラ101に通知する。
【0047】
送信ユニット103a-3は、アンテナ104aによって他の装置へデータを送信する。送信ユニット103a-3は、コントローラ101がTx1信号線から送信したデータを取得し、取得したデータをアンテナ104aによって他の装置へ送信する。
【0048】
通信モジュール103bは、アンテナ104bによって、他の装置と無線通信する通信モジュールである。通信モジュール103bは、Bluetoothの通信規格にしたがって無線通信をする。通信モジュール103bは、スイッチ103b-1、受信ユニット103b-2および送信ユニット103b-3を有する。
【0049】
スイッチ103b-1は、受信ユニット103b-2および送信ユニット103b-3のいずれかとアンテナ104bとを接続させる。スイッチ103b-1は、受信モードに設定されている場合、受信ユニット103b-2とアンテナ104bとを接続させる。また、スイッチ103b-1は、送信モードに設定されている場合、送信ユニット103b-3とアンテナ104bとを接続させる。コントローラ101は、MS1/MS2信号線から信号を送信することでスイッチ103b-1を切り替える。
【0050】
受信ユニット103b-2は、アンテナ104bによって他の装置からデータを受信する。受信ユニット103b-2は、受信したデータをRxD2信号線からメモリ102bに送信する。また、受信ユニット103b-2は、他の装置からデータを受信したことを、ST2信号線から信号を送信することでコントローラ101に通知する。
【0051】
送信ユニット103b-3は、アンテナ104bによって他の装置へデータを送信する。送信ユニット103b-3は、コントローラ101がTx2信号線から送信したデータを取得し、取得したデータをアンテナ104bによって他の装置へ送信する。
【0052】
通信装置100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した通信装置10も、
図4に示した通信装置100と同様のハードウェアにより実現することができる。また、プロセッサ101aは、第1の実施の形態に示した処理部13の一例である。
【0053】
通信装置100は、例えば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。通信装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、通信装置100に実行させるプログラムを不揮発性メモリ101cに格納しておくことができる。プロセッサ101aは、不揮発性メモリ101c内のプログラムの少なくとも一部をメモリ101bにロードし、プログラムを実行する。また、通信装置100に実行させるプログラムを、記録媒体41に記録しておくこともできる。記録媒体41に格納されたプログラムは、例えばプロセッサ201aからの制御により、不揮発性メモリ101cにインストールされた後、実行可能となる。また、プロセッサ101aが、記録媒体41から直接プログラムを読み出して実行することもできる。
【0054】
ところで、無線通信では、データを正確に送受信することが重要である。情報処理システム200がユーザ端末20から無線通信によって取得したデータの正確性を確認する方法としては、例えば、プロセッサ201aがソフトウェアを実行することによって、データの正確性を確認することが考えられる。しかし、プロセッサ201aがデータの正確性を確認することで、プロセッサ201aによる受信データの処理に時間がかかり通信速度が低下することがある。そこで、第2の実施の形態では、通信装置100は、メモリ102a,102bを用いたハードウェア処理によってユーザ端末20から受信したデータの正確性を確認し、プロセッサ201aの負荷を軽減することで通信速度を向上させる。
【0055】
次に、通信装置100の機能について詳細に説明する。
図5は、通信装置の機能例を示すブロック図である。通信装置100のコントローラ101は、通信モジュール制御部110および判定部120を有する。通信モジュール制御部110および判定部120は、メモリ101bに記憶されたプログラムをプロセッサ101aが実行することで実現される。
【0056】
通信モジュール制御部110は、通信モジュール103a,103bを制御し、ユーザ端末20からデータを受信させる。まず、通信モジュール制御部110は、通信モジュール103a,103bの一方の通信モジュールがユーザ端末20からデータを受信した場合、ユーザ端末20からデータを受信した通信モジュールに、対応するメモリへデータを送信させる。以下では一例として、通信モジュール103aがユーザ端末20からデータを受信し、通信モジュール制御部110は、通信モジュール103aに、メモリ102aへデータを送信させたものとする。通信モジュール103aは、第1の実施の形態に示した第1通信モジュール11aの一例である。また、メモリ102aは、第1の実施の形態に示した第1メモリ12aの一例である。
【0057】
例えば、通信モジュール制御部110は、通信モジュール103aの受信ユニット103a-2に、ユーザ端末20からパケットを受信させる。そして、通信モジュール制御部110は、受信ユニット103a-2に、受信したパケットをRxD1信号線からメモリ102aに送信させる。通信モジュール制御部110は、メモリ102aがフルになるまで(つまり、受信したデータがメモリ102aのサイズになるまで)、通信モジュール103aに、ユーザ端末20からパケットを受信させる。例えば、通信モジュール制御部110は、RM1信号線から信号を取得した場合、メモリ102aがフルであると判定し、RM1信号線から信号を取得しなかった場合、メモリ102aがフルでないと判定する。
【0058】
なお、通信モジュール103aによってユーザ端末20から取得したデータは、第1の実施の形態に示した第1データ2aの一例である。また、メモリ102aのサイズは、第1の実施の形態に示した所定のサイズの一例である。
【0059】
次に、通信モジュール制御部110は、通信モジュール103aを送信モードに設定する。例えば、通信モジュール制御部110は、MS1/MS2信号線から信号を送信することで、スイッチ103a-1に、送信ユニット103a-3とアンテナ104aとを接続させる。なお、通信モジュール103aが送信モードに設定されることで、通信モジュール103bが受信モードに設定される。そして、通信モジュール制御部110は、ユーザ端末20にモジュールの切替を要求する。例えば、通信モジュール制御部110は、Wi-Fi対応のモジュールでデータ送信するユーザ端末20に、Bluetooth対応のモジュールに切り替えるよう指示する要求を通信モジュール103aから送信する。また、通信モジュール制御部110は、Wi-Fi対応のモジュールで送信されたデータと同内容のデータを送信するよう指示する要求を通信モジュール103aからユーザ端末20に送信する。
【0060】
通信モジュール制御部110は、ユーザ端末20のモジュールが切り替わると通信モジュール103bに、ユーザ端末20から受信したデータをメモリ102bへ送信させる。例えば、通信モジュール制御部110は、通信モジュール103bの受信ユニット103b-2に、ユーザ端末20からパケットを受信させる。そして、通信モジュール制御部110は、受信ユニット103b-2に、受信したパケットをRxD2信号線からメモリ102bに送信させる。なお、通信モジュール103bは、第1の実施の形態に示した第2通信モジュール11bの一例である。また、メモリ102bは、第1の実施の形態に示した第2メモリ12bの一例である。また、通信モジュール103bによってユーザ端末20から取得したデータは、第1の実施の形態に示した第2データ2bの一例である。
【0061】
通信モジュール制御部110は、メモリ102bがフルになるまで(つまり、受信したデータがメモリ102bのサイズになるまで)、通信モジュール103bに、ユーザ端末20からパケットを受信させる。例えば、通信モジュール制御部110は、RM2信号線から信号を取得した場合、メモリ102bがフルであると判定し、RM2信号線から信号を取得しなかった場合、メモリ102bがフルでないと判定する。
【0062】
通信モジュール制御部110は、メモリ102aに格納されたデータのチェックサムとメモリ102bに格納されたデータのチェックサムとが一致するか否かを判定部120に判定させる。通信モジュール制御部110は、メモリ102aに格納されたデータのチェックサムとメモリ102bに格納されたデータのチェックサムとが一致しない場合、ユーザ端末20にデータの再送信を要求する。例えば、通信モジュール制御部110は、メモリ102aに格納されたデータと同内容のデータをWi-Fi対応のモジュールで再送信するよう指示する要求を通信モジュール103aからユーザ端末20に送信する。
【0063】
また、通信モジュール制御部110は、メモリ102aに格納されたデータのチェックサムとメモリ102bに格納されたデータのチェックサムとが一致する場合、メモリ102aまたはメモリ102bに格納されたデータを受信データとして受信する。例えば、通信モジュール制御部110は、メモリ102aに格納したデータを、ユーザ端末20からの受信データとしてプロセッサ201aに通知する。通信モジュール制御部110は、上記のような通信モジュール103a,103bによるデータの受信制御を、ユーザ端末20から情報処理システム200への送信データ全体を取得するまで繰り返す。
【0064】
判定部120は、メモリ102aに格納されたデータのチェックサムを作成する。また、判定部120は、メモリ102bに格納されたデータのチェックサムを作成する。そして、判定部120は、メモリ102aに格納されたデータのチェックサムとメモリ102bに格納されたデータのチェックサムとが一致するか否かを判定する。
【0065】
なお、
図5に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。以下、通信装置100による受信制御処理の処理の手順について、詳細に説明する。
【0066】
図6は、受信制御処理の手順の一例を示すフローチャート(その1)である。以下、
図6に示す処理をステップ番号に沿って説明する。
[ステップS11]通信モジュール制御部110は、通信モジュール103a,103bの初期化をする。
【0067】
[ステップS12]通信モジュール制御部110は、一方の通信モジュール(例えば、通信モジュール103a)を受信モードに設定する。例えば、通信モジュール制御部110は、MS1/MS2信号線から信号を送信することで、スイッチ103a-1に、受信ユニット103a-2とアンテナ104aとを接続させる。
【0068】
[ステップS13]通信モジュール制御部110は、ステップS12で受信モードに設定した通信モジュール103aがユーザ端末20からデータを受信したか否かを判定する。例えば、通信モジュール制御部110は、ST1信号線から信号を取得した場合、通信モジュール103aがデータを受信したと判定し、ST1信号線から信号を取得しなかった場合、通信モジュール103aがデータを受信しなかったと判定する。通信モジュール制御部110は、通信モジュール103aがユーザ端末20からデータを受信したと判定した場合、処理をステップS19に進める。また、通信モジュール制御部110は、通信モジュール103aがユーザ端末20からデータを受信しなかったと判定した場合、処理をステップS14に進める。
【0069】
[ステップS14]通信モジュール制御部110は、他方の通信モジュール(例えば、通信モジュール103b)を受信モードに設定する。例えば、通信モジュール制御部110は、MS1/MS2信号線から信号を送信することで、スイッチ103b-1に、受信ユニット103b-2とアンテナ104bとを接続させる。
【0070】
[ステップS15]通信モジュール制御部110は、ステップS14で受信モードに設定した通信モジュール103bがユーザ端末20からデータを受信したか否かを判定する。例えば、通信モジュール制御部110は、ST2信号線から信号を取得した場合、通信モジュール103bがデータを受信したと判定し、ST2信号線から信号を取得しなかった場合、通信モジュール103bがデータを受信しなかったと判定する。通信モジュール制御部110は、通信モジュール103bがユーザ端末20からデータを受信したと判定した場合、処理をステップS19に進める。また、通信モジュール制御部110は、通信モジュール103bがユーザ端末20からデータを受信しなかったと判定した場合、処理をステップS16に進める。
【0071】
[ステップS16]通信モジュール制御部110は、通信エラーの回数をカウントするための変数Nに1を加算(N=N+1)する。
[ステップS17]通信モジュール制御部110は、変数Nが3になったか否かを判定する。通信モジュール制御部110は、変数Nが3になったと判定した場合、処理をステップS18に進める。また、通信モジュール制御部110は、変数Nが3になっていないと判定した場合、処理をステップS12に進める。
【0072】
[ステップS18]通信モジュール制御部110は、プロセッサ201aに通信エラーを通知する。そして、処理が終了する。
図7は、受信制御処理の手順の一例を示すフローチャート(その2)である。以下、
図7に示す処理をステップ番号に沿って説明する。
【0073】
[ステップS19]通信モジュール制御部110は、ステップS13またはステップS15でユーザ端末20からデータを受信した通信モジュール#1(例えば、通信モジュール103a)に、対応するメモリ#1(例えば、メモリ102a)へデータを送信させる。例えば、通信モジュール制御部110は、通信モジュール103aの受信ユニット103a-2に、ユーザ端末20からパケットを受信させる。そして、通信モジュール制御部110は、受信ユニット103a-2に、受信したパケットをRxD1信号線からメモリ102aに送信させる。
【0074】
[ステップS20]通信モジュール制御部110は、通信モジュール103aがユーザ端末20から情報処理システム200への送信データ全体を取得したか否かを判定する。例えば、通信モジュール制御部110は、ステップS19でユーザ端末20から受信したパケットに、当該パケットが最後のパケットであることを示すデータが含まれていた場合、通信モジュール103aが送信データ全体を取得したと判定する。通信モジュール制御部110は、通信モジュール103aがユーザ端末20から情報処理システム200への送信データ全体を取得したと判定した場合、処理をステップS22に進める。また、通信モジュール制御部110は、通信モジュール103aがユーザ端末20から情報処理システム200への送信データ全体を取得していないと判定した場合、処理をステップS21に進める。
【0075】
[ステップS21]通信モジュール制御部110は、メモリ102aがフルであるか否かを判定する。例えば、通信モジュール制御部110は、RM1信号線から信号を取得した場合、メモリ102aがフルであると判定し、RM1信号線から信号を取得しなかった場合、メモリ102aがフルでないと判定する。通信モジュール制御部110は、メモリ102aがフルであると判定した場合、処理をステップS22に進める。また、通信モジュール制御部110は、メモリ102aがフルでないと判定した場合、処理をステップS19に進める。
【0076】
[ステップS22]判定部120は、メモリ102aに格納されたデータのチェックサムを作成する。
[ステップS23]通信モジュール制御部110は、通信モジュール103aを送信モードに設定する。例えば、通信モジュール制御部110は、MS1/MS2信号線から信号を送信することで、スイッチ103a-1に、送信ユニット103a-3とアンテナ104aとを接続させる。なお、通信モジュール103aが送信モードに設定されることで、通信モジュール103bが受信モードに設定される。
【0077】
[ステップS24]通信モジュール制御部110は、ユーザ端末20にモジュールの切替を要求する。例えば、通信モジュール制御部110は、Wi-Fi対応のモジュールでデータ送信するユーザ端末20に、Bluetooth対応のモジュールに切り替えるよう指示する要求を通信モジュール103aから送信する。また、通信モジュール制御部110は、Wi-Fi対応のモジュールで送信されたデータと同内容のデータを送信するよう指示する要求を通信モジュール103aからユーザ端末20に送信する。
【0078】
[ステップS25]通信モジュール制御部110は、ユーザ端末20のモジュールの切替が正常か否かを判定する。例えば、通信モジュール制御部110は、ST2信号線から信号を取得した場合(つまり、通信モジュール103bがデータを受信した場合)、ユーザ端末20のモジュールの切替が正常と判定する。また、通信モジュール制御部110は、ST2信号線から信号を取得しなかった場合(つまり、通信モジュール103bがデータを受信しなかった場合)、ユーザ端末20のモジュールの切替が正常ではないと判定する。通信モジュール制御部110は、ユーザ端末20のモジュールの切替が正常と判定した場合、処理をステップS28に進める。また、通信モジュール制御部110は、ユーザ端末20のモジュールの切替が正常ではないと判定した場合、処理をステップS26に進める。
【0079】
[ステップS26]通信モジュール制御部110は、通信エラーの回数をカウントするための変数Nに1を加算(N=N+1)する。
[ステップS27]通信モジュール制御部110は、変数Nが3になったか否かを判定する。通信モジュール制御部110は、変数Nが3になったと判定した場合、処理をステップS18に進める。また、通信モジュール制御部110は、変数Nが3になっていないと判定した場合、処理をステップS24に進める。
【0080】
図8は、受信制御処理の手順の一例を示すフローチャート(その3)である。以下、
図8に示す処理をステップ番号に沿って説明する。
[ステップS28]通信モジュール制御部110は、通信モジュール#1とは異なる通信モジュール#2(例えば、通信モジュール103b)に、対応するメモリ#2(例えば、メモリ102b)へユーザ端末20から受信したデータを送信させる。例えば、通信モジュール制御部110は、通信モジュール103bの受信ユニット103b-2に、ユーザ端末20からパケットを受信させる。そして、通信モジュール制御部110は、受信ユニット103b-2に、受信したパケットをRxD2信号線からメモリ102bに送信させる。
【0081】
[ステップS29]通信モジュール制御部110は、通信モジュール103bがユーザ端末20から情報処理システム200への送信データ全体を取得したか否かを判定する。例えば、通信モジュール制御部110は、ステップS28でユーザ端末20から受信したパケットに、当該パケットが最後のパケットであることを示すデータが含まれていた場合、通信モジュール103bが送信データ全体を取得したと判定する。通信モジュール制御部110は、通信モジュール103bがユーザ端末20から情報処理システム200への送信データ全体を取得したと判定した場合、処理をステップS31に進める。また、通信モジュール制御部110は、通信モジュール103bがユーザ端末20から情報処理システム200への送信データ全体を取得していないと判定した場合、処理をステップS30に進める。
【0082】
[ステップS30]通信モジュール制御部110は、メモリ102bがフルであるか否かを判定する。例えば、通信モジュール制御部110は、RM2信号線から信号を取得した場合、メモリ102bがフルであると判定し、RM2信号線から信号を取得しなかった場合、メモリ102bがフルでないと判定する。通信モジュール制御部110は、メモリ102bがフルであると判定した場合、処理をステップS31に進める。また、通信モジュール制御部110は、メモリ102bがフルでないと判定した場合、処理をステップS28に進める。
【0083】
[ステップS31]判定部120は、メモリ102bに格納されたデータのチェックサムを作成する。
[ステップS32]判定部120は、ステップS22で作成した、メモリ102aに格納されたデータのチェックサムと、ステップS31で作成した、メモリ102bに格納されたデータのチェックサムとを比較する。
【0084】
[ステップS33]判定部120は、メモリ102aに格納されたデータのチェックサムとメモリ102bに格納されたデータのチェックサムとが一致するか否かを判定する。判定部120は、メモリ102aに格納されたデータのチェックサムとメモリ102bに格納されたデータのチェックサムとが一致すると判定した場合、処理をステップS38に進める。また、判定部120は、メモリ102aに格納されたデータのチェックサムとメモリ102bに格納されたデータのチェックサムとが一致しないと判定した場合、処理をステップS34に進める。
【0085】
[ステップS34]通信モジュール制御部110は、ハードウェアエラーの回数をカウントするための変数nに1を加算(n=n+1)する。
[ステップS35]通信モジュール制御部110は、変数nが3になったか否かを判定する。通信モジュール制御部110は、変数nが3になったと判定した場合、処理をステップS37に進める。また、通信モジュール制御部110は、変数nが3になっていないと判定した場合、処理をステップS36に進める。
【0086】
[ステップS36]通信モジュール制御部110は、ユーザ端末20にデータの再送信を要求する。例えば、通信モジュール制御部110は、メモリ102aに格納されたデータと同内容のデータをWi-Fi対応のモジュールで再送信するよう指示する要求を通信モジュール103aからユーザ端末20に送信する。そして、処理がステップS39に進む。
【0087】
[ステップS37]通信モジュール制御部110は、プロセッサ201aにハードウェアエラーを通知する。そして、処理が終了する。
[ステップS38]通信モジュール制御部110は、メモリ102aまたはメモリ102bに格納されたデータをユーザ端末20からの受信データとして受信する。例えば、通信モジュール制御部110は、メモリ102aに格納したデータを、ユーザ端末20からの受信データとしてプロセッサ201aに通知する。
【0088】
[ステップS39]通信モジュール制御部110は、メモリ102a,102bをクリアする。例えば、通信モジュール制御部110は、M1/CLR信号線からメモリ102aに信号を送信する。また、通信モジュール制御部110は、M2/CLR信号線からメモリ102bに信号を送信する。
【0089】
[ステップS40]通信モジュール制御部110は、ユーザ端末20から情報処理システム200への送信データ全体を取得したか否かを判定する。例えば、通信モジュール制御部110は、ステップS20およびステップS29でユーザ端末20から情報処理システム200への送信データ全体を取得したと判定した場合、送信データ全体を取得したと判定する。通信モジュール制御部110は、ユーザ端末20から情報処理システム200への送信データ全体を取得したと判定した場合、処理を終了する。また、通信モジュール制御部110は、ユーザ端末20から情報処理システム200への送信データ全体を取得していないと判定した場合、処理をステップS12に進める。
【0090】
このようにして、通信モジュール制御部110は、通信モジュール103aによってユーザ端末20から取得したデータをメモリ102aに格納し、通信モジュール103bによってユーザ端末20から取得したデータをメモリ102bに格納する。そして、通信モジュール制御部110は、メモリ102aに格納したデータとメモリ102bに格納したデータとが一致した場合、メモリ102aに格納したデータまたはメモリ102bに格納したデータを受信データとして受信する。
【0091】
これにより、通信モジュール制御部110は、ユーザ端末20からデータを正確に受信できた場合に、受信データを情報処理システム200のプロセッサ201aに通知できる。すると、プロセッサ201aは、受信データの正確性を確認する処理を実行しなくてもよい。よって、通信モジュール制御部110は、受信データを処理するプロセッサ201aへの負荷が軽減できるようになるため、通信速度を向上させることができる。さらに、通信モジュール制御部110は、メモリ102a,102bのハードウェア上のデータを比較するため、プロセッサ201aがソフトウェアを実行することによって受信データの正確性を確認するよりも高速に、受信データの正確性を確認できる。
【0092】
また、通信モジュール制御部110は、メモリ102aに格納したデータとメモリ102bに格納したデータとが一致しなかった場合、ユーザ端末20にデータの再送信を要求する。これにより、通信モジュール制御部110は、ユーザ端末20から正確なデータを受信できる。
【0093】
なお、判定部120は、チェックサム同士を比較することで、通信モジュール103aによってユーザ端末20から取得したデータと、通信モジュール103bによってユーザ端末20から取得したデータとが一致するか否かを効率的に判定できる。
【0094】
通信モジュール制御部110は、メモリ102aに格納したデータとメモリ102bに格納したデータとの比較と、比較結果に応じた受信処理または再送信要求処理とをユーザ端末20から情報処理システム200への送信データ全体を取得するまで繰り返す。これにより、通信モジュール制御部110は、ユーザ端末20からの送信データの正確性をメモリ102a,102bのサイズごとに確認できる。よって、通信モジュール制御部110は、データが不正確である場合にユーザ端末20に再送信させるデータを小さくすることができる。
【0095】
第2の実施の形態によれば、通信装置100の通信モジュール制御部110は、通信モジュール103aによってユーザ端末20から取得したデータをメモリ102aに格納する。また、通信モジュール制御部110は、通信モジュール103bによってユーザ端末20から取得したデータをメモリ102bに格納する。そして、通信モジュール制御部110は、通信モジュール103aによってユーザ端末20から取得したデータと通信モジュール103bによってユーザ端末20から取得したデータとが一致した場合、通信モジュール103aによってユーザ端末20から取得したデータまたは通信モジュール103bによってユーザ端末20から取得したデータの受信処理をする。
【0096】
これにより、通信装置100は、ユーザ端末20から取得したデータの正確性を確認することができる。すると、情報処理システム200のプロセッサ201aがユーザ端末20から取得したデータの正確性を確認する処理を実行しなくてもよくなるため、通信装置100は、プロセッサ201aへの負荷を軽減できる。よって、通信装置100は、通信速度を向上させることができる。
【0097】
また、通信モジュール制御部110は、ユーザ端末20から通信装置100への送信データの一部であるメモリ102aのサイズのデータを通信モジュール103aに取得させ、ユーザ端末20に通信モジュール103aによってユーザ端末20から取得したデータと同内容のデータを送信させ、通信モジュール103bにユーザ端末20からデータを取得させる処理を、送信データ全体の受信処理をするまで繰り返す。これにより、通信装置100は、ユーザ端末20からの送信データの正確性を小さい単位で確認できる。よって、通信装置100は、データが不正確である場合にユーザ端末20に再送信させるデータの大きさを小さくすることができる。
【0098】
また、通信装置100の判定部120は、通信モジュール103aによってユーザ端末20から取得したデータのチェックサムと通信モジュール103bによってユーザ端末20から取得したデータのチェックサムとが一致した場合、通信モジュール103aによってユーザ端末20から取得したデータと通信モジュール103bによってユーザ端末20から取得したデータとが一致したと判定する。これにより、通信装置100は、ユーザ端末20から取得したデータの正確性を効率的に確認できる。
【0099】
また、処理部13は、通信モジュール103aによってユーザ端末20から取得したデータと通信モジュール103bによってユーザ端末20から取得したデータとが一致しない場合、ユーザ端末20に通信モジュール103aによってユーザ端末20から取得したデータおよび通信モジュール103bによってユーザ端末20から取得したデータを再送信させる。これにより、通信装置100は、ユーザ端末20から正確なデータを受信できる。
【0100】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0101】
1 送信装置
2a 第1データ
2b 第2データ
10 通信装置
11a 第1通信モジュール
11b 第2通信モジュール
12a 第1メモリ
12b 第2メモリ
13 処理部