(57)【要約】      （修正有）【課題】主プログラムおよびオプション機能を独立的に無線通信装置の１組の記憶位置中にダウンロードするシステムおよび方法を提供する。【解決手段】主プログラムおよび１組の選択されたオプション機能１２４を記憶するメモリ１２３を使用する。その選択されたオプション機能セット中の１つのものと関連した識別素子により、主プログラムはその選択されたオプション機能セット１２３−１３０中の１つのものと対話することが可能となる。プログラマ１２２は、メモリ１１６における記憶位置を突きとめることによりその選択されたオプション機能プログラム１２４−１３０をメモリ１１６中にプログラムする。インジケータは、その選択可能なオプション機能のセットがメモリ中に記憶されたことを示す。【選択図】図１
2011040074.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
無線通信装置の動作を制御するためにメモリに記憶される主プログラムと、
主プログラムから独立してメモリ中にプログラム可能な選択可能なオプション機能のセットと、
独立的にプログラムされた選択可能なオプション機能のセットの少なくとも１つに関連した識別素子とを含んでおり、
主プログラムが識別素子を使用して、独立的にプログラムされた選択可能なオプション機能のセットの少なくとも１つと対話する無線通信装置。
【請求項２】
さらにリンク素子を含んでおり、前記リンク素子は、選択可能なオプション機能のセットがメモリ中にプログラムされるまで非活動状態のままである請求項１記載の装置。
【請求項３】
前記リンク素子は主プログラムの一部分であり、前記メモリ中の複数の対応した記憶位置を識別するための複数のポインタを含み、前記複数の対応した記憶位置が対応した選択可能なオプション機能をセットで記憶している請求項２記載の装置。
【請求項４】
前記主プログラムは前記選択可能なオプション機能のセットの１つに対応した記憶位置を求めてメモリをサーチするためのサーチプログラムを含んでおり、前記記憶位置は、前記選択可能なオプション機能のセットの１つが記憶位置に記憶された状態になったことを示すインジケータを備えている請求項１記載の装置。
【請求項５】
選択可能なオプション機能のセットは、前記選択可能なオプション機能のセットの１つが記憶される記憶位置を識別するためのポインタを含んでいる請求項１記載の装置。
【請求項６】
選択可能なオプション機能のセットは、前記選択可能なオプション機能のセットの１つを記憶するメモリの記憶位置を識別するためのポインタを備えたリンク素子を含んでおり、主プログラムが前記リンク素子を使用して、前記ポインタによって識別された前記選択可能なオプション機能のセットの１つと対話する請求項１記載の装置。
【請求項７】
前記選択可能なオプション機能のセットの少なくとも１つとして、ダイヤルプランシステム、暗号化システム、ブラウザシステムまたは言語システムの選択された１つが含まれている請求項１記載の装置。
【請求項８】
無線通信装置の動作に関連した主プログラムを記憶するための第１の記憶位置および前記第１の記憶位置とは異なる第２の記憶位置とを有するプログラム可能なメモリを備えた無線通信装置と、
前記無線通信装置用の選択可能なオプション機能のセットを受取るためにプログラム可能なメモリに結合されたポートと、
選択可能なオプション機能のセットを前記第２の記憶位置に記憶するために前記ポートに送信するために前記ポートに結合されたプログラマと、
主プログラムを選択可能なオプション機能のセットと関連させるためのリンク素子とを含んでおり、
前記プログラマは、前記第１の記憶位置に対する主プログラムの記憶とは無関係に前記選択可能なオプション機能のセットを前記第２の記憶位置に記憶する無線通信装置用のプログラミングシステム。
【請求項９】
前記リンク素子は主プログラムにより第１の記憶位置に記憶され、前記選択可能なオプション機能のセットが前記第２の記憶位置に記憶された状態になったことを示すためのインジケータをプログラマにより設定される請求項８記載のシステム。
【請求項１０】
前記リンク素子は、前記選択可能なオプション機能のセットを記憶すべきプログラム可能なメモリ中の場所にプログラマを導くためのポインタを含んでいる請求項９記載のシステム。
【請求項１１】
前記リンク素子は、第１の記憶位置とは異なるプログラム可能なメモリの記憶位置に記憶される請求項８記載のシステム。
【請求項１２】
前記リンク素子は、プログラム可能なメモリ中の記憶位置を識別するための複数のポインタを備えた２次リンク素子を識別するポインタを含んでいる請求項８記載のシステム。
【請求項１３】
前記選択可能なオプション機能のセットはプログラム可能なメモリ中の記憶位置を識別するためのポインタを含んでいる請求項８記載のシステム。
【請求項１４】
前記選択可能なオプション機能のセットは、プログラム可能なメモリ中の複数の対応した記憶位置を識別するための複数のポインタを備えた２次リンク素子を含んでいる請求項８記載のシステム。
【請求項１５】
前記選択可能なオプション機能のセットは、そのセットの１つが第２の記憶位置に記憶された状態になったことを示すための第１のインジケータと、前記セットの１つが記憶された第２の記憶位置におけるメモリ位置、メモリ位置のサイズ、または前記セットの１つのタイプを識別するための第２のインジケータとを含んでいる請求項８記載のシステム。
【請求項１６】
前記リンク素子は、プログラマによって活動化されるまで非活動的なままであり、前記プログラマは、選択可能なオプション機能のセットを第２の記憶位置に記憶するために送信するときに前記リンク素子を活動化し、前記リンク素子は、前記選択可能なオプション機能のセットが前記第２の記憶位置に記憶された状態になったことを示すためのインジケータが前記プログラマにより設定されている請求項８記載のシステム。
【請求項１７】
無線通信装置の動作に関連した主プログラムを記憶するための第１の記憶位置と、
選択可能なオプション機能のセットを主プログラムとは無関係に記憶するようにプログラム可能な第２の記憶位置と、
前記第２の記憶位置が選択可能なオプション機能のセットを記憶するようにプログラムされたときに、主プログラムを選択可能なオプション機能のセットと関連させるためのリンク素子と、
前記選択可能なオプション機能のセットが前記第２の記憶位置に記憶された状態になったことを示すためのインジケータとを含んでいる無線通信装置。
【請求項１８】
前記リンク素子は、第２の記憶位置中の対応した空位置を識別するための複数のポインタを含み、前記選択可能なオプション機能のセットが前記複数のポインタによって識別された空位置に記憶され、前記空位置は前記選択可能なオプション機能のセットが前記空位置に記憶された状態になったことを示すためのインジケータを備えている請求項１７記載の装置。
【請求項１９】
主プログラムはサーチプログラムを含み、前記サーチプログラムはリンク素子を使用して、選択可能なオプション機能のセットの位置を探索して、選択可能なオプション機能のセットを主プログラムと統合し、無線通信装置を動作させる請求項１７記載の装置。
【請求項２０】
選択可能なオプション機能のセットは第１または第２の記憶位置中のメモリ位置を識別するためのポインタを含み、前記メモリ位置は選択可能なオプション機能のセットの１つを記憶するようにプログラム可能である請求項１７記載の装置。
【請求項２１】
選択可能なオプション機能のセットは、第１または第２の記憶位置中の複数の対応したメモリ位置を識別するための複数のポインタを備えた２次リンク素子を含み、前記対応したメモリ位置は選択可能なオプション機能のセットの１つを記憶するようにプログラム可能である請求項１７記載の装置。
【請求項２２】
リンク素子は、第１の記憶位置に記憶された主プログラムの一部分である請求項１７記載の装置。
【請求項２３】
選択可能なオプション機能のセットは、ダイヤルプランシステム、暗号化システム、ブラウザシステムまたは言語システムの１つを含んでいる請求項１７記載の装置。
【請求項２４】
無線通信装置を動作させるための主プログラムをメモリに記憶し、
選択可能なオプション機能のセットを主プログラムの記憶とは無関係にメモリにダウンロードし、
ダウンロードされた機能に対して主プログラムを動的にリンクし、それによって選択可能なオプション機能のセット中のダウンロードされた機能の任意の１つの位置を決定するステップを含んでいる無銭通信装置にプログラムを記憶する方法。
【請求項２５】
主プログラムから選択可能なオプション機能のセットに対するリンクを設け、選択可能なオプション機能のセットがダウンロードされるまでそのリンクを非活動状態に維持するステップをさらに含んでいる請求項２４記載の方法。
【請求項２６】
前記リンクは複数のポインタを有し、前記複数のポインタがメモリ中の対応した複数の記憶位置を識別し、選択可能なオプション機能のセットのダウンロードは、
前記複数のポインタの１つを読出して前記複数の記憶位置の１つの位置を決定し、
前記選択可能なオプション機能のセットの任意の１つを前記複数の記憶位置の前記１つに記憶するために受取り、
前記選択可能なオプション機能のセットの前記任意の１つが複数の記憶位置の前記１つに記憶されたことを示すためのインジケータを設定するステップをさらに含んでいる請求項２５記載の方法。
【請求項２７】
前記選択可能なオプション機能のセットのダウンロードは、主プログラムをメモリに記憶した後に行われる請求項２４記載の方法。
【請求項２８】
主プログラム中のポインタを活動化させてメモリ中の対応した記憶位置を識別させ、ダウンロード中に選択可能なオプション機能のセットを記憶するステップをさらに含んでいる請求項２４記載の方法。
【請求項２９】
前記選択可能なオプション機能のセットのダウンロードはさらに、
メモリ中の空の記憶位置を決定し、前記選択可能なオプション機能のセットを記憶し、
前記選択可能なオプション機能のセットが前記第２の記憶位置に記憶されたことを示すためのインジケータを設定するステップをさらに含んでいる請求項２４記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に無線通信装置に関し、とくに、無線通信装置のメモリ位置に機能を独立的にダウンロードするためのシステムおよび方法に関する。
【背景技術】
【０００２】
セルラー電話機のような近年の無線通信装置は、通常の電話機では実施し難い多くの機能およびオプションの使用および提供に便利であるために非常に普及している。たとえば、無線通信装置は、特定の国に対する特有のダイヤルプランおよびダイヤルパターンによりプログラムされ、カスタム化されることができる。この方式において、無線通信装置は外国への輸出用に大量生産されることができ、プログラミングを追加せずに即座に使用することができる。米国に関して、無線通信装置は北米ナンバリングプランの１０桁の電話番号およびその電話搬送システムで利用可能な種々のオプションを付勢するために使用される“スター”コードに適合するようにプログラムされることができる。
【０００３】
さらに無線通信装置はデータ暗号化方式による動作や外国語テキストによる動作に対してプログラムされ、また、そのユーザがコンピュータ化された無線ゲームをプレイすることを可能にするようにプログラムされることができる。これらの機能は各無線通信装置において種々の組合せで実施され、いくつかのカスタム化された機能をユーザに提供することができる。
【０００４】
上述したオプション機能は、製造業者により生産プロセス期間中に無線通信装置中に予めプログラムされている。これらのオプション機能のそれぞれと関連し、これらのそれぞれを動作させるデータおよび実行可能なコード／命令は、無線通信装置の動作を制御する標準的なデータおよび実行可能なコード／命令（すなわち、主プログラム）と組合せられる。その後、組合せられたプログラムはその無線通信装置の電子的に消去可能な読出し専用メモリ（ＥＥＰＲＯＭ）中に書込まれる。すなわち、オプション機能および主プログラムの両者が単一のプログラムとして同時にＥＥＰＲＯＭ中に書込まれるか、あるいはダウンロードされる。別の形態の読出し可能な不揮発性メモリ（たとえば、ＦＥＲＡＭ、バッテリーバックされたＲＡＭ、ＯＰＴ  ＲＡＭ等）もまた使用されてよい。
【０００５】
単一のダウンロードの使用にはいくつかの重大な欠点がある。第１に、主プログラムおよびオプション機能が単一のプログラムとしてダウンロードされる必要があるため、その製造業者は、オプション機能のいずれが無線通信装置により必要とされるかを予め決定して、そのオプション機能を主プログラムと一体にしなければならない。オプション機能のいずれが所定の顧客によりリクエストされるかを予測することはしばしば困難であり、全ての可能なオプション機能を主プログラムと組合せることによりあらゆるオプション機能を考慮することはメモリ空間の使用を非効率的にするため、この方法は望ましくない。
【０００６】
第２に、オプション機能および主プログラムは組合せられて一緒にダウンロードされるため、最初のダウンロードが行われた後で、付加的なオプション機能をＥＥＰＲＯＭに追加することはできない。製造業者が無線通信装置に対する付加的なオプション機能の追加を所望した場合、ＥＥＰＲＯＭ全体が消去されるか、あるいは新しい何も記憶されていないＥＥＰＲＯＭ中に続いてダウンロードされるオプション機能および主プログラムの更新された組合せと置換される必要がある。また、オプション機能は単一の組合せられたプログラムとして主プログラムに結び付けられているため、製造業者が単一のオプション機能の追加を単に所望する都度、主プログラム自身の特性が更新される必要がある。通常のシステムは、組合せられたプログラムが一度ダウンロードされると、それを更新することができないので、明らかに、組合せられたプログラムがＥＥＰＲＯＭ中にダウンロードされる前に、この更新が行われなければならない。
【０００７】
第３に、オプション機能を主プログラムと組合せた結果生じた大きいブロックの情報は本質的にダウンロードをさらに困難にする可能性がある。ＥＥＰＲＯＭの単一の連続した記憶ブロックは、ダウンロードされた情報のブロック全体に適合するように予め割当てられる必要がある可能性がある。ダウンロードされた情報のブロックは、その後ＥＥＰＲＯＭの分散された記憶ブロックに記憶される部分に分解されることができない可能性が高い。たとえば、いくつかの例では、主プログラムをＥＥＰＲＯＭの１つの記憶ブロック中に書込み、その後利用可能なＥＥＰＲＯＭのその他の分散された記憶ブロックのどこかにオプション機能を書込むことが望ましいことがある。
【０００８】
したがって、主プログラムのダウンロードから独立的してオプション機能がＥＥＰＲＯＭ中にダウンロードされることができる方法でオプション機能により無線通信装置をカスタム化できるようにすることが求められている。以下の詳細な説明および添付図面から明らかになるように、本発明は上述の問題に対する解決方法を提供する。
【発明の概要】
【０００９】
本発明は、オプション機能を無線通信装置のメモリ中にダウンロードするためのシステムおよび方法として実施される。例示的な１実施形態において、無線通信装置は、無線通信装置の動作を制御するための主プログラムを記憶するメモリを備えている。１組の選択可能なオプション機能は、主プログラムから独立してメモリ中にプログラム可能である。主プログラムは、その選択可能なオプション機能の１つまたは複数のセットと関連した識別素子を使用して選択可能なオプション機能の選択されたセットと対話する。
【００１０】
例示的な１実施形態はさらにリンク素子を備えており、これはまた主プログラムを選択可能なオプション機能のセットと関連づけ、このリンク素子は、選択可能なオプション機能のセットがメモリ中にプログラムされるまで非アクティブである。リンク素子は主プログラムの一部分であることができ、メモリ中の複数の対応した記憶位置を識別するための複数のポインタを含むことができる。主プログラムはまた、選択可能なオプション機能のセットに対応した記憶位置を求めてメモリをサーチするためのサーチプログラムを含むことができ、記憶位置は、選択可能なオプション機能のセットが記憶位置に記憶された状態になったことを示すインジケータを有している。
【００１１】
リンク素子はまた２次リンク素子を識別するポインタを含むことが可能であり、この２次リンク素子はメモリ中の対応した複数の記憶位置を識別するための複数のポインタを有している。本発明の例示的な実施形態では、選択可能なオプション機能のセットはまた、メモリ中の記憶位置を識別するための２次リンク素子またはポインタを含むことができる。
【００１２】
プログラマおよびメモリに結合されたポートは、選択可能なオプション機能のセットを受取る。プログラマは、選択可能なオプション機能のセットを主プログラムの記憶から独立してプログラム可能なメモリに記憶するためにポートに送信する。選択可能なオプション機能のセットは、ダイヤルプランシステム、暗号化システム、ブラウザシステムまたは言語システムのような機能あるいは診断拡張および修正機構、システム管理、選択および表示拡張および修正機構、ならびにオーディオ処理拡張および修正機構、および生産性ツールと、ゲームとを含むことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の無線通信システムの例示的な１実施形態の機能ブロック図。
【図２】図１に示されている実施形態のプログラム可能なメモリの概略図。
【図３】図２に示されているプログラム可能なメモリのリンクテーブル図。
【図４】図１乃至３に示されている実施形態に対するダウンロード動作を示しているフローチャート。
【詳細な説明】
【００１４】
図面において、とくに別の説明がない限り、同じ参照符号は種々の図面にわたって一貫して同じ部分を示している。  
本発明は、図１の機能ブロック図で示されているシステム100 において実施される。システム100 は、セルラー電話機において使用されてもよい無線通信装置101 を含んでいる。システム100 はハウジング102 を備えており、このハウジング102 は、システム100 とセルサイト制御装置（示されていない）のような遠隔地との間におけるオーディオ通信のようなデータの送受信を可能にする送信機104 および受信機106 を含んでいる。送信機104 および受信機106 はトランシーバ108 に組合せられてもよい。ハウジング102 にはアンテナ110 が取付けられ、トランシーバ108 に電気的に結合されている。送信機104 、受信機106 およびアンテナ110 の動作は技術的によく知られており、ここでは説明は不要である。本発明の原理は、ここではセルラー電話機として説明されているが、セルラー／ＰＣＳ、無線電話機等を含んでいるが、それらだけに限定されない種々の無線通信装置に適応可能である。したがって、本発明は特定の形態の無線通信装置に限定されない。
【００１５】
無線通信装置101 は中央処理装置（ＣＰＵ）112 を備え、このＣＰＵがシステム100 の動作を制御する。ＣＰＵ112 はシステム100 の動作に含まれる全てのタスクを行ってもよいし、あるいはそれらの一部分だけを行ってもよく、その場合には残りのタスクはシステム100 内に含まれる別の処理装置（示されていない）によって代行される。
【００１６】
無線通信装置101 は、ランダムアクセスメモリ（ＲＡＭ）114 および電気的に消去可能なプログラム可能読出し専用メモリ（ＥＥＰＲＯＭ）のようなプログラム可能なメモリ116 であってもよい１以上のメモリを含んでいる。ＲＡＭ114 は、無線通信装置101 の能力維持になくてはならない情報を記憶するために不揮発性ＲＡＭを含むことができる。技術的に知られているように、ＲＡＭ114 の部分は、データおよび通常はプログラム可能なメモリ116 または標準的なＲＯＭ（示されていない）に記憶される実行可能なコード／命令のような情報を記憶するためにシャドー読出し専用メモリとして使用されることができる。さらに、図１ではプログラム可能なメモリ16とＲＡＭ114 が区別されて示されているが、当業者は、ＲＡＭ114 もまた一種の“プログラム可能”メモリであることを認識するであろう。ＣＰＵ112 は、ＲＡＭ114 またはプログラム可能なメモリ16に記憶された情報を処理して無線通信装置101 を動作させる。
【００１７】
無線通信装置101 はさらに、時には“バンドル”と呼ばれる１組の機能123 をハウジング102 の外部に配置されたプログラマ122 から受信するための入出力ポート118 を含んでいる。プログラマ122 は、機能が無線通信装置101 中にダウンロードされることを可能にするハードウェアおよびソフトウェアのシステムである。システム100 はまた機能をプログラマ122 から受取って、その受取った機能を適切なメモリ位置中に書込むためのダウンローダ115 をＲＡＭ114 内に備えることができる。したがって、ダウンローダ115 は、プログラマ122 とプログラム可能なメモリ116 またはＲＡＭ114 との間における中間ダウンロードプログラムとして動作する。
【００１８】
本発明のために、この説明の中で使用される“機能”という用語には、プログラマ122 またはダウンローダ115 によりプログラム可能なメモリ116 またはＲＡＭ114 中に書込まれる識別（ＩＤ）コードおよび変数のようなデータ、実行可能ソフトウェアコードおよびそれらに付随する情報の任意のものが含まれることが理解される。セット123 は任意の数の個々のオプション機能124 、126 、128 および130 と関連した個々のオプション機能の集合から構成されている。たとえば、図１において符号124 で示されている機能１は、インドのダイヤルプラン用のデータに対応することができる。プログラマ122 は、セット123 に含まれているオプション機能をプログラム可能なメモリ116 またはＲＡＭ114 に個々のオプション機能（たとえば、機能１）または個々の機能（たとえば、機能１、機能３および機能４）の“バンドル”として書込む。任意の所定の個々のオプション機能はデータと実行可能なコードの“バンドル”なので、個々のオプション機能自身もまた“バンドル”と呼ばれることができることを認識すべきである。したがって、“バンドル”および“機能”という用語は、この明細書の説明において交換可能に使用される。
【００１９】
セット123 はプログラマ122 内に存在することが可能であり、あるいはそれは第１の通信リンク132 を介してプログラマ122 にアクセス可能であることができることが認識される。また、図１にはセット123 が１つしか示されていないが、プログラマ122 にアクセス可能な他のセットが多数存在している可能性のあることが認識される。これらの他のセットの１つは、無線通信装置101 が機能するために必要な主プログラムを含むことができる。
【００２０】
第２の通信リンク133 は、プログラム可能なメモリ116 またはＲＡＭ114 へのセット123 の書込みまたはダウンロードを可能にするためにプログラマ122 を入出力ポート118 に結合することができる。ハウジング102 内の種々の素子はバスシステム120 によって結合され、そのバスシステム120 はデータバスに加えてパワーバス、制御バスおよび状態信号バスを含んでいてもよい。しかしながら、簡明化のために種々のバスは図１にはバスシステム120 として示されている。さらに、本発明とは直接関係がないため、ここには説明されておらず、また図１にも示されていないが、当業者は、無線通信装置101 がキーパッド、電池およびディスプレイのような付加的な素子を備えていることを認識するであろう。
【００２１】
上述したように、通常の無線通信システムではオプション機能と主プログラムの組合せが必要とされ、組合せられたプログラムがＥＥＰＲＯＭ中にプログラムされている。本発明は、１以上のオプション機能を主プログラムのダウンロードプロセスから分離してダウンロードするプロセスを可能にする。図２乃至４は、これがどのようにして行われるかを示している。
【００２２】
図２は、本発明の例示的な１実施形態のプログラム可能なメモリ116 の概略図である。主プログラムは、プログラム可能なメモリ116 の記憶ブロック（メモリ位置）134 中に書込まれる。図１のセット123 に属し、符号124 、126 および128 でそれぞれ示されている機能１、機能２および機能３のバンドルは、プログラム可能なメモリ116 の別の記憶ブロック中にそれぞれ書込まれる。機能１のような各バンドルはさらに識別子（ＩＤ）136 、１以上のポインタ138-140 、およびフラグ142 を含んでいる。空の記憶ブロック152 のために、将来追加されたバンドルがプログラム可能なメモリ116 に書込まれることができる。
【００２３】
上述したように、機能１のバンドルはデータおよび実行可能コードの両者を含むことが可能であり、プログラム可能なメモリ116 における記憶ブロック124 として概略的に示されている。ＩＤ136 は、機能１のバンドルのバイトサイズ、そのメモリアドレス、およびそれがどのバンドルタイプか（たとえば、ダイヤルプラン）を識別するコードのような情報を含むことができる。
【００２４】
ポインタは当業者に知られており、一般的に機能１のバンドルに関連した特定のデータまたは実行可能サブルーチンのセットがアクセスされることのできるプログラム可能なメモリ116 またはＲＡＭ114 のメモリアドレスを含む変数である。バンドルのアクセス位置は、時に“入口点”と呼ばれる。各バンドルは任意の個数の他のバンドルの入口点に対する多数の入口ポインタを含むことができる。たとえば、符号138 で示されているポインタ１は、機能１のバンドルの活動化を開始させる記憶ブロック134 中のメモリ位置を指示する。別の例として、符号139 で示されているポインタ２は、機能１のバンドルと同時に実行する必要のある別のバンドルを指示し、それによって機能１のバンドルをその別のバンドルと動的にリンクすることができる。このような方法によれば、ポインタはプログラムのグループまたはプログラムの部分を互いに動的にリンクすることが可能であるため、全てのプログラムを単一のプログラムまたはメモリ位置に結合する必要がなくなる。
【００２５】
フラグ142 は、特定のバンドル124 が有効か、あるいはそのバンドルがＥＥＰＲＯＭ116 中へのロードに成功したかどうか、もしくはメモリ位置がバンドルにより占有されているかどうか等に関する識別データを提供する。図２にはＩＤ136 、ポインタ138-140 およびフラグ142 が記憶ブロック124 から分離されているように示されているが、この情報はまた記憶ブロック124 内で統合されることができることを認識すべきである。さらに、図２ではプログラム可能なメモリ116 の記憶ブロック124 、126 および128 に配置されたオプション機能が示されているが、当業者は、これらの機能の部分がＲＡＭ114 （図１参照）の不揮発部分に書込まれてもよいことを認識するであろう。これが行われた場合、不揮発性ＲＡＭ114 中の情報は、適切なポインタによってプログラム可能なメモリ16にリンクされ、これにアクセス可能になる。
【００２６】
オプション機能およびそのポインタの別の例は、記憶ブロック126 中に機能２のバンドルとして示されているデータ暗号化方式である。情報を暗号化するためのデータおよび実行可能なコードは、記憶ブロック126 中に記憶されている。このプログラムは、それが暗号バンドルであることを示すＩＤ144 と、記憶ブロック126 がロードされたことを示すフラグ150 とを有している。ポインタ146 および148 は、公開解読キーおよび、または秘密解読キーがそれぞれ記憶されているメモリ位置（すなわち、入口点）を指示する。キーおよびサポート機能はまた、機能の外部に記憶され、機能を使用する呼出し側によってバンドルに渡されることができる。
【００２７】
本発明の例示的な実施形態では、記憶ブロック134 中の主プログラムは、プログラム可能なメモリ116 中をサーチして、オプション機能124 、126 および128 の任意のものを見出そうとするルーチンを含んでいる。これらのルーチンは、任意の所定のオプション機能のサーチに要する時間を最小にするために既知の最適化技術を使用する。オプション機能の位置が突きとめられると、主プログラム中の別のルーチンがオプション機能と対話して、そのオプション機能を活動化する。このように、最初にオプション機能の特定のメモリ位置を知るために主プログラムに対して何も要求されない。主プログラムは、オプション機能がダウンロードされることができることを知る機能を有し、そのオプション機能を求めてプログラム可能なメモリ116 をサーチするだけでよい。
【００２８】
別の例示的な実施形態では、その代わりに、あるいは追加的に、図３に示されているリンクテーブル160 がプログラム可能なメモリ16またはＲＡＭ114 の不揮発部分中に含まれてもよい。リンクテーブル160 は、各バンドル124 、126 および128 と関連した入口点の位置を突きとめて動的にリンクする便利な１以上のポインタ162 、164 および166 を含んでいる。すなわち、無線通信装置101 の主プログラムまたはプロクラマ122 は、特定のバンドルを求めてプログラム可能なメモリ116 全体をサーチしなければならない代わりに、リンクテーブル160 に注意を向けて特定のバンドルの位置を即座に得ることができる。
【００２９】
リンクテーブル160 は、別のリンクテーブルを指示するポインタを含むことができ、この別のリンクテーブルが付加的なバンドルまたはリンクテーブルを指示することができる。この方法では、ポインタおよびリンクテーブルによってシステム100 内の多数のレベルのバンドルがリンクされることが可能である。リンクテーブル160 のいくつかの例示的な実施形態はまた、新しいバンドルおよびリンクテーブルがプログラム可能なメモリ116 に書込まれたときに、付加的なポインタ（別のリンクテーブルまたはバンドルを指示する）がリンクテーブル160 に追加されることを可能にする位置168 を有していてもよい。図３には示されていないが、リンクテーブル160 はまた各ポインタ162 、164 および166 に関連したフラグまたはＩＤを有することができる。たとえば、ポインタ162 は、それが指示しているメモリ位置がバンドルをロードされた状態になったことを示すフラグを有することができる。
【００３０】
記憶ブロック134 中の主プログラムは、主プログラムとリンクテーブル160 との間に適切な動作関係およびリンクを設定するためにリンクテーブル160 に対するポインタ（示されていない）を含んでいる。その代わり、リンクテーブル160 は主プログラム自身の中に組込まれてもよい。さらに、プログラム可能なメモリ116 の未使用の記憶ブロックは将来のオプション機能のダウンロードのために予め割当てられ、リンクテーブル160 中のポインタを介して別々にアドレスされ、ベクトルを設定されることができる。リンクテーブル160 を使用しない別の例示的な実施形態では、主プログラムは各オプション機能を活動化するためのオプション機能リストまたはサブルーチンを含むことができる。その後、主プログラムは通常の機能呼出しコマンドを使用することにより後でダウンロードされるオプション機能を識別して活動化する。
【００３１】
リンクテーブル160 を使用する本発明の例示的な１実施形態において、主プログラムおよびリンクテーブル160 は組合せられたプログラムとして最初のダウンロードプロセス中に一緒にロードされる。オプション機能はこのときダウンロードされる必要はないが、製造業者は、これらの機能に対するバンドルが将来後続的にロードされることを見越して、暗号化およびダイヤルプランポインタのようなポインタをリンクテーブル160 中に含めることができる。すなわち、予め定められたポインタを有するリンクテーブル160 を主プログラムと共にロードすることにより、主プログラムは、新しいバンドルが追加可能であること、それらバンドルの種類、それらバンドルが配置されるべき場所を知るための機構を獲得し、それによってバンドルに動的にリンクされることができる。以下説明するように、リンクテーブル160 は、それが最初に無線通信装置101 にロードされたときは非活動的なデフォルトステージである。バンドルがダウンロードされたときにプログラマ122 によって初期化されるまで、リンクテーブルはデフォルトステージのままである。
【００３２】
要約すると、本発明の例示的な１実施形態により、オプション機能は主プログラムとは別にダウンロードされることが可能になる。オプション機能および主プログラムは、それらが別々にダウンロードされても、ポインタの使用によって互いに対話してアクセスすることができる。次に説明するように、本発明はさらに単一のダウンロードで主プログラムをオプション機能と組合せることを可能にするが、本発明はオプション機能と同時に主プログラムをプログラム可能なメモリ116 中に書込まなければならないという必要性をなくし、動的ロード機能は、プログラム可能なメモリ116 中のデータを再度プログラムする必要なしにオプション機能が追加または変更されることを可能にする。たとえば、プログラム可能なメモリ116 は最初に米国内での使用向けの図２のバージョン（すなわち、暗号化）のバンドル126 によりプログラムされてもよい。その後、国内用のバージョンの暗号化を輸出に適した暗号化のバージョンと置換することが望ましいことがある。システム100 の動的ロード機能のために、必要ならば、プログラム可能なメモリ116 全体を再度プログラムする必要なしに、ユーザは米国内での使用向けの図２のバンドル126 およびポインタだけを再度プログラムすることができる。
【００３３】
図４は、図２に示されているプログラム可能なメモリ116 に対するダウンロードプロセスを示しているフローチャートを示す。ダウンローダ115 を使用する実施形態では、ダウンローダ115 （図１参照）はすでにＲＡＭ114 内に位置していると仮定される。ダウンローダ115 はプログラマ122 と対話して、プログラム可能なメモリ116 をプログラムする。プログラマ122 およびダウンローダ115 の動作はよく知られており、ここで詳細な説明をする必要はない。
【００３４】
本発明の例示的な１実施形態のステップ170 において、最初に、無線通信装置101 の基本動作に関連した主プログラムがプログラマ122 によってプログラム可能なメモリ116 の記憶ブロック134 にダウンロードされ／書込まれる。リンクテーブル160 が使用される実施形態では、予め定められたポインタを有しているが非活動的なデフォルトステージにあるリンクテーブル160 もまたステップ170 中に主プログラムと共にロードされる。リンクテーブル160 は必ずしも記憶ブロック134 に書込まれなくてもよい。必要ならば、記憶ブロック134 中の主プログラムはリンクテーブル160 のメモリ位置にリンクしたポインタを含むことができる。
【００３５】
ステップ172 において、製造業者がオプション機能を無線通信装置101 に追加することを所望しない場合、ステップ182 においてプログラマ122 はダウンロードプロセスを終了し、無線通信装置101 はいつでも消費者に配送されることができる状態となる。ダウンロードされたものが存在する場合、リンクテーブル160 はその非活動状態のままである。
【００３６】
しかしながら、セット123 中のバンドル124 、126 、128 および130 に関連したオプション機能が追加される場合には、ステップ174 においてプログラマ122 はバンドルをダウンロードするためにプログラム可能なメモリ116 中の利用可能な記憶ブロックをサーチする。上述したように、バンドルは予め割当てられた記憶ブロック中にダウンロードされる必要がない。記憶ブロック134 中の主プログラムは、バンドルがダウンロードされた後でプログラム可能なメモリ116 中をサーチしてそのバンドルの位置を突きとめるサーチルーチンを有しているため、バンドルは任意の利用可能な記憶ブロック中にダウンロードされることができる。ステップ174 の前に、製造業者は、プログラム可能なメモリ116 中にバンドル124 、126 、128 および130 を個々のバンドルとしてダウンロードすべきか、あるいは大きいバンドルを形成するいくつかのバンドルの組合せとしてダウンロードすべきかを決定することを認識しなければならない。バンドルプロセスは、ステップ174 の前にプログラマ122 によりオフラインで行われる。
【００３７】
代わりに、リンクテーブル160 を使用する実施形態に対して、ステップ174 において、プログラマ122 は非活動的なリンクテーブル160 を初期化して、リンクテーブル160 を読出し、このリンクテーブル160 中のポインタがバンドルに対して記憶ブロックを指定したかどうかを決定し、その後プログラム可能なメモリ116 内のその記憶ブロックに進んでバンドルをダウンロードする。リンクテーブル160 は、プログラマ122 により初期化されると活動状態のままである。
【００３８】
ステップ176 において、プログラマ122 またはダウンローダ155 は、バンドルをプログラム可能なメモリ116 内の記憶ブロック中にダウンロードする。ステップ178 において、バンドルのダウンロードが成功し、機能可能であることを示すために該当するフラグ142 または150 （図２参照）がプログラマ122 によって設定される。またステップ178 では、リンクテーブル160 を使用する実施形態に対して、ロードされたメモリブロックを示すようにリンクテーブル160 の適切なポインタ162 、164 または166 中のフラグがプログラマ122 によって設定されることもできる。プログラマ122 はまた、必要ならば、ステップ178 中に付加的なバンドルが後続するダウンロード手順でロードされてもよい記憶ブロックに新しいポインタを追加するために位置168 でリンクテーブル160 を更新することができる。
【００３９】
上記のステップ176 および178 はプログラム可能なメモリ116 中への“バンドル”のロードとして広い意味で説明されているが、この“バンドル”はオプション機能、別のリンクテーブル、１組のポインタ、主プログラムに対する修正機構、またはこれらの項目の組合せであることができることが認識される。したがって、本発明は、製造業者がプログラム可能なメモリ116 の既存の内容を種々の方法で構築および更新することを可能にし、また、本発明はプログラム可能なメモリ116 中にダウンロードされるバンドルのタイプによって制限されない。
【００４０】
バンドルがプログラム可能なメモリ116 中にダウンロードされた後、ステップ180 で追加されるバンドルが１つもない場合、ステップ182 においてダウンロードプロセスが終了する。バンドルを追加する必要がある場合には、上述したプロセスがステップ174 からスタートし、繰り返される。
【００４１】
要約すると、図４のフローチャートに示されているダウンロードプロセスは、オプション機能のバンドルが主プログラムから独立してプログラム可能なメモリ116 に追加されることを可能にする。この方法によって、無線通信装置101 を最初のプログラミングから独立してカスタム化することができる。
【００４２】
上記の説明において、本発明の特定の実施形態が本明細書では説明のために記載されているが、本発明の技術的範囲を逸脱することなく種々の修正が可能なことが認識されるであろう。たとえば、上述した実施形態に対する図面にはプログラム可能なメモリ116 中に書込まれるバンドルが示されているが、バンドルの一部分、バンドル全体または全てのバンドルがＲＡＭ114 の不揮発部分の中に記憶されることができる。これらのバンドルは互いにまたは主プログラムに動的にリンクされる。したがって、本発明は、請求の範囲の解釈の定められた原則に基づいて解釈される添付の請求の範囲によってのみ制限される。
【図１】
2011040074.tif 000003
【図２】
2011040074.tif 000004
【図３】
2011040074.tif 000005
【図４】
2011040074.tif 000006
【外国語明細書】
2011040074000001.pdf