(57)【要約】【課題】送信側において、通信状況や受信側に合わせて補正したデータ出力を行なうことで、出力データを正確に受信させること。【解決手段】インターフェース回路１は、出力データの並びから特定パタンを検出する検出部３０と、検出結果に応じて、シフトクロックの周期を変更するシフトクロック生成部１２０と、シフトクロックによりデータ出力幅を変更して駆動データとして出力するシフトレジスタ部１０と、駆動データにより駆動されるＮチャンネルトランジスタ１５ａ及びプルアップ抵抗１５ｂからなるオープンドレインの出力部１５とを有する。検出部３０は、現在が０、次が１の出力データの並びを検出し、シフトクロック生成部１２０は、０、１に対応するシフトクロックの周期をそれぞれ短縮及び延長する。【選択図】図１
2007279920.tif 000002
【特許請求の範囲】
【請求項１】
データ列のデータ並びに応じて異なる周期のシフトクロックを生成するシフトクロック生成部と、
前記データ列を保持するとともに、前記シフトクロックに応答して当該データ列をシリアル出力するデータ保持回路と、
前記データ保持回路の出力を受けてバス配線を駆動するトランジスタとを有するインターフェース回路。
【請求項２】
前記データ列のデータ並びを検出する検出部を有し、
前記シフトクロック生成部は、前記検出部の検出結果に基づき前記シフトクロックの周期を変更する
ことを特徴とする請求項１記載のインターフェース回路。
【請求項３】
前記検出部は、前記データ並びのうち特定パタンを補正対象区間として検出し、
前記シフトクロック生成部は、前記補正対象区間におけるシフトクロックの周期を変更する
ことを特徴とする請求項２記載のインターフェース回路。
【請求項４】
前記検出部は、現在の出力データがロウレベル、次の出力データがハイレベルとなる区間を補正対象区間として検出し、
前記シフトクロック生成部は、前記ロウレベルの出力データに応答するシフトクロックの周期を短縮し、前記ハイレベルの出力データに応答するシフトクロックの周期を延長する
ことを特徴とする請求項２記載のインターフェース回路。
【請求項５】
前記シフトクロック生成部は、
設定値に基づき基本クロックをカウントして所望の周期のシフトクロックを生成する生成部と、
前記生成部が生成した前記設定値を設定する設定部とを有し、
前記設定部は、前記補正対象区間における前記設定値を変更する
ことを特徴とする請求項３又は４記載のインターフェース回路。
【請求項６】
前記設定部が設定する設定値はプログラマブルである
ことを特徴とする請求項５記載のインターフェース回路。
【請求項７】
前記トランジスタは、オープンドレイントランジスタである
ことを特徴とする請求項１記載の駆動回路。
【請求項８】
前記出力データはシリアルデータである
ことを特徴とする請求項１記載のインターフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、オープンドレイン又はオープンコレクタなどのトランジスタを備えたインターフェース回路に関する。
【背景技術】
【０００２】
図７は、従来のシリアルインターフェース回路の一例を示す図である。シリアルインターフェース回路２０１は、内部のバスからのデータをパラレルに受け取り、シリアルに受信側へ出力するシフトレジスタ部２１０と、シフトレジスタ部へシフトクロックを供給するボーレートジェネレータ２２０とを有する。シフトレジスタ部２１０は、送信時には、内部バスを介して制御部（ＣＰＵ：Central Processing Unit）等からパラレルにデータを受け取り入出力端子２１６からシリアルに出力する。受信時には、受信側からシリアルに受信したデータを入出力端子２１６から入力バッファ２１９を介して受け取り、ＣＰＵへパラレルに送出する。このシフトレジスタ部２１０は、例えば８ビットシフトレジスタｂ０〜ｂ７から構成され、８ビットごとに外部へシリアル出力する。シフトレジスタ部２１０の出力は、反転回路２１４を介して、出力部２１５のＮチャンネルトランジスタ２１５ａのゲートが接続される。Ｎチャンネルトランジスタ２１５ａのドレインは入出力端子２１６に接続される。すなわち、出力部２１５はオープンドレイン構成となっている。
【０００３】
入出力端子２１６はバス配線２１７と接続され、バス配線２１７を介して他のシリアルインターフェース回路（図示せず）と接続される。バス配線２１７に接続されているいずれのシリアルインターフェース回路もロウレベルを出力しない場合、バス配線２１７の電位はプルアップ抵抗２１８を介して電源電圧まで引き上げられる。
【０００４】
ボーレートジェネレータ２２０は、基本クロックが与えられ、所定の周波数（ボーレート）のシフトクロックを生成する。このため、カウンタ２２１と、比較器２２２と、２分周回路２２３とを有する。基本クロックをカウンタでカウントし、比較器２２２の設定値に一致したタイミングで２分周回路２２３にクロックを出力し、２分周されたクロックをシフトクロックとして出力する。シフトレジスタ部２１０の各シフトレジスタ２１１は、この２分周されたシフトクロックに基づき順次データをシリアル出力する。
【０００５】
図８は、本シリアルインターフェース回路の波形図である。ボーレートジェネレータにより一定周期Ｔ０のシフトクロックが生成され、各シフトレジスタに格納されているデータを、このシフトクロックに同期して出力する。この場合、出力部２１５は、オープンドレインであるため、ハイの信号を出力する際には、送信側データ出力の波形が若干なまる。
【０００６】
受信側では、この送信側出力を所定の閾値により閾値判定することで、受信側判定結果に示すようなパルス信号に変換する。しかしながら、送信側シフトクロックの周期はＴ０で一定であるのに、プルアップ抵抗値によっては、データ線がハイレベルになりにくく、図８に示すようにハイレベルの信号の立ち上がりがなまるため、受信側判定結果が、データレートが一定幅ではないように見える。すなわち、ハイレベルになる前のロウレベルの期間が本来の周期Ｔ０より長いＴ２となり、ロウレベルからハイレベルに変化した場合のハイレベルの期間が本来の周期Ｔ０より短いＴ１となってしまう。
【０００７】
ところで、従来、送信側とのやりとりにおいて、パルス幅が変動した場合にも誤動作を防止することを目的としたリモートコントロール用受信器（以下、受信器という）が特許文献１に開示されている。この従来の受信器は、ハイ又はロウのパルス幅の違いでビットが０か１かを判定するもので、決められたパルス幅より狭く又は広く設定した設定値により受信信号を判定することで、パルス幅が変動した場合にも、ビット判定を可能とするものである。
【特許文献１】特開平１０−１６７００９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら特許文献１に記載の技術は、変動したパルス幅でも正確に判定できるような機能を受信側に設けるものであるため、送信側に比して受信装置が多数ある場合であっても、各受信装置すべてにその機能を設ける必要があり、システムが大型化し、コストも増大する。また、送信側からの受信信号を、変動を予測して補正するものであるため、変動の度合いによっては正しく判定できない場合がある。つまり、既に変動してしまったものを正確に判定する方式であるため所望の判定確度を得られない場合がある。
【０００９】
更に、上述したように、オープンドレイン出力の場合、受信側のハイレベルの期間が短くなるため、高速通信を行なう際に障害になる。すなわち、通信速度を上げると受信側にハイレベルの信号が送信できない場合が生じ、またその場合は受信側で補正するのも困難である。
【課題を解決するための手段】
【００１０】
本発明にかかるインターフェース回路は、データ列のデータ並びに応じて異なる周期のシフトクロックを生成するシフトクロック生成部と、前記データ列を保持するとともに、前記シフトクロックに応答して当該データ列をシリアル出力するデータ保持回路と、前記データ保持回路の出力を受けてバス配線を駆動するトランジスタとを有するものである。
【００１１】
本発明によれば、データ列の並びに応じてシフトクロックの周期を変更し、これに同期して当該データ列を出力するため、出力データの並びに応じて出力データのデータ幅を変更することができる。
【発明の効果】
【００１２】
本発明によれば、送信側において、通信状況や受信側に合わせて補正したデータ出力を行なうことができ、データを正確に受信させることができる。また、送信側にのみ補正したデータ出力を行なう機能を設ければよく、システムを簡単化することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、オープンドレイン出力を有するシリアルインターフェース回路に適用したものである。なお、本実施の形態においては、シリアルインターフェース回路として説明するが、パラレル出力をするものにも適用可能である。また、オープンドレイン出力を有するものとして説明するが、オープンコレクタ出力であってもよいことは勿論である。
【００１４】
図１は、本実施の形態にかかるシリアルインターフェース回路を示す図である。本実施の形態にかかるシリアルインターフェース回路１は、シフトクロックに同期したデータ信号を生成して出力するオープンドレイン型のインターフェース回路である。シフトレジスタ部１０を構成する各シフトレジスタｂ０〜ｂ７には、図示せぬＣＰＵ及びバスを介して各々データが入力される。シリアルインターフェース回路１は、シフトレジスタｂ０〜ｂ７に格納されたデータの並びに応じて、シフトクロックの周期（周波数）を変更し、データ出力幅を変更して出力するものである。
【００１５】
このため、図１に示すように、シリアルインターフェース回路１は、データ並び検出部３０と、シフトクロック生成部１２０と、シフトレジスタ部１０と、オープンドレインからなる出力部１５とを有する。データ並び検出部３０は、出力データの時系列の並びから特定パタンを検出する。シフトクロック生成部１２０は、検出結果に応じて周期を変更（補正）したシフトクロックを生成する。シフトレジスタ部１０は、シフトクロック生成部１２０にて生成されたシフトクロックに応答して駆動データとなるデータを出力する。出力部１５は、シフトレジスタ部１０のデータ出力から送信信号を生成して出力する。このシリアルインターフェース回路１は、出力回路、シフトレジスタ部、及びボーレートジェネレータからなる従来の構成に、データ並び検出部３０及び設定値生成／選択部４０を付加した構成となっている。
【００１６】
先ず、シフトレジスタ部１０は、例えば８ビットシフトレジスタから構成され、バスを介してＣＰＵからのデータが８ビットごとに格納され、これを８ビットごとに、出力部１５へシリアル出力する。なお、シフトレジスタ部１０の構成は本例に限らず、例えば１６ビットシフトレジスタとしてもよい。また、図１に示すインターフェース回路１においては、第０ビットから第７ビットまでを格納する８つのシフトレジスタｂ０〜ｂ７から構成されているものとして説明するが、後述するように、スタートビット用のシフトレジスタＳＢをシフトレジスタｂ０の前段に設けてもよい。また、ストップビット（エンドビット）用のシフトレジスタＥＢをシフトレジスタｂ７の後段に設けてもよい。
【００１７】
シフトレジスタ部１０は、ＡＮＤ回路１３及び反転回路１４を介して出力部１５に接続される。ＡＮＤ回路１３の他方の入力には送信開始情報が入力される。この送信開始情報は、図示せぬＣＰＵから送られるもので、シリアルインターフェース回路１が送信を開始する際にこれを通知する。すなわち、送信開始と共に"１"を入力することで、シフトレジスタ部１０からの出力が反転回路１４を介して出力部１５に送出される。出力部１５は、オープンドレイン出力となっており、入出力端子１６にＮチャンネルＭＯＳトランジスタ１５ａのドレインが接続されている。なお、本実施の形態においては、ＮチャンネルＭＯＳトランジスタとして説明するがバイポーラトランジスタとし、オープンコレクタであってもよいことは勿論である。
【００１８】
入出力端子１６は、バス配線１７に接続され、バス配線１７を介して他のシリアルインターフェース回路（図示せず）と接続される。バス配線１７は、プルアップ抵抗１８を介して電源電位が印加される。バス配線１７に接続されているいずれのシリアルインターフェース回路もロウレベルを出力しない場合、バス配線２１７の電位はプルアップ抵抗１８を介して電源電圧まで引き上げられる。更に、入出力端子１６は、入力バッファ１９を介してシフトレジスタ部１０のシリアル入力に接続される。シフトレジスタ部１０は、入出力端子１６を介してシリアルに受信したデータをパラレルに出力する。なお、本実施の形態においては、入出力端子１６を有するものとして説明するが、入力端子、出力端子を個別に有する構成としてもよいことは勿論である。
【００１９】
データ並び検出部３０は、シフトレジスタ部１０に格納されているデータを参照し、現在が"０"、次が"１"であるデータ並び（特定パタン）を検出する。詳細は後述するが、上記出力部１５による出力においては、ハイレベルからロウレベルへは急速に立下るが、ロウレベルからハイレベルへの立ち上がりに時間がかかる。このため、後述するシフトクロック生成部１２０にてロウレベルからハイレベルとなる期間のシフトクロックの周期を変更し、ハイレベルに対応するシフトクロックの周期を長くする。一方で、当該ハイレベルになる前のロウレベルの期間に対応するシフトクロックの周期をその分短くする。すなわち、シフトクロック生成部１２０は、データ並びに応じて異なる周期のシフトクロックを生成する。そこで、データ並び検出部３０では、この期間（以下、補正対象区間という。）、すなわち現在のデータ"０"で次のデータが"１"となるデータ並びを検出する。
【００２０】
シフトクロック生成部１２０は設定値生成／選択部４０と、ボーレートジェネレータ２０とを有する。ボーレートジェネレータ２０は、基本クロックが与えられると、所定の周波数（ボーレート）のシフトクロックを生成する。このため、カウンタ２１と、比較器２２と、２分周回路２３とを有する。基本クロックをカウンタ２１でカウントし、比較器２２の設定値に一致したタイミングで２分周回路２３にクロックを出力し、２分周されたデータをシフトクロックとして出力する。なお、このボーレートジェネレータ２０の構成は、本例に限らず、基本クロックから所望の周波数のシフトクロックを生成できるものであればよい。
【００２１】
このシフトクロック生成部１２０は、上記補正対象区間におけるシフトクロックの周期を変更する。データ並び検出部３０が補正対象区間を検出するとこれを設定値生成／選択部４０に通知する。設定値生成／選択部４０は、この通知に基づきシフトクロックを変更するための比較器２２の設定値を生成又は選択し、比較器２２に、生成又は選択した設定値を設定する。
【００２２】
シフトレジスタ部１０は、８ビットシフトレジスタｂ０〜ｂ７からなる。すなわち、第０ビットから第７ビットまでがそれぞれシフトレジスタｂ０〜ｂ７に格納される。そして、シフトクロック生成部１２０にて生成されたシフトクロックに同期して、第０ビットからデータを順次出力する。ここで、シフトレジスタ部１０、データ並び検出部３０及びシフトクロック生成部１２０は、出力部１５を駆動する駆動回路として機能する。
【００２３】
ところで、本実施の形態にかかるシリアルインターフェース回路１は、入出力端子１６を介してデータの入出力が可能な入出力回路であるが、送信時の特定パタンにおけるデータの幅を補正することにより、受信側で正しくデータ受信を行なわせることを特長とする。すなわち出力動作に特長があるものであり、以下の説明においては、出力動作（送信動作）について説明する。
【００２４】
図２は、本実施の形態にかかるシリアルインターフェース回路にて出力される出力波形を説明する図である。データ並び検出部３０にて補正対象区間として検出されるのは、現在のデータが"０"で、かつ、これに続く次のデータが"１"である補正対象期間である。この補正対象期間を検出されると、シフトクロック生成部１２０は、当該期間において、図２に示すように、データ"０"を出力する際のシフトクロックの周期をＴ０とし、データ"１"を出力する際のシフトクロックの周期をＴ１とする。周期Ｔ１は、通常の周期Ｔ０より短く、周期Ｔ２は通常の周期Ｔ０より長く設定される。このシフトクロックに基づき出力される出力データは、送信側データ出力に示すようになる。すなわち、ロウレベルに続くハイレベルの期間のみが延長され、当該ロウレベルの期間はその分短縮されたものとなっている。これを受信側において所定の閾値判定することで、受信側判定結果に示すように、いずれの期間もＴ０の等間隔なパルス信号を得ることができる。
【００２５】
このように、現在のデータ出力値がロウレベル、次のデータ出力値がハイレベルである状態を事前に検出し、現在のデータロウ出力期間を縮めて、続くハイ出力期間を長くするため、当該ロウレベルの間、ハイレベルの間に対応するシフトクロックについて、基本クロックの数を数えてその周期（時間）を決定する。
【００２６】
次に、図１に示すシフトクロック生成部１２０のシフトクロック生成動作について説明する。例えば、シフトクロックが基本クロック１６周期から構成され、シフトクロックの周期を基本クロック６周期分の補正量で延長又は短縮（補正）する場合について説明する。図２に示すように、通常は、タイミングｔ１〜ｔ２、ｔ４〜ｔ５などに示すように、基本クロック１６周期分の周期Ｔ０のシフトクロックを生成する。そして、上記補正対象区間を検出したら、設定値生成／選択部４０は、先ず、ロウレベル出力期間を、上記補正量で短縮した基本クロック１０周期分とする（図２のタイミングｔ２〜ｔ３、ｔ５〜ｔ６など：周期Ｔ１）。この場合、比較器２２に設定値１０が設定され、基本クロックを１０回カウントしたタイミングでクロック（シフトクロック）が出力される。そして、続くデータハイレベル出力期間を、上記補正量で延長した基本クロック２２周期分とする（図２のタイミングｔ３〜ｔ４、ｔ６〜ｔ７など：周期Ｔ２）。この場合、比較器２２に設定値２２が設定され、基本クロックを２２回カウントしたタイミングのシフトクロックが出力される。
【００２７】
補正対象期間において周期の異なるシフトクロックを生成することで、例えばタイミングｔ２〜ｔ３においてデータ"０"を出力し、次のタイミングｔ３〜ｔ４でデータ"１"を出力する場合、当該データ"１"の立ち上がりがなまる。これを受信側にて閾値判定すると、タイミングｔ３〜ｔ４の周期Ｔ２よりも短いデータ幅となる。これに対し、本実施の形態においては、この周期Ｔ２は、通常周期Ｔ０より長く、受信側で閾値判定した場合にデータ"１"のデータ幅が周期Ｔ０となるよう補正することで、正確なデータ出力を可能とする。
【００２８】
なお、本実施の形態においては、シフトクロックは説明の簡単のため基本クロック１６周期からなるものとして説明したが、基本クロックの数は２５６等、これに限るものではない。また、本例においては、６周期分の基本クロックにより周期を短縮したり延長したりするものして説明するが、シフトクロックの周期、すなわちデータ出力幅の延長又は短縮幅（補正量）は通信事情や、受信側の仕様等を考慮して決定されるようプログラマブルとすることができる。例えば外部からの指定により設定値生成／選択部４０に、シフトクロックの周期を決定する比較器２２の設定値に対する補正量を設定するなどすればよい。
【００２９】
次に、本実施の形態にかかるシリアルインターフェース回路について更に詳細に説明する。図３は、図１に示すシリアルインターフェース回路１の一具体例を示す回路図である。本具体例においては、データ並び検出部（以下、検出部）３０及びシフトクロック生成部１２０の具体的な構成を示す。検出部３０は、ＡＮＤ回路３１、３２、遅延回路３３、及びＯＲ回路３４を有する。
【００３０】
ＡＮＤ回路３１の一方の入力には、シフトレジスタｂ０に格納されているデータが反転入力され、他方の入力には、シフトレジスタｂ０に格納されているデータが入力される。ＡＮＤ回路３２の一方の入力には、ＡＮＤ回路の出力が入力され、他方の入力には、現在の動作が送信か受信かを示す送信／受信情報が入力される。この送信／受信情報もＣＰＵから送られる。ＡＮＤ回路３２の出力ａは、遅延回路３３、ＯＲ回路の一方の入力、及びシフトクロック生成部１２０へ入力される。ＯＲ回路の他方の入力には遅延回路の出力ｂが入力される。
【００３１】
シフトクロック生成部１２０は、上述したカウンタ２１、比較器２２及び２分周回路２３からなるボーレートジェネレータ２０と、加算器２４及びセレクタ２５を有する設定値生成／選択部４０とを有する。加算器２４には、標準値Ｘと補正値Ｙとが入力され、ＡＮＤ回路３２の出力ａが例えば「１」のとき標準値Ｘから補正値Ｙを減算（Ｘ−Ｙ）、「０」のとき加算（Ｘ＋Ｙ）する。標準値Ｘは、通常（補正なし）時のシフトクロックに含まれる基本クロック数を示し、補正値Ｙは、通常時のシフトクロック幅を短縮又は延長するための値であり、基本クロック数で指定することができる。加算器２４は、この加減算の結果をセレクタ２５に出力する。セレクタ２５は、標準値Ｘと、加減算結果とが入力され、ＯＲ回路３４の出力ｃが「１」のとき、加算器２４の出力を選択出力し、「０」のとき、標準値Ｘを選択出力する。セレクタ２５は、これらの値で比較器２２の設定値を設定する。ここで、シフトクロック生成部１２０のカウンタ２１には、ＡＮＤ回路１３と同様に送信開始情報が供給され、送信開始と同時に基本クロックをカウントアップする。
【００３２】
次に、本具体例にかかるシリアルインターフェース回路１の動作について説明する。図４は、シリアルインターフェース回路１の動作を示すタイミングチャートである。また、図５は、シリアルインターフェース回路の動作を示すフローチャートである。通常、出力データは、その前後にスタートビット及びエンドビットを有する。また、上述したように、シフトレジスタ部は、図６のシフトレジスタ１１０のように構成することも可能である。すなわち、図６に示すように、シフトレジスタ部１１０は、第０ビット乃至第７ビットを格納するそれぞれシフトレジスタｂ０乃至ｂ７の他に、シフトレジスタｂ０の前段に設けられるスタートビット用レジスタＳＢ及びシフトレジスタｂ７の後段に設けられるエンドビット用レジスタＥＢが設けられている。以下の説明においては、スタートビット及びエンドビットを含めたデータ出力動作について説明する。
【００３３】
図４において、第０ビットから第７ビットは、シフトレジスタ部１１０のシフトレジスタｂ０〜ｂ７に格納されているデータを示す。また、図６に示すように、スタートビット、エンドビットは、それぞれ"０"とする。ここでは、８ビットのデータとして"００１００１００"と、スタートビット及びエンドビットの１０ビットを送信する場合の動作について説明する。すなわち、全１０ビット＝ｎとし、レジスタＳＢに格納されるデータｎ＝０〜９を出力する動作について説明する。
【００３４】
図５に示すように、先ず、インターフェース回路１は、比較器２２に設定値Ｘを設定する（ステップＳ１）。設定値Ｘの設定により、シフトクロック生成部１２０は、周期Ｔ０のシフトクロックを生成する。先ず、周期Ｔ０のシフトクロックでスタートビットを出力する（ステップＳ２）。シリアルインターフェース回路１の出力は常にハイレベルとなっており、通信開始時にスタートビット"０"を出力することで、受信側にデータの送信開始を伝えることができる。これにより、レジスタＳＢの格納データは、ｎ＝１の第０ビットとなる（ステップＳ３）。
【００３５】
次に、図３に示す検出部３０がシフトレジスタｂ０、ｂ１のデータに基づき、シフトレジスタｂ０の値が"０"で、シフトレジスタｂ１の値が"１"であるか否かを判断する（ステップＳ４）。ｂ０＝０かつｂ１＝１ではない場合、設定値生成／選択部（以下、ボーレート設定部ともいう。）４０は設定値Ｘを生成する（ステップＳ１３）。これにより、ボーレートジェネレータ２０は、標準幅のシフトクロックを生成することができる。先ず、シフトクロックが立ち上がると（ステップＳ１４、図４のタイミングｔ１）、シフトレジスタのデータを下位に１ビットシフトさせ（ステップＳ１５−１）、比較器２２に設定値Ｘを設定する（ステップＳ１５−２）。これにより、周期Ｔ０のシフトクロックが生成され、この周期Ｔ０でレジスタＳＢのデータが出力される（ステップＳ１５−３、図４のタイミングｔ１〜ｔ２）。そしてレジスタＳＢに格納されているデータがエンドビットではない場合（ｎ＜９）（ステップＳ１６：Ｙｅｓ）、ステップＳ４に戻る。
【００３６】
ステップＳ４において、シフトレジスタｂ０、ｂ１に格納されているデータがｂ０＝０かつｂ１＝１である場合（ステップＳ４：Ｙｅｓ）、ボーレート設定部が設定値（Ｘ−Ｙ）を生成し（ステップＳ５）、シフトクロックが立ち上がるタイミング（図４のｔ２参照）でソフトレジスタのデータを下位に１ビットシフトさせ（ステップＳ７−１）、比較器２２に設定値（Ｘ−Ｙ）を設定し（ステップＳ７−２）、周期Ｔ１のシフトクロックでレジスタＳＢからデータ（"０"）を出力する（ステップＳ７−３）。
【００３７】
次にボーレート設定部が設定値（Ｘ＋Ｙ）を生成し、シフトクロックが立ち上がるタイミング（図４のｔ３参照）でシフトレジスタのデータを下位に１ビットシフトさせ（ステップＳ１０−１）、比較器２２に設定値（Ｘ＋Ｙ）を設定し（ステップＳ１０−２）、
周期Ｔ２のシフトクロックでレジスタＳＢからデータ（"１"）を出力する（ステップＳ１０−３）。そして、レジスタＳＢに格納されているデータがエンドビットではない場合（ｎ＜９）（ステップＳ１６：Ｙｅｓ）、ステップＳ４に戻り、エンドビットであれば（ｎ＝９）処理を終了する。
【００３８】
このように、本実施の形態においては、シリアルクロックの１周期分の長さを、現在出力するデータ（論理レベル）と次のシフトクロックサイクルで出力するデータの並び次第で、標準値Ｘを補正するか否かを決定し、シフトクロックの周期を変更する。このことにより、シフトレジスタ部１０から出力するデータ出力幅を変更し、ロウレベルからハイレベルとなる当該ハイレベル期間を長くすることができる。
【００３９】
出力するデータ幅に対応するシフトクロックの周期を変更することにより、通信プロトコルによって、データ出力端子（出力部）をＮチャンネルオープンドレーン端子とプルアップ抵抗によって構成する場合、プルアップ抵抗値によっては、データ線がハイレベルになりにくく、受信側には、データレートが一定幅ではないように送信されてしまうことを防止することができる。さらに、補正値Ｙはプログラマブルなため、ハイレベルの長さは、通信事情に応じた値及び受信側の論理閾値に合わせて作ることができる。
【００４０】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、本実施の形態においては、電源と接地との間に直列に接続されたプルアップ抵抗及びＮチャンネルトランジスタからなるオープンドレインの場合について説明したが、オープンコレクタであっても同様の効果を奏する。また、プルアップ抵抗の付加方法はどのようであってもよい。更に、Ｐチャンネルトランジスタとプルダウン抵抗とから構成してもよい。
【００４１】
また、シリアルインターフェース回路について説明したが、パラレルインターフェース回路に適用することも可能である。その場合には、各出力の現在及び次のデータの並びを検出し、それに応じてそれぞれのシフトクロックを生成すればよい。
【００４２】
また、検出部３０は、出力データの時系列の並び、すなわち、ロウレベルからハイレベルに変化する期間（補正対象区間）を検出するものであれば、上記構成に限るものではない。また、上記具体例においては、２つのシフトレジスタに格納されているデータを参照して、シフトクロックの補正対象区間を検出するものとしたが、２以上、例えば３つのシフトレジスタの値を参照して補正対象区間を検出するものとしてもよい。その場合は、時系列に前、現在、次のデータを"０００"と表す場合、"００１"、"１０１"の並びで、現在のシフトクロックの周期を（Ｘ−Ｙ）の設定値とし、"０１０"、"０１１"で現在のシフトクロックの周期を（Ｘ＋Ｙ）の設定値とすればよい。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態にかかるシリアルインターフェース回路を示す図である。
【図２】本発明の実施の形態にかかるシリアルインターフェース回路にて出力される出力波形を説明する図である。
【図３】本発明の実施の形態にかかるシリアルインターフェース回路１の一具体例を示す回路図である。
【図４】上記具体例にかかるインターフェース回路１の動作を示すタイミングチャートである。
【図５】上記具体例にかかるインターフェース回路の動作を示すフローチャートである。
【図６】スタートビット用及びエンドビット用シフトレジスタを有するシフトレジスタ部を示す図である。
【図７】従来のシリアルインターフェース回路の一例を示す図である。
【図８】従来のシリアルインターフェース回路の波形図である。
【符号の説明】
【００４４】
１  シリアルインターフェース回路
１０  シフトレジスタ部
１１ｎ  シフトレジスタ
１３，３１，３２  ＡＮＤ回路
１４  反転回路
１５  出力回路
１５ａ  Ｎチャンネルトランジスタ
１５ｂ  プルアップ抵抗
２０  ボーレートジェネレータ
２１  カウンタ
２２  比較器
２３  分周回路
２４  加算器
２５  セレクタ
３０  検出部
３３  遅延回路
３４  ＯＲ回路
３５  セレクタ
４０  設定値生成／選択部
１２０  シフトクロック生成部
【図１】
2007279920.tif 000003
【図２】
2007279920.tif 000004
【図３】
2007279920.tif 000005
【図４】
2007279920.tif 000006
【図５】
2007279920.tif 000007
【図６】
2007279920.tif 000008
【図７】
2007279920.tif 000009
【図８】
2007279920.tif 000010