図面 (/)

技術 電子機器装置、及びシリアル通信速度調整方法

出願人 日本電産サンキョー株式会社
発明者 青木暁
出願日 2014年10月10日 (7年2ヶ月経過) 出願番号 2014-208978
公開日 2016年5月16日 (5年7ヶ月経過) 公開番号 2016-082298
状態 特許登録済
技術分野 デジタル伝送方式における同期 情報転送方式
主要キーワード 水晶発信子 ジャンパピン 通信ボーレート 速度調整処理 コマンド結果 内蔵クロック DMAバッファ ボーレート設定
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年5月16日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (5)

課題

水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信が可能な電子機器装置を提供する。

解決手段

カード制御システムXのカードリーダ1は、上位装置2とシリアル通信可能に接続されている。カードリーダ1は、シリアル通信により上位装置2からコマンドを受信し、当該コマンドに対応した処理を実行する。クロック生成部100は、受信したデータの保存のタイミングに必要なクロック信号を生成する。反転間隔計測部110は、コマンドに含まれる特定コードに対応した反転ビットの間隔を、クロック生成部100により生成されたクロック信号で計測する。通信速度調整部120は、反転間隔計測部110により計測された反転ビットの間隔に対応するよう、上位装置2との通信速度を調整する。

概要

背景

従来、ATM(Automated Teller Machine)、入室管理システム在庫管理システム等において、カード状媒体の挿入や排出、データの読み出しや書き込み等に用いられるカードリーダが存在する。
たとえば、特許文献1には、このようなカード状媒体用のカードリーダの例が記載されている。

ここで、特許文献1に記載されたようなカードリーダが上位装置とシリアル通信を行うためには、上位装置とカードリーダ間で同一のボーレート通信を行う必要がある。一般的に、カードリーダ側では、外部接続水晶振動子回路を使った精度の高いクロック信号を用い、カードリーダ側のボーレートの精度を補うように構成されている。

概要

水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信が可能な電子機器装置を提供する。カード制御システムXのカードリーダ1は、上位装置2とシリアル通信可能に接続されている。カードリーダ1は、シリアル通信により上位装置2からコマンドを受信し、当該コマンドに対応した処理を実行する。クロック生成部100は、受信したデータの保存のタイミングに必要なクロック信号を生成する。反転間隔計測部110は、コマンドに含まれる特定コードに対応した反転ビットの間隔を、クロック生成部100により生成されたクロック信号で計測する。通信速度調整部120は、反転間隔計測部110により計測された反転ビットの間隔に対応するよう、上位装置2との通信速度を調整する。

目的

本発明は、このような状況に鑑みてなされたものであり、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信可能な電子機器装置及びシリアル通信速度調整方法を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

上位装置とシリアル通信可能に接続されており、前記シリアル通信により前記上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置であって、前記シリアル通信により受信したデータの保存のタイミングに必要なクロック信号を生成するクロック生成部と、前記コマンドに含まれる特定コードに対応した反転ビットの間隔を、前記クロック生成部により生成された前記クロック信号で計測する反転間隔計測部と、該反転間隔計測部により計測された反転ビットの間隔に対応するよう、前記上位装置との通信速度を調整する通信速度調整部とを備えることを特徴とする電子機器装置。

請求項2

前記シリアル通信により受信したデータをDMA(ダイレクトメモリアクセス)で保存するバッファを備え、前記反転間隔計測部は、前記バッファに保存されたデータのビット列から前記特定コードに対応した反転ビットの間隔を計測することを特徴とする請求項1に記載の電子機器装置。

請求項3

前記特定コードは、スタートビットを含む第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが特定の比となるよう設定され、前記反転間隔計測部は、前記特定の比となる反転ビットの列として前記第一の反転ビット列及び前記第二の反転ビット列を特定し、特定された前記第一の反転ビット列及び前記第二の反転ビット列の前記クロック信号のカウント値を算出して前記反転ビットの間隔を計測することを特徴とする請求項1又は2に記載の電子機器装置。

請求項4

前記上位装置からの前記コマンドを受信し、読み取り又は書き込みするカード状媒体に対して、前記コマンドに対応する特定の処理を実行するカードリーダであることを特徴とする請求項1乃至3のいずれか1項に記載の電子機器装置。

請求項5

前記反転間隔計測部は、前記上位装置から前記コマンドを受信する度に、前記反転ビットの間隔を計測することを特徴とする請求項4に記載の電子機器装置。

請求項6

上位装置とシリアル通信可能に接続されており、前記シリアル通信により前記上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置により実行されるシリアル通信速度調整方法であって、前記コマンドに含まれる特定コードに対応した反転ビットの間隔を、内蔵されたクロック生成部により生成されたクロック信号で計測し、計測された反転ビットの間隔に対応するよう、前記上位装置との通信速度を調整することを特徴とするシリアル通信速度調整方法。

技術分野

0001

本発明は、電子機器装置、及びシリアル通信速度調整方法に関する。

背景技術

0002

