それはたくさんの質問です。Java で CAN 関連のプログラミングを行ったことはありませんが、どのような質問に答えることができるか見てみましょう。
1) PC を CANbus ネットワークに接続する以外に、CAN-PC アダプターは何をしますか?
主に、アダプターに組み込まれている CAN コントローラーによって異なります。ただし、基本的には、バスの調停、エラー処理、再送信、メッセージのバッファリングなどの低レベルのものを処理するだけです。
2) CAN-PC アダプタなしでラップトップを CANbus ネットワークに接続することは可能ですか?
いいえ。
3) CAN-PC アダプターが必要な場合、どのようなアダプターを使用すればよいですか? PCMCIA、パラレル、シリアル、USB など?
ラップトップで?私ならUSBインターフェースを選びます。私は、Kvaser のインターフェースについて十分な経験を持っています。
4) CANopen メッセージをリッスン/ライトするための Java プログラムの作成を開始するにはどうすればよいですか?
アダプターの API によって異なります。API は C ベースになる可能性が高いので、少なくともいくつかの単純な C テスト プログラムから始めます。CAN インターフェイスのサプライヤには、おそらくいくつかの良い例があります。
5) どのライブラリを使用すればよいですか?
おそらく、少なくとも基本的なCAN部分については、CANインターフェースに付属しているものです。CANopen の部分については、いくつかの商用 CANopen スタックが利用可能であり、無料のものもあります。Javaで書かれたものはないと思います。簡単な通信のみを行う場合は、CANopen スタックの必要な部分を自分で実装することもできます。
6) 独自のドライバーを作成する必要がありますか?
一般的にいいえ。オペレーティング システムと CAN インターフェース モデルによって異なります。お使いのオペレーティング システム用のドライバーを備えた CAN インターフェイスを選択します。
7) 私のプログラムはハートビート監視/エラー検出などを処理する必要がありますか? それとも、これらは CAN-PC アダプターによって処理されますか?
CANopen スタックは、CANopen レベルでそれを処理する必要があります。低レベルの CAN バス エラー処理は、インターフェイスによって処理されます。
8) CANbus ノードから特定の情報を取得するにはどうすればよいですか?
ここで何を意味するのかわかりません。必要な情報の種類に応じて、PDO または SDO。
9) EDS ファイルとオブジェクト ディクショナリはどのように作成されますか? すべてのノードでそれらが必要ですか?
通常、EDS ファイルを作成する必要はありませんが、文書化の目的で役立つ場合があります。オブジェクト辞書はソフトウェアで実装されます。標準に準拠したものを作成する場合、OD の一部は必須です。
10) CAN ハードウェアを購入せずに、CAN ネットワークをシミュレートして Java プログラムをテストするにはどうすればよいですか?
私はしません...意味のあるバスシミュレーターは、おそらくCANアダプターを購入するよりも開発に費用がかかります。多くの CAN アダプタにはデュアル インターフェイスが含まれているため、アダプタと 2 つの終端抵抗だけで、実際の CAN バス上で通信テストを行うことができます。