平成 30 年度卒業論⽂FPGA を⽤いた光計測装置の開発
平成 31 年 3 ⽉ 8 ⽇
電気通信⼤学 森永 実 研究室
坂内 栄⼀
1.序論
初期のディジタル回路は.NOT や ANDなどそれぞれの機能のみを持つ IC を組み合わせる事で回路を構成していた.これ
らを使う場合,複雑さを伴うにつれて回路が物理的に巨⼤になってしまう問題を抱えていた.⾼度な IC が登場するにつれて,⼤規模な論理回路を組み込んだものである LSI(Large Scale Integration)が⽣まれた.この IC から LSI への進化により,汎⽤回路の初期コストが掛かるようになってしまった.
この流れの中で,最初から回路の要素だけを盛り込み,ユーザーの⼿元でロジックや配線を付け替えられるPDL(Programmable Logic Device)と呼ばれる製品が登場した.当初の PLD は規模が⼩さかったが,これを⼤規模化したCPLD(Complex Programmable LogicDevice)が登場した.これに伴い,汎⽤ロジック IC 数百個~数千個分の回路を内部で構成できるようになり,ディジタル回路の構成が容易になった.
FPGA(Field-Programmable gate array)
は,Xilinx 社が考案したプログラムの記憶要素として SRAM を採⽤し,回路構造を⾃由に変更できる⼤規模な PLD である.
この FPGA は年々進化を遂げており,数百 MHz 帯の動作周波数を持つものが⼀般化されつつある.この FPGA を⽤いた
光計測装置を開発することで,仕様の変更が容易である計測装置作りができると考える.
今回は分光器の製作を⽬指した.

2.⽅法
2.1.使⽤機器
今回使⽤した機器について表 1.に⽰す.
'1.", FPGA(Papilio Pro(Xilinx Spartan6) #VHDL
&
Xilinx ISE Design Suite$!
Papilio Loader*  
C12880MA ()%
)A/D+(12bit 1MS/s)
ADCS7476 (Texas Instruments)

FPGA 評価ボードは図 1.のものを使⽤した.

図 1.Papilio Pro
2.2.タイミングチャート
分光器ヘッドの駆動クロックは200kHz~5Mhz,A/D 変換器の駆動クロッ
クは 10kHz~20MHz である.分光器ヘッドは駆動クロックの⽴ち上がりで 288 個の受光素⼦が順番に反応し,アナログ信号をそれぞれ出⼒する(図 2.).A/D 変換器
は駆動クロックの⽴ち上がりでデジタルデータを 1bit ⽣成し,合計 12bit のデジタル信号を出⼒する.しかし,駆動クロックは 4 サイクル分変換の前後に準備時間として存在するため,1 回のデジタル変換は駆動クロック 16 サイクル分となる.

2_.C

7757 ATRG
CLK4+VSFGS
0STVideo

GND

0.C
VIN

VDD

V
37 57 A

図 2.分光器ヘッドの構造[1]
分光器ヘッドが出⼒するアナログ信号をそれぞれデジタル変換する必要がある.
そこで,上述の仕様より A/D 変換器は分光器ヘッドと⽐較して駆動クロックが最低でも 16 倍の速さを持つ必要がある.今回は分光器ヘッドを 200kHz,A/D 変換器を 16MHz で駆動させることとした.タイミングチャートを図 3.として⽰す.

0.C

SCLK

5READY

4GND
SDATA

SIN

CLK

83HM
CLK/ 1A6 OIPD

I
CCLK

Q

WR
TX

data16

図 4.分光器ブロック図
PC との通信の概略図を図 5.として⽰す.

図 5.PC との通信

図 3.タイミングチャート
2.3.PC との通信
今回の FPGA 評価ボードの性能として,USB シリアル通信で PC にデータを送信する際の速度上限は 3Mbps である.
分光器が 200kHz で駆動し,それが 16bitのデータとしてデジタル変換される事から,通常に通信した場合 3.2Mbps の速度が必要となってしまう.そこで,FPGA 内で 8bit のデータ 2 つに分割し,シリアル通信を⾏うという⽅法を⽤いた.分光器とA/D 変換器および FPGA のブロック図を図 4.として⽰す.

