沼津高専 電子制御工学科 | |||||||
|
|||||||
改訂記録 | |||||||
---|---|---|---|---|---|---|---|
版数 | 作成日 | 作成者 | 承認 | 改訂内容 | 提出先 | ||
A01 | 1998.12.14 | 川端 | 村木 | 初版 |
I/OSUBボードというものについていかにまとめる。I/OSUBボードは簡単に言うと赤外線センサ、超音波センサ、PWM制御回路の3つの機能を搭載した回路でありそれぞれの機能が個別に働くものである。ここでは、過去の資料から抜粋し、簡単なところしか載せません。詳しくは、ほかの赤外線センサ調査報告書などを参考にしてください。
I/OSUBボードは、超音波センサ回路、PWM回路、赤外線センサ回路の3つの回路を搭載した回路である。
図.1 超音波センサ回路構成 |
超音波センサ回路の機能は大きく分けて二つある。トリガが送られて来ると周波数40[kHz]の矩形波を0.4[ms]の間、送信回路に出力する機能と、受信信号を受け取ると割り込み要求信号をMPUに送る機能の二つである。また、正しく距離計測を行うために、回りこみ波を無視する機能も備え付けられている。
距離計測はタイマのカウンタ値を読む事で行う。このタイマは、トリガを受け取ってから受信を感知するまでの間回し続けるのでカウンタ値と音速より障害物迄の距離を知ることができる。
距離の計測に用いるカウンタはPITに内蔵されているタイマを利用している。タイマのクロック周波数は8×106/32[Hz]であるので、障害物までの距離Lは
L=Count×(8×106/32)−1×v×(1/2)
* L:距離 v:音速 Count:カウント値
で与えられる。最後の1/2は、超音波が障害物までの距離を往復するので、そのことを考慮して付け加えられている。
しかしながら、音速vは一定値ではなく、周囲の温度で変化するため、この方法では、ある程度の誤差は覚悟しなければならない。
昨年度までの基板は、超音波送受信回路部、カウンタ部などを1枚の基板に搭載していたが、このボードではこの2つの回路を基板上から切り離すことによってボード自体の小型化を実現した。
また他にも
動作の安定のためタイマーICのかわりにPLD内蔵のカウンタで一定時間Hレベルのパルスを作り出すようにした。
回り込み波を除去する為に従来の比較回路に加えて一定時間受信を完全に無視する機能をつけた。
従来では4つあった比較回路を1つにまとめた。 という特徴がある。
この回路は、構成図にも示されているような、発振回路、ワンショット回路、比較回路の他にも、タイマ制御部、基準電圧発生部など様々な回路が複雑に組み合わさっている。これについての説明と、取扱上の注意を述べていくことにする。
この回路はコンデンサの放電を利用し、ゲートと組み合わせて構成した簡単な発振回路である。超音波センサ回路のメインクロックともなる重要な回路だがこの方法で正確に40[kHz]の周波数を作り出すことは難しい。また、ICにCMOSを使用しているので、回路自体がデリケートなこと、コンデンサの放電を利用しているので、少しの状況の変化(接触や、端子の先のRの値)によって、発振したりしなかったりと言うこともある。中央の抵抗値によって周波数が変化するので、最初は可変抵抗で抵抗値を変化させながらオシロスコープで、周波数を調べ丁度40[kHz]の周波数を示した時、その時の可変抵抗の抵抗値にできるだけ近い値(約5.6kΩ)を持つ抵抗を付けた。
図.2 発信回路 |
図.3にPLDにプログラムされたワンショット回路構成図を示す。又、タイミングチャートを図.4に示す。ワンショット回路は、64進カウンタと制御回路で、構成されており、PLDを2つ使っている。
この回路から、トリガ一回毎に、ガードパルス、タイミングパルス、送信用ワンショットを一回づつ出力する。送信用ワンショットとCLKとのANDをとって幅0.4[ms]、周波数約40[kHz]のパルスを送受信回路に出力する。ガードパルス、タイミングパルスは、比較回路の項で述べる事にする。
図.3 ワンショット回路 |
図.4 タイミングチャート |
PIT内部のタイマを動かしたり、止めたりする部分である。タイマのカウントはトリガが送られて来てから、受信、又はタイマのオーバーフローが起こるまでの間行われる。この制御はRS−FFで行い、タイマのスタート信号のON/OFF制御をする。
PIT内蔵のタイマは、設定によりいろいろ選べるが、この回路ではオーバーフローを検出できる「Device.Watchdog」と言うタイマを選んだ。
比較回路では主にノイズの除去と回り込み波による影響の無視を行う。受信回路から送られて来た受信波と、基準電圧をコンパレータで比較し、基準電圧より低い電圧の信号を除去する。
また、回りこみ波の除去については送信してから、一定時間基準電圧のレベルを上げる事で対処する。この時間はタイミングパルスによって決められる。
この方法は従来の超音波センサ回路に使われているものと同じであるが、この方法では完全に回りこみ波を除去できず、センサ間の距離やホーンの長さを調整して回りこみ波を消していた。しかしこの基板は従来の方法に加えて送信開始から一定時間受信そのものを無視する方法を取り、二重の対策で回りこみ波を除去する事にした。(この結果、新しい問題がおきてしまったが、そのことについては基板評価の項で述べる。)この受信無視時間の長さはワンショット回路から出力されるガードパルスで決定される。
超音波は波の性質を持っているため、スピーカから送信された超音波が、直接マイクで受信されてしまう。
このため、障害物からの距離に関係なく、同じタイミングで受信が起きる事になる。回り込み波を受信する時間さえわかっているなら、その間だけ基準電圧を5vに引き上げれば、回り込み波による影響をコンパレータによって、打ち消す事が出来る。この基準電圧発生部は、コンデンサの放電を利用して、タイミングパルスから基準電圧を作り出す部分である。
図.5 超音波の回りこみ |
搭載されている4対のセンサの内、一度に距離計測が出来るのは1対だけである。計測を行うときには4対の内1対を選ばなければならない。
マルチプレクサは、コネクタを通じて4つの送受信回路と直結しており、PITから送られてくるセンサ選択信号により、使用する1対のセンサを選択する。
センサにはそれぞれ0から3まで番号がつけられていて、センサ選択信号もそれに対応して00から11迄の2ビットの信号より成り立っている。
この回路は、モータを制御する信号であるPWM信号を作り出し、方向データと共に出力する回路である。速度データとカウンタのカウント値との比較によりPWM信号を形成している。この信号のDuty比は、速度データで128段階に変化させている。図.6にPWM回路の構成図を示す.
図.6 PWM回路構成図 |
右速度・方向データは68230のportAから、左速度・方向データはportBから送られてくる。カウンタのCLKは、68230のToutから得る。 PWM信号発生回路は、カウンタより得られた8bitのカウント値と7bitの速度データとの比較によりPWM信号を形成している。PWM信号波形形成原理図を図.7に示す。
図.7 PWM信号波形形成原理図 |
図.7からもわかる様に今回設計製作した基板は、Duty比が0%〜50%までのPWM波形を出力するようにしたものである。これは、次のような理由から行った。試作ボードのTMP試験において、Duty比が40%位でもモータの回転数が充分速いことが解った。ギヤボックスやモータ等の足まわり系は、我が卒研室のMIRS
Vと同じものを使用しており、実際に負荷がかかった状態でもDuty比は30%程で走らせているという。Duty比が50%ともなると、モータの回転が速すぎて競技に使えるような速度ではないそうである。そこで実際にタイヤの回転数を回転計を用いて測定してみた。その結果を図.8 Duty比−タイヤの回転数特性図
に示す。
図.8 Duty比−タイヤの回転数の特性図 |
この図から解ることはまず一つめに、Duty比が10%〜50%位まではほぼ直線的な特性を示しているということ、そして二つめにDuty比が50%を越えるとタイヤの回転数にほとんど変化がみられなくなるということだ。従ってDuty比が10%〜50%までのPWM波形を出力させることが出来れば充分であることがわかる。そこで試作ボードでは、Duty比0%〜100%までを128段階に変化させていたものを初版ボードでは、Duty比0%〜50%までを128段階に変化させる様に改良した。つまり少ないDuty比を128段階に変化させ、より細かく正確にモータを制御する事が可能であるという事になる。
昨年度までの基板は、回路が複雑でICの個数も10個とかなり多かった。今回は、回路を簡略化しICの個数を5個に減す事に成功した。基板の面積で比べると昨年度の50%でありコンパクトになった事を物語っている。これは、両面基板にした事、左右の信号を一つのコネクタにまとめた事、68230内蔵TIMERの有効利用により実現出来たものと思われる。このTIMERは、24bitダウンカウンタを含んでおり、設定された周波数のCLKをToutより出力できる。設定は、自由に変える事が可能である。
速度データをnとするとPWM信号のパルス幅TとDuty比Dは次式で計算出来る。
T[μs]=(n+1)×5[μs]
D[%] =(n+1)/256×100
0≦n≦127
赤外線センサ回路は、赤外線センサ信号処理回路と外部回路である赤外線周辺回路から成る。この回路は、赤外線周辺回路から送られてくるHigh
level もしくは Low levelの信号を処理し、信号に状態変化がおきた時に、割り込み要求信号をMPUに送る機能を有する。またそのときの各受光素子の状態は後述のレジスタを読むことにより得る。
図.9 赤外線センサ回路の構成図 |
I/OSUBボードに搭載されているこの信号処理部は主に周辺回路からの赤外線信号の同期をとる信号同期部と68230に割込み要求をする割込み信号発生部からなる。信号同期部は74LS574が3個割込み発生部は74LS688,74LS00各1個ずつで構成する。 受光素子は赤外線受光素子IS1U60を使用する。
図.10 I/OSUBボード基板外形図 |
送受信回路
この回路は、I/OSUBボードには搭載されてはいない。送受信回路一つにつきセンサが一対搭載されており、マルチプレクサによって選択される。この回路はゲートを組み合わせた送信回路と、オぺアンプを使った増幅回路の二つの回路があり、送受信を行う。
図.11 送受信回路外形図 |
NO. | ピン名 | 方向 | 信号 |
1 | Vcc | Vcc | |
2 | S0 | → | 送信信号 |
3 | S1 | ← | 受信信号 |
4 | GND | GND |
使用素子
74LS123
単安定マルチバイブレータ
IS1U60
この素子はリモコン用の赤外線受光素子である。そのためパルス幅がリモコンのパルス幅の常識を越えるようなものであると、素子がノイズと判断し素子内の比較器のスレッショルド電圧をあげることにより受光しなくなる。そこで図.12.(a)のように周波数38[kHz]の赤外線を600[μs]おきに発信する。そうすることにより図.12.(b)の波形を得る。
図.12 赤外線受信タイミングチャート |
信号処理部の割込み信号発生部の原理はある時間Tのときの赤外線信号の状態とそれからt[μS](68230のToutより出力されるCLKによる)後の赤外線信号の状態とを比較し状態が変化していたときに割込み信号が発生するというものであるが信号を発生させるのに74LS574を使用している関係上、IS1U60が赤外線受光時に一発パルスを出力するというのは好ましくない。そこで周辺回路で一発パルスを引き伸ばすことにより信号変調を行う。
一発パルスを伸ばす方法
74LS123はトリガパルスを入力することにより、抵抗とコンデンサで設定されたパルス幅(twQ)を出力し、さらに再トリガパルスを入力することによりパルス幅を伸ばすことができる。そこで赤外線を38[kHz]の周波数で600[μs]おきに送信することにより受光時には"H",非受光時には"L"を出力できるようになる。当然600[μs]という数字は設定パルス幅より短くなっている。
図.13 パルス幅 |
図.14 赤外線周辺回路外形図 |
NO. | 信号名 | 方向 | 内容 | 備考 |
1 | Si | ← | 赤外線受光信号 | 変調後 |
2 | Vcc | → | ||
3 | Si+1 | → | 赤外線受光信号 | 変調後 |
4 | GND | ← |
NO. | 信号名 | 方向 | 内容 | 備考 |
1 | Vo | → | 赤外線受光信号 | 変調前 |
2 | GND | ← | ||
3 | Vcc | ← |
CN1 | PCN10シリーズDIN41612(準拠) | VME-busコネクタ |
CN2 | PS-50PE-D4LT1-PN1(航空電子) | 50ピンコネクタ |
IC10 | 4052(マルチプレクサ) | |
IC11 | 4069(CLK発振用IC) | |
IC12 | 16V8(PLD) | |
IC13 | μPC339(コンパレータ) | |
IC14 | 16V8(PLD) | |
IC15 | LS00(AND) | |
IC16 | LS04(NOT) | |
IC17 | LS279(R-S FF) | |
C10〜C17 | (バイパスコンデンサ) | VCCとGND間のノイズ除去の為に取り付ける |
C18 | (発振用コンデンサ) | 発振回路にあるコンデンサ |
C19 | (ガード回路コンデンサ) | コンパレータの入力に取り付けられたコンデンサ |
R5 | 発振回路用抵抗 | |
R7 | 発振回路用抵抗 | |
R8 | プルアップ抵抗 | |
R9 | 基準電圧用抵抗 | |
R10 | 基準電圧用抵抗 | |
R11 | プルアップ抵抗 | |
D1 | タイミングパルスを通すダイオード | |
CN3 | 航空電子16ピン(アングルタイプ) |
|
|
(オープンコレクタ出力 buffer×614ピン)20[mm]×6[mm] |
PWM回路の先にある可逆powerボードにおいて、フォトカプラを使用しているため大電流を流すのに7407を用いている。この素子を使うには、pull-up抵抗(R1〜R4)が必要である。R1〜R4の値に関しては、以下の事から求められる。
よってpull-up抵抗Rは次のようになる。
IC2,IC4 | 74LS684 (8bit comparater×1 20ピン)25[mm]×6[mm] | 速度データは7bitのため17ピン(P7)はGNDに落とす。18ピン(Q7)にはカウンタの出力の最上位bitが入る。 |
IC18 | 74LS04 (NOT × 6 14ピン)20[mm]×6[mm] | IC3のCCLK(11ピン)を反転させてRCLK(13ピン)に入れる時に用いている。 |
C1〜C4 | 104 (バイパスコンデンサ) | Vcc−GND間のノイズ除去のため各ICに取り付ける。 |
CN5 | MOLEX 5ピンコネクタ (5046-05A)アングルタイプを使用 |
CN4 | 航空電子16ピン(アングルタイプ) | |
IC5,6,7 | 74LS574 | 8入力D FF/OCはGNDにおとしておく |
IC8 | 74LS688 | 8ビットデジタルコンパレータ |
IC9 | 74LS00 | NAND×4 |
C5,6,7,8,9 | バイパスコンデンサ |
参考文献
自律知能ロボット用制御システム開発
(園3 I/O NOT-電子制御-9404-3)
I/OボードというものはI/Oのアドレスなどを設定しているところである
また、そのボードの上にはIP−Dig.48というボードとMMIボードが乗っている。MMIボードについては、ほかの調査報告書を参考にしてください。
I/Oボード(VIPC310)の説明
名称 | VIPC310 |
メモリサイズ |
|
IPのメモリ配置 | A24/D16 |
搭載可能なIPの数 |
|
IPのI/O配置 | A16/D16 |
I/Oサイズ | 512[Byte] |
VMEbusへの割り込み | IRQ1,2,4,5が使用可能 |
I/Oの接続 | 2つの50ピンコネクタ 長さ100インチまでのフラットケーブル |
前面の指示器 | 2つのGreen LED |
ボードのバッテリ | 3.3[V]のリチウム電池165[mA]ならば1時間流せる。 |
電源要求事項 |
|
使用環境 | 温度0度〜70度 湿度5%〜95%(結露しない程度) |
サイズ |
|
I/Oボードの機能解説
@VIPC310の構造描写
VIPC310は、基準寸法のI/O構成成分の種のIPの一部である。IPキャリアとしてVIPC310は機械的な支援と、電気的な接合を、2つのシングルハイトIPか、1つのダブルハイトIPに供給する。VIPC310の外観図は、次ページ図1である。インプット/アウトプット、メモリ、割り込みの働きを持つ。ボード上でのバッテリーによるバック アップが可能である。VIPC310は、3U(シングルハイト)の要素によってVMEbus
Specification C.1(IEEEにより、P1014/D1.2または、IEC821busとしても知られている。)と結合する。IPキャリアは、DMAボードや、68020処理装置を乗せると(6U(ダブルハイト)でも可)様々な機能を利用できる。IPキャリアは、他の標準的なIndustrybusでの利用もできる。VIPC310は、IP
Logicの接合方法に従う。IPは互いに、VIPC310の前面を通って50ピンのフラットケーブルによって接合される。二つのIPは、"A"及び"B"と名付けられている。インタフェースの接合は、基準寸法で、ケーブルでつながれたシステムであれば、IPキャリア上にディレクトリを添え付けられる。接合ケーブルルは、VMEのシャーシから、VIPC310を動か さずに、差し込み、引き抜きができる。IPはI/Oからの信号に依らずに、ON/OFFができる。どんなときでも、IPは、グリーンフロントパネルの指示器が点灯していれば、VMEbusから、アクセスされる。二つの表示器があり、一つづつ、相互のIPに用いられる。どのアクセスに対しても、活動の指示を明確にする為に、一つ又は複数の関係のあるLEDを点灯させる(約三分の一秒間)。ボード上のリチウムバッテリは、こういった機能を利用するIPの為のバックアップ用として用いられる。尚、バッテリは、VMEbus+5又は、STDBYラインかを選択して使用できる。通常、バッテリの補佐作用は、スティックRAMと、日時計に使用される。IPのI/Oは、VMEbusA16/D16空間中に位置する。使用者と、管理者のアクセスは共に、読み取り、修正、書き込み(テスト/セット)の作業を受ける。相互のIP上にあるI/O空間は、IPの詳細書によって、16ビットのワードが64個と決められている。相互のIPが、64語を占有するPROMの搭載ができる。こうして、二つのIPのA及びBは、ShortI/O空間のVMEbusシステムの64[KB]中、512バイトを占有する。割り込みは、全面的に、指示を受ける。相互のIPは、二つに分割された割り込み要求により、動作を行う。VIPC310は、VMEbusのIRQ1,3,4,6の支援をする。割込み要求を受けた相互のIPは、自身に8ビットのVECTORを供給しなければならない。このVECTORは、VMEbusに受け取りを知らせるサイクルで、割込みバス間に供給される。VIPC310は、VMEbusBERRの操作を受けない。ソフトウェア上の、意味の無いアクセスは、動作していないCPUボード上の停止回路バスによって、停止される。パワーアップ、パワーダウン、バスリセット関数は、全面的にサポートされている。VIPC310は、5,12,-12[v]の電源をLC
piフィルタを通して、相互のIPに供給する。これは、精密なディジタル作用とともに、アナログの使用を可能にしている。
AI/Oアドレスの設定法
VIPC310上のI/Oのアドレス設定法は、二つの要素により決まる。一つは、ボードのベースアドレスである。 二つめは、サブスペースに要求されるアクセスと、IPのオフセットである。 ベースアドレスの設定方法は、以下で説明する様に、四つのサブスペースと、それらのオフセットによって決められる。VIPC310は、VMEbusの"Short
I/O又は、A16/D16空間中に、512バイトを占める。これは、IP空間と、相互のIPのI/O間の16ビット*64ワードからなっている。ボードのベースアドレスは、八個のシャント及び、ジャンパーによって設定される。このブロック配置の模様は、図1に示されている。シャントは接合されると、アドレスラインに"0"を与える。シャントは開放されると、アドレスラインに"1"を与える。例えば、7つのシャントの全てが接合された時には、$0000と言うベー スアドレスが創造される。7つのシャントの全てが開放された時には、$FE00と言うベースアドレスが創造される。アドレスラインに対するシャントの位置の関係は、図2のチャートに示されている。I/Oのベースアドレスのシャントは、メモリが使える状態であれば、VIPC310によってメモリーベースアドレスの選択もできる。例えば、I/Oのベースアドレスを$6000(A16空間中)とするなら、メモリーベースアドレスは、$600000(A24空間中)となる。より多くの情報を得るために、"メモリーのアドレス設定法"と言う項目
を参照してください。VIPC310では、図1に示される様に、I/Oベースアドレスに、$6000をセットしたものが送信される。VIPC310がVMEbus空間のA16中に占める512バイトは、四つのサブスペースに分割される(図4参照)。相互のIPは、128バイト(&H$80バイト)のI/O空間に一語16ビットの空間を64個持つ。大半のIPは、ロウオーダーの時や奇数バイトでのみ使用される。これらのIPによってバイト は、$1,$3等のオフセットの位置をアクセスする。このI/Oの奇数バイトは標準型のVMEbusと68000等の演算処理装置で与えられる。大半のIPは、I/O空間に割り当てられた全てのバイトを使用することはできない。相互のIPは、使用していないバイトでデコードをすることが出来る場合もある。使用していない空間へのアドレス指定は、回路的なCPUバスタイムアウトを侵害することからVMEbus
BERRを起こすだろう。もしこのCPUの機能を止めたいならば、使用していない空間へのアドレス指定をする時や、IPの空間にに差し込まない時、VMEbusは"ハング"する。
I/Oのベースアドレスのシャントは、メモリが使える状態であれば、VIPC310によってメモリーベースア ドレスの選択もできる。例えば、I/Oのベースアドレスを$6000(A16空間中)とするなら、メモリーベースアドレスは、$600000(A24空間中)となる。VIPC310では、図3に示される様に、I/Oベースアドレスに、$6000をセットしたものが送信される。1つのIPは、そのI/O空間内に偶数バイトを使えるかどうかわからない。もし、使えないならそれは、偶数バイトのアクセスに反応するかできるかわからない。IPは、readとwrietで異なるマップを持っている。CPUのバスタイムアウト機能の用途は、起こりうる無効なアクセスを試し、見つけ出す事を委ねられる。相互のIPは、ID
PROMを持つ必要がある。このIDPROMは、最少32バイトである。それは、大きいだろう。ID PROMは、IPに関する決められた情報を与え、それは、IndustryPackSpecific
ationに定義されている。この情報は、IPのメーカー、モデルコード、改訂版レベルの製造に含まれる。それには、ドライバの同じ物であると確認するコード、調整情報も含まれるだろう。ID
PROMの、左のオーバースペースは、エンドユーザー、システムの積算器のために情報を加える事で利用される。
ID PROMは、代表的に自動構成、自動計測、改訂版保守の為のソフトウェアとして使われる。加えて構成された機能は、使用できる。ID
PROMは、アクセスされる事を要求したり、それらの情報がホストソフトウェアで使われる事もない。しかし、ID PROMが臨界目 盛や、構成情報を含んでいるとしたら、ソフトウェアの使用方は非常に促進される。図5は、相互のID
PROMの要求情報を示している。
3. I/Oボードの設定
I/Oボードは静電気を水道の蛇口などで放電してから触るようにすること。また、使わないときは、静電気から守る袋に入れておくこと。
図1のようにI/Oボード(VIPC310)のジャンパーを設定する。(赤で記されている)
図2のようにIP-Dig.48のジャンパーをセットする。(赤で記されている)68230の下にあるジャンパーは、はんだごてを使って線をはる。
図1のようにINDUSTRY PACK Aにロータリーエンコーダボード、INDUSTRY PACK BにIP-Dig.48をのせる。
詳しくは、各ボードのマニュアルを参照すること。
I/Oボード(IP−Dig.48)の機能概要
IP−Digital48には、MC68230PARALLEL INTERFACE/TIMER(PI/T)が2個搭載されている。
MC68230には、入出力ポートA,B,Cがあり、A,Bは単方向または双方向の8bitまたは16bitの入出力として使用できる。このポートはダブルバッファ内蔵である。ポートCは、DMA,タイマおよび割り込みの制御としても使用される。
PI/Tは、その内部にTIMERを持っているが、このTIMERは24bitのダウンカウンタを含んでいる。このタイマの基本的な使い方として、
1 Periodic Interrupt Generator
2 Square Wave Generator
3 Device Watchdog
等がある。1は、設定周期毎のタイマ割り込みが可能であり、2は、設定周期の方形波をTOUTより出力できる。3は、TINが立ち上がると、設定値からカウンタがダウンしていき、TINが立ち下がると止まる。また、underflowになると、TOUTに一発パルスが発生する。
|
|