従来、ATM(Automated Teller Machine)、入室管理システム在庫管理システム等において、カード状媒体の挿入や排出、データの読み出しや書き込み等に用いられるカードリーダが存在する。
たとえば、特許文献1には、このようなカード状媒体用のカードリーダの例が記載されている。

0003

ここで、特許文献1に記載されたようなカードリーダが上位装置とシリアル通信を行うためには、上位装置とカードリーダ間で同一のボーレート通信を行う必要がある。一般的に、カードリーダ側では、外部接続水晶振動子回路を使った精度の高いクロック信号を用い、カードリーダ側のボーレートの精度を補うように構成されている。

先行技術

0004

特開2014−89574号公報

発明が解決しようとする課題

0005

しかしながら、外部接続の水晶振動子を使用せず、CPU等の制御部に内蔵されるクロックで上位装置とシリアル通信を行った場合、うまく通信できない可能性があった。これは、制御部に内蔵されるクロック信号は温度変化等による変動が大きいためであった。

0006

本発明は、このような状況に鑑みてなされたものであり、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信可能な電子機器装置及びシリアル通信速度調整方法を提供することを目的とする。

課題を解決するための手段

0007

本発明の電子機器装置は、上位装置とシリアル通信可能に接続されており、前記シリアル通信により前記上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置であって、前記シリアル通信により受信したデータの保存のタイミングに必要なクロック信号を生成するクロック生成部と、前記コマンドに含まれる特定コードに対応した反転間隔を、前記クロック生成部により生成された前記クロック信号で計測する反転間隔計測部と、該反転間隔計測部により計測された反転間隔に対応するよう、前記上位装置との通信速度を調整する通信速度調整部とを備えることを特徴とする。
このように構成することで、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信することが可能となる。

0008

本発明の電子機器装置は、前記シリアル通信により受信したデータをDMA(ダイレクトメモリアクセス)で保存するバッファを備え、前記反転間隔計測部は、前記バッファに保存されたデータのビット列から前記特定コードに対応した反転間隔を計測することを特徴とする。
このように構成することで、負荷をかけずに高速データ転送ができ、確実に受信データを取得でき、シリアル通信の速度を高精度に調整可能となる。

0009

本発明の電子機器装置は、前記特定コードは、スタートビットを含む第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが特定の比となるよう設定され、前記反転間隔計測部は、前記特定の比となる反転ビットの列として前記第一の反転ビット列及び前記第二の反転ビット列を特定し、特定された前記第一の反転ビット列及び前記第二の反転ビット列の前記クロック信号のカウント値を算出して前記反転間隔を計測することを特徴とする。
このように構成することで、シリアル通信の受信データから容易に特定コードを検出できる。

0010

本発明の電子機器装置は、前記上位装置からの前記コマンドを受信し、読み取り又は書き込みするカード状媒体に対して、前記コマンドに対応する特定の処理を実行するカードリーダであることを特徴とする。
このように構成することで、特定の処理を安全に行うことができる。

0011

本発明の電子機器装置は、前記反転間隔計測部は、前記上位装置から前記コマンドを受信する度に、前記反転間隔を計測することを特徴とする。
このように構成することで、前回のコマンドの受信から時間が経過しクロック等が変動していても、確実に速度を調整してコマンドを受信することが可能となる。

0012

本発明のシリアル通信速度調整方法は、上位装置とシリアル通信可能に接続されており、前記シリアル通信により前記上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置により実行されるシリアル通信速度調整方法であって、前記コマンドに含まれる特定コードに対応した反転間隔を、内蔵されたクロック生成部により生成されたクロック信号で計測し、計測された反転間隔に対応するよう、前記上位装置との通信速度を調整することを特徴とする。
このように構成することで、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信することが可能となる。

発明の効果

0013

本発明によれば、シリアル通信のコマンドに含まれる特定コードに対応した反転間隔を内蔵のクロック信号で計測することで、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信可能となる電子機器装置及びシリアル通信速度調整方法を提供することができる。

図面の簡単な説明

0014

本発明の実施の形態に係るカード制御システムシステム構成図である。
図1に示すカードリーダが実行するコマンド受信実行処理フローチャートである。
図2に示す反転間隔計測処理概念図である。
図2に示す反転間隔計測処理の概念図である。

実施例

0015

<実施の形態>
〔カード制御システムXの構成〕
図1を参照して、本発明の実施の形態に係るカード制御システムXの構成について説明する。本実施形態のカード制御システムXは、ATM、入室管理システム、在庫管理システム、入出車管理システム等(以下、「ATM等」という。)のカード状媒体3を利用するシステムである。
本実施形態のカード制御システムXは、カードリーダ1、上位装置2、カード状媒体3を含んで構成される。

0016

カードリーダ1は、ATM等に内蔵されたカードリーダ装置である。カードリーダ1は、上位装置2と、例えば、調歩同期方式半二重通信方式のシリアル通信で送受信が可能なように接続されている。これにより、カード状媒体3がカードリーダ1に挿入されると、カードリーダ1は、シリアル通信により上位装置2からコマンドを受信し、カード状媒体3に対して、当該コマンドに対応した特定の処理を実行する。

