JP2010044638A - Information processing apparatus - Google Patents
Information processing apparatus Download PDFInfo
- Publication number
- JP2010044638A JP2010044638A JP2008208922A JP2008208922A JP2010044638A JP 2010044638 A JP2010044638 A JP 2010044638A JP 2008208922 A JP2008208922 A JP 2008208922A JP 2008208922 A JP2008208922 A JP 2008208922A JP 2010044638 A JP2010044638 A JP 2010044638A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- timing
- bit
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、一般に情報処理システムに関し、詳しくはファームウェアを受信し実行することにより動作する情報処理装置を含む情報処理システムに関する。 The present invention generally relates to an information processing system, and more particularly to an information processing system including an information processing apparatus that operates by receiving and executing firmware.
情報処理装置においては、情報処理を行うためのファームウェアを外部ROMに格納しておく場合が多い。ブート時に情報処理装置が外部ROMからファームウェアをダウンロードし、ダウンロード後のファームウェアを実行することにより、所定の情報処理を実行する。このような構成とすることにより、外部ROMのファームウェアを書き替えるだけで情報処理の内容を変更することが可能となり、柔軟性の高い情報処理システムを構築することができる。 In information processing apparatuses, firmware for performing information processing is often stored in an external ROM. When booting, the information processing apparatus downloads firmware from the external ROM, and executes the downloaded firmware to execute predetermined information processing. With such a configuration, it becomes possible to change the contents of information processing only by rewriting the firmware of the external ROM, and a highly flexible information processing system can be constructed.
より詳細には、情報処理装置の内部にあるブートROMにはブートローダプログラムが格納されおり、ブート時には、このブートROMに格納されているブートローダプログラムにより情報処理装置が起動する。ブートローダプログラムに従って情報処理装置が外部シリアルROMに記録されたファームウェアを読み込み、符号化・復号化等の情報処理を開始する。 More specifically, a boot loader program is stored in a boot ROM inside the information processing apparatus, and at the time of booting, the information processing apparatus is activated by the boot loader program stored in the boot ROM. The information processing apparatus reads the firmware recorded in the external serial ROM according to the boot loader program, and starts information processing such as encoding / decoding.
シリアルROMのアドレス0から始まるメモリ位置に格納されるファームウェアの先頭部分には、所定のキーワードが配置されている。情報処理装置の制御CPUは、ファームウェアのダウンロードを行いながら、ダウンロードされるデータ中のキーワードのチェックを行う。情報処理装置は、所定のキーワードの読み込みに成功した場合には外部ROMが存在するものと判断し、キーワードに後続する位置に格納されているプログラムを外部ROMからダウンロードする。また所定のキーワードの読み込みに失敗した場合にはエラー発生と判断し、情報処理装置はブートアップ処理を中断する。
A predetermined keyword is arranged at the head of the firmware stored in the memory location starting from
図1は、SPIプロトコルのインターフェースの概略構成を示す図である。SPI(Serial Peripheral Interface)は、マイクロプロセッサをメモリ、センサ、変換装置、コントロール装置等の各種周辺デバイスに接続するためのシリアル・プロトコルである。図1に示す構成では、SPIマスタ10とSPIスレーブ15との間の通信を行なう。通信には、2本のデータ線、1本のコントロール線、及び1つの同期クロックを使用する。MOSI(Master Out Slave In)は、SPIマスタ10の出力からSPIスレーブ15の入力へのデータ線である。MISO(Master In Slave Out)は、SPIスレーブ15の出力からSPIマスタ10の入力へのデータ線である。SCK(Serial Clock)は、SPIマスタ10からSPIスレーブ15に供給するクロック信号であり、データビットの同期を取るために使用される。/SS(Slave Select)は、SPIスレーブ15により個々のスレーブを選択するセレクト信号であり、セレクト信号がLOWになることにより選択状態となる。図1の構成例では、1つのSPIスレーブしか設けられていないので、SPIスレーブ15は選択状態に固定となっている。
FIG. 1 is a diagram showing a schematic configuration of an interface of the SPI protocol. SPI (Serial Peripheral Interface) is a serial protocol for connecting a microprocessor to various peripheral devices such as a memory, a sensor, a conversion device, and a control device. In the configuration shown in FIG. 1, communication between the
SPIマスタ10は、シフトレジスタ11とボーレート生成器12を含む。SPIスレーブ15は、シフトレジスタ16を含む。シフトレジスタ11は、受信シフトレジスタと送信シフトレジスタとを含む。例えば制御CPUにより、ライトデータがシフトレジスタ11の送信シフトレジスタに書き込まれる。シフトレジスタ11の送信シフトレジスタの格納データは、最下位ビット又は最上位ビットから1ビットずつ順次MOSIに出力される。またMISOから入力されるデータは、シフトレジスタ11の受信シフトレジスタに1ビットずつ順次格納される。格納された受信データは、例えば制御CPUにより、リードデータとして読み出される。ボーレート生成器12は、例えば制御CPUによる設定値に応じてクロック信号を分周し、シリアルクロックSCKを生成する。シリアルクロックSCKは、SPIマスタ10からSPIスレーブ15に供給される。
The
シリアルクロックSCKに同期して、SPIマスタ10からSPIスレーブ15にデータを転送すると共に、SPIスレーブ15からSPIマスタ10にデータを転送する。SPIスレーブ15は、/SSがLOW(イネーブル)になった後に、SPIマスタ10から最初に送られてくる8ビットのデータをインストラクションとして認識する。例えばリード動作の場合、SPIマスタ10はリード動作を示すインストラクションデータをまず最初に送信し、その後アドレスデータを送信する。このとき送信するアドレスのビット長は、SPIスレーブ15のメモリ容量によって異なり、例えば8ビット、16ビット、24ビット等の何れか1つのビット長である。アドレスデータの送信後、該当アドレスのリードデータがSPIスレーブ15から出力される。その後は、SPIマスタ10からクロックSCKを出し続けることにより、SPIスレーブ15がアドレスをオートインクリメントし、次々とリードデータを出力する。
In synchronization with the serial clock SCK, data is transferred from the
図2は、アドレスビット長が8ビットの場合のデータ読出し動作の一例を示す図である。SPIスレーブ15は、/SSがLOW(イネーブル)になった後に、SPIマスタ10がMOSIに出力した8ビットのデータをインストラクションとして取り込み、リード動作であることを認識する。SPIマスタ10は、リード動作を示すインストラクションデータに続き、8ビットのアドレスデータA0乃至A7をMOSIに出力する。SPIスレーブ15は、受信したアドレスデータが示すメモリ位置を始点として、クロックSCKに同期してリードデータをMISOに順次出力する。
FIG. 2 is a diagram illustrating an example of a data read operation when the address bit length is 8 bits. The
図3は、アドレスビット長が24ビットの場合のデータ読出し動作の一例を示す図である。SPIマスタ10は、リード動作を示す8ビットのインストラクションデータに続き、24ビットのアドレスデータA0乃至A23をMOSIに出力する。SPIスレーブ15は、受信したアドレスデータが示すメモリ位置を始点として、クロックSCKに同期してリードデータをMISOに順次出力する。
FIG. 3 is a diagram illustrating an example of a data read operation when the address bit length is 24 bits. The
図4は、アドレスのビット長が固定の場合のブートアップ処理の流れの一例を示すフローチャートである。ステップS1でSPIマスタ(例えばSPIマスタ10)の各種設定を行なう。ステップS2で、SPIマスタからリードコマンドを送信する。この送信動作には8サイクルを要する。ステップS3で、SPIマスタからアドレス“0”を送信する。アドレスのビット長がnビットであれば、この送信動作にはnサイクルを要する。ステップS4で、SPIマスタがSPIスレーブからリードデータを受信する。この受信動作には8サイクルを要する。ステップS5で、例えばSPIマスタ側のCPUにより、リードデータが16進数“4D”であるか否かを判定する。ここで“4D”は第1番目のキーワードであるとする。リードデータがキーワードに等しい場合は、ステップS6で、例えばSPIマスタ側のCPUにより、リードデータが16進数“42”であるか否かを判定する。ここで“42”は第2番目のキーワードであるとする。リードデータがキーワードに等しい場合は、更に次のステップに進む。同様にして、第3番目以降のキーワードについても確認し、全てのキーワードが正しく読み出された場合には、キーワードに後続するファームウェアのプログラムをダウンロードする。1つでもキーワードが正しく読み出されなかった場合には、ブートアップ処理を中断してエラー処理を実行する。 FIG. 4 is a flowchart showing an example of the flow of boot-up processing when the address bit length is fixed. In step S1, various settings of the SPI master (for example, SPI master 10) are performed. In step S2, a read command is transmitted from the SPI master. This transmission operation takes 8 cycles. In step S3, the address “0” is transmitted from the SPI master. If the bit length of the address is n bits, this transmission operation requires n cycles. In step S4, the SPI master receives read data from the SPI slave. This reception operation takes 8 cycles. In step S5, for example, the CPU on the SPI master side determines whether or not the read data is hexadecimal “4D”. Here, “4D” is assumed to be the first keyword. If the read data is equal to the keyword, in step S6, for example, the CPU on the SPI master side determines whether or not the read data is hexadecimal “42”. Here, “42” is assumed to be the second keyword. If the read data is equal to the keyword, the process proceeds to the next step. Similarly, the third and subsequent keywords are also checked, and if all the keywords are read correctly, the firmware program following the keywords is downloaded. If even one keyword is not read correctly, the boot-up process is interrupted and the error process is executed.
前述のように、SPIプロトコルを介してマスタデバイスからスレーブデバイスへアクセスする際のアドレスのビット幅は、スレーブデバイスの種類(メモリ容量)に応じて異なる。図4に示すブートアップ処理のフローチャートの場合には、ステップS3に要するサイクル数が、スレーブデバイスの種類に応じて異なることになる。従って、シリアルROMからファームウェアをダウンロードしてブートアップを行う情報処理装置においては、シリアルROMのアドレスビット幅に応じて、異なるプログラムを内蔵したブートローダーROMを設ける必要がある。ブートローダーROMの内容を変更することは困難であるので、ある種類のスレーブデバイスからダウンロードするように情報処理装置を一旦構成してしまうと、外部ROMのメモリ容量を変更したくとも変更できないことになってしまう。 As described above, the bit width of the address when accessing the slave device from the master device via the SPI protocol varies depending on the type (memory capacity) of the slave device. In the case of the flowchart of the boot-up process shown in FIG. 4, the number of cycles required for step S3 differs depending on the type of slave device. Therefore, in an information processing apparatus that downloads firmware from a serial ROM and boots up, it is necessary to provide a boot loader ROM containing different programs according to the address bit width of the serial ROM. Since it is difficult to change the contents of the boot loader ROM, once the information processing apparatus is configured to download from a certain type of slave device, it cannot be changed even if the memory capacity of the external ROM is changed. turn into.
ブートローダーROMに、例えば8ビットアドレス用のブートプログラム、16ビットアドレス用のブートプログラム、24ビットアドレス用のブートプログラムをそれぞれ格納しておき、ブート時に1つのプログラムを選択して実行することが考えられる。より効率的には、ブートプログラム中のアドレス出力動作の処理部分(図4のステップS3の処理部分)を、8ビットアドレス出力、16ビットアドレス出力、及び24ビットアドレス出力で切り替えられるように構成すればよい。この際の切り替えの選択信号は、情報処理装置の外部端子に印加する信号に応じて生成すればよい。しかしながら、このような構成とした場合、ピン数増加によるコストアップが問題となってしまう。 For example, a boot program for an 8-bit address, a boot program for a 16-bit address, and a boot program for a 24-bit address are stored in the boot loader ROM, and one program is selected and executed at the time of booting. It is done. More efficiently, the processing part of the address output operation in the boot program (the processing part of step S3 in FIG. 4) can be switched between 8-bit address output, 16-bit address output, and 24-bit address output. That's fine. The switching selection signal at this time may be generated according to a signal applied to the external terminal of the information processing apparatus. However, with such a configuration, a cost increase due to an increase in the number of pins becomes a problem.
シリアルROMよりデータをリードする際のアドレス決定方法が、例えば、特許文献1及び特許文献2に開示されている。特許文献1に開示の技術は、シリアルEEPROMのアクセス形態を自動的に判別する発明であり、1バイトアドレスか2バイトアドレスかの判別にシリアルEEPROMから出力されるアクノリッジ信号を利用している。しかしながらSPIプロトコルにはアクノリッジ信号に相当する信号がないため、この技術をSPIプロトコルで接続されたシステムに使用することはできない。
For example,
特許文献2に開示の技術は、EEPROMの記憶容量を自動的に判別する発明であり、有効アドレス入力後のEEPROMからのローレベル出力を利用してアドレスビット数を計数している。しかしながらSPIにはローレベル出力に相当するプロトコルがないために、この技術をSPIプロトコルで接続されたシステムに使用することはできない。
The technique disclosed in
また仮に、何らかのアドレス決定方法によりアドレスビット幅が特定できたとしても、アドレスモード検出、アドレスモード判定、及び各アドレスモードに対するアドレス送信等の処理をブートプログラムに組み込む必要がある。即ち、図4のブートアップ処理に対して新たな処理を追加することが必要になり、処理が複雑になるとともにコストアップに繋がる。
以上を鑑みると、SPIプロトコルでスレーブデバイスからファームウェアをダウンロードする際に、スレーブデバイスのアドレスビット長に依存せずにブートアップ処理を行うことができる情報処理装置が望まれる。 In view of the above, there is a demand for an information processing apparatus capable of performing boot-up processing without depending on the address bit length of the slave device when downloading firmware from the slave device using the SPI protocol.
情報処理装置は、アドレスの各ビットをシリアルに送信し、データの各ビットをシリアルに受信するシリアルインターフェースと、起動プログラムを格納するブートメモリと、起動時に前記起動プログラムを実行して起動時処理を行なう制御回路とを含み、前記制御回路は、前記起動時処理において、第1のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが所定のデータに一致するか否かを判断し、データ不一致の場合には、第2のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かを判断することを特徴とする。 The information processing apparatus serially transmits each bit of the address and serially receives each bit of data, a boot memory storing a start program, and executes the start program at the start to perform a start-up process The control circuit determines whether or not the data serially received by the serial interface coincides with predetermined data with the first timing as a start timing in the start-up process, In the case of mismatch, the second interface is used as a start timing to determine whether or not the data serially received by the serial interface matches the predetermined data.
少なくとも1つの実施例によれば、SPIプロトコルで接続されたシステムにおいて、異なるアドレスビット幅のスレーブデバイスに対応した制御を実現すると共に、余分なROMや外部端子の追加が必要なく、コストダウンを図ることができる。また従来技術の構成と比較して余分なサイクル数が増えることがない。 According to at least one embodiment, in a system connected by the SPI protocol, control corresponding to slave devices having different address bit widths is realized, and additional ROM and external terminals are not required, thereby reducing costs. be able to. Further, the number of extra cycles does not increase as compared with the configuration of the prior art.
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
図5は、シリアルROMからファームウェアをダウンロードする情報処理装置の構成の一例を示す図である。情報処理装置20は、SPIインターフェース(I/F)21、ブートROM22、制御CPU23、及びRAMインターフェース(I/F)24を含む。SPIインターフェース21、ブートROM22、制御CPU23、及びRAMインターフェース24は、内部バス25を介して互いに接続されている。情報処理装置20のRAMインターフェース24はRAM26に接続されており、制御CPU23が実行するプログラムや処理に関わるデータ等がRAM26に格納される。情報処理装置20のSPIインターフェース21はシリアルROM30に接続されており、MISO、MOSI、SCK、及び/SSを介してSPIマスタ(SPIインターフェース21)とSPIスレーブ(シリアルROM30)との間のデータ転送を行なう。SPIプロトコルのインターフェースの構成は、図1に示したとおりである。SPIインターフェース21は、アドレスの各ビットをシリアルにMOSIに送信し、データの各ビットをシリアルにMISOから受信する。
FIG. 5 is a diagram illustrating an example of a configuration of an information processing apparatus that downloads firmware from a serial ROM. The
ブートROM22は、起動プログラム(ブートローダプログラム)を格納するブートメモリである。制御CPU23は、情報処理装置20の起動時に、ブートROM22の起動プログラムを実行して起動時処理を実行する。ブートローダプログラムに従って情報処理装置20がシリアルROM30に記録されたファームウェアを読み込み、符号化・復号化等の情報処理を開始する。
The
図6は、シリアルROM30の格納データの一例を示す図である。図6に示されるように、シリアルROM30のアドレス0から始まるメモリ位置に格納されるファームウェアの先頭部分には、所定のキーワードが配置されている。図6に示す例では、第1のアドレス位置(番地0)には第1のキーワードである16進データ“4D”(アスキー符号で“M”)が格納され、第2のアドレス位置(番地1)には第2のキーワードである16進データ“42”(アスキー符号で“B”)が格納されている。また第3のアドレス位置(番地2)には第3のキーワードである16進データ“38”(アスキー符号で“8”)が格納され、第4のアドレス位置(番地3)には第4のキーワードである16進データ“36”(アスキー符号で“6”)が格納されている。
FIG. 6 is a diagram illustrating an example of data stored in the serial ROM 30. As shown in FIG. 6, a predetermined keyword is arranged at the head portion of the firmware stored in the memory location starting from
情報処理装置20の制御CPU23は、シリアルROM30からファームウェアのダウンロードを行いながら、ダウンロードされるデータ中のキーワード(図6の例では“M”、“B”、“8”、“6”)のチェックを行う。制御CPU23は、所定のキーワードの読み込みに成功した場合には外部ROMが存在するものと判断し、キーワードに後続する位置に格納されているプログラムをシリアルROM30からダウンロードする。また所定のキーワードの読み込みに失敗した場合にはエラー発生と判断し、情報処理装置はブートアップ処理を中断する。
The
図5の情報処理装置20では、制御CPU23は、起動時処理において、第1のタイミングを開始タイミングとしてSPIインターフェース21がシリアルに受信するデータが所定のデータ(第1のキーワード)に一致するか否かを判断する。判断結果がデータ不一致の場合、制御CPU23は、第2のタイミングを開始タイミングとしてSPIインターフェース21がシリアルに受信するデータが所定のデータ(第1のキーワード)に一致するか否かを判断する。このようにSPIインターフェース21がシリアルに受信するデータが所定のデータ(第1のキーワード)に一致するか否かの判断を、順次異なる開始タイミングで受信する受信データに対して繰り返す。そして制御CPU23は、SPIインターフェース21がシリアルに受信するデータが所定のデータ(第1のキーワード)に一致したタイミングから以降のデータを必要なデータとして順次読み込む。これらの処理についてより詳細に以下に説明する。
In the
図7は、情報処理装置20のブートアップ処理の流れを示すフローチャートである。このフローチャートの各ステップの処理は、制御CPU23が実行するか、又は、制御CPU23の制御下で動作するSPIインターフェース21が実行する。
FIG. 7 is a flowchart showing a flow of boot-up processing of the
ステップS1において、SPIインターフェース21の各種設定を行なう。ステップS2で、SPIインターフェース21からリードコマンドを送信する。この送信動作には例えば8サイクルを要する。ステップS3で、SPIインターフェース21からアドレス“0”を送信する。この際、制御CPU23は、固定のビット値“0”をアドレスとしてMOSIに送信し続けるように、SPIインターフェース21を制御する。固定のビット値“0”を送信し続ける期間は、少なくともアドレスビット長の最大値に等しいサイクル数である。即ち例えば、アドレスビット長として8ビット、16ビット、及び24ビットのアドレスモードが有り得る場合には、最大値である24ビットに等しいサイクル数、即ち少なくとも24サイクルの間は固定のビット値“0”を送信し続ける。
In step S1, various settings of the
ステップS4で、SPIインターフェース21がシリアルROM30からリードデータを受信する。この受信動作には例えば8サイクルを要する。ステップS5で、制御CPU23により、リードデータが16進数“4D”であるか否かを判定する。ここで“4D”は第1のキーワードである。
In step S <b> 4, the
図8は、データ読出し動作の一例を示す図である。シリアルROM30は、/SSがLOW(イネーブル)になった後に、SPIインターフェース21がMOSIに出力した8ビットのデータ“00000011”をインストラクションとして取り込み、リード動作であることを認識する。SPIインターフェース21は、リード動作を示すインストラクションデータに続き、ビット値“0”の固定値をMOSIに出力し続ける。シリアルROM30は、受信したアドレスデータが示すメモリ位置を始点として、クロックSCKに同期してリードデータをMISOに順次出力する。図8の例においては、シリアルROM30がアドレスビット長8ビットのメモリの場合の動作が示されている。SCKの8番乃至15番のパルスに同期してアドレスビット“0”がMOSIに8個供給されると、シリアルROM30は、アドレス0番地のデータ出力を開始する。この出力データがMISOに現れる“01001101”、即ち第1のキーワードである16進数“4D”である。SPIインターフェース21は、第1のタイミング(SCKの16番のパルス)を開始タイミングとしてMISOのデータをシリアルに受信する。この第1のタイミングはSPIインターフェース21が所定のビット長(8ビット)のアドレスを送信した場合に当該アドレスに応じたデータを受信する筈のタイミングである。このようにして受信したリードデータが第1のキーワード“4D”に一致する場合には、図7においてブートアップ処理はステップS8に進む。
FIG. 8 is a diagram illustrating an example of a data read operation. The serial ROM 30 takes in the 8-bit data “00000011” output to the MOSI by the
リードデータが第1のキーワードに一致しない場合(ステップS5でNOの場合)には、ブートアップ処理はステップS6に進む。ステップS6で、チェック回数をカウントするチェックカウント値CHK_CNTを1増加させる。なおチェックカウント値CHK_CNTは、初期値0に初期設定されている。ステップS7で、チェックカウント値CHK_CNTが3以下か否かを判定する。なおここで3以下か否かを判定しているのは、アドレスビット長として3通りのビット長が有り得る構成の場合を例示しているからである。アドレスビット長としてn通りのビット長が有り得るのであれば、チェックカウント値CHK_CNTがn以下か否かを判定することになる。
If the read data does not match the first keyword (NO in step S5), the bootup process proceeds to step S6. In step S6, the check count value CHK_CNT for counting the number of checks is incremented by one. The check count value CHK_CNT is initially set to the
チェックカウント値CHK_CNTが3以下の場合、ステップS4に戻り、SPIインターフェース21がシリアルROM30からリードデータを再度受信する。最初(CHK_CNT=0の時)のリードデータの受信は、第1のタイミング(SCKの16番のパルス)を開始タイミングとしたデータ受信であった。それに対して今回(CHK_CNT=1の時)のリードデータの受信は、第2のタイミング(SCKの24番のパルス)を開始タイミングとしたデータ受信である。
When the check count value CHK_CNT is 3 or less, the process returns to step S4, and the
この第2のタイミングから受信したリードデータが第1のキーワードに一致しない場合(ステップS5でNOの場合)には、ブートアップ処理は再度ステップS6に進む。ステップS6で、チェック回数をカウントするチェックカウント値CHK_CNTを1増加させる。ステップS7で、チェックカウント値CHK_CNTが3以下か否かを判定する。チェックカウント値CHK_CNTが3以下の場合、ステップS4に戻り、SPIインターフェース21がシリアルROM30からリードデータを再度受信する。今回(CHK_CNT=2の時)のリードデータの受信は、第3のタイミング(SCKの32番のパルス)を開始タイミングとしたデータ受信である。
If the read data received from the second timing does not match the first keyword (NO in step S5), the bootup process proceeds again to step S6. In step S6, the check count value CHK_CNT for counting the number of checks is incremented by one. In step S7, it is determined whether or not the check count value CHK_CNT is 3 or less. When the check count value CHK_CNT is 3 or less, the process returns to step S4, and the
図9は、データ読出し動作の一例を示す図である。図9に示すのは、シリアルROM30がアドレスビット長24ビットのメモリの場合である。SCKの8番乃至15番のパルスに同期してアドレスビット“0”がMOSIに8個供給されても、シリアルROM30は、アドレス0番地のデータ出力を開始しない。SCKの8番乃至23番のパルスに同期してアドレスビット“0”がMOSIに16個供給されても、シリアルROM30は、アドレス0番地のデータ出力を開始しない。それに対して、SCKの8番乃至31番のパルスに同期してアドレスビット“0”がMOSIに24個供給されると、シリアルROM30は、アドレス0番地のデータ出力を開始する。この出力データがMISOに現れる“01001101”、即ち第1のキーワードである16進数“4D”である。SPIインターフェース21は、第3のタイミング(SCKの32番のパルス)を開始タイミングとしてMISOのデータをシリアルに受信する。このようにして受信したリードデータが第1のキーワード“4D”に一致する場合には、図7においてブートアップ処理はステップS8に進む。
FIG. 9 is a diagram illustrating an example of a data read operation. FIG. 9 shows a case where the serial ROM 30 is a memory having an address bit length of 24 bits. Even if eight address bits “0” are supplied to MOSI in synchronization with the 8th to 15th pulses of SCK, the serial ROM 30 does not start data output at
ステップS8で、SPIインターフェース21がシリアルROM30からリードデータを受信する。ここで受信するデータは、SPIインターフェース21がシリアルに受信するデータが第1のキーワード“4D”に一致したタイミング(図9の例であればSCKの32番のパルス)の次のタイミング(SCKの40番のパルス)で受信するデータである。次にステップS9で、リードデータが16進数“42”(第2のキーワード)に一致するか否かを判定する。リードデータが第2のキーワードに等しい場合は、次のステップS10に進む。ステップS10で、SPIインターフェース21がシリアルROM30から後続のリードデータを受信する。ステップS11で、リードデータが16進数“38”(第3のキーワード)に一致するか否かを判定する。リードデータが第3のキーワードに等しい場合は、次のステップS12に進む。ステップS12で、SPIインターフェース21がシリアルROM30から後続のリードデータを受信する。ステップS13で、リードデータが16進数“36”(第4のキーワード)に一致するか否かを判定する。リードデータが第4のキーワードに等しい場合は、次のステップS14に進む。
In step S <b> 8, the
ステップS14で、SPIインターフェース21がシリアルROM30から後続のデータを取り込み、必要なブートアップ処理を実行する。即ち、シリアルROM30において先頭のキーワードに続いて格納されているファームウェアのプログラムを、SPIインターフェース21が順次読み込んで、RAMインターフェース24を介してRAM26に格納する。ファームウェアのRAM26へのダウンロードが終了すると、ブートプログラムからファームウェアへの制御移管が行われる。具体的には、制御CPU23は、RAM26中のファームウェアの実行開始アドレスにプログラムカウンタを設定して、ファームウェアの実行を開始する。このファームウェアの実行により、符号化・復号化等の所望の情報処理を行なう。
In step S14, the
1つでもキーワードが正しく読み出されなかった場合(即ちステップS7、S9、S11、又はS13でNOの場合)には、ステップS15に進む。ステップS15では、図5に示す情報処理装置20のエラー端子を介して外部にエラー発生を通知する。具体的には、エラー端子の信号レベルを所定のアサート状態に設定することにより、エラー発生を通知する。その後、ブートアップ処理を中断して処理を終了する。
If even one keyword has not been correctly read (that is, if NO in steps S7, S9, S11, or S13), the process proceeds to step S15. In step S15, the occurrence of an error is notified to the outside through the error terminal of the
図7に示すフローチャートと図4に示す従来の処理のフローチャートとを比較すれば分かるように、図7に示す動作では、ステップS5のNO判定の場合にステップS4に戻るループが設けられたのみである。即ち、図7に示す動作では、あるアドレスモード(例えばアドレスビット長が16)の場合においてブートアップ処理に要する処理サイクル数は、16ビットのアドレス長に専用の固定的な構成におけるブートアップ処理に要する処理サイクル数と同一である。なお図7に示す制御フローは、ブートROM22に格納されたブートアップ用プログラムで制御することが可能であり、またハードウェア制御回路によって実現することも可能である。
As can be seen by comparing the flowchart shown in FIG. 7 with the flowchart of the conventional process shown in FIG. 4, the operation shown in FIG. 7 is merely provided with a loop that returns to step S4 in the case of NO determination in step S5. is there. That is, in the operation shown in FIG. 7, the number of processing cycles required for bootup processing in a certain address mode (for example, the address bit length is 16) is the same as the bootup processing in a fixed configuration dedicated to the 16-bit address length. It is the same as the number of processing cycles required. The control flow shown in FIG. 7 can be controlled by a boot-up program stored in the
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。 As mentioned above, although this invention was demonstrated based on the Example, this invention is not limited to the said Example, A various deformation | transformation is possible within the range as described in a claim.
なお本願開示は以下の内容を含むものである。
(付記1)
アドレスの各ビットをシリアルに送信し、データの各ビットをシリアルに受信するシリアルインターフェースと、
起動プログラムを格納するブートメモリと、
起動時に前記起動プログラムを実行して起動時処理を行なう制御回路と、
を含み、前記制御回路は、前記起動時処理において、第1のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが所定のデータに一致するか否かを判断し、データ不一致の場合には、第2のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かを判断することを特徴とする情報処理装置。
(付記2)
前記制御回路は、前記起動時処理において、前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かの判断を、順次異なる開始タイミングで受信する受信データに対して繰り返すことを特徴とする付記1記載の情報処理装置。
(付記3)
前記制御回路は、前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致したタイミングから以降のデータを必要なデータとして順次読み込むことを特徴とする付記1又は2記載の情報処理装置。
(付記4)
前記制御回路は、前記起動時処理において、前記シリアルインターフェースから固定のビット値をアドレスとして送信し続けることを特徴とする付記1乃至3のいずれか一項記載の情報処理装置。
(付記5)
前記アドレスの取り得るビット長として第1のビット長と第2のビット長との少なくとも2つがあり、前記第1のタイミングは前記シリアルインターフェースが前記第1のビット長のアドレスを送信した場合に該アドレスに応じたデータを受信するタイミングであり、前記第2のタイミングは前記シリアルインターフェースが前記第2のビット長のアドレスを送信した場合に該アドレスに応じたデータを受信するタイミングであることを特徴とする付記1乃至4いずれか一項記載の情報処理装置。
(付記6)
アドレスの各ビットをシリアルに送信し、データの各ビットをシリアルに受信するシリアルインターフェースと、起動プログラムを格納するブートメモリと、起動時に前記起動プログラムを実行して起動時処理を行なう制御回路とを含む情報処理装置において、
第1のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが所定のデータに一致するか否かを判断し、
前記判断の結果がデータ不一致の場合には、第2のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かを判断し、
前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致したタイミングから以降のデータを必要なデータとして順次読み込む
各段階を含むことを特徴とするダウンロード制御方法。
(付記7)
前記シリアルインターフェースから固定のビット値をアドレスとして送信し続けることを特徴とする付記6記載のダウンロード制御方法。
The present disclosure includes the following contents.
(Appendix 1)
Serial interface that transmits each bit of address serially and receives each bit of data serially;
A boot memory for storing a startup program;
A control circuit that executes the startup program at startup to perform startup processing;
The control circuit determines whether or not the data received serially by the serial interface matches a predetermined data in the start-up process with a first timing as a start timing. Is configured to determine whether data serially received by the serial interface matches the predetermined data with a second timing as a start timing.
(Appendix 2)
The control circuit repeats the determination on whether the data serially received by the serial interface matches the predetermined data in the startup process for received data received at different start timings sequentially. The information processing apparatus according to
(Appendix 3)
The information processing apparatus according to
(Appendix 4)
4. The information processing apparatus according to
(Appendix 5)
There are at least two bit lengths that the address can take, a first bit length and a second bit length, and the first timing is determined when the serial interface transmits an address of the first bit length. It is a timing for receiving data corresponding to an address, and the second timing is a timing for receiving data corresponding to the address when the serial interface transmits an address having the second bit length. The information processing apparatus according to any one of
(Appendix 6)
A serial interface that serially transmits each bit of an address and receives each bit of data serially, a boot memory that stores a startup program, and a control circuit that executes the startup program at startup and performs startup processing In an information processing apparatus including:
Determining whether the data received serially by the serial interface with a first timing as a start timing matches a predetermined data;
If the result of the determination is a data mismatch, it is determined whether the data received serially by the serial interface with the second timing as a start timing matches the predetermined data;
A download control method comprising the steps of sequentially reading subsequent data as necessary data from a timing when data serially received by the serial interface coincides with the predetermined data.
(Appendix 7)
The download control method according to
20 情報処理装置
21 SPIインターフェース
22 ブートROM
23 制御CPU
24 RAMインターフェース
25 内部バス
26 RAM
30 シリアルROM
20
23 Control CPU
24
30 Serial ROM
Claims (5)
起動プログラムを格納するブートメモリと、
起動時に前記起動プログラムを実行して起動時処理を行なう制御回路と、
を含み、前記制御回路は、前記起動時処理において、第1のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが所定のデータに一致するか否かを判断し、データ不一致の場合には、第2のタイミングを開始タイミングとして前記シリアルインターフェースがシリアルに受信するデータが前記所定のデータに一致するか否かを判断することを特徴とする情報処理装置。 Serial interface that transmits each bit of address serially and receives each bit of data serially;
A boot memory for storing a startup program;
A control circuit that executes the startup program at startup to perform startup processing;
The control circuit determines whether or not the data received serially by the serial interface matches a predetermined data in the start-up process with a first timing as a start timing. Is configured to determine whether data serially received by the serial interface matches the predetermined data with a second timing as a start timing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008208922A JP5251353B2 (en) | 2008-08-14 | 2008-08-14 | Information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008208922A JP5251353B2 (en) | 2008-08-14 | 2008-08-14 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010044638A true JP2010044638A (en) | 2010-02-25 |
JP5251353B2 JP5251353B2 (en) | 2013-07-31 |
Family
ID=42015962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008208922A Expired - Fee Related JP5251353B2 (en) | 2008-08-14 | 2008-08-14 | Information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5251353B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8614920B2 (en) | 2012-04-02 | 2013-12-24 | Winbond Electronics Corporation | Method and apparatus for logic read in flash memory |
JP2014071914A (en) * | 2012-09-27 | 2014-04-21 | Huabang Electronic Co Ltd | Flash memory device and method for operating memory device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004046649A (en) * | 2002-07-12 | 2004-02-12 | Toyo Commun Equip Co Ltd | Method for automatically identifying serial memory |
JP2004265283A (en) * | 2003-03-04 | 2004-09-24 | Toyo Commun Equip Co Ltd | Method and device for automatically discriminating access mode of spi memory |
-
2008
- 2008-08-14 JP JP2008208922A patent/JP5251353B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004046649A (en) * | 2002-07-12 | 2004-02-12 | Toyo Commun Equip Co Ltd | Method for automatically identifying serial memory |
JP2004265283A (en) * | 2003-03-04 | 2004-09-24 | Toyo Commun Equip Co Ltd | Method and device for automatically discriminating access mode of spi memory |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8614920B2 (en) | 2012-04-02 | 2013-12-24 | Winbond Electronics Corporation | Method and apparatus for logic read in flash memory |
JP2014071914A (en) * | 2012-09-27 | 2014-04-21 | Huabang Electronic Co Ltd | Flash memory device and method for operating memory device |
Also Published As
Publication number | Publication date |
---|---|
JP5251353B2 (en) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679539B (en) | Master-slave system, command execution method and data access method | |
US10007628B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
US10241955B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
RU2402804C2 (en) | Method of booting host device from mmc/sd device, host device bootable from mmc/sd device and mmc/sd device from which host device may be booted | |
CN112947977B (en) | Online software upgrading method and system | |
CN115858431A (en) | Data transmission control method, controller and electronic equipment | |
JP2005128747A (en) | Integrated circuit device with transmission/reception macro for serial transfer bus | |
KR101197152B1 (en) | Electronic device, electronic device system and control method thereof | |
JP5251353B2 (en) | Information processing device | |
JP2007299227A (en) | Information processing apparatus and method for booting the same | |
JP2009110335A (en) | Semiconductor device and data processing system | |
JP2008059565A (en) | Memory interface for controlling burst memory access, and method for controlling the same | |
EP3459189B1 (en) | Communication apparatus, communication method, program, and communication system | |
WO2019070361A1 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
KR20050046932A (en) | System for checking state of slave devices using i2c bus | |
CN110737480B (en) | Serial port driver multiplexing method and device | |
US20110116331A1 (en) | Method for initializing memory device | |
JP2014048647A (en) | Image display device | |
JP2019074820A (en) | Memory control device | |
JP2001357023A (en) | Semiconductor integrated circuit and method for writing into nonvolatile memory built therein | |
EP0640925B1 (en) | Data processing system having serial interface | |
CN106445571B (en) | Mainboard and starting method | |
JP7482751B2 (en) | Register Control Unit | |
JP7571202B2 (en) | Method for synchronizing SPI operating modes between an SPI host and an SPI device, and SPI bus synchronizer | |
JP4507888B2 (en) | Microcomputer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110407 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130222 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130319 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130401 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5251353 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160426 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |