(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022132152
(43)【公開日】2022-09-07
(54)【発明の名称】IO-Link通信におけるスレーブデバイスのタイミング検出および補正方法、並びにIO-Link通信のスレーブデバイス
(51)【国際特許分類】
H04L 7/10 20060101AFI20220831BHJP
G06F 13/42 20060101ALI20220831BHJP
【FI】
H04L7/10
G06F13/42 350A
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2022025374
(22)【出願日】2022-02-22
(31)【優先権主張番号】21159590
(32)【優先日】2021-02-26
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】522070086
【氏名又は名称】ルネサス・エレクトロニクス・ジャーマニー・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】Renesas Electronics Germany GmbH
【住所又は居所原語表記】Grenzstrasse 28,Dresden,Germany
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】ラース,ゲプファート
(72)【発明者】
【氏名】トーマス,ライチェル
(72)【発明者】
【氏名】ティロ,シューベルト
(72)【発明者】
【氏名】ミル,リチャード,ジョージ
【テーマコード(参考)】
5B077
5K047
【Fターム(参考)】
5B077GG07
5K047AA05
5K047JJ08
(57)【要約】 (修正有)
【課題】IO-Link通信におけるスレーブデバイスのタイミング検出及び補正方法を提供する。
【解決手段】方法は、マスターデバイスとスレーブデバイスは共通の基本タイミングで動作し、通信セットアップ中にマスターデバイスから送信されたスレーブデバイスでINIT要求を検出するステップ、受信したINIT要求からマスターデバイスの実際のタイミングを計算するステップ及びマスターデバイスの計算された実際のタイミングに基づいて、スレーブデバイスの初期のタイミングを実際のタイミングに修正するステップを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
IO-Link通信におけるスレーブデバイスのタイミング検出および補正方法であって、マスターデバイスと前記スレーブデバイスが共通の基本タイミングで動作するものであり、当該方法は、以下のステップを含む:
通信セットアップ中に前記マスターデバイスから送信された前記スレーブデバイスでINIT要求を検出し、
受信した前記INIT要求から前記マスターデバイスの実際のタイミングを計算し、
前記マスターデバイスの計算された前記実際のタイミングに基づいて、前記スレーブデバイスの初期のタイミングを実際のタイミングに修正する方法。
【請求項2】
請求項1に記載のタイミング検出および補正方法において、
前記共通の基本タイミングがボーレートとして定義され、前記スレーブデバイスの前記初期のタイミングの修正がボーレートオフセットに基づく方法。
【請求項3】
請求項1または請求項2に記載のタイミング検出および補正方法において、さらに、前記マスターデバイスの前記実際のタイミングを継続的に追跡し、前記スレーブデバイスの前記実際のタイミングを修正するステップを含む方法。
【請求項4】
請求項3に記載のタイミング検出および補正方法において、
前記マスターデバイスの前記実際のタイミングの連続的な追跡は、前記スレーブデバイスでの少なくとも1つの受信したデータ送信から前記マスターデバイスの前記実際のタイミングを計算するステップを含む方法。
【請求項5】
請求項3に記載のタイミング検出および補正方法において、
前記スレーブデバイスでの少なくとも1つの前記受信したデータ送信から前記マスターデバイスの前記実際のタイミングを計算するステップは、それぞれの受信したデータ送信の後に実行される方法。
【請求項6】
請求項4または請求項5に記載のタイミング検出および補正方法において、
前記スレーブデバイスの前記実際のタイミングは、1つまたは複数の完全なマスターテレグラムの終了後に修正され、1つのマスターテレグラムは2つ以上のデータ送信を含む方法。
【請求項7】
請求項6に記載のタイミング検出および補正方法において、
前記スレーブデバイスの前記実際のタイミングの修正は、1つまたは複数のマスターテレグラムのローパスフィルタリングした多重のデータ送信に基づく方法。
【請求項8】
請求項1から7のいずれかに記載のタイミング検出および補正方法において、
受信した前記INIT要求および/または受信した前記データ送信から前記マスターデバイスの前記実際のタイミングを計算することは、受信した前記INIT要求および/または受信した前記データ送信からタイミング情報を抽出するステップを含む方法。
【請求項9】
請求項8に記載のタイミング検出および補正方法において、
受信した前記INIT要求および/または受信した前記データ送信から前記タイミング情報を抽出するステップは、前記INIT要求および/または受信した前記データ送信における立ち上がりエッジおよび/または立ち下がりエッジを検出するステップを含む方法。
【請求項10】
請求項8または9に記載のタイミング検出および補正方法において、
受信した前記INIT要求および/または受信した前記データ送信からタイミング情報を抽出するステップは、前記スレーブデバイスのハードウェアコンポーネントによって実行される方法。
【請求項11】
請求項8から10のいずれかに記載のタイミング検出および補正方法において、
受信した前記INIT要求および/または受信した前記データ送信から前記マスターデバイスの前記実際のタイミングを計算するステップは、前記スレーブデバイスのソフトウェアコンポーネントによって実行され、前記ソフトウェアコンポーネントは、受信した前記INIT要求および/または受信した前記データ送信から抽出された前記タイミング情報を処理する方法。
【請求項12】
請求項8から10のいずれかに記載のタイミング検出および補正方法において、
前記スレーブデバイスの前記初期のタイミングおよび/または実際のタイミングは、特定の閾値を超えた場合にのみ修正される方法。
【請求項13】
請求項1から12のいずれかに記載のタイミング検出および補正方法において、
受信した前記INIT要求から前記マスターデバイスの前記実際のタイミングを計算すること、および/または、少なくとも1つの受信したデータ送信から前記マスターデバイスの前記実際のタイミングを計算することは、前記INIT要求、前記少なくとも1つのデータ送信、および/またはマスターテレグラムでのクロックパルスをカウントするステップを含む方法。
【請求項14】
請求項1から13のいずれかに記載のタイミング検出および補正方法において、
前記IO-Link通信の前記スレーブデバイスは、前記方法ステップを実行する少なくとも1つの汎用非同期送受信機モジュールを含む方法。
【請求項15】
請求項14に記載のタイミング検出および補正方法において、
前記IO-Link通信の前記スレーブデバイスは、それぞれが方法ステップを実行するとともに異なる初期のタイミング設定を有する多重の汎用非同期送受信機モジュールを含む方法。
【請求項16】
マスターデバイスと共通の基本タイミングで動作する、IO-Link通信のスレーブデバイスであって、
前記スレーブデバイスが、請求項1から14のいずれかに記載の方法を実行する少なくとも1つの汎用非同期送受信機モジュールを備えるスレーブデバイス。
【請求項17】
請求項14に記載のスレーブデバイスであって、
請求項15に記載の方法を実行するために異なる初期のタイミング設定を有する多重の汎用非同期送受信機モジュールを備えるスレーブデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IO-Link通信におけるスレーブデバイスのタイミング検出および補正方法に関し、マスターデバイスおよびスレーブデバイスは、共通の基本的なタイミングで動作する。本発明はさらに、IO-Link通信のスレーブデバイスに関し、マスターデバイスとスレーブデバイスは、共通の基本的なタイミングで動作する。
【背景技術】
【0002】
IO-Linkは、短距離産業用通信ネットワーク規格(IEC 61131-9)である。IO-Linkを介した通信は、双方向、デジタル、2地点間、および、有線または無線である。IO-Linkは、たとえば、産業用アプリケーションでデジタルセンサとアクチュエータを接続するために使用される。IO-Linkは、マスターデバイスと少なくとも1つのスレーブデバイス、すなわち、センサまたはアクチュエータを備える。マスターデバイスは、上位レバーコントローラ(PLC)へのインターフェイスを提供し、スレーブデバイスとの通信を制御、特に開始する。マスターデバイスと少なくとも1つのスレーブデバイスとの間のIO-Link通信は、汎用非同期送受信機(UART)通信に基づいている。
【0003】
汎用非同期送受信機(UART)通信は、データ形式と伝送速度が構造化可能である非同期シリアル通信である。UART通信の主要な設計面と要件(非同期)は、マスターデバイスとスレーブデバイスとの間のタイミング精度である。タイミングは、たとえば、合意されたボーレートによって定義され、マスターデバイスとスレーブデバイスは、水晶ベースのタイミング基準または発振器を使用する。ただし、内部発振器は全温度範囲で必要なタイミング精度を提供できず、外部水晶ベースのタイミング基準は追加のスペースを必要とする。
【発明の概要】
【0004】
したがって、本発明の目的は、IO-Link通信のマスターデバイスとスレーブデバイスとの間のタイミング精度を高めることである。
【0005】
この目的は、IO-Link通信におけるスレーブデバイスの時間検出および補正方法によって解決され、マスターデバイスとスレーブデバイスとは、次の手順を含む共通の基本タイミングで動作する:
通信セットアップ中にマスターデバイスから送信されたスレーブデバイスでのINIT要求を検出し、
受信したINIT要求からマスターデバイスの実際のタイミングを計算し、
マスターデバイスの計算されたタイミングに基づいて、スレーブデバイスの初期のタイミングを実際のタイミングに修正する。
【0006】
IO-Link通信、特に、汎用非同期送受信機の通信では、通信のマスターデバイスとスレーブデバイスは共通の基本タイミングで動作する。例えば、スレーブデバイスは、従来技術で知られるように、通信セットアップ中にマスターデバイスから送信されたINIT要求を検出するためのUARTモジュールを含む。タイミング精度を向上させるために、スレーブデバイス、特に、UARTモジュールは、受信したINIT要求を分析し、受信したINIT要求からマスターデバイスの実際のタイミングを計算する。マスターデバイスとスレーブデバイスは共通の基本タイミングで動作するため、スレーブデバイスは基本タイミングに関する情報を持っており、それに基づいて、スレーブデバイスは予想される基本タイミングとの差を検出することにより、受信したINIT要求から実際のタイミングを計算できる。
【0007】
共通の基本タイミングに基づくスレーブデバイスの初期のタイミングは、マスターデバイスの計算された実際のタイミングに基づいて実際のタイミングに修正される。スレーブデバイスの初期のタイミングが、マスターデバイスによって送信されて受信したINIT要求に基づいてマスターデバイスの実際のタイミングに修正されるため、スレーブデバイスは内部発振器を共通の基本タイミング用のタイミング基準として使用できる。そのような発振器は、特に高温範囲にわたって必要な精度を提供しないが、本発明による方法は、受信したINIT要求から計算されたマスターデバイスの実際のタイミングに基づいて精度を改善する。したがって、本発明による方法を使用して、スレーブデバイスは、発振器のタイミング基準を使用することができ、同時に、プロトコル通信に必要なタイミング精度を提供することができる。
【0008】
本発明の好ましい変形例によれば、共通の基本タイミングは、ボーレートとして定義され、スレーブデバイスの初期のタイミングの補正は、ボーレートオフセットに基づいている。ボーレートは、電気通信または電子機器のデータチャネルを介した通信速度を規定する。ボーレートの単位は、1秒あたりのシンボル数または1秒あたりのパルス数である。ボーレートオフセットは、マスターデバイスの実際のタイミング、すなわち、実際のボーレートに対応するように、初期のタイミング、すなわち、初期ボーレートをどのように修正(補正)しなければならないかを規定する。
【0009】
本発明の有利な変形例では、この方法は、マスターデバイスの実際のタイミングを連続的に追跡するとともにスレーブデバイスの実際のタイミングを修正するステップをさらに備える。したがって、スレーブデバイスのタイミングは、通信の開始時に修正されるだけでなく、すなわち、スレーブデバイスの初期のタイミングの修正によって修正されるだけでなく、マスターデバイスの実際のタイミングを追跡するとともにスレーブデバイスの実際のタイミングを修正することによって連続的に修正される。
【0010】
本発明の変形例によれば、マスターデバイスの実際のタイミングの連続的な追跡は、スレーブデバイスでの少なくとも1つの受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップを備える。したがって、通信セットアップ中にマスターデバイスによって送信されたINIT要求を分析する代わりに、スレーブデバイスは通常の受信したデータ送信を分析して、スレーブデバイスの実際のタイミングを継続的に修正する。
【0011】
本発明の変形例によれば、スレーブデバイスでの少なくとも1つの受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップは、それぞれの受信したデータ送信の後に、または、一定の間隔で実行される。スレーブデバイスのタイミング基準の精度に応じて、スレーブデバイスでの受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップは、それぞれの受信したデータ送信の後に、または、一定の間隔で実行される。
【0012】
本発明のさらなる変形例では、スレーブデバイスの実際のタイミングは、1つまたは複数の完全なマスターテレグラムの終了後に修正され、1つのマスターテレグラムは、2つ以上のデータ送信を備えている。最初のマスターテレグラムは、INIT要求と1つ以上のデータ送信を備える。この変形例では、スレーブデバイスは、いわゆるマスターテレグラム内のマスターデバイスから、多重データ送信をそれぞれ受信し、すなわち、INIT要求と1つ以上のデータ送信を受信する。完全なマスターテレグラムを受信した後、スレーブデバイスは、データ送信のそれぞれの分析に基づく、すなわち、マスターテレグラム内のINIT要求とデータ送信とに基づくタイミングを修正する。同時に、スレーブデバイスは、マスターテレグラムへの応答を準備し、スレーブデバイスの修正された実際のタイミングを使用してマスターデバイスにその応答を送信できる。
【0013】
本発明の変形例によれば、スレーブデバイスの実際のタイミングの修正は、1つまたは複数のマスターテレグラムにおけるローパスフィルタリングの多重データ送信に基づく。再び、最初のマスターテレグラムには、INIT要求が含まれ、これは、ローパスフィルタリング中にも考慮され得る。
【0014】
本発明の有利な変形例によれば、受信したINIT要求および/または受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップは、受信したINIT要求および/または受信したデータ送信からタイミング情報を抽出するステップを含む。受信したINIT要求および/または受信したデータ送信からタイミング情報を抽出するステップは、例えば、INIT要求および/または受信したデータ送信のビットの分析に基づく。
【0015】
本発明の特に好ましい変形例では、受信したINIT要求および/または受信したデータ送信からタイミング情報を抽出するステップは、INIT要求および/または受信したデータ送信における立ち上がりおよび/または立ち下がりエッジを検出するステップを含む。INIT要求および/または受信したデータ送信におけるビットの特定の立ち上がりエッジおよび/または立ち下がりエッジ間の時間を計算することにより、スレーブデバイスは、マスターデバイスの実際のタイミングを計算できる。
【0016】
本発明の変形例によれば、受信したINIT要求および/または受信したデータ送信からタイミング情報を抽出するステップは、スレーブデバイスのハードウェアコンポーネントによって実行される。受信したINIT要求および/または受信したデータ送信からのタイミング情報の抽出は、ハードウェアコンポーネントによって、たとえば、受信したINIT要求および/または受信したデータ送信におけるビットの立ち上がりおよび/または立ち下がりエッジを、コンパレータを用いて検出することによって、簡単に実行できる。ハードウェアコンポーネントはさらに高精度を提供する。
【0017】
本発明の別の変形例によれば、受信したINIT要求および/または受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップは、スレーブデバイスのソフトウェアコンポーネントによって実行され、ソフトウェアコンポーネントは、受信したINIT要求および/または受信したデータ送信から抽出されたタイミング情報を処理する。ソフトウェアコンポーネントには、受信したINIT要求および/または受信したデータ送信から抽出されたタイミング情報により実際のタイミングを計算するために使用されるアルゴリズムを簡単に補正、最適化、および/または置換できるという利点がある。
【0018】
本発明の有利な変形例では、スレーブデバイスの初期のタイミングおよび/または実際のタイミングは、特定の閾値を超えた場合にのみ修正される。したがって、マスターデバイスの実際のタイミングに対するスレーブデバイスの実際のタイミングのわずかな偏差は、データ送信に悪影響を及ぼさないため、毎回修正されるわけではない。特定の閾値を超えた場合にのみ、データ送信への何らかの悪影響を回避するために、スレーブデバイスの実際のタイミングは、マスターデバイスの実際のタイミングに修正されなければならない。閾値レベルは、例えば、パラメータ化または適応化でき、すなわち、閾値は、特定のパラメータに依存でき、または、修正変更できる。
【0019】
本発明の変形例によれば、受信したINIT要求からマスターデバイスの実際のタイミングを計算するステップ、および/または、少なくとも1つの受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップは、INIT要求内の、少なくとも1つのデータ送信内の、および/または、マスターテレグラム内のクロックパルスをカウントするステップを含む。
【0020】
本発明の好ましい変形例によれば、IO-Link通信のスレーブデバイスは、以下の方法ステップを実施する少なくとも1つの汎用非同期送受信機(UART)モジュールを備える:
通信セットアップ中にマスターデバイスから送信されたスレーブデバイスでINIT要求を検出し、
受信したINIT要求からマスターデバイスの実際のタイミングを計算し、
マスターデバイスの計算されたタイミングに基づいて、スレーブデバイスの初期のタイミングを実際のタイミングに修正する。
【0021】
本発明の特に好ましい変形例では、IO-Link通信のスレーブデバイスは、それぞれが前述の方法ステップを実行し、異なる初期のタイミング設定を有する多重の汎用非同期送受信機(UART)モジュールを備える。したがって、IO-Linkのスレーブデバイスは、多重のUARTモジュールを有し、それぞれが異なる初期のタイミングに構成されている。たとえば、スレーブデバイスは、+/-5%にわたって分散された異なる初期のタイミングを持つ4つのUARTモジュールを備える。初期のタイミング設定が異なるため、通信セットアップ中に1つのUARTモジュールが、マスターデバイスから送信されたINIT要求を正しく受信する機会が高くなる。その後、このUARTモジュールはIO-Link通信に使用される。UARTモジュールの数を増やすと、より広いタイミング範囲でINIT要求を検出ことが可能になる。
【0022】
この目的は、IO-Link通信のスレーブデバイスによってさらに解決され、マスターデバイスとスレーブデバイスは共通の基本タイミングで動作し、スレーブデバイスは、本発明による方法を実行する少なくとも1つの汎用非同期送受信機モジュールを備える。スレーブデバイスは、本発明の方法を実施するための特定のハードウェアおよび/またはソフトウェアを含むことができる。好ましくは、スレーブデバイスは、例えば、水晶ベースのタイミングデバイスのような外部コンポーネントなしで集積回路内に実装される。集積回路は、スレーブデバイスのソフトウェアコンポーネントを格納するためのメモリを含むことができる。
【0023】
本発明の好ましい変形例によれば、スレーブデバイスは、異なる初期のタイミング設定を有し、それぞれが本発明による方法を実行する多重の汎用非同期送受信機モジュールを含む。したがって、IO-Linkのスレーブデバイスは、多重のUARTモジュールを有し、それぞれが異なる初期のタイミングに構成されている。たとえば、スレーブデバイスは、+/-5%にわたって分散された異なる初期のタイミングを持つ4つのUARTモジュールを備える。初期のタイミング設定が異なるため、通信セットアップ中に1つのUARTモジュールが、マスターデバイスから送信されたINIT要求を正しく受信する機会が高くなる。その後、このUARTモジュールはIO-Link通信に使用される。UARTモジュールの数を増やすと、より広いタイミング範囲でINIT要求を検出することが可能になる。
【図面の簡単な説明】
【0024】
以下において、本発明は、添付の図に示される実施形態に関してさらに説明される。それは以下に示される。
【
図1】本発明によるIO-Link通信におけるスレーブデバイスのタイミングおよび検出方法の第1の実施形態のフローチャートである。
【
図2】本発明によるIO-Link通信におけるスレーブデバイスのタイミングおよび検出方法の第2の実施形態のフローチャートである。
【
図3】IO-Link通信のINIT要求と受信したINIT要求からのタイミング情報の抽出との信号図である。
【発明を実施するための形態】
【0025】
図1は、IO-Link通信におけるスレーブデバイスのタイミングおよび検出方法の第1の実施形態のフローチャートを示す。
【0026】
IO-Link通信は非同期であり、マスターデバイスとスレーブデバイスは共通の基本タイミングで動作する。非同期通信では、マスターデバイスとスレーブデバイスに共通のタイミング基準はない。タイミングは、たとえば、合意したボーレートによって定義され、マスターデバイスとスレーブデバイスは、水晶ベースのタイミング基準または発振器を使用する。IO-Link通信の主要な設計面と要件(非同期)は、マスターデバイスとスレーブデバイス間のタイミング精度である。
【0027】
本発明のタイミング検出および補正方法によれば、スレーブデバイスは、マスターデバイスの実際のタイミングを検出し、その初期のタイミングをスレーブデバイスの実際のタイミングに修正する。好ましい実施形態では、スレーブデバイスは、マスターデバイスの実際のタイミングを継続的に追跡し、その実際のタイミングをマスターデバイスの実際のタイミングに修正する。
【0028】
図1に示されるように、本発明の方法が開始される、すなわち、スレーブデバイスが通信を準備し、通信チャネルをリスニングしている。これは、たとえば、ウェイクアップ要求(WURQ)をスレーブデバイスに送信することにより、マスターデバイスによって開始される。
【0029】
スレーブデバイスが通信を準備し、通信チャネルをリスニングした後、マスターデバイスは、通信チャネルを介してスレーブデバイスにINIT要求を送信し、マスターデバイスとスレーブデバイス間の通信をセットアップする。スレーブデバイスは、マスターから送信されたINIT要求を検出する。
【0030】
受信したINIT要求から、スレーブデバイスは、マスターデバイスの実際のタイミングを計算する。マスターデバイスに応答を送信する前に、スレーブデバイスは、その初期のタイミングをマスターデバイスの計算された実際のタイミングに修正し、それによってマスターデバイスとスレーブデバイス間のタイミング精度を高める。
【0031】
マスターデバイスとスレーブデバイス間の通信がセットアップされた後、スレーブデバイスは、マスターデバイスの実際のタイミングを継続的に追跡し、その実際のタイミングを修正する。これは、スレーブデバイスでマスターデバイスからのデータ送信を受信すること、スレーブデバイスで受信したデータ送信からマスターデバイスの実際のタイミングを計算することによって、実現される。これは、たとえば、受信した各データ送信の後、または、事前定義された数のデータ送信の後に実行できる。
【0032】
受信したINIT要求および/または受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップは、好ましくは、受信したINIT要求および/または受信したデータ送信からタイミング情報を抽出するステップを含む。受信したINIT要求および/または受信したデータ送信からのタイミング情報の抽出は、例えば、INIT要求および/または受信したデータ送信における立ち上がりおよび/または立ち下がりエッジを検出するステップを含む。INIT要求および/または受信したデータ送信で検出された立ち上がりエッジおよび/または立ち下がりエッジの差は、マスターデバイスの実際のタイミングを計算するために使用される。
【0033】
受信したINIT要求からマスターデバイスの実際のタイミングを計算し、および/または、少なくとも1つの受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップは、INIT要求または少なくとも1つのデータ送信のクロックパルスをカウントするステップを含む。たとえば、INIT要求の事前定義された立ち上がりエッジまたは立ち下がりエッジ間のクロックパルス、または、少なくとも1回のデータ送信がカウントされる。
【0034】
受信したINIT要求および/または受信したデータ送信からタイミング情報を抽出するステップは、スレーブデバイスのハードウェアコンポーネントによって実行される。たとえば、ハードウェアコンパレータは、INIT要求および/または受信したデータ送信の立ち上がりエッジおよび/または立ち下がりエッジを検出する。
【0035】
受信したINIT要求および/または受信したデータ送信からマスターデバイスの実際のタイミングを計算するステップは、スレーブデバイスのソフトウェアコンポーネントによって実行され、ソフトウェアコンポーネントは、受信したINIT要求および/または受信したデータ送信から抽出されたタイミング情報を処理する。
【0036】
本発明の好ましい変形例によれば、スレーブデバイスの初期のタイミングおよび/または実際のタイミングは、特定の閾値を超えた場合にのみ修正される。したがって、マスターデバイスとスレーブデバイスとの間のタイミングにわずかな違いしかなく、通信に悪影響がない場合、スレーブデバイスのタイミングは修正されない。
【0037】
本発明による方法は、マスターデバイスとの通信が終了するまで、スレーブデバイスによって実行される。
【0038】
有利なことに、IO-Link通信のスレーブデバイスは、それぞれが以下のステップを実行する多重の汎用非同期送受信機モジュールを備える:
通信セットアップ中にマスターデバイスから送信された、スレーブデバイスでのINIT要求を検出し、
受信したINIT要求からマスターデバイスの実際のタイミングを計算し、
マスターデバイスの計算されたタイミングに基づいて、スレーブデバイスの初期のタイミングを実際のタイミングに修正する。
【0039】
さらに、多重の汎用非同期送受信機モジュールはそれぞれ、異なる初期のタイミング設定を有する。これにより、通信セットアップ中にマスターデバイスによって送信されたINIT要求が、少なくとも1つの汎用非同期送受信機モジュールによって正しく受信される可能性がより高い。INIT要求を正しく受信するモジュールは、スレーブデバイスとマスターデバイス間のさらなる通信のために選択される。複数のモジュールがINIT要求を正しく受信する場合、最速のモジュールが選択されることが望ましい。
【0040】
図2は、IO-Link通信におけるスレーブデバイスのタイミングおよび検出方法の第2の実施形態のフローチャートを示す。
【0041】
図2に示される第2の実施形態は、1つまたは複数の完全なマスターテレグラムの終了後にスレーブデバイスの実際のタイミングが修正されるという点で、
図1に示される第1の実施形態と異なる。マスターテレグラムは、2つ以上のデータ送信またはINIT要求と少なくとも1つのデータ送信とを備える。
【0042】
スレーブデバイスが1つ以上の完全なマスターテレグラムを受信すると、スレーブデバイスは、受信したマスターテレグラムから、すなわち、INIT要求と1つ以上のデータ送信、それぞれ2つ以上のデータ送信からマスターデバイスの実際のタイミングを計算できる。
【0043】
この変形例では、スレーブデバイスの実際のタイミングの修正は、例えば、 1つまたは複数のマスターテレグラムにおける、ローパスフィルタリングした多重のデータ送信に基づかせることができる。
【0044】
図3は、IO-Link通信のINIT要求と、受信したINIT要求からのタイミング情報の抽出との信号図を示す。
【0045】
スレーブデバイスがINIT要求の開始ビットの立ち下がりエッジを検出すると、次のカウンタが開始される:
テレグラム_カウンタ、
ビット_タイム_カウンタ、
ビット_ヌム_カウンタ。
【0046】
テレグラム_カウンタは、プロトコルの最初の立ち下がりエッジからプロトコルの終了までのクロックパルスをカウントする。プロトコルは、
図1に示される第1の実施形態によるINIT要求あるいはデータ送信、または、
図2に示される第2の実施形態によるデータテレグラムである。クロックパルスは、スレーブデバイスのタイミング基準によって生成される。
【0047】
ビット_タイム_カウンタは、構成されたビット_タイムごとに名目上のクロックパルスの数をカウントする。構成されたビット_タイムは、共通の基本タイミングに、特に、マスターデバイスとスレーブデバイス間で合意されたボーレートに依存する。ビット_タイム_カウンタは、ビット_タイム_クロック値に達すると、一回転する。ビット_タイム_カウンタは、ビット_タイムの約50%でビット_ヌム_カウンタのカウントパルスをトリガーし、次のエッジの早い/遅い到着を考慮する。
【0048】
ビット_ヌム_カウンタは、ビット_タイム_カウンタによってトリガーされたチェックマークに基づいて、プロトコルの最初の立ち下がりエッジから経過したビット時間をカウントする。
【0049】
プロトコルの最初の立ち上がりエッジが検出されるとすぐに、テレグラム_カウンタの値がレジスタct_first_risingに格納され、ビット_ヌム_カウンタの値がレジスタnbit_first_risingに格納される。
【0050】
最初の立ち下がりエッジの後にプロトコルで立ち下がりエッジが検出されるとすぐに、テレグラム_カウンタの値がレジスタct_fallingに格納され、ビット_ヌム_カウンタの値がレジスタnbit_fallingに格納される。これは、プロトコルが終了するまで繰り返される。
【0051】
初の立ち上がりエッジの後にプロトコルで立ち上がりエッジが検出されるとすぐに、テレグラム_カウンタの値がレジスタct_risingに格納され、ビット_ヌム_カウンタの値がレジスタnbit_risingに格納される。これは、プロトコルが終了するまで繰り返される。
【0052】
【0053】
スレーブデバイスの実際のタイミングは次のように修正される:
【0054】
【0055】
マスターデバイスの実際のタイミングを継続的に追跡している間、たとえば、スレーブデバイスは、タイミングが閾値で定義された特定の制限内にあるかどうかをチェックする。閾値は、たとえば、レジスタx_cоuntsによって定義される。スレーブデバイスは、受信したデータ送信(プロトコル)から上記のタイミング情報を抽出し続ける。
【0056】
スレーブデバイスの実際のタイミングは、たとえば、次のように修正される:
If(((bit_time_clock * nbit_rising)+ pulse_asymmetry)<(ct_rising - x_counts)) then increase bit_time_clock
else
if(((bit_time_clock * nbit_rising)+ pulse_asymmetry)>(ct_rising + x_counts)) then decrease bit_time_clock
else no change.
【0057】
これは、スレーブデバイスの初期および/または実際のタイミングをマスターデバイスの実際のタイミングに修正するためのアルゴリズムの一例にすぎない。ローパスフィルタリングのような他のより複雑なアプローチも使用できる。