(57)【要約】【課題】  制御データを誤りなく入出力デバイスに書込むことができる信頼性にすぐれたデータ入出力制御装置を提供する。【解決手段】  ＣＰＵ１は、必要な制御指令に対応する入力端子をアドレス指定し、かつ全てのビットが論理“１”となる１６ビットの制御データを出力する。ＧＰＩＯ３０は、各入力端子に入力される制御データのうち上記アドレス指定された入力端子への入力制御データのみ取込み、取込んだ制御データを同アドレス指定された入力端子に対応するフリップフロップで保持することにより、同フリップフロップに対応する出力端子のビットのみ論理“１”となって残りの出力端子のビットは論理“１”とならない制御データを各出力端子から出力する。【選択図】図４
2012053762.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機器に対する制御データを発するコントローラと、
このコントローラに接続される複数の入力端子、および前記制御対象機器に接続される複数の出力端子を有し、前記制御対象機器に対する複数の制御指令が各入力端子に割当てられた入出力デバイスと、
を備え、
前記コントローラは、前記制御対象機器に対する制御指令が必要になると、前記入出力デバイスの各入力端子のうち、必要となった制御指令が割当てられている入力端子をアドレス指定するとともに、全てのビットが所定の論理値となる制御データを出力する、
前記入出力デバイスは、各入力端子に入力される制御データのうち前記アドレス指定された入力端子への入力制御データのみ取込んで保持することにより、同アドレス指定された入力端子に対応する出力端子のビットのみ所定の論理値となって残りの出力端子のビットは所定の論理値とならない制御データを各出力端子から出力する、
ことを特徴とするデータ入出力制御装置。
【請求項２】
前記制御対象機器は、前記入出力デバイスから出力される制御データの各ビットのうち、所定の論理値となるビットに割当てられている動作モードで動作する、
ことを特徴とする請求項１に記載のデータ入出力制御装置。
【請求項３】
前記制御対象機器に対する複数の制御指令とその各制御指令が割当てられた各入力端子のアドレスとを対応付けて記憶した記憶手段、
をさらに備えることを特徴とする請求項１または請求項２に記載のデータ入出力制御装置。
【請求項４】
前記制御対象機器は、第１制御対象機器および第２制御対象機器であり、
前記コントローラは、前記各制御対象機器のいずれかに対する制御指令が必要になると、前記入出力デバイスの各入力端子のうち、必要となった制御指令が割当てられている入力端子をアドレス指定するとともに、全てのビットが所定の論理値となる制御データを出力する、
ことを特徴とする請求項１または請求項２記載のデータ入出力制御装置。
【請求項５】
前記入出力デバイスは、前記コントローラに接続されるとともにそれぞれのアドレスに前記制御対象機器に対する複数の制御指令が割当てられた複数の入力端子、およびこれら入力端子に対応する複数のフリップフロップ、これらフリップフロップの出力端に接続されるとともに前記制御対象機器に接続される複数の出力端子を有し、各入力端子に入力される制御データのうち前記アドレス指定された入力端子への入力制御データのみ取込み、取込んだ制御データを同アドレス指定された入力端子に対応するフリップフロップで保持することにより、同フリップフロップに対応する出力端子のビットのみ所定の論理値となって残りの出力端子のビットは所定の論理値とならない制御データを各出力端子から出力する、
ことを特徴とする請求項１乃至請求項４のいずれかに記載のデータ入出力制御装置。
【請求項６】
第１ライトモードおよび第２ライトモードを選択的に設定するモード設定手段、をさらに備え、
前記コントローラは、前記第１ライトモードの設定時、前記制御対象機器に対する制御指令が必要になると、前記入出力デバイスの各入力端子のうち、必要となった制御指令が割当てられている入力端子をアドレス指定するとともに、全てのビットが所定の論理値となる制御データを出力する手段と、前記第２ライトモードの設定時、前記制御対象機器に対する制御指令が必要になると、必要となった制御指令に対応するコードパターンを前記記憶手段から抽出し、かつ前記入出力デバイスに保持されている制御データを読込んで内部レジスタに格納し、その内部レジスタ内の制御データを上記抽出したコードパターンに合せて同内部レジスタ上でモデファイしてから前記入出力デバイスに書込むリード・モデファイ・ライト処理の手段とを含み、
前記入出力デバイスは、前記第１ライトモードの設定時、各入力端子に入力される制御データのうち前記アドレス指定された入力端子への入力制御データのみ取込んで保持することにより、同アドレス指定された入力端子に対応する出力端子のビットのみ所定の論理値となって残りの出力端子のビットは所定の論理値とならない制御データを各出力端子から出力する手段と、前記第２ライトモードの設定時、前記各入力端子に入力される制御データを取込んで保持し、保持した制御データを各出力端子から出力する手段とを含む、
ことを特徴とする請求項１記載のデータ入出力制御装置。
【請求項７】
前記入出力デバイスは、前記コントローラに接続されるとともにそれぞれのアドレスに前記制御対象機器に対する複数の制御指令が割当てられた複数の入力端子、これら入力端子に対応する複数のフリップフロップ、これらフリップフロップの出力端に接続されるとともに前記制御対象機器に接続される複数の出力端子を有し、前記第１ライトモードの設定時、各入力端子に入力される制御データのうち前記アドレス指定された入力端子への入力制御データのみ取込み、取込んだ制御データを同アドレス指定された入力端子に対応するフリップフロップで保持することにより、同フリップフロップに対応する出力端子のビットのみ所定の論理値となって残りの出力端子のビットは所定の論理値とならない制御データを各出力端子から出力する手段と、前記第２ライトモードの設定時、前記各入力端子に入力される制御データを取込んで各フリップフロップで保持し、保持した制御データを各出力端子から出力する機能とを含む、
ことを特徴とする請求項６記載のデータ入出力制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コントローラと、そのコントローラから発せられる制御データを保持および出力する入出力デバイスとを備えたデータ入出力制御装置に関する。
【背景技術】
【０００２】
コントローラとその制御対象機器との間に接続され、コントローラから発せられる制御データを保持および出力する汎用の入出力デバイスいわゆるＧＰＩＯ（General Purpose Input/Output）が知られている（例えば特許文献１）。
【０００３】
コントローラは、ＧＰＩＯに保持された制御データを新たな制御データに変更したい場合、ＧＰＩＯ内の制御データを読込んで内部のレジスタに記憶し、そのレジスタ内の制御データを同レジスタ上でモデファイしてからＧＰＩＯに書込むリード・モデファイ・ライト処理を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１３４２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記コントローラは、リード・モデファイ・ライト処理の最中に割込み処理が入ると、リードとモデファイとの間のタイミングまたはモデファイとライトの間のタイミングでレジスタ内の制御データをメモリに退避し、その退避後に割込み処理を実行し、割込み処理が終了してからメモリ内の制御データをレジスタに戻す処理を行う。
【０００６】
この場合、制御データを退避したり戻したりしているうちに、制御データに誤りを生じる可能性がある。対策として、リード・モデファイ・ライト処理の最中は割込み処理を受付けないようにすることも考えられるが、そうすると、コントローラが搭載されている機器のパフォーマンスが落ちるという問題がある。
【０００７】
本発明の実施形態の目的は、制御データを誤りなく入出力デバイスに書込むことができる信頼性にすぐれたデータ入出力制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明の実施形態のデータ入出力制御装置は、制御対象機器に対する制御データを発するコントローラと、このコントローラに接続される複数の入力端子、および上記制御対象機器に接続される複数の出力端子を有し、制御対象機器に対する複数の制御指令が各入力端子に割当てられた入出力デバイスと、を備える。そして、コントローラは、制御対象機器に対する制御指令が必要になると、入出力デバイスの各入力端子のうち、必要となった制御指令が割当てられている入力端子をアドレス指定するとともに、全てのビットが所定の論理値となる制御データを出力する。入出力デバイスは、各入力端子に入力される制御データのうち前記アドレス指定された入力端子への入力制御データのみ取込んで保持することにより、同アドレス指定された入力端子に対応する出力端子のビットのみ所定の論理値となって残りの出力端子のビットは所定の論理値とならない制御データを各出力端子から出力する。
【図面の簡単な説明】
【０００９】
【図１】一実施形態の構成を示すブロック図。
【図２】一実施形態のＧＰＩＯの要部を示すブロック図。
【図３】一実施形態における各制御指令とその各制御指令が割当てられた各入力端子のアドレスとの対応および各フリップフロップの動作パターンを示す図。
【図４】一実施形態における各制御指令とその各制御指令が割当てられた各入力端子のアドレスとの対応および各出力端子の出力の例を示す図。
【符号の説明】
【００１０】
１…ＣＰＵ（コントローラ）、２…内部メモリ、３…内部レジスタ、４…入出力インタフェース、１１…アドレスバス、１２…１６ビットのデータバス、１３…コントロールバス、２０…メモリ、３０…ＧＰＩＯ（入出力デバイス）、３２…データ入力ポート、３５…データ出力ポート、４１，５１…８ビットのデータバス、４２，５２…ドライバ（制御対象機器）、４３，５３…ステップモータ、６０…モードスイッチ
【発明を実施するための形態】
【００１１】
以下、一実施形態について図面を参照して説明する。  
図１において、１は組込み機器のコントローラであるＣＰＵで、内部メモリ２および内部レジスタ３を有し、後述のステップモータ４３，５３を駆動制御するための制御指令として１６ビットの制御データを発する。
【００１２】
このＣＰＵ１に、外部機器や操作部からの入力データを取込む入力インタフェース４が接続される。また、ＣＰＵ１に、数ビットのアドレスバス１１、１６ビットのデータバス１２、数ビットのコントロールバス１３を介してデータ記憶用のメモリ２０が接続される。また、ＣＰＵ１に、上記アドレスバス１１、データバス１２、コントロールバス１３を介して汎用の入出力デバイスいわゆるＧＰＩＯ（General Purpose Input/Output）３０が接続される。
【００１３】
ＧＰＩＯ３０は、アドレスバス１１が接続されるアドレス入力ポート３１、データバス１２が接続されるデータ入力ポート３２、コントロールバス１３が接続されるコントロール信号入力ポート３３、モード信号入力ポート３４、およびデータ出力ポート３５を有する。
【００１４】
データ入力ポート３２は、図２に示すように、１６ビットのデータバス１２が接続される１６個の入力端子からなる。これら入力端子には、1000Hから1015Hまでのアドレスが設定されるとともに、後述するドライバ４２，５２に対する複数の制御指令が割当てられている。
【００１５】
モード信号入力ポート３４には、第１ライトモードおよび第２ライトモードを選択的に設定するモード設定手段として、手操作開閉式のモードスイッチ６０と抵抗６１の相互接続点が接続される。このモードスイッチ６０および抵抗６１の直列回路に直流電圧Ｖｄが印加され、その抵抗６１に生じる電圧がモード設定信号としてモード信号入力ポート３４に入力される。すなわち、モードスイッチ６０がオンされるとモード設定信号が論理“１”となって第１ライトモードが設定され、モードスイッチ６０がオフされるとモード設定信号が論理“０”となって第２ライトモードが設定される。モード設定信号はＣＰＵ１にも供給される。
【００１６】
データ出力ポート３５は、図２に示すように、１６ビットの制御データを出力する１６個の出力端子からなる。これら出力端子にはD0からD15までの名称が付けられている。そして、これら出力端子D0〜D15に対応する１６個のフリップフロップF0〜F15がＧＰＩＯ３０内に設けられ、これらフリップフロップF0〜F15の出力端が出力端子D0〜D15に接続される。
【００１７】
このデータ出力ポート３５の出力端子D0〜D15のうち、出力端子D0〜D７に８ビットのデータバス４１を介して第１制御対象機器たとえばドライバ４２が接続され、残りの出力端子D8〜D15に８ビットのデータバス５１を介して第２制御対象機器たとえばドライバ５２が接続される。
【００１８】
ドライバ４２は、ＣＰＵ１およびＧＰＩＯ３０の第１ライトモードに合せた仕様を有するもので、ＧＰＩＯ３０の出力端子D0〜D７から出力される８ビットの制御データのうち、論理“１”（＝所定の論理値）となるビットに割当てられている動作モードたとえば励磁方式および電流でステップモータ４３を駆動する。ドライバ５２は、同じくＣＰＵ１およびＧＰＩＯ３０の第１ライトモードに合せた仕様を有するもので、ＧＰＩＯ３０の出力端子D8〜D15から出力される８ビットの制御データのうち、論理“１”（＝所定の論理値）となるビットに割当てられている動作モードたとえば励磁方式および電流でステップモータ５３を駆動する。
【００１９】
なお、ドライバ４２，５２の仕様としては、ＣＰＵ１およびＧＰＩＯ３０の第１ライトモードに合せた仕様のほかに、ＣＰＵ１およびＧＰＩＯ３０の第２ライトモードに相当するリード・モデファイ・ライト処理に対応する仕様がある。リード・モデファイ・ライト処理に対応する仕様のドライバ４２は、ＧＰＩＯ３０の出力端子D0〜D７から出力される８ビットの制御データのコードパターンから動作モードである励磁方式および電流を識別し、識別した励磁方式および電流でステップモータ４３を駆動する。同様に、リード・モデファイ・ライト処理に対応する仕様のドライバ５２は、ＧＰＩＯ３０の出力端子D8〜D15から出力される８ビットの制御データのコードパターンに基づいて動作モードである励磁方式および電流を判定し、判定した励磁方式および電流でステップモータ５３を駆動する。
【００２０】
ＣＰＵ１の内部メモリ２には、ドライバ４２，５２に対する複数の制御指令とその各制御指令が割当てられた各入力端子のアドレス1000H〜1015Hとを対応付けた第１データファイル、ドライバ４２，５２に対する制御指令ごとに異なる複数のコードパターンを格納した第２データファイルが記憶されている。
【００２１】
そして、ＣＰＵ１は、主要な機能として、次の（１）（２）の手段を有する。  
（１）モードスイッチ６０のオンによる第１ライトモードの設定時、ドライバ４２またはドライバ５２に対する制御指令が必要になると、ＧＰＩＯ３０の各入力端子のうち、必要となった制御指令が割当てられている入力端子のアドレスを内部メモリ２の第１データファイルから検出し、検出したアドレスを指定するためのアドレス指定データをＧＰＩＯ３０に供給し、かつ全てのビットが論理“１”（＝所定の論理値）となる制御データを出力する手段。
【００２２】
（２）モードスイッチ６０のオフによる第２ライトモードの設定時、ドライバ４２またはドライバ５２に対する制御指令が必要になると、内部メモリ２の第２データファイル内の各コードパターンのうち必要となった制御指令に対応するコードパターンを抽出し、かつＧＰＩＯ３０に保持されている制御データを読込んで内部レジスタ３に格納し、その内部レジスタ３内の制御データを上記抽出したコードパターンに合せて同内部レジスタ３上でモデファイ（マスキングを含む）してからＧＰＩＯ３０に書込むリード・モデファイ・ライト処理の手段。なお、このリード・モデファイ・ライト処理では、例えば入力インタフェース４からのデータ入力による何らかの割込み処理が入ると、リードとモデファイとの間のタイミングまたはモデファイとライトの間のタイミングで内部レジスタ３内の制御データをメモリ２０に退避し、その退避後に割込み処理を実行し、割込み処理が終了してからメモリ２０内の制御データを内部レジスタ３に戻す処理を行う。
【００２３】
また、ＧＰＩＯ３０は、主要な機能として、次の（１１）（１２）の手段を有する。  
（１１）モードスイッチ６０のオンによる第１ライトモードの設定時、データ入力ポート３２の各入力端子に入力される制御データのうちＣＰＵ１からアドレス指定された入力端子への入力制御データのみ取込み、取込んだ制御データを同アドレス指定された入力端子に対応するフリップフロップで保持することにより、同フリップフロップに対応する出力端子のビットのみ論理“１”（＝所定の論理値）となって残りの出力端子のビットは論理“１”（＝所定の論理値）とならない制御データをデータ出力ポート３５の各出力端子から出力する手段。
【００２４】
（１２）モードスイッチ６０のオフによる第２ライトモードの設定時、データ入力ポート３２の各入力端子に入力される制御データを取込んで各フリップフロップで保持し、保持した制御データを各出力端子から出力する機能。
【００２５】
つぎに、作用を説明する。  
ドライバ４２，５２の仕様がＣＰＵ１およびＧＰＩＯ３０の第１ライトモードに合せた仕様であれば、モードスイッチ６０がオン操作される。このモードスイッチ６０のオンにより、ＣＰＵ１およびＧＰＩＯ３０において第１ライトモードが設定される。
【００２６】
この第１ライトモード用として、図３に示すように、ＧＰＩＯ３０におけるアドレス1000H〜1015Hの入力端子のうち、８ビットのアドレス1000H〜1007Hの入力端子に対し、ドライバ４２の動作モード“１相励磁”“２相励磁”“１−２相励磁”“マイクロステップ駆動”“１相励磁及び電流増”“２相励磁及び電流増”“１−２相励磁及び電流増”“マイクロステップ駆動及び電流増”をそれぞれ設定するための制御指令がそれぞれ割当てられている。残りの８ビットのアドレス1008H〜1015Hの入力端子に対し、ドライバ５２の動作モード“１相励磁”“２相励磁”“１−２相励磁”“マイクロステップ駆動”“１相励磁及び電流増”“２相励磁及び電流増”“１−２相励磁及び電流増”“マイクロステップ駆動及び電流増”をそれぞれ設定するための制御指令がそれぞれ割当てられている。
【００２７】
ＧＰＩＯ３０は、図３に示すように、ドライバ４２用の制御指令“１相励磁”に対応するアドレス1000Hの入力端子が指定されると、フリップフロップF0をアクティブ状態（○印）とする。同様に、ドライバ４２用の制御指令“２相励磁”に対応するアドレス1001Hの入力端子が指定されると、フリップフロップF1をアクティブ状態とする。ドライバ４２用の制御指令“１−２相励磁”に対応するアドレス1002Hの入力端子が指定されると、フリップフロップF2をアクティブ状態とする。ドライバ４２用の制御指令“マイクロステップ駆動”に対応するアドレス1003Hの入力端子が指定されると、フリップフロップF3をアクティブ状態とする。ドライバ４２用の制御指令“１相励磁及び電流増”に対応するアドレス1004Hの入力端子が指定されると、フリップフロップF4をアクティブ状態とする。ドライバ４２用の制御指令“２相励磁及び電流増”に対応するアドレス1005Hの入力端子が指定されると、フリップフロップF5をアクティブ状態とする。ドライバ４２用の制御指令“１−２相励磁及び電流増”に対応するアドレス1006Hの入力端子が指定されると、フリップフロップF6をアクティブ状態とする。制御指令“マイクロステップ駆動及び電流増”に対応するアドレス1007Hの入力端子が指定されると、フリップフロップF7をアクティブ状態とする。アドレス指定のない入力端子に対応するフリップフロップについては、リセットしてしかも非アクティブ状態とする。
【００２８】
ドライバ５２用の制御指令“１相励磁”に対応するアドレス1008Hの入力端子が指定されると、フリップフロップF8をアクティブ状態とする。同様に、ドライバ５２用の制御指令“２相励磁”に対応するアドレス1009Hの入力端子が指定されると、フリップフロップF9をアクティブ状態とする。ドライバ５２用の制御指令“１−２相励磁”に対応するアドレス1010Hの入力端子が指定されると、フリップフロップF10をアクティブ状態とする。ドライバ５２用の制御指令“マイクロステップ駆動”に対応するアドレス1011Hの入力端子が指定されると、フリップフロップF11をアクティブ状態とする。ドライバ５２用の制御指令“１相励磁及び電流増”に対応するアドレス1012Hの入力端子が指定されると、フリップフロップF12をアクティブ状態とする。ドライバ５２用の制御指令“２相励磁及び電流増”に対応するアドレス1013Hの入力端子が指定されると、フリップフロップF13をアクティブ状態とする。ドライバ５２用の制御指令“１−２相励磁及び電流増”に対応するアドレス1014Hの入力端子が指定されると、フリップフロップF14をアクティブ状態とする。制御指令“マイクロステップ駆動及び電流増”に対応するアドレス1015Hの入力端子が指定されると、フリップフロップF15をアクティブ状態とする。アドレス指定のない入力端子に対応するフリップフロップについては、リセットしてしかも非アクティブ状態とする。
【００２９】
ＣＰＵ１は、ドライバ４２の“２相励磁”およびドライバ５２の“１−２相励磁”を設定する場合、ＧＰＩＯ３０のアドレス1001Hの入力端子およびアドレス1010Hの入力端子をそれぞれアドレス指定し、かつ全てのビットが論理“１”となる１６ビットの制御データ“1111111111111111”を出力する。
【００３０】
この場合、ＧＰＩＯ３０では、アドレス1001Hの入力端子に対応するフリップフロップF1およびアドレス1010Hの入力端子に対応するフリップフロップF10がアクティブ状態となって制御データの入力を受け入れ、残りのフリップフロップはリセットされてしかも非アクティブ状態となる。この状態で上記制御データ“1111111111111111”が入力されと、図４に示すように、フリップフロップF1およびフリップフロップF10がセットされて論理“１”を出力し、残りのフリップフロップの出力は論理“０”となる。こうして、１６ビットの制御データ“0000010000000010”が出力端子D0〜D15から出力される。
【００３１】
出力された制御データ“0000010000000010”のうち、下位８ビット“00000010”はドライバ４２に供給され、上位８ビット“00000100”はドライバ５２に供給される。
【００３２】
ドライバ４２は、入力される８ビットの制御データ“00000010”の２番目のビットが論理“１”なので、動作モードとして２相励磁を設定し、その２相励磁でステップモータ４３を駆動する。ドライバ５２は、入力される８ビットの制御データ“00000100”の３番目のビットが論理“１”なので、動作モードとして１−２相励磁を設定し、その１−２相励磁でステップモータ４３を駆動する。
【００３３】
このように、必要な制御指令に対応する入力端子をアドレス指定し、かつ全てのビットが論理“１”となる１６ビットの制御データ“1111111111111111”を出力するだけで、必要な制御指令に対応する誤りのない制御データをＧＰＩＯ３０に書込むことができる。よって、間違いのない適正な制御指令をドライバ４２，５２に送ることができ、データ入出力制御装置としての高い信頼性を確保できる。割込み処理が入っても、制御データを退避したり戻すといった処置を要することなく、割込み処理を即時に実行できる。これは、当該データ入出力制御装置が搭載された組込み機器のパフォーマンスの向上につながる。
【００３４】
ドライバ４２，５２は、入力される制御データの各ビットのうち、論理“１”のビットに対応付けられている動作モードを設定するだけであり、リード・モデファイ・ライト処理の場合のように制御データのコードパターンを識別する処理が不要なので、構成の簡略化とコストの低減が図れる。
【００３５】
ドライバ４２，５２の仕様がリード・モデファイ・ライト処理に対応する仕様であれば、モードスイッチ６０をオフして第２ライトモードを設定することにより、リード・モデファイ・ライト処理を実行することも可能である。この点、汎用性の向上が図れる。
【００３６】
なお、上記実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、書き換え、変更を行うことができる。この実施形態や変形は、発明の範囲は要旨に含まれるとともに、特許請求の範囲に記録された発明とその均等の範囲に含まれる。
【図１】
2012053762.tif 000003
【図２】
2012053762.tif 000004
【図３】
2012053762.tif 000005
【図４】
2012053762.tif 000006