11機種の読み取りペンにおける割り込みレイテンシとリアルタイム挙動。最悪ケースのタイミング表、DMAジッタ図、OEMベンチマーク方法論を収録。

公開日: 3月 26, 2026 - 66 閲覧数

OID読み取りペンにおける割り込みレイテンシとリアルタイム挙動:OIDデコード・オーディオDMA・センサISR(11機種横断)

対象読者:本ガイドは、読書ペンの割り込み遅延予算を理解・検証する必要がある、ファームウェアエンジニア、リアルタイムシステムアーキテクト、OEM品質検査エンジニア向けです。遅延の発生源、当社が出荷する11モデル(B1、B2、F8、K7、KF1、L5、P2、Q6、Q8、T2、Y6)ごとのばらつき、OEM購入者が工場受入検査で測定すべき項目について解説します。

読書ペンはリアルタイムシステムです。ユーザーはタップから50ms以内に音声が再生されることを期待します。この予算は複数の割り込みに分割されます:OIDセンサーDMA完了、センサー用I²C割り込み、オーディオDAC DMA完了、電源管理割り込み、Wi-FiまたはBLE無線割り込み(該当する場合)。このいずれかが遅延予算を超えると、ユーザーは音飛びや遅延を感じ、最悪の場合ペンが反応しなくなります。

本記事では、当社ラインナップ全モデルにおける割り込み遅延予算の内訳、最悪ケース遅延を制限するために用いる手法、そしてOEM購入者が入荷ロットで実施できる具体的な工場受入テストを説明します。

1. 読書ペンの割り込み遅延予算

読書ペンには4つの重要な割り込みソースがあります。それぞれに予算が設定されています。いずれかのソースが予算を超えると、ユーザーエクスペリエンスが低下します。

割り込みソース トリガー レイテンシ予算 担当
OIDセンサーDMA完了 OIDページ取得完了 ≤ 1,200 µs OIDデコーダータスク
オーディオDAC DMA完了 DACバッファ半分/満杯 ≤ 800 µs オーディオプレーヤータスク
バッテリーゲージアラート 電圧/温度 ≤ 4 ms バッテリー監視タスク
BLE/Wi-Fi 無線 RX 完了、TX 完了 ≤ 6 ms 無線スタック

OIDセンサーの予算が最も厳しいのは、ユーザーがタップしたOIDの音声を待っているためです。オーディオDACの予算が次に厳しいのは、DMA補充が間に合わないと可聴クリック音が発生するためです。

2. モデル別割り込み遅延ベンチマーク

当社工場のQAステーションでは、割り込みライン上のGPIOトグルと500MHzロジックアナライザーを使用し、全モデルで割り込み遅延を測定しています。下記の数値は、25°C、3.7Vバッテリー、全周辺機器稼働下において、10,000回の割り込みで計測した最悪ケース値です。

モデル OIDセンサー ISR オーディオ DMA ISR バッテリー ISR BLE/Wi-Fi ISR 最悪ケース合成値
B1 880 µs 620 µs 2.4 ms n/a 980 µs
B2 740 µs 540 µs 2.1 ms n/a 820 µs
F8 18 µs(カーネル) + 220 µs(タスク起床) 22 µs + 180 µs 1.6 ms 4.8 ms 380 µs
K7 320 µs 240 µs 1.8 ms 2.4 ms 410 µs
KF1 280 µs (デッドライン) 220 µs 1.6 ms 2.2 ms 360 µs
L5 22 µs (カーネル) + 280 µs (タスク起床) 26 µs + 240 µs 2.0 ms 5.2 ms 460 µs
P2 1,140 µs 940 µs 3.6 ms n/a 1,260 µs
Q6 760 µs 580 µs 2.2 ms 2.6 ms 880 µs
Q8 720 µs 540 µs 2.1 ms 2.5 ms 820 µs
T2 24 µs (カーネル) + 260 µs (タスク起床) 26 µs + 220 µs 2.0 ms 5.4 ms 440 µs
Y6 22 µs (カーネル) + 280 µs (タスク起床) 26 µs + 240 µs 2.0 ms 5.2 ms 460 µs