0017

上位装置2は、ATM等の本体である。上位装置2は、カードリーダ1の電源の供給を制御する。また、上位装置2は、カードリーダ1に対してシリアル通信により各種コマンドを送信し、このコマンドの実行結果を受信する。

0018

カード状媒体3は、磁気カードICカードRFID(Radio Frequency Identification)カード等の一時的でない記録媒体である。カード状媒体3は、クレジットカードプリペイドカード、又はキャッシュカード等の金銭的な価値を示す価値情報、ID(Identification)コードのような固有情報等が記録されている。

0019

また、カードリーダ1は、制御部10、主記憶部20、補助記憶部30、及びカード読取書込部40を含んでいる。

0020

制御部10は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific IntegratedCircuit)等の制御演算手段である。
制御部10は、後述するように、クロック生成回路を内蔵しており、生成されたクロックを用いて、上位装置2との間でシリアル通信が可能である。

0021

主記憶部20は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)やMRAM(Magnetoresistive Random Access Memory)等の記録媒体である。
主記憶部20には、後述するように、各種バッファが確保され、当該バッファにデータが保存される。

0022

補助記憶部30は、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)等の不揮発性の記録媒体である。
補助記憶部30には、カードリーダ1のファームウェア等の制御プログラムと各種データ等とが保存される。

0023

カード読取書込部40は、カード状媒体3を読み取り又は書き込むための磁気ヘッド電磁誘導コイルやIC接続インターフェイスRFID用アンテナ、カード状媒体3を挿入や排出するための駆動機構センサ状態表示するためのLED(Light Emitting Diode)や液晶等の表示部が備えられている。また、カード読取書込部40に、カードリーダ1の初期設定や各種指示を行うためのディップスイッチジャンパピンやスイッチ等の入力部が含まれていてもよい。

0024

なお、制御部10、主記憶部20、及び補助記憶部30は、一体的に構成されたマイコン(Micro Controller)等であってもよい。

0025

より詳細に説明すると、制御部10は、クロック生成部100、反転間隔計測部110、通信速度調整部120、DMA部130(ダイレクト・メモリ・アクセス、Direct Memory Access)、及びコマンド解析実行部140を含んでいる。
また、主記憶部20は、DMAバッファ200(Buffer)、及びコマンドデータバッファ210の領域が確保される。
また、補助記憶部30は、ボーレート設定データ310を記憶する。

0026

クロック生成部100は、受信したデータの保存のタイミングに必要なクロック信号を生成する。クロック生成部100は、オンチップオシレータ等の発振回路から構成されるため、外部の水晶発振子等を接続する必要はない。また、クロック生成部100から生成されるクロック信号は、各部に必要なタイミングに合わせて特定の割合で分周されている。また、クロック生成部100により生成されるクロック信号の速度は、制御部10の温度や供給される電圧等により、既定の速度から特定の幅で変動してもよい。また、クロック生成部100は、制御部10の各種制御に必要なクロック信号を供給することも可能である。また、クロック生成部100により生成されたクロック信号により、各種タイミング計測用ソフトウェアタイマー等を設定することも可能である。

0027

反転間隔計測部110は、コマンドに含まれる特定コードに対応した反転ビットの間隔(以下、「反転間隔」という。)を、クロック生成部100により生成されたクロック信号により計測する。ここで、本実施形態においては、以下、シリアル通信の受信信号について、H(High)レベルである「1」のビットを「非反転ビット」、L(Low)レベルである「0」のビットを「反転ビット」と称する。また、以下において、反転間隔は、上位機器2からのシリアル通信の受信データの1ビット分に相当する変調周期に対応した、クロック生成部100により生成されたクロック信号のカウント値である。
具体的に説明すると、反転間隔計測部110は、主記憶部20に記憶されたDMAバッファ200のDMAデータ500のビット列から、特定コードに対応する反転ビットのビット列を検索する。反転間隔計測部110は、この反転ビットのビット列の長さ、すなわちクロック信号のカウント値を算出し、これを用いて反転間隔を求める。

0028

より具体的に説明すると、反転間隔計測部110は、特定コードに対応する第一の反転ビット列及び第二の反転ビット列を特定し、特定された第一の反転ビット列及び第二の反転ビット列についてクロック信号のカウント値を算出して反転間隔を計測する。ここで、本実施形態において、特定コードは、コマンドにおけるテキスト開始用の符号である。このテキスト開始用の符号には、スタートビットを含む第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが特定の比となるビット列が含まれる。このため、反転間隔計測部110は、DMAバッファ200に保存されたDMAデータ500から、連続する反転ビットの長さがこの特定の比であるようなビット列を特定コードとして検索し、検索された特定コードの第一の反転ビット列及び第二の反転ビット列のクロック信号のカウント値を算出し、反転間隔を計測する。本実施形態において、反転間隔計測部110は、特定コードの1ビット分となる1クロック信号を単位として、反転間隔を算出する。

