バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSDモード通信の(Multiple) Block Read Operationについて。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
SDモード通信の(Multiple) Block Read Operation
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
今回は、SDモードの(Multiple) Block Read Operation。
- No data Operation
- (Multiple) Block Read Operation ← これ
- (Multiple) Block Write Operation
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
今回は前回使用しなかったDATのラインを使うことになるのかな?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
その通り。
絵にするとこうだ。
![SDモードの(Multiple) Block Read Operation](https://www.simulationroom999.com/blog/wp-content/uploads/2021/01/02_SDモードのMultiple-Block-Read-Operation-1024x230.png)
SPIモードとの違い
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
図解を見ると、
responseが終わる前にdata blockが送出されてるね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
うん。
まぁ実際はresponseは一瞬なんで、
重ならないことになるかもしれないが、仕様上は重ねてOK。
というわけで実際に起きる起きないは別として、
設計、実装上はこれを想定しておく必要がある。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
確かに、いろんなSDカードがあるから、
どっかのSDカードが重ならないからと言って、
他のSDカードもそうとは限らないもんね。
そこら辺が仕様で明記されてるなら仕様に合わせるべきだよね。
停止処理
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
停止処理は、CMD12(STOP_TRANSMISSION)なんだね。
これはSPIモードの時と一緒だね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そうそう。
読み書き可能な状態まで来てしまえば、
commandレベルの仕様はSPIモード、SDモードで差はない。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
SPIモードの時の話はここでやったね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
ということは、SDモードも基本的には自動終了で、
CMD12(STOP_TRANSMISSION)は強制停止の時だけってことか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そうなるねー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
先にSPIモードでやってたから結構イメージ湧きやすかったな。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- SDモード通信の(Multiple) Block Read Operationの説明。
- CMDラインとDATラインがあるため、responseが終わる前にdata blockが送出されることを想定する必要あり。
- CMD12(STOP_TRANSMISSION)で強制停止できる。
- SPIモードと使い方は一緒。
バックナンバーはこちら。
コメント