3.結果
3.1.Na ランプを⽤いた波⻑校正
今回作製した FPGA 分光器を⽤いて,波⻑が既知である Na ランプの波⻑計測を⾏った.使⽤した Na ランプを図 6.として⽰す.

図 6.Na ランプ

Na の持つ光の波⻑として代表的なものは,588.59nm と 589.99nm である.今回の分光器は約 310nm~880nm の範囲を 288個の素⼦で計測している為,分解能は1.8nm 程度である.その為スペクトルは正確なものではないが,近傍の素⼦で反応している事が観測でき,分光器として正常に動作している事が確認できた.

図 7.Na ランプのスペクトル3.2.⽩⾊ LED ライトのスペクトル計測
次に,⽩⾊ LED ライトのスペクトル計測を⾏った.オシロスコープを⽤いて,分光器ヘッドが出⼒するアナログ信号を計測した結果,図 8.のような信号を確認することができた.

図 8.⽩⾊ LED ライトのアナログ信号
A/D 変換器でデジタル変換し PC で観測したスペクトルは図 9.のようになった.計測の使⽤上,図 8.の信号が送られた時間とは異なる信号をデジタル変換している点を留意していただきたい.

図 9.⽩⾊ LED ライトのスペクトル
図 9.より,まず 465nm 付近でピークがある事が分かる.これは⻘⾊ LED を⽰している.次に,560nm 付近を中⼼に広いピークが確認できる.これは⻩⾊の蛍光物質である.この 2 点より,⽩⾊ LED は⻘⾊
LED と⻩⾊の蛍光物質を合わせて⽩⾊に⾒せていることがわかる.
4.まとめ・今後の展望
FPGA を⽤いて分光器を製作することができた.今回は PC で得たデータをExcel で計算し直してスペクトルごとの光強度をグラフ化するという⼿順を踏んだが,Excel のマクロ等を組めば⼿動で計算を⾏わずともより簡単な⽅法でグラフ等のデータに変換することができるのではないかと考えられる.
また,今回の製作により分光器以外の光計測装置も FPGA で動作させられると思われる.FPGA は別々にピン配置を⾏えばパラレルで複数の機器を動作させることができる為,1 つの FPGA で複数の光計測機器を動作させ,対象の様々なパラメータを同時に計測させられると期待している.
しかし,これは⼀度に発⽣するデータが膨⼤で USB シリアル通信では通信がパンクする恐れがあり,別の送信⽅法または観察⽅法を考案する必要がある.

5.参考⽂献[1]第⼀章 FPGA とは,
https://japan.xilinx.com/japan/fpgakoza/chapter01.html[2]マイクロ分光器 C12880MA,
https://www.hamamatsu.com/jp/ja/product/type/C12880MA/index.html[3]ADCS7476/77/78 1MSPS,
http://www.ti.com/lit/ds/symlink/adc
s7476.pdf[4]「FPGA 版 Arduino!! Papilio で作るディジタル・ガジェット」
横溝憲治/岩⽥利王/⼟井滋貴/平⼀平,CQ 出版社,2014[5]ハードウェア記述⾔語によるディジタル回路設計の基礎
⽊村誠聡,数理⼯学社,2012[6]FPGA ボードで学ぶ論理回路設計
⼭際伸⼀,CQ 出版社,2003[7]図解 VHDL 実習,堀桂太郎,森北出版,2004[8]VHDL と CPLD によるロジック設計⼊⾨,中幸政,CQ 出版社,2005[9]⾒てわかる VHDL,坂巻佳壽美,⼯業調査会,2002[10]TeraTerm でバイナリデータのやりとりをシュミレートする,
https://qiita.com/ishturk/items/a1130a
b4a5c8c9ffb523