0029

また、反転間隔計測部110は、上位装置2からコマンドを受信する毎に、反転間隔を計測する。反転間隔計測部110は、例えば、上位装置2によりカードリーダ1に電源を供給された直後のコマンドの受信時、待機状態からの復帰時のコマンドの受信時等に、毎回、反転間隔を計測する。

0030

通信速度調整部120は、カードリーダ1から上位装置2への通信速度を上位装置2の通信速度に一致させるために、反転間隔計測部110により計測された反転間隔に基づいて、カードリーダ1から上位装置2への通信ボーレート(通信速度)を調整する。
具体的に説明すると、通信速度調整部120は、反転間隔計測部110により算出された反転間隔を、ボーレートに対応する値として、補助記憶部30のボーレート設定データ310に保存する。この保存されたボーレートに対応するクロック信号のカウント値は、反転間隔に対応して通信速度を調整した値となる。

0031

DMA部130は、DMAの制御を行う内蔵のDMAコントローラである。DMA部130は、上位装置2からの転送開始信号により、DMA機能を用いてシリアル信号受信ライン(RxD)の周期データを受信し、受信されたデータを、直接、DMAデータ500として専用のDMAバッファ200に保存する。
なお、制御部10は、後述するように、DMA部130を備えないような構成であってもよい。また、制御部10とは別に、DMAコントローラを別途備えるような構成であってもよい。

0032

コマンド解析実行部140は、コマンドを解析し、解析されたコマンドに対応する特定の処理を実行する。コマンド解析実行部140は、通信速度調整部120により調整された速度で、DMAバッファ200のDMAデータ500からコマンドを解析する。このコマンドは、カードリーダ1の初期化、ステータス状態情報)の取得や表示、カード状媒体3の挿入や排出、カード状媒体3のデータの読み込みや書き出し、ファームウェアの更新等の特定の処理の指示が含まれるデータである。また、コマンドデータ510には、カードリーダ1のファームウェアのプログラムやデータ等が含まれていてもよい。
コマンド解析実行部140は、コマンドの実行の結果を、シリアル信号の送信ライン(TxD)により、上位装置2に送信する。

0033

DMAバッファ200は、DMA部130により受信されたDMAデータ500が保存される専用のバッファである。このDMAデータ500は、クロック生成部100で生成されたクロック信号に基づいたサンプリング速度サンプリングされたビット列となる。また、このDMAデータ500のサンプリング速度は、シリアル通信のボーレートを調整するために必要な速度であり、例えば、上位装置2と通信可能なシリアル通信の規定のボーレートの数倍以上の速度である。
なお、DMAデータ500は、クロック信号により作成されたリアルタイムタイマによる、特定の周期で取得されたビット列であってもよい。

0034

コマンドデータバッファ210は、DMAデータ500から解析されたコマンドデータ510を保存するためのバッファである。
コマンドデータ510は、コマンド解析実行部140によりDMAバッファ200に保存されたDMAデータ500から、ボーレート設定データ310に設定されたボーレートに対応する値であるクロック信号のカウント値をサンプリング間隔として用いて読み出されたデータである。

0035

ボーレート設定データ310は、シリアル通信のボーレートに関するデータである。ボーレート設定データ310には、上位装置2のボーレートに対応して算出されたクロック信号のカウント値が含まれている。このクロック信号のカウント値は、RS−232C等のシリアル通信で規定されたボーレートに対応する値、又は反転間隔に対応して通信速度を調整した値、次コマンド受信時の補正値等である。

0036

また、ボーレート設定データ310には、電源投入直後に上位装置2から送信された最初のコマンド(以下、「初回コマンド」という。)を受信する際のボーレートのデフォルト値を含んでいる。たとえば、このボーレートのデフォルト値は、ファームウェアにより設定され、又は入力部のディップスイッチやジャンパピンの組み合わせ等を読み込んで設定される。このボーレートのデフォルト値は、工場出荷時の初期値として、例えば、9,600bps〜115.2Kbpsのような、RS−232Cで規定された特定値が設定される。

0037

なお、反転間隔計測部110、通信速度調整部120、及びコマンド解析実行部140は、補助記憶部30については、記憶された制御プログラム(図示せず)を主記憶部20に展開し、制御部10が実行することで、各部の機能を実現することが可能である。また、その他の各部は、回路のハードウェアとして実現される。

0038

〔カードリーダ1によるコマンド受信実行処理〕
次に、図2図4により、本発明の実施の形態に係るコマンド実行処理について説明する。
本実施形態のコマンド受信実行処理では、上位装置2からのコマンド受信を開始し、シリアル通信の速度を調整し、ボーレートの補正をしてコマンドの実行結果を応答する。ここで、上述したように、上位装置2とカードリーダ1は、シリアル送受信にて接続されている。カードリーダ1は、上位装置2から送信された受信データから反転間隔を測定し、カードリーダ1自身が上位装置2に対してデータを送信する際のボーレートを上位装置2と同じになるよう設定する。また、この補正は、上位装置2からのシリアル通信のコマンドの受信毎に実行する。その後、カードリーダ1は、受信したコマンドに対応した特定の処理を開始し、通信速度の最終的な補正を行って、コマンドの実行結果を上位機器2に応答する。

