【FileSystem】車載外部ストレージ その23【SD初期化⑥】

【FileSystem】車載外部ストレージ その23【SD初期化⑥】 車載外部ストレージ

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/

はじめに

SDカードのSDモード通信の初期化シーケンスについて。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

SDカードのSDモード通信の初期化シーケンス

フクさん
フクさん

前回まではSPIモードの初期化シーケンスだったけど、
今回からはSDモードの方になる。

太郎くん
太郎くん

実は大体一緒とかってあったりする?

フクさん
フクさん

まぁ似ていると言えば似ているかなぁ。
ただ、SPIモードとSDモードではコマンド名が一緒でもレスポンスが異なるモノも多いし、
SPIモードには無かった、Voltage Switchとか、Relative Addressって話が入ってきて、ちょっと複雑になるかもね。

太郎くん
太郎くん

まぁ一つずつ把握していくかー。

SDカードのSDモード通信の初期化シーケンスのフロー図

太郎くん
太郎くん

今回もフロー図とかあるの?

フクさん
フクさん

うん。
一応用意した。

SDカードのSDモード通信の初期化シーケンスのフロー図
太郎くん
太郎くん

最初の方は確かになんとなくは似てるけど、
SDモードの方がいろいろやってる感じだね。

太郎くん
太郎くん

あと、点線で区切ってる、
・Card identification mode
・data transfer mode
って何?

フクさん
フクさん

SDカード内のモードだね。
SDカードの初期化と言う意味ではCard identification modeを抜けて、data transfer modeに入ったところで終わりなんだけど、
今回に於いての初期化処理の定義は「読み書きできる状態まで」としてるので、
data transfer modeに入ったあとの処理も加えている。

太郎くん
太郎くん

SPIモードの方には無かった概念ってことだね。

フクさん
フクさん

そうそう。

太郎くん
太郎くん

まぁこれも一個ずつ説明してもらうわけなんだけど、
大雑把な流れとしてはどんな感じになるのかな?

フクさん
フクさん

そうだねー。
SPIモードの流れとも似ている部分があって重複する面もあるが、
とりあえず、以下の流れで説明しようと思ってる。

  • CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定。
  • ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定。
  • CMD11(VOLTAGE_SWITCH)によるVoltage Switch。
  • CMD2(ALL_SEND_CID)によるCIDの取得。
  • CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得。
  • CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移。
太郎くん
太郎くん

中々ボリュームがありそーだ。

フクさん
フクさん

まぁSPIモードでは出来なかったことも出来るようになるし、
どうしてもハンドシェイクは複雑になるね。

まとめ

フクさん
フクさん

まとめだよ。

  • SDカードのSDモード通信の初期化シーケンスを大雑把に説明。
  • 次回から以下の流れで説明予定。
    • CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定。
    • ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定。
    • CMD11(VOLTAGE_SWITCH)によるVoltage Switch。
    • CMD2(ALL_SEND_CID)によるCIDの取得。
    • CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得。
    • CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました