JP2016082298A - 電子機器装置、及びシリアル通信速度調整方法 - Google Patents

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

Info

Publication number
JP2016082298A
JP2016082298A JP2014208978A JP2014208978A JP2016082298A JP 2016082298 A JP2016082298 A JP 2016082298A JP 2014208978 A JP2014208978 A JP 2014208978A JP 2014208978 A JP2014208978 A JP 2014208978A JP 2016082298 A JP2016082298 A JP 2016082298A
Authority
JP
Japan
Prior art keywords
command
inversion
serial communication
host device
unit
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.)
Granted
Application number
JP2014208978A
Other languages
English (en)
Other versions
JP6456649B2 (ja
Inventor
暁 青木
Akira Aoki
暁 青木
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.)
Nidec Sankyo Corp
Original Assignee
Nidec Sankyo 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 Nidec Sankyo Corp filed Critical Nidec Sankyo Corp
Priority to JP2014208978A priority Critical patent/JP6456649B2/ja
Priority to CN201510652463.0A priority patent/CN105512062B/zh
Publication of JP2016082298A publication Critical patent/JP2016082298A/ja
Application granted granted Critical
Publication of JP6456649B2 publication Critical patent/JP6456649B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/282Cycle stealing DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)

Abstract

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

Description

本発明は、電子機器装置、及びシリアル通信速度調整方法に関する。
従来、ATM(Automated Teller Machine)、入室管理システム、在庫管理システム等において、カード状媒体の挿入や排出、データの読み出しや書き込み等に用いられるカードリーダが存在する。
たとえば、特許文献1には、このようなカード状媒体用のカードリーダの例が記載されている。
ここで、特許文献1に記載されたようなカードリーダが上位装置とシリアル通信を行うためには、上位装置とカードリーダ間で同一のボーレートで通信を行う必要がある。一般的に、カードリーダ側では、外部接続の水晶振動子と回路を使った精度の高いクロック信号を用い、カードリーダ側のボーレートの精度を補うように構成されている。
特開2014−89574号公報
しかしながら、外部接続の水晶振動子を使用せず、CPU等の制御部に内蔵されるクロックで上位装置とシリアル通信を行った場合、うまく通信できない可能性があった。これは、制御部に内蔵されるクロック信号は温度変化等による変動が大きいためであった。
本発明は、このような状況に鑑みてなされたものであり、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信可能な電子機器装置及びシリアル通信速度調整方法を提供することを目的とする。
本発明の電子機器装置は、上位装置とシリアル通信可能に接続されており、前記シリアル通信により前記上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置であって、前記シリアル通信により受信したデータの保存のタイミングに必要なクロック信号を生成するクロック生成部と、前記コマンドに含まれる特定コードに対応した反転間隔を、前記クロック生成部により生成された前記クロック信号で計測する反転間隔計測部と、該反転間隔計測部により計測された反転間隔に対応するよう、前記上位装置との通信速度を調整する通信速度調整部とを備えることを特徴とする。
このように構成することで、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信することが可能となる。
本発明の電子機器装置は、前記シリアル通信により受信したデータをDMA(ダイレクト・メモリ・アクセス)で保存するバッファを備え、前記反転間隔計測部は、前記バッファに保存されたデータのビット列から前記特定コードに対応した反転間隔を計測することを特徴とする。
このように構成することで、負荷をかけずに高速でデータ転送ができ、確実に受信データを取得でき、シリアル通信の速度を高精度に調整可能となる。
本発明の電子機器装置は、前記特定コードは、スタートビットを含む第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが特定の比となるよう設定され、前記反転間隔計測部は、前記特定の比となる反転ビットの列として前記第一の反転ビット列及び前記第二の反転ビット列を特定し、特定された前記第一の反転ビット列及び前記第二の反転ビット列の前記クロック信号のカウント値を算出して前記反転間隔を計測することを特徴とする。
このように構成することで、シリアル通信の受信データから容易に特定コードを検出できる。
本発明の電子機器装置は、前記上位装置からの前記コマンドを受信し、読み取り又は書き込みするカード状媒体に対して、前記コマンドに対応する特定の処理を実行するカードリーダであることを特徴とする。
このように構成することで、特定の処理を安全に行うことができる。
本発明の電子機器装置は、前記反転間隔計測部は、前記上位装置から前記コマンドを受信する度に、前記反転間隔を計測することを特徴とする。
このように構成することで、前回のコマンドの受信から時間が経過しクロック等が変動していても、確実に速度を調整してコマンドを受信することが可能となる。
本発明のシリアル通信速度調整方法は、上位装置とシリアル通信可能に接続されており、前記シリアル通信により前記上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置により実行されるシリアル通信速度調整方法であって、前記コマンドに含まれる特定コードに対応した反転間隔を、内蔵されたクロック生成部により生成されたクロック信号で計測し、計測された反転間隔に対応するよう、前記上位装置との通信速度を調整することを特徴とする。
このように構成することで、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信することが可能となる。
本発明によれば、シリアル通信のコマンドに含まれる特定コードに対応した反転間隔を内蔵のクロック信号で計測することで、水晶振動子等を使った精度の高いクロック信号を使用しなくても上位装置との間で確実にシリアル通信可能となる電子機器装置及びシリアル通信速度調整方法を提供することができる。
本発明の実施の形態に係るカード制御システムのシステム構成図である。 図1に示すカードリーダが実行するコマンド受信実行処理のフローチャートである。 図2に示す反転間隔計測処理の概念図である。 図2に示す反転間隔計測処理の概念図である。
<実施の形態>
〔カード制御システムXの構成〕
図1を参照して、本発明の実施の形態に係るカード制御システムXの構成について説明する。本実施形態のカード制御システムXは、ATM、入室管理システム、在庫管理システム、入出車管理システム等(以下、「ATM等」という。)のカード状媒体3を利用するシステムである。
本実施形態のカード制御システムXは、カードリーダ1、上位装置2、カード状媒体3を含んで構成される。
カードリーダ1は、ATM等に内蔵されたカードリーダ装置である。カードリーダ1は、上位装置2と、例えば、調歩同期方式で半二重通信方式のシリアル通信で送受信が可能なように接続されている。これにより、カード状媒体3がカードリーダ1に挿入されると、カードリーダ1は、シリアル通信により上位装置2からコマンドを受信し、カード状媒体3に対して、当該コマンドに対応した特定の処理を実行する。
上位装置2は、ATM等の本体である。上位装置2は、カードリーダ1の電源の供給を制御する。また、上位装置2は、カードリーダ1に対してシリアル通信により各種コマンドを送信し、このコマンドの実行結果を受信する。
カード状媒体3は、磁気カードやICカードやRFID(Radio Frequency Identification)カード等の一時的でない記録媒体である。カード状媒体3は、クレジットカード、プリペイドカード、又はキャッシュカード等の金銭的な価値を示す価値情報、ID(Identification)コードのような固有情報等が記録されている。
また、カードリーダ1は、制御部10、主記憶部20、補助記憶部30、及びカード読取書込部40を含んでいる。
制御部10は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)等の制御演算手段である。
制御部10は、後述するように、クロック生成回路を内蔵しており、生成されたクロックを用いて、上位装置2との間でシリアル通信が可能である。
主記憶部20は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)やMRAM(Magnetoresistive Random Access Memory)等の記録媒体である。
主記憶部20には、後述するように、各種バッファが確保され、当該バッファにデータが保存される。
補助記憶部30は、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)等の不揮発性の記録媒体である。
補助記憶部30には、カードリーダ1のファームウェア等の制御プログラムと各種データ等とが保存される。
カード読取書込部40は、カード状媒体3を読み取り又は書き込むための磁気ヘッドや電磁誘導コイルやIC接続インターフェイスやRFID用アンテナ、カード状媒体3を挿入や排出するための駆動機構やセンサ、状態表示するためのLED(Light Emitting Diode)や液晶等の表示部が備えられている。また、カード読取書込部40に、カードリーダ1の初期設定や各種指示を行うためのディップスイッチやジャンパピンやスイッチ等の入力部が含まれていてもよい。
なお、制御部10、主記憶部20、及び補助記憶部30は、一体的に構成されたマイコン(Micro Controller)等であってもよい。
より詳細に説明すると、制御部10は、クロック生成部100、反転間隔計測部110、通信速度調整部120、DMA部130(ダイレクト・メモリ・アクセス、Direct Memory Access)、及びコマンド解析実行部140を含んでいる。
また、主記憶部20は、DMAバッファ200(Buffer)、及びコマンドデータバッファ210の領域が確保される。
また、補助記憶部30は、ボーレート設定データ310を記憶する。
クロック生成部100は、受信したデータの保存のタイミングに必要なクロック信号を生成する。クロック生成部100は、オンチップ・オシレータ等の発振回路から構成されるため、外部の水晶発振子等を接続する必要はない。また、クロック生成部100から生成されるクロック信号は、各部に必要なタイミングに合わせて特定の割合で分周されている。また、クロック生成部100により生成されるクロック信号の速度は、制御部10の温度や供給される電圧等により、既定の速度から特定の幅で変動してもよい。また、クロック生成部100は、制御部10の各種制御に必要なクロック信号を供給することも可能である。また、クロック生成部100により生成されたクロック信号により、各種タイミング計測用のソフトウェアタイマー等を設定することも可能である。
反転間隔計測部110は、コマンドに含まれる特定コードに対応した反転ビットの間隔(以下、「反転間隔」という。)を、クロック生成部100により生成されたクロック信号により計測する。ここで、本実施形態においては、以下、シリアル通信の受信信号について、H(High)レベルである「1」のビットを「非反転ビット」、L(Low)レベルである「0」のビットを「反転ビット」と称する。また、以下において、反転間隔は、上位機器2からのシリアル通信の受信データの1ビット分に相当する変調周期に対応した、クロック生成部100により生成されたクロック信号のカウント値である。
具体的に説明すると、反転間隔計測部110は、主記憶部20に記憶されたDMAバッファ200のDMAデータ500のビット列から、特定コードに対応する反転ビットのビット列を検索する。反転間隔計測部110は、この反転ビットのビット列の長さ、すなわちクロック信号のカウント値を算出し、これを用いて反転間隔を求める。
より具体的に説明すると、反転間隔計測部110は、特定コードに対応する第一の反転ビット列及び第二の反転ビット列を特定し、特定された第一の反転ビット列及び第二の反転ビット列についてクロック信号のカウント値を算出して反転間隔を計測する。ここで、本実施形態において、特定コードは、コマンドにおけるテキスト開始用の符号である。このテキスト開始用の符号には、スタートビットを含む第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが特定の比となるビット列が含まれる。このため、反転間隔計測部110は、DMAバッファ200に保存されたDMAデータ500から、連続する反転ビットの長さがこの特定の比であるようなビット列を特定コードとして検索し、検索された特定コードの第一の反転ビット列及び第二の反転ビット列のクロック信号のカウント値を算出し、反転間隔を計測する。本実施形態において、反転間隔計測部110は、特定コードの1ビット分となる1クロック信号を単位として、反転間隔を算出する。
また、反転間隔計測部110は、上位装置2からコマンドを受信する毎に、反転間隔を計測する。反転間隔計測部110は、例えば、上位装置2によりカードリーダ1に電源を供給された直後のコマンドの受信時、待機状態からの復帰時のコマンドの受信時等に、毎回、反転間隔を計測する。
通信速度調整部120は、カードリーダ1から上位装置2への通信速度を上位装置2の通信速度に一致させるために、反転間隔計測部110により計測された反転間隔に基づいて、カードリーダ1から上位装置2への通信ボーレート(通信速度)を調整する。
具体的に説明すると、通信速度調整部120は、反転間隔計測部110により算出された反転間隔を、ボーレートに対応する値として、補助記憶部30のボーレート設定データ310に保存する。この保存されたボーレートに対応するクロック信号のカウント値は、反転間隔に対応して通信速度を調整した値となる。
DMA部130は、DMAの制御を行う内蔵のDMAコントローラである。DMA部130は、上位装置2からの転送開始信号により、DMA機能を用いてシリアル信号の受信ライン(RxD)の周期データを受信し、受信されたデータを、直接、DMAデータ500として専用のDMAバッファ200に保存する。
なお、制御部10は、後述するように、DMA部130を備えないような構成であってもよい。また、制御部10とは別に、DMAコントローラを別途備えるような構成であってもよい。
コマンド解析実行部140は、コマンドを解析し、解析されたコマンドに対応する特定の処理を実行する。コマンド解析実行部140は、通信速度調整部120により調整された速度で、DMAバッファ200のDMAデータ500からコマンドを解析する。このコマンドは、カードリーダ1の初期化、ステータス(状態情報)の取得や表示、カード状媒体3の挿入や排出、カード状媒体3のデータの読み込みや書き出し、ファームウェアの更新等の特定の処理の指示が含まれるデータである。また、コマンドデータ510には、カードリーダ1のファームウェアのプログラムやデータ等が含まれていてもよい。
コマンド解析実行部140は、コマンドの実行の結果を、シリアル信号の送信ライン(TxD)により、上位装置2に送信する。
DMAバッファ200は、DMA部130により受信されたDMAデータ500が保存される専用のバッファである。このDMAデータ500は、クロック生成部100で生成されたクロック信号に基づいたサンプリング速度でサンプリングされたビット列となる。また、このDMAデータ500のサンプリング速度は、シリアル通信のボーレートを調整するために必要な速度であり、例えば、上位装置2と通信可能なシリアル通信の規定のボーレートの数倍以上の速度である。
なお、DMAデータ500は、クロック信号により作成されたリアルタイムタイマによる、特定の周期で取得されたビット列であってもよい。
コマンドデータバッファ210は、DMAデータ500から解析されたコマンドデータ510を保存するためのバッファである。
コマンドデータ510は、コマンド解析実行部140によりDMAバッファ200に保存されたDMAデータ500から、ボーレート設定データ310に設定されたボーレートに対応する値であるクロック信号のカウント値をサンプリング間隔として用いて読み出されたデータである。
ボーレート設定データ310は、シリアル通信のボーレートに関するデータである。ボーレート設定データ310には、上位装置2のボーレートに対応して算出されたクロック信号のカウント値が含まれている。このクロック信号のカウント値は、RS−232C等のシリアル通信で規定されたボーレートに対応する値、又は反転間隔に対応して通信速度を調整した値、次コマンド受信時の補正値等である。
また、ボーレート設定データ310には、電源投入直後に上位装置2から送信された最初のコマンド(以下、「初回コマンド」という。)を受信する際のボーレートのデフォルト値を含んでいる。たとえば、このボーレートのデフォルト値は、ファームウェアにより設定され、又は入力部のディップスイッチやジャンパピンの組み合わせ等を読み込んで設定される。このボーレートのデフォルト値は、工場出荷時の初期値として、例えば、9,600bps〜115.2Kbpsのような、RS−232Cで規定された特定値が設定される。
なお、反転間隔計測部110、通信速度調整部120、及びコマンド解析実行部140は、補助記憶部30については、記憶された制御プログラム(図示せず)を主記憶部20に展開し、制御部10が実行することで、各部の機能を実現することが可能である。また、その他の各部は、回路のハードウェアとして実現される。
〔カードリーダ1によるコマンド受信実行処理〕
次に、図2〜図4により、本発明の実施の形態に係るコマンド実行処理について説明する。
本実施形態のコマンド受信実行処理では、上位装置2からのコマンド受信を開始し、シリアル通信の速度を調整し、ボーレートの補正をしてコマンドの実行結果を応答する。ここで、上述したように、上位装置2とカードリーダ1は、シリアル送受信にて接続されている。カードリーダ1は、上位装置2から送信された受信データから反転間隔を測定し、カードリーダ1自身が上位装置2に対してデータを送信する際のボーレートを上位装置2と同じになるよう設定する。また、この補正は、上位装置2からのシリアル通信のコマンドの受信毎に実行する。その後、カードリーダ1は、受信したコマンドに対応した特定の処理を開始し、通信速度の最終的な補正を行って、コマンドの実行結果を上位機器2に応答する。
本実施形態のコマンド受信実行処理は、主に制御部10が、記憶媒体に記憶された制御プログラム(図示せず)を、各部と協働し、ハードウェア資源を用いて実行する。これにより、本実施形態のシリアル通信速度調整方法、及びシリアル通信速度調整プログラムの処理を実現することができる。
以下で、図2のフローチャートにより、本実施形態のコマンド受信実行処理の詳細をステップ毎に説明する。
(ステップS101)
まず、DMA部130が、シリアル通信スタート処理を行う。
DMA部130は、上位装置2よりシリアル通信でデータが送信されると、RxD信号の反転間隔を、DMA機能を用いてDMAバッファ200へDMAデータ500として保存する。
(ステップS102)
次に、コマンド解析実行部140が、解析されたコマンドデータ510に整合性があったか否かを判定する。
まず、コマンド解析実行部140は、このDMAバッファ200のDMAデータ500を、コマンドに変換し、コマンドデータバッファ210に保存する。コマンド解析実行部140は、この際、補助記憶部30からボーレート設定データ310を読み出す。コマンド解析実行部140は、ボーレート設定データ310に設定されたクロック信号のカウント値をサンプリング間隔としてDMAデータ500を読み出し、コマンドデータ510に変換する。この際に、クロック信号のカウント値として、電源投入直後の初回コマンド受信時には、特定のデフォルト値に対応した値を算出して使用する。また、コマンド解析実行部140は、二回目以降には、後述するステップS110でボーレート設定データ310にセットされた値をカウント値として使用する。つまり、二回目以降、コマンド解析実行部140は、直前のコマンドの受信の際に補正された値、後述する「次コマンド受信時の補正値」をカウント値として使用する。
この上で、コマンド解析実行部140は、コマンドデータバッファ210に保存されたコマンドデータ510について、パリティチェック、電文途切れのチェック、CRC(Cyclic Redundancy Check)等により、データの整合性を検査する。
コマンド解析実行部140は、コマンドデータ510の整合性があった場合に、Yesと判定する。コマンド解析実行部140は、それ以外の場合には、Noと判定する。
Yesの場合、コマンド解析実行部140は、処理をステップS108に進める。
Noの場合、コマンド解析実行部140は、処理をステップS103に進める。
(ステップS103)
コマンドデータ510に整合性がなかった場合、コマンド解析実行部140が、初回コマンドであったか否かを判定する。コマンド解析実行部140は、解析されたコマンドデータ510が、初回コマンドであった場合に、Yesと判定する。コマンド解析実行部140は、それ以外の場合、つまり、二回目以降のコマンドであった場合は、Noと判定する。
Yesの場合、コマンド解析実行部140は、処理をステップS104に進める。
Noの場合、コマンド解析実行部140は、処理をステップS107に進める。
(ステップS104)
初回コマンドであった場合、反転間隔計測部110が、反転間隔計測処理を行う。
反転間隔計測部110は、DMAバッファ200に保存されたDMAデータ500から特定コードに体操した反転間隔を計測する。
図3(a)は、この特定コードとして、例えば、コマンドのテキスト開始符号である「STX」のコードである「0xF2」のビット列を使用する例を示している。シリアル通信のデータは、1ビットのスタートビット、8ビットのデータビット、1ビットのストップビット、1ビットのパリティビットを単位とする、計10ビットを単位で伝送される。この際に、スタートビットは、必ず「0」、ストップビットは必ず「1」となる。また、データビットであるB0〜B7は、最下位ビット(LSB)から最上位ビット(MSB)に向けて順に伝送される。
このため、特定コードが「0xF2」の場合、第一の反転ビット列である「00」、非反転ビット列「1」、その後の第二の反転ビット列である「00」、その後の非反転ビット列「1111」、ストップビットの「1」、最後にパリティビットが送信される。よって、この例の場合、第一の反転ビット列の長さT0と、その後の第二の反転ビット列の長さT2とが等しくなる、つまり、1:1の特定の比となる。
図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(周期)と算出する。
なお、反転間隔計測部110は、反転間隔の算出の際に、T1の長さも用いてもよい。この場合、反転間隔計測部110は、反転間隔=(T0の長さ×2+T1の長さ+T2の長さ×2)/5、のような式で算出することが可能である。また、DMAバッファ200に保存されたDMAデータ500は、実際には、誤差が少なくなる程度に細かくサンプリングされていてもよい。
(ステップS105)
次に、通信速度調整部120が、通信速度調整処理を行う。
通信速度調整部120は、反転間隔計測部110により計測された反転間隔に対応するよう、上位装置2との通信速度を調整する。具体的には、通信速度調整部120は、計測された反転間隔を、補助記憶部30のボーレート設定データ310に保存する。これにより、上位装置2との通信速度を調整することが可能になる。
上述の図3(b)の例においては、通信速度調整部120は、反転間隔が3(周期)であるので、これをボーレート設定データ310に、通信速度が調整された値として設定する。
このように構成することで、通信速度調整部120は、9,600bpsや38,400bps、115,200bps、といった固定値のボーレートを設定する必要がなくなる。また、温度変動等でクロック信号の速度の変動が起こっても、上位装置2と同じボーレートが保たれ、シリアル通信が可能な状態を維持できる。
(ステップS106)
次に、コマンド解析実行部140が、データ復調ができるか否かを判定する。
コマンド解析実行部140は、調整された通信速度で、DMAバッファ200に保存されたDMAデータ500から、コマンドデータ510への復調を試みる。つまり、コマンド解析実行部140は、DMAバッファ200に保存されたDMAデータ500を、ボーレート設定データ310に設定されたクロック信号のカウント値の間隔でサンプリングし直して、改めてコマンドデータ510に変換する。
コマンド解析実行部140は、変換されたコマンドデータ510について、上述のステップS102と同様に整合性を検査する。上述の図3(b)の例では、コマンド解析実行部140が、DMAデータ500を3(周期)で読み出して、コマンドデータ510に変換した場合の整合性を検査する。コマンド解析実行部140は、整合性があった場合には、Yesと判定する。コマンド解析実行部140は、整合性がなかった場合には、Noと判定する。
Yesの場合、コマンド解析実行部140は、処理をステップS108に進める。
Noの場合、コマンド解析実行部140は、復調できなかったとして、処理をステップS101に戻して、上位装置2からの再度のコマンド送信を待つ。
(ステップS107)
二回目以降のコマンドであった場合、コマンド解析実行部140が、NAK応答処理を行う。
カードリーダ1の電源供給又は待機状態からの初回のコマンドではなく、二回目以降のコマンドである場合は、機器の故障、ノイズの混入、及び不正操作等による通信エラーの可能性がある。
このため、コマンド解析実行部140は、否定応答符号の「NAK」のコードである「0x15」等を、送信ラインのTxDにより上位装置2へ応答する。
その後、コマンド解析実行部140は、処理をステップS101に戻す。
(ステップS108)
ここで、コマンドデータ510に整合性があった場合、コマンド解析実行部140が、ACK応答処理を行う。
図4によると、カードリーダ1のコマンド解析実行部140は、上位装置2に対して、肯定応答符号の「ACK」のコードである「0x06」等を、TxDにより上位装置2へ応答する。
(ステップS109)
次に、コマンド解析実行部140が、コマンド対応処理を行う。
コマンド解析実行部140は、コマンドデータバッファ210に保存されたコマンドデータ510を解釈し、コマンドに対応する特定の処理を実行開始する。たとえば、コマンド解析実行部140は、カード読取書込部40に対してカード状媒体3の挿入、排出、読み込み、若しくは書き込み等の指示を行う。また、例えば、コマンド解析実行部140は、カードリーダ1自体の状態読み出し、若しくはファームウェア更新等の処理を実行する。
(ステップS110)
次に、コマンド解析実行部140が、通信速度補正処理を行う。
コマンド解析実行部140は、コマンドを受信した際にDMA部130により記憶されたDMAバッファ200に保存されたDMAデータ500により、通信速度を補正する。コマンド解析実行部140は、コマンドデータ510として解釈された全てのDMAデータ500に対応するクロック信号のカウント値(長さ)を、コマンドデータ510の全ビット数で割り、コマンドデータ510の1ビット分に対応するクロック信号のカウント値を算出する。つまり、コマンド解析実行部140は、コマンドデータ510全体に相当するDMAデータ500から、シリアル通信の1ビット分の変調周期に相当するクロック信号のカウント値を算出する。コマンド解析実行部140は、この算出された値を、次コマンド受信時の補正値として、ボーレート設定データ310に設定する。
このように構成し、一旦、反転間隔により通信速度を調整した後、コマンドを解析して更に補正することで、より高精度に上位装置2との間の通信速度を調整することが可能となる。これにより、上位装置2から、制御部10が熱等の変動が少ない時間で次回のコマンドが送信された際に、より解析しやすくなる可能性を高めることができる。よって、コマンドに対する特定の処理の実行までの待ち時間等を減らす効果が期待できる。
(ステップS111)
次に、コマンド解析実行部140が、コマンド結果応答処理を行う。
図4によると、コマンド解析実行部140は、コマンドの実行が終了した後、上述の算出された平均値で補正されたボーレートにより、コマンドの実行結果の応答(レスポンス)を上位装置2へ送信する。
これに対して、上位装置2が、ACKの応答をカードリーダ1に対して応答する。
その後、コマンド解析実行部140は、処理をステップS101に戻し、再び上位装置2からコマンドが送信されるまで待機状態になる。
なお、カードリーダ1の待機状態が特定の時間より長く続いた場合、上位装置2は、カードリーダ1への電源供給を停止してもよい。
以上により、本発明の実施の形態に係るコマンド受信実行処理の説明を終了する。
〔本実施形態の主な効果〕
以上のように構成することで、以下のような効果を得ることができる。
本発明の実施の形態に係るカードリーダ1は、上位装置2とシリアル通信で接続されており、シリアル通信により上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置であって、シリアル通信により受信したデータの保存のタイミングに必要なクロック信号を生成するクロック生成部100と、コマンドに含まれる特定コードに対応した反転間隔を、クロック生成部100により生成されたクロック信号で計測する反転間隔計測部110と、反転間隔計測部110により計測された反転間隔に対応するよう、上位装置との通信速度を調整する通信速度調整部120とを備えることを特徴とする。
つまり、本実施形態のカードリーダ1は、上位装置2からのシリアル信号ライン(RxD信号)の受信データから、カードリーダ1自身の制御部10のクロック信号により、ボーレートに対応する値を算出する。
このように構成することで、制御部10の温度変化等によるカードリーダ1の制御部10のクロック信号の変動が生じても、上位装置2との間で確実にシリアル通信することができる。この結果、カードリーダ1及び上位装置2において、回路構成上、精度の高いクロック信号を発生する、外部の水晶発信子を含む回路を使用しないことが可能となる。また、外部の水晶発信子を含む回路よりも、内蔵クロックの精度が高くない安価な制御部10を用いることも可能となる。よって、システム全体のコスト削減効果を期待できる。
また、カードリーダ1は、規定のボーレートで通信する必要がなく、上位装置2からのDMAデータ500に基づいてボーレートを設定し通信することが可能になる。つまり、上位装置2からのDMAデータ500に基づいて、カードリーダ1のシリアル通信のボーレートを設定可能な仕組みを実現することができる。これにより、上位装置2がRS−232C規格等の規定のボーレートを使用していなかったり、ボーレートがコマンド送信の度に変更されることがあったりするような構成でも、確実にシリアル通信を行うことができる。
また、外部接続の水晶振動子は、コストが高いという問題があった。本実施形態のカードリーダ1は、外部接続の水晶振動子を使用しないため製造コストを低減することができる。
なお、カードリーダ1は、通常、上位装置2に内蔵されており、金銭的な価値を扱うカード状媒体3の処理を行う。よって、上位装置2とのシリアル通信において速度を調整した上で、上位装置2との処理を実行することで、カードリーダ1と上位装置2との間のデータ通信を解読されにくくすることができる。このため、結果として、カード状媒体3のカード情報のスキミングやハッキング等の可能性を減らすことができ、セキュリティを向上させられる。
また、本発明の実施の形態に係るカードリーダ1は、シリアル通信のコマンドをDMA(ダイレクト・メモリ・アクセス)で保存するバッファを備え、反転間隔計測部110は、DMAバッファ200に保存されたDMAデータ500のビット列から特定コードに対応した反転間隔を計測することを特徴とする。
このように構成することで、上位装置2が115,200bps等の高速なボーレートで送信してきた場合でも、制御部10に負荷をかけずに高速でデータ転送ができ、確実にシリアル通信のDMAデータ500を取得できる。また、制御部10が動作するクロックの速度に制限がなく、通信速度の調整を行うことが可能になる。また、制御部10が直接DMAデータ500を取得するのと比べて、DMAデータ500をサンプリングする際の誤差が少なくなるため、より確実にクロック信号の周期を算出可能となり、高精度な速度の調整や補正が可能となる。
また、本発明の実施の形態に係るカードリーダ1は、特定コードが、スタートビットを含む第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが特定の比となるよう設定され、反転間隔計測部110は、特定の比となる反転ビットの列として第一の反転ビット列及び第二の反転ビット列を特定し、特定された第一の反転ビット列及び第二の反転ビット列のクロック信号のカウント値を算出して反転間隔を計測することを特徴とする。
このように構成することで、シリアル通信のDMAデータ500から容易に特定コードを検出でき、確実に反転間隔を計測し、通信速度を調整することができる。
また、本発明の実施の形態に係るカードリーダ1は、上位装置2からのコマンドを受信し、読み取り又は書き込みするカード状媒体3に対して、コマンドに対応する特定の処理を実行することを特徴とする。
このように構成することで、上位装置2からのコマンドをカードリーダ1が確実に受信して、カード状媒体3に対する特定の処理を確実に行うことができる。
また、本発明の実施の形態に係るカードリーダ1は、反転間隔計測部110が、上位装置2からコマンドを受信する度に、反転間隔を計測することを特徴とする。
このように構成することで、コマンド受信の度に速度を調整するため、前回のコマンド受信から時間が経過して制御部10のクロック等が変動していても、確実に上位装置2からのコマンドデータ510を受信することが可能となる。カードリーダ1にカード状媒体3が挿入されて特定の処理が実行され、次に他のカード状媒体3が挿入されるまで、通常は、数分〜数時間、時間が経過する。このため、毎回、反転間隔を計測することで、より確実に通信速度を調整できる。
〔他の実施の形態〕
なお、上述の実施形態においては、カード制御システムXにおいて、上位装置2との間の受信データにより、カードリーダ1と上位装置2との間のシリアル通信のボーレートの調整について説明した。
しかしながら、カードリーダ1は、制御部10のクロック生成部100のクロック信号を用いたソフトウェアタイマーを生成し、定期的なセンサ状態の監視やLED点滅制御などの用途に使用している。このため、上位装置2からの通信速度が既に設定されている場合、調整されたボーレート設定データ310に基づいて、ソフトウェアタイマーの時間を補正することが可能である。
これにより、制御部10のクロック信号の変動等にかかわらずソフトウェアタイマーの時間を補正でき、センサ状態の監視やLED点滅制御等の動作が確実になる。
また、上述の実施形態においては、上位装置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を使用可能となり、コストを削減できる。
また、上述の実施形態においては、通信速度を調整するための反転間隔としてコマンドデータ510の1ビット分に対応するクロック信号のカウント値を算出して使用した。
しかしながら、このように、クロック信号のカウント値を直接用いずに、ボーレートの設定を行うことも可能である。たとえば、クロック信号のカウント値から、規定のボーレートと、この規定のボーレートからのずれを算出して、これを上位機器2との通信速度の調整に用いてもよい。
この場合、通信速度調整部120は、9,600bpsや38,400bps、115,200bpsといったRS−232Cのシリアル通信の固定値のボーレートと一番近い値を選択し、これとの「ずれ」の値をオフセット値として算出する。たとえば、DMAデータ500のサンプリングの既定のビットレート(bps)が338kbpsで、1ビット分の反転間隔となるクロック信号のカウント値が「3」であった場合、反転間隔の時間は約8.68μsとなるため、ボーレートを115,200bpsと算出する。通信速度調整部120は、主記憶部20に選択されたボーレートとオフセット値とを保存し、これらを用いて、上位装置2との通信速度を調整する。
このように構成することで、上位装置2やカードリーダ1に設定されたボーレートとのずれを容易に算出できる。このため、上述のソフトウェアタイマーの設定や、他の各部のタイミング調整を行いやすくなる。
また、上述の実施の形態では、カード制御システムXについて、シリアル通信の速度調整を行う例について説明した。
これに対して、上位装置2とのシリアル通信を実行する電子機器であれば、本実施形態の速度調整方法と同様に速度調整を行うことが可能である。また、RS−232C以外の特定コードを使用するシリアル通信にも適用することが可能である。
このように構成することで、各種電子機器のシリアル通信の調整に係る処理時間やコストを削減することができる。
また、上述の実施の形態では、第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが1:1になる特定コードを使用する例について記載した。しかしながら、特定コードとして、これらの長さが1:n(任意倍)となるような特定コードを使用してもよい。また、特定コードとして、特定のパターンとなるようなデータを使用し、このパターンを検出するようにしてもよい。
このように構成することで、シリアル通信の信号の特性に合わせて確実な通信時間の調整が可能となる。
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
1 カードリーダ
2 上位装置
3 カード状媒体
10 制御部
20 主記憶部
30 補助記憶部
40 カード読取書込部
100 クロック生成部
110 反転間隔計測部
120 通信速度調整部
130 DMA部
140 コマンド解析実行部
200 DMAバッファ
210 コマンドデータバッファ
310 ボーレート設定データ
500 DMAデータ
510 コマンドデータ
X カード制御システム

