JP2005352658A - マイクロコンピュータと半導体メモリカードとの間のシリアル通信制御方法 - Google Patents
マイクロコンピュータと半導体メモリカードとの間のシリアル通信制御方法 Download PDFInfo
- Publication number
- JP2005352658A JP2005352658A JP2004171274A JP2004171274A JP2005352658A JP 2005352658 A JP2005352658 A JP 2005352658A JP 2004171274 A JP2004171274 A JP 2004171274A JP 2004171274 A JP2004171274 A JP 2004171274A JP 2005352658 A JP2005352658 A JP 2005352658A
- Authority
- JP
- Japan
- Prior art keywords
- output
- data
- terminal
- clock
- input
- 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.)
- Abandoned
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】マイクロコンピュータに通信インターフェイスLSIを付加することなく、マイクロコンピュータと半導体メモリカードとの間の高速のシリアル通信を可能にする。
【解決手段】マイクロコンピュータ10は、同期式シリアル通信インターフェース20と汎用入出力ポート22とを備えている。マイクロコンピュータ10と半導体メモリカード12とは、クロック線14及びデータ線16を介して接続されている。同期式シリアル通信インターフェース20のクロック入出力端子24からのクロック出力と、汎用入出力ポート22の端子28からのクロック出力との間で、クロック出力元を切り替えるようにした。
【選択図】図1
【解決手段】マイクロコンピュータ10は、同期式シリアル通信インターフェース20と汎用入出力ポート22とを備えている。マイクロコンピュータ10と半導体メモリカード12とは、クロック線14及びデータ線16を介して接続されている。同期式シリアル通信インターフェース20のクロック入出力端子24からのクロック出力と、汎用入出力ポート22の端子28からのクロック出力との間で、クロック出力元を切り替えるようにした。
【選択図】図1
Description
本発明は、マイクロコンピュータと半導体メモリカードとの間のシリアル通信制御方法に関する。
半導体メモリカードは、様々な種類のものが製品化されているが、それぞれが独自の通信方式を採用しているため、データ通信プロトコルは製品によってまちまちであり、標準化されていない。そのためマイクロコンピュータには、多くの場合、半導体メモリカードとの間でデータ転送を行うための専用の通信インターフェイスは内蔵されておらず、マイクロコンピュータに専用の通信インターフェイスLSIを外付けし、その通信インターフェースLSIを介して半導体メモリカードをマイクロコンピュータに接続するようにしている。
半導体メモリカードとの間でデータ転送を行うための専用の通信インターフェイスを内蔵したマイクロコンピュータは一般に高価であり、また、専用の通信インターフェースLSIを外付けする場合にもその分のコストが必要になるので、コスト制限の厳しい機器で半導体メモリカードに対応するのは、現状非常に困難となっている。
マイクロコンピュータと半導体メモリカードとの間のデータ転送に使用することのできるシリアル通信インターフェースを開示した文献としては、例えば特開平7-129484号公報などがある。
特開平7-129484号公報
半導体メモリカードとの間でデータ転送を行うための専用の通信インターフェイスを内蔵したマイクロコンピュータは一般に高価であり、また、専用の通信インターフェースLSIを外付けする場合にもその分のコストが必要になるので、コスト制限の厳しい機器で半導体メモリカードに対応するのは、現状非常に困難となっている。
マイクロコンピュータと半導体メモリカードとの間のデータ転送に使用することのできるシリアル通信インターフェースを開示した文献としては、例えば特開平7-129484号公報などがある。
本発明は上記問題を解決すべく成されたものであり、本発明の目的は、既存の多くの汎用マイクロコンピュータに装備されている機能のみを用いて、専用の通信インターフェイスLSIを付加することなく、マイクロコンピュータと半導体メモリカードとの間の高速のシリアル通信を可能にすることにある。
上記目的を達成するため本発明に係るシリアル通信制御方法は、中央処理部(CPU)と、クロック入出力端子及びデータ入出力端子を有し前記CPUによってトリガされハードウェアフロー制御により所定ビット数を単位として高速シリアル通信を行う同期式シリアル通信インターフェースと、複数の端子を有し前記CPUによって1ビットずつの入出力制御が可能な汎用入出力ポートとを備えたマイクロコンピュータと、クロック入力端子及びシリアルデータ入出力端子を有する半導体メモリカードとの間の、シリアル通信方式によるデータ通信を制御するためのシリアル通信制御方法において、前記マイクロコンピュータと前記半導体メモリカードとを接続するためのクロック線及びデータ線を用意し、前記同期式シリアル通信インターフェースの前記クロック入出力端子を前記クロック線に接続し、前記同期式シリアル通信インターフェースの前記データ入出力端子を前記データ線に接続し、前記汎用入出力ポートの前記複数の端子のうちの第1端子を前記クロック線に接続し、前記半導体メモリカードの前記クロック入力端子を前記クロック線に接続し、前記半導体メモリカードの前記シリアルデータ入出力端子を前記データ線に接続し、前記CPUが実行するコンピュータプログラムにより構成される通信切り替え手段が、前記同期式シリアル通信インターフェースの前記クロック入出力端子からのクロック出力と、前記汎用入出力ポートの前記第1端子からのクロック出力との間で、クロック出力元切り替えを行うようにすることを特徴とする。
本発明によれば、既存の多くのマイクロコンピュータに内蔵されている、同期式シリアル通信インターフェースと汎用入出力ポートとを用いて、クロック出力元を切り替えることによって、マイクロコンピュータと半導体メモリカードとの間のシリアル通信を行うため、専用の通信インターフェイスLSIを付加する必要がなく、しかも、そのシリアル通信を高速で行うことができる。
以下に本発明の実施の形態について図面を参照して説明する。図1は本発明に係るシリアル通信制御方法を用いてシリアル通信を行うマイクロコンピュータと半導体メモリカードとを接続する接続形態の第1の具体例を示した模式図であり、図2は同じく第2の具体例を示した模式図である。マイクロコンピュータ10は、半導体メモリカード12を利用する電子機器(例えば携帯用オーディオプレーヤなど)11に装備されている、この電子機器11の構成要素である。半導体メモリカード12には、マイクロコンピュータ10によって読み出し及び/または書き込みが行われるデータ(例えばオーディオデータなど)が格納されている。電子機器11がオーディオプレーヤで、半導体メモリカード12にオーディオデータが格納されている場合には、マイクロコンピュータ10は、その半導体メモリカード12から読み出したオーディオデータに処理を施して音響を再生する。半導体メモリカード12は、電子機器11に対して取り外し可能に接続され、そのために電子機器11には、半導体メモリカード12を挿入するコネクタ13が装備されている。本発明においては、先ず、マイクロコンピュータ10と半導体メモリカード12とを接続するためのクロック線14及びデータ線16を用意し、図1及び図2の具体例では、それらクロック線14及びデータ線16に、マイクロコンピュータ10とコネクタ13とを接続している。
マイクロコンピュータ10は、中央処理部(CPU)18を備えており、また、このCPU18によって制御される、同期式シリアル通信インターフェース20及び汎用入出力ポート22を備えている。同期式シリアル通信インターフェース20は、CPU18によってトリガされハードウェアフロー制御により所定ビット数を単位として高速シリアル通信を行う通信インターフェースである。現在使用されている多くのマイクロコンピュータには標準的な同期式シリアル通信インターフェースが内蔵されており、それは主として、マイクロコンピュータが、EEPROM(電気的に消去可能なプログラマブルROM)やADC(アナログ・デジタル・コンバータ)などの、外付けデバイスとの間で高速シリアル通信を行うために使用されている。本発明は、そのような標準的な同期式シリアル通信インターフェースを用いて実施し得るものである。また、その通信単位である所定ビット数は、8ビットまたは16ビットとされていることが多いが、本発明を実施する上では、所定ビット数がいくつでもあっても構わない。汎用入出力ポート22は、CPU18がコンピュータプログラムに従って制御することにより、1ビットずつの入出力制御を行うことのできるポートであり、既存のマイクロコンピュータの略々全てに装備されているものである。
図1に示した第1の具体例では、同期式シリアル通信インターフェース20が、クロック入出力端子24及びデータ入出力端子26を備えており、クロック入出力端子24をクロック線14に接続し、データ入出力端子26をデータ線16に接続してある。データ入出力端子26は、信号の入出力方向を動的に制御することのできるものである。図2に示した第2の具体例では、同期式シリアル通信インターフェース20が、クロック入出力端子24、データ入力端子26a、及びデータ出力端子26bを備えており、クロック入出力端子24をクロック線14に接続し、データ入出力端子26a、26bを共にデータ線16に接続してある。第1の具体例と第2の具体例とでは、同期式シリアル通信インターフェース20のデータ入出力端子が、共通端子か、個別端子かということが異なるだけであり、図2の具体例でデータ入出力端子26a、26bを共にデータ線16に接続することによって、マイクロコンピュータ10と半導体メモリカード12との間のデータ通信の機能に関して、図1の具体例と図2の具体例とが実質的に同一のものとなっている。そこで、以下の説明では、図1の第1の具体例に則して説明することにする。
汎用入出力ポートは22は多数の入出力端子を含むものであるが、本発明に係るシリアル通信制御方法と直截的な関係を持たない端子は図示せず、その説明も省略する。汎用入出力ポート22は第1端子28及び第2端子30を含んでおり、第1端子28をクロック線14に接続し、第2端子30をデータ線16に接続してある。CPU18の制御により第1端子28から送出される出力はクロックとして利用され、同じくCPU18の制御により第2端子30から送出される出力は、シリアル通信されるデータの一部を構成する。これらクロック出力及びデータ出力については後に更に詳細に説明する。
半導体メモリカード12は、クロック入力端子32と、シリアルデータ入出力端子34とを備えている。半導体メモリカード12をコネクタ13に挿入すると、クロック入力端子32はクロック線14に接続され、シリアルデータ入出力端子34はデータ線16に接続される。半導体メモリカード12は、クロック入力端子32及びシリアルデータ入出力端子34以外にも、マイクロコンピュータ10の適当な端子に接続される制御端子を備えているが、それら制御端子は、本発明に係る方法と直截的な関係を持たないものであるため図示せず、その説明も省略する。半導体メモリカード12は、クロック入力端子32を介して受け取るクロックに同期して、シリアルデータ入出力端子34を介してシリアルにデータビットを受信または送信する機能を備えており、このようなシリアル通信機能は、既存の殆ど全ての半導体メモリカードに備えられているものである。
クロック線14及びデータ線16は、各々を、プルアップ用の抵抗を介してプルアップしてある。ただし、使用する半導体メモリカードの通信プロトコルによっては、それらクロック線14及びデータ線16の一方もしくは両方を、プルアップではなくプルダウンしておくようにすることもあり、このプルアップ、プルダウンの詳細については後述する。
これより、以上のようにして接続したマイクロコンピュータ10と半導体メモリカード12との間の、シリアル通信方式によるデータ通信を制御するための、本発明に係るシリアル通信制御方法について説明する。本発明に係るシリアル通信制御方法の重要なポイントは、マイクロコンピュータ10が、半導体メモリカード12との間でシリアル通信方式で連続して転送するデータのうち、連続的にデータ転送できるところは同期式シリアル通信インターフェース20を介して転送し、それ以外の部分は汎用入出力ポート22を介して転送することにある。また更に、以下に説明するシリアル通信制御方法は、同期式シリアル通信インターフェース20を介したデータ転送と、汎用入出力ポート22を介したデータ転送との間の切り替えを、データ波形の乱れなく行い得るものである。
先ず、マイクロコンピュータ10が同期式シリアル通信インターフェース20を介して実行する、半導体メモリカード12との間の連続データ転送について説明する。図3は、同期式シリアル通信インターフェース20を介して転送されるデータ波形の具体例を示した波形図であり、図中の上段がクロック波形(クロック線14上の波形)、下段がデータ波形(データ線16上の波形)である。図3の示した具体例は、データ転送単位を8ビット、送信ビット順をMSBファーストとし、データの切り替えをクロック波形の立下りエッジで行い、データの取り込みをクロック波形の立ち上がりエッジで行うようにした場合の例である。ただし、既存のマイクロコンピュータの多くは、クロックエッジや送信ビット順の設定を、そのマイクロコンピュータのレジスタ設定により変更できるように構成されているため、対象となる半導体メモリカードの通信プロトコルに整合するように、それらを設定すればよい。簡単のため以後の説明では、同期式シリアル通信インターフェース20のデータ転送単位以外は、上記条件であることを前提として説明して行くこととし、データ転送単位は、一般化してNビットであるものとする。既述のごとく、同期式シリアル通信インターフェース20を介したデータ転送は、ハードウェアによってフロー制御が行われるため、1ビットのデータを転送するたびにCPU18が介入するということがなく、高速のシリアル通信が可能である。
次に、マイクロコンピュータ10が汎用入出力ポート22を介して実行する、半導体メモリカード12との間のデータ転送について説明する。マイクロコンピュータ10から半導体メモリカード12へデータを送信する場合には、マイクロコンピュータ10は、汎用入出力ポート22の第1端子28を駆動してクロック線14上に「0」を出力し、また、第2端子30を駆動して1ビットのデータビットをデータ線16上に出力する。尚、第1端子28の駆動と第2端子30の駆動との順番は、半導体メモリカード12に採用されている通信プロトコルに整合するように定めればよい。その後、マイクロコンピュータ10は、汎用入出力ポート22の第1端子28を駆動してクロック線14上に「1」を出力する。これによって、半導体メモリカード12にデータ線16上のデータビットが取り込まれる。
一方、マイクロコンピュータ10が、半導体メモリカード12からデータを受信する場合には、マイクロコンピュータ10は、汎用入出力ポート22の第1端子28を駆動してクロック線14上に「0」を出力する。すると、半導体メモリカード12がデータ線16を駆動して1ビットのデータを出力する。その後、マイクロコンピュータ10は汎用入出力ポート22の第2端子30を介してそのデータ線16上のデータビットを読み取り、また、第1端子28を駆動してクロック線14上に「1」を出力する。第2端子30を介したデータビットの読み取りと、第1端子28からクロック線14への「1」の出力との順番は、半導体メモリカード12に採用されている通信プロトコルに整合するように定めればよい。
このように、汎用入出力ポート22を介したデータ転送は、1ビットのデータを転送するたびにCPU18が複数回介入する必要があるため、CPU18の負荷が大きく、データ転送速度は、同期式シリアル通信インターフェース20を介したデータ転送と比べて、格段に低速となる。尚、以上に説明した同期式シリアル通信インターフェース20を介したデータ転送方法と、汎用入出力ポート22を介したデータ転送方法とは、いずれも慣用的な方法である。
既述のごとく、本発明に係るシリアル通信制御方法は、同期式シリアル通信インターフェース20を介したデータ転送と、汎用入出力ポート22を介したデータ転送とを切り替えることを特徴としている。その切り替えを行うのは、マイクロコンピュータ10のCPU18が実行するコンピュータプログラムにより構成される通信切り替え手段である。その切り替えについて以下に説明する。ここでは具体例として、マイクロコンピュータ10が半導体メモリカード12との間で、Xビットの連続データ転送を行う場合について説明する。図4は、そのXビットの連続データ転送によって転送されるデータ波形を示した波形図であり、図中の上段がクロック波形(クロック線14上の波形)、下段がデータ波形(データ線16上の波形)である。
本発明に係る方法を用いることで利点を享受できるのは、XとNが、以下の式を満たすときである。
X=A×N+B (A及びBはいずれも正の整数であり、0<B<Nである)
ここでは、XとNが、上式を満たすものとする。マイクロコンピュータ10の通信切り替え手段は、一度に連続して転送するXビットのうち、最初のA×Nビットの転送区間では、同期式シリアル通信インターフェース20を使用したNビット単位のデータ転送をA回繰り返させる。例えば、マイクロコンピュータ10から半導体メモリカード12へデータを送信する場合には、マイクロコンピュータ10のCPU18が、送信データをRAM(不図示)から読み込み、同期式シリアル通信インターフェース20の送信データ格納レジスタ(不図示)にこれをセットし、同期式シリアル通信インターフェース20に送信開始命令を出す(即ち、同期式シリアル通信インターフェース20をトリガする)。すると同期式シリアル通信インターフェース20は、それ以後はCPU18の介入を必要とすることなく、ハードウェアフロー制御により、クロック入出力端子24及びデータ入出力端子26を制御して、Nビットのデータの送信を自動で行う。CPU18は、このNビットのデータの送信中は、データ転送以外の他のタスクを実行することができ、このNビットのデータの送信終了を確認したならば、データ転送に関する次の動作に移る。
X=A×N+B (A及びBはいずれも正の整数であり、0<B<Nである)
ここでは、XとNが、上式を満たすものとする。マイクロコンピュータ10の通信切り替え手段は、一度に連続して転送するXビットのうち、最初のA×Nビットの転送区間では、同期式シリアル通信インターフェース20を使用したNビット単位のデータ転送をA回繰り返させる。例えば、マイクロコンピュータ10から半導体メモリカード12へデータを送信する場合には、マイクロコンピュータ10のCPU18が、送信データをRAM(不図示)から読み込み、同期式シリアル通信インターフェース20の送信データ格納レジスタ(不図示)にこれをセットし、同期式シリアル通信インターフェース20に送信開始命令を出す(即ち、同期式シリアル通信インターフェース20をトリガする)。すると同期式シリアル通信インターフェース20は、それ以後はCPU18の介入を必要とすることなく、ハードウェアフロー制御により、クロック入出力端子24及びデータ入出力端子26を制御して、Nビットのデータの送信を自動で行う。CPU18は、このNビットのデータの送信中は、データ転送以外の他のタスクを実行することができ、このNビットのデータの送信終了を確認したならば、データ転送に関する次の動作に移る。
一方、マイクロコンピュータ10が半導体メモリカード12からデータを受信する場合には、マイクロコンピュータ10のCPU18が、同期式シリアル通信インターフェース20に受信開始命令を出す(即ち、同期式シリアル通信インターフェース20をトリガする)。すると同期式シリアル通信インターフェース20は、それ以後はCPU18の介入を必要とすることなく、ハードウェアフロー制御により、クロック入出力端子24及びデータ入出力端子26を制御して、Nビットのデータの受信を自動で行う。CPU18は、このNビットのデータの受信中は、データ転送以外の他のタスクを実行することができ、このNビットのデータの受信終了を確認したならば、同期式シリアル通信インターフェース20の受信データ格納レジスタ(不図示)からデータを読み出し、それをRAMに格納する。
Nビットを単位とした以上の送信動作または受信動作がA回繰り返されたならば、通信切り替え手段が、同期式シリアル通信インターフェース20を介したデータ転送から、汎用入出力ポート22を介したデータ転送へ切り替える。そして、連続して送信するXビットのうちの残りのBビットの転送は、汎用入出力ポート22を使用して上で説明したようにして実行する。尚、別法として、先に汎用入出力ポート22を使用してBビットの転送を行い、その後に、同期式シリアル通信インターフェース20を使用したデータ転送に切り替えて、残りのN×Aビットの転送を行うようにしてもよい。
通信切り替え手段は、同期式シリアル通信インターフェース20を介したデータ転送と汎用入出力ポート22を介したデータ転送との間で、切り替えを行うタイミングを判断するために、例えば、Xビットのデータの送信を開始するのに先立って、XをNで除する除算を実行し、上掲の式に示したA及びBの値を算出して記憶しておくようにすればよく、その記憶しておいたAないしBの値に基づいて、切り替えのタイミングを判断することができる。
また、マイクロコンピュータ10から半導体メモリカード12へデータを送信する場合であれば、同期式シリアル通信インターフェース20のハードウェアが送信データ格納レジスタにセットする送信データを常時モニタしておき、そこにセットされた送信データのデータビットがNビット未満になったときに、そのことを通信切り替え手段に知らせるようにしてもよい。通信切り替え手段は、それに応答して、同期式シリアル通信インターフェース20を介したデータ転送から、汎用入出力ポート22を介したデータ転送に切り替えて、そのNビット未満の残りのデータビットを、汎用入出力ポート22から出力させるようにすればよい。
以上に説明したシリアル通信制御方法では、マイクロコンピュータ10のCPU18が実行するコンピュータプログラムにより構成される通信切り替え手段が、マイクロコンピュータ10と半導体メモリカード12との間で1つの通信メッセージを通信しているときに、同期式シリアル通信インターフェース20による所定ビット数(Nビット)を単位としたデータ転送と、汎用入出力ポート22によるデータ転送との間で切り替えを行う。そして、それによって、同期式シリアル通信インターフェース20を介して転送される所定ビット数の整数倍のビット数(N×Aビット)から成るデータビット列と、汎用入出力ポート22を介して転送されるデータビット列または単一データビットとで、その1つの通信メッセージが構成されるようにしている。尚、汎用入出力ポート22がデータビット列を転送するというのはB≧2の場合であり、単一データビットを転送するというのはB=1の場合である。
既に述べたように、汎用入出力ポート22を使用してデータ転送をする場合には、同期式シリアル通信インターフェース20を使用する場合と比べてデータ転送速度がかなり低下するが、これは、そのデータ転送に関係する全ての制御をマイクロコンピュータ10のCPU18が実行しなければならないからである。例えば、汎用入出力ポート22の1つの端子の出力を1回変えるだけでも、複数の命令が必要になるため、マイクロコンピュータ10のシステムクロック数周期分の時間を要する。その上に更に、各ビットごとのループ判定等の処理が上乗せされるので、総転送時間はかなり長くなる。これに対して、同期式シリアル通信インターフェース20を用いる場合には、データ転送単位であるNビットの転送はハードウェア的に自動で行われるため、転送に使われるクロック周波数はマイクロコンピュータのシステムクロックと同等まで上げることができる。このため、非常に高速な転送が可能になり、しかも、そのNビットの転送の間は、マイクロコンピュータ10のCPU18は別の処理をしていることができるので、システム全体のスループットも上げることができる。そして、半導体メモリカード12との通信においては、通信全体に対して、連続したデータ転送を単純に行っている部分が大部分を占めるので、この部分に同期式シリアル通信インターフェース20を利用することによるデータ転送高速化の効果は非常に大きい。
以上に説明したシリアル通信制御方法では、通信切り替え手段が、同期式シリアル通信インターフェース20によるデータ転送と、汎用入出力ポート22によるデータ転送とを切り替える際に、(1)同期式シリアル通信インターフェース20のクロック入出力端子24からのクロック出力と、汎用入出力ポート22の第1端子28からのクロック出力との間で、クロック出力元切り替えを行い、またそれと同時に、(2)同期式シリアル通信インターフェース20のデータ入出力端子26と、汎用入出力ポート22の第2端子30との間で、半導体メモリカード12との間のデータ転送に使用する端子を切り替える、データ端子切り替えを行うようにしている。従って、通信切り替え手段が、これら2つの切り替えを共に行うことで、上記利点を得ているのであるが、本発明の別の実施の形態として、通信切り替え手段が(1)のクロック出力元切り替えだけを行い、(2)のデータ端子切り替えを行わないような形態とすることも可能であり、そのような実施の形態については、後に図7及び図8を参照して説明する。
同期式シリアル通信インターフェース20と汎用入出力ポート22との切り替えに関しては、その切り替えに際して、通信線(クロック線14及びデータ線16)上の波形の乱れが発生しないようにすることが重要であり、さもないと通信エラーが発生するおそれがある。図1及び図2に示した具体例では、波形の乱れを防止するための手段として、クロック線14及びデータ線16をプルアップしている。これについて、以下に、図5A〜図5Cと、図6とを参照して説明する。
図5A〜図5Cは、同期式シリアル通信インターフェース20の受信バッファ42及び出力バッファ44、汎用入出力ポート22の受信バッファ46及び出力バッファ48、それに、半導体メモリカード12のデータ入出力回路50の受信バッファ52及び出力バッファ54を示しており、それら受信バッファ及び出力バッファはいずれも、上述した夫々の端子(図5A〜図5Cでは省略した)及びコネクタ(これも図5A〜図5Cでは省略した)を介してデータ線16に接続されている。これらの図は、同期式シリアル通信インターフェース20から汎用入出力ポート22への切り替えを行う際に、データ線16に接続されている夫々の出力バッファの状態がどのように変化するかを、模式的に示したものである。図中に実線で示した出力バッファが、有効状態(データ線16上に出力を送出している状態)にあるバッファである。図中に点線で示した出力バッファは、ハイインピーダンス状態(データ線16から回路的に切り離された状態)にあり、ハイインピーダンス状態にある出力バッファが接続されている端子は、入力状態(その出力バッファに対応した受信バッファがデータを受信できる状態)になっている。
図5Aに示したのは、同期式シリアル通信インターフェース20が半導体メモリカード12へデータを送信している状態である。この状態では、同期式シリアル通信インターフェース20の出力バッファ44のみが有効(端子が出力状態)となっており、それ以外の出力バッファはハイインピーダンス(端子が入力状態)となっている。データ線16に接続されている出力バッファ44、48、54は、いかなる場合にも、それらのうちの2つ以上のものが同時に有効になってはならず、なぜならば、同時に複数の出力バッファが有効となった場合には、電源とグラウンドとが短絡して過大な電流が流れることによって、素子の破壊が生じるおそれがあるからである。
同期式シリアル通信インターフェース20によるデータ転送を行っている状態から、汎用入出力ポート22によるデータ転送に切り替える際には、それらの出力バッファ44、48が同時に有効になるのを確実に防止するために、図5Bに示したように、一旦、全ての出力バッファ44、48、54を同時にハイインピーダンス状態にする。この後、汎用入出力ポート22の出力バッファ48を有効にすることで、図5Cに示した状態となり、これによって汎用入出力ポート22による送信が可能になる。しかるに、図5Bに示した状態では、データ線16を駆動しているバッファが存在していないため、データ線16は浮いている状態になる。そのため、もしデータ線16がプルアップもプルダウンもされていなかったならば、このとき、データ線16の電位は浮遊容量によってのみ決まるため、非常に不安定な挙動を示すことになる。データ線16のプルアップは、そのような事態を防止する役割を果たしているのである。
次にクロック線14のプルアップについて、図6を参照して説明する。図6は、図4の波形図のうちの、同期式シリアル通信インターフェース20から汎用入出力ポート22への切り替え部分を拡大したものを下段に示し、上段には比較例としてクロック線14をプルアップもプルダウンもしていない場合を示した波形図である。この図6から明らかなように、プルアップしている場合には、切り替えの際にクロック線14の電位がハイ状態に保たれるのに対し、プルアップもプルダウンもしていない場合には、クロック線14の電位が不安定となっている。クロック線14において、図6の上段に示したようにクロック波形が変化した場合には、半導体メモリカード12が、その不安定な電位によって発生した立上りエッジLEを、クロックエッジとして誤認識してしまうおそれがある。半導体メモリカード12の通信プロトコル上、このような誤認識が問題となる場合には、プルアップないしプルダウンは必須である。プルアップとプルダウンとのどちらにすべきかは、実際に使用している半導体メモリカードの通信プロトコルに依存するが、切り替え前のクロック線14の状態が「1」ならプルアップ、「0」ならプルダウンとすればよい。尚、以上のプルアップ/プルダウンはクロック線14及びデータ線16の電位を保持するだけあり、それらを充放電することはないので、プルアップ/プルダウン用抵抗の抵抗値は大きな値で構わない。
半導体メモリカードの通信プロトコルとして、上記以外にも制御線が必要になる場合には、汎用入出力ポートで使用する入出力端子を増やし、これを制御線に割り当てた上で、既に述べたような方法で制御してやればよい。一般に、制御線が制御される区間は通信全体のごく一部であるため、この部分を制御してやることによるデータ転送速度の低下は殆どない。その1つの具体例を図7及び図8に示した。この具体例はまた、先に述べた、通信切り替え手段がクロック出力元切り替えだけを行い、データ端子切り替えを行わないようにした実施の形態の具体例でもある。
図7は、マイクロコンピュータ10が、メモリースティック(「メモリースティック」はソニー株式会社の商標である)と呼ばれている半導体メモリカード12との間でデータ通信を行う場合の、両者間の接続形態の具体例を示した模式図であり、図8は、その制御方法の一部を示したタイミングチャートである。マイクロコンピュータ10は携帯用オーディオプレーヤ11に装備されており、メモリースティック12には、マイクロコンピュータ10によって読み出されるオーディオデータが格納されている。マイクロコンピュータ10は、メモリースティック12から読み出したオーディオデータに処理を施して音響を再生する。メモリースティック12は、携帯用オーディオプレーヤ11に対して取り外し可能に接続され、そのために携帯用オーディオプレーヤ11には、メモリースティック12を挿入するコネクタ13が装備されている。メモリースティック12は、クロック入力端子(SCLK)32と、シリアルデータ入出力端子(SDIO)34と、制御端子(BS)56とを備えており、この具体例では、マイクロコンピュータ10とメモリースティック12とを接続するためのクロック線14、データ線16、及び制御線58が用意されている。図7の具体例では、それら各線は、マイクロコンピュータ10とメモリースティック用コネクタ13との間を接続しており、メモリースティック12をコネクタ13に挿入すると、クロック入力端子(SCLK)32はクロック線14に接続され、シリアルデータ入出力端子(SDIO)34はデータ線16に接続され、制御端子(BS)56は制御線58に接続される。
図1及び図2の具体例と同様に、図7の具体例でも、マイクロコンピュータ10は、中央処理部(CPU)18と、このCPU18によって制御される、同期式シリアル通信インターフェース20及び汎用入出力ポート22とを備えている。メモリースティック12は、その通信プロトコルとして、データ転送を常に8ビット単位で行うようにしているため、同期式シリアル通信インターフェース20は、その送信単位を8ビットとしてある。データ線16は同期式シリアル通信インターフェース20のデータ入出力端子26だけに接続されており、汎用入出力ポート22には接続されていない。同期式シリアル通信インターフェース20は、クロック入出力端子(Serial_SCK)24及びデータ入出力端子(Serial_SDO)26を備えており、クロック入出力端子24をクロック線14に接続し、データ入出力端子26をデータ線16に接続してある。データ入出力端子26は、信号の入出力方向を動的に制御することのできるものである。
汎用入出力ポートは22は多数の入出力端子を含むものであるが、図2はそれらのうちの入出力A端子60、入出力B端子(PIO_SCK)62、及び入出力C端子(PIO_BS)64の、3つの端子だけを示した。それらのうち、入出力A端子60は使用していない。入出力B端子(PIO_SCK)62は、クロック出力端子として使用しており、クロック線14に接続してある。入出力C端子(PIO_BS)64は、制御信号出力端子として使用しており、制御線58に接続してある。この図8の具体例では、汎用入出力ポート22を介したデータビットの送受信は行わないため、汎用入出力ポート22はデータ線16には接続していない。また、クロック線14及びデータ線16は、各々を、プルアップ用の抵抗を介してプルアップしてあり、このプルアップは、図1及び図2の具体例と同様、それら各線の状態が不安定になるのを防止するためのものである。
メモリースティック12の通信プロトコルは、メモリースティック12が待機状態にあるときにクロックを受け取ったならば、そのときの制御線58上の制御出力を読み取り、更にそれに続いて受け取る8個のクロックに同期して、データ線16から8個のデータビットを読み取り、それら制御出力と8個のデータビットの組合せをもって、1つの通信コマンドとして認識するように定められている。ここで、例えば汎用入出力ポート22の入出力A端子60をデータ線16に接続しておき、この入出力A端子60からデータビットを送出するようにしておけば、通信コマンドの8個のデータビットの転送を、汎用入出力ポート22を介して行うことができるが、そのようにすると比較的長い時間がかかり、CPU18の負荷も比較的大きなものとなる。そこで、本発明に係るシリアル通信制御方法を、通信コマンドの送信に適用することによって、より高速で低負荷のコマンド送信を行えるようになる。
通信コマンドの送信を、本発明に係るシリアル通信制御方法に従って行う場合には、通信コマンドの送信に適用した場合には、マイクロコンピュータ10のCPU18が実行するコンピュータプログラムにより構成される通信切り替え手段が、同期式シリアル通信インターフェース20のクロック入出力端子(Serial_SCK)24からのクロック出力と、汎用入出力ポート22の入出力B端子(PIO_SCK)62からのクロック出力との間で、クロック出力元切り替えを行う。
より詳しく述べるならば、通信切り替え手段は、汎用入出力ポート22の入出力C端子(PIO_BS)64から制御線58上へ出力された制御出力をメモリースティック12に読み取らせるときには汎用入出力ポート22の入出力B端子(PIO_SCK)62からクロック出力を送出させ、一方、同期式シリアル通信インターフェース20のデータ入出力端子(Serial_SDO)26とメモリースティック12のシリアルデータ入出力端子(SDIO)34との間のデータ転送を行わせるときには同期式シリアル通信インターフェース22のクロック入出力端子(Serial_SCK)24からクロック出力を送出させるようにする。既述のごとく、メモリースティック12の通信プロトコルは、制御端子(BS)56を介して受信する制御出力と、シリアルデータ入出力端子(SDIO)34を介して受信する連続する複数のデータビットとの組合せによって構成されるコマンドを使用しているため、通信切り替え手段が、以上のようにクロック出力切り替えを行うことで、そのコマンドをメモリースティック12に読み取らせることができる。
図8は、図7の接続形態において以上のシリアル通信制御を行う際のクロック線14、データ線16、及び制御線58上の波形を示した波形図である。図8において、上段はデータ線16上の波形であり、MSで示したのは、メモリースティック12のシリアルデータ入出力端子(SDIO)34が有効状態にある期間、Serial_SDOで示したのは、マイクロコンピュータ10の同期式シリアル通信インターフェース20のデータ入出力端子(Serial_SDO)26が有効状態にある期間、そして斜線で示したのは、データ線16がプルアップされることでハイ状態に維持されている期間である。中段はクロック線14上の波形であり、Serial_SCKで示したのは、同期式シリアル通信インターフェース22のクロック入出力端子(Serial_SCK)24が有効状態にある期間、PIO_SCKで示したのは、汎用入出力ポート22の入出力B端子(PIO_SCK)62が有効状態にある期間、そして斜線で示したのは、クロック線14がプルアップされることでハイ状態に維持されている期間である。下段は制御線58上の波形であり、PIO_BSという表記は、汎用入出力ポート22の入出力C端子(PIO_BS)64が有効状態にあることを表している。
以上のシリアル通信制御方法によれば、専用の通信インターフェイスLSIを使用することなく、マイクロコンピュータ10とメモリースティック12との間のシリアルデータ転送を行うことができ、しかも、その通信を比較的高速で行うことができる。
10……マイクロコンピュータ、12……半導体メモリカード、14……クロック線、16……データ線、18……中央処理部(CPU)、20……同期式シリアル通信インターフェース、22……汎用入出力ポート、24……クロック入出力端子、26……データ入出力端子、26a……データ入力端子、26b……データ出力端子、32……クロック入力端子、34……シリアルデータ入出力端子、42……受信バッファ、44……出力バッファ、46……受信バッファ、48……出力バッファ、50……データ入出力回路、52……出力バッファ、54……受信バッファ、56……制御端子、58……制御線。
Claims (12)
- 中央処理部(CPU)と、クロック入出力端子及びデータ入出力端子を有し前記CPUによってトリガされハードウェアフロー制御により所定ビット数を単位として高速シリアル通信を行う同期式シリアル通信インターフェースと、複数の端子を有し前記CPUによって1ビットずつの入出力制御が可能な汎用入出力ポートとを備えたマイクロコンピュータと、クロック入力端子及びシリアルデータ入出力端子を有する半導体メモリカードとの間の、シリアル通信方式によるデータ通信を制御するためのシリアル通信制御方法において、
前記マイクロコンピュータと前記半導体メモリカードとを接続するためのクロック線及びデータ線を用意し、
前記同期式シリアル通信インターフェースの前記クロック入出力端子を前記クロック線に接続し、前記同期式シリアル通信インターフェースの前記データ入出力端子を前記データ線に接続し、
前記汎用入出力ポートの前記複数の端子のうちの第1端子を前記クロック線に接続し、
前記半導体メモリカードの前記クロック入力端子を前記クロック線に接続し、前記半導体メモリカードの前記シリアルデータ入出力端子を前記データ線に接続し、
前記CPUが実行するコンピュータプログラムにより構成される通信切り替え手段が、前記同期式シリアル通信インターフェースの前記クロック入出力端子からのクロック出力と、前記汎用入出力ポートの前記第1端子からのクロック出力との間で、クロック出力元切り替えを行うようにする、
ことを特徴とするシリアル通信制御方法。 - 前記クロック線をプルアップまたはプルダウンしておき、
前記通信切り替え手段が、前記クロック出力元切り替えに際して、前記同期式シリアル通信インターフェースの前記クロック入出力端子からのクロック出力と、前記汎用入出力ポートの前記第1端子からのクロック出力とが同時に有効状態にならぬようにし、それら2つのクロック出力が共に無効状態にあるときには、前記クロック線がプルアップまたはプルダウンされた状態にあるようにする、
ことを特徴とする請求項1記載のシリアル通信制御方法。 - 前記汎用入出力ポートの前記複数の端子のうちの第2端子を前記データ線に接続し、
前記通信切り替え手段が、前記クロック元出力切り替えに際して、前記同期式シリアル通信インターフェースの前記データ入出力端子と、前記汎用入出力ポートの前記第2端子との間で、前記半導体メモリカードとの間のデータ転送に使用する端子を切り替える、データ端子切り替えを行うようにする、
ことを特徴とする請求項1記載のシリアル通信制御方法。 - 前記データ線をプルアップまたはプルダウンしておき、
前記通信切り替え手段が、前記データ端子切り替えに際して、前記同期式シリアル通信インターフェースの前記データ入出力端子からのデータビット出力と、前記汎用入出力ポートの前記第2端子からのデータビット出力とが同時に有効状態にならぬようにし、それら2つのデータビット出力が共に無効状態にあるときには、前記データ線がプルアップまたはプルダウンされた状態にあるようにする、
ことを特徴とする請求項3記載のシリアル通信制御方法。 - 連続する複数のデータビットから成る1つの通信メッセージを前記マイクロコンピュータと前記半導体メモリカードとの間で通信しているときに、前記通信切り替え手段が前記クロック出力元切り替え及び前記データ端子切り替えを行うことで、前記同期式シリアル通信インターフェースの前記クロック入出力端子から前記クロック線上へ出力される前記所定ビット数を単位とするクロック出力により制御される前記所定ビット数を単位とするデータ転送と、前記汎用入出力ポートの前記第1端子から前記クロック線上へ出力されるクロック出力により制御されるデータ転送との間で、データ転送切り替えを行うようにすることを特徴とする請求項3記載のシリアル通信制御方法。
- 前記半導体メモリカードが制御端子を有し、
前記マイクロコンピュータと前記半導体メモリカードとを接続するための制御線を用意し、
前記汎用入出力ポートの前記複数の端子のうちの第2端子を前記制御線に接続し、
前記半導体メモリカードの前記制御端子を前記制御線に接続し、
前記通信切り替え手段が、前記汎用入出力ポートの前記第2端子から前記制御線上へ出力された制御出力を前記半導体メモリカードに読み取らせるときには前記汎用入出力ポートの前記第1端子からクロック出力を送出させ、前記同期式シリアル通信インターフェースの前記データ入出力端子と前記半導体メモリカードの前記データ入出力端子との間のデータ転送を行わせるときには前記同期式シリアル通信インターフェースの前記クロック入出力端子からクロック出力を送出させるようにする、
ことを特徴とする請求項1記載のシリアル通信制御方法。 - 前記半導体メモリカードの通信プロトコルが、前記制御端子を介して受信する制御出力と、前記データ入出力端子を介して受信する連続する複数のデータビットとの組合せによって構成されるコマンドを使用しており、
前記通信切り替え手段が、前記クロック出力切り替えを行うことで、前記コマンドを前記半導体メモリカードに読み取らせる、
ことを特徴とする請求項6記載のシリアル通信制御方法。 - 前記マイクロコンピュータは、オーディオプレーヤに装備されており、
前記半導体メモリカードには、オーディオデータが格納されている、
前記マイクロコンピュータは、前記半導体メモリカードから読み出した前記オーディオデータに処理を施して音響を再生する、
ことを特徴とする請求項1記載のシリアル通信制御方法。 - 中央処理部(CPU)と、クロック入出力端子及びデータ入出力端子を有し前記CPUによってトリガされハードウェアフロー制御により所定ビット数を単位として高速シリアル通信を行う同期式シリアル通信インターフェースと、複数の端子を有し前記CPUによって1ビットずつの入出力制御が可能な汎用入出力ポートとを備えたマイクロコンピュータと、クロック入力端子及びシリアルデータ入出力端子を有する半導体メモリカードとの間の、シリアル通信方式によるデータ通信を制御するためのシリアル通信制御方法において、
前記マイクロコンピュータと前記半導体メモリカードとを接続するためのクロック線及びデータ線を用意し、
前記同期式シリアル通信インターフェースの前記クロック入出力端子を前記クロック線に接続し、前記同期式シリアル通信インターフェースの前記データ入出力端子を前記データ線に接続し、
前記汎用入出力ポートの前記複数の端子のうちの第1端子を前記クロック線に接続し、前記汎用入出力ポートの前記複数の端子のうちの第2端子を前記データ線に接続し、
前記半導体メモリカードの前記クロック入力端子を前記クロック線に接続し、前記半導体メモリカードの前記シリアルデータ入出力端子を前記データ線に接続し、
前記CPUが実行するコンピュータプログラムにより構成される通信切り替え手段が、前記マイクロコンピュータと前記半導体メモリカードとの間で1つの通信メッセージを通信しているときに、前記同期式シリアル通信インターフェースによる前記所定ビット数を単位としたデータ転送と、前記汎用入出力ポートによるデータ転送との間で切り替えを行い、それによって、前記同期式シリアル通信インターフェースを介して転送される前記所定ビット数の整数倍のビット数から成るデータビット列と、前記汎用入出力ポートを介して転送されるデータビット列または単一データビットとで、その1つの通信メッセージが構成されるようにする、
ことを特徴とするシリアル通信制御方法。 - 前記クロック線をプルアップまたはプルダウンしておき、
前記通信切り替え手段が、前記切り替えに際して、前記同期式シリアル通信インターフェースの前記クロック入出力端子からのクロック出力と、前記汎用入出力ポートの前記第1端子からのクロック出力とが同時に有効状態にならぬようにし、それら2つのクロック出力が共に無効状態にあるときには、前記クロック線がプルアップまたはプルダウンされた状態にあるようにする、
ことを特徴とする請求項9記載のシリアル通信制御方法。 - 前記データ線をプルアップまたはプルダウンしておき、
前記通信切り替え手段が、前記切り替えに際して、前記同期式シリアル通信インターフェースの前記データ入出力端子からのデータビット出力と、前記汎用入出力ポートの前記第2端子からのデータビット出力とが同時に有効状態にならぬようにし、それら2つのデータビット出力が共に無効状態にあるときには、前記データ線がプルアップまたはプルダウンされた状態にあるようにする、
ことを特徴とする請求項9記載のシリアル通信制御方法。 - 前記マイクロコンピュータは、オーディオプレーヤに装備されており、
前記半導体メモリカードには、オーディオデータが格納されている、
前記マイクロコンピュータは、前記半導体メモリカードから読み出した前記オーディオデータに処理を施して音響を再生する、
ことを特徴とする請求項9記載のシリアル通信制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004171274A JP2005352658A (ja) | 2004-06-09 | 2004-06-09 | マイクロコンピュータと半導体メモリカードとの間のシリアル通信制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004171274A JP2005352658A (ja) | 2004-06-09 | 2004-06-09 | マイクロコンピュータと半導体メモリカードとの間のシリアル通信制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2005352658A true JP2005352658A (ja) | 2005-12-22 |
Family
ID=35587112
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004171274A Abandoned JP2005352658A (ja) | 2004-06-09 | 2004-06-09 | マイクロコンピュータと半導体メモリカードとの間のシリアル通信制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2005352658A (ja) |
-
2004
- 2004-06-09 JP JP2004171274A patent/JP2005352658A/ja not_active Abandoned
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10007628B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
| US7095247B1 (en) | Configuring FPGAs and the like using one or more serial memory devices | |
| EP3218813B1 (en) | Multi-channel i2s transmit control system and method | |
| US20100064083A1 (en) | Communications device without passive pullup components | |
| US20110289243A1 (en) | Communication control device, data communication method and program | |
| US9426082B2 (en) | Low-voltage differential signaling or 2-wire differential link with symbol transition clocking | |
| CN101770443A (zh) | 一种内部集成电路总线时序调节方法、相应装置及系统 | |
| CN1326057C (zh) | 用于与总线连接的总线系统和总线接口 | |
| JP2007011788A (ja) | メモリカード及びそのホスト機器 | |
| KR100474221B1 (ko) | 데이터 전송 제어 장치, 전자 기기 및 데이터 전송 제어방법 | |
| US20160371157A1 (en) | Serial interface with bit-level acknowledgement and error correction | |
| JP5332428B2 (ja) | レベルシフト回路及びその方法 | |
| CN100367258C (zh) | 主从系统中直接内存存取控制器及总线结构 | |
| US20150074343A1 (en) | Logic device | |
| US8510485B2 (en) | Low power digital interface | |
| EP1820110B1 (en) | Multimedia card interface method, computer program product and apparatus | |
| CN115563049A (zh) | Spi发送模式赋值结构的实现方法 | |
| JP2005352658A (ja) | マイクロコンピュータと半導体メモリカードとの間のシリアル通信制御方法 | |
| KR100424850B1 (ko) | 데이터 전송 속도 변환 장치 | |
| KR20020036748A (ko) | 마이크로컴퓨터 | |
| JP2003141062A (ja) | Iicバス制御システム | |
| CN209911956U (zh) | 一种改进型双线转单线模块及串口转单线通讯电路 | |
| CN114442734A (zh) | 一种参考时钟设置方法、系统及装置 | |
| CN109977069B (zh) | 一种设备 | |
| CN121193250A (zh) | 多协议可配置接口电路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070328 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090421 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090519 |
|
| A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20090824 |