JP2001265610A - デバイス制御方法 - Google Patents

デバイス制御方法

Info

Publication number
JP2001265610A
JP2001265610A JP2000080167A JP2000080167A JP2001265610A JP 2001265610 A JP2001265610 A JP 2001265610A JP 2000080167 A JP2000080167 A JP 2000080167A JP 2000080167 A JP2000080167 A JP 2000080167A JP 2001265610 A JP2001265610 A JP 2001265610A
Authority
JP
Japan
Prior art keywords
general
client
task
tasks
ports
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
JP2000080167A
Other languages
English (en)
Inventor
Takashi Imai
孝志 今井
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2000080167A priority Critical patent/JP2001265610A/ja
Publication of JP2001265610A publication Critical patent/JP2001265610A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 単純かつ効率よくポートを使用できるととも
に、メッセージの誤受信を引き起こすことがない安定し
たシステムを構築することが可能なデバイス制御方法を
提供する。 【解決手段】 デバイスを直接制御するデバイスドライ
バタスクと、デバイスに対する制御要求を行う二つ以上
のクライアントタスクとを有し、デバイスドライバタス
クとクライアントタスクは、仮想インターフェ一スから
なる複数の汎用ポートを使用してメッセージの送受信を
行い、クライアントタスクが前記デバイスドライバタス
クとの間でメッセージの送受信を行う際に、前記クライ
アントタスクに対して、複数の汎用ポートの中から現在
使用中ではない汎用ポートを割り当てる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、少なくとも1つの
デバイスを、汎用ポートを介して複数のソフトウェアタ
スクから制御するためのデバイス制御方法に関する。
【0002】
【従来の技術】ハードウェアデバイスを制御するには、
その制御手順にしたがったアルゴリズムを組み込んだソ
フトウェアを用いて制御を行う。このようにハードウェ
アデバイスを直接制御する専用のソフトウェアは、デバ
イスドライバと呼ばれている。また、例えば、アプリケ
ーションタスクなどのように、一連のプロセスの中でハ
ードウェアデバイスの制御を行うタスクのことをクライ
アントタスクと呼んでいる。
【0003】近年では、クライアントタスクは、1つの
ハードウェアデバイスに対して1つとは限らず、処理内
容によって複数のクライアントタスクが存在する場合が
殆どである。一般的に、1つのハードウェアデバイスに
対して複数のクライアントタスクを実行することをマル
チタスクと呼んでいる。このようなシステムでは、タス
ク間における命令や応答は、ポートと呼ばれる仮想的な
インターフェースを介してタスク間でメッセージを送受
信することにより行われる。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
た従来のシステムにおいては、以下に説明するような問
題があった。例えば、異なる2つのハードウェアデバイ
スA,Bと、このハードウェアデバイスA,Bを制御す
るための2つのデバイスドライバC,Dと、ハードウェ
アデバイスA,Bを使用する2つのクライアントタスク
a,bと、タスク間におけるメッセージの送受信を行う
ための共通のポートがあったとする。
【0005】クライアントタスクaがハードウェアデバ
イスAを制御する場合には、まずクライアントタスクa
からデバイスドライバCに対して、共通のポートを介し
て命令を送信する。命令を受信したデバイスドライバC
は、ハードウェアデバイスAに対する適切な処理を行な
うため、命令をハードウェアデバイスAに送信する。
【0006】ハードウェアデバイスAにおける処理が完
了すると、ハードウェアデバイスAは、デバイスドライ
バCに対して応答(処理完了の通知)を送信する。この
応答を受信したデバイスドライバCは、クライアントタ
スクaに対して、共通のポートを介して当該応答を送信
する。
【0007】ここで、クライアントタスクaがハードウ
ェアデバイスAを制御して応答を待っている間に、さら
にクライアントタスクbがハードウェアデバイスBを制
御して応答を待っているとする。この時、デバイスドラ
イバCからクライアントタスクaに対する応答が送信さ
れてきたとしても、クライアントタスクbは無関係な応
答だと判断して処理しない。したがって、クライアント
タスクaは応答を受信することができずに、永久に応答
を待ち続けることになる。
【0008】このような問題を解決するためには、クラ
イアントタスクa,b毎に専用ポートを用意すればよ
い。しかしながら、搭載されたメモリや演算装置のパフ
ォーマンスのために、最大ポート数に制限がある場合が
多く、1つのポートにより複数のハードウェアデバイス
A,Bと複数のクライアントタスクa,bとの間でメッ
セージを送受信するシステムの場合には、クライアント
タスクa,b毎に専用ポートを用意することが困難であ
る。
【0009】本発明は、上述した事情に鑑み提案された
もので、少ないポート数しか使用できないシステムであ
っても、単純かつ効率よくポートを使用できるととも
に、メッセージの誤受信を引き起こすことがない安定し
たシステムを構築することが可能なデバイス制御方法を
提供することを目的とする。
【0010】
【課題を解決するための手段】本発明に係るデバイス制
御方法は、上述した目的を達成するため、少なくとも1
つのデバイスを複数のソフトウェアタスクから制御する
ためのデバイス制御方法において、前記デバイスを直接
制御するデバイスドライバと、前記デバイスに対する制
御要求を行う二つ以上のクライアントタスクとを有し、
前記デバイスドライバと前記クライアントタスクは、仮
想インターフェ一スからなる複数の汎用ポートを使用し
てメッセージの送受信を行い、前記クライアントタスク
が前記デバイスドライバとの間でメッセージの送受信を
行う際に、前記クライアントタスクに対して、前記複数
の汎用ポートの中から現在使用中ではない汎用ポートを
選択し割り当てることを特徴とするものである。
【0011】また、前記汎用ポートは使用中においてフ
ラグを立て、また前記汎用ポートがすべて使用中の場
合、一定時間待ってから、汎用ポートを選択し割り当て
る処理を行うことが望ましい。
【0012】このような方法によりデバイスを制御する
ことにより、少ないポートを用いてデバイスを制御する
場合であっても、いわゆるデッドロックを未然に防ぐこ
とが可能となる。
【0013】
【発明の実施の形態】以下、図面に基づいて、本発明に
係るデバイス制御方法の一実施形態を説明する。図1
は、本発明の一実施形態に係るデバイス制御方法におい
て、ソフトウェア側モジュール20とハードウェア側モ
ジュール10の関係を示すブロック図である。
【0014】本発明の一実施形態に係るデバイス制御方
法では、図1に示すように、ハードウェア側モジュール
10として、ハードウェアデバイス11,12が存在
し、ソフトウェア側モジュール20として、デバイスド
ライバ21,22と、汎用ポート部23と、クライアン
トタスク51〜56とが存在するものとして説明を行
う。
【0015】ハードウェア側モジュール10の2つのハ
ードウェアデバイス11,12は、ソフトウェア側モジ
ュール20の2つのデバイスドライバ21,22により
それぞれ直接制御される。また、ハードウェアデバイス
A,Bは、6つのクライアントタスクa〜fによりデバ
イスドライバ21,22を介して制御される。このと
き、デバイスドライバ21,22と、クライアントタス
クa〜fとの間でメッセージを送受信するための汎用ポ
ート部23として、5つの汎用ポート24〜28が用意
されている。この汎用ポート24〜28は、特定のデバ
イスドライバとクライアントタスクに固定されているも
のではなく、どのデバイスドライバとクライアントタス
ク間で用いることが可能である。汎用ポート24〜28
は、クライアントタスク51〜56よりも数は少ない。
【0016】上述したハードウェアデバイス11,12
は、例えば、データを記憶するためのフラッシュメモリ
等のハードウェア素子からなる。また、デバイスドライ
バ21,22は、ハードウェアデバイス11,12を直
接的に制御するための制御ソフトウェアからなる。すな
わち、ハードウェアデバイス11,12を制御するに
は、その制御手順に従ったアルゴリズムを組み込んだデ
バイスドライバ21,22をそれぞれ使用する。
【0017】また、クライアントタスク51〜56は、
例えば、アプリケーションタスクなど一連の処理の中
で、ハードウェアデバイス11,12を制御するための
ソフトウェアからなる。このように、近年におけるアプ
リケーションタスクでは、処理内容によって複数のクラ
イアントタスク51〜56が存在している。このように
クライアントタスク51〜56が複数存在することを、
一般的にマルチタスクと呼んでいる。
【0018】このようなシステムでは、タスク間の命令
30〜36や応答40〜46は、タスク間においてメッ
セージを送受信することにより行われる。このメッセー
ジの送受信は、汎用ポート24〜28を介して行われ
る。また、各汎用ポート24〜28は、それぞれ汎用ポ
ートが使用中であるか否かを示すフラグ1〜5を有して
いる。本実施形態では,汎用ポート24〜27は、デバ
イスドライバ21とクライアントタスク51〜54を結
び、汎用ポート28は、デバイスドライバ22とクライ
アントタスク55を結んでいる。クライアントタスク5
6は、デバイスドライバを使用する状態にはなっていな
い。
【0019】各クライアントタスク51〜56は、汎用
ポート24〜28のうちの一つを介して、デバイスドラ
イバ21,22との間でメッセーシの送受信を行う。こ
こで、汎用ポート24〜28は、クライアントタスク5
1〜56の数(本実施形態では6つ)よりも少ないこと
を前提としているので、この汎用ポート24〜28をク
ライアントタスク51〜56に割り当てるための制御が
必要となる。これら制御はクライアントタスクを処理す
るCPU(制御手段)によって実行される。
【0020】図2に基づいて、本発明の一実施形態に係
るデバイス制御方法を説明する。図2に示すように、例
えば、クライアントタスク51から命令が送信されると
(S1)、汎用ポート24〜28のフラグ1〜5の状態
を検査し、使用中ではない汎用ポートを探して(S
2)、使用中でない汎用ポートが有るか否かを判断する
(S3)。ここで、使用中でない汎用ポートが見つかる
と、使用中でない汎用ポートの中から使用する汎用ポー
ト24を選択し、当該汎用ポート24のフラグを使用中
にセットする(S4)。
【0021】一方、使用中でない汎用ポートが見つから
ない場合には、一定時間をおいた後(S11)、再度、
汎用ポートのフラグを検査する(S2,S3)。これ
は、一定時間経過後に、使用されていた汎用ポートが開
放される場合があるためである。続いて、クライアント
タスク51は、選択した汎用ポート24を介して、デバ
イスドライバ21に対してデバイス制御命令30を送信
する(S5)。デバイス制御命令30を受信したデバイ
スドライバ21は、対応するハードウェアデバイス11
を命令35にて直接制御する(S6)。
【0022】続いて、デバイスドライバ21が制御して
いるハードウェアデバイス11からの応答を待ち(S
7)、ハードウェアデバイスからの応答45を受信する
と、使用している汎用ポート24を介してクライアント
タスク51へ応答40を送信する(S8)。
【0023】応答40を受信したクライアントタスク5
1は、当該応答が自ら送信した命令30に対する応答か
否かを判断する(S9)。ここで、当該応答が自ら送信
した命令30に対する応答である場合には、命令を送信
したクライアントタスク51が使用していた汎用ポート
24のフラグ1をクリアし、当該汎用ポート24の使用
を解除する(S10)。一方、当該応答40が自ら送信
した命令30に対する応答でない場合には、次に送信さ
れてくるハードウェアデバイスからの応答を待つ(S
7)。
【0024】このような制御を行うことにより、異なっ
たクライアントタスク51〜56により同一のポートが
使用されることがなくなる。したがって、従来のデバイ
ス制御方法のように、同時に複数のクライアントタスク
51〜55が動作しており、あるクライアントタスクか
ら送信した命令に対する応答が、他のクライアントタス
クに送信されてしまった場合に、当該命令を送信したク
ライアントタスクが永遠に応答を待ち続けるという不都
合がなくなる。
【0025】
【発明の効果】上述したように、本発明に係るデバイス
制御方法では、クライアントタスクがデバイスドライバ
タスクとの間でメッセージの送受信を行う際に、クライ
アントタスクに対して、複数の汎用ポートの中から現在
使用中ではない汎用ポートを割り当てている。
【0026】したがって、極めて少ない数のポートのみ
しか使用できないようなシステムであっても、単純で効
率よくポートを使用することができるとともに、メッセ
ージの誤受信を引き起こすことがない安定したシステム
を構築することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るデバイス制御方法の
システム構成を示すブロック図である。
【図2】本発明の一実施形態に係るデバイス制御方法の
手順を示すフローチャートである。
【符号の説明】
10 ハードウェア側モジュール 20 ソフトウェア側モジュール 30〜36 命令 40 〜46応答

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのデバイスを複数のソフ
    トウェアタスクから制御するためのデバイス制御方法に
    おいて、 前記デバイスを直接制御するデバイスドライバと、 前記デバイスに対する制御要求を行う二つ以上のクライ
    アントタスクとを有し、 前記デバイスドライバと前記クライアントタスクは、仮
    想インターフェ一スからなる複数の汎用ポートを使用し
    てメッセージの送受信を行い、 前記クライアントタスクが前記デバイスドライバとの間
    でメッセージの送受信を行う際に、前記クライアントタ
    スクに対して、前記複数の汎用ポートの中から現在使用
    中ではない汎用ポートを選択し割り当てることを特徴と
    するデバイス制御方法。
  2. 【請求項2】 前記汎用ポートは.使用中においてフラ
    グを立てることを特徴とする請求項1記載のデバイス制
    御方法。
  3. 【請求項3】 前記汎用ポートがずべて使用中の場合、
    一定時間待ってから、汎用ポートを選択し割り当てる処
    理を行うことを特徴とする請求項1または2記載のデバ
    イス制御方法。
