5月 282015
 

前回の「REX-USB61mk2で強化された機能(その1)」では、
REX-USB61mk2で強化された機能のスクリプト機能、仮想COM機能、API関数について紹介しました。

引き続き、今回もREX-USB61mk2で強化された機能について紹介していきます。

今回は、REX-USB61mk2で高速化された機能と汎用入出力ポート(DIO)のサポートについて説明します。

■高速化について

従来のREX-USB61からの最も強化された点として挙げられるのが高速化です。
REX-USB61mk2では、(1)マイクロコントローラ/(2)ホストとの転送速度/(3)SPI/I2Cバス転送速度の3点から高速化が図られています。
usb61mk2_connect

REX-USB61mk2 REX-USB61
1 マイクロコントローラ ARM Cortex-M3べース(32bit)
動作クロック 180MHz
PICベース(8bit)
動作クロック 24MHz
2 ホストとのデータ転送速度 USB2.0 Hi-Speed
(Max. 480Mbps)
USB2.0 Full-Speed
(Max. 12Mbps)
3-1 SPIバスの最大周波数(SCK) 50MHz 12MHz
3-2 SPIバスの最大データバス幅
(最大ビット数)
Quad
Max 32bit
Single
Max 8bit
3-3 I2Cバスの最大周波数(SCL) 5MHz 1MHz
3-4 I2Cバスの通信モード Standard-mode, Fast-mode
に加えて
Fast-mode plus,
High-speed-mode,
Ultra Fast-mode に対応
Standard-mode, Fast-mode
に対応

【1】高速なマイクロコントローラを搭載

REX-USB61mk2の頭脳とも言える処理能力を左右するマイクロコントローラにARM Cortex-M3ベースの32ビットプロセッサーを採用しました。
これにより、REX-USB61ではマイクロコントローラの処理能力(8ビット)の限界で難しかった高速処理・高速通信が可能となりました。

【2】ホストとの高速転送への対応

パソコンとのUSBによるデータ転送はUSB2.0 Hi-Speed転送への対応によりMax 12MbpsからMax 480Mbpsへと転送スピードが大幅に向上されています。

【3】SPI/I2Cバス転送能力の向上

SPIバスおよびI2Cバスの両方でその転送能力が向上されており、高速デバイスへの対応が可能となっています。

【3-1】SPIバス転送能力:バスクロックの高速化
SPIバスの最大周波数がREX-USB61のMax 12MHzからMax 50MHzへと大幅に向上されています。

【3-2】SPIバス転送能力:Quadモードへの対応
REX-USB61ではSPIバスの転送モードは Singleのみでした。
REX-USB61mk2では新たに、DualモードおよびQuadモードに対応しました。

以下の2つの図ではSingleモードとQuadモードの転送の違いを簡単に説明しています。

■Singleモードのデータ転送
SingleモードではMOSI信号1本でデータ転送を行い、
1バイト(8ビット)のデータ転送に8クロックが必要です。
(※マスターからスレーブへの転送の場合です)
SingleSPI

■Quadモードのデータ転送
QuadモードではMOSI0/MOSI1/MOSI2/MOSI3の4本の信号線を用いてデータ転送を行い、
1バイト(8ビット)のデータ転送がSingleモードの4分の1の2クロックで終わります。
QuadSPI
このように4本の信号線を使用して高速転送を行います。

Dual, Quadモード対応のためにスクリプトコマンドやAPI関数が追加されています。

Dual, Quadモード対応のために追加されたスクリプトコマンド

スクリプトコマンド書式 意味
MULTI=SINGLE or DUAL or QUAD SPIの高速書込みモードの設定を行う。

SINGLE, DUAL, QUADを指定できる。
いつでも変更することが可能で、変更後の通信から適用される。
設定しない場合の初期値は、「SINGLE」。


Dual, Quadモード対応のために追加されたAPI関数
※ここでは、VCでのAPI関ついて説明します。
 VB, VB.NET, C#でのAPI関数ついてはユーザーズマニュアルをご覧ください。

API関数 usb61mk2_spi_transmit_master
機能 SPIマスターとしてデバイスへデータをライトし、リードしたデータを返す
書式
INT usb61mk2_spi_transmit_master( UCHAR UnitID, 
                       PRS_SPI_TRANSFER_INFO pSPITransferInfo);
引数
    UnitID            ユニット番号
    pSPITransferInfo  以下のSPI_TRANSFER情報が格納されている

    typedef struct _RS_PSI_TRANSFER_INFO {
        UCHAR MultiIO;  // Multi I/Oを指定する
                        // 無効を指定した場合は、SingleSPI動作とする
        UCHAR Read;     // 転送したデータに対するRead Dataを返すか
                        // 指定する
        UCHAR SS;       // スレーブセレクト専用PINの制御を行う
                        // 転送開始前にセット(Low Level)
                        // 転送完了後にセット(High Level)を行う
        UCHAR REG;      // データ値の参照元の指定
        UCHAR Transbit; // 1byte未満の転送するビット数を指定する
                        // 0の場合は8bit転送する
        ULONG WriteBytes;      // アクセスするバイト数
        ULONG ReadBytes;       // アクセスするバイト数
        UCHAR *pWriteDataBuf;  // アクセスしたデータ
        UCHAR *pReadDataBuf;   // アクセスしたデータ
   } RS_SPI_TRANSFER_INFO, *PRS_SPI_TRANSFER_INFO;