0039

本実施形態のコマンド受信実行処理は、主に制御部10が、記憶媒体に記憶された制御プログラム(図示せず)を、各部と協働し、ハードウェア資源を用いて実行する。これにより、本実施形態のシリアル通信速度調整方法、及びシリアル通信速度調整プログラムの処理を実現することができる。
以下で、図2のフローチャートにより、本実施形態のコマンド受信実行処理の詳細をステップ毎に説明する。

0040

(ステップS101)
まず、DMA部130が、シリアル通信スタート処理を行う。
DMA部130は、上位装置2よりシリアル通信でデータが送信されると、RxD信号の反転間隔を、DMA機能を用いてDMAバッファ200へDMAデータ500として保存する。

0041

(ステップS102)
次に、コマンド解析実行部140が、解析されたコマンドデータ510に整合性があったか否かを判定する。

0042

まず、コマンド解析実行部140は、このDMAバッファ200のDMAデータ500を、コマンドに変換し、コマンドデータバッファ210に保存する。コマンド解析実行部140は、この際、補助記憶部30からボーレート設定データ310を読み出す。コマンド解析実行部140は、ボーレート設定データ310に設定されたクロック信号のカウント値をサンプリング間隔としてDMAデータ500を読み出し、コマンドデータ510に変換する。この際に、クロック信号のカウント値として、電源投入直後の初回コマンド受信時には、特定のデフォルト値に対応した値を算出して使用する。また、コマンド解析実行部140は、二回目以降には、後述するステップS110でボーレート設定データ310にセットされた値をカウント値として使用する。つまり、二回目以降、コマンド解析実行部140は、直前のコマンドの受信の際に補正された値、後述する「次コマンド受信時の補正値」をカウント値として使用する。

0043

この上で、コマンド解析実行部140は、コマンドデータバッファ210に保存されたコマンドデータ510について、パリティチェック電文切れチェックCRC(Cyclic Redundancy Check)等により、データの整合性を検査する。
コマンド解析実行部140は、コマンドデータ510の整合性があった場合に、Yesと判定する。コマンド解析実行部140は、それ以外の場合には、Noと判定する。
Yesの場合、コマンド解析実行部140は、処理をステップS108に進める。
Noの場合、コマンド解析実行部140は、処理をステップS103に進める。

0044

(ステップS103)
コマンドデータ510に整合性がなかった場合、コマンド解析実行部140が、初回コマンドであったか否かを判定する。コマンド解析実行部140は、解析されたコマンドデータ510が、初回コマンドであった場合に、Yesと判定する。コマンド解析実行部140は、それ以外の場合、つまり、二回目以降のコマンドであった場合は、Noと判定する。
Yesの場合、コマンド解析実行部140は、処理をステップS104に進める。
Noの場合、コマンド解析実行部140は、処理をステップS107に進める。

0045

(ステップS104)
初回コマンドであった場合、反転間隔計測部110が、反転間隔計測処理を行う。
反転間隔計測部110は、DMAバッファ200に保存されたDMAデータ500から特定コードに体操した反転間隔を計測する。

0046

図3(a)は、この特定コードとして、例えば、コマンドのテキスト開始符号である「STX」のコードである「0xF2」のビット列を使用する例を示している。シリアル通信のデータは、1ビットのスタートビット、8ビットのデータビット、1ビットのストップビット、1ビットのパリティビットを単位とする、計10ビットを単位で伝送される。この際に、スタートビットは、必ず「0」、ストップビットは必ず「1」となる。また、データビットであるB0〜B7は、最下位ビット(LSB)から最上位ビット(MSB)に向けて順に伝送される。

0047

このため、特定コードが「0xF2」の場合、第一の反転ビット列である「00」、非反転ビット列「1」、その後の第二の反転ビット列である「00」、その後の非反転ビット列「1111」、ストップビットの「1」、最後にパリティビットが送信される。よって、この例の場合、第一の反転ビット列の長さT0と、その後の第二の反転ビット列の長さT2とが等しくなる、つまり、1:1の特定の比となる。

0048

図3(b)は、DMAバッファ200に保存されたDMAデータ500において、T0:T2=1:1のデータの例である。反転間隔計測部110は、このように、T0:T1=1:1となる箇所のビット列を検索して、第一の反転ビット列と第二の反転ビット列として特定する。反転間隔計測部110は、特定された第一の反転ビット列と第二の反転ビット列から、特定コードの1ビット分となるクロック信号のカウント値である反転間隔を算出する。図3(b)の例の場合、反転間隔計測部110は、反転間隔=(T0の長さ+T2の長さ)/4、として算出する。この例では、T0の長さ=6、T2の長さ=6であるので、反転間隔=3(周期)と算出する。

0049

なお、反転間隔計測部110は、反転間隔の算出の際に、T1の長さも用いてもよい。この場合、反転間隔計測部110は、反転間隔=(T0の長さ×2+T1の長さ+T2の長さ×2)/5、のような式で算出することが可能である。また、DMAバッファ200に保存されたDMAデータ500は、実際には、誤差が少なくなる程度に細かくサンプリングされていてもよい。

0050

(ステップS105)
次に、通信速度調整部120が、通信速度調整処理を行う。
通信速度調整部120は、反転間隔計測部110により計測された反転間隔に対応するよう、上位装置2との通信速度を調整する。具体的には、通信速度調整部120は、計測された反転間隔を、補助記憶部30のボーレート設定データ310に保存する。これにより、上位装置2との通信速度を調整することが可能になる。
上述の図3(b)の例においては、通信速度調整部120は、反転間隔が3(周期)であるので、これをボーレート設定データ310に、通信速度が調整された値として設定する。

0051

このように構成することで、通信速度調整部120は、9,600bpsや38,400bps、115,200bps、といった固定値のボーレートを設定する必要がなくなる。また、温度変動等でクロック信号の速度の変動が起こっても、上位装置2と同じボーレートが保たれ、シリアル通信が可能な状態を維持できる。

0052

(ステップS106)
次に、コマンド解析実行部140が、データ復調ができるか否かを判定する。
コマンド解析実行部140は、調整された通信速度で、DMAバッファ200に保存されたDMAデータ500から、コマンドデータ510への復調試みる。つまり、コマンド解析実行部140は、DMAバッファ200に保存されたDMAデータ500を、ボーレート設定データ310に設定されたクロック信号のカウント値の間隔でサンプリングし直して、改めてコマンドデータ510に変換する。

0053

コマンド解析実行部140は、変換されたコマンドデータ510について、上述のステップS102と同様に整合性を検査する。上述の図3(b)の例では、コマンド解析実行部140が、DMAデータ500を3(周期)で読み出して、コマンドデータ510に変換した場合の整合性を検査する。コマンド解析実行部140は、整合性があった場合には、Yesと判定する。コマンド解析実行部140は、整合性がなかった場合には、Noと判定する。
Yesの場合、コマンド解析実行部140は、処理をステップS108に進める。
Noの場合、コマンド解析実行部140は、復調できなかったとして、処理をステップS101に戻して、上位装置2からの再度のコマンド送信を待つ。

0054

(ステップS107)
二回目以降のコマンドであった場合、コマンド解析実行部140が、NAK応答処理を行う。
カードリーダ1の電源供給又は待機状態からの初回のコマンドではなく、二回目以降のコマンドである場合は、機器故障ノイズ混入、及び不正操作等による通信エラーの可能性がある。
このため、コマンド解析実行部140は、否定応答符号の「NAK」のコードである「0x15」等を、送信ラインのTxDにより上位装置2へ応答する。
その後、コマンド解析実行部140は、処理をステップS101に戻す。

0055

(ステップS108)
ここで、コマンドデータ510に整合性があった場合、コマンド解析実行部140が、ACK応答処理を行う。
図4によると、カードリーダ1のコマンド解析実行部140は、上位装置2に対して、肯定応答符号の「ACK」のコードである「0x06」等を、TxDにより上位装置2へ応答する。

0056

(ステップS109)
次に、コマンド解析実行部140が、コマンド対応処理を行う。
コマンド解析実行部140は、コマンドデータバッファ210に保存されたコマンドデータ510を解釈し、コマンドに対応する特定の処理を実行開始する。たとえば、コマンド解析実行部140は、カード読取書込部40に対してカード状媒体3の挿入、排出、読み込み、若しくは書き込み等の指示を行う。また、例えば、コマンド解析実行部140は、カードリーダ1自体の状態読み出し、若しくはファームウェア更新等の処理を実行する。

0057

(ステップS110)
次に、コマンド解析実行部140が、通信速度補正処理を行う。
コマンド解析実行部140は、コマンドを受信した際にDMA部130により記憶されたDMAバッファ200に保存されたDMAデータ500により、通信速度を補正する。コマンド解析実行部140は、コマンドデータ510として解釈された全てのDMAデータ500に対応するクロック信号のカウント値(長さ)を、コマンドデータ510の全ビット数割り、コマンドデータ510の1ビット分に対応するクロック信号のカウント値を算出する。つまり、コマンド解析実行部140は、コマンドデータ510全体に相当するDMAデータ500から、シリアル通信の1ビット分の変調周期に相当するクロック信号のカウント値を算出する。コマンド解析実行部140は、この算出された値を、次コマンド受信時の補正値として、ボーレート設定データ310に設定する。

0058

このように構成し、一旦、反転間隔により通信速度を調整した後、コマンドを解析して更に補正することで、より高精度に上位装置2との間の通信速度を調整することが可能となる。これにより、上位装置2から、制御部10が熱等の変動が少ない時間で次回のコマンドが送信された際に、より解析しやすくなる可能性を高めることができる。よって、コマンドに対する特定の処理の実行までの待ち時間等を減らす効果が期待できる。

