前回、セキュリティ(暗号化)において既存の多くのマイコンが課題を抱えていること、そしてEFM32PG/JGが解決策になるかもしれないこと、についてお話ししました。(前回の記事はこちら)
今回はEFM32PG/JGの仕様について見ていきたいと思います。
EFM32PG/JGの基本仕様
Silicon Labs社(シリコンラボラトリーズ)が展開するEFM32ファミリは、“Energy Friendly Microcontroller”の名に違わず、低消費電力に強みを持ったマイコン製品群です。EFM32PG(Pearl Gecko)およびEFM32JG(Jade Gecko)は、このEFM32ファミリに加わった8番目・9番目の製品になります。
以下に全9ファミリの主要スペックの比較表を示します。

CPUコアには、EFM32PGではARM Cortex-M4Fを、EFM32JGではARM Cortex-M3を採用しています。ペリフェラルには差分はありませんので、DSP命令を使用したければPGを、そうでなければJGを選択することになります。
EFM32PG/JGの基本仕様は次のとおりです。
フラッシュメモリ | 128kB or 256kB |
RAM | 32kB |
消費電流 (EM0…Activeモード時) |
78 uA/MHz(38MHz内蔵クロック動作時、内蔵DC/DC使用) 112 uA/MHz (38MHz内蔵クロック動作時、内蔵DC/DC未使用) |
消費電流 (EM2…Deep Sleepモード時) |
1.4 uA(内蔵DC/DC使用) 3.47 uA (内蔵DC/DC未使用) |
GPIO | ~32本 |
ハードウェア暗号化 | |
タイマ | 16bit x 2 (各タイマに3~4のコンパレータが用意されています) |
DMAコントローラ | |
シリアルインタフェース | USART x 2、Low Energy UART x 1、I2C x 1 (USARTでSPIやUARTを実現できます) |
アナログペリフェラル | 12-bit ADC x 1、DAC x 1、アナログコンパレータ x 2 |
パワーオンリセット | |
内蔵クロック | 38MHz(HFRCO)、32.762kHz(LFRCO) |
動作電圧 | 1.85 ~ 3.8V |
動作温度 | -40 ~ 85℃ |
タイマの本数が少ないように見えますが、各タイマに3~4のコンパレータが用意されていますので、実質的には本数は多くなります。また内蔵クロックは精度がそれ程高くありませんので、精度が必要な場合には外付けクロックが使用できます。このあたりは他のEFM32ファミリと同様です。
なお、EM1(Sleepモード)、EM2(Deep Sleepモード)時の消費電流値についてはエラッタが出ており、現行のレビジョンではデータシートのスペックよりも電流値が高くなっている点に注意が必要です。次レビジョンで修正される予定だそうです。

暗号化ハードウェア
EFMPG/JGには、CRYPTOというペリフェラルが追加されています。これが暗号化ハードウェアです。暗号化に必要な演算の大部分をこのハードウェアで実現してしまいますので、CPUの負担はゼロ或いは最小に押えることができます。
対応している暗号方式は、以下のとおりです。
- AES 128/256ビット鍵 (ECB、CTR、CBC、PCBC、CFB、CBC-MAC、GMAC、CCM、GCMなどにも対応)
- SHA-1、SHA-224、SHA-256
- ECC(P-192、P-224、P-256、K-163、K-233、B-163、B-233)
Silicon Labs社の資料によると、この他にもレガシーな暗号方式であるDES、3DES、MD4、MD5、RC4にも対応できるそうです。サポート範囲が広いですね。
ハード処理の実力を見てみたい!
せっかくハードウェア実装されたからには、実力の程を確かめてみたいですね。SiliconLabs社が提供するサンプルコードを探してみたところ、暗号化をハードウェア処理した場合とソフトウェア処理した場合の、処理時間を比較できるコードが用意されていました。
次回はこのサンプルコードを使って、セキュリティ・エンジンの実力を確かめてみたいと思います。