这是很多问题。我从未在Java中执行过任何与CAN相关的编程,但让我们看看哪些问题我可能会回答:
1) 除了将PC连接到CAN总线网络外,CAN-PC适配器还能做什么?
主要取决于您的适配器中嵌入的CAN控制器。但基本上,它只处理低级别的事情,如总线仲裁、错误处理、重传和消息缓冲。
2) 是否可以在没有CAN-PC适配器的情况下将笔记本电脑连接到CAN总线网络?
不行。
3) 如果需要CAN-PC适配器,应该使用什么样的适配器? PCMCIA,并口,串口,usb等?
在笔记本电脑上?我会选择USB接口。我有Kvaser接口的良好经验。
4) 如何开始编写用于监听/编写CANopen消息的java程序?
取决于适配器的API。该API很可能基于C,因此我至少会从一些简单的C测试程序开始。 CAN接口供应商可能有一些很好的示例。
5) 应该使用哪些库?
可能是与您的CAN接口一起提供的库,至少对于基本的CAN部分。对于CANopen部分,有一些商业CANopen堆栈可用,甚至可能有一些免费的。我怀疑没有用Java编写的。
6) 我需要创建自己的驱动程序吗?
通常不需要。取决于您的操作系统和CAN接口型号。选择带有适合您操作系统的驱动程序的CAN接口。
7) 我的程序应该处理心跳监测/错误检测/等吗?或这些由CAN-PC适配器处理?
CANopen堆栈应该在CANopen层面上处理这个问题。低层的CAN总线错误处理由您的接口负责。
8) 如何从CAN总线节点检索特定信息?
我不知道你这里指的是什么。如果你想要哪种类型的信息,可能需要使用PDOs或SDOs。
9) EDS文件和对象字典是如何创建的?每个节点都需要吗?
通常情况下,您不需要创建EDS文件,但出于文档目的可能会有用。对象字典是通过软件实现的。如果要使某些内容符合标准,对象字典的某些部分是强制性的。
10) 如何模拟CAN网络以在没有购买CAN硬件的情况下测试我的java程序?
我不建议这样做。一个有意义的总线模拟器可能比仅仅购买一个CAN适配器更昂贵。请注意,许多CAN适配器包含双接口,因此您可以仅使用适配器和几个终端电阻器在真实的CAN总线上进行通信测试。