説明

半導体装置

【課題】動作用クロックの周波数にかかわらず、所要のビットレートに近いビットレートでシリアル通信を行えるようにする。
【解決手段】半導体装置は、所定の動作用クロックに従って動作するシリアルコミュニケーションインタフェース(109)を含む。上記シリアルコミュニケーションインタフェースに、上記動作用クロックをカウントし、それに基づいて、上記単位転送時間を規定するための基本クロックを生成するボーレートジェネレータ(202)と、生成された基本クロックに従って送受信制御を行うための送受信コントローラ(201)とを設ける。さらに上記シリアルコミュニケーションインタフェースに、上記動作用クロックの上記ボーレートジェネレータへの供給を部分的にマスクすることで所望のビットレートを実現可能なビットレートモジュレータ(203)を設けることで、所要のビットレートに近いビットレートでのシリアル通信を実現する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置、さらにはそれにおけるシリアル通信技術に関し、例えばマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【0002】
半導体装置の一例とされるマイクロコンピュータ(データ処理装置あるいはマイクロプロセッサとも称される)は、機器制御用途に広く用いられている。マイクロコンピュータには、シリアルデータ通信を行うためのシリアルコミュニケーションインタフェース(SCI:Serial Communication Interface)が内蔵される。SCIでは、データを1ビットずつ送信または受信する。1ビットを送受信する速度をビットレートと呼ぶ。SCIには、送信側と受信側で、予めビットレートを決めておく調歩同期式モードがある。送信側と受信側のビットレートの相違あるいは誤差は小さくなければならない。また、ビットレートには、一般的に使用される特定の速度がある。例えば、460.4kbpsなどである。
【0003】
マイクロコンピュータの内部では、マイクロコンピュータないしSCIの動作用クロックを基本として、1ビット期間を計測する。マイクロコンピュータの動作用クロックも、一般的に使用される特定の周波数がある。例えば10.667MHzなどである。
【0004】
調歩同期式の場合、通信状態をデータのみで検出する必要があるため、ビットレートの8倍あるいは16倍の基本クロックが用いられる。基本クロックは、マイクロコンピュータやSCIの動作用クロックに基づいて形成される。この基本クロックを基準に、スタートの検出を行い、予め決めたビットレートに従い、後続のデータを、当該ビットの中央でサンプリングするようにする。上記の1ビット期間の計測は、この基本クロックを計測し、さらにこれを8個あるいは16個計測することになる。
【0005】
シリアルデータ通信技術について記載された文献の例として、特許文献1,2を挙げることができる。
【0006】
特許文献1には、データ転送速度が大きく変化した場合でも、データの取りこぼしをなくすための技術が記載されている。
【0007】
特許文献2には、入力クロックとして目的とするシリアル転送速度のN倍(Nは自然数)の周波数が供給できない場合においても、該転送速度におけるデータを受信可能にする受信シリアルクロック発生回路を実現するための技術が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2001−168853号公報
【特許文献2】特開平11−149325号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、マイクロコンピュータに内蔵されたSCIにおいて、動作用クロックとビットレートが独立に与えられるが、送信側と受信側とでビットレートの誤差を実用可能な程度に抑えることができない場合がある。例えば、マイクロコンピュータの動作用クロックが10.667MHz、ビットレートが460.4kbpsで、当該マイクロコンピュータに内蔵されるSCIにおける基本クロックをビットレートの8倍とする場合、動作用クロックを2個カウントして、基本クロックを生成すると、ビットレートは666.7kbpsとなってしまう。これに対して、上記の2個のカウントを1個のカウントに変更すれば、ビットレートは1333.3kbpsとなり、3個のカウントに変更すればビットレートは355.6kbpsとなり、実現できるビットレートがとびとびになる。これでは、所要のビットレートを実現できない。逆に、ビットレートに対して、マイクロコンピュータの動作用クロックの周波数が十分に高いと、基本クロックを計測するカウント値が十分大きくなり、より細かい調整を行うことができる。しかしこの場合は、通信速度が遅くなってしまう。
【0010】
そこで本願発明者は、受信側の基本クロックを所定の割合で間引くようにし、所要のビットレートに、平均的に近づける方式について検討した。それによれば、基本クロックを間引くと、送信の場合の1ビット期間や、受信の場合のスタートの検出や、データのサンプリングなど、送受信のタイミングがずれることが見いだされた。また、その場合、設計時に決めた、特定の動作用クロックとビットレートの組合せには対応可能であるが、それ以外の任意の組合せに対応させるのは困難である。
【0011】
このような課題について、上記特許文献1,2では考慮されていない。
【0012】
尚、基本クロックは外部から取り込むこともできる。その場合には、任意のビットレートを動作用クロックと独立に制御することができる。しかしその場合には、外部クロックとして入力する信号を生成するための別のリソースが必要になってしまう。また、マイクロコンピュータの基板上の配線を増やすことになる。特に、送受信の相手は、同一基板上に存在しない場合には、配線を増やすことが困難であるため、送受信の相手から基本クロックを供給してもらえるとは限らない。
【0013】
本発明の目的は、受信側の動作用クロックに基づいて基本クロックを生成する場合において、上記動作用クロックの周波数にかかわらず、所要のビットレートに近いビットレートでシリアル通信するための技術を提供することにある。
【0014】
本発明の上記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0015】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0016】
すなわち、半導体装置には、所定の動作用クロックに従って動作し、上記動作用クロックに基づく単位転送時間に従って外部との間で順序的な通信を行うシリアルコミュニケーションインタフェースが設けられる。上記シリアルコミュニケーションインタフェースは、上記動作用クロックをカウントし、そのカウント結果に基づいて、上記単位転送時間を規定するための基本クロックを生成するボーレートジェネレータと、上記ボーレートジェネレータによって生成された基本クロックに従って送受信制御を行うための送受信コントローラとを含む。さらに上記シリアルコミュニケーションインタフェースは、予め設定された情報に従って、上記動作用クロックの上記ボーレートジェネレータへの供給を部分的にマスクすることで所望のビットレートを実現可能なビットレートモジュレータを含む。
【0017】
上記ビットレートモジュレータ203は、予め設定された情報に従って、上記動作用クロックの上記ボーレートジェネレータへの供給を部分的にマスクすることで所望のビットレートを実現する。このことが、上記動作クロックの周波数にかかわらず、所要のビットレートに近いビットレートでのシリアル通信を実現する。
【発明の効果】
【0018】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0019】
すなわち、送信側の動作用クロックに基づいて基本クロックを生成する場合において、上記動作用クロックの周波数にかかわらず、所要のビットレートに近いビットレートでシリアル通信するための技術を提供することができる。
【図面の簡単な説明】
【0020】
【図1】本発明にかかる半導体装置の一例とされるマイクロコンピュータの構成例ブロック図である。
【図2】上記マイクロコンピュータに含まれるSCIの構成例ブロック図である。
【図3】上記SCIに含まれるボーレートジェネレータ及びビットレートモジュレータの構成例ブロック図である。
【図4】上記ビットレートモジュレータにおけるイネーブル信号出力態様の説明図である。
【図5】上記SCIにおける基本クロック生成のタイミング図である。
【図6】上記SCIにおけるビットレートの誤差についての説明図である。
【図7】調歩同期式モードの受信データサンプリングのタイミング図である。
【図8】上記マイクロコンピュータの適用例を示すブロック図である。
【発明を実施するための形態】
【0021】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0022】
〔1〕本発明の代表的な実施の形態に係る半導体装置(100)は、所定の動作用クロックに従って動作し、上記動作用クロックに基づく単位転送時間に従って外部との間で順序的な通信を行うシリアルコミュニケーションインタフェース(109)を含む。上記シリアルコミュニケーションインタフェースは、上記動作用クロックをカウントし、そのカウント結果に基づいて、上記単位転送時間を規定するための基本クロック(BCK)を生成するボーレートジェネレータ(202)と、上記ボーレートジェネレータによって生成された基本クロックに従って送受信制御を行うための送受信コントローラ(201)とを含む。さらに上記シリアルコミュニケーションインタフェースは、予め設定された情報に従って、上記動作用クロックの上記ボーレートジェネレータへの供給を部分的にマスクすることで所望のビットレートを実現可能なビットレートモジュレータ(203)を含む。上記動作クロックとして、内部クロック(ICK)を用いることができる。
【0023】
〔2〕上記〔1〕において、上記ビットレートモジュレータ(203)には、上記動作用クロックをカウントする第1カウンタ(MCNT)と、上記第1カウンタの出力ビットに対する重みを反転するための重み反転回路(303)と、上記基本クロックのデューティを決定するための情報を設定可能な第1レジスタ(BMR)とを含めることができる。さらに上記ビットレートモジュレータ(203)には、上記重み反転回路の出力と上記レジスタの出力とを比較する第1比較器(304)と、上記比較器の比較結果と上記動作用クロックとの論理演算を行うことで、上記動作用クロックの上記ボーレートジェネレータへの供給を部分的にマスクするための論理ゲート(302)とを含めることができる。
【0024】
〔3〕上記〔2〕において、上記重み反転回路は、上記第1カウンタの出力ビットの配列の並びを変更することで、上記第1カウンタの出力ビットに対する重みを反転するように構成することができる。
【0025】
〔4〕上記〔2〕において、上記ボーレートジェネレータは、上記論理ゲートの出力をカウントする第2カウンタ(BCNT)と、ビットレートを設定するための第2レジスタ(BRR)と、上記第2カウンタの出力と上記第2レジスタの出力とを比較することで上記基本クロックを形成する第2比較器(301)とを含んで構成することができる。
【0026】
〔5〕上記〔4〕において、上記単位転送時間は、上記第2カウンタ(BCNT)での複数のカウント単位で構成され、上記送受信コントローラ(201)は、外部から上記シリアルコミュニケーションインタフェースに取り込まれたスタートビットを検出して上記カウント単位を同期化する機能を含み、上記同期化後の上記第2カウンタによる所定のカウント結果に基づいて、上記シリアルコミュニケーションインタフェースへの入力がサンプリングされるように構成することができる。
【0027】
〔6〕上記〔5〕において、上記半導体装置は、上記シリアルコミュニケーションインタフェースの動作を制御するCPUを含んでマイクロコンピュータとして形成することができる。
【0028】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0029】
<実施の形態1>
図1には、本発明にかかる半導体装置の一例とされるマイクロコンピュータが示される。図1に示されるマイクロコンピュータ100は、公知の半導体集積回路製造技術に従って、単結晶シリコン基板などの一つの半導体基板に形成される。このマイクロコンピュータ100は、クロック発生回路(CPG)101、CPU(Central Processing Unit)102、割り込み制御回路(INT)104、タイマ(TIM)105、ROM(Read Only Memory)106、RAM(Random Access Memory)107、A/D変換器108、SCI109、及び入出力ポートIOP0〜IOP6を含む。
【0030】
上記RAM107は、上記CPU102による上記動作プログラムの実行で処理されるデータを保存し、また、上記CPU102の演算過程での一時的な記憶領域すなわち作業領域ともなる。上記クロック発生回路101は、クロックを外部から入力したり、水晶発振子等を接続するための外部端子(EXTAL,XTAL)に結合され、特定の周波数の内部クロックICKを生成する。生成された内部クロックICKはマイクロコンピュータ100の動作用クロックとしてクロックラインを介して各部に供給される。CPU102は、ROM106に格納されたプログラム等に基づいてマイクロコンピュータ100の制御を行う。ROM106は、上記CPU102の動作プログラムや当該プログラムに必要な固定データを格納する。上記タイマ105は、設定された時間をカウントし、設定時間に達するとフラグのセットや割り込み要求を発生させる。A/D変換器108は、入力されたアナログ信号をデジタル信号に変換する。上記SCI109は、外部装置との間でシリアル通信を行う。割り込み制御回路104は、上記A/D変換器108、上記タイマ105、上記SCI109から上記CPU102に対する割り込み要求が生じた場合、所定の優先順位に従って当該割り込み要求を処理する。上記入出力ポートIOP1〜IOP6は、外部との間で各種信号の入出力を行う。
【0031】
上記CPU102、上記割り込み制御回路104、上記ROM106、上記RAM107、上記A/D変換器108、上記タイマ105、上記SCI109、上記入出力ポートIOP1〜IOP6は、それぞれ内部バス103を介して接続される。また、上記SCI109は、上記入出力ポートIOP4に結合され、上記入出力ポートIOP4を介して外部装置との間でシリアル通信を行う。このシリアル通信における送信データはTxDとされ、受信データはRxDとされる。
【0032】
図2には、上記SCI109の構成例が示される。
【0033】
上記SCI109は、受信データレジスタRDR、受信シフトレジスタRSR、送信データレジスタTDR、送信シフトレジスタTSR、送受信コントローラ201、ボーレートジェネレータ202、及びビットレートモジュレータ203を含む。
【0034】
受信シフトレジスタRSRには、入力データRxDが1ビットずつ格納される。所定のデータ(例えば8ビット分のデータ)の受信が完了すると、その内容が受信データレジスタRDRに転送される。受信データレジスタRDRの内容は、内部バス103を介して、CPU102によって読み出すことができる。
【0035】
CPU102は、内部バス103を介して送信データレジスタTDRに送信データの書き込みを行うことができる。送信が開始されると、送信データレジスタTDRの内容は、送信シフトレジスタTSRに転送される。この送信シフトレジスタTSRは、1ビットずつデータを出力する。これが出力データTxDとされる。
【0036】
送受信コントローラ201は、送受信のモードやフォーマットの指定を行うとともに、そのステータスを表示する。このため、モード指定のためのモードレジスタSMRや拡張モードレジスタSEMR、フォーマット指定のためのコントロールレジスタSCR、及びステータスビットが保持されるステータスレジスタSSRが設けられる。また、この送受信コントローラ201は、パリティチェックのために、受信データに含まれるパリティビットを取り込んだり、送信データにパリティビットを付加したりする。尚、割り込み要求のための割り込み信号(TEI,TXI,RXI,ERI)は、上記送受信コントローラ201で生成される。
【0037】
ビットレートモジュレータ203は、ビットレートモジュレーションレジスタBMR、ビットレートモジュレーションカウンタMCNTを含み、上記ビットレートモジュレーションレジスタBMRの設定情報に基づいて、内部クロックICKの上記ボーレートジェネレータ202への供給を部分的にマスクすることによって所望のビットレートを実現する。上記内部クロックICKの部分的にマスクは、SCI109における単位転送時間が複数のカウント単位にわたって平均化されるように行われる。
【0038】
ボーレートジェネレータ202は、ビットレートレジスタBRR、ビットレートカウンタBCNTを含み、単位転送時間を規定するための基本クロックBCKを生成する。基本クロックBCKは、上記ビットレートモジュレータ203から伝達された内部クロックICKをカウントし、そのカウント結果に基づいて生成される。尚、ボーレートジェネレータ202は、設定により、外部クロックSCKを用いて基本クロックBCKを生成することもできる。
【0039】
図3には、上記ボーレートジェネレータ202及び上記ビットレートモジュレータ203の構成例が示される。
【0040】
上記ビットレートモジュレータ203は、アンドゲート302、ビットレートモジュレーションカウンタMCNT、重み反転回路303、比較器304、ビットレートモジュレーションレジスタBMRを含んで成る。上記ビットレートモジュレーションカウンタMCNTは、例えば8ビット構成とされ、内部クロックICKを0〜255までカウントする。上記ビットレートモジュレーションカウンタMCNTの出力は、重み反転回路303で重みが反転されてから比較器304に伝達される。上記重み反転回路303による重み反転は、上記ビットレートモジュレーションカウンタMCNTの出力のビット配列の並び替えによって実現される。例えば上記ビットレートモジュレーションカウンタMCNTの出力のビット配列を、MCNT[7],...,MCNT[1],MCNT[0]とすると、上記重み反転回路303によって、MCNT[0],MCNT[1],...,MCNT[7]のようにビット配列が並び替えられる。上記ビットレートモジュレーションレジスタBMRには、イネーブル信号ENのデューティ(パルス幅をパルス周期で割ったもの)が設定される。上記比較器304は、上記重み反転回路303の出力と、上記ビットレートモジュレーションレジスタBMRの出力とを比較することで、イネーブル信号ENを形成する。つまり、ビットレートモジュレーションカウンタMCNTの出力の1周期の間(256単位)であって、ビットレートモジュレーションレジスタBMRの出力によって特定される期間にイネーブル信号ENが例えばハイレベルにアサートされる。このため、BMR≧{MCNT[0],MCNT[1],...,MCNT[7]}が成立するとき、イネーブル信号ENがアサートされる。上記重み反転回路303により上記ビットレートモジュレーションカウンタMCNTのビットの重みを反転するのは、イネーブル信号ENのアサートタイミングを上記ビットレートモジュレーションカウンタMCNTのカウント周期において偏らないように平滑化するためである。上記イネーブル信号ENは、上記アンドゲート302における一方の入力端子に伝達される。上記アンドゲート302における他方の入力端子には、内部クロックICKが伝達される。これにより、内部クロックICKは、上記イネーブル信号ENのハイレベルの期間に、上記アンドゲート302を介して上記ボーレートジェネレータ202に伝達され、上記イネーブル信号ENのローレベルの期間は上記ボーレートジェネレータ202に伝達されない。
【0041】
上記ボーレートジェネレータ202は、ビットレートレジスタBRR、比較器301、ビットレートカウンタBCNTを含んで成る。上記ビットレートカウンタBCNTは、ビットレートモジュレータ203におけるアンドゲート302を介して伝達される内部クロックICKをカウントする。上記ビットレートカウンタBCNTの出力は、比較器301によって、常にビットレートレジスタBRRの出力と比較される。この比較器301の出力が、基本クロックBCKとされる。上記比較器301での比較において、両者が一致すると、上記ビットレートカウンタBCNTが「0」にクリアされる。これによって、周期的なカウントが行われ、上記基本クロックBCKが生成される。
【0042】
図4には、上記イネーブル信号ENの出力態様が示される。
【0043】
上記の通り、BMR≧{MCNT[0],MCNT[1],...,MCNT[7]}が成立するとき、比較器304によって、イネーブル信号ENがアサートされる。図4では、横軸にMCNTカウント値、縦軸にBMRのカウント値を示す。図4における○印の箇所で、イネーブル信号ENがアサートされる。例えば、BMR=2に設定すると、MCNT=127、195、255のときに、イネーブル信号ENがアサートされる。また、BMR=63に設定すると、MCNTが4の倍数+3のときに、イネーブル信号ENがアサートされる。BMR=127に設定すると、MCNTが偶数のときに、イネーブル信号ENがアサートされる。図3に示される構成では、上記重み反転回路303により上記ビットレートモジュレーションカウンタMCNTのビットの重みが反転されることによって、○印の箇所が横軸方向で局在化せずに均一に配置される。換言すれば、イネーブル信号ENの活性状態は、周期内での偏りが小さくなるように分配されるように平滑化される。
【0044】
図5には、上記基本クロックBCKの生成タイミングが示される。
【0045】
尚、ここでは、動作クロックに比較してビットレートが最も高い、BRR=0の場合が示される。この場合は、ビットレートカウンタBCNTのカウントアップ毎に、基本クロックBCKがトグルされる。
【0046】
イネーブル信号ENによって、ビットレートカウンタBCNTのカウントアップが抑止される。図5(A)は、BMR=170(約67%)にした場合で、平均して、元のカウントアップクロック(選択した内部クロックICK)7回のうち4回で、ビットレートカウンタBCNTに入力されるカウントアップクロックが得られる。イネーブル信号ENがローレベルにネゲートされている場合、ビットレートカウンタBCNTへのカウントアップクロックはマスクされるため、ビットレートカウンタBCNTはカウントアップされない。
【0047】
図5(B)は、BMR=195(75%)にした場合で、平均して、元のカウントアップクロック(選択した内部クロックICK)の7回のうち5回で、BCNTのカウントアップクロックが得られる。図5(A)に示される場合と同様に、イネーブル信号ENがローレベルにネゲートされている場合、ビットレートカウンタBCNTへのカウントアップクロックはマスクされるため、ビットレートカウンタBCNTはカウントアップされない。
【0048】
このようにして生成された基本クロックBCKは、元のカウントアップクロック(内部クロックICK)に対して、最大1周期分の誤差に抑えられている。
【0049】
図6には、上記マイクロコンピュータ100の内部クロックICKに対して所要のビットレートが高い場合において、ビットレートモジュレータ203を使用しない場合と使用する場合のビットレート誤差が示される。尚、ビットレートモジュレータ203を使用しない場合には、ビットレートカウンタBCNTに内部クロックICKがカウントアップクロックとしてそのまま入力されるものとする。
【0050】
ビットレートモジュレータ203を使用しない場合のビットレート誤差は次式によって示される。
【0051】
誤差=((φ×106)/(B×64×22n-1×(BRR+1))-1)×100
ビットレートモジュレータ203を使用した場合のビットレート誤差は次式によって示される。
【0052】
誤差=((φ×106)/(B×64×22n-1×((BMR+1)/256)×(BRR+1))-1)×100
上式において、「φ×106」は内部クロックICKの周波数、「B」は期待のビットレート、「BMR」はビットレートモジュレーションレジスタの出力値、BRRはビットレートレジスタBRRの出力値である。
【0053】
ビットレートモジュレータ203を使用しない場合、ビットレート誤差は最大50%になる。ビットレートモジュレータ203を使用すると、ビットレートモジュレーションカウンタMCNTとビットレートモジュレーションレジスタBMRが8ビットの場合に、256の分解能で補正するため、ビットレート誤差は約0.2%程度にできる。
【0054】
図7には、上記SCI109の動作タイミングが示される。
【0055】
調歩同期式モードでは、ビットレートの8ないし16倍の周波数の基本クロックBCKで動作する。本図では、ビットレートの16倍の周波数の基本クロックBCKが用いられている。ここでクロック16個分の時間が単位転送時間とされ、そのうちのクロック1個分がカウント単位とされる。
【0056】
受信時はスタートビットの立ち下がりを基本クロックBCKでサンプリングしてSCI109の内部が同期化される。また、受信データを基本クロックBCKの8ヶ目の立ち上がりエッジでサンプリングすることで、各ビットの中央でデータが取り込まれる。尚、図7では、同期化サンプリングタイミングが基本クロックBCKの立ち下がりエッジ、データサンプリングタイミングが基本クロックBCKの立ち上がりエッジとして表現されている。
【0057】
基本クロックBCKの誤差は、元のカウントアップクロックの最大1周期分であり、かつ、誤差を平滑化しているので、1ビット毎の時間のばらつきも同様に抑えることができ、平均的に所望の転送レートを得ることができる。送受信のデータは、当該ビットの中央となるタイミングでサンプリングするようにするので、1ビット毎の時間にばらつきが生じても、サンプリングタイミングに対して、データが遅れたり、早くなったりしなければよい。
【0058】
上記のように基本クロックBCKの生成タイミングが調整されることにより、サンプリングタイミングのばらつきも小さくできる。これによりSCI109では、柔軟で精度の高い送受信を行うことができる。
【0059】
図8には、上記マイクロコンピュータ100が適用された通信システムが示される。
【0060】
マイクロコンピュータ100が、モータ制御用LSI801を制御する。モータ制御用LSI801は、モータ802の駆動制御を行う。上記マイクロコンピュータ100におけるSCI109を介して、モータ制御用LSI801の状態を確認したり、モータ制御用LSI801に対して制御用コマンドを与えたりすることができる。
【0061】
上記SCI109によれば、基本クロックBCKの生成タイミングが調整されることにより、柔軟で精度の高い送受信を行うことができるので、無駄なエネルギー消費を控えることができる。モータ制御用LSIの動作周波数が高い場合には、マイクロコンピュータの動作周波数が比較的低くても、誤差が少なく、品質の高い通信を行うことができる。
【0062】
実施の形態1によれば以下の作用効果が得られる。
【0063】
(1)マイクロコンピュータ100は、所定の動作用クロックに従って動作し、上記動作用クロックに基づく単位転送時間に従って外部との間で順序的な通信を行うシリアルコミュニケーションインタフェース109を含んでおり、このシリアルコミュニケーションインタフェースは、ボーレートジェネレータ202と、送受信コントローラ201と、ビットレートモジュレータ203とを含んで構成される。上記ビットレートモジュレータ203は、予め設定された情報に従って、上記動作用クロックの上記ボーレートジェネレータへの供給を部分的にマスクすることで所望のビットレートを実現する。図6を参照しながら説明したように、ビットレートモジュレータ203を使用しない場合、ビットレート誤差は最大50%になる。ビットレートモジュレータ203を使用すると、ビットレートモジュレーションカウンタMCNTとビットレートモジュレーションレジスタBMRが8ビットの場合に、256の分解能で補正するため、ビットレート誤差は約0.2%程度にできる。このように上記ビットレートモジュレータ203を用いることでビットレート誤差を大幅に低減することができるので、上記内部クロックICKの周波数にかかわらず、所要のビットレートに近いビットレートでシリアル通信を行うことができる。
【0064】
(2)上記ビットレートモジュレータ203は、アンドゲート302、ビットレートモジュレーションカウンタMCNT、重み反転回路303、比較器304、ビットレートモジュレーションレジスタBMRを含んで容易に構成することができる。上記ビットレートモジュレーションカウンタMCNTは、例えば8ビット構成とされ、内部クロックICKを0〜255までカウントする。上記ビットレートモジュレーションカウンタMCNTの出力は、重み反転回路303で重みが反転されてから比較器303に伝達される。上記重み反転回路303による重み反転は、上記ビットレートモジュレーションカウンタMCNTの出力のビット配列の並び替えによって実現される。上記重み反転回路303により上記ビットレートモジュレーションカウンタMCNTのビットの重みを反転することにより、イネーブル信号ENのアサートタイミングを上記ビットレートモジュレーションカウンタMCNTのカウント周期において偏らないように平滑化することができる。
【0065】
(3)上記重み反転回路303は、上記ビットレートモジュレーションカウンタMCNTの出力のビット配列の並び替えを行うための配線によって容易に構成することができる。
【0066】
(4)上記ボーレートジェネレータ202は、上記アンドゲート302の出力をカウントするビットレートカウンタBCNTと、ビットレートを設定するためのビットレートレジスタBRRと、上記ビットレートカウンタBCNTの出力と上記ビットレートレジスタBRRの出力とを比較することで上記基本クロックBCKを形成する比較器301とを含んで容易に構成することができる。
【0067】
(5)上記単位転送時間は、上記ビットレートカウンタBCNTでの複数のカウント単位で構成され、上記送受信コントローラ201は、外部から上記SCI109に取り込まれたスタートビットを検出して上記カウント単位を同期化する機能を含む。このとき、上記同期化後の上記ビットレートカウンタBCNTによる所定のカウント結果に基づいて、上記SCI109への入力がサンプリングされるように構成することによって、受信データのサンプリングを的確に行うことができる。
【0068】
(6)上記構成のマイクロコンピュータ100によれば、上記ビットレートモジュレータ203を用いることでビットレート誤差を大幅に低減することができるので、上記内部クロックICKの周波数にかかわらず、所要のビットレートに近いビットレートでシリアル通信を行うことができ、例えば上記マイクロコンピュータ100が適用された通信システム(図8参照)においては、基本クロックBCKの生成タイミングが調整されることにより、柔軟で精度の高い送受信を行うことができるので、無駄なエネルギー消費を控えることができる。また、モータ制御用LSIの動作周波数が高い場合には、マイクロコンピュータの動作周波数が比較的低くても、誤差が少なく、品質の高い通信を行うことができる。
【0069】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0070】
例えば、上記重み反転回路303では、上記ビットレートモジュレーションカウンタMCNTの出力のビット配列の並び替えを行うようにしたが、これに限定されるものではない。例えば上記ビットレートモジュレーションカウンタMCNTの出力に基づいて所定のテーブルを参照することで重みを変更するようにしても良い。この場合、上記テーブルには、図4に示されるようなイネーブル信号ENの出力態様を実現するための情報が格納される。
【0071】
また、上記SCI109は、マイクロコンピュータ100以外の半導体装置に搭載することができる。例えば、デジタル信号処理に特化したDSP(Digital Signal Processor)に上記SCI109を搭載する場合が考えられ、かかる場合においても本発明を適用することができる。
【符号の説明】
【0072】
100 マイクロコンピュータ
101 クロック発生回路
102 CPU
103 内部バス
104 割り込み制御回路
105 タイマ
106 ROM
107 RAM
108 A/D変換器
109 SCI
IOP1〜IOP6 入出力ポート
201 送受信コントローラ
202 ボーレートジェネレータ
203 ビットレートモジュレータ
301 比較器
302 アンドゲート
303 重み反転回路
304 比較器
801 モータ制御用LSI
802 モータ
BCNT ビットレートカウンタ
BMR ビットレートモジュレーションレジスタ
BRR ビットレートレジスタ
MCNT ビットレートモジュレーションカウンタ

