(57)【要約】【課題】固定小数点演算と浮動小数点演算の両方をサポートするマイクロコンピュータにおいて、１つの周辺モジュールで複数の物理変量を扱う場合にも、周辺モジュールとのデータの入出力を行う際のデータ形式を変換するオーバーヘッドを減らす。【解決手段】周辺モジュールは、固定小数点形式レジスタと浮動小数点形式レジスタとデータ形式変換器を備える。固定小数点形式レジスタと浮動小数点形式レジスタとは、扱う複数の物理変量に対応付けて複数組備え、データ形式変換器によって相互にデータ形式を変換され、データ形式の異なる同一データが保持される。適切なデータ形式のレジスタを、ソフトウェアプログラムからのアクセス対象とすることができる。【選択図】図１
2014222443.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置と周辺モジュールを有するマイクロコンピュータであって、
前記周辺モジュールは、整数形式または固定小数点形式の固定小数点データを保持する固定小数点形式レジスタと前記固定小数点形式レジスタに保持される前記固定小数点データを浮動小数点形式の浮動小数点データで保持する浮動小数点形式レジスタと、前記固定小数点データと前記浮動小数点データとの間でデータ変換を行うデータ形式変換器を備え、
前記データ処理装置は、前記固定小数点形式レジスタをアクセスする第１アクセス命令と、前記浮動小数点形式レジスタをアクセスする第２アクセス命令と、浮動小数点演算命令と、固定小数点演算命令とを実行可能に構成される、マイクロコンピュータ。
【請求項２】
請求項１において、前記周辺モジュールは、複数の入力チャネルを有し、前記固定小数点形式レジスタと前記浮動小数点形式レジスタとを、前記複数の入力チャネルに対応付けてそれぞれ複数個備え、前記複数の入力チャネルから入力された情報に基づくデータは、それぞれ対応する固定小数点形式レジスタに格納される、マイクロコンピュータ。
【請求項３】
請求項２において、前記周辺モジュールは、アナログ／ディジタル変換器と、前記複数の入力チャネルのうちの１個を選択して前記アナログ／ディジタル変換器に入力するマルチプレクサとを備え、前記アナログ／ディジタル変換器の変換結果は、前記マルチプレクサによって選択された入力チャネルに対応する固定小数点形式レジスタに格納される、マイクロコンピュータ。
【請求項４】
請求項１において、前記周辺モジュールは、複数の出力チャネルを有し、前記固定小数点形式レジスタと前記浮動小数点形式レジスタとを、前記複数の出力チャネルに対応付けてそれぞれ複数個備え、前記複数の固定小数点形式レジスタに格納されるデータに基づく信号を、それぞれ対応する出力チャネルから出力可能に構成される、マイクロコンピュータ。
【請求項５】
請求項４において、前記周辺モジュールは、ディジタル／アナログ変換器と、前記複数の出力チャネルのうちの１個を選択して前記ディジタル／アナログ変換器からのアナログ電圧を出力するデマルチプレクサとを備え、前記ディジタル／アナログ変換器には、前記デマルチプレクサによって選択された出力チャネルに対応する固定小数点形式レジスタに格納される固定小数点データが入力される、マイクロコンピュータ。
【請求項６】
請求項１において、前記周辺モジュールは、カウントアップまたはカウントダウンされるタイマカウンタを備え、所定のトリガにより、前記タイマカウンタの値を前記固定小数点形式レジスタに取り込む機能を有する、マイクロコンピュータ。
【請求項７】
請求項１において、前記周辺モジュールは、カウントアップまたはカウントダウンされるタイマカウンタと、前記タイマカウンタの値と前記固定小数点形式レジスタに保持される値とを比較して一致したことを検出する機能を有する、マイクロコンピュータ。
【請求項８】
請求項１において、前記周辺モジュールは、浮動小数点形式インプットキャプチャレジスタをさらに備え、前記周辺モジュールは、前記固定小数点形式レジスタに保持される値を、カウントアップまたはカウントダウンする機能を備え、所定のトリガにより、前記浮動小数点形式レジスタの値を前記浮動小数点形式インプットキャプチャレジスタに取り込む機能を有する、マイクロコンピュータ。
【請求項９】
請求項１において、前記周辺モジュールは、浮動小数点形式アウトプットコンペアレジスタをさらに備え、前記周辺モジュールは、前記固定小数点形式レジスタに保持される値を、カウントアップまたはカウントダウンする機能を備え、前記周辺モジュールは、前記浮動小数点形式レジスタに保持される値と前記浮動小数点形式アウトプットコンペアレジスタに保持される値とを比較して一致したことを検出する機能を有する、マイクロコンピュータ。
【請求項１０】
請求項１において、前記データ形式変換器は、前記浮動小数点データの指数を調整可能に構成される、マイクロコンピュータ。
【請求項１１】
請求項２において、前記データ変換器は、前記複数の入力チャネルごとに独立に前記浮動小数点データの指数を調整可能に構成される、マイクロコンピュータ。
【請求項１２】
請求項４において、前記データ変換器は、前記複数の出力チャネルごとに独立に前記浮動小数点データの指数を調整可能に構成される、マイクロコンピュータ。
【請求項１３】
請求項１において、前記周辺モジュールは、基準値レジスタをさらに有し、前記データ変換器は、前記固定小数点形式レジスタに保持される値と前記基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行う、マイクロコンピュータ。
【請求項１４】
請求項２において、前記周辺モジュールは、前記複数の入力チャネルのそれぞれに対応する複数の基準値レジスタをさらに有し、前記データ変換器は、前記複数の入力チャネルごとに、前記固定小数点形式レジスタに保持される値と前記対応する基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行う、マイクロコンピュータ。
【請求項１５】
請求項４において、前記周辺モジュールは、前記複数の出力チャネルのそれぞれに対応する複数の基準値レジスタをさらに有し、前記データ変換器は、前記固定小数点形式レジスタに保持される値と前記対応する基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行う、マイクロコンピュータ。
【請求項１６】
請求項２において、前記周辺モジュールは、前記複数の入力チャネルのそれぞれに対応する複数の基準値レジスタをさらに有し、前記データ変換器は、前記複数の入力チャネルごとに、前記固定小数点形式レジスタに保持される値と前記対応する基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行い、前記複数の入力チャネルごとに独立に前記浮動小数点データの指数を調整可能に構成される、マイクロコンピュータ。
【請求項１７】
請求項４において、前記周辺モジュールは、前記複数の出力チャネルのそれぞれに対応する複数の基準値レジスタをさらに有し、前記データ変換器は、前記固定小数点形式レジスタに保持される値と前記対応する基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行い、前記複数の出力チャネルごとに独立に前記浮動小数点データの指数を調整可能に構成される、マイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ、またはデータ処理装置或いは半導体集積回路装置に関し、特に浮動小数点演算を含むデータ処理に用いられる周辺機能に好適に利用できるものである。
【背景技術】
【０００２】
マイクロコンピュータは、機器制御用途に広く用いられている。機器制御の入力または出力には、タイマが用いられる。タイマは、タイマカウンタの値を＋１するアップカウントまたは−１するダウンカウントの動作を基本とする。タイマカウンタは内部のクロックによってカウントするほか、外部のイベントの発生を入力して、カウント動作を行う場合もある（イベントカウント動作）。複数の入力信号の位相に従ってアップダウンカウントを行う場合もある（位相係数動作）。これらの外部入力に従ってカウントする場合、カウントすべき値の範囲に応じたビット数のタイマカウンタを持つ必要がある。オーバフローやアンダーフローが生じるとソフトウェアの処理が複雑になるためである。
【０００３】
タイマカウンタには、インプットキャプチャレジスタやアウトプットコンペアレジスタを組合せる場合が多い。インプットキャプチャレジスタは、所定のイベント（例えば、外部入力（インプットキャプチャ入力）端子の変化）を検出して、その時点のタイマカウンタの内容を格納する。これによって、イベントの発生した時間を記憶することができ、さらに、イベントとイベントの間の時間を知ることができる。アウトプットコンペアレジスタの内容は、タイマカウンタと比較され、一致したことを検出して、所定の外部出力（アウトプットコンペア出力）端子を変化させることができる。これによって、所要の波形を出力することができる。これらの入出力を使用して機器制御が行われる。
【０００４】
機器制御の内容は、ソフトウェアプログラムで指定される。データ処理装置が所定のプログラムを実行し、タイマそのほかの機能を使用して、機器制御を実行する。タイマの保持する内容は、データ処理装置によってリードまたはライトされ、データ処理装置によって演算などの処理が行われる。
【０００５】
近年、制御用に高いデータ精度が要求され、浮動小数点演算機能を持つデータ処理装置が増え、また、プログラムサイズも巨大化する傾向にある。更に、プログラミングを容易に行う要求が高まってきている。データ精度を高めることにより、制御対象の効率的な動作を行うことができるためである。
【０００６】
タイマは、アップカウントのインクリメント動作またはダウンカウントのデクリメント動作を行うから、固定小数点、特に整数で動作する。一方、データ処理装置は、浮動小数点演算機能をもち、浮動小数点によるデータ処理を行う。このデータ処理のために、タイマのデータをリードする場合、データ処理装置で浮動小数点に変換する必要がある。タイマのデータをライトする場合、データ処理装置で固定小数点（整数）に変換する必要がある。データ処理の前後でデータ変換を行う必要があり、オーバーヘッドが生じてしまう。
【０００７】
特許文献１と特許文献２には、固定小数点と浮動小数点の２つの形式からなる同一データを扱う電子制御装置が開示されている。特許文献１に開示される電子制御装置では、ＣＰＵ（Central Processing Unit）は、センサによって検出された値を基に浮動小数点型データを算出した後、その浮動小数点型データを固定小数点型データに変換し、それら各データをＲＡＭ（Random Access Memory）に格納する。特許文献２に開示される電子制御装置は、固定小数点演算を行うＣＰＵと、浮動小数点演算を行うＦＰＵ（Floating-Point Unit）を備え、ＲＯＭ（Read Only Memory）に格納された固定小数点型のパルス幅補正データから浮動小数点型に型変換された同一データが、ＲＡＭに記憶される。ＣＰＵはＲＯＭに記憶される固定小数点型のパルス幅補正データを参照し、ＦＰＵはＲＡＭに記憶される浮動小数点型に型変換されたパルス幅補正データを参照する。
【０００８】
特許文献３には、ＣＰＵの処理負荷やバスの占有率を増加させることなく、センサ信号のＡ／Ｄ変換値を浮動小数点型に変換する、パワートレイン制御装置が開示されている。内蔵されるＤＭＡ（Direct Memory Access）コントローラ内に、Ａ／Ｄ変換値を固定小数点型から浮動小数点型に変換するデータ変換回路を設ける。入力されるノックセンサ信号のＡ／Ｄ変換値は、ＤＭＡコントローラ内で浮動小数点型に変換されてＲＡＭに転送される。
【０００９】
特許文献４には、Ａ／Ｄ変換器の出力に接続され、固定小数点形式から浮動小数点形式に変換する入力データ形式変換器が開示されている。
【００１０】
特許文献５には、ＣＰＵとＦＰＵと、入力される固定小数点データを浮動小数点型データに変換する浮動小数点変換器とを備える、マイクロコントローラが開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００１−１９５２３３号公報
【特許文献２】特開２００９−０６７０７１号公報
【特許文献３】特開２００６−１６１６４５号公報
【特許文献４】特開２０１１−２４２４９８号公報
【特許文献５】特開２００９−１１０３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１、２、３、４及び５について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【００１３】
特許文献１と特許文献２に開示される技術では、ＣＰＵを使ってセンサ等から入力される固定小数点データを浮動小数点型データに変換している。入力される固定小数点データが変化せず、一度変換した結果を繰り返し使うことができる場合には、データ形式変換のためにＣＰＵにかかる負担を減らすことができるが、入力される固定小数点データが逐次変化する場合には、データ形式変換のためにＣＰＵにかかる負担は減らないか、却って大きくなる。特許文献３に開示される技術によれば、ＣＰＵに負担を掛けずに変換を行うことができるが、データ形式変換の為には必ずＤＭＡ転送を行う必要がある。特許文献４に開示される技術によっても、ＣＰＵに負担を掛けずに変換を行うことができるが、変換前の固定小数点データを使用することはできない。特許文献５に記載される技術は、ソフトウェアプログラムによるデータ形式変換であり、ＣＰＵの負担は軽減されるものの、なくすことはできない。
【００１４】
上述のタイマを始めとする、マイクロコンピュータに搭載される周辺モジュール（周辺機能とも呼ばれる）は、多くの場合、制御対象の物理変量を表現するデータを扱う。１つの周辺モジュールが多数の物理変量を扱う場合も少なくない。例えば、１つのタイマで複数の出力信号のパルス制御を行うとき、ハイ幅、ロウ幅、周期などの物理変量を、出力信号毎に制御する必要がある。また、Ａ／Ｄ変換器は、入力にマルチプレクサを備え、複数のアナログチャネルから入力される、アナログ信号を変換することができるように構成される場合がある。Ｄ／Ａ変換器は出力にデマルチプレクサを備えて、複数のアナログ信号を出力することができるように構成される場合がある。
【００１５】
物理変量には、ダイナミックレンジやビット精度などに適切な範囲がある。マイクロコンピュータに搭載される周辺モジュールが、１つのモジュールで複数の物理変量を扱う場合、固定小数点データとして扱うのが適切か、浮動小数点データとして扱うのが適切か、などを、個々の物理変量ごとに適切に調整する必要がある。入力された固定小数点データを浮動小数点データに変換するときには指数部の調整が必要であり、さらに固定小数点データのオフセットの調整が必要な場合もある。通常は、ソフトウェアプログラムによってこれを行う。上述の特許文献１と特許文献２に開示される技術では、特許文献５に記載される技術を組合せても、入力される固定小数点データが逐次変化する場合にはＣＰＵの負担が大きい。上述の特許文献３と特許文献４に開示される技術では、ＣＰＵの負担はないものの、専用の変換回路による変換であって単一の物理変量については有効であるが、１つの周辺モジュールで複数の物理変量を扱う場合については、何ら考慮されていない。
【００１６】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１７】
一実施の形態によれば、下記の通りである。
【００１８】
すなわち、データ処理装置と周辺モジュールを有するマイクロコンピュータであって、以下のように構成される。周辺モジュールは、固定小数点形式レジスタと浮動小数点形式レジスタとデータ形式変換器を備える。固定小数点形式レジスタは整数形式または固定小数点形式の固定小数点データを保持し、浮動小数点形式レジスタは同一のデータを浮動小数点形式の浮動小数点データで保持する。データ形式変換器は、固定小数点形式レジスタに保持される固定小数点データと、浮動小数点形式レジスタに保持される浮動小数点データとの間でデータ形式の変換を行う。データ処理装置は、固定小数点形式レジスタをアクセスする命令と、浮動小数点形式レジスタをアクセスする命令と、浮動小数点演算命令と、固定小数点演算命令とを実行可能に構成される。
【発明の効果】
【００１９】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００２０】
すなわち、データ処理装置において、整数形式または固定小数点形式と浮動小数点形式との間でデータ形式を変換するオーバーヘッドを減らしまたはなくすことができる。１つの周辺モジュールで複数の物理変量を扱う場合にも、固定小数点形式に適する物理変量は固定小数点形式レジスタをアクセス対象とし、浮動小数点形式に適する物理変量は浮動小数点形式レジスタをアクセス対象とすることにより、適切なデータ形式で、ソフトウェアプログラムに利用させることができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、実施形態１に係るマイクロコンピュータの構成例を示すブロック図である。
【図２】図２は、実施形態１に係るマイクロコンピュータの別の構成例を示すブロック図である。
【図３】図３は、実施形態２に係るマイクロコンピュータのタイマモジュールの構成例を示すブロック図である。
【図４】図４は、実施形態２に係るマイクロコンピュータのタイマモジュールにおいて、インプットキャプチャ機能を実現するための構成例を示す、より詳細なブロック図である。
【図５】図５は、実施形態２に係るマイクロコンピュータのタイマモジュールにおいて、アウトプットコンペア機能を実現するための構成例を示す、より詳細なブロック図である。
【図６】図６は、実施形態２に係るマイクロコンピュータのタイマモジュールにおいて、インプットキャプチャ機能を実現するための別の構成例を示すブロック図である。
【図７】図７は、実施形態２に係るマイクロコンピュータのタイマモジュールにおいて、アウトプットコンペア機能を実現するための別の構成例を示すブロック図である。
【図８】図８は、実施形態２に係るマイクロコンピュータのタイマモジュールにおける、データ形式変換器（固定小数点（整数）データから浮動小数点データへの変換）のより詳細なブロック図である。
【図９】図９は、実施形態２に係るマイクロコンピュータのタイマモジュールにおける、データ形式変換器（浮動小数点データから固定小数点（整数）データへの変換）のより詳細なブロック図である。
【図１０】図１０は、実施形態３に係るマイクロコンピュータのＡ／Ｄ変換モジュールの構成例を示すブロック図である。
【図１１】図１１は、実施形態４に係るマイクロコンピュータのＤ／Ａ変換モジュールの構成例を示すブロック図である。
【図１２】図１２は、実施形態４に係るマイクロコンピュータのＤ／Ａ変換モジュールの別の構成例を示すブロック図である。
【図１３】図１３は、実施形態３に係るマイクロコンピュータのＡ／Ｄ変換モジュールにおける、データ形式変換器（固定小数点（整数）データから浮動小数点データへの変換）のより詳細なブロック図である。
【図１４】図１４は、実施形態４に係るマイクロコンピュータのＤ／Ａ変換モジュールにおける、データ形式変換器（浮動小数点データから固定小数点（整数）データへの変換）のより詳細なブロック図である。
【図１５】図１５は、一実施の形態のマイクロコンピュータを使った制御システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２３】
〔１〕＜同一データに固定小数点と浮動小数点の２つの形式のレジスタを持つ周辺モジュールを備えるマイクロコンピュータ＞
本願において開示される代表的な実施の形態に係るマイクロコンピュータ（１）は、データ処理装置（２）と周辺モジュール（３）を有するマイクロコンピュータ（１）であって、以下のように構成される。
【００２４】
前記周辺モジュールは、整数形式または固定小数点形式の固定小数点データを保持する固定小数点形式レジスタ（７）と前記固定小数点形式レジスタに保持される前記固定小数点データを浮動小数点形式の浮動小数点データで保持する浮動小数点形式レジスタ（８）と、前記固定小数点データと前記浮動小数点データとの間でデータ変換を行うデータ形式変換器（９）を備える。
【００２５】
前記データ処理装置は、前記固定小数点形式レジスタをアクセスする第１アクセス命令と、前記浮動小数点形式レジスタをアクセスする第２アクセス命令と、浮動小数点演算命令と、固定小数点演算命令とを実行可能に構成される。
【００２６】
これにより、データ処理装置において、整数形式または固定小数点形式と浮動小数点形式との間でデータ形式を変換するオーバーヘッドを減らしまたはなくすことができる。１つの周辺モジュールで複数の物理変量を扱う場合にも、固定小数点形式に適する物理変量は固定小数点形式レジスタをアクセス対象とし、浮動小数点形式に適する物理変量は浮動小数点形式レジスタをアクセス対象とすることにより、適切なデータ形式で、ソフトウェアプログラムに利用させることができる。
【００２７】
〔２〕＜複数の入力チャネル＞
項１において、前記周辺モジュールは、複数の入力チャネルを有し、前記固定小数点形式レジスタと前記浮動小数点形式レジスタとを、前記複数の入力チャネルに対応付けてそれぞれ複数個備え、前記複数の入力チャネルから入力された情報に基づくデータは、それぞれ対応する固定小数点形式レジスタに格納される。
【００２８】
これにより、複数の入力チャネルを持つ周辺モジュールにおいて、複数の入力チャネルから入力される情報に基づくデータを、それぞれ独立に任意のデータ形式で、データ処理装置が実行するデータ処理に利用することができ、データ処理装置において、データ変換を入力されたチャネルの仕様に適合させるためのオーバーヘッドを減らしまたはなくすことができる。
【００２９】
〔３〕＜複数の入力チャネルを備えるＡ／Ｄ変換モジュール＞
項２において、前記周辺モジュールは、アナログ／ディジタル変換器（５０）と、前記複数の入力チャネルのうちの１個を選択して前記アナログ／ディジタル変換器に入力するマルチプレクサ（５１）とを備える。前記アナログ／ディジタル変換器の変換結果は、前記マルチプレクサによって選択された入力チャネルに対応する固定小数点形式レジスタ（７、７４＿１〜７４＿ｎ）に格納される。
【００３０】
これにより、複数の入力チャネルを持つＡ／Ｄ変換器を周辺モジュールとして備えるマイクロコンピュータにおいて、複数の入力チャネルから入力されるアナログ情報に基づく変換結果を、それぞれ独立に任意のデータ形式で、データ処理装置が実行するデータ処理に利用することができる。そのため、データ処理装置において、データ変換を入力されたチャネルの仕様に適合させるためのオーバーヘッドを減らしまたはなくすことができる。
【００３１】
〔４〕＜複数の出力チャネル＞
項１において、前記周辺モジュールは、複数の出力チャネルを有し、前記固定小数点形式レジスタと前記浮動小数点形式レジスタとを、前記複数の出力チャネルに対応付けてそれぞれ複数個備え、前記複数の固定小数点形式レジスタに格納されるデータに基づく信号を、それぞれ対応する出力チャネルから出力可能に構成される。
【００３２】
これにより、複数の出力チャネルを持つ周辺モジュールにおいて、複数の出力チャネルから出力される信号を生成するためのデータを、それぞれ独立に任意のデータ形式で、データ処理装置が実行するデータ処理から出力することができ、データ処理装置において、出力すべきチャネルの仕様に適合させるためのデータ変換のオーバーヘッドを減らしまたはなくすことができる。
【００３３】
〔５〕＜複数の出力チャネルを備えるＤ／Ａ変換モジュール＞
項４において、前記周辺モジュールは、ディジタル／アナログ変換器（６０）と、前記複数の出力チャネルのうちの１個を選択して前記ディジタル／アナログ変換器からのアナログ電圧を出力するデマルチプレクサ（６１）とを備える。前記ディジタル／アナログ変換器には、前記デマルチプレクサによって選択された出力チャネルに対応する固定小数点形式レジスタ（７、７５＿１〜７５＿ｎ）に格納される固定小数点データが入力される。
【００３４】
これにより、複数の出力チャネルを持つＤ／Ａ変換器を周辺モジュールとして備えるマイクロコンピュータにおいて、複数の出力チャネルから出力されるアナログ信号を生成するためのデータを、それぞれ独立に任意のデータ形式で、データ処理装置が実行するデータ処理から出力することができる。そのため、データ処理装置において、出力すべきチャネルの仕様に適合させるためのデータ変換のオーバーヘッドを減らしまたはなくすことができる。
【００３５】
〔６〕＜整数形式のインプットキャプチャ機能を持つタイマモジュール＞
項１において、前記周辺モジュールは、カウントアップまたはカウントダウンされるタイマカウンタ（４２）を備え、所定のトリガにより、前記タイマカウンタの値を前記固定小数点形式レジスタ（７２＿１〜７２＿ｎ）に取り込む機能（４４）を有する。
【００３６】
これにより、インプットキャプチャ機能を持つタイマを周辺モジュールとして備えるマイクロコンピュータにおいて、取り込まれた（キャプチャされた）カウンタ値を、整数形式のまま、または変換された浮動小数点形式で、データ処理装置が実行するデータ処理に利用することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【００３７】
〔７〕＜整数形式のアウトプットコンペア機能を持つタイマモジュール＞
項１において、前記周辺モジュールは、カウントアップまたはカウントダウンされるタイマカウンタ（４２）と、前記タイマカウンタの値と前記固定小数点形式レジスタ（７３＿１〜７３＿ｎ）に保持される値とを比較して一致したことを検出する機能（４５）を有する。
【００３８】
これにより、アウトプットコンペア機能を持つタイマを周辺モジュールとして備えるマイクロコンピュータにおいて、データ処理装置は、一致検出のためのデータを、整数形式または浮動小数点形式で設定することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【００３９】
〔８〕＜浮動小数点形式のインプットキャプチャ機能を持つタイマモジュール＞
項１において、前記周辺モジュールは、浮動小数点形式インプットキャプチャレジスタ（８２＿１〜８２＿ｎ）をさらに備える。前記周辺モジュールは、前記固定小数点形式レジスタ（４２）に保持される値を、カウントアップまたはカウントダウンする機能を備え、所定のトリガにより、前記浮動小数点形式レジスタ（８１）の値を前記浮動小数点形式インプットキャプチャレジスタに取り込む機能（４４）を有する。
【００４０】
これにより、インプットキャプチャ機能を持つタイマを周辺モジュールとして備えるマイクロコンピュータにおいて、カウンタ値を浮動小数点形式で取り込む（キャプチャする）ことができ、データ処理装置が実行するデータ処理ではデータ変換なしに浮動小数点形式で利用することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【００４１】
〔９〕＜浮動小数点形式のアウトプットコンペア機能を持つタイマモジュール＞
項１において、前記周辺モジュールは、浮動小数点形式アウトプットコンペアレジスタ（８３＿１〜８３＿ｎ）をさらに備え、前記周辺モジュールは、前記固定小数点形式レジスタ（４２）に保持される値を、カウントアップまたはカウントダウンする機能を備える。前記周辺モジュールは、前記浮動小数点形式レジスタ（８１）に保持される値と前記浮動小数点形式アウトプットコンペアレジスタに保持される値とを比較して一致したことを検出する機能（４５）を有する。
【００４２】
これにより、アウトプットコンペア機能を持つタイマを周辺モジュールとして備えるマイクロコンピュータにおいて、データ処理装置は、一致検出のためのデータを、浮動小数点形式で設定することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【００４３】
〔１０〕＜指数の調整＞
項１から項９のうちのいずれか１項において、前記データ形式変換器は、前記浮動小数点データの指数を調整可能に構成される。
【００４４】
これにより、浮動小数点形式レジスタに格納される値の仮数部のシフト量を調整することができ、データ処理装置が実行するデータ処理における仮数部の調整のためのオーバーヘッドを、減らしまたはなくすことができる。
【００４５】
〔１１〕＜複数の入力チャネルのそれぞれに独立の指数の調整＞
項２または項３において、前記データ変換器は、前記複数の入力チャネルごとに独立に前記浮動小数点データの指数を調整可能に構成される。
【００４６】
これにより、複数の入力チャネルにおいてそれぞれ独立に、浮動小数点形式レジスタに格納される値の仮数部のシフト量を調整することができる。
【００４７】
〔１２〕＜複数の出力チャネルのそれぞれに独立の指数の調整＞
項４または項５において、前記データ変換器は、前記複数の出力チャネルごとに独立に前記浮動小数点データの指数を調整可能に構成される。
【００４８】
これにより、複数の出力チャネルにおいてそれぞれ独立に、浮動小数点形式レジスタに格納される値の仮数部のシフト量を調整することができる。
【００４９】
〔１３〕＜基準値レジスタ＞
項１から項９のうちのいずれか１項において、前記周辺モジュールは、基準値レジスタ（５３＿１〜５３＿ｎ、６３＿１〜６３＿ｎ）をさらに有し、前記データ変換器（９４、９５）は、前記固定小数点形式レジスタに保持される値と前記基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行う。
【００５０】
これにより、浮動小数点形式レジスタに格納される値の仮数部のオフセット量を調整することができ、データ処理装置が実行するデータ処理における仮数部のオフセット量を調整するためのオーバーヘッドを、減らしまたはなくすことができる。
【００５１】
〔１４〕＜複数の入力チャネルのそれぞれに独立の基準値レジスタ＞
項２または項３において、前記周辺モジュールは、前記複数の入力チャネルのそれぞれに対応する複数の基準値レジスタ（５３＿１〜５３＿ｎ）をさらに有し、前記データ変換器（９４）は、前記複数の入力チャネルごとに、前記固定小数点形式レジスタに保持される値と前記対応する基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行う。
【００５２】
これにより、複数の入力チャネルにおいてそれぞれ独立に、浮動小数点形式レジスタに格納される値の仮数部のオフセット量を調整することができる。
【００５３】
〔１５〕＜複数の出力チャネルのそれぞれに独立の基準値レジスタ＞
項４または項５において、前記周辺モジュールは、前記複数の出力チャネルのそれぞれに対応する複数の基準値レジスタ（６３＿１〜６３＿ｎ）をさらに有し、前記データ変換器（９５）は、前記固定小数点形式レジスタに保持される値と前記対応する基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行う。
【００５４】
これにより、複数の出力チャネルにおいてそれぞれ独立に、浮動小数点形式レジスタに格納される値の仮数部のオフセット量を調整することができる。
【００５５】
〔１６〕＜複数の入力チャネルのそれぞれに独立の指数の調整と基準値レジスタ＞
項２または項３において、前記周辺モジュールは、前記複数の入力チャネルのそれぞれに対応する複数の基準値レジスタ（５３＿１〜５３＿ｎ）をさらに有する。前記データ変換器（９４）は、前記複数の入力チャネルごとに、前記固定小数点形式レジスタに保持される値と前記対応する基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行い、前記複数の入力チャネルごとに独立に前記浮動小数点データの指数を調整可能に構成される。
【００５６】
これにより、複数の入力チャネルにおいてそれぞれ独立に、浮動小数点形式レジスタに格納される値の仮数部のシフト量とオフセット量を調整することができる。
【００５７】
〔１７〕＜複数の出力チャネルのそれぞれに独立の指数の調整と基準値レジスタ＞
項４または項５において、前記周辺モジュールは、前記複数の出力チャネルのそれぞれに対応する複数の基準値レジスタ（６３＿１〜６３＿ｎ）をさらに有する。前記データ変換器（９５）は、前記固定小数点形式レジスタに保持される値と前記対応する基準レジスタに保持される値との差に基づいて、前記浮動小数点データとの間で前記データ変換を行い、前記複数の出力チャネルごとに独立に前記浮動小数点データの指数を調整可能に構成される。
【００５８】
これにより、複数の出力チャネルにおいてそれぞれ独立に、浮動小数点形式レジスタに格納される値の仮数部のシフト量とオフセット量を調整することができる。
【００５９】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００６０】
〔実施形態１〕＜同一データに固定小数点と浮動小数点の２つの形式のレジスタを持つ周辺モジュールを持つマイクロコンピュータ＞
図１は、実施形態１に係るマイクロコンピュータの構成例を示すブロック図である。
【００６１】
実施形態１に係るマイクロコンピュータ１は、データ処理装置２であるＦＰＵ２１を備えるＣＰＵ２と、周辺モジュール３とを有し、互いに内部バス１０で接続される。ＲＯＭ、ＲＡＭなどのメモリ、その他の機能モジュールを含んで構成されても良い。また特に制限されないが、マイクロコンピュータ１は、例えば、公知の半導体製造技術を用いて、シリコンなどの単一半導体基板上に形成される。周辺モジュール３は、整数形式または固定小数点形式の固定小数点データを保持する固定小数点形式レジスタ７と、固定小数点形式レジスタ７に保持される固定小数点データを浮動小数点形式の浮動小数点データで保持する浮動小数点形式レジスタ８と、データ形式変換器９とを備える。データ形式変換器９は、固定小数点形式レジスタ７に保持される固定小数点データと、浮動小数点形式レジスタ８に保持される浮動小数点データとの間で、データ形式の変換を行なう。
【００６２】
データ処理装置２は、固定小数点形式レジスタ７をアクセスする第１アクセス命令と、浮動小数点形式レジスタ８をアクセスする第２アクセス命令と、浮動小数点演算命令と、固定小数点演算命令とを実行できるように構成される。換言すれば、ＣＰＵ２は固定小数点演算を実行可能であり、ＦＰＵ２１により浮動小数点演算も実行することができ、固定小数点形式レジスタ７と浮動小数点形式レジスタ８のどちらもアクセスすることができる。
【００６３】
これにより、データ処理装置（ＣＰＵ２）において、整数形式または固定小数点形式と浮動小数点形式との間でデータ形式を変換するオーバーヘッドを減らしまたはなくすことができる。１つの周辺モジュールで複数の物理変量を扱う場合にも、固定小数点形式に適する物理変量は固定小数点形式レジスタ７をアクセス対象とし、浮動小数点形式に適する物理変量は浮動小数点形式レジスタ８をアクセス対象とすることにより、適切なデータ形式で、ソフトウェアプログラムに利用させることができる。固定小数点形式レジスタ７と浮動小数点形式レジスタ８とは一対で、同じ物理変量を異なるデータ形式で保持するので、複数の物理変量を扱う場合であっても、それぞれに対応する対の固定小数点形式レジスタ７と浮動小数点形式レジスタ８とを設け、適切なデータ形式の側のレジスタをアクセスすればよいからである。
【００６４】
周辺モジュール３が複数の入力チャネルを備える場合、固定小数点形式レジスタ７と浮動小数点形式レジスタ８とを、複数の入力チャネルに対応付けてそれぞれ複数個備え、複数の入力チャネルから入力された情報に基づくデータは、それぞれ対応する固定小数点形式レジスタ８に格納される。
【００６５】
これにより、複数の入力チャネルを持つ周辺モジュールにおいて、複数の入力チャネルから入力される情報に基づくデータを、それぞれ独立に任意のデータ形式で、データ処理装置が実行するデータ処理に利用することができ、データ処理装置において、データ変換を入力されたチャネルの仕様に適合させるためのオーバーヘッドを減らしまたはなくすことができる。
【００６６】
周辺モジュール３が複数の出力チャネルを備える場合、固定小数点形式レジスタ７と浮動小数点形式レジスタ８とを、複数の出力チャネルに対応付けてそれぞれ複数個備え、複数の固定小数点形式レジスタ８に格納されるデータに基づく信号を、それぞれ対応する出力チャネルから出力可能に構成される。
【００６７】
これにより、複数の出力チャネルを持つ周辺モジュールにおいて、複数の出力チャネルから出力される信号を生成するためのデータを、それぞれ独立に任意のデータ形式で、データ処理装置が実行するデータ処理から出力することができ、データ処理装置において、出力すべきチャネルの仕様に適合させるためのデータ変換のオーバーヘッドを減らしまたはなくすことができる。
【００６８】
図２は、実施形態１に係るマイクロコンピュータの別の構成例を示すブロック図である。
【００６９】
マイクロコンピュータ１は、全体の処理を司るCPU２、ROM１３、RAM１２、割込みコントローラINT１１、タイマモジュール４、A/D変換モジュール５、D/A変換モジュール６を含んで構成される。図示はされないSCI（Serial Communication Interface）、IOポートなどの周辺機能などの機能ブロック乃至はモジュールをさらに含んで構成されてもよい。ROM１３はCPU２の処理プログラムなどを格納する不揮発性メモリであり、RAM１２はCPU２の作業領域並びにデータの一時記憶用の揮発性メモリである。マイクロコンピュータ１の上記各機能ブロックは、内部バス１０によって相互に接続される。タイマモジュール４、A/D変換モジュール５などは、割込み信号を出力し、割込みコントローラINT１１を介して、CPU２に割込みを要求する。タイマモジュール４は、イベントカウント入力、インプットキャプチャ入力、アウトプットコンペア出力などのタイマ入出力を行う。A/D変換モジュール５は、マルチプレクサ５１を備え、複数の入力チャネルからのアナログ入力を行う。D/A変換モジュール６は、デマルチプレクサ６１を備え、複数の出力チャネルからのアナログ出力を行う。特に制限されないが、マイクロコンピュータ１は、例えば、公知のＣＭＯＳ（Complementary Metal-Oxide-Semiconductor field effect transistor）ＬＳＩ（Large Scale Integrated circuit）の製造技術を用いて、シリコンなどの単一半導体基板上に形成される。
【００７０】
CPU２は、浮動小数点演算機能（FPU）２１を有する。浮動小数点データは、例えば、IEEE745規格に従い構成される。浮動小数点データは、符号部（S）1ビット、指数部（E）8ビット、仮数部（F）23ビットを含む、32ビットデータとして扱われ、(-1)^S×(1+F×2^-23)×2^(E-127)が数値になる。指数部（E）は-126〜+127である。ここで「^」は冪乗を表す。
【００７１】
一例を示す。２進数表記の浮動小数点データ0_10000000_11000000000000000000000bは、符号部S=0、指数部E=10000000b=128d、仮数部F=11000000000000000000000bである。ここで、末尾の「b」は２進数表記であることを示し、末尾の「d」は１０進数表記であることを示す。この浮動小数点データは、符号が正であり、指数がE-127=1であり、仮数が1+F×2^-23=1+11000000000000000000000^-23=1.11b=1.75dであり、その値は、+1.75d×2^1=+3.5dとなる。
【００７２】
浮動小数点データは、浮動小数点用の演算命令などで扱われ、FPU２１で処理される。
【００７３】
CPU２は、内部バス１０を介して、主にROM１３からプログラムをリードして所要のプログラムを実行し、RAM１２、割込みコントローラINT１１、タイマモジュール４、A/D変換モジュール５、D/A変換モジュール６、そのほか周辺機能の各モジュールに対するデータのリード/ライトを行う。ROM１１に格納されるプログラムには、浮動小数点データ処理プログラムが含まれる。これらによって、所要の制御を実現する。
【００７４】
周辺モジュール３である、タイマモジュール４、A/D変換モジュール５、D/A変換モジュール６は、それぞれ、整数形式または固定小数点形式の固定小数点データを保持する固定小数点形式レジスタ７と、固定小数点形式レジスタ７に保持される固定小数点データを浮動小数点形式の浮動小数点データで保持する浮動小数点形式レジスタ８と、データ形式変換器９とを備える。データ形式変換器９は、固定小数点形式レジスタ７に保持される固定小数点データと、浮動小数点形式レジスタ８に保持される浮動小数点データとの間で、データ形式の変換を行なう。
【００７５】
タイマモジュール４は、タイマカウンタを備え、そのカウント値との比較やそのカウント値に基づいた制御を行う、タイマカウンタ比較制御部４１を備え、外部から入力されるタイマ入力信号に基づく制御を行い、また、外部に出力されるタイマ出力信号を生成するための制御を行う。制御に必要なパラメータは、固定小数点形式レジスタ７と浮動小数点形式レジスタ８とに同一のパラメータが格納され、自由に選択して使用することができる。タイマモジュール４は、複数の物理変量を扱う制御を行うことができる。必ずしも外部との信号の入出力を伴うものである必要はない。扱う物理変量は、CPU２またはFPU２１が実行するデータ処理では、整数を含む固定小数点変数で処理され、または、浮動小数点変数で処理される。本実施形態におけるタイマモジュール４は、同じパラメータを、固定小数点形式レジスタ７と浮動小数点形式レジスタ８とに格納するので、どちらの形式の変数も、CPU２やFPU２１からデータ形式の変換なしにアクセスすることができる。
【００７６】
A/D変換モジュール５は、A/D変換部５０と、複数の入力チャネルのうちの１個を選択してA/D変換部５０に入力するマルチプレクサ５１とを備える。固定小数点形式レジスタ７と浮動小数点形式レジスタ８は、複数の入力チャネルのそれぞれに対応して複数個設けられている。A/D変換部５０の変換結果は、前記マルチプレクサ５１によって選択された入力チャネルに対応する固定小数点形式レジスタ７に格納され、同じ物理変量がデータ形式変換器９により浮動小数点形式のデータに変換されて、対応する浮動小数点形式レジスタ８に格納される。複数の入力チャネルから入力されるアナログ情報に基づく変換結果を、それぞれ独立に任意のデータ形式で、CPU２またはFPU２１が実行するデータ処理に利用することができる。
【００７７】
D/A変換モジュール６は、D/A変換部６０と、複数の出力チャネルのうちの１個を選択してD/A変換部６０からのアナログ信号を出力するデマルチプレクサ６１とを備える。固定小数点形式レジスタ７と浮動小数点形式レジスタ８は、複数の出力チャネルのそれぞれに対応して複数個設けられており、D/A変換部６０には、デマルチプレクサ６１によって選択された出力チャネルに対応する固定小数点形式レジスタ７に格納される固定小数点データが入力される。CPU２からは、固定小数点形式レジスタ７に固定小数点データを書き込むことができ、或いは、浮動小数点データを浮動小数点形式レジスタ８に書き込むこともできる。CPU２が浮動小数点データを浮動小数点形式レジスタ８に書き込んだときには、同じ物理変量がデータ形式変換器９により固定小数点形式のデータに変換されて、対応する固定小数点形式レジスタ７に格納される。複数の出力チャネルから出力されるアナログ信号を生成するためのデータを、それぞれ独立に任意のデータ形式で、CPU２またはFPU２１が実行するデータ処理から出力することができる。
【００７８】
これにより、複数の入出力チャネルを持つタイマ、A/D変換器、D/A変換器を含む周辺モジュールを備えるマイクロコンピュータ１において、対応する入出力チャネルの仕様に適合させるデータ変換ためのオーバーヘッドを減らしまたはなくすことができる。
【００７９】
〔実施形態２〕＜タイマモジュール＞
図３は、実施形態２に係るマイクロコンピュータ１のタイマモジュール４の構成例を示すブロック図である。
【００８０】
タイマモジュール４は、タイマカウンタTCNT４２、タイマカウンタ浮動小数点レジスタFTCNT８１、アウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎ、アウトプットコンペア浮動小数点レジスタFOCR８３＿１〜８３＿ｎ、インプットキャプチャ浮動小数点レジスタFICR８２＿１〜８２＿ｎを有する。タイマカウンタTCNT４２とアウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎのビット数は、任意に設定することができ、例えば、それぞれ、整数16ビットとすることができる。タイマモジュール４はさらに、コントロールレジスタTCR４３、浮動小数点変換部９１、キャプチャ制御部４４、一致検出部４５、プリスケーラPSC４６などを有する。タイマカウンタTCNT４２、タイマカウンタ浮動小数点レジスタFTCNT８１、アウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎ、アウトプットコンペア浮動小数点レジスタFOCR８３＿１〜８３＿ｎ、インプットキャプチャ浮動小数点レジスタFICR８２＿１〜８２＿ｎ、及び、コントロールレジスタTCR４３は、内部バス１０に接続されている。これらのレジスタは、内部バス１０を介して図３には図示されないCPU２からアクセス可能に構成される。キャプチャ制御部４４にはインプットキャプチャ入力信号が入力され、一致検出部４５からはアウトプットコンペア出力信号が出力される。
【００８１】
プリスケーラPSC４６は内部クロックに同期して動作するカウンタであって、コントロールレジスタTCR４３のプリスケーラ選択ビットの指定に従って、所定の桁（ビット位置）のカウント値を、カウンタのカウント動作の基準クロックとしてタイマカウンタTCNT４２に供給する。これによって、タイマカウンタ４２などのダイナミックレンジを所要の範囲にすることができる。マイクロコンピュータ１が複数のタイマモジュールを備えるときに、プリスケーラ４６を共有することで、論理規模の増加を抑制することができる。また、タイマカウンタTCNT４２は、コントロールレジスタTCR４３の指定によって、外部クロック入力をカウントすることもできる。外部クロックカウンタを複数設けて、これらの位相差に基づく位相係数カウントを行うことができるように構成しても良い。
【００８２】
タイマカウンタTCNT４２は浮動小数点変換部９１を介してタイマカウンタ浮動小数点レジスタFTCNT８１に接続され、TCNT４２の整数データが、浮動小数点データとしてFTCNT８１に格納される。
【００８３】
＜浮動小数点形式のインプットキャプチャ機能＞
タイマモジュール４は、入力されるインプットキャプチャ入力信号のそれぞれに対応して、１組乃至複数のインプットキャプチャ浮動小数点レジスタFICR８２＿１〜８２＿ｎを有する。
【００８４】
タイマカウンタ浮動小数点レジスタFTCNT８１は、キャプチャ制御部４４を介してインプットキャプチャ浮動小数点レジスタFICR８２＿１〜８２＿ｎに接続され、TCR４３の指定などによって、インプットキャプチャ入力の変化を検出して、FTCNT８１の内容をFICR８２＿１〜８２＿ｎに転送して格納する。同時に、コントロールレジスタTCR４３の所定のステータスフラグが「１」にセットされる。これによって、CPU２へ割り込みを要求することができる。
【００８５】
図４は、実施形態２に係るマイクロコンピュータのタイマモジュールにおいて、インプットキャプチャ機能を実現するための構成例を示す、より詳細なブロック図である。
【００８６】
インプットキャプチャ浮動小数点レジスタFICR８２＿１〜８２＿ｎのそれぞれは、例えばフリップフロップ回路で構成されるレジスタ４７と、セレクタ４８で構成されている。タイマカウンタ浮動小数点レジスタFTCNT８１に接続され、対応するインプットキャプチャ入力１〜ｎによって、レジスタ４７の値を保持するか、レジスタ４７にタイマカウンタ浮動小数点レジスタFTCNT８１の値を取り込む（キャプチャする）かが制御される。図４に「キャプチャ制御部４４」の明記はないが、セレクタ４８により、キャプチャ制御部４４に相当する所望の機能が実装される。
【００８７】
これにより、インプットキャプチャ機能を持つタイマモジュール４を備えるマイクロコンピュータ１において、カウンタ値を浮動小数点形式で取り込む（キャプチャする）ことができ、CPU２が実行するデータ処理ではデータ変換なしに浮動小数点形式で利用することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【００８８】
＜整数形式のアウトプットコンペア機能＞
タイマモジュール４は、出力すべきアウトプットコンペア出力信号のそれぞれに対応して、１組乃至複数のアウトプットコンペア浮動小数点レジスタFOCR８３＿１〜８３＿ｎとアウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎとを有する。アウトプットコンペア浮動小数点レジスタFOCR８３＿１〜８３＿ｎは浮動小数点変換部９１を介してアウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎに接続され、FOCRR８３＿１〜８３＿ｎの浮動小数点データが、整数データに変換されてIOCR７３＿１〜７３＿ｎに格納される。IOCRとTCNTの内容は一致検出４５で比較される。一致が検出されると、コントロールレジスタTCR４３の所定のステータスフラグが「１」にセットされる。これによって、CPU２へ割り込みを要求することができる。同時に、TCR４３の指定などによって、アウトプットコンペア出力の出力を変化させる。
【００８９】
図５は、実施形態２に係るマイクロコンピュータのタイマモジュールにおいて、アウトプットコンペア機能を実現するための構成例を示す、より詳細なブロック図である。
【００９０】
タイマカウンタTCNT４２は、固定小数点（整数）データから浮動小数点データへの変換を行う、浮動小数点変換部９２を介してタイマカウンタ浮動小数点レジスタFTCNT８１に接続されており、TCNT４２の整数データが、浮動小数点データとしてFTCNT８１に格納される。１組乃至複数組のアウトプットコンペア浮動小数点レジスタFOCR８３＿１〜８３＿ｎとアウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎは、浮動小数点データから固定小数点（整数）データへの変換を行う、浮動小数点変換部９３を介してそれぞれ接続されている。浮動小数点レジスタFOCR８３＿１〜８３＿ｎの浮動小数点データが、固定小数点（整数）データに変換されて、対応するアウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎに格納される。
【００９１】
タイマカウンタTCNT４２、タイマカウンタ浮動小数点レジスタFTCNT８１、アウトプットコンペア浮動小数点レジスタFOCR８３＿１〜８３＿ｎ、及び、アウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎは、それぞれ、内部バス１０を介して図３には図示されないCPU２からアクセス可能に構成される。アウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎは、TCNT４２と同じビット数に設定される。アウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎの出力にはそれぞれ、比較器４９が接続され、TCNT４２の値と比較され、一致が検出されると、対応するアウトプットコンペア出力信号に反映される。
【００９２】
図５には、比較器４９の出力をそのままアウトプットコンペア出力信号に接続する例が示されるが、一致したときにハイにセットされ、またはロウにリセットされ、或いはトグル（反転）され、或いはさらには、複数の比較結果の組合せによって、順序回路（ステートマシン）を動作させ、アウトプットコンペア出力信号を生成しても良い。複数のアウトプットコンペア出力を組合せることにより、PWM（Pulse Width Modulation）波形を生成することができる。
【００９３】
これにより、アウトプットコンペア機能を持つタイマモジュール４を備えるマイクロコンピュータ１において、CPU２は、一致検出のためのデータを、整数形式または浮動小数点形式のいずれか任意の形式で設定することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【００９４】
＜整数形式のインプットキャプチャ機能＞
図３に示したタイマモジュール４とは異なり、インプットキャプチャ整数レジスタIICRを持ち、TCNTと接続してもよい。
【００９５】
図６は、実施形態２に係るマイクロコンピュータのタイマモジュールにおいて、インプットキャプチャ機能を実現するための別の構成例を示すブロック図である。
【００９６】
タイマモジュール４は、入力されるインプットキャプチャ入力信号のそれぞれに対応して、１組乃至複数のインプットキャプチャ固定小数点レジスタIICR７２＿１〜７２＿ｎとインプットキャプチャ浮動小数点レジスタFICR８２＿１〜８２＿ｎを有する。
【００９７】
タイマカウンタ４２は、キャプチャ制御部４４を介してインプットキャプチャ固定小数点レジスタIICR７２＿１〜７２＿ｎに接続され、TCR４３の指定などによって、インプットキャプチャ入力の変化を検出して、タイマカウンタ４２の内容をIICR７２＿１〜７２＿ｎに転送して格納する。さらに、IICR７２＿１〜７２＿ｎに格納された固定小数点（整数）形式のデータは、浮動小数点変換器９１で浮動小数点形式に変換され、対応するインプットキャプチャ浮動小数点レジスタFICR８２＿１〜８２＿ｎに格納される。また合せて、コントロールレジスタTCR４３の所定のステータスフラグが「１」にセットされる。これによって、CPU２へ割り込みを要求することができる。CPU２は、IICR７２＿１〜７２＿ｎまたはFICR８２＿１〜８２＿ｎのいずれか任意の形式で、キャプチャされたデータを読込み、実行するデータ処理において、データ形式の変換をすることなく、利用することができる。
【００９８】
これにより、インプットキャプチャ機能を持つタイマモジュール４を備えるマイクロコンピュータ１において、取り込まれた（キャプチャされた）カウンタ値を、整数形式のまま、または変換された浮動小数点形式で、データ処理装置が実行するデータ処理に利用することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【００９９】
＜浮動小数点形式のアウトプットコンペア機能＞
図３に示したタイマモジュール４とは異なり、浮動小数点形式アウトプットコンペアレジスタFOCRを持ち、FTCNTとの間で、浮動小数点形式で一致検出を行い、アウトプットコンペア出力を生成しても良い。
【０１００】
図７は、実施形態２に係るマイクロコンピュータのタイマモジュールにおいて、アウトプットコンペア機能を実現するための別の構成例を示すブロック図である。
【０１０１】
タイマモジュール４は、出力すべきアウトプットコンペア出力信号のそれぞれに対応して、１組乃至複数組のアウトプットコンペア浮動小数点レジスタFOCR８３＿１〜８３＿ｎとアウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎを有する。アウトプットコンペア浮動小数点レジスタFOCR８３＿１〜８３＿ｎには浮動小数点変換部９１を介してアウトプットコンペア整数レジスタIOCR７３＿１〜７３＿ｎの出力が接続され、IOCR７３＿１〜７３＿ｎの固定小数点データが、浮動小数点データに変換されてFOCR８３＿１〜８３＿ｎに格納される。FOCR８３＿１〜８３＿ｎとFTCNT８１の内容は一致検出４５で比較される。一致が検出されると、コントロールレジスタTCR４３の所定のステータスフラグが「１」にセットされる。これによって、CPU２へ割り込みを要求することができる。同時に、TCR４３の指定などによって、アウトプットコンペア出力の出力を変化させる。
【０１０２】
これにより、アウトプットコンペア機能を持つタイマモジュールを備えるマイクロコンピュータ１において、CPU２は、一致検出のためのデータを、浮動小数点形式で設定することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【０１０３】
＜浮動小数点変換部＞
浮動小数点変換部（データ形式変換器）９１、９２、９３の構成例について説明する。
【０１０４】
図８は、実施形態２に係るマイクロコンピュータのタイマモジュールにおける、固定小数点（整数）データから浮動小数点データへの変換を行う、浮動小数点変換部（データ形式変換器）９２のより詳細なブロック図であり、図９は、逆に、浮動小数点データから固定小数点（整数）データへの変換を行う、浮動小数点変換部（データ形式変換器）９３のより詳細なブロック図である。
【０１０５】
簡単のために、正の数を考え、符号処理を省略している。負数も考える場合は、一旦、正の数にし、以下の処理を行った後、負の数にすることができる。
【０１０６】
図８に示す、固定小数点（整数）から浮動小数点に変換する場合は、最上位ビットから順にスキャンしたとき最初に現れる「1」を検出する。このビット位置の下位から8ビットを仮数部（F）として検出する。また、前記のビット位置に0d127=0111_1111bを加算する。さらに、コントロールレジスタTCRの指数選択ビットとプリスケーラ選択ビットを参照して、指数部（E）を生成する。例えば、0000_0000_0000_0000_0000_0100_0000_0000b=1024dは、S=0、F=1.0b-1b=0b、E=11d+127d=138d=10001010bであり、0_10001001_00000000000000000000000bとすればよい。
【０１０７】
図９に示す、浮動小数点から固定小数点（整数）に変換する場合は、浮動小数点データのフォーマットに従い、指数部検出および仮数部検出を行う。仮数部（F）の上位に「1」を付加して仮数を生成する。指数部（E）から127d=0111_1111bを減算したビット数分の左シフト量を算出する。これと、コントロールレジスタTCR４３内の指数選択ビットとプリスケーラ選択ビットを参照して、シフトを行って、整数データを得る。
【０１０８】
上記のように、浮動小数点変換部（データ形式変換器）９１、９２、９３は、前記浮動小数点データの指数を調整可能に構成される。コントロールレジスタTCR４３は指数選択ビットを持ち、これによって、浮動小数点から整数へ変換するシフト量、および整数から浮動小数点に変換する指数生成を制御する。
【０１０９】
これにより、浮動小数点形式レジスタに格納される値の仮数部のシフト量を調整することができ、データ処理装置が実行するデータ処理における仮数部の調整のためのオーバーヘッドを、減らしまたはなくすことができる。
【０１１０】
具体的には、イベントカウンタなどは回数であるので、自然数のみを考えるから、シフトは必要ない。指数選択ビットはシフトなしの指示をするように設定する。一方、内部クロックによるカウント時は、制御に使用する時間単位に合わせやすいように、指数（シフトビット数）を選択するとよい。簡単のために、2^10=1000と近似すると、例えば、タイマカウンタTCNT４２が1MHzでカウントする場合、1回のカウントは1マイクロ秒である。Eを（十進数で6桁）２進数で20桁小さくすればよい。指数選択ビットは20ビットシフトの指示をするように設定する。これによって、浮動小数点変換部９１は、浮動小数点から整数へ変換する場合のシフトビット数を20小さくする。整数から浮動小数点に変換する場合の指数部を20大きくする。同様に、Eを10桁小さくすることで、約1ミリ秒と考えることができる。シフトビット数を指定、すなわち指数を増減することで、データ処理に適切な時間単位で表現することができ、プログラムを簡単にしたり、プログラム開発を容易にしたりすることができる。タイマのレジスタのビット数は浮動小数点データの表現範囲に対して小さいので、適切な桁を指定できる。
【０１１１】
さらに、タイマカウンタTCNT４２などの整数レジスタが、16ビットである場合、浮動小数点で表現すると指数部は8ビットより小さいから、プリスケーラの選択された桁以下も含めて考えるようにする。例えば、プリスケーラPSC４６の256分周でカウントする場合、プリスケーラPSC４６の8ビットも含めて、24ビットのタイマカウンタと考えて、浮動小数点変換を行うようにする。このため、コントロールレジスタTCR４３のプリスケーラ選択ビットを参照して、シフトするビット数を選択する。具体的には、浮動小数点から整数へ変換する場合のシフトビット数を8小さくする。整数から浮動小数点に変換する場合の指数部を8大きくする。
【０１１２】
また、入力チャネルまたは出力チャネルを複数備えるなどにより、複数の固定小数点形式レジスタ７と浮動小数点形式レジスタ８との間でのデータ形式変換を行う場合には、チャネルごとに独立に前記浮動小数点データの指数を調整することができるように構成することもできる。
【０１１３】
これにより、複数の入力チャネルまたは出力チャネルにおいてそれぞれ独立に、浮動小数点形式レジスタに格納される値の仮数部のシフト量を調整することができる。
【０１１４】
浮動小数点変換部（データ形式変換器）９１、９２、９３によるデータ形式の変換は、１クロックサイクルで実行されるように構成するのが望ましい。対応する固定小数点形式レジスタ７と浮動小数点形式レジスタ８の間で、データが不一致になる期間が、CPU２などのデータ処理装置におけるデータ処理において無視できる程度に小さくする必要がある。例えば、固定小数点形式レジスタ７の値が更新されたことに起因する割り込みをCPU２に発行した後、CPU２が対応する浮動小数点形式レジスタ８をアクセスするとき、実際にアクセスされるまでに、データ形式変換が完了している必要がある。このことは、以下の実施形態において開示する、他の浮動小数点変換部（データ形式変換器）９４、９５によるデータ形式の変換にも、同様に妥当する。
【０１１５】
〔実施形態３〕＜Ａ／Ｄ変換モジュール＞
図１０は、実施形態３に係るマイクロコンピュータのA/D変換モジュール５の構成例を示すブロック図である。
【０１１６】
Ａ／Ｄ変換モジュール５は、A/D変換部５０と、複数の入力チャネルのうちの１個を選択してA/D変換部５０に入力するマルチプレクサ５１と、変換結果整数レジスタIADDR７４＿１〜７４＿ｎ、変換結果浮動小数点レジスタFADDR８４＿１〜８４＿ｎと、基準値レジスタ５３＿１〜５３＿ｎと、浮動小数点変換部９４と、コントロールレジスタADCR５２とを備える。A/D変換部５０は、例えば、抵抗分圧回路５６、サンプルホールド回路S/H５４、及び、差動増幅器５５を含んで構成される。他のA/D変換回路に変更してもよい。変換結果整数レジスタIADDR７４＿１〜７４＿ｎと、変換結果浮動小数点レジスタFADDR８４＿１〜８４＿ｎと、基準値レジスタ５３＿１〜５３＿ｎとは、それぞれ内部バス１０を介して、図１０には図示されないCPU２からアクセス可能に構成される。浮動小数点変換部９４は、固定小数点（整数）データから浮動小数点データへの変換を行う、データ形式変換器である。
【０１１７】
マルチプレクサ５１は、図示はされない制御部のマルチプレクサ選択信号に基づいて、アナログ入力を選択的に、後段のサンプルホールド回路S/H５４に伝達する。サンプルホールド回路S/H５４は、制御部のサンプリング信号に基づいて、上記マルチプレクサから入力されたアナログ信号レベルを保持する。差動増幅器５５は、上記サンプルホールド回路S/H５４に保持されるアナログ信号レベルと、抵抗分圧回路５６からの基準電圧とを比較して、その比較結果を出力する。この比較結果に基づいて入力されたアナログ信号レベルに対応するディジタル値が、変換結果として得られる。変換結果は逐次、マルチプレクサ５１によって選択された入力チャネルに対応する、変換結果整数レジスタIADDR７４＿１〜７４＿ｎに格納される。抵抗分圧回路は、例えば10ビット分解能を有し、アナログ基準電圧とアナロググランドレベル間を、1024個の抵抗で分圧した電圧を生成する。それを制御部および及び変換結果整数レジスタの内容による指定に基づいて出力する。
【０１１８】
A/D変換終了時に、変換結果整数レジスタIADDR７４＿１〜７４＿ｎの内容は、浮動小数点変換部９４によって、浮動小数点データに変換され、変換結果浮動小数点レジスタFADDR８４＿１〜８４＿ｎに格納される。変換結果浮動小数点レジスタFADDR８４＿１〜８４＿ｎに変換結果が格納されたタイミングで、ADCRの変換結果フラグを1にセットして、A/D変換の終了をCPU２に通知できるようにする。CPU２は、変換結果整数レジスタIADDR７４＿１〜７４＿ｎと変換結果浮動小数点レジスタFADDR８４＿１〜８４＿ｎのどちらかを自由にアクセスすることができるので、変換結果を、整数形式のまま、または変換された浮動小数点形式で、データ処理装置が実行するデータ処理に利用することができ、データ変換のためのオーバーヘッドを減らしまたはなくすことができる。
【０１１９】
これにより、複数の入力チャネルを持つＡ／Ｄ変換モジュールを備えるマイクロコンピュータにおいて、複数の入力チャネルから入力されるアナログ情報に基づく変換結果を、それぞれ独立に任意のデータ形式で、データ処理装置が実行するデータ処理に利用することができる。そのため、データ処理装置（CPU２）において、データ形式を入力されたチャネルの仕様に適合させて変換するためのオーバーヘッドを減らしまたはなくすことができる。
【０１２０】
ADCR５２は指数選択ビットを持ち、これによって、整数から浮動小数点に変換する指数生成を制御する。Ａ／Ｄ変換モジュール５は、基準値レジスタ５３を備え、浮動小数点変換部９４において変換結果整数レジスタIADDR７４に保持される値と基準値レジスタ５３に保持される値との差に基づいて、変換結果浮動小数点レジスタFADDR８４へのデータ形式変換を行うことができる。
【０１２１】
A/D変換結果は、符号無しデータとすることもできるし、符号付きデータとすることもできる。例えば、アナロググランドレベルを0、アナログ基準電圧を最大値とした符号無しデータを得、それを浮動小数点に変換してもよい。この場合は、基準値レジスタ５３を0にすればよい。また、アナロググランドレベルとアナログ基準電圧の間の所望の値を基準データとして、基準値レジスタ５３に設定し、これに相当する入力を0とし、これより小さい値を負数、これより大きい値を正数とすることで符号付きデータを得、それを浮動小数点に変換してもよい。
【０１２２】
またさらに、複数の入力チャネルのそれぞれに対応する複数の基準値レジスタ５３＿１〜５３＿ｎを備え、浮動小数点変換部９４は、変換結果整数レジスタIADDR７４＿１〜７４＿ｎに保持される値と対応する基準値レジスタ５３＿１〜５３＿ｎ保持される値との差に基づいて、変換結果浮動小数点レジスタFADDR８４＿１〜８４＿ｎへのデータ形式変換を行うことができる。
【０１２３】
制御レジスタADCR５２の指定によって、入力チャネルと基準値レジスタ、データ変換などが、対応するように選択される。入力される物理変量に応じた浮動小数点データを得られる。
【０１２４】
図１３は、実施形態３に係るマイクロコンピュータのＡ／Ｄ変換モジュール５における、固定小数点（整数）データから浮動小数点データへの変換を行う、データ形式変換器である、浮動小数点変換部９４の一構成例を示す、より詳細なブロック図である。図８に示した浮動小数点変換部（データ形式変換器）９２に加えて、正整数データの入力と、基準値レジスタ５３＿１〜５３＿ｎから入力される基準値との差をとる加算器（減算器）を備え、その結果が、図８の整数データに対応する。図８に示される浮動小数点変換部（データ形式変換器）９２とは異なり、プリスケーラ選択ビットの入力はないが、シフト選択ビットは同様に入力される。他の構成は、図８に示される浮動小数点変換部（データ形式変換器）９２と同様である。
【０１２５】
浮動小数点形式レジスタに格納される値の仮数部のシフト量がシフト選択ビットにより調整され、オフセット量が基準値によって調整されることができる。上述のように、複数の入力チャネルのそれぞれに対応するシフト選択ビットを入力し複数の基準値レジスタ５３＿１〜５３＿ｎを設けることにより、浮動小数点変換部９４は、変換される浮動小数点データのシフト量とオフセット量を、入力チャネルごとに独立に調整可能に構成される。
【０１２６】
〔実施形態４〕＜Ｄ／Ａ変換モジュール＞
図１１は、実施形態４に係るマイクロコンピュータのＤ／Ａ変換モジュール６の構成例を示すブロック図である。
【０１２７】
Ｄ／Ａ変換モジュール６は、D/A変換部６０、デマルチプレクサ６１、D/A変換整数レジスタIDADR７５＿１〜７５＿ｎ、D/A変換浮動小数点レジスタFDADR８５＿１〜８５＿ｎ、基準値レジスタ６３＿１〜６３＿ｎ、浮動小数点変換部９５、及び、コントロールレジスタDACR６２を備える。D/A変換部６０は、例えば、抵抗分圧回路６５と出力バッファ６４によって構成される。抵抗分圧回路６５によって、アナログ基準電圧とアナロググランドレベル間を256分割した電圧が生成され、それが、D/A変換整数レジスタIDADRの保持内容に従って出力される。出力バッファ６４は、抵抗分圧回路６５の出力をアナログ出力端子に伝達する。他のD/A変換回路に変更しても良い。デマルチプレクサ６１は、複数の出力チャネルのうちの１個を選択してD/A変換部６０から出力されるアナログ電圧を出力する。D/A変換整数レジスタIDADR７５＿１〜７５＿ｎと、D/A変換浮動小数点レジスタFDADR８５＿１〜８５＿ｎと、基準値レジスタ６３＿１〜６３＿ｎと、コントロールレジスタDACR６２とは、それぞれ内部バス１０を介して、図１０には図示されないCPU２からアクセス可能に構成される。浮動小数点変換部９５は、浮動小数点データから固定小数点（整数）データへの変換を行う、データ形式変換器である。
【０１２８】
制御レジスタDACR62の指定によって、出力チャネルと基準値レジスタ、データ変換などが、対応するように選択される。出力される物理変量は、浮動小数点データか固定小数点データのどちらで与えても良い。CPU２は、D/A変換整数レジスタIDADR７５＿１〜７５＿ｎとD/A変換浮動小数点レジスタFDADR８５＿１〜８５＿ｎのどちらも自由にアクセスすることができる。そのため、CPU２は、実行するデータ処理における変数の属性と同じデータ形式で、D/A変換の対象データをＤ／Ａ変換モジュール６に書き込むことができ、データ形式を変換するためのオーバーヘッドを減らしまたはなくすことができる。
【０１２９】
これにより、複数の出力チャネルを持つＤ／Ａ変換モジュールを備えるマイクロコンピュータにおいて、複数の出力チャネルから出力されるアナログ信号を生成するためのデータを、それぞれ独立に任意のデータ形式で、データ処理装置（CPU２）が実行するデータ処理から出力することができる。そのため、データ処理装置において、出力すべきチャネルの仕様に適合させるためのデータ変換のオーバーヘッドを減らしまたはなくすことができる。
【０１３０】
DACR６２は指数選択ビットを持ち、これによって、浮動小数点から整数に変換する指数生成を制御する。Ｄ／Ａ変換モジュール６は、基準値レジスタ６３を備え、浮動小数点変換部９５において、D/A変換整数レジスタIDADR７５に保持される値と基準値レジスタ６３に保持される値との差に基づいて、D/A変換浮動小数点レジスタFDADR８５からのデータ形式変換を行うことができる。
【０１３１】
D/A変換は、符号無しデータとすることもできるし、符号付きデータとすることもできる。例えば、基準値レジスタ６３を0に設定し、正の数のFDADR８５に対し、8ビットの整数データとしての変換を行い、IDADR７５に格納して、これに基づき、アナロググランドレベルを0、アナログ基準電圧を最大値（255d）とした出力を行うことができる。また、アナロググランドレベルとアナログ基準電圧の間の所望の値を基準データとして、これに相当する整数データを基準値レジスタ６３に設定し、これに相当する入力を0とし、これより小さい値を負数、これより大きい値を正数とすることもできる。FDADR８５の内容を整数データに変換し、これに基準値レジスタの内容を加算して、8ビットの整数データとしての変換を行い、IDADR７５に格納する。
【０１３２】
またさらに、複数の出力チャネルのそれぞれに対応する複数の基準値レジスタ６３＿１〜６３＿ｎを備え、浮動小数点変換部９５は、D/A変換整数レジスタIDADR７５＿１〜７５＿ｎに保持される値と基準値レジスタ６３＿１〜６３＿ｎに保持される値との差に基づいて、D/A変換浮動小数点レジスタFDADR８５＿１〜８５＿ｎからのデータ形式変換を行うことができる。
【０１３３】
図１４は、実施形態４に係るマイクロコンピュータのＤ／Ａ変換モジュールにおける、浮動小数点データから固定小数点（整数）データへの変換を行う、データ形式変換器である、浮動小数点変換部９５のより詳細なブロック図である。図９に示した浮動小数点変換部（データ形式変換器）９３に加えて、整数データの出力と、基準値レジスタ６３＿１〜６３＿ｎから入力される基準値との和をとる加算器を備え、その結果が、変換結果の、正整数データとして出力される。図９に示される浮動小数点変換部（データ形式変換器）９３とは異なり、プリスケーラ選択ビットの入力はないが、シフト選択ビットは同様に入力される。他の構成は、図９に示される浮動小数点変換部（データ形式変換器）９３と同様である。
【０１３４】
浮動小数点形式レジスタに格納される値の仮数部のシフト量がシフト選択ビットにより調整され、オフセット量が基準値によって調整されることができる。上述のように、複数の入力チャネルのそれぞれに対応するシフト選択ビットを入力し複数の基準値レジスタ６３＿１〜６３＿ｎを設けることにより、浮動小数点変換部９５は、変換される浮動小数点データのシフト量とオフセット量を、出力チャネルごとに独立に調整可能に構成される。
【０１３５】
図１２は、実施形態４に係るマイクロコンピュータのＤ／Ａ変換モジュールの別の構成例を示すブロック図である。図１１に示したＤ／Ａ変換モジュールとは異なり、D/A変換部６０は、ｎ個の抵抗分圧回路６５＿１〜６５＿ｎとｎ個の出力バッファ６４＿１〜６４＿ｎとを含んで構成され、D/A変換結果はそれぞれｎ個のアナログ出力チャネルに出力される。1つのD/A変換整数レジスタIDADRに対して、ｎ個のD/A変換出力を行うことができる。
【０１３６】
出力チャネル数ｎは、任意に定めることができる。例えば、ｎ＝２の場合、IDADRを16ビットとし、上位/下位のそれぞれ8ビットで、1つずつのD/A変換出力（６４＿１、６４＿２）を行うようにする。上位を粗調用と下位を微調整として、外部で組合せて制御を行うようにする。組合せる例としては、2つのD/A出力を、それぞれ抵抗を介して加算して、オペアンプに入力するなどすればよい。オペアンプの出力を所望の制御に使用する。
【０１３７】
本例では、1つの制御に対して、1つの浮動小数点データを用意すればよいから、プログラムを簡略化することができる。また、2つのデータをライトする場合には、2回の出力変化が生じてしまい、データ設定前後のいずれよりも大きいまたは小さい出力を行うことも発生しうることに対し、本例では、1回のライトによって、同時に変換するから、1回の出力変化しか生じず、不所望の出力変化を生じることがない。
【０１３８】
〔実施形態５〕＜一実施の形態のマイクロコンピュータを使った制御システム＞
図１５は、一実施の形態のマイクロコンピュータを使った制御システムの構成例を示すブロック図である。
【０１３９】
本実施形態５は、マイクロコンピュータ１、制御対象１５、及びドライバ１６、１７やセンサ１８を含んだシステムであり、マイクロコンピュータ１が、モータやエンジンなどの制御対象１５の制御を行うものである。
【０１４０】
マイクロコンピュータ１は、図２に示したマイクロコンピュータ１と同様であってよく、CPU２、ROM１３、RAM１２、割込みコントローラINT１１、DMAC１４、タイマモジュール４、A/D変換モジュール５、及びD/A変換モジュール６を含んで構成される。CPU２は、浮動小数点演算機能（FPU）２１を有する。各機能ブロックは、内部バス１０によって相互に接続される。タイマモジュール４は、イベントカウント入力、インプットキャプチャ入力、アウトプットコンペア出力などのタイマ入出力を行うタイマ制御部４１を備える。A/D変換モジュール５は、A/D変換部５０とマルチプレクサ５１を備え、複数の入力チャネルからのアナログ入力を行う。D/A変換モジュール６は、D/A変換部６０とデマルチプレクサ６１を備え、複数の出力チャネルからのアナログ出力を行う。
【０１４１】
タイマモジュール４を使用して、制御対象１５を駆動するためのパルス信号を、パルス信号用ドライバ１６を介して出力し、また、D/A変換モジュール６のアナログ出力を、アナログ信号用ドライバ１７を介して出力して、制御対象１５の制御を行う。すなわち、出力の駆動データを増減することで、駆動量を増減させる。また2つのD/A出力の組合せもドライバ１７で行うことができる。
【０１４２】
制御対象１５の状態は、センサ１８によって検出されるなどして、マイクロコンピュータ１に入力される。モータの位置などは、位相係数動作で使用してタイマモジュール４から入力され、電流値などのアナログ量はセンサ１８を介してA/D変換モジュール５から入力される。マイクロコンピュータ１のROM１３は、変数が浮動小数点で表現された制御プログラムを格納している。マイクロコンピュータ１は、この制御プログラムを実行して、これらのタイマモジュール４やA/D変換モジュール５の入力値をリードして、所要のアルゴリズムに従った処理を行い、制御のための出力データを生成して、タイマモジュール４やD/A変換モジュール６へライトする。リードからライトまでを浮動小数点データで、データ形式変換のオーバーヘッドなく処理することができる。また、適切な指数を選択することで処理を簡略化したり、プログラム作成を容易にしたりすることができる。
【０１４３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１４４】
例えば、タイマモジュール４の構成は種々変更が可能である。タイマカウンタTCNT４３は、プリスケーラに相当するカウントも含めて、24ビットなどとすることができる。アウトプットコンペア整数レジスタIOCRも同様に24ビットとするとよい。また、タイマモジュール４における、浮動小数点データ間の一致検出４５は、仮数に相当する9ビットとし、指数に対応するタイマカウンタTCNTの所定のビットを選択して比較するように構成することができる。TCNTの上位は全ビット0であることを検出し、下位は全ビット1であることを検出する（下位ビットは全ビット0であることを検出してもよい）こともできる。
【符号の説明】
【０１４５】
１  マイクロコンピュータ
２  ＣＰＵ（データ処理装置）
２１  ＦＰＵ
３  周辺モジュール
３１  機能部
４  タイマモジュール
４１  タイマカウンタ比較制御部
４２  タイマカウンタ（ＴＣＮＴ）
４３  コントロールレジスタ（ＴＣＲ）
４４  キャプチャ制御部
４５  一致検出部
４６  プリスケーラ
４７  レジスタ（フリップフロップ）
４８  セレクタ
４９  比較器
５  Ａ／Ｄ変換モジュール
５０  Ａ／Ｄ変換部
５１  マルチプレクサ
５２  コントロールレジスタ（ＡＤＣＲ）
５３  基準値レジスタ
５４  サンプルホールド回路（Ｓ／Ｈ）
５５  差動増幅器
５６  抵抗分圧回路
６  Ｄ／Ａ変換モジュール
６０  Ｄ／Ａ変換部
６１  デマルチプレクサ
６２  コントロールレジスタ（ＤＡＣＲ）
６３  基準値レジスタ
６４  出力バッファ
６５  抵抗分圧回路
７  固定小数点（整数）形式レジスタ
７２  インプットキャプチャ整数レジスタ（ＩＩＣＲ）
７３  アウトプットコンペア整数レジスタ（ＩＯＣＲ）
７４  変換結果整数レジスタ（ＩＡＤＤＲ）
７５  Ｄ／Ａ変換整数レジスタ（ＩＤＡＤＲ）
８  浮動小数点形式レジスタ
８１  タイマカウンタ浮動小数点レジスタ（ＦＴＣＮＴ）
８２  インプットキャプチャ浮動小数点レジスタ（ＦＩＣＲ）
８３  アウトプットコンペア浮動小数点レジスタ（ＦＯＣＲ）
８４  変換結果浮動小数点レジスタ（ＦＡＤＤＲ）
８５  Ｄ／Ａ変換浮動小数点レジスタ（ＦＤＡＤＲ）
９  データ形式変換器
９１  タイマモジュールの浮動小数点変換部
９２  タイマモジュールの浮動小数点変換部（固定小数点（整数）データから浮動小数点データへの変換）
９３  タイマモジュールの浮動小数点変換部（浮動小数点データから固定小数点（整数）データへの変換）
９４  Ａ／Ｄ変換モジュールの浮動小数点変換部（固定小数点（整数）データから浮動小数点データへの変換）
９５  Ｄ／Ａ変換モジュールの浮動小数点変換部（浮動小数点データから固定小数点（整数）データへの変換）
１０  内部バス
１１  割込みコントローラ（ＩＮＴ）
１２  ＲＡＭ
１３  ＲＯＭ
１４  ＤＭＡＣ
１５  制御対象
１６  パルス信号用ドライバ
１７  アナログ信号用ドライバ
１８  センサ
【図１】
2014222443.tif 000003
【図２】
2014222443.tif 000004
【図３】
2014222443.tif 000005
【図４】
2014222443.tif 000006
【図５】
2014222443.tif 000007
【図６】
2014222443.tif 000008
【図７】
2014222443.tif 000009
【図８】
2014222443.tif 000010
【図９】
2014222443.tif 000011
【図１０】
2014222443.tif 000012
【図１１】
2014222443.tif 000013
【図１２】
2014222443.tif 000014
【図１３】
2014222443.tif 000015
【図１４】
2014222443.tif 000016
【図１５】
2014222443.tif 000017