JP2000080167A 2000-03-22 2000-03-22 デバイス制御方法 Pending JP2001265610A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000080167A JP2001265610A (ja) 2000-03-22 2000-03-22 デバイス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000080167A JP2001265610A (ja) 2000-03-22 2000-03-22 デバイス制御方法

Publications (1)

Publication Number Publication Date
JP2001265610A true JP2001265610A (ja) 2001-09-28

Family

ID=18597312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000080167A Pending JP2001265610A (ja) 2000-03-22 2000-03-22 デバイス制御方法

Country Status (1)

Country Link
JP (1) JP2001265610A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186718A (ja) * 2010-03-08 2011-09-22 Seiko Epson Corp 制御装置、制御装置の制御方法、及び、プログラム
JP2013089204A (ja) * 2011-10-21 2013-05-13 Canon Imaging Systems Inc 情報処理装置、その制御方法、およびデバイス制御システム
US8964213B2 (en) 2009-07-17 2015-02-24 Seiko Epson Corporation Communication control method and control program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8964213B2 (en) 2009-07-17 2015-02-24 Seiko Epson Corporation Communication control method and control program
JP2011186718A (ja) * 2010-03-08 2011-09-22 Seiko Epson Corp 制御装置、制御装置の制御方法、及び、プログラム
JP2013089204A (ja) * 2011-10-21 2013-05-13 Canon Imaging Systems Inc 情報処理装置、その制御方法、およびデバイス制御システム

