説明

通信装置、制御装置及び入出力拡張装置

【課題】制御装置内のCPUコアの制御負担を軽減できる通信装置を提供する。
【解決手段】送信シフトレジスタ31は、n(nは自然数)個の送信レジスタ素子TR31〜TR3nを備え、受信シフトレジスタ22は、n個の受信レジスタ素子RR21〜RR2nを備える。通信制御回路37はシフトクロック信号SCのnクロックごとにセット信号SETを生成する。CPUコア10は出力レジスタ33にデータを書き込む。送信シフトレジスタ31は、セット信号SETに応答して、出力レジスタ33のデータをパラレルに受ける。そして、シフトクロック信号SCに応答して、データをシリアルに出力する。受信シフトレジスタ22は、シフトクロックSCに応答して、データを順次シフトする。そして、nクロック時に出力されるセット信号SETに応答して、データをパラレルに出力レジスタ23に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置に関し、さらに詳しくは、制御装置と入出力拡張装置とを備える通信装置に関する。
【背景技術】
【0002】
ワンチップマイクロコンピュータ(以下、ワンチップマイコンという)は、外部装置と信号をやり取りするための複数のI/Oピンを有する。
【0003】
最近、アプリケーションが複雑、多様になってきている。このようなアプリケーションは、多くのI/Oピン数を必要とする。したがって、ワンチップマイコンが有するI/Oピン数では、不足する場合が生じる。
【0004】
このような問題を解決するため、エキスパンダIC(Integrated Circuit)が利用されている。エキスパンダICはたとえば、特開平6−208634号公報に開示されている。
【0005】
エキスパンダICは、I/Oピン数をワンチップマイコンの外部で拡張する。図1を参照して、エキスパンダIC100はワンチップマイコン200に接続される。ワンチップマイコン200は3つの入出力ピンP221〜P223を有する。ピンP221はクロック信号CLKを出力する。ピンP222はシリアルデータを出力する。ピンP223はラッチ信号を出力する。
【0006】
エキスパンダIC100はピンP221〜P223と接続される入出力ピンP101〜P103と、外部とデータのやり取りを行う入出力ピンP111〜P118とを備える。エキスパンダIC100はさらに、ピンP102からのシリアルデータを順次受け付ける図示しないシフトレジスタと、各入出力ピンP111〜P118に対応して設けられた複数の図示しない出力レジスタとを備える。
【0007】
エキスパンダIC100は、ピンP102で受けたシリアルデータをパラレルデータに変換する。そして、変換されたデータを8つのピンP111〜P118からパラレルに出力する。したがって、エキスパンダIC100を利用すれば、ワンチップマイコン200の入出力端子数を3つ(P221〜P223)から8つ(P111〜P118)に増加する。
【0008】
エキスパンダIC100から出力されるデータのタイミングチャートを図2に示す。図2を参照して、エキスパンダIC100内にシフトレジスタは、ピンP101に入力されるクロック信号CLKに応答して、ピンP102から入力され、データD1〜D8が順番に配列されたシリアルデータを順次受け付ける。シフトレジスタは複数のレジスタ素子を含む。レジスタ素子は、対応する出力レジスタ素子を介して、対応するピンP111〜P118と接続されている。シフトレジスタはクロック信号CLKに応答して、レジスタ素子上でデータを順次シフトする。
【0009】
クロック信号CLKに応答してデータを順次シフトした結果、データD1〜D8が対応するレジスタ素子に格納される。このとき、ワンチップマイコン200はHレベルのパルス信号であるセット信号をピンP223から出力する。エキスパンダICがピンP103にセット信号を受けたとき、エキスパンダIC内の出力レジスタは、セット信号に応答して、シフトレジスタ内のデータD1〜D8をラッチする。ラッチされたデータD1〜D8は対応する入出力端子P111〜P118から外部にパラレルデータとして出力される。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平6−208634号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
上述のように、制御装置であるワンチップマイコン200から出力されるシリアルデータをエキスパンダIC100でパラレルデータとして出力する場合、ワンチップマイコン200はエキスパンダIC100の出力を制御しなければならない。具体的には、ワンチップマイコン200内のCPUコアは、エキスパンダIC100の入出力ピンP111〜118に出力するデータの出力タイミングや、セット信号の活性化のタイミング等を制御しなければならない。
【0012】
本発明の目的は、制御装置内のCPUコアの制御負担を軽減できる通信装置を提供することである。
【課題を解決するための手段及び発明の効果】
【0013】
本発明による通信装置は、制御装置と、制御装置に接続される入出力拡張装置とを備える。制御装置は、データを記憶する記憶手段と、出力レジスタ手段と、制御手段と、第1通信制御手段と、制御側送信シフトレジスタとを備える。出力レジスタ手段は、記憶手段から出力されたデータを格納する。制御手段は、出力レジスタ手段にデータの格納を指示する。第1通信制御手段は、第1クロック信号の所定周期ごとに第1セット信号を出力する。制御側送信シフトレジスタは、第1セット信号に応じてレジスタ手段がラッチしたデータをパラレルに受け、第1クロック信号に応じて受けたデータをシリアルに出力する。入出力拡張装置は、拡張側受信シフトレジスタと、入出力手段とを備える。拡張側受信シフトレジスタは、第1クロック信号に応じて制御側送信シフトレジスタから出力されたデータをシリアルに受ける。入出力手段は、第1セット信号に基づいて拡張側受信シフトレジスタからデータをパラレルに受け、外部に出力する。
【0014】
本発明による通信装置では、制御装置が制御側送信シフトレジスタを備える。制御手段は、記憶手段から出力手段までのデータの出力を制御するが、制御側送信シフトレジスタを制御しない。制御側送信シフトレジスタは、第1クロック信号に基づいて第1セット信号を生成する第1通信制御手段と、第1クロック信号により制御される。入出力拡張装置は、拡張側受信シフトレジスタを備える。拡張側受信シフトレジスタも、第1クロック信号及び第1セット信号に基づいて、データを受け、シフトする。つまり、制御装置と入出力拡張装置との間のデータ授受は第1クロック信号及び第1セット信号に基づいて実行され、制御手段は関与しない。そのため、制御手段はデータ授受に関する制御をする必要がなく、制御負担が軽減する。
【0015】
好ましくは、制御側送信シフトレジスタは、各々が出力レジスタ手段からデータを受けるn(nは1以上の整数)個の送信レジスタ素子を備える。拡張側受信シフトレジスタは、n個の送信レジスタ素子に対応するn個の受信レジスタ素子を備える。第1通信制御手段は、制御側送信シフトレジスタが受けたデータが第1クロック信号に応じてn回シフトしたとき第1セット信号を生成する。
【0016】
この場合、制御側送信シフトレジスタ内の送信レジスタ素子数と拡張側受信シフトレジスタ内の受信レジスタ素子数が同じn個である。そのため、レジスタ素子数分データをシフトすれば、所定の送信レジスタ素子に格納されたデータは、n回シフトした後に対応する受信レジスタ素子に格納される。したがって、レジスタ素子数分シフトしたときに第1セット信号が生成されれば、制御手段が制御しなくても、所望のデータを所望の受信シフトレジスタに格納し、出力することができる。
【0017】
好ましくは、入出力手段は、n個の受信レジスタ素子に対応するn個の入出力端子を備える。
【0018】
この場合、n個の入出力端子はn個の送信レジスタ素子と対応する。そのため、所定の送信レジスタに格納されたデータを所定の入出力端子から出力できる。
【0019】
好ましくは、入出力拡張装置はさらに、第2通信制御手段を備える。第2通信制御手段は、第1クロック信号に基づいて、第1セット信号と同期した第2セット信号を生成する。入出力手段は、第2セット信号に応じて拡張側受信シフトレジスタからデータをパラレルに受け外部に出力する。
【0020】
この場合、入出力拡張装置は、第1セット信号を制御装置から受けなくてよい。そのため、入出力拡張装置は、制御装置から第1セット信号を受けるための端子を設けなくてよい。
【0021】
本発明による制御装置及び入出力拡張装置は、上述の通信装置に利用される。
【図面の簡単な説明】
【0022】
【図1】従来の通信装置の全体構成を示す機能ブロック図である。
【図2】図1に示した通信装置のタイミングチャートである。
【図3】本発明の第1の実施の形態による通信装置の全体構成を示す機能ブロック図である。
【図4】図3に示した通信装置のタイミングチャートである。
【図5】本発明の第2の実施の形態による通信装置の全体構成を示す機能ブロック図である。
【発明を実施するための形態】
【0023】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【0024】
[第1の実施の形態]
[全体構成]
図3を参照して、本実施の形態による通信装置は、制御装置であるワンチップマイクロコンピュータ(以下、単にマイコンという)1と、入出力拡張装置であるエキスパンダIC2とを備える。
【0025】
[マイコンの構成]
マイコン1は、CPUコア10と、メモリ20と、入出力回路30とを備える。
【0026】
CPUコア10は、マイコン1全体を制御する。CPUコア10は、メモリ20内の所定のメモリセル(図示せず)に格納されたデータを読み出す。そして、読み出されたデータを入出力回路30内の所定の出力レジスタ33に書き込む。CPUコア10はまた、入出力回路30内の入力レジスタ34に格納されたデータを読み出す。そして、メモリ20内の所定のメモリセルにデータを格納する。
【0027】
メモリ20はたとえば、DRAMやフラッシュメモリである。メモリ20は、行列状に配列された複数の図示しないメモリセルを備える。各メモリセルは、メモリ20は、CPUコア10に指定されたアドレスのメモリセルからデータを読み出し、データバス50に出力する。メモリ20はまた、データバス50からデータを受け、CPU10に指定されたアドレスのメモリセルにデータを格納する。
【0028】
[入出力回路の構成]
入出力回路30は、送信シフトレジスタ31と、受信シフトレジスタ32と、出力レジスタ33と、入力レジスタ34と、読出ゲート35と、アドレスデコーダ36と、通信制御回路37と、入出力端子群39とを備える。
【0029】
送信シフトレジスタ31は、直列に接続された複数の送信レジスタ素子TR31〜TR3n(nは2以上の自然数)を含む。同様に、受信シフトレジスタ32は、直列に接続された複数の受信レジスタ素子RR31〜RR3nを含む。送信レジスタ素子TR3j(jは1〜nの自然数)及び受信レジスタ素子RR3jは、たとえば、DFF(Delay Flip-Flop)である。
【0030】
出力レジスタ33は、複数の出力レジスタ素子OR31〜OR3nを含む。出力レジスタ素子OR31〜OR3nは、送信レジスタ素子TR31〜TR3nに対応して配置される。出力レジスタ素子OR3jは、CPUコア10に指定されたメモリセルのデータ信号をデータバス50から受け、ラッチする。出力レジスタ素子OR31〜OR3nは、データ信号を増幅するバッファとして機能する。
【0031】
入力レジスタ34は、複数の入力レジスタ素子IR31〜IR3nを含む。入力レジスタ素子IR31〜IR3nは、受信レジスタ素子RR31〜RR3nに対応して配置される。入力レジスタ素子IR3jは、通信制御回路37から出力されるセット信号SETに応じて、受信レジスタ素子RR3jから出力されるデータ信号をラッチする。入力レジスタ素子IR31〜IR3nは、データ信号を増幅するバッファとして機能する。
【0032】
読出ゲート35は、複数の読出ゲート素子G31〜G3nを含む。読出ゲート素子G31〜G3nは、入力レジスタ素子IR31〜IR3nに対応する。読出ゲート素子G3jは、CPUコア10からの読出指示に応じて、対応する入力レジスタ素子IR3jでラッチされたデータをデータバス50に出力する。
【0033】
アドレスデコーダ36は、CPUコア10からの読出指示に応じて、読出ゲート35内の特定の読出ゲート素子G3jを動作させる。また、CPUコア10からの書込指示に応じて、出力レジスタ33内の特定の出力レジスタ素子OR3jを動作させる。
【0034】
具体的には、アドレスデコーダ36は、CPUコア10から読出許可信号REを受け、所望の読出ゲートG3jに読出信号を出力する。読出ゲートG3jは読出信号を受けたとき、対応する入力レジスタIR3jに格納されたデータ信号をデータバス50に出力する。また、アドレスデコーダ36は、CPUコア10から書込許可信号WRを受け、所望の出力レジスタOR3jに書込信号を出力する。出力レジスタOR3jは、書込信号を受けたとき、データバス50上のデータ信号をラッチする。出力レジスタOR3jはラッチしたデータ信号を対応する送信レジスタ素子TR3jに出力する。
【0035】
通信制御回路37は、マイコン1とエキスパンダIC2との間のデータ通信を制御する。より具体的には、通信制御回路37は、送信及び受信シフトレジスタ31及び32を制御する。CPUコア10は、送信及び受信シフトレジスタ31及び32を制御しない。つまり、CPUコア10は、マイコン1とエキスパンダIC2との間のデータ通信を制御しない。そのため、CPUコア10は、データをエキスパンダIC2に出力する場合、メモリ20及び出力レジスタ33を制御すればよい。また、エキスパンダIC2からのデータをメモリ20に格納する場合、CPUコア10は、読出ゲート35及びメモリ20を制御すればよい。そのため、CPUコア10の制御負担は軽減される。
【0036】
通信制御回路37は、外部からマスタクロック信号を受ける。そして、通信制御回路37は、マスタクロック信号を分周又は逓倍して、シフトクロック信号SCを生成する。生成されたシフトクロック信号SCは、送信及び受信シフトレジスタ31及び32に入力される。送信及び受信シフトレジスタ31及び32は、シフトクロック信号SCに応じてデータを順次シフトする。
【0037】
通信制御回路37はさらに、シフトクロック信号SCの所定の周期ごとにHレベルのパルス信号であるセット信号SETを出力する。送信シフトレジスタ31は、セット信号SETに応答して、出力レジスタ33のデータをパラレルにラッチする。また、入力レジスタ34は、セット信号SETに応答して、受信シフトレジスタ32のデータをパラレルにラッチする。
【0038】
入出力端子群39は、シリアルデータを送受信する。さらに、シフトクロック信号SCをエキスパンダICに出力する。入出力端子群39は、入出力端子P11〜P13を含む。入出力端子P11は、シフトクロック信号SCをエキスパンダICに出力する。入出力端子P12は、エキスパンダIC2から出力されたシリアルデータを受ける。そして、入出力端子P12は、シリアルデータを受信シフトレジスタ32に出力する。入出力端子P13は、送信シフトレジスタ31から出力されたシリアルデータを受ける。そして、入出力端子P13は、シリアルデータをエキスパンダIC2に出力する。
【0039】
[エキスパンダICの構成]
エキスパンダIC2は、送信シフトレジスタ21と、受信シフトレジスタ22と、出力レジスタ23と、出力ゲート24と、通信制御回路25と、入出力端子群26及び27とを備える。
【0040】
入出力端子群26は、入出力端子群39と接続される。入出力端子群26は、入出力端子P21〜P23を含む。入出力端子P21は入出力端子P11と接続され、マイコン1からシフトクロック信号SCを受ける。入出力端子P22は入出力端子P12と接続され、送信シフトレジスタ21から出力されるシリアルデータをマイコン1に出力する。入出力端子P23は入出力端子P13と接続され、シリアルデータ信号をマイコン1から受ける。そして、シリアルデータ信号を受信シフトレジスタ22に出力する。
【0041】
入出力端子群27は、エキスパンダIC2がマイコン1以外の他のデバイス(以下、外部デバイスという)と通信するための複数の入出力端子P201〜P20nを含む。入出力端子P201〜P20nの総数(n個)は、送信シフトレジスタ21内の送信レジスタ素子TR21〜TR2nの総数(n個)と等しい。また、入出力端子P201〜P20nの総数(n個)は、受信シフトレジスタ22内の受信レジスタ素子RR21〜RR2nの総数(n個)と等しい。入出力端子P20jは送信レジスタ素子TR2j及び受信レジスタ素子RR2jに対応する。入出力端子P201〜P20nの総数は、入出力端子P11〜P13の総数よりも多い。
【0042】
入出力端子P201〜P20nは、CPUコア10により、入力端子及び出力端子に定義される。
【0043】
送信シフトレジスタ21は、直列に接続された複数の送信レジスタ素子TR21〜TR2nを含む。送信レジスタ素子TR21〜TR2nは、入出力端子P201〜P20nに対応する。送信シフトレジスタ21は、入出力端子群27からパラレルにデータを受け、ラッチする。送信シフトレジスタ21は、パラレルに受けたデータを、シフトクロック信号SCに応じてシリアルに、入出力端子P22に出力する。
【0044】
送信レジスタTR2jは、シフトクロック信号SCがHレベルに立ち上がると、前段の送信レジスタTR2j−1から出力されたデータをラッチし、次段の送信シフトレジスタTR2j+1に出力する。そして、シフトクロック信号SCがHレベルに再び立ち上がるときに、次段の送信レジスタTR2j+1はデータをラッチする。
【0045】
受信シフトレジスタ22は、直列に接続された複数の受信レジスタ素子RR21〜RR2nを含む。複数の受信レジスタ素子RR21〜RR2nは、入出力端子P201〜P20nに対応する。受信シフトレジスタ22は、マイコン1からデータをシリアルに受ける。そして、シフトクロック信号SCに応じてデータを順次シフトする。具体的には、受信レジスタ素子RR2jは、シフトクロック信号SCがHレベルに立ち上がると、前段の受信レジスタ素子RR2j−1から出力されたデータをラッチし、次段の受信シフトレジスタRR2j+1に出力する。そして、シフトクロック信号SCがHレベルに再び立ち上がるときに、次段の受信レジスタ素子RR2j+1はデータをラッチする。
【0046】
通信制御回路25は、シフトクロック信号SCに応じて、出力レジスタ23を制御する。具体的には、通信制御回路25は、送信レジスタTR3jにラッチされたデータが順次シフトされ、受信レジスタRR2jに格納されたとき、つまり、送信レジスタTR3jにラッチされたデータがn回シフトしたとき、出力レジスタ23内の出力レジスタ素子OR2jにセット信号SETを出力する。より具体的には、通信制御回路25は、シフトクロック信号SCのnクロックごとにセット信号SETを生成し、出力レジスタ23が受信シフトレジスタ22のデータをラッチするよう制御する。
【0047】
出力レジスタ23は、受信レジスタ素子RR21〜RR2nに対応する複数の出力レジスタ素子OR21〜OR2nを含む。出力レジスタ素子ORjは、セット信号SETを受けたとき、対応する送信レジスタ素子TR2jが格納するデータをラッチする。
【0048】
出力ゲート24は、複数の出力レジスタ素子OR21〜OR2nに対応する複数の出力回路OC1〜OCnを含む。各出力回路OCjは、インバータIV1と、n型MOSトランジスタT1と、抵抗素子R1とを備える。インバータIV1は、出力レジスタ素子OR3jからデータ信号を受け、反転して出力する。n型MOSトランジスタT1のソース端子は接地電圧が供給されるGNDノードに接続され、ドレイン端子は対応する入出力端子P20jに接続される。ドレイン端子はさらに、電源電圧が供給されるVDDノードに抵抗素子R1を介して接続される。n型MOSトランジスタT1のゲート端子はインバータIV1の出力を受ける。
【0049】
出力レジスタOR2jの出力信号がHレベル、つまり「1」である場合、n型MOSトランジスタT1はオフになる。そのため、入出力端子P20jはHレベル、つまり、「1」の信号を出力する。一方、出力レジスタOR2jの出力信号がLレベル(つまり「0」)である場合、n型MOSトランジスタT1はオンになる。そのため、入出力端子P20jはLレベル(つまり、「0」)の信号を出力する。
【0050】
[通信装置の動作]
本実施の形態による通信装置では、CPUコア10は入出力回路30を制御しない。より具体的には、CPUコア10は、入出力端子P201〜P20nに出力するデータの出力タイミングや、セット信号SETの生成タイミングを制御しなくてよい。入出力回路30は、CPUコア10の制御を受けずに、CPUコア10とは独立して動作する。そのため、CPUコア10の制御負担は軽減する。以下、通信装置の動作を詳述する。
【0051】
[データ出力動作]
図4はCPUコア10がエキスパンダIC2の入出力端子P201からデータを出力する場合のタイミングチャートである。CPUコア10は初めに、入出力端子P201から出力させたいデータをメモリ20から読み出す。メモリ20から読み出されたデータはデータバス50に出力される。アドレスデコーダ36は、CPU10からの書込許可信号WRを受け、かつ、アドレスバス40上のアドレス信号を受ける。アドレスデコーダ36は、アドレス信号により指定された出力レジスタ素子(本例ではOR31)に書込信号を出力する。出力レジスタ素子OR31は、書込信号を受けたとき、データバス50上のデータをラッチする。以上の動作はCPUコア10が制御する。
【0052】
一方、入出力回路30は、通信制御回路37により制御される。通信制御回路37はシフトクロック信号SCを生成するとともに、シフトクロック信号SCのパルスをカウントする。そして、nクロック(n個のパルス)ごとに、Hレベルのパルス信号であるセット信号SETを出力する。
【0053】
図4を参照して、時刻t1で通信制御回路37がセット信号SETを出力する。送信シフトレジスタ31内の各送信レジスタ素子TR3jは、セット信号SETに応じて、対応する出力レジスタOR3jが出力するデータをラッチする。送信レジスタ素子TR3jはシフトクロック信号ステップSCに応じてデータをラッチし出力する。その結果、時刻t1で送信レジスタ素子TR3jにラッチされたデータは、シフトクロック信号SCごとに順次シフトし、nクロック後の時刻tnで受信レジスタ素子RR2jにラッチされる。
以下、時刻t1に送信レジスタ素子TR32にラッチされたデータD1に注目し、データD1のシフト動作を説明する。
時刻t1において、送信レジスタ素子TR32は、出力レジスタOR32が格納しているデータD1をラッチする。時刻t1後、シフトクロック信号が次にHレベルに活性化される前に、セット信号SETはLレベルとなる。
【0054】
続いて、送信シフトレジスタ31は、シフトクロック信号SCに応じてデータを順次シフトする。同様に、エキスパンダIC2内の受信シフトレジスタ22も、シフトクロック信号SCに応じてデータを順次シフトする。時刻t1の後、シフトクロック信号SCは時刻t2で再びHレベルになる。このとき、送信レジスタ素子TR32のデータD1は、送信レジスタTR31にラッチされる。つまり、データD1は、時刻t2において、送信レジスタ素子TR32からTR31にシフトする。
続いて、時刻t3において、送信レジスタ素子TR31のデータD1は入出力端子P31及びP23を通って受信レジスタRR2nにラッチされる。つまり、データD1は送信レジスタ素子TR31から受信レジスタRR2nにシフトする。同様に、シフトクロック信号SCが再びHレベルに立ち上がる時刻t4(図示せず)において、データD1は受信レジスタ素子RR2n−1にラッチされる。以降、送信シフトレジスタ31及び受信シフトレジスタ22はシフトクロック信号SCがHレベルに立ち上がるごとに、データD1を順次シフトする。この動作にCPUコア10は関与しない。
【0055】
時刻tnにおいて、データD1は、受信レジスタRR23からシフトし、受信レジスタRR22でラッチされる。このとき、以前にセット信号SETが出力されてからnクロックが経過したため、通信制御回路37及び25はセット信号SETを出力する。
以上の動作により、時刻t1で送信レジスタ素子TR3jにラッチされたデータは、nクロック後の時刻tnで、送信レジスタ素子TR3jに対応する受信レジスタ素子RR2jにラッチされる。
【0056】
エキスパンドIC2内の出力レジスタ23は、通信制御回路25からセット信号SETを受ける。このとき、出力レジスタ23内の各出力レジスタ素子OR2jは、対応する受信レジスタRR2jが格納しているデータをラッチする。したがって、出力レジスタ素子OR22は、受信レジスタRR22が格納しているデータD1をラッチする。出力ゲート24内の出力回路OC2は、出力レジスタ素子OR22がラッチしたデータD1を受ける。データD1に応じてn型MOSトランジスタT1がオン又はオフし、データD1が入出力端子P202から出力される。
【0057】
以上のとおり、CPUコア10は入出力回路30を制御しない。CPUコア10は、データを出力したい入出力端子20jに対応する送信レジスタ素子TR3jにデータを出力するよう出力レジスタ素子OR3jを制御するだけでよい。
【0058】
また、送信シフトレジスタ31内の送信レジスタ素子TR31〜TR3nの総数は、受信シフトレジスタ22内のレジスタ素子RR21〜RR2nの総数と同じn個である。したがって、送信レジスタ素子TR3jに格納されたデータは、nクロックごとに対応する受信レジスタ素子RR2jに格納される。nクロックごとにセット信号SETが生成されれば、所望の入出力端子P20jにデータが出力される。
【0059】
[データ入力動作]
データを入力するときの動作も、上述のデータ出力動作と類似する。データ入力動作前において、受信シフトレジスタ22内の全ての受信レジスタ素子RR21〜RR2nにはデータ「1」が格納される。このとき、全ての出力回路OC1〜OCn内のn型MOSトランジスタT1はオフになる。そのため、全ての入出力端子P201〜P20nは、外部デバイスの出力抵抗が抵抗素子R1よりも十分小さければ、外部デバイスに基づく電圧レベルとなる。エキスパンドICは入出力端子P201〜P20nにデータを受ける。
【0060】
通信制御回路25及び37は、シフトクロック信号SCのnクロックごとにHレベルのセット信号SETを出力する。送信シフトレジスタ21がHレベルのセット信号SETを受けたとき、送信シフトレジスタ21は、入出力端子群27に入力されたデータをパラレルに受け、ラッチする。具体的には、送信レジスタTR21〜TR2nは、対応する入出力端子P201〜P20nから入力されたデータをラッチする。
【0061】
以降の動作は図4と同様である。送信シフトレジスタ21及び受信シフトレジスタ32は、通信制御回路25及び37から出力されるシフトクロック信号SCに応じてデータを順次シフトする。送信シフトレジスタ21内のレジスタ素子TR21〜TR2nの総数は、受信シフトレジスタ32内のレジスタ素子RR31〜RR3nの総数と同じn個である。したがっ、送信レジスタ素子TR21に格納されたデータは、nクロック経過した時、受信レジスタ素子RR21に格納される。
【0062】
nクロック経過に基づいて、通信制御回路25及び37は、Hレベルのセット信号SETを再び出力する。つまり、通信制御回路25のセット信号SETは、通信制御回路37のセット信号SETと同期する。入力レジスタ34は、セット信号SETを受ける。このとき、入力レジスタ内の入力レジスタ素子IR31〜IR3nは、対応する送信レジスタ素子TR31〜TR3nのデータをラッチする。
【0063】
CPUコア10は入力レジスタ34でラッチされたデータをメモリ20内の所望のメモリセルに格納する。CPUコア10は、所定のメモリセルを指定するアドレス信号をアドレスバス40に出力し、アドレスデコーダ36に読出許可信号REを出力する。アドレスデコーダ36は、アドレスバス40上のアドレス信号と読出許可信号REとに基づいて、読出ゲート35内の所定の読出ゲート素子G3jに読出信号を出力する。読出ゲート素子Gjは読出信号を受けたとき、対応する入力レジスタ素子IR3jのデータをデータバス50に出力する。
【0064】
メモリ20は、アドレス信号によりメモリセルを特定し、特定されたメモリセルにデータバス50上のデータを格納する。
【0065】
以上のとおり、データ入力動作においてもCPUコア10は入出力回路30を制御しない。CPUコア10は従来のような複雑な制御をしなくてよい。
【0066】
上述の実施の形態では、通信制御回路37及び25は、シフトクロック信号SCのnクロックごとにセット信号SETを生成する。しかしながら、何らかの理由により通信制御回路37のセット信号SETと、通信制御回路25のセット信号SETとの同期がずれる場合も有り得る。そこで、同期させるために、シリアルデータの先頭にスタートビットを挿入し、又は、末尾にストップビットを挿入してもよい。また、入出力端子群39及び26にピンを1つ追加し、追加したピンに同期を取るための信号を入出力してもよい。
【0067】
また、上述の例では3線式のシリアル通信方式を示したが、PPM変調、PWM変調やバイフェーズ変調のような変調を用いた通信方式を採用してもよい。この場合、シフトクロック信号SC用の配線を減らすことができる。
【0068】
[第2の実施の形態]
図5を参照して、本実施の形態による通信装置は、調歩同期式通信(Universal Asynchronous Receiver/Transmitter:以下、UARTという)を利用する。本実施の形態による通信装置は、ワンチップマイクロコンピュータ(以下、単にマイコンという)70とエキスパンダIC80とを備える。
【0069】
[マイコンの構成]
マイコン70は、マイコン1と比較して、新たに設定レジスタ38を備える。その他の構成はマイコン1と同じである。
【0070】
設定レジスタ38は、マイコン70とエキスパンダIC80との間の設定データCDを出力する。設定データCDは、UART用のクロック信号を生成するための分周比情報と、エキスパンダICが生成したUART用シリアルデータの出力を指示する出力指示情報、外部の装置からエキスパンダICへのUART用シリアルデータの受付を指示する入力指示情報とを含む。
【0071】
送信シフトレジスタ31内のいくつかの送信レジスタ素子TR31〜TR3nは、セット信号SETに応じて設定データCDをラッチし、他の送信レジスタ素子TR3jは、セット信号SETに応じて出力レジスタ33からのデータをラッチする。たとえば、送信レジスタ素子TR31〜TR3k(kは、k<nの自然数)は設定データCDをラッチし、送信レジスタ素子TR3k+1〜TRnは、出力レジスタ33のデータをラッチする。つまり、送信シフトレジスタ31は、セット信号SETを受けるごとに、設定データCDと出力レジスタ33のデータとをラッチする。
【0072】
[エキスパンダICの構成]
エキスパンダIC80は、エキスパンダIC2と比較して、出力ゲート24に代えて、UART信号生成回路203を備える。エキスパンダIC80はさらに、入力レジスタ201、分周回路202、UART信号受信回路204及び設定レジスタ205を備える。エキスパンダIC80はさらに、入出力端子群27に代えて、入出力端子群206を備える。その他の構成はエキスパンダIC2と同じである。
【0073】
設定レジスタ205、分周回路202、UART信号生成回路203、UART信号受信回路204及び入出力端子群206は、UARTによりシリアルデータを送受信するための構成である。入出力端子群206は、入力端子207と出力端子208とを備え、図示しないUART機能を有する他の装置の入出力端子群と接続される。
【0074】
入力端子207は、他の装置から送信されたUART規格のシリアルデータを受ける。出力端子208は、エキスパンドIC80で生成されたUART規格のシリアルデータを出力する。
【0075】
設定レジスタ205は、通信制御回路25からのセット信号SETに応じて、受信シフトレジスタ22から設定データCDをラッチする。設定データCDは、送信レジスタ素子TR31〜TR3kに対応する受信レジスタ素子RR21〜RR2kにラッチされる。したがって、設定レジスタ205は、受信レジスタ素子RR21〜RR2kに格納された設定データCDをラッチする。
【0076】
通信制御回路25は、シフトクロック信号SCを受ける。通信制御回路25は、シフトクロック信号SCからマスタクロックMCLKを生成するための逓倍情報を図示しないメモリに予め記憶する。通信制御回路25はシフトクロック信号SC及び逓倍情報に基づいて、マスタクロック信号MCLKを生成する。通信制御回路25は生成されたマスタクロックMCLKを分周回路202に出力する。
【0077】
分周回路202は、設定レジスタ205から分周比情報を受ける。分周回路202は分周比情報とマスタクロック信号MCLKに基づいて、UART用クロック信号UCLKを生成する。
【0078】
UART信号受信回路204は、m個(mはm<nの自然数)のレジスタ素子を有するシフトレジスタを含む。UART信号受信回路204は、UART信号受信回路204は、設定レジスタから活性化された(たとえばHレベル)の入力情報を受けたとき、外部からシリアルデータをクロック信号UCLKを用いてサンプリングする。サンプリングにより抽出されたデータは、入力レジスタ201にパラレルに出力される。
【0079】
入力レジスタ201は、送信シフトレジスタ21内の複数の送信レジスタ素子TR21〜TR2nに対応する複数の入力レジスタ素子IR21〜IR2nを備える。入力レジスタ201内の各入力レジスタ素子IR21〜IR2nは、通信制御回路25から送信されるセット信号SETに応答して、UART信号受信回路204により抽出されたデータをラッチする。つまり、入力レジスタ201は、抽出されたデータをパラレルにラッチする。送信シフトレジスタ21は、通信制御回路25から送信されるセット信号SETに応じて、入力レジスタ201内のデータをパラレルに受け、ラッチする。
【0080】
UART信号生成回路203はシフトレジスタを含む。UART信号生成回路203は、出力レジスタ23からデータをパラレルに受け、ラッチする。そして、UART信号生成回路203は、UART用クロック信号UCLKに応じて、UART規格のシリアルデータを生成する。UART信号生成回路203は、設定レジスタ205から出力される活性化された(たとえばHレベル)出力情報に応じて、生成されたシリアルデータを出力端子208から外部に順次出力する。
【0081】
[通信システムの動作]
第2の実施の形態による通信システムにおいても、第1の実施の形態と同様に、CPUコア10は、入出力回路30を制御しなくてよい。そのため、CPUコア10での制御負担を軽減できる。
【0082】
[データ出力動作]
CPUコア10は、データを出力レジスタ33に格納する。メモリ20はアドレス信号により指定されたメモリセルに格納されたデータを読み出し、データバス50に出力する。アドレスデコーダ36は、CPUコア10からの書込許可信号WRとアドレス信号とに基づいて、出力レジスタ33に書込信号を出力する。出力レジスタ33は、書込信号に応答してデータバス50上のデータをラッチする。
【0083】
続いて、CPUコア10は設定データCDを設定レジスタ38に格納する。CPUコア10は、アドレス信号をアドレスバス40に出力する。メモリ20は、アドレス信号により指定されたメモリセルに格納された設定データCDを読み出し、データバス50に出力する。CPUコア10は、アドレスデコーダ36に書込許可信号WRを出力する。アドレスデコーダ36は、書込許可信号WRとアドレス信号とに基づいて、設定レジスタ38に書込信号を出力する。設定レジスタ38は書込信号を受け、データバス50上の設定データCDをラッチする。
【0084】
以上の動作により、設定レジスタ38及び出力レジスタ33はデータをラッチする。
【0085】
続いて、通信制御回路37はHレベルのワンショットパルスであるセット信号SETを出力する。送信シフトレジスタ31はセット信号SETに応じて、設定レジスタ38内の設定データCDと、出力レジスタ33内のデータとをラッチする。そして、シフトクロック信号SCに応答して、データを順次シフトしながらエキスパンダIC80に出力する。
【0086】
エキスパンダIC80内の受信シフトレジスタ22は、シフトクロック信号SCに応じてマイコン70から出力されるデータを順次格納する。nクロック径過後に、通信制御回路25がセット信号SETを出力する。このとき、前回のセット信号SETの出力により送信シフトレジスタ31に格納された全てのデータは、シフト動作により受信シフトレジスタ22に格納されている。
【0087】
通信制御回路25からセット信号SETを受けた設定レジスタ205及び出力レジスタ23は、受信シフトレジスタ22に格納されているデータをラッチする。このとき、設定レジスタ205は、受信レジスタ素子RR21〜RR2kに格納された設定データCDをラッチする。そして、出力レジスタ23は、受信レジスタ素子RR2k+1〜RR2nに格納されたデータをラッチする。
【0088】
分周回路202は、設定レジスタ205から分周比情報を受け、マスタクロック信号MCLKと分周比情報とからUART用のクロック信号UCLKを生成する。UART信号生成回路203は、クロック信号UCLKと出力レジスタ23が格納するデータとに基づいてシリアルデータを生成する。UART信号生成回路203はさらに、設定レジスタ205から出力情報を受ける。出力情報が出力開始を指示する場合、UART信号生成回路203は生成したシリアルデータを出力端子208を介して外部に出力する。
【0089】
[データ入力動作]
設定レジスタ205は、入力情報をUART信号受信回路204に出力する。入力情報は、データ入力の開始又は停止を指示する。入力情報がデータ入力の開示を指示する場合、UART信号受信回路204は、入力端子207からシリアルデータを順次受け付ける。
【0090】
入力レジスタ201は、通信制御回路25からセット信号SETを受けたとき、UART信号受信回路に格納されたデータをパラレルに受ける。
【0091】
送信シフトレジスタ21は、セット信号SETを受けたとき、入力レジスタ201に格納されたデータをパラレルに受ける。入力レジスタ201は、送信レジスタ素子TR21〜TR2nに対応する複数の入力レジスタ素子IR21〜IR2nを含む。各送信レジスタ素子TR21〜TR2nは、対応するレジスタ素子IR21〜IR2nのデータをラッチする。
【0092】
送信シフトレジスタ21はデータをラッチしたのち、シフトクロック信号SCに応答してデータを順次シフトし、マイコン70に順次出力する。
【0093】
送信シフトレジスタ21が入力レジスタ201のデータをラッチしてからnクロック径過したとき、マイコン70内の受信シフトレジスタ32は、送信シフトレジスタ21内のデータを全て受ける。このとき、通信制御回路37はセット信号SETを出力する。入力レジスタ34はセット信号SETを受け、受信シフトレジスタ32に格納されたデータをラッチする。以降の動作は第1の実施の形態と同じである。
【0094】
以上、エキスパンダICがUARTピンを有している場合であっても、CPUコア10の動作は第1の実施の形態とほぼ同じである。CPUコア10は送受信シフトレジスタ31及び32の動作を制御しないため、CPUコア10の制御を簡素化できる。
【0095】
エキスパンダIC80は、UART用の入出力端子群206と共に、汎用の入出力端子群27を備えてもよい。
【0096】
また、分周回路202は、マスタクロック信号MCLKからUART用クロック信号UCLKを生成したが、シフトクロック信号SCからUART用クロック信号UCLKを直接生成してもよい。
【0097】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【符号の説明】
【0098】
1 マイコン
10 CPUコア
20 メモリ
21,31 送信シフトレジスタ
22,32 受信シフトレジスタ
23,33 出力レジスタ
25,37 通信制御回路
38,205 設定レジスタ
202 分周回路
203 UART信号生成回路
204 UART信号受信回路

【特許請求の範囲】
【請求項1】
制御装置と、前記制御装置に接続される入出力拡張装置とを備える通信装置であって、
前記制御装置は、
データを記憶する記憶手段と、
前記記憶手段から出力されたデータを格納する出力レジスタ手段と、
前記出力レジスタ手段に前記データの格納を指示する制御手段と、
第1クロック信号の所定周期ごとに第1セット信号を出力する第1通信制御手段と、
前記第1セット信号に応じて前記レジスタ手段がラッチしたデータをパラレルに受け、前記第1クロック信号に応じて前記受けたデータをシリアルに出力する制御側送信シフトレジスタとを備え、
前記入出力拡張装置は、
前記第1クロック信号に応じて前記制御側送信シフトレジスタから出力されたデータをシリアルに受ける拡張側受信シフトレジスタと、
前記第1セット信号に基づいて前記拡張側受信シフトレジスタからデータをパラレルに受け、外部に出力する入出力手段とを備える、通信装置。
【請求項2】
請求項1に記載の通信装置であって、
前記制御側送信シフトレジスタは、各々が前記出力レジスタ手段からデータを受けるn(nはn>1の自然数)個の送信レジスタ素子を備え、
前記拡張側受信シフトレジスタは、前記n個の送信レジスタ素子に対応するn個の受信レジスタ素子を備え、
前記第1通信制御手段は、前記制御側送信シフトレジスタが受けたデータが前記第1クロック信号に応じてn回シフトしたとき前記第1セット信号を生成する、通信装置。
【請求項3】
請求項2に記載の通信装置であって、
前記入出力手段は、
前記n個の受信レジスタ素子に対応するn個の入出力端子を備えることを特徴とする、通信装置。
【請求項4】
請求項1〜請求項3のいずれか1項に記載の通信装置であって、
前記入出力拡張装置はさらに、
前記第1クロック信号に基づいて、前記第1セット信号と同期した第2セット信号を生成する第2通信制御手段を備え、
前記入出力手段は、前記第2セット信号に応じて前記拡張側受信シフトレジスタからデータをパラレルに受け外部に出力する、通信装置。
【請求項5】
請求項1又は請求項2に記載の通信装置であって、
前記入出力手段は、
前記第1クロック信号に基づいて第2クロック信号を生成するクロック生成手段と、
前記第2クロック信号と、前記拡張側受信シフトレジスタからパラレルに出力されるデータとに基づいて、調歩同期式のシリアルデータを生成する調歩同期式シリアルデータ生成手段とを備える、通信装置。
【請求項6】
請求項1に記載の通信装置であって、
前記入出力手段は外部からデータを受け、
前記入出力拡張装置はさらに、
前記第1セット信号に基づいて、前記入出力手段が外部から受けたデータをパラレルに受け、前記第1クロック信号に応じて前記データをシリアルに出力する拡張側送信シフトレジスタを備え、
前記制御装置はさらに、
前記拡張側送信シフトレジスタから出力されたデータを前記第1クロック信号に応じてシリアルに受ける制御側受信シフトレジスタと、
前記第1セット信号に応じて、前記制御側受信シフトレジスタのデータをパラレルに受ける入力レジスタ手段とを備え、
前記制御手段は、前記入力レジスタ手段のデータを前記記憶手段に記憶する、通信装置。
【請求項7】
入出力拡張装置に接続可能な制御装置であって、
データを記憶する記憶手段と、
記憶手段から出力されたデータを格納する出力レジスタ手段と、
前記出力レジスタ手段に前記データの格納を指示する制御手段と、
第1クロック信号の所定周期ごとに第1セット信号を生成する第1通信制御手段と、
前記第1セット信号に応じて前記出力レジスタ手段のデータをパラレルに受け、前記第1クロック信号に応じて前記受けたデータをシリアルに出力する制御側送信シフトレジスタとを備える、制御装置。
【請求項8】
n(nはn>1の自然数)個の送信レジスタ素子を含む制御側送信シフトレジスタを備え、前記制御側送信シフトレジスタのデータを第1クロック信号に応じてシリアルに出力する制御装置と接続可能な入出力拡張装置であって、
前記第1クロック信号に応じて前記制御側送信シフトレジスタから出力されたデータをシリアルに受ける拡張側受信シフトレジスタを備え、
前記拡張側受信シフトレジスタは、前記n個の送信レジスタ素子に対応するn個の受信レジスタ素子を含み、
前記入出力拡張装置はさらに、
前記制御側拡張シフトレジスタが受けたデータが前記第1クロック信号に応じてn回シフトしたときに、前記拡張側シフトレジスタからデータをパラレルに受け、外部に出力する入出力手段とを備える、入出力拡張装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−60027(P2011−60027A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−209632(P2009−209632)
【出願日】平成21年9月10日(2009.9.10)
【出願人】(000000273)オンキヨーサウンド&ビジョン株式会社 (502)
【Fターム(参考)】