組み込みとUSBとWindowsなど
大体、昔から便利そうなデバイスでも、
Windows絡みを想定しているような
物だと、後々厄介なことになる、って
想いが強い。
この手の物、話しが始まる前に
極力そこに行かないように誘導している。
USBなんて最たるもんだけど、
まあUSBシリアル変換チップとか、
実質内部(プロトコルとか)を触る
必要のないものは安全だ(当然例外もあり)
------
色々問題のある仕様、Windowsで使う分には
Windowsアップデートなんかで修正されたり
同じ品番でも挙動が違う物があったりしても
デバイスメーカーの供給するドライバでは
ちゃんと個体識別してて、アクセス方法を
(ユーザーには気づかせず)使い分けたりしている。
こんな対応されたんじゃ、ベアメタルで
使おうとしている立場では、まったくやっていられない。
USBデバイス、前と同じ型番の物
使ってるんだけどなあ...と言っても、
内部のチップが変更されていたりして、
結局、エンドユーザーに製造何時々々、
シリアルこれこれのデバイスを
(自力で探して)使ってください、
とか地獄のような指示をすることになる。
そういう、詰んだ組み込み製品、
ちょくちょく見るよね。
こんなの指定して探さなきゃいけないんだったら、
USBなんて使わんわ、超不便。
と、なるんだけど。
まあWindowsとかの汎用OSの
支配下以外で使おうとしている方が、
根本的な運用システム、ビジネスモデルを
理解してない、ってことだと思っている。
使いたきゃ、WindowsとかLinux乗せなよ。
メーカーの出してくるデバイスドライバ
完全に動くようにしてね...
------
コントローラーをラズパイとかにすれば、
ある種の解決はするんだろうけど、
他の問題もいろいろ出てくるので、
手放しで採用するわけにも行かず。
------
昔は組み込みのストレージに
CompactFlashドライブを使ってて、
最初は良かったんだけど。
色々な製品に使われ始めて、
出回るようになって、もう全然ダメに
なってしまい。
たまらずSDに移行してみたものの、
やっぱり同じ道をたどって、
10年は持たなかった、って印象。
結局、組み込み用のストレージは、
NAND Flashに落ち着いた。
今どきのは、十分耐久性もあるしね。
CF、SDとも標準の読み書きコマンド、
当然サポートしているんだけど、
時代が進めば進むほど、アクセス方法が
拡張されていて。
互換のあるモードでは使い物に
ならないほど、性能が落とされていたり。
例えば、初期の頃でも、
シングルセクタ読み込みが
カードの世代が進むごとに
アクセスが倍、3倍のレベルで遅くなっていく。
なんじゃこりゃ?と思うんだけど、
色々試すと、シングルセクタ読み込み
コマンドではなくて、マルチセクタ
読み込みコマンドを使って、最初のセクタを
取り込んだ後、アボートさせることで、
10倍くらい早くアクセスできることに
気づいたり。
さらに世代が進むと、マルチセクタコマンド
ではなくて、さらに別の拡張コマンドに入って...
と続いて、とても追っかけきれない。
当然ながらこういう事情、メーカーごと、
製品ごとに、それぞれ違う
アクセス方法となっていて
Windowsみたいに、すべての市販のデバイスを
網羅できるような環境(net接続含む)が
用意できないと、満足に動かせないことを
理解して終わった...
OS側は、個々のデバイス、どうやって
アクセスしてるかななんて
そもそも関わってないしね。
デバイスメーカーが、自分とこの事情で
OS外で好きなようにやってるわけだし。
組み込み、ベアメタルで使うもんじゃ無いな...
超高級グラボでも、VGA表示出力は出来るけど
其処での描画が早いわけではない、というか
メチャクチャ遅いとか、そういう構図かと。
------
USBなんて、メディアの変遷以上に
もっとヤバい動きをする
(USBの規約は問題ないけど
Windowsの挙動が読めない)ので。
動かすところまでは、そんなに時間が掛からなくとも
あとあとのサポートが泥沼化するので、
可能な限り避けている。
今の処、それで困ったことはない。
通信で使いたいなら、大概Etherで済むし、
USBしか持ってない物は、大概安いものなので、
上位機種提案すれば済むことばかりなので。
USB、規格が進んでも通信距離とかも
伸びない(おそらくあえて伸ばさない)し、
WIndows(OS)側のパワーで運用は押し切ろう、
って印象がある。
まあ、うまいこと使えたら、
ラッキーと思って。
最後のアテ、命綱には
しないってのがいいのかな、と思ったり。
| 固定リンク | 0
コメント
極力USB は避けてきたんですが、この度windows との通信からマイコンへの通信へ引っ越しされてきまして、やむなくやることになりましたね。
USB の良いところは、マイクロB コネクタが小さいことくらいでしょうか。
今の立場上、決定権がなく、チームメンバーはベアメタル開発に理解が乏しく、基板改版(デバイス側も自社製)のリソースがないという、まぁ、開発体制が詰んでる感じですね。
おかげさまでUSB の闇を少し見ました。SD も便利そうですが、開発したくないのも同じ理由ですね。
ただ、ユーザビリティ目線で汎用規格を使いたいと言われるのも事実ですね。
OS とリアルタイム性(レベルに依る)の共存が課題かなと。
Ether はRJ45 コネクタが大きいのが難点です。
投稿: ぶらざー | 2020年9月 4日 (金) 20時47分
USBもCANとかも、規格自体にはそんなに問題ないように思うんですけど、
実際の実装、事情がそれを許さん、って感じに思っています。
残念に思う部分も多いのですが、
人のやることですから、こうなってしまうのかと。
やらせている方に、無理筋であることを了解して
もらえたりすれば、また別のやり方もあったりしますが、
まあ大体都合のよいようにしか捉えてもらえませんね。
RJ45が相対的に大きいのは、そう思いますね。
このくらいのが、人に扱わせるにはちょうどいいのですが。
USBマイクロ、ちょっと機械的に弱くて、
フィールドで使うと痛みが早い印象です。
投稿: w谷 | 2020年9月 6日 (日) 06時18分