忍者ブログ

ロボットとか

ロボットとかのブログ

entry_top_w.png
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

entry_bottom_w.png
entry_top_w.png
マイコンとPC間のシリアル通信にバイトチェックをつけてもらいたいとの依頼を受けたもののバイトチェックとは何ぞや? な状態。
早速Google先生に質問してみるとなにやら歯医者関係の話と一緒にチェックサムなるものが出てきた。

チェックサムとは、誤り検出符号の一種で他の方法と比べると信頼性は低いもののそれでも99.5%は信頼できるらしい。
それでいてアルゴリズムが簡単であることから、簡易的な検出に多用されるとのこと。
また、あまりに一般的なためか、他の誤り検出符合もチェックサムと呼ばれることも多いらしい。
ゲーム機を何でもファミコンというようなものか…。


以下ほとんどWikipediaからの引用だけど、

もっとも単純なアルゴリズムは、ワード列(ワードデータの集まり)の個々のワードの合計の下位1ワードをそのまま符号値とするもの。
1ワードが何ビットかは実装によって異なるらしい。

例えば、8ビットのワード列「00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F」の総和は「78」であるので、そのチェックサムは「78」。


1. IPヘッダのチェックサムフィールドにゼロをセット
2. IPヘッダを16ビット単位で加算
3. 総計の下位16ビットの補数をIPヘッダのチェックサムフィールドへセット
4. 送信
5. 受信したらIPヘッダを16ビット単位で加算
6. 総計がゼロなら正常(チェックサムフィールドにはチェックサムフィールドがゼロの場合のチェックサムの補数がセットされているので、総計=チェックサムフィールド以外のチェックサム+チェックサムフィールド以外のチェックサムの補数=ゼロになれば正しい



つまり、送る側は、送るデータ列の合計を出しておいて、データ列と一緒にチェックサム(合計に-1をかけたもの)も送る。
データ列を送られてきた側は、データ列をチェックサムに足していってチェックサムが最終的に0になればエラーなくデータ列が送られてきたとわかる。
まあ、上記のようなことらしい。

これをマイコンとPC間の通信に使うとなると、

マイコン→PCでは、マイコン側で送るデータの総計を計算してチェックサムとしてPC側に送信。
PC側では、送られてきたデータの総計とチェックサムが一致ないし、計算して0になればデータはエラーなく送られてきたのでOK。
PC→マイコンでは、PC側から送るデータを2回送信。
マイコン側では送られてきたデータを比較して一致すればエラーなく送られてきたということでOK。


ということになるだろう。
ここで問題になるのが、「どうやって送られてきたデータとチェックサムの比較をするか?」のかということと「どうやって1回の入力で2回同じデータを送信するか?」ということ。
後者は2回同じデータを人間が送れば何とかなるけど面倒だし、前者は少なくともSimpleTermとかだけじゃできない。
どうにかしてPC側でポートからのデータを受けとって処理させる必要がある。
そこでまたGoogle先生に聞きに行ったら、電子工作室(http://www.picfun.com/serial00.html)というサイトを見つけた。
ここによるとVBでMSCommかC++でWindowsAPIを使う方法があるらしい。
今はどっちもからっきしなので今日はここまで。
とりあえず、VBを使うほうを何とかやってみるとしよう。



ちなみにチェックサムを調べていて初めてワードを真剣に考えたので、ワードについても覚書程度に書いとく。

データの最小単位はビット、データ容量の最小単位はバイト(8ビット)だけども、ワードは必ずしも特定の容量をあらわしているわけではなく、データ自体ともいえる。

例を挙げると、マイコンのIOポートの設定で、1ポートごとに設定するときは「~.bit.~ = 0 or 1」と指定した。
ここでは、1ポートごとに0か1で指定するからビットアクセスなんだと思う。
一方で、「~.word.~ = 0x11」と指定すると複数のポートをまとめて指定できた。
ここではビットアクセスをまとめてアクセスするからワードなのだろう。

ただし、実際の実装ではワードは12ビットや16ビット、32ビット単位であることが多い。

拍手[0回]

PR
entry_bottom_w.png
entry_top_w.png
発表する上で動画は効果的な手段だけども動画の保存形式に悩んだことはないでしょうか?
今回紹介するのはそんな悩みを解決できるかもしれないソフトの紹介です。

Any Video Convertor
GOM Encoder

これらのソフトは動画の形式を変換するソフトで、変換をすればうまく再生できるようになるかもしれません。
大抵は、WAMやAVIあたりに変換すれば多くの環境下で再生できるようになるはずです。

拍手[0回]

entry_bottom_w.png
entry_top_w.png
for文は普通、for(初期値; ループの条件; 変数の増減)ってかんじに書くけど、この「ループの条件」の豆知識をひとつ。

例えばx=0で一回のループごとに1ずつ増やしていって、100でループを抜けるようなfor文を書くとしよう。

for(x=0; x==100; x++){
実行内容
}


とまあこう書けば、xが100になった時でループを抜けるプログラムが書けたわけだわけだ。
けれども、この書き方だと絶対確実とはいえない。
どうしてかというと、まれにxが100で止まらずに101とかになることがあるからだ。
ループを抜ける条件は「xが100の時」だから、101では抜けられない。
そこで、確実に動作するプログラムにするため次のように書き換える。

for(x=0; x<=100; x++){
実行内容
}


こう書くとxが100を超えたらループを抜けるから、もしもxが101になった時でもちゃんとループを抜けてくれる。
より確実に動作するプログラムを書くための一工夫。

拍手[0回]

entry_bottom_w.png
entry_top_w.png
先日ネットブックを買ったわけだけど、今ネットブックにはセキュリティ対策としてWindowsFireWallとMicrosoft Security Essentialsが入ってる。

FireWallのほうは前からあるので、今回はSecurity Essentialsを取り上げようと思う。
Security Essentialsはマイクロソフトが今年の晩夏くらいから提供し始めた、無料のウイルス・スパイウェア・マルウェア対策ソフトだ。
晩秋くらいからやっと日本語版の提供も始まった。

使ってみた感想は第一に非常に軽い。
メモリ使用量は増えたかどうかわからないくらいだし、ネットで調べてみるとメモリが256MBどころか128MBのPCでもそれなりに動いているらしい。
加えてクイックスキャン限定だけど、ものの数分で終わる。
定期的にフルスキャンをかけたほうがいいだろうけど、普段のスケジュールスキャン程度なら十分だろうし、早くて軽いのはいいことだ。

ただ、欠点もいくつかあって、ひとつは起動が遅いこと。
普通、ウイルス対策ソフトというのは、デスクトップが出た時点ですでに起動済みなものだけど、デスクトップが出てから数秒後に起動する。
まあ、アンチウイルスだからFireWallと違って、すぐに起動する必要はないのかもしれないけど、ちょっと気になる点の一つ。
もうひとつは、自動アップデートが遅いこと。
普通のセキュリティ対策ソフトは、ネットにつながっていればすぐに最新の定義を確認しに行くものだけど、これは違う。
数十分たってもまだ確認しに行かない。
さすがに数時間たては更新するのだけど、どういうわけか最新版にはしない。
あとで手動アップデートをかけるとその数時間後のアップデートが適用されていたりする。
ここら辺よくわからないから、後のアップデートでの改善待ちかな。

もし軽量で安価なウィルス対策を求めているのなら悪くない選択肢だと思う。

拍手[0回]

entry_bottom_w.png
entry_top_w.png
もうすぐプロジェクトの発表が近付いているのもあるし、発表の役に立ちそうなソフトの紹介でも。
もう知っているのもあるかもしれないけど、役に立てればと。


縮小専用
その名の通り、画像の縮小に特化したソフト。
使い方は非常に簡単で、縮小したい画像をドロップして任意の大きさを指定するだけ。
これを使えば、スライド添付画像の大きさをあらかじめ変えておいたり、メールなどでの画像のやり取りがやりやすくなると思います。

GIMP
知っている人も多いのではと思うそれなりに有名で高機能な画像編集ソフト。
慣れが必要なもののかのPhotoShopバリの編集能力。
これを使って映える画像にしよう!
インストール不要なPortable版もあり。

CamStudio
PC画面を動画として撮影するソフト。
任意の範囲を撮影でき、これを使えば素早く流れていくシリアル通信のログも後から解析可能。
また、そういったシリアル通信の様子も発表の内容によってはうまく使えると思う。
あと、チュートリアルの作成に使うのもいいかもね。

画面キャプチャ
これは具体的なソフトじゃなくてソフト集。
スクリーンショットはPrtScとペイントでもできるけど、いちいちペイントを立ち上げるのが面倒というあなたにお勧め。
中にはキー一押しで画像をjpgなどで自動保存してくれるソフトも。
いいソフトを見つけられれば、発表資料作成もはかどる?

拍手[0回]

entry_bottom_w.png
<< 前のページ 次のページ >>
[3]  [4]  [5]  [6]  [7]  [8]  [9
plugin_top_w.png
プロフィール
名前:H238/ながつき
このブログについて:
ロボットについての勉強などを中心に勝手に書いていきます.あくまで本人のメモなので期待しないように.
ちなみにブログデザインは趣味.
plugin_bottom_w.png
plugin_top_w.png
ブログ内検索
タグ一覧(追加中)
[活動101] [活動102] [活動103]
[SH2] [マイコン]
[電子回路]
[プログラム] [VS] [OpenCV]
[知能ロボ]
[プレゼン] [CAD]
plugin_bottom_w.png
plugin_top_w.png
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
plugin_bottom_w.png
plugin_top_w.png
最新CM
[11/13 SLT-A65]
[12/01 siawase]
[05/01 H238]
[05/01 H238]
[05/01 ねこう]
plugin_bottom_w.png
plugin_top_w.png
バーコード
plugin_bottom_w.png
Copyright ロボットとか by ひなたまる All Rights Reserved.
Template by テンプレート@忍者ブログ
忍者ブログ [PR]