JP4057079B2 - プログラマブル・サウンド合成装置 - Google Patents

プログラマブル・サウンド合成装置 Download PDF

Info

Publication number
JP4057079B2
JP4057079B2 JP25601996A JP25601996A JP4057079B2 JP 4057079 B2 JP4057079 B2 JP 4057079B2 JP 25601996 A JP25601996 A JP 25601996A JP 25601996 A JP25601996 A JP 25601996A JP 4057079 B2 JP4057079 B2 JP 4057079B2
Authority
JP
Japan
Prior art keywords
event
terminal
state
output
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP25601996A
Other languages
English (en)
Other versions
JPH09269789A (ja
Inventor
アー‐フー ラム ピーター
Original Assignee
アー‐フー ラム ピーター
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アー‐フー ラム ピーター filed Critical アー‐フー ラム ピーター
Publication of JPH09269789A publication Critical patent/JPH09269789A/ja
Application granted granted Critical
Publication of JP4057079B2 publication Critical patent/JP4057079B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、外部電気シミュレーションに応答してシミュレーテッド・オーディオ信号とディジタル駆動信号とからなる出力信号を対話式に発生するプログラマブル制御装置に関する。
【0002】
【従来の技術】
伝統的なサウンド合成装置は、アナログ・オーディオ・ソース信号をサンプル採取し、サンプル採取された信号を種々の圧縮アルゴリズムでディジタルデータに符号化してからメモリに格納する。再生時には、このディジタル信号を復号し、アナログ信号に変換してオーディオ・トランスジューサを駆動する。後に開発されたプログラム可能なサウンド・シンセサイザは、さらに、デザインをマイクロプロセッサと一体化され、ステップ・バイ・ステップ・アセンブリ言語プログラミング・プロセスによる外部電気シミュレーションに従って合成音を対話式に発生することができる。
【0003】
【発明が解決しようとする課題】
本発明の目的は、アセンブリ言語の命令セットを学ぶのになんら困難を伴わず、アセンブリ言語プログラミングの概念および技術を徹底的にトレーニングすることなく、また、マイクロプロセッサ・アーキテクチャを理解することなく、普通の人間がプログラミング・プロセスを実施できるようにした簡単な構造のプログラミング・プロセスと共に低コストのプログラム可能なサウンド合成装置を開発することにある。
【0004】
本発明は、プログラム可能なサウンド合成装置にとって望ましい基礎要素を研究すること、なんら徹底した専門的なトレーニングを受けることなく普通の人間が実施するに充分な程度の単純さで制御システムの動作を表すようにグラフィック・モデルを構築すること、必要なプログラミング機能を組織的に文書化するために簡単なプログラミング・フォーマットを開発すること、最終的に、このモデルおよび開発した簡単なプログラミング・フォーマットで作動する符号化システムならびにハードウェア回路を開発することの創意ある諸段階に向けたものである。
【0005】
【課題を解決するための手段】
本発明の簡単なプログラミング・プロセスは、2つのテーブルまたは2つのデータ・フィールドを書き入れる段階からなる。第1のデータ・フィールドは、入出力端子の種々の安定または遷移構成状態に名前を付け、入出力端子の構成を定め、入力端子が修飾トリガ信号を受け取ったときに実行されるべきイベントを指定する。第2のデータ・フィールドは修飾トリガ信号を受信したときのイベントの応答を定める。
【0006】
本発明のハードウェアの実施例は、合成したオーディオ信号またはディジタル出力信号あるいはこれら両方を発生するプログラマブル装置の入出力(I/O)構造およびデータ・メモリ構造に向けたものである。代表的なハードウェア実施例は、多数の入出力端子(I/O端子)からなり、各I/O端子は所定の修飾入力信号を検出するために多数の信号修飾回路;出力信号を送出するための多数の出力信号ドライバ;修飾信号受信時に実行されるべきイベントを記憶するイベント・データ・メモリ;修飾トリガ信号受信時にI/Oピンの入出力状態を構成すると共にイベント・データ・メモリをアドレス指定するように構成したデータを記憶するI/O状態構成メモリ;イベント・データ・メモリからデータを受信して種々の出力信号を発生するイベント実行回路;イベント・データ・メモリおよびI/O状態構成メモリをアドレス指定するアドレス指定回路からなる。
【0007】
このプログラミング・プロセスのデバッグも簡単なプログラミング構造の利点を採用している。多くの場合、プログラム・デバッグ・プロセスは、モニタ・スクリーンに表示されているただ1つのページ・データ・テーブルのトリガリング・モードを対話式にアドレス指定することによって実施することができる。この簡単なプログラミング構造は、対話式制御特徴を持つ製品を開発するに要する開発コスト、プログラミング時間、デバッグ時間をかなり低減することができる。
【0008】
本発明の最も簡単で最小単位で構成した実施例の構造の主たる相違は、マイクロプロセッサ・べースの制御装置と比較した場合、プログラム・カウンタ、演算論理ユニット(ALU)、命令コード・デコーダをなんら含んでいないばかりか、スタック・メモリをなんら含んでいないということにある。制御装置のたいていの機能ブロックによって共有されるべき特殊な共通データバスやアドレス指定用バスが全くないのである。クロック信号は、信号を発生するために信号発生器によって要求されない限り不要である。イベントの実行は、マイクロプロセッサの命令セット関連時計回路によるなんらの遅延も生じさせることなく瞬間的である。この簡単なハードウェア構造により、本発明の制御装置のコストは、通常のマイクロプロセッサ・べース・コントローラと比べて低い。
【0009】
本発明のプログラミング構造は、プログラミング手続きを通常のアセンブリ言語プログラミングで要求されるような逐次論理オーダーとする必要がなく、プログラマが命令セットをなんら学ぶ必要がない。本発明の簡単な構造では、普通の人間が最低限のトレーニングで制御装置を効果的にプログラムすることができる。
【0010】
サウンド合成機能を削除することによって、本装置は、LEDアレイのような外部コンポーネントあるいはソレノイドやモータのような適当なモーション・トランスジューサを対話式に駆動するのに使用できる限られた能力のプログラマブル制御装置に縮小される。
【0011】
本発明の実施例は、たとえば、対話サウンド効果やディジタル信号を発生して外部トランスジューサ装置を駆動する低コストのプログラム可能なサウンド合成装置で用いるのに特に適している。このようなプログラム可能なサウンド合成装置は、多くの電子消費製品、たとえば、セキュリティ・システム、トーキング・クロック、電子玩具、ドアベル、季節贈答品等々における重要な構成要素として広く用いられている。
さらに、本発明の実施例は多くの他の用途、たとえば、論理コントローラ、対話式コントローラ、タイマに有用性を見出している。
本発明の新規な特徴は特に添付の特許請求の範囲に記載してある。本発明は、添付図面と一緒に以下の説明を読んだときに最も良く理解してもらえよう。
【0012】
【発明の実施の形態】
本発明を理解するためのより簡単な方法は、応用例として図示したプログラマブル装置の好ましい実施例の仕様を定義し、プログラム可能なサウンド・シンセサイザをプログラムするプログラミング・プロセスを研究することである。次のステップはいくつかの簡単な応用例を研究することである。次に、本発明の制御装置、制御方法のハードウェア実施例に説明を敷延し、発明を集積回路に作り、最後に、プログラム・シミュレーション・デバッグ・システムの好ましい実施例を創作する。
【0013】
応用例と共に説明しようとしている代表的な実施例の仕様は次の通りである。
1.本制御装置は8つのプログラム可能な入出力端子と1つの付加的なオーディオ出力端子とからなる。各端子の参照符号は3ビット二進数で表わしてある。
2.各端子は、入力端子、出力端子、「ドントケア」高インピーダンス端子としてプログラムすることができる。
3.各入力端子は「修飾」特徴づけ入力トリガ信号に応答するようにプログラムされる。好ましい実施例については、4つの代表的な特徴づけ入力信号は次のように定義される。
(a)立ち上がりエッジによって特徴づけられ、記号「R」で表される信号;
(b)立ち下がりエッジによって特徴づけられ、記号「F」で表される信号;
(c)信号がサンプル採取されたときに論理ハイレベルで特徴づけられ、記号
「1」で表される信号;
(d)信号がサンプル採取されたときに論理ローレベルで特徴づけられ、記号
「0」で表される信号。
4.各出力端子は出力信号を送出するようにプログラムできる。出力信号の3つの例は次のように定義される。
(a)記号「H」で表される論理ハイレベルの出力信号;
(b)記号「L」で表される論理ローレベルの出力信号;
(c)記号「P」で表される6ヘルツ方形波パルスからなる出力信号。
5.「ドントケア」高インピーダンス状態は記号「X」で表わされる。各端子は、上記したような8つの可能性のある状態R,F,1,0,H,L,P,Xのうちの1つとして指定するようになっている。1つの端子の8つの可能性のあるI/O構成の各々は3ビット二進数で表される。
6.可能性のある構成状態は、最大16個あり、I/O State# 0からI/O State# 15として示してある。各I/O構成状態は、4ビット二進数で表してある。一度にI/O状態の1つだけがプログラムによって指定されて制御装置のI/O構成を表わす。I/O State# 0はデフォルトの活性I/O構成状態、すなわち、制御装置が最初にパワーアップされたときの活性I/O構成状態として定められている。
7.1つのI/O構成状態の1つの入力端子が修飾トリガ信号を受信したときにはいつでも、所定のイベントを実行するように命令される。
8.最大で32の所定イベントがある。各イベントは、5ビット二進数で表わされている。
【0014】
ここで、1つのI/O端子を構成する方法や実施例のI/O状態およびイベントの最大数が例示であることは了解されたい。I/O構成状態およびイベントの数は任意融通性のある数であってもよいが、実際には、数が増えれば、それだけ内部レジスタやメモリ・データ長でより多くのビットを必要とし、したがって、製品コストが高くなる。制御装置の設計時にちょうど良い数を定めるのが好ましい。
【0015】
本発明に従ってプログラム可能なサウンド・シンセサイザをプログラムする好ましいプログラミング・プロセスの一例が、図1のプログラミング・フォーマットによって表わしてある。このプログラミング・フォーマットは2つのフィールドからなる。第1のフィールドは、テーブル10に示されており、全部で8つのI/O端子を列挙する第1座標12と、すべてのI/O構成状態を列挙する第2座標11とからなる。テーブルの各要素は或る特定のI/O構成状態での1つの端子の構成を表わしている。プログラミング・プロセスの第1部分は、先に定義したような8つの記号R、F,1,0,X,H,L,Pのうちの1つでテーブルの各要素を特定するものである。1つの端子が入力端子として構成された場合にはいつでも、番号を付けたイベントが指定されることになる。これは、修飾入力信号が受け取られたときに実行されるべきイベントである。要素13「F:E11」はI/O State# 1の端子の構成(Pin 1)を示し、「F」は修飾信号が立ち下がりエッジで特徴づけられたことを示し、F:E11は立ち下がりエッジ信号が端子1によって受信されたときに実行されるべきEvent# 1を示している。要素14の「 F:E11 は、立ち上がりエッジ信号が端子2で検出されたときにEvent# 2が実行されるべきであることを示している。要素15は、端子6がドントケア端子であることを示している。入力端子が「X」に構成されたときにはいつでも、この端子によって受信された任意のトリガ信号が無視される。出力端子が「X」に構成されたときにはいつでも、出力端子は高出力インピーダンスを持つように構成される。
【0016】
さて、テーブル0に注目されたい。このテーブルはプログラミング・フォーマットの第2部分からなり、実行されるべきイベントを定義している。或るイベントは1つまたはそれ以上のサブイベントからなる可能性がある。実行時、各イベントまたはサブイベントは、出力信号を発生すること、活性I/O構成状態を修正すること、タイマ・カウンタを始動すること、実行を別のイベントに指示すること、などのようなタスクを実施する。テーブル20はテーブル10に従って実行されるべきイベントすべての詳細な内容を列挙している。行21は、Event# 1が3つのサブイベント22(STATE# 1),23(SOUND 1),24(EVENT# 1)からなる。I/O State# 0が活性I/O構成状態であると仮定すると、端子1の立ち上がりエッジ信号の受信がEvent# 1の実行をトリガする。すなわち、サブイベント22,23,24が順番に実行されることになる。サブイベント22は、活性I/O構成状態がI/O State# 0からI/O State# 1へ変化したことを示している。
【0017】
次いで行われるオーディオ信号の再生が「SOUND 1」として示してある。サウンドの再生が完了すると、サブイベント24が実行され、実行を「EVENT# 1」にループバックし、別のサイクルにわたって「SOUND 1」を再演する。このルーピングは、I/O State# 1の端子1から4までのいずれかが修正信号を受信するまで続く。たとえば、端子1が立ち下がりエッジ信号を検出すると、Event# 1の「SOUND 1」ルーピングが中断され、Event# 11が実行される。Event# 11はコントローラに命令し、I/O State# 0に活性I/O構成状態として戻させる。「END」記号はイベントの終了を示しており、制御装置はI/O State# 0によって定義されるように次の修正入力信号を受信すべく待機するアイドル・モードになる。
【0018】
制御装置のパワーアップで、I/O構成状態はデフォルト・パワーアップI/O状態として定義されることになる。すなわち、制御装置のパワーアップ直後の活性I/O構成状態と定義されることになる。便利な表記法では、I/O State# 0をデフォルト・パワーアップI/O状態と定義することである。あるいは、Event# 1をパワーアップで最初に実行されるべきデフォルト・パスと定義してもよい。
【0019】
ここで、各I/O構成状態が他のそれぞれとなんら順序関係を持たず、テーブル10を任意の順序に配置できるということに注目されたい。同様に、テーブル20に列挙されたイベントは、いずれも、行21におけるように別のイベントのサブイベントとして示されない限り、別のイベントとの順序関係をなんら持たない。イベントは任意の順序で番号を付けることができ、望むならばプログラマが番号をスキップしても良い。順序関係を有するサブイベントは、すべて、単一のイベント行リスティングに配置される。この配置により、通常のアセンブリ言語プログラミングの多数行リスティングと比較して、プログラマはより鮮明なプログラム・ピクチャを得ることができる。
【0020】
図1のプログラム・テーブルは前述したように2つのフィールドに構成してあるが、本発明のプログラミング・プロセスについての学習の簡便さおよびトレース性の容易さを保ちながらプログラミング・テーブルのフォーマット構造に種々の修正を加えることも可能である。
【0021】
図2および図3は別の簡単な応用例を示しており、ここでは、制御装置の1つのトリガ・ピンがトリガできないトリガ入力端子としてプログラムされる。図3の行41はPin2からPin 8までがすべてドントケア端子であることを示している。要素42は、立ち上がりエッジ信号がPin 1に受信されたときに、Event# 1が実行されることを示している。テーブル50は、Event# 1が最初にサブイベント51を活性化することを示している。このサブイベントは、「SOUND」52が発生させられる前にState# 1を活性I/O構成状態であると特定したものである。テーブル40の行45は、Pin 1が「SOUND」52の発生中、高インピーダンス状態に変わり、したがって、Pin 1がトリガできないトリガピンとなることを示している。サウンドの再生の終了時、I/O State# 0は活性状態として示され、Pin 1は別の修正済みのトリガ信号を受信する準備が整っている。
【0022】
2つのI/O構成状態およびEvent# 1は図2に示すように信号フローチャートによって表わすことができる。I/O State# 0およびI/O State# 1の各々はブロックで表されている。矩形のブロック31は、I/O State# 0が安定状態であることを示している。楕円形のブロック34は、I/O State# 1が遷移状態であることを示している。矢印線32は、活性状態がテーブル50におけるEvent# 1のサブイベント51の命令に従ってI/O State# 0からI/O State# 1へ切り替えられたことを示している。矢印線33は、「SOUND」52が再生された後に活性状態をI/O State# 0へ戻すサブイベント53を表わしている。
【0023】
図4および図5は別の応用例を示しており、ここでは、制御装置は4種類のサウンド(SOUND# 1からSOUND# 4)とトリガするようにプログラムした4つのトリガ端子(Pin 1からPin 4)を持つように構成してある。サウンドの再生中、対応するトリガ端子はそれ自体のトリガ信号によってトリガできないが、他の出力端子の受信した修正トリガ信号によって中断され、再トリガされることになる。 図5の行77は、Pin 5からPin 8までがすべてドントケア端子であることを示している。要素74は立ち上がりエッジ信号をPin 4が受信したときに、Event# 4が実行されることを示している。テーブル80は、Event# 4が最初にサブイベント82を活性化することを示している。このサブイベントは、「SOUND# 4」83の発生前にI/O State# 4を活性I/O構成状態であると特定したものである。テーブル70の行78は、「SOUND# 4」83の発生中にPin 4が高インピーダンス状態に変化したことを示している。したがって、Pin 4はトリガ不能のトリガピンとなる。行78はPin 1からPin 3にも命令してトリガ可能状態を保持し、 Pin 1からPin 3の受信した任意の修正トリガ信号が「SOUND# 4」の再生を中断することになるようにする。サウンド再生終了時、State# 0はサブイベント84に従って活性状態と指定され、Pin 4が別の修正トリガ信号を受信する準備を整える。
【0024】
5つのI/O構成状態および4つのイベントは、図4に示すように、単一のフローチャートで表わすことができる。I/O State# 0からI/O State# 4の各々はブロックで表わしてある。矩形のブロック64は、 I/O State# 0が安定状態であることを示している。楕円形のブロック61、65、66、67は、I/O State# 1からI/O State# 4が遷移状態であることを示している。矢印線69は、活性状態がテーブル80におけるEvent# 4のサブイベント82の命令に従ってI/O State# 0からI/O State# 4へ切り替えられたことを示している。矢印線71は、「SOUND# 4」83が再生された後に活性状態をI/O State# 0へ戻すサブイベント84を表わしている。
【0025】
図2,図4のフローチャートは、プログラミング・テーブル40,50,70,80それぞれの内容と密接に相関している。より複雑な用途では、それが初めてフローチャートをスケッチするときに非常に役立ち、I/O構成状態やイベントに番号を振るよりも意味のある名前を与えることができるということにユーザは気がつくであろう。フローチャートに従って必要なI/O構成状態およびイベントの数を定め、最後に、フローチャートの相互連結した矢印線によって示すようにI/O構成テーブルとイベント・リストを書き込む。
【0026】
図6および図7は、別の応用例を示しており、ここでは、制御装置は、2つのトリガ端子と「OFF」端子(Pin 1、Pin 2)と6つの出力端子(Pin 3〜Pin 8)を持つように構成してある。出力端子は、各々、1つのLEDを駆動するように接続してある。6つのLEDは一列に接続してあって、明滅効果を示す。Pin 1が最初にトリガされてLEDの列の順番の明滅を開始させる。各LEDは順次に0.5秒間オンとなる。Pin 1が再びトリガされると、制御装置は第2明滅モードに変わり、1つ置き3つのLEDが同時に0.5秒間オンになる。Pin 1の順次のトリガ操作が2つの明滅モードをトグルすることになる。この明滅プロセスはPin 2がトリガされるまで継続する。
【0027】
最初に図6に示すようなフローチャートを計画立てることによって、この応用例をユーザがプログラムすることがより容易となる。矩形のブロック91は、I/O State# 0を、パワーアップ状態および待機状態の両方を表わす安定状態として示している。修正済みのトリガが受信されると、逐次LED明滅モード92がEvent# 1の開始を表わす矢印線94を通して開始される。このルーピング・プロセス97は6種類のLED出力状態からなる。ルーピング・プロセス97の各状態は0.5秒間隔で異なったLEDを順次に点灯させる。Pin 2が停止パルスを受信すると、明滅シーケンスが中断され、活性状態が矢印線95で示すようにEvent# 3を通ってI/O State# 0に戻される。引き続く修飾信号をPin 1が受信したならば、ルーピング・プロセス97が中断され、矢印線96で示すようにEvent# 2を通して交互明滅モード93に切り替わる。交互明滅モードのルーピング・プロセス98は2つのLED出力状態からなる。各状態は0.5秒間3つのLEDを点灯する。トリガ・パルスが再び受信されると、明滅プロセスがEvent# 1を介して逐次明滅モード92に戻る。停止パルスが受信されると、活性状態がEvent# 3を介してブロック91に切り替えられ、制御信号が待機モードに戻る。
【0028】
このフローチャートからは、このプログラミング・プロセスが9つのI/O構成状態を必要としていることがわかる。I/O State# 0はパワーアップI/O構成状態と待機モードを表わしている。6つのI/O構成状態は逐次LED明滅モードのために必要であり、2つのI/O構成状態は交互LED明滅モードに必要である。さらに、3つのイベントを定義しなければならない。Event# 1は逐次LED明滅モードを示し、Event# 2は交互LED明滅モードを示し、Event# 3は待機モードを示す。
【0029】
図6のフローチャートはテーブル100、120の構造に向けたものである。各I/O構成状態およびイベントを数字で示す代わりに、各I/O構成状態およびイベントに意味のある名前が付けてある。同様に、各I/O端子にも名前が付けてあってプログラミング・プロセスを容易にしていている。テーブル100において、Pin 1はトグルピンとして「TG」の名前が付けてあり、Pin 2は明滅プロセスを停止させる「OFF」端子である。Pin 3からPin 8はLED1からLED6として示してあり、これらの端子ピンがそれぞれLED1からLED6に接続してあることを示している。I/O State# 0は、要素102で示すように、「STANDBY MODE」として示してある。I/O State# 1は、要素101で示すように、「LED1 ON」として示してある。I/O State# 7は、要素101で示すように、「ALT 1」の名前が付けてあり、第1の交互LEDライトアップ・パターンを表わしている。I/O State# 8は、要素111で示すように、「ALT 2」という名前が付けてあり、第2の交互LEDライトアップ・パターンを表わしている。
【0030】
パワーアップ時、I/O State# 0はパワーアップ活性I/O構成状態として定められる。Pin 1のみが立ち上がりエッジ修正信号を検出できる。他のすべての端子は高インピーダンス状態にある。コーディング要素107で示すように、Pin 1が修飾トリガ信号を受信したとき、Event# 1、121が実行され、活性I/O状態を、サブイベント122で命令された通りにI/O State# 1に切り替え始め、段階的にI/O State# 6まで切り替える。各I/O構成状態は、別のI/O構成状態が制御を引き継ぐまで、「DELAY 0.5」の遅延時間だけ維持される。I/O State# 1により、LED1のみが0.5秒間点灯する。このルーピング・プロセスは修正トリガ信号をPin 1またはPin 2が受信するまでPin 4からPin 8まで繰り返される。ここで、I/O State# 1からI/O State# 6までのルーピング・プロセス中、Pin 1の受信した任意の修正信号がEvent# 2、124を指し示すことに注目されたい。このイベントが次いでI/O State# 7とI/O State# 8を切り替える。112で示す3つの交互のLEDは、Pin 1またはPin 2が別の修正信号を受信するまで同時に点灯する。ここで、I/O State# 1からI/O State# 8までの間に立ち上がりエッジ信号がPin 2によって受信されたときに、行125に示すEvent# 3が実行され、サブイベント127で命令された通りに活性状態をI/O State# 0の待機モードへ戻すことに注目されたい。
【0031】
このプログラミング・プロセスのアーキテクチャは、なんら構造プログラミング概念を知らないか、あるいは、或る用途を組織的にプログラムするマイクロプロセッサ・アーキテクチャを理解していない未熟なプログラマのためのビルトイン式構築法を提供する。このプログラミング・プロセスは、容易に学習でき、構造簡単で、フォローすべき複雑な設計ルールをなんら含まないフローチャートで始めることができる。実際のプログラミング・プロセスでは、設定したフローチャートに従って2つのテーブルにグループ分けした仕様の書き込みがある。取り扱うべき二進数も十六進数もなく、学習すべきメモリマップI/O概念もなく、気をつけるべきメモリ・オーバーフローその他の保持状態もなく、注意を払うべき参入点またはプログラム・カウンタもなく、覚えておくべき命令セットもない。さらに、通常、行毎の命令コードと1つまたはそれ以上のオペランドからなる命令セットもない。このプログラミング方法は、「LOAD R1, 64H」とか「JUMP LINE 4FFH」などという命令セットで混乱する普通の人間にとっては非常にユーザフレンドリーである。もっと重要なのは、この簡単なフローチャートの構造が実際のプログラミング・プロセスに直接統合されるということであり、テーブルの書き込みは、本来、プログラムの流れのクリーンカット構造を提供するということである。異なったI/O構成状態における各I/O端子の状態は良く組織化され、はっきりと一緒に列記され、論理の流れのトレースを容易にする。通常、完全なプログラムを1頁の紙に列記することができ、これは普通の人間がプログラムのフルピクチャをマスタするのに非常な助けとなる。
【0032】
ここで、本発明の簡単なプログラミング・プロセスが2つのテーブルのプログラムしたデータを、マイクロプロセッサべースの制御装置によって解釈されるべき別のプログラミング言語に翻訳する翻訳プログラムを設計することによって現存のマイクロプロセッサべース制御装置をプログラムすることに応用できることに注目されたい。他のプログラミング言語としては、機械語、アセンブリ言語、BASICのようなマクロ言語またはハイレベル言語がある。さらなる強化プログラミング・ステップとしては、翻訳されたプログラムを再検討して冗長な命令を除き、プログラム・メモリを節約したり、翻訳されたプログラミング言語で書いた付加的なプログラム・セグメントによってプログラム内容を強化したりすることがある。
【0033】
あるいは、前述のプログラミングのイベントが別の言語で書いたサブイベントを含んでいてもよい。この構成によれば、本発明のプログラミング方法によって提供されるユーザフレンドリー構造を維持しながらシステムによって支援される他のプログラミング言語をフルに活用できる。他の言語で書いたプログラム・セグメントと共存する本発明の簡単なプログラミング方法の扱いやすい性質により、I/O関連プログラミングを構築する理想的なプログラミング方法を得ることができる。
【0034】
本発明の易しいプログラミング方法をアセンブリ言語に翻訳したとき、図1に示すテーブル10の各I/Oピンの状態は、状態の変化の有無に係わらず、アセンブリ言語によって書かれた種々のI/Oプログラミングに翻訳され得る。もし、たとえば、テーブル10の例におけるように、ピン1〜4がトリガを入力することにのみ供され、ピン5〜8が出力にのみ供されるようにマイクロコントローラが構成されているならば、テーブル10は2つのテーブルに分割することができる。第1のテーブルは4つの入力ピン1〜4のみを指定するようにする。第2のテーブルは4つの出力ピン5〜8のみを指定するようにする。この修正により、インタプリタ・プログラミングを簡略化し、プログラミング・メモリを節約することができる。
【0035】
前記のことからわかるように、本プログラミング方法の好ましい実施例は普通の人間による制御装置の組織的なプログラミングを容易にするように開示したものである。開示したプログラミング方法と密接に相関するハードウェア・デザインの好ましい実施例が図8に示してある。ハードウェア実施例およびプログラミング方法との関係の説明を容易にするために、プログラミング方法を説明するために記載したプログラマブル制御装置の仕様を採用する。ここで、本発明の範囲および応用がこの仕様に限らないことは理解してもらいたい。入出力回路44は、プログラミング方法応用例で定義したような8つの端子145と、各端子の状態を構成する制御回路と、端子が出力端子として構成されたときに信号を駆動するドライバ回路と、端子が入力端子として構成されたときにトリガ信号を検出する修飾回路とからなる。
【0036】
入出力回路144は、I/O構成状態メモリ(I/O状態メモリ)132から制御信号を受け取り、I/O端子145を最大16個の可能性のある状態のうちの1つに構成する。I/O構成状態メモリは16頁のメモリからなり、各頁のメモリは8つのI/O端子145の各々を構成するのに必要なデータを含む1つのI/O構成状態を表わしている。制御装置のパワーアップ時、パワーアップ回路131が1頁のI/O構成状態メモリ132をデフォルトI/O構成状態または活性I/O構成状態として活性化し、この頁のデータは入出力回路144に送られてI/O端子を構成する。
【0037】
修飾済みのトリガ信号の受信時、I/O状態メモリ132から得られた対応するイベント・アドレス情報が信号パス146を通してイベント・アドレス指定回路147に送られる。対応するイベント・データ・メモリ149の出発アドレスがアドレスバス148でセットアップされ、イベント実行回路138の制御の下にイベントが実行される。このイベント実行回路138は対応するイベント・データ・メモリ149に含まれるイベント・サブイベント情報を分析し、反応する。サウンドを発生するサブイベントがイベント実行回路138内に設置したサウンド再生回路を活性化することになる。こうして生じたオーディオ信号は、信号パス141および代替出力端子140を通して出力信号135として発生させられる。あるいは、6ヘルツ・パルス列のような出力信号を「P」I/O構成コードによって定義されるように発生させてもよい。このパルス列はI/O端子145の1つおよび信号パス139を通して送られる。サブイベントが図1のサブイベント24のような別のイベントを始動する操作を要求するときには、イベント実行回路138が情報をイベント・アドレス指定回路147に送り、新しいイベントが開始させられる。
【0038】
サブイベントが図1のサブイベント22のような別の入出力構成状態を活性化する操作を要求するときには、イベント実行回路138は情報をI/O状態アドレス指定回路134に送り、制御パス133を介して別の頁のI/O状態メモリ132を活性化する。
図9は図8に示す入出力回路144の機能ブロックの詳細な回路図である。回路172は端子1の入出力回路を示している。ここには、図示実施例の仕様によって定義されているように端子2〜8に対応する7つの同一の回路173〜174がある。入出力回路の各端子はI/O構成状態メモリ13から3ビット・コード151を受け取り、端子の構成を定める。3ビット・コードは復号され、3ないし8行デコーダ157によって8つの可能性のある入出力構成158のうちの1つを選ぶ。
【0039】
修飾回路162は、「R」,「F」,「1」または「0」の入力構成コードによって構成される特徴づけ信号に応答するように設計してある。入力構成コード「R」,「F」,「1」または「0」の1つによって端子が入力端子として構成されたときには、選定された入力構成に対応するイネーブル・ライン160が修飾回路162の対応する部分を活性化して端子パッド171から受け取る信号をモニタする。もし修飾されたトリガ信号が検出されたときには、修飾回路イネーブル・ライン170が、対応するイベント・アドレス・ポインタ・コードが論理回路156を通って図8のイベント・アドレス指定回路147に送られるのを可能とする。図8のI/O構成状態メモリ13から得られたイベント・アドレス・ポインタ・コード152は、応用例装置のデザイン仕様において定義したように、32種類のイベントをアドレス指定する5ビット・コードである。
【0040】
「H」,「L」,または「P」コードによって端子が出力端子として構成された場合には、修飾回路162は、同時に入力端子、出力端子の両方として役立つことをこの端子に要求する特殊目的デザインがない限り、通常は使用禁止とされる。出力ドライバ161は制御信号159に従って端子パッド171へ適切に駆動される出力信号を与える。もしこの出力信号が「H」または「L」レベル以外の波形信号、たとえば、デザイン仕様で定義された6ヘルツ・パルスである場合には、この波形信号を端子ピンを通して送出するために出力信号ソースが要求される。この応用例では、6ヘルツ信号がイベント実行回路138または独立したオシレータ回路のいずれかから与えられる。この信号は、「P」コードが選ばれたときに端子パッド171へ送られる。ここで、このデザインが図8の代替端子140に加えて入出力端子のいずれかを通してオーディオ信号を発生させることができることに注目されたい。
【0041】
端子が入力端子として構成された場合、出力ドライバ161は通常使用禁止とされる。端子が記号「X」で示すドントケア状態または高インピーダンス状態を持って構成された場合には、修飾回路162、出力ドライバ161の両方が使用禁止とされる。制御装置のコストを低減するために、いくつかの端子を入力専用端子として指定して出力ドライバ161のコストを節約してもよい。この場合、いくつかの端子を出力専用端子として指定して対応する修飾回路162のコストを低減してもよい。
【0042】
ここで、指定された8つのI/O構成が例示であり、特殊な機能の任意の修飾回路や出力信号発生器を加えて制御装置のパワーを強化してもよいことは了解されたい。たとえば、正誤装置を電話製品のテストのためにプログラマブル・テスト機として使用する場合に、 DTMFトーンの検出を修飾回路として加えてもよいし、周波数スウィーピング信号を出力信号として発生させてもよい。
【0043】
ここで、図10には、図8のI/O構成状態メモリ132、I/O状態アドレス指定回路134の好ましい実施例が示してある。メモリ184はI/O構成状態State# 0のための8つのI/O端子を構成するのに必要な1頁のデータを包含する。このメモリ頁は8バイトのデータからなり、8つの端子を構成する。8つのI/O構成組み合わせをあらわす各データ・バイトの最初の3つのビットは1つの端子のI/O構成を定め、データバス192を介して図9の3ないし8行デコーダ157に送られる。最後の5つのビットは32のイベント出発アドレスを表わしている。これら5ビット・データはデータバス192を通して図9の論理回路156に送られ、修正済みの入力トリガが受信されたときに図8のイベント・アドレス指定回路147に送られる。3ビット・データおよび5ビット・データが対となって作用するので、これらのデータは、好ましい実施例に示すように同じワードの部分とするのにより便利であり、あるいは、同様の動作原理によってアドレス指定されるべき種々のメモリ・ブロックに配置するのにより便利である。
【0044】
1つのI/O端子が出力端子として構成された場合、5ビット・データの内容はイベント・アドレス指定回路に不適となる。この場合、5ビット・データは、スケールファクタのような出力信号の出力特性をさらに定めて出力信号の振幅を調節するのに使用することができる。別の実施例において、データの最初の3つのビットは1出力フラグ・7入力構成を定めるように構成してもよい。出力フラグが検出されたとき、データの残り5つのビットを使用してどの種類の出力信号を発生させるべきかを指定する。この構成によれば、メモリサイズをさらに大きくすることなく8ビット・フォーマットによってアドレス指定されるべき入出力構成の数を効果的に増やすことができるが、メモリの最初の3つのビットを復号し、出力フラグが検出されたときにメモリの次の5つのビットを参照するのにより多くのハードウェアを必要とすることになる。
【0045】
実施例180は、16種類のプログラマブルI/O構成状態を表わす16頁のI/O構成状態メモリからなる。一時にこのI/O構成状態の1つだけが活性I/O構成状態として指定される。前述したように、I/O State# 0をパワーアップ・デフォルトI/O構成状態として決めておくと便利である。図8のI/O状態アドレス指定回路134は、図10の4ないし6行デコーダ182または16ビット・ラッチで表わすことができる。イベント実行回路が新しい活性I/O構成状態アドレスを受け取ったときにはいつでも、デコーダ182に情報が送られ、このデコーダがアドレスを復号し、16頁のメモリの1頁を使用可能として活性I/O構成状態メモリとする。このメモリ頁は次に入出力回路にダウンロードされてI/O端子を構成する。
【0046】
図11はイベント・データ・メモリ、イベント実行回路および関連したアドレス指定回路の実施例を示す。5ビット・イベント・ポインタ205が5ないし32行デコーダ210に送られ、ここにおいて、ルックアップ・テーブル12に記憶された32のイベント出発アドレスの1つがピックアップされる。各イベント出発アドレスはイベント・データ・メモリ213に置かれたイベントの出発ポイントを定める。この出発アドレスはイベント・アドレス・カウンタ211にロードされ、イベント実行回路202を始動し、イベント・データ・メモリ213から得られたデータに従って出力信号を発生させる。イベント実行回路202は制御装置の要求に従ってこの技術分野では周知の種々の一般的な回路からなる。たとえば、音声合成コントローラの場合、イベント実行回路は、PCMデコーダ、ディジタル・アナログ変換器のような通常のサウンド・シンセサイザ・チップに必要なハードウェア回路からなり、イベント・データ・メモリに記憶されたデータは符号化/圧縮されたサウンド・データおよび関連タイミング・データである。イベント実行回路の別の実施例として、DTMFトーン発生器、音符発生器、制御装置の特殊用途で必要とされる他の任意の信号操作回路または信号発生回路がある。これらいずれでも、イベント・データ・メモリは発生しようとしている信号を記述するデータを記憶する。イベント実行回路によって発生させられた出力信号は代替出力端子204または図9の出力ドライバ161に送られる。
【0047】
イベント・データ・メモリが図1のサブイベント24によって示されるような別の宛先イベントの実行に向けられたサブイベントを包含する場合、この宛先イベントのアドレスがパス209を通してイベント実行回路202によってアドレス・カウンタ211にロードされ、宛先イベントの実行を開始させる。イベント・メモリが図1のサブイベント22によって示されるような別のI/O構成状態を活性化することに向けられたサブイベントからなる場合には、4ビットI/O構成状態アドレス指定信号がパス201を通して図10のアドレス・デコーダ182に送られてI/O構成状態メモリの所望頁を活性化する。
【0048】
5ないし32行イベント・アドレス・デコーダ210およびイベント・アドレス・ルックアップ・テーブル212は、5ビット・アドレス、「q」ビット・データの別のメモリで置き換えることができる(ここで、「q」ビットは通常5ビットよりも長いイベント・データ・メモリのアドレス長を表わしている)。この行デコーダは、回路を実際の集積回路に作られたときにメモリ・スペースおよびトレース・ルーティング・オーバーヘッドを節約するのに使用される。同様に、図9の3ないし8行デコーダ157は、I/O端子を直接構成する8ビット・メモリを使用することによって除くことができる。また、図10の4ないし16行デコーダの代わりに、16頁のI/O構成状態メモリの1頁を選ぶ16ビット・メモリあるいは16ビット・シフト・レジスタを用いてもよい。
【0049】
イベント実行回路の最も簡単な実施例では、イベントのイベント・データ・メモリ213は、イベント実行回路のどのハードウェア・ジェネレータをスイッチオンとすべきかを指定し、また、後続のイベントのアドレスを指定するメモリ・データの単一ワードであってもよい。この場合、イベント・アドレス・カウンタ211およびパス208を介してカウンタを増分させるクロック回路は不要となる。サウンド・シンセサイザ・チップの場合、符号化した信号サンプルを連続的に取り込み、ディジタル/アナログ変換器を制御するためにクロックが必要である。より複雑な実施例では、イベント実行回路202がマイクロプロセッサべースの構造を含んでもよい。全ハードウェア・コストはあまり低減しないが、本発明の実施例は入力・トリガリングに対する瞬間的な応答性を与える。
さらに、本発明はマイクロプロセッサを支援し、それをI/O端子をポーリングすることから解放する。その結果、全体の応答時間がさらに短くなる。より重要なのは、この構造が革新的なユーザフレンドリーなプログラミング方法によってプログラマを効果的に支援するということである。
【0050】
大量生産では、図8〜図11に示すような実施例は集積回路(I.C.)に作らなければならない。図7のテーブル100、120のような用途のプログラムしたデータをI/O構成状態メモリ132、図8のイベント・データ・メモリ149および図11のルックアップ・テーブル212に格納されるべき二進数データに変換するのに簡単な復号プロセスが必要である。集積回路を作る標準のプロセスに続いて、これらの二進数データは最初はフォトマスクに変換され、こうしてできたフォトマスクを用いて通常の集積回路作製プロセスを通して集積回路を作る。通常、大量生産では、図8のI/O構成状態メモリ132、イベント・データ・メモリ149および図11のルックアップ・テーブル212はリードオンリメモリ(ROM)として作られる。プログラム開発プロセスの状況では、上記の読み取り専用メモリの代わりに読み取り書き込みメモリ(RAM)、消去可能なプログラム可能読み取り専用メモリ(EPROMおよびEEPROM)あるいは一時プログラム可能読み取り専用メモリ(OTP)からなる特殊な集積回路が、プログラムを実験し、高価で時間のかかる完全なI.C.作製プロセスを通すことなく実演サンプルを提供するのに望ましい。変換されたプログラム・データは、次に、外部データ・ソースを通してこれらのメモリ領域にダウンロードされる。
【0051】
制御装置のプログラム可能特徴を強化するためには、限られた量の読み取り書き込みメモリ(RAM)またはレジスタを上記のプログラム可能メモリ領域に加えると望ましい。図12は、2つの読み取り書き込みレジスタをイベント・ルックアップ・テーブル212に加えたことを除いて、図11の実施例と基本的に同じ実施例を示している。第1レジスタは「TIMER」レジスタという名前が付けてあり、タイマのカウント終了時に実行されるべきイベントを示すのに用いられる。「TIMER REGISTER」230を活性化するストローブ線234はイベント実行回路202内に設置したタイマ・カウンタからタイムアウト信号を得る。イベント・テーブルをプログラムするとき、サブイベントは図13に示すようなフォーマットで示され、タイマ・カウンタを活性化する。
【0052】
EVENT# 1、291のプログラミングに従って、サブイベント293「TIMER 6 SEC:EVENT# 3」は、図7のテーブル120に示す先のタイミング・フォーマット「DELAY 0.5 SEC」と比べて同一の動作となる。ただし、このとき、タイマは次のサブイベント294と並列に作動し、6秒の期間終了時にEVENT# 3の実行を開始する。また、タイマが作動している間、タイマを再始動したり、タイミング動作を停止させたりすることも望ましい。再始動は「TIMER t SEC:EVENT# k」サブイベントを再アドレス指定することによって簡単に達成される。タイマ・カウンタを停止させるには「TIMER OFF」で示す別のサブイベントが必要である。
【0053】
読み取り書き込みレジスタ231は、間接的にイベントをアドレス指定することができる。この特徴により、或るイベントの宛先アドレスをプログラムの流れの要求に従って時々刻々変えることができる。イベント・テーブルをプログラミングするとき、サブイベントは図14に示す方法で示してイベントの間接アドレスを活性化することができる。EVENT# 1,304は、立ち上がりエッジがコーディング要素305に従ってPin 1,304によって最初に受信されたときに「可変イベント」のアドレスを定める。TG 1がトリガされる毎に、EVENT# 4,317が実行される。EVENT# 4は、最初、すべてのトリガ・ピンをオフとし、次いで、ホーン・サウンドを再生する。その後、「可変イベント」のアドレスに従ってこの別のサウンドが再生される。可変イベントがEVENT# 1におけると同様にEVENT# 2に等しくなるように定められると、或る期間にわたって、サイレン・サウンドが発生させられる。ここで、EVENT# 2が「可変イベント」をEVENT# 3,316に再構成し、したがって、次にPin 1が修正済みのトリガ信号を受信し、EVENT# 4が実行されたときに、ホーン・サウンドに続いてEVENT# 3,316によって命令された通りにエンジン作動サウンドが発生することになる。EVENT# VAR=EVENT# kフォーマットが受信されたときにはいつでも、EVENT# kのアドレスが図12の「可変イベント・レジスタ」に送られる。EVENT# VARが後にアドレス指定されると、「可変イベント・レジスタ」231の内容によってアドレス指定されたイベントが実行されることになる。
【0054】
この簡単な単頁プログラムはプログラミング・プロセスのデバッグ・プロセスを容易にする。図15はデバッグ・ツールの好ましい実施例を示しており、ここでは、プログラム全体がビデオ・スクリーンに表示され、プログラムの流れをシミュレートして対話式のデバッギング・プロセスを容易に行える。活性I/O構成状態および実行中のイベントは、常に、スクリーン上にハイライト状態で示される。トリガ・ピン・ボタン345,356および修飾信号ボタン341,342,343,344はプログラマが入力ピンのトリガをシミュレートできるように設計されている。制御装置が「パワーアップ」ボタン338をトリガすることによってパワーアップされたとき、I/O State# 0,321はハイライト表示される。次に、Pin 1がP1ボタン345および立ち上がりエッジ・ボタン341をトリガすることによってトリガされる。EVENT# 1のサブイベントが論理の流れに従って1つずつハイライト表示され、テーブル320のハイライト領域が変化し、それに従ってI/O構成状態が活性として指定される。サブイベント332が実行されると仮定すると、I/O State# 4,323が次に活性状態となり、ハイライト表示される。Pin 1がこの時にトリガされると、プログラムの流れが中断され、EVENT# 2が実行される。オートラン・ボタン336が押されると、修飾入力ピンを1つずつ自動的にトリガすることによってシミュレータがすべての可能性のあるプログラム・ラン組み合わせを自動的に試みることができる。任意のオープンエンド・プログラムあるいは閉ループがオートラン・プロセスが完了した後に1つずつ列挙される。プログラマは、次に、オープンエンド・プログラムまたは閉ループが望ましいかどうかを検査することができる。
【0055】
シミュレータ・デバッグ・ツールは、8つのI/Oピンを開発システムのインタフェース回路を通じて外部の応用回路と接続することによって回路エミュレータ内でリアルタイムに容易に修正することができる。プログラミング方法と同様に、デバッグ・ツールの好ましい実施例は、論理の流れがスクリーン上にはっきりとハイライト表示され、実際の用途におけると同様の方法で段階的にトレースされるので、プログラマを支援するきわめてユーザフレンドリーのデバッグ・ツールである。さらに、ユーザが学ぶべき複雑なシミュレータや回路内エミュレータ制御命令もまったくない。好ましい実施例の普通でないメモリ構造の故に、集積回路の実際のレイアウトにおいて、I/O構成状態メモリはメイン・イベント・メモリから分離して実際の集積回路をレイアウトするときに相互接続トレーシング・オーバーヘッドを低減すると好ましい。I/O構成状態メモリの位置は、図16に示すようなアドレス指定可能な入出力端子の数に従って種々の小さいメモリ・ブロックに分解すると好ましい。たとえば、図10に示すように、各頁の最初のバイト・メモリを端子#1に関連付ける。16頁(16個のI/O構成状態)184〜186の最初のバイトのすべてを共にグループ分けし、図9に示すように、端子1あるいは関連した出力ドライバ161、修飾回路162に接近してメモリを位置決めすることが好ましい。図16において、領域383は、実際の集積回路レイアウト380の端子1の端子結合パッドを表わしている。領域382は、図9の関連した出力ドライバ161、修飾回路162の領域を表わしている。領域381は、図10の16頁のI/O構成状態184〜186の最初のバイトを表わしている。領域386は、対応する端子結合パッドに近接して分布させたI/O構成状態メモリから分離したメイン・イベント・メモリを表わしている。この配置によれば、集積回路のチップサイズを縮小し、製造業者、ユーザの両方にとってコストの利益を与えることができる。集積回路のこの経済的な構造は、マイクロプロセッサべースの制御装置に改造することができる。マイクロプロセッサはI/O端子の構成を定めるように供した付加的なメモリ・ブロックからなるように改造できる。
【0056】
前述のことからわかるように、制御装置のハードウェア実施例は、電子回路技術者が低コストのプログラマブル装置を開発し、本発明のユーザフレンドリーなプログラミング方法と効果的に対話できるように適切に開示されている。
【0057】
ここに説明した本発明の好ましい実施例は例示であり、種々の改造、仕様バリエーション、回路再配置を容易に実施して均等な結果を得ることができる。これらはすべて添付の特許請求の範囲内に含まれることを意図している。たとえば、入出力端子の定義は集積回路の接続端子に限るべきではない。同様の集積回路内に組み込まれた別の機能デバイスに「内部的に接続した」入力端子あるいは出力端子であってもよい。図8に示すように、イベント実行回路138は、信号パス139を経由してオーバーフロー信号を与えて入出力回路144の「内部」入力端子をトリガするタイマ・カウンタであってもよい。
【図面の簡単な説明】
【図1】 制御装置をプログラムするデータ・フォーマットを示すプログラマブル構成テーブルの実施例を示している。
【図2】 或る応用例のフローチャートである。
【図3】 図2のフローチャートに従ってプログラムされたテーブルである。
【図4】 別の応用例のフローチャートである。
【図5】 図4のフローチャートに従ってプログラムされたテーブルである。
【図6】 別の応用例の別のフローチャートである。
【図7】 図6のフローチャートに従ってプログラムされたテーブルである。
【図8】 ハードウェアの構造を示すブロック図である。
【図9】 代表的な入出力回路の構造を示す回路図である。
【図10】 I/O構成状態メモリの代表的な構造およびアドレス指定回路を示す回路図である。
【図11】 代表的なイベント・データ・メモリ、イベント実行回路および関連したアドレス指定回路のインタフェース状態を示す回路図である。
【図12】 図11の拡大回路図である。
【図13】 タイマ・プログラミング機能を示すプログラマブル構成テーブルの実施例を示す。
【図14】 間接的アドレス指定機能を示すプログラマブル構成テーブルの実施例を示す。
【図15】 プログラム構成テーブルのデバッギングのためのプログラムの流れをシミュレートする代表的なスクリーン・ディスプレイである。
【図16】 集積回路内のI/O構成状態メモリを示すレイアウト設計例を示す。
【符号の説明】
10…テーブル
11…第2座標
12…第1座標
13…要素
15…要素
20…テーブル
21…行
22…サブイベント
23…サブイベント
24…サブイベント
31…矩形ブロック
32…矢印線
33…矢印線
34…楕円ブロック
40…テーブル
41…行
42…要素
45…行
50…テーブル
74…要素
77…行
80…テーブル
82…サブイベント
91…矩形ブロック
92…逐次LED明滅モード
94…矢印線
97…ルーピング・プロセス
100…テーブル
107…コーディング要素
112…交互のLED
122…サブイベント
125…行
127…サブイベント
132…I/O状態メモリ
135…出力信号
138…イベント実行回路
140…代替端子
144…入出力回路機能ブロック
145…端子
147…イベントアドレス指定回路
149…イベント・データ・メモリ
156…論理回路
159…制御信号
160…イネーブル・ライン
162…修飾回路
171…端子パッド
172…回路
173…回路
174…回路
182…4ないし16行デコーダ
184…メモリ
192…データバス
202…イベント実行回路
205…5ビット・イベント・ポインタ
209…パス
210…5ないし32行イベント・アドレス・デコーダ
211…イベント・アドレス・カウンタ
212…イベント・アドレス・ルックアップ・テーブル
213…イベント・データ・メモリ
302…ルックアップ・テーブル
312…ルックアップ・テーブル
338…「パワーアップ」ボタン
336…オートラン・ボタン
341…立ち上がりエッジ・ボタン
345…トリガ・ピン・ボタン
346…トリガ・ピン・ボタン
341…修飾信号ボタン
342…修飾信号ボタン
343…修飾信号ボタン
344…修飾信号ボタン

Claims (22)

  1. 入力端子として構成された第1の端子と、出力端子として構成された第2の端子とを含んでいるk個の入出力端子と、
    前記入力端子である第1の端子により受信された特徴づけ信号に応答する少なくとも1つの修飾回路手段と、
    1以上のイベントを定めるデータを記憶する第1メモリと、
    (n+m)ビットのデータフォーマットの第2メモリと、
    第1のイベントと第 2 のイベントのそれぞれの実行時に少なくとも第1のイベント出力信号および第2のイベント出力信号を発生して前記第1のイベント出力信号が前記出力端子に送られて出力信号を発生させるように構成されているイベント実行回路手段と、
    前記修飾回路手段に応答する第1のアドレス指定回路手段と、
    前記イベント実行回路手段から送られる前記第2のイベント出力信号に応答する第2のアドレス指定回路手段とを具備し、
    前記各イベントは前記第1メモリのアドレス指定可能な出発アドレスを有し、
    前記第2メモリの(n+m)ビットのデータは、1つの入出力端子の構成を特定するmビットデータと、第1メモリのイベント出発アドレスを規定するnビットデータを有しており
    前記第1のアドレス指定回路手段は前記修飾回路手段に応答して前記イベント実行回路手段を動作可能にし、前記イベント出発アドレスで定められた前記第1イベントを実行するように構成され、
    前記第2のアドレス指定回路手段は前記第2のイベント出力信号に応答して前記第2のメモリの前記(n+m)ビットのデータフォーマットを更新するように構成されているプログラマブル制御装置。
  2. 1以上の外部修飾電気信号に応答して制御装置により1以上のイベントを実行する方法において、
    前記制御装置は、入力端子として構成されている少なくとも1つの端子および出力端子として構成されている少なくとも1つの端子とを備え、
    前記方法は、
    (1)それぞれ制御装置の1以上の端子の状態を規定しているx個(xは1以上の整数)の端子構成状態を指定するステップと、
    (2)前記制御装置により実行されるy個(yは1以上の整数)のイベントを指定するステップと、
    (3)前記ステップ(1)で指定された構成状態毎に、前記制御装置の各入力端子に対する入力修飾状態を指定するステップと、
    (4)ステップ (3) 各入力端子に対して、前記入力端子に供給された入力信号が前記入力修飾状態を満足したとき前記制御装置により実行されるべきイベントをさらに指定するステップと、
    (5)ステップ(1)で指定された各構成状態に対して、前記制御装置の各出力端子のそれぞれに対する出力状態を指定するステップと、
    (6)動作される構成状態となるべき構成状態の1つを指定するステップと、
    を含む方法。
  3. さらに、p個のサブイベント(ここで、pは2以上の整数である)から成るイベントのうち少なくとも1つを指定するステップを含んでいる請求項記載の方法。
  4. さらに、以下の結果、すなわち、
    (a)オーディオ信号の発生;
    (b)タイミング信号の発生;
    (c)論理ハイ/ロー信号の発生;
    (d)パルシング信号の発生;
    (e)別のイベントの活性化;
    (f)活性構成状態としての別の構成状態の指定のうちの1つを生じさせるようにイベントまたはサブイベントを指定するステップを含んでいる請求項記載の方法。
  5. さらに、前記タイミング信号の終了によって実行されるべきイベントを指定するステップを含んでいる請求項記載の方法。
  6. 前記イベントのうち少なくとも1つが可変イベントであり、さらに、この可変イベントを別の定めたイベントと等しくするステップを含んでいる請求項記載の方法。
  7. 前記入出力端子のうちの少なくとも1つがプログラム可能な入出力端子であり、さらに、前記入出力端子を入力端子、出力端子、入出力端子または高インピーダンス端子のいずれかとして構成するステップを含んでいる請求項記載の方法。
  8. さらに、プログラミング仕様を少なくとも2つのフィールドに構成するステップを含み、第1のフィールドが1以上の端子構成状態を指定し、第2のフィールドが1以上のイベントおよびサブイベントを指定している請求項記載の方法。
  9. さらに、前記ステップによって指定されたデータの少なくとも一部をテーブル・フォーマットに編成するステップを含んでいる請求項記載の方法。
  10. さらに、構成状態およびイベントの仕様をイベント実行のために前記制御装置に記憶されるべきディジタルデータに変換するステップを含んでいる請求項記載の方法。
  11. さらに、前記ディジタルデータをフォトマスクに移送して前記制御装置を作り上げるステップを含んでいる請求項10記載の方法。
  12. 構成状態およびイベントの仕様を異なったフォーマットの二次プログラミング言語に翻訳するステップを含んでいる請求項記載の方法。
  13. さらに、ディスプレイ装置上で制御装置の動作を対話式にシミュレートするために次のステップ、すなわち、
    (7)少なくとも1つの構成状態の仕様を表示するステップ、
    (8)少なくとも1つのイベントの仕様を表示するステップ、
    (9)活性構成状態を指示するステップ、
    (10)修飾トリガー信号を受信するように端子を指定するステップ、
    (11)イベントまたはサブイベントを実行下で指示またはシミュレートするか、あるいはこれら両方を行うステップを含んでいる請求項記載の方法。
  14. さらに、表示されたデータを編集するステップを含んでいる請求項13記載の方法。
  15. さらに、2つのフィールドをブロックとこれらのブロックを相互接続するパスとからなるフローチャートと相関させるステップを含み、各ブロックが前記第1のフィールドの1以上の端子構成状態に対応し、各パスが前記第2のフィールドのイベントに対応する請求項13記載の方法。
  16. さらに、構成状態およびイベントの前記仕様に応答する入出力回路手段を配置し、この入出力回路手段を外部アプリケーション回路と接続して前記制御装置の動作をエミュレートするステップを含んでいる請求項13記載の方法。
  17. 前記x個の端子構成状態および前記y個のイベントの仕様が互いに連続した関係に位置づける必要がない請求項記載の方法。
  18. 前記プログラミングステップがライン命令セットのいずれも含んでおらず、前記命令セットが1つの演算と少なくとも1つのオペランドによって規定される命令からなる請求項記載の方法。
  19. さらに、前記制御装置のパワーアップ条件を指定するステップを含んでいる請求項記載の方法。
  20. さらに、前記構成状態およびイベントを前記制御装置によって符号化するステップを含んでいる請求項記載の方法。
  21. 前記制御装置がマイクロプロセッサである請求項記載の方法。
  22. 前記入出力端子が前記制御装置内に設置した機能デバイスに接続されている請求項記載の方法。
JP25601996A 1995-10-02 1996-09-27 プログラマブル・サウンド合成装置 Expired - Lifetime JP4057079B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/538426 1995-10-02
US08/538,426 US5867818A (en) 1995-10-02 1995-10-02 Programmable sound synthesizer apparatus

Publications (2)

Publication Number Publication Date
JPH09269789A JPH09269789A (ja) 1997-10-14
JP4057079B2 true JP4057079B2 (ja) 2008-03-05

Family

ID=24146892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25601996A Expired - Lifetime JP4057079B2 (ja) 1995-10-02 1996-09-27 プログラマブル・サウンド合成装置

Country Status (5)

Country Link
US (1) US5867818A (ja)
JP (1) JP4057079B2 (ja)
CN (1) CN1143206C (ja)
GB (1) GB2306024B (ja)
HK (1) HK1002083A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063719B1 (en) * 1995-10-02 2015-06-23 People Innovate For Economy Foundation, Inc. Table format programming
JP2000148459A (ja) * 1998-10-09 2000-05-30 Peter Ar-Fu Lam テ―ブル・フォ―マット・プログラミング
JP2001195441A (ja) * 2000-01-13 2001-07-19 Nec Ic Microcomput Syst Ltd 出力ドントケア指定方法並びにこれを用いた処理装置、処理方法及び処理プログラムを記録した記録媒体
US20040098260A1 (en) * 2002-06-21 2004-05-20 Sharpe Richard B. Compact talking personal environmental status device
US7079014B2 (en) * 2004-05-08 2006-07-18 Scott Steinetz Digital sampling playback doorbell system
US7382233B2 (en) * 2004-05-08 2008-06-03 Scott Steinetz Sampling playback doorbell system
US10387170B1 (en) * 2004-11-15 2019-08-20 Peter Ar-Fu Lam User programmable building kit
TWI281627B (en) * 2005-07-05 2007-05-21 Sunplus Technology Co Ltd Programmable controller
CN108459552B (zh) * 2018-01-31 2021-07-23 南京拓控信息科技股份有限公司 一种智能化面向对象的可编程的自动化控制方法
TWI684081B (zh) * 2018-06-20 2020-02-01 新世代機器人暨人工智慧股份有限公司 馬達編號方法、自動控制裝置以及記錄介質

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810118A (en) * 1971-04-27 1974-05-07 Allen Bradley Co Programmable matrix controller
US4180862A (en) * 1976-07-01 1979-12-25 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4200916A (en) * 1976-07-01 1980-04-29 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4500993A (en) * 1980-06-17 1985-02-19 Zehntel, Inc. In-circuit digital tester for testing microprocessor boards

Also Published As

Publication number Publication date
JPH09269789A (ja) 1997-10-14
US5867818A (en) 1999-02-02
CN1143206C (zh) 2004-03-24
GB2306024B (en) 1999-09-22
CN1157438A (zh) 1997-08-20
HK1002083A1 (en) 1998-07-31
GB2306024A (en) 1997-04-23
GB9618541D0 (en) 1996-10-16

Similar Documents

Publication Publication Date Title
US5774721A (en) Method of communication between processors in a distributed processing system having a host processor and at least one object oriented processor
US5708838A (en) Distributed processing systems having a host processor and at least one object oriented processor
US5768591A (en) Method of de-bugging host-processor software in a distributed processing system having a host processor and at least one object oriented processor
JP4057079B2 (ja) プログラマブル・サウンド合成装置
US5634070A (en) Distributed processing systems having a host processor and at least two object oriented processors which communicate directly with each other
US6454627B1 (en) Musical entertainment doll
US5850628A (en) Speech and sound synthesizers with connected memories and outputs
WO1980001618A1 (en) Music tone generator
JP3796752B2 (ja) 音楽演奏プログラム
TW420783B (en) Commandless programmable controller
JPS54137317A (en) Musical sound memory for electronic instrument
JPS5896597U (ja) 電子楽器
Visconti et al. Smart driving and control board for creating water and light plays synchronized with a music track applied to dancing fountains
JP3072336U (ja) 情報処理学習用教材
JP3320582B2 (ja) 電子楽器の制御装置及びその制御プログラム設定方法
JP3324035B2 (ja) 自動伴奏装置
JPH0573043A (ja) 電子楽器
JPH0719153B2 (ja) 演奏パターン生成装置
JPS5830796A (ja) 電子楽器
JP2692360B2 (ja) 電子楽器
JPH0216312Y2 (ja)
JPS6316759B2 (ja)
JPH0434758B2 (ja)
JPS60189890U (ja) 電子報時時計
JPS6094692U (ja) 電子楽器制御装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040406

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040705

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20041111

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20041203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101221

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121221

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131221

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term