0059

(ステップS111)
次に、コマンド解析実行部140が、コマンド結果応答処理を行う。
図4によると、コマンド解析実行部140は、コマンドの実行が終了した後、上述の算出された平均値で補正されたボーレートにより、コマンドの実行結果の応答(レスポンス)を上位装置2へ送信する。

0060

これに対して、上位装置2が、ACKの応答をカードリーダ1に対して応答する。
その後、コマンド解析実行部140は、処理をステップS101に戻し、再び上位装置2からコマンドが送信されるまで待機状態になる。
なお、カードリーダ1の待機状態が特定の時間より長く続いた場合、上位装置2は、カードリーダ1への電源供給を停止してもよい。
以上により、本発明の実施の形態に係るコマンド受信実行処理の説明を終了する。

0061

〔本実施形態の主な効果〕
以上のように構成することで、以下のような効果を得ることができる。
本発明の実施の形態に係るカードリーダ1は、上位装置2とシリアル通信で接続されており、シリアル通信により上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置であって、シリアル通信により受信したデータの保存のタイミングに必要なクロック信号を生成するクロック生成部100と、コマンドに含まれる特定コードに対応した反転間隔を、クロック生成部100により生成されたクロック信号で計測する反転間隔計測部110と、反転間隔計測部110により計測された反転間隔に対応するよう、上位装置との通信速度を調整する通信速度調整部120とを備えることを特徴とする。

0062

つまり、本実施形態のカードリーダ1は、上位装置2からのシリアル信号ライン(RxD信号)の受信データから、カードリーダ1自身の制御部10のクロック信号により、ボーレートに対応する値を算出する。
このように構成することで、制御部10の温度変化等によるカードリーダ1の制御部10のクロック信号の変動が生じても、上位装置2との間で確実にシリアル通信することができる。この結果、カードリーダ1及び上位装置2において、回路構成上、精度の高いクロック信号を発生する、外部の水晶発信子を含む回路を使用しないことが可能となる。また、外部の水晶発信子を含む回路よりも、内蔵クロックの精度が高くない安価な制御部10を用いることも可能となる。よって、システム全体のコス削減効果を期待できる。

0063

また、カードリーダ1は、規定のボーレートで通信する必要がなく、上位装置2からのDMAデータ500に基づいてボーレートを設定し通信することが可能になる。つまり、上位装置2からのDMAデータ500に基づいて、カードリーダ1のシリアル通信のボーレートを設定可能な仕組みを実現することができる。これにより、上位装置2がRS−232C規格等の規定のボーレートを使用していなかったり、ボーレートがコマンド送信の度に変更されることがあったりするような構成でも、確実にシリアル通信を行うことができる。

0064

また、外部接続の水晶振動子は、コストが高いという問題があった。本実施形態のカードリーダ1は、外部接続の水晶振動子を使用しないため製造コストを低減することができる。

0065

なお、カードリーダ1は、通常、上位装置2に内蔵されており、金銭的な価値を扱うカード状媒体3の処理を行う。よって、上位装置2とのシリアル通信において速度を調整した上で、上位装置2との処理を実行することで、カードリーダ1と上位装置2との間のデータ通信解読されにくくすることができる。このため、結果として、カード状媒体3のカード情報スキミングハッキング等の可能性を減らすことができ、セキュリティを向上させられる。

0066

また、本発明の実施の形態に係るカードリーダ1は、シリアル通信のコマンドをDMA(ダイレクト・メモリ・アクセス)で保存するバッファを備え、反転間隔計測部110は、DMAバッファ200に保存されたDMAデータ500のビット列から特定コードに対応した反転間隔を計測することを特徴とする。

0067

このように構成することで、上位装置2が115,200bps等の高速なボーレートで送信してきた場合でも、制御部10に負荷をかけずに高速でデータ転送ができ、確実にシリアル通信のDMAデータ500を取得できる。また、制御部10が動作するクロックの速度に制限がなく、通信速度の調整を行うことが可能になる。また、制御部10が直接DMAデータ500を取得するのと比べて、DMAデータ500をサンプリングする際の誤差が少なくなるため、より確実にクロック信号の周期を算出可能となり、高精度な速度の調整や補正が可能となる。

0068

また、本発明の実施の形態に係るカードリーダ1は、特定コードが、スタートビットを含む第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが特定の比となるよう設定され、反転間隔計測部110は、特定の比となる反転ビットの列として第一の反転ビット列及び第二の反転ビット列を特定し、特定された第一の反転ビット列及び第二の反転ビット列のクロック信号のカウント値を算出して反転間隔を計測することを特徴とする。
このように構成することで、シリアル通信のDMAデータ500から容易に特定コードを検出でき、確実に反転間隔を計測し、通信速度を調整することができる。

0069