P2のOIDセンサーISRレイテンシは最も高く(1,140 µs)、これはP2が64 MHzのCortex-M0+で動作しDMAを搭載していないためで、OIDセンサー割り込みがビジーループによるデコードを発生させ、1 msを要します。P2は当社の最も低コストなSKUでもあり、5ドル未満のOID書籍向けにこのレイテンシを受け入れています。

3. OIDセンサー割り込みの構造

OIDセンサーは読み上げペンにおいて最もレイテンシに敏感なペリフェラルです。B2ファームウェア 2.4.7における流れは次の通りです:

  1. t=0: ユーザーがOIDドット上にペンをタップする。
  2. t=0–8 ms: OIDセンサーが30 fpsで12フレームをキャプチャし、内部バッファを満たす。
  3. t=8 ms: OIDセンサーがSoCに対してDMA完了割り込みをアサートする。
  4. t=8 ms + 740 µs: OIDデコーダータスクが起床する(これがワーストケースのISRレイテンシ)。
  5. t=8.74 ms: OIDデコーダーがDMAバッファから12フレームを読み出す。
  6. t=8.74 ms + 14 ms: OIDデコーダーアルゴリズムがページIDを返す。
  7. t=22.74 ms: オーディオプレーヤータスクがページIDを受信する。
  8. t=22.74 ms + 6 ms: オーディオプレーヤーがMP3ファイルを開き、再生を開始する。
  9. t=28.74 ms: ユーザーは音声を聞き取ります。

ユーザーが体感する合計遅延時間は28.74 msとなり、50 msという目標を十分に達成しています。最大の要因はOIDデコードアルゴリズム(14 ms)で、次に音声ファイルのオープン処理(6 ms)が続きます。

OID sensor interrupt flow on B2 (worst case, 25 °C, 3.7 V)

4. 音声DMA割り込みとバッファアンダーラン

音声DAC DMA割り込みは2番目に厳しい予算項目です。B2ファームウェア2.4.7では、音声バッファは16 kHzモノラル(32 KB/秒データレート)の4 KBピンポンDMAバッファとなっています。バッファは64 ms(ハーフバッファ)ごと、および128 ms(フルバッファ)ごとに補充されます。

音声バッファ状態 対応
バッファ残量 75 % 以上 通常再生
バッファ残量 50–75 % 音声タスクの優先度を100 ms間引き上げ
バッファ残量 25–50 % ログの詳細度を下げ、BLEトラフィックを削減
バッファ残量 25 % 未満 OIDデコードを一時停止し、音声を補充
バッファ残量 10 % 未満 100 msの無音を再生し、音声アンダーランイベントを記録

アンダーランイベントはファームウェアログで追跡しています。アンダーラン発生率の目標は10,000タップあたり1イベント未満です。2023年以降に出荷した47,000台以上の端末において、当社フリート全体のアンダーラン発生率は0.018 %、つまり約5,500タップに1回のアンダーランとなっています。

5. ワイヤレススタックの割り込みレイテンシ

BLEおよびWi-Fiの割り込みは、読書ペンにおいては最もレイテンシの影響を受けにくい要素ですが、長時間音声タスクをプリエンプトすると音声のグリッチを引き起こす可能性があります。当社ではF8、L5、T2、Y6にワイヤレス共存(WCI)インターフェースを搭載し、この問題に対応しています。

WCIインターフェースはWi-Fi無線とBLE無線を接続する4本のアービトレーションバスです。音声タスクがアンテナを必要とする場合、WCIリクエスト信号をアサートします。Wi-Fi/BLE共存シムは最悪ケースでも280 µs以内にアンテナの使用を許可します。これにより音声タスクは競合なく送信できます。

ワイヤレスイベント レイテンシ予算 緩和策
BLE接続イベント 6 ms WCIアービトレーション、優先度引き上げ
Wi-Fi TX 完了 5 ms WCIアービトレーション、音声タスクのプリエンプション
Wi-Fi RX 完了 5 ms 直接 DMA、プリエンプションなし
BLE アドバタイジング 2 ms TX ウィンドウ中のみオーディオをプリエンプト

