物理層 &MAC 層のマルチレイヤシミュレーションとコード生成 MathWorks Japan アプリケーションエンジニアリング部シニアアプリケーションエンジニア田中明美 2014 The MathWorks, Inc. 1
Go-Back-N ( クロスレイヤモデル ) BER/PER 特性の確認 Bit レベルで雑音を加えているため PER だけでなく BER も評価可能 2
Go-Back-N 振る舞い 送信側 受信側 ウィンドウサイズ 往復遅延時間 Frame1 Frame2 Frame3 Frame4 Frame5 Frame6 ACK1 ACK2 ACK3 ACK4 未到達 timeout Frame5 Frame6 3
Go-Back-N ( クロスレイヤモデル ) フレーム生成 OUT Frame Generator IN OUT Set Attribute MAC モデル IN OUT Sequence Number 1 OUT 各 entity に付加する attribute 情報は シーケンシャル番号のみ HEADER Generate Headers IN1 PAYLOAD Generate Payloads IN2 OUT IN3 Packet Generator PKT_IN1 parity bit Set Parity Bit 1 OUT TRAILER Generate Trailers PHY/MAC クロスレイヤモデル ヘッダ ペイロード トレイラ等 実際のフレーム構成をふまえて attribute 情報を付加 4
Go-Back-N ( クロスレイヤモデル ) 物理層付加 以下の attribute を取りだす seqnum( シーケンシャル番号 ) Payload( ペイロード ) Parity Bit(CRC パリティ ) 5
Go-Back-N ( クロスレイヤモデル ) 物理層付加 取り出した attribute Payload, Parity Bit について 以下の PHY レイヤ処理を行う BCH 符号 / 復号 BPSK 変復調 白色雑音付加 6
アジェンダ Simulink シミュレーション環境 Stateflow とは? Stateflow からのコード生成 SimEvents とは? アプリケーション例 (CSMA/CD) まとめ 7
アジェンダ Simulink シミュレーション環境 Stateflow とは? Stateflow からのコード生成 SimEvents とは? アプリケーション例 (CSMA/CD) まとめ 8
Simulink 環境 Simulink Time-Driven Dynamics (Simulink DSP System Toolbox Communications System Toolbox Phased Array System Toolbox) 基本環境変復調エラー訂正チャネルビームフォーミング到来方向推定スペアナ表示 Decision Logic (Stateflow) シーケンス処理例外処理条件判定 Frequency-Driven (SimRF) ミキサアンプ LNA Discrete Event (SimEvents) パケットメモリ処理 Code Generation (Simulink Coder Embedded Coder HDL Coder) C コード HDL コード LTE System Toolbox マルチドメイン / マルチレイヤのシミュレーション C コード /HDL コード生成 9
アジェンダ Simulink シミュレーション環境 Stateflow とは? Stateflow からのコード生成 SimEvents とは? アプリケーション例 (CSMA/CD) まとめ 10
Stateflowとは? 状態遷移図 状態遷移表 フローチャート機能を提供 Simulinkとシームレスに連携 (Simulinkが必要) 階層化 並列化 関数化 時相論理に対応 コード生成 モデル検証等各種オプション機能に対応 上位階層 下位階層 Stateflow 11
主な機能 フローチャート状態遷移図状態遷移表 処理の流れでロジックを表現 状態の移り変わりでロジックを表現 状態遷移図の表形式 12
Stateflow ブロック エントリの方法 状態遷移図 状態遷移表 真理値表 ドラッグ & ドロップでモデルに配置 13
Stateflow エディタオブジェクトパレット 上から順に ズーム 表示範囲のフィッティング 状態 分岐点 ( コネクティブジャンクション ) 遷移線 ( トランジション ) ボックス Simulink 関数 グラフィカル関数 MATLAB 関数 真理値表 ヒストリージャンクション 14
状態のハイライト MATLAB 関数のコール 現在の状態がハイライトされどの状態に繊維しているか確認可能 MATLAB 関数をチャートからコール 15
Stateflow の活用例フレーム同期信号検出 参考文献 CQ 出版社 DesignWave Books HDL サンプル記述集まねして身につけるディジタル回路設計 COUNT=FRAME and CODE_HIT= 0 HUNT SYNC_FLG<= 0 CODE_HIT= 1 LOST SYNC_FLG<= 1 COUNT=FRAME and CODE_HIT= 1 FOUND COUNT=FRAME SYNC_FLG<= 0 and CODE_HIT= 0 COUNT=FRAME and CODE_HIT= 0 SYNC SYNC_FLG<= 1 COUNT=FRAME and CODE_HIT= 1 DATAI SYNC_FLG FP DATAO 同じ機能の HDL コード完成まで 2 時間 ( モデリング 0.5h 検証 1.5h) 16
アジェンダ Simulink シミュレーション環境 Stateflow とは? Stateflow からのコード生成 SimEvents とは? アプリケーション例 (CSMA/CD) まとめ 17
Simulink/Stateflow からの C コード生成 18
Simulink/Stateflow からの HDL コード生成 19
アジェンダ Simulink シミュレーション環境 Stateflow とは? Stateflow からのコード生成 SimEvents とは? アプリケーション例 (CSMA/CD) まとめ 20
SimEvents とは? エンティティとは? サーバーとは? パケット処理 21
ケンドール記号 D / D / 1 D : 一定分布 到着間隔の分布 サービス時間の分布 サーバの数 M : ランダム分布 G : 一般分布 SimEvents 標準デモ 22 22
ケンドールの記号 M/M/1 [ 到着分布 / サービス分布 / サービス窓口数 エンティティの到着 10 分 9 分 15 分 サービス時間 待ち状態 Server A 1 2 3 4 1 2 3 4 15 分 8 分 10 分 サービス時間ランダム時間 2 3 5 分 4 分 エンティティの到着する間隔 : ランダム サービス時間 : ランダム サーバの数 : 1 待ち状態が発生 イベント ランダム時間 23
Precision Time Protocol とは? 出典 :http://ja.wikipedia.org/wiki/time_protocol#ptp.28precision_time_protocol.29 24
Precision Time Protocol とは? プロトコルメッセージ Master Clock Sync Master Clock Delay Response Slave Clock Delay Request 少なくても 1 台の Master と 1 台の Slave が必要 タイムスタンプの位置 One-step clock Two-step clock T1,Sync Sync follow up T4 Delay Response Master Clock Slave Clock T2 T3 Delay Request 4 種類のタイムスタンプ T1:Master が同期メッセージを送信した時間 T2:Slave が同期メッセージを受信した時間 T3:Slave から Delay Request メッセージを送信した時間 T4:Master が Delay Response メッセージを受信した時間 25
Precision Time Protocol System のモデリング Master Channel Slave 26
Master Slave へ T1 を含むパケット送信 Slave からのパケット受信 Slave へ返信 27
Channel Master から Slave へ Slave から Master へ Master から Slave へ 28
Slave Master へパケット送信 29
シミュレーション結果 遅延時間 (Master to Slave) 遅延時間 (Slave to Master) 片方向遅延 黄 : 瞬間遅延 青 : 平均遅延 30
アジェンダ Simulink シミュレーション環境 Stateflow とは? Stateflow からのコード生成 SimEvents とは? アプリケーション例 (CSMA/CD) まとめ 31
CSMA/CD の概要 信号が流れていないか確認 信号がなければ伝送開始 信号を検出送信を待つ 信号がなければ伝送開始 同時に送信したため衝突 双方ランダム時間待って再送 バックオフは 15 回繰り返し 16 回目にフレーム破棄 32
CSMA/CD 端末 Entity 生成 MAC ケーブル長による遅延 3 台の端末による CSMA/CD アルゴリズムのモデル (10Mbps) 端末 (Entity 生成 MAC 接続点 ) とケーブルにより構成 33 33
CSMA/CD CSMA/CD Backoff (Stateflow) 34 34
CSMA/CD 1 2 3 1 親サブシステムの Infinite Server(Chanel State) 内にある entity の数を入力 (I_states) 2I_states の値が 0 1 の時 Server 内に一つだけパケットがあると判断 st 端子に 0 を出力 (Collision なし ) 3I_states の値が 1 2 の時 st 端子に 1 を出力 (Collision あり ) 35 35
CSMA/CD collision 検出 Backkoff 時間を計算 36 36
CSMA/CD パラメータ設定 パケットは可変長 (64~1500byte) 10Mb/s 37
CSMA/CD マスクパラメータの受け渡し パケット長情報を attribute として 伝送 パケット生成レート情報を entity 生成時間に設定 38 38
CSMA/CD 送出されたパケット数 Application(B) のパケットレート :100 検出されたコリジョン数 スループット チャネル使用率 Application(B) のパケットレート :200 スループット チャネル使用率 39
まとめ 物理層だけでなくMAC 層のモデリング 物理層 &MAC 層のマルチレイヤモデリング CSMA/CA,CSMA/CDなどを意識したサンプルモデル 独自のプロトコルの検討 仕様から直感的に理解できるモデリング コード生成 -> 実装まで幅広いフェーズをカバー 通信系システム設計 シミュレーションに便利なオプションとサービスをご利用いただけます ツールのトレーニング コンサルティングサービス 40
デモブースのご案内 アナログ デジタル設計からハードウェア実装 展示ブースデモダイジェスト 2014 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 41
ワークショップ ( 体験型 ) 2014 年 12 月 2 日 実際に MATLAB を使用して簡単なモデル作成と BER 測定までのワークフローをご体験頂けます 詳細はこちらから https://go2.mathworks.com/communications-workshop-sem-jp-58863?s_iid=evsem_sem_event_bod 42
ご聴講ありがとうございました! 2014 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 43