使用USB将PIC微控制器与Java在PC上进行接口编程

4

你好! 我希望能够将PIC18F4550与Java程序进行接口,并使其跨平台。 目前我知道的Java唯一的方法是javacomm。但我希望它能够使用USB,因为现在并不是每台笔记本电脑都有RS232端口。 你能建议哪些PIC与Java接口的方式可以使其真正跨平台,并避免为每个新操作系统编写驱动程序吗?


如果你知道的话,请告诉我,因为我以前也遇到过类似的问题。我已经使用了MPLab ICD2(我想是这个)。 - Buhake Sindi
4个回答

2
首先免责声明:我没有使用PIC和Java,只用过AVR32B和PC上的VB。
如果在微控制器USB接口上实现USB CDC类设备,并将其连接到PC USB主机,则它将枚举并显示为新的COM端口。然后应用程序将其视为普通串行端口。我使用了标准的Windows驱动程序USBSER.SYS。
我认为Microchip会提供示例源代码,以使其USB外设能够在不同的设备类中运行。(我知道Atmel为AVR32系列提供了示例代码)

+1 好答案 - 你应该尽可能地在软件堆栈中高层次地进行接口设计,而不是试图明确地在 USB 层面上工作。 - Paul R

2

你为什么接受上面的答案?我同意@Ian的评论。

PIC18F4550及其类似芯片集成了USB功能。将虚拟串口加入PIC固件非常简单,而且有很多示例可用。另一个选择是HID设备,同样有很多PIC固件示例。

不要在布丁中添加更多硬件。


1

Arduino的方法应该是可适应您的需求的:使用硬件UART的微控制器,配合FTDI USB-to-TTL芯片,然后使用rxtx在“100+”平台上访问结果串行端口。

这种方法似乎很有效:在Linux、Windows和OS X下,与Arduino通信和编程非常容易。


1
这将会浪费一些金钱/板子空间,因为此处使用的PIC已经有自己内置的USB 2.0控制器了。 - uɐɪ
非常有趣的项目!从未听说过! - Dmytro Leonenko
@Ian:同意。虽然我觉得我应该指出,我将Arduino的方法描述为这种设置的一个例子,而不是@melco-man要遵循的公式。结合你的答案和我的答案会得出最佳答案。 - freespace
我同意 @Ian 和 @freespace 的看法,这种方法在使用那个处理器的时候是不可行的 - kenny

1

您需要使用JNI直接调用WIN32API。我使用JNA(JNI包装器)库使实现变得简单,并在Visual C++ 2010中创建了一个DLL以更轻松地导出和直接调用方法。您还可以使用相同的接口创建其他库(DLL / SO),以便与其他系统(如OSX和Linux)进行交互。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接