[go: up one dir, main page]

JP5010065B2 - Microcomputer - Google Patents

Microcomputer Download PDF

Info

Publication number
JP5010065B2
JP5010065B2 JP2000342846A JP2000342846A JP5010065B2 JP 5010065 B2 JP5010065 B2 JP 5010065B2 JP 2000342846 A JP2000342846 A JP 2000342846A JP 2000342846 A JP2000342846 A JP 2000342846A JP 5010065 B2 JP5010065 B2 JP 5010065B2
Authority
JP
Japan
Prior art keywords
program
data
microcomputer
usb
interface circuit
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
JP2000342846A
Other languages
Japanese (ja)
Other versions
JP2002149623A (en
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 JP2000342846A priority Critical patent/JP5010065B2/en
Priority to TW090126545A priority patent/TWI233040B/en
Priority to KR1020010069143A priority patent/KR20020036717A/en
Priority to US10/010,306 priority patent/US6954815B2/en
Priority to EP01309499A priority patent/EP1205845B1/en
Priority to CNB2004100475007A priority patent/CN1265275C/en
Priority to CNB011374160A priority patent/CN1162786C/en
Publication of JP2002149623A publication Critical patent/JP2002149623A/en
Application granted granted Critical
Publication of JP5010065B2 publication Critical patent/JP5010065B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Microcomputers (AREA)
  • Information Transfer Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、USBインターフェース回路及びプログラム格納用メモリとしてEEPROMを内蔵したマイクロコンピュータに関するものであり、特にマイクロコンピュータの供給者を特定するための識別情報を有するマイクロコンピュータに関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータ等において、周辺デバイスの拡張性の自由度を高めるために、USB(Universal Serial Bus)のサポートが始められている。USBはユーザの利便性を考慮して考案されたシリアルインターフェース規格であって、キーボード、マウス、カメラ、プリンタ、スキャナー、スピーカ等の様々な周辺デバイスとパーソナルコンピュータ等との通信に共通に使用できる。
【0003】
図4は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】
【発明が解決しようとする課題】
ところで、USBの初期化の過程において、ホスト側からデバイスを特定するために各デバイスに対してアドレスデータの割り付けが行われると共に、デバイス側からは、デバイスの供給者を特定するための識別情報(以下、ベンダーIDという)をホスト側へ送信し、ホストにおいてベンダーIDの照合が行われる。このベンダーIDはUIF(USB Implemental Forum)という機関において登録、発行が行われている。したがって、デバイス側でベンダーIDを保持することが必要であったが、そのデバイスに最適な保持方法について従来は十分検討がなされていなかった。
【0007】
そこで、本発明は、供給者を特定するための識別情報を効率的に保持すると共に、ホスト側のベンダーIDの照合を円滑に行えるようにしたマイクロコンピュータを提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明のマイクロコンピュータは、上述した課題を解決するために、ホストとマイクロコンピュータ間のデータ送受信のインターフェースを行うUSBインターフェース回路と、電気的に書き換え及び読み出し可能なプログラム格納用の不揮発性メモリと、前記不揮発性メモリから読み出されるプログラムを実行するCPUと、を備えたマイクロコンピュータであって、当該マイクロコンピュータの供給者を特定するための識別情報を記憶するための特定のメモリ領域を前記不揮発性メモリ内に設け、USBの初期化時において、前記特定のメモリ領域から読み出された前記識別情報を前記USBインターフェース回路を介して、ホストに送信することを特徴とする。
【0009】
これにより、供給者を特定するための識別情報を効率的に保持すると共に、ホスト側のベンダーIDの照合を円滑に行うことができる。
【0010】
【発明の実施の形態】
次に、本発明の実施形態について図面を参照しながら説明する。図1は、本発明の実施形態に係るマイクロコンピュータの構成を示すブロック図である。
【0011】
以下で、マイクロコンピュータ10は8ビット構成として説明する。マイクロコンピュータ10とパーソナルコンピュータ100とは1対の差動信号線によって接続される。そして、USB差動信号(D+,D-)はマイクロコンピュータ10の端子P1,P2を介して入出力される。20は、端子P1,P2に接続された入出力回路であって、差動入力バッファ21、入力バッファ22,23及び出力バッファ24,25から構成されている。ここで、入力バッファ22,23はUSB差動信号(D+,D-)の状態が(L,L)となる場合を考慮して設けられている。
【0012】
マイクロコンピュータ10に内蔵されたUSBインターフェース回路30は、パーソナルコンピュータ100との間のデータ送受信のインターフェースを行うもので、特にデータ受信時は入出力回路20からのUSB差動信号(D+,D-)を受けて各種のデータ処理を行う。USB差動信号(D+,D-)は、USB通信プロトコルに従ったシリアルデータ信号である。
【0013】
USBインターフェース回路30は、上記シリアルデータ信号から必要なデータを抽出する。この時、USBインターフェース回路30は当該シリアルデータ信号が如何なる転送フォーマットであるかを判別すると共に、エラー信号処理等を行う。またUSBインターフェース回路30は、上記データ処理が施されたシリアル信号をマイクロコンピュータ100が処理可能な所定形式のパラレル信号(例えば8ビット構成)に変換する。
【0014】
さらに、USBインターフェース回路30は、パラレル変換された8ビット×4=32ビットのプログラムデータを一時記憶するテンポラリレジスタ31及び制御レジスタ(不図示)を備えている。
【0015】
制御レジスタにはパーソナルコンピュータ100がホストとして管理すべき各種データがセットされる。例えば、エニュミュレーションによるUSBの初期化の中で、デバイスに割り付けられるアドレスデータがセットされる。
【0016】
なお、USBインターフェース回路30はマイクロコンピュータ10からパーソナルコンピュータ100へのデータ送信時には上記と全く逆のデータ処理(パラレルデータからシリアルデータへの変換等)を行っている。
【0017】
RAM40はUSBインターフェース回路30のテンポラリレジスタ31のデータから逐次転送される32ビット単位のプログラムデータを一時記憶するために利用される。そして、USBインターフェース回路30とRAM40との間のデータ転送を行うために、専用の32本の信号線が設けられている。RAM40に蓄積されたプログラムデータが所定量(例えば128バイト)に達すると、128バイトのプログラムデータはマイクロコンピュータ10のバス45を経由してフラッシュROM50へ転送される。
【0018】
逆に、フラッシュROM50に書き込まれたプログラムデータをRAM40へ転送し、そのRAM40内に記憶されたプログラムデータをUSBインターフェース回路30のテンポラリレジスタ31へ転送することも可能である。
【0019】
一般に、USB通信によればパーソナルコンピュータ100から大量のデータがデバイス側に送出されるため、デバイス側には特別のデータバッファを設けることが行われる。
【0020】
これに対して、本発明ではマイクロコンピュータ10がデータメモリとして本来有しているRAM40をUSB通信によるデータを一時記憶するために利用するという構成を採ることでデータメモリの有効活用を図っている点も特徴である。
【0021】
図2は、RAM40及び周辺回路を示すブロック図である。USBインターフェース回路30からはアドレス信号ADR1、CPU70からはアドレス信号ADR2が出力され、アドレス選択回路80に入力される。アドレス選択回路80はアドレス信号ADR1,ADR2のいずれかを選択してアドレス指定回路81に入力する。
【0022】
そして、アドレス指定回路81の出力はアドレスデコーダ41に入力され、アドレス信号ADR1,ADR2のいずれかに応じて同一のデータ領域がアクセス可能に構成されている。
【0023】
上述した構成によれば、RAM40のデータ領域42はアドレス信号ADR2が選択された場合はCPU70がコントロールするデータメモリ領域として利用可能であると共に、アドレス信号ADR1が選択された場合には、USBインターフェース回路30からのプログラムデータ(32ビット単位)を一時記憶するためのデータメモリ領域としても利用可能である。すなわち、RAM40のデータ領域は、CPU70とUSBインターフェース回路30の両方からアクセス可能である。
【0024】
ただし、上記のアドレス選択は、パーソナルコンピュータ100とのデータ送受信中については、USBインターフェース回路30からのアドレス信号ADR1を選択するように構成されている。これはパーソナルコンピュータ100からのデータ転送が途中で中断できないというUSBの特性に基づくものである。具体的は、USBインターフェース回路30のテンポラリレジスタ31がフル状態なったことを検知する信号に基づいて、マイクロコンピュータ10はウエイト(待機)状態に自動的に設定される。
【0025】
また、図1において、50はフラッシュROMであり、USB制御プログラム(USBの初期化プログラム及びプログラムデータの書き込み制御プログラム)が予め書き込まれ、格納された第1のプログラム領域53とパーソナルコンピュータ100からのプログラムデータがRAM40を経由して書き込まれる第2のプログラム領域52と、に分割されている。
【0026】
そして、第1のプログラム領域53に隣接してベンダーIDデータ領域54が設けられている。ベンダーIDデータ領域54にはマイクロコンピュータの供給者を特定するための識別情報が含まれている。なお、ベンダーIDデータ領域54はフラッシュROMの中であれば、どのアドレス領域に設けられていても良いが、そのアドレスは特定されていなければならない。
【0027】
60はプログラムカウンタであって、その出力はフラッシュROM50のアドレスデコーダ51に印加されている。プログラムカウンタ60の出力値は後に説明するようにUSB通信の状態に応じて、CPUからの命令により所定番地にジャンプする。
【0028】
すなわち、パーソナルコンピュータ100かのプログラムデータの書き込み時には、プログラムカウンタ60は第1のプログラム領域53(書き込み制御プログラム)の先頭アドレスである(FF00)番地にジャンプすると共に、プログラムデータの書き込み後は、第2のプログラム領域52の先頭アドレスである(0000)番地にジャンプする。そして、CPU70は、フラッシュROM50から読み出されるプログラム命令に従ってマイクロコンピュータ10の動作を実行する。
【0029】
次に、上述したマイクロコンピュータ10の動作例について図3のフローチャートを参照しながら説明する。まず、最初のステップ200では、マイクロコンピュータ10がUSBケーブルに接続される。このとき、USBケーブルの電源ラインによってマイクロコンピュータ10に電源が投入されることにより、マイクロコンピュータ10がパワーオンリセットによりリセットされる。
【0030】
次に、ステップ201において、プログラムカウンタ60の値は、第1のプログラム領域53(書き込み制御プログラム)の先頭アドレスである(FF00)番地へジャンプする。従って、その後マイクロコンピュータ10は当該書き込み制御プログラムに従って以下の処理を実行する。
【0031】
上記のようにステップ201においてUSBケーブルにマイクロコンピュータ10が接続されると、マイクロコンピュータ10側に設けられたプルアップ抵抗を介して、USB差動信号(D+,D-)が(L,L)から例えば(H,L)へと変化する。パーソナルコンピュータ100はこのUSB差動信号(D+,D-)の変化により、マイクロコンピュータ100がUSBネットワークに接続されたことを検知し、所定時間後にUSBバスリセット信号を発行する。ステップ202では、このUSBバスリセット信号待ち状態である。
【0032】
ステップ203は、USBバスリセット信号を受信したか否かを判定するステップであり、NOと判定された場合には待ち状態を維持する。YESと判定されると、次のステップ204に進む。
【0033】
ステップ204は、エニュミュレーション(Enumeration)によるUSBの初期化を行う。ここで、エニュミュレーションとは、一般にマイクロコンピュータ10とパーソナルコンピュータ100との間でUSBデータの送受信を行うことが可能な環境設定を行うための一連のソフトウエア処理である。
【0034】
エニュミュレーションにより行われる主な処理は、パーソナルコンピュータ100の初期化と、パーソナルコンピュータ100が支配するデバイスにアドレスを割り付ける処理、及びベンダーIDの照合である。ベンダーIDの照合(ステップ204A)において、フラッシュROM50のベンダーIDデータ領域54からベンダーIDが読み出され、USBインターフェース回路30を経由して、パーソナルコンピュータ100へ送信される。パーソナルコンピュータ100側では、そのベンダーIDが正規に登録されているものかどうかを照合する。
【0035】
また、マイクロコンピュータ10はパーソナルコンピュータ100が割り当てた特定のアドレスをUSBインターフェース回路30内の制御レジスタ(アドレスレジスタ)内に記憶する。これにより、マイクロコンピュータ10は、USBの初期化後にパーソナルコンピュータ100が送信して来たUSBパケット内のアドレスと上記アドレスレジスタ内のアドレスとを照合し、それらが一致した場合にのみ送信されてきたUSBデータの処理を行う。
【0036】
こうして、USBデータの送受信を行うことが可能な環境設定が終了すると、ステップ205ではパーソナルコンピュータ100からフラッシュROMに書き込むべきプログラムデータがUSB差動信号データ(D+,D-)の形で入力されてくる。
【0037】
ステップ206ではこの入力されたUSB差動信号データ(D+,D-)をUSBインターフェース回路30によってデータ処理する。このデータ処理内容は上述した通りであるが、シリアルデータ(8ビット×4)を所定のパラレルデータ(32ビット)に変換するのがその主な処理である。
【0038】
ステップ207では、USBインターフェース回路30からRAM40へパラレル変換されたプログラムデータが書き込まれる。そして、RAM40へ書き込まれたプログラムデータ量が所定量(例えば128バイト)に達すると、この所定量を単位としてRAM40からバス45を介してフラッシュROM50の第2のプログラム領域52へ書き込みが開始される(ステップ208)。これはフラッシュROM50が複数ブロックに分割されており、128バイトをブロックとして構成されていることによる。したがって、RAM40のデータの蓄積量はフラッシュROM50のブロック構成に応じて適宜に選択可能である。
【0039】
ここで、実際にはUSBインターフェース回路30からRAM40へパラレル変換されたプログラムデータの書き込み動作と、RAM40からフラッシュROM50への書き込み動作は並行して行われるために、高速書き込みが実現される。
【0040】
ステップ208において、フラッシュROMへの書き込みが開始されるがこれには所定の時間を要する。そこで、ステップ209ではマイクロコンピュータ10はソフト的にNACK状態にセットされる。これはUSBパケットのハンドシェイク・パケットの一種であって、ホストであるパーソナルコンピュータ100からのデータを受け付けることができないことを知らせるためにパーソナルコンピュータ100へ返される。
【0041】
そして、ステップ210では書き込み終了か否かを判定する。その判定結果がNOであれば、NACK状態を維持する。その判定結果がYESであれば、ACK状態にセットされ、ACKはマイクロコンピュータ10側でデータを受け付け可能であることを知らせるためにパーソナルコンピュータ100へ返される。
【0042】
そして、次のステップ212ではフラッシュROM50へのプログラムデータの書き込みが全て終了したかを判定する。その判定結果がNOであれば、ステップ204へ戻り、残余のプログラムデータの書き込みを続行する。ここで、プログラムデータの書き込みはブロック(ページ)単位(例えば128バイト)で行われるため、全部のページが書き込まれるまでこの処理は繰り返される。
【0043】
判定結果がYESの場合には、プログラムカウンタ60の値は第2のプログラム領域52の先頭アドレスである(0000)番地にジャンプする。
【0044】
そして、マイクロコンピュータ10はパーソナルコンピュータ10から供給されたプログラムデータを読み出し、CPU70は解読されたプログラム命令に基づいてマイクロコンピュータの動作を実行開始する。
【0045】
なお、上述した実施形態では、パーソナルコンピュータ100からマイクロコンピュータ10のフラッシュROM50に対してプログラムデータを書き込む場合について説明したが、フラッシュROM50に書き込まれたプログラムデータを読み出して、パーソナルコンピュータ100へ送り返し、ベリファイを行うことも可能である。その場合には、データ処理の順序は上述したものと逆の順序となる。
【0046】
すなわち、フラッシュROM50から読み出されたプログラムデータはRAM40に一時記憶された後、USBインターフェース回路30へ逐次転送される。そして、USBインターフェース回路30では書き込みの際とは逆のデータ処理を施し、パラレルデータを所定のシリアルデータに変換後、USBケーブルを介してパーソナルコンピュータ100へ送出する。
【0047】
また、上述した実施形態では初期状態においてプログラムデータを書き込むべき第1のプログラム領域が空状態であるが、これに限定されることなくプログラムのバージョンアップに伴うプログラムの書き換えも同様に適用することができる。
【0048】
【発明の効果】
本発明によれば、マイクロコンピュータの供給者を特定するための識別情報(ベンダーID)を記憶するための特定のメモリ領域をマイクロコンピュータに内蔵された不揮発性メモリ内に設け、USBの初期化時にそのメモリ領域から読み出された識別情報をホストに送信するようにしたので、当該識別情報を効率的に保持することができると共に、ホスト側での識別情報の照合が円滑に行われる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るマイクロコンピュータを示すブロック図である。
【図2】本発明の実施形態に係るマイクロコンピュータのRAM及び周辺回路を示すブロック図である。
【図3】本発明の実施形態に係るマイクロコンピュータ10の動作例を示すフローチャートである。
【図4】USBを利用したパーソナルコンピュータと周辺デバイスとの接続構成例を示す図である。
【符号の説明】
10 マイクロコンピュータ
20 入出力回路
30 USBインターフェース回路
40 RAM
45 バス
50 フラッシュROM
51 アドレスデコーダ
52 第2のプログラム領域
53 第1のプログラム領域
60 プログラムカウンタ
70 CPU
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a microcomputer incorporating a USB interface circuit and an EEPROM as a program storage memory, and more particularly to a microcomputer having identification information for identifying a supplier of the microcomputer.
[0002]
[Prior art]
In recent years, support for USB (Universal Serial Bus) has been started in personal computers and the like in order to increase the degree of freedom of expandability of peripheral devices. USB is a serial interface standard devised in consideration of user convenience, and can be commonly used for communication between various peripheral devices such as a keyboard, mouse, camera, printer, scanner, and speaker and a personal computer.
[0003]
FIG. 4 is a diagram showing a connection configuration example between a personal computer using USB and a peripheral device. The upper personal computer 100 and the hub 101 are connected by a USB cable, and the peripheral devices 102 to 105 can be connected to the lower part of the hub 101. The personal computer 100 manages the peripheral devices 102 to 105. Thus, the USB can be said to be a serial bus capable of bidirectional communication with a multi-star network structure.
[0004]
Here, the USB cable includes four signal lines. The breakdown is two for power supply and two for data signal. The data signal is basically treated as a differential signal (D + , D ). In addition, data transfer using USB is performed by time division based on the concept that a transfer unit is a frame and stacking the frames. One frame starts with an SOF (Start Of Frame) packet. The host personal computer sequentially sends data transfer request tokens (data input requests from keyboards and cameras, and audio data output requests) scheduled in advance in the frame, so that a plurality of peripheral devices can communicate with each other. Perform data transfer in parallel.
[0005]
As technical literatures related to USB, there are, for example, “Interface” (January 1997), Japanese Patent Laid-Open No. 11-205212, and the like.
[0006]
[Problems to be solved by the invention]
By the way, in the process of USB initialization, address data is assigned to each device in order to identify the device from the host side, and identification information (for identifying the device supplier) is specified from the device side. (Hereinafter referred to as vendor ID) is transmitted to the host side, and the vendor ID is verified in the host. This vendor ID is registered and issued by an organization called UIF (USB Implemental Forum). Therefore, it has been necessary to hold the vendor ID on the device side, but a conventional holding method optimal for the device has not been sufficiently studied.
[0007]
SUMMARY OF THE INVENTION An object of the present invention is to provide a microcomputer capable of efficiently holding identification information for specifying a supplier and smoothly performing verification of a vendor ID on a host side.
[0008]
[Means for Solving the Problems]
In order to solve the above-described problems, the microcomputer of the present invention includes a USB interface circuit that performs an interface for data transmission / reception between the host and the microcomputer, a nonvolatile memory for storing a program that can be electrically rewritten and read, And a CPU for executing a program read from the nonvolatile memory, wherein the nonvolatile memory has a specific memory area for storing identification information for specifying a supplier of the microcomputer. The identification information read from the specific memory area is transmitted to the host via the USB interface circuit when the USB is initialized.
[0009]
Thereby, the identification information for specifying the supplier can be efficiently held and the verification of the vendor ID on the host side can be performed smoothly.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a microcomputer according to an embodiment of the present invention.
[0011]
Hereinafter, the microcomputer 10 will be described as an 8-bit configuration. The microcomputer 10 and the personal computer 100 are connected by a pair of differential signal lines. The USB differential signals (D + , D ) are input / output via the terminals P 1 and P 2 of the microcomputer 10. Reference numeral 20 denotes an input / output circuit connected to the terminals P1 and P2, and includes a differential input buffer 21, input buffers 22 and 23, and output buffers 24 and 25. Here, the input buffers 22 and 23 are provided in consideration of the case where the state of the USB differential signal (D + , D ) is (L, L).
[0012]
The USB interface circuit 30 built in the microcomputer 10 is an interface for data transmission / reception with the personal computer 100. In particular, when receiving data, the USB differential signal (D + , D −) from the input / output circuit 20 is provided. ) To process various data. The USB differential signals (D + , D ) are serial data signals according to the USB communication protocol.
[0013]
The USB interface circuit 30 extracts necessary data from the serial data signal. At this time, the USB interface circuit 30 determines what transfer format the serial data signal has and performs error signal processing and the like. The USB interface circuit 30 converts the serial signal subjected to the above data processing into a parallel signal (for example, an 8-bit configuration) in a predetermined format that can be processed by the microcomputer 100.
[0014]
Further, the USB interface circuit 30 includes a temporary register 31 and a control register (not shown) for temporarily storing parallel-converted 8-bit × 4 = 32-bit program data.
[0015]
Various data to be managed as a host by the personal computer 100 is set in the control register. For example, address data assigned to a device is set during USB initialization by enumeration.
[0016]
The USB interface circuit 30 performs data processing (conversion from parallel data to serial data, etc.) completely opposite to the above when data is transmitted from the microcomputer 10 to the personal computer 100.
[0017]
The RAM 40 is used for temporarily storing 32-bit unit program data sequentially transferred from the data in the temporary register 31 of the USB interface circuit 30. In order to transfer data between the USB interface circuit 30 and the RAM 40, 32 dedicated signal lines are provided. When the program data stored in the RAM 40 reaches a predetermined amount (for example, 128 bytes), the 128-byte program data is transferred to the flash ROM 50 via the bus 45 of the microcomputer 10.
[0018]
Conversely, the program data written in the flash ROM 50 can be transferred to the RAM 40, and the program data stored in the RAM 40 can be transferred to the temporary register 31 of the USB interface circuit 30.
[0019]
In general, since a large amount of data is sent from the personal computer 100 to the device side according to USB communication, a special data buffer is provided on the device side.
[0020]
On the other hand, in the present invention, the data memory is effectively utilized by adopting a configuration in which the RAM 40 that the microcomputer 10 originally has as a data memory is used for temporarily storing data by USB communication. Is also a feature.
[0021]
FIG. 2 is a block diagram showing the RAM 40 and peripheral circuits. The USB interface circuit 30 outputs an address signal ADR1, and the CPU 70 outputs an address signal ADR2, which is input to an address selection circuit 80. The address selection circuit 80 selects one of the address signals ADR1 and ADR2 and inputs it to the address designation circuit 81.
[0022]
The output of the address designating circuit 81 is input to the address decoder 41 so that the same data area can be accessed according to one of the address signals ADR1 and ADR2.
[0023]
According to the configuration described above, the data area 42 of the RAM 40 can be used as a data memory area controlled by the CPU 70 when the address signal ADR2 is selected, and the USB interface circuit when the address signal ADR1 is selected. It can also be used as a data memory area for temporarily storing program data from 30 (32-bit units). That is, the data area of the RAM 40 can be accessed from both the CPU 70 and the USB interface circuit 30.
[0024]
However, the address selection is configured to select the address signal ADR1 from the USB interface circuit 30 during data transmission / reception with the personal computer 100. This is based on the USB characteristic that data transfer from the personal computer 100 cannot be interrupted. Specifically, the microcomputer 10 is automatically set to a wait (standby) state based on a signal for detecting that the temporary register 31 of the USB interface circuit 30 is full.
[0025]
In FIG. 1, reference numeral 50 denotes a flash ROM, in which a USB control program (USB initialization program and program data write control program) is written in advance and stored from the first program area 53 and the personal computer 100. The program data is divided into a second program area 52 in which the program data is written via the RAM 40.
[0026]
A vendor ID data area 54 is provided adjacent to the first program area 53. The vendor ID data area 54 includes identification information for specifying the supplier of the microcomputer. The vendor ID data area 54 may be provided in any address area as long as it is in the flash ROM, but the address must be specified.
[0027]
Reference numeral 60 denotes a program counter whose output is applied to the address decoder 51 of the flash ROM 50. As will be described later, the output value of the program counter 60 jumps to a predetermined address according to a command from the CPU according to the state of USB communication.
[0028]
That is, when program data is written in the personal computer 100, the program counter 60 jumps to the address (FF00) which is the first address of the first program area 53 (write control program), and after the program data is written, Jump to address (0000), which is the start address of program area 52 of No. 2. Then, the CPU 70 executes the operation of the microcomputer 10 in accordance with the program instruction read from the flash ROM 50.
[0029]
Next, an example of the operation of the microcomputer 10 will be described with reference to the flowchart of FIG. First, in the first step 200, the microcomputer 10 is connected to a USB cable. At this time, the microcomputer 10 is reset by a power-on reset by turning on the microcomputer 10 through the power line of the USB cable.
[0030]
Next, in step 201, the value of the program counter 60 jumps to the address (FF00) which is the start address of the first program area 53 (write control program). Accordingly, the microcomputer 10 thereafter executes the following processing according to the write control program.
[0031]
When the microcomputer 10 is connected to the USB cable in step 201 as described above, the USB differential signals (D + , D ) are (L, L) via the pull-up resistors provided on the microcomputer 10 side. ) To, for example, (H, L). The personal computer 100 detects that the microcomputer 100 is connected to the USB network based on the change of the USB differential signal (D + , D ), and issues a USB bus reset signal after a predetermined time. In step 202, this USB bus reset signal is awaited.
[0032]
Step 203 is a step of determining whether or not a USB bus reset signal has been received. If NO is determined, the waiting state is maintained. If YES is determined, the process proceeds to the next step 204.
[0033]
In step 204, the USB is initialized by enumeration. Here, enumeration is a series of software processes for setting an environment in which USB data can generally be transmitted and received between the microcomputer 10 and the personal computer 100.
[0034]
The main processing performed by enumeration is initialization of the personal computer 100, processing for assigning addresses to devices controlled by the personal computer 100, and verification of vendor IDs. In the verification of the vendor ID (step 204A), the vendor ID is read from the vendor ID data area 54 of the flash ROM 50 and transmitted to the personal computer 100 via the USB interface circuit 30. On the personal computer 100 side, it is verified whether or not the vendor ID is properly registered.
[0035]
The microcomputer 10 stores a specific address assigned by the personal computer 100 in a control register (address register) in the USB interface circuit 30. As a result, the microcomputer 10 collates the address in the USB packet transmitted from the personal computer 100 after the USB initialization with the address in the address register, and is transmitted only when they match. Process USB data.
[0036]
When the environment setting capable of transmitting / receiving USB data is completed in this way, in step 205, program data to be written to the flash ROM is input from the personal computer 100 in the form of USB differential signal data (D + , D ). Come.
[0037]
In step 206, the input USB differential signal data (D + , D ) is processed by the USB interface circuit 30. The contents of this data processing are as described above, but the main processing is to convert serial data (8 bits × 4) into predetermined parallel data (32 bits).
[0038]
In step 207, the parallel-converted program data is written from the USB interface circuit 30 to the RAM 40. When the amount of program data written to the RAM 40 reaches a predetermined amount (for example, 128 bytes), writing is started from the RAM 40 to the second program area 52 of the flash ROM 50 via the bus 45 in units of the predetermined amount. (Step 208). This is because the flash ROM 50 is divided into a plurality of blocks, and 128 bytes are configured as a block. Therefore, the amount of data stored in the RAM 40 can be appropriately selected according to the block configuration of the flash ROM 50.
[0039]
Here, since the writing operation of the program data converted in parallel from the USB interface circuit 30 to the RAM 40 and the writing operation from the RAM 40 to the flash ROM 50 are actually performed in parallel, high-speed writing is realized.
[0040]
In step 208, writing to the flash ROM is started, but this takes a predetermined time. Therefore, in step 209, the microcomputer 10 is set to the NACK state by software. This is a kind of USB packet handshake packet, and is returned to the personal computer 100 to inform that the data from the personal computer 100 as a host cannot be accepted.
[0041]
In step 210, it is determined whether or not the writing is finished. If the determination result is NO, the NACK state is maintained. If the determination result is YES, it is set to the ACK state, and ACK is returned to the personal computer 100 to inform that the microcomputer 10 can accept data.
[0042]
In the next step 212, it is determined whether or not all program data has been written to the flash ROM 50. If the determination result is NO, the process returns to step 204 to continue writing the remaining program data. Here, since the program data is written in units of blocks (pages) (for example, 128 bytes), this process is repeated until all pages are written.
[0043]
If the determination result is YES, the value of the program counter 60 jumps to the address (0000) that is the start address of the second program area 52.
[0044]
Then, the microcomputer 10 reads the program data supplied from the personal computer 10, and the CPU 70 starts executing the operation of the microcomputer based on the decoded program command.
[0045]
In the above-described embodiment, the case where the program data is written from the personal computer 100 to the flash ROM 50 of the microcomputer 10 has been described. However, the program data written in the flash ROM 50 is read and sent back to the personal computer 100 for verification. It is also possible to perform. In that case, the order of data processing is the reverse of that described above.
[0046]
That is, the program data read from the flash ROM 50 is temporarily stored in the RAM 40 and then sequentially transferred to the USB interface circuit 30. Then, the USB interface circuit 30 performs data processing opposite to that at the time of writing, converts the parallel data into predetermined serial data, and then sends the data to the personal computer 100 via the USB cable.
[0047]
In the above-described embodiment, the first program area to which program data is to be written is empty in the initial state. However, the present invention is not limited to this, and program rewriting accompanying program upgrade can be applied in the same manner. it can.
[0048]
【Effect of the invention】
According to the present invention, a specific memory area for storing identification information (vendor ID) for specifying the supplier of the microcomputer is provided in the nonvolatile memory built in the microcomputer, and the USB is initialized. Since the identification information read from the memory area is transmitted to the host, the identification information can be efficiently held and the identification information can be collated smoothly on the host side.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a microcomputer according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a RAM and peripheral circuits of the microcomputer according to the embodiment of the present invention.
FIG. 3 is a flowchart showing an operation example of the microcomputer 10 according to the embodiment of the present invention.
FIG. 4 is a diagram illustrating an example of a connection configuration between a personal computer using USB and a peripheral device.
[Explanation of symbols]
10 Microcomputer 20 Input / output circuit 30 USB interface circuit 40 RAM
45 Bus 50 Flash ROM
51 Address decoder 52 Second program area 53 First program area 60 Program counter 70 CPU

Claims (2)

ホストとマイクロコンピュータ間のデータ送受信のインターフェースを行うUSB
イターフェース回路と、電気的に書き換え及び読み出し可能なプログラム格納用の不揮発性メモリと、前記不揮発性メモリのアドレスを指し示すプログラムカウンタと、前記プログラムカウンタが指し示す前記不揮発性メモリから読み出されるプログラムを実行するCPUと、を備えたマイクロコンピュータであって、
前記不揮発性メモリは、書き込み制御プログラムを格納された第1のプログラム領域と、前記書き込み制御プログラムによってプログラムデータを書き込まれる第2のプログラム領域と、前記マイクロコンピュータの供給者を特定するための識別情報が記憶された第3のプログラム領域とを有し、
初期化時、前記USBインターフェース回路を介して、前記識別情報を前記ホストに送信し、前記ホストでは前記識別情報を照合し、予め登録されている識別情報と一致すれば、前記ホストは前記プログラムデータを前記USBインターフェース回路に送信し、前記CPUは前記USBインターフェース回路に送信された前記プログラムデータを前記第1のプログラム領域に書き込まれた前記書き込み制御プログラムに従って前記第2のプログラム領域に書き込み、前記プログラムカウンタの値を第2のプログラム領域の先頭アドレスの値にすることを特徴とするマイクロコンピュータ。
USB for data transmission / reception interface between host and microcomputer
An interface circuit, an electrically rewritable and readable non-volatile memory for storing the program, a program counter indicating the address of the non-volatile memory, and a program read from the non-volatile memory indicated by the program counter A microcomputer comprising a CPU,
The nonvolatile memory includes a first program area in which a write control program is stored, a second program area in which program data is written by the write control program, and identification information for specifying a supplier of the microcomputer And a third program area in which is stored,
At the time of initialization, the identification information is transmitted to the host via the USB interface circuit, and the host collates the identification information, and if the identification information matches a pre-registered identification information, the host Is transmitted to the USB interface circuit, and the CPU writes the program data transmitted to the USB interface circuit to the second program area according to the write control program written to the first program area. A microcomputer characterized in that the value of the counter is set to the value of the start address of the second program area .
前記ホストはパーソナルコンピュータであることを特徴とする請求項1に記載のマイクロコンピュータ。  The microcomputer according to claim 1, wherein the host is a personal computer.
JP2000342846A 2000-11-10 2000-11-10 Microcomputer Expired - Lifetime JP5010065B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2000342846A JP5010065B2 (en) 2000-11-10 2000-11-10 Microcomputer
TW090126545A TWI233040B (en) 2000-11-10 2001-10-26 Microcomputer and controlling method thereof
KR1020010069143A KR20020036717A (en) 2000-11-10 2001-11-07 Microcomputer and method for controlling the same
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 (en) 2000-11-10 2001-11-09 Microcomputer
CNB011374160A CN1162786C (en) 2000-11-10 2001-11-09 Microcomputer and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000342846A JP5010065B2 (en) 2000-11-10 2000-11-10 Microcomputer

Publications (2)

Publication Number Publication Date
JP2002149623A JP2002149623A (en) 2002-05-24
JP5010065B2 true JP5010065B2 (en) 2012-08-29

Family

ID=18817320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000342846A Expired - Lifetime JP5010065B2 (en) 2000-11-10 2000-11-10 Microcomputer

Country Status (1)

Country Link
JP (1) JP5010065B2 (en)

Families Citing this family (6)

* 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
JP4896397B2 (en) 2004-12-28 2012-03-14 富士通株式会社 Program, limiting method and computer
JP2009151415A (en) * 2007-12-19 2009-07-09 Seiko Epson Corp Printer and USB device recognition method
JP4798258B2 (en) * 2009-06-08 2011-10-19 パナソニック株式会社 Wireless LAN device and wireless LAN adapter
JP5035385B2 (en) * 2010-04-26 2012-09-26 富士通株式会社 Program, limiting method and computer
CN102346722B (en) * 2010-07-27 2014-03-12 珠海赛纳打印科技股份有限公司 Image formation control card and image formation equipment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328867A (en) * 1995-06-06 1996-12-13 Canon Inc Digital signal processor program confirmation method and digital signal processor system
JPH0991267A (en) * 1995-09-25 1997-04-04 Sanyo Electric Co Ltd Data writer for non-volatile memory
US6012103A (en) * 1997-07-02 2000-01-04 Cypress Semiconductor Corp. Bus interface system and method
US6134628A (en) * 1998-01-30 2000-10-17 Ricoh Company, Ltd. Method and computer-based system for rewriting a nonvolatile rewritable memory
JP3197865B2 (en) * 1998-03-26 2001-08-13 三洋電機株式会社 Microcomputer
JP3562563B2 (en) * 1998-06-12 2004-09-08 ティアック株式会社 Data storage device using exchangeable recording medium
WO2000017749A1 (en) * 1998-09-24 2000-03-30 Ericsson Inc. Remote firmware upgrade
JP2000194645A (en) * 1998-12-28 2000-07-14 Toshiba Corp Electronic device control method, electronic device control device, and electronic device
JP2000207153A (en) * 1999-01-18 2000-07-28 Canon Inc Print system and printer control method
JP2000276461A (en) * 1999-03-25 2000-10-06 Sanyo Electric Co Ltd Microcomputer

Also Published As

Publication number Publication date
JP2002149623A (en) 2002-05-24

Similar Documents

Publication Publication Date Title
US7266640B2 (en) Memory card authentication system, capacity switching-type memory card host device, capacity switching-type memory card, storage capacity setting method, and storage capacity setting program
US6810444B2 (en) Memory system allowing fast operation of processor while using flash memory incapable of random access
US6954815B2 (en) Microcomputer with universal serial bus interface circuit and method of controlling the same
JP2010140266A (en) Electronic device system and electronic device
CN114138333A (en) Program loading method and related device
US20040049617A1 (en) Method of firmware update by USB interface
JP2000105725A (en) Chip enable signal generation circuit and memory device
JP5010065B2 (en) Microcomputer
JPH10116187A (en) Microcomputer
US8069448B2 (en) Computer interface controller for peripheral devices
JP3655597B2 (en) Electronic device, electronic card, and card identification method
JP4793798B2 (en) Microcomputer
EP1394682B1 (en) Data transfer control device, program and method of fabricating an electronic instrument
JP4988982B2 (en) Microcomputer control method
JP4860811B2 (en) Microcomputer
US20050138236A1 (en) Direct memory access control device and method for automatically updating data transmisson size from peripheral
CN110968270B (en) Efficient storage method and device for Flash space
CN114706605A (en) Flash upgrading method, device, equipment and storage medium
JPH1027097A (en) Method and device for rewriting data of flash rom
JPH10198524A (en) Hard disk controller
JP2002024081A (en) Semiconductor integrated circuit device
JP2006048417A (en) PC card adapter
JP2001043182A (en) Parallel bus system
JPH11328089A (en) Id information write circuit in device for pci bus interface
JP2004102490A (en) Serial EEPROM interface circuit

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 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100922

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 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110526

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120111

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120117

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5010065

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150608

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

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