(57)【特許請求の範囲】
【請求項１】
データ処理を行う一又は複数のデータ処理手段と、該データ処理手段からデータの送信要求／受信要求を受け付けて該データの送信／受信に係る処理を行う通信処理手段とを備える通信装置において、
前記データ処理手段は、個別の第１識別子がそれぞれ付され、送信要求／受信要求に個別の第２識別子をそれぞれ付して前記通信処理手段へ与えるようにしてあり、
前記第１識別子及び第２識別子を基に第３識別子を生成する生成手段を備え、
前記通信処理手段は、
受け付けた送信要求／受信要求に係る通信処理のタイムアウトを判定するタイムアウト判定手段と、
受け付けた送信要求／受信要求及び該送信要求／受信要求のタイムアウトに係る情報を対応付けて記憶するタイムアウトテーブルと
を有し、
受け付けた送信要求／受信要求に係るデータ処理手段に付された第１識別子、及び前記送信要求／受信要求に付された第２識別子に基づいて生成された第３識別子を記憶しておき、
前記タイムアウトテーブルに記憶した情報の変更を要する送信要求／受信要求を受け付けた場合、前記タイムアウトテーブルに記憶した情報に係る第３識別子と、受け付けた前記送信要求／受信要求に係る第１識別子及び第２識別子に基づいて生成された第３識別子とが一致するか否かを判定し、
両識別子が一致しないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないことで、
前記データ処理手段による前記タイムアウトテーブルに記憶された情報の読み出しを許可し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の変更を禁止してあること
を特徴とする通信装置。
【請求項２】
プログラムを記憶するメモリと、
該メモリに記憶されたプログラムを読み出して実行する処理部と
を備え、
前記データ処理手段は、
前記処理部が実行したデータ処理プログラムであり、
タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、
前記通信処理手段は、
受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、
前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記タイムアウト処理のプログラムに代えて、予め定められたタイムアウト処理を行うようにしてあること
を特徴とする請求項１に記載の通信装置。
【請求項３】
プログラムを記憶するメモリと、
該メモリに記憶されたプログラムを読み出して実行する処理部と
を備え、
前記データ処理手段は、
前記処理部が実行したデータ処理プログラムであり、
タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、
前記通信処理手段は、
受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、
前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないようにしてあること
を特徴とする請求項１に記載の通信装置。
【請求項４】
データ処理を行う一又は複数のデータ処理手段と、該データ処理手段からデータの送信要求／受信要求を受け付けて該データの送信／受信に係る処理を行う通信処理手段とを備える通信装置において、
プログラムを記憶するメモリと、
該メモリに記憶されたプログラムを読み出して実行する処理部と
を備え、
前記データ処理手段は、前記処理部が実行したデータ処理プログラムであり、
前記通信処理手段は、
受け付けた送信要求／受信要求に係る通信処理のタイムアウトを判定するタイムアウト判定手段と、
受け付けた送信要求／受信要求及び該送信要求／受信要求のタイムアウトに係る情報を対応付けて記憶するタイムアウトテーブルと
を有し、
受け付けた送信要求／受信要求に係るデータ処理プログラムが記憶された前記メモリのアドレスを記憶しておき、
前記タイムアウトテーブルに記憶した情報の変更を要する送信要求／受信要求を受け付けた場合、前記タイムアウトテーブルに記憶した情報に係るデータ処理プログラムのアドレスと、受け付けた前記送信要求／受信要求に係るデータ処理プログラムのアドレスとが一致するか否かを判定し、
両アドレスが一致しないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないことで、
前記データ処理手段による前記タイムアウトテーブルに記憶された情報の読み出しを許可し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の変更を禁止してあること
を特徴とする通信装置。
【請求項５】
前記データ処理手段は、
前記処理部が実行したデータ処理プログラムであり、
タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、
前記通信処理手段は、
受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、
前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記タイムアウト処理のプログラムに代えて、予め定められたタイムアウト処理を行うようにしてあること
を特徴とする請求項４に記載の通信装置。
【請求項６】
前記データ処理手段は、
前記処理部が実行したデータ処理プログラムであり、
タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、
前記通信処理手段は、
受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、
前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないようにしてあること
を特徴とする請求項４に記載の通信装置。
【請求項７】
データ処理を行う一又は複数のデータ処理手段と、該データ処理手段からデータの送信要求／受信要求を受け付けて該データの送信／受信に係る処理を行う通信処理手段とを備える通信装置において、
プログラムを記憶するメモリと、
該メモリに記憶されたプログラムを読み出して実行する処理部と
を備え、
前記データ処理手段は、
前記処理部が実行したデータ処理プログラムであり、
タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、
前記通信処理手段は、
受け付けた送信要求／受信要求に係る通信処理のタイムアウトを判定するタイムアウト判定手段と、
受け付けた送信要求／受信要求及び該送信要求／受信要求のタイムアウトに係る情報を対応付けて記憶するタイムアウトテーブルと
を有し、
前記データ処理手段による前記タイムアウトテーブルに記憶された情報の読み出しを許可し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の変更を禁止してあると共に、
受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、
前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記タイムアウト処理のプログラムに代えて、予め定められたタイムアウト処理を行うようにしてあること
を特徴とする通信装置。
【請求項８】
データ処理を行う一又は複数のデータ処理手段と、該データ処理手段からデータの送信要求／受信要求を受け付けて該データの送信／受信に係る処理を行う通信処理手段とを備える通信装置において、
プログラムを記憶するメモリと、
該メモリに記憶されたプログラムを読み出して実行する処理部と
を備え、
前記データ処理手段は、
前記処理部が実行したデータ処理プログラムであり、
タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、
前記通信処理手段は、
受け付けた送信要求／受信要求に係る通信処理のタイムアウトを判定するタイムアウト判定手段と、
受け付けた送信要求／受信要求及び該送信要求／受信要求のタイムアウトに係る情報を対応付けて記憶するタイムアウトテーブルと
を有し、
前記データ処理手段による前記タイムアウトテーブルに記憶された情報の読み出しを許可し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の変更を禁止してあると共に、
受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、
前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないようにしてあること
を特徴とする通信装置。
【請求項９】
前記タイムアウト判定手段が判定を行うための計時手段を備え、
前記データ処理手段は、個別の識別子がそれぞれ付してあり、計時開始又は計時停止の要求を前記識別子と共に前記計時手段へ与えるようにしてあり、
前記計時手段は、
前記計時開始の要求が与えられた場合に、該計時開始の要求元の前記データ処理手段に付された前記識別子を記憶し、
前記計時停止の要求が与えられた場合に、該計時停止の要求元の前記データ処理手段に付された識別子が、記憶した識別子と一致するか否かを判定し、
両識別子が一致すると判定した場合に計時停止を行うようにしてあること
を特徴とする請求項１乃至請求項８のいずれか１つに記載の通信装置。
【請求項１０】
前記タイムアウトテーブルに記憶する前記タイムアウトに係る情報には、前記送信要求／受信要求に係るデータの送信がタイムアウトしたか否かを示すフラグ、タイムアウトを判定する時間、及び通信処理の経過時間を含むこと
を特徴とする請求項１乃至請求項９のいずれか１つに記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理を行うと共に他の装置との間でデータの送受信を行う通信装置に関する。
【背景技術】
【０００２】
従来、インターネット及びＬＡＮ（Local Area Network）等のネットワークを利用した通信システムが広く普及しており、複数の通信装置が相互にデータの送受信を行うことによって、広範囲でのデータの共有が実現され、より高度なデータ処理を行うことができる。また近年では、車輌などにおいてもＣＡＮ（Controller Area Network）などの車内Ｌ
ＡＮを利用した通信システムが搭載され、複数の通信装置が相互にデータの送受信を行って、より高度なデータ処理を行っている。
【０００３】
このような通信システム及び通信装置においては、ネットワークの一部又は全部の遮断及びネットワークの負荷の急激な増加等の要因によりデータの送受信を行うことができなくなるなどの不具合が発生する場合がある。よって、ネットワークに接続された各通信装置は、データの送受信の成否を判断し、データの送信に失敗した場合にはデータの再送信を行うなどの処理を行う必要がある。例えば通信装置は、タイマを用いてタイムアウトを判定することでデータ送受信の成否を判断することができる。
【０００４】
例えば特許文献１においては、複数の通信装置に対してデータ通信を行う通信システムにて、応答監視のために必要な処理及びデータ量を低減して応答監視を効率よく行うことができる応答監視装置が提案されている。この応答監視装置は、データ処理部にて他の通信装置への送信要求及び応答データを作成し、応答監視テーブルに送信要求毎の情報を保持させる。応答監視装置は、送信要求、タイマ起動要求及びタイマ停止要求を他の通信装置へ送信し、またタイマの起動、停止及びタイマ通知の送信を行うと共に、応答データ及びタイマ通知を他の通信装置から受信する。応答監視装置は、送信要求の送信時にはタイマの起動、応答データの送信及び送信要求に係る情報の応答監視テーブルへの登録を行い、応答データ及びタイマ通知の受信時にはその受信数に基づいてタイムアウトを判定し、もはや送信を要求しなければタイマ停止を要求する。
【０００５】
通信装置におけるタイムアウトに係る処理は重要であり、通信装置の設計者又は通信プログラムのプログラマ等のタイムアウト処理に係る設計にミスが生じた場合、通信装置がハングアップするなど予期せぬ動作を行う虞がある。設計ミスとしては、例えば以下のようなものが考えられる。
（１）通信処理以外の処理によってタイムアウト判定用のタイマが停止される。
（２）通信処理の状態（送信開始待ち、送信完了待ち、受信待ち又は受信完了待ち等）を示すフラグが他の処理によって書き換えられる。
（３）タイムアウトが発生した際に行う処理が通信プログラムに含まれていない。
これらの設計ミスによって、例えばタイムアウト判定用のタイマが停止しているにもかかわらず、タイムアウトの判定を行い続け、送信完了待ちの状態から脱することができずに通信装置の処理が停止するなどの不具合が生じる。これらの不具合は、特に、通信装置の通信に係る処理を組み込みのソフトウェアで実現した場合に発生しやすい。
【０００６】
複数のＰＣ（Personal Computer）などがネットワークに接続された構成の高度な通信
システムの場合、各ＰＣに搭載されたＯＳ（Operating System）が通信用のライブラリ又はＡＰＩ（Application Program Interface）等を提供するため、これらを利用してタイ
ムアウトの判定に係る設定を行うことができ、タイムアウト発生時の処理を行うことができる。よって、上述のような設計ミスによる通信装置の不具合が生じる虞は少ない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−１６８０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、車輌に搭載される通信システムの場合には、ネットワークに接続される各通信装置の規模が上述のＰＣなどより小さく、搭載されるＲＯＭ（Read Only Memory）の容量及び製品コスト等の観点から通信装置にＯＳを搭載することは難しい。このため、車輌の通信装置の設計者等は上述の設計ミスが生じることがないように設計を行うことが望まれるが、人為的な設計ミスを完全に防止することは容易ではない。
【０００９】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、設計者又はプログラマ等による人為的な設計ミスが発生し難く、通信処理が停止するなどの不具合が生じ難い構成の通信装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る通信装置は、データ処理を行う一又は複数のデータ処理手段と、該データ処理手段からデータの送信要求／受信要求を受け付けて該データの送信／受信に係る処理を行う通信処理手段とを備える通信装置において、前記データ処理手段は、個別の第１識別子がそれぞれ付され、送信要求／受信要求に個別の第２識別子をそれぞれ付して前記通信処理手段へ与えるようにしてあり、前記第１識別子及び第２識別子を基に第３識別子を生成する生成手段を備え、前記通信処理手段は、受け付けた送信要求／受信要求に係る通信処理のタイムアウトを判定するタイムアウト判定手段と、受け付けた送信要求／受信要求及び該送信要求／受信要求のタイムアウトに係る情報を対応付けて記憶するタイムアウトテーブルとを有し、受け付けた送信要求／受信要求に係るデータ処理手段に付された第１識別子、及び前記送信要求／受信要求に付された第２識別子に基づいて生成された第３識別子を記憶しておき、前記タイムアウトテーブルに記憶した情報の変更を要する送信要求／受信要求を受け付けた場合、前記タイムアウトテーブルに記憶した情報に係る第３識別子と、受け付けた前記送信要求／受信要求に係る第１識別子及び第２識別子に基づいて生成された第３識別子とが一致するか否かを判定し、両識別子が一致しないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないことで、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の読み出しを許可し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の変更を禁止してあることを特徴とする。
【００１１】
また、本発明に係る通信装置は、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを読み出して実行する処理部とを備え、前記データ処理手段は、前記処理部が実行したデータ処理プログラムであり、タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、前記通信処理手段は、受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記タイムアウト処理のプログラムに代えて、予め定められたタイムアウト処理を行うようにしてあることを特徴とする。
【００１２】
また、本発明に係る通信装置は、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを読み出して実行する処理部とを備え、前記データ処理手段は、前記処理部が実行したデータ処理プログラムであり、タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、前記通信処理手段は、受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないようにしてあることを特徴とする。
【００１３】
また、本発明に係る通信装置は、データ処理を行う一又は複数のデータ処理手段と、該データ処理手段からデータの送信要求／受信要求を受け付けて該データの送信／受信に係る処理を行う通信処理手段とを備える通信装置において、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを読み出して実行する処理部とを備え、前記データ処理手段は、前記処理部が実行したデータ処理プログラムであり、前記通信処理手段は、受け付けた送信要求／受信要求に係る通信処理のタイムアウトを判定するタイムアウト判定手段と、受け付けた送信要求／受信要求及び該送信要求／受信要求のタイムアウトに係る情報を対応付けて記憶するタイムアウトテーブルとを有し、受け付けた送信要求／受信要求に係るデータ処理プログラムが記憶された前記メモリのアドレスを記憶しておき、前記タイムアウトテーブルに記憶した情報の変更を要する送信要求／受信要求を受け付けた場合、前記タイムアウトテーブルに記憶した情報に係るデータ処理プログラムのアドレスと、受け付けた前記送信要求／受信要求に係るデータ処理プログラムのアドレスとが一致するか否かを判定し、両アドレスが一致しないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないことで、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の読み出しを許可し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の変更を禁止してあることを特徴とする。
【００１４】
また、本発明に係る通信装置は、前記データ処理手段は、前記処理部が実行したデータ処理プログラムであり、タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、前記通信処理手段は、受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記タイムアウト処理のプログラムに代えて、予め定められたタイムアウト処理を行うようにしてあることを特徴とする。
【００１５】
また、本発明に係る通信装置は、前記データ処理手段は、前記処理部が実行したデータ処理プログラムであり、タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、前記通信処理手段は、受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないようにしてあることを特徴とする。
【００１６】
また、本発明に係る通信装置は、データ処理を行う一又は複数のデータ処理手段と、該データ処理手段からデータの送信要求／受信要求を受け付けて該データの送信／受信に係る処理を行う通信処理手段とを備える通信装置において、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを読み出して実行する処理部とを備え、前記データ処理手段は、前記処理部が実行したデータ処理プログラムであり、タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、前記通信処理手段は、受け付けた送信要求／受信要求に係る通信処理のタイムアウトを判定するタイムアウト判定手段と、受け付けた送信要求／受信要求及び該送信要求／受信要求のタイムアウトに係る情報を対応付けて記憶するタイムアウトテーブルとを有し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の読み出しを許可し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の変更を禁止してあると共に、受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記タイムアウト処理のプログラムに代えて、予め定められたタイムアウト処理を行うようにしてあることを特徴とする。
【００１７】
また、本発明に係る通信装置は、データ処理を行う一又は複数のデータ処理手段と、該データ処理手段からデータの送信要求／受信要求を受け付けて該データの送信／受信に係る処理を行う通信処理手段とを備える通信装置において、プログラムを記憶するメモリと、該メモリに記憶されたプログラムを読み出して実行する処理部とを備え、前記データ処理手段は、前記処理部が実行したデータ処理プログラムであり、タイムアウトと判定された場合に行うタイムアウト処理のプログラムが記憶された前記メモリのアドレスを、送信要求／受信要求と共に前記通信処理手段へ与えるようにしてあり、前記通信処理手段は、受け付けた送信要求／受信要求に係る通信処理のタイムアウトを判定するタイムアウト判定手段と、受け付けた送信要求／受信要求及び該送信要求／受信要求のタイムアウトに係る情報を対応付けて記憶するタイムアウトテーブルとを有し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の読み出しを許可し、前記データ処理手段による前記タイムアウトテーブルに記憶された情報の変更を禁止してあると共に、受け付けた送信要求／受信要求に含まれる前記アドレスが所定のアドレス範囲に含まれるか否かを判定し、前記アドレスが所定のアドレス範囲に含まれないと判定した場合に、前記送信要求／受信要求に係る通信処理を行わないようにしてあることを特徴とする。
【００１８】
また、本発明に係る通信装置は、前記タイムアウト判定手段が判定を行うための計時手段を備え、前記データ処理手段は、個別の識別子がそれぞれ付してあり、計時開始又は計時停止の要求を前記識別子と共に前記計時手段へ与えるようにしてあり、前記計時手段は、前記計時開始の要求が与えられた場合に、該計時開始の要求元の前記データ処理手段に付された前記識別子を記憶し、前記計時停止の要求が与えられた場合に、該計時停止の要求元の前記データ処理手段に付された識別子が、記憶した識別子と一致するか否かを判定し、両識別子が一致すると判定した場合に計時停止を行うようにしてあることを特徴とする。
【００１９】
また、本発明に係る通信装置は、前記タイムアウトテーブルに記憶する前記タイムアウトに係る情報には、前記送信要求／受信要求に係るデータの送信がタイムアウトしたか否かを示すフラグ、タイムアウトを判定する時間、及び通信処理の経過時間を含むことを特徴とする。
【００２０】
本発明においては、データの処理を行うデータ処理手段からデータの送信要求／受信要求を受け付けてこの送信要求／受信要求に係るデータの送信処理／受信処理を行う通信処理手段を通信装置が備え、通信処理手段が送信処理／受信処理のタイムアウトを判定すると共に、タイムアウトに係る情報をタイムアウトテーブルに記憶する。タイムアウトテーブルには、例えば送信要求／受信要求に係るデータの送信処理／受信処理がタイムアウトしたか否かを示すフラグ、タイムアウトと判定するタイマの時間、及び送信処理／受信処理の開始からの経過時間をタイマにより計時した値等の情報を記憶する。これにより、データ処理手段は送信／受信を要求したデータの送信／受信が完了したか否かなどをタイムアウトテーブルを参照することによって判断できる。
ただし本発明の通信装置では、タイムアウトテーブルに記憶された情報のデータ処理手段による直接的な変更を禁止する。これにより、タイムアウトテーブルに記憶された情報が予期せぬ処理によって変更されることがないため、送信処理に伴う不具合が発生する虞を低減できる。
【００２１】
また、本発明においては、各データ処理手段には個別の第１識別子を付しておくと共に、各データ処理手段は送信要求／受信要求を通信処理手段へ与える場合に、各送信要求／受信要求に個別の第２識別子を付す。例えば第１識別子及び第２識別子を合成するなどの演算を行って第３識別子を生成し、通信処理手段がこれを記憶しておくことによって、複数のデータ処理手段による複数の送信要求／受信要求を第３識別子により一意に特定することができる。
送信要求／受信要求を受け付けた通信処理手段は、この送信要求／受信要求に係る第３識別子を記憶し、受け付けた送信要求／受信要求に係るデータの送信／受信処理を行う。このとき通信処理手段は、上述のタイムアウトテーブルに情報を記憶して送信／受信処理を行うが、このタイムアウトテーブルに記憶された情報の変更を要する送信要求／受信要求を更に受け付けた場合には、タイムアウトテーブルに記憶された情報に係る第３識別子と、更に受け付けた送信要求／受信要求に係る第３識別子とが一致するか否かを判定する。両識別子が一致する場合には、正当なデータ処理手段による情報の変更であると判断できるため、通信処理手段は更に受け付けた送信要求／受信要求に係る通信処理を行う。
両識別子が一致しない場合には、不正なデータ処理手段による情報の変更であると判断でき、この変更を容認すると正当なデータ処理手段の処理に不具合が生じる虞があるため、通信処理手段は更に受け付けた送信要求／受信要求に係る通信処理を行わない。これにより、設計ミスなどによって不正なデータ処理手段が不正な情報変更を行うことを防止でき、通信処理に伴う不具合が発生する虞を低減できる。
【００２２】
また、本発明においては、通信装置はデータ処理を行うプログラムを記憶するメモリとこのプログラムを読み出して実行するＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等の処理部とを備え、データ処理プログラムの実行により一又は複数のデータ処理手段を実現する。
送信要求／受信要求を受け付けた通信処理手段は、この送信要求／受信要求に係るデータ処理プログラムが記憶されたメモリのアドレスを記憶し、送信要求／受信要求に係る通信処理を行う。このとき通信処理手段は、上述のタイムアウトテーブルに情報を記憶して通信処理を行うが、このタイムアウトテーブルに記憶された情報の変更を要する送信要求／受信要求を更に受け付けた場合には、タイムアウトテーブルに記憶された情報に係るデータ処理プログラムのアドレスと、更に受け付けた送信要求／受信要求に係るデータ処理プログラムのアドレスとが一致するか否かを判定する。両アドレスが一致する場合には、正当なデータ処理プログラムによる情報の変更であると判断できるため、通信処理手段は更に受け付けた送信要求／受信要求に係る通信処理を行う。
両アドレスが一致しない場合には、不正なデータ処理プログラムによる情報の変更であると判断でき、この変更を容認すると正当なデータ処理プログラムの処理に不具合が生じる虞があるため、通信処理手段は更に受け付けた送信要求／受信要求に係る通信処理を行わない。これにより、設計ミスなどによって不正なデータ処理手段が不正な情報変更を行うことを防止でき、通信処理に伴う不具合が発生する虞を低減できる。
【００２３】
また、本発明においては、通信装置はデータ処理を行うプログラムを記憶するメモリとこのプログラムを読み出して実行するＣＰＵ又はＭＰＵ等の処理部とを備え、データ処理プログラムの実行により一又は複数のデータ処理手段を実現する。
この場合に、上述の通信処理に必要な情報としてタイムアウトが発生した場合に行う処理のプログラムが記憶されたアドレスを通信処理手段が送信要求／受信要求と共に受け付ける。通信処理手段は、与えられたタイムアウト処理のプログラムのアドレスが所定のアドレス範囲内であるか否かを判定し、所定のアドレス範囲外であれば、与えられたアドレスのタイムアウト処理のプログラムを実行せず、予め用意されたデフォルトのタイムアウト処理のプログラムを実行する。
例えば、データ処理を行うプログラムは処理に係る命令列と処理対象となるデータとで構成され、メモリは命令列が記憶された領域とデータが記憶された領域とに分けられるが、判定に用いる所定のアドレス範囲はメモリ中の命令列が記憶された領域とすることができる。
タイムアウト処理のプログラムが記憶されるべきアドレス範囲外のアドレスが与えられた場合には、与えられた情報に誤りが含まれており、タイムアウト発生時に正しい処理を行うことができない虞があるが、デフォルトのタイムアウト処理を行うことによって本発明の通信装置はこれを回避することができる。
【００２４】
また、本発明においては、通信装置はデータ処理を行うプログラムを記憶するメモリとこのプログラムを読み出して実行するＣＰＵ又はＭＰＵ等の処理部とを備え、データ処理プログラムの実行により一又は複数のデータ処理手段を実現する。
この場合に、上述の通信処理に必要な情報としてタイムアウトが発生した場合に行う処理のプログラムが記憶されたアドレスを通信処理手段が送信要求／受信要求と共に受け付ける。通信処理手段は、この情報が送信要求／受信要求と共に与えられなければ通信処理を行わない。また、この情報が与えられた場合であっても、通信処理手段は与えられたタイムアウト処理のプログラムのアドレスが所定のアドレス範囲内であるか否かを判定し、所定のアドレス範囲外であれば送信要求／受信要求に係る通信処理を行わない。
例えば、データ処理を行うプログラムは処理に係る命令列と処理対象となるデータとで構成され、メモリは命令列が記憶された領域とデータが記憶された領域とに分けられるが、判定に用いる所定のアドレス範囲はメモリ中の命令列が記憶された領域とすることができる。
タイムアウト処理のプログラムが記憶されるべきアドレス範囲外のアドレスが与えられた場合には、与えられた情報に誤りが含まれており、タイムアウト発生時に正しい処理を行うことができない虞があるが、本発明の通信装置はこれを回避することができる。
【００２５】
また、本発明においては、通信装置はタイムアウトの判定を行うための計時手段、所謂タイマを備え、また、データ処理手段には個別の識別子（所謂ＩＤ（IDentifier））をそれぞれ付しておく。
タイマは、タイマセット要求を受け付けた場合、このタイマセット要求に係るデータ処理手段に付された識別子を記憶しておく。また、タイマは、タイマリセット要求を受け付けた場合には、タイマリセット要求に係るデータ処理手段の識別子と記憶した識別子とが一致するか否かを判定する。両識別子が一致する場合には、正当なデータ処理プログラムによるタイマのリセットであると判断できるため、タイマは受け付けたリセット要求に応じてタイマリセットを行う。両識別子が一致しない場合には、不正なデータ処理プログラムによるタイマのリセットであると判断でき、このリセットを容認すると正当なデータ処理プログラムの処理に不具合が生じる虞があるため、タイマは受け付けたタイマリセット要求に係るタイマリセットを行わない。これにより、設計ミスなどによって不正なデータ処理手段が不正なタイマのリセットを行うことを防止でき、通信処理に伴う不具合が発生する虞を低減できる。
【００２６】
また、本発明においては、上述の通信装置がデータ処理を行うためのソースプログラム（プログラミング言語を用いて記述されたプログラム）を実行プログラム（アセンブリ言語若しくは機械語等で表わされたプログラム、又はオブジェクトプログラム）に変換するコンパイラ、アセンブラ又はインタプリタ等のコンピュータプログラムを用いて、プログラマはデータ処理プログラムの設計及び開発等を行う。
本発明のコンピュータプログラムは、ソースプログラムから他の機器へのデータの送信要求／受信要求の記述を抽出し、通信処理手段による通信処理に必要な情報が抽出した送信要求／受信要求に全て含まれているか否かを判定する。
通信処理に必要な情報には、送信要求／受信要求を識別するための識別子、送信するデータ、タイムアウトと判定するタイマの時間、及びタイムアウトが発生した場合に行う処理等の情報を含むことができる。
これらの情報のいずれかが欠如している場合にデフォルトの値で補う方法も考えられるが、本発明のコンピュータプログラムはこの方法を採用せず、必要な情報が１つでも欠如している場合にはソースプログラムの実行プログラムへの変換を行わない。これにより、プログラマの設計ミス又は記述ミス等によって必要な情報が正しく設定されていない送信要求／受信要求が通信装置にて実行されることがなく、通信装置において通信処理に伴う不具合が発生する虞を低減できる。
【００２７】
また、本発明においては、コンピュータプログラムがコンパイラなどでなく、ソースプログラムの記述をチェックするのみのものであってもよい。
この場合、コンピュータプログラムは、ソースプログラムから他の機器へのデータの送信要求／受信要求の記述を抽出し、通信処理手段による通信処理に必要な情報が抽出した送信要求／受信要求に全て含まれているか否かを判定する。必要な情報が含まれていない場合には警告メッセージの出力などを行う。これにより、プログラマの設計ミス又は記述ミス等によって必要な情報が正しく設定されていない場合に、この旨をプログラマへ通知することができる
【発明の効果】
【００２８】
本発明による場合は、通信処理手段が有する情報に対するデータ処理手段の不正な変更などを種々の方法にて防止することにより、設計ミスなどを有する不正なデータ処理手段の処理によって、正当なデータ処理手段に係る通信処理が妨げられることがなく、通信処理手段による通信処理が停止するなどの不具合が発生する虞を低減することができる。よって、データの送信処理／受信処理における通信装置の高信頼性化及び高品質化等を実現することができる。
【００２９】
また、本発明による場合は、データ処理プログラムの設計及び開発等に用いられてソースプログラムを実行プログラムに変換するコンピュータプログラムが、ソースプログラム中の送信要求に必要な情報が全て含まれているか否かをチェックすることによって、プログラマは通信処理のための情報を全て設定する必要があるため、設定を怠るなどの人為的なミスが発生し難い。このコンピュータプログラムによりプログラマがデータ処理プログラムを適切に設計・開発できる環境を提供することができ、このコンピュータプログラムを用いて設計・開発されたデータ処理プログラムを実行してデータ処理を行う通信装置の高信頼性化及び高品質化等を実現することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施の形態１に係るＥＣＵの構成を示すブロック図である。
【図２】通信処理部の構成を示すブロック図である。
【図３】本発明の実施の形態１に係るＥＣＵのタイムアウトテーブルの一構成例を示す模式図である。
【図４】本発明の実施の形態１に係るＥＣＵの通信処理部が行う通信処理の手順を示すフローチャートである。
【図５】本発明の実施の形態１に係るＥＣＵの通信処理部が行う通信処理の手順を示すフローチャートである。
【図６】データ処理手段が行う送信要求／受信要求に係る処理の手順を示すフローチャートである。
【図７】データ処理プログラムの作成手順を示す模式図である。
【図８】本発明の実施の形態１に係るコンパイラが行う処理の手順を示すフローチャートである。
【図９】本発明の実施の形態２に係るＥＣＵのタイムアウトテーブルの一構成例を示す模式図である。
【図１０】通信処理部による送信要求／受信要求元アドレスの取得方法を説明するための模式図である。
【図１１】本発明の実施の形態２に係るＥＣＵの通信処理部が行う通信処理の手順を示すフローチャートである。
【図１２】本発明の実施の形態２の変形例に係るＥＣＵの通信処理部が行う通信処理を説明するための模式図である。
【図１３】本発明の実施の形態２の変形例に係るＥＣＵのタイムアウトテーブルの一構成例を示す模式図である。
【図１４】本発明の実施の形態２の変形例に係るＥＣＵの通信処理部が行う通信処理の手順を示すフローチャートである。
【図１５】本発明の実施の形態３に係るＥＣＵのＲＡＭ及びＲＯＭにて構成されるメモリ空間を説明するための模式図である。
【図１６】本発明の実施の形態３に係るＥＣＵの通信処理部が行う通信処理の手順を示すフローチャートである。
【図１７】本発明の実施の形態３の変形例に係るＥＣＵの通信処理部が行うタイムアウト処理の手順を示すフローチャートである。
【図１８】本発明の実施の形態４に係るＥＣＵの構成を説明するための模式図である。
【図１９】本発明の実施の形態４に係るＥＣＵのタイマが行う要求受付処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００３１】
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。なお、本実施の形態においては通信装置として車輌に搭載されるＥＣＵ（Electronic Control Unit）を
例に説明を行うが、本発明の通信装置は車載のＥＣＵに限定されるものではない。
（実施の形態１）
図１は、本発明の実施の形態１に係るＥＣＵ１の構成を示すブロック図である。車輌にはエンジン制御用のＥＣＵ１、変速機構制御用のＥＣＵ１、ライト制御用のＥＣＵ１、ワイパー制御用のＥＣＵ１及びドアのロック機構制御用のＥＣＵ１等の種々の制御を行うＥＣＵ１が搭載されている。また、車輌に搭載された複数のＥＣＵ１は、ＣＡＮなどのネットワークＮＷにて相互に接続されている。なお、ネットワークＮＷは有線のネットワークであってもよく、無線のネットワークであってもよい。各ＥＣＵ１は、制御対象の機器に関する種々のデータ処理を行って機器の動作を制御すると共に、必要に応じて他のＥＣＵ１との間でネットワークＮＷを介したデータの送受信を行う。これにより各ＥＣＵ１は、機器の制御に必要なデータを他のＥＣＵ１から受信することができ、他のＥＣＵ１へ制御に必要とするデータを送信することができる。
【００３２】
ＥＣＵ１は、ＣＰＵ１１、ＲＡＭ（Random Access Memory）１２、ＲＯＭ１３及び通信処理部２０等を備えている。ＲＯＭ１３は、マスクＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）又はフラッシュメモリ等の不揮発性のメモリ素子にて構成されており、車載機器の制御などのためのデータ処理を行う一又は複数のデータ処理プログラム５１が予め記憶されている。ＲＡＭ１２は、ＳＲＡＭ（Static RAM）又はＤＲＡＭ（Dynamic RAM）等のデータ書き換え可能なメモリ素子で構成されており、ＣＰＵ１１に
よるデータ処理に伴って生成されるデータなどを一時的に記憶する。
【００３３】
ＣＰＵ１１は、ＲＯＭ１３に記憶されたデータ処理プログラム５１を実行することによってデータ処理を行い、データ処理の処理結果に応じた車載機器の制御を行う。即ち、ＣＰＵ１１はデータ処理プログラム５１を実行することによって、データ処理手段５３として動作する。また、ＣＰＵ１１は、複数のデータ処理プログラム５１を並列的に実行することができ（時分割又は周期的に複数のデータ処理プログラム５１を実行する形態であってよい）、複数のデータ処理手段５３として動作することができる。なお、ＣＰＵ１１は、ＲＯＭ１３からデータ処理プログラム５１を読み出してＲＡＭ１２に記憶し、ＲＡＭ１２に記憶したデータ処理プログラム５２を実行する構成であってもよい。
【００３４】
通信処理部２０は、車輌に搭載された他のＥＣＵ１の通信処理部２０とネットワークＮＷを介して接続されている。通信処理部２０は、ＣＰＵ１１のデータ処理手段５３からの送信要求に応じて他のＥＣＵ１へデータの送信を行う送信処理、受信要求に応じて他のＥＣＵ１からのデータを受信してデータ処理手段５３へ与える受信処理、データ送信の成否を時間経過で判定するタイムアウト判定処理、及びタイムアウトが発生した際の例外処理を行うタイムアウト処理等の通信処理を行う。図２は、通信処理部２０の構成を示すブロック図である。なお、図２においては、ＣＰＵ１１にて３つのデータ処理プログラム５２が実行されて、ＣＰＵ１１が３つのデータ処理手段５３として動作している状態を図示してある。また、３つのデータ処理手段５３を区別するために、各データ処理手段には５３ａ〜５３ｃの符号を付してある。
【００３５】
データ処理手段５３ａ〜５３ｃは、通信処理部２０へデータの送信を要求する場合、送信要求にＩＤ、送信データ、タイムアウト時間及びタイムアウト処理等の情報を付して通信処理部２０へ与える。ここでＩＤは、各データ処理手段５３ａ〜５３ｃに一意的に与えられる識別子である。送信データは、他のＥＣＵ１へ送信するデータそのもの又はデータが記憶されたＲＡＭ１２のアドレス（ポインタ）である。タイムアウト時間は、データの送信処理をタイムアウトと判定する閾値である。タイムアウト処理は、タイムアウトが発生した場合に行われる例外処理のプログラムが記憶されたＲＡＭ１２又はＲＯＭ１３のアドレス（ポインタ）である。
【００３６】
同様に、データ処理手段５３ａ〜５３ｃは、他のＥＣＵ１からのデータの受信を通信処理部２０へ要求する場合、受信要求にＩＤ、タイムアウト時間及びタイムアウト処理等の情報を付して通信処理部２０へ与える。
【００３７】
このように、送信要求／受信要求と共にタイムアウト時間及びタイムアウト処理の情報を通信処理部２０へ与える構成とすることによって、各データ処理手段５３ａ〜５３ｃは異なるタイムアウト時間で通信処理を待機することができ、異なる内容のタイムアウト処理を行うことができる。
【００３８】
通信処理部２０は、通信部２１、タイムアウトテーブル２２及びタイマ２３等を有している。通信部２１は、ネットワークＮＷに接続されており、データ処理手段５３ａ〜５３ｃからの送信要求に係る送信データを予め定められたプロトコルに応じたデータ形式（パケットなど）に変換して他のＥＣＵ１へ送信する。受信要求に応じて他のＥＣＵ１からデータを受信した場合には、通信部２１は、データの受信完了を通知する応答（所謂ＡＣＫ（ACKnowledgement））を他のＥＣＵ１へ送信すると共に、受信したデータをデータ処理手段５３ａ〜５３ｃの処理に適したデータ形式に変換し、このデータを必要とするデータ処理手段５３ａ〜５３ｃへ与える。タイマ２３は、通信処理部２０が行う送信／受信等の通信処理に係る処理時間などを計時するための計時手段である。タイマ２３は、通信処理部２０の演算処理回路などと独立して設けられた個別のタイマＩＣ（Integrated Circuit）などを用いる構成であってもよく、演算処理回路内のカウンタなどを用いて計時を行う構成であってもよい。
【００３９】
しかし、ＥＣＵ１間でのデータの送受信は必ずしも成功するとは限らない。例えば、ネットワークＮＷが切断されているなどの不具合が生じている場合には、ＥＣＵ１は切断個所より先へのデータの送信を行うことはできず、切断箇所より先のＥＣＵ１からデータの受信を行うことはできない。また例えば、ネットワークＮＷ上のデータの通信量が増加して、優先度の高いＥＣＵ１にネットワークＮＷを占有された場合などには、優先度の低いＥＣＵ１は長時間に亘ってデータを送信／受信する権利を取得できずに送信／受信処理を待機する。このような要因によって他のＥＣＵ１との通信を行うことができない場合、データの送信要求／受信要求を通信処理部２０へ与えたデータ処理手段５３ａ〜５３ｃの処理が停止し続ける虞がある。
【００４０】
そこでＥＣＵ１の通信処理部２０は、タイマ２３を用いてデータの送信／受信の処理が一定時間に完了したか否かを調べる。通信処理部２０は、一定時間内に送信／受信が完了しない場合にはタイムアウトが発生したと判定し、データの送信／受信を中断して予め設定されたタイムアウト処理を行う。また、通信処理部２０は、データ処理手段５３ａ〜５３ｃからの送信要求／受信要求に応じたデータの送信／受信処理の処理状態などタイムアウトに係る情報と、データ処理手段５３ａ〜５３ｃから送信要求／受信要求と共に与えられた情報とをタイムアウトテーブル２２に記憶して、通信処理のタイムアウトの管理を行っている。タイムアウトテーブル２２は、通信処理部２０が有するメモリ又はレジスタ等にて実現されるものとするが、ＥＣＵ１のＲＡＭ１２又はＲＯＭ１３の一部を利用する構成であってもよい。
【００４１】
図３は、本発明の実施の形態１に係るＥＣＵ１のタイムアウトテーブル２２の一構成例を示す模式図である。なお本例では、通信処理部２０は１つのデータ処理手段５３ａ〜５３ｃから１つずつの送信要求又は受信要求を受け付けることができるものとし、各データ処理手段５３ａ〜５３ｃから送信要求／受信要求をそれぞれ受け付けてＦＩＦＯ（First In First Out）又は優先度に基づく順位決定法等により送信／受信順位のスケジューリングを行ってデータの送信／受信処理を行うものとする。タイムアウトテーブル２２には、各データ処理手段５３ａ〜５３ｃについて、ＩＤ、タイムアウト時間、経過時間、送信フラグ、受信フラグ及びタイムアウト処理等の情報が記憶してある。
【００４２】
タイムアウトテーブル２２に記憶されるＩＤは、データ処理手段５３ａ〜５３ｃに一意的に付された識別子であり、送信要求／受信要求と共にデータ処理手段５３ａ〜５３ｃから与えられたものである。図示の例では、データ処理手段５３ａのＩＤは１であり、データ処理手段５３ｂのＩＤは２であり、データ処理手段５３ｃのＩＤは３である。タイムアウトテーブル２２に記憶されるタイムアウト時間は、データの送信／受信処理をタイムアウトと判定する閾値であり、例えばタイムアウト時間が１．００秒の場合にはタイマ２３による計時が１．００秒を超えた場合に通信処理部２０は送信／受信処理をタイムアウトと判定する。このタイムアウト時間は、データ処理手段５３ａ〜５３ｃから送信要求／受信要求と共に与えられる。また、タイムアウトテーブル２２に記憶される経過時間は、タイマ２３による計時結果であり、送信要求／受信要求の受付後の経過時間を示している。
【００４３】
タイムアウトテーブル２２に記憶される送信フラグは、各送信要求に対する送信処理の処理状態を示す１ビットの情報である。送信フラグの値が０の場合は、送信要求に係るデータが未送信又は送信中であることを示しており、また、送信フラグが１の場合は、データの送信が完了したか又はタイムアウトしたことを示している。同様に、受信フラグは、各受信要求に対する受信処理の処理状態を示す１ビットの情報である。受信フラグが０の場合は、受信要求に係るデータの受信が完了していないことを示しており、また、受信フラグが１の場合は、データの受信が完了したか又はタイムアウトしたことを示している。通信処理部２０は、データ処理手段５３ａ〜５３ｃから送信要求／受信要求を受け付けた場合、この送信要求／受信要求に係る送信フラグ及び受信フラグを共に０に設定してタイマ２３による計時を開始する。その後、通信処理部２０は、データの送信／受信が完了した場合又はタイマ２３による計時がタイムアウト時間を超えた場合に送信フラグ／受信フラグを１に設定して、送信／受信処理を中断する。
【００４４】
タイムアウトテーブル２２に記憶されるタイムアウト処理は、タイムアウトが発生した場合に行われる例外処理のプログラムが記憶されたＲＡＭ１２又はＲＯＭ１３のアドレスであり、データ処理手段５３ａ〜５３ｃから送信要求／受信要求と共に与えられるものである（ただし、図示の例では、タイムアウト処理のアドレスに代えてタイムアウト処理を行うプログラム（関数）の名称を記載してある）。タイムアウトが発生した場合、通信処理部２０は、タイムアウトテーブル２２からタイムアウト処理のアドレスを取得し、ＲＡＭ１２又はＲＯＭ１３のこのアドレスに記憶されたプログラムをＣＰＵ１１に実行させることによってタイムアウト処理を行う。
【００４５】
本実施の形態に係るＥＣＵ１においては、タイムアウトテーブル２２に対する情報の記憶（設定）及び情報の変更は通信処理部２０が行い、データ処理手段５３ａ〜５３ｃによるタイムアウトテーブル２２の情報の変更は禁止されている。即ち、データ処理手段５３ａ〜５３ｃは、タイムアウトテーブル２２に対する直接的な情報の変更を行うことができず、通信処理部２０へ送信要求／受信要求を与えることによってのみ間接的にタイムアウトテーブル２２に対する情報の変更を行うことができるようにしてある。なお、本実施の形態においてはデータ処理手段５３ａ〜５３ｃによるタイムアウトテーブル２２に記憶された情報の読み出しは許可されているものとするが、読み出しについても禁止する構成であってもよい。
【００４６】
データ処理手段５３ａ〜５３ｃによるタイムアウトテーブル２２の情報の直接的な変更を禁止することによって、例えばデータ処理手段５３ａがデータ処理手段５３ｂの送信／受信処理に係る送信フラグ／受信フラグを変更するなどの不正な処理が行われることがない。また例えば、データ処理手段５３ａが自らの送信要求／受信要求に係る送信／受信処理が完了する前にこの送信／受信処理に係る送信フラグ／受信フラグを変更するなどの不正な処理が行われることがない。よって、データ処理手段５３ａ〜５３ｃに設計ミスなどの要因で不正な処理を行うものが含まれている場合であっても、正常なその他のデータ処理手段５３ａ〜５３ｃの送信／受信処理に不具合が生じることがない。
【００４７】
図４及び図５は、本発明の実施の形態１に係るＥＣＵ１の通信処理部２０が行う通信処理の手順を示すフローチャートである。まず、通信処理部２０は、データ処理手段５３から送信要求／受信要求が与えられたか否かを調べ（ステップＳ１）、送信要求／受信要求が与えられていない場合には（Ｓ１：ＮＯ）、送信要求／受信要求が与えられるまで待機する。送信要求／受信要求が与えられた場合（Ｓ１：ＹＥＳ）、通信処理部２０は送信要求／受信要求と共に与えられた情報からＩＤを取得し（ステップＳ２）、取得したＩＤを基にタイムアウトテーブル２２を参照して（ステップＳ３）、このＩＤのデータ処理手段５３に係る通信処理（送信処理／受信処理）が実行中であるか否かを調べる（ステップＳ４）。通信処理が実行中であるか否かは、タイムアウトテーブル２２の送信フラグ／受信フラグが０であるか否かにより判断することができる。通信処理が実行中の場合には（Ｓ４：ＹＥＳ）、送信要求／受信要求元のデータ処理手段５３へ通信不可を通知して（ステップＳ５）、処理を終了する。
【００４８】
送信要求／受信要求元のデータ処理手段５３に係る通信処理が実行中でない場合（Ｓ４：ＮＯ）、通信処理部２０は、送信要求／受信要求と共に与えられた情報をタイムアウトテーブル２２に登録し（ステップＳ６）、送信要求／受信要求元のデータ処理手段５３へ通信可を通知する（ステップＳ７）。なお、タイムアウトテーブル２２へ情報を登録する際に、通信処理部２０は送信フラグ及び受信フラグを０に設定する。その後、通信処理部２０はタイマ２３による計時を開始し（ステップＳ８）、通信処理（データの送信処理又は受信処理）を行う（ステップＳ９）。
【００４９】
次いで、通信処理部２０は、タイマ２３の計時による経過時間が設定されたタイムアウト時間を超えたか否かによりタイムアウトが発生したか否かを調べる（ステップＳ１０）。タイムアウトが発生した場合（Ｓ１０：ＹＥＳ）、通信処理部２０は、タイムアウトテーブル２２の送信フラグ／受信フラグを１に設定し（ステップＳ１１）、タイムアウトテーブル２２に設定されたタイムアウト処理を実行して（ステップＳ１２）、処理を終了する。タイムアウトが発生していない場合（Ｓ１０：ＮＯ）、通信処理部２０は通信処理が完了したか否かを更に調べる（ステップＳ１３）。通信処理が完了していない場合には（Ｓ１３：ＮＯ）、通信処理部２０はステップＳ９へ戻って通信処理を継続して行う。通信処理が完了した場合（Ｓ１３：ＹＥＳ）、通信処理部２０はタイムアウトテーブル２２の送信フラグ／受信フラグを１に設定して（ステップＳ１４）、処理を終了する。（なお、通信処理部２０が送信フラグ／受信フラグを１に設定するとき、送信処理が完了又はタイムアウトした場合に送信フラグのみを１に設定し、受信処理が完了又はタイムアウトした場合に受信フラグのみを１に設定すればよい。）
【００５０】
図６は、データ処理手段５３が行う送信要求／受信要求に係る処理の手順を示すフローチャートである。データ処理手段５３は通信処理部２０へ送信要求／受信要求を与え（ステップＳ２１）、通信処理部２０からの応答として通信可又は通信不可の通知を受け取る。このとき、データ処理手段５３は通信可の通知を受け取ったか否かを調べ（ステップＳ２２）、通信可の通知を受け取っていない場合（Ｓ２２：ＮＯ）、即ち通信不可の通知を受け取った場合には、一定の時間待機して（ステップＳ２３）、ステップＳ２１へ戻って送信要求／受信要求を再度行う。
【００５１】
通信処理部２０から通信可の通知を受け取った場合（Ｓ２２：ＹＥＳ）、データ処理手段５３は通信処理部２０のタイムアウトテーブル２２に記憶された送信フラグ／受信フラグを参照して（ステップＳ２４）、送信要求を行った送信処理に係る送信フラグが１に設定されているか否か、又は、受信要求を行った受信処理に係る受信フラグが１に設定されているか否かを調べる（ステップＳ２５）。送信フラグ／受信フラグが１に設定されていない場合（Ｓ２５：ＮＯ）、即ち送信フラグ／受信フラグが０に設定されている場合には、送信処理の処理状態が未送信若しくは送信中であるか、又は、受信処理の処理状態が未受信若しくは受信中であるため、ステップＳ２４へ戻り、送信フラグ／受信フラグが１に設定されるまで待機する。
【００５２】
送信フラグ／受信フラグが１に設定されている場合（Ｓ２５：ＹＥＳ）、データ処理手段５３は、タイムアウトテーブル２２を参照してタイムアウト時間及び経過時間を比較することによって、送信処理にタイムアウトが発生したか否かを調べる（ステップＳ２６）。データ処理手段５３は、タイムアウトが発生していない場合には（Ｓ２６：ＮＯ）、送信／受信完了時のデータ処理を行い（ステップＳ２７）、またタイムアウトが発生した場合には（Ｓ２６：ＹＥＳ）、タイムアウト発生時のデータ処理を行って（ステップＳ２８）、処理を終了する。
【００５３】
ＣＰＵ１１にてデータ処理手段５３を実現するためのデータ処理プログラム５１は、ＥＣＵ１の設計者又はプログラマ等により作成されてＲＯＭ１３に予め記憶されている。図７は、データ処理プログラム５２の作成手順を示す模式図である。例えばプログラマはプログラミング言語にてＥＣＵ１が行う処理を記述し、ソースプログラム１０１を作成する。ソースプログラム１０１の作成は、ＰＣなどのコンピュータ（図示せず）にてテキストエディタなどのツールを用いることで行うことができる。次いでプログラマは、コンピュータ上でコンパイラ１００を動作させてソースプログラム１０１をコンパイルし、ＥＣＵ１のＣＰＵ１１が解釈・実行することができる命令列で構成されたオブジェクトプログラム（実行プログラム）１０２を取得する。このオブジェクトプログラム１０２をＥＣＵ１のＲＯＭ１３に予め記憶しておくことによって、ＥＣＵ１はデータ処理及び通信処理等を行うことができる。
【００５４】
図８は、本発明の実施の形態１に係るコンパイラ１００が行う処理の手順を示すフローチャートである。プログラマによって起動されたコンパイラ１００は、まず、プログラマによって指定されたソースプログラム１０１の読み込みを行って（ステップＳ４１）、ソースプログラム１０１の字句解析を行う（ステップＳ４２）。字句解析は、プログラミング言語にて記述されたソースプログラム１０１を、キーワード、識別子及びシンボル名等の字句に分割する処理である。字句解析の結果からコンパイラ１００はソースプログラム１０１の記述に誤り（エラー）が含まれているか否かを判定し（ステップＳ４３）、エラーが含まれている場合には（Ｓ４３：ＹＥＳ）、エラーメッセージを出力して（ステップＳ４９）、処理を終了する。
【００５５】
ソースプログラム１０１にエラーが含まれていない場合（Ｓ４３：ＮＯ）、コンパイラ１００は字句解析にて得られる字句を基に構文解析を行う（ステップＳ４４）。構文解析は、ソースプログラム１０１の記述がプログラミング言語に定められた文法規則に適合するかを解析する処理である。構文解析の結果からコンパイラ１００はソースプログラム１０１の記述にエラーが含まれているか否かを判定し（ステップＳ４５）、エラーが含まれている場合には（Ｓ４５：ＹＥＳ）、エラーメッセージを出力して（ステップＳ４９）、処理を終了する。
【００５６】
ソースプログラム１０１にエラーが含まれていない場合（Ｓ４５：ＮＯ）、コンパイラ１００はソースプログラム１０１に含まれる送信要求及び受信要求を抽出し（ステップＳ４６）、送信要求及び受信要求と共に必要な情報が全て設定されているか否かを調べる（ステップＳ４７）。本実施の形態においては、通信処理部２０が送信／受信処理を行うために必要な情報として、図２に示すようにＩＤ、送信データ、タイムアウト時間及びタイムアウト処理の情報をプログラマがソースプログラム１０１にて設定するものとし、コンパイラ１００はこれらの情報が全て設定されているか否かを調べる。またこのときに、コンパイラ１００は設定された情報が正当な値であるか否かを更に判定してもよい。
【００５７】
必要な情報が１つでも設定されていない場合には（Ｓ４７：ＮＯ）、コンパイラ１００は、エラーメッセージを出力して（ステップＳ４９）、処理を終了する。必要な情報が全て設定されている場合には（Ｓ４７：ＹＥＳ）、コンパイラ１００は、ソースプログラム１０１をオブジェクトプログラム１０２に変換して（ステップＳ４８）、処理を終了する。なお、ステップＳ４６及びＳ４７の処理は、ステップＳ４４及びＳ４５の構文解析に含まれていてもよい。
【００５８】
本実施の形態に係るコンパイラ１００は、送信要求及び受信要求と共に必要な情報が設定されていない場合にはソースプログラム１０１のコンパイルを行わない。例えば送信要求と共にタイムアウト時間が設定されていない場合にデフォルトのタイムアウト時間を自動的に設定することも可能である。しかし、デフォルトのタイムアウト時間とは異なるタイムアウト時間を設定する必要があるときに、プログラマのミスによってタイムアウト時間が設定されていない場合、ＥＣＵ１のデータ処理及び通信処理等に不具合が生じる虞がある。よって本実施の形態に係るコンパイラ１００は、必要な情報が設定されていない場合にデフォルトの値を自動的に設定せず、エラーとしてコンパイルを中止する構成とし、プログラムミスに伴うＥＣＵ１の不具合を防止する。
【００５９】
以上の構成の実施の形態１に係る通信装置（ＥＣＵ１）においては、通信処理部２０が通信処理に係る情報をタイムアウトテーブル２２にて管理し、データ処理手段５３による直接的なタイムアウトテーブル２２の情報変更を禁止する構成とすることにより、タイムアウトテーブル２２に記憶された情報が予期せぬ処理によって変更されることがなく、通信処理に伴う不具合の発生を低減することができる。また、実施の形態１に係るコンピュータプログラム（コンパイラ１００）においては、ソースプログラム１０１から送信要求及び受信要求を抽出し、送信／受信処理に必要な情報が抽出した送信要求／受信要求に全て含まれているか否かを判定し、１つでも含まれていない場合にはオブジェクトプログラム１０２への変換を行わない構成とすることにより、プログラマによるミスが発生し難いデータ処理プログラム５１の設計・開発環境を提供できるため、プログラムミスによって必要な情報が正しく設定されていない送信要求／受信処理がデータ処理手段５３にてなされることがなく、ＥＣＵ１にて通信処理に伴う不具合が発生する虞を低減することができる。
【００６０】
なお、本実施の形態においては、送信要求に含まれる情報（送信処理に必要な情報）としてＩＤ、送信データ、タイムアウト時間及びタイムアウト処理を例示したが、これに限らず、これらの情報の一部又は全部を含まない構成であってもよく、更に他の情報を含む構成であってもよい。同様に、受信要求に含まれる情報（受信処理に必要な情報）としてＩＤ、タイムアウト時間及びタイムアウト処理を例示したが、これに限らず、これらの情報の一部又は全部を含まない構成であってもよく、更に他の情報を含む構成であってもよい。また、図３に示したタイムアウトテーブル２２の構成は一例であってこれに限るものではなく、例えば送信フラグの他にタイムアウトが発生したか否かを示すタイムアウトフラグを設けるなど、その他の構成であってもよい。また、図１において通信処理部２０はＣＰＵ１１及びＲＡＭ１２等と異なるハードウェアとして示してあるが、これに限るものではなく、通信処理プログラムをＣＰＵ１１が実行することによって通信処理部を実現する構成であってもよく、通信処理部２０の一部分のみをソフトウェア化する構成であってもよい。また、データ処理手段５３がタイムアウトテーブルの送信フラグ／受信フラグを参照することによって通信完了の判断を行う構成としたが、これに限るものではなく、通信処理が完了した場合に通信処理部２０がデータ処理手段に割り込みなどで通信完了を通知する構成としてもよい。また、通信処理部２０が送信処理及び受信処理の両方を行う構成としたが、これに限るものではなく、送信処理のみを行う送信処理部と受信処理のみを行う受信処理部とを別に設ける構成としてもよい。また、タイムアウトテーブルは送信用と受信用とで別に設けてもよい。
【００６１】
また、コンパイラ１００は送信要求／受信要求と共に必要な情報が設定されていない場合にコンパイルを行わない構成としたが、例えばデフォルトの値を設定しても通信に不具合が発生する虞がないことが確実である情報に関しては、デフォルトの値を設定してコンパイルを行う構成としてもよい。
【００６２】
また、ソースプログラム１０１をオブジェクトプログラム１０２へ変換するコンパイラ１００が送信要求／受信要求に必要な情報が含まれているか否かをチェックする構成としたが、これに限るものではなく、送信要求／受信要求に必要な情報が含まれているか否かをチェックするのみでオブジェクトプログラム１０２への変換を行わない構成のコンピュータプログラムとしてよい。このようなコンピュータプログラムは、図８に示したフローチャートにおいて、ステップＳ４８の処理を行わない構成とすることで実現できる。
【００６３】
（実施の形態２）
実施の形態２においては、通信処理部２０がデータ処理手段５３からの送信要求／受信要求を受け付けてタイムアウトテーブル２２の対応する送信フラグ／受信フラグを１から０に更新する場合に、この送信フラグ／受信フラグとは無関係の他のデータ処理手段５３からの送信要求／受信要求によって通信処理部２０が送信フラグ／受信フラグの更新を誤って行うことを防止することができる構成について説明する。図９は、本発明の実施の形態２に係るＥＣＵ１のタイムアウトテーブル２２の一構成例を示す模式図である。実施の形態２のタイムアウトテーブル２２は、図３に示す実施の形態１のタイムアウトテーブル２２に送信要求／受信要求元アドレスの情報を追加した構成である。
【００６４】
実施の形態２の通信処理部２０は、データ処理手段５３から送信要求／受信要求を受け付ける際に、このデータ処理手段５３に係るデータ処理プログラム５１又は５２が記憶されたＲＯＭ１３又はＲＡＭ１２のアドレスを取得してその他の情報と共にタイムアウトテーブル２２に記憶する。また、送信要求／受信要求元のデータ処理手段５３に係る情報が既にタイムアウトテーブル２２に記憶されている場合には、通信処理部２０は既に記憶された送信要求／受信要求元アドレスと新たに送信要求／受信要求を受け付けたデータ処理手段５３に係るアドレスとを比較する。通信処理部２０は、両アドレスが一致する場合にのみタイムアウトテーブル２２の情報を更新して通信処理を開始し、両アドレスが一致しない場合にはタイムアウトテーブル２２を更新せず、通信処理を開始しない。
【００６５】
図１０は、通信処理部２０による送信要求／受信要求元アドレスの取得方法を説明するための模式図である。本図においては、データ処理手段５３をなすデータ処理プログラム５１又は５２にて”送信（）”の関数を呼び出すことによって通信処理部２０への送信要求が与えられるものとし、関数”送信（）”が通信処理部２０にデータの送信処理を行わせる送信処理プログラムであるものとする（なお、受信処理については、送信処理と同様であるため図示及び説明を省略する）。ＥＣＵ１のＣＰＵ１１は、データ処理プログラム５１又は５２を実行して関数”送信（）”の呼び出し（送信要求）が行われた場合、レジスタのスタック領域に関数の呼び出し元のアドレスを作業変数の値などと共に記憶して、呼び出された関数（送信処理プログラム）の処理を開始する。送信処理プログラムの処理が終了した後、ＣＰＵ１１はレジスタのスタック領域から呼び出し元のアドレスを取得して、データ処理プログラム５１又は５２の処理を再開する。よって、通信処理部２０（送信処理プログラム）は、送信処理の開始時にＣＰＵ１１のレジスタのスタック領域を参照することにより、データ処理プログラム５１又は５２の送信要求元アドレスを取得することができる。
【００６６】
図１１は、本発明の実施の形態２に係るＥＣＵ１の通信処理部２０が行う通信処理の手順を示すフローチャートである。まず、通信処理部２０は、データ処理手段５３から送信要求／受信要求が与えられたか否かを調べ（ステップＳ６１）、送信要求／受信要求が与えられていない場合には（Ｓ６１：ＮＯ）、送信要求／受信要求が与えられるまで待機する。送信要求／受信要求が与えられた場合（Ｓ６１：ＹＥＳ）、通信処理部２０は、ＣＰＵ１のレジスタのスタック領域から送信要求／受信要求元アドレスを取得すると共に（ステップＳ６２）、送信要求／受信要求と共に与えられた情報からＩＤを取得し（ステップＳ６３）、取得したＩＤを基にタイムアウトテーブル２２を参照する（ステップＳ６４）。
【００６７】
次いで、通信処理部２０は、タイムアウトテーブル２２に送信要求／受信要求元のデータ処理手段５３に係る情報が既に登録されているか否かを調べる（ステップＳ６５）。タイムアウトテーブル２２に情報が登録されていない場合（Ｓ６５：ＮＯ）、このデータ処理手段５３に係る通信処理は行われていないため、通信処理部２０は送信要求／受信要求に係る通信処理を開始する（ステップＳ６８）。タイムアウトテーブル２２に情報が登録されている場合（Ｓ６５：ＹＥＳ）、通信処理部２０は、タイムアウトテーブル２２の送信要求／受信要求元アドレスと、ステップＳ６２にて取得した送信要求／受信要求元アドレスとが一致するか否かを更に調べる（ステップＳ６６）。両アドレスが一致しない場合（Ｓ６６：ＮＯ）、通信処理部２０は、データ処理手段５３に通信不可を通知して（ステップＳ６９）、処理を終了する。
【００６８】
両アドレスが一致する場合には（Ｓ６６：ＹＥＳ）、通信処理部２０は、タイムアウトテーブル２２の送信フラグ／受信フラグが０であるか否かを判断することにより、送信要求／受信要求元のデータ処理手段５３に係る通信処理が既に実行中であるか否かを更に調べる（ステップＳ６７）。通信処理が実行中でない場合（Ｓ６７：ＮＯ）、通信処理部２０は通信処理を開始する（ステップＳ６８）。通信処理が実行中の場合（Ｓ６７：ＹＥＳ）、通信処理部２０は、データ処理手段５３に通信不可を通知して（ステップＳ６９）、処理を終了する。なお、ステップＳ６８にて通信処理を開始した後の処理は、図４及び図５に示したフローチャートのステップＳ６以降の処理と同じであるため図示及び説明を省略する。
【００６９】
以上の構成の実施の形態２に係る通信装置（ＥＣＵ１）においては、通信処理部２０が送信要求／受信要求を受け付けたデータ処理手段５３のアドレスをタイムアウトテーブル２２に記憶しておき、その後にタイムアウトテーブル２２の送信フラグ／受信フラグなどの情報の変更を要する送信要求／受信要求を受け付けた場合に、記憶しておいたアドレスと新たに送信要求／受信要求を受け付けたアドレスとが一致するか否かを判定し、一致しない場合には新たに受け付けた送信要求／受信要求に係る通信処理を行わない構成とすることによって、不正なデータ処理手段５３の送信要求／受信要求に基づくタイムアウトテーブル２２の情報変更が行われることを防止でき、通信処理に伴うＥＣＵ１の不具合の発生を低減できる。
【００７０】
なお、タイムアウトテーブル２２に記憶する送信要求／受信要求元アドレスをＣＰＵ１１のレジスタのスタック領域から通信処理部２０が取得する構成としたが、これに限るものではなく、その他の方法でアドレスを取得する構成であってもよい。また、タイムアウトテーブル２２に記憶する送信要求／受信要求元アドレスは、各データ処理手段５３を区別することができるアドレスであればよい。
【００７１】
なお、実施の形態２に係る通信装置（ＥＣＵ１）のその他の構成は、実施の形態１に係る通信装置の構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【００７２】
（変形例）
上述の実施の形態２に係る通信装置は、アドレスが一致するか否かを判定することで不正なデータ処理手段５３によるタイムアウトテーブル２２の情報の更新を防止する構成であるが、通信処理部２２の構成によっては送信要求／受信要求に係るアドレスをスタックから取得することが難しい場合がある。以下に示す変形例の通信装置は、各データ処理手段５３と、これらが発する各送信要求／受信要求とに、それぞれ異なる識別子を付しておき、これらの識別子を基に不正な情報更新を防止する構成である。
【００７３】
図１２は、本発明の実施の形態２の変形例に係るＥＣＵ１の通信処理部２０が行う通信処理を説明するための模式図である。上述の実施の形態１及び２と同様に、変形例に係るＥＣＵ１では通信処理部２０に対して複数のデータ処理手段５３ａ〜５３ｃが送信要求／受信要求を与えることができ、各データ処理手段５３ａ〜５３ｃにはそれぞれ異なる８ビットの値を有するＩＤ（本変形例においては処理ＩＤ（第１識別子）という）が付されている。
【００７４】
また、通信処理部２０へ送信要求／受信要求を与える場合、データ処理手段５３ａ〜５３ｃは、送信要求／受信要求ごとに異なる８ビットの値を有する要求番号（第２識別子）を付し、送信／受信処理に必要な情報として処理ＩＤと共に要求番号を通信処理部２０へ与える。
【００７５】
なお、本変形例において、各データ処理手段５３ａ〜５３ｃは、同じ要求番号を有する送信要求／受信要求を通信処理部２０へ与えることによって、以前の送信要求／受信要求に係る通信処理の処理内容の変更又は停止等を行うことができる。
【００７６】
通信処理部２０は、データ処理手段５３ａ〜５３ｃから送信要求／受信要求と共に与えられた処理ＩＤ及び要求番号を合成することによって要求ＩＤ（第３識別子）を生成する。要求ＩＤの生成は、例えば図示のように、８ビットの処理ＩＤと８ビットの要求番号とを連結して１６ビットのデータを生成すればよい。ただし、要求ＩＤの生成方法はこれに限らず、処理ＩＤ及び要求番号に対して加算、減算、積算、除算又は排他的論理和演算等の演算を行って生成してもよく、その他の演算により生成してもよい。
【００７７】
要求ＩＤを生成した通信処理部２０は、この要求ＩＤをタイムアウトテーブル２２に記憶する。図１３は、本発明の実施の形態２の変形例に係るＥＣＵ１のタイムアウトテーブル２２の一構成例を示す模式図である。変形例のタイムアウトテーブル２２に記憶される情報は、図３に示した実施の形態１のタイムアウトテーブル２２と略同じであり、データ処理手段５３ａ〜５３ｃのＩＤ（処理ＩＤ）に代えて要求ＩＤが記憶されている点が異なる。
【００７８】
また、送信要求／受信要求が与えられたときに、送信要求／受信要求元のデータ処理手段５３ａ〜５３ｃに係る情報が既にタイムアウトテーブル２２に記憶されている場合には、通信処理部２０は、既に記憶された要求ＩＤと、新たに受け付けた要求ＩＤとを比較する。通信処理部２０は、この２つの要求ＩＤが一致する場合にのみタイムアウトテーブル２２の情報を更新して送信要求／受信要求に係る通信処理を開始し、要求ＩＤが一致しない場合にはタイムアウトテーブル２２を更新せず、通信処理を開始しない。
【００７９】
なお、タイムアウトテーブル２２に記憶された情報は、この情報に係る通信処理が完了した後又はタイムアウトした後に、適宜のタイミングで削除されるものとする。情報の削除は、例えばデータ処理手段５３ａ〜５３ｃから通信処理部２０へ送信／受信待ちの状態を脱した旨を通知する構成とし、この通知に応じて通信処理部２０が情報を削除する構成とすることができる。また例えば、通信処理の完了後又はタイムアウト後、所定時間が経過した場合に通信処理部２０が情報を削除する構成とすることができる。更には、これら以外の方法でタイムアウトテーブル２２に記憶された情報の削除を行ってもよい。
【００８０】
図１４は、本発明の実施の形態２の変形例に係るＥＣＵ１の通信処理部２０が行う通信処理の手順を示すフローチャートである。まず、通信処理部２０は、データ処理手段５３ａ〜５３ｃから送信要求／受信要求が与えられたか否かを調べ（ステップＳ１０１）、送信要求／受信要求が与えられていない場合には（Ｓ１０１：ＮＯ）、送信要求／受信要求が与えられるまで待機する。送信要求／受信要求が与えられた場合（Ｓ１０１：ＹＥＳ）、通信処理部２０は、送信要求／受信要求と共に与えられる処理ＩＤ及び要求番号を取得し（ステップＳ１０２）、取得した処理ＩＤ及び要求番号を基に要求ＩＤを生成して（ステップＳ１０３）、タイムアウトテーブル２２を参照する（ステップＳ１０４）。
【００８１】
次いで、通信処理部２０は、タイムアウトテーブル２２に送信要求／受信要求元のデータ処理手段５３ａ〜５３ｃに係る情報が既に登録されているか否かを調べる（ステップＳ１０５）。タイムアウトテーブル２２に情報が登録されていない場合（Ｓ１０５：ＮＯ）、このデータ処理手段５３ａ〜５３ｃに係る通信処理は行われていないため、通信処理部２０は送信要求／受信要求に係る通信処理を開始する（ステップＳ１０８）。タイムアウトテーブル２２に情報が登録されている場合（Ｓ１０５：ＹＥＳ）、通信処理部２０は、タイムアウトテーブル２２に記憶された要求ＩＤと、ステップＳ１０３にて生成した要求ＩＤとが一致するか否かを判定する（ステップＳ１０６）。要求ＩＤが一致しない場合（Ｓ１０６：ＮＯ）、通信処理部２０は、データ処理手段５３ａ〜５３ｃに通信不可を通知して（ステップＳ１０９）、処理を終了する。
【００８２】
要求ＩＤが一致する場合には（Ｓ１０６：ＹＥＳ）、通信処理部２０は、タイムアウトテーブル２２の送信フラグ／受信フラグが０であるか否かを判断することにより、送信要求／受信要求元のデータ処理手段５３ａ〜５３ｃに係る通信処理が既に実行中であるか否かを更に調べる（ステップＳ１０７）。通信処理が実行中でない場合（Ｓ１０７：ＮＯ）、通信処理部２０は通信処理を開始する（ステップＳ１０８）。通信処理が実行中の場合（Ｓ１０７：ＹＥＳ）、通信処理部２０は、データ処理手段５３に通信不可を通知して（ステップＳ１０９）、処理を終了する。なお、ステップＳ１０８にて通信処理を開始した後の処理は、図４及び図５に示したフローチャートのステップＳ６以降の処理と同じであるため図示及び説明を省略する。
【００８３】
以上の構成の変形例に係る通信装置においては、通信処理部２０が送信要求／受信要求を受け付けた場合に、データ処理手段５３ａ〜５３ｃに付された処理ＩＤと送信要求／受信要求に付された要求番号とを基に要求ＩＤを生成してタイムアウトテーブル２２に記憶しておく。その後にタイムアウトテーブル２２の情報の変更を要する送信要求／受信要求を受け付けた場合、通信処理部２０は、記憶しておいた要求ＩＤと新たな送信要求／受信要求に係る要求ＩＤとが一致するか否かを判定し、一致しない場合には新たに受け付けた送信要求／受信要求に係る通信処理を行わない。これらの構成とすることによって、通信装置は、不正なデータ処理手段５３の送信要求／受信要求に基づくタイムアウトテーブル２２の情報変更が行われることを防止でき、送信処理に伴う通信装置の不具合の発生を低減できる。
【００８４】
（実施の形態３）
実施の形態３においては、通信処理部２０がデータ処理手段５３の送信要求／受信要求と共に与えられるタイムアウト処理が正当なものであるか否かを判定することで、不正なタイムアウト処理の実行による不具合の発生を防止できる構成について説明する。図１５は、本発明の実施の形態３に係るＥＣＵ１のＲＡＭ１２及びＲＯＭ１３にて構成されるメモリ空間を説明するための模式図である。実施の形態３に係るＥＣＵ１は、ＲＡＭ１２及びＲＯＭ１３にて構成されるメモリ空間を２つに分けて使用する。メモリ空間の前半領域（アドレスが小さいほうの領域）は、データ処理プログラム５１又は５２を記憶するための記憶領域（命令列記憶領域）である。メモリ空間の後半領域（アドレスが大きいほうの領域）は、データ処理プログラム５１及び５２、並びにその他のプログラムの実行により生成される種々のデータを記憶するための記憶領域（データ記憶領域）である。なお図示の例は、ＲＡＭ１２及びＲＯＭ１３を１つのメモリ空間として扱う構成であるが、これに限るものではなく、ＲＡＭ１２及びＲＯＭ１３をそれぞれ別のメモリ空間として扱う構成であってもよい。また、ＣＰＵ１１は、ＲＯＭ１３の命令列記憶領域に記憶されたデータ処理プログラム５１を直接的に実行してもよく、データ処理プログラム５１をＲＯＭ１３から読み出してＲＡＭ１２の命令列記憶領域に記憶し、ＲＡＭ１２の命令列記憶領域に記憶されたデータ処理プログラム１２を実行してもよい。
【００８５】
通信処理にタイムアウトが発生した場合に実行されるタイムアウト処理のプログラムは、データ処理プログラム５１、５２又は通信処理のためのプログラム等と共にメモリ空間の命令列記憶領域に記憶されており、命令列記憶領域からＣＰＵ１１に読み出されて実行される。データ処理手段５３は、送信要求／受信要求を通信処理部２０へ与える際に、タイムアウト処理のプログラムのアドレスを送信要求／受信要求と共に通信処理部２０へ与えるが、このときにデータ記憶領域の範囲内に含まれるアドレスが通信処理部２０へ与えられた場合、不正なタイムアウト処理のアドレスであり、タイムアウト処理を実行することはできない。そこで、実施の形態３に係るＥＣＵ１の通信処理部２０は、送信要求／受信要求と共に与えられたタイムアウト処理のアドレスが命令列記憶領域内のアドレスであるか否かを判定し、命令列記憶領域内のアドレスでない場合にはこの送信要求／受信要求に係る通信処理を行わないようにしてある。
【００８６】
図１６は、本発明の実施の形態３に係るＥＣＵ１の通信処理部２０が行う通信処理の手順を示すフローチャートである。まず、通信処理部２０は、データ処理手段５３から送信要求／受信要求が与えられたか否かを調べ（ステップＳ７１）、送信要求／受信要求が与えられていない場合には（Ｓ７１：ＮＯ）、送信要求／受信要求が与えられるまで待機する。送信要求／受信要求が与えられた場合（Ｓ７１：ＹＥＳ）、通信処理部２０は、送信要求／受信要求と共に与えられるタイムアウト処理のプログラムのアドレスを取得し（ステップＳ７２）、このアドレスがメモリ空間の命令列記憶領域内のアドレスであるか否かを判定する（ステップＳ７３）。
【００８７】
タイムアウト処理のアドレスが命令列記憶領域内のアドレスである場合（Ｓ７３：ＹＥＳ）、通信処理部２０は通信処理を開始する（ステップＳ７４）。また、タイムアウト処理のアドレスが命令列記憶領域内のアドレスでない場合（Ｓ７３：ＮＯ）、通信処理部２０は、データ処理手段５３に通信不可を通知して（ステップＳ７５）、処理を終了する。なお、ステップＳ７４にて通信処理を開始した後の処理は、図４及び図５に示したフローチャートのステップＳ２以降の処理と同じであるため図示及び説明を省略する。
【００８８】
以上の構成の実施の形態３に係る通信装置（ＥＣＵ１）においては、データ処理手段５３から送信要求／受信要求と共に与えられるタイムアウト処理のプログラムのアドレスが所定のアドレス範囲内（命令列記憶領域内）であるか否かを通信処理部２０にて判定し、このアドレス範囲内でない場合には通信処理を行わない構成とすることにより、タイムアウトが発生した際に不正な処理が行われることを防止することができ、通信処理が停止するなどの不具合が発生する虞を低減することができる。
【００８９】
なお、本実施の形態においては、メモリ空間を命令列記憶領域及びデータ記憶領域に分割し、タイムアウト処理のプログラムのアドレスが命令列記憶領域内であるか否かを判定する構成としたが、これに限るものではなく、例えばメモリ空間にタイムアウト処理のプログラムを記憶する領域を更に設けて、送信要求／受信要求と共に与えられたタイムアウト処理のアドレスがこの領域内であるか否かを判定するなど、判定のためのアドレス範囲をその他のアドレス範囲としてもよい。
【００９０】
なお、実施の形態３に係る通信装置（ＥＣＵ１）のその他の構成は、実施の形態１に係る通信装置の構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【００９１】
（変形例）
上述の実施の形態３に係る通信装置は、タイムアウト処理のプログラムのアドレスが適正な範囲内でなければ通信処理を行わない構成である。これに対して変形例に係る通信装置は、タイムアウト処理のプログラムのアドレスが適正な範囲内でない場合には、予め定められたデフォルトのタイムアウト処理を行う構成である。デフォルトのタイムアウト処理としては、例えば通信処理の停止、又は送信要求／受信要求のキャンセル等の処理を行う構成とすることができるが、これらに限るものではない。また、デフォルトのタイムアウト処理は、通信処理部２０に予め回路又はプログラム等として組み込まれている構成であってもよく、コンパイラ１００が組み込む構成であってもよく、プログラマがあらかじめ作成しておく構成であってもよい。
【００９２】
図１７は、本発明の実施の形態３の変形例に係るＥＣＵ１の通信処理部２０が行うタイムアウト処理の手順を示すフローチャートである。まず、通信処理部２０は、送信要求／受信要求に係る通信処理がタイムアウトしたか否かを判定し（ステップＳ１２１）、タイムアウトしていない場合には（Ｓ１２１：ＮＯ）、通信処理がタイムアウトするまで待機する。通信処理がタイムアウトした場合（Ｓ１２１：ＹＥＳ）、通信処理部２０は、タイムアウトした通信処理に係るタイムアウト処理のプログラムのアドレスをタイムアウトテーブル２２から取得し（ステップＳ１２２）、このアドレスがメモリ空間の命令列記憶領域内のアドレスであるか否かを判定する（ステップＳ１２３）。
【００９３】
タイムアウト処理のアドレスが命令列記憶領域内のアドレスである場合（Ｓ１２３：ＹＥＳ）、通信処理部２０はこのアドレスに記憶された個別のタイムアウト処理を実行し（ステップＳ１２４）、処理を終了する。また、タイムアウト処理のアドレスが命令列記憶領域内のアドレスでない場合（Ｓ１２３：ＮＯ）、通信処理部２０は、予め定められたデフォルトのタイムアウト処理を実行し（ステップＳ１２５）、処理を終了する。
【００９４】
以上の構成の変形例に係る通信装置においては、送信要求／受信要求と共に指定されたタイムアウト処理のプログラムのアドレスが適正な範囲内でない場合に、予め定められたデフォルトのタイムアウト処理を行う構成とすることにより、タイムアウトが発生した際に不正な処理が行われることを防止することができ、通信処理が停止するなどの不具合が発生する虞を低減することができる。
【００９５】
（実施の形態４）
実施の形態４においては、通信処理部２０が備えるタイマ２３に対するタイマセット要求及びタイマリセット要求をデータ処理手段５３がタイマ２３へ（又は通信処理部２０を介して間接的にタイマ２３へ）与えることができる場合に、不正なデータ処理手段５３によるタイマのリセットを防止することができる構成について説明する。図１８は、本発明の実施の形態４に係るＥＣＵ１の構成を説明するための模式図である。
【００９６】
実施の形態４に係るＥＣＵ１では、データ処理プログラム５１又は５２の実行によってＣＰＵ１１上に実現された一又は複数のデータ処理手段５３が、通信処理部２０へ送信要求／受信要求を与えることができると共に、通信処理部２０のタイマ２３へタイマセット要求（タイマ２３にタイムアウト時間を設定して計時を開始させる要求）及びタイマリセット要求（タイマ２３の計時を停止し、計時された時刻を初期値に戻させる要求）を与えることができる。タイマ２３は、設定されたタイムアウト時間に達した場合に、タイムアウトテーブル２２の送信フラグ／受信フラグを１に設定してタイムアウト発生の通知を行うことができる。なお、タイマ２３は複数のデータ処理手段５３からそれぞれ与えられる複数のタイマセット要求及びタイマリセット要求を受け付けて複数の時刻を計時することができ、複数の通信処理に係るタイムアウトの判定を行うことができるものとする。ただし、タイマ２３は、１つのデータ処理手段５３について、１つのタイムアウト判定のみを行うことができるものとする。
【００９７】
また、実施の形態４のタイマ２３は、タイマセット要求を受け付けて計時を開始する際に、このタイマセット要求元のデータ処理手段５３に付されたＩＤを記憶するようにしてある。その後、計時が完了する（タイムアウトが判定される）前にリセット要求が与えられた場合には、タイマ２３はリセット要求に係るＩＤと記憶したＩＤとを比較して、両ＩＤが一致する場合にのみリセットを行うようにしてある。
【００９８】
図１９は、本発明の実施の形態４に係るＥＣＵ１のタイマ２３が行う要求受付処理の手順を示すフローチャートである。まず、通信処理部２０のタイマ２３は、データ処理手段５３からタイマセット要求が与えられたか否かを調べる（ステップＳ８１）。タイマセット要求が与えられていない場合（Ｓ８１：ＮＯ）、タイマ２３はデータ処理手段５３からタイマリセット要求が与えられたか否かを更に調べる（ステップＳ８２）。タイマリセット要求が与えられていない場合（Ｓ８２：ＮＯ）、タイマ２３はステップＳ８１へ戻ってタイマセット要求又はタイマリセット要求が与えられるまで待機する。
【００９９】
データ処理手段５３からタイマセット要求が与えられた場合（Ｓ８１：ＹＥＳ）、タイマ２３は、タイマセット要求と共に与えられるデータ処理手段５３のＩＤを取得し（ステップＳ８３）、取得したＩＤを記憶する（ステップＳ８４）。その後、タイマ２３はタイムアウト時間を設定してタイマセットを行い（ステップＳ８５）、計時処理を開始して（ステップＳ８６）、要求受付処理を終了する。
【０１００】
データ処理手段５３からタイマリセット要求が与えられた場合（Ｓ８２：ＹＥＳ）、タイマ２３は、タイマリセット要求と共に与えられるデータ処理手段５３のＩＤを取得し（ステップＳ８７）、取得したＩＤとステップＳ８４にて記憶したＩＤとが一致するか否かを調べる（ステップＳ８８）。両ＩＤが一致する場合（Ｓ８８：ＹＥＳ）、タイマ２３は計時処理を停止し（ステップＳ８９）、計時した時刻を初期化してタイマリセットを行い（ステップＳ９０）、要求受付処理を終了する。また、両ＩＤが一致しない場合には（Ｓ８８：ＮＯ）、タイマ２３はデータ処理手段５３へエラーを通知して（ステップＳ９１）、要求受付処理を終了する。
【０１０１】
以上の構成の実施の形態４に係る通信装置（ＥＣＵ１）においては、データ処理手段５３からタイマセット要求が与えられた場合にタイマ２３がＩＤを記憶しておき、タイマリセット要求が与えられた場合にＩＤの比較を行って、ＩＤが一致する場合にのみタイマリセットを行う構成とすることによって、異なるＩＤを有する他のデータ処理手段５３による不正なタイマ２３のリセットが行われることを防止でき、通信処理が停止するなどの不具合が発生する虞を低減することができる。
【０１０２】
なお、本実施の形態においては、タイマ２３が複数のデータ処理手段５３からそれぞれ与えられる複数のタイマセット要求及びタイマリセット要求を受け付けることができ、各データ処理手段５３に係る送信処理のタイムアウトを判定することができる構成としたが、これに限るものではなく、タイマ２３が１つの通信処理のタイムアウト判定のみを行う構成であってもよい。
【０１０３】
なお、実施の形態４に係る通信装置（ＥＣＵ１）のその他の構成は、実施の形態１に係る通信装置の構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【符号の説明】
【０１０４】
１  ＥＣＵ（通信装置）
１１  ＣＰＵ（処理部）
１２  ＲＡＭ（メモリ）
１３  ＲＯＭ
２０  通信処理部（送信処理手段、タイムアウト判定手段）
２１  通信部
２２  タイムアウトテーブル
２３  タイマ
５１  データ処理プログラム
５２  データ処理プログラム
５３、５３ａ、５３ｂ、５３ｃ  データ処理手段
１００  コンパイラ（コンピュータプログラム）
１０１  ソースプログラム
１０２  オブジェクトプログラム
【図１】
0005278027.tif 000002
【図２】
0005278027.tif 000003
【図３】
0005278027.tif 000004
【図４】
0005278027.tif 000005
【図５】
0005278027.tif 000006
【図６】
0005278027.tif 000007
【図７】
0005278027.tif 000008
【図８】
0005278027.tif 000009
【図９】
0005278027.tif 000010
【図１０】
0005278027.tif 000011
【図１１】
0005278027.tif 000012
【図１２】
0005278027.tif 000013
【図１３】
0005278027.tif 000014
【図１４】
0005278027.tif 000015
【図１５】
0005278027.tif 000016
【図１６】
0005278027.tif 000017
【図１７】
0005278027.tif 000018
【図１８】
0005278027.tif 000019
【図１９】
0005278027.tif 000020