特集 特集 センサから届くアナログ信号の扱いも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
© Copyright 2025 ExpyDoc