早速、CAN通信の処理手順を変えて実験してみた。。
 
 
バス上を流れるデータ量も減ったし応答もほぼリアルタイム。。

言うことなしなんだ。。ただ、一点を除いて。。

これが、モニタープログラム側の問題なら実機でテスト出来るんだけど。。

休みの間の変更だったから今日から計測して詳しく調べないと。。


プログラムの見直しを行って何とか動くようになったんだけど、処理が遅い為か、ある処理の部分で必ずエラーが発生してしまう。。

CAN通信は、適正なエラー処理を組み込んでおかないとエラーが起こった通信を延々と繰り返す??みたいなんだ。。

一定時間または、一定回数送信に失敗したら通信を止めたりリトライさせる処理を組み込んでおく必要がありそう??

それと、CAN通信で欲しいデータが時間内に受け取れていない可能性も有りそうなのかな?!

処理手順を変えないと駄目かもだね?!


CAN通信を実機に組み込んで悪戦苦闘していたが、ようやく動き始めた。。

最初に手がけたMicroChip社のPIC内臓CANモジュールの動きとrenesas社のSH-2内臓CANモジュールの動きがかなり違うことでプログラミングミスしていたみたいなんだ。。

言葉の表現で紛らわしい部分があって、PICと同じって思っちゃ駄目だって思い知った。。
(同じ言葉の言い回しで別のことを説明していたり。。)

CANモジュールの機能比較をするとPICのCANの方がかなり優秀というかCPUに負荷が掛からない設計って気がするね!!

いずれにしてもこれで一歩前進。。

まだ、エラー処理など作り込みしないと製品に組み込めるレベルには到達しないだろうけど。。

機械を連続運転してテストするにはこれで十分かな?!

12MHzの水晶発振子が入手できたんで早速、実装してCAN通信のテストを始めたんだ。。

すんなり行くかと思いきや。。

ロジックアナライザでは、届いているはずの応答データがプログラムでは受け取れていない。。

これってPICでもあった、マスクやらフィルターの設定の不備が原因かな?!

設定方法がPICとは、まったく違うんだな?!

やっぱり奥が深い。。

CAN通信回路を組み込んだSH-2とPICを実機に実装して連続運転テストに入れそうなところまできた。。
 
 
 
最終試験は、12MHzの水晶振動子が入荷して試験機で動作試験に問題なければ来週早々には行えそうなところまで。。

週明けが楽しみ。。