Claims (6)

  1. 上位装置とシリアル通信可能に接続されており、
    前記シリアル通信により前記上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置であって、
    前記シリアル通信により受信したデータの保存のタイミングに必要なクロック信号を生成するクロック生成部と、
    前記コマンドに含まれる特定コードに対応した反転ビットの間隔を、前記クロック生成部により生成された前記クロック信号で計測する反転間隔計測部と、
    該反転間隔計測部により計測された反転ビットの間隔に対応するよう、前記上位装置との通信速度を調整する通信速度調整部とを備える
    ことを特徴とする電子機器装置。
  2. 前記シリアル通信により受信したデータをDMA(ダイレクト・メモリ・アクセス)で保存するバッファを備え、
    前記反転間隔計測部は、前記バッファに保存されたデータのビット列から前記特定コードに対応した反転ビットの間隔を計測する
    ことを特徴とする請求項1に記載の電子機器装置。
  3. 前記特定コードは、スタートビットを含む第一の反転ビット列の長さと、その後の第二の反転ビット列の長さとが特定の比となるよう設定され、
    前記反転間隔計測部は、前記特定の比となる反転ビットの列として前記第一の反転ビット列及び前記第二の反転ビット列を特定し、特定された前記第一の反転ビット列及び前記第二の反転ビット列の前記クロック信号のカウント値を算出して前記反転ビットの間隔を計測する
    ことを特徴とする請求項1又は2に記載の電子機器装置。
  4. 前記上位装置からの前記コマンドを受信し、読み取り又は書き込みするカード状媒体に対して、前記コマンドに対応する特定の処理を実行するカードリーダである
    ことを特徴とする請求項1乃至3のいずれか1項に記載の電子機器装置。
  5. 前記反転間隔計測部は、前記上位装置から前記コマンドを受信する度に、前記反転ビットの間隔を計測する
    ことを特徴とする請求項4に記載の電子機器装置。
  6. 上位装置とシリアル通信可能に接続されており、
    前記シリアル通信により前記上位装置からコマンドを受信し、当該コマンドに対応した処理を実行する電子機器装置により実行されるシリアル通信速度調整方法であって、
    前記コマンドに含まれる特定コードに対応した反転ビットの間隔を、内蔵されたクロック生成部により生成されたクロック信号で計測し、
    計測された反転ビットの間隔に対応するよう、前記上位装置との通信速度を調整する
    ことを特徴とするシリアル通信速度調整方法。