K7 および KF1 も類似の、よりシンプルな方式を採用しています。BLE 専用で、Wi-Fi なし、WCI 不要です。BLE スタックはオーディオプレーヤーよりも低い優先度で動作し、一度に最大 800 µs プリエンプトされます。

6. Linux SKU の ISR レイテンシが高くなる理由

Linux SKU は RTOS SKU よりも ISR レイテンシが高くなります。これは、カーネルが割り込みごとに処理する作業が多いためです。

  1. ハードウェア IRQ 発生(8〜12 µs)。
  2. カーネル IRQ ハンドラ実行(4〜8 µs)。
  3. Softirq/tasklet 実行 (4–8 µs)。
  4. タスクは waitqueue 経由で起床(4〜8 µs)。
  5. スケジューラがタスクを選択(1〜3 µs)。
  6. コンテキストスイッチ(2〜4 µs)。

合計で、ハードウェア割り込みからタスク実行まで 18〜24 µs です。RTOS SKU は ISR が直接タスクを起床できるため、手順 2 と 4 を省略します: xTaskNotifyFromISR または k_thread_resume.

Linux SKU では、以下で補正しています:

  • オーディオタスクを専用 CPU コアに固定(taskset).
  • T2 に PREEMPT_RT パッチを適用(ファームウェア 2.6.4)し、プリエンプションレイテンシを最悪ケース約 80 µs に低減。
  • オーディオ用 CPU コアを一般スケジューラ負荷から分離(cgroup cpuset).

7. 電源管理割り込み

バッテリー管理割り込みは、すべての SKU で最も低速です。これは、バッテリーゲージが 1 Hz でポーリングするためです。ゲージは次の場合にアラート割り込みを発生させます:

  • 残量が 1 % 以上変化した場合。
  • 電圧がしきい値(最低 3.3 V、フル 4.2 V)をまたいだ場合。
  • 温度が -10 °C または +60 °C を超えた場合。
  • ヘルスステータスの変化(バッテリー取り外しなど)。

PMICアラートの遅延は約2〜4msです。バッテリーモニタリングタスクは、LED輝度の調整、LCD(搭載されている場合)の減光、オーディオコーデックのバッテリー残量低下警告しきい値の更新で応答します。

8. 最悪複合レイテンシ

§2の「最悪複合」列は、最大負荷(オーディオ再生中、BLE接続中、Wi-Fiローミング中、OIDデコード中)の条件下で、割り込み発火からタスク実行までの合計時間を計測したものです。B2では820µs、K7では410µs、L5では460µsです。

当社は、最悪条件下でもOIDデコードがユーザー体感レイテンシ予算である50ms以内に確実に完了するようシステムを設計しています。各SKUの余裕は以下のとおりです。

型番 最悪複合レイテンシ 予算 余裕
B1 980 µs 50,000 µs 49,020 µs
B2 820 µs 50,000 µs 49,180 µs
F8 380 µs 50,000 µs 49,620 µs
K7 410 µs 50,000 µs 49,590 µs
KF1 360 µs 50,000 µs 49,640 µs
L5 460 µs 50,000 µs 49,540 µs
P2 1,260 µs 80,000 µs 78,740 µs
Q6 880 µs 50,000 µs 49,120 µs
Q8 820 µs 50,000 µs 49,180 µs
T2 440 µs 50,000 µs 49,560 µs
Y6 460 µs 50,000 µs 49,540 µs

P2はタップ専用機でオーディオストリーミングの複雑さがなく予算が80msと長くなっています。

9. 割り込みレイテンシの工場受入検査

5,000本以上のReading Penを受領するOEMバイヤー様向けに、ご推奨の割り込みレイテンシ受入検査4ステップをご紹介します。検査は1本あたり約90秒で、ロジアナまたはオシロスコープとUSBケーブルが必要です。

  1. USBでPCにペンを接続し、OIDセンサー割り込みラインにGPIOプローブを接続します。
  2. 既知のOIDページにペンを50回タップします。
  3. GPIOの立ち上がりエッジからオーディオDAC DMA完了信号までの時間を計測します。
  4. 合格基準:95パーセンタイルレイテンシ ≤ 50 ms、99パーセンタイル ≤ 70 ms、最大値 ≤ 100 ms。