【特許請求の範囲】
【請求項1】
所定の動作用クロックに従って動作する半導体装置であって、
上記動作用クロックに基づく単位転送時間に従って外部との間で順序的な通信を行うシリアルコミュニケーションインタフェースを含み、
上記シリアルコミュニケーションインタフェースは、
上記動作用クロックをカウントし、そのカウント結果に基づいて、上記単位転送時間を規定するための基本クロックを生成するボーレートジェネレータと、
上記ボーレートジェネレータによって生成された基本クロックに従って送受信制御を行うための送受信コントローラと、
予め設定された情報に従って、上記動作用クロックの上記ボーレートジェネレータへの供給を部分的にマスクすることで所望のビットレートを実現可能なビットレートモジュレータと、を含むことを特徴とする半導体装置。
【請求項2】
上記ビットレートモジュレータは、上記動作用クロックをカウントする第1カウンタと、
上記第1カウンタの出力ビットに対する重みを反転するための重み反転回路と、
上記基本クロックのデューティを決定するための情報を設定可能な第1レジスタと、
上記重み反転回路の出力と上記レジスタの出力とを比較する第1比較器と、
上記比較器の比較結果と上記動作用クロックとの論理演算を行うことで、上記動作用クロックの上記ボーレートジェネレータへの供給を部分的にマスクするための論理ゲートと、を含んで成る請求項1記載の半導体装置。
【請求項3】
上記重み反転回路は、上記第1カウンタの出力ビットの配列の並びを変更することで、上記第1カウンタの出力ビットに対する重みを反転する請求項2記載の半導体装置。
【請求項4】
上記ボーレートジェネレータは、上記論理ゲートの出力をカウントする第2カウンタと、
ビットレートを設定するための第2レジスタと、
上記第2カウンタの出力と上記台2レジスタの出力とを比較することで上記基本クロックを形成する第2比較器と、を含んで成る請求項2記載の半導体装置。
【請求項5】
上記単位転送時間は、上記第2カウンタでの複数のカウント単位で構成され、
上記送受信コントローラは、外部から上記シリアルコミュニケーションインタフェースに取り込まれたスタートビットを検出して上記カウント単位を同期化する機能を含み、
上記同期化後の上記第2カウンタによる所定のカウント結果に基づいて、上記シリアルコミュニケーションインタフェースへの入力がサンプリングされる請求項4記載の半導体装置。
【請求項6】
上記シリアルコミュニケーションインタフェースの動作を制御するCPUを含んでマイクロコンピュータとして形成された請求項5記載の半導体装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate