前回、セキュリティ(暗号化)において既存の多くのマイコンが課題を抱えていること、そして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社が提供するサンプルコードを探してみたところ、暗号化をハードウェア処理した場合とソフトウェア処理した場合の、処理時間を比較できるコードが用意されていました。
次回はこのサンプルコードを使って、セキュリティ・エンジンの実力を確かめてみたいと思います。



 
				