制御系なら俺に聞いてもいいぜ(6)

このエントリーをはてなブックマークに追加
952938:05/02/20 18:58:28
なるほど。PIC=周辺ICって思ってました。でも、1CHto1CHで内容を変換するだけならいいけど、
4CHから1Chへの合流とか、1chから4CHへ行ごとに分けるとかの操作があるので、
1チップにしたいです。H8で3CH+RAM4K積んでる奴は、\700ぐらいでありますよね。
3MHzの8085+8251,8253,8259+ROM+RAMという構成があまりにもアレなので、
作り直せば?ってけしかけてるのですが、ハード屋さんがめんどうくさがってるのですよ。
953デフォルトの名無しさん:05/02/20 19:42:50
コストダウンとして上司に提案できれば、ハード屋の意見など聞かずに済む。
怨まれてもしらんが。
954デフォルトの名無しさん:05/02/20 22:29:54
>>952
ROM,RAM外だししていいなら
FreescaleのQUICCなんてどう?

少なくとも↓の構成よりは安くなるだろうし、
処理性能差は天と地
3MHzの8085+8251,8253,8259+ROM+RAM
955デフォルトの名無しさん:05/02/21 06:49:44
まあ、この件は、H8かM16のフラッシュマイコンで決まりでしょ。
足りない1CHはタイマー割り込みで十分実現出来る。
956938:05/02/21 09:40:14
>足りない1CHはタイマー割り込みで十分実現出来る。
これはAduCで書いたことあります。ボーレートに合わせたタイマ割り込みで、startbit〜8bit,parity,stop
を取り込むんですよね。インターバルタイマなら1mS以下はあまり使いませんが、9600BPSでも100μ
ぐらいの割込になるので、けっこう重たくなります。それよりは1CHだけ外付けのほうが融通が
効くと・・・あ、ソフトでカバーできればハードは少ないほうがいいってことですね。なるほど。
こんど、「外付けの石無しでできるよ♪」って提案してみます。ありがとうございます。
957デフォルトの名無しさん:05/02/21 10:54:29
4ch同時通信って有り得るの?
958デフォルトの名無しさん:05/02/21 12:07:10
>>956
色んな方法があるけど
たとえば、割り込み端子に割り当てておいて
タイマーは割り込みはTの間隔に設定しておく

割り込み許可状態で立下りエッジで割り込みをかけ、割り込みを禁止
エッジから 0.5T になるように タイマー割込用のカウンターをリセット。

後はタイマ割り込みが 0.5T後から1T毎にかかるから1回目はLを確認
8ビット読んで、パリティ・ストップ確認。

タイマー割り込みの負荷はそれほどじゃないよ。
959デフォルトの名無しさん:05/02/21 21:14:41
>>958
送信も考えたらタイマ2CH必要になるな。
多重割込みや割込み禁止区間が発生した場合の
(他の3CHのシリアルからの割込みも含めて)
タイミングのズレは、心配ない程度なのかな?
960デフォルトの名無しさん :05/02/21 22:09:23
>>958
たとえば10MHzのクロックで動くCPUならば、9600bpsのとき、
タイマー割込だけだと50usecに一回=500クロックに一回のタイマー割込になるのが、
割込端子を使うと、100usecに一回=1000クロックに一回の割込で済むということかな
PICなんかで、それしかやらせないんならいいけど、
ソフトでシリアルを扱うのって、ちょっとおっかない
961デフォルトの名無しさん:05/02/22 01:37:07
とりこぼすよ
962デフォルトの名無しさん:05/02/22 02:52:57
SIO使うべきだな
963938:05/02/22 07:56:53
競合するいろんな割込があるとタイマ割り込みで1bitずつ取る/送るのは苦しくなります。
uart回路がレベルの真ん中でサンプリングしてくれるのに、ソフトだとどうしてもふらつくし、
取りこぼしも出るし。その辺は外付けか¥との相談ですね。
964デフォルトの名無しさん:05/02/22 14:51:59
>>961
4倍サンプリング根性でカバー
965958:05/02/22 15:31:40
>>959
うん。この方法で送信もやるなら2CH必要だね。でもタイマー沢山あるから大丈夫でしょ。
ボーレート9600で他の処理しないんならSIO送受信はメインで処理しても十分間に合うと思うよ。
割り込み使う場合でもFIFO処理だけなら問題にならないでしょう。

>>960
そうなんだけど、
あと、受信を一定時間のタイマー割り込みで処理するとなると、2倍は厳しい。
最低3〜4倍じゃないと難しいですね。


>>963 >>958の方法は>>960さんが解説してる通り、だいたい真中でサンプリングする方法ですよ。
966デフォルトの名無しさん:05/02/22 16:04:22
涙ぐましい努力だな。大手客ならメーカーに
「4.CHのをカスタムで作ってくれば採用するけど、どーする?( ´ー`)y-~~」
って言えば終わりなのに。
967デフォルトの名無しさん:05/02/22 16:57:51
小ロットだと、標準品で市場でいつでも手に入るというのが一番大事な要素になるからね。

今は外付けのUSART使うくらいなら 外付けにPICマイコン使った方が安全だったりするからなあ
968デフォルトの名無しさん:05/02/22 17:52:24
>>965
4倍サンプリングとなると、やはり他の処理はやらせられないな
シリアル送受信に専念させるなら、PICかH8の一番安いクラスが妥当か?
969デフォルトの名無しさん:05/02/22 18:11:00
26マイクロ周期だから、無理という程じゃない。
割り込みベクタを毎回書き換える方法でやれば・・・
970デフォルトの名無しさん:05/02/22 20:26:39
>>969
くあしく
971デフォルトの名無しさん:05/02/22 20:45:23
>>970
単純に状態遷移式にベクターを書換えながら遷移するだけだよ
4倍なら(自分なら5倍にして中の3状態で多数決取るけど)
4*(S+8+P+1)=44状態のコードを作って、割り込みベクターを書換えながらシーケンスを実現するわけ
972デフォルトの名無しさん:05/02/22 22:40:48
後でそのコード見たくねえ。趣味ならいいけど保守性悪いよ、それ。UART追加しろ。
無理なら2MCUだな。外部メモリ使わないモードで使えばICだ、
973デフォルトの名無しさん:05/02/22 22:48:31
こういう業界って歴史どころか自分の経験からすら学ばないアナクロな人が多いよな。
アクロバチックは結局高くつく。
いい加減このぐらい学習しろと言いたいよ。

万単位で作る大企業ならともかく、今時ちょっとばっかり部品ケチったって
そんなもんアンタが数日余分に動くことになればすぐに吹っ飛んじゃうよ。

俺なら性能的な余裕、部品のコスト、ソフトの工数(設計の容易さ)を総合して
UARTを2chもつ8051コアのチップあたりを使うね。
974デフォルトの名無しさん:05/02/22 22:56:04
まあ普通はアクロバチックな技は
ハードが出来上がっちまって
にっちもさっちもいかなくなったとき
初めて発動するものだがな
975デフォルトの名無しさん :05/02/22 23:11:16
>>973
石は安い方がいい
アクロバチックでも工数=ソフト開発費はただ
売り切りの商品だとこんなもんでしょ
976デフォルトの名無しさん:05/02/22 23:27:47
それは馬鹿上司の思想の事?あなたの考え?
977デフォルトの名無しさん :05/02/22 23:39:52
>>976
客先の考えだけど何か?
インテリジェントスイッチみたいな8bit以下のマイクロコントローラだと
まだまだアクロバチックな技が幅を利かせてるね
978デフォルトの名無しさん:05/02/22 23:46:25
客にアドバイスしてやれよ・・・
馬鹿には無理か。
979デフォルトの名無しさん:05/02/23 00:00:06
独断と偏見で開発しております
980デフォルトの名無しさん :05/02/23 00:10:04
>>978
たかだか数十円ですむようなものをわざわざ値上がりするような
親切な忠告をしてくる馬鹿な客はいないと思うが
馬鹿にはわからないか
981デフォルトの名無しさん:05/02/23 00:18:17
アクロバチックってお前らおっさんか。
ちゃんとアクロバテックと言え。
982デフォルトの名無しさん:05/02/23 00:42:36
>>981
アクロバティック?

前の会社で「プラスティック」を「プラッチック」って言っている人がいて、
それが、みんなに伝染してた。
こういうのって、深夜残業になると感染率が高くなるんだよね・・・。
983デフォルトの名無しさん:05/02/23 00:55:25
プラトニックを燃やしてはいけません
ぷらとにっくはぷらとにっくのままにしといてください

ん?
984デフォルトの名無しさん:05/02/23 01:00:04
俺はアクロバチックなバグを作れるよ
985デフォルトの名無しさん:05/02/23 01:01:29
プラスチックな絞殺死体
986デフォルトの名無しさん:05/02/23 01:29:07
量産だったらソフト代は限りなくタダになるからやるんだろうな
987デフォルトの名無しさん :05/02/23 01:29:44
おまいら
次スレを忘れてないか?
頼む
988デフォルトの名無しさん:05/02/23 05:03:05
制御系なら俺に聞いてもいいぜ(7)
http://pc5.2ch.net/test/read.cgi/tech/1109102528/
989971:05/02/23 06:50:33
>>972
それは工夫次第さ。
同じようなコードが並ぶだけだからマクロで書けばいい
990971:05/02/23 07:40:11
>>973
アクロバットって・・・9600BPSの調歩同期の実装くらいで曲芸呼ばわりされるとは思わなかったよ。
4メガのZ80の時代じゃないんだからさ、

今時のCPUなら、その倍でも問題ない。

ソフトの作成の容易さなんて言うけどさ、
新しいチップでUSARTのマニュアルを読む間にこれくらいのコード書けちゃうよ。
俺はソフトで実現した方が楽だね。
991デフォルトの名無しさん:05/02/23 08:55:29
>>990
割り込みベクター書き換えながらってのが、
アクロバティックだと言ったんだとおもうけど。

完全にCPUの割り込み処理系依存になるし、
RTOSなんか使ってたら、
割り込みはまずOSのハンドラを通す場合も多い。
保守性は悪いと思うのだが・・・。

そもそも、CPUが今時(高速)なら、
わざわざ、割り込みベクタ書き換えで状態遷移しなくても、
割り込み処理内で分岐していいんでないの?
992971:05/02/23 11:01:50
>>991
話の流れからして、RTOSを使う32ビット規模の話ではないと思うよ。

割り込みベクタを変更するのも、関数ポインタを書き換えるのも、同じ事だし、

CPUが高速でも、分岐命令は案外クロックを消費するもの。
加減算が2サイクルで出来ても、分岐は7とか10以上とかかかるのが普通じゃない?
993デフォルトの名無しさん:05/02/23 11:21:16
>>971
その製品の保守、後の製品への改造時に外注や未熟な担当者が担当した
場合のフォローまで考えて、といってます。

うちにも、反対を押し切ってトリッキーな設計した事例が3件ほどあったけど
んー、ちょっとやりすぎたかな。えへへ。後はよろしく (・∀・)ノシ
とか言って全部押し付けて逃げてったのが2名。

別製品への展開という名の仕様変更に耐え切れず、
「ごめんなさい、もう私の技術力では無理です (;´д⊂ 」
と抜かしたチンカス外注が1名いたな。

994938:05/02/23 14:31:43
8bit系は割込ベクタがROMのことが多いです。
995デフォルトの名無しさん:05/02/23 18:15:59
1000なら32KバイトのROMに全部押し込む
996デフォルトの名無しさん:05/02/23 18:17:17
>>993
保守か・・・・ だいたい1チップマイコン使うような場合は保守は、
そのマイコンの入手が出来なくなる時の事が多いからなあ・・・
小ロット物は保守を考えると近所のパーツ屋でもで手に入るような部品じゃないと・・・・

>>994
ああ、PICなんかは割り込みベクター書換えなんて言われても困るわな。
997デフォルトの名無しさん:05/02/23 19:01:24
トリッキーな設計と思うか普通と思うかは物の見方の問題だと思うけど
998デフォルトの名無しさん:05/02/23 19:03:55
998
999デフォルトの名無しさん:05/02/23 19:05:06
次スレ
制御系なら妹に聞け!(7)
http://pc5.2ch.net/test/read.cgi/tech/1109102528/
1000デフォルトの名無しさん:05/02/23 19:06:05
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。