連続データの処理のハードウェア化

特集
特集
センサから届くアナログ信号の扱いもC言語でOK!
連続データの処理のハードウェア化
横山 雅一
Masakazu Yokoyama
ここでは,SDSoC らしい使い方として,ストリーム・データ向けの高速プロトコルである AXI4-Stream を使っ
て,連続データ転送を行う方法を説明します.例題は,センサからのアナログ情報を取り込んで,データ処理を
行うシステムです.アナログ情報を処理するハードウェアの開発も,C 言語だけで実現できます.
Zynqボード
外部センサ
圧力
センサ
アナログ信号
A-D
コンバータ
(XADC)
FIFO
AXI4-Stream
を使用
温度
センサ
ローパス・
フィルタ
(LPF)
SDSoCで
ハードウェア化
OLED
制御
内部バス
(AXI)
OLED
LED
制御
ARM
プロセッサ
LED
プロローグ
標準プラットフォームに追加
図 1 センサからのアナログ情報を取り込んでデータ処理を行うシステムを C 言語だけで記述する
本章で実現する最終的な構成を示す
ARM プロセッサと FPGA を内蔵することが大きな
特 徴 と さ れ て い る Zynq で す が, 周 辺 機 能 と し て,
A-D コンバータとして使える XADC というハード・
マクロも内蔵しています.
ここでは,SDSoC を使ったアプリケーションとし
て,A-D コンバータを使うアナログ信号処理の例を紹
介します(図 1)
.
温 度 セ ン サ や 圧 力 セ ン サ か ら の 情 報 を A-D コ ン
バータ経由で取得し,フィルタ処理を行った後,波形
を表示します(写真 1).C 言語で記述したフィルタ処
理はハードウェア化して SDSoC のプラットフォーム
に組み込んでいます.
SDSoC 標準プラットフォームでは,Linux の UIO
が使えます.また,それを利用する上で便利なライブ
ラリも用意されています.表示には,SPI 接続されて
いる OLED を使用します.
ま た, よ り SDSoC ら し い 使 い 方 と し て AXI4Stream(AXIS;ストリーム・データ向けの高速プロ
トコル)を使ってデータ転送を行う方法も説明しま
す.
プログラム 1つだけでハードもソフトも!C/C++でFPGA
第7章
No.16
温度と圧力の計測を例に
1
1.A-D コンバータを使う
● Linux コマンドで A-D コンバータのレジスタを操
作する
A-D コンバータ XADC のレジスタの概要を図 2 に
App
2
App
3
App
4
5
6
7
8
App
写真 1 Zynq の持つ A-D コンバータを使う…温度センサや圧力セ
ンサの情報取得して表示する
 1.A-D コンバータを使う
45
9