(57)【要約】【課題】【解決手段】  セグメント化された自動ロック式レール・ユニットを有する機械的駆動サブシステム、レール取り付け支持体、ベルト及びチェーン駆動テンショニング、並びに駆動アセンブリ・キャリッジ及びインタフェース；様々なバリア・オペレータ機能の制御動作のための電子装置及びソフトウェア・ルーチン；バリア・オペレータと通信する壁コンソール；アクセス・コードの暗号化及び復号化；移動制限及びバリア速度及びフォース・プロファイルの確立及び監視、バリア・オペレータ駆動モータの熱的保護；並びに無線アダプタによるバリア・オペレータから付属品への通信の確立と制御を含む、バリア・オペレータ・システムの種々の構成要素の代替実施形態、及び動作方法を開示する。
2014518966.tif 000002
【特許請求の範囲】
【請求項１】
上方作動式セクション・ドアを開位置と閉位置の間で位置決めするためのバリア・オペレータ・システムであって、
レール・アセンブリと、
バレット部材によって結合される第１及び第２の端を有する駆動要素であって、前記バレット部材が、キャリッジを前記レール・アセンブリ内で移動させて前記バリアを前記開位置と前記閉位置の間で位置決めするために、キャリッジと係合することができる駆動要素と、
前記バレットと前記キャリッジとの係止係合を容易にするために、前記キャリッジが前記バレットを受けるのに応じて前記バレットを向けるように構成されたアラインメント・システムとを備えるバリア・オペレータ・システム。
【請求項２】
バリア・オペレータ・システムであって、
駆動スプロケットとリターン・プーリを受けるチャネルを有するレールと、
駆動スプロケットとリターン・プーリのまわりで操作される駆動要素と、
前記チャネル内に配置されたテンション・システムであって、前記駆動要素の張力を増減するために、前記レールの端に配置されブラケットと、前記ブラケットに対するリターン・プーリの位置を調整するために前記ブラケットに結合された調整スクリューとを有するテンション・システムとを備えた、バリア・オペレータ・システム。
【請求項３】
バリア・オペレータ・システム用のレール・アセンブリであって、前記レール・アセンブリが、上方作動式ドアを開位置と閉位置の間で移動させるために駆動アセンブリを受けるチャンバを構成し、
第１のレール部分及び第２のレール部分と、
コネクタ部分であって、前記第１と第２のレール部分のそれぞれの開口と係合可能な第１と第２の柔軟なタブ部材を有し、前記開口と前記タブの前記係合により、前記第１と第２のレール部分が前記コネクタ部分にロックされるコネクタ部分とを備えたレール・アセンブリ。
【請求項４】
バリア・オペレータ・システムであって、
前記駆動アセンブリを受けるチャンバを有するレール・アセンブリであって、前記駆動アセンブリが、駆動スプロケットのまわりで操作される駆動要素と、前記チャンバ内でキャリッジを移動させて前記バリアを開位置と閉位置の間で位置決めするためのリターン・プーリとを有するレール・アセンブリと、
前記レールをオペレータ・ヘッドに結合するためのブラケット部材であって、前記レールを前記オペレータ・ヘッドに結合するときに、前記タブ部材が前記駆動プーリに隣接するように延在するタブ部材を有するブラケット部材とを備えた、バリア・オペレータ・システム。
【請求項５】
バリア・オペレータ・システム用のレール・アセンブリであって、駆動アセンブリを収容して、バリアを開位置と閉位置の間で移動させるためのチャンバを構成するレール・アセンブリと、
前記バリア・オペレータから、セクション・ガレージ・ドア用の開口を有する壁まで延在するレールと、
前記レール上で配置され、前記バリア・オペレータと前記壁との間に延在する１つ又は複数の電線を支持するための複数のクリップとを備えたレール・アセンブリ。
【請求項６】
上方作動式ドアを開位置と閉位置の間で位置決めするためのバリア・オペレータであって、
レール・アセンブリと、
前記レール・アセンブリ内でキャリッジを移動させて、前記ドアを前記開位置と前記閉位置の間に位置決めするための回転式スクリューを備えた駆動要素と、
前記回転式スクリューを支持するための複数の支持部材であって、前記レール内の対応する開口と摩擦係合して前記支持部材を前記レール内に固定するための１対の拡張部を有する支持部材とを備えた、バリア・オペレータ。
【請求項７】
バリア・オペレータ用のレール・アセンブリであって、前記レール・システムが、上方作動式セクション・ドアを開位置と閉位置の間で移動させるための駆動アセンブリを収容するチャンバを構成し、
第１端と第２端を有し、所定の長さに延在する細長いレールと、
前記細長いレールの前記長さより実質的に短い長さを有するレール拡張部と、
前記レールの第２端の位置部分及び前記レール拡張の一部分と整合し覆うように構成された結合器とを備え、
前記駆動アセンブリが、前記レール拡張部を前記細長いレールの前記第２端に固定してそれらの間が離れるのを防ぐ働きをする、レール・アセンブリ。
【請求項８】
バリア・オペレータ・システム用の無端駆動要素に張力をかける方法であって、
無端駆動要素とリターン・プーリをレール内に配置する段階と、
前記リターン・プーリのまわりで前記無端駆動要素を操作する段階と、
前記リターン・プーリを前記プーリ支持部材に挿入する段階と、
前記リターン・プーリ上の中央開口を、前記プーリ支持部材上の対応する開口と位置合わせする段階と、
前記中央開口を前記レールの上壁の開口と位置合わせし、ピンを前記上壁開口から前記リターン・プーリ開口に差し込んで、前記リターン・プーリを前記プーリ支持部材に固定する段階とを含む方法。
【請求項９】
バリア・オペレータ・システムであって、
駆動スプロケットとリターン・プーリとを収容するチャネルを有するレールと、
駆動スプロケットとリターン・プーリのまわりで操作される駆動要素と、
前記チャネル内に配置されたテンション・システムであって、前記ブラケットに対するリターン・プーリの位置を調整して、前記駆動要素の張力を増減するために、前記レールの端に配置されたブラケットと、前記ブラケットに結合された調整スクリューとを有するテンション・システムとを備え、
前記レールが、上壁と側壁を備え、前記上壁が、前記プーリ内に挿入するピンを受ける開口を有し、前記側壁が、前記テンション・システムにアクセスする開口を有する、バリア・オペレータ・システム。
【請求項１０】
操作されたときに、モータを制御して、バリアを開位置と閉位置の間で移動させるためのバリア・オペレータ・システムであって、
前記バリアを移動させるために前記モータの動作を制御する主な役割を有する第１のマイクロコントローラと、
副マイクロコントローラとを有し、
前記第１と第２のマイクロコントローラが、定期的相互通信を行うために動作的に接続され、係る通信の結果に応じた前記モータの動作が、係るマイクロコントローラのどちらにも障害又は他のオペレータ衰弱がないことを確認する、バリア・オペレータ・システム。
【請求項１１】
モータを制御してバリアを開位置と閉位置の間で移動させるためのバリア・オペレータ・システムであって、
様々な暗号化方法又はプロトコルの暗号化コマンドを送信することができる遠隔制御トランスミッタ装置と、
前記様々な暗号化方法又はプロトコルの暗号化コマンドを復号化し、それにより、係るコマンドに応じて前記モータを動作させるように構成されたマイクロコントローラとを備えた、バリア・オペレータ・システム。
【請求項１２】
周波数応答バリア・オペレータ・システムであって、
バリアの移動を制御するためのバリア・オペレータと、
前記バリア・オペレータから離れており、前記バリア・オペレータと動作的に通信する壁コンソールであって、前記バリア・オペレータに様々なコマンドをそれぞれ送信するための複数のユーザ操作制御部を有し、前記制御部の動作が、様々なコマンドにそれぞれ対応する異なる周波数のパルスを生成する壁コンソールと、
前記パルスを受け取り、前記それぞれ異なる周波数に応じて異なる動作を行うように動作的に接続されたコントローラ・ユニットとを備えた周波数応答バリア・オペレータ・システム。
【請求項１３】
性能プロファイル自動バリア・オペレータ・システムであって、
前記駆動の少なくとも１つのタイプを示す構成情報と、ユーザ選択可能なモータ速度の少なくとも２つのモータ速度プロファイルとを記憶する永久コンピュータ可読媒体と、
前記永久コンピュータ可読媒体から前記構成情報を取り出し、前記構成情報に少なくとも部分的に基づいて前記モータ速度プロファイルのうちの１つを選択し、モータを動作させる際に前記モータ速度プロファイルのうちの前記選択された１つからの速度を使用して可動バリアを移動させるように動作的に接続されたマイクロコントローラとを備えた、性能プロファイル自動化バリア・オペレータ・システム。
【請求項１４】
熱的に保護されたバリア・オペレータ・システムであって、
（１）バリアを移動させるためにモータの動作を制御し、
（２）前記モータに供給される電流を監視することによって、前記バリアが遭遇したフォースの計算を行ない、
（３）前記モータの熱的状態を、
（ａ）熱負荷値を、
（ｉ）前記モータの時間の経過による動作と、
（ｉｉ）前記バリアが遭遇したフォースの計算とに応じて定期的に増分し、
（ｂ）時間の経過により前記モータが動作していないときに前記熱負荷値を定期的に減分することによって予測し、
（４）前記熱負荷値が所定のしきい値を超えたときに前記モータの動作を抑制するように動作するマイクロコントローラを備えた熱的に保護されたバリア・オペレータ・システム。
【請求項１５】
フォース・プロファイリング・バリア・オペレータ・システムであって、
（ａ）光学ホイールを有し可動バリアを駆動する駆動部に接続されたモータを制御し、
（ｂ）前記光学ホイールを使用して前記可動バリアの位置を追跡し、
（ｃ）前記モータに供給される電流、又は前記光学ホイールを利用して検出された前記可動バリアの速度の少なくとも一方によって、前記可動バリアが遭遇するフォースを測定し、
（ｄ）学習モードの動作において、前記可動バリアをその移動限度間で移動させ、同時に、前記測定したフォース値を、複数のバリア位置に関してバリア位置で記録することによってフォース・プロファイルを生成し、
（ｅ）前記測定したフォース値からのオフセットを利用してフォース感度しきい値限度を計算し、
（ｆ）通常モードの動作において、前記フォース感度しきい値限度を利用して、前記可動バリアの停止又は逆転の少なくとも一方を動作させるマイクロコントローラを備えた、フォース・プロファイリング・バリア・オペレータ・システム。
【請求項１６】
バリア・オペレータ・システムと共に使用するための暗号化伝送システムであって、
トランスミッタと、
前記トランスミッタを利用してコード・ワードを送信するように接続されたプロセッサとを備え、前記プロセッサが、
（ａ）機能コードと同期カウンタとから第１のシードを形成し、前記同期カウンタの長さが１６ビットより大きく
（ｂ）前記第１のシードと暗号鍵をコード・ホッピング暗号化プロセスに対する入力として利用して第１のホッピング・コードを生成し、
（ｃ）前記第１のホッピング・コードの少なくとも一部分から第２のシードを形成し、
（ｄ）前記第２のシードと復号化鍵をコード・ホッピング復号化プロセスに対する入力として利用して第２のホッピング・コードを取得し、
（ｅ）前記バリア・オペレータ・システムの構成要素のシリアル番号と前記第２のホッピング・コードからコード・ワードを生成するように動作する暗号化伝送システム。
【請求項１７】
バリア・オペレータ・システムであって、
前記無線アダプタに接続するように構成された外部通信ポートを有するヘッド・ユニットと、
前記ヘッド・ユニット内にあり、前記通信ポートに接続された汎用非同期レシーバ／トランスミッタ（ＵＡＲＴ）インタフェースと、
前記ヘッド・ユニット内に配置され、
（ａ）前記通信ポートに対する前記アダプタの接続を検出し、
（ｂ）前記ＵＡＲＴインタフェースを利用して前記アダプタと通信し、それにより前記マイクロコントローラが本来通信できない１台又は複数の付属装置と無線通信するように動作的に接続されたマイクロコントローラとを備えた、バリア・オペレータ・システム。
【請求項１８】
バリア・オペレータ・システムであって、
駆動スプロケットとリターン・プーリと収容するチャネルを有するレールと、
駆動スプロケットとリターン・プーリのまわりで操作される駆動要素と、
前記チャネル内に配置されたテンション・システムであって、前記レールの端に配置されたブラケットと、前記ブラケットに対するリターン・プーリの位置を調整して前記駆動要素の張力を増減させるために前記ブラケットに結合された調整スクリューとを有するテンション・システムとを備え、
前記レールが、上壁と側壁を有し、前記上壁が、前記プーリに挿入するためのピンを受ける開口を有し、前記側壁が、前記テンション・システムにアクセスする開口を有する、バリア・オペレータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１１年５月２４日に出願された米国仮出願番号第６１／５１９，５７９号からの優先権を請求し、この出願は、参照によりその全体が本明細書に組み込まれる。
【０００２】
本発明は、一般に、ガレージ・ドア、ゲート及び他のバリアを開閉するための遠隔制御式バリア・オペレータ・システムに関し、詳細には、ガレージ・ドア設備で使用されるバリア・オペレータ・システム用の新規かつ改善された機械的駆動サブシステム、電子制御、及び動作方法に関する。
【背景技術】
【０００３】
上方作動式セクション又は単一パネル・ガレージ・ドア、ロールアップ・ドア、ゲート及びその他のタイプのモータ作動式バリアなどの動きを制御するシステムは、必要な制御を実現するために遠隔制御式バリア・オペレータを利用する。バリア・オペレータの遠隔制御は、典型的には、バリア・オペレータとの有線又は無線通信で、建物内又は建物外に取り付けられたコンソールのユーザ操作、並びにバリア移動コマンド（典型的には暗号化されたアクセス・コード）をバリア・オペレータに送信する遠くに配置された手持ち式又は車両取付け式無線トランスミッタによって提供される。バリア・オペレータと関連付けられたマイクロプロセッサ又はマイクロコントローラ式コントローラ・ユニットは、そのような暗号化コマンドを受け取り復号化し、それに基づいて、関連モータに指示して、送信されたコマンドにしたがってそれぞれバリアを開き、閉じ、その移動を停止し、又は違う風に移動される。
【０００４】
無線送信は、典型的には、無線周波数（ＲＦ）送信されたデータ・パケットの形であり、送信後、データ・パケットは、バリア・オペレータと関連付けられた適切に調整されたＲＦレシーバによって受け取られ、そこでバリア・オペレータ・コントローラによって復号化され処理される。現在産業で使用されている典型的なＲＦ通信プロトコルは、「ローリング・コード」と呼ばれることがあるアクセス・コードのコード・ホッピング暗号化を利用して、許可されていない者がアクセス・コードを取得してバリア・オペレータを制御するのを防いでいる。
【０００５】
指示された操作によってガレージ・ドアや他のバリアを動かすために、種々の駆動アセンブリが使用される。例えば、ガレージ・ドア設備では、典型的に、交流又は直流モータが、結合されたスクリュー、ベルト又はチェーンを往復駆動し、これに応じて、ガレージ・ドアと相互連結されたキャリッジを、建物に取り付けられたレールに沿って前後に移動させ、それによりドアがそれぞれ指示された方向に移動される。バリア・オペレータは、モータ・シャフトをある方向又は他の方向に回転させて、これにより、ドアが、駆動アセンブリによって、１対の対向配置された湾曲トラックに沿って、完全垂直（閉）位置と完全水平（開）位置との間で移動される。大きな圧縮ばねが、関連プーリ及びドアに接続された操作ケーブルと共に、ドアの開閉動作を支援する。
【０００６】
また、当業者には、キャリッジの開放移動限度と閉鎖移動限度を電子的に設定し、フォース検出限度を電子的に確立するための様々な技術が知られている。フォース検出限度の電子的設定は、障害物の徴候がある前にドアがその経路に沿って移動するときに受ける可能性のあるフォースの上限を決定する。そのような限度を超えると、典型的には、そのときの目下のドアの移動方向によってそれぞれ、モータ（及び、したがってドア移動）が停止するか、又は停止し反転することになる。
【０００７】
過去において、このようなバリア・オペレータ・システムの設計と動作が高度化されてきたが、このシステムは、サービスの全ての状態にとって完全に満足なものではない。したがって、本明細書で述べる発明の主な目的は、特に新規で改善された機械的駆動サブシステム並びにその電子回路及びそのソフトウェア制御の分野における既存のバリア・オペレータ・システムにそのような改善及び追加を提供して、得られるシステムの動作特性を改善することである。
【発明の概要】
【課題を解決するための手段】
【０００８】
例えば、本発明のバリア・システムの機械的駆動サブシステムに対する有効な改良には、特に、キャリッジが移動する独自にセグメント化された自動ロック・レール、改良されたレール取付け、修正された駆動スクリュー支持体、ベルト及びチェーン駆動のより効率的なテンショニング、駆動アセンブリのキャリッジ及び駆動アセンブリの他の構成要素とその相互作用の新規の改良された再設計が含まれる。
【０００９】
バリア・オペレータ・システム全体にわたる電子回路及びソフトウェア制御に対する著しい改良を行った。例えば、ガレージの内部の遠隔位置決めされた壁コンソールが、バリア・オペレータの様々な操作をそれぞれ開始するための複数のボタン又は他のユーザ作動制御機構を有し、それぞれの操作は、それぞれ異なる周波数の信号によって区別される。更に、無線伝送は、携帯型又は車両取付け式トランスミッタからのものか壁取り付け式コンソールからのものかにかかわらず、独自で様々な暗号化プロトコル又は方法を使用するが、同じバリア・オペレータによって独自に処理することができる。また、バリア・オペレータ・コントローラは、他方で相互安全確認として働き、またそれぞれ割り当てられた異なる機能に専念する複数のマイクロプロセッサを備える。
【００１０】
本発明のバリア・オペレータ・システムにおけるフォース検出限度の確立は、階段形状の増大値のオフセットを使用して固有のフォース感度しきい値プロファイルを作成することにより実行される。これらのプロファイルは、オペレータの「学習」モードで、またドアが「開放」位置と「閉鎖」位置との間で移動されるときに生成される。ユーザが、限られた範囲内で、フォース感度しきい値レベルを増減する準備がされる。次に、フォース感度しきい値プロファイルをバリア・オペレータの「オペレート」モードで使用して障害物を検出する。
【００１１】
直流モータを利用するバリア・オペレータ・システム・バージョンの場合、直流モータの熱的保護は、熱センサの使用なしに、モータ負荷とモータの運転時間を含む複数の因子の関数としてモータ温度を関連付ける独特のアルゴリズムを使用して行なわれる。また、「良好」、「より良好」、および「最良」速度プロファイルのユーザ選択を可能にする新規な構成も提供される。
【図面の簡単な説明】
【００１２】
本発明の追加の特徴、並びにそのより詳細、及び本発明の改良されたバリア・オペレータ・システム全体は、添付図面と共に以下の詳細な説明を検討することにより容易に明らかになる。
【００１３】
【図１】ガレージ・ドアを移動させるバリア・オペレータ・システムの主構成要素を示すガレージ・ドア設備の広範囲の斜視図である。
【図２ａ−１】図１に示されたバリア・オペレータ機械的駆動サブシステムの分解図であり、レール・アセンブリと駆動アセンブリ・チェーン駆動が、有利に使用され、本発明の原理をしたがって構成される。
【図２ａ−２】図１に示されたバリア・オペレータ機械的駆動サブシステムの分解図であり、レール・アセンブリと駆動アセンブリ・チェーン駆動が、有利に使用され、本発明の原理をしたがって構成される。
【図２ａ−３】図１に示されたバリア・オペレータ機械的駆動サブシステムの分解図であり、レール・アセンブリと駆動アセンブリ・チェーン駆動が、有利に使用され、本発明の原理をしたがって構成される。
【図３ａ】図２ａ−１〜図２ａ−３に描かれたレール・アセンブリ内に配置された、本発明の原理により構成された駆動取付け及びリターン・プーリの下側の説明図である。
【図３ｂ】図２ａ−１〜図２ａ−３に描かれたレール・アセンブリ内に配置された、本発明の原理により構成された駆動取付け及びリターン・プーリの下側の説明図である。
【図３ｃ】図２ａ−１〜図２ａ−３に描かれたレール・アセンブリ内に配置された、本発明の原理により構成された駆動取付け及びリターン・プーリの下側の説明図である。
【図３ｄ】図２ａ−１〜図２ａ−３に描かれたレール・アセンブリ内に配置された、本発明の原理により構成された駆動取付け及びリターン・プーリの下側の説明図である。
【図４ａ】本発明の原理により構成された図１のバリア・オペレータ駆動アセンブリのテンション・システムの説明図である。
【図４ｂ】本発明の原理により構成された図１のバリア・オペレータ駆動アセンブリのテンション・システムの説明図である。
【図５】本発明の原理により構成された図１に示されたキャリッジ・アセンブリの説明図である。
【図６】図５のキャリッジ・アセンブリに入る自己整合バレットの説明図である。
【図７ａ】図６に示された自動整合バレットのそれぞれ異なる部分の説明図である。
【図７ｂ】図６に示された自動整合バレットのそれぞれ異なる部分の説明図である。
【図７ｃ】図６に示された自動整合バレットのそれぞれ異なる部分の説明図である。
【図７ｄ】図６に示された自動整合バレットのそれぞれ異なる部分の説明図である。
【図８ａ】図１に示され、本発明の原理により構成されたレール・アセンブリ用のコネクタ部材の説明図である。
【図８ｂ】図１に示され、本発明の原理により構成されたレール・アセンブリ用のコネクタ部材の説明図である。
【図８ｃ】図１に示されたバリア・オペレータ駆動サブシステムのレール・アセンブリに拡張部材を結合するための結合器部材の説明図である。
【図９ａ】図１に示されたバリア・オペレータ駆動アセンブリのレールの一部分の説明図であり、スクリュー駆動が、有利に使用され、本発明の原理により構成されている。
【図９ｂ】図１に示されたバリア・オペレータ駆動アセンブリのレールの一部分の説明図であり、スクリュー駆動が、有利に使用され、本発明の原理により構成されている。
【図１０】本発明の原理による、図１に示されたバリア・オペレータ・システムのコントローラ・ユニットの好ましい実施形態の概略ブロック図である。
【図１１】図１０のコントローラ・ユニットの主マイクロコントローラの動作方法のソフトウェア流れ図である。
【図１２】図１０のコントローラ・ユニットの副マイクロコントローラの動作方法のソフトウェア流れ図であり、主ループとＫＥＥＬＯＱ（登録商標）を示す。
【図１３】図１０のコントローラ・ユニットの副マイクロコントローラによって実行される初期化方法を説明する流れ図である。
【図１４ａ】図１０のコントローラ・ユニットの副マイクロコントローラによって実行される主同期プロセスを説明する流れ図である。
【図１４ｂ】図１０のコントローラ・ユニットの副マイクロコントローラによって実行される主同期プロセスを説明する流れ図である。
【図１５】図１０のコントローラ・ユニットの副マイクロコントローラによって実行される拡張バス・リンク・タスクを説明する流れ図である。
【図１６ａ】図１０のコントローラ・ユニットの副マイクロコントローラによって実行される拡張バス・リクエスト処理プロセスを説明する流れ図である。
【図１６ｂ】図１０のコントローラ・ユニットの副マイクロコントローラによって実行される拡張バス・リクエスト処理プロセスを説明する流れ図である。
【図１７ａ】図１０のコントローラ・ユニットの副マイクロコントローラによって実行されるモータ安全タスクを説明する流れ図である。
【図１７ｂ】図１０のコントローラ・ユニットの副マイクロコントローラによって実行されるモータ安全タスクを説明する流れ図である。
【図１８】図１０のコントローラ・ユニットの副マイクロコントローラによって実行されるＲＯＭとＲＡＭ検証プロセスを説明する流れ図である。
【図１９ａ】図１０のコントローラ・ユニットの副マイクロコントローラによって実行されるオペレータ・ユーザ・インタフェース・タスクを説明する流れ図である。
【図１９ｂ】図１０のコントローラ・ユニットの副マイクロコントローラによって実行されるオペレータ・ユーザ・インタフェース・タスクを説明する流れ図である。
【図２０】図１０のコントローラ・ユニットの副マイクロコントローラによって実行される限度設定手順を説明する流れ図である。
【図２１】図１０のコントローラ・ユニットの副マイクロコントローラによって実行される光／警告タスクを説明する流れ図である。
【図２２】図１のバリア・オペレータ・システムによって制御されるバリアの位置を追跡するために利用される光学ホイールの斜視図である。
【図２３】図１のバリア・オペレータ・システムにおいて使用されるバリア移動限度のグラフ表現である。
【図２４】図１のバリア・オペレータ・システムにおいて使用されるフォース検出限度プロファイルのグラフ表現である。
【図２５】図１の遠隔制御式バリア・オペレータ・システムにおいて使用される新規の暗号化方法を説明する流れ図である。  以下の詳細な説明では、明細書及び図面全体にわたって類似の要素は同じ参照数字で示される。作図は、必ずしも一定倍率ではなく、特定の要素は、明瞭さと簡潔さのために一般化された形状又は概略形状で示される。本明細書に記載された開示の実施形態が、本発明の原理を単に例証するものであることを理解されたい。
【発明を実施するための形態】
【００１４】
最初に図１を参照すると、バリア（この例では、上方作動式セクション・ガレージ・ドア１０）を移動させるためのバリア・オペレータ・システム１を含むガレージ・ドア設備が説明される。ドアは、対向した組のガイド・トラック１４及び１６に沿って、壁１２の開口部を覆う最下閉位置（図示）と、ドア１０が床１８と平行になる最上開位置との間で移動可能である。その閉位置で、ドア１０は、典型的には、床１８と密封係合するか、少なくともそのような面のすぐ近くにある。バリア・オペレータ２０は、ハウジング又はヘッド・ユニット２６内に配置され、（ｉ）無線送信装置を収容するアンテナ及びＲＦレシーバ・ユニット（図示せず）と、（ｉｉ）他の機能の中でも特に、受信する有線及び無線送信ドア・コマンドを処理し、そのようなコマンドに対応するモータ制御信号を直流又は交流モータ２８に生成するマイクロコントローラ式コントローラ・ユニット３０とを含む。後でより詳しく述べるように、本発明の特徴によれば、コントローラ・ユニット３０は、それぞれのソフトウェア制御下で複数のマイクロコントローラを含むことが好ましい。
【００１５】
特に暗号化されたＲＦ伝送が、手持ち式（又は、車両取り付け式）トランスミッタ５３から出てバリア・オペレータ２０にドア・コマンドを提供する。コマンドは、また、内壁取り付けコンソール３２及び／又は外壁取り付けキーレス・エントリ・コンソール（図示せず）から送信されてもよい。バリア・オペレータ２０は、例えば、２０００年９月１２日にＲｅｅｄらに発行され本発明の譲受人に譲渡された米国特許第６，１１８，２４３号に記載されたものと類似してもよく、全ての目的のために参照により本明細書に組み込まれるが、以下に述べる追加、修正及び特徴を有する。
【００１６】
バリア・オペレータ・システム１は、更に、機械的駆動サブシステム２を含み、その新規な詳細が以下に記載され、一般に、その主構成要素として、（ｉ）一端８６が壁１２に接続され他端７６がバリア・オペレータ・ヘッド・ユニット又はハウジング２６に接続された細長いビーム又はレール・アセンブリ２２と、（ｉｉ）レール・アセンブリ２２によって支持され、往復駆動ベルト若しくはチェーン又は回転駆動スクリュー駆動でよい駆動アセンブリ５と、（ｉｉｉ）駆動アセンブリ５に動作可能に接続されたキャリッジ５０とを有する。キャリッジ５０は、アーム２４と切り離し可能に係合でき、アーム２４は、ドア１０にしっかりと接続される。したがって、モータ２８は、バリア・オペレータ２０の制御下で、ベルト、チェーン、回転式スクリューをある方向又は他の方向に駆動し、その結果、キャリッジ５０を移動させてドア１０をそれぞれ上昇（開）又は下降（閉）させる。圧縮ばねと操作ケーブル・アセンブリ（図示せず）は、当業者に周知の方式で、ドアと接続されてガレージ・ドアの開閉を支援する。
【００１７】
壁コンソール３２は、内部側壁３４のうちの１つの側壁上に支持され、バリア・オペレータ２０との通信を可能にして、ユーザが出した指示をコントローラ３０に提供する。これらの指示は、例えばドア移動コマンド、作業用照明指示、及び休止ロック・モード（施錠又は解除）をそれぞれ表わす信号通信をバリア・オペレータ２０に対して開始する、コンソール上の様々なボタンの押下げによって開始される。この動作の更なる詳細は、後で述べられる。コンソール３２からの信号通信は、図示したような配線導体手段３６によって、あるいは無線通信によってバリア・オペレータに送られる。同様に、キーレス・エントリ・コンソール（図示せず）が、バリア・オペレータ２０と有線又は無線で通信し、同様にコントローラ３０にユーザが行う指示を可能にする。
【００１８】
図１に示されたバリア・オペレータ・システム１は、閉じているときにドア１０が遭遇する可能性のある障害物に対する反応を検出し達成するために、当業者に周知の１つ又は複数のタイプの外部捕捉装置を有してもよい。第１のタイプのそのような装置は、ドア１０の下縁に取り付けられ、出入口の障害物と接触したときに、コントローラ３０に信号を送ってドアの下降運動を停止し、典型的にはその後で開位置に戻すように動作可能な細長いセンサ・ストリップ３８として開示される。第２のタイプの外部捕捉装置は、出入口開口部の一方の側に配置された光ビーム・トランスミッタ４０（典型的には赤外線型）と、そのような開口部の反対側に配置されトランスミッタ４０からのビーム４６を受け取るように位置決めされたレシーバ４２とを備える光学アセンブリ３９でよい。このアセンブリは、しばしば安全ビーム又はＳＴＢと呼ばれ、出入口の障害物がビーム４６を中断したときにコントローラ３０に信号を送ってドアの下降運動を停止させるように動作可能であり、図１０では要素１０３０として示されている。これらの外部捕捉装置のいずれか又は両方が、障害物の接触によるモータ動作特性の変化（例えば、トルク増大）の検出に基づく内部捕捉手法と共に使用されてもよく、これらの詳細は後述する。
【００１９】
バリア・オペレータ機械的駆動サブシステム
図２ａ−１〜図９ｂを参照して、次に、本発明の原理により構成され動作するバリア・オペレータ機械的駆動サブシステム２の新規の改良された好ましい実施形態について述べる。したがって、細長いレール・アセンブリ２２は、ベルト又はチェーン駆動アセンブリ５（例示のため、図２ａ−１〜図５の最初の図ではチェーン駆動６６として示されている）を収容するように構成される。具体的には、また図２ａ−１で分かるように、細長いレール・アセンブリ２２は、上壁５４、１対の側壁５６及び５８、上壁５４と反対側の延在する壁部分６０、及び駆動機構５を収容するように形成されたチャネル６２を有する。壁部分６０は、レール・アセンブリ２２の長さに沿って配置されてバリア・オペレータ駆動アセンブリ５の挿入とアクセスを可能にし、またアーム２４（図１）がレール２２内を通ってドア１０に接続することを可能にする開口部を形成する縦スロット６４を画定する。
【００２０】
具体的には図２ａ−１〜図２ａ−３を参照すると、バリア・オペレータ駆動システム２は、更に、キャリッジ５０、駆動スプロケット７０、リターン・プーリ７２、及びバレット部材６８（図２ａ−２と図７ａ−７ｄ）を介して接続された端６６ａ及び６６ｂを有する無端駆動チェーン６６を有し、無端駆動チェーン６６を一端で駆動スプロケット７０のまわりで折り返しかつ／又は違った風に駆動し、他端でリターン・プーリ７２のまわりで折り返しかつ／又は違った風に操作することを可能にする。動作において、また後で詳細に述べるように、モータ２８は、スプロケット７０を回転させ、スプロケット７０は、キャリッジ５０を動かし、したがってドア１０を動かす。前述したように、駆動アセンブリ５は、図２ａ−１〜図２ａ−３では無端チェーン６６として示されているが、無端駆動として他の要素（例えば、ベルト）を含んでもよいことを理解されたい。
【００２１】
図２ａ−１、図３ａ及び図３ｂを参照すると、駆動取付け部材７４が、駆動スプロケット７０を回転可能に支持するようにチャネル６２内のレール端７６に取り付けられて示されている。駆動スプロケット７０は、モータ２８（図１）からの出力駆動シャフト（図示せず）を収容するように形成された中心穴８０を有し、それにより、出力駆動シャフトの回転によって、チェーン６６を相互並進させるために駆動スプロケット７０が回転する。好ましくは、ドライブ取付け部材７４は、ボルト７４ａ（図３ｂ）によってチャネル６２内に固定され、ボルト７４ａは、レール上壁５４を貫通して、ドライブ取り付け部材７４上に配置された対応する開口（図示せず）に通る。
【００２２】
図３ａ〜図３ｄに示された実施形態では、バレット止め部７８は、取付け部７４が一体形成されており、チェーン駆動要素６６が嵌ることができる十分な大きさでかつバレット６８が入るのを防ぐ十分な小ささのスロット７８ａを有する（図３ａと図３ｂ）。同様に、止め部７９は、レール２２（図３ｃ）に結合され、リターン・プーリ７２の隣りに配置され、無端チェーン駆動６６が嵌ることができる十分な大きさでかつバレット６８が入るのを防ぐ十分な小ささのスロット７９ｂを有する。止め部７９は、チャネル６２内に配置され、１対のスクリューによって側壁５６及び５８に固定されることが好ましい（スクリュー２２ｃを示す図８ｃを参照）。詳細には、各スクリューは、それぞれの側壁５６及び５８上の開口を介して、止め部７９の各側のそれぞれの開口７９ｃ（図３ｃ）に差し込まれて、止め部７９の細長いレール２２に対する動きを防ぐ。したがって、バレット６８が、チャネル６２内で移動するとき、止め部材７８及び７９は、キャリッジ５０及び／又はバレット６８の過度の移動（即ち、スプロケット７０及び／又はリターン・プーリ７２への衝突）を防ぎ、したがってバリア・オペレータ駆動アセンブリの一部分を破損させる可能性を回避する働きをする。
【００２３】
具体的には図３ｂと図３ｄを参照すると、駆動取付け部７４は、駆動スプロケット７０の外径がレール・タブ８２の近くに配置されるようにチャネル６２内に配置される。レール・タブ８２は、駆動スプロケット７０から、無端チェーン駆動６６の厚さより僅かに大きい距離だけ離間されて、チェーン６６の邪魔されない動きを可能にし、同時に駆動要素６６の張力がなくなった場合にチェーン６６が駆動スプロケット７０から離れるのを防ぐ。
【００２４】
図３ｂと図３ｄに示されたように、レール・タブ８２が、レール開口５４ａから挿入され、また両目的ブラケット部材８３から延在し、両目的ブラケット部材８３はレール・アセンブリ２２をオペレータ・ハウジング又はヘッド２６に固定するために使用される（図３ｂで最もよく分かるように）。図３ｂに示された実施形態では、両目的ブラケット部材８３は、レール・アセンブリ２２を覆い、オペレータ・ハウジング又はヘッド２６に直接取り付けられるように構成される。あるいは、レール・タブ８２は、タブ８２が上壁５４からチャネル６２内に垂直に延在するようにレール２２と一体形成されてもよい。
【００２５】
次に図４ａと図４ｂを参照すると、無端駆動要素６６が、駆動スプロケット７０とリターン・プーリ７２のまわりで操作されるときに無端駆動要素６６の張力を調整するテンション・システム８４が示される。テンション・システム８４は、チャネル６２内に配置され、スロット６４からアクセス可能である。更に、レール側壁５６に配置された開口６３は、駆動要素６６とリターン・プーリ７２へのアクセスを可能にする。開口６３が、駆動要素６６及びリターン・プーリ７２へのアクセスを容易にし、その取り付けと保守を容易にするのに適した任意の長さでよいことを理解されたい。示された実施形態では、テンション・システム８４は、レール端８６でレール側壁５６及び５８を収容し他の方法で係合するようにサイズが決められたフック９０及び９２を備えたエンド・ブラケット８８を有する。図４ｂに詳細に示されたように、エンド・ブラケット８８は、ベース部分９４と、フック９０及び９２が側壁５６及び５８を収容するようにベース部材９４から斜めに延在する脚９６及び９８とを有する概略「Ｖ」形状である。図４ａで最もよく分かるように、エンド・ブラケット８８は、エンド・ブラケット８８とレール２２との間の矢印９５で示された方向の相対上下運動を防ぐために、レール２２の高さにほぼ一致する高さ「Ｈ」を有するようにサイズが決められる。
【００２６】
図４ａと図４ｂを引き続き参照すると、無端駆動要素６６の張力が、テンション・スクリュー１０２によって調整され、テンション・スクリュー１０２が、プーリ支持部材１０４と、したがってリターン・プーリ７２をベース部材９４に固定する。テンション・スクリュー１０２は、支持部材１０４からベース部材９４内に延在し、スペーサ／緩衝材１０６、ワッシャ１０８及びナット１１０を受けてプーリ支持体１０４をエンド・ブラケット８８に調整可能に固定するのに十分な長さである。詳細には、テンション・スクリュー１０２は、ヘッド１１４を有する第１端１１２と、ボルト１１０とスクリュー式に係合するように構成されたねじが切られた第２端１１６とを有する。図４ａと図４ｂに示されたように、スペーサ１０６とワッシャ１０８は、スクリュー１０２上のベース部材９４とボルト１１０との間に配置される。チェーン駆動６６の張力を調整するとき、ボルト１１０は、ねじ切り端１１６に沿って移動するように回転して、ベース部材９４とプーリ支持体１０４との間の距離を増減することができる。例えば、チェーン６６の張力を高めるとき、ベース部材９４とプーリ支持体１０４との間の距離「Ｄ」（図４ａ）を小さくするようにボルト１１０をスクリュー１０２に沿って位置決めする。同様に、駆動要素６６の張力を小さくするとき、ベース部材９４とプーリ支持体１０４との間の距離「Ｄ」を大きくするように、ボルト１１０をスクリュー１０２に沿って逆方向に回転可能に位置決めする。
【００２７】
図２ａ〜図３、図４ａ及び図４ｂを参照すると、テンション・システム８４を取り付けるとき、リターン・プーリ７２は、無端駆動要素６６をまわりで操作できるようにチャネル６２内に挿入される。リターン・プーリ７２は、プーリ支持部材１０４内に取り付けられ、これらは両方とも、リターン・プーリ７２と支持部材１０４のそれぞれの中心穴が、上壁５４に形成されたサービス開口５４ａと位置合わせされるように、位置合わせされる。開口５４ａは、ピン７３を受けてプーリ７２を支持部材１０４上に固定するようにサイズが決められる。挿入された後、プーリ支持部材１０４は、矢印７５の方向に引っ張られて、無端駆動要素６６の張力が高められる。エンド・ブラケット８８は、前述のように、テンション・システム８４の張力を調整するために、ベース部分９４にテンション・スクリュー１０２を挿入できるようにレール２２の端に配置される。
【００２８】
ドア１０を開位置と閉位置の間で移動させるため、駆動モータ２８は、無端チェーン駆動６６を移動させるように動作可能であり、無端チェーン駆動６６は、キャリッジ５０を第１の端７６と第２の端８６との間に位置決めする。図５と図６を参照すると、キャリッジ５０は、好ましくは上側部材１１８ａと下側部材１１８ｂからなり、アーム２４の端部を旋回可能に収容するように形成されたスロット１２０を備えた本体部分１１８を有し、アーム２４は、アーム２４の反対端がドア１０に旋回可能に接続される（図１）。本体部分１１８は、前面１２２、後面１２４、１対の側面１２６及び１２８、並びに上面１３０と下面１３２を有し、これらは全て、本体１１８がチャネル６２内で摺動可能に配置されるようにサイズが決められる。本体１１８は、前面１２２と後面１２４との間に延在する縦スロット１３４及び１３６を有し、これらは両方とも、バレット６８（及び、したがって駆動チェーン６６）がスロット１３４及び／又は１３６内で移動できるように、バレット６８の直径より僅かに大きくサイズが決められた断面積を有する。後で更に詳細に説明されるように、キャリッジ５０は、キャリッジ５０内にバレット６８を固定するために、引張用ひも１５３（図５）にかかる引張り力に応じてロック位置とロック解除位置との間で位置決め可能なロック機構１５２（図６）を有する。この位置で、バレット６８が駆動要素６６によって移動されるとき、キャリッジ５０は、バレット６８と共に移動する。
【００２９】
特に図６及び図７ａ〜図７ｄを参照すると、バレット６８は、縦スロット１３４及び１３６の断面積とほぼ一致する丸形断面で形成される。バレット６８は、駆動チェーン６６のそれぞれの端６６ａ及び６６ｂを挟むように結合された第１と第２の部分６８ａ及び６８ｂを有する（図２ａ−２）。特に図７ａと図７ｂを参照すると、部分６８ａ及び６８ｂは、無端駆動要素６６のそれぞれの端６６ａ及び６６ｂを収容し固定するための係合溝又は凹部１３８を有する（図２ａ−２）。部分６８ｂは、バレット６８を組み立てるとき部分６８ａ及び６８ｂの位置合わせを容易にするために、部分６８ａ上の拡張部１４２を協力的に収容する凹部１４０を有する。部分６８ａ及び６８ｂを結合するために、複数の留め具１４４（図７ｃ）が構成された。動作において、留め具１４４と、拡張部１４２と凹部１４０の協力的係合は、駆動要素６６の動きによって生じる縦方向のフォースに耐える役割をする。
【００３０】
具体的には図６、図７ｃ及び図７ｄを参照すると、バレット６８は、キャリッジ５０に入るバレット６８に応じて縦スロット１３４又は１３６と自己整合するように構成される。動作において、傾斜面１４６は全て、バレット６８から外方に突出する拡張部１４８と共に、バレットがキャリッジ５０に近づき入るときに、バレット６８を縦スロット１３４／１３６に対して軸方向と回転方向に位置合わせするように構成される。例えば、バレット６８が、縦スロット１３４／１３６に近づくとき、表面１４６は、キャリッジ５０の端面１２２と摺動可能に係合して、バレット６８の軸を縦スロット１３６の軸と共同軸方向に位置合わせする。バレット６８が、縦スロット１３６に入るとき、拡張部１４８は、端面１２２との接触により側壁スロット１３６ａと位置が合いその中に延在して、バレット６８上の凹部１５０が内方に位置決めされてロック・バー１５２を収容するように、バレット６８を適応させかつ／又は他の方法で回転させる。ロック・バー１５２は、凹部１５０内に配置されたとき、キャリッジ５０とバレット６８との間の相対運動を防いで、駆動モータ２８が回転したときに、駆動機構５が、バレット６８を移動させ、したがってキャリッジ５０を移動させる。
【００３１】
レール・アセンブリ２２は、単一連続部分として構成されてもよく、又は本発明の特徴によれば、一緒に固定される複数の細分化部分から構成されたアセンブリとして形成されてもよい。例えば、特に図８ａと図８ｂを参照すると、レール２２は、レール・アセンブリ２２を分解した嵩張らない形で保管されかつ／又は他の方法で出荷され、また現場で組み立て易いように、コネクタ部分１６０によって、後で更に詳しく説明されるように結合された２つの部分１５４及び１５６を有する。しかしながら、レール・アセンブリ２２が、２つの部分として示されているが、もっと多数の部分から構成されてもよいことを理解されたい。例えば、２つのコネクタ部分１６０によってそれぞれ結合された３つの部分で構成されてもよい。
【００３２】
前述のように、レール接続部分１６０を介したスナップ嵌め接続を使用することにより、ツールを使用せずに、細長いレール・セグメント１５４及び１５６を組み立てることができる。接続部分１６０は、部分１５４及び１５６を収容するチャネルを構成する上壁１６０ａ、スロット６４を有する下壁１６０ｂ、及び１対の側壁１６０ｃ及び１６０ｄを有する。例えば、特に図８ａと図８ｂを参照すると、各レール・コネクタ１６０は、レール係合タブ１６２を収容し、レール係合タブ１６２は、レール部分１５４上の対応する開口１６４に嵌るように付勢される。細長いレール２２の部分１５４及び１５６を接続するとき、部分１５４及び１５６は、内方に付勢された係合タブ１６２が、部分１５４及び１５６の上のそれぞれの開口１６４内にスナップされるかその他の様式で配置されるまでレール接続部分１６０のそれぞれの端に挿入される。この位置にあるとき、コネクタ部分１６０が、部分１５４及び１５６の分離を防ぐ。細長いレール２２の部分１５４及び１５６を分解するとき、スロット６４を介した係合タブ１６２へのアクセスにより、フォースを係合タブ１６２に加えることができ、各対応する開口１６４から各タブ１６２を持ち上げて取り外すことができる。取り外された後、レール部分１５４及び１５６をレール・コネクタ１６０から分離することができる。
【００３３】
図８ａと図８ｂに示された実施形態は、レール部分１５４及び１５６を結合するための柔軟な係合タブ１６２を利用しているが、係合タブ１６２が、違うように構成されてもよいことを理解されたい。例えば、タブ１６２とそれぞれの開口１６４の代わりに、コネクタ部分１６０は、部材間の摩擦接触を維持するために、レール部分１５４及び／又は１５６上に配置された対応する凹部と係合可能な戻り止めを有してもよい。更に、レール部分１５４及び／又は１５６は、接続部分１６０を必要とせずに係合タブ１６２及び対応する開口１６４で構成されてもよいことを理解されたい。あるいは、部分１５４及び１５６は、摩擦嵌めにより結合されてもよい。
【００３４】
特に図８ｃを参照すると、細長いレール２２は、レール拡張部分２２ａを介して拡張されてもよく、レール拡張部分２２ａは、結合器部材２２ｂを介してレール２２に接続される。レール拡張部２２ａは、約１２インチの長さに延在し、レール端８６と接し、その結果、細長いレール２２の全長が、結合器部材２２ｂの長さだけ拡張されることが好ましい。レール拡張部２２ａを固定するとき、結合器部材２２ｂは、レール端８６の一部分を覆うように位置決めされる。レール拡張部２２ａは、結合器部材２２ｂの反対端の内側に挿入され、それにより、結合器部材２２ｂは、レール２２と拡張部２２ａとの間の相対的な並進運動（即ち、レール２２の縦軸方向以外の任意の方向の動き）に耐えることができる。レール拡張部２２ａが、位置決めされ、テンション・システム８４が、挿入されその中で適切に張力がかけられて、（前述の）無端駆動要素６６に適した張力が設定された後で、張力をかけられた駆動要素６６が、レール拡張部２２ａとレール２２との間の軸方向分離を防ぐ。拡張部２２ａとレール２２との間の軸方向分離に耐える追加の保護として、スクリュー２２ｃ（壁５６上のスクリュー２２ｃは示されていない）が、前述のようにチャネル６２内の止め部７９を固定するために利用され、結合器部材２２ｂ内に開口２２ｄに挿入されてもよい。したがって、スクリュー２２ｃは、（ｉ）システム上に拡張部２２ａとレール２２の間の軸方向分離を引き起こす可能性のあるフォースがある場合に、スクリュー２２ｃが構成要素間の分離を防ぎ、（ｉｉ）チャネル６２内の止め部７９を固定する２つの機能を行なうように動作可能である。
【００３５】
図９ａと図９ｂを参照すると、駆動アセンブリ５は、細長いレール・アセンブリ２２内に配置されたスクリュー駆動である。動作において、駆動モータ２８（図１）は、スクリュー部材２０２を回転させ、スクリュー部材２０２は、キャリッジ５０をチャネル６２内で移動させる．
図９ａで、スクリュー２０２は、スクリュー２０２を収容して支持するために中央スロット２０６を含む複数の離間されたスクリュー支持部材２０４によって、レール・アセンブリ２２内に支持される。
【００３６】
本明細書に開示された実施形態によれば、スクリュー支持部材２０４は、工具や他の締結機構を使用せずにチャネル６２内にしっかりと固定される。例えば、スクリュー支持体２０４は、レール・アセンブリ２２の上壁５４に形成された対応する開口部２１８及び２２０内に摩擦嵌合するようにサイズが決められた１対の拡張部２０８及び２１０を有する。詳細には、拡張部２０８及び２１０の上平坦部分２０８Ｕ及び２１０Ｕは、上面５４の上に位置決めされるように、開口２１２及び２１４と位置合わせされそこに挿入される。挿入後、スクリュー支持体２０４は、支持拡張部２０８及び２１０の下側支柱部分２０８Ｌ及び２１０Ｌ（即ち、拡張部２０８及び２１０の上平坦部分を支持体２０４の上に支持する支柱）が配置され、より小さい開口２１８及び２２０の側壁と摩擦係合するまで、矢印２１６の方向に回転される。この構成のとき、下側支柱部分２０８Ｌ及び２１０Ｌと、開口２１８及び２２０との摩擦係合と、開口２１８及び２２０よりも大きい上平坦部分２０８Ｕ及び２１０Ｕのサイズによって、レール２２に対する支持体２０４の相対運動が防止され、スクリュー２０２を収容するためにレール・アセンブリ２２の縦軸とスロット２０６の位置合わせが維持される。レール２２を分解するときは、スクリュー支持体２０４を逆に操作してチャネル６２から取り外す。
【００３７】
スクリュー支持部材２０４は、必要に応じて、スクリュー支持体２０４をレール２２から離して振動を減少させ、最終的に動作中の振動と振動に起因する音を最小にするためにスクリュー支持体２０４の上面２１１を覆うゴム緩衝材２３０を有する。好ましくは、ゴム緩衝材２３０は、軟質ゴムでオーバーモールドされ、軟質ゴムは、緩衝材２３０をレール２２から分離するのに十分な厚さのものである。緩衝材２３０は、スクリュー支持部材２０４をレール２２から分離するために上面２１１全体を覆うことが好ましい。
【００３８】
図１と図２ａ−１〜図２ａ−３に戻って参照すると、細長いレール・アセンブリ２２の上面５４は、必要に応じて、例えば、光学ビーム・トランスミッタ４０及びレシーバ４２と接続するために配線３６をバリア・オペレータ２０から壁１２の方に延ばしたい場合などに、上面５４から突出し配線を固定するためのクリップ５５を有する。各クリップ５５は、１つ又は複数の配線３６を収容する開口を形成するために、上方に突出したアーチ形のアーム５５ａ及び５５ｂと、そこから概略垂直方向に突出する片持ち部分５５ｃ及び５５ｄとを有する。
【００３９】
バリア・オペレータ・システム電子制御
複数のマイクロコントローラとそれぞれのソフトウェア制御
前述したように、コントローラ・ユニット３０は、バリア・オペレータ２０の種々の制御動作を実行するのに有効である。これらの動作は全て、単一のマイクロコントローラを使用して行なわれてもよいが、本発明の好都合な特徴によれば、複数のマイクロコントローラが、それぞれ割り当てられた機能を実行するために利用され、必要なソフトウェアが、マイクロコントローラ間に適切に分割され、各マイクロコントローラは、他方では、モータ２８が動作できるまで適切な状態を保証する安全確認としても働く。
【００４０】
したがって、最初に図１０を参照すると、コントローラ・ユニット３０の好ましい実施形態は、２つの別個のソフトウェア制御マイクロコントローラ１０００及び１００２を含み、これらは両方ともヘッド・ユニット２６内にある。この実施形態では、マイクロコントローラ１０００は、主マイクロコントローラであり、モータ２８の動作を制御する主な役割と、特定の安全機能（例えば、モータ２８の熱的保護）を有し、一方、マイクロコントローラ１００２は、副マイクロコントローラであり、レシーバ１０６６から入力された暗号化ＲＦデータの処理、作業ライト１０７０の制御、運動検出器１０６８の作動と停止、警報１０５８の作動（例えば、手持ち式トランスミッタ５３上の非常ボタンによって作動された）、並びに主マイクロコントローラ１０００に付随しないそのような追加の安全機能の実施など、他の割り当てられた機能を制御する主な役割を有する。更に、本発明の重要な特徴として、マイクロプロセッサ１０００及び１００２は、特にどちらかに傷害や他の動作衰弱がある場合にモータ動作を阻止する互いのウォッチドッグとして働く。
【００４１】
ヘッド・ユニット内の２個のマイクロプロセッサ間の通信は、主に、例えばＩ２Ｃ拡張バス１００４を利用して達成されてもよい。したがって、Ｉ２Ｃマスタ・モードで、主マイクロコントローラ１０００のマスター・スレーブ同期ポート（ＭＳＳＰ）１００６を使用して、主マイクロコントローラ１０００が副マイクロコントローラ１００２と通信することを可能にすることができる。同様に、ＭＳＳＰ１０４３を使用して、副マイクロコントローラ１００２が、Ｉ２Ｃ拡張バス１００４に沿って主マイクロコントローラ１０００と通信することを可能にすることができる。
【００４２】
更に、コントローラ・ユニット３０のハードウェアとソフトウェアは、主マイクロコントローラ１０００と副マイクロコントローラ１００２が両方とも、モータ２８が動作できるまでにオペレータ３０に故障や他の不都合なシステム状態がないことに「合意」しなければならないように設計される。この目的を達成するための１つの例示的な実施形態によれば、主及び副マイクロコントローラは、モータ・イネーブル回路１０１９への入力として接続されたそれぞれのモータ・イネーブル出力線１０１８ａ及び１０１８ｂを有する。モータ・イネーブル回路１０１９は、例えば、主電力継電器又は他の切換要素でよく、出力１０１８ａ及び１０１８ｂの両方にモータ・イネーブル回路１０１９への信号入力があるときだけモータ２８の動作を有効にする働きをする。この要件は、一方のマイクロコントローラが障害を検出した場合、例えば、モータ２８がドアを閉じるべきないときに主マイクロコントローラ１０００がドアを閉じ続けるようにロックアップしていると副マイクロコントローラが判定した場合など、副マイクロプロセッサは、そのモータ・イネーブル出力１０１８ｂを非活動化し、それによりモータ動作が停止するので、安全を可能にする。
【００４３】
この安全保護を実施するための代替実施形態を実現することができる。例えば、適切なソフトウェアの制御下で、主マイクロコントローラ１０００がドアを移動させるコマンド（例えば、遠隔トランスミッタ５３又は壁コンソール３２から）を受け取ったとき、主マイクロコントローラ１０００は、ドアを移動させようとしていることを示すメッセージを、Ｉ２Ｃ拡張バス１００４上の副マイクロコントローラに送信する。副マイクロコントローラ１００２にこの動作に関する問題がない場合（例えば、障害を検出しない）、次の段階に進んでもよいことを主マイクロコントローラ１０００に確認する。その場合、主マイクロコントローラ１０００は、その操作、例えば、直流モータの場合には１０１０でパルス幅変調（「ＰＷＭ」）制御を開始するなどの操作を実行する。次に、モータ２８が動作し、ドアを指示された位置まで移動させる。ドア移動前でもドア移動中でもいつでも、どちらかのマイクロコントローラが障害を検出した場合は、その特定のそのマイクロコントローラは、モータを停止することができる。副マイクロコントローラ１００２は、例えば、１０１８ａで信号出力を中断することができ、これにより、モータ・イネーブル回路１０１９が非活動化される。主マイクロコントローラ１０００は、例えば、ＰＷＭ回路１０１０を非活動化し、これにより同様にモータ・イネーブル回路１０１９が遮断される。更に、マイクロコントローラは、過度のモータ・トルク（「トルク出力」と呼ばれる）がある場合に、主マイクロコントローラ１０００又は副マイクロコントローラ１００２がモータ２８の動作を阻止できるように構成されプログラムされてもよい。
【００４４】
副マイクロコントローラ１００２は、Ｉ２Ｃスレーブとして動作する際に、主マイクロコントローラが、正常で故障のない動作を示す定期的メッセージを所定の頻度（例えば、５０ミリ秒ごと）で送信することを要求することができる。次に、副マイクロコントローラ１００２が、主マイクロコントローラ１０００がこの割合でメッセージを送るのを止めたことを検出した場合は、副マイクロコントローラ１００２は、モータ・イネーブル回路１０１９を無効し、その結果、モータ２８の動作が中断する。
【００４５】
主マイクロコントローラ１０００において、副マイクロコントローラ１００２に定期的メッセージを送信プロセス１１００（図１１のプログラムフロー・チャートを参照）は、送出リクエストをキューに記憶する。その場合、リクエストを送って応答を得るタスク／プロセスのための方法が利用可能である。幾つかのタスクがリクエストを同時に送ろうとする場合があるので、リクエストを適切に送って応答を読み込むまでに数サイクルかかることがある。したがって、リクエストを送る場合は、応答を待つために例えば状態機械が使用される。
【００４６】
副マイクロコントローラ１００２と通信する際、主マイクロコントローラ１０００は、例えば、幾つかのソケットを開き、それらのソケットのうちの１つを未熟リクエストのために取っておき、残りのソケットは、複数のタスクからの同時リクエストを直ちに送ることを可能にする。送出キュー及びキュー情報は、例えばタスクごとに１つのパケット・キューを含む構造で維持することができる。このようにして、主マイクロコントローラ１０００は、各キューの状態（例えば、空か満杯か）と、各ソケットの状態（例えば、使用中か空いているか、送信中か受信中など）を維持することができる。したがって、適切な方法により、使用可能なキュー・バッファを必要に応じて動的に割り振ることができる。
【００４７】
本発明の特徴によれば、通信に問題がある場合、副マイクロコントローラ１００２と定期的に通信するプロセス１１００が、主マイクロコントローラ１０００に実行を停止させるイベントを実行する。その場合、副マイクロコントローラ１００２は、主マイクロコントローラ１０００が実行を停止したことを知ることができ、また、主マイクロコントローラ１０００のリセットを実行することができる。このプロセス中、副マイクロコントローラ１００２は、主マイクロコントローラ１０００が、設定時間内にリセットした回数が多すぎなかったか検証する。この場合、副マイクロコントローラ１００２は、リセット数の追跡することができる。設定期間内に行われたリセットが多すぎる場合は、装置が不適切に挙動していると仮定し、これに応じてシステム動作を停止させることができる。ここで、主マイクロコントローラ１０００は、Ａ／Ｄ値が現在のメッセージのリクエストで有効であることを、副マイクロコントローラ１００２と共に確認することができる。
【００４８】
この実施形態では、副マイクロコントローラ１００２が、遠隔トランスミッタ装置５３を介してユーザとインタフェースする主な役割をするので、副マイクロコントローラ１００２は、そのような装置５３から受け取ったユーザ・コマンドを、主マイクロコントローラに未熟パケットの形で中継することができる。したがって、主マイクロコントローラ１０００は、副マイクロコントローラ１００２からの未熟パケットに応じて、バリア移動限度を設定、クリア又は調節し、バリア・フォース・プロファイルを設定、クリア又は調整し（図２４を参照）、かつ／又はバリア移動速度設定を設定、クリア又は調節することができる。
【００４９】
未熟パケットが、移動限度のプログラミングと関連したコマンドを含むとき、主マイクロコントローラ１０００は、事前に定義された特定の安全条件を確認しながら適切に応答することができる。詳細には、主マイクロコントローラ１０００は、モータのアイドル状態を判定しかつ／又は限度設定が近すぎるかどうかを確認することができる。したがって、最初に移動限度をプログラムするプロセスに入るコマンドを受け取り、次に限度設定コマンドを受け取ったとき、モータがアイドル状態でない場合はそのコマンドを無視することができ、コマンドが無効であったというメッセージを副マイクロコントローラ１００２にキューに入れることができる。第１の許容限度を受け取ると、記憶された限度（図２３）とフォース・プロファイル（図２４）を消去することができ、この新しい限度位置が記憶される。次に、示された位置が、移動バリア位置の第１端に近すぎる場合は、第２の限度設定コマンドを無視することができる。この場合、コマンドが無効であったというメッセージを副マイクロコントローラ１００２にキューすることができる。他の状況では、許容可能な限度設定コマンドを受け取ったとき、開放限度又は閉鎖限度を現在のドア位置に設定してもよく、コマンドが受け入れられたという状態メッセージを副マイクロコントローラ１００２にキューすることができる。両方の限度が設定された後で、限度の間の距離を所定のしきい値（例えば、６フィート）と比較して、組み立て式又は一体型ドアが使用中かどうかを判定し、その判定にしたがって、ＥＥＰＲＯＭ１０１６に記憶されたドアタイプの変数を設定することができる。
【００５０】
適切な割合で通信するために、主マイクロコントローラ１０００は、その主ループ１１００の一番最初に、副マイクロコントローラ１００２と通信するプロセス１１０４を呼び出すことができ、主ループ１１００は、最初に、１１０６で初期化し、その後で、判断ステップ１１０２で時間が終了した時（例えば、５０ミリ秒）に繰り返し再び入る。このプロセス１１０４が呼び出されたとき、主マイクロコントローラ１０００は、次の待機データ・パケットを送るか、又は副マイクロコントローラ１００２に未熟パケットを要求することができる。副マイクロコントローラ１００２が、主マイクロコントローラ１０００の障害がないことを判断する方法としてこのリクエストを使用しているので、このプロセス１１０４を一定頻度（例えば、５０ミリ秒ごと）で呼び出すことができる。プロセス１１０４を主ループ１１００の最初に置くことにより、プロセス１１０４は、ループ１１００内の他のプロセスの実行により遅延されないことが保証される。
【００５１】
前述のように、プロセス１１０４に進む前に、初期化ステップ１１０６が実行される。この初期化ステップ１１０６は、主マイクロコントローラ１０００が起動される（例えば、リセットされる）たびに実行されてもよい。副マイクロコントローラ１００２は、初期化ステップ１２００（図１２を参照）も有し、この詳細は、図１３に関して後述する。これと共に、バリア・オペレータが起動されてパワー・オン・セルフテスト機能が行われるたびに２つの初期化が行われる。例えば、これらの機能は、主マイクロコントローラ１０００と副マイクロコントローラ１００２との間の通信の試験を含むことができる。また、これらの機能は、ＥＥＰＲＯＭ  ＣＲＣチェックを含むことができ、また、ＥＥＰＲＯＭ１０１６からの構成ビットを読み取って、バリア・オペレータが、ベルト、チェーン又はスクリュー式駆動を有するか、あるいは「良好」「より良好」「最良」タイプのものかを判断することができる。この理由を次に述べる。
【００５２】
このステップ１１０６において、２つのワォッチドッグ・タイマの一方によってリセットされた場合は、障害を記録することができる。更に、主マイクロコントローラ１０００に搭載され維持されたワォッチドッグ・タイマ１００７（図１０）を開始することができ、またＩ２Ｃ拡張バス１００４、タイマ１００８Ａ〜１００８Ｄ、及びＰＷＭ回路１０１０（例えば、デューティ０パーセントのＰＷＭモードで動作するＣＣＰ１ユニット）などのオンチップ素子のような、基板上のアナログ及びデジタル入出力端子を初期化することができる。
【００５３】
この特定の実施形態によれば、タイマ１００８Ａは、システム内の種々のイベントを測定するために使用される。タイマは、自走式で、リセットされず、オーバフローがカウントされる。８倍プレスケーラを使用することができ、この場合は、１６メガヘルツのＭＣＵクロックを有し、各タイマの増分は２マイクロ秒に相当する。その結果、１６ビット・タイマを使用して１３０ミリ秒までのイベントを測定することができる。また、タイマ１００８Ａを使用して、主アイドル・ループ内で秒カウンタを実行することができる。これは、更に、光学式結合器入力間の時間を測定することによってドアの速度を追跡するために使用される。タイマ１００８Ａがオーバフローするとき、１６ビット・オーバフロー・カウンタを増分する割り込みをトリガすることができる。このオーバフロー・カウントは、１６ビット・タイマ値と共に、３２ビット・タイマを提供する。この３２ビット・タイマを光学ホイール・コード上で使用して、より遅い動きのときに幅広いタイミング性能を達成することができる。
【００５４】
タイマ１００８Ｂは、直流モータを駆動するＰＷＭ回路１０１０によって使用されてもよい。タイマ１００８Ｂプレスケーラと周期レジスタが共に動作して、パルス幅変調の周波数を１０キロヘルツに設定する。したがって、タイマ１００８Ｂと関連した中断はない。ＰＷＭ回路１０１０は、例えば１０ビットの分解能を有するデューティ・サイクルで制御することができる。
【００５５】
壁コンソール
タイマ１００８Ｃをカウンタ・モードで使用して、壁コンソール３２からのパルスを数えることができる。壁コンソール・ユニット３２は、住宅所有者が開閉器を作動させるユニットの１つであり、適切なソフトウェア制御に関連して、３個のボタン、バリアを開閉する第１のユーザ作動ボタン、頭上のライトをオン・オフする第２のユーザ作動ボタン、及びシステムを休止ロック・モードにするか解除する第３のボタンを有する。この操作については、後でより詳しく述べる。ソフトウェアは、また、ドアが動くように命令されたときに頭上のライトを点灯させ、次に所定期間（例えば、４分）後に自動的にライトを消すために使用される。壁コンソール３２上のライト・ボタンが押された場合、このボタンの押し下げは、ライト・ボタンが再び押されるまでライトを点灯させたままにすることできる。
【００５６】
主マイクロコントローラ１０００は、壁コンソール３２への電力をオン・オフする機能を有する。また、コンソール上のＬＥＤを点滅させて、バリア・オペレータが休止ロックアウト・モードであることを示すことができる。この点滅は、コンソール３２が電力を維持したままにできる割合で行なうことができ、休止ロック・モードの適切な指示も提供される。ユニットが、休止ロック・モードになると、コンソール３２上のＬＥＤが点滅し、ドアは、閉鎖限度に達するまで移動し続けることができる。閉鎖限度に達した後、ドアは、住宅所有者が休止ロック・ボタンを再び押し、それにより、完全にソフトウェア制御下で、バリア・オペレータが休止ロック・モードでなくなるまで動かされなくなる。
【００５７】
壁コンソール３２上のボタンは全て、ある時間期間（例えば、９８ミリ秒）デバウンスされる（図１１を参照）。即ち、ボタンは、好ましくは少なくともその長さの時間オフで、次にある時間期間（例えば、６５ミリ秒）オンの場合に有効なボタン押し下げと見なされる。この要件の１つの例外は、ドアが床に達するまでボタンが押されたままのドア・ボタン手動オーバーライド機能である。
【００５８】
本発明の特定の特徴によれば、壁コンソール３２上の様々なボタンのユーザ操作は、オペレータ２０のコントローラ３０に対する様々なコマンドをそれぞれ示し、一連の電子パルスを送信し、そのようなパルスの様々な周波数はそれぞれ異なるコマンドを表わす。コントローラ３０と、より具体的には主マイクロコントローラ１０００は、これらのパルスを受け取って処理し、受け取ったパルス信号の特定の周波数によってそれぞれ表わされる操作を実行する働きをする。
【００５９】
例えば、表１に下記する周波数によって、様々なボタン機能（コマンド）を表わすことができる。
【００６０】
【表１】
2014518966.tif 000003
当然ながら、他の機能又はコマンドも同様にプログラムすることができる。
【００６１】
壁コンソール３２は、搭載タイマを使用して、特定のボタン機能に必要な周波数信号を生成することが好ましい。複数のドアを備えた住宅ガレージの場合、各ドアの制御に、同じか又は類似の周波数選択を有する別個のドア・オペレータと別個の壁コンソール３２を使用することができる。
【００６２】
前述のように、ドア１０の動きを達成するコマンドは、ＲＦ遠隔トランスミッタ５３からのものでもよい。また、副マイクロコントローラ１００２と関連付けられたソフトウェアにより、ドアを移動させる有効コマンドを受け取ったときにライト１０７０を自動的に点灯させる機能を実行する。図２１に関連して、ステップ２１００〜２１２４により、ライトは、所定の時間期間点灯したままにし、その後でソフトウェアがライトを消灯させることができる。遠隔トランスミッタ上のボタンは、副マイクロコントローラ１００２内のソフトウェアが受け取って復号化し、その結果警報１０５８が鳴るパニック機能を作動させる。また、遠隔トランスミッタ５３のどれか１つからの信号を適切にデバウンスすることもできる。
【００６３】
タイマ１００８Ｄは、プロセッサ３０の動作を定期的に中断するように設定することができる。１１０８（図１１）のこの割り込みプロセスを使用して、入力を収集し、ステップ１１１０で、フィルタリングとデバウンスを実行し、壁コンソール・パルスを検出することができる。入力のデバウンシングは、不安定な信号の間違った読み出しを防ぐために、起動後のある時間期間（例えば、１秒）入力を無視することを伴うことができる。デバウンシング期間の後、条件により、ボタンを放した後で初めてボタンを活動化できることを必要とすることがある。この要件は、起動中にボタンが押されたままになった場合にボタンが動作をトリガするのを阻止することができる。
【００６４】
前述のように、ステップ１１１０でデバウンスされた入力は、壁コンソール３２からのパルス入力信号でよい。例えば、タイマ１００８Ｃでカウントされた値が、幾つかの割り込みに関して所定の周波数範囲である場合に、壁コンソール３２のドア・コマンド・ボタンの押し下げを検出することができ、その場合、壁コンソール・ドア・ボタンが押されたことを示すフラグを設定することができる。タイマ１００８Ｃの値が、より多くの割り込みの範囲にない場合は、このフラグをクリアすることができる。このフラグは、サービスが完了した後でクリアされもよく、その場合、フラグのリセットを、ボタンが押されない幾つかの割り込みが生じるまで防ぐことができる。更に、タイマ１００８Ｃの値が、同じ数の割り込みに関して別の所定の周波数範囲内にある場合は、壁コンソール３２上のライト・ボタンの押し下げを検出することができ、その場合、壁コンソール・ライトボタンが押されたことを示すフラグを設定することができる。この場合も、タイマ１００８Ｃ値が、同じ数の割り込みに関してその範囲内でない場合、このフラグをクリアすることができる。また、タイマ１００８Ｃの値が、同じ数の割り込みに関して別の所定の周波数範囲内にある場合は、壁コンソール３２上の休止ロック・モード・ボタンの押し下げを検出することができ、その場合、壁コンソール休止スイッチが作動されたことを示すフラグを設定することができる。他のボタン押し下げフラグと同じように、タイマ１００８Ｃの値が、同じ数の割り込みに関してその範囲にない場合は、このフラグをクリアすることができる。遠隔検出線１０４４を介して副マイクロコントローラのＲＦキーレス・エントリ端子状態を受け取ることができる。この端子が、幾つかの割り込みに関してローの場合、遠隔トランスミッタ５３のドア・ボタンが押されたことを示すフラグを設定することができる。壁コンソール・ボタンの押し下げの状態を示すフラグと同じように、端子が所定の割り込みに関して低い場合に、このフラグをクリアすることができる。壁コンソール・ドア・ボタン・プレス・フラグと同様に、サービスが提供された後でＲＦトランスミッタ５３上のドア・ボタン・プレス・フラグをクリアすることができ、その場合、端子がローに見える正確な数の割り込みが行われるまでフラグのリセットを防ぐことができる。
【００６５】
バリア移動の位置に関して、その詳細が次に述べられ、１１０８（図１１）におけるこの割り込みプロセスは、ステップ１１１２で平均モータ電流も更新し、モータが作動しているときにステップ１１１４で光学ホイール１０１３Ａ（図２２）が動いていることを確認することができる。ステップ１１１４で、プロセス１１０８は、光学ホイール１０１３ａ（図１０と図２２）が、駆動タイプ及び／又は動作条件に基づいて変化することがある時間期間動かなかった場合に、障害イベントを送ることができる。ステップ１１１６で、目標速度を更新することができ、またステップ１１１８で、電力障害信号１０１３Ｂを確認して、電力障害処理プロセスを実行する必要があるかどうかを判断することができる。
【００６６】
図１０を再び参照すると、専用ハードウェア回路が、交流電力が常に所定値（例えば、交流８５ボルト）より低い場合に遷移するデジタル交流電力障害信号１０１３Ｂを提供することができる。この信号１０１３Ｂは、主マイクロコントローラ１０００と副マイクロコントローラ１００２の両方に入力され、したがってこれらは両方とも交流線を監視することができる。信号１０１３Ｂが遷移する場合、ソフトウェアは、電圧低下が起こっていることを認識することができる。この信号１０１３Ｂがアクティブになると、マイクロコントローラは、モータが動いている場合にそのモータを直ちに停止させることができる。この手順は、図１７に関して後述するような急停止信号の使用を含むことができ、この信号は、モータ・リード線を直接短絡させることができ、その結果、モータ１０２２が突然停止するようになる。停電時にモータ１０２２をできるだけ早く停止することにより、電力がなくなった後で光学ホイール１０１３Ａが複数回回転するのが防止され、正確に回復できるようになる。ソフトウェアは、電力が回復したときに適切に復旧するのに必要な手順を実行することができる。そのような手順は、必要な値を全てＥＥＰＲＯＭ１０１６に記憶することを含むことができ、それにより、次の起動時にも確実に位置を復活させることができる。
【００６７】
交流電力障害信号１０１３Ｂが、アクティブ（即ち、ハイ）の場合は、必要に応じて、バッテリ・バックアップ装置（利用可能な場合）を使用することができる。そうでない場合、アクティブな交流電力障害信号１０１３Ｂにより、主マイクロプロセッサは、動作を止めたことを障害信号１０４６によって示すことができる。
【００６８】
図１１に戻って参照すると、ステップ１１２０に続いて、アダプタ・タスク・ステップ１１２６を実行して、主マイクロコントローラ１０００が、スキャンを実行して、オプションの無線付属品１０３６の使用を可能にするアダプタ１０３４（図１０）が取り付けられているかどうかを確かめる。そのような場合、マイクロコントローラ１０００は、汎用非同期レシーバ／トランスミッタ（ＵＡＲＴ）インタフェース１０３２を利用して、アダプタ１０３４と通信する。このアダプタ１０３４は、プロセッサ３０が本来通信できない任意数の外付け付属品１０３６と、例えば９１５ＭＨｚの無線通信を可能にすることができる。発動機に設けられたシリアル・ポートなどのコネクタ・ポートを使用して、ＵＡＲＴインタフェース１０３２とアダプタ１０３４とを接続することができる。あるいは、必要に応じて、パラレル・ポートやＵＳＢポートなどの他のタイプのポートを使用することができる。付属品１０３６には、例えば、非標準遠隔制御、他の壁コンソール、ドア状態通信装置、設定及び較正モジュール、ライト、セキュリティ・システム、及び他の所望の機器を挙げることができる。インタフェース１０３２とアダプタ１０３４との間の通信に有効なメッセージング・プロトコルは、割込みサービス・ルーチン１１４４（図１１）によってメッセージを受け取り、ステップ１１４６で、受け取ったメッセージを、主ループによって処理するためのバッファに記憶することができる。アダプタ・タスク・ステップ１１２６は、任意の入力メッセージも解析し、次のサイクルで送られた適切な応答をキューに入れることができる。幾つかの実施形態では、入力メッセージは全てを処理した後、任意のメッセージをアダプタ１０３４に送ることができる。主マイクロコントローラ１０００は、通信確立メッセージをアダプタ１０３４に送ったとき、認証処理を完了するのをある時間期間（例えば、最大２秒）待つことができる。完了しない場合、主マイクロコントローラ１０００は、通信確立メッセージを再送することができる。通信を確立するこの試みは、認証が完了するまで継続することができる。
【００６９】
コントローラ・ユニット３０と、特に主コントローラ１０００は、様々なタイプのメッセージを処理することができる。例えば、種々様々な付属品１０３６と通信するアダプタ１０３４の機能により、ステップ１１２６で処理することができるメッセージは、例えば、認証応答、ヘッド・リセット・コマンド、オペレータ・ステータス・リクエスト、ドア操作コマンド、ライト操作コマンド、警報動作コマンド、休止モード・コマンド、学習リモコン・コマンド、限度設定コマンド、位置変更コマンド、既存及び新しいフォース・プロファイル・コマンド、速度設定コマンド、フォース設定コマンド、上昇障害コマンド、障害ログ・リクエスト・コマンド、ＬＥＤ設定コマンド、診断発行コマンド、及び／又は一般肯定応答を含むことがある。
【００７０】
認証応答、ヘッド・リセット・コマンド、及び状態要求は、例えば以下のように処理することができる。認証応答を受け取ったとき、主マイクロコントローラ１０００は、暗号化数を確認する試みを行うことができ、また受け入れメッセージ又はエラー・メッセージを返すことができる。ヘッド・リセット・コマンドを受け取ったとき、それを拡張バス・パケットにカプセル化し、副マイクロコントローラ１００２に引き継ぐためにキューに入れることができる。副マイクロコントローラ１００２は、これに応えて短期間停止し、次に自分自身をリセットすることができ、これにより、主マイクロコントローラは、副マイクロコントローラの１００２の初期化中にリセットされるまで、重要なデータを１０００回保存することができる。ヘッドが再初期化された後で通信確立コマンドを送ることができ、アダプタ１０３４は、要求されたリセットをヘッドが完了するのに十分な時間を可能にすることができる。オペレータ・ステータス・リクエストを受け取ったとき、オペレータ状況情報を含むメッセージを作成し、このメッセージをアダプタ１０３４に送ることができる。
【００７１】
ライト操作コマンド、警報動作コマンド、休止モード・コマンド、及び学習リモコン・コマンドを例えば以下のように処理することができる。ライト操作コマンド又は警報操作コマンドを受け取ったときは、それぞれライト・メッセージ又は警報・メッセージを、副マイクロコントローラ１００２に通信するためにキューに入れることができ、これらのメッセージは、それらの動作を実施するのに適したパラメータを含むことができる。休止モード・メッセージを受け取ったときは、受け取ったモードにより休止ロックを設定又は解除することができ、適切なモードが示された場合に、ロックアウト・メッセージを、副マイクロコントローラ１００２に通信するためにキューに入れることができる。学習リモコン・コマンドを受け取ったとき、このメッセージを拡張バス・パケットにカプセル化し、副マイクロコントローラ１００２に送るためにキューに入れることができる。
【００７２】
副マイクロコントローラ１００２が処理することができる種々様々な学習リモコン・モードがある。例えば、モードが、ドア・モード又は付属品モードの場合、副マイクロコントローラ１００２は、リモコン学習モードになり、活動化された任意のリモコンを学習することができる。更に、既になっている学習モードを取り消すことによって、相補的キャンセル学習モード・メッセージを処理することができる。また、全モード・クリア・メッセージは、ドアと付属リモコンの両方を含む全てのプロセッサ内の全てのリモコンをクリアさせることができる。これと対照的に、クリア付属品モード・メッセージは、プロセッサが学習した全ての付属リモコンをクリアさせることができる。
【００７３】
ステップ１１２６で、限度設定コマンドと位置変更コマンドを以下のように処理することができる。受け取った限度設定コマンドは、そのコマンドを副マイクロコントローラ１００２から受け取ったときに、主マイクロコントローラ１０００によって、プロセス１１０４に関して前述したものと全く同じように処理されてもよい。しかしながら、１つの追加の手順は、アダプタ・モード変数の内容を、アダプタ・モードが限度設定モードかアイドル・モードかを示すように設定することである。次に、ステップ１１２６で変更位置コマンドを受け取ったとき、アダプタ・モードが限度設定モードでない場合は、その変更位置コマンドを無視することができる。そうでない場合は、移動された距離に応じて限度を設定又は調整するために示された方向に、ドアの位置を移動位置の新しい終わりまで連続的に駆動することができる。
【００７４】
ステップ１１２６で、新しいフォース感度プロファイル・コマンド、速度設定コマンド、及びフォース設定コマンドを以下のように処理することができる。次に、本発明の原理によるフォース感度プロファイルの確立について詳しく開示する。現時点では、新しいフォース感度プロファイル・コマンドを受け取ったときに、フォース・プロファイル生成変数の内容を、ドア１０の次の開閉動作中に新しいフォース・プロファイルを生成する値に設定することができ、同時に、それらの２つのドア操作中に従来のフォース感度プロファイルを使用することができる。新しいフォース・プロファイルを生成した後で、そのフォース・プロファイルを昔のフォース・プロファイルの代わりに使用することができ、またフォース・プロファイル生成変数を、新しいフォース・プロファイルの生成がすぐに生成されない異なる値に再設定することができる。速度設定コマンド又はフォース設定コマンドを受け取ったとき、主マイクロコントローラ１０００は、これらのコマンドを、それらのコマンドを副マイクロコントローラ１００２から受け取ったときのプロセス１１０４について前述した方法とほとんど同じように処理することができる。
【００７５】
ステップ１１２６で、上昇フォルト・コマンドとフォルト・ログ・リクエスト・コマンドを以下のように処理することができる。上昇フォルト・コマンドを受け取ったとき、示されたフォルトを安全イベント・ハンドラに渡して処理することができる。イベント・ハンドラは、重大なエラーの場合に主プロセッサ１０００を停止させるなどの幾つかのことを行うために使用することができ、その時点で、補助プロセッサ１００２は、拡張バス１００４活動のタイムアウト後にリセットを実行することができる。また、イベント・ハンドラは、重大な故障（例えば、ＳＴＢ  １０３０障害、過剰なフォースなど）時にモータを無効にするか逆転させ、最後の６つの重大／重篤な障害のログをＥＥＰＲＯＭ１０１６に維持することができる。エントリごとの障害コード（例えば、１バイト）とデイオン・カウンタ（例えば、２バイト）のコピーを保存することができる。イベント・ハンドラは、更に、障害及び／又はシステム状態に関する情報を、診断ポート１０４２に送ることができる。ステップ１１２６でイベント・ハンドラに渡された障害によって、主マイクロコントローラ１０００が停止された場合、応答をキューに入れ、主マイクロコントローラ１０００の代わりに安全イベント・ハンドラによって送ることができる。障害ログ・リクエスト・コマンドを受け取ったときは、障害ログ・メッセージを作成しアダプタ１０３４に送ることができる。
【００７６】
ステップ１１２６で、ＬＥＤ設定コマンド、発行診断コマンド、及び／又は一般肯定応答を以下のように処理することができる。ＬＥＤ設定コマンドを拡張バス・パケットにカプセル化して、副マイクロコントローラ１００２に送ることができ、副マイクロコントローラ１００２は、メッセージを解析し、その結果オペレータＬＥＤ１０４０を設定することができる。同様に、問題診断コマンドを、主マイクロコントローラ１０００内の診断システムに送り、主マイクロコントローラ１０００は、コマンドを処理し応答を作成することができ、この応答を診断応答メッセージに入れ、診断モジュール１０４２及び／又はアダプタ１０３４に戻すことができる。アダプタ１０３４から一般肯定応答を予想通りに受け取らず、したがってエラーを示したときは、主マイクロコントローラ１０００からアダプタ１０３４に送られた最後のコマンドを再び送ることができる。一般肯定応答の受け取りに設定回数（例えば、連続して３回）失敗した場合、主マイクロコントローラ１０００は、前述のような通信確立シーケンスの開始を試みることができる。
【００７７】
ソフトウェア制御（図１１）における追加手順は、メモリを検証し（例えば、ＵＬ１９９８  ＲＡＭ／ＲＯＭテスト）、モータ電流を確認し、必要なモジュールが実行中であることを保証する実行フラグを確認し、重大な障害を確認するためにサイクルごとに行われる自己試験手順１１２８を含む。自己試験手順１１２８に続いて、制御論理ルーチン１１３０を実行して、他の状態変数に加えて、主ループ１１００でそれまで収集したデータを分析し、様々な決定を行うことができる。モータ動作状況変数を、モータ制御手順１１３２が処理するように設定することができる。幾つかの例では、制御論理ルーチンは、安全サブルーチンの前に実行される非安全サブルーチンを含むことができる。
【００７８】
制御論理ルーチン１１３０の非安全サブルーチン部分は、バリア・オペレータの種々の機能の制御を行う一連の入れ子にされた条件付き（例えば、ファジイ論理）動作として実現することができる。これらの機能は、作業用照明の点灯又は消灯、休止モードの設定又は解除、診断メッセージの処理、及び／又はモータ制御手順１１３２の間に後のモータ動作に影響を及ぼす可能性のある他の変数のフラグと内容のクリアと設定を含むことができる。例えば、モータがアイドル・モードの場合と、フォース・プロファイルが、主ループ１１００の最終サイクルで設定又はクリアされた場合は、フォース・プロファイル状況情報を含む拡張バス・メッセージを、キューに入れて副マイクロコントローラ１００２に送ることができる。
【００７９】
制御論理ルーチン１１３０の次の安全サブルーチン部分は、バリア・オペレータによって実施される安全措置を行う別の一連の入れ子になった条件付き（例えば、ファジイ論理）動作として実施することができる。そのような処置には、モータの熱的保護、非常時のバリア逆転（例えば、過剰なフォースの検出及び／又は障害物検出）、及び電力障害処理動作が挙げられる。前述のように、ルーチン１１３０は、主ループ・サイクルごとに、安全ビーム（ＳＴＢ）１０３０パルス・カウンタ変数をゼロにリセットすることもできる。このパルス・カウンタ変数は、ステップ１１２２で増分され、ステップ１１２０で読み取られるものである。
【００８０】
モータの熱的保護
モータ２８の熱的保護は、好ましくは主マイクロコントローラ１０００によって実行される安全機能である。交流型のモータ２８に関して、熱的保護は、過熱に応じて開く交流巻線内の熱センサ・ハードウェア・スイッチの使用により達成されることが好ましい。マイクロコントローラ１０００は、前述の過熱状態を示す状況ビットを監視する。
【００８１】
直流のモータ２８に関して、また本発明の特徴によれば、モータ温度を検出するプロセスは、熱センサを使用しない。より正確に言うと、モータによって消費される電力が監視される。具体的には、モータ負荷とモータの運転時間の両方の関数としてモータ温度を関連付ける変換アルゴリズムを使用して、直流モータ２８の温度を正確に評価することができる。アルゴリズムは、熱有効性パラメータ又は熱負荷値（ＴＬＶ）と呼ばれる数の増分に基づく。ＴＬＶ数は、（ｉ）直流モータが動作している時間と、（ｉｉ）負荷の程度と共に増加する。ＴＬＶ数が、モータごとに実験的に設定された所定値を超えた場合、ソフトウェアは、モータ動作を特定の「クーリング・オフ」期間停止する働きをする。冷却期間は、モータを再始動できるまで熱有効性パラメータを１秒あたりどれだけ小さくしなければならないかに関する実験によって決定される。
【００８２】
主マイクロコントローラ１０００は、最悪ケースの周囲温度条件に対して較正されたモータ動作中の時間の長さを観察する。ＴＬＶ数は、モータ動作中に、時間の関数（例えば、モータが動作しているときの全ての主ループ・サイクル）として、モータ電流の関数として測定されたフォースによって部分的に管理される動的レートで増分される。ＴＬＶ数は、また、時間の関数（例えば、全ての主ループ・サイクル）として、最悪ケースの雰囲気条件下でモータ冷却特性をシミュレートするために選択されたモータ冷却定数（ＣＤＣ）によって部分的に管理された割合で減分される。幾つかの例では、最悪ケースは、バリア・オペレータと共に使用される可能性のある多くのタイプのモータの中から、最悪ケース・タイプのモータ、バリア、駆動組み合わせが使用されると仮定することができる。他の例では、モータ、駆動、及び／又はドア・タイプの実際の構成を決定し使用して、最悪ケース雰囲気条件下で機器の組み合わせに関して決定されたＴＬＶ値を選択することができる。ＴＬＶ数が、所定の熱的過負荷しきい値を超えたとき、熱的過負荷を示し、モータが許容可能なレベルまで冷える時間がたつまでモータを停止させるフラグが設定される。
【００８３】
後で説明されるように、フォース値を更新するタイマとして、更新間隔しきい値（例えば、少なくとも１秒）を監視することができる。このしきい値を超えたとき、モータが実行モードの場合にＴＬＶ値も増分することができる。ＴＬＶ値を増分するために、主マイクロコントローラ１０００は、定数部分と可変部分を現在のＴＬＶに追加することができる。例えば、最後の更新間隔しきい値から測定された最大フォース値（ＭＦＶ）を、熱負荷値に追加する量の可変部分のスカラーとして使用することができる。例えば、ＴＬＶは、次の式により計算することができる。ＴＬＶ＝ＴＬＶ＋２４＋ＭＦＶ２／４
【００８４】
更新間隔を超えたときにモータが実行モードにあるかどうかに関係なく、更新間隔タイマが更新間隔しきい値を超えたときにＴＬＶ値も減分することができる。しかしながら、減分の量は、ＴＬＶが前述の熱ＣＤＣを超えたかどうかに依存することができる。詳細には、ＴＬＶが、０より大きくかつ熱ＣＤＣより小さい場合は、ＴＬＶを単純に一定量（例えば、１）だけ減分することができる。しかしながら、ＣＤＣを超えた場合は、モータが動作していないときにＴＬＶを以下のように計算することができる。ＴＬＶ＝ＴＬＶ−（ＴＬＶ／ＣＤＣ）
【００８５】
更新間隔タイマが、更新間隔しきい値を超えたときは、ＴＬＶが前述の熱的過負荷しきい値を超えたかどうかを判断する確認を実行することもできる。そのような場合、熱遮断フラグを設定してモータを停止させることができ、また熱遮断を可能にする拡張バス・メッセージを、キューに入れて副マイクロコントローラ１００２に送ることができる。ソフトウェアが、熱的限度を超えたと断定した後で、ドア・コマンドに応じて停止することができる。更に、ソフトウェアは、バリア・オペレータ３０上のＬＥＤ１０４０を点灯させてこの障害モードを示すことができる。幾つかの実施形態では、ユニットから電力を遮断しても、この状態はクリアされない（例えば、ＥＥＰＲＯＭに値を記憶する）。モータを再び動作させるのは、時間の経過だけである（即ち、ＴＬＶを減分する）。したがって、ＴＬＶは、前述のように時間の経過と共に減少することができ、ＴＬＶが、最終的に、熱的過負荷しきい値より低くなることができる。その時点で、熱遮断フラグがクリアされ、熱遮断を無効にするために、副マイクロコントローラ１００２に送る拡張バス・メッセージがキューに入れられる。
【００８６】
フォース感度しきい値の確立とフォース測定
移動限度が次に述べるように確立された後（図２３）、またコントローラ３０が「学習」モードにあるときに、フォース感度しきい値限度を確立することができる。したがって、このプロセスの最初の段階として、モータに指示して、ドアを、例えばその閉位置から開位置に移動させることができ、その時間中、トラック１４及び１６（図１）の個々の部分に沿ってドアを中断なしに動かすのに必要なそれぞれのフォースが記録され記憶される。その後で、段付き構成の形の増大値のオフセットが、自動的に生成され記憶され、その結果、フォース感度しきい値プロファイル２４００が定義される（図２４を参照）。次に、手順は、反対方向（例えば、開位置から閉位置に）のドアの動きに関して繰り返され、階段形状の増大値のオフセットは、やはり自動的に生成され記憶されたそのプロファイルを定義する。したがって、これらの２つのプロファイルは、ドアが、トラック１４及び１６（図１）のそれぞれ異なる部分を、その開位置から閉位置までとその方向に移動するときに、「ドア開放」と「ドア閉鎖」のフォース感度しきい値、即ち、障害物の徴候がある前にドアが受ける可能性のあるそれぞれのフォースの上限をそれぞれ定義する。更に、少なくとも１つの完全ドア移動サイクルを完了した後で、これらの「ドア開放」及び「ドア閉鎖」予備フォース感度プロファイルが確立され、ドアがその静止位置又は「停止」位置にある状態で、ヘッド・ユニット２６上の適切なボタンを押すことによって、ユーザは、必要に応じて、マイクロコントローラ１０００に指示して、限度範囲内で、これらのしきい値のレベルを増減することがある。例えば、全体のユーザ調整範囲にかかる制限は、例えば、小さい測定フォースでは全許容可能フォースの約５０パーセント以上、より大きい測定フォースではより低いパーセントでよい。このユーザ調整により、最終フォース感度しきい値プロファイルを記憶して、「オペレート」動作モード中に使用することができる。
【００８７】
主マイクロコントローラ１０００は、その後で、動作モードに自動的に切り換わり、その後で通常のドア動作中に測定されたフォースを、２つのプロファイルの記憶されたフォース感度しきい値限度と比較することができる。この測定は、必ずしも１対１でなくてもよい。例えば、実際のフォースの複数回の測定は、引き続き行われてもよく、アルゴリズムにかけて本質的に何が「有効に測定されたフォース」であるかを決定することができる。次に、ドア移動の指定部分に関して有効に測定されたフォースが、その移動部分の対応する記憶されたフォース感度しきい値を超える場合は、障害物を示すことができ、また適切な応答が生じる（例えば、ドアが上昇中の場合はモータが停止され、ドアが下降中の場合にモータが停止され逆転される）。
【００８８】
一定数のサイクル（例えば、約１０００サイクル又は２０００回の動作）の後で、マイクロコントローラ１０００は、「学習」モードに自動的に戻るように再プログラミングされ、また、新しいプロファイルを学習している間に障害物があった場合には、この再プログラミング中に前に記憶されたフォース感度しきい値限度を使用して、前述のルーチンにしたがって新しい感度しきい値プロファイルを取得することができる。その後で、再びユーザがフォース感度しきい値限度を増減できることを条件として、新しいフォース感度しきい値限度は、「オペレート・モード」でドアの移動中に後で実際に測定されたフォース値と比較される新しい最終フォース感度しきい値限度プロファイルを確立する。必要に応じて、この再プログラミング操作は、ユーザによって開始され、発動機２６上のボタンの事前選択された組み合わせをユーザが押すことによっていつでも新しいフォース感度プロファイルを要求することができる。
【００８９】
実際のフォース値は、代替方法で測定することができる。例えば、直流モータの場合、フォースが、モータを流れる電流に比例するという事実を利用して、モータ電流の測定にホール効果センサ１０２４（図１０）を使用することができ、その出力は、経路１０２４ａに沿って主マイクロコントローラ１０００（マイクロコントローラ１００２と同様に）に入力される。交流モータの場合、例えば、フォースがモータ速度に反比例することを考慮し、光学ホイール１０１３Ａを使用してモータ２８の速度を測定することができ、その出力は、経路２０００に沿ってマイクロコントローラ１０００に入力される。いずれの場合も、オペレート・モード中にそのように測定されたフォースが、記憶されたフォース感度しきい値限度（直流モータ・バージョンの場合は、電流を限度より多くするか、交流モータ・バージョンの場合はモータ速度を限度速度より低くすることによって決定された）を超えた場合、そのようなイベントは、障害物の存在を示す。その結果、マイクロコントローラ１０００は、ドア移動の方向によって、モータ２８を停止させるか、停止し逆転させ、逆転後のドア移動の所定の距離で他のコマンドを無視する。
【００９０】
ガレージ・ドア１０が下方向に動き、障害物と接触するとき、ソフトウェアは、フォースがその部分のフォース感度プロファイルのフォース検出限度によって以前に決定されたように、ドア移動のその部分のフォース検出限度より大きい場合に、ドアを停止し、ある期間後で逆転させる。この状態は、「トルクアウト」として知られる。その後で、ドア１０は、他の形で指令されない限り開位置まで移動するが、短い距離（例えば、逆転直後に２インチのドア開放移動）のコマンドを他の方法（例えば、止め部に）で無視することができる。ドアが上方に移動し、障害物と接触した場合、ソフトウェアは、ドアを逆転させずに停止させる。また、モータが始動されたときの電流の一時的性質を説明するために、モータを始動した直後のドア移動の第１の部分のフォースは無視することができる。
【００９１】
ドアが動いているときにフォース読出し値を繰り返し取得することができ、また最近収集したサンプルのプールに平均値算出プロセスを実行することができる。次に、これらのサンプリングされた平均値を、ドア位置の関数として、起動時に決定されたフォース・プロファイル２４００（図２４）と比較することができる。これらのフォース確認は、例えば、少なくともドアが１インチ移動するたびに行うことができる。フォースが、フォース・プロファイリング中にドアのこの位置で決定された最大許容量を超えた場合は、ソフトウェアが、モータを停止し、トルクアウト手順（即ち、停止、又は停止と逆転）を実行することができる。
【００９２】
ホール効果センサ１０２４からの値は、温度によって変化することがあり、主マイクロコントローラ１０００は、モータを始動させる前にセンサ１０２４を読み出し、その読取り値を使用して、次の実行で得られるセンサ読出し値を較正することによって変動を処理することができる。次に、バリアの上方（Ｖｕｐ）又は下方（Ｖｄｏｗｎ）移動中に主マイクロコントローラ１０００で取得された電圧読取り値は、ゼロ電流（Ｖｏ）で得られる電圧読取り値に対して、次のように調整することができる。
Ｖｕｐ＝Ｖ０−Ｃ＊Ｖｕｐ
Ｖｄｏｗｎ＝Ｖ０＋Ｃ＊Ｖｄｏｗｎ
ここで、Ｃは定数（例えば、１０００分の６６）。
【００９３】
前述のように、主マイクロコントローラ１０００は、フォース感度プロファイルを決定する際にドアの移動範囲にわたってフォースをサンプリングし、このプロファイルは、ＥＥＰＲＯＭ１０１６などの不揮発性メモリに記憶される。
【００９４】
ユーザが調整することを許可されたトルク・プロファイル・マージン又はオフセットは、通常、メニュー・オプションにより調整することができる。このマージンは、ユーザの好みに応じてより多いか少ないフォースを呈することができる。このトルク余裕は、様々なドア部分に関して追加することができる。例えば、最終フォース感度プロファイリング・プロセスは、ドアが開く方向のある数のプロファイル数と、ドアが閉じる方向の別の数のプロファイル数を作成することができ、これらの数は、ドア移動の明らかに異なる部分に許可されたフォースを表わす。
【００９５】
* 例によっては、ルーチン１１３０の安全サブルーチン（図１１）中にフォース感度プロファイル２４００（図２４）と比較するための実際のフォース検出を行なうことが望ましい場合がある。主マイクロコントローラ１０００は、最初に、更新間隔タイマが、所定の更新間隔しきい値を超えたかどうかを決定することができる。この更新間隔タイマは、全ての主ループ・サイクルのルーチン１１３０で増分することができる。更新間隔しきい値は、更新を定期的に（例えば、毎秒）行うために事前に選択された値（主ループ・サイクルでの）を有することができ、その時点で、更新間隔タイマと、最後の時間期間（例えば、少なくとも１秒）に測定された最大フォース値を含む周期的最大力変数が、ルーチン１１３０でゼロにリセットされてもよい。したがって、現在の読取り値が、最大フォース読取りで記憶された値より高い場合に、最大フォース読取り値を現在のフォース読取り値でサイクルごとに更新することができ、更新間隔しきい値は、最大フォース読取り値を定期的に（例えば、毎秒）クリアすることができる。最大フォース読取り値を定期的に（例えば、１秒に１回）クリアすることにより、最大フォース読取り値が、所定の時間期間（例えば、１秒）内に測定されたフォースを反映することが保証される。
【００９６】
ルーチン１１３０内で実行された障害物で引き起こされたバリアの停止及び／又は逆転動作は、過剰なフォースの検出を伴う。例えば、フォース検出プロセスは、バリア移動位置の個々の範囲に関して記録された平均モータ電流から生成されたフォース・プロファイルの作成と使用を必要とする。通常の動作中に、平均モータ電流は、割り込み処理１１０８の一部としての全てのサイクルで更新される。したがって、実際のフォース（Ｆ）は、平均モータ電流（Ｃ）、初期化中に測定されたゼロ電流レベル（Ｃ０）、ＰＷＭデューティ・サイクル（Ｄ）、及び最大デューティ・サイクル（ＤＭＡＸ）から、全てのサイクルで、次のように計算することができる。Ｆ＝（ａｂｓ（Ｃ−Ｃ０）＊（Ｄ／ＤＭＡＸ））
【００９７】
前述したガレージ・ドアの動作において、上方移動経路と下方移動経路についてそれぞれ別個のプロファイルが生成され、これらのプロファイルからのユーザ調整可能オフセットが、過剰なフォースを検出するためのしきい値として使用される。ならし運転期間後（例えば、上方及び下方ガレージ・ドア移動の１０００分の１が完了したサイクル後）に、新しいフォース感度プロファイルを得ることができ、ならし運転期間を考慮するために新しいプロファイルを再び得る必要がないことを示すフラグを設定することができる。従来のフォース感度プロファイルは、このプロセス中に使用するのに十分に信頼できると考えられ、新しいプロファイルが得られた後は廃棄することができる。また、移動限度が再較正されたときに新しいプロファイルを得ることができ、また、限度較正中と、限度較正後の最初の２つの完全実行中に、フォース・プロファイルを無視することができる。フォース・プロファイルが使用されないとき、所定の最大フォース限度を使用することができる（例えば、較正中の最大３０アンペア直流と、フォース・プロファイルがまだ較正されていない場合の最大２アンプペア）。
【００９８】
図２４に示されたように、ルーチン１１３０で実行される過剰フォース検出の１つの要素は、モータ動作の最初の数秒間にフォース感度プロファイルによって課されるフォース限度２４００を無視することを含むことができる。これらのフォース限度２４００を無視する際、主マイクロコントローラ１０００は、モータの運転時間（即ち、モータが最後に始動されてからのサイクル数）を所定の一時的しきい値（例えば、サイクル数）と比較し、この一時的しきい値を超えない場合にフォース限度２４００を無視することができる。しかしながら、一時的しきい値を超えた後、ルーチン１１３０は、平均モータ電流読取り値に基づいて現在のフォース値を計算し、バリア位置とユーザ定義オフセット値によって索引付けされたフォース限度値の表からフォース限度を得ることができる。
【００９９】
モータが運転モードの場合、現在のドア位置が、所定のドア移動部分に関して指定されたフォース測定位置にある場合、及び上方及び下方フォース・プロファイルに関してフォース・プロファイル更新が既に行われていることを示すビット又はフラグがまだセットされていない場合は、現在のフォース値を、現在のバリア位置に関する測定フォース値を記憶するために索引付けされた位置に、測定フォース値のドア位置で索引付けしたアレイで記憶することができる。必要に応じて、このアレイを使用して、昔のプロファイルを置き換えるために使用することができる新しいプロファイルを収集することができる。しかしながら、モータが、アイドル・モードの場合は、このアレイ、現在のフォース値、及びフォース限度を全て、クリアするかゼロにリセットすることができる。
【０１００】
過剰フォースを検出する際、ルーチン１１３０は、モータが運転モードであり、フラグが、フォース感度プロファイルが利用可能であることを示し、交流電力障害信号は低レベルであり（交流電力が利用可能であることを示す）、算出されたフォースがフォース限度より大きいという条件が満たされた場合に、モータ・モードを停止モードに設定することができる。ルーチン１１３０に続いて、モータ制御手順１１３２は、モータが前述のように主ループで収集されたデータに基づいてなる幾つかの最上レベル・モータ状態のうちの１つにしたがって進むことができる。例えば、モータは、熱遮断モードがトリガされた場合に停止することができる。
【０１０１】
安全及び非安全始動モータ確認に合格した後で、安全性と関連した初期化手順で、モータの運動を準備することができる。例えば、寿命サイクル・カウントが、所定のフォース・プロファイル更新しきい値（例えば、２０００サイクル）を超えた場合と、フォース・プロファイルが既に更新されたことを示すビット又はフラグがまだセットされていない場合は、次の２つの完全運転に基づいてフォース感度プロファイルを更新するためにフラグを設定することができる。
【０１０２】
移動限度の確立と監視
次に図２２と図２３を参照して、ドア移動限度の確立について述べる。オペレータ・プロセッサが、最初に「学習」モードになっている場合、これらの限度は、最初に、「ユーザ」（例えば、住宅所有者、設置者）によって、ドアの完全開放／閉鎖中に、主マイクロコントローラ１０００（図１０）と関連付けられたメモリに、より詳細には独立型オンボードＥＥＰＲＯＭ１０１６に設定（記憶）されてもよい。具体的には、プロセッサの学習モードは、当初はヘッド・ユニット上のボタンスイッチのユーザ操作によって実現することができる。次に、閉位置から例えば、上方にドアを移動させるモータの動作後、ユーザは適切なボタンを押すことができ、ユーザはドアが所望の「開」位置に達したときにドアを停止し、この位置は、上方移動限度２３００として記憶される。次に、オペレータは、ドアを閉じように動作され、ユーザは、所望の「閉」位置に達したときに同じようにドアを停止し、そのとき下方移動限度２３０２が記憶される。あるいは、ユーザは、最初にこの手順を使用して選び移動下限を設定し記憶し、次に、オペレータ２０が後で「オペレート」モードに移行したときに移動上限を設定し記憶し、電子的に設定された移動上限と移動下限が、ドア移動の範囲を画定する。
【０１０３】
ドアの位置を決定する方法は、光ビームが中断されたときに電圧パルスを出力する光学的光ビーム・センサを使用する。具体的には、光学ホイール１０１３Ａ（図１０と図２２）が、モータ２８のシャフトに取り付けられる。モータ・シャフトが回転するときにホイール１０１３Ａの歯又はパドルがビームを遮断し、主マイクロコントローラ１０００へのパルスを中断させる。この目的で、ＴＯＲＭＡＴＩＣ（登録商標）から入手可能で、米国特許第７，３３９，３３８号（全ての目的のために参照により全体が本明細書に組み込まれる）に記載されたようなマルチパドル（即ち、４個、８個、１２個など）光学ホイールを使用することができる。受けた割込み数の追跡することによって、主マイクロコントローラ１０００は、ドアがレールを上昇下降するときのドアの位置を知り監視することができる。ドアがどちらかの方向に移動するとき、ステップ１１４０（図１１を参照）でカウンタを増減することができる。
【０１０４】
移動限度設定プロセスで、このカウンタから数を取得しＥＥＰＲＯＭ１０１６（図１０を参照）に記憶することができ、これらの数は、「上方」（ドア開放）移動限度２３００と「下方」（ドア閉鎖）移動限度２３０２に対応する。ＥＥＰＲＯＭ１０１６に記憶されたこれらの移動限度は、このときから、トラック１４及び１６（図１）の端でドアを止めるまで（又は、移動限度がリセットされるまで）使用することができる。換言すると、主マイクロコントローラ１０００（図１０）が、トラックの上方及び／又は下方にドアを移動させているとき、ステップ１１４２（図１１）で、ステップ１１４０で更新された位置カウンタの値をそれらの事前設定された限度に対して確認し続けることができ、これにより、ドアの移動位置が移動限度位置と同じときにモータを遮断することができる。主マイクロコントローラ（図１０を参照）は、移動限度２３００及び２３０２が設定されるまでドアの動きを禁止することができる。オペレータ・ヘッド・ユニット２６上のＬＥＤ１０４０が、この状態を示す。
【０１０５】
言及したように、光学的センサは、光学ホイール１０３０Ａが光ビームを遮断するたびに主マイクロコントローラ１０００へのパルス中断を生成する。タイマを使用して中断の間の時間を測定することができる。２つの連続した期間の時間を測定することによって、基準パドルが確認されたかどうかを判断することができる（基準パドルでは、２つの期間は、もはや５０／５０ではなくほぼ７０／３０である）。基準パドル２２００は、レール２２に沿ったキャリッジ５０の物理的位置（したがって、トラック１４及び１６に沿ったドア１０の位置）が、意図された位置であることを確かめる確認として使用することができる。特定量の基準パドル２２００が、特定数の非基準パドルに対応しなければならないことが分かるので、基準パドル２２００の回転数を確認として使用することができる。
【０１０６】
バリア・オペレータの様々な実施形態が、様々なタイプのホイール、駆動、モータ及び減速歯車を有することができることを理解されたい。ＣＨＩＰＰＥＷＡ（登録商標）モータを使用するベルト及びチェーン・ユニットの場合は、４分の１減速歯車と連結して１２本歯の外車を使用することができる。ＪＯＨＮＳＯＮ（登録商標）１５００モータを使用するスクリュー駆動ユニットの場合は、４分の１減速歯車と連結して４本歯の外車を使用することができる。したがって、駆動プロファイルは、光学ホイール・パドルの数を含むバリア位置を決定するのに必要な情報を指定することができる。
【０１０７】
開位置では、カウントは、カウンタが決してアンダーフローしないように機械的に摺動する多少の余裕を残すためにゼロより大きい数で始まることができる。基準パルスは、図２３に示されたように逆方向からカウントする。幾つかの実施形態では、ソフトウェア限度は、レール（全てのタイプのスクリュー、ベルト及びチェーンのための）上の１点でのみ再取り付けできる高架移動式滑車を有する機械設計に依存する。この単一点の取り付けがないと、ソフトウェアは、高架移動式滑車が別の位置に再び取り付けられた場合にドアの真の位置に対する配慮が（知らないうちに）なくなる。単一接続点の場合、ソフトウェアは、限度のずれなしに常にドアを正確に追跡することができる。この正確さは、電力入力が安定しているときの条件下のみならず、如何なる電源異常（又は、電圧低下）の場合でも達成することができる。
【０１０８】
次に図１０と図１１に戻り、それらを全般的に参照すると、手順１１３２の停止モードは、モータを停止するプロセスを開始する。その主な目的は、モータを無効にすることであるが、幾つかの状態変数を修正する役割もする。例えば、拡張バス・メッセージをキューに入れ、副マイクロコントローラ１００２に送ってモータ継電器を無効にすることができ、またこのメッセージは、バリアが限度で停止したかどうかに関する情報を含むことができる。
【０１０９】
停止モードは、ほぼ完全な運転に応じて、ドア開放又はドア閉鎖と関連付けられ、異常なフォースに遭遇したことを判断するために使用される１組のフォース点（例えば、ドア開放の場合は５個のフォース点、ドア閉鎖の場合は８個のフォース点）を記憶することができる。これらの組のフォース点のコピーは、ＥＥＰＲＯＭ１０１６に記憶されＥＥＰＲＯＭ１０１６から初期化されるか、ＣＲＣ障害の場合にゼロに設定され、限度較正後の最初の完全開放運転でのモータ停止後に埋められてもよい。例えば、ほぼ完全運転（例えば、上限と下限の１つの光学ホイール回転の範囲内で）が行われた場合、移動方向の１組のフォース点は、まだ作成されていないか更新を必要とする場合に、ＥＥＰＲＯＭ１０１６に作成されてもよい。制限又は制限運転が完了しなかった場合は、このプロファイルを、次の運転で更新するように設定することができる。停止モードを完了させるために、現在位置をアイドル位置として記録することができ、モータ方向をオフに設定することができ、運転時間をゼロに設定することができる。その場合、次の方向フィールドをトグルすることができ、目標時間（即ち、光学ホイール上のパドル間で予想されるマイクロ秒数）をゼロに設定することができる。
【０１１０】
手順１１３２に続いて、主ループの一番下で、ローカル・サイクル・カウンタとサイクル・カウンタを増分することができる。ローカル・サイクル・カウンタが、カウンタを１日１回リセットするように選択された所定のしきい値以上である場合は、カウンタの日をＥＥＰＲＯＭ１０１６内で増分することができ、またローカル・サイクル・カウンタをリセットすることができる。この時点で、ワォッチドッグ・タイマをリセットすることができ、またステップ１１０２で、このタイマを観察して、タイマが、ループを再開するまでにこのサイクルで５０ミリ秒が経過したことを示すのを待つことができる。次のループ繰り返しを待っている間、モータ・モードが運転モードでない場合は、ＥＥＰＲＯＭタスク・ステップ１１３６を行なうことができる。主マイクロコントローラ１０００は、ＥＥＰＲＯＭ１０１６の１２８バイトのコピーをＲＡＭに記憶し、また、値が変化した場合に設定することができる対応する１組の１２８個のフラグを有することができる。ＥＥＰＲＯＭキュー・システムは、サイクル中に変化したデータの書き込みをキューにすることができる。例えば、モータ構成が変更された場合は、この値を書き込むことができ、またＣＲＣが更新される。各変更データ・ビットは、変更されたビットを変更アレイで有することができる。ステップ１１３６で、ＥＥＰＲＯＭデータの変更ビット（下から上）を確認することができ、変更が見つかり、ＥＥＰＲＯＭ１０１６が使用中でない場合は、バイトをＥＥＰＲＯＭ１０１６に書き込むことができる。ＥＥＰＲＯＭ１０１６は、書込みサイクルが完了したときにＡＣＫ（「０」）を返すことができる。ＥＥＰＲＯＭ１０１６をポーリングすることができ、またＡＣＫを返した場合に、書き込みを開始することができる。
【０１１１】
前述のように、バリア・オペレータ・システムのヘッド内の副マイクロコントローラ１００２は、２つの主な役割を有することができる。第１は、システム内の安全二重確認として働くことである。副マイクロコントローラ１００２は、安全確認を行なうことができ、また適切なとき、モータを無効にするか、他の安全と関連した機能を実行することができる。安全確認は、主マイクロコントローラ１０００が良好な状態であることを保証するために幾つかの基本的な健全確認を含むことができる。第２に、副マイクロコントローラ１００２は、外界に対する幾つかのインタフェース機能（例えば、ＫＥＥＬＯＱ（登録商標）プロトコルの管理）を提供することができる。
【０１１２】
前述のように、副マイクロコントローラ１００２は、拡張バス１００４を介して主マイクロコントローラ１０００と通信することができる。このタスクにＭＳＳＰ１０４３を使用することができる。副マイクロコントローラ１００２は、アダプタ１０３４からの特定のメッセージを処理する役割をすることができる。これらのメッセージは、拡張バス１００４プロトコルを介して副マイクロコントローラ１００２に転送されてもよく、応答は、主マイクロコントローラ１０００がアダプタ１０３４に転送する未熟リクエストとして送られてもよい。
【０１１３】
前述のような拡張バス１００４に加えて、副マイクロコントローラ１００２は、１つ又は複数の追加線を介して主マイクロコントローラと通信することができる。例えば、リモート検出線１０４４をハイに設定して、ＫＥＥＬＯＱ（登録商標）コマンドを受け取ったことを主マイクロコントローラ１０００に伝えて、ドアを開くことができる。線１０４４は、所定の長さの時間（例えば、６００ミリ秒）後にローに設定することができる。主マイクロコントローラ１０００は、このパルスが所定の長さの時間以内に処理されなかった場合、主マイクロコントローラ１０００が使用中か、又はＳＴＢ１０３０又は他のイベントがバリアを停止していると想定することができる。更に、主マイクロコントローラ１０００が別の線１０４６をローに駆動して、障害が発生したことを示すことができる。副マイクロコントローラ１００２は、拡張バス１００４メッセージを探すのを止め、オペレータＵＩを無効にし、モータ・イネーブル及びライト継電器を無効にすることができる。これが行われた後で、副マイクロコントローラ１００２は、そのオペレータＬＥＤ１０４０の両方を赤に点滅させて停止を示すことができる。この時間中、副マイクロコントローラは、新しいループを開始する信号としてタイマ１０４８オーバーフローフラグを使用して、６５ミリ秒ループ時間で実行することができる。
【０１１４】
オペレータＵＩは、ユーザが、速度をプログラムし、フォース限度を調整し、ドア限度を較正し、リモコンを学習することを可能にすることができる。更新された値は、ユーザ入力に基づいて拡張バス１００４を介して主マイクロコントローラ１０００に送ることができる。アイドル状態のとき、オペレータＵＩは、状態ＬＥＤ１０４０で特定の障害状態を表示することができる。一般的な障害状態は、非較正限度、トルクアウト、休止モードなどの可能性がある。また、これらのＬＥＤ１０４０を使用して、モータがアイドル状態の間に有効ＲＦ信号が聴取されたことを示し、ＲＦ信号が、あるアクセス・コード・プロトコル（例えば、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉ）のものであったか、別のアクセス・コード・プロトコル（例えば、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩ）のものであったかを示すことができ、この詳細は後で述べる。ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩとＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩは、本出願の発明の譲受人であるＯｖｅｒｈｅａｄ  Ｄｏｏｒ  Ｃｏｒｐｏｒａｔｉｏｎによって開発され使用される２つの異なるアクセス・コード・プロトコルのそれぞれの名称である。
【０１１５】
ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉアクセス・コード・プロトコルは、本発明の譲受人に譲渡された米国特許第６，６６７，６８４号、具体的には４列４９行〜６列１５行に記載されており、この特許全体は、全ての目的のために参照により本明細書に組み込まれる。バリア・オペレータ２０のコントローラ・ソフトウェアは、ある組のトランスミッタ５３からのＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉコード伝送と、別の組のトランスミッタ５３のＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩコード伝送の両方を復号するのに有効であり、後者は、図２５に関して後で述べるように安全署名ビットを利用する。
【０１１６】
ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩアクセス・コード・プロトコル
ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩコードは、図２５に関して後でより詳細に述べられ、ローリング・コードからＣＲＣチェックサムを生成することとローリング・コードをデジタル署名で署名することを含む。その場合、このコードは、７２ビットのローリング・コードに達するように、シリアル番号を最初に追加し、未署名のローリング・コードの一部を最後に追加することができる。ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩコード・プロトコルは、１６ビット同期カウンタの代わりに２４ビット同期カウンタを使用する。したがって、２４ビット以外で１６ビットではないＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉコード・バージョンと同じ暗号化プロセスを使用して３２ビット・ホッピング・コードを生成し始めることによってＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉコードバージョンと区別することができ、同期カウンタは、暗号化が適用されるシードに含まれる。次に、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩコード・プロトコルは、３２ビット・ホッピング・コードからチェックサムを計算する。その後で、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩコード・プロトコルは、そのチェックサムの一部とそのホッピング・コードの一部からなるシードに復号化プロセスを適用する際に６４ビット署名鍵を使用し、それにより、新しい３２ビット・ホッピング・コードが生成される。次に、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩコード・プロトコルは、２８ビット・シリアル番号と第１のホッピング・コードの別の部分を第２の３２ビット・ホッピング・コードに付与して、最終的に７２ビット・コード・ワードになる。
【０１１７】
アクセス・コードの伝達
携帯型トランスミッタ５３（及び、無線ＲＦ伝送するときにはキーパッド・コンソール）は、各チャネル（そのような伝送と同期して切り換えるドア開閉装置２０内のレシーバ）で送られる所定の数（例えば、５）の同一情報パケット（例えば、ＫＥＥＬＯＱ（登録商標）情報パケット）に応じて、３１５Ｍｈｚと３９０Ｍｈｚ  ＲＦ伝送を自動的に切り換える。レシーバは、この切り換えによって、最も強い信号を選択することができる。この機能に関する更なる詳細は、本発明の譲受人に譲渡された米国特許出願第２０１０／０３０１９９９号に見ることができ、この開示は、全ての目的のために参照により全体が本明細書に組み込まれる。
【０１１８】
本明細書で述べる本発明の別の特徴によれば、トランスミッタ５３は、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉアクセス・コードとＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩアクセス・コードの両方を送信するために前後に切り換わる能力を有する。具体的には、説明図のように、ユーザは、トランスミッタ上のボタンを所定の時間押し続けた後で押し下げを確認し、またソフトウェア制御にしたがって、トランスミッタは、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉコード伝送を送信する働きをすることができ、その手順の前は、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩアクセス・コードだけを送信していた。
【０１１９】
オペレータ２０内のレシーバは、また、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉ又はＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩ伝送を復号化する機能を有する。例えば、ユーザは、オペレータを「学習」モードに移行した後、最初に、以前に学習したＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩコードをトランスミッタから送信することができ、またレシーバは、そのために時間ウィンドウを開いてＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉ信号を聴取して応答し、その時にＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉコードを有するトランスミッタが作動し、レシーバは、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉコードを学習する。
【０１２０】
したがって、ＬＥＤ１０４０は、受け取った信号のタイプにより異なる色を点滅させることができる。更に、これらのＬＥＤ１０４０を使用して、学習モード状態を示すことができる。例えば、右のＬＥＤは、信号の学習を待つ間に１つの色（例えば、紫）を点滅させることができる。また、学習されたＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩリモートを聴取する場合は、新しいＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉリモートを受け入れるための特定の時間ウィンドウ（例えば、３０秒）が開かれたとき、両方のＬＥＤ１０４０は、この３０秒ウィンドウで中紫を点滅させることができる。更に、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉリモートが聴取された場合、両方のＬＥＤ１０４０は、再び聴取されるまでソリッドカラー（例えば、紫）のままでいることができ、その時点で、リモコンを許可する情報を内部ＥＥＰＲＯＭに保存することができる。しかしながら、ユーザが、リモコンを学習するためのウィンドウが開かれている間に、リモコン上の上方ボタンと下方ボタン両方を押し、それを必要な時間期間（例えば、３秒）保持した場合、学習されたＫＥＥＬＯＱ（登録商標）情報パケットを全て消すことができ、ＬＥＤ１０４０は、この操作の完了の適切な確認を提供することができる。
【０１２１】
副マイクロプロセッサ及び関連ソフトウェア・ルーチン
副マイクロプロセッサ１００２のタイマ１０４８は、自立型タイマとして使用することができる。例えば、タイマ１０４８を２倍プレスケーラで設定して、タイマ１０４８に１ミリ秒パーティックの分解能と、６５及び５３５ミリ秒オーバフローを提供することができる。幾つかの実施形態では、オーバーフロー割込みがないことがあるが、割込みフラグはポーリングすることができる。タイマ１０４８を使用して、主マイクロコントローラ１０００が拡張バス１００４を介して通信する速度を決定し、間違ったレートでポーリングしているかどうかを判断することができ、その結果、主マイクロコントローラが、適正な速度で動作しており、ＫＥＥＬＯＱ（登録商標）タスクにも使用できることを確認することができる。
【０１２２】
副マイクロコントローラ１００２は、幾つかの追加タイマ、内部発振器、及び補助装置を有することができる。例えば、ブザー警報１０５８のＰＷＭに、タイマ１０５４とＣＣＰ２  １０５６を使用することができる。タイマ１０５４は、１６倍プレスケーラと、ＯｘＦＦの周期レジスタとにより構成することができる（即ち、１２２ヘルツの近似ＰＷＭ周波数）。デューティ・サイクルを５０パーセントに設定することができる。また、マイクロコントローラを例えば８メガヘルツで動作させるように内部発振器を設定することができ、その結果、副マイクロコントローラ１００２は、１０分の５マイクロ秒ごとに１指令の速度を有する。図１２に関して後で述べるＫＥＥＬＯＱ（登録商標）割込みは、副マイクロコントローラ１００２の処理能力の大部分を消費することができる。したがって、動作上の指令時間は、１０分の５マイクロ秒より長くてもよい。更に、ワォッチドッグ・タイマ（ＷＤＴ）１０６０を、ＷＤＴ１０６０がクリアされない場合にマイクロコントローラを１４４ミリ秒ごとにリセットするように設定することができる。また、ＫＥＥＬＯＱ（登録商標）システムがタイマ１０６２を使用して、レシーバ１０６６に接続されたＲＦ回線１０６４をポーリングすることができる。タイマ１０６２は、例えば、６０マイクロ秒で割り込みをするように設定することができる。更に、運動検出器１０６８は、補助装置に利用される副マイクロコントローラ１００２の端子に有線接続されてもよい。補助装置が、動きを検出した場合は、ヘッドライト１０７０を、ライトを所望の長さの時間（例えば、４分）点灯するように選択された所定数のサイクルで点灯することができる。
【０１２３】
副マイクロコントローラ１００２は、ＫＥＥＬＯＱ（登録商標）シリアル番号やＫＥＥＬＯＱ（登録商標）同期カウンタなどの構成値を記憶するために使用される内部ＥＥＰＲＯＭを有することができる。この内部ＥＥＰＲＯＭへの１バイトの最悪ケース書込み時間は、例えば、６ミリ秒である。内部ＥＥＰＲＯＭのバイトは、種々のタイプのバイトを記憶するように構成することができる。例えば、第１の記憶されたＫＥＥＬＯＱ（登録商標）リモートの同期カウンタは、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉリモートの場合には弁別ビットの下位８ビットを保持する上側バイトと共に記憶される。また、内部ＥＥＰＲＯＭを使用して、第１のリモコンのタイプ情報を記憶することができる。更に、記憶されたリモコンごとに、内部ＥＥＰＲＯＭは、符号化方式（ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉ又はＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩ）と、そのリモコンが付属リモコンかドアリモコンかを記憶することができる。
【０１２４】
次に図１２〜図２０を参照すると、副マイクロプロセッサ１００２のソフトウェア処理の流れ図について述べる。プロセスは、初期化手順１２００（図１２）と、主同期タスク１２０２から始まることができる主ループとを含む。主同期タスク１２０２は、主マイクロコントローラ１０００からの新しいリクエストを待つことができる。主マイクロコントローラ１０００が新しいリクエストを定期的（例えば、５０ミリ秒ごと）に送る場合、主同期タスク後のタスクは、定期的（例えば、５０ミリ秒に１回）に呼び出されると仮定することができる。そのようなタスクは、システムを検証し、不安定な場合にモータ使用を防ぐ安全タスク１２０４と、ＬＥＤで故障を表示し、プログラム及び上／下方ボタン押しを処理するオペレータＵＩタスク１２０６とを含むことができる。主ループ内のタスクは、更に、完了したＫＥＥＬＯＱ（登録商標）パケットを処理するＫＥＥＬＯＱ（登録商標）タスク１２０８と、運動検出器を確認し、所定の持続時間後にライトと警報を消すライト／警告タスク１２１０とを含むことができる。
【０１２５】
図１３を参照すると、初期化手順１２００（図１２）は、最初にステップ１３００で、副マイクロコントローラ１００２の汎用入出力ポートを準備し、その後で主マイクロコントローラ１０００をリセット状態に保持することができる。判断ステップ１３０４で、リセットの原因が、ＷＤＴ１０６０（図１１）であると判定された場合は、ステップ１３０６で、マスタ・マイクロコントローラ１０００のリセット数を記録するカウンタを増分することができる。そうでない場合、ステップ１３０８で、起動イベントを発行し、リセット数を記録するカウンタをゼロに設定することができる。次に、ステップ１３１０で、内部発振器、タイマ１０４８、１０６２及び１０５４、ＷＤＴ１０６０、並びにＰＷＭを、前述のように準備することができる。最後に、ステップ１３１２で、内部ＥＥＰＲＯＭ、拡張バス（例えば、Ｉ２Ｃスレーブ・アドレスを設定ファイルに記憶された値に設定する）、ＡＤＣ及び指定された安全メモリ、ヘッドライト、警報、オペレータＵＩ、及びタイマ１０６２（図１１を参照）割込みサービス・ルーチン（例えば、入ってくるＫＥＥＬＯＱ（登録商標）ＲＦデータを復号化し記憶する）に初期化を実行することができる。
【０１２６】
次に図１４に移ると、主同期タスク１２０２（図１２を参照）は、ステップ１４００で、変数をタイマ１０４８（図１１を参照）の値と等しく設定することができ、それにより、判断ステップ１４０２Ａ及び１４０２Ｂで、タイマの最大値がオーバフローしたかどうかを判断することができる。これらの判定は、ステップ１４００で記録された値と、ステップ１４０２Ａ及び１４０２Ｂでのそれぞれのタイマ値との差と、その差が最大オーバフローしきい値を超えるかどうかとに基づくことができる。この最大オーバフローしきい値を超えると、ステップ１４０４Ａ及び１４０４Ｂで、適切なタイマ・オーバフロー・イベントがトリガされることがある。
【０１２７】
ステップ１４００に続いて、ステップ１４０６で拡張バス・リンク・タスクを行なうことができ、この拡張バス・リンク・タスクについては、図１５で詳述される。図１５で、拡張バス・リンク・タスクは、最初にステップ１５００で、前述のようにＩ２Ｃ割込みサービス・ルーチンによって設定されたフラグをポーリングすることができる。フラグが設定されない場合は、拡張バス・リンク・タスクを省略することができる。そうでない場合、判断ステップ１５０２で、アドレス・バイトが観察されるかどうかを判断することができる。アドレス・バイトが観察された場合は、最後の２つのタイマ１０４８値を記録するように拡張バス・タイマ変数を設定することができ、それにより、ステップ１４０８（図１４を参照）で、これらの値を比較して、主同期タスク１２０２（図１２を参照）のレート・エラーを決定することができる。次に、判断ステップ１５０６で判定されるように、読取りが行われるか書込みが行われるかによって、判断ステップ１５０８及び１５１０で、拡張バス受信キューが、処理しなければならないパケットを含むかどうか、又は拡張バス送信キューが、送信しなければならないパケットを含むかどうかを判断することができる。例えば、ステップ１５０８及び１５１０は、これらの状態を示すためにセットされたフラグを確認することによって行うことができる。ステップ１５０８で、受信キューが既にパケットを含むと判定された場合は、ステップ１５１２で、新しく受信されたパケットを無視することができる。そうでない場合は、ステップ１５１４で、新しいパケットを読取り受信キューに記憶することができ、ステップ１５１６で、受信キューがパケットを含むことを示すフラグを設定することができる。ステップ１５１０で、送信キューがパケットをまだ含んでいないと判定された場合、ステップ１５１８で、ヌル値を全てに送ることができる。そうでない場合は、ステップ１５２０で、送信キュー内のパケットを送ることができ、ステップ１５２２で、送信キューが空であることを示すフラグを設定することができる。
【０１２８】
次に図１４に戻ると、ステップ１４０６で行なわれた拡張バス・リンク・タスクに続いて、判断ステップ１４１０で、受信キュー内にパケットがあることを示すフラグが設定されているかどうか判定される。フラグが設定されていな場合は、判断ステップ１４０２は、タイマ１０４８（図１１を参照）の過度のオーバフローが起きたかどうかを判断する。その場合は、ステップ１４０４Ａで、タイムアウト・イベントがトリガされ、処理はステップ１４００に戻る。そうでない場合、処理は、ステップ１４０６に戻る。しかしながら、判断ステップ１４１０に合格した場合は、前述のようにステップ１４０８でタイマ値を比較して、通信のレートが予想範囲内にあるかどうかを判断する。その場合と、判断ステップ１４１２で、再試行フラグが、再試行を妨げるようにセットされていると判定された場合は、ステップ１４１４で、レート・イベントがトリガされ、ステップ２０００（図２０を参照）で、ＬＥＤが点灯されて不良状態を示し、ステップ２００２（図２０を参照）で、モータ継電器が無効にされ、モータが有効にされていないことを示すフラグが設定される。
【０１２９】
判断ステップ１４１２で、再試行フラグが、再試行を阻止するようにセットされていないことを判定された場合、ステップ１４１６で、再試行の試みを阻止するように再試行フラグを設定することができる。次に、ステップ１４０８に続いて、レートが許容範囲内にある場合は、ステップ１４１６に続いて、判断ステップ１４１８で、シーケンス番号が有効かどうかを判断することができる。そのような場合、また判断ステップ１４２０で、ＣＲＣが有効であると判定された場合は、ステップ１４２２で、再試行の試みを許可するように再試行フラグを設定することができ、拡張バス・リクエスト処理ステップ１４２４で、拡張バス・リクエストを処理することができる。
【０１３０】
図１６に一時的に移行すると、拡張バス・リクエスト処理ステップ１４２４（図１４を参照）を実行するプロセスは、最初に、どんな種類のリクエストが処理されるかを決定することができる。例えば、ステップ１６００〜１６１２で、リクエストが、ドア状態リクエスト（即ち、ステップ１６００）、ライト・コマンド（即ち、ステップ１６０２）か、警報サイレン（即ち、ステップ１６０４）、ＳＴＢエラー・ロックアウト・コマンド、熱的過負荷又はフォース・エラー（即ち、ステップ１６０６）、モジュール識別リクエスト（即ち、ステップ１６０８）、電圧／電流読出しリクエスト（即ち、ステップ１６１０）、又は未熟パケット取得リクエスト（即ち、ステップ１６１２）であるかどうかを判断することができる。リクエストの処理は、これらの状態により異なることができる。しかしながら、リクエストが全く認識されない場合は、ステップ１６４８で、リクエストが未知であったことを示すために拡張バスを介して送るメッセージがキューに入れられ、続いてステップ１６２４で、拡張バス状態フラグを設定して、拡張バスが、送信する準備ができており、受信する準備ができていないことを示す。
【０１３１】
ステップ１６００でドア状態リクエストの場合は、判断ステップ１６１４で、バリアが開いているかどうかを更に決定することができる。そのような場合は、ステップ１６１６で、モータを有効にすることができ、そうでない場合はステップ１６１８で、モータを無効にすることができる。ステップ１６１８でモータを無効にすることは、モータが無効されることを示すフラグを設定することと、モータ・イネーブル端子を無効にすることも含むことができる。これに対して、ステップ１６１６でモータを有効にすることは、モータが有効にされたことを示すフラグを設定することを含むが、モータ駆動端子をオンすることを含まない。いずれの場合も、ステップ１６１６及び１６１８は両方とも、ステップ１６２０に続くことができ、そこで、ＳＴＢオペレータ・ユーザ・インタフェース故障及び／又はフォース・オペレータ・ユーザ・インタフェース故障を示すフラグをクリアすることができる。次に、ステップ１６２２で、リクエストの完了を示す応答メッセージをキューに入れることができ、またステップ１６２４で、前述の拡張バス状態フラグを設定することができる。
【０１３２】
ステップ１６０２で、ライト・コマンドの場合、ステップ１６２６で、ライト制御グローバルを設定することができ、ステップ１６２８で、要求に応じてライトをオン・オフすることができる。前述のように、ステップ１６２８の後に、ステップ１６２２及びステップ１６２４が続くことができる。同様に、ステップ１６０４で、警報サイレンの場合は、ステップ１６３０で、警報制御グローバルを設定することができ、ステップ１６３２で、要求に応じて警報をオン・オフすることができる。前述のように、ステップ１６３２の後に、ステップ１６２２及びステップ１６２４が続くことができる。しかしながら、ステップ１６０６で、ＳＴＢエラー・ロックアウト・コマンド、熱的過負荷又はフォース・エラーの場合は、ステップ１６３４で、オペレータＵＩ障害をクリアすることができる。次に、それが、フォース・エラー又はＳＴＢエラー・ロックアウト・コマンドの場合は、ステップ１６３６で、モータを無効にすることができ、これは、モータ駆動端子を無効することと、モータが有効にされないことを示すモータ・イネーブル・フラグを設定することを伴うことができる。次に、前述のように、ステップ１６３６の後で、ステップ１６２２及びステップ１６２４が続くことができる。
【０１３３】
ステップ１６０８でモジュール識別リクエスト、又はステップ１６１０で電圧／電流読出リクエストの場合は、ステップ１６３８とステップ１６４０でそれぞれ適切な応答メッセージをキューに入れることができ、これらのステップは、後述するステップ１６２４に続くことができる。しかしながら、ステップ１６１２で未熟パケット取得リクエストの場合は、判断ステップ１６４２で、キュー内に未熟パケットがあるかどうかを更に判断することができる。そのような場合は、ステップ１６４４で、未熟パケットを拡張バスを介して送るためにキューに入れることができる。そうでない場合、ステップ１６４６で、データを含まない応答メッセージを拡張バスを介して送るためにキューに入れることができる。いずれの場合も、ステップ１６４４とステップ１６４６は次に、前述のようなステップ１６２４に続くことができる。
【０１３４】
次に図１４に戻ると、ステップ１４２４に続いて、拡張バス・リンク・タスク・ステップ１４２６を行なうことができる。この拡張バス・リンク・タスク・ステップ１４２６は、図１５に関して前に詳細に述べたように、ステップ１４０６で行なわれた同じ手順でよい。次に、判断ステップ１４２８で、拡張バスが送信する準備を示す拡張バス送信フラグが設定される。そうでない場合は、マスタ同期タスク・ステップ１２０２（図１２を参照）を完了することができる。そうでない場合、処理は、前述のようなステップ１４０２Ｂとステップ１４０４Ｂに進み、その後で、やはり前述したようなステップ１４００に戻る。
【０１３５】
シーケンス番号が有効でないと判定された場合は、ステップ１４１８の後で、別の処理分岐に続くことができる。この場合、ステップ１４３０で、再試行の試みを許可する再試行フラグが設定されているかどうかを判断することができる。設定されている場合は、ステップ１４３２で、再試行フラグをリセットして更なる再試行の試みを禁止することができ、またステップ１４３４で、一般応答をキューに入れることができ、その後で、処理は、前述のようにステップ１４２６に進む。しかしながら、ステップ１４３０で、再試行の試みを禁止するように設定されていると再試行フラグが判断した場合は、ステップ１４３６で、シーケンス番号エラーイベントをトリガして、次に前述したようなステップ２０００及び２００２（図２０を参照）に続く。
【０１３６】
ステップ１４２０でＣＲＣが有効でないと判定された場合は、その後で、別の処理分岐をたどることができる。この場合、ステップ１４３８で、再試行フラグが再試行の試みを許可するように設定されているかどうか判断することができる。そのような場合は、ステップ１４３２で、再試行フラグをリセットして更なる再試行の試みを禁止することができ、ステップ１４３４で、一般応答をキューに入れることができ、その後で、処理は、前述したステップ１４２６に進むことができる。しかしながら、ステップ１４３８で、再試行フラグが、再試行の試みを禁止するようセットされていると判定された場合は、ステップ１４４０でＣＲＣエラー・イベントをトリガすることができ、次に前述のようなステップ２０００及び２００２（図２０を参照）に続く。主プロセッサのリセットを要求するイベントが起きた場合、イベント・システムは、モータが既に有効にされている場合はモータを無効にすることができる。
【０１３７】
次に図１７に移ると、モータ安全タスク１２０４（図１２を参照）は、最初に、ステップ１７００でＲＯＭとＲＡＭを検証する。図１８に一時的に移ると、ステップ１８００で、ＫＥＥＬＯＱ（登録商標）タスクが使用中であると判定された場合は、ＲＯＭとＲＡＭを検証するために使用されるプロセスを省略することができる。そうでない場合は、状態変数に記憶された値が、このサイクルにプロセスの３つの分岐要素のうちのどれをたどることができるかを決定することができる。例えば、ステップ１８０２で、状態変数がゼロ値を有すると判定されたときは、ステップ１８０４で、全てのＲＡＭロケーションを検証できるかどうかの判定に続くことができる。そのような場合は、ステップ１８０６で状態変数を増分することができ、したがって、ステップ１７００（図１７を参照）は、サイクルを完了する。ステップ１８０４で、ＲＡＭロケーションを検証できない場合は、ステップ１８０８でＲＡＭ障害イベントをトリガすることができ、これによりこのサイクルのステップ１７００（図１７を参照）が完了する。しかしながら、ステップ１８０２で、状態変数が非ゼロ値を有すると判定された場合は、ステップ１８１０で、全ＲＯＭチャンクを和を取ることができる。次に、ステップ１８１０で合計されたＲＯＭチャンクの数が、ステップ１８１２で、状態変数の値と等しくないと判定された場合は、ステップ１８１４で、状態変数を増分することができ、このサイクルに関してステップ１７００（図１７を参照）が完了する。状態変数が、ステップ１８１０で合計されたＲＯＭチャンクの数と一致するようにステップ１８１２で決定された値まで増分された後、ステップ１８１６で、ＲＯＭ和を検証できるかどうかを決定することができる。そうでない場合は、ステップ１８１８で、ＲＯＭ障害イベントをトリガすることができる。いずれの場合も、ステップ１８１６に続いて、このサイクルのステップ１７００（図１７を参照）を終了する前に状態変数値を０にリセットすることができる。
【０１３８】
次に図１７に戻ると、ステップ１７００に続いて、モータ継電器及び／又は急停止継電器を無効又は有効にするかどうかに関して幾つかの判定を行うことができる。これらの判定に関して、幾つかの実施形態では、モータ・イネーブルが活動化される前に急停止継電器が常に無効にされることを理解されたい。また、モータ・イネーブル継電器１０１９が非活動化されたとき、急停止遅延カウンタをある数（例えば、５０ミリ秒）に設定することができ、これにより、モータ・イネーブル継電器１０１９が非活動化された５０ミリ秒後に急停止継電器が活動化できるようになることを理解されたい。更に、モータ・イネーブルを活動化する前に、交流電力障害ラインを確認できることを理解されたい。このラインがハイ（アクティブ）の場合、停電イベントをトリガすることができ、それにより、モータ・イネーブル継電器１０１９が一時的に無効にされる。しかしながら、交流電力障害ラインがロー（非アクティブ）になった場合と、モータが有効にされたことを示すフラグが設定された場合は、モータ・イネーブル継電器１０１９を再び活動化することができる。更に、モータが、バッテリ・バックアップで始動された場合は、運転中に電力が回復したときにモータ・イネーブルの活動化を阻止することができる。代わりに、モータ・イネーブルは、バッテリ・バックアップでの運転の完了を可能にするように非活動化されたままでよく、次の運転は、通常動作に戻ることができる。更に、重大な障害状態を示すフラグが設定された場合は、急停止継電器の活動化を防止することができ、したがって、構成要素の故障の場合の危険な状態が防止される。最後に、交流電力障害ラインがアクティブ（ハイ）の場合、急停止継電器は、モータを無効にした後で２５０ミリ秒間だけ活動化されたままにすることができ、これにより、電力障害の場合の急停止が行なわれるが、バッテリ・バックアップが接続されている場合は、その無駄な消費が回避される。
【０１３９】
ステップ１２０４（図１２を参照）を実行する例示的な手順は、ステップ１７００に続いて、ステップ１７０２で直流電流を読み出し、値を変数で記憶することを含むことができる。次に、ステップ１７０４で、交流電力異常がアクティブであると判定された場合と、ステップ１７０６で、バッテリ・バックアップ装置が接続されていないと判定された場合は、ステップ１７０８で電源異常イベントをトリガすることができる。しかしながら、ステップ１７０６で、バッテリ・バックアップ装置が接続されていると判定された場合は、ステップ１７１０で、モータ継電器１０１９を無効にすることができる。そうでない場合、ステップ１７０４で、交流電力障害がアクティブでないと判定された場合は、ステップ１７１２で、モータが有効にされていることを示すフラグが設定されているかどうかを判断することができる。そうでない場合は、ステップ１７１４で、急停止遅延カウンタがゼロ値であるかどうかの別の判定をすることができる。そのような場合は、ステップ１７１６で、急停止が有効にされていることを示すフラグが設定されているかどうかの更なる判定を行うことができる。そうでない場合は、ステップ１７１８で、急停止継電器を有効にすることができ、またステップ１７２０で、急停止が有効にされていることを示す急停止フラグを設定することがでる。次に、ステップ１７２２で、急停止遅延カウンタを２にセットすることができる。
【０１４０】
ステップ１７１２で、モータが有効にされていないことを示すモータ使用可能フラグが設定されたことが判定された場合は、ステップ１７２４〜１７２８で、急停止が有効にされていることを示すフラグが設定されているかどうか（即ち、ステップ１７２４）、急停止遅延カウンタがゼロ値かどうか（即ち、ステップ１７２６）、及び交流電力障害がアクティブかどうか（即ち、ステップ１７２８）を更に判断することができる。急停止が、まだ有効にされていない場合は、急停止遅延カウンタがゼロであり、交流電力障害がアクティブではなく、ステップ１７３０でモータ継電器は有効にすることができる。他方、ステップ１７２４で、急停止が有効にされていると判定されたが、ステップ１７３２で、急停止遅延カウンタ値がまだゼロになっていない場合は、ステップ１７３４で急停止継電器を無効にすることができ、ステップ１７３６で、急停止が有効にされていないことを示す急停止フラグをリセットすることができる。
【０１４１】
ステップ１２０４（図１２を参照）を実行するための例示的な手順の終わりに、急停止遅延カウンタと、主マイクロコントローラ１０００（図１０）のリセット数を記録するカウンタとを管理することができる。例えば、ステップ１７３８で、急停止遅延カウンタ値がゼロより大きいかどうか判定することができ、その場合は、ステップ１７４０で、このカウンタを減分することができる。また、ステップ１７４２で、マスタ・リセットの数を記憶するカウンタを減分するためのサイクル数が超えたかどうかを判断することができる。そのような場合は、ステップ１７４４で、このカウンタも減分することができる。
【０１４２】
次に図１９と図２０に移ると、ステップ１２０６（図１２）は、ＬＥＤ１０４０（図１０）に障害を表示し、上方、下方及びプログラム・ボタン１０７２（図１０を参照）の押し下げを操作することができる。ステップ１９００〜１９１２は、ボタンのデバウンスを行い、ボタン押し下げ持続時間を確認し、障害を表示し、較正に応答し、メニュー選択を設定し、またユーザが、限度を設定した場合は、限度設定手順へのエントリを実行することができ、ステップ２００４〜２０３８は、限度を設定するためのモード変数とフラグを設定し、主マイクロコントローラ１０００と共に確認して限度設定を実行できるかどうかを判定し、主マイクロコントローラと協力して限度設定手順を行なうことができる。
【０１４３】
性能特性を定義するモータ構成ビット
ステップ１９１４で、ユーザの選択が、バリア（ドア）速度を設定する選択であると判定された場合は、ステップ１９１６で速度選択を得ることができ、ステップ１９１８で、選択された速度調整を示すために拡張バスを介して送るメッセージをキューに入れることができる。ユーザがバリア速度を調整できるようにするために、行列を使用して、存在する駆動及びモータ・タイプに基づいて幾つかの事前設定されたオプションを提供することができる。例えば、この行列は、交流モータと直流モータの両方による、スクリュー、ベルト及びチェーン駆動の「良好」、「より良好」及び「最良」を定義することができる。本発明のこの特徴による良好／より良好／最良の特徴は、ソフトウェアの違いである。したがって、幾つかの実施形態では、１つのソフトウェア・イメージが、種々のタイプの駆動及びモータを有する一連のバリア開閉器製品における全てのタイプのモータ及び駆動システムを制御することができる。ソフトウェアは、ＥＥＰＲＯＭ１０１６（図１０）に記憶された値から動作するユニットのタイプを決定することができ、この値は、工場でＥＥＰＲＯＭ１０１６にプログラムすることができる。例えば、本発明の固有の特徴のうちの１つによれば、モータ構成ビットを工場でＥＥＰＲＯＭ１０１６（図１０を参照）にプログラムすることができ、またこれらのビットは、ユニットが起動しているときはいつでも読み出すことができる。したがって、ソフトウェアに関して、あるべきユニットのタイプ（ベルト、チェーン、スクリュー／良好、より良好、最良）を識別することができる。この情報は、モータから提供される性能のレベルを示す。このようにして、１つのソフトウェア・イメージが、モータ・タイプ又は駆動タイプの種類にかかわらず全てのオペレータを制御することができる。
【０１４４】
直流モータの速度は、特に、オペレータの特性に依存することがある。例えば、直流式では、ソフトウェアは、移動されるドアのタイプ（例えば、カリフォルニア一体型又は分離型）を決定し、この決定に応じて速度を適切に調整することができる。更に、直流モータ・バージョンでは、ユニットのタイプが、ベルト駆動かチェーン駆動かスクリュー駆動か、又は提供される性能が「良好」か「より良好」か「最良」かを示すモータ構成ビットを、工場でＥＥＰＲＯＭ１０１６にプログラムすることができる。モータ動作中、ソフトウェアは、起動時にこれらの要素を考慮し、その特定ユニットのモータ１０２２が駆動される速度を自動的に識別し調整することができる。次に、ソフトウェアは、光学断続器１０２０（図１０を参照）の出力を監視して、実速度が目標速度と一致するようにすることができ、一致しない場合は、ソフトウェアは、ＰＷＭ１０１０を調整し、したがってモータ速度を調整することができる。
【０１４５】
前述のように、ソフトウェアは、ＰＷＭ回路１０１０を使用により直流モータを制御することができる。良好、より良好及び最良としてのチェーン、ベルト及びスクリューの様々なユニットが、住宅所有者に様々な速度を提供することができる。下の表２と表３に、４０ポンド（約１８．１キログラム）のドアのこれらの速度の例を示し、開く速度と閉じる速度がそれぞれインチ／秒で提供される。
【０１４６】
【表２】
2014518966.tif 000004
【表３】
2014518966.tif 000005
【０１４７】
速度を設定するとき、第１のＬＥＤは、例えば、青を３回点滅させ、次に電流設定と、開放速度限度又は閉鎖速度限度が設定されているかどうかを示すことができる。実速度は、良好／より良好／最良オペレータに依存することがある。幾つかの例では、直流ユニットは、交流モータを有する良好なスクリュー駆動の場合を除いて、下方に３つの速度と上方に３つの速度を提供し、その場合、交流モータは、負荷に基づき単一速度でのみ動作する。どの場合も、限度を設定しフォース・プロファイルを決定するときに、デフォルト速度（例えば、１秒あたり５と１０分の５インチ）を使用することができる。
【０１４８】
ステップ１９１６（図１９Ａ）で、ユーザは、所望の値になるまで上方及び下方ボタンを押し、次にプログラム・ボタンを再び押すことによって速度限界を設定することができる。この時点で、第２のＬＥＤは、例えば、第１のＬＥＤが消えるときに青を３回を点滅させることができる。次に、ユーザは、所望の値に達するまで上方及び下方ボタンを押し、次にプログラム・ボタンを押すことによって、閉鎖速度限度を設定することができる。速度限界設定が成功した場合、両方のＬＥＤが、例えば、青を２秒間点灯させ、消えてもよい。成功しない場合は、両方のＬＥＤが、同じように赤を点灯させてエラーを示すことができる。
【０１４９】
同様に、ステップ１９２０で、ユーザの選択が、バリア・フォース感度を設定する選択であると判定された場合、ステップ１９２２で、フォース感度しきい値調整選択を得ることができ、ステップ１９２４で、選択されたフォース調整を示すために、拡張バスを介して送るメッセージをキューに入れることができる。しかしながら、ステップ１９２６（図１９Ｂ）で、ユーザの選択が、学習リモコン手順であると判定された場合、ステップ１９３０で、ＫＥＥＬＯＱ（登録商標）リモコンを学習するＫＥＥＬＯＱ（登録商標）学習開始手順を開始する。この手順において、上方ボタンと下方ボタンの両方が、必要な時間期間（例えば、３秒）押し下げられたままであることが分かった場合は、ステップ１９３２で、メモリに格納された全てのバリア・オペレータ遠隔装置１０３８（図１０）を消去することができ、ステップ１９３４で、ＫＥＥＬＯＱ（登録商標）学習手順を終わることができる。幾つかの実施形態では、ステップ１９３２の消去プロセスは、付属品１０３６であるメモリ遠隔コントローラに残ることができる（図１０を参照）。そうでない場合、上及び下方ボタンが押し下げられたままでない場合は、ステップ１９３４で学習リモコン・プロセスを停止する理由があるかどうかを、ステップ１９３６で判断することができる。例えば、ＫＥＥＬＯＱ（登録商標）リモコンが学習された後、又は幾つかの実施形態ではタイムアウト状態に達した後で、ステップ１９３４で、ＫＥＥＬＯＱ（登録商標）手順を終了することができる。この手順の分岐のどれかの終わりで、前述のようなオペレータ・ユーザ・インタフェース・タスクの成功又は失敗を示すためにＬＥＤ１０４０を操作することができる。タイムアウトは、全てのプロセスの障害指示をトリガすることができ、同様に、限度、フォース及び速度設定を承認する主マイクロコントローラ１０００の障害は、前述のように障害指示をトリガすることができる。
【０１５０】
図２５に移ると、バリア・オペレータ２０は、前述のＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩ  ＫＥＥＬＯＱ（登録商標）暗号化法を使用することができ、これは、以前のＫＥＥＬＯＱ（登録商標）暗号化方式（例えば、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）Ｉ）の代わり、又は追加として使用することができる。表４は、この伝送用の、２８ビット・シリアル番号３０００（図２５）と、３２ビットＫＥＥＬＯＱ（登録商標）ホッピング・コード３００４と１２ビット安全署名３００６で構成された４４ビット・ホッピング・コード３００２とを含むビット情報の例を示す。この例では、データ伝送ビットの総数は、１つ完全なＫＥＥＬＯＱ（登録商標）コード・ワード３００８に関して合計７２になる。各コード・ワードは、暗号化部分と非暗号化部分を含むことができる。固定コード、又は非暗号化部分は、２８ビットの装置シリアル番号３０００を含むことができる。暗号化部分は、１２ビットの安全署名３００６と３２ビットのＫＥＥＬＯＱ（登録商標）ホッピング・コード３００４の組み合わせを含むことができる。
【０１５１】
【表４】
2014518966.tif 000006
ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩ  ７２ビットＫＥＥＬＯＱ（登録商標）パケット・フォーマット
【０１５２】
図２５に関して続けると、６４ビット暗号鍵（ＥＫＥＹ）３０１４と３２ビット・シード３０１６を使用する従来のＫＥＥＬＯＱ（登録商標）３２ビット・ブロック暗号暗号化法３０１２を使用して、３２ビットＫＥＥＬＯＱ（登録商標）ホッピング・コード・データ部分３０１０を計算することができる。これらの最初の３２ビットに含まれる情報は、２４ビット同期カウンタ３０１８、４ビット機能コード３０２０、及び４ビットのユーザ定義弁別ビット３０２２でよい。各トランスミッタに使用される６４ビットＥＫＥＹ３０１４は、そのトランスミッタに固有でよい。ＥＫＥＹ３０１４は、６４ビットのメーカー・コードと装置固有の２８ビット・シリアル番号から得ることができる。この６４ビット・メーカー・コードは、セキュリティを高めるために時間の経過と共に定期的に変更することができる。
【０１５３】
ＫＥＥＬＯＱ（登録商標）同期カウンタ３０１８のビット数を、従来の１６ビットから新しい２４ビットに増やして、カウンタの組み合わせの数を、６５，５３６個から１６，７７７，２１６個に増やすことができる。カウンタ値の数のこの大きな増大は、予防的選択的伝送取得技術を支援することができる。また、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩトランスミッタは、この大きいカウンタ・スペースをより良く利用するために、生産プログラミング中にランダムに開始するカウンタ値を割り当てることができる。８ビット関数／弁別コードは、４ビットのボタン情報ならび４つの顧客設定可能な定数ビットも含むことができる。これらのビットは、ＫＥＥＬＯＱ（登録商標）ポスト復号化検証チェック中に使用することができ、また最終的には、必要とされるボタン又は機能操作を識別することができる。
【０１５４】
安全署名ビット３０２４と呼ばれる１２個の付加的な暗号化データ伝送ビットを追加して、別のより複雑な暗号アルゴリズムに切り換えることなく、ＫＥＥＬＯＱ（登録商標）コード・ホッピング・システム全体のセキュリティ・レベルを高めることができる。セキュリティ・システムのセキュリティを高めるには、一般に、より強力な暗号アルゴリズムの使用、より長い暗号鍵又は複数の暗号鍵／計算の使用、又はこれらの方法の組み合わせが必要である。同一システム内で複数の６４ビット暗号鍵を使用することによって、力ずく型の攻撃方式は、システムのセキュリティを攻撃するためにより多くの鍵の組み合わせを計算しなければならない。
【０１５５】
ＫＥＥＬＯＱ（登録商標）と共に使用されるような全てのブロック暗号アルゴリズムは、典型的には、一定ブロック・サイズ、従来のＫＥＥＬＯＱ（登録商標）暗号アルゴリズムでは３２ビット、又はＡＥＳでは１２８ビットを処理する。したがって、例えば、あるブロック暗号アルゴリズム（例えば、ＫＥＥＬＯＱ（登録商標））から別のもの（例えば、ＡＥＳ）にジャンプするには、必要なデータ・ビットの数の大幅に増大を必要とし、このジャンプは、また、既存のＲＦ設計を複雑にすることがあり、多くの場合、再設計又は全体システム性能の低下をも必要とする。
【０１５６】
これらの追加の署名ビットを利用するために、ＳＨＡ−１などの単純なＣＲＣチェックサム計算からより高度でセキュアなハッシングアルゴリズムまで種々のアルゴリズム方式を使用することができる。必要とされる付加的なデータ・ビットの数を減らすために、ＩＮＴＥＬＬＩＣＯＤＥ（登録商標）ＩＩシステムは、３２ビットＫＥＥＬＯＱ（登録商標）ホッピング・コード３０１０の上位及び下位１６ビットのＸＯＲを行なう１６ビットＣＲＣ計算３０２６を利用して、１６ビットＣＲＣ３０２８を得ることができる。次に、非暗号化された結果を単に送る代わりに、エンコーダは、ＫＥＥＬＯＱ（登録商標）復号化プロセス３０３０と、署名鍵（ＳＫＥＹ）３０３２と呼ばれる第２の６４ビット復号化鍵とを使用することによって、結果を隠蔽することができる。３２ビットＫＥＥＬＯＱ（登録商標）コード・ホッピング・コード３０１０の上位２０ビット３０３４と１２ビットＣＲＣ３０２４とを合わせて、復号化プロセス３０３０用の３２ビット・シード３０３６を使用して、３２ビットＫＥＥＬＯＱ（登録商標）ホッピング・コード３００４を作成して、セキュリティを高めることができ、現在の２つの６４ビット鍵は、セキュリティ・システムが動作できるように決定されなければならない。また、安全署名３００６は、ホッピング・コード３０１０の下位１２ビットでもよい。ＳＫＥＹ３０３２は、全ての装置に関して同じでもよく、各装置に固有でもよい。それらを各装置に固有にすることにより、各トランスミッタのセキュリティを高めることができる。
【０１５７】
以上の説明は、新規の改善された遠隔制御式バリア・オペレータ・システムの例示的な好ましい実施形態、及びその動作方法のものである。本発明は、述べた例や実施形態に限定されない。開示した実施形態に対する種々の変更及び修正は、添付の特許請求の範囲の趣旨及び範囲から逸脱せずに行うことができる。
【符号の説明】
【０１５８】
１  バリア・オペレータ・システム
２２  レール・アセンブリ
５０  キャリッジ
６６  駆動要素
６６ａ，６６ｂ  端６８  バレット部材
【図１】
2014518966.tif 000007
【図２ａ−１】
2014518966.tif 000008
【図２ａ−２】
2014518966.tif 000009
【図２ａ−３】
2014518966.tif 000010
【図３ａ】
2014518966.tif 000011
【図３ｂ】
2014518966.tif 000012
【図３ｃ】
2014518966.tif 000013
【図３ｄ】
2014518966.tif 000014
【図４ａ】
2014518966.tif 000015
【図４ｂ】
2014518966.tif 000016
【図５】
2014518966.tif 000017
【図６】
2014518966.tif 000018
【図７ａ】
2014518966.tif 000019
【図７ｂ】
2014518966.tif 000020
【図７ｃ】
2014518966.tif 000021
【図７ｄ】
2014518966.tif 000022
【図８ａ】
2014518966.tif 000023
【図８ｂ】
2014518966.tif 000024
【図８ｃ】
2014518966.tif 000025
【図９ａ】
2014518966.tif 000026
【図９ｂ】
2014518966.tif 000027
【図１０】
2014518966.tif 000028
【図１１】
2014518966.tif 000029
【図１２】
2014518966.tif 000030
【図１３】
2014518966.tif 000031
【図１４ａ】
2014518966.tif 000032
【図１４ｂ】
2014518966.tif 000033
【図１５】
2014518966.tif 000034
【図１６ａ】
2014518966.tif 000035
【図１６ｂ】
2014518966.tif 000036
【図１７ａ】
2014518966.tif 000037
【図１７ｂ】
2014518966.tif 000038
【図１８】
2014518966.tif 000039
【図１９ａ】
2014518966.tif 000040
【図１９ｂ】
2014518966.tif 000041
【図２０】
2014518966.tif 000042
【図２１】
2014518966.tif 000043
【図２２】
2014518966.tif 000044
【図２３】
2014518966.tif 000045
【図２４】
2014518966.tif 000046
【図２５】
2014518966.tif 000047
【手続補正書】
【提出日】平成26年1月16日(2014.1.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
バリア・オペレータ・システムであって、
（１）バリアを移動させるためにモータの動作を制御し、
（２）前記モータに供給される電流を監視することによって、前記バリアが遭遇したフォースの計算を行ない、
（３）前記モータの熱的状態を、
（ａ）熱負荷値を、
（ｉ）前記モータの時間の経過による動作と、
（ｉｉ）前記バリアが遭遇したフォースの計算とに応じて定期的に増分し、
（ｂ）時間の経過により前記モータが動作していないときに前記熱負荷値を定期的に減分することによって予測し、
（４）前記熱負荷値が所定のしきい値を超えたときに前記モータの動作を抑制するように動作するマイクロコントローラを備えたバリア・オペレータ・システム。
【請求項２】
前記バリア・オペレータ・システムは、さらに、
（ａ）光学ホイールを有し可動バリアを駆動する駆動部に接続されたモータを制御し、
（ｂ）前記光学ホイールを使用して前記可動バリアの位置を追跡し、
（ｃ）前記モータに供給される電流、又は前記光学ホイールを利用して検出された前記可動バリアの速度の少なくとも一方によって、前記可動バリアが遭遇するフォースを測定し、
（ｄ）学習モードの動作において、前記可動バリアをその移動限度間で移動させ、同時に、前記測定したフォース値を、複数のバリア位置に関してバリア位置で記録することによってフォース・プロファイルを生成し、
（ｅ）前記測定したフォース値からのオフセットを利用してフォース感度しきい値限度を計算し、
（ｆ）通常モードの動作において、前記フォース感度しきい値限度を利用して、前記可動バリアの停止又は逆転の少なくとも一方を動作させるマイクロコントローラを備えている、請求項１に記載のバリア・オペレータ・システム。
【請求項３】
前記バリア・オペレータ・システムは、さらに、
少なくとも１つの駆動タイプを示す構成情報と、少なくとも２つのユーザ選択可能なモータ速度のモータ速度プロファイルとを記憶する永久コンピュータ可読媒体と、
前記永久コンピュータ可読媒体から前記構成情報を取り出し、前記構成情報に少なくとも部分的に基づいて前記モータ速度プロファイルのうちの１つを選択し、モータを動作させる際に前記モータ速度プロファイルのうちの前記選択された１つからの速度を使用して可動バリアを移動させるように動作的に接続されたマイクロコントローラとを備えている、請求項１または２に記載のバリア・オペレータ・システム。
【国際調査報告】
2014518966.tif 000048
2014518966.tif 000049