また、本発明の実施の形態に係るカードリーダ1は、上位装置2からのコマンドを受信し、読み取り又は書き込みするカード状媒体3に対して、コマンドに対応する特定の処理を実行することを特徴とする。
このように構成することで、上位装置2からのコマンドをカードリーダ1が確実に受信して、カード状媒体3に対する特定の処理を確実に行うことができる。

0070

また、本発明の実施の形態に係るカードリーダ1は、反転間隔計測部110が、上位装置2からコマンドを受信する度に、反転間隔を計測することを特徴とする。
このように構成することで、コマンド受信の度に速度を調整するため、前回のコマンド受信から時間が経過して制御部10のクロック等が変動していても、確実に上位装置2からのコマンドデータ510を受信することが可能となる。カードリーダ1にカード状媒体3が挿入されて特定の処理が実行され、次に他のカード状媒体3が挿入されるまで、通常は、数分〜数時間、時間が経過する。このため、毎回、反転間隔を計測することで、より確実に通信速度を調整できる。

0071

〔他の実施の形態〕
なお、上述の実施形態においては、カード制御システムXにおいて、上位装置2との間の受信データにより、カードリーダ1と上位装置2との間のシリアル通信のボーレートの調整について説明した。
しかしながら、カードリーダ1は、制御部10のクロック生成部100のクロック信号を用いたソフトウェアタイマーを生成し、定期的なセンサ状態監視やLED点滅制御などの用途に使用している。このため、上位装置2からの通信速度が既に設定されている場合、調整されたボーレート設定データ310に基づいて、ソフトウェアタイマーの時間を補正することが可能である。
これにより、制御部10のクロック信号の変動等にかかわらずソフトウェアタイマーの時間を補正でき、センサ状態の監視やLED点滅制御等の動作が確実になる。

0072

また、上述の実施形態においては、上位装置2からカードリーダ1へのシリアル信号ライン(RxD信号)からのDMAデータ500の取得に、制御部10に内蔵されたDMA部130の機能を用いる例について説明した。
しかしながら、例えば、クロック速度が25MHz程度の制御部10を用いても、ボーレート38,400bps程度の速度であれば、このDMAを使用せずに、PIO(Programmed I/O)でDMAデータ500を取得することが十分に可能である。このため、例えば、ボーレートの上限が38,400bpsまでの通信仕様のカードリーダ1であれば、DMA機能を用いずにボーレートの自動補正をしてもよい。
これにより、DMA機能のない制御部10を使用可能となり、コストを削減できる。

0073

また、上述の実施形態においては、通信速度を調整するための反転間隔としてコマンドデータ510の1ビット分に対応するクロック信号のカウント値を算出して使用した。
しかしながら、このように、クロック信号のカウント値を直接用いずに、ボーレートの設定を行うことも可能である。たとえば、クロック信号のカウント値から、規定のボーレートと、この規定のボーレートからのずれを算出して、これを上位機器2との通信速度の調整に用いてもよい。

0074

この場合、通信速度調整部120は、9,600bpsや38,400bps、115,200bpsといったRS−232Cのシリアル通信の固定値のボーレートと一番近い値を選択し、これとの「ずれ」の値をオフセット値として算出する。たとえば、DMAデータ500のサンプリングの既定のビットレート(bps)が338kbpsで、1ビット分の反転間隔となるクロック信号のカウント値が「3」であった場合、反転間隔の時間は約8.68μsとなるため、ボーレートを115,200bpsと算出する。通信速度調整部120は、主記憶部20に選択されたボーレートとオフセット値とを保存し、これらを用いて、上位装置2との通信速度を調整する。

0075

このように構成することで、上位装置2やカードリーダ1に設定されたボーレートとのずれを容易に算出できる。このため、上述のソフトウェアタイマーの設定や、他の各部のタイミング調整を行いやすくなる。

0076

また、上述の実施の形態では、カード制御システムXについて、シリアル通信の速度調整を行う例について説明した。
これに対して、上位装置2とのシリアル通信を実行する電子機器であれば、本実施形態の速度調整方法と同様に速度調整を行うことが可能である。また、RS−232C以外の特定コードを使用するシリアル通信にも適用することが可能である。
このように構成することで、各種電子機器のシリアル通信の調整に係る処理時間やコストを削減することができる。

0077

また、上述の実施の形態では、第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが1:1になる特定コードを使用する例について記載した。しかしながら、特定コードとして、これらの長さが1:n(任意倍)となるような特定コードを使用してもよい。また、特定コードとして、特定のパターンとなるようなデータを使用し、このパターンを検出するようにしてもよい。
このように構成することで、シリアル通信の信号の特性に合わせて確実な通信時間の調整が可能となる。

0078

なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。

0079

1カードリーダ
2 上位装置
3カード状媒体
10 制御部
20主記憶部
30補助記憶部
40カード読取書込部
100クロック生成部
110反転間隔計測部
120通信速度調整部
130DMA部
140コマンド解析実行部
200DMAバッファ
210コマンドデータバッファ
310ボーレート設定データ
500DMAデータ
510 コマンドデータ
X カード制御システム

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