説明

直列インタフェース回路

【課題】直列に出力するデータの並び順を簡単に入れ替えることができる直列インタフェース回路を提供する。
【解決手段】アドレス信号ADでアドレス“X”を指定してデータ信号DTを出力すると、書き込み制御信号WTのタイミングで送信バッファ14にデータ信号DTが保持されると共に、FF15には“0”の信号ADYが保持され、選択信号SLは“0”となる。これにより、シフトレジスタ20からはデータ信号DTのLSBから順番に直列データSOが出力される。アドレス信号ADでアドレス“Y”を指定すると、FF15には“1”の信号ADYが保持され、選択信号SLは“1”となる。これにより、シフトレジスタ20からはデータ信号DTのMSBから順番に直列データSOが出力される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、直列に入出力されるデータと並列バスとの間でデータ変換を行うための直列インタフェース回路に関するものである。
【背景技術】
【0002】
UART(Universal Asynchronous Receiver Transmitter:汎用非同期送受信回路)等の直列通信の周辺回路には、送受信するデータのLSB(Least significant Bit:最下位ビット)とMSB(Most significant Bit:最上位ビット)の順番を切り換えることが可能なものと、順番が固定されて切り換えができないものがある。このため、アプリケーション・ソフトウエアも、実際に使用するUART等の通信周辺回路のデータ・フォーマットに応じて、LSBから送信したりMSBから送信したりするように、作成する必要があった。
【0003】
また、ETC(Electronic Toll Collection System:自動料金収受システム)等に使用されるDSRC(Dedicated Short Range Communication:狭域通信)規格のMDSスロット・フォーマットのように、MAC(Media Access Control)制御フィールド・データや、VICSデータ等の多様なフィールド・データを無線通信により一連のフレーム内で連続して受信し、それらフィールド・データをホストに送信する場合、フィールド・データによっては他のアプリケーションのソフトウエアを流用する上で、LSBとMSBを反転させる必要がある。
【0004】
一般的に、通信装置は物理レイヤからアプリケーション・レイヤに至る共通の階層構造で構成され、レイヤ毎にソフトウエアが作成されている。そして、レイヤ毎のソフトウエアを様々な通信規格で流用することが多い。
【0005】
特にUARTのように、様々なアプリケーションに使用することができるものでは、ある目的のために作成されたアプリケーション・ソフトウエアやドライバ・ソフトウエアを流用することが多い。このような流用に当たっては、適用するアプリケーションに合わせてソフトウエアの一部を変更する必要がある。
【0006】
例えば、LSBから順番に送信するようにデータ・フォーマットが配置されたアプリケーション・ソフトウエアを、MSBから順番に送信するアプリケーションに流用する場合、通信回路のUARTがLSB/MSB切り換え可能であっても、通信バッファが割り付けられているアドレス(レジスタの定義体)と、通信回路の設定レジスタにおいて、MSBファーストへの設定変更が必要となる。また、通信回路のUARTがLSBファーストにしか対応できない場合には、例えばCPU(Central Processing Unit:中央処理装置)によるデータ・フォーマットのLSB/MSB反転処理が必要になる。
【0007】
更に、DSRC等無線通信により受信した多様なデータ・フィールドを連続してホストに送信する場合、各フィールド・データを様々なレイヤで取り扱うことになるが、LSB/MSBの位置が異なると、各通信におけるアプリケーション・ソフトウエアの流用が難しくなる。即ち、通信中にフィールド・データ毎のLSB/MSBの位置を変更する処理をソフトウエアで管理したり、或いはソフトウエアによって扱うフィールド・データの反転処理を行ったりしなければならず、CPUによる処理時間が増大する。
【0008】
このような、CPUによってデータのLSB/MSB位置の反転処理を回避するための技術が、下記特許文献1に記載されている。
【0009】
この特許文献1は、CPUから並列に転送されるビットマップ形式のPDL(Page Description Language)データを受信して、必要に応じてLSB/MSB位置の反転処理を行う印刷装置に関するものである。
【0010】
この印刷装置では、PDLデータを入力してビットマップ・データに展開して出力するPDLボードと、イメージ・データを生成して用紙上に画像形成するプリンタ・エンジン本体を結合するパラレル・データバスを構成する経路上に、PDLボードからプリンタ・エンジンに出力されるデータバス上のMSB〜LSBの並び順序の反転/非反転を切り換え出力するバス・セレクタ手段を設けている。そして、PDLボード内のメモリに格納されたコマンド/ステータス・データとビットマップ・データをプリンタ・エンジン内のメモリにパラレル・データバスを介して転送制御する際に、コマンド/ステータス・データの転送時には非反転側に、ビットマップ・データの転送時には反転側に、バス・セレクタ手段を制御するバス・セレクタ制御手段を設けている。
【0011】
【特許文献1】特開2002−219827号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
しかしながら、前記特許文献1に記載された印刷装置では、バス・セレクタ手段によってパラレル・データの状態でLSB/MSB位置を切り換えているだけで、直列データ通信との組み合わせに対応するものとはなっていない。
【0013】
本発明は、通信といった様々なアプリケーション・ソフトウエアを最小限の変更で他のアプリケーションに流用するために、直列に出力するデータの並び順を簡単に入れ替えることができる直列インタフェース回路を提供するものである。
【課題を解決するための手段】
【0014】
本発明の直列インタフェース回路は、アドレス信号で第1アドレスが指定されたときに第1信号を出力し、第2アドレスが指定されたときには第2信号を出力するアドレスデコーダと、前記第1信号または第2信号と共に書き込み制御信号が与えられたときに、並列に与えられるデータ信号を保持する第1バッファと、前記第1信号または第2信号と共に書き込み制御信号が与えられたときに、該第2信号を保持して選択信号として出力する第2バッファと、前記第1バッファに保持されたデータ信号を並列に取り込み、前記選択信号が第1論理値のときには、シフトクロック信号に従って該データ信号を最下位ビットから順番に直列データとして出力し、該選択信号が第2論理値のときには、該シフトクロック信号に従って該データ信号を最上位ビットから順番に直列データとして出力するシフトレジスタとを備えたことを特徴としている。
【発明の効果】
【0015】
本発明では、アドレスデコーダで第1または第2アドレスが検出されたときに、この第2アドレスに応じて出力される第2信号を保持して選択信号として出力する第2バッファと、この第2バッファから与えられる選択信号の論理値に応じてデータ信号を異なるシフト方向にシフトして直列データに変換するシフトレジスタを有している。これにより、出力先のアドレスを変更するだけで、出力する直列データの並び順を簡単に入れ替えることができるという効果がある。
【発明を実施するための最良の形態】
【0016】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例1】
【0017】
図1は、本発明の実施例を示す直列インタフェース回路の構成図である。
この直列インタフェース回路は、システムバス2に接続され、CPU1から出力されるデータDTを直列データSOに変換して出力するもので、このCPU1から与えられるアドレス信号ADを解読するアドレスデコーダ(DEC)11を有している。
【0018】
アドレスデコーダ11は、システムバス2の内のアドレスバス2aに接続され、CPU1から与えられるアドレス信号ADによってアドレスXが指定されたときには信号ADXを論理値“1”(例えば、電源電位レベル)にして出力し、アドレスYが指定されたときには信号ADYを“1”にして出力するものである。なお、それ以外のアドレスが指定されたときには、信号ADX,ADYには論理値“0”(例えば、接地電位レベル)が出力されるようになっている。
【0019】
信号ADX,ADYは、論理和ゲート(以下、「OR」という)12によって論理和が取られ、その結果が2入力の論理積ゲート(以下、「AND」という)13の一方の入力側に与えられている。AND13の他方の入力側には、システムバス2の内の制御バス2cから、書き込み制御信号WTが与えられている。AND13の出力側は、送信バッファ(SBUF)14とフリップフロップ(以下、「FF」という)15のクロック端子に接続されている。
【0020】
送信バッファ14は、CPU1からシステムバス2の内のデータバス2dを通して並列に出力されるデータ信号DTを、クロック端子に与えられる信号のタイミングで保持して、並列データD0〜Dnとして出力するものである。また、FF15は、アドレスデコーダ11から出力される信号ADYを、クロック端子に与えられる信号のタイミングで保持して、選択信号SLとして出力するものである。これらの並列データD0〜Dnと選択信号SLは、シフトレジスタ20に与えられている。
【0021】
更に、この直列インタフェース回路は、ロード制御部16とシフト制御部17を有している。ロード制御部16は、制御バス2cから与えられる書き込み制御信号WT及びシステムクロック信号CKと、OR12から出力される信号に基づいて、シフトレジスタ20に対するロード信号LDを生成するものである。また、シフト制御部17は、ロード信号LDが出力された後、システムクロック信号CKに基づいてシフトレジスタ20に対するシフトクロック信号SCを生成するものである。
【0022】
一方、シフトレジスタ20は、ロード信号LDが“1”のときに、送信バッファ14から与えられる並列データD0〜Dnを保持するようになっている。また、シフトレジスタ20は、シフトクロック信号SCの立ち上がりのタイミングで保持している並列データD0〜Dnを1ビットずつシフトして、直列データSOとして出力するようになっている。このとき、シフトの方向が、選択信号SLによって制御されるようになっている。即ち、選択信号SLが“0”であれば、並列データD0〜Dnの内の最下位ビット(LSB)であるD0から順番に出力され、選択信号SLが“1”であれば、並列データD0〜Dnの内の最上位ビット(MSB)であるDnから順番に出力されるようになっている。
【0023】
図2は、図1中のシフトレジスタ20の一例を示す構成図である。このシフトレジスタ20は、説明を簡素化するために4ビット構成としている。
【0024】
この図2に示すように、シフトレジスタ20は、並列に与えられるデータD0〜D3を保持するためのFF21〜21を有している。各FF21〜21の入力側には、それぞれシフト動作とロード動作の切り換えを行うためのセレクタ22〜22が接続されている。これらのセレクタ22〜22は、共通のロード信号LDによってデータD0〜D3または前段のFFの出力のいずれかを選択するものである。
【0025】
また、このシフトレジスタ20は、シフト動作におけるシフトの方向、即ちFF21〜21の接続順序を切り換えるためのセレクタ23〜23を有している。これらのセレクタ23〜23は、共通の選択信号SLによって制御され、各FF21〜21の入力側に接続するFFを切り換えるようになっている。
【0026】
更に、FF21とFF21の出力側には、選択信号SLで制御されるセレクタ24が接続され、この選択信号SLが“0”のときは、FF21の出力が選択されて最下位ビットから順番に直列データSOが出力されるようになっている。また、選択信号SLが“1”のときは、FF21の出力が選択されて最上位ビットから順番に直列データSOが出力されるようになっている。
【0027】
図3及び図4は、図1の動作を示す信号波形図(その1及びその2)であり、図3は、最下位ビットから順番に直列に出力するLSBファースト動作のタイミングを、図4は、最上位ビットから順番に直列に出力するMSBファースト動作のタイミングを示している。以下、これらの図3及び図4を参照しつつ、図1の動作を説明する。
【0028】
例えば、図3に示すように、アドレス信号ADの“X”と共に、4ビットの並列データ信号DTの“1010”が出力されると、アドレスデコーダ11から出力される信号ADXは“1”となる。このとき、信号ADYは“0”である。更に、書き込み制御信号WTが“1”になると、AND13の出力信号は“1”となり、送信バッファ14に並列データ信号DTが保持される。また、FF15には信号ADYが保持され、このFF15から出力される直列データSOとなる。
【0029】
更に、ロード制御部16では、書き込み制御信号WT及びシステムクロック信号CKとOR12の出力信号に基づいて、ロード信号LDが生成される。また、シフト制御部17では、ロード信号LDとシステムクロック信号CKに基づいて、シフトクロック信号SCが生成される。これらのロード信号LDとシフトクロック信号SCは、シフトレジスタ20に与えられる。
【0030】
これにより、送信バッファ14に保持されたデータ信号DTが、並列データD0〜D3として、シフトレジスタ20内のFFにロードされ、更に、“0”の選択信号SLに基づいて、シフトクロック信号SCのタイミングに従って、最下位ビットから順番に直列データSOとして出力される。実施例におけるシフト制御部17は、ロード信号が“1”となったことに応じて、システムクロック信号CKに基づくシフトクロック信号SCを所定のクロック数分出力するように制御されている。このような所定のクロック数分出力する制御は、例えば、ロード信号の“1”に応じてカウント動作を実施するカウンタにより所定数分カウントし、比較器でカウント数が予め決められている所定数に達したことを検出したことに応じてカウント動作を止めるように、システムクロック信号CKと比較器の出力とを入力にもち、出力がシフトクロック信号SCとなるような論理積ゲートで制御すればよい。
【0031】
一方、アドレス信号ADとして“Y”が与えられた場合には、図4に示すように、信号ADYが“1”となり、信号ADXは“0”である。従って、書き込み制御信号WTが与えられたときに、FF15には信号ADYが保持され、選択信号SLは“1”となる。これにより、シフトレジスタ20によるシフト方向は図3の場合と逆になり、並列データD0〜D3は、最上位ビットから順番に直列データSOとして出力される。
【0032】
以上のように、本実施例の直列インタフェース回路は、次のような利点がある。
(1) 送信するデータ信号DTを送信バッファ14に書き込むときに、書き込み先のアドレスを“X”または“Y”で指定するだけで、その後、シフトレジスタ20から出力される直列データの方向を制御することができる。特に、アドレス“X”やアドレス“Y”がアドレス領域“X”やアドレス領域“Y”として指定したい場合には、この領域を指示するアドレスデータの上位ビットに基づいて、信号ADXあるいは信号ADYを“1”とするようにすることで対応可能である。
(2) システムバス2の配線は、一般的なインタフェース回路と同様であるので、ファンアウトは増加しない。このため、システムバス2のスピードの劣化がない。
(3) シフト方向を設定するためのレジスタに対する制御情報の書き込みや、並列データの送信順序を反転させるためにデータを並べ替えるプログラムが不要であるので、既存のアプリケーション・ソフトウエアを最小限の変更で流用することができる。
【0033】
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
(a) シフトレジスタ20の構成は、図2に例示したものに限定されない。例えば、モトローラ社のCMOSロジックIC“MC40104”(4ビット双方向汎用シフトレジスタ)等を用いても良い。
(b) ロード制御部16で生成するロード信号LDのタイミングを適切に設定すれば、送信バッファ14を介さずに、データバス2dから並列に出力されるデータ信号DTを直接、シフトレジスタ20にロードすることができる。
【図面の簡単な説明】
【0034】
【図1】本発明の実施例を示す直列インタフェース回路の構成図である。
【図2】図1中のシフトレジスタ20の一例を示す構成図である。
【図3】図1の動作を示す信号波形図(その1)である。
【図4】図1の動作を示す信号波形図(その2)である。
【符号の説明】
【0035】
11 アドレスデコーダ
12 OR
13 AND
14 送信バッファ
15 FF
16 ロード制御部
17 シフト制御部
20 シフトレジスタ

