(57)【特許請求の範囲】
【請求項１】
送信データを生成する送信データ生成部と、バッファ選択部と、送信データ生成部で生成されるデータを一時記憶する第１及び第２のデータバッファと、前記第１又は第２のデータバッファに記憶されているデータを取り出して外部装置にシリアル送信するデータ送信部とを備え、
前記バッファ選択部は、前記送信データ生成部からのデータを前記第１及び第２のデータバッファのうち、前記データ送信部が送信に使用中でないデータバッファに一時記憶する記憶制御手段と、この記憶制御手段によってデータが一時記憶された、いずれかのデータバッファを前記データ送信部の送信バッファとして指定する送信バッファ指定手段とを有し、
前記送信バッファ指定手段は、送信データ生成部で最後に生成されたデータが送信され、かつ、古いデータが破棄されるように、前記第１及び第２のデータバッファのうち、前記記憶制御手段によってデータが最後に一時記憶された方のデータバッファを前記データ送信部の送信バッファとして指定し、
前記データ送信部は、前記送信バッファ指定手段によって指定されたデータバッファからデータを取り出して送信する、ことを特徴とするシリアル送信装置。
【請求項２】
前記記憶制御手段は、前記第１及び第２のデータバッファのいずれも前記データ送信部が送信に使用中でない場合は、前記第１、第２のデータバッファのうち前記送信バッファ指定手段により送信バッファとして指定されていないデータバッファに前記送信データ生成部からのデータを一時記憶するように制御する制御手段とからなることを特徴とする請求項１記載のシリアル送信装置。
【請求項３】
前記データ送信部は、少なくとも、下記（１）、（２）のデータ送信条件を満足しているか否かを確認するデータ送信条件確認手段と、このデータ送信条件を満足していない場合は待機し、このデータ送信条件を満たした場合は前記送信バッファとして指定されたデータバッファからデータを取り出して送信するシリアル送信手段と、前記指定されたデータバッファからのデータの送信の完了後、該データバッファの送信バッファ指定を解除する指定解除手段とを含むことを特徴とする請求項１又は２に記載のシリアル送信装置：
データ送信条件；
（１）送信データが前記送信バッファに記憶されているか；
（２）前記外部装置との通信手続が完了しているか。
【請求項４】
生成された送信データを２つのデータバッファのいずれかに一時記憶して外部装置にシリアル送信するシリアル送信装置の送信バッファリング制御方法において、
２つのデータバッファのうち、送信に使用中でないデータバッファに前記生成された送信データを一時記憶するステップと、
最後に生成された送信データが送信され、かつ、古い送信データが破棄されるように、２つのデータバッファのうち、送信データが最後に一時記憶された方のデータバッファを送信するデータを取り出す送信バッファとして指定するステップと、
前記指定されたデータバッファからデータを取り出して前記外部装置にシリアル送信するステップと、
を含むことを特徴とする、シリアル送信装置の送信バッファリング制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は各種通信装置におけるシリアル送信バッファのバッファリング制御技術に関する。
【０００２】
【従来の技術】
一般に、通信装置ではシリアル通信の利用効率を上げるために二重の送信バッファが用意されている。これは、図６に示すようにシリアル送信を実行するバッファと発生した送信データを一時的に蓄えるバッファからなる。このような構造を採用することにより、シリアル送信中に発生した送信データを一時的に退避することができ、送信データの送出漏れを回避している。なお、図６は従来の通信装置の送信部の一実施例を示すブロック図であり、符号１は送信データ生成部、符号２は送信データ生成部で生成された送信データを一時的に蓄えるデータバッファ、符号３はデータ送信部であり、シリアル送信を実行するデータバッファを含んでいる。また、符号５はシリアル送信装置を示す。
【０００３】
【発明が解決しようとする課題】
ここで、送信データの発生頻度が一時的に多くなる場合を想定すると、その発生率に応じてさらなる送信バッファの多重化をすることも可能である。
【０００４】
しかしながら、このような多重化は古いデータを蓄積することになり、受信側ではその蓄積（遅延）時間に応じたデータ処理を行なうことになる。
【０００５】
時々刻々と変化する状況に対してリアルタイムに変化する通信制御システムではそのような古いデータは不用であり、また、古いがために結果的に処理時間が長くなったり、若しくは全体として誤った制御となることも懸念されるといった問題点があった。
【０００６】
例えば、図１に示すような伝送システム、つまり、種々のセンサが定期的に検出データを中央処理部へ伝送するシステムでは、センサ１１、１２、１３、・・が取得したデータは順次中央処理部１０に伝送されるが、センサ１１、１２、１３、・・が検出するデータには定期的に検出される最新データと、センサ検出値が変化したときやセンサの異常を検出したときに出力される緊急データとがある（具体的応用例としては、住宅等のセキュリティシステムや自動車運転システム等のリアルタイム性が重視される通信システムが考えられる）。
【０００７】
ここで、上記各センサ１１、１２、１３、・・が前述した従来のシリアル送信装置５を備え、センサ検出値を送信する場合、このような緊急データを直ちに送信することができず送信バッファに蓄積されているデータがすべて処理されるのを待つことになる。それゆえ結果的に緊急処理に遅れが生ずることとなる。
【０００８】
本発明は上記問題点を解決するためになされたものであり、送信データの切換えを簡便に実現し、システムの効率を制限しないシリアル送信装置及びシリアル送信装置の送信バッファリング制御方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、第１の発明のシリアル送信装置は、送信データを生成する送信データ生成部と、バッファ選択部と、送信データ生成部で生成されるデータを一時記憶する第１及び第２のデータバッファと、前記第１又は第２のデータバッファに記憶されているデータを取り出して外部装置にシリアル送信するデータ送信部とを備え、前記バッファ選択部は、前記送信データ生成部からのデータを前記第１及び第２のデータバッファのうち、前記データ送信部が送信に使用中でないデータバッファに一時記憶する記憶制御手段と、この記憶制御手段によってデータが一時記憶された、いずれかのデータバッファを前記データ送信部の送信バッファとして指定する送信バッファ指定手段とを有し、前記送信バッファ指定手段は、送信データ生成部で最後に生成されたデータが送信され、かつ、古いデータが破棄されるように、前記第１及び第２のデータバッファのうち、前記記憶制御手段によってデータが最後に一時記憶された方のデータバッファを前記データ送信部の送信バッファとして指定し、前記データ送信部は、前記送信バッファ指定手段によって指定されたデータバッファからデータを取り出して送信する、ことを特徴とする。
【００１０】
また、第２の発明は上記第１の発明のシリアル送信装置において、前記記憶制御手段は、前記第１及び第２のデータバッファのいずれも前記データ送信部が送信に使用中でない場合は、前記第１、第２のデータバッファのうち前記送信バッファ指定手段により送信バッファとして指定されていないデータバッファに前記送信データ生成部からのデータを一時記憶するように制御する制御手段とからなることを特徴とする。
【００１２】
また、第４の発明は上記第１又は２の発明のシリアル送信装置において、データ送信部は、少なくとも、下記（１）、（２）のデータ送信条件を満足しているか否かを確認するデータ送信条件確認手段と、このデータ送信条件を満足していない場合は待機し、このデータ送信条件を満たした場合は送信バッファとして指定されたデータバッファからデータを取り出して送信するシリアル送信手段と、指定されたデータバッファからのデータの送信の完了後、該データバッファの送信バッファ指定を解除する指定解除手段とを含むことを特徴とする：データ送信条件；
（１）送信データが送信バッファに記憶されているか；
（２）外部装置との通信手続が完了しているか。
【００１３】
また、第５の発明のシリアル送信装置の送信バッファリング制御方法は、生成された送信データを２つのデータバッファのいずれかに一時記憶して外部装置にシリアル送信するシリアル送信装置の送信バッファリング制御手順において、２つのデータバッファのうち、送信に使用中でないデータバッファに前記生成された送信データを一時記憶するステップと、最後に生成された送信データが送信され、かつ、古い送信データが破棄されるように、２つのデータバッファのうち、送信データが最後に一時記憶された方のデータバッファを送信するデータを取り出す送信バッファとして指定するステップと、前記指定されたデータバッファからデータを取り出して前記外部装置にシリアル送信するステップと、を含むことを特徴とする。
【００１４】
【発明の実施の形態】
（送信部の構成）
図２は本発明に基く、シリアル通信装置の構成例を示すブロック図であり、シリアル通信装置５０は送信データ生成部２０、バッファ選択部２１、第１のデータバッファ２２、第２のデータバッファ２３及びデータ送信部２４を有している。
【００１５】
送信データ生成部２０は送信データを生成し、バッファ選択部２１によって選択・指定されたデータバッファにデータを送る。なお、データ送信部２４はシリアル送信を実行するデータバッファを含んでいる。
【００１６】
バッファ選択部２１は送信データ生成部２０によって送信データが生成されると、データ送信部２４がデータ送信中の場合は、第１、第２のデータバッファ２２、２３のうち、現在、データ送信部２４によって使用されていない方のデータバッファ（つまり、データ送信部２４によってデータが取り出されていない方）のデータバッファを選択して送信データ生成部２０に選択したデータバッファへのデータ送信を指示すると共に、選択したデータバッファを、データ送信部２４が現在データを取り出しているデータバッファからデータの取り出しを終了し次第、次にデータを取り出すデータバッファ、つまり、次の送信バッファとして指定する。
【００１７】
また、バッファ選択部２１はデータ送信部２４がデータ送信中でない場合は、現在データ送信部２４に指定されているデータバッファを確認（例えば、そのデータバッファ情報（番号等）を取得）し、送信データ生成部２０にそのデータバッファ以外のデータバッファへのデータ送信を指示する。
【００１８】
第１のデータバッファ２２、第２のデータバッファ２３は送信データ生成部２０から送られるデータを一時記憶する。また、データ送信部２４は送信バッファとして指定されているデータバッファからデータを取り出してシリアル送信を実行する。
【００１９】
（データ格納手順）
図３は新規に発生したデータをデータバッファに格納する手順（送信バッファリング手順）を示すフローチャートであり、下記ステップＳ１〜Ｓ６、ステップＳ７は図２のバッファ選択部２１の動作に相当する。
【００２０】
図３で、バッファ選択部２１は送信データ生成部２０によって新たな送信データが生成されると、データ送信部２４がデータ送信中か否かを調べ、データ送信中の場合はステップＳ２に遷移し、データ送信中でない場合はステップＳ３に遷移する（ステップＳ１）。
【００２１】
上記ステップＳ１でデータ送信部２４がデータ送信中の場合は、バッファ選択部２１は、現在、データ送信部２４が使用中のデータバッファ、つまり、データ送信のためデータを取り出しているデータバッファがどれかを調べ、第１のデータバッファ２２が使用中の場合はステップＳ４に遷移し、第２のデータバッファ２３が使用中の場合はステップＳ５に遷移する。使用中のデータバッファは、例えば、バッファ選択部２１内に現在データ送信部２４によって使用されているデータバッファを識別する送信バッファ情報（例えば、バッファ番号）を保持するようにし、この送信バッファ情報を調べることにより判定できる（ステップＳ２）。
【００２２】
一方、上記ステップＳ１でデータ送信部２４がデータを送信していない場合は、現在、データ送信部２４が使用するデータバッファとして指定されているデータバッファを調べ、指定されているデータバッファが第１のデータバッファ２２の場合はステップＳ４に遷移し、指定されているデータバッファが第２のデータバッファ２３の場合はステップＳ５に遷移する（ステップＳ３）。
【００２３】
バッファ選択部２１は送信データ生成部２０に対して第２のデータバッファ２３をデータ書き込みバッファとして指定し、ステップＳ６に遷移する（ステップＳ４）。
【００２４】
バッファ選択部２１は送信データ生成部２０に対して第１のデータバッファ２２をデータ書き込みバッファとして指定し、ステップＳ６に遷移する（ステップＳ５）。
【００２５】
送信データ生成部２０は上記ステップＳ３又はＳ４で指定（選択）されたデータバッファにデータを送信し、指定（選択）されたデータバッファは送信データ生成部２０からのデータを順次書き込み、当該データバッファへのデータの書き込み（＝一時記憶）が終わると送信準備完了通知をバッファ選択部２１に送出する（ステップＳ６）。
【００２６】
バッファ選択部２１は第１のデータバッファ２２または第２のデータバッファ２３から送信準備完了通知を受け取ると、データ送信部２４に対し、その送信準備完了通知の送出元のデータバッファをデータ送信部２４がデータを取り出す送信バッファとして指定すると共に、このデータバッファを識別する送信バッファ情報を保持する（ステップＳ７）。
【００２７】
（送信処理手順）
図４はデータの発生やバッファ格納処理とは非同期に動作する通信処理（送信処理）手順を示すフローチャートであり、送信処理時の手順を示す。
【００２８】
図４で、まず、データ送信部２４はデータ送信準備が完了しているか否か、つまり、データ送信可能か否かを調べる。具体的には、少なくとも次の▲１▼、▲２▼の送信条件が満たされているか否かを調べる。
▲１▼バッファ選択部２１により送信バッファが指定されているか；
▲２▼通信（送信）先の機器（外部装置）との所定の手続きが完了したか等の条件を満たしているか。
【００２９】
データ送信が可能な場合はステップＴ２に遷移し、それ以外の場合は条件が整うまで待機する（ステップＴ１）。
【００３０】
データ送信が可能になるとデータ送信部２４はバッファ選択部２１によって指定された送信バッファを送信に用いるバッファとし（ステップＴ２）、データ送信処理を実行する（ステップＴ３）。
【００３１】
送信バッファに格納されていたデータの送信が完了すると、データ送信部２４は送信バッファ内のデータの送信が完了したことを示すために送信指定（要求）をクリアする（ステップＴ４）。
【００３２】
図５はデータの発生から送信までの時間経過の一例を示すタイムチャートである。
上記図３及び図４のフローチャートに示した手順を用いることにより、例えば、
ａ：第１のデータバッファ２２内に要求中のデータがある場合には、データ送信部２４がデータ送信中の時は、第２のデータバッファ２３がデータ書き込みバッファとして選択される。また、データ送信部２４がデータ送信中でない時は、第２のデータバッファ２３がデータ書き込みバッファとして選択される。
ｂ：その後、第２のデータバッファ２３へのデータの書き込みが完了すると、データ送信部２４に対し第２のデータバッファ２３が送信バッファとして指定される。この時にデータ送信部２４の送信処理が既に起動している場合には、事前に送信バッファ指定されていた第１の送信バッファ２２が送信処理に使用され、第２のデータバッファ２３はその後に送信処理に使用される。また、この時にデータ送信部２４の送信処理がまだ起動していない場合には、事前に送信バッファに指定されていた第１の送信バッファ２２に代わり、第２のデータバッファ２３が送信処理に使用される事となる。
【００３３】
つまり、図５の符号５１で示される区間のように、第２のデータバッファ２３が送信指定されることにより、第１のデータバッファ２２の古い送信データは破棄され、第２のデータバッファ２３に格納されていたデータが新たに送信データとなる。
【００３４】
上記構成により、古いデータを簡便に排除して常に最新データの送信が可能となり、かつシステムの効率を制限しない。
【００３５】
なお、上記実施例の説明ではデータを書き込むデータバッファを２つ（第１、第２のデータバッファ）としたが、データを書き込むデータバッファの数は２に限定されない。データバッファを３以上設けた場合もバッファ選択部によりデータを書き込むデータバッファの選択・指定を行なうことができる。
【００３６】
以上、本発明の一実施例について説明したが本発明は上記実施例に限定されるものではなく、種々の変形実施が可能であることはいうまでもない。
【００３７】
【発明の効果】
上記説明したように、第１乃至第４の発明のシリアル送信装置及び第５の発明のシリアル送信装置の送信バッファリング制御手順によれば古いデータを簡便に排除して常に最新データの送信ができ、システムの効率を制限することがない。
【図面の簡単な説明】
【図１】伝送システムの一実施例を示す図である。
【図２】本発明に基くシリアル通信装置の構成例を示すブロック図である。
【図３】新規に発生した送信データをデータバッファに格納する手順を示すフローチャートである。
【図４】データの発生やバッファ格納処理とは非同期に動作する通信処理（送信処理）の手順を示すフローチャートであり、送信処理時の手順を示す。
【図５】データの発生から送信までの時間経過の一例を示すタイムチャートである。
【図６】従来のシリアル通信装置の一実施例を示すブロック図である。
【符号の説明】
２０  送信データ生成部
２１  バッファ選択部
２２  第１のデータバッファ
２３  第２のデータバッファ
２４  データ送信部
５０  シリアル送信装置
【図１】
0004680440.tif 000002
【図２】
0004680440.tif 000003
【図３】
0004680440.tif 000004
【図４】
0004680440.tif 000005
【図５】
0004680440.tif 000006
【図６】
0004680440.tif 000007