遠隔デバイスを使って無線制御システム中のメモリーをプログラムする方法であって、遠隔デバイスからアプリケーションコードを受信することと、無線制御システムが、プログラムされたアプリケーションコードを使って、そうでなければ無線制御システムとペアにされていない少なくとも1つの遠隔電子デバイスを操作するように、無線制御システムのメモリーの少なくとも一部中にアプリケーションコードをプログラムすることと、を含む、方法。無線制御システム上のプログラミングモードに入ることと、無線制御システムと遠隔デバイスの間の通信を認証することと、認証通信のステータスを指し示すことと、を更に含む、請求項1のメモリーをプログラムする方法。アプリケーションコードは、共通鍵で暗号化されてヘッダー情報に添付されている、請求項2のメモリーをプログラムする方法。ヘッダー情報を抽出することと、データの少なくとも最初のブロックを共通鍵で復号することと、無線制御システムに送るために遠隔デバイス中のプログラムコードバッファー中にデータを格納することと、を更に含む、請求項3のメモリーをプログラムする方法。無線制御システムが、遠隔デバイスからデータの少なくとも最初のブロックを受信することと、データの少なくとも最初のブロックの完全性を検証することと、データの少なくとも最初のブロックの送信の終りを決定することと、無線制御システムのメモリーの少なくとも一部をアプリケーションコードでプログラムすることと、を更に含む、請求項4のメモリーをプログラムする方法。遠隔デバイスが、アプリケーションコードが遠隔電子デバイスと適合することを検証することと、データの終りに到達するまで少なくとも1つのデータブロックを無線制御システムに送ることと、を更に含む、請求項4のメモリーをプログラムする方法。メモリーをプログラムするためのシステムであって、少なくともトランシーバー回路とメモリーを含んだ無線制御システムと、少なくともトランシーバー回路とメモリーを含んだ遠隔デバイスと、を含み、遠隔デバイスのメモリー中に格納されたアプリケーションコードが、無線制御システムに送られ、トランシーバー回路によって受信され、無線制御システムが、プログラムされたアプリケーションコードを使って、そうでなければ無線制御システムとペアにされていない少なくとも1つの遠隔電子デバイスを操作するように、トランシーバー回路によって受信されたアプリケーションコードが、無線制御システムのメモリーの少なくとも一部中にプログラムされる、システム。無線制御システムが、無線制御システム上のプログラミングモードに入り、無線制御システムと遠隔デバイスの間の通信を認証し、認証通信のステータスを指し示す、請求項7のメモリーをプログラムするためのシステム。アプリケーションコードは、共通鍵で暗号化されてヘッダー情報に添付されている、請求項8のメモリーをプログラムするためのシステム。遠隔デバイスが、ヘッダー情報を抽出し、データの少なくとも最初のブロックを共通鍵で復号し、無線制御システムに送るために遠隔デバイス中のプログラムコードバッファー中にデータを格納する、請求項9のメモリーをプログラムするためのシステム。無線制御システムが、遠隔デバイスからデータの少なくとも最初のブロックを受信し、データの少なくとも最初のブロックの完全性を検証し、データの少なくとも最初のブロックの送信の終りを決定し、無線制御システムのメモリーの少なくとも一部をアプリケーションコードでプログラムする、請求項10のメモリーをプログラムするためのシステム。遠隔デバイスが、アプリケーションコードが遠隔電子デバイスと適合することを検証し、データの終りに到達するまで少なくとも1つのデータブロックを無線制御システムに送る、請求項10のメモリーをプログラムするためのシステム。発明は、メモリーを再プログラムするシステムと方法、特に、訓練可能なトランシーバーのメモリー中に在駐しているアプリケーションコードのようなソフトウェアを無線で再プログラムすること、に関する。メモリーの無線再プログラミングは、訓練可能なトランシーバー中のソフトウェアが、製品への直接または有線接続がそうでなければ利用可能ではない遠隔位置から、更新されるかまたは置き換えられることを許容する。発明の一実施形態では、訓練可能なトランシーバーのメモリー中に在駐しているソフトウェアが有線でかまたは無線で再プログラムされる。例示的実施形態では、暗号化されたプログラムコードが、訓練可能なトランシーバーから離れた位置において位置しているデバイスまたはツールからの無線周波数RFリンクを介してのように、無線で転送される。離れた位置は、有線または無線送信が行われることができるあらゆる距離にあっても良い。メモリーの1つのエリアブートローダーコードと呼ばれる中に在駐しているソフトウェアを使っている訓練可能なトランシーバーが、プログラムコードを復号して処理し、それがメモリーの別のエリアアプリケーションコードと呼ばれる中にプログラムされるようにする。このプログラミングは、現在メモリー中に在駐しているアプリケーションコードの完全なかまたは部分的な再プログラミングであっても良い。より詳細な記載が図面を参照して以下に続く。図2Aは、発明に従ったメモリーの再プログラミングの例示的フローチャートを描く。図5を参照して以下で説明されるように好ましくは暗号化されているプログラムコードは、USBフラッシュドライブ、コンピューター、携帯電話、PDA等のようなメモリー中に格納されることができる。プログラムコードは、以下のように、訓練可能なトランシーバーを再プログラムするのに使われるツールに挿入されるかまたは送信される。ステップ1では、暗号化されたプログラムコードAppCodeencを格納しているフラッシュドライブのようなデバイスが、ツール中に挿入される。例えば、ツールRT中に挿入されているフラッシュドライブUSBの例示的実施形態を描いた図2Bを参照。ツールRTは、フラッシュドライブUSBからデータを抽出し、ツールRT中での格納と後の使用のためにデータをバイナリプログラムデータAppCodebinに復号する。ステップ2では、訓練可能なトランシーバー12が、例えば図2Cに描かれているように訓練可能なトランシーバー12上のボタンB1、B2、B3のシーケンスを押すことによって、プログラミングモード中に置かれる。一旦デバイスがプログラミングモード中に置かれれば、ステップ3で、ツールRTと訓練可能なトランシーバー12の間で認証シーケンスが起こる。認証シーケンス中に転送されるのは、例えばパート番号EPN、シリアル番号SN、および現行のアプリケーションバージョンもし適用可能であればとブートローダーバージョンを含んだ、アプリケーションコードの再プログラミングに関するデータである。典型的には様々なキーとカウンターが計算された後で一旦認証されると、訓練可能なトランシーバー12は、アプリケーションがプログラムされることについて準備完了であることをツールRTに通知する。ツールRTは、アプリケーションプログラムコード全体が転送されるまで、一度に1RFデータフレームずつフラッシュドライブ上に格納された暗号化されたアプリケーションプログラムコードを転送し始める。RF送信が例示的実施形態中で記載されるが、発明はそのようなタイプの送信に限定はされず、容易に理解されるようにあらゆる形の無線通信が使われても良いことが、了解される。訓練可能なトランシーバー12からの肯定応答ACKもまた、転送中にエラーが起こらなかったことを確かなものとするために、データフレームの各送信中にツールRTに送り返される。もしデータフレームの送信中にエラーが起これば例えば、チェックサムが失敗すれば、送信が不成功であると見做されるまで、設定された数の再試行が処理される。転送中に起こるあらゆるエラーは、ステップ4において図2に描かれるように、訓練可能なトランシーバー上のディスプレイおよび/またはツールRTのディスプレイ上に表示されても良い。ディスプレイは、例えばLED36aかまたは応答を表示するためのあらゆるその他の手段であっても良い。例えば、訓練可能なトランシーバー12がプログラムメモリーACに書き込んでいる間、訓練可能なトランシーバー上のLEDがオンとオフに点滅してプロセスが行われていることを示しても良く、またはデータがメモリーに書き込まれていることをスクリーンが表示しても良い。ディスプレイ36aはまた、データの転送の成功かまたは不成功の完了を指し示しても良い。例えば、LEDが数字コードを点滅してエラーのタイプと追加のプログラミングが必要であることを示しても良く、または緑色光が成功した完了を指し示しても良い。図3は、図2Bと2Cに従ったツールと通信している例示的無線制御システムを描く。無線制御システム訓練可能なトランシーバーとも呼ばれる12とツールRTの各々は例示的実施形態では、オペレーター入力デバイス32/32aと、ディスプレイ36/36aと、制御回路30/30aと、メモリー31/31aと、トランシーバー回路54/54aを含む。ツールはまた、USB格納デバイスのための入力のような、データを受信するための入力を含む。これらの記載は例示的な性質のものであり、ツールと訓練可能なトランシーバー即ち、無線制御システムは開示された実施形態に限定はされないことが、了解される。例えば、訓練可能なトランシーバーとツールは、実施形態中で描写されたデバイスの各々を含む必要はなく、またその他のデバイスへの接続のために提供されたインターフェースのような追加の特徴を含んでいても良い。図4Aと4Bは、発明に従った訓練可能なトランシーバーとツールの間の通信を描く。アプリケーションコードは、訓練可能なトランシーバー12のアプリケーションコードブロックACメモリー31中に在駐する図9参照。訓練可能なトランシーバー12のプログラミング中に、例えば新しいかまたは適合していない遠隔電子デバイスと共に動作するように訓練可能なトランシーバーメモリー31中のアプリケーションコードを更新するために、アプリケーションコードブロック中のデータアプリケーションコードが、ツールRTから送信されたアプリケーションコードで更新されるかまたは置き換えられる。送信されたアプリケーションコードを構築する一部として、およびコードの格納を確かにするために、関係のあるデータがアプリケーションコードから分析されて暗号化され例えば、共通鍵で、図5に描かれ以下でより詳細に記載されるように、パートタイプ番号のような情報がアプリケーションコードファイルのヘッダーに追加される5。暗号化されたプログラムコードAppCodeencはそれから、後の使用のために、ツールRTかまたはツールRTによってアクセスされることができるフラッシュドライブのような別のメモリーデバイス中に格納される。例えば、これもまた以下でより詳細に記載される図6を参照。データを暗号化するのにあらゆる暗号化技術が使われても良く、暗号化は記載された例示的実施形態に限定されないことが、了解される。訓練可能なトランシーバー12のメモリー31を再プログラムするには、USBフラッシュドライブ上に格納されたアプリケーションコードを読み取ることが可能な前述したツールRTのようなデバイスRTが使われる。ツールRTは、例えば、USBフラッシュドライブ上に格納された暗号化されたアプリケーションコードを適正に復号し得る据え置き型ユニットまたはコンピューターであっても良い。当業者によって容易に理解されるように、ツールは、アプリケーションコードを読み取り復号すると共にアプリケーションコードを訓練可能なトランシーバーに送信するあらゆるデバイスであっても良いことが、了解される。一旦暗号化されたデータAppCodeencがフラッシュドライブUSBから受信されると、ツールRTは、10において、暗号化されたデータのヘッダーファイルからパートタイプ番号のような情報を抽出し、例えば、共通鍵を使ってデータの最初のブロックを復号する。当業者によって理解されるように、データのブロックとは対照的に、ファイル全体が復号されることができることが、了解される。訓練可能なトランシーバー12がツールRTと通信するために、訓練可能なトランシーバー12は、15において、例えば、入力デバイス32上のボタンシーケンスを選択することによって、プログラムモードブートローダーモード中に置かれる。プログラムモード中に入ると、固有鍵例えば、訓練可能なトランシーバーと関連付けられた各ツールのための鍵が訓練可能なトランシーバーによって生成される。訓練可能なトランシーバーの、パートタイプ番号、シリアル番号、アプリケーションバージョンおよびブートローダーバージョン暗号化されていないのような情報がそれからツールに送られる20。25において、ツールRTは、訓練可能なトランシーバー12と同期するために、アプリケーションコードが訓練可能なトランシーバーのパートタイプ番号と適合することを検証する。もしパート番号が適合しなければ即ち、パート番号が検証されなければ、通信は終了する。そうでなければ、固有鍵がツールRTによって計算され、35においてランダムカウンター値AES_CTRが作成され、チャレンジが40において認証のために作成される。チャレンジは、アドレスレンジと共に、45において訓練可能なトランシーバー12に送られ、訓練可能なトランシーバー12は、50においてAES_CTR値とプログラミングアドレスレンジを検証してメモリー31中に格納する。肯定応答ACKが、55においてツールRTに送り返され、それぞれ60と65において、ツールRTと訓練可能なトランシーバー12でAES_CTR値を使って暗号ストリームが計算される。この時点で、ツールRTと訓練可能なトランシーバー12は、適合性を確認して、送信リンクを検証している。70において、暗号化されたデータEDataが、暗号ストリームとXORされたプログラムデータの最初のブロックを使って作成され、75においてRFデータフレームが作成される。EDataは、プログラムコードと、訓練可能なトランシーバーを再プログラムするのに要求される関連付けられた情報を含む。EDataは、データに関する追加の情報例えば、長さとチェックサムが様々なコマンドCMDsと共に送信中に含まれることができるように、RFデータフレーム内部に置かれる。RFデータフレームは、80においてツールRTから訓練可能なトランシーバー12に送られ、そこでそれは、85において例えばチェックサムを使って完全性についてチェックされる。もしチェックサムが検証されれば、90において、チェックサム肯定応答ACKがツールに送り返される一方で、ツールRTは、95においてデータを処理している訓練可能なトランシーバー12からの準備完了肯定応答を待つ。訓練可能なトランシーバー12は、RFデータフレームからEDataを抽出し、それが暗号ストリームを使って復号されるようにデータを処理し、例えばアドレスと長さのようなEData中に埋め込まれた追加の情報を使用する。新たな/更新されたプログラムコードはそれから、100において、アプリケーションコードブロックAC中のメモリーに書き込まれる。105-115において、乱数AES_CTRがそれからツールRTおよび訓練可能なトランシーバー12上でインクリメントされ、別の暗号ストリームが計算される。この時点で、プロセスは、120においてプログラムデータの次のブロックで別のEDataを作成し、暗号ストリームとXORするためにループして戻り、125においてRFデータフレームが作成され、130においてRFデータフレームが訓練可能なトランシーバー12に送られる。このプロセスは、訓練可能なトランシーバー12によって最後のデータブロックが受信されるまで継続し、その時には、135において完全なチェックサムと共に、エンドオブデータEODコマンドがツールRTによって訓練可能なトランシーバー12に送られる。訓練可能なトランシーバー12においてEODコマンドが受信された時、140において完全なプログラムされたチェックサムが計算され、受信されたチェックサムで検証され、145においてACKがツールRTに送られ、150においてそれがデータ転送プロセスを完了する。アプリケーションコードはここで格納される。図5は、発明に従って変換されて暗号化されたコードの例示的フローを描く。プログラムコードAppCodehex200は、最初に16進コードとしてプログラムされるが、そのような実施形態に限定はされない。あらゆる形のコードが使われても良いことが了解される。AppCodehexが変換/暗号化ツール205それはコンピューターやツールRTのような、データを変換して暗号化することが可能なあらゆるデバイスであっても良いによって受信された時、210においてターゲットとされた訓練可能なトランシーバー12のパート番号が入れられる。AppCodehexファイルが関係のあるデータについて分析され、ツールRT中に215においてバイナリーファイルAppCodebinとして格納される。AppCodebinファイル220がAESと共通鍵225を使って暗号化され、パート番号がファイルのヘッダーに添付されて、暗号化されたアプリケーションコードAppCodeenc235として例えばフラッシュドライブUSB上に230において格納される。図6は、発明に従ったメモリーをプログラムするためのツール中に挿入された暗号化されたコードを描く。格納されたAppCodeencファイル235が、ツールRTに送信されるまたは、もしツールRTによって作成されたものならそれは既にメモリー中に在駐している。ここで、ヘッダー中のパート番号が240において抽出され、データの最初のブロックが245において共通鍵を使って復号される。データはそれから、250において訓練可能なトランシーバー12への後の送信のためにメモリー中に格納される。図7Aと7Bは、図4Aと4Bで記載されたようなツールから見たときのデータの受信と送信の例示的フロー図を描く。一旦プログラムコードがツールRTから訓練可能なトランシーバー12への送信について準備完了となる255と、ツールRTは、260においてステータスメッセージが訓練可能なトランシーバー12から受信されたかどうかを決定する。もしそうでなければ、ツールRTは、ステータスメッセージを待つ。もしステータスメッセージが受信されていれば、ツールRTは、265においてもし送信されたメッセージに含まれたパート番号がマッチするかを決定する。もしそうでなければ、270においてプロセスエラーが起こる。もしターゲットがマッチすれば、280において固有鍵が計算され、285においてランダムカウンターAES-CTRが作成され、290においてチャレンジが認証用に作成されてアドレスレンジと共に送信される。300において一旦肯定応答ACKが訓練可能なトランシーバー12から受信されれば、310において暗号ストリームがAES_CTRを使って計算される。もしACKが受信されなければ、305においてプロセスエラーが起こる。一旦ACKが受信されて準備完了であれば、325においてEDataが作成され、330においてRFデータフレームが作成され、335においてRFデータフレームが送信される。もし準備完了ACKが受信されなければ、320においてプロセスエラーが起こる。そうでなければ、ツールRTは、RFデータフレームのチェックサムが受信されたことのACKを待ち、それが準備完了であるか350そうでないか360を決定する。そうでなければ、360においてプロセスエラーが起こる。もし準備完了であれば、370においてエンドオブデータEODが起こったかどうかが決定される。もしそうでなければ、365においてAES_CTRがインクリメントされて新たな暗号ストリームが計算される。プロセスは、325においてEDataを作成することに戻る。そうでなければ、EODコマンドが完全なチェックサムCSと共に訓練可能なトランシーバー12に送信され、それは380においてACKが検証される。もし検証されれば、390においてプロセスは完了し、そうでなければ385においてエラーが起こっている。図8Aと8Bは、図4Aと4Bに従った訓練可能なトランシーバーから見たときのデータの受信と送信の例示的フロー図を描く。400においてブートローダーモードが、例えばオペレーター入力デバイス32上のボタンシーケンスの選択によって、入れられる。405において固有鍵が計算され、410において訓練可能なトランシーバー12が情報例えば、パート番号、シリアル番号等を送信する。訓練可能なトランシーバーはそれから、415においてチャレンジがツールRTによって受信されたかどうかを決定する。もしそうでなければ、420においてプロセスエラーが起こる。もしそうであれば、425においてチャレンジが検証される。もし検証されなければ、430においてプロセスエラーが起こる。他方でもし検証されれば、440におけるAES_CTR値と共に、435においてアドレスレンジが格納され、445においてACKがツールRTに送信される。450において暗号ストリームがそれからAES_CTRを使って計算され、455においてACKがツールRTに送信される。お返しに、460においてRFデータフレームがツールRTから受信され、データフレームがチェックサムCSを使ってチェックされる。もしCSが有効でなければ、470においてプロセスエラーがある。もしCSが有効であれば、480においてCSの検証を肯定応答するACK送信がツールRTに送られる。485において、データフレームの送信の終りを示すEODコマンドも受信されたかどうかが決定される。もしそうであれば、495において完全なCSが受信されて検証され、500においてCSの検証を示すACKが送信され、505においてプロセスが終了する。そうでなければ、もしEODコマンドが受信されなければ、490においてEDataがRFデータフレームから抽出され、データが処理され、メモリーがプログラムされる。510においてAES_CTRがインクリメントされ、次の暗号ストリームが計算され、それは訓練可能なトランシーバー12が準備完了であることのACKの送信によって続かれる。プロセスは、460において追加のRFデータフレームを受信することに戻る。図9は、無線通信システム中のメモリーの例示的概略図を描く。訓練可能なトランシーバーはメモリー31を有し、それはブートローダーコードBLCとアプリケーションコードACを含むが、それらに限定はされない。ブートローダーコードBLCは、ツールRTから受信された時にアプリケーションコードACの再プログラミングを制御するコードを含み、アプリケーションコードACは訓練可能なトランシーバー12が遠隔電子デバイス18と通信することを許容するコードである。アプリケーションコードACは、訓練可能なトランシーバーが、システムに追加されて、訓練可能なトランシーバーと通信することが以前はできなかった新たな遠隔電子デバイスと動作すること、およびそれら自体が更新されていても良い遠隔電子デバイスと動作することを許容するために、更新される部分的再プログラムかまたは全体的に更新される完全な再プログラム。例示的実施形態が図面中に描かれ、ここに記載されたが、これらの実施形態は例としてのみ供されていることが理解されるべきである。例えば、代替的実施形態が商業用マーケットでの使用のために好適であっても良く、そこではオフィス照明、保安システム、コンピューター、テレビ、駐車庫扉、またはあらゆるその他の機器またはデバイスが制御される。従って、記載された特徴は特定の実施形態に限定されず、それにも拘わらず添付された請求項の範囲内に入る様々な変形にまで拡張される。当業者はここで、ここでの広い教示内容が様々な形で実装されることができることを、前述の記載から了解することができる。従って、記載された特徴はその特定の例との関係で記載されたが、その他の変形が図面と本明細書の精査により当業者に明らかとなるであろうから、特徴の真の範囲はそのように限定されるべきではない。