(57)【特許請求の範囲】
【請求項１】
シリアル通信を制御する複数のチャネル毎に設けられた通信制御素子と、これらの通信制御素子から出力される割り込み信号を操作する割り込みコントローラを備え、マルチチャネルのシリアル通信を制御するシリアル通信コントローラにおいて、
前記通信制御素子は、割り込み信号を要因別に識別し得る複数ビットの信号として出力し、
前記割り込みコントローラは、
前記通信制御素子から入力された割り込み信号の少なくともいずれかに割り込みの要求が含まれるか否かを検出し、検出された場合に検出信号をＣＰＵに出力する割り込み検出器と、
前記通信制御素子から入力された割り込み信号に基づいて優先順位が最も高い割り込みレベルを判別する割り込みレベル判定器と、
この割り込みレベル判定器で判定された優先順位が最も高い割り込みレベルと同一レベルの割り込み信号を出力しているチャネルを検出する割り込みレベル比較器と、
前記割り込みレベル判定器から出力された優先順位が最も高い割り込みレベルと前記割り込みレベル比較器から出力されたチャネルを記憶する割り込みステータスレジスタと、
を備え、
前記検出信号には前記ＣＰＵが割り込みを受け付けるべきチャネルを指定する情報が含まれず、
前記ＣＰＵは前記検出信号を受けて前記ステータスレジスタにアクセスし、前記ステータスレジスタに記憶された前記チャネルからの割り込みを受け付けることを特徴とするシリアル通信コントローラ。
【請求項２】
前記通信制御素子は、割り込みレベルのレベル数と同一のビット数からなる割り込み信号を出力することを特徴とする請求項１記載のシリアル通信コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として各種製造装置で用いられる組み込み用シリアル通信コントローラに関し、特に受信オーバーランエラーの発生を抑制すると共に、処理効率が高いシリアル通信コントローラに関する。
【背景技術】
【０００２】
一般に、各種製造装置で使用される組み込み用コントローラとしては，アプリケーションプログラムを主にラダー言語で開発するプログラマブルロジックコントローラ（PLC）とC言語で開発するボードコンピュータが採用されている。
【０００３】
また、このような組み込み用コントローラは、イーサネット（登録商標）通信や多チャンネルのシリアル通信に対応できることが要求されるが、この際、これらの通信インターフェースを介して割り込み要求が成された場合でも、全体の処理効率をできる限り低下させないことが必要となる。このような、シリアル通信コントローラの先行技術文献としては例えば特許文献１が知られ、組み込み用コントローラの先行技術文献としては非特許文献１が知られている。
【０００４】
【特許文献１】特開平０９―３１９７０２号公報
【０００５】
【非特許文献１】佐藤智義也、他２名、「リアルタイムＯＳ搭載コントローラe-RT3」、横河技報、横河電機株式会社、２００７年、Vol.５１号、ｐ．２３−２６
【０００６】
以下、図４を参照して従来のシリアル通信コントローラを説明する。マルチチャネルシリアル通信コントローラ１０は、チャネルごとに通信制御素子であるUART(Universal Asynchronous Receiver-Transmitter)２０、３０、４０を備えると共に、割り込みコントローラ５０を備える。
【０００７】
UART２０は、チャネル「0」用のＵＡＲＴであり、内部レジスタ２１を備え、周辺機器のデータ（例えば温調計のデータ）を他の装置（例えばPLC）で扱えるように変換するものである。また、UART２０は、シリアル通信インターフェース（通信トランシーバ）との間でTxD0（送信データ）、RxD0（受信データ）のやり取りを行う。
【０００８】
さらに、UART２０は、通信トランシーバを介して割り込み要求がなされると、シリアル通信コントローラがCPU６０に対して処理要求を通知する際の識別信号IRQ0（Interrupt Re Quest）を出力する。なお、この識別信号IRQ0は「１」のときに割り込みありを意味し、「０」のときは割り込みなしを意味する。
【０００９】
その他、UART３０はチャネル「１」用のUARTであり、UART４０はチャネル「ｎ」用のUARTであるが、扱うチャネルが異なる点を除き、機能としてはUART２０と同様なので説明を省略する。
【００１０】
割り込みコントローラ５０は、オア回路５１と割り込みステータスレジスタ５２を備える。オア回路５１は識別信号IRQ0、IRQ1、・・・、IRQnのいずれかが「１」の場合、割り込みの要求がある旨の信号IRQをCPU６０に出力する。割り込みステータスレジスタ５２は、例えば８チャネルの場合図５の様な割付例となる。
【００１１】
図５の割付例によれば、識別信号IRQxは、当該チャネル（Xチャネル）のUARTからの割り込みの有無を示すものであり、「１」で割り込みありとなり、「０」で割り込みなしとなる。
【００１２】
CPU６０は、割り込み要求IRQを受け付けると、割り込みステータスレジスタ５２を読み出すことによって、どのUART２０、３０、・・・、４０からの割り込みであるかを識別する。
【００１３】
このように、従来のシリアル通信コントローラでは、どのチャネルから割り込み要求があるかを識別することができる。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
ところで、シリアル通信を行うUART２０、３０、・・・、４０からの割り込みには、「受信割り込み」、「文字間タイムアウト割り込み」、「送信割り込み」などの複数の要因がある。また、これらの割り込みには、通常、優先順位があり、受信オーバーランエラーを防ぐため、受信割り込みの優先順位が最も高く設定されている。
【００１５】
しかし、従来のシリアル通信コントローラの場合、どのチャネルから割り込みがあるかは識別できるが、どのチャネルの優先順位が高いかを識別するためには、CPU６０が各UART２０、３０、・・・、４０の内部レジスタ２１、３１、４１の内容を読み出す必要があった。
【００１６】
本発明は、これらの問題点に鑑みてなされたものであり、受信オーバーランエラーの発生を抑制すると共に、処理効率を向上させることを目的とする。
【課題を解決するための手段】
【００１７】
この様な課題を達成するために請求項１記載の発明は、
シリアル通信を制御する複数のチャネル毎に設けられた通信制御素子と、これらの通信制御素子から出力される割り込み信号を操作する割り込みコントローラを備え、マルチチャネルのシリアル通信を制御するシリアル通信コントローラにおいて、
前記通信制御素子は、割り込み信号を要因別に識別し得る複数ビットの信号として出力し、
前記割り込みコントローラは、
前記通信制御素子から入力された割り込み信号の少なくともいずれかに割り込みの要求が含まれるか否かを検出し、検出された場合に検出信号をＣＰＵに出力する割り込み検出器と、
前記通信制御素子から入力された割り込み信号に基づいて優先順位が最も高い割り込みレベルを判別する割り込みレベル判定器と、
この割り込みレベル判定器で判定された優先順位が最も高い割り込みレベルと同一レベルの割り込み信号を出力しているチャネルを検出する割り込みレベル比較器と、
前記割り込みレベル判定器から出力された優先順位が最も高い割り込みレベルと前記割り込みレベル比較器から出力されたチャネルを記憶する割り込みステータスレジスタと、
を備え、
前記検出信号には前記ＣＰＵが割り込みを受け付けるべきチャネルを指定する情報が含まれず、
前記ＣＰＵは前記検出信号を受けて前記ステータスレジスタにアクセスし、前記ステータスレジスタに記憶された前記チャネルからの割り込みを受け付ける。
【００１８】
請求項２前記通信制御素子は、
請求項１記載のシリアル通信コントローラにおいて、
割り込みレベルのレベル数と同一のビット数からなる割り込み信号を出力する。
【発明の効果】
【００１９】
本発明では次のような効果がある。最も高い割り込みレベルを検出する割り込みレベル判定器と、この割り込みレベル判定器で検出された割り込みレベルと同じレベルの割り込みを出力しているチャネルを検出する割り込みレベル比較器を設けたので、受信オーバーランエラーの発生を抑制すると共に、装置全体の処理効率を向上させることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図１を参照して本発明によるシリアル通信コントローラの構成例を説明する。マルチチャネルシリアル通信コントローラ１は、チャネルごとにUART２５、３５、４５を備える他、割り込みコントローラ１００を備える。
【００２１】
各UART２５、３５、４５から出力される割り込み信号は、それぞれIRQ0[1:0]，IRQ1[1:0]，・・・，IRQn[1:0]の2ビットの信号として出力される。これらの割り込みレベル信号の定義は例えば図２の通りであり、受信割り込みがもっとも優先順位が高く設定され、続いて文字間タイムアウト割り込み、送信割り込み、割り込みなしの順に優先順位が高く設定されている。
【００２２】
続いて割り込みコントローラ１００の構成を説明する。割り込み検出器１１０は割り込み信号を検出し、IRQ信号をCPUに出力する。割り込みレベル判定器１２０は最も高い割り込みレベルを検出する。また、割り込みレベル判定器１２０で検出された値は、IRQLVL[1:0]信号として、割り込みステータスレジスタ１４０に出力されると共に、割り込みレベル比較器１３０にも出力される。
【００２３】
割り込みレベル比較器１３０は、検出した割り込みレベルと同レベルの割り込み信号を出力しているチャネルを検出する。また、この割り込みレベル比較器１３０で検出された情報は、割り込みステータスレジスタ１４０へ信号IRQ[n:0]として出力される。
【００２４】
CPU６０は、IRQが入力されることによって割り込みを受け付けると、割り込みステータスレジスタ１４０の内容を読み出すことによって、現在の割り込みレベルとどのチャネルに同じレベルの割り込みがあるのかを識別する。
【００２５】
続いて、割り込みステータスレジスタ１４０のビット割付例を図３に示す。ただし、図３におけるIRQLVL[1:0]は、現在の最も高い割り込みレベルを示し、図２の割り込み優先順位の定義づけに基づき、レベル「３」の場合には受信割り込み、レベル「２」の場合には文字間タイムアウト割り込み、レベル「１」の場合には送信割り込み、が最も高いレベルの割り込み信号であることを示す。
【００２６】
また、IRQx（IRQ7・・・IRQ1、IRQ0）は、当該チャネル（Xチャネル）におけるUARTからIRQLV[1:0]に示されたレベルの割り込みの有無を示し、「１」で割り込みあり、「０」で割り込みなしとなる。
【００２７】
次に、図１の動作を説明する。まず、前提条件として、UART２５から出力されたIRQ0[1:0]の割り込みレベルが「０」で、UART３５から出力されたIRQ1[1:0]の割り込みレベルが「３」で、UART４５から出力されたIRQn[1:0]の割り込みレベルが「１」であるとする。これらの信号は、割り込みコントローラ１００に入力され、割り込み検出器１１０、割り込みレベル判定器１２０、及び割り込みレベル比較器１３０に入力される。
【００２８】
割り込み検出器１１０は、UART３５、UART４５から割り込み信号が入力されているので、割り込みが合った旨のIRQをCPU６０に出力する。割り込みレベル判定器１２０は、各UARTから出力された割り込み信号のレベル「０」、「３」、「１」のうちどれが最も高いか判定する。従って、この例ではIRQLVL[1:0]は「３」となり、割り込みレベル比較器１３０と割り込みステータスレジスタ１４０に出力される。
【００２９】
割り込みレベル比較器１３０は、割り込みレベル判定器１２０からIRQLVL[1:0]が入力されるので、各UARTの中から検出した割り込みレベル「３」と同レベルの割り込み信号を出力しているチャネルを検出する。従って、この例ではチャネル１となる。
【００３０】
これらの動作により、割り込みレベル判定器１２０から出力されたIRQLVL[1:0]と、割り込みレベル比較器１３０から出力されたIRQL[n:0]は、割り込みステータスレジスタ１４０に記憶されている。そのため、CPU６０は、IRQが入力されることによって割り込み要求があることを認識すると、割り込みステータスレジスタ１４０から、現在の割り込みレベルとどのチャネルから同じレベルの割り込みがあるのかを識別する。
【００３１】
このように、割り込みステータスレジスタ１４０が、最も高い割り込みレベルの割り込みを出力しているチャネルに該当するビットのみをセットすることによって、CPU６０が優先順位の高い処理を効率的に行うことができる。
【００３２】
具体的には、受信割り込みレベルを最も高くし、受信割り込みが発生しているチャネルのみを割り込みステータスレジスタ１４０の該当ビットにセットすることにより、受信オーバーランエラーの発生リスクを低減することができる。換言すると、割り込みレベルが低いチャネルのビットは、割り込みステータスレジスタ１４０にセットされないため、そのチャネルのレジスタを読み出しに行く必要がなくなり、装置全体の処理効率も向上する。
【００３３】
次に、本発明の応用例を説明する。図１の実施例では、割り込みレベル信号を符合化した（3レベルの割り込みを2ビットでコード化）情報でやり取りしているが、各割り込みレベル毎に1ビットの信号を割り付ける（3レベルの割り込みがある場合は、3ビットの信号となる）こともできる。
【００３４】
この場合、割り込み検出器１１０は単純なOR回路で足りる。また、割り込みレベル判定器１２０、割り込みレベル比較器１３０も簡単な回路で構成できる。
【図面の簡単な説明】
【００３５】
【図１】本発明のシリアル通信コントローラの構成図である。
【図２】割り込み優先順位の定義づけを表した表である。
【図３】割り込みステータスレジスタのビット割付例である。
【図４】従来のシリアル通信コントローラの構成図である。
【図５】割り込みステータスレジスタのビット割付例である。
【符号の説明】
【００３６】
１        マルチチャンネルシリアル通信コントローラ
２５      ＵＡＲＴ
３５      ＵＡＲＴ
４５      ＵＡＲＴ
６０      ＣＰＵ
１００    割り込みコントローラ
１１０    割り込み検出器
１２０    割り込みレベル判定器
１３０    割り込みレベル比較器
１４０    割り込みステータスレジスタ
【図１】
0005332320.tif 000002
【図２】
0005332320.tif 000003
【図３】
0005332320.tif 000004
【図４】
0005332320.tif 000005
【図５】
0005332320.tif 000006