API関数 usb61mk2_spi_transmit_master_quad_fast
機能 SPIマスターとしてデバイスへデータをライトし、リードしたデータを返す。
(Quad用fastモード)
書式
INT usb61mk2_spi_transmit_master_quad_fast(UCHAR UnitID,
                   PRS_SPI_TRANSFER_INFO pWTENInfo,
                   PRS_SPI_TRANSFER_INFO pSPITransferInfo,
                   BYTE RDSR, BYTE bit, BYTE Value, DWORD dwTime);
引数
    UnitID            ユニット番号
    pWRENInfo         SPI_TRANSFER情報が格納されている
                      (WriteEnable用)
    pSPITransferInfo  SPI_TRANSFER情報が格納されている
    RDSR              ReadStatusRegister
    bit               ReadStatusRegisterのRDY監視bit番号
    Value             ReadStatusRegisterのRDYの値
    dwTime            タイムアウトエラー時間(1ms単位)


【3-3】 I2Cバス転送能力:I2Cバスクロックの高速化

I2Cバスの最大周波数がREX-USB61のMax 1MHzからMax 5MHzへと上がりました。

【3-4】 I2Cバス転送能力:Fast-mode plus, High-speed-mode, Ultra Fast-modeへの対応
従来のFast mode/Standard mode(F/S-mode)に加えて、新たにHigh-speed mode(HS-mode)に対応しました。
また、Ultra Fast-modeにも対応しています。

F/Sモード

通信モード 最大ビットレート(bps) REX-USB61mk2 REX-USB61
Standard-mode 100k
Fast-mode 400k
Fast-mode plus(Fm+) 1M ×


Hsモード

通信モード 最大ビットレート(bps) REX-USB61mk2 REX-USB61
High-speed-mode(Hs-mode) 3.4M ×
Ultra Fast-mode (※) 5M ×

(※) Ultra Fast-modeは、片方向の転送のみとなります。


以下は新たに追加されたHs-modeのデータ転送フォーマットとモード切り替わりの詳細です。

■Hs-modeのデータ転送フォーマット
I2C_HsmodeFmt1
S :スタートコンディション
Ā :ノット・アクノリッジビット
Sr:リピートスタートコンディション
A :アクノリッジビット
Sr:リピートスタートコンディション
P :ストップコンディション

■Hs-mode転送フォーマットでのモード切り替わりの詳細
I2C_HsmodeFmt2

S:スタートコンディション
Ā:ノット・アクノリッジビット
Sr:リピートスタートコンディション
A:アクノリッジビット
Sr (実線):リピートスタートコンディション
P (点線):ストップコンディション

(1) マスターコード(000 1xxx)を出力してノット・アクノリッジビット(Ā)を転送すると、SCLH信号の電流ソース・プルアップをイネーブルにして、Hs-modeに切替ります(ビットレートが切替ります)。
(2) リピートスタートコンディション(Sr)に続くデータ転送が要求されたビットレートで実行されます。
(3) 一連のデータ転送後のストップコンディション(P)でF/S-modeに戻りますが、一連のデータ転送後にリピートスタートコンディション(Sr)を転送することでHs-modeを継続できます。

※ Hs-modeに関する詳しい説明は、NXP Semiconductors社のI2Cバス仕様書をご覧ください。

新たな通信モードをサポートするためにスクリプトコマンドも拡張されています。

High-speed-mode, Ultra Fast Mode対応のために拡張されたスクリプトコマンド

スクリプトコマンド書式 意味
SPEED=speed,[ad] I2Cの通信速度の設定を行う

speed
  LOW | FS     Standard/Fast-mode
  HS           High-speedモード
  UF  | US     Ultra Fast-mode

ad    通信速度の調整値
    設定範囲:-15~15
      未設定時:0

      調整値範囲
      Standard         100kHz : -3.6kHz ~ 2.2kHz
      Fast-mode        400kHz : -40kHz  ~ 50kHz
      Fast-mode plus   1MHz   : -120kHz ~ 430kHz
      High-speed-mode  3.4MHz : -1.5MHz ~ 18MHz
      Ultra Fast-mode  5MHz   : -3MHz   ~ 50MHz
MASTER CODE nn
HS-mode切り替え時のマスターコードを送信する。
  nn リテラル値:マスターコード
     (通常 0x08)


以上のように、マイクロコントローラ、ホストアクセス、デバイスアクセスの全ての性能を向上させることにより全体的な高速化が図られました。
この結果、REX-USB61mk2はREX-USB61と比較してSPIモードでは約6倍の転送速度を実現しています。

引き続き、次頁では、汎用入出力ポート(DIO)のサポートを見ていきます。

 返信する

以下のHTML タグと属性が利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(必須)

(必須)

*