このテストは一般的な障害モードを検出します:DMAの構成ミス(レイテンシが200 msに跳ね上がる)、Wi-Fi共存バグ(Wi-Fi動作時にレイテンシが80 msに跳ね上がる)、バッテリーアラートの嵐(レイテンシが1秒ごとにスパイクする)。

10. 今後18か月で変更される点

3つの変更が予定されています。

  • T2ファームウェア 2.7.0(Q3 2027予定)は、PREEMPT_RTパッチをデフォルトに切り替え、ISRレイテンシを最悪約80 µsに短縮します。
  • K7ファームウェア 2.0.0は、nRF5340アプリケーションコアにハードウェアアシストによる割り込みルーティングを導入し、オーディオDMAレイテンシを240 µsから90 µsに短縮します。
  • L5ファームウェア 4.3.0では、オーディオタスクに SCHED_DEADLINE を導入し、最悪起動レイテンシを200 µsにバウンドします。

これらの変更により、11モデルの製品ラインアップ全体でRTOSとLinux間の割り込みレイテンシがより均一化され、B2とL5の間の4倍の差は従来の約2倍にまで縮まります。

関連コンテンツ

見積もり依頼 — 工場から迅速回答

Frequently Asked Questions

読み取りペンにおける最悪ケースの割り込みレイテンシはどれくらいですか?
当社11モデルのうち、最悪ケースの合計割り込みレイテンシは360 µs(KF1、デッドラインスケジューリング)から1,260 µs(P2、単一言語タップのみ)まで幅があります。オーディオDAC割り込み予算は800 µs、OIDセンサー割り込み予算は1,200 µsです。タップから最初の音声出力までの合計レイテンシ推定時間は、全SKUで28~50 msです。
Linux搭載の読み取りペンSKUは、RTOS搭載SKUよりも割り込み応答が遅いのはなぜですか?
Linuxは割り込みごとに、IRQハンドラ、softirq、tasklet、waitqueue、スケジューラ、コンテキストスイッチを実行するため、18~24 µsのレイテンシが追加されます。当社ではF8、L5、T2、Y6で、オーディオタスクを専用CPUコアにピン留めし、cpusetで分離し、T2ではPREEMPT_RTパッチを適用することでプリエンプションレイテンシを約80 µsまで抑えています。
読み取りペンでオーディオアンダーランを発生させないためにどのような対策をしていますか?
B2では16 kHzモノラルで4 KBのピンポン式オーディオDMAバッファを使用しており、L5では4 KB/8 KB構成です。オーディオタスクはバッファ充填レベルを監視します:75 %以上が正常、50~75 %でタスク優先度を上げ、25~50 %でログ詳細度を下げてBLEトラフィックを削減、25 %未満ではOIDデコードを停止します。2023年以降の当社全体でのアンダーラン発生率は、出荷済み47,000台超に対してタップ数の0.018 %です。
OEMバイヤーは入荷時の読み取りペンで割り込みレイテンシを測定できますか?
はい。GPIOプローブをOIDセンサーの割り込みラインとオーディオDACのDMA完了信号に接続します。ペンを50回タップし、GPIOの立ち上がりエッジからオーディオDMAまでの時間を測定します。合格基準は、95パーセンタイル ≤ 50 ms、99パーセンタイル ≤ 70 ms、最大値 ≤ 100 msです。テストは1本あたり約90秒で、DMA設定ミス、Wi-Fi共存バグ、バッテリーアラートの嵐を検出できます。
読み取りペンのオーディオバッファアンダーラン発生率はどれくらいですか?
2023年以降に出荷した47,000台超全体のアンダーラン発生率はタップ数の0.018 %、およそ5,500タップに1回の割合です。各SKUの目標発生率は10,000タップあたり1イベント未満です。すべてのアンダーランイベントはファームウェアの診断バッファに記録され、OEMはUSBまたはBLEサービスAPI経由でログを読み取ることができます。
カート
当サイトの体験を改善するために、クッキーを許可してください。 クッキー利用.policy
Chat on WhatsApp