パフォーマンス向上でナニに使える? OpenBlocks Aファミリによるサーバ実力診断

第4回 GPIOにつないだパトランプで通知する,死活監視システム

この記事を読むのに必要な時間:およそ 5.5 分

はじめに

OpenBlocks A6(以降,A6)は本体にGPIOコネクタを持っています。GPIOの使い方は簡単ですが,馴染みの少ない方々にも興味を持っていただければと考え,今回のテーマとしました。GPIOにパトランプを接続した死活監視システムを構築して,GPIOの入出力手順を説明します。

監視アプリにはNagiosを使用し,異常を検知したときにパトランプを点灯することで異常を通知させます。システムの外観は写真1のとおりです。

写真1 外観

写真1 外観

A6のGPIOについて

GPIOとはGeneral Purpose Input/Outputの略称で,⁠汎用入出力」と訳されます。⁠汎用」と呼ばれるように,各ピンには決まった用途は割り当てられていません。1ピンずつON/OFFとして使用することも,複数をまとめてパラレルデータとして使用することもできます。今回は1ピンずつのON/OFF制御で3本使います。

次項より,A6のGPIOの概要とLinux上での操作方法を説明します。

Marvell 88F6283のGPIO

A6のCPUは,Marvellの88F6283です。このCPUはMulti Purpose Pins(MPP)というピンを50ピン持っています。このMPPはGPIOとしても使えますし,ほかにSDIO,GbE,Audioなどの機能としても使える多目的なピンです。

GPIOコネクタのピン配置

A6は背面写真2に,2mm×2mmピッチの16ピンコネクタを持っています。50ピンのMPPのうち未使用の24~31番をGPIOとして使用し,GPIOコネクタの5~12番ピンに割り当てています。表1にGPIOコネクタのピン配列を示します。

写真2 OpenBlocks A6の背面

写真2 OpenBlocks A6の背面

表1 GPIOコネクタピン配列

番号ピン名番号ピン名
1+3.3V2+3.3V
3GND4GND
5GPIO246GPIO25
7GPIO268GPIO27
9GPIO2810GPIO29
11GPIO3012GPIO31
13+3.3V14
15GND16

GPIOの操作方法

Linuxでは,sysfsを介してGPIOを操作します。sysfsからGPIOコネクタまでの経路を図1に示します。

図1 sysfsからGPIOコネクタまでの構成

図1 sysfsからGPIOコネクタまでの構成

A6におけるGPIOへの操作手順を説明しましょう。まず,GPIOは/sys/class/gpioディレクトリにエントリされます。初期構成は図2のようになっています。

図2 gpioフォルダの初期構成

# cd /sys/class/gpio/
# ls -F
export  gpiochip0@  unexport

exportファイルに,操作する24~31のGPIO番号を書き込みます。たとえば,GPIOコネクタの5番ピンのGPIO24(表1を参照)を操作する場合は,exportに24を書き込みます。すると,図3のようにgpio24というシンボリックリンクが作成されます。操作には,gpio24ディレクトリ内のdirectionとvalueを使用します。

図3 GPIOコネクタの5番ピンを操作する例

# echo 24  > export
# ls -F
export  gpio24@  gpiochip0@  unexport
# cd gpio24
# ls -F
direction  subsystem@  uevent  value

directionファイルでは入力/出力の切り替えを行います。directionファイルには,out/in/high/lowの4種類が設定できます。今回はoutとinの2つを使用します。valueファイルではデータの取得と設定を行います。valueの値は,0と1でそれぞれlowとhighを意味します。highがONとは限りません。接続する機器によってはOFFの場合もあります。directionとvalueの操作例が図4です。なお,directionをinに設定してvalueに書き込みを行うと書き込みエラーが発生するので注意してください。

図4 directionとvalueの操作例

# cd gpio24
# cat direction
in
# echo out  > direction
# cat direction
out
# cat value
1
# echo 0  > value
# cat value
0

コメント

コメントの記入