Java和串行通信

时间:2013-09-04 15:15:27

标签: java serial-port raspberry-pi i2c

这个问题涉及一个项目,我需要在嵌入式操作系统和小型微控制器之间进行串行通信。

Java是否适合I2C串行通信的目的 - 我特别考虑速度。 我似乎记得,由于Java和JVM,其他编程语言,例如CC++Python是更好,更快的选择。

有没有人有这方面的经验?

感谢。

编辑:更具体地说,嵌入式操作系统是Raspbian,在Raspberry Pi上运行。

3 个答案:

答案 0 :(得分:5)

查看一个Raspberry Pi - 它是一个完整的Linux系统,基本上是一个嵌入式设备。它有一堆GPIO引脚,其中一些可用于UART和I2C。

当尝试与RPi的GPIO引脚进行任何通信时,Pi4J库将使生活变得更加轻松。 http://pi4j.com/

要了解C / C ++是否比Java更好的选择 - 这取决于你在做什么。我碰巧喜欢使用Java而不是C,因此如果平台允许,我会选择任何一天......但那只是我。你真的需要类似裸机的性能还是几毫秒就可以了?在某些情况下,权衡可能意味着项目完成的时间更长等......当使用更高级别的语言时。

RPi非常喜欢python btw,所以你甚至可以将它用于你的I2C。

答案 1 :(得分:4)

一般来说,CC++之类的语言更快,更适合这种情况。很多时候人们说C / C++接近金属,因为你真的控制着这么低的水平(实际上是在寄存器水平上)。另一方面,Java因为你说的原因而有更多的开销:JVM。因此,您的微控制器可能甚至无法支持Java,但我不知道您正在使用什么。

答案 2 :(得分:0)

尽管C ++和C的执行速度可能更快,但是我对RPI上的 Java开发有着良好的经验,所以我建议这样做。

为了更轻松地构建应用程序,我建议以下内容:

  • 我会利用Pi4J库的优势,该库已被很好地记录和维护(请记住,要以 Root 的身份运行您的程序,以便利用GPIO连接。
  • 我建议您充分利用库,而不要“嫁给”任何框架(除非确实需要),因为后者可能会减慢应用程序的启动速度。在开发和重新运行应用程序以测试连接和I / O时,缓慢的启动会变得很烦人。
  • 就RPI进行测试和调试而言,这可能有点乏味,因为您可能必须在第一次开发迭代中经常重建应用程序。 为了快速做到这一点,我建议在不同的环境上构建应用程序,然后将其传输到RPI through SSH或类似的文件中。

我也同意:

  

RPi非常喜欢python btw

通常,用Python语言解决RPI的常见问题然后将其移植到Java代码通常很容易。