ベルトの改造で使用している、音声データの読込方法について説明します。
音声データの読込みには、SDカードを使用しています。大容量で安いことと、PCからの書込みがしやすいという点での選択です。
PCから読み書きができるようにするには、基本的にFATでフォーマットする必要があります。しかし、FATのファイルをマイコンから真面目に読もうとすると、結構処理が複雑になります。
今回はなるべく簡単に読み込ませるために、独自のテーブルを作り、FATフォーマットの上で動作するようにしています。
ポイントは2つです。
各音声データが必ず連続しているようにする
通常FATでは、ファイルのデータを読んでいく際、先頭のアドレスから連続して読んでいけるわけではありません。テーブルを参照し、次のデータがどのクラスタに入っているかを調べながら読んでいく形になります。
今回は、データが連続するように書き込むことで、テーブルを無視して単に連続してデータを読んでいけるようにします。
独自テーブル情報を置く
各音声データの先頭アドレスを調べるには、ディレクトリエントリを参照し、該当するファイルのクラスタ番号を調べる必要があります。
今回は、独自のテーブル情報を作り、簡単に先頭アドレスを取り出せるようにします。また、独自テーブルは既知のアドレスに配置されるようにして、固定アドレスで読み出せるようにします。
以上の条件を満たすように、PCからSDカードへ音声データを書き込んでいきます。
書込みの際には、独自テーブルのアドレスが変わらないようにツールを使って書き換えたり、FATを解析してアドレスを調べたりと、ひと手間かかります。
しかし、それによってマイコン側の処理は非常に簡単に作ることができます。