(57)【特許請求の範囲】
【請求項１】
複数の送受信バッファを有するシリアルＩ／Ｏであって、
受信バッファ数又は送信バッファ数の少なくとも何れか１つを指定することにより使用する送信バッファ数及び受信バッファ数を割り付ける制御手段と、
前記制御手段による送受信バッファの割り付け指示に基づいて、複数の送受信バッファの中から所定の送受信バッファを選択し、該選択した送受信バッファへのリード／ライトを行う選択手段と、
受信データのリード要求を出力する割り込み手段とを備え、
前記割り込み手段は、受信バッファ数分のデータを受信する度に前記受信データのリード要求を出力する動作と、１バイト分のデータを受信する度に前記受信データのリード要求を出力する動作との間で切換可能であることを特徴とするシリアルＩ／Ｏ。
【請求項２】
前記制御手段は、送信バッファを１個又は未使用のとき残りのバッファを受信バッファとして割り付けるように制御することを特徴とする請求項１に記載のシリアルＩ／Ｏ。
【請求項３】
前記制御手段は、受信バッファを１個又は未使用のとき残りのバッファを送信バッファとして割り付けるように制御することを特徴とする請求項１に記載のシリアルＩ／Ｏ。
【請求項４】
前記選択手段は、前記制御手段からの割り付け指示により複数の送受信バッファの中から１つを選択し、所定の送受信バッファへのリード／ライトを行うように構成したことを特徴とする請求項１に記載のシリアルＩ／Ｏ。
【請求項５】
前記制御手段は、受信バッファ数と送信バッファ数をそれぞれ設定可能な設定手段を備え、
前記設定手段は、受信バッファ数と送信バッファ数をそれぞれ指定し、該指定されていない送受信バッファの動作を停止させるようにしたことを特徴とする請求項１、２又は３の何れかに記載のシリアルＩ／Ｏ。
【請求項６】
前記送受信バッファは、データの入力状態によって受信バッファ又は送信バッファの何れのバッファとしても使用可能なバッファで構成されたことを特徴とする請求項１、４又は５の何れかに記載のシリアルＩ／Ｏ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータに内蔵されるシリアルＩ／Ｏに係り、詳細には、送受信バッファをもつシリアルＩ／Ｏはマイクロコントローラ等に内蔵され、他のマイクロコントローラ等とシリアルにデータの送受信を行うシリアルＩ／Ｏに関する。
【０００２】
【従来の技術】
マイクロコンピュータでは、データ入出力用の周辺装置を接続するインターフェースとして各種Ｉ／Ｏを内蔵している。シリアルＩ／Ｏはビットシリアルな転送を行うインターフェースであり、キーボードやプリンタ、ＲＳ−２３２Ｃ規格等の通信に使用される。
【０００３】
従来の複数の送受信バッファをもつシリアルＩ／Ｏは、マイクロコントローラ等に内蔵され、他のマイクロコントローラ等とシリアルにデータの送受信を行っている。
【０００４】
従来の複数の送受信バッファをもつシリアルΙ／Ｏについて図１５〜図１９を用いて説明する。
【０００５】
図１５は従来のシリアルΙ／Ｏの構成を示すブロック図である。シリアルΙ／Ｏは、複数ビットの複数ビットのデータにより送受信を行っている。ここでは８ビットのデータとして説明する。
【０００６】
図１５において、シリアルＩ／Ｏ１０は、受信シフトレジスタ（ＲＳＦ１）１１、送信シフトレジスタ（ＴＳＦ３）１２、受信バッファ（Ｂ５0，Ｂ５1）１３，１４、送信バッファ（Ｂ５2，Ｂ５3）１５，１６、セレクタ（Ｓ４1，Ｓ４2，Ｓ４3）１７，１８，１９、受信バッファコントローラ（ＣＯＮ２1）２０及び送信バッファコントローラ（ＣＯＮ２2）２１から構成されている。
【０００７】
上記受信シフトレジスタ（ＲＳＦ１）１１は、シリアル転送されたデータをシフトして８ビットのデータとして保持する。
【０００８】
上記送信シフトレジスタ（ＴＳＦ３）１２は、８ビットの転送データを１ビットずつシフトしてシリアル転送するレジスタである。
【０００９】
上記受信バッファ（Ｂ５0，Ｂ５1）１３，１４は、マイクロコントローラの設定によりバッファの数を１個若しくは２個に設定できる受信データの格納バッファである。
【００１０】
上記送信バッファ（Ｂ５2，Ｂ５3）１５，１６は、マイクロコントローラの設定によりバッファの数を１個若しくは２個に設定できる送信データの格納バッファである。
【００１１】
上記セレクタ（Ｓ４1）１７は、マイクロコントローラに出力するデータを格納する受信バッファ（Ｂ５0，Ｂ５1）１３，１４を選択する。
【００１２】
上記セレクタ（Ｓ４2）１８は、マイクロコントローラから入力される送信データを格納する送信バッファ（Ｂ５2，Ｂ５3）１５，１６を選択する。
【００１３】
上記セレクタ（Ｓ４3）１９は、送信シフトレジスタ（ＴＳＦ３）１２にデータをセットする送信バッファ（Ｂ５2，Ｂ５3）１５，１６を選択する。
【００１４】
上記受信バッファコントローラ（ＣＯＮ２1）２０は、受信シフトレジスタ（ＲＳＦ１）１１で受信したデータを複数の受信バッファ（Ｂ５0，Ｂ５1）１３，１４に割り付けたり、受信シフトレジスタ（ＲＳＦ１）１１の動作を許可する制御を行う。
【００１５】
上記送信バッファコントローラ（ＣＯＮ２2）２１は、複数の送信バッファ（Ｂ５2，Ｂ５3）１５，１６から送信シフトレジスタ（ＴＳＦ３）１２にセットする送信データの割り付けを行ったり、送信シフトレジスタ（ＴＳＦ３）１２の動作を許可する制御を行う。
【００１６】
以下、上記シリアルＩ／Ｏ１０を構成する各回路について具体的に説明する。
まず、上記受信シフトレジスタ（ＲＳＦ１）１１について述べる。
【００１７】
入力信号としてシリアル受信データ１０１、受信クロック１０２、受信許可信号１０３があり、出力信号として受信データ信号１０４、受信完了信号１０５がある。
【００１８】
シリアル受信データ１０１は、シリアルデータ入力信号を示す。また、受信クロック信号１０２は、シリアル受信クロック信号を示し、本クロックによりシリアル受信データ１０１をサンプルする。
【００１９】
受信許可信号１０３は、シリアル受信動作を許可する信号を示し、“０”のとき受信動作禁止、“１”のとき受信動作許可を示す。
【００２０】
また、受信データ信号１０４は、受信シフトレジスタ（ＲＳＦ１）１１でセットされた値を受信バッファ（Ｂ５0，Ｂ５1）１３，１４に出力するための８ビットのデータ信号である。
【００２１】
受信完了信号１０５は、受信シフトレジスタ（ＲＳＦ１）１１に８ビットのデータがセットされたことを示す受信完了信号である。
【００２２】
上記送信シフトレジスタ（ＴＳＦ３）１２について説明する。
【００２３】
入力信号として送信データ１１６、送信クロック信号１１５、送信許可信号１１７があり、出力信号としてシリアル送信データ信号１１４、送信完了信号１１８がある。
【００２４】
送信データ１１６は、８ビットのデータ入力信号を示す。また、送信クロック信号１１５は、シリアル送信クロック信号を示し、本クロックによりセットされた送信データ１１６を出力する。また、送信許可信号１１７は、シリアル送信動作を許可する信号を示し、“０”のとき送信動作禁止、“１”のとき送信動作許可を示す。
【００２５】
また、シリアル送信データ信号１１４は、送信シフトレジスタ（ＴＳＦ３）１２でセットされた値をシリアルデータとして出力する信号である。
【００２６】
送信完了信号１１８は、送信シフトレジスタ（ＴＳＦ３）１２に８ビットのデータがセットされたことを示す送信完了信号である。
【００２７】
上記受信バッファコントローラ（ＣＯＮ２1）２０について説明する。
【００２８】
入力信号として受信完了信号１０５、リード／ライト信号１０６、受信バッファコントローラセレクト信号１０７1、データ信号１１９があり、出力信号として受信許可信号１０３、セレクト信号１０９1、受信データリード要求信号１１０、受信バッファ書き込み許可信号１０８0，１０８1がある。
【００２９】
受信完了信号１０５は、受信シフトレジスタ（ＲＳＦ１）１１に８ビットのデータがセットされたことを示す受信完了信号である。リード／ライト信号１０６は、マイクロコントローラからのリード／ライト信号である。
【００３０】
受信バッファコントローラセレクト信号１０７1は、マイクロコントローラからのリード／ライト信号１０６が受信バッファコントローラ（ＣＯＮ２1）２０に対して有効であることを示す信号である。本信号が有効であり、リード／ライト信号がライトを示しているときコントロールデータがセットされ受信動作が許可される。
【００３１】
また、データ信号１１９は、受信バッファ数、受信動作許可のデータ信号である。
【００３２】
受信許可信号１０３は、受信動作を許可することを示す信号であり、内部にこの信号を保持する回路を有する。
【００３３】
セレクト信号１０９1は、受信データをセットする受信バッファ（Ｂ５0，Ｂ５1）１３，１４を選択する信号である。“０”のときΒ５０“１”のときΒ５１を示す。
【００３４】
受信データリード要求信号１１０は、受信バッファΒ５０〜１に受信データがセットされたことを示す信号である。この要求が発生することによりマイクロコントローラからリード要求が発生する。
【００３５】
受信バッファ書き込み許可信号１０８0，１０８1は、受信データを受信バッファ（Ｂ５0，Ｂ５1）１３，１４に書き込みを許可する信号である。受信シフトレジスタが受信完了したときに“１”となる。
【００３６】
上記受信バッファコントローラ（ＣＯＮ２1）２０の内部構成について図１６を用いて更に詳細に説明する。
【００３７】
図１６は、上記受信バッファコントローラ（ＣＯＮ２1）２０の内部構成を示す図であり、この図において、受信バッファコントローラ（ＣＯＮ２1）２０は、受信バッファ数設定レジスタ（ＳＲＥＧ２10）３０、受信バッファセレクトコントローラ（ＣＯＮ２01）３１及び受信許可レジスタ（ＳＥＲＥＧ２11）３２から構成される。
【００３８】
上記受信バッファ数設定レジスタ（ＳＲＥＧ２10）３０は、受信バッファ数を設定するレジスタである。受信バッファ数設定レジスタ（ＳＲＥＧ２10）３０は、リード／ライト信号１０６、受信バッファコントロールセレクト信号１０７1、データ信号１１９によりセットされ、“０”のとき受信バッファ数１個、“１”のとき受信バッファ数２個を示す。
【００３９】
上記受信バッファセレクトコントローラ（ＣＯＮ２01）３１は、受信バッファ書き込み許可信号を出力する回路であり、受信バッファ数設定レジスタ（ＳＲＥＧ２10）３０の設定により受信バッファの書き込み許可信号１０８1，１０８2を制御する。
【００４０】
上記受信許可レジスタ（ＳＥＲＥＧ２11）３２は、受信動作の許可／禁止を制御するレジスタである。
【００４１】
上記送信バッファコントローラ（ＣＯＮ２2）２１について説明する。
【００４２】
図１５に戻って、入力信号として送信完了信号１１８、リード／ライト信号１０６、送信バッファコントローラセレクト信号１０７2があり、出力信号として送信許可信号１１７、セレクト信号１０９2，１０９3、送信データライト要求信号１１１がある。
【００４３】
送信完了信号１１８は、送信シフトレジスタ（ＴＳＦ３）１２に８ビットのデータがセットされたことを示す送信完了信号である。
【００４４】
リード／ライト信号１０６は、マイクロコントローラからのリード／ライト信号である。
【００４５】
送信バッファコントローラセレクト信号１０７2は、マイクロコントローラからのリード／ライト信号１０６が送信バッファコントローラ（ＣＯＮ２2）２１，に対して有効であることを示す信号である。本信号が有効であり、リード／ライト信号１０６がライトを示しているときコントロールデータがセットされ送信動作が許可される。
【００４６】
送信許可信号１１７は、シリアル送信動作を許可する信号を示し、“０”のとき送信動作禁止、“１”のとき送信動作許可を示す。
【００４７】
セレクト信号１０９2は、送信データをセットする送信バッファ（Ｂ５2，Ｂ５3）１５，１６を選択する信号であり、“０”のとき送信バッファ（Ｂ５2）１５、“１”のとき送信バッファ（Ｂ５3）１６を示す。
【００４８】
セレクト信号１０９3は、送信シフトレジスタ（ＴＳＦ３）１２にセットする送信バッファ（Ｂ５2，Ｂ５3）１５，１６を選択する信号であり、“０”のとき送信バッファ（Ｂ５2）１５、“１”のとき送信バッファ（Ｂ５3）１６を示す。送信データライト要求信号１１１は、送信バッファ（Ｂ５2，Ｂ５3）１５，１６に送信データの書き込みをマイクロコントローラに要求する信号である。
【００４９】
上記送信バッファコントローラ（ＣＯＮ２2）２１の内部構成について図１７を用いて更に詳細に説明する。
【００５０】
図１７は、上記送信バッファコントローラ（ＣＯＮ２2）２１の内部構成を示す図であり、この図において、送信バッファコントローラ（ＣＯＮ２2）２１は、送信バッファ数設定レジスタ（ＴＲＥＧ２20）４０、送信バッファセレクトコントローラ（ＣＯＮ２02）４１及び送信許可レジスタ（ＴＥＲＥＧ２21）４２から構成される。
【００５１】
上記送信バッファ数設定レジスタ（ＴＲＥＧ２20）４０は、送信バッファ数を設定するレジスタである。送信バッファ数設定レジスタ（ＴＲＥＧ２20）４０は、リード／ライト信号１０６、送信バッファコントロールセレクト信号１０７2、データ信号１１９によりセットされ、“０”のとき送信バッファ数１個、“１”のとき送信バッファ数２個を示す。
【００５２】
上記送信バッファコントローラ（ＣＯＮ２02）４１は、セレクト信号１０９2，１０９3を出力する回路であり、送信バッファ数設定レジスタ（ＴＲＥＧ２20）４０の設定により送信バッファの書き込み許可信号を制御する。
【００５３】
上記送信許可レジスタ（ＴＥＲＥＧ２21）４２は、送信動作の許可／禁止を制御するレジスタである。
【００５４】
図１５に戻って、上記受信バッファ（Ｂ５0，Ｂ５1）１３，１４について説明する
受信バッファ（Ｂ５0，Ｂ５1）１３，１４は、８ビットのバッファである。入力信号として受信データ信号１０４、書き込み許可信号１０８0，１０８1があるが、入力信号の説明については省略する。出力信号としては受信データ信号１１２0，１１２1がある。受信データ信号１１２0，１１２1は、受信バッファ書き込み許可信号１０８0，１０８1の“１”の入力により受信データ信号１０４の値をセットする。
【００５５】
上記送信バッファ（Ｂ５2，Ｂ５3）１５，１６について説明する。
【００５６】
送信バッファ（Ｂ５2，Ｂ５3）１５，１６は、８ビットのバッファである。入力信号として送信データ信号１１３1、書き込み許可信号１０８2，１０８3があり、出力信号として送信データ信号１１２2，１１２3がある。送信データ信号１１２2，１１２3は、書き込み許可信号１０８2，１０８3の“１”の入力により送信データ信号１１３1の値をセットする。
【００５７】
上記セレクタ（Ｓ４1）１７について説明する。
【００５８】
入力信号としてリード／ライト信号１０６、セレクト信号１０９1、データ信号１１２0，１１２1があり、出力信号として受信データ信号１１３0がある。
【００５９】
この受信データ信号１１３0は、受信バッファコントローラ（ＣＯＮ２1）２０からのセレクト信号１０９1により受信バッファ（Ｂ５0，Ｂ５1）１３，１４を選択し、マイクロコントローラへ受信データを出力する。ここで、セレクト信号１０９1が“０”のときデ一タ信号１１２0の値を、またセレクト信号１０９1が“１”のときデータ信号１１２1の値を出力する。
【００６０】
上記セレクタ（Ｓ４2）１８について説明する。
【００６１】
入力信号としてリード／ライト信号１０６、セレクト信号１０９2があり、出力信号として送信バッファセレクト信号１０８2，１０８3がある。送信バッファセレクト信号１０８2，１０８3は、送信バッファ（Ｂ５2，Ｂ５3）１５，１６の書き込み許可信号である。
【００６２】
上記セレクタ（Ｓ４3）１９について説明する。
【００６３】
入力信号として送信データ信号１１２2，１１２3、セレクト信号１０９3があり、出力信号として送信データ信号１１６がある。送信データ信号１１６は、送信バッファ（Ｂ５2，Ｂ５3）１５，１６からのデータを選択して送信シフトレジスタ（ＴＳＦ３）１２に値を出力する。
【００６４】
図１８及び図１９は上記シリアルΙ／Ｏ１０の信号のタイミングチャートであり、図１８はシリアルΙ／Ｏの受信時のタイミングチャート、図１９は送信時のタイミングチャートを示す。
【００６５】
以下に送信バッファ数を２バイト、受信バッファ数を２バイトに設定した場合を例にとり送受信時の動作を説明する。
【００６６】
まず、図１８を参照して受信時の動作について説明する。
【００６７】
受信バッファコントローラセレクト信号１０７1とリード／ライト信号１０６より受信バッファコントローラ（ＣＯＮ２1）２０内部の受信許可レジスタ（ＳＥＲＥＧ２11）３２の値が“１”にセットされる。これにより受信動作許可信号１０３に“１”が出力される。
【００６８】
受信クロック１０２の立ち上がりによりシリアル受信データ１０１がサンプルされ、８ビットの受信データが受信シフトレジスタ（ＲＳＦ１）１１にセットされる。
【００６９】
受信シフトレジスタ（ＲＳＦ１）１１より出力される受信完了信号１０５が“１”にセットされることにより受信バッファコントローラ（ＣＯＮ２1）２０から受信バッファ（Ｂ５0）１３の書き込み許可信号１０８０が“１”にセットされる。これにより受信バッファ（Ｂ５0）１３に受信シフトレジスタ（ＲＳＦ１）１１の８ビットデータ“ΑΑｈ”がセットされ受信データリード要求信号１１０が“１”にセットされる。
【００７０】
次の受信クロック１０２の立ち上がりによりシリアル受信データ１０１がサンプルされ、８ビットの受信データが受信シフトレジスタ（ＲＳＦ１）１１にセットされる。受信シフトレジスタ（ＲＳＦ１）１１からの受信完了信号１０５が“１”にセットされることにより、受信バッファコントローラ（ＣＯＮ２1）２０から受信バッファ（Β５1）１４の書き込み許可信号１０８1が“１”にセットされる。
【００７１】
これにより受信バッファ（Β５1）１４に受信シフトレジスタ（ＲＳＦ１）１１の８ビットデータ“ΒＢｈ”がセットされ、受信データリード要求信号１１０が“１”にセットされる。
【００７２】
受信バッファ数を１バイトに設定したときは、受信バッファ（Ｂ５0）１３のみ動作させ、受信バッファ（Ｂ５1）１４については未使用となる。よって、受信したデータは受信バッファ（Ｂ５0）１３のみにセットされる。
【００７３】
次に、図１９を参照して送信時の動作について説明する。
【００７４】
送信バッファコントローラセレクト信号１０７2とリード／ライト信号１０６、送信バッファセレクト信号１０９2により送信データ１１３1の値“ＡＡｈ”が送信バッファ（Ｂ５2）１５に書き込まれる。送信バッファ（Ｂ５2）１５にデータがセットされることにより送信バッファコントローラ（ＣＯＮ２2）２１からのセレクト信号１０９3により送信シフトレジスタ（ＴＳＦ3）１２に送信バッファ（Ｂ５2）１５の値“ＡＡｈ”がセットされる。
【００７５】
送信シフトレジスタ（ＴＳＦ3）１２にセットされた値が送信クロック１１５に同期して８ビットの送信データがシリアル送信データ１１４として出力される。
【００７６】
次に、送信バッファコントローラセレクト信号１０７2が“１”に、リード／ライト信号１０６が“０”にセットされると、送信バッファセレクト信号１０９2が出力され、送信バッファ書き込み許可信号１０８3が“１”にセットされる。
【００７７】
これにより送信データ１１３1の値“ΒΒｈ”が送信バッファ（Ｂ５3）１６に書き込まれる。送信バッファ（Ｂ５3）１６にデータがセットされることで送信バッファコントローラ（ＣＯＮ２2）２１からのセレクト信号１０９によって送信シフトレジスタ（ＴＳＦ3）１２に送信バッファ（Ｂ５3）１６の値“ＢＢｈ”がセットされる。
【００７８】
送信シフトレジスタ（ＴＳＦ3）１２にセットされた値が送信クロック１１５に同期して８ビットの送信データが１１４から出力される。
【００７９】
送信バッファ数を１バイトに設定したときは、送信バッファ（Ｂ５2）１５のみ動作させ送信バッファ（Ｂ５3）１６については未使用となる。よって、送信したデータは送信バッファ（Ｂ５2）１５のみにセットされる。
【００８０】
【発明が解決しようとする課題】
しかしながら、このような従来のシリアルＩ／Ｏのデータ転送には以下のような問題点があった。
【００８１】
すなわち、受信バッファ（Ｂ５0，Ｂ５1）１３，１４と送信バッファ（Ｂ５2，Ｂ５3）１５，１６が固定で割り付けられているため、送信バッファを１個又は未使用のとき残りの送信バッファが未使用になるため回路が有効に活用されない。同様に、受信バッファ（Ｂ５0，Ｂ５1）１３，１４と送信バッファ（Ｂ５2，Ｂ５3）１５，１６が固定で割り付けられているため、受信バッファを１個又は未使用のとき残りのバッファが未使用になるため回路が有効に活用されない。
【００８２】
本発明は、送受信バッファが１個又は未使用のときであっても残りのバッファを適切に割り付けて回路を有効に活用することができるシリアルＩ／Ｏを提供することを目的とする。
【００８３】
【課題を解決するための手段】
本発明に係るシリアルＩ／Ｏは、複数の送受信バッファを有するシリアルＩ／Ｏであって、受信バッファ数又は送信バッファ数の少なくとも何れか１つを指定することにより使用する送信バッファ数及び受信バッファ数を割り付ける制御手段と、制御手段による送受信バッファの割り付け指示に基づいて、複数の送受信バッファの中から所定の送受信バッファを選択し、該選択した送受信バッファへのリード／ライトを行う選択手段と、受信データのリード要求を出力する割り込み手段とを備え、
前記割り込み手段は、受信バッファ数分のデータを受信する度に前記受信データのリード要求を出力する動作と、１バイト分のデータを受信する度に前記受信データのリード要求を出力する動作との間で切換可能であることを特徴とする。
【００８４】
制御手段は、送信バッファを１個又は未使用のとき残りのバッファを受信バッファとして割り付けるように制御するものであってもよく、制御手段は、受信バッファを１個又は未使用のとき残りのバッファを送信バッファとして割り付けるように制御するものであってもよい。
【００８５】
また、選択手段は、制御手段からの割り付け指示により複数の送受信バッファの中から１つを選択し、所定の送受信バッファへのリード／ライトを行うように構成してもよい。
【００８７】
また、制御手段は、受信バッファ数と送信バッファ数をそれぞれ設定可能な設定手段を備え、設定手段は、受信バッファ数と送信バッファ数をそれぞれ指定し、該指定されていない送受信バッファの動作を停止させるようにしてもよく、送受信バッファは、データの入力状態によって受信バッファ又は送信バッファの何れのバッファとしても使用可能なバッファで構成されたものであってもよい。
【００８８】
【発明の実施の形態】
本発明に係るシリアルＩ／Ｏは、マイクロコンピュータ等のシリアルＩ／Ｏに適用することができる。
【００８９】
図１は本発明の第１の実施形態に係るシリアルＩ／Ｏの構成図である。本実施形態に係るシリアルＩ／Ｏは、複数の送受信バッファを持つシリアルＩ／Ｏについて有効であるが、ここでは送受信バッファ４個のときについて説明する。
【００９０】
図１の説明にあたり、前記図１５と同一構成部分及び同一信号部分には同一符号を付している。
【００９１】
図１において、シリアルＩ／Ｏ５０は、受信シフトレジスタ（ＲＳＦ１）１１、送信シフトレジスタ（ＴＳＦ３）１２、送受信バッファ（Ｂ６0，Ｂ６1，Ｂ６2，Ｂ６3）５１，５２，５３，５４、セレクタ（Ｓ４0，Ｓ４1，Ｓ４2，Ｓ４3）５５，１７，１８，１９（選択手段）及び送受信バッファコントローラ（ＣＯＮ２0）５６（制御手段）から構成されている。
【００９２】
すなわち、本実施形態に係るシリアルＩ／Ｏ５０は、前記図１５に示す従来のシリアルＩ／Ｏ１０の受信バッファコントローラ（ＣＯＮ２1）２０及び送信バッファコントローラ（ＣＯＮ２2）２１に代えて、送受信バッファコントローラ（ＣＯＮ２0）５６が設置され、受信バッファ（Ｂ５0，Ｂ５1）１３，１４及び送信バッファ（Ｂ５2，Ｂ５3）１５，１６が送受信バッファ（Ｂ６0，Ｂ６1，Ｂ６2，Ｂ６3）５１，５２，５３，５４に変更され、新たにセレクタ（Ｓ４0）５５が追加された構成となっている。
【００９３】
上記送受信バッファコントローラ（ＣＯＮ２0）５６について説明する。
【００９４】
入力信号として受信完了信号１０５、リード／ライト信号１０６、送受信バッファコントローラセレクト信号１０７0〜１、送信完了信号１１７、コントロールデータ信号１１９は、前記図１５と同様である。
【００９５】
出力信号は以下の通りである。受信許可信号１０３、送信許可信号１１８、受信データリード要求信号１１０、送信データライト要求信号１１１，．送受信バッファ書き込み許可信号１０８0〜１０８3、受信データセレクト信号１０９0〜１０９3、送信データセレクト信号１０９4〜１０９7がある。このうち、受信許可信号１０３、送信許可信号１１８、受信データリード要求信号１１０、送信データライト要求信号１１１については前記図１５と同様である。ここでは、送受信バッファ書き込み許可信号１０８0〜１０８3、受信データセレクト信号１０９0〜１０９3、送信データセレクト信号１０９4〜１０９7について説明する。
【００９６】
送受信バッファ書き込み許可信号１０８0〜１０８3は、送受信データを送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４に書き込みを許可する信号である。
【００９７】
受信データセレクト信号１０９0〜１０９3は、受信データをセットする送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４を選択する信号である。
【００９８】
送信データセレクト信号１０９4〜１０９7は、送信データをセットする送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４を選択する信号である。
【００９９】
上記送受信バッファコントローラ（ＣＯＮ２0）５６の内部構成について図２を用いて更に詳細に説明する。
【０１００】
図２は、上記送受信バッファコントローラ（ＣＯＮ２0）５６の内部構成を示す図であり、この図において、送受信バッファコントローラ（ＣＯＮ２0）５６は、送受信バッファ数設定レジスタ（ΤＳＲＥＧ２05）６０、受信バッファコントローラ（ＣＯＮ２01）６１、送信バッファコントローラ（ＣＯＮ２02）６２、送受信バッファ書き込み許可コントローラ（ＣＯＮ２03）６３、送受信許可レジスタ（ＴＳＥＲＥＧ２06）６４から構成される。
【０１０１】
上記送受信バッファ数設定レジスタ（ΤＳＲＥＧ２05）６０は、送受信バッファ数を設定するレジスタであり、リード／ライト信号１０６、送信バッファコントローラセレクト信号１０７1、受信バッファコントローラセレクト信号１０７0、コントロールデ一タ信号１１９の値がセットされ、受信バッファコントローラ（ＣＯＮ２01）６１に対し受信バッファ数データ信号１１９0、送信バッファコントローラに対し送信バッファ数データ信号１１９1を出力する。この場合、受信バッファ数を決定することにより自動的に送信バッファ数が決定される。この送受信バッファ数設定レジスタ（ΤＳＲＥＧ２05）６０の動作状態は、図３の表１に示される。
【０１０２】
受信バッファコントローラ（ＣＯＮ２01）６１は、受信バッファ書き込み許可信号１０８R0〜１０８R3を出力する回路である。送受信バッファ数設定レジスタ（ΤＳＲＥＧ２05）６０の設定により受信用の送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４の書き込み許可信号を制御する。この受信バッファコントローラ（ＣＯＮ２01）６１の動作状態は、図４の表２に示される。
【０１０３】
送信バッファコントローラ（ＣＯＮ２02）６２は、送信バッファ書き込み許可信号１０８T0〜１０８T3を出力する回路である。送受信バッファ数設定レジスタ（ΤＳＲＥＧ２05）６０の設定により受信用の送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４の書き込み許可信号を制御する。この受信バッファコントローラ（ＣＯＮ２01）６１の動作状態は、図５の表３に示される。
【０１０４】
送受信バッファ書き込み許可コントローラ（ＣＯＮ２03）６３は、送受信バッファ書き込み許可信号１０８0〜１０８3を出力する回路であり、受信バッファコントローラ（ＣＯＮ２01）６１から入力される受信バッファ書き込み許可信号１０８R0〜１０８R3と送信バッファコントローラ（ＣＯＮ２02）６２から入力される送信バッファ書き込み許可信号１０８T0〜１０８T3とのオア論理をとることにより送受信バッファ書き込み許可信号１０８0〜１０８3を制御する。
【０１０５】
送受信許可レジスタ（ＴＳＥＲＥＧ２06）６４は、送信許可信号１１８、受信許可信号１０３を出力する制御レジスタである。
【０１０６】
本実施形態に係るシリアルＩ／Ｏ５０で新たに設置されたセレクタ（Ｓ４0）５５について説明する。
【０１０７】
図１に戻って、入力信号として受信データ信号１０４、セレクト信号１０９0〜１０９3があり、出力信号としてバッファセットデータ信号１１４0〜１１４3がある。バッファセットデータ信号１１４0〜１１４3は、送受信バッファコントローラ（ＣＯＮ２0）５６からの受信データセレク卜信号１０９0〜１０９3により受信データ１０４をバッファセットデータ信号１１４0〜１１４3のうちの１つを選択し出力する。
【０１０８】
上記セレクタ（Ｓ４1）１７について説明する。
【０１０９】
入力信号として送信データ信号１１３0、セレクト信号１０９4〜１０９7があり、出力信号としてバッファセットデータ信号１１４0〜１１４3がある。バッファセットデータ信号１１４0〜１１４3は、送受信バッファコントローラ（ＣＯＮ２0）５６からの送信データセレク卜信号１０９4〜７により送信データ１１３0をバッファセットデ一タ信号１１４0〜１１４3のうちの１つを選択し出力する。
【０１１０】
上記セレクタ（Ｓ４2）１８について説明する。
【０１１１】
入力信号としてデータ信号１１２0〜１１２3、セレクト信号１０９0〜１０９3があり、出力信号として受信データ１１３1がある。受信データ信号１１３1は、送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４からのデータ信号１１２0〜１１２3のうち１つの値を受信データセレクト信号１０９0〜１０９3によりマイクロコントローラに出力する。
【０１１２】
上記セレクタ（Ｓ４3）１９について説明する。
【０１１３】
入力信号としてデータ信号１１２0〜１１２3、セレクト信号１０９4〜１０９7があり、出力信号として送信データ信号１１６がある。送信データ信号１１６は、送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４からのデータ信号１１２0〜１１２3のうち１つの値を送信データセレクト信号１０９4〜１０９7により送信シフトレジスタ（ＴＳＦ３）１２に出力する。
【０１１４】
このように、本実施形態に係るシリアルＩ／Ｏ５０は、複数の送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４を有するシリアルＩ／Ｏであって、受信バッファ数又は送信バッファ数を指定することにより使用する送信バッファ数及び受信バッファ数を一意的に割り付ける送受信バッファコントローラ（ＣＯＮ２0）５６と、送受信バッファコントローラ（ＣＯＮ２0）５６による送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４の割り付け指示に基づいて、複数の送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４の中から１つを選択し、所定の送受信バッファへのリード／ライトを行うセレクタ（Ｓ４0〜Ｓ４3）５５，１７〜１９とを備えた構成となっている。
【０１１５】
以下、上述のように構成されたシリアルＩ／Ｏ５０の動作を説明する。
【０１１６】
図６及び図７上記シリアルΙ／Ｏ５０のタイミングチャートであり、図６は送信バッファ数３個、受信バッファ数１個に設定したときの動作を示すタイミングチャート、図７は送信バッファ数１個、受信バッファ数３個に設定したときの動作を示すタイミングチャートである。
【０１１７】
まず、図６を参照して送信バッファ数３個、受信バッファ数１個に設定したときの動作を説明をする。
【０１１８】
上述したように、送受信バッファコントローラ（ＣＯＮ２0）５６の送受信バッファ数設定レジスタＴＳＲＥＧ（ΤＳＲＥＧ２05）６０には、コントロールデータ信号１１９、受信バッファコントローラセレクト信号１０７0、送信バッファコントローラセレクト信号１０７1及びリード／ライト信号１０６が入力され、送受信バッファ数設定レジスタＴＳＲＥＧ（ΤＳＲＥＧ２05）６０は、この受信バッファコントローラセレクト信号１０７0、送信バッファコントローラセレクト信号１０７1及びリード／ライト信号１０６により送受信バッファ数設定レジスタＴＳＲＥＧ（ΤＳＲＥＧ２05）６０内にコントロールデータ信号１１９のデータ“０１ｈ”を保持する。この場合は、受信バッファ数１個、送信バッファ数３個が保持される。
【０１１９】
同時に送信バッファ書き込み許可信号１０８T3に“１”（書き込み許可）が出力され、受信バッファ書き込み許可信号１０８R3に“０”が出力される。このことにより、送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４の送受信バッファ書き込み許可信号１０８3が“１”にセットされ、送信データセレクト信号１０９7が“１”にセットされる。これにより送信データ１１３0がバッファデータセット信号１１４3によって送受信バッファ（Ｂ６3）５４にセットされる。
【０１２０】
送信が完了し、次に送信バッファコントローラセレクト信号１０７1とリード／ライト信号１０６がアサートされると、送信バッファ書き込み許可信号１０８T2に“１”（書き込み許可）が出力され、受信バッファ書き込み許可信号１０８R2に“０”が出力される。このことにより、送受信バッファΒ５２の送受信バッファ書き込み許可信号１０８2が“１”にセットされる。
【０１２１】
これにより送信データ１１３0がバッファデータセット信号１１４2によって送受信バッファ（Ｂ６2）５３にセットされ、送信データセレクト信号１０９6が“１”にセットされる。
【０１２２】
上述したように、送信バッファコントローラセレクト信号１０７1とリード／ライト信号１０６がアサートされる毎に送信バッファ書き込み許可信号１０８T3→１０８T2→１０８T1が順にアサートされ（この時、受信バッファ書き込み許可信号１０８R1〜１０８R3は“０”を出力する。）、送受信バッファ書き込み許可信号１０８3→１０８2→１０８1→１０８3、送信データセレクト信号１０９7→１０９6→１０９5→１０９7の順でアサートされ、送信データ１１３0が送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４にセットされる。
【０１２３】
また、受信完了信号１０５が“１”にセットされる毎に送信バッファ書き込み許可信号１０８T0に“０”（書き込み許可）が出力され、受信バッファ書き込み許可信号１０８R0に“１”が出力される。このことにより、送受信バッファ書き込み許可信号１０８0が“１”にセットされ、受信データセレクト信号１０９0が“１”にセットされる。これによりシリアル受信データ１０４がバッファデータセット信号１１４0より送受信バッファ（Β６0）５１にセットされる。
【０１２４】
次に、図７を参照して送信バッファ数１個、受信バッファ数３個に設定したときの動作を説明をする。
【０１２５】
受信バッファコントローラセレクト信号１０７0、送信バッファコントローラセレクト信号１０７1及びリード／ライト信号１０６により送受信バッファ数設定レジスタＴＳＲＥＧ（ΤＳＲＥＧ２05）６０にコントロールデータ信号１１９のデータ“０３ｈ”が保持される。この場合、受信バッファ数３個、送信バッファ数１個が保持される。同時に、送信バッファ書き込み許可信号１０８T3に“１”（書き込み許可）が出力され、受信バッファ書き込み許可信号１０８R3に“０”が出力される。このことにより、送受信バッファ（Ｂ６3）５４の送受信バッファ書き込み許可信号１０８3が“１”にセットされ、送信データセレクト信号１０９7が“１”にセットされる。これにより、送信データ１１３0がバッファデータセット信号１１４3によって送受信バッファ（Β６3）５４にセットされる。
【０１２６】
以後、送信バッファコントローラセレクト信号１０７1とリード／ライト信号１０６がアサートされる毎に送信バッファ書き込み許可信号１０８T3に“１”（書き込み許可）が出力され、受信バッファ書き込み許可信号１０８R3に“０”が出力される。このことにより、送受信バッファ書き込み許可信号１０８3が“１”にセットされ、送信データ１１３0がバッファデータセット信号１１４3によって送受信バッファ（Β６3）５４にセットされる。
【０１２７】
また、受信完了信号１０５が゛“１”にセットされると、送信バッファ書き込み許可信号１０８T0に“０”（書き込み禁止）が出力され、受信バッファ書き込み許可信号１０８R0に“１”が出力され、受信データセレクト信号１０９0が“１”にセットされる。これにより、シリアル送信データ１０４がバッファデータセット信号１１４0によって送受信バッファ（Β６0）５１にセットされる。
【０１２８】
以後、受信完了信号１０５が“１”にセットされる毎に受信バッファ書き込み許可信号１０８R0→１０８R1→１０８R2が順にアサートされ（この時、送信バッファ書き込み許可信号１０８T0〜１０８T2は“０”を出力する。）、送受信バッファ書き込み許可信号１０８0→１０８1→１０８2→１０８0、受信データセレクト信号１０９0→１０９1→１０９2→１０９0の順にアサートされ、シリアル受信データ１０４がバッファデータセット信号１１４0〜１１４3によって送受信バッファ（Β６0〜Ｂ６2）５１〜５３にセットされる。
【０１２９】
上記説明は受信バッファ数を設定することにより送信バッファ数を一意的に決定することを例にとり説明したが、送信バッファ数を設定することにより受信バッファ数を一意的に決定することも可能である。
【０１３０】
以上説明したように、第１の実施形態に係るシリアルＩ／Ｏ５０は、送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４を有するシリアルＩ／Ｏであって、受信バッファ数又は送信バッファ数を指定することにより使用する送信バッファ数及び受信バッファ数を一意的に割り付ける送受信バッファコントローラ（ＣＯＮ２0）５６と、送受信バッファコントローラ（ＣＯＮ２0）５６による送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４の割り付け指示に基づいて、複数の送受信バッファ（Ｂ６0〜Ｂ６3）５１〜５４の中から１つを選択し、所定の送受信バッファへのリード／ライトを行うセレクタ（Ｓ４0〜Ｓ４3）５５，１７〜１９とを備え、送受信バッファコントローラ（ＣＯＮ２0）５６にセットするデータを変えるようにしているので、送信又は受信に割り付けるバッファ数をプログラマブルに変化させることができ、送信バッファを１個又は未使用のとき残りのバッファを受信バッファに割り付けることができるとともに、受信バッファを１個又は未使用のとき残りのバッファを送信バッファに割り付けることができ回路を有効に活用することができる。
【０１３１】
図８は本発明の第２の実施形態に係るシリアルＩ／Ｏの構成を示すブロック図であり、本実施形態に係るシリアルＩ／Ｏも、複数の送受信バッファを持つシリアルＩ／Ｏについて有効であるが、ここでは送受信バッファ４個のときについて説明する。なお、本実施形態に係るシリアルＩ／Ｏの説明にあたり図１に示すシリアルＩ／Ｏと同一構成部分には同一符号を付して重複部分の説明を省略する。
【０１３２】
図８において、シリアルＩ／Ｏ７０は、受信シフトレジスタ（ＲＳＦ１）１１、送信シフトレジスタ（ＲＳＦ３）１２、送受信バッファ（Ｂ６0，Ｂ６1，Ｂ６2，Ｂ６3）５１，５２，５３，５４、セレクタ（Ｓ４0，Ｓ４1，Ｓ４2，Ｓ４3）５５，１７，１８，１９及び送受信バッファコントローラ（ＣＯＮ２0）７１から構成されている。
【０１３３】
すなわち、本実施形態に係るシリアルＩ／Ｏ７０は、送受信バッファコントローラ（ＣＯＮ２0）７１の内部に割り込みコントローラ（ＣＯＮ２04）７２を組み込んだ構成となっている。
【０１３４】
図９は、上記割り込みコントローラを組み込んだ送受信バッファコントローラ（ＣＯＮ２0）７１の内部構成を示す図であり、この図において、送受信バッファコントローラ（ＣＯＮ２0）７１は、送受信バッファ数設定レジスタ（ΤＳＲＥＧ２05）６０、受信バッファコントローラ（ＣＯＮ２01）６１、送信バッファコントローラ（ＣＯＮ２02）６２、送受信バッファ書き込み許可コントローラ（ＣＯＮ２03）６３、送受信許可レジスタ（ＴＳＥＲＥＧ２06）６４及び割り込みコントローラ（ＣＯＮ２04）７２から構成される。
【０１３５】
上記割り込みコントローラ（ＣＯＮ２04）７２は、受信データリード要求信号１１０の出力タイミングをコントロールする回路である。入力信号として受信完了信号１０５、受信バッファ数データ信号１１９0、受信データリード要求制御信号１２０があり、受信データリード要求制御信号１２０は、受信データリード要求信号１１０を制御する信号である。
【０１３６】
また、出力信号として受信データリード要求信号１１０があり、受信データリード要求信号１１０は、マイクロコントローラに対して受信データのリードを要求する信号である。受信データリード要求信号１１０は、受信データリード要求制御信号１２０が“１”（受信データリード要求固定解除）のとき、受信バッファ設定数分、受信完了信号１０５をアサート（“１”が入力される）すると受信データリード要求信号１１０に“１”を出力する。受信データリード要求制御信号１２０が“０”（受信データリード要求固定）のとき、受信完了信号１０５をアサート（“１”が入力される）する毎に受信データリード要求信号１１０に“１”を出力する。
【０１３７】
以下、上述のように構成されたシリアルＩ／Ｏ７０の動作を説明する。
【０１３８】
図１０及び図１１上記シリアルΙ／Ｏ７０のタイミングチャートであり、シリアルΙ／Ｏ７０はこの図１０及び図１１に示す動作で受信データリード要求信号を制御する。なおこの他の動作は第１の実施形態と同様である。
【０１３９】
図１０は受信リードデータ要求を１バイト毎の固定で動作させたときの動作を示すタイミングチャートである。
【０１４０】
図１０に示すように、受信バッファコントローラセレクト信号１０７1、リード／ライト信号１０６により送受信許可レジスタ（ＴＳＥＲＥＧ２06）６４の値が“１”にセットされる。これにより受信動作許可信号１０３に“１”が出力され、受信動作が開始される。８ビットのデータを受信後、受信シフトレジスタ（ＲＳＦ１）１１の受信完了信号１０５によって“１”が出力される。受信完了信号１０５“１”、受信データリード要求制御信号１２０“０”という状態により受信データリード要求信号１１０として“１”（受信データリード要求）が出力される。
【０１４１】
以後、受信完了信号に“１”が出力される毎に受信データリード要求信号１１０から“１”が出力される。
【０１４２】
図１１は受信リードデータ要求を固定解除にし、３バイト毎で動作させたときの動作を示すタイミングチャートである。
【０１４３】
図１１に示すように、受信バッファコントローラセレクト信号１０７1、リード／ライト信号１０６より送受信許可レジスタ（ＴＳＥＲＥＧ２０６）６４の値が“１”にセットされる。これにより受信動作許可信号１０３に“１”が出力され、受信動作が開始される。
【０１４４】
８ビットのデータを受信後、受信シフトレジスタ（ＲＳＦ１）１１の受信完了信号１０５より“１”が出力される。受信完了信号１０５“１”、受信データリード要求制御信号１２０“１”受信バッファ数データ信号１１９0“３”という状態により受信データリード要求信号１１０として“０”（受信データリード要求なし）が出力される。
【０１４５】
その後、受信完了信号に“１”が２回出力されると受信データリード要求信号１１０から“１”が出力される。
【０１４６】
以後、受信完了信号に“１”が３回出力される毎に受信データリード要求信号１１０から“１”が出力される。
【０１４７】
以上説明したように、第２の実施形態に係るシリアルＩ／Ｏ７０は、送受信バッファコントローラ（ＣＯＮ２0）７１の内部に割り込みコントローラ（ＣＯＮ２04）７２を備え、割り込みコントローラ（ＣＯＮ２04）７２が、指定された受信バッファの数だけ受信を行ったあと又は１バイト受信毎に受信データリード要求を出力するようにしているので、受信バッファ数を変更したときの受信データリード要求出力を受信バッファ数単位又は１バイト単位に切り換えることにより、送受信データのリード／ライトを行うための処理を一括して行うことができ、マイクロコントローラの処理を軽減することができる。
【０１４８】
図１２は本発明の第３の実施形態に係るシリアルＩ／Ｏの送受信バッファコントローラ（ＣＯＮ２0）８０の内部構成を示す図である。なお、本実施形態に係るシリアルＩ／Ｏの説明にあたり図９に示すシリアルＩ／Ｏと同一構成部分には同一符号を付して重複部分の説明を省略する。
【０１４９】
図１２において、送受信バッファコントローラ（ＣＯＮ２0）８０は、受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１、送信バッファ数設定レジスタ（ΤＲＥＧ２20）８２、受信バッファコントローラ（ＣＯＮ２01）６１、送信バッファコントローラ（ＣＯＮ２02）６２、送受信バッファ書き込み許可コントローラ（ＣＯＮ２03）６３、送受信許可レジスタ（ＴＳＥＲＥＧ２06）６４及び割り込みコントローラ（ＣＯＮ２04）７２から構成される。
【０１５０】
すなわち、本実施形態に係る送受信バッファコントローラ（ＣＯＮ２0）８０は、送受信バッファ数設定レジスタ（ΤＳＲＥＧ２05）６０に代えて、受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１、送信バッファ数設定レジスタ（ΤＲＥＧ２20）８２を付加した構成となっており、この回路を付加することにより送信、受信のバッファ数を独立して設定可能となる。
【０１５１】
上記受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１は、送受信バッファ（Β６0〜Ｂ６2）５１〜５３のうち受信に割り付けるバッファ数を設定するレジスタである。
【０１５２】
入力信号としてリード／ライト信号１０６、受信バッファコントローラセレクト信号１０７0、データ信号１１９がある。また、出力信号として受信バッファ数データ信号１１９0があり、受信バッファ数データ信号１１９0は、送受信バッファ（Β６0〜Ｂ６2）５１〜５３のうち受信バッファに割り付ける数を出力する信号である。この受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１の動作状態は、図１３の表４に示される。
【０１５３】
上記送信バッファ数設定レジスタ（ΤＲＥＧ２20）８２は、送受信バッファ（Β６0〜Ｂ６2）５１〜５３のうち送信に割り付けるバッファ数を設定するレジスタである。
【０１５４】
入力信号としてリード／ライト信号１０６、送信バッファコントローラセレクト信号１０７1、コントロールデータ信号１１９がある。また、出力信号として送信バッファ数データ信号１１９1があり、送信バッファ数データ信号１１９1は、送受信バッファ（Β６0〜Ｂ６2）５１〜５３のうち送信バッファに割り付ける数を出力する信号である。この送信バッファ数設定レジスタ（ΤＲＥＧ２20）８２の動作状態は、図１３の表４に示される。
【０１５５】
以下、上述のように構成されたシリアルＩ／Ｏの動作を説明する。
【０１５６】
図１４は上記シリアルΙ／Ｏのタイミングチャートであり、送信バッファ数、受信バッファ数の設定を変更するときの動作を示すタイミングチャートである。
【０１５７】
図１４に示すように、受信バッファコントローラセレクト信号１０７0の値“１”と送信バッファコントローラセレクト信号１０７1の値“１”とリード／ライト信号１０６が“０”のとき、受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１にコントロールデータ信号１１９のデータ“０３ｈ”がセットされ、受信バッファ数３個となる。
【０１５８】
同時に、送信バッファ数設定レジスタ（ΤＲＥＧ２20）８２にコントロールデータ信号１１９のデータ“０３ｈ”がセットされ、送信バッファ数１個となる。ここで、送受信バッファ数４個のため送信バッファ数はコントロールデータ数から４を差し引いた数となる（図１４(1)参照）。
【０１５９】
また、受信バッファコントローラセレクト信号１０７0の値“１”と送信バッファコントローラセレクト信号１０７1の値“０”とリード／ライト信号１０６“０”のとき、受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１にコントロールデータ信号１１９のデータ“０１ｈ”がセットされ、受信バッファ数１個となる。
【０１６０】
このとき、送信バッファ数設定レジスタ（ΤＲＥＧ２20）８２にコントロールデータ信号１１９のデータ“０１ｈ”はセットされず、送信バッファ数は引き続き１個となる（図１４(2)参照）。
【０１６１】
受信バッファコントローラセレクト信号１０７0の値“０”と送信バッファコントローラセレクト信号１０７1の値“１”とリード／ライト信号１０６が“０”のとき、受信バッファ数設定レジスタ（ΤＳＲＥＧ２10）８１にコントロールデータ信号１１９のデータ“０２ｈ”はセットされず、受信バッファ数は引き続き１個となる。また、送信バッファ数設定レジスタ（ＴＲＥＧ２２０）８２にコントロールデータ信号１１９のデータ“０２ｈ”がセットされ、送信バッファ数は２個となる（図１４(3)参照）。
【０１６２】
受信バッファコントローラセレクト信号１０７0の値“０”と送信バッファコントローラセレクト信号１０７1の値“０”とリード／ライト信号１０６が“０”のとき、受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１にコントロールデータ信号１１９のデータ“００ｈ”はセットされず、受信バッファ数は引き続き１個となる。また、送信バッファ数設定レジスタ（ＴＲＥＧ２２０）８２にもコントロールデータ信号１１９のデータ“００ｈ”がセットされず、送信バッファ数も引き続き２個となる（図１４(4)参照）。
【０１６３】
以上説明したように、第３の実施形態に係るシリアルＩ／Ｏは、送受信バッファコントローラ（ＣＯＮ２0）８０が、受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１及び送信バッファ数設定レジスタ（ΤＲＥＧ２20）８２を付加し、受信バッファ数設定レジスタ（ＳＲＥＧ２10）８１及び送信バッファ数設定レジスタ（ΤＲＥＧ２20）８２が、受信バッファ数と送信バッファ数をそれぞれ指定し、指定されていない送受信バッファの動作を停止させるようにしているので、受信バッファ数、送信バッファ数を個別に設定することができ、システムに合ったバッファ数でシステム構築が可能となる。
【０１６４】
なお、上記各実施形態に係るシリアルＩ／Ｏでは、マイクロコンピュータ等のシリアルＩ／Ｏに適用することができるが、複数の送受信バッファを有するシリアルＩ／Ｏはどのようなものでもよく、マイクロコンピュータ内部に組み込まれる回路の一部であってもよい。また、送受信バッファが４個以外の装置においても同様に適用できることは言うまでもない。
【０１６５】
さらに、上記シリアルＩ／Ｏを構成するコントローラや各種回路の数、種類接続状態などは前述した上述の各実施形態に限られないことは言うまでもない。
【０１６６】
【発明の効果】
本発明に係るシリアルＩ／Ｏでは、複数の送受信バッファを有するシリアルＩ／Ｏであって、受信バッファ数又は送信バッファ数の少なくとも何れか１つを指定することにより使用する送信バッファ数及び受信バッファ数を割り付ける制御手段と、制御手段による送受信バッファの割り付け指示に基づいて、複数の送受信バッファの中から所定の送受信バッファを選択し、該選択した送受信バッファへのリード／ライトを行う選択手段と、受信データのリード要求を出力する割り込み手段とを備え、前記割り込み手段は、受信バッファ数分のデータを受信する度に前記受信データのリード要求を出力する動作と、１バイト分のデータを受信する度に前記受信データのリード要求を出力する動作との間で切換可能であるので送信バッファを１個又は未使用のとき残りのバッファを受信バッファに割り付けることができるとともに、受信バッファを１個又は未使用のとき残りのバッファを送信バッファに割り付けることができ、回路を有効に活用することができる。さらに、割り込み手段により、送受信データのリード／ライトを行うための処理を一括して行うことができるので、マイクロコントローラの負担を軽減することができる。
【０１６８】
さらに、本発明に係るシリアルＩ／Ｏでは、受信バッファ数と送信バッファ数をそれぞれ設定可能な設定手段を備え、設定手段が、受信バッファ数と送信バッファ数をそれぞれ指定し、該指定されていない送受信バッファの動作を停止させるように構成しているので、受信バッファ数、送信バッファ数を個別に設定することができ、システムに合ったバッファ数でシステム構築ができる。
【図面の簡単な説明】
【図１】本発明を適用した第１の実施形態に係るシリアルＩ／Ｏの構成を示すブロック図である。
【図２】上記シリアルＩ／Ｏの送受信バッファコントローラの内部構成を示す図である。
【図３】上記シリアルＩ／Ｏの送受信バッファ数設定レジスタの動作を説明するための図である。
【図４】上記シリアルＩ／Ｏの受信バッファコントローラの動作を説明するための図である。
【図５】上記シリアルＩ／Ｏの送信バッファコントローラの動作を説明するための図である。
【図６】上記シリアルΙ／Ｏの送信バッファ数３個、受信バッファ数１個に設定したときの動作を示すタイミングチャートである。
【図７】上記シリアルΙ／Ｏの送信バッファ数１個、受信バッファ数３個に設定したときの動作を示すタイミングチャートである。
【図８】本発明を適用した第２の実施形態に係るシリアルＩ／Ｏの構成を示すブロック図である。
【図９】上記シリアルＩ／Ｏの送受信バッファコントローラの内部構成を示す図である。
【図１０】上記シリアルＩ／Ｏの受信リードデータ要求を１バイト毎の固定で動作させたときの動作を示すタイミングチャートである。
【図１１】上記シリアルＩ／Ｏの受信リードデータ要求を固定解除にし、３バイト毎で動作させたときの動作を示すタイミングチャートである。
【図１２】本発明を適用した第３の実施形態に係るシリアルＩ／Ｏの内部構成を示す図である。
【図１３】上記シリアルＩ／Ｏの送信、受信バッファ数設定レジスタの動作を説明するための図である。
【図１４】上記シリアルΙ／Ｏの送信バッファ数、受信バッファ数の設定を変更するときの動作を示すタイミングチャートである。
【図１５】従来のシリアルＩ／Ｏの構成を示すブロック図である。
【図１６】従来のシリアルＩ／Ｏの受信バッファコントローラの内部構成を示す図である。
【図１７】従来のシリアルＩ／Ｏの送信バッファコントローラの内部構成を示す図である。
【図１８】従来のシリアルΙ／Ｏの受信時の動作を示すタイミングチャートである。
【図１９】従来のシリアルΙ／Ｏの受信時の動作を示すタイミングチャートである。
【符号の説明】
５０，７０  シリアルＩ／Ｏ、１１  受信シフトレジスタ（ＲＳＦ１）、１２送信シフトレジスタ（ＴＳＦ３）、５１，５２，５３，５４  送受信バッファ（Ｂ６0，Ｂ６1，Ｂ６2，Ｂ６3）、５５，１７，１８，１９  セレクタ（Ｓ４0，Ｓ４1，Ｓ４2，Ｓ４3）（選択手段）、５６，７１  送受信バッファコントローラ（ＣＯＮ２0）（制御手段）、６０  送受信バッファ数設定レジスタ（ΤＳＲＥＧ２05）、６１  受信バッファコントローラ（ＣＯＮ２01）、６２  送信バッファコントローラ（ＣＯＮ２02）、６３  送受信バッファ書き込み許可コントローラ（ＣＯＮ２03）、６４  送受信許可レジスタ（ＴＳＥＲＥＧ２06）、７２割り込みコントローラ（ＣＯＮ２04）、８１  受信バッファ数設定レジスタ（ＳＲＥＧ２10）、８２  送信バッファ数設定レジスタ（ΤＲＥＧ２20）
【図１】
0003698483.tif 000002
【図２】
0003698483.tif 000003
【図３】
0003698483.tif 000004
【図４】
0003698483.tif 000005
【図５】
0003698483.tif 000006
【図６】
0003698483.tif 000007
【図７】
0003698483.tif 000008
【図８】
0003698483.tif 000009
【図９】
0003698483.tif 000010
【図１０】
0003698483.tif 000011
【図１１】
0003698483.tif 000012
【図１２】
0003698483.tif 000013
【図１３】
0003698483.tif 000014
【図１４】
0003698483.tif 000015
【図１５】
0003698483.tif 000016
【図１６】
0003698483.tif 000017
【図１７】
0003698483.tif 000018
【図１８】
0003698483.tif 000019
【図１９】
0003698483.tif 000020