【特許請求の範囲】
【請求項1】
アドレス信号で第1アドレスが指定されたときに第1信号を出力し、第2アドレスが指定されたときには第2信号を出力するアドレスデコーダと、
前記第1信号または第2信号と共に書き込み制御信号が与えられたときに、並列に与えられるデータ信号を保持する第1バッファと、
前記第1信号または第2信号と共に書き込み制御信号が与えられたときに、該第2信号を保持して選択信号として出力する第2バッファと、
前記第1バッファに保持されたデータ信号を並列に取り込み、前記選択信号が第1論理値のときには、シフトクロック信号に従って該データ信号を最下位ビットから順番に直列データとして出力し、該選択信号が第2論理値のときには、該シフトクロック信号に従って該データ信号を最上位ビットから順番に直列データとして出力するシフトレジスタとを、
備えたことを特徴とする直列インタフェース回路。
【請求項2】
アドレス信号で第1アドレスが指定されたときに第1信号を出力し、第2アドレスが指定されたときには第2信号を出力するアドレスデコーダと、
前記第1信号または第2信号と共に書き込み制御信号が与えられたときに、該第2信号を保持して選択信号として出力するバッファと、
前記第1信号または第2信号と共に書き込み制御信号が与えられたときに、ロード信号を出力するロード制御部と、
並列に与えられるデータ信号を前記ロード信号に従って取り込み、前記選択信号が第1論理値のときには、シフトクロック信号に従って該データ信号を最下位ビットから順番に直列データとして出力し、該選択信号が第2論理値のときには、該シフトクロック信号に従って該データ信号を最上位ビットから順番に直列データとして出力するシフトレジスタとを、
備えたことを特徴とする直列インタフェース回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate