(57)【要約】【課題】  通信確立のシーケンスを簡単化することができると共に、通信確立の信頼性の向上、フラッシュ制御プログラムの縮小、及び低機能なマイコン等への応用が可能な通信システムの通信確立方法及び通信装置を提供する。【解決手段】  ボーレートの設定機能を有するフラッシュライタ２と任意の動作周波数で動作するマイコン４及び発振子５を有するターゲットシステム２０との間でＵＡＲＴ通信を行なう際のＵＡＲＴ通信確立方法であって、マイコン４に内蔵されるボーレートを設定する設定制御部が有するリセット初期値とマイコン４の動作周波数とで決定される固有のボーレートによりフラッシュライタ２にボーレートの設定を行なわせる。これにてターゲットシステム２０におけるボーレートが設定され、フラッシュライタ２とターゲットシステム２０との間の通信を確立させる。【選択図】  図１
2007036399.tif 000002
【特許請求の範囲】
【請求項１】
一方の機器がボーレートの設定機能を有し、他方の機器との間で非同期型通信を行なう際の非同期型通信確立方法であって、
前記他方の機器の仕様に応じて定まる固有のボーレートにより、前記一方の機器が前記他方の機器に対し任意の規定ボーレートを設定し、
前記他方の機器が前記設定された規定ボーレートにより通信を開始する非同期型通信確立方法。
【請求項２】
前記一方の機器は、前記固有のボーレートにて前記他方の機器に動作周波数を設定するための周波数設定命令を送信し、前記固有のボーレートにて前記規定ボーレートを設定するためのボーレート設定命令を送信することで前記他方の機器に任意の規定ボーレートを設定し、
前記他方の機器は、前記周波数設定命令及び前記ボーレート設定命令に基づき前記規定ボーレートを生成して前記規定ボーレートにより通信を開始する
ことを特徴とする請求項１記載の非同期型通信確立方法。
【請求項３】
前記固有のボーレートは、前記他方の機器において前記規定ボーレートを生成させる設定値を設定する設定制御部が有する所定値と動作周波数とで決定されるボーレートである
ことを特徴とする請求項１記載の非同期型通信確立方法。
【請求項４】
前記所定値は前記設定制御部が有するリセット初期値である
ことを特徴とする請求項３記載の非同期型通信確立方法。
【請求項５】
前記固有のボーレートは、規定外のボーレートである
ことを特徴とする請求項１記載の非同期型通信確立方法。
【請求項６】
前記一方の機器は、前記リセット初期値及び前記他方の機器の動作周波数の情報が外部より入力され、当該入力情報に基づき前記固有のボーレートを生成し、この固有のボーレートにより前記他方の機器に前記周波数設定命令及びボーレート設定命令を送信する
ことを特徴とする請求項４記載の非同期型通信確立方法。
【請求項７】
前記非同期型通信は、ＵＡＲＴ通信である
ことを特徴とする請求項１記載の非同期型通信確立方法。
【請求項８】
第１の機器が、第１の設定値及び第１の機器の動作周波数により第１のボーレートを設定する工程と、
第２の機器が、前記第１の設定値及び前記第１の機器の動作周波数を入力され、前記第１の設定値及び前記第１の機器の動作周波数に基づいて第２のボーレートを設定する工程と、
前記第２の機器が、前記第２のボーレートによって前記第１の機器に対し前記第１のボーレートを規定のボーレートに変更するためのボーレート設定コマンドを送信する工程と、
前記ボーレート設定コマンドを受信した前記第１の機器が、前記第２の設定値及び前記第１の機器の動作周波数により前記規定のボーレートを設定する工程と、
前記ボーレート設定コマンドを送信した前記第２の機器が、前記第２のボーレートを前記規定のボーレートに変更する工程を有する非同期型通信確立方法。
【請求項９】
前記第１の設定値は、前記第１の機器におけるボーレートを設定する設定部のリセット初期値である
ことを特徴とする請求項８記載の非同期型通信確立方法。
【請求項１０】
前記第１の機器で使用されるボーレートは、当該ボーレートからの前記第２の機器との通信が可能なずれ幅である許容誤差を有する
ことを特徴とする請求項８記載の非同期型通信確立方法。
【請求項１１】
前記第１及び第２のボーレートは、ＵＡＲＴ通信の規定外のボーレートであること
ことを特徴とする請求項８記載の非同期型通信確立方法。
【請求項１２】
前記第２のボーレートは、前記第１のボーレートの許容誤差範囲内にある
ことを特徴とする請求項１０記載の非同期型通信確立方法。
【請求項１３】
ボーレートの設定機能を有する他の機器との間で非同期型通信をする通信装置であって、
動作周波数のクロックを生成するクロック生成部と、
前記他の機器からの命令によりボーレートを設定する設定制御部と、
前記設定制御部の設定値及び前記クロック生成部にて生成される動作周波数とによりボーレートを生成するボーレート生成部とを有し、
前記設定制御部が有する所定値と動作周波数とに基づき決定される固有ボーレートにて前記他の機器との非同期型通信を確立させ前記他の機器から任意の規定ボーレートを設定される通信装置。
【請求項１４】
前記固有のボーレートにて前記他の機器より前記動作周波数を設定する動作周波数設定命令及び前記規定ボーレートを設定するボーレート設定命令を受信し、
前記クロック生成部は、前記動作周波数設定命令に応じて動作周波数を生成し、
前記設定制御は、前記ボーレート設定命令に応じて前記規定ボーレートを前記ボーレート生成部に生成させる
ことを特徴とする請求項１３記載の通信装置。
【請求項１５】
前記所定値は前記設定制御部が有するリセット初期値である
ことを特徴とする請求項１４記載の通信装置。
【請求項１６】
ボーレート設定機能を有し、他の機器に対してボーレートを設定して非同期通信を行う通信装置であって、
前記他の機器と非同期通信を行うためのボーレート生成部と、
前記他の機器にボーレートを設定するボーレート設定部とを有し、
前記ボーレート生成部は、前記他の機器の仕様に応じて定まる固有のボーレートを生成し、
前記ボーレート設定部は、前記固有のボーレートにより、前記他の機器に対し任意の規定ボーレートを設定する通信装置。
【請求項１７】
前記ボーレート生成部は、外部から前記他の機器の仕様情報が入力され、当該入力情報に基づき前記固有のボーレートを生成する
ことを特徴とする請求項１６記載の通信装置。
【請求項１８】
第１の機器と、前記第１の機器に対してボーレートの設定機能を有する第２の機器とを有する通信システムであって、
前記第１の機器は、
動作周波数のクロックを生成するクロック生成部と、
前記第２の機器からの命令によりボーレートを設定する設定制御部と、
前記設定制御部の設定値及び前記クロック生成部にて生成される動作周波数とによりボーレートを生成するボーレート生成部とを有し、
前記設定制御部が有する所定値と動作周波数とに基づき決定される固有ボーレートにて前記第１の機器との非同期型通信を確立させ、
前記第２の機器は、前記第１の機器の動作周波数及び前記所定値が外部から入力され、該入力情報に基づき前記固有ボーレートを生成し、前記固有ボーレートにより前記第１の機器に対して任意の規定ボーレートを設定する通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、汎用非同期レシーバトランスミッタ（Universal Asynchronous Receiver Transmitter：ＵＡＲＴ）等の非同期型通信を使用する通信装置及び通信システム、並びにこの通信装置及び通信システムにおける非同期型通信確立方法に関し、特に一方がボーレート（シリアル転送スピード）の設定機能を有し、且つ他方が任意の動作周波数で動作する通信装置及びこれらの通信システム、並びにその非同期型通信確立方法に関する。
【背景技術】
【０００２】
従来、通信のために３つの端子を必要とする同期式の通信方法と比べて端子の数を２つの端子とすることができる例えばＵＡＲＴ通信などの非同期通信方法がある。ＵＡＲＴ通信環境の一例としては、フラッシュメモリを内蔵したマイクロコンピュータ（以下、マイコンという）のオンボードプログラミング環境が挙げられる。この環境は、ＵＡＲＴ通信設定機能を有するフラッシュライタと、任意の周波数で動作するマイコンと（ターゲットシステム）を搭載したターゲットボードとをＵＡＲＴで接続し、マイコンをボード上から取り外すことなく、マイコンに内蔵したフラッシュメモリの書き込み（プログラミング）を行うものである。
【０００３】
ここで、フラッシュライタとは、フラッシュメモリへのプログラムの消去、書き込み、ベリファイを行うためのツールである。また、マイコンは、動作速度が速くなると消費電流が多くなる特性があるため、一般的にマイコンを使用する場合、任意の発振周波数値の発振子を接続し、更に内部のクロック設定により動作周波数を決定する。接続可能な発振子の周波数範囲は、マイコンの発振特性により、予め決められている。
【０００４】
マイコンは、フラッシュ制御プログラムを内蔵しており、フラッシュライタと通信を行いながら、プログラム消去、書き込み、及びベリファイの制御を行う。このフラッシュ制御プログラムはマイコン製造時に組み込まれるため、マイコンのユーザが任意に決定する動作周波数の値は、フラッシュ制御プログラムの設計時点においては未知の値である。
【０００５】
一方で、マイコンがフラッシュライタと通信する際のボーレートは、マイコンの動作周波数の値と、マイコンに内蔵されるボーレート・ジェネレータの設定値との関係により決定される。すなわち、マイコンがフラッシュライタとＵＡＲＴ通信するためのボーレートは、マイコンの動作周波数の値に基づき生成されるため、マイコンは、先ず、未知の動作周波数の値を知る必要がある。このため、マイコンは、ＵＡＲＴ通信を確立する際の途中段階でタイマを使用し動作周波数を算出する。動作周波数算出機能は、フラッシュ制御プログラムにより実現される。なお、本明細書においては、ボーレート設定機能を有する側、上記例においてはフラッシュライタより設定されたボーレートにて両者の通信が開始されることをＵＡＲＴ通信の確立ということとする。
【０００６】
次に、従来の動作周波数を算出してＵＡＲＴ通信を確立する方法について説明する（例えば特許文献１、非特許文献１等参照）。図７は、ＵＡＲＴ通信を行なう通信システム１００の一例として、フラッシュライタ１０２と、ターゲットボード１０３上のマイコン１０４とをＵＡＲＴ通信にて接続したオンボードプログラミングシステムを示す。ＵＡＲＴ通信には、シリアル送信データ信号線Ｔｘｄ及びシリアル受信データ信号線Ｒｘｄを使用する。ここで、上記送信及び受信は、マイコン１０４側からみた場合を示し、フラッシュライタ１０２側からみると「送信」と「受信」とが逆転する。一方、フラッシュライタ１０２には、ホストマシン１０１がＲＳ−２３２Ｃ（Recommended Standard 232 version C）ケーブル１０６により接続されている。本明細書においては、ボーレートを設定される側、すなわちターゲットシステム側を受信装置とし、ボーレート設定側であるフラッシュライタ２を送信装置として説明する。
【０００７】
ターゲットシステム１１０は、ターゲットボード１０３上にマイコン１０４及びその動作クロック源となる発振子１０５を有する。マイコン１０４は、フラッシュメモリ１０７及びその制御プログラム１０８を搭載している。
【０００８】
このような通信システム１００において、ユーザは、ホストマシン１０１上から、グラフィカル・ユーザ・インタフェース（以下、ＧＵＩという）を介し、フラッシュメモリ１０７の任意のアドレスのデータの読み出し、消去、書き込み等、必要な操作を行う。フラッシュライタ１０２は、その操作をコマンドとしてＵＡＲＴ通信にてマイコン１０４に伝達する。フラッシュ制御プログラム１０８は、マイコン１０４内部において、ＵＡＲＴ通信で受信したコマンドに従い、フラッシュメモリ１０７のデータの読み出し、消去、書き込み等の処理を行う。
【０００９】
以上の動作処理において、マイコン１０４は動作クロック源として発振子１０５を使用するが、本来、発振子１０５はマイコン１０４が通常動作する際の動作クロック源である。発振子１０５の発振周波数は、マイコン１０４の電気的特性で定めた周波数範囲の中で、ターゲットシステム１１０に適した任意の周波数値をユーザが選択する。そして、発振周波数から生成される所望の動作周波数をターゲットシステム１１０及びマイコン１０４の仕様に従ってユーザが設定する。
【００１０】
ところが、フラッシュ制御プログラム１０８はマイコン１０４の製造時に組み込まれるため、上記の発振周波数、動作周波数の値は未知である。しかし、ボーレートは動作周波数を元に設定されるため、ターゲットシステム１１０自信が先ず未知の動作周波数の値を知る（算出する）必要がある。なお、ボーレートの設定方法については後述する。
【００１１】
ここでは先ず、フラッシュ制御プログラム１０８の内部で処理している動作周波数値の算出方法について説明する。先ず、動作周波数値の算出の原理を簡単に説明する。ターゲットシステム１１０は、フラッシュライタ１０２から送出された一定時間のＬＯＷレベル幅の信号を受信し、マイコン１０４に内蔵したタイマ（不図示）を使用し、動作周波数を分周したカウントクロックで計数する。フラッシュライタ２から送られるＬＯＷレベル幅の値は既知であるので、計数値から動作周波数を逆算することができる。なお、ハイレベル幅であってもよい。
【００１２】
次に、この動作周波数の算出方法について詳細に説明する。図８は、Ｐ３１／Ｒｘｄ端子（外部端子）に入力されたＬＯＷレベル信号と、ＴＭ５０（タイマ）のカウント動作を示すタイミングチャートである。ここで、図８において、タイマのカウント動作を示すタイミングチャートは、縦軸にカウント値をとり、カウント値が増加する様子を示す模式図である。
【００１３】
フラッシュライタ２とターゲットシステム１１０とは、規定のボーレート（９６００ｂｐｓ）にてＵＡＲＴ通信を開始することが定められているものとする。この場合、例えばフラッシュライタ１０２からの一定の時間幅のＬＯＷレベル幅２０１は、９６００ｂｐｓのＵＡＲＴ通信の９ｂｉｔ分で、マイコン１０４の外部端子から入力される。ターゲットシステム１１０は、フラッシュライタ２と接続された時点で上記ＬＯＷレベルの受信を監視する。そして、マイコン１０４内部で、信号の立下りを検出し、上記タイマをスタートする。このタイマは、コンペアタイマであり、コンペアレジスタの値は６３である。レジスタ値０からカウント開始し、６４回カウント後にコンペア一致割り込みを発生し、カウント値が０に戻った後、再びカウント動作を行う。ここで図中のコンペア一致周期２０２はタイマスタートからコンペア一致までの周期を示す。フラッシュ制御プログラム１０８は、一致割り込みを発生するたびに変数ＬＯＷ＿ＣＮＴをインクリメントする。
【００１４】
上記ＬＯＷレベル信号の送信が終了し外部端子への入力がハイレベルに立ち上がると、タイマをストップする。このときの変数ＬＯＷ＿ＣＮＴの値ｔをタイマカウント値とする。動作周波数は、このタイマカウント値ｔから算出することができる。
【００１５】
本従来例において、動作周波数、タイマカウントクロック、ＬＯＷレベル幅は、以下のとおりである。
動作周波数＝ｆｘｘ
タイマカウントクロック＝ｆｘｘ／２
ＬＯＷレベル幅２０１＝９ｂｉｔ／９６００ｂｐｓ
【００１６】
また、コンペア一致周期は、タイマ値０から６３までのため、以下となる。
コンペア一致周期＝２／ｆｘｘ×６４
【００１７】
そして、ＬＯＷレベル幅２０１にコンペア一致周期２０２が、タイマにてカウントしたカウント値＝ｔの場合、下記の等式が成り立つ。
９／９６００＝ｔ×２／ｆｘｘ×６４
【００１８】
従って、動作周波数ｆｘｘは、下記の式で求められる。
ｆｘｘ＝ｔ×２×６４×９６００／９
【００１９】
ここで、以上により算出した動作周波数値は誤差を含むので、ＬＯＷレベル幅２０１を２回測定し、平均値を取る。こうして算出した動作周波数ｆｘｘにより、ボーレート・ジェネレータに搭載されボーレートを設定する後述する制御レジスタを一旦、規定値の９６００ｂｐｓとなるよう設定し、ボーレートを９６００ｂｐｓに設定する。
【００２０】
次に、上述した周波数算出ルーチンにて求めた動作周波数値は、２回の平均値を取ってもなお規定の値とは違い（誤差）があるため、正確な動作周波数値をユーザがＧＵＩ上で入力する。また、他の動作周波数を指定したい場合も同様である。このため、ユーザ指定の動作周波数の値を周波数設定コマンドにて送出して、より正確なボーレートを再設定することができる。又は、システムに応じた最適な動作周波数を選択することができる。最後にユーザが９６００ｂｐｓ以外のボーレートを使用する場合は、任意のボーレート値をボーレート設定コマンドにて送出して、これをターゲットシステム１１０が受信し、このボーレート設定コマンドに応じてボーレートを設定することで、ＵＡＲＴ通信の確立が行なわれる。
【００２１】
以上で述べた従来技術における一連のＵＡＲＴ通信確立をシーケンスで表すと図９のようになる。すなわち、図９に示すように、マイコン１０４は、先ずフラッシュライタ１０２からのＬＯＷレベルの信号を受信し（ステップＳ１１）、ＬＯＷレベル幅をカウントする。そして、平均を取るため、再度フラッシュライタ１０２からのＬＯＷレベルの信号を受信し（ステップＳ１２）、ＬＯＷレベル幅をカウントする。そして、これらのカウント値から動作周波数の平均値を算出することで、一旦ボーレートを規定値の９６００ｂｐｓに設定することができる。これにより、ターゲットシステム１１０は、フラッシュライタ１０２からのコマンドを受信することが可能となる。
【００２２】
次に、ターゲットシステム１１０は、フラッシュライタ１０２より周波数設定コマンドを受信し（ステップＳ１３）、その応答（ＡＣＫ）を送信する（ステップＳ１４）。そして、ターゲットシステム１１０は、上記周波数設定コマンドに基づき発振周波数を設定し、動作周波数を設定する。次に、フラッシュライタ１０２からのボーレート設定コマンドを受信する（ステップＳ１５）。これによりターゲットシステム１１０は、フラッシュライタ１０２より指定のボーレートに設定し、ＡＣＫを送信する（ステップＳ１６）。このように、ＵＡＲＴ通信確立（規定のボーレートでの通信）に先立ち、２回のＬＯＷレベル受信を経る必要がり、その後周波数設定コマンドの受信、ボーレート設定コマンドの受信を行う。
【００２３】
次に、マイコンにおけるボーレート設定方法について説明し、ボーレート設定に動作周波数値が必要である理由について合わせて説明する。
【００２４】
図１０は、非特許文献１に記載のボーレート・ジェネレータの構成を示す図である。マイコンは、図示せぬクロック発生回路及びボーレート・ジェネレータを有する。クロック発生回路より生成されたクロック（ｆｘｘ〜ｆｘｘ／１０２４）がボーレート・ジェネレータ５０１に供給される。ボーレート・ジェネレータ５０１は、ソース・クロック・セレクタ部（以下、セレクタという）５５２と８ビットのプログラマブル・カウンタ（以下、８ビット・カウンタという）５５４とを有し、ＵＡＲＴにおける送受信時のシリアル・クロックを生成する。シリアル・クロックは、チャネル毎に専用ボーレート・ジェネレータ出力を選択することができる。なお、８ビット・カウンタ５５４は送信用と受信用が別々に存在する。
【００２５】
クロック選択レジスタ（ＣＫＳＲレジスタ）５５３は、基本クロック周波数（ｆＵＣＬＫ）を選択するための８ビット・レジスタで、これにより選択されたクロックが送受信モジュールの基本クロック周波数（ｆＵＣＬＫ）になる。ボーレート・ジェネレータ・コントロール・レジスタ（ＢＲＧＣレジスタ）５５５は、ＵＡＲＴのボーレートを制御する８ビット・レジスタである。
【００２６】
ＣＫＳＲレジスタ５５３とＢＲＧＣレジスタ５５５の設定により、シリアル・クロックを生成する。すなわち、ＣＫＳＲレジスタ５５３により、８ビット・カウンタ５５４へ出力する基本クロック周波数（ｆＵＣＬＫ）を選択し、ＢＲＧＣレジスタ５５５により、８ビット・カウンタ５５４の分周値、すなわち分周比を設定するための設定値を設定する。８ビット・カウンタ５５４の出力とＢＲＣＧ５５５とが一致するクロックを一致検出器５５６が出力し、この出力を分周器５５７にて２分周したものがボーレートとなる。
【００２７】
ボーレートは、下記の式により求められる。
ボーレート[ｂｐｓ]＝ｆＵＣＬＫ／２ｋ
ここで、ｆＵＣＬＫは、メイン・クロック周波数（動作周波数）ｆｘｘを分周したクロックである。なお、ｋは、ＢＲＧＣレジスタ５５５にて設定する設定値（分周比）を示し、ｋ＝８,９,１０,・・・,２５５の値をとる。
【００２８】
このように、ボーレートは、メイン・クロック周波数（動作周波数）ｆｘｘを元に生成されており、ボーレートを設定するためには、メイン・クロック周波数ｆｘｘの値が必要である。よって、ボーレートの設定には、動作周波数ｆｘｘの算出が不可欠となる。
【特許文献１】特開２００１−６９１９４号公報
【非特許文献１】「ユーザーズ・マニュアル  V850ES/KJ1ハードウェア編  ３２ビット・シングルチップ・マイクロコンピュータ」，資料番号U16889JJ1V0UD00（第１版），第４９０〜４９６頁，２００４年２月，NEC Electronics Corporation 2004，  [平成１７年６月１６日検索]  インターネット＜http://www.necel.com/cgi-bin/nesdis/o002.cgi?aliascode=170127&langcode=J＞
【発明の開示】
【発明が解決しようとする課題】
【００２９】
上述したように、従来の方法においては、ボーレート設定のために、フラッシュ制御プログラム１０８をマイコン１０４に組み込む時点で未知の動作周波数を算出する必要がある。すなわち、ＵＡＲＴ通信においては、送信側と受信側とで予め規定のボーレートに設定するが、当該規定のボーレートに設定するためには、受信側のターゲットシステム１１０が動作周波数を把握する必要がある。よって、通信確立に先立ち、ＬＯＷレベル幅から動作周波数を算出する必要がある。しかしながら、ＬＯＷレベル幅から動作周波数を算出するためには上述のようにタイマが必要であり、さらに、動作周波数算出のためのルーチン（プログラムコード）と、ＬＯＷレベル受信のための最小２回のフラッシュライタ１０２との通信とが必要となる。なお、上記従来技術においては、動作周波数は２回のＬＯＷレベル幅の受信により平均値を算出しているものの誤差を含み、よって従来一旦設定される９６００ｂｐｓのボーレートにも誤差が含まれるため周波数設定コマンドを受信する必要がある。これに対し、例えば３回以上の平均を求めることで上記ボーレートの誤差を取り除くことも考えられるが、ボーレート設定コマンドの受信まで、すなわちＵＡＲＴ通信確立までに時間がかかってしまうという新たな問題も生じる。
【００３０】
以上のような理由によりＵＡＲＴ通信確立には、図９に示すように複雑なシーケンスが必要となってしまう。また、マイコン１０４にタイマを内蔵していることが必須となること、及び上記動作周波数算出ルーチンのためのフラッシュ制御プログラム１０８のコードの増加、更にはチップ面積の増加により、コスト増加に繋がるという問題点がある。
【００３１】
特に近年は、低機能、低価格のマイコンの需要が伸び、コスト競争力が求められ、フラッシュ制御プログラムの極限までの縮小化が進められている。したがって、この動作周波数算出機能のプログラムコードは、マイコンの縮小化の弊害となるものである。また、本来のフラッシュ制御機能ではないことから、フラッシュ制御プログラムのコストパフォーマンスを悪化させているとも考えられる。
【００３２】
更に、低機能マイコンにおいて、タイマを内蔵しない場合は、上述の方法で動作周波数を算出することができず、ＵＡＲＴ通信の確立が困難である。すなわち、マイコンがタイマを内蔵していなければ動作周波数の算出が不可能であるため、動作周波数及びボーレートを固定とした上で、通信確立を行うしかなくなり、ターゲットシステムによっては、システム構成が不可能または、著しく機能制限されてしまう。
【課題を解決するための手段】
【００３３】
本発明にかかる非同期型通信確立方法は、一方の機器がボーレートの設定機能を有し、他方の機器との間で非同期型通信を行なう際の非同期型通信確立方法であって、前記他方の機器の仕様に応じて定まる固有のボーレートにより、前記一方の機器が前記他方の機器に対し任意の規定ボーレートを設定し、前記他方の機器が前記設定された規定ボーレートにより通信を開始するものである。
【００３４】
本発明においては、一方がボーレート設定機能を有する通信システムにおいて、規定のボーレートを使用せず、他方の機器の仕様によって定まる固有のボーレートを使用して規定ボーレートを設定させ、非同期型通信を開始する。したがって、規定のボーレートを使用するために必要な他方の機器の動作周波数を予め求める必要がなく、規定ボーレートでの通信までの動作シーケンスを簡素化することができる。すなわち、従来必要であった動作周波数測定のために一定レベルの信号を受信して動作周波数を算出するシーケンス、及び動作周波数を算出するために必要なカウンタ等が不要となる。
【００３５】
本発明にかかる他の非同期型通信確立方法は、第１の機器が、第１の設定値及び第１の機器の動作周波数により第１のボーレートを設定する工程と、第２の機器が、前記第１の設定値及び前記第１の機器の動作周波数を入力され、前記第１の設定値及び前記第１の機器の動作周波数に基づいて第２のボーレートを設定する工程と、前記第２の機器が、前記第２のボーレートによって前記第１の機器に対し前記第１のボーレートを規定のボーレートに変更するためのボーレート設定コマンドを送信する工程と、前記ボーレート設定コマンドを受信した前記第１の機器が、前記第２の設定値及び前記第１の機器の動作周波数により前記規定のボーレートを設定する工程と、前記ボーレート設定コマンドを送信した前記第２の機器が、前記第２のボーレートを前記規定のボーレートに変更する工程を有するものである。
【発明の効果】
【００３６】
本発明によれば、非同期型通信確立のシーケンスを簡単化及び高速化することができると共に、通信確立の信頼性の向上、フラッシュ制御プログラムの縮小、及び低機能なマイコン等への応用が可能な非同期型通信確立方法、通信装置及び通信システムを提供することができる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ボーレート設定機能を有するフラッシュライタと、任意の動作周波数で動作するフラッシュメモリを有するシステム（ターゲットシステム）との間のＵＡＲＴ通信確立方法に適用したものである。
【００３８】
ＵＡＲＴ通信は、通常規定のボーレートにより行われる。この場合、規定のボーレートとして、３００，６００，１２００，２４００，４８００，９６００，１０４００，１９２００，３１２５０，３８４００，７６８００，１１５２００，１５３６００，２３０４００，３１２５００（ｂｐｓ）が使用されている。
【００３９】
従来はターゲットシステム側においてこのような規定のボーレートを設定するために、動作周波数を算出する必要があり、このため、ターゲットシステムに含まれるマイコンには動作周波数算出のための専用プログラム及びタイマが必要であった。これに対し、本実施の形態にかかるＵＡＲＴ通信確立方法においては、規定ボーレートでの通信が確立又は開始するまでの期間において、両者の間の通信をターゲットシステムの仕様に応じて定まる固有のボーレートである規定外のボーレートにて行なう。
【００４０】
ここで、規定外のボーレートとは、マイコンのボーレートの設定に関わる制御レジスタ初期値と、動作周波数とで決定される固有のボーレートを示す。本実施の形態においては、規定ボーレートでの通信に先立ち上記固有のボーレートにて、ボーレート設定機能を有するフラッシュライタによりターゲットシステムにおける規定ボーレートの設定を行わせるため、ターゲットシステム側において規定ボーレートを設定するための動作周波数算出のためのシーケンスが不要となり、よってタイマの内蔵も不要となるものである。
【００４１】
図１は、本実施の形態にかかる通信システムを示す図である。通信システム１０は、ボーレート値の通信設定機能を有する一方の機器（第１の機器）の一例としてのフラッシュライタ２と、任意の周波数で動作する他方の機器（第２の機器）の一例としてのマイコン４及びその動作クロック源となる発振子５（ターゲットシステム２０）を有するターゲットシステム２０とを有する。これによりフラッシュライタ２と、ターゲットボード３上のマイコン４とをＵＡＲＴ通信にて接続したオンボードプログラミングシステムが構成される。ここで、本例においては、ボーレート設定機能を有するフラッシュライタ２を送信装置、ボーレートを設定される側のターゲットシステム２０を受信装置として説明する。
【００４２】
ＵＡＲＴ通信には、シリアル送信データ信号線Ｔｘｄ及びシリアル受信データ信号線Ｒｘｄを使用する。ここで、上記送信及び受信は、マイコン４側（受信装置側）からみた場合を示し、フラッシュライタ２側（送信装置側）からみると「送信」と「受信」とが逆転する。一方、フラッシュライタ２には、ホストマシン１がＲＳ−２３２Ｃケーブル６により接続されている。
【００４３】
マイコン４は、フラッシュメモリ７及びその制御プログラム８を搭載している。マイコン４は、その他、ターゲットボード３上にマイコン４とは別に具備される発振子５からクロックを生成する後述するクロック発生回路（不図示）、及びボーレートを生成するボーレート・ジェネレータ（不図示）を有する。フラッシュライタ２とマイコン４とのＵＡＲＴ通信は、フラッシュライタ２が指定するボーレートにより行なわれる。ターゲットシステム２０においては、上記クロック発生回路により任意の動作周波数のクロックを発生させることができ、またボーレート・ジェネレータによりフラッシュライタ２により設定される規定ボーレートを生成する。
【００４４】
このようなシステムにおいて、ユーザは、ホストマシン１上から、ＧＵＩを介し、フラッシュメモリ７の任意のアドレスのデータの読み出し、消去、書き込み等、必要な操作を行う。フラッシュライタ２は、その操作をコマンドとしてＵＡＲＴ通信にてマイコン４に伝達する。フラッシュ制御プログラム８は、マイコン４内部において、ＵＡＲＴ通信で受信したコマンドに従い、フラッシュメモリ７のデータの読み出し、消去、書き込み等の処理を行う。以上の点は従来と同様である。
【００４５】
ここで、フラッシュライタ２とターゲットシステム２０との間のＵＡＲＴ通信は、例えば９６００ｂｐｓの規定のボーレートで行うことが決められている。ターゲットシステム２０においては、その動作周波数に基づきボーレートが生成されるため、上記規定のボーレート設定のために先ず動作周波数を求める必要があった。なお、その他の規定のボーレート値としても同様である。これに対し、本実施の形態においては、ターゲットシステム２０の仕様によって定まる固有のボーレート（第１のボーレート）にてフラッシュライタ２よりボーレートの設定を行なわせることで、上記動作周波数の算出を不要とするものである。
【００４６】
図２は、ターゲットシステム２０が有するクロック発生回路４１及びＵＡＲＴのボーレート・ジェネレータ５１部分を示す図である。図２に示すように、クロック発生回路４１は、発振子５に接続されたクロック発振回路４２と、ＰＬＬ（Phase Locked Loop）回路４３と、セレクタ４４と、プリスケーラ４５とを有する。発振子５は、ターゲットシステム２０に応じてユーザが例えば２ＭＨｚ〜１０ＭＨｚの範囲で選択し、クロック発振回路４２から出力される。クロック発生回路４１は、クロック発振回路４２の出力ｆｘをメイン・クロック周波数（ｆｘｘ）としてそのまま使用するクロック・スルー・モード（ダイレクトモード）とｆｘを例えば４逓倍して使用するＰＬＬモードとを有する。この発振子５の発振周波数と、ＰＬＬモード又はダイレクトモードかにより任意の動作周波数ｆｘｘが決定され、その範囲は、例えば２ＭＨｚ〜２０ＭＨｚである。
【００４７】
すなわち、ＰＬＬモードにおいては、
動作周波数ｆｘｘ＝４×ｆｘ
ダイレクトモードにおいては、
動作周波数ｆｘｘ＝ｆｘ
となる。ユーザは、発振子５の発振周波数、各モード等により任意の動作周波数を設定することができる。
【００４８】
プリスケーラ４５は、メイン・クロック周波数ｆｘｘを分周する回路であり、後述するセレクタ５２にプリスケーラ４５で生成したクロック（ｆｘｘ〜ｆｘｘ／１０２４：周辺クロック４７）を供給する。
【００４９】
ボーレート・ジェネレータ５１は、ソース・クロック・セレクタ部（以下、セレクタという）５２と８ビットのプログラマブル・カウンタ（以下、８ビット・カウンタという）５４とを有し、ＵＡＲＴ通信における送受信時のシリアル・クロックを生成する。シリアル・クロックは、複数のチャネルを有する場合にはチャネル毎に専用ボーレート・ジェネレータ出力を選択することができる。なお、８ビット・カウンタ５４は送信用と受信用が別々に存在する。
【００５０】
クロック選択レジスタ（ＣＫＳＲレジスタ）５３は、基本クロック周波数（ｆＵＣＬＫ）を選択するための８ビット・レジスタで、これにより選択されたクロックが送受信モジュールの基本クロック周波数（ｆＵＣＬＫ）にななる。ボーレート・ジェネレータ・コントロール・レジスタ（ＢＲＧＣレジスタ）５５は、ＵＡＲＴのボーレートを制御する８ビット・レジスタである。
【００５１】
ＣＫＳＲレジスタ５３とＢＲＧＣレジスタ５５の設定により、シリアル・クロックを生成する。すなわち、ＣＫＳＲレジスタ５３により、８ビット・カウンタ５４へ出力する基本クロック周波数（ｆＵＣＬＫ）を選択し、ＢＲＧＣレジスタ５５により、８ビット・カウンタ５４の分周値、すなわち分周比を設定するための設定値を設定する。８ビット・カウンタ５４の出力とＢＲＧＣレジスタ５５とが一致するクロックを一致検出器５６が出力し、この出力を分周器５７にて２分周したものがボーレートとなる。
【００５２】
ここで、通常のＵＡＲＴ通信においては、フラッシュライタ２による周波数設定コマンドにより動作周波数が設定され、ボーレート設定コマンドによりＣＫＳＲレジスタ５３及びＢＲＧＣレジスタ５５の各レジスタ値が設定され、これによりボーレート・ジェネレータ５１が指定のボーレートを生成する。よって、上述の従来技術のように、一般的には、動作周波数を算出しなければ規定のボーレートを設定することができない。規定のボーレートを設定しなければフラッシュライタ２とのＵＡＲＴ通信を行なうことができない。
【００５３】
ここで、ＣＫＳＲレジスタ５３及びＢＲＧＣレジスタ５５に、規定ボーレート設定のための設定値を設定せず、リセット初期値をそのまま使用すると、ターゲットシステム２０にて固有のボーレートが生成される。本実施の形態においては、この固有のボーレートによりフラッシュライタ２との通信を開始する。すなわち、本実施の形態におけるマイコン４は、フラッシュライタ２による規定ボーレートの設定によって開始されるＵＡＲＴ通信に先立つ工程において、予め定められた規定のボーレートではなく、ボーレート・ジェネレータ５１の設定制御部であるＣＫＳＲレジスタ５３及びＢＲＧＣレジスタ５５のリセット初期値及び動作周波数から求まる固有の規定外ボーレートを使用してフラッシュライタ２との通信を実行する。
【００５４】
ここでＣＫＳＲレジスタ５３、ＢＲＧＣレジスタ５５のリセット初期値及びその設定は以下のとおりである。
ＣＫＳＲ＝００Ｈ（ｆＵＣＬＫ＝ｆｘｘ）
ＢＲＧＣ＝ＦＦＨ（ｋ＝２５５）
ボーレートは、下記で求められる。
ボーレート（ｂｐｓ）＝基本クロック周波数ｆＵＣＬＫ／（２×ｋ）
なお、ｋは、ＢＲＧＣレジスタ５５にて設定する設定値（分周比）を示し、ｋ＝８,９,１０,・・・,２５５の値をとる。
【００５５】
従って、以上の環境で、設定されるボーレートは、図３のようになる。すなわち、ボーレートは動作周波数とＣＫＳＲレジスタ５３及びＢＲＧＣレジスタ５５とから決まる固有のボーレートとなり、本例においては規定外のボーレート値となる。
【００５６】
一方、フラッシュライタ２側では、上記固有のボーレート値に合致するよう次に説明する方法にてボーレートの設定を行う。図４は、フラッシュライタ２の構成及びホストマシン１のＧＵＩイメージを示す模式図である。ＣＫＳＲレジスタ５３及びＢＲＧＣレジスタ５５のリセット初期値は、製品毎にその仕様より予め定められており、デバイスファイル６１から入力することができる。動作周波数ｆｘｘは、ホストマシン１のＧＵＩを介し、ホストマシン・ＧＵＩイメージ６２に示すように、動作周波数入力部６３によりユーザがその数値を直接入力する。
【００５７】
以上のように、ＣＫＳＲレジスタ５３及びＢＲＧＣレジスタ５５のリセット初期値と動作周波数ｆｘｘが明らかであることから、図３に示した規定外のボーレートを規定のボーレート設定側であるフラッシュライタ２内でも算出可能である。なお、フラッシュライタ２は、ＣＫＳＲレジスタ５３及びＢＲＧＣレジスタ５５のリセット初期値と動作周波数ｆｘｘとからボーレートを算出する演算部又はプログラム（不図示）を有している。ここで、フラッシュライタ２内蔵のＵＡＲＴ通信部２１の動作周波数を例えば４０ＭＨｚと仮定し、図３に示したボーレート設定例を目標ボーレートとし、設定したボーレート（第２のボーレート）の例を図５に示す。
【００５８】
ここで、受信の際に送信先のボーレートのずれがどの程度まで許容できるか（許容誤差）は理論上下記の式により求めることができる（非特許文献１、Ｐ４９５−４９６）。なお、下記式は１１ビット受信に当てはめた場合を示す。
受信可能な送信先の最大ボーレート（ＢＲｍａｘ）＝２２ｋ／（２１ｋ＋２）×Ｂｒａｔｅ
受信可能な送信先の最小ボーレート（ＢＲｍｉｎ）＝２０ｋ／（２１ｋ−２）×Ｂｒａｔｅ
なお、ｋはＢＲＧＣレジスタ５５の設定値（分周比）、Ｂｒａｔｅは、フラッシュライタ２により指定されるＵＡＲＴのボーレートを示す。受信の精度は１フレーム・ビット数、基本クロック周波数（ｆＵＣＬＫ）、分周比ｋに依存し、基本クロック周波数（ｆＵＣＬＫ）が高く、分周比ｋが大きくなるほど精度が高くなる。すなわち、許容誤差は、基本クロック周波数（ｆＵＣＬＫ）が高く、分周比ｋが大きくなるほど小さくなる。
【００５９】
上記式にて求めたｋ＝８の許容最大ボーレート誤差は、３．５３％である。これに対し、本実施の形態においては、目標ボーレート（固有のボーレート又は第１のボーレート）からのボーレート誤差は、図５に示すように−０．３９％〜＋０．２４％となり、通信誤差は十分小さく実用に耐えうる。
【００６０】
以上のように、フラッシュライタ２による規定ボーレートの設定において、機器の仕様に応じて定まる規定外のボーレートを使用することにより、規定ボーレート設定のために動作周波数の算出等の複雑な処理をすることなく、またマイコン４にカウンタを内蔵する必要もなくなる。図６は、これらの操作シーケンスを示す図である。
【００６１】
本実施の形態においては、上述の如く規定外の固有のボーレートにて規定ボーレートの設定を行なうため、動作周波数の算出が必要ない。ターゲットシステム２０は、第１回目の通信でフラッシュライタ２より上記固有のボーレートにて周波数設定コマンドの受信を行う（ステップＳ１）。この周波数設定コマンドに対するアクノーリッジ（ＡＣＫ）の返信（ステップＳ２）も上記固有のボーレートにて行なう。次いで任意の規定のボーレートに設定するため、フラッシュライタ２から上記固有のボーレートにてボーレート設定コマンドを受信する（ステップＳ３）。以上の受信により、ターゲットシステム２０は、動作周波数を設定し、任意の規定のボーレートに設定することができる。
【００６２】
こうしてフラッシュライタ２とマイコン４との間にて規定ボーレートによる通信が確立するまでの間、すなわち、ステップＳ１のマイコン４の動作周波数を設定するための周波数設定コマンドの受信、ステップＳ２のＡＣＫの返信、ステップＳ３のボーレートを設定するボーレート設定コマンドの受信は、上述の固有のボーレートで行ない、規定ボーレートに設定することで、ターゲットシステム２０は、規定のボーレート設定コマンドに対するアクノーリッジ返信（ステップＳ４）を規定のボーレートを使用して実行する。これにて規定ボーレートによるＵＡＲＴ通信が確立される。
【００６３】
本実施の形態においては、マイコン４に内蔵されるボーレート・ジェネレータ５１のボーレート設定制御部であるＣＫＳＲレジスタ５３及びＢＲＧＣレジスタ５５のリセット初期値をそのまま使用した場合にボーレート・ジェネレータ５１にて設定される固有のボーレートを使用してフラッシュライタ２に規定ボーレートの設定を行なわせる。すなわち、フラッシュライタ２との規定ボーレートでの通信が確立するまでの間は規定のボーレートを使用しないため、マイコン４ではＵＡＲＴ通信を開始するための予め定められたボーレートの設定自体が不要となる。このため、以下の効果を奏する。
【００６４】
先ず、従来のＬＯＷレベル受信により動作周波数を算出する方法であると、ノイズ等の影響によりＬＯＷレベル幅測定が正常終了できない場合、ＵＡＲＴ通信確立が失敗したと見なされ、タイムアウト時間（動作周波数２０ＭＨｚの場合、約６００μｓｅｃ）待機の後、再度処理を繰り返すこととなり、通信確立に極めて時間がかかる場合があった。そして、従来の規定のボーレートを使用するＵＡＲＴ通信確立方法と比較すると、本実施の形態においては、少なくとも動作周波数算出のためのＬＯＷレベル受信２回分が不要となり、その分ＵＡＲＴ通信確立処理の高速化が可能となる。これは時間に換算すると、例えば１．８７５（ｍｓｅｃ）の短縮化が可能である。
【００６５】
次に、一方、本実施の形態においては、フラッシュ制御プログラム８に内蔵する周波数算出ルーチンも不要となるため、フラッシュ制御プログラム８には、動作周波数算出ルーチンを組み込む必要がなくなり、当該プログラムを記録するために必要であった約５００ｂｙｔｅを削減することができる。
【００６６】
更に、動作周波数算出が不要になることにより、マイコンに内蔵されていることが前提であったタイマも不要となり、低機能なマイコン又は類似するシステムにも応用ができる。
【００６７】
このように、本実施の形態においては、ＵＡＲＴ通信確立のシーケンスが簡単になるばかりか、通信確立までの時間の短縮化が図れ、通信確立の信頼性の向上、フラッシュ制御プログラム８の縮小、及び低機能なマイコンへの応用が可能という優れた効果を奏する。
【００６８】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、本実施の形態においては、非同期型通信の一例としてＵＡＲＴ通信について説明したが、他の非同期型通信の通信確立方法に適用することも可能である。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施の形態にかかる通信システムを示す図である。
【図２】本発明の実施の形態にかかる通信システムにおけるマイコンに内蔵されたクロック発生回路及びＵＡＲＴのボーレート・ジェネレータを示す図である。
【図３】本発明の実施の形態にかかる通信システムにおける通信確立するまでの間のマイコンにおけるボーレート設定例を示す図である。
【図４】本発明の実施の形態にかかる通信システムにおけるフラッシュライタの構成及びホストマシン１のＧＵＩイメージを示す模式図である。
【図５】図３に示したボーレート設定例を目標ボーレートとしてフラッシュライタにて設定したボーレート設定例を示す図である。
【図６】本発明の実施の形態にかかる通信システムにおけるＵＡＲＴ通信確立のシーケンスを示す図である。
【図７】従来の通信システムを示す図である。
【図８】従来の通信システムにおいて、マイコンに入力されたＬＯＷレベル信号と、タイマのカウント動作を示すタイミングチャートである。
【図９】従来のＵＡＲＴ通信確立のシーケンスを示す図である。
【図１０】非特許文献１に記載のボーレート・ジェネレータの構成を示す図である。
【符号の説明】
【００７０】
１  ホストマシン
２  フラッシュライタ
３  ターゲットボード
４  マイコン
５  発振子
６  ケーブル
７  フラッシュメモリ
８  フラッシュ制御プログラム
１０  通信システム
２０  ターゲットシステム
２１  ＵＡＲＴ通信部
４１  クロック発生回路
４２  クロック発振回路
４３  ＰＬＬ回路
４４  セレクタ
４５  プリスケーラ
４７  周辺クロック
５１  ボーレート・ジェネレータ
５２  セレクタ
５３  ＣＫＳＲレジスタ
５４  ８ビット・カウンタ
５５  ＢＲＧＣレジスタ
５６  一致検出器
５７  分周器
６１  デバイスファイル
６２  ＧＵＩイメージ
６３  動作周波数入力
【図１】
2007036399.tif 000003
【図２】
2007036399.tif 000004
【図３】
2007036399.tif 000005
【図４】
2007036399.tif 000006
【図５】
2007036399.tif 000007
【図６】
2007036399.tif 000008
【図７】
2007036399.tif 000009
【図８】
2007036399.tif 000010
【図９】
2007036399.tif 000011
【図１０】
2007036399.tif 000012