(57)【要約】【課題】ホストＣＰＵ１がシリアルＥＥＰＲＯＭ５のデータ書込みの完了を容易に知ることが出きるようにする。【解決手段】所定時間毎にステータスレジスタの内容読取要求を示すステータスリードコマンドを自動発行するインストラクション生成部１２と、ステータスリードコマンドに基づき読込まれたステータスレジスタの内容を格納すると共に、ホストＣＰＵ１からアクセス可能に設けられたテータスストアレジスタ１６とを設ける。そして、ホストＣＰＵ１がシリアルＥＥＰＲＯＭ５に直接ポーリングすることなくテータスストアレジスタ１６の内容を知ることでシリアルＥＥＰＲＯＭ５がデータ書込みを完了したか否かを知ることが出きるようにする。【選択図】　　　図２
2004102490.tif 000002
【特許請求の範囲】
【請求項１】
ホストＣＰＵからの命令により、シリアルＥＥＰＲＯＭにアクセスしてメモリセルやステータスレジスタに対して読出・書込みが行えるようにするシリアルＥＥＰＲＯＭインタフェース回路において、
所定時間毎に前記ステータスレジスタの内容読取要求を示すステータスリードコマンドを自動発行するインストラクション生成部と、
前記ステータスリードコマンドに基づき読込まれた前記ステータスレジスタの内容を格納すると共に、前記ホストＣＰＵからアクセス可能に設けられたステータスストアレジスタとを有することを特徴とするシリアルＥＥＰＲＯＭインタフェース回路。
【請求項２】
前記インストラクション生成部で生成する前記ステータスリードコマンドの生成時間間隔が前記ホストＣＰＵから指定できるように設けられたコマンド発行時間間隔設定レジスタと、
該コマンド発行時間間隔設定レジスタに設定されたコマンド生成時間を計時して、その時間になると前記インストラクション生成部に前記ステータスリードコマンドを生成させるタイマ部とを有していることを特徴とする請求項１記載のシリアルＥＥＰＲＯＭインタフェース回路。
【請求項３】
前記シリアルＥＥＰＲＯＭでデータの書込みが完了したことを示す内容が前記ステータスストアレジスタに格納させた際に、その旨を前記ホストＣＰＵに割込み処理を行って知らせる割込生成部を有することを特徴とする請求項１又は２記載のシリアルＥＥＰＲＯＭインタフェース回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＰＩ（Ｓｉｒｉａｌ　Ｐｅｒｉｐｈｅｒａｉ　Ｉｎｔｅｒｆａｃｅ）方式のシリアルＥＥＰＲＯＭにおけるシリアルＥＥＰＲＯＭインタフェース回路に関する。
【０００２】
【従来の技術】
ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ　ｅｒａｓａｂｌｅ　ｐｒｏｇｒａｍｍａｂｌｅ　ＲＯＭ：電気的消去書込み可能型ＲＯＭ）は、書込みも消去も電気的に行うことのできる不揮発性メモリであり、データのバックアップなどに幅広く使用されている。
【０００３】
このＥＥＰＲＯＭには、データをパラレルに入出力するパラレル入出力型のものと、シリアルに入出力するシリアル入出力型のものとがあるが、シングルチップマイクロコンピュータなどに接続する場合には、インタフェース負担の少ないシリアル入出力型のもの（シリアルＥＥＰＲＯＭ）が用いられることが多い。
【０００４】
シリアルＥＥＰＲＯＭのインタフェースには、Ｉ２Ｃ（ＩＩＣ：Ｉｎｔｅｒ　ＩＣ　Ｂｕｓ）、ＭｉｃｒｏｗｉｒｅＢｕｓ、ＳＰＩ方式が知られており、インタフェースの用途はシリアルＥＥＰＲＯＭにとどまらず広く活用されている（特許文献１を参照）。
【０００５】
ＳＰＩ方式のシリアルＥＥＰＲＯＭにおけるメモリデータの読出・書込みは、インストラクション（命令）、アドレスを順次送信し、続いてデータを送受信することで行われる。
【０００６】
また、メモリデータの読出・書込みとは別に、シリアルＥＥＰＲＯＭのステータスレジスタを読出・書込みすることが可能であり、この場合はインストラクションを送信し、続いてデータを送受信することで行われる。
【０００７】
【特許文献１】
特開２００１−２９０７５５号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、シリアルＥＥＰＲＯＭにおいては、データ書込みの完了は、ホストＣＰＵからのデータの送信完了と同時でないため、ホストＣＰＵはデータ書込みが完了したことをシリアルＥＥＰＲＯＭにポーリングして知る必要があり、煩雑な制御が必要となる問題があった。
【０００９】
即ち、シリアルＥＥＰＲＯＭにおいては、メモリデータのライトコマンドを発行した後、実際にデータ書込みが完了するまでに数ｍｓ〜数十ｍｓの時間を必要とする。
【００１０】
従って、この間はホストＣＰＵ（当該シリアルＥＥＰＲＯＭが装着された装置のＣＰＵ）は他の処理を行うことになり、データ書込みが完了した頃を見計らってシリアルＥＥＰＲＯＭのステータスレジスタをポーリングして、データ書込みが完了したか否かを確認する必要がある。
【００１１】
ステータスレジスタのポーリングを行うには、その都度ステータスレジスタリードコマンドを発行する必要があり、このため煩雑な制御が必要になってしまう。
【００１２】
そこで、本発明は、ホストＣＰＵが簡単にデータ書込みの完了を知ることが出きるようにしたシリアルＥＥＰＲＯＭインタフェース回路を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記課題を解決するため、請求項１にかかる発明は、ホストＣＰＵからの命令により、シリアルＥＥＰＲＯＭにアクセスしてメモリセルやステータスレジスタに対して読出・書込みが行えるようにするシリアルＥＥＰＲＯＭインタフェース回路において、所定時間毎にステータスレジスタの内容読取要求を示すステータスリードコマンドを自動発行するインストラクション生成部と、ステータスリードコマンドに基づき読込まれたステータスレジスタの内容を格納すると共に、ホストＣＰＵからアクセス可能に設けられたステータスストアレジスタとを有して、ホストＣＰＵがシリアルＥＥＰＲＯＭに直接ポーリングすることなくデータ書込みが完了したか知ることが出きるようにしたことを特徴とする。
【００１４】
請求項２にかかる発明は、インストラクション生成部で生成するステータスリードコマンドの生成時間間隔がホストＣＰＵから指定できるように設けられたコマンド発行時間間隔設定レジスタと、該コマンド発行時間間隔設定レジスタに設定されたコマンド生成時間を計時して、その時間になるとインストラクション生成部にステータスリードコマンドを生成させるタイマ部とを有していることを特徴とする。
【００１５】
請求項３にかかる発明は、シリアルＥＥＰＲＯＭでデータの書込みが完了したことを示す内容がステータスストアレジスタに格納させた際に、その旨をホストＣＰＵに割込み処理を行って知らせる割込生成部を有することを特徴とする。
【００１６】
【発明の実施の形態】
本発明の実施の形態を図を参照して説明する。図１は本発明に係るシリアルＥＥＰＲＯＭインタフェース回路を備えたファクシミリ装置等の電子装置の要部を示すブロック図で、ホストＣＰＵ１、第１メモリ２、第２メモリ３、シリアルＥＥＰＲＯＭインタフェース回路４を備え、これらがシステムバス６を介して接続されている。また、シリアルＥＥＰＲＯＭインタフェース回路４には、シリアルＥＥＰＲＯＭ５が接続されている。
【００１７】
ホストＣＰＵ１は、ランダムアクセスメモリからなる第１メモリ２に記憶されているプログラムに従い、同じくランダムアクセスメモリからなる第２メモリ３をワークエリア等として使用しながら装置全体を制御するものである。
【００１８】
そして、ホストＣＰＵ１はシリアルＥＥＰＲＯＭインタフェース回路４を介してシリアルＥＥＯＲＯＭ５とデータの送受信を行う。このシリアルＥＥＰＲＯＭ５は、電気的に読出・書込みが可能な不揮発性メモリから形成されて、バックアップが必要なデータ等のホストＣＰＵ１から送られてきたデータを格納する。
【００１９】
図２は第１の本実施の形態の説明に適用されるＳＰＩ方式のシリアルＥＥＰＲＯＭインタフェース回路４のブロック図である。
【００２０】
当該シリアルＥＥＰＲＯＭインタフェース回路４は、システムバス６に接続されて当該システムバス６を介してホストＣＰＵ１とシリアルＥＥＰＲＯＭ５の図示しないメモリセルや図示しないステータスレジスタとの間で送受信が行えるようにするもので、ホストインタフェース部１１、インストラクション生成部１２、送信アドレスバッファ部１３、送信データ生成部１４、受信データバッファ部１５、ステータスストアレジスタ１６、クロック生成部１７、送信データ制御部１８、受信データ制御部１９等を有している。
【００２１】
そして、データの書込みを行う場合には、先ずホストインタフェース部１１がホストＣＰＵ１からのメモリ書込み要求をインストラクション生成部１２に、アドレスを送信アドレスバッファ部１３に、データを送信データ生成部１４にそれぞれ送る。
【００２２】
送信アドレスバッファ部１３は、ホストインタフェース部１１からのアドレスを格納して送信データ制御部１８に送る。
【００２３】
送信データ生成部１４は、ホストインタフェース部１１からのデータを格納して送信データ制御部１８に送る。
【００２４】
インストラクション生成部１２は、メモリ読出・書込み要求に応じてインストラクションコードを生成し、これをクロック生成部１７及び送信データ制御部１８に送る。
【００２５】
そして、クロック生成部１７からシリアルデータクロックがシリアルＥＥＰＲＯＭ５及び送信データ制御部１８に出力されると共にチップセレクトがアサートされて、送信データ制御部１８は送信データ生成部１４から受取ったデータ、インストラクション生成部１２からのインストラクション、送信アドレスをシリアルデータに変換してシリアルＥＥＰＲＯＭ５に出力する。
【００２６】
これによりシリアルＥＥＰＲＯＭ５の該当するアドレスにデータが書込まれる。
【００２７】
一方、データの読出しを行う場合には、先ずホストインタフェース部１１が、ホストＣＰＵ１からのメモリ読出し要求をインストラクション生成部１２に、アドレスを送信アドレスバッファ部１３に送る。
【００２８】
送信アドレスバッファ部１３は、ホストインタフェース部１１からのアドレスを格納し送信データ制御部１８に送る。
【００２９】
インストラクション生成部１２は、メモリ読出・読出し要求に応じたインストラクションコードを生成し、これをクロック生成部１７及び送信データ制御部１８に送ると共にチップセレクトをアサートする。
【００３０】
これにより送信データ制御部１８は、インストラクションコード及びアドレスをシリアルデータに変換してシリアルＥＥＰＲＯＭ５に出力する。
【００３１】
シリアルＥＥＰＲＯＭ５からは、該当するアドレスのデータがシリアルデータとして受信データ制御部１９に取込まれ、ここでパラレルデータに変換されて受信データバッファ部１５に格納される。
【００３２】
この受信データバッファ部１５に格納されたデータはホストインタフェース部１１を介してホストＣＰＵ１に送られてデータの読取が完了する。
【００３３】
次に、ホストＣＰＵ１がシリアルＥＥＰＲＯＭ５におけるステータスレジスタの内容を読取る場合について説明する。
【００３４】
本発明では、シリアルＥＥＰＲＯＭ５におけるステータスレジスタの内容が所定時間毎に読出されてシリアルＥＥＰＲＯＭインタフェース回路４のステータスストアレジスタ１６に格納される構成となっている。
【００３５】
従って、ホストＣＰＵ１からシリアルＥＥＰＲＯＭ５におけるステータスレジスタの内容の読出要求（ステータスリードコマンドという）がなされた場合には、当該ステータスストアレジスタ１６の内容が返されるようになる。
【００３６】
所定時間毎に行うステータスストアレジスタ１６の内容更新は、以下のようにして行われる。即ち、インストラクション生成部１２は所定時間毎にステータスリードコマンドを示すインストラクションコードを自動生成し、これを受けてデータの読取手順と同様に送信データ制御部１８がこのインストラクションデータ等をシリアルデータに変換してシリアルＥＥＰＲＯＭ５に送信する。
【００３７】
このステータスリードコマンドを示すインストラクションコードを受取ったシリアルＥＥＰＲＯＭ５はステータスレジスタの内容を受信データ制御部１９に送り、ここでデータ変換が行われて受信データバッファ部１５に格納される。
【００３８】
受信データバッファ部１５に格納されたデータのうちステータスレジスタの内容がステータスストアレジスタ１６に格納される。
【００３９】
このようにステータスリードコマンドを自動生成して、最新のステータスレジスタの内容がステータスストアレジスタ１６に格納されるようにしたので、ホストＣＰＵ１はシリアルＥＥＰＲＯＭ５に直接ポーリングするような煩雑な制御を行うことなくシリアルＥＥＰＲＯＭ５のステータスを知ることが可能になり、制御負荷が軽減できると共にそれを制御するプログラムも簡単になる。
【００４０】
次に、本発明の第２の実施の形態を図を参照して説明する。なお、上述した第１の実施の形態と同一構成に関して同一符号を用い説明を適宜省略する。
【００４１】
先に実施の形態においては、一律に設定された時間間隔でインストラクション生成部１２がステータスリードコマンドに対応するインストラクションコードを自動生成し、このインストラクションコードに従いステータスレジスタの内容がステータスストアレジスタ１６に格納されるようにした。
【００４２】
これによりホストＣＰＵ１は、ステータスレジスタに直接ポーリングしなくてもステータスストアレジスタ１６の内容を知ればシリアルＥＥＰＲＯＭ５のステータスが知ることができるようになり制御負荷の軽減等が可能になった。
【００４３】
しかし、電子機器には複数種類のシリアルＥＥＰＲＯＭ５が用いられたり、また同一種類のシリアルＥＥＰＲＯＭ５であっても書込むデータ量に応じて書込み時間が違ってくるため、一律に設定された時間間隔でインストラクション生成部１２がステータスリードコマンドを示すインストラクションコードを自動生成してステータスレジスタの内容をステータスストアレジスタ１６に格納するようにしても、書込み完了のタイミングが合わなかったりしてインストラクションコードの生成が無駄になってしまうことが予想される。
【００４４】
そこで、本実施の形態では、複数のシリアルＥＥＰＲＯＭ５の書込み完了時間がそれぞれ異なっているような場合であっても、効率的にステータスレジスタの内容をステータスストアレジスタ１６に格納できるようにしたものである。
【００４５】
このため、本実施の形態では図３に示すように、図２に示す構成に対して、コマンド発行間隔設定レジスタ２０及びタイマ部２１を追設している。
【００４６】
このコマンド発行間隔設定レジスタ２０は、ホストインタフェース部１１を介しホストＣＰＵ１からアクセスされステータスレジスタリードコマンドの発行間隔を保持し、タイマ部２１は、コマンド発行間隔設定レジスタ２０の設定値に応じたタイマ値のカウントアップして、その時間になるとステータスリードコマンドをインストラクション生成部１２に出力する。
【００４７】
これにより、インストラクション生成部１２は先に述べた手順で、ステータスリードコマンドを示すインストラクションコードを生成して、ステータスレジスタの内容がステータスストアレジスタ１６に格納されるようになっている。
【００４８】
次に、本発明の第３の実施の形態を図を参照して説明する。なお、上述した第１及び第２の実施の形態と同一構成に関して同一符号を用い説明を適宜省略する。
【００４９】
これまでの実施の形態においては、ステータスレジスタの内容を知るためにホストＣＰＵ１がホストインタフェース部１１にその要求を出力して、ステータスストアレジスタ１６の内容を返す構成であった。
【００５０】
このためシリアルＥＥＰＲＯＭ５が書込みを完了したか否かは、少なくともホストＣＰＵ１がホストインタフェース部１１にその要求を出力しなければ知ることができなかった。
【００５１】
これに対して、本実施の形態では、図４に示すように割込生成部２２を設けて、シリアルＥＥＰＲＯＭ５が書込みを完了した際には、ホストインタフェース部１１からホストＣＰＵ１にその旨を知らせるようにしたものである。
【００５２】
なお、図４は図２に示す構成に対して割込生成部２２を追設した構成であるが、図３に示す構成に割込生成部２２を追設した構成としても良いことは言うまでもない。
【００５３】
この割込生成部２２は、ステータスストアレジスタ１６にシリアルＥＥＰＲＯＭ５で書込みが完了したことを示すレディビットがアサートされるとホストＣＰＵ１に対し割込要求を発行する。
【００５４】
ホストＣＰＵ１は、このような割込要求があるとその要求に応えることにより、シリアルＥＥＰＲＯＭ５にポーリングしなくても当該シリアルＥＥＰＲＯＭ５のステータスを知ることが可能になる。
【００５５】
【発明の効果】
以上説明したように、請求項１に係る発明によれば、ステータスリードコマンドを自動発行するため、ホストＣＰＵは煩雑な制御を必要としなくなり制御負荷が軽減できる。
【００５６】
請求項２にかかる発明によれば、ステータスリードコマンドの発行間隔を設定できるため、シリアルＥＥＰＲＯＭの書込み完了時間が、デバイス毎に異なっていても、デバイスに応じ書込みサイクルの完了を効率的に知ることかできるようになる。
【００５７】
請求項３にかかる発明によれば、ホストＣＰＵ、割込みによってシリアルＥＥＰＲＯＭが書込を完了したことを知ることが出きるので、効率的な処理が行えるようになる。
【図面の簡単な説明】
【図１】本発明に係るシリアルＥＥＰＲＯＭインタフェース回路を備えたファクシミリ装置等の電子装置の要部を示すブロック図である。
【図２】第１の実施の形態の説明に適用されるシリアルＥＥＰＲＯＭインタフェース回路のブロック図である。
【図３】第２の実施の形態の説明に適用されるシリアルＥＥＰＲＯＭインタフェース回路のブロック図である。
【図４】第３の実施の形態の説明に適用されるシリアルＥＥＰＲＯＭインタフェース回路のブロック図である。
【符号の説明】
１　ホストＣＰＵ
４　シリアルＥＥＰＲＯＭインタフェース回路
５　シリアルＥＥＯＲＯＭ
１１　ホストインタフェース部
１２　インストラクション生成部
１３　送信アドレスバッファ部
１４　送信データ生成部
１５　受信データバッファ部
１６　ステータスストアレジスタ
１７　クロック生成部
１８　送信データ制御部
１９　受信データ制御部
２０　コマンド発行間隔設定レジスタ
２１　タイマ部
２２　割込生成部
【図１】
2004102490.tif 000003
【図２】
2004102490.tif 000004
【図３】
2004102490.tif 000005
【図４】
2004102490.tif 000006