Similar Documents

Publication Publication Date Title
JP2002041449A (ja) バスシステム及びその実行順序の調整方法
JPH07210519A (ja) データ転送制御方法および送受信制御装置
JP2001265610A (ja) デバイス制御方法
JPS5833970B2 (ja) プロセッサ間通信方式
JPH11265297A (ja) 分散シミュレータシステム
US5797040A (en) Computer system having system bus which couples adapter and processing units and requires acquisition for data transmission thereover
JPH1165623A (ja) プログラマブルコントローラ
JP3893787B2 (ja) 通信方法
JPH06295289A (ja) 複数計算機におけるブート方法
JP3350699B2 (ja) プログラマブルコントローラ
JPS58182737A (ja) 情報処理装置
KR960006472B1 (ko) TICOM IOP 환경에서 FDDI펌웨어(firmware) 구동방법
JPH05244217A (ja) 通信制御方式
JP3362673B2 (ja) チャネルコントロール装置
JPH04274524A (ja) プロセス間通信制御方式
JPH10320345A (ja) バスコントローラ
JPH05233525A (ja) I/o処理装置
JPH0350662A (ja) 並列計算機の処理制御方式
KR20050099660A (ko) 멀티프로세서 시스템에서의 데이터 동기 방법
JPH06138917A (ja) プログラマブル・コントローラ
JPH08221106A (ja) プログラマブルコントローラ
JPS61163455A (ja) チャネル制御方法
JP2000029850A (ja) オペレーティングシステムのプロセッサ間通信を使用したタスク制御方法
JP2001242915A (ja) プログラマブルコントローラのメッセージ通信方法
JPH11161620A (ja) 通信方法及び通信装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051018