JP7224237B2 - I/o制御装置 - Google Patents

I/o制御装置 Download PDF

Info

Publication number
JP7224237B2
JP7224237B2 JP2019088142A JP2019088142A JP7224237B2 JP 7224237 B2 JP7224237 B2 JP 7224237B2 JP 2019088142 A JP2019088142 A JP 2019088142A JP 2019088142 A JP2019088142 A JP 2019088142A JP 7224237 B2 JP7224237 B2 JP 7224237B2
Authority
JP
Japan
Prior art keywords
data
microcomputer
transmission
buffers
bank
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.)
Active
Application number
JP2019088142A
Other languages
English (en)
Other versions
JP2020184184A (ja
Inventor
雅文 熊本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2019088142A priority Critical patent/JP7224237B2/ja
Publication of JP2020184184A publication Critical patent/JP2020184184A/ja
Application granted granted Critical
Publication of JP7224237B2 publication Critical patent/JP7224237B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Information Transfer Systems (AREA)
  • Programmable Controllers (AREA)

Description

本願は、I/O制御装置に関するものである。
演算処理装置の信頼性を向上させる技術として、二重化したCPUのそれぞれに同じプログラムを走らせ、それぞれのCPUからの出力を比較する技術が開示されている。その際、電子計算機、あるいはコントローラのような分野では、自機でタイミングを制御することができる。そのため、同期用のクロック回路の設置、あるいは、プログラムを実行した後に同期を取ってI/Oリフレッシュを行うタイミングを設ける、等の構成を用いることが可能である(例えば、特許文献1または2参照。)。
一方、上位制御装置と制御対象機器との間の入出力制御をつかさどるI/O(Input/Output)制御機器の分野においては、自機でタイミングを制御することが困難であり、かつ、入出力制御における時間遅れが許されない。そのため、物理的にCPUを二重化させることなく、ひとつのマイコン(CPU)を仮想的に二重化させることで、データ化けによる誤出力を防止するようにしていた(例えば、特許文献3参照。)。
特開平4-71037号公報(第三頁右下欄~第四頁右上欄、第1図) 特開2002-358106号公報(段落0021~0029、図1、段落0045、図6) 特開2016-4409号公報(段落0017~0022、図2、段落0030~0032、図3)
しかしながら、マイコンを仮想的に二重化させた場合には、並列処理ができないため、処理時間が長く、メモリの使用領域も大きくなり、入出力動作が遅くなる。つまり、I/O制御装置においては、入出力動作の同時性の確保とデータ化けによる誤出力防止を両立させることが困難であった。
本願は、上記のような課題を解決するための技術を開示するものであり、入出力動作の同時性を確保し、データ化けによる誤出力を防止できるI/O制御装置の提供を目的としている。
本願に開示されるI/O制御装置は、通信接続により上位制御装置と制御対象機器との間に介在し、前記上位制御装置と前記制御対象機器との間の入出力制御を担うI/O制御装置であって、CPUコアと、前記CPUコアによる演算処理用のデータを格納するメモリとを有する第一マイコン、前記第一マイコンと同じプログラムがインストールされ、前記第一マイコンと非同期で動作する第二マイコン、前記インストールされたプログラムの実行により、前記第一マイコンと前記第二マイコンのそれぞれから逐次出力される送信データを更新して書込み、書き込まれたデータを前記上位制御装置または前記制御対象機器への送信データとして逐次読み出すための二重化された送信バッファ、前記二重化された送信バッファのそれぞれから逐次読み出されたデータを比較し、前記送信データでのデータ化けの有無を検出する比較器、および前記第一マイコンと前記第二マイコンそれぞれが前記送信データを更新するたびに登録値を変える2つの更新フラグレジスタと、前記2つの更新フラグレジスタの出力端に接続され、前記2つの更新フラグレジスタそれぞれの前記登録値が一致したときに出力するAND回路とを有し、前記AND回路からの出力があったときに、前記比較器で比較させるデータを前記二重化された送信バッファのそれぞれから読み出させる読出データ同期制御機構、を備えたことを特徴とする。

本願に開示されるI/O制御装置によれば、バッファからの読出しのタイミングを調整することで、非同期のマイコンを並列処理させるようにしたので、入出力動作の同時性を確保し、データ化けによる誤出力を防止できる。
実施の形態1にかかるI/O制御装置の構成を説明するためのブロック図である。 実施の形態1にかかるI/O制御装置に設けられたアナログ出力回路の構成を説明するためのブロック図である。 実施の形態1にかかるI/O制御装置に設けられたアナログ入力回路の構成を説明するためのブロック図である。 実施の形態1にかかるI/O制御装置に設けられた通信入出力回路の構成を説明するためのブロック図である。 実施の形態1にかかるI/O制御装置を構成するアナログ出力回路に対するマイコンAの制御処理動作を説明するためのフローチャートである。 実施の形態1にかかるI/O制御装置を構成するアナログ出力回路に対するマイコンBの制御処理動作を説明するためのフローチャートである。 実施の形態1にかかるI/O制御装置を構成するアナログ入力回路に対するマイコンAの制御処理動作を説明するためのフローチャートである。 実施の形態1にかかるI/O制御装置を構成するアナログ入力回路に対するマイコンBの制御処理動作を説明するためのフローチャートである。 実施の形態1にかかるI/O制御装置を構成する通信入出力回路に対するマイコンAの制御処理動作を説明するためのフローチャートである。 実施の形態1にかかるI/O制御装置を構成する通信入出力回路に対するマイコンBの制御処理動作を説明するためのフローチャートである。
実施の形態1.
図1~図10は、実施の形態1にかかるI/O制御装置の構成、および動作について説明するためのものであり、図1はI/O制御装置の構成について、入出力制御対象である上位制御機器と制御対象機器とのつながりを含めたシステム全体のブロック図、図2はアナログ出力回路のハードウェア(H/W)構成を説明するためのブロック図、図3はアナログ入力回路のH/W構成を説明するためのブロック図、そして、図4は通信入出力回路のH/W構成を説明するためのブロック図である。
また、図5と図6は、アナログ出力回路に対する、マイコンAの制御処理動作とマイコンBの制御処理動作のそれぞれを説明するためのフローチャート、図7と図8は、アナログ入力回路に対する、マイコンAの制御処理動作とマイコンBの制御処理動作のそれぞれを説明するためのフローチャート、図9と図10は、通信入出力回路に対する、マイコンAの制御処理動作とマイコンBの制御処理動作のそれぞれを説明するためのフローチャートである。
I/O制御装置は、例えば発電プラントシステムなどに適用されるものであって、目標値を演算する上位制御装置と、制御対象となるポンプ、バルブ等の各種の制御対象機器との間にあって、上位制御装置と制御対象機器間の入出力制御をつかさどるものである。そして、本願のI/O制御装置1は、図1に示すように、上位制御装置8の演算処理の負荷軽減のための2つのマイコン12A、12Bを備えるとともに、アナログ出力回路13、アナログ入力回路14、および通信入出力回路15を備えている。
そして、通信入出力回路15が上位制御装置8とデジタルの通信ラインを介して接続され、アナログ出力回路13とアナログ入力回路14がアナログの制御信号線を介して制御対象機器9に接続される。これにより、I/O制御装置1は、上位制御装置8からの指令に基づいた制御対象機器9への出力信号の制御、および、制御対象機器9からの出力信号の状態に応じた上位制御装置8への出力機能をつかさどることができる。
<二重化マイコン>
マイコン12Aは、CPUコア21Aと、CPUコア21Aによる演算制御用のプログラム(プログラムA)を格納するEEPROM23Aと、CPUコア21AとプログラムAが使用するRAM22Aと、で構成している。また、マイコン12Bも、CPUコア21Bと、CPUコア21Bによる演算制御用のプログラム(プログラムB)を格納するEEPROM23Bと、CPUコア21Bとプログラムが使用するRAM22Bと、で構成し、マイコン12Aと二重化している。そして、マイコン12A、12Bは、同一仕様のデバイスであり、かつ同一動作となるように設計している。なお、マイコン12A、12Bについては、説明の際、それぞれ、マイコンA、マイコンBと称することとする。
プログラムAとプログラムBは完全に同一データであり、データ化けが無い限り実質的には内容が同一のプログラムAとプログラムBが、マイコンAとマイコンBに、別々にインストールされている。また、動作中のマイコンA内部のRAM22AとEEPROM23A、および動作中のマイコンB内部のRAM22BとEEPROM23Bのそれぞれには、データ化けが無い限り実質的に同じデータが格納される。
マイコンA、マイコンBのそれぞれは、上位制御装置8から通信ラインを介して送信される指令に従って制御対象機器9への出力信号を制御し、また、制御対象機器9からの入力信号の状態を読取り、通信ラインを介して上位制御装置8にデータを送信する。そして、それぞれ別々にインストールされたプログラムAとプログラムBに基づいて、後述するアナログ出力回路13、アナログ入力回路14に入出力するデータと、通信入出力回路15との間で入出力するデータの演算処理を別々に実行する。別々に実行した演算処理の不一致の有無によりデータ化けを検出することで、不正なアナログ出力と通信時の不正な送信を防止することが目的となる。
<アナログ出力回路>
アナログ出力回路13は、図2に示すように、データ入力端として、プログラムAのデジタル出力データを格納する送信バッファを2バンクで構成しており、送信バッファ(バンク0)30Aと、送信バッファ(バンク1)31Aを設けている。同様に、プログラムBのデジタル出力データを格納する送信バッファも2バンクで構成しており、送信バッファ(バンク0)30Bと、送信バッファ(バンク1)31Bを設けている。これら4つの送信バッファ30A、31A、30B、31Bの内、送信バッファ30Aと30B、あるいは送信バッファ31Aと31Bが、二重化された送信バッファとして機能する。
プログラムAにより処理されたデータを格納する2つの送信バッファ30A、31Aと、プログラムBにより処理されたデータを格納する2つの送信バッファ30B、31Bの出力端には、それぞれ個別に選択器33A、33Bが設けられている。各選択器33A、33Bは、後述の動作中バンクレジスタ37からの送信バンク切替信号に応じて、いずれか一方の送信バッファを選択する。例えば、送信バンク切替信号が「0」ならば、プログラムAに関する一方の送信バッファ30AとプログラムBに関する一方の送信バッファ30Bを共に選択する。一方、送信バンク切替信号が「1」ならばプログラムAに関する他方の送信バッファ31AとプログラムBに関する他方の送信バッファ31Bを共に選択するように構成している。
比較器34は、各選択器33A、33Bの出力端に接続され、選択器33A、33Bで選択された送信バッファ30A、30B、または31A、31Bから読出された送信データを比較する。両送信データの値が一致すると、後述のDACアクセスコントローラ38に送信データを出力する。両送信データの値が一致しないときには、データ化けが生じているものと判断してエラー修復処理に移行する。
DACアクセスコントローラ38(DAC:Digital to Analog Converter)は、比較器34からのデジタル出力データをアナログ出力に変換し、変換したアナログ出力を装置制御信号として、制御対象機器9に出力する。この、DACアクセスコントローラには、プログラムAとプログラムBが参照するための、バンク0とバンク1の内、プログラム読出用に使用中のバンクを示す動作中バンクレジスタ37が接続されている。動作中バンクレジスタ37は、DACアクセスコントローラ38からのバンク切替要求を受けると、選択器33A、33Bに対してバンク0と1を切り替える送信バンク切替信号を生成するとともに、生成した送信バンク切替信号の値を登録する。
ここで、プログラムAとプログラムBは非同期で動作するため、選択器33A、33Bのそれぞれから出力されるデータの同時性を実現しなければ、比較器34で不一致を誤検出してしまう。この問題を解決するため、本願では、同期処理が不要な仮想マイコンを用いた特許文献3のI/O制御装置におけるアナログ出力回路に対して、以下の構成を変更した。
バンク切替レジスタの代わりに、入力信号に応じて登録値を変える送信バッファ更新フラグレジスタを設け、比較器の代わりに、AND回路を設けるようにした。具体的には、送信バッファ更新フラグレジスタ35Aと35Bの出力端に、値が「1」のときのみ出力するAND回路39を接続し、DACアクセスコントローラ38からの送信バッファ更新フラグリセット信号を送信バッファ更新フラグレジスタ35Aと35Bに出力するように構成した。
このように構成することで、例えば、送信バッファ更新フラグレジスタ35Aは、プログラムAが後述する送信バンク切替信号により選択されるバンクに対して送信データを更新すると、プログラムAによって値「1」が登録される。そして、DACアクセスコントローラ38から送信バンク切替完了の通知である送信バッファ更新フラグリセット信号を受けると値「0」が登録される。同様に、送信バッファ更新フラグレジスタ35Bは、プログラムBが送信バンク切替信号により選択されるバンクに対して送信データを更新すると、プログラムBによって、値「1」が登録される。そして、DACアクセスコントローラ38から送信バンク切替完了の通知を受けると値「0」が登録される。
AND回路39の出力端はDACアクセスコントローラ38に接続され、送信バッファ更新フラグレジスタ35Aと35Bの値がともに値「1」となると、DACアクセスコントローラ38に対して、送信バンクの切り替えを要求する。そして、DACアクセスコントローラ38は、AND回路39からの送信バンク切替要求を受けると、バンク切替結果を動作中バンクレジスタ37に通知し、送信バンク切替完了を送信バッファ更新フラグレジスタ35A、35Bに通知する。これらが、個々のマイコンの送信データの同時性を実現するための送信バンク切替手段として機能する。
<アナログ入力回路>
アナログ入力回路14は、図3に示すように、入力端として、制御対象機器9から出力されたアナログ信号をデータ値に変換し、選択器43を介して受信バッファに受信データを送信するADCアクセスコントローラ48(ADC:Analog to Digital Converter)が設けられている。プログラムAが読出し可能なアナログ入力変換データを格納する受信バッファとしては、2バンクで構成しており、受信バッファ(バンク0)40Aと、受信バッファ(バンク1)41Aを設けている。同様に、プログラムBが読出し可能なアナログ入力変換データを格納する受信バッファとしても2バンクで構成しており、受信バッファ(バンク0)40Bと、受信バッファ(バンク1)41Bを設けている。
また、ADCアクセスコントローラ48には、プログラムAとプログラムBが参照するバンクを選択器43が切り替えるための、受信バンク切替信号を出力するとともに、使用中のバンクを示す動作中バンクレジスタ47が接続されている。これにより、選択器43は、動作中バンクレジスタ47からの受信バンク切替信号に応じて、いずれか一方のバンクを選択する。例えば、受信バンク切替信号が「0」ならば、プログラムAの受信バッファ40AとプログラムBの受信バッファ40Bを選択する。一方、受信バンク切替信号が「1」ならば、プログラムAの受信バッファ41AとプログラムBの受信バッファ41Bを選択するように構成している。
ここで、プログラムAとプログラムBは非同期で動作するため、マイコンA、B個々の受信データを一致させるには、プログラムAとプログラムBの両方が、受信バッファからデータを読出した後に、選択器43を切り替える必要がある。この問題を解決するため、本願では、同期処理が不要な仮想マイコンを用いた特許文献3のI/O制御装置におけるアナログ入力回路に対して、以下の構成を変更した。受信バンク切替レジスタに代えて、バンクからのデータ読出しの完了状態に応じてフラグを変える2つの受信バッファ読出完了フラグレジスタと、2つの受信バッファ読出完了フラグレジスタの出力端に接続するAND回路を設けるように構成した。
具体的には、ADCアクセスコントローラ48からの受信バッファ読出完了フラグリセット信号が、受信バッファ読出完了フラグレジスタ45Aと45Bに出力されるようにした。そして、受信バッファ読出完了フラグレジスタ45Aと45Bからの出力をAND回路49に接続し、フラグが一致したときに、AND回路49からADCアクセスコントローラ48に受信バンク切替要求が出されるように構成した。
例えば、受信バッファ読出完了フラグレジスタ45Aは、プログラムAが受信バンク切替信号により選択されるバンクから受信データの読出しが完了すると、プログラムAによって値「1」が登録される。一方、ADCアクセスコントローラ48から受信バンク切替完了の通知を受けると値「0」が登録される。同様に、受信バッファ読出完了フラグレジスタ45Bは、プログラムBが受信バンク切替信号により選択されるバンクから受信データの読出しが完了すると、プログラムBによって値「1」が登録される。一方、ADCアクセスコントローラ48から受信バンク切替完了の通知を受けると値「0」が登録される。
AND回路49は、受信バッファ読出完了フラグレジスタ45A、45Bの値がともに値1となると、ADCアクセスコントローラ48に対して、受信バンクの切り替えを要求する。そして、ADCアクセスコントローラ48は、AND回路49からの受信バンク切替要求を受けると、バンク切替結果を動作中バンクレジスタ47に通知し、受信バンク切替完了を受信バッファ読出完了フラグレジスタ45A、45Bに通知する。これらが、個々のマイコンの受信データの同時性を実現するための受信バンク切替手段として機能する。
<通信入出力回路>
通信入出力回路15は、上位制御装置8との通信処理として送信、受信処理を行うためのもので、図4に示すように、図2で説明したアナログ出力回路13と、図3で説明したアナログ入力回路14とを組み合わせた構成となっている。具体的には、通信コントローラ58と、動作中バンクレジスタ57を除き、図2における符号の十位を「3」から「5」に代えた構成と、図3における符号の十位を「4」から「6」に代えた構成を有している。そして、DACアクセスコントローラ38とADCアクセスコントローラ48を一体化させた通信コントローラ58と、動作中バンクレジスタ37と47を共通化した動作中バンクレジスタ57を備えるようにした。各構成要素のつながり、および動作については図2、図3で説明したのと同様であり、説明を省略する。
ここで、動作説明をはじめる前に、上述した構成における主要部分の機能について説明する。マイコンAとマイコンBは、同一仕様のデバイスであり、かつ同一動作となるように設計し、それぞれのEEPROM23A、23Bに実装するプログラムAとプログラムBは完全に同一のプログラムである。また、マイコンAにインストールされたソフトウェア(S/W)であるプログラムAは、アナログ出力回路13に出力するデータと通信入出力回路15への出力データを演算処理する。同様に、マイコンBのS/WであるプログラムBも、アナログ出力回路13に出力するデータと通信入出力回路15への出力データを演算処理する。
アナログ出力回路13では、プログラムAとプログラムBが出力データを書込む送信バッファをそれぞれ2バンクで構成しており、一方をプログラム書込用に、他方をDACアクセスコントローラ38の読出用に使用する。これは信号の出力周期と、プログラムの演算周期が非同期のためであり、DACアクセスコントローラ38がデータを読出しているときに、プログラムが送信データを書込めるようにすることでデータ送信処理速度を向上させる効果がある。
また、送信バッファ更新フラグレジスタ35Aと送信バッファ更新フラグレジスタ35Bは、送信バンク切替信号によってプログラム書込用に設定された送信バンクに対して、送信データを更新したことを示す。そして、両プログラムが送信データを更新完了すると、AND回路39は、DACアクセスコントローラ38に送信バンク切替要求を出力する。
そして、比較器34で送信データが一致したか否かを判定することで、マイコンAとマイコンBそれぞれが内蔵するEEPROM23Aと23BもしくはRAM22Aと22Bのデータ化けを検出できる。しかし、上述したように、同期化していないマイコンAとマイコンBのそれぞれで、実行されるプログラムAとBの演算結果の同時性を確保しなければ、比較器34で送信データの不一致を誤検出してしまう。それに対して、プログラムA、プログラムBを以下のように処理することで、両プログラムによる送信データの同時性を確保が可能となる。
アナログ出力回路13に対するマイコンAの制御処理(プログラムA)について、図5を用いて説明する。まず、プログラムAは、送信バッファ更新フラグレジスタ35Aに現在登録されている値を読込み(ステップS11A)、送信バンクが切り替わっているか否かを判断する(ステップS12A)。値が「1」であれば、送信バンクは切り替わっていないと判断し、ステップS11Aに戻る。
値が「0」であれば、プログラムA、Bともに送信データの更新を完了し、送信バンクが切り替わった状態である。そのため、動作中バンクレジスタ37に登録されている値を読込み(ステップS13A)、各選択器33A、33Bがバンク0とバンク1のうちのいずれを選択している状態かを判断する(ステップS14A)。
リード値がバンク0を示す値であれば、DACアクセスコントローラ38の読出用にバンク0が使用されている状態であるので、プログラムAは送信バッファ(バンク1)31Aに送信データを書込む(ステップS15A)。そして、送信バッファ(バンク1)への送信データ書込みが完了すると、送信バッファ更新フラグレジスタ(35A)に対してデータ書込完了を示す値「1」をセットする(ステップS17A)。
リード値がバンク1を示す値であれば、DACアクセスコントローラ38の読出用にバンク1が使用されている状態であるので、プログラムAは送信バッファ(バンク0)30Aに送信データを書込む(ステップS16A)。そして、送信バッファ(バンク0)への送信データ書込みが完了すると、送信バッファ更新フラグレジスタ(35A)に対してデータ書込み完了を示す値「1」をセットする(ステップS17A)。
プログラムBについては、図6に示すように、図5におけるステップ番号の末尾「A」を「B」に置き換えた以外は同じフローであり、プログラムAと同一の動作を実施する。そのためプログラムA、Bともにデータ書込みが完了したときのみ、AND回路39がDACアクセスコントローラ38に送信バンク切替要求を出力する。DACアクセスコントローラ38は、比較器34からの送信データ読出し中でなければ、動作中バンクレジスタ37のバンクを切り替えて、送信バッファ更新フラグレジスタ35A、35Bに送信バンク切替完了通知を出力する。
これにより、選択器33A、33Bは、プログラムA、Bともに書込み済みのバンクが選択されるため、プログラムAとプログラムBの送信データの同時性が確保される。比較器34で送信データを比較した結果、両送信データの値が一致すると、データ化けは無いと判断して、DACアクセスコントローラ38に送信データを出力する。これに対して、両送信データの値が一致しないときには、データ化けが発生しているものと判断し、不正な送信データを出力せずに、エラー修復処理に移行する。
なお、上記動作を実現させる構成は、特許文献2に開示された構成と対して変更点が無いようにも見える。しかし、特許文献2においては、もともとプログラムAとプログラムBをシリーズで走らせることを前提としており、同期させるという概念は無かった。それに対して、本願では、更新完了の状態が一致したとき(値「1」)のみ、機能を切り換えるようにし、フラグをリセットするように構成して、送信バッファ30Aと30B、および送信バッファ31Aと31Bの動作を同期化した。
つまり、マイコン自体の動作ではなく、データの書込み、読出しに用いるバッファの機能切替を同期化させることで、非同期のマイコンAとマイコンBそれぞれで実行されるプログラムAとプログラムBを同期して並行処理できることを見出した。つまり、CPUのクロック同期を必要とせず、上述した単純な構成で、非同期のマイコン動作を実質的に同期化させることができた。これは、以下のアナログ入力回路14についても同様である。
アナログ入力回路14では、アナログ出力回路13でのデータの流れが逆になるだけで、ステップ単位の基本動作は、アナログ出力回路13と同一である。アナログ入力回路14に対するマイコンAの制御処理(プログラムA)について、図7を用いて説明する。まず、プログラムAは受信バッファ読出完了フラグレジスタ45Aに現在登録されている値を読込み(ステップS21A)、受信バンクが切り替わっているか否かを判断する(ステップS22A)。値が「1」であれば、受信バンクは切り替わっていないと判断し、ステップS21Aに戻る。値が0であれば、プログラムA、Bともに受信データの読出しが完了し、受信バンクが切り替わった状態である。そのため、動作中バンクレジスタ47に登録されている値を読込み(ステップS23A)、選択器43がバンク0とバンク1のいずれを選択している状態かを判断する(ステップS24A)。
リード値がバンク0を示す値であれば、ADCアクセスコントローラ48はバンク0に受信データを書込んでいる状態であるので、プログラムAは受信バッファ(バンク1)41Aから受信データを読出す(ステップS25A)。そして、受信バッファ(バンク1)の受信データ読出しが完了すると、受信バッファ読出完了フラグレジスタ45Aに対してデータ読出完了を示す値「1」をセットする(ステップS27A)。
一方、リード値がバンク1を示す値であれば、ADCアクセスコントローラ48の書込み用にバンク1が使用されている状態であるので、プログラムAは受信バッファ(バンク0)40Aから受信データを読込む(ステップS26A)。そして、受信バッファ(バンク0)からの受信データ読出しが完了すると、受信バッファ更新フラグレジスタ(45A)に対してデータ読出完了を示す値「1」をセットする(ステップS27A)。
プログラムBについては、図8に示すように、図7におけるステップ番号の末尾「A」を「B」に置き換えた以外は同じフローであり、プログラムAと同一の動作を実施する。そのためプログラムA、Bともに受信データ読出しが完了すると、AND回路49がADCアクセスコントローラ48に受信バンク切替要求を出力する。ADCアクセスコントローラ48は、受信バッファへの受信データ書込み中でなければ、動作中バンクレジスタ47のバンクを切り替えて、受信バッファ読出完了フラグレジスタ45A、45Bに受信バンク切替完了通知を出力する。
これにより、選択器43は、プログラムA、Bともに読出し済みのバンクが選択されるため、プログラムAとプログラムBの受信データの同時性が確保される。
通信入出力回路15では、上位制御装置8との通信送受信処理を行う。通信方法としては、上位制御装置8が常にマスターとなり、通信入出力回路15は常にスレーブとして動作し、通信入出力回路15は、上位制御装置8からの受信処理を実行した後に、上位制御装置8に対して送信処理を実行する。
通信入出力回路15に対するマイコンAの制御処理(プログラムA)について、図9を用いて説明する。上位制御装置8からの受信処理については、図7を用いて説明したアナログ入力回路14に対するマイコンAの制御処理(プログラムA)と同じであり、ステップ番号の十位の値が5で、一位の値が図7のステップ番号と同じステップは、基本的に同じ動作となる。つまり、通信が有効になると(ステップS50A)、図7と同様の処理を実行する(ステップS51A、S52A、S53A、S54A、S55A、S56A、S57A)。
上位制御装置8に対する送信処理については、図5を用いて説明したアナログ出力回路13に対するマイコンAの制御処理(プログラムA)と同じであり、ステップ番号の十位の値が6で、一位の値が図5のステップ番号と同じステップは、基本的に同じ動作となる。つまり、ステップS57Aに続いて、図5と同様の処理を実行する(ステップS61A、S62A、S63A、S64A、S65A、S66A、S67A)。
プログラムBについては、図10に示すように、図9におけるステップ番号の末尾「A」を「B」に置き換えた以外は同じフローであり、プログラムAと同一の動作を実施する。これにより、非同期で動作するプログラムAとプログラムBの受信データ、送信データの同時性を確保しつつ、比較器54で送信データの比較を行うことで、データ化けの有無を検出できるので、不正な送信データを送信するのを事前に防ぐことができる。
つまり、二重化されたバッファの更新完了、あるいは読出完了の状態が一致したとき(値「1」)のみ機能を切り換え、かつ、完了通知を出してフラグをリセットするというバッファの機能切替を同期化させることで、マイコンを実質的に同期化させた。その結果、非同期のマイコンAとマイコンBそれぞれを並行処理し、演算処理を高速化させて入出力動作の同時性を確保し、データ化けによる誤出力を防止することができるようになった。
なお、本願は、例示的な実施の形態が記載されているが、実施の形態に記載された様々な特徴、態様、および機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合が含まれるものとする。具体的には、書込みと読出しを同時に行うために、対のバンクを二重化させる例について説明したが、例えば、マイコンA用の一つのバンク、マイコンB用の1つのバンクのそれぞれの機能を順次切替えるようにしてもよい。この場合、対のバンクを用いる場合よりも処理速度は劣るが、構成を簡略化させて、マイコンAとマイコンBの並列処理を実現できる。
以上のように、各実施の形態にかかるI/O制御装置1によれば、通信接続により上位制御装置8と制御対象機器9との間に介在し、上位制御装置8と制御対象機器9との間の入出力制御と、上位制御装置8の演算処理の負荷軽減を担うI/O制御装置1であって、CPUコア21Aと、CPUコア21Aによる演算処理用のデータを格納するメモリ(RAM22A、EEPROM23A)とを有する第一マイコン(マイコン12A:マイコンA)、第一マイコンと構成が同じで、第一マイコンと同じプログラムがインストールされ、第一マイコンと非同期で動作する第二マイコン(マイコン12B:マイコンB)、上記インストールされたプログラムの実行により、マイコンAマイコンとマイコンBのそれぞれから逐次出力される送信データを更新して書込み、書き込まれたデータを上位制御装置8または制御対象機器9への送信データとして逐次読み出すための二重化された送信バッファ(送信バッファ30Aと送信バッファ30B、および送信バッファ31Aと送信バッファ31B)、二重化された送信バッファのそれぞれから逐次読み出されたデータを比較し、送信データでのデータ化けの有無を検出する比較器34、および、二重化された送信バッファそれぞれにおける送信データの更新状態が一致したときに、比較器34で比較させるデータを二重化された送信バッファのそれぞれから読み出させる読出データ同期制御機構(送信バッファ更新フラグレジスタ35A、35B、選択器33A、33B、動作中バンクレジスタ37、DACアクセスコントローラ38、AND回路39)、を備えるように構成したので、マイコンA、マイコンBそれぞれから出力される送信データの書込み、および読出しを行うバッファの動作が同期化される。つまり、バッファからの読出しのタイミングを調整することで、非同期のマイコンA、マイコンB自体の動作を同期化させなくても、実質的に同期化し、演算処理を高速化させて、入出力動作の同時性を確保し、データ化けによる誤出力を防止できる。
とくに、二重化された送信バッファは、書込用と読出用とを切り換えて用いる対のバッファ(送信バッファ30Aと送信バッファ31Aの対、および送信バッファ30Bと送信バッファ31Bの対)を二重化して構成され、前記読出データ同期制御機構(とくに、選択器33A、33B)は、更新状態が一致したときに、対のバッファのうちの一方を書込用に、他方を読出用として切り替えるように構成すれば、マイコンごとのデータ読出しとデータ書込みを同時に行えるので、さらに処理速度を高めることができる。
また、上位制御装置8、または制御対象機器9から逐次受信した受信データを更新して書込み、マイコンAとマイコンBそれぞれが受信データとして逐次読み出すための、書込用と読出用とを切り換えて用いる対のバッファを二重化して構成された二重化された受信バッファ(受信バッファ40Aと受信バッファ40B、および受信バッファ41Aと受信バッファ41B)、および、二重化された受信バッファそれぞれにおける受信データの読出し状態が一致したときに、対のバッファのうちの一方を書込用に、他方を読出用として切り替える受信バッファ切替機構(受信バッファ読出完了フラグレジスタ45A、45B、選択器43、動作中バンクレジスタ47、ADCアクセスコントローラ48、AND回路49)、を備えるように構成すれば、マイコンごとのデータ読出しとデータ書込みを同時に行えるので、さらに処理速度を高めることができる。
1:I/O制御装置、 8:上位制御装置、 9:制御対象機器、 12A:マイコン(第一マイコン)、 12B:マイコン(第二マイコン)、 21A、21B:CPUコア、 22A、22B:RAM(メモリ)、 23A、23B:EEPROM(メモリ)、 30A、30B、31A、31B:送信バッファ、 33A、33B:選択器(読出データ同期制御機構)、 34:比較器、 35A、35B:送信バッファ更新フラグレジスタ、 37:動作中バンクレジスタ(読出データ同期制御機構)、 38:DACアクセスコントローラ(読出データ同期制御機構)、 39:AND回路(読出データ同期制御機構)、 40A、40B、41A、41B:受信バッファ、 45A、45B:受信バッファ読出完了フラグレジスタ、 43:選択器(受信バッファ切替機構)、 47:動作中バンクレジスタ(受信バッファ切替機構)、 48:ADCアクセスコントローラ(受信バッファ切替機構)、 49:AND回路(受信バッファ切替機構)。

Claims (3)

  1. 通信接続により上位制御装置と制御対象機器との間に介在し、前記上位制御装置と前記制御対象機器との間の入出力制御を担うI/O制御装置であって、
    CPUコアと、前記CPUコアによる演算処理用のデータを格納するメモリとを有する第一マイコン、
    前記第一マイコンと同じプログラムがインストールされ、前記第一マイコンと非同期で動作する第二マイコン、
    前記インストールされたプログラムの実行により、前記第一マイコンと前記第二マイコンのそれぞれから逐次出力される送信データを更新して書込み、書き込まれたデータを前記上位制御装置または前記制御対象機器への送信データとして逐次読み出すための二重化された送信バッファ、
    前記二重化された送信バッファのそれぞれから逐次読み出されたデータを比較し、前記送信データでのデータ化けの有無を検出する比較器、およ
    前記第一マイコンと前記第二マイコンそれぞれが前記送信データを更新するたびに登録値を変える2つの更新フラグレジスタと、前記2つの更新フラグレジスタの出力端に接続され、前記2つの更新フラグレジスタそれぞれの前記登録値が一致したときに出力するAND回路とを有し、前記AND回路からの出力があったときに、前記比較器で比較させるデータを前記二重化された送信バッファのそれぞれから読み出させる読出データ同期制御機構、
    を備えたことを特徴とするI/O制御装置。
  2. 前記二重化された送信バッファは、書込用と読出用とを切り換えて用いる対のバッファを二重化して構成され、
    前記読出データ同期制御機構は、前記登録値が一致したときに、前記対のバッファのうちの一方を書込用に、他方を読出用として切り替えることを特徴とする請求項1に記載のI/O制御装置。
  3. 通信接続により上位制御装置と制御対象機器との間に介在し、前記上位制御装置と前記制御対象機器との間の入出力制御を担うI/O制御装置であって、
    CPUコアと、前記CPUコアによる演算処理用のデータを格納するメモリとを有する第一マイコン、
    前記第一マイコンと同じプログラムがインストールされ、前記第一マイコンと非同期で動作する第二マイコン、
    前記インストールされたプログラムの実行により、前記第一マイコンと前記第二マイコンのそれぞれから逐次出力される送信データを更新して書込み、書き込まれたデータを前記上位制御装置または前記制御対象機器への送信データとして逐次読み出すための二重化された送信バッファ、
    前記二重化された送信バッファのそれぞれから逐次読み出されたデータを比較し、前記送信データでのデータ化けの有無を検出する比較器、および、
    前記二重化された送信バッファそれぞれにおける前記送信データの更新状態が一致したときに、前記比較器で比較させるデータを前記二重化された送信バッファのそれぞれから読み出させる読出データ同期制御機構、
    前記上位制御装置、または前記制御対象機器から逐次受信した受信データを更新して書込み、前記第一マイコンと前記第二マイコンそれぞれが受信データとして逐次読み出すための、書込用と読出用とを切り換えて用いる対のバッファを二重化して構成された二重化された受信バッファ、および、
    前記二重化された受信バッファそれぞれにおける前記受信データの読出し状態が一致したときに、前記対のバッファのうちの一方を書込用に、他方を読出用として切り替える受信バッファ切替機構、
    を備えたことを特徴とするI/O制御装置。
JP2019088142A 2019-05-08 2019-05-08 I/o制御装置 Active JP7224237B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019088142A JP7224237B2 (ja) 2019-05-08 2019-05-08 I/o制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019088142A JP7224237B2 (ja) 2019-05-08 2019-05-08 I/o制御装置

Publications (2)

Publication Number Publication Date
JP2020184184A JP2020184184A (ja) 2020-11-12
JP7224237B2 true JP7224237B2 (ja) 2023-02-17

Family

ID=73045201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019088142A Active JP7224237B2 (ja) 2019-05-08 2019-05-08 I/o制御装置

Country Status (1)

Country Link
JP (1) JP7224237B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7472047B2 (ja) * 2021-01-05 2024-04-22 株式会社東芝 発電制御用入出力モジュール

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110803A (ja) 2002-08-30 2004-04-08 Nec Computertechno Ltd フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム
JP2006178618A (ja) 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ及びデータ送信制御方法
JP2016004409A (ja) 2014-06-17 2016-01-12 三菱電機株式会社 I/o制御装置
JP2017151496A (ja) 2016-02-22 2017-08-31 ルネサスエレクトロニクス株式会社 安全監視装置、ネットワークシステム、安全監視方法
US20180336157A1 (en) 2017-05-19 2018-11-22 Ge Aviation Systems Llc Methods for managing communications involving a lockstep processing system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2937233B2 (ja) * 1996-06-18 1999-08-23 日本電気株式会社 フォーマット変換装置
US6157395A (en) * 1997-05-19 2000-12-05 Hewlett-Packard Company Synchronization of frame buffer swapping in multi-pipeline computer graphics display systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110803A (ja) 2002-08-30 2004-04-08 Nec Computertechno Ltd フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム
JP2006178618A (ja) 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ及びデータ送信制御方法
JP2016004409A (ja) 2014-06-17 2016-01-12 三菱電機株式会社 I/o制御装置
JP2017151496A (ja) 2016-02-22 2017-08-31 ルネサスエレクトロニクス株式会社 安全監視装置、ネットワークシステム、安全監視方法
US20180336157A1 (en) 2017-05-19 2018-11-22 Ge Aviation Systems Llc Methods for managing communications involving a lockstep processing system

Also Published As

Publication number Publication date
JP2020184184A (ja) 2020-11-12

Similar Documents

Publication Publication Date Title
US5845060A (en) High-performance fault tolerant computer system with clock length synchronization of loosely coupled processors
JP5459807B2 (ja) マルチプロセッサデータ処理システムにおけるデバッグシグナリング
JP6280359B2 (ja) プログラマブルコントローラ
EP0514075A2 (en) Fault tolerant processing section with dynamically reconfigurable voting
US8140893B2 (en) Fault-tolerant system
CN101313281A (zh) 用于在包括至少两个具有寄存器的执行单元的系统中消除错误的装置和方法
WO2011101707A1 (en) Data processing method, data processor and apparatus including a data processor
JPH07311751A (ja) 共用メモリを有するマルチプロセッサ・システム
US8458516B2 (en) Processor system and operation mode switching method for processor system
AU2017313189B2 (en) Method and apparatus for redundant data processing
KR940002340B1 (ko) 다중 운영 체제 컴퓨터 장치
CN110147343B (zh) 一种全比较的Lockstep处理器架构
EP3273353B1 (en) Data processing device
JP7224237B2 (ja) I/o制御装置
US5473770A (en) Fault-tolerant computer system with hidden local memory refresh
RU2333529C1 (ru) Трехканальная управляющая система
JP3628265B2 (ja) マルチプロセッサシステム装置
JP2573297B2 (ja) 電力制御用ディジタルコントローラ
US20020174282A1 (en) Multiprocessor system
KR20120102240A (ko) 이중화 plc 시스템 및 이의 데이터 동기화 방법
JPS62187901A (ja) 2重化コントロ−ラの制御方法
JPH0478902A (ja) バスコントローラ
JP5604799B2 (ja) フォールトトレラントコンピュータ
JP2561477B2 (ja) デ−タ伝送装置
JP2017173921A (ja) 多重系電子計算機および多重系電子計算機用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211213

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20211213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230207

R151 Written notification of patent or utility model registration

Ref document number: 7224237

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151