JP2014208978A 2014-10-10 2014-10-10 電子機器装置、及びシリアル通信速度調整方法 Active JP6456649B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014208978A JP6456649B2 (ja) 2014-10-10 2014-10-10 電子機器装置、及びシリアル通信速度調整方法
CN201510652463.0A CN105512062B (zh) 2014-10-10 2015-10-10 电子设备装置以及串行通信速度调整方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014208978A JP6456649B2 (ja) 2014-10-10 2014-10-10 電子機器装置、及びシリアル通信速度調整方法

Publications (2)

Publication Number Publication Date
JP2016082298A true JP2016082298A (ja) 2016-05-16
JP6456649B2 JP6456649B2 (ja) 2019-01-23

Family

ID=55720060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014208978A Active JP6456649B2 (ja) 2014-10-10 2014-10-10 電子機器装置、及びシリアル通信速度調整方法

Country Status (2)

Country Link
JP (1) JP6456649B2 (ja)
CN (1) CN105512062B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020066207A1 (ja) * 2018-09-27 2020-04-02 日本電産株式会社 信号送受信方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04117841A (ja) * 1990-09-07 1992-04-17 Furukawa Electric Co Ltd:The 調歩同期通信システムの通信速度検出方法
JPH05174201A (ja) * 1991-07-05 1993-07-13 Toppan Printing Co Ltd Icカードリーダライタ
JPH09153923A (ja) * 1995-11-30 1997-06-10 Matsushita Graphic Commun Syst Inc Atコマンド解析装置
JPH11154941A (ja) * 1997-11-20 1999-06-08 Keyence Corp 通信装置、通信システムおよび通信方法
US20130259095A1 (en) * 2010-11-12 2013-10-03 Lei Chen Modbus repeater with self-adaptive baud rate and self-adaptive baud rate sytem and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0226872D0 (en) * 2002-11-18 2002-12-24 British Telecomm Video transmission
CN101741424B (zh) * 2009-12-24 2013-08-28 航天恒星科技有限公司 多模式高动态扩频信号快速捕获方法
JP5896602B2 (ja) * 2011-01-06 2016-03-30 ミツミ電機株式会社 通信回路及びサンプリング調整方法
US8873607B2 (en) * 2011-01-27 2014-10-28 Mitsubishi Electric Corporation Communication interface device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04117841A (ja) * 1990-09-07 1992-04-17 Furukawa Electric Co Ltd:The 調歩同期通信システムの通信速度検出方法
JPH05174201A (ja) * 1991-07-05 1993-07-13 Toppan Printing Co Ltd Icカードリーダライタ
JPH09153923A (ja) * 1995-11-30 1997-06-10 Matsushita Graphic Commun Syst Inc Atコマンド解析装置
JPH11154941A (ja) * 1997-11-20 1999-06-08 Keyence Corp 通信装置、通信システムおよび通信方法
US20130259095A1 (en) * 2010-11-12 2013-10-03 Lei Chen Modbus repeater with self-adaptive baud rate and self-adaptive baud rate sytem and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020066207A1 (ja) * 2018-09-27 2020-04-02 日本電産株式会社 信号送受信方法
CN112655172A (zh) * 2018-09-27 2021-04-13 日本电产株式会社 信号收发方法
CN112655172B (zh) * 2018-09-27 2024-04-09 日本电产株式会社 信号收发方法

Also Published As

Publication number Publication date
JP6456649B2 (ja) 2019-01-23
CN105512062B (zh) 2019-04-23
CN105512062A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
US7911322B2 (en) Information processing apparatus and method, and non-contact IC card device
TWI332632B (en) Radio frequency identification tags capable of embedding receiver signal strength indications
US20050261749A1 (en) System and method for telemetry of analog and digital data
US8458483B1 (en) Techniques for message-passing using shared memory of an RF tag
EP2782045B1 (en) RFID system, communication device and communication program
US9940489B2 (en) Radiofrequency transponder circuit
US20150145652A1 (en) Apparatuses and methods using command sets specific for controlling the operation of a type of the rfid transponder to which the commands are transmitted
US7957473B2 (en) Data transmission apparatus enabling communication without being interfered by environmental noise
JP6456649B2 (ja) 電子機器装置、及びシリアル通信速度調整方法
US9319883B2 (en) Card device
CN107580711B (zh) Rfid应答器、rfid应答器装置和用于rfid应答器与读取设备之间的通信的方法
US8363737B2 (en) Wireless data transmission between a base station and a transponder via inductive coupling
JP6217344B2 (ja) 共有メモリに対するアクセス制御方法および装置
JP2010097280A (ja) Rfidシステム構築方法、rfidシステム
US20080143479A1 (en) Digital Device Being Worked with Exterior Power Supply and Control Method Thereof
US12001908B2 (en) Method for identifying a passive RFID card
US20230098471A1 (en) Method for identifying a passive rfid card
KR20120056591A (ko) 자동 주파수 조절 기능을 갖는 무선 주파수 인식 태그
JP4357327B2 (ja) 非接触式icカードシステム
JP4057451B2 (ja) 非接触方式による通信方法、通信システム、外部装置及びrfidタグ
JP2949249B2 (ja) 通信装置
JP2018010484A (ja) 電子回路、rfidシステム、及びrfidシステムのデータ取得方法
JP4763406B2 (ja) Icタグ用半導体装置、icタグシステムおよびicタグの制御方法
US20050219038A1 (en) Method and system for contactless data transmission
JP2014182505A (ja) Icカード及び携帯可能電子装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181024

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181219

R150 Certificate of patent or registration of utility model

Ref document number: 6456649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150