JP4988982B2 - マイクロコンピュータの制御方法 - Google Patents

マイクロコンピュータの制御方法 Download PDF

Info

Publication number
JP4988982B2
JP4988982B2 JP2000342848A JP2000342848A JP4988982B2 JP 4988982 B2 JP4988982 B2 JP 4988982B2 JP 2000342848 A JP2000342848 A JP 2000342848A JP 2000342848 A JP2000342848 A JP 2000342848A JP 4988982 B2 JP4988982 B2 JP 4988982B2
Authority
JP
Japan
Prior art keywords
program
data
microcomputer
area
written
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.)
Expired - Lifetime
Application number
JP2000342848A
Other languages
English (en)
Other versions
JP2002149625A (ja
Inventor
英雄 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
On Semiconductor Trading Ltd
Original Assignee
On Semiconductor Trading Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by On Semiconductor Trading Ltd filed Critical On Semiconductor Trading Ltd
Priority to JP2000342848A priority Critical patent/JP4988982B2/ja
Priority to TW090126545A priority patent/TWI233040B/zh
Priority to KR1020010069143A priority patent/KR20020036717A/ko
Priority to US10/010,306 priority patent/US6954815B2/en
Priority to EP01309499A priority patent/EP1205845B1/en
Priority to CNB2004100475007A priority patent/CN1265275C/zh
Priority to CNB011374160A priority patent/CN1162786C/zh
Publication of JP2002149625A publication Critical patent/JP2002149625A/ja
Application granted granted Critical
Publication of JP4988982B2 publication Critical patent/JP4988982B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Microcomputers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、USBインターフェース回路及びプログラム格納用メモリとしてEEPROMを内蔵したマイクロコンピュータの制御方法に関するものであり、特にホスト(例えば、パーソナルコンピュータ)からEEPROMへのプログラムデータの書き込み及び実行に係る制御方法に関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータ等において、周辺デバイスの拡張性の自由度を高めるために、USB(Universal Serial Bus)のサポートが始められている。USBはユーザの利便性を考慮して考案されたシリアルインターフェース規格であって、キーボード、マウス、カメラ、プリンタ、スキャナー、スピーカ等の様々な周辺デバイスとパーソナルコンピュータ等との通信に共通に使用できる。
【0003】
図6はUSBを利用したパーソナルコンピュータと周辺デバイスとの接続構成例を示す図である。上位のパーソナルコンピュータ100とハブ101との間はUSBケーブルで接続され、さらにハブ101の下位には周辺デバイス102〜105が接続され得る。そして、パーソナルコンピュータ100によって周辺デバイス102〜105の管理が行われる仕組みになっている。このように、USBは多重スター型のネットワーク構造の双方向通信可能なシリアルバスといえる。
【0004】
ここで、USBケーブルには4本の信号線が含まれる。その内訳は電源用2本と、データ信号用2本である。データ信号は基本的には差動信号(D+,D-)として扱われる。また、USBを利用したデータ転送は、転送単位がフレームという概念で時間分割され、そのフレームを積み重ねていくことにより行う。1つのフレームはSOF(Start Of Frame)パケットにより開始する。そして、ホストのパーソナルコンピュータは予めそのフレームの中にスケジューリングされたデータ転送要求トークン(キーボードやカメラからのデータ入力要求や、音声データの出力要求)を順次送出することにより、複数の周辺デバイスとのデータ転送を並行して行う。
【0005】
なお、USBに関する技術文献として、例えば「Interface」(1997年1月号)、特開平11−205412号公報等がある。
【0006】
ところで、上述した周辺デバイスには、通常、デバイスの動作を制御するためのマイクロコンピュータが搭載される。ここで、マイクロコンピュータにはプログラム格納用メモリとして、電気的に書き換え、読み出し及び消去可能な不揮発性メモリであるEEPROMが内蔵されているものとする。このEEPROMには、上記の機能に加えてプログラムデータを一括消去する機能を備えたフラッシュROMも含まれる。
【0007】
従来、上記のEEPROMにプログラムデータを書き込む場合、2つの方法が行われていた。以下では、プログラム格納用メモリとしてフラッシュROMを備えたマイクロコンピュータを例として説明する。
【0008】
1つの方法は、図7に示すようにROMライター110を用いてマイクロコンピュータ111に内蔵されたフラッシュROM112にパラレルにデータを書き込む場合である。例えば、8ビットのマイクロコンピュータ111においては、データ信号線が8本、アドレス信号線が16本、コントロール信号線が3本(チップイネーブル信号、ライトイネーブル信号、リードイネーブル信号)が必要であった。
【0009】
また、フラッシュROM112に書き込むべきプログラムデータはパーソナルコンピュータ内にヘキサファイル等の所定のファイル形式で存在する場合が多い。そこで、パーソナルコンピュータからフラッシュROMにプログラムデータを書き込む場合、図8に示すように、パーソナルコンピュータ100に併設されたシリアル通信ユニット115(RS232C等)を用い、シリアル信号線113を介してマイクロコンピュータ111と接続していた。
【0010】
また、マイクロコンピュータ111にはSIO(Serial Input/Output)回路114が内蔵されると共に、フラッシュROM112の所定領域にはSIO回路114を動作させるためのSIO制御プログラムが予め書き込まれている。パーソナルコンピュータ100からシリアル信号線113を介してプログラムデータが転送されて来ると、SIO回路114はSIO制御プログラムに従って、フラッシュROM112に書き込み動作を行う。しかしながら、上述したシステム構成ではSIO回路114、シリアル通信ユニット115(RS232C等)という特別な外部回路と通信ソフトを必要としていた。
【0011】
【発明が解決しようとする課題】
上述したように、従来マイクロコンピュータに内蔵されたプログラム格納用メモリであるフラッシュROMにプログラムデータを書き込む場合、当該プログラムデータをパラレルに書き込むと信号線の本数が多くなり、シリアルに書き込む場合には特別の外部回路や通信ソフトを必要としていた。
【0012】
そこで本発明は、ホスト(パーソナルコンピュータ)と周辺デバイスとを接続して双方向通信可能な環境において備えられているUSBケーブルをそのまま利用して、ホスト(パーソナルコンピュータ)からマイクロコンピュータに内蔵されたフラッシュROMへプログラムデータの書き込み等を行うと共に、プログラムデータ書き込み後はUSBケーブルを本来の目的である双方向通信に用いるようにし、特別のシリアルラインや外部回路、通信ソフト等を不要とすることを目的としている。
【0013】
【課題を解決するための手段】
本発明のマイクロコンピュータの制御方法は、上述した課題を解決するために、ホストとマイクロコンピュータ間のデータ送受信のインターフェースを行うUSBインターフェース回路と、書き込み制御プログラムが格納された第1のプログラム領域及びプログラムデータが書き込まれる第2のプログラム領域とを有し、電気的に書き換え及び読み出し可能な不揮発性メモリと、前記不揮発性メモリから読み出されるプログラムを実行するCPUと、を備えたマイクロコンピュータの制御方法であって、マイクロコンピュータのリセットに応じて前記書き込み制御プログラムの実行を開始する第1の段階と、USBの初期化を実行する第2の段階と、前記ホストからプログラムデータを前記不揮発性メモリの第2のプログラム領域に書き込む第3の段階と、前記第2のプログラム領域に書き込まれたプログラムを実行する第4の段階と、を有することを特徴とする。これにより、ホストからマイクロコンピュータへプログラムデータの書き込みを高速かつ円滑に行うことができる。
【0014】
また、前記マイクロコンピュータのリセットはパワーオンリセットであることを特徴とする。
【0015】
また、前記第4の段階の後に、前記ホストからプログラムデータを再書き込みするか否を判定する段階を有し、再書き込みする場合には前記第1の段階から第4の段階を再度繰り返すことにより、前記ホストからプログラムデータを前記不揮発性メモリの第2のプログラム領域に再書き込みし、当該再書き込み後のプログラムを実行することを特徴とする。これにより、ホストからのプログラムデータの再書き込みが可能となる。
【0016】
また、前記第3の段階の後に、前記第1のプログラム領域内の特定の領域に、照合用コードデータを書き込む段階を有すると共に、前記第1の段階の後に、前記特定の領域のデータと照合用コードデータとを比較する段階を有し、両者が一致しない場合には前記第3の段階に移行し、両者が一致した場合には前記ホストからプログラムデータを前記不揮発性メモリの第2のプログラム領域に再度書き込むことなく前記第2のプログラム領域に書き込まれたプログラムを実行することを特徴とする。
【0017】
これにより、プログラムデータを書き込むか、既に第2のプログラム領域に書き込まれたプログラムを実行するかの切り換えをソフト的に行うことができ、ユーザーの利便性が向上する。
【0018】
【発明の実施の形態】
次に、本発明の実施形態について図面を参照しながら説明する。図1は、本発明の実施形態に係るマイクロコンピュータの構成を示すブロック図である。
【0019】
以下で、マイクロコンピュータ10は8ビット構成として説明する。マイクロコンピュータ10とパーソナルコンピュータ100とは1対の差動信号線によって接続される。そして、USBデータ、すなわちUSB差動信号(D+,D-)はマイクロコンピュータ10の端子P1,P2を介して入出力される。USB差動信号(D+,D-)は、USB通信プロトコルに従ったシリアルデータ信号である。
【0020】
20は、端子P1,P2に接続された入出力回路であって、差動入力バッファ21、入力バッファ22,23及び出力バッファ24,25から構成されている。ここで、入力バッファ22,23はUSB差動信号(D+,D-)の状態が(L,L)となる場合を考慮して設けられている。
【0021】
マイクロコンピュータ10に内蔵されたUSBインターフェース回路30は、パーソナルコンピュータ100との間のデータ送受信のインターフェースを行うもので、特にデータ受信時は入出力回路20からのUSB差動信号(D+,D-)を受けて各種のデータ処理を行う。
【0022】
USBインターフェース回路30は、上記シリアルデータ信号から必要なデータを抽出する。この時、USBインターフェース回路30は当該シリアルデータ信号が如何なる転送フォーマットであるかを判別すると共に、エラー信号処理等を行う。またUSBインターフェース回路30は、上記データ処理が施されたシリアル信号をマイクロコンピュータ100が処理可能な所定形式のパラレル信号(例えば8ビット構成)に変換する。
【0023】
さらに、USBインターフェース回路30は、パラレル変換された8ビット×4=32ビットのプログラムデータを一時記憶するテンポラリレジスタ31及び制御レジスタ(不図示)を備えている。制御レジスタには、USBの初期化時にパーソナルコンピュータ100がホストとして管理すべき各種データ(デバイスに割り付けられるアドレスデータ等)がセットされる。
【0024】
なお、USBインターフェース回路30はマイクロコンピュータ10からパーソナルコンピュータ100へのデータ送信時には上記と全く逆のデータ処理(パラレルデータからシリアルデータへの変換等)を行っている。
【0025】
RAM40はUSBインターフェース回路30のテンポラリレジスタ31のデータから逐次転送される32ビット単位のプログラムデータを一時記憶するために利用される。
【0026】
そして、USBインターフェース回路30とRAM40との間のデータ転送を行うために、専用の32本の信号線が設けられている。RAM40に蓄積されたプログラムデータが所定量(例えば128バイト)に達すると、128バイトのプログラムデータはマイクロコンピュータ10のバス45を経由してフラッシュROM50へ転送される。
【0027】
逆に、フラッシュROM50に書き込まれたプログラムデータをRAM40へ転送し、そのRAM40内に記憶されたプログラムデータをUSBインターフェース回路30のテンポラリレジスタ31へ転送することも可能である。
【0028】
一般に、USB通信によればパーソナルコンピュータ100から大量のデータがデバイス側に送出されるため、デバイス側には特別のデータバッファを設けることが行われる。
【0029】
これに対して、本発明ではマイクロコンピュータ10がデータメモリとして本来有しているRAM40をUSB通信によるデータを一時記憶するために利用するという構成を採ることでデータメモリの有効活用を図っている点も特徴である。
【0030】
図2は、RAM40及び周辺回路を示すブロック図である。USBインターフェース回路30からはアドレス信号ADR1、CPU70からはアドレス信号ADR2が出力され、アドレス選択回路80に入力される。アドレス選択回路80はアドレス信号ADR1,ADR2のいずれかを選択してアドレス指定回路81に入力する。
【0031】
そして、アドレス指定回路81の出力はアドレスデコーダ41に入力され、アドレス信号ADR1,ADR2のいずれかに応じて同一のデータ領域がアクセス可能に構成されている。
【0032】
上述した構成によれば、RAM40のデータ領域42はアドレス信号ADR2が選択された場合はCPU70がコントロールするデータメモリ領域として利用可能であると共に、アドレス信号ADR1が選択された場合には、USBインターフェース回路30からのプログラムデータ(32ビット単位)を一時記憶するためのデータメモリ領域としても利用可能である。すなわち、RAM40のデータ領域は、CPU70とUSBインターフェース回路30の両方からアクセス可能である。
【0033】
ただし、上記のアドレス選択は、パーソナルコンピュータ100とのデータ送受信中については、USBインターフェース回路30からのアドレス信号ADR1を選択するように構成されている。これはパーソナルコンピュータ100からのデータ転送が途中で中断できないというUSBの特性に基づくものである。具体的には、USBインターフェース回路30のテンポラリレジスタ31がフル状態なったことを検知する信号に基づいて、マイクロコンピュータ10はウエイト(待機)状態に自動的に設定される。
【0034】
また、図1において、50はフラッシュROMであり、USB制御プログラム(書き込み制御プログラム)が予め格納された第1のプログラム領域53とパーソナルコンピュータ100からのプログラムデータがRAM40を経由して書き込まれる第2のプログラム領域52と、に分割されている。ここで、第1のプログラム領域53は書き換えが不能なようにライトプロテクトされている。
【0035】
また、第2のプログラム領域52の一部には照合用コードデータ領域52Aが設けられている。この領域には、第1のプログラム領域53の書き込み制御プログラムに従って、パーソナルコンピュータ100からのプログラムデータを書き込み後に、照合用コードデータが書き込まれる。
【0036】
この照合用コードデータは例えば128Kバイトのデータ量であって、予め第1のプログラム領域53の一部に書き込まれている。或いは、照合用コードデータは上記プログラムデータに付随してパーソナルコンピュータ100から送信するようにしても良い。
【0037】
この照合用コードデータ領域52Aのデータが予め第1のプログラム領域53の一部に記憶された照合用コードデータと一致した場合には、マイクロコンピュータは既にプログラムデータが書き込み済みであると認識し、再度USBの初期化を行うことなく、当該プログラムデータを実行する。
【0038】
一方、この照合用コードデータ領域52Aのデータが予め第1のプログラム領域53の一部に記憶された照合用コードデータと一致しない場合には、USBの初期化を経てプログラムデータの書き込み動作に移行する。
【0039】
60はプログラムカウンタであって、その出力はフラッシュROM50のアドレスデコーダ51に印加されている。プログラムカウンタ60の出力値は後に説明するようにUSB通信の状態に応じて、CPUからの命令により所定番地にジャンプする。すなわち、パーソナルコンピュータ100からのプログラムデータの書き込み時には、プログラムカウンタ60は第1のプログラム領域53(書き込み制御プログラムが格納されている)の先頭アドレスである(FF00)番地にジャンプすると共に、プログラムデータの書き込み後は、第2のプログラム領域52の先頭アドレスである(0000)番地にジャンプする。そして、CPU70は、フラッシュROM50から読み出されるプログラム命令に従ってマイクロコンピュータ10の動作を実行する。
【0040】
次に、上述したマイクロコンピュータ10の制御方法について図3のフローチャートを参照しながら説明する。
【0041】
まず、最初のステップ200では、マイクロコンピュータ10がUSBケーブルに接続される。このとき、USBケーブルの電源ラインによってマイクロコンピュータ10に電源が投入されることにより、マイクロコンピュータ10は内蔵されたパワーオンリセット回路によりリセットされる。
【0042】
次に、ステップ201において、書き込み制御プログラムが開始する。このとき、プログラムカウンタ60の値は、第1のプログラム領域53の先頭アドレスである(FF00)番地へジャンプする。従って、その後マイクロコンピュータ10は当該書き込み制御プログラムに従って以下の処理を実行する。
【0043】
ステップ201においてUSBケーブルにマイクロコンピュータ10が接続されると、マイクロコンピュータ10側に設けられたプルアップ抵抗を介して、USB差動信号(D+,D-)が(L,L)から例えば(H,L)が変化する。パーソナルコンピュータ100はこのUSB差動信号(D+,D-)の変化により、マイクロコンピュータ100がUSBネットワークに接続されたことを検知し、所定時間後にUSBバスリセット信号を発行する。USBバスリセット信号の受信後、次のステップに進む。
【0044】
ステップ203では、エニュミュレーション(Enumeration)によるUSBの初期化を行う。これは、一般にマイクロコンピュータ10とパーソナルコンピュータ100との間でUSBデータの送受信を行うことが可能な環境設定を行うための一連のソフトウエア処理である。
【0045】
エニュミュレーションにより行われる主な処理は、パーソナルコンピュータ100の初期化と、パーソナルコンピュータ100が支配するデバイスにアドレスを割り付ける処理である。後者において、USBインターフェース回路30内の制御レジスタ(アドレスレジスタ)内に、パーソナルコンピュータ100が割り当てた特定のアドレスが記憶される。これにより、マイクロコンピュータ10は、パーソナルコンピュータ100が送信して来たUSBパケット内のアドレスと上記アドレスレジスタ内のアドレスとを照合し、それらが一致した場合にのみ送信されきたUSBデータの処理を行う。
【0046】
こうして、USBデータの送受信を行うことが可能な環境設定が終了すると、ステップ210では、パーソナルコンピュータ100からのプログラムデータのロードを実行する。
【0047】
このステップ210の詳細は図4のフローチャートに示す。ステップ211では、パーソナルコンピュータ100からフラッシュROMに書き込むべきプログラムデータがUSB差動信号データ(D+,D-)の形で入力されてくる。
【0048】
ステップ212では、この入力されたUSB差動信号データ(D+,D-)をUSBインターフェース回路30によってデータ処理する。このデータ処理内容は上述した通りであるが、シリアルデータ(8ビット×4)を所定のパラレルデータ(32ビット)に変換するのがその主な処理である。
【0049】
ステップ213では、USBインターフェース回路30からRAM40へパラレル変換されたプログラムデータが書き込まれる。そして、RAM40へ書き込まれたプログラムデータ量が所定量(例えば128バイト)に達すると、この所定量を単位としてRAM40からバス45を介してフラッシュROM50の第1の領域へ書き込みが開始される(ステップ214)。これはフラッシュROM50が複数ブロックに分割されており、128バイトをブロックとして構成されていることによる。したがって、RAM40のデータの蓄積量はフラッシュROM50のブロック構成に応じて適宜に選択可能である。
【0050】
ここで、実際にはUSBインターフェース回路30からRAM40へパラレル変換されたプログラムデータの書き込み動作と、RAM40からフラッシュROM50へ書き込み動作は並行して行われるために、高速書き込みが実現される。
【0051】
ステップ214において、フラッシュROMへの書き込みが開始されるがこれには所定の時間を要する。そこで、ステップ215ではマイクロコンピュータ10はソフト的にNACK状態にセットされる。これはUSBパケットのハンドシェイク・パケットの一種であって、ホストであるパーソナルコンピュータ100からのデータを受け付けることができないことを知らせるためにパーソナルコンピュータ100へ返される。
【0052】
そして、ステップ216では書き込み終了か否かを判定する。その判定結果がNOであれば、NACK状態を維持する。その判定結果がYESであれば、ACK状態にセットされ(ステップ217)、ACKはマイクロコンピュータ10側でデータを受け付け可能であることを知らせるためにパーソナルコンピュータ100へ返される。
【0053】
そして、次のステップ218ではフラッシュROM50へのプログラムデータの書き込みが全て終了したかを判定する。その判定結果がNOであれば、ステップ211へ戻り、残余のプログラムデータの書き込みを続行する。ここで、プログラムデータの書き込みはブロック(ページ)単位(例えば128バイト)で行われるため、全部のページが書き込まれるまでこの処理は繰り返される。
【0054】
判定結果がYESの場合には、上記の過程で書き込まれたプログラムを実行する(ステップ220)。すなわち、プログラムカウンタ60の値は第2のプログラム領域52の先頭アドレスである(0000)番地にジャンプする。そして、マイクロコンピュータ10はパーソナルコンピュータ10から供給されたプログラムデータを読み出し、CPU70は解読されたプログラム命令に基づいてマイクロコンピュータの動作を実行開始する。
【0055】
なお、上記のようにパーソナルコンピュータ100からマイクロコンピュータ10のフラッシュROM50に対してプログラムデータを書き込む場合のプログラムステップについて説明したが、フラッシュROM50に書き込まれたプログラムデータを読み出して、パーソナルコンピュータ100へ送り返し、ベリファイを行うことも可能である。
【0056】
その場合には、プログラムステップの順序は上述したものと逆の順序となる。すなわち、フラッシュROM50から読み出されたプログラムデータはRAM40に一時記憶された後、USBインターフェース回路30へ逐次転送される。そして、USBインターフェース回路30では書き込みの際とは逆のデータ処理を施し、パラレルデータを所定のシリアルデータに変換後、USBケーブルを介してパーソナルコンピュータ100へ送出する。
【0057】
図3のフローチャートに戻ると、パーソナルコンピュータ100から書き込まれたプログラムの実行の過程(ステップ220)において、再度、プログラムデータを書き込むかどうかを判定する(ステップ221)。これは、USBケーブルの断線等の何らかの通信エラーに対応するためのステップである。そこで、YESと判定された場合には、ステップ203に戻り、プログラムデータの再ロードが行われる。
【0058】
このように、上述したマイクロコンピュータの制御方法によれば、フラッシュROM50の第1のプログラム領域53に予め記憶された書き込み制御プログラムに従って、パーソナルコンピュータ100からプログラムデータを第1のプログラム領域53に書き込むと共に、当該プログラムを実行することが可能となる。
【0059】
さて、実使用状態において、マイクロコンピュータ10からUSBケーブルをはずし電源オフしてから、再度USBケーブルを接続し電源オンにする場合を考えると、既に実行すべきプログラムデータがロードされているにもかかわらず、上記図3のプログラムフローに従うと、書き込み制御プログラムが起動してしまい、不要なプログラムステップが実行されてしまうという不都合が生じる。これを回避するには外部のジャンパースイッチによって2つのプログラムを切り分ける方法が考えられるが、ユーザーとって非常に不便である。
【0060】
そこで、図5のフローチャートに示すように、書き込み制御プログラムの実行の過程で、プログラムデータの書き込み判定を行うステップ202を設けた。すなわち、第2のプログラム領域52の一部には照合用コードデータ領域52Aが設けられている。
【0061】
この照合用コードデータ領域52Aには、プログラムデータの書き込み後(ステップ218)に、照合用コードデータが書き込まれる。前述したように、照合用コードデータは例えば128Kバイトのデータ量であって、予め第1のプログラム領域53の一部に書き込まれていても良いし、或いはプログラムデータに付随してパーソナルコンピュータ100から送信するようにしても良い。
【0062】
ステップ202では、照合用コードデータ領域52Aのデータを読み出し、予め第1のプログラム領域53に書き込まれているか、マイクロコンピュータ内の所定のレジスタに記憶された照合用コードデータと比較する。それらが一致した場合には、マイクロコンピュータは既にプログラムデータが書き込み済みであると認識し、再度USBの初期化を行うことなく、当該プログラムデータを実行する。
【0063】
一方、照合用コードデータ領域52Aのデータが照合用コードデータと一致しない場合には、USBの初期化を経てプログラムデータの書き込み動作に移行する。これにより、2つのプログラムの切り分けをソフトウエアにより行うことが可能となるのでユーザーの利便性が向上する。
【0064】
また、バージョンアップされたプログラムデータを再書き込みしたい場合には、上記の照合用コードデータ領域52Aの照合コードデータを書き換えるか、その1ビットを削除する等により、照合判定結果は不一致となるので、再ロードすることが可能となる。
【0065】
【発明の効果】
本発明のマイクロコンピュータの制御方法によれば、ホスト(例えばパーソナルコンピュータ)と周辺デバイスとの接続のためのUSBケーブルを利用して、ホストからマイクロコンピュータへのプログラム書き込みを高速に行うことが可能となる。また、プログラムの転送にUSBを利用しているので、特別のシリアルラインや外部回路、通信ソフト等を不要とすることができる。
【0066】
また、本発明によれば、不揮発性メモリの一部領域に照合用コードデータを書き込み、プログラムデータが書き込み済みかどうか書き込み照合判定を行っているので、書き込み制御プログラムと実行すべきプログラムの切り分けをソフトウエアにより行うことが可能となるのでユーザーの利便性が向上するという利点を有している。
【図面の簡単な説明】
【図1】本発明の実施形態に係るマイクロコンピュータを示すブロック図である。
【図2】本発明の実施形態に係るマイクロコンピュータのRAM及び周辺回路を示すブロック図である。
【図3】本発明の実施形態に係るマイクロコンピュータ10の制御方法を示すフローチャートである。
【図4】本発明の実施形態に係るマイクロコンピュータ10の制御方法を示すフローチャートである。
【図5】本発明の実施形態に係るマイクロコンピュータ10の制御方法を示すフローチャートである。
【図6】USBを利用したパーソナルコンピュータと周辺デバイスとの接続構成例を示す図である。
【図7】従来のフラッシュROMへのプログラムデータ書き込み方法を示す図である。
【図8】従来のフラッシュROMへのプログラムデータ書き込み方法を示す図である。
【符号の説明】
10 マイクロコンピュータ
20 入出力回路
30 USBインターフェース回路
40 RAM
45 バス
50 フラッシュROM
51 アドレスデコーダ
52 第2のプログラム領域
53 第1のプログラム領域
60 プログラムカウンタ
70 CPU

Claims (2)

  1. ホストとマイクロコンピュータ間のデータ送受信のインターフェースを行うUSBインターフェース回路と、書き込み制御プログラムが格納された第1のプログラム領域及びプログラムデータが書き込まれる第2のプログラム領域とを有し、電気的に書き換え及び読み出し可能な不揮発性メモリと、前記不揮発性メモリから読み出されるプログラムを実行するCPUと、を備えたマイクロコンピュータの制御方法であって、
    マイクロコンピュータのパワーオンリセットに応じて前記書き込み制御プログラムの実行を開始する第1の段階と、USBの初期化を実行する第2の段階と、前記ホストからプログラムデータを前記不揮発性メモリの第2のプログラム領域に書き込む第3の段階と、前記第2のプログラム領域に書き込まれたプログラムを実行する第4の段階と、を有し、
    前記第3の段階の後に、前記第2のプログラム領域域内の特定の領域に照合用コードデータを書き込む段階を有すると共に、前記第1の段階の後に、前記特定の領域に書き込まれた照合用コードデータと、予め前記第1のプログラム領域に書き込まれた照合用コードデータとを比較する段階を有し、両者の照合用コードデータが一致しない場合には前記第2の段階に移行し、両者の照合用コードデータが一致した場合には前記ホストからプログラムデータを前記不揮発性メモリの第2のプログラム領域に再度書き込むことなく前記第2のプログラム領域に書き込まれたプログラムを実行し、
    バージョンアップされたプログラムデータを前記不揮発性メモリの第2のプログラム領域に再書き込みする際には、前記第2のプログラム領域内の特定の領域に書き込まれた照合用コードデータを、前記比較の結果における両者の照合用コードデータが一致しないように書き換えることを特徴とするマイクロコンピュータの制御方法。
  2. 前記ホストはパーソナルコンピュータであることを特徴とする請求項1に記載のマイクロコンピュータの制御方法。
JP2000342848A 2000-11-10 2000-11-10 マイクロコンピュータの制御方法 Expired - Lifetime JP4988982B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2000342848A JP4988982B2 (ja) 2000-11-10 2000-11-10 マイクロコンピュータの制御方法
TW090126545A TWI233040B (en) 2000-11-10 2001-10-26 Microcomputer and controlling method thereof
KR1020010069143A KR20020036717A (ko) 2000-11-10 2001-11-07 마이크로컴퓨터 및 그 제어 방법
US10/010,306 US6954815B2 (en) 2000-11-10 2001-11-08 Microcomputer with universal serial bus interface circuit and method of controlling the same
EP01309499A EP1205845B1 (en) 2000-11-10 2001-11-09 Microcomputer and method of controlling the same
CNB2004100475007A CN1265275C (zh) 2000-11-10 2001-11-09 微型计算机
CNB011374160A CN1162786C (zh) 2000-11-10 2001-11-09 微型计算机及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000342848A JP4988982B2 (ja) 2000-11-10 2000-11-10 マイクロコンピュータの制御方法

Publications (2)

Publication Number Publication Date
JP2002149625A JP2002149625A (ja) 2002-05-24
JP4988982B2 true JP4988982B2 (ja) 2012-08-01

Family

ID=18817322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000342848A Expired - Lifetime JP4988982B2 (ja) 2000-11-10 2000-11-10 マイクロコンピュータの制御方法

Country Status (1)

Country Link
JP (1) JP4988982B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281103B2 (en) 2003-10-01 2007-10-09 Kabushiki Kaisha Toshiba Microcomputer with a security function for accessing a program storage memory
JP2007011583A (ja) * 2005-06-29 2007-01-18 Toshiba Corp 情報処理装置および同装置の動作制御方法
KR101822977B1 (ko) * 2010-12-21 2018-01-29 삼성전자주식회사 멀티-인터페이스 메모리 카드와 이의 동작 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991267A (ja) * 1995-09-25 1997-04-04 Sanyo Electric Co Ltd 不揮発性メモリのデータ書き込み装置
JP3562563B2 (ja) * 1998-06-12 2004-09-08 ティアック株式会社 交換型記録媒体を使用するデ−タ蓄積装置
WO2000017749A1 (en) * 1998-09-24 2000-03-30 Ericsson Inc. Remote firmware upgrade

Also Published As

Publication number Publication date
JP2002149625A (ja) 2002-05-24

Similar Documents

Publication Publication Date Title
JP5173818B2 (ja) 組込みコントローラを介するフラッシュストレージの初期化
US6810444B2 (en) Memory system allowing fast operation of processor while using flash memory incapable of random access
KR100708128B1 (ko) 낸드 플래시 메모리 제어 장치 및 방법
US20100174866A1 (en) Memory device, electronic device, and host apparatus
JPH06348638A (ja) Pcmcia周辺装置
US11016917B2 (en) Data storage system and method for multiple communication protocols and direct memory access
JPWO2008117520A1 (ja) メモリコントローラ、不揮発性メモリシステムおよびホスト装置
JP2004005699A (ja) Nandフラッシュメモリインタフェース装置
US6954815B2 (en) Microcomputer with universal serial bus interface circuit and method of controlling the same
US20040049617A1 (en) Method of firmware update by USB interface
CN102043638A (zh) 计算机***以及计算机启动设定方法
JP5010065B2 (ja) マイクロコンピュータ
JP4988982B2 (ja) マイクロコンピュータの制御方法
JP4793798B2 (ja) マイクロコンピュータ
US8069448B2 (en) Computer interface controller for peripheral devices
EP1394682B1 (en) Data transfer control device, program and method of fabricating an electronic instrument
JPH10198463A (ja) 動作条件自動設定回路
CN115033520A (zh) Iic数据传输方法、装置、单片机设备及存储介质
JP4860811B2 (ja) マイクロコンピュータ
JP2003108951A (ja) Pcカード
JP2001117778A (ja) ファームウェア書き換え機能を備えたusb装置
JP2001084172A (ja) 半導体記憶装置
JP2002024081A (ja) 半導体集積回路装置
JPH10198524A (ja) ハードディスク制御装置
JPH11167525A (ja) 不揮発性メモリ混載マイコン及びその不揮発性メモリ書換え方法並びに不揮発性メモリ混載マイコンの不揮発性メモリ書換えプログラムを記録した記録媒体

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20051227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090310

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100325

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100412

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100723

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110526

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110526

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110916

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120116

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120427

R150 Certificate of patent or registration of utility model

Ref document number: 4988982

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: 20150511

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term