(57)【要約】【課題】ベンダによってリードコマンドが異なる複数系統のシリアルフラッシュメモリに対応可能な制御装置等を提供する。【解決手段】ブートローダが記録されたシリアルフラッシュメモリＭに対するリードアクセスを制御するＣＰＵ１１と、ブート時においてシリアルフラッシュメモリＭからブートローダを読み出すためのリードコマンドを複数記憶するマスクＲＯＭ１３と、シリアルフラッシュメモリＭと接続されるシリアルインターフェース１６と、シリアルインターフェース１６のシリアルデータ入力ポートを「正」または「負」のいずれかに論理固定する抵抗器３０と、を備え、ＣＰＵ１１は、シリアルデータ入力ポートの論理に応じて、マスクＲＯＭ１３に記憶されている複数のリードコマンドの中から１のリードコマンドを決定し、当該リードコマンドを用いてシリアルフラッシュメモリＭからブートローダを読み出す。【選択図】図１
2008262444.tif 000002
【特許請求の範囲】
【請求項１】
ブートローダが記録されたシリアルフラッシュメモリに対するリードアクセスを制御するＣＰＵと、
ブート時において前記シリアルフラッシュメモリから前記ブートローダを読み出すためのリードコマンドを複数記憶するＲＯＭと、
前記シリアルフラッシュメモリと接続されるシリアルインターフェースと、
前記シリアルインターフェースのシリアルデータ入力ポートを「正」または「負」のいずれかに論理固定する抵抗器と、を備え、
前記ＣＰＵは、前記シリアルデータ入力ポートの論理に応じて、前記ＲＯＭに記憶されている前記複数のリードコマンドの中から１のリードコマンドを決定し、当該リードコマンドを用いて前記シリアルフラッシュメモリから前記ブートローダを読み出すことを特徴とする制御装置。
【請求項２】
前記ＣＰＵは、決定した前記１のリードコマンドを、取得した前記シリアルデータ入力ポートの論理に応じた送信パターンで送信することにより、前記ブートローダを読み出すことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記ＣＰＵは、リセット解除をトリガとして前記シリアルデータ入力ポートの論理を取得することを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記抵抗器は、複数備えられ、
前記ＣＰＵは、前記複数の抵抗器に基づく前記シリアルデータ入力ポートの論理の組み合わせに応じて、前記１のリードコマンドを決定することを特徴とする請求項１ないし３のいずれか１項に記載の制御装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の制御装置と、前記シリアルフラッシュメモリとを、搭載したことを特徴とするプリンタ。
【請求項６】
ブートローダが記録されたシリアルフラッシュメモリに対するリードアクセスを制御するＣＰＵと、
ブート時において前記シリアルフラッシュメモリから前記ブートローダを読み出すためのリードコマンドを複数記憶するＲＯＭと、
前記シリアルフラッシュメモリと接続されるシリアルインターフェースと、
前記シリアルインターフェースのシリアルデータ入力ポートを「正」または「負」のいずれかに論理固定する抵抗器と、を備えた制御装置の前記シリアルフラッシュメモリに対するリードアクセス方法であって、
前記ＣＰＵが、
前記シリアルデータ入力ポートの論理を取得するステップ、
取得した前記シリアルデータ入力ポートの論理に応じて、前記ＲＯＭに記憶されている前記複数のリードコマンドの中から１のリードコマンドを決定するステップ、
決定した前記リードコマンドを用いて前記シリアルフラッシュメモリから前記ブートローダを読み出すステップ、を実行することを特徴とするリードアクセス方法。
【請求項７】
コンピュータに、請求項６に記載のリードアクセス方法における各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ブートローダが記録されたシリアルフラッシュメモリからブートローダを読み出してブート処理を行う制御装置、プリンタ、リードアクセス方法およびプログラムに関する。
【背景技術】
【０００２】
シリアルフラッシュメモリは、近年高集積化が進んでおり、従来のフラッシュＲＯＭに比べて、安価且つパッケージサイズが小さいといった実装面でのメリットが大きいため、注目を集めている。その用途の一つとして、シリアルフラッシュメモリを、起動時の起動プログラムであるブートローダを記憶させておくためのブートデバイスとして用いる方法が提案されている（例えば、特許文献１）。
【０００３】
ところで、現在このブート時におけるリードコマンドは、シリアルフラッシュメモリベンダによって２系統に分かれている。このため、シリアルフラッシュメモリを用いて電子デバイスを製造する製造メーカでは、いずれの系統のシリアルフラッシュメモリを採用するかによって、リードコマンドを使い分けていた。
【特許文献１】特表０３−０６５２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、シリアルフラッシュメモリによってリードコマンドを使い分けるとなると、設計コストが嵩み現実的ではない。したがって実際には、同じ系統のシリアルフラッシュメモリの中から部品選定をせざるを得なかった。
【０００５】
本発明は、上記の問題点に鑑み、ベンダによってリードコマンドが異なる複数系統のシリアルフラッシュメモリに対応可能な制御装置、プリンタ、リードアクセス方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の制御装置は、ブートローダが記録されたシリアルフラッシュメモリに対するリードアクセスを制御するＣＰＵと、ブート時においてシリアルフラッシュメモリからブートローダを読み出すためのリードコマンドを複数記憶するＲＯＭと、シリアルフラッシュメモリと接続されるシリアルインターフェースと、シリアルインターフェースのシリアルデータ入力ポートを「正」または「負」のいずれかに論理固定する抵抗器と、を備え、ＣＰＵは、シリアルデータ入力ポートの論理に応じて、ＲＯＭに記憶されている複数のリードコマンドの中から１のリードコマンドを決定し、当該リードコマンドを用いてシリアルフラッシュメモリからブートローダを読み出すことを特徴とする。
【０００７】
本発明のリードアクセス方法は、ブートローダが記録されたシリアルフラッシュメモリに対するリードアクセスを制御するＣＰＵと、ブート時においてシリアルフラッシュメモリからブートローダを読み出すためのリードコマンドを複数記憶するＲＯＭと、シリアルフラッシュメモリと接続されるシリアルインターフェースと、シリアルインターフェースのシリアルデータ入力ポートを「正」または「負」のいずれかに論理固定する抵抗器と、を備えた制御装置のシリアルフラッシュメモリに対するリードアクセス方法であって、ＣＰＵが、シリアルデータ入力ポートの論理を取得するステップ、取得したシリアルデータ入力ポートの論理に応じて、ＲＯＭに記憶されている複数のリードコマンドの中から１のリードコマンドを決定するステップ、決定したリードコマンドを用いてシリアルフラッシュメモリからブートローダを読み出すステップ、を実行することを特徴とする。
【０００８】
これらの構成によれば、シリアルデータ入力ポートの論理に応じて、リードコマンドを決定するため、少なくとも２系統のシリアルフラッシュメモリに対応することができる。つまり、シリアルフラッシュメモリの系統によって実装する抵抗器を変えることにより、シリアルデータ入力ポートが「正」に論理固定する抵抗器が実装されている場合は、Ａ社系のリードコマンドを使用してリードアクセスを行い、シリアルデータ入力ポートが「負」に論理固定する抵抗器が実装されている場合は、Ｂ社系のリードコマンドを使用してリードアクセスを行う、などのようにベンダによってリードコマンドを使い分けることができる。このように、同一の制御プログラムを用いて複数のシリアルフラッシュメモリに対応可能であるため、シリアルフラッシュメモリの部品選定の幅を広げることができ、コストメリットやパフォーマンス性の向上が期待できる。
【０００９】
上記に記載の制御装置において、ＣＰＵは、決定した１のリードコマンドを、取得したシリアルデータ入力ポートの論理に応じた送信パターンで送信することにより、ブートローダを読み出すことが好ましい。
【００１０】
この構成によれば、リードコマンドだけでなく、送信パターンが異なるシリアルフラッシュメモリにも対応することができる。
なお、「送信パターンが異なる」とは、命令ビット（リードコマンド）、アドレスビット、ダミービットなど、各ビットの送信順序が異なることや、ダミービットの送信の有無および送信内容が異なることを指すものである。
【００１１】
上記に記載の制御装置において、ＣＰＵは、リセット解除をトリガとしてシリアルデータ入力ポートの論理を取得することが好ましい。
【００１２】
この構成によれば、起動時において抵抗器の論理を取得し、その取得結果に応じてブート処理を実行するため、確実にシリアルフラッシュメモリに適したブート処理（ブート時におけるリードアクセス）を行うことができる。
【００１３】
上記に記載の制御装置において、抵抗器は、複数備えられ、ＣＰＵは、複数の抵抗器に基づくシリアルデータ入力ポートの論理の組み合わせに応じて、１のリードコマンドを決定することが好ましい。
【００１４】
この構成によれば、複数の抵抗器から得られるシリアルデータ入力ポートの論理の組み合わせに応じて、１のリードコマンドを決定するため、３系統以上のシリアルフラッシュメモリに対応することができる。つまり、シリアルフラッシュメモリの系統が、現在の２系統から将来的に多様化してく可能性があるが、そのような場合であっても本構成を適用することで、市場に出回る多くのシリアルフラッシュメモリに対応することができる。
【００１５】
本発明のプリンタは、上記に記載の制御装置と、シリアルフラッシュメモリとを、搭載したことを特徴とする。
【００１６】
この構成によれば、大容量、安価且つパッケージサイズが小さいといった実装面でのメリットが大きいシリアルフラッシュメモリを採用でき、しかもその部品選定の幅が広がるため、コストメリットの高いプリンタを実現することができる。
【００１７】
本発明のプログラムは、コンピュータに、上記に記載のリードアクセス方法における各ステップを実行させるためのものであることを特徴とする。
【００１８】
このプログラムを実行することにより、ベンダによってリードコマンドが異なる複数系統のシリアルフラッシュメモリに対応可能な制御装置を提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施形態に係る制御装置、プリンタ、リードアクセス方法およびプログラムについて説明する。図１は、プリンタ１のブロック図である。同図に示すように、プリンタ１は、ブートデバイスとして用いられるシリアルフラッシュメモリＭと、当該シリアルフラッシュメモリＭに対してリードアクセスやブート処理等の各種処理を実行するＳＯＣ（System On a Chip）１０と、ＳＯＣ１０のシリアルデータ入力ポートを「正」または「負」のいずれかに論理固定する抵抗器３０と、印刷ヘッドや用紙搬送部材および切断部材など（いずれも図示省略）印刷処理に関わる種々のハードウェア機構を有する印刷機構２０と、を備えている。なお、本発明における「制御装置」とは、ＳＯＣ１０および抵抗器３０から成るものである。
【００２０】
シリアルフラッシュメモリＭは、起動時におけるＳＯＣ１０の処理を定めたブートローダ（起動プログラム）を複数記憶しており、ＳＯＣ１０によるリードアクセスに対して、アドレス指定されたブートローダを出力する。また、現存する２系統のシリアルフラッシュメモリＭ（シリアルフラッシュメモリベンダによって異なる）のうち、いずれかの系統を採用可能であり、本実施形態では、Ａ社系とＢ社系のいずれかを採用するものとする。なお、シリアルフラッシュメモリＭとしては、ＮＡＮＤ型フラッシュメモリ、ＡＮＤ型フラッシュメモリおよびＮＯＲ型フラッシュメモリ等を適用可能である。
【００２１】
ＳＯＣ１０は、コンピュータの主要機能を１チップに集積したものであり、ＣＰＵ１１、ＲＡＭ１２、マスクＲＯＭ１３、ＡＳＩＣ（Application Specific Integrated Circuit）１４、内部バス１５、およびシリアルインターフェース１６を有している。
【００２２】
ＣＰＵ１１は、シリアルフラッシュメモリＭに対するリードアクセスやブート処理時におけるブートシーケンスの実行等を制御する。ＲＡＭ１２は、ＣＰＵ１１と直接接続され（内部バス１５を介さずに接続され）、ＣＰＵ１１が各種処理を実行する際のワークエリアとして用いられる。
【００２３】
マスクＲＯＭ１３は、ＣＰＵ１１と内部バス１５を介して接続され、ＣＰＵ１１が各種処理を実行するための制御データや制御プログラムを記憶している。制御データとしては、ブート時においてシリアルフラッシュメモリＭからブートローダを読み出す際にＣＰＵ１１が参照するテーブル１８が記憶されている。当該テーブル１８には、シリアルフラッシュメモリＭの系統毎に、リードコマンドと、その送信パターンとが関連付けられており、本実施形態では、Ａ社系およびＢ社系の２種類のリードコマンドおよび送信パターン（以下、リードコマンドおよび送信パターンを総称して「読み出しデータ」と称する）を記憶している。つまり、各系統は、当該「読み出しデータ」の違いによって分けられている。また、制御プログラムには、シリアルインターフェース１６のシリアルデータ入力（ＳＱ）ポートに実装されている抵抗器３０（抵抗器３０ａまたは３０ｂ）に応じて、上記のテーブル１８に記憶されている２種類の読み出しデータの中からいずれかを採用するかを決定し、決定した読み出しデータを用いてシリアルフラッシュメモリＭからブートローダを読み出すといった一連のブート処理の実行のためのプログラムが含まれる。
【００２４】
ＡＳＩＣ１４は、ＣＰＵ１１と内部バス１５を介して接続され、シリアル通信制御回路および信号処理回路を内蔵した集積回路である。ＡＳＩＣ１４は、ＳＰＩ（Serial Peripheral Interface）方式を採用し、シリアルクロック（ＳＣＫ）、シリアルデータ入力（ＳＱ）およびシリアルデータ出力（ＳＤ）といった信号により、シリアルインターフェース１６を介して、シリアルフラッシュメモリＭにアクセスする。
【００２５】
ＡＳＩＣ１４がＣＰＵ１１の指令を受けて、リード動作を指定する命令ビットと、ブートローダのアドレスを指定するアドレスビット等のデータ列を、シリアルデータ出力（ＳＤ）ポートを介して順次転送すると、シリアルフラッシュメモリＭは、当該リードアクセスに対し、記憶しているブートローダをシリアルクロック（ＳＣＫ）に同期して順次シリアルデータ入力（ＳＱ）ポートに出力する。
【００２６】
抵抗器３０は、シリアルデータ入力ポートを「正（Ｈレベル）」または「負（Ｌレベル）」のいずれかに論理固定する。図示では２つの抵抗器３０ａ，３０ｂを示しているが、実際にはいずれかが選択的に実装される。本実施形態では、Ａ社系のシリアルフラッシュメモリＭを採用した場合、抵抗器Ａ３０ａがＳＯＣ１０に実装される。この場合、抵抗器Ｂ３０ｂは未実装であり、シリアルデータ入力（ＳＱ）ポートはＨレベルに論理固定される。また、Ｂ社系のシリアルフラッシュメモリＭを採用した場合、抵抗器Ｂ３０ｂがＳＯＣ１０に実装される。この場合、抵抗器Ａ３０ａは未実装であり、シリアル入力（ＳＱ）ポートはＬレベルに論理固定される。このように、シリアルインターフェース１６のシリアル入力（ＳＱ）ポートは、ブートローダ入力のためだけでなく、シリアルフラッシュメモリＭの系統を識別するためのポートとしても用いられる。
【００２７】
ここで、図２のフローチャートを参照し、上記の構成におけるプリンタ１のブート処理について説明する。なお、当該フローチャートの主体はＳＯＣ１０（ＣＰＵ１１）であり、説明を分かり易くするため、適宜主語を省略する。
【００２８】
ＳＯＣ１０は、プリンタ１の起動（リセット解除）によりリセット信号を受信すると（Ｓ０１：Ｙｅｓ）、まずＣＰＵ１１の初期設定を行う（Ｓ０２）。初期設定を終了すると、シリアルデータ入力（ＳＱ）ポートからの信号を検出し（Ｓ０３）、シリアルデータ入力ポートの論理がＨレベルであるか否かを判別する（Ｓ０４）。すなわち、Ａ社系のシリアルフラッシュメモリＭが採用されているか（抵抗器Ａ３０ａが実装されているか）、Ｂ社系のシリアルフラッシュメモリＭが採用されているか（抵抗器Ｂ３０ｂが実装されているか）を判別する。
【００２９】
ここで、シリアルデータ入力ポートの論理がＨレベルである場合は（Ｓ０４：Ｙｅｓ）、Ａ社系のシリアルフラッシュメモリＭが採用されていると判断し、Ａ社系のリードコマンド、アドレスビットおよびダミービットを送信する（Ｓ０５，図３（ａ）参照）。これらは、マスクＲＯＭ１３内のテーブル１８に記憶されているＡ社系の読み出しデータに基づくものである。また、Ｓ０５におけるリードアクセスは、他段階に渡って複数回実行され、シリアルフラッシュメモリＭは、ブートシーケンスが終了するまでブートローダの出力を繰り返す。
【００３０】
一方、シリアルデータ入力ポートの論理がＬレベルである場合は（Ｓ０４：Ｎｏ）、Ｂ社系のシリアルフラッシュメモリＭが採用されていると判断し、Ｂ社系のリードコマンドおよびアドレスビットを送信する（Ｓ０６，図３（ｂ）参照）。これらは、Ａ社系のシリアルフラッシュメモリＭが採用された場合と同様に、テーブル１８に記憶されているＢ社系の読み出しデータに基づくものである。また、同じくＳ０６におけるリードアクセスは、ブートシーケンスが終了するまで他段階に渡って複数回実行される。
【００３１】
上記のとおり、ＳＯＣ１０は、シリアルフラッシュメモリＭから出力された複数のブートローダを取得すると（Ｓ０７）、これらをＲＡＭ１２に展開し（Ｓ０８）、所定の終了処理を実行した後（Ｓ０９）、ブート処理を終了する。
【００３２】
次に、図３を参照し、ＳＯＣ１０とシリアルフラッシュメモリＭ間におけるシリアルインターフェース１６を介したデータの入出力について説明する。同図（ａ）は、抵抗器Ａ３０ａを実装したときのデータ入出力の一例を示したものである。同図に示すように、抵抗器Ａ３０ａが実装された場合（Ａ社系のシリアルフラッシュメモリＭが採用された場合）は、ＳＯＣ１０のシリアルデータ出力（ＳＤ）ポートから、８ビットの命令ビット（Ａ社系のリードコマンド）と、２４ビットのアドレスビットと、３２ビットのダミービットと、を出力することにより、シリアルデータ入力（ＳＱ）ポートを介してシリアルフラッシュメモリＭからのデータ出力を受けることができる。これらのリードコマンドや送信パターンは、シリアルフラッシュメモリＭの仕様に基づくものであり、予めテーブル１８内に、系統別の読み出しデータとして記憶されている。つまり、各読み出しデータは、リードコマンドが異なるだけでなく、送信データ量や送信順序、ダミービットの有無のいずれかが異なる場合も、異なる系統の読み出しデータとして記憶されている。
【００３３】
また、同図（ｂ）は、抵抗器Ｂ３０ｂを実装したときのデータ入出力の一例を示したものである。同図に示すように、抵抗器Ｂ３０ｂが実装された場合（Ｂ社系のシリアルフラッシュメモリＭが採用された場合）は、ＳＯＣ１０のシリアルデータ出力（ＳＤ）ポートから、８ビットの命令ビット（Ｂ社系のリードコマンド）と、２４ビットのアドレスビットと、を出力することにより、シリアルデータ入力（ＳＱ）ポートを介してシリアルフラッシュメモリＭからのデータ出力を受けることができる。このように、抵抗器Ｂ３０ｂが実装された場合は、ダミービットの出力を必要としないが、これについても読み出しデータによって規定されたものである。
【００３４】
以上説明したとおり、本実施形態によれば、シリアルデータ入力（ＳＱ）ポートの論理に応じて、テーブル１８内に記憶している２種類の読み出しデータ（リードコマンドやその送信パターン）のうち、いずれかの読み出しデータを決定するため、２系統のシリアルフラッシュメモリＭに対応することができる。すなわち、同一のマスクＲＯＭ１３を用いて２系統のシリアルフラッシュメモリＭに対応可能であるため、シリアルフラッシュメモリＭの部品選定の幅を広げることができ、コストメリットやパフォーマンス性の向上が期待できる。
【００３５】
また、プリンタ１のリセット解除（プリンタ１の起動）をトリガとして、抵抗器３０によって固定されるシリアルデータ入力（ＳＱ）ポートの論理を取得し、その取得結果に応じてブート処理を実行するため、確実にシリアルフラッシュメモリＭに応じたブート処理を行うことができる。
【００３６】
また、本字実施形態のプリンタ１は、大容量、安価且つパッケージサイズが小さいといった実装面でのメリットが大きいシリアルフラッシュメモリＭを採用でき、しかもＳＯＣ１０のブート処理により、その部品選定の幅が広がるため、コストパフォーマンスを向上することができる。
【００３７】
なお、上記の実施形態では、通信方式としてＳＰＩ方式を例示したが、ＳＰＩ方式のような同期型シリアル通信方式に限らず、他のシリアル通信方式を採用可能である。
【００３８】
また、上記の実施形態では、抵抗器３０を１つだけ実装する（抵抗器Ａ３０ａまたは抵抗器Ｂ３０ｂのいずれかを実装する）ものとしたが、複数個実装し、これら複数の抵抗器から得られる論理の組み合わせに応じて、リードアクセスに用いる読み出しデータを決定するようにしても良い。この場合、例えばシリアルデータ入力ポート２本にそれぞれ抵抗器３０を実装することで４系統、シリアルデータ入力ポート３本にそれぞれ抵抗器３０を実装することで８系統と、さらに多系統のシリアルフラッシュメモリＭに対応することができる。
【００３９】
また、上記の実施形態に示した、プリンタ１やＳＯＣ１０の各構成要素（各機能）をプログラムとして提供することが可能である。また、そのプログラムを各種記録媒体（ＣＤ−ＲＯＭ、フラッシュメモリ等）に格納して提供することも可能である。すなわち、プリンタ１やＳＯＣ１０の各構成要素（各機能）をプログラム化したもの、およびそれを記録した記録媒体も、本発明の権利範囲に含まれるものである。
【００４０】
また、上記の実施形態によらず、ＳＯＣ１０の装置構成やブート処理の処理工程など、本発明を逸脱しない範囲で適宜変更が可能である。また、本発明のＳＯＣ１０を、プリンタ１以外の電子機器に搭載して用いることも当然可能である。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施形態に係るプリンタのブロック図である。
【図２】プリンタのブート処理を示すフローチャートである。
【図３】シリアルインターフェースを介したデータの入出力を示す図である。
【符号の説明】
【００４２】
１・・・プリンタ  １０・・・ＳＯＣ  １１・・・ＣＰＵ  １２・・・ＲＡＭ  １３・・・マスクＲＯＭ  １４・・・ＡＳＩＣ  １５・・・内部バス  １６・・・シリアルインターフェース  １８・・・テーブル  ２０・・・印刷機構  ３０・・・抵抗器  ３０ａ・・・抵抗器Ａ  ３０ｂ・・・抵抗器Ｂ  Ｍ・・・シリアルフラッシュメモリ
【図１】
2008262444.tif 000003
【図２】
2008262444.tif 000004
【図３】
2008262444.tif 000005