JP4315935B2 - 非同期型通信確立方法、通信装置及び通信システム - Google Patents

非同期型通信確立方法、通信装置及び通信システム Download PDF

Info

Publication number
JP4315935B2
JP4315935B2 JP2005213362A JP2005213362A JP4315935B2 JP 4315935 B2 JP4315935 B2 JP 4315935B2 JP 2005213362 A JP2005213362 A JP 2005213362A JP 2005213362 A JP2005213362 A JP 2005213362A JP 4315935 B2 JP4315935 B2 JP 4315935B2
Authority
JP
Japan
Prior art keywords
baud rate
setting
operating frequency
specified
communication
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 - Fee Related
Application number
JP2005213362A
Other languages
English (en)
Other versions
JP2007036399A (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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2005213362A priority Critical patent/JP4315935B2/ja
Publication of JP2007036399A publication Critical patent/JP2007036399A/ja
Application granted granted Critical
Publication of JP4315935B2 publication Critical patent/JP4315935B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Description

本発明は、例えば、汎用非同期レシーバトランスミッタ(Universal Asynchronous Receiver Transmitter:UART)等の非同期型通信を使用する通信装置及び通信システム、並びにこの通信装置及び通信システムにおける非同期型通信確立方法に関し、特に一方がボーレート(シリアル転送スピード)の設定機能を有し、且つ他方が任意の動作周波数で動作する通信装置及びこれらの通信システム、並びにその非同期型通信確立方法に関する。
従来、通信のために3つの端子を必要とする同期式の通信方法と比べて端子の数を2つの端子とすることができる例えばUART通信などの非同期通信方法がある。UART通信環境の一例としては、フラッシュメモリを内蔵したマイクロコンピュータ(以下、マイコンという)のオンボードプログラミング環境が挙げられる。この環境は、UART通信設定機能を有するフラッシュライタと、任意の周波数で動作するマイコンと(ターゲットシステム)を搭載したターゲットボードとをUARTで接続し、マイコンをボード上から取り外すことなく、マイコンに内蔵したフラッシュメモリの書き込み(プログラミング)を行うものである。
ここで、フラッシュライタとは、フラッシュメモリへのプログラムの消去、書き込み、ベリファイを行うためのツールである。また、マイコンは、動作速度が速くなると消費電流が多くなる特性があるため、一般的にマイコンを使用する場合、任意の発振周波数値の発振子を接続し、更に内部のクロック設定により動作周波数を決定する。接続可能な発振子の周波数範囲は、マイコンの発振特性により、予め決められている。
マイコンは、フラッシュ制御プログラムを内蔵しており、フラッシュライタと通信を行いながら、プログラム消去、書き込み、及びベリファイの制御を行う。このフラッシュ制御プログラムはマイコン製造時に組み込まれるため、マイコンのユーザが任意に決定する動作周波数の値は、フラッシュ制御プログラムの設計時点においては未知の値である。
一方で、マイコンがフラッシュライタと通信する際のボーレートは、マイコンの動作周波数の値と、マイコンに内蔵されるボーレート・ジェネレータの設定値との関係により決定される。すなわち、マイコンがフラッシュライタとUART通信するためのボーレートは、マイコンの動作周波数の値に基づき生成されるため、マイコンは、先ず、未知の動作周波数の値を知る必要がある。このため、マイコンは、UART通信を確立する際の途中段階でタイマを使用し動作周波数を算出する。動作周波数算出機能は、フラッシュ制御プログラムにより実現される。なお、本明細書においては、ボーレート設定機能を有する側、上記例においてはフラッシュライタより設定されたボーレートにて両者の通信が開始されることをUART通信の確立ということとする。
次に、従来の動作周波数を算出してUART通信を確立する方法について説明する(例えば特許文献1、非特許文献1等参照)。図7は、UART通信を行なう通信システム100の一例として、フラッシュライタ102と、ターゲットボード103上のマイコン104とをUART通信にて接続したオンボードプログラミングシステムを示す。UART通信には、シリアル送信データ信号線Txd及びシリアル受信データ信号線Rxdを使用する。ここで、上記送信及び受信は、マイコン104側からみた場合を示し、フラッシュライタ102側からみると「送信」と「受信」とが逆転する。一方、フラッシュライタ102には、ホストマシン101がRS−232C(Recommended Standard 232 version C)ケーブル106により接続されている。本明細書においては、ボーレートを設定される側、すなわちターゲットシステム側を受信装置とし、ボーレート設定側であるフラッシュライタ2を送信装置として説明する。
ターゲットシステム110は、ターゲットボード103上にマイコン104及びその動作クロック源となる発振子105を有する。マイコン104は、フラッシュメモリ107及びその制御プログラム108を搭載している。
このような通信システム100において、ユーザは、ホストマシン101上から、グラフィカル・ユーザ・インタフェース(以下、GUIという)を介し、フラッシュメモリ107の任意のアドレスのデータの読み出し、消去、書き込み等、必要な操作を行う。フラッシュライタ102は、その操作をコマンドとしてUART通信にてマイコン104に伝達する。フラッシュ制御プログラム108は、マイコン104内部において、UART通信で受信したコマンドに従い、フラッシュメモリ107のデータの読み出し、消去、書き込み等の処理を行う。
以上の動作処理において、マイコン104は動作クロック源として発振子105を使用するが、本来、発振子105はマイコン104が通常動作する際の動作クロック源である。発振子105の発振周波数は、マイコン104の電気的特性で定めた周波数範囲の中で、ターゲットシステム110に適した任意の周波数値をユーザが選択する。そして、発振周波数から生成される所望の動作周波数をターゲットシステム110及びマイコン104の仕様に従ってユーザが設定する。
ところが、フラッシュ制御プログラム108はマイコン104の製造時に組み込まれるため、上記の発振周波数、動作周波数の値は未知である。しかし、ボーレートは動作周波数を元に設定されるため、ターゲットシステム110自信が先ず未知の動作周波数の値を知る(算出する)必要がある。なお、ボーレートの設定方法については後述する。
ここでは先ず、フラッシュ制御プログラム108の内部で処理している動作周波数値の算出方法について説明する。先ず、動作周波数値の算出の原理を簡単に説明する。ターゲットシステム110は、フラッシュライタ102から送出された一定時間のLOWレベル幅の信号を受信し、マイコン104に内蔵したタイマ(不図示)を使用し、動作周波数を分周したカウントクロックで計数する。フラッシュライタ2から送られるLOWレベル幅の値は既知であるので、計数値から動作周波数を逆算することができる。なお、ハイレベル幅であってもよい。
次に、この動作周波数の算出方法について詳細に説明する。図8は、P31/Rxd端子(外部端子)に入力されたLOWレベル信号と、TM50(タイマ)のカウント動作を示すタイミングチャートである。ここで、図8において、タイマのカウント動作を示すタイミングチャートは、縦軸にカウント値をとり、カウント値が増加する様子を示す模式図である。
フラッシュライタ2とターゲットシステム110とは、規定のボーレート(9600bps)にてUART通信を開始することが定められているものとする。この場合、例えばフラッシュライタ102からの一定の時間幅のLOWレベル幅201は、9600bpsのUART通信の9bit分で、マイコン104の外部端子から入力される。ターゲットシステム110は、フラッシュライタ2と接続された時点で上記LOWレベルの受信を監視する。そして、マイコン104内部で、信号の立下りを検出し、上記タイマをスタートする。このタイマは、コンペアタイマであり、コンペアレジスタの値は63である。レジスタ値0からカウント開始し、64回カウント後にコンペア一致割り込みを発生し、カウント値が0に戻った後、再びカウント動作を行う。ここで図中のコンペア一致周期202はタイマスタートからコンペア一致までの周期を示す。フラッシュ制御プログラム108は、一致割り込みを発生するたびに変数LOW_CNTをインクリメントする。
上記LOWレベル信号の送信が終了し外部端子への入力がハイレベルに立ち上がると、タイマをストップする。このときの変数LOW_CNTの値tをタイマカウント値とする。動作周波数は、このタイマカウント値tから算出することができる。
本従来例において、動作周波数、タイマカウントクロック、LOWレベル幅は、以下のとおりである。
動作周波数=fxx
タイマカウントクロック=fxx/2
LOWレベル幅201=9bit/9600bps
また、コンペア一致周期は、タイマ値0から63までのため、以下となる。
コンペア一致周期=2/fxx×64
そして、LOWレベル幅201にコンペア一致周期202が、タイマにてカウントしたカウント値=tの場合、下記の等式が成り立つ。
9/9600=t×2/fxx×64
従って、動作周波数fxxは、下記の式で求められる。
fxx=t×2×64×9600/9
ここで、以上により算出した動作周波数値は誤差を含むので、LOWレベル幅201を2回測定し、平均値を取る。こうして算出した動作周波数fxxにより、ボーレート・ジェネレータに搭載されボーレートを設定する後述する制御レジスタを一旦、規定値の9600bpsとなるよう設定し、ボーレートを9600bpsに設定する。
次に、上述した周波数算出ルーチンにて求めた動作周波数値は、2回の平均値を取ってもなお規定の値とは違い(誤差)があるため、正確な動作周波数値をユーザがGUI上で入力する。また、他の動作周波数を指定したい場合も同様である。このため、ユーザ指定の動作周波数の値を周波数設定コマンドにて送出して、より正確なボーレートを再設定することができる。又は、システムに応じた最適な動作周波数を選択することができる。最後にユーザが9600bps以外のボーレートを使用する場合は、任意のボーレート値をボーレート設定コマンドにて送出して、これをターゲットシステム110が受信し、このボーレート設定コマンドに応じてボーレートを設定することで、UART通信の確立が行なわれる。
以上で述べた従来技術における一連のUART通信確立をシーケンスで表すと図9のようになる。すなわち、図9に示すように、マイコン104は、先ずフラッシュライタ102からのLOWレベルの信号を受信し(ステップS11)、LOWレベル幅をカウントする。そして、平均を取るため、再度フラッシュライタ102からのLOWレベルの信号を受信し(ステップS12)、LOWレベル幅をカウントする。そして、これらのカウント値から動作周波数の平均値を算出することで、一旦ボーレートを規定値の9600bpsに設定することができる。これにより、ターゲットシステム110は、フラッシュライタ102からのコマンドを受信することが可能となる。
次に、ターゲットシステム110は、フラッシュライタ102より周波数設定コマンドを受信し(ステップS13)、その応答(ACK)を送信する(ステップS14)。そして、ターゲットシステム110は、上記周波数設定コマンドに基づき発振周波数を設定し、動作周波数を設定する。次に、フラッシュライタ102からのボーレート設定コマンドを受信する(ステップS15)。これによりターゲットシステム110は、フラッシュライタ102より指定のボーレートに設定し、ACKを送信する(ステップS16)。このように、UART通信確立(規定のボーレートでの通信)に先立ち、2回のLOWレベル受信を経る必要がり、その後周波数設定コマンドの受信、ボーレート設定コマンドの受信を行う。
次に、マイコンにおけるボーレート設定方法について説明し、ボーレート設定に動作周波数値が必要である理由について合わせて説明する。
図10は、非特許文献1に記載のボーレート・ジェネレータの構成を示す図である。マイコンは、図示せぬクロック発生回路及びボーレート・ジェネレータを有する。クロック発生回路より生成されたクロック(fxx〜fxx/1024)がボーレート・ジェネレータ501に供給される。ボーレート・ジェネレータ501は、ソース・クロック・セレクタ部(以下、セレクタという)552と8ビットのプログラマブル・カウンタ(以下、8ビット・カウンタという)554とを有し、UARTにおける送受信時のシリアル・クロックを生成する。シリアル・クロックは、チャネル毎に専用ボーレート・ジェネレータ出力を選択することができる。なお、8ビット・カウンタ554は送信用と受信用が別々に存在する。
クロック選択レジスタ(CKSRレジスタ)553は、基本クロック周波数(fUCLK)を選択するための8ビット・レジスタで、これにより選択されたクロックが送受信モジュールの基本クロック周波数(fUCLK)になる。ボーレート・ジェネレータ・コントロール・レジスタ(BRGCレジスタ)555は、UARTのボーレートを制御する8ビット・レジスタである。
CKSRレジスタ553とBRGCレジスタ555の設定により、シリアル・クロックを生成する。すなわち、CKSRレジスタ553により、8ビット・カウンタ554へ出力する基本クロック周波数(fUCLK)を選択し、BRGCレジスタ555により、8ビット・カウンタ554の分周値、すなわち分周比を設定するための設定値を設定する。8ビット・カウンタ554の出力とBRCG555とが一致するクロックを一致検出器556が出力し、この出力を分周器557にて2分周したものがボーレートとなる。
ボーレートは、下記の式により求められる。
ボーレート[bps]=fUCLK/2k
ここで、fUCLKは、メイン・クロック周波数(動作周波数)fxxを分周したクロックである。なお、kは、BRGCレジスタ555にて設定する設定値(分周比)を示し、k=8,9,10,・・・,255の値をとる。
このように、ボーレートは、メイン・クロック周波数(動作周波数)fxxを元に生成されており、ボーレートを設定するためには、メイン・クロック周波数fxxの値が必要である。よって、ボーレートの設定には、動作周波数fxxの算出が不可欠となる。
特開2001−69194号公報 「ユーザーズ・マニュアル V850ES/KJ1ハードウェア編 32ビット・シングルチップ・マイクロコンピュータ」,資料番号U16889JJ1V0UD00(第1版),第490〜496頁,2004年2月,NEC Electronics Corporation 2004, [平成17年6月16日検索] インターネット<http://www.necel.com/cgi-bin/nesdis/o002.cgi?aliascode=170127&langcode=J>
上述したように、従来の方法においては、ボーレート設定のために、フラッシュ制御プログラム108をマイコン104に組み込む時点で未知の動作周波数を算出する必要がある。すなわち、UART通信においては、送信側と受信側とで予め規定のボーレートに設定するが、当該規定のボーレートに設定するためには、受信側のターゲットシステム110が動作周波数を把握する必要がある。よって、通信確立に先立ち、LOWレベル幅から動作周波数を算出する必要がある。しかしながら、LOWレベル幅から動作周波数を算出するためには上述のようにタイマが必要であり、さらに、動作周波数算出のためのルーチン(プログラムコード)と、LOWレベル受信のための最小2回のフラッシュライタ102との通信とが必要となる。なお、上記従来技術においては、動作周波数は2回のLOWレベル幅の受信により平均値を算出しているものの誤差を含み、よって従来一旦設定される9600bpsのボーレートにも誤差が含まれるため周波数設定コマンドを受信する必要がある。これに対し、例えば3回以上の平均を求めることで上記ボーレートの誤差を取り除くことも考えられるが、ボーレート設定コマンドの受信まで、すなわちUART通信確立までに時間がかかってしまうという新たな問題も生じる。
以上のような理由によりUART通信確立には、図9に示すように複雑なシーケンスが必要となってしまう。また、マイコン104にタイマを内蔵していることが必須となること、及び上記動作周波数算出ルーチンのためのフラッシュ制御プログラム108のコードの増加、更にはチップ面積の増加により、コスト増加に繋がるという問題点がある。
特に近年は、低機能、低価格のマイコンの需要が伸び、コスト競争力が求められ、フラッシュ制御プログラムの極限までの縮小化が進められている。したがって、この動作周波数算出機能のプログラムコードは、マイコンの縮小化の弊害となるものである。また、本来のフラッシュ制御機能ではないことから、フラッシュ制御プログラムのコストパフォーマンスを悪化させているとも考えられる。
更に、低機能マイコンにおいて、タイマを内蔵しない場合は、上述の方法で動作周波数を算出することができず、UART通信の確立が困難である。すなわち、マイコンがタイマを内蔵していなければ動作周波数の算出が不可能であるため、動作周波数及びボーレートを固定とした上で、通信確立を行うしかなくなり、ターゲットシステムによっては、システム構成が不可能または、著しく機能制限されてしまう。
本発明にかかる非同期型通信確立方法は、一方の機器がボーレートの設定機能を有し、他方の機器との間で非同期型通信を行なう際の非同期型通信確立方法であって、前記他方の機器の仕様に応じて定まる固有のボーレートにより、前記一方の機器が前記他方の機器に対し任意の規定ボーレートを設定し、前記他方の機器が前記設定された規定ボーレートにより通信を開始するものである。
本発明においては、一方がボーレート設定機能を有する通信システムにおいて、規定のボーレートを使用せず、他方の機器の仕様によって定まる固有のボーレートを使用して規定ボーレートを設定させ、非同期型通信を開始する。したがって、規定のボーレートを使用するために必要な他方の機器の動作周波数を予め求める必要がなく、規定ボーレートでの通信までの動作シーケンスを簡素化することができる。すなわち、従来必要であった動作周波数測定のために一定レベルの信号を受信して動作周波数を算出するシーケンス、及び動作周波数を算出するために必要なカウンタ等が不要となる。
本発明にかかる他の非同期型通信確立方法は、第1の機器が、第1の設定値及び第1の機器の動作周波数により第1のボーレートを設定する工程と、第2の機器が、前記第1の設定値及び前記第1の機器の動作周波数を入力され、前記第1の設定値及び前記第1の機器の動作周波数に基づいて第2のボーレートを設定する工程と、前記第2の機器が、前記第2のボーレートによって前記第1の機器に対し前記第1のボーレートを規定のボーレートに変更するためのボーレート設定コマンドを送信する工程と、前記ボーレート設定コマンドを受信した前記第1の機器が、前記第2の設定値及び前記第1の機器の動作周波数により前記規定のボーレートを設定する工程と、前記ボーレート設定コマンドを送信した前記第2の機器が、前記第2のボーレートを前記規定のボーレートに変更する工程を有するものである。
本発明によれば、非同期型通信確立のシーケンスを簡単化及び高速化することができると共に、通信確立の信頼性の向上、フラッシュ制御プログラムの縮小、及び低機能なマイコン等への応用が可能な非同期型通信確立方法、通信装置及び通信システムを提供することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ボーレート設定機能を有するフラッシュライタと、任意の動作周波数で動作するフラッシュメモリを有するシステム(ターゲットシステム)との間のUART通信確立方法に適用したものである。
UART通信は、通常規定のボーレートにより行われる。この場合、規定のボーレートとして、300,600,1200,2400,4800,9600,10400,19200,31250,38400,76800,115200,153600,230400,312500(bps)が使用されている。
従来はターゲットシステム側においてこのような規定のボーレートを設定するために、動作周波数を算出する必要があり、このため、ターゲットシステムに含まれるマイコンには動作周波数算出のための専用プログラム及びタイマが必要であった。これに対し、本実施の形態にかかるUART通信確立方法においては、規定ボーレートでの通信が確立又は開始するまでの期間において、両者の間の通信をターゲットシステムの仕様に応じて定まる固有のボーレートである規定外のボーレートにて行なう。
ここで、規定外のボーレートとは、マイコンのボーレートの設定に関わる制御レジスタ初期値と、動作周波数とで決定される固有のボーレートを示す。本実施の形態においては、規定ボーレートでの通信に先立ち上記固有のボーレートにて、ボーレート設定機能を有するフラッシュライタによりターゲットシステムにおける規定ボーレートの設定を行わせるため、ターゲットシステム側において規定ボーレートを設定するための動作周波数算出のためのシーケンスが不要となり、よってタイマの内蔵も不要となるものである。
図1は、本実施の形態にかかる通信システムを示す図である。通信システム10は、ボーレート値の通信設定機能を有する一方の機器(第1の機器)の一例としてのフラッシュライタ2と、任意の周波数で動作する他方の機器(第2の機器)の一例としてのマイコン4及びその動作クロック源となる発振子5(ターゲットシステム20)を有するターゲットシステム20とを有する。これによりフラッシュライタ2と、ターゲットボード3上のマイコン4とをUART通信にて接続したオンボードプログラミングシステムが構成される。ここで、本例においては、ボーレート設定機能を有するフラッシュライタ2を送信装置、ボーレートを設定される側のターゲットシステム20を受信装置として説明する。
UART通信には、シリアル送信データ信号線Txd及びシリアル受信データ信号線Rxdを使用する。ここで、上記送信及び受信は、マイコン4側(受信装置側)からみた場合を示し、フラッシュライタ2側(送信装置側)からみると「送信」と「受信」とが逆転する。一方、フラッシュライタ2には、ホストマシン1がRS−232Cケーブル6により接続されている。
マイコン4は、フラッシュメモリ7及びその制御プログラム8を搭載している。マイコン4は、その他、ターゲットボード3上にマイコン4とは別に具備される発振子5からクロックを生成する後述するクロック発生回路(不図示)、及びボーレートを生成するボーレート・ジェネレータ(不図示)を有する。フラッシュライタ2とマイコン4とのUART通信は、フラッシュライタ2が指定するボーレートにより行なわれる。ターゲットシステム20においては、上記クロック発生回路により任意の動作周波数のクロックを発生させることができ、またボーレート・ジェネレータによりフラッシュライタ2により設定される規定ボーレートを生成する。
このようなシステムにおいて、ユーザは、ホストマシン1上から、GUIを介し、フラッシュメモリ7の任意のアドレスのデータの読み出し、消去、書き込み等、必要な操作を行う。フラッシュライタ2は、その操作をコマンドとしてUART通信にてマイコン4に伝達する。フラッシュ制御プログラム8は、マイコン4内部において、UART通信で受信したコマンドに従い、フラッシュメモリ7のデータの読み出し、消去、書き込み等の処理を行う。以上の点は従来と同様である。
ここで、フラッシュライタ2とターゲットシステム20との間のUART通信は、例えば9600bpsの規定のボーレートで行うことが決められている。ターゲットシステム20においては、その動作周波数に基づきボーレートが生成されるため、上記規定のボーレート設定のために先ず動作周波数を求める必要があった。なお、その他の規定のボーレート値としても同様である。これに対し、本実施の形態においては、ターゲットシステム20の仕様によって定まる固有のボーレート(第1のボーレート)にてフラッシュライタ2よりボーレートの設定を行なわせることで、上記動作周波数の算出を不要とするものである。
図2は、ターゲットシステム20が有するクロック発生回路41及びUARTのボーレート・ジェネレータ51部分を示す図である。図2に示すように、クロック発生回路41は、発振子5に接続されたクロック発振回路42と、PLL(Phase Locked Loop)回路43と、セレクタ44と、プリスケーラ45とを有する。発振子5は、ターゲットシステム20に応じてユーザが例えば2MHz〜10MHzの範囲で選択し、クロック発振回路42から出力される。クロック発生回路41は、クロック発振回路42の出力fxをメイン・クロック周波数(fxx)としてそのまま使用するクロック・スルー・モード(ダイレクトモード)とfxを例えば4逓倍して使用するPLLモードとを有する。この発振子5の発振周波数と、PLLモード又はダイレクトモードかにより任意の動作周波数fxxが決定され、その範囲は、例えば2MHz〜20MHzである。
すなわち、PLLモードにおいては、
動作周波数fxx=4×fx
ダイレクトモードにおいては、
動作周波数fxx=fx
となる。ユーザは、発振子5の発振周波数、各モード等により任意の動作周波数を設定することができる。
プリスケーラ45は、メイン・クロック周波数fxxを分周する回路であり、後述するセレクタ52にプリスケーラ45で生成したクロック(fxx〜fxx/1024:周辺クロック47)を供給する。
ボーレート・ジェネレータ51は、ソース・クロック・セレクタ部(以下、セレクタという)52と8ビットのプログラマブル・カウンタ(以下、8ビット・カウンタという)54とを有し、UART通信における送受信時のシリアル・クロックを生成する。シリアル・クロックは、複数のチャネルを有する場合にはチャネル毎に専用ボーレート・ジェネレータ出力を選択することができる。なお、8ビット・カウンタ54は送信用と受信用が別々に存在する。
クロック選択レジスタ(CKSRレジスタ)53は、基本クロック周波数(fUCLK)を選択するための8ビット・レジスタで、これにより選択されたクロックが送受信モジュールの基本クロック周波数(fUCLK)にななる。ボーレート・ジェネレータ・コントロール・レジスタ(BRGCレジスタ)55は、UARTのボーレートを制御する8ビット・レジスタである。
CKSRレジスタ53とBRGCレジスタ55の設定により、シリアル・クロックを生成する。すなわち、CKSRレジスタ53により、8ビット・カウンタ54へ出力する基本クロック周波数(fUCLK)を選択し、BRGCレジスタ55により、8ビット・カウンタ54の分周値、すなわち分周比を設定するための設定値を設定する。8ビット・カウンタ54の出力とBRGCレジスタ55とが一致するクロックを一致検出器56が出力し、この出力を分周器57にて2分周したものがボーレートとなる。
ここで、通常のUART通信においては、フラッシュライタ2による周波数設定コマンドにより動作周波数が設定され、ボーレート設定コマンドによりCKSRレジスタ53及びBRGCレジスタ55の各レジスタ値が設定され、これによりボーレート・ジェネレータ51が指定のボーレートを生成する。よって、上述の従来技術のように、一般的には、動作周波数を算出しなければ規定のボーレートを設定することができない。規定のボーレートを設定しなければフラッシュライタ2とのUART通信を行なうことができない。
ここで、CKSRレジスタ53及びBRGCレジスタ55に、規定ボーレート設定のための設定値を設定せず、リセット初期値をそのまま使用すると、ターゲットシステム20にて固有のボーレートが生成される。本実施の形態においては、この固有のボーレートによりフラッシュライタ2との通信を開始する。すなわち、本実施の形態におけるマイコン4は、フラッシュライタ2による規定ボーレートの設定によって開始されるUART通信に先立つ工程において、予め定められた規定のボーレートではなく、ボーレート・ジェネレータ51の設定制御部であるCKSRレジスタ53及びBRGCレジスタ55のリセット初期値及び動作周波数から求まる固有の規定外ボーレートを使用してフラッシュライタ2との通信を実行する。
ここでCKSRレジスタ53、BRGCレジスタ55のリセット初期値及びその設定は以下のとおりである。
CKSR=00H(fUCLK=fxx)
BRGC=FFH(k=255)
ボーレートは、下記で求められる。
ボーレート(bps)=基本クロック周波数fUCLK/(2×k)
なお、kは、BRGCレジスタ55にて設定する設定値(分周比)を示し、k=8,9,10,・・・,255の値をとる。
従って、以上の環境で、設定されるボーレートは、図3のようになる。すなわち、ボーレートは動作周波数とCKSRレジスタ53及びBRGCレジスタ55とから決まる固有のボーレートとなり、本例においては規定外のボーレート値となる。
一方、フラッシュライタ2側では、上記固有のボーレート値に合致するよう次に説明する方法にてボーレートの設定を行う。図4は、フラッシュライタ2の構成及びホストマシン1のGUIイメージを示す模式図である。CKSRレジスタ53及びBRGCレジスタ55のリセット初期値は、製品毎にその仕様より予め定められており、デバイスファイル61から入力することができる。動作周波数fxxは、ホストマシン1のGUIを介し、ホストマシン・GUIイメージ62に示すように、動作周波数入力部63によりユーザがその数値を直接入力する。
以上のように、CKSRレジスタ53及びBRGCレジスタ55のリセット初期値と動作周波数fxxが明らかであることから、図3に示した規定外のボーレートを規定のボーレート設定側であるフラッシュライタ2内でも算出可能である。なお、フラッシュライタ2は、CKSRレジスタ53及びBRGCレジスタ55のリセット初期値と動作周波数fxxとからボーレートを算出する演算部又はプログラム(不図示)を有している。ここで、フラッシュライタ2内蔵のUART通信部21の動作周波数を例えば40MHzと仮定し、図3に示したボーレート設定例を目標ボーレートとし、設定したボーレート(第2のボーレート)の例を図5に示す。
ここで、受信の際に送信先のボーレートのずれがどの程度まで許容できるか(許容誤差)は理論上下記の式により求めることができる(非特許文献1、P495−496)。なお、下記式は11ビット受信に当てはめた場合を示す。
受信可能な送信先の最大ボーレート(BRmax)=22k/(21k+2)×Brate
受信可能な送信先の最小ボーレート(BRmin)=20k/(21k−2)×Brate
なお、kはBRGCレジスタ55の設定値(分周比)、Brateは、フラッシュライタ2により指定されるUARTのボーレートを示す。受信の精度は1フレーム・ビット数、基本クロック周波数(fUCLK)、分周比kに依存し、基本クロック周波数(fUCLK)が高く、分周比kが大きくなるほど精度が高くなる。すなわち、許容誤差は、基本クロック周波数(fUCLK)が高く、分周比kが大きくなるほど小さくなる。
上記式にて求めたk=8の許容最大ボーレート誤差は、3.53%である。これに対し、本実施の形態においては、目標ボーレート(固有のボーレート又は第1のボーレート)からのボーレート誤差は、図5に示すように−0.39%〜+0.24%となり、通信誤差は十分小さく実用に耐えうる。
以上のように、フラッシュライタ2による規定ボーレートの設定において、機器の仕様に応じて定まる規定外のボーレートを使用することにより、規定ボーレート設定のために動作周波数の算出等の複雑な処理をすることなく、またマイコン4にカウンタを内蔵する必要もなくなる。図6は、これらの操作シーケンスを示す図である。
本実施の形態においては、上述の如く規定外の固有のボーレートにて規定ボーレートの設定を行なうため、動作周波数の算出が必要ない。ターゲットシステム20は、第1回目の通信でフラッシュライタ2より上記固有のボーレートにて周波数設定コマンドの受信を行う(ステップS1)。この周波数設定コマンドに対するアクノーリッジ(ACK)の返信(ステップS2)も上記固有のボーレートにて行なう。次いで任意の規定のボーレートに設定するため、フラッシュライタ2から上記固有のボーレートにてボーレート設定コマンドを受信する(ステップS3)。以上の受信により、ターゲットシステム20は、動作周波数を設定し、任意の規定のボーレートに設定することができる。
こうしてフラッシュライタ2とマイコン4との間にて規定ボーレートによる通信が確立するまでの間、すなわち、ステップS1のマイコン4の動作周波数を設定するための周波数設定コマンドの受信、ステップS2のACKの返信、ステップS3のボーレートを設定するボーレート設定コマンドの受信は、上述の固有のボーレートで行ない、規定ボーレートに設定することで、ターゲットシステム20は、規定のボーレート設定コマンドに対するアクノーリッジ返信(ステップS4)を規定のボーレートを使用して実行する。これにて規定ボーレートによるUART通信が確立される。
本実施の形態においては、マイコン4に内蔵されるボーレート・ジェネレータ51のボーレート設定制御部であるCKSRレジスタ53及びBRGCレジスタ55のリセット初期値をそのまま使用した場合にボーレート・ジェネレータ51にて設定される固有のボーレートを使用してフラッシュライタ2に規定ボーレートの設定を行なわせる。すなわち、フラッシュライタ2との規定ボーレートでの通信が確立するまでの間は規定のボーレートを使用しないため、マイコン4ではUART通信を開始するための予め定められたボーレートの設定自体が不要となる。このため、以下の効果を奏する。
先ず、従来のLOWレベル受信により動作周波数を算出する方法であると、ノイズ等の影響によりLOWレベル幅測定が正常終了できない場合、UART通信確立が失敗したと見なされ、タイムアウト時間(動作周波数20MHzの場合、約600μsec)待機の後、再度処理を繰り返すこととなり、通信確立に極めて時間がかかる場合があった。そして、従来の規定のボーレートを使用するUART通信確立方法と比較すると、本実施の形態においては、少なくとも動作周波数算出のためのLOWレベル受信2回分が不要となり、その分UART通信確立処理の高速化が可能となる。これは時間に換算すると、例えば1.875(msec)の短縮化が可能である。
次に、一方、本実施の形態においては、フラッシュ制御プログラム8に内蔵する周波数算出ルーチンも不要となるため、フラッシュ制御プログラム8には、動作周波数算出ルーチンを組み込む必要がなくなり、当該プログラムを記録するために必要であった約500byteを削減することができる。
更に、動作周波数算出が不要になることにより、マイコンに内蔵されていることが前提であったタイマも不要となり、低機能なマイコン又は類似するシステムにも応用ができる。
このように、本実施の形態においては、UART通信確立のシーケンスが簡単になるばかりか、通信確立までの時間の短縮化が図れ、通信確立の信頼性の向上、フラッシュ制御プログラム8の縮小、及び低機能なマイコンへの応用が可能という優れた効果を奏する。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、本実施の形態においては、非同期型通信の一例としてUART通信について説明したが、他の非同期型通信の通信確立方法に適用することも可能である。
本発明の実施の形態にかかる通信システムを示す図である。 本発明の実施の形態にかかる通信システムにおけるマイコンに内蔵されたクロック発生回路及びUARTのボーレート・ジェネレータを示す図である。 本発明の実施の形態にかかる通信システムにおける通信確立するまでの間のマイコンにおけるボーレート設定例を示す図である。 本発明の実施の形態にかかる通信システムにおけるフラッシュライタの構成及びホストマシン1のGUIイメージを示す模式図である。 図3に示したボーレート設定例を目標ボーレートとしてフラッシュライタにて設定したボーレート設定例を示す図である。 本発明の実施の形態にかかる通信システムにおけるUART通信確立のシーケンスを示す図である。 従来の通信システムを示す図である。 従来の通信システムにおいて、マイコンに入力されたLOWレベル信号と、タイマのカウント動作を示すタイミングチャートである。 従来のUART通信確立のシーケンスを示す図である。 非特許文献1に記載のボーレート・ジェネレータの構成を示す図である。
符号の説明
1 ホストマシン
2 フラッシュライタ
3 ターゲットボード
4 マイコン
5 発振子
6 ケーブル
7 フラッシュメモリ
8 フラッシュ制御プログラム
10 通信システム
20 ターゲットシステム
21 UART通信部
41 クロック発生回路
42 クロック発振回路
43 PLL回路
44 セレクタ
45 プリスケーラ
47 周辺クロック
51 ボーレート・ジェネレータ
52 セレクタ
53 CKSRレジスタ
54 8ビット・カウンタ
55 BRGCレジスタ
56 一致検出器
57 分周器
61 デバイスファイル
62 GUIイメージ
63 動作周波数入力

Claims (13)

  1. 一方の機器がボーレートの設定機能を有し、他方の機器との間で非同期型通信を行なう際の非同期型通信確立方法であって、
    前記一方の機器は、前記他方の機器の仕様に応じて定まる固有のボーレートを用いて、動作周波数を設定するための周波数設定命令と、任意の規定ボーレートを設定するためのボーレート設定命令とを、前記他方の機器へ送信することによって前記他方の機器に対し前記規定ボーレートを設定し、
    前記他方の機器は、前記周波数設定命令及び前記ボーレート設定命令に基づき前記規定ボーレートを生成し、前記規定ボーレートにより通信を開始する非同期型通信確立方法。
  2. 前記固有のボーレートは、前記他方の機器において前記規定ボーレートを生成させる設定値を設定する設定制御部が有する所定値と動作周波数とで決定されるボーレートである
    ことを特徴とする請求項1記載の非同期型通信確立方法。
  3. 前記所定値は前記設定制御部が有するリセット初期値である
    ことを特徴とする請求項記載の非同期型通信確立方法。
  4. 前記固有のボーレートは、規定外のボーレートである
    ことを特徴とする請求項1記載の非同期型通信確立方法。
  5. 前記一方の機器は、前記リセット初期値及び前記他方の機器の動作周波数の情報が外部より入力され、当該入力情報に基づき前記固有のボーレートを生成し、この固有のボーレートにより前記他方の機器に前記周波数設定命令及びボーレート設定命令を送信する
    ことを特徴とする請求項記載の非同期型通信確立方法。
  6. 第1の機器が、第1の設定値及び第1の機器の動作周波数により第1のボーレートを設定する工程と、
    第2の機器が、前記第1の設定値及び前記第1の機器の動作周波数を入力され、前記第1の設定値及び前記第1の機器の動作周波数に基づいて第2のボーレートを設定する工程と、
    前記第2の機器が、前記第2のボーレートによって前記第1の機器に対し前記第1のボーレートを規定のボーレートに変更するためのボーレート設定コマンドを送信する工程と、
    前記ボーレート設定コマンドを受信した前記第1の機器が、前記第2の設定値及び前記第1の機器の動作周波数により前記規定のボーレートを設定する工程と、
    前記ボーレート設定コマンドを送信した前記第2の機器が、前記第2のボーレートを前記規定のボーレートに変更する工程を有する非同期型通信確立方法。
  7. 前記第1の設定値は、前記第1の機器におけるボーレートを設定する設定部のリセット初期値である
    ことを特徴とする請求項記載の非同期型通信確立方法。
  8. 前記第1の機器で使用されるボーレートは、当該ボーレートからの前記第2の機器との通信が可能なずれ幅である許容誤差を有する
    ことを特徴とする請求項記載の非同期型通信確立方法。
  9. 前記第1及び第2のボーレートは、UART通信の規定外のボーレートであること
    ことを特徴とする請求項記載の非同期型通信確立方法。
  10. 前記第2のボーレートは、前記第1のボーレートの許容誤差範囲内にある
    ことを特徴とする請求項記載の非同期型通信確立方法。
  11. ボーレートの設定機能を有する他の機器との間で非同期型通信をする通信装置であって、
    動作周波数のクロックを生成するクロック生成部と、
    前記他の機器からの命令によりボーレートを設定する設定制御部と、
    前記設定制御部の設定値及び前記クロック生成部にて生成される動作周波数とによりボーレートを生成するボーレート生成部とを有し、
    前記設定制御部が有する所定値と動作周波数とに基づき決定される固有ボーレートを用いて、前記動作周波数を設定する動作周波数設定命令及び任意の規定ボーレートを設定するボーレート設定命令を、前記他の機器から受信し、
    前記クロック生成部は、前記動作周波数設定命令に応じて動作周波数を生成し、
    前記設定制御部は、前記ボーレート設定命令に応じて前記規定ボーレートを前記ボーレート生成部に生成させ、前記規定ボーレートを設定する通信装置。
  12. 前記所定値は前記設定制御部が有するリセット初期値である
    ことを特徴とする請求項11記載の通信装置。
  13. 第1の機器と、前記第1の機器に対してボーレートの設定機能を有する第2の機器とを有する通信システムであって、
    前記第1の機器は、
    動作周波数のクロックを生成するクロック生成部と、
    前記第2の機器からの命令によりボーレートを設定する設定制御部と、
    前記設定制御部の設定値及び前記クロック生成部にて生成される動作周波数とによりボーレートを生成するボーレート生成部とを有し、
    前記設定制御部が有する所定値と動作周波数とに基づき決定される固有ボーレートにて前記第1の機器との非同期型通信を確立させ、
    前記第2の機器は、前記第1の機器の動作周波数及び前記所定値が外部から入力され、該入力情報に基づき前記固有ボーレートを生成し、前記固有ボーレートにより前記第1の機器に対して任意の規定ボーレートを設定する通信システム。
JP2005213362A 2005-07-22 2005-07-22 非同期型通信確立方法、通信装置及び通信システム Expired - Fee Related JP4315935B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005213362A JP4315935B2 (ja) 2005-07-22 2005-07-22 非同期型通信確立方法、通信装置及び通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005213362A JP4315935B2 (ja) 2005-07-22 2005-07-22 非同期型通信確立方法、通信装置及び通信システム

Publications (2)

Publication Number Publication Date
JP2007036399A JP2007036399A (ja) 2007-02-08
JP4315935B2 true JP4315935B2 (ja) 2009-08-19

Family

ID=37795146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005213362A Expired - Fee Related JP4315935B2 (ja) 2005-07-22 2005-07-22 非同期型通信確立方法、通信装置及び通信システム

Country Status (1)

Country Link
JP (1) JP4315935B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2503021A1 (en) 2011-03-24 2012-09-26 United Technologies Corporation Monitoring of substrate temperature.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2503021A1 (en) 2011-03-24 2012-09-26 United Technologies Corporation Monitoring of substrate temperature.

Also Published As

Publication number Publication date
JP2007036399A (ja) 2007-02-08

Similar Documents

Publication Publication Date Title
EP2506074B1 (en) Image capturing device and interchangeable lens
JP4327764B2 (ja) データ受信装置および同期信号検出方法ならびにプログラム
US11032671B2 (en) Methods, systems and devices for communicating between devices within a channel hopping system
US20070174727A1 (en) Usb apparatus
US20160330278A1 (en) Synchronization measurement system, synchronization measurement method, controller, sensor unit, synchronous signal generation unit, synchronous signal transfer unit, and program
KR20150128658A (ko) 직렬 데이터 송신용 디더링 회로
JP4315935B2 (ja) 非同期型通信確立方法、通信装置及び通信システム
CN115776365A (zh) 串口波特率的校正方法及系统、通信模块及存储介质
US9094911B2 (en) Data communication system, method of optimizing preamble length, and communication apparatus
CN114884627B (zh) 一种波特率同步方法
US7337346B2 (en) Method and apparatus for fine tuning a memory interface
CN114953787B (zh) 一种芯片、装置及数据传输方法
JP5127342B2 (ja) 受信装置および方法
JP2004064616A (ja) ボーレート設定方法、ボーレート設定プログラム、可読記録媒体、通信システムおよび通信方法
US8953662B1 (en) Method and apparatus for baud rate tracking
JP2007202151A (ja) ビット長のカウンタを備えた非同期式シリアルデータ伝送用の集積回路
EP4020811B1 (en) Power-on communication between a host ic and a client ic
JP2005303631A (ja) データ通信システム
KR101879053B1 (ko) 보 레이트가 자동으로 설정되는 테스트 장치
CN115412392B (zh) Rs-485电路与通信系统
JP2005303632A (ja) データ通信システム
JP2006094430A (ja) 通信システム、通信装置、通信システムによる通信方法、プログラム、および、そのプログラムを記録した記録媒体
KR20160008973A (ko) 신호 생성 장치, 액티브 케이블, 및 신호 생성 방법
CN115811325A (zh) Uart串行通信电路及电压过零信号的输出方法
JP3481483B2 (ja) デジタルデータの無線通信装置およびデジタルデータの無線通信方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090406

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees