首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓I2C读写速度

安卓I2C读写速度
EN

Stack Overflow用户
提问于 2012-10-30 01:35:02
回答 1查看 1.3K关注 0票数 2

我一直在通过I2C接口与设备通信的应用程序上执行计时测量。我发现执行一次I2C读写大约需要450us。我已经验证了I2C接口正在以400KHz的速度运行,因此我预计在单字节上执行I2C操作大约需要170us。在安卓中使用I2C驱动会有超过250us的开销吗?有谁知道提高这个速度的方法。

提前谢谢。

马克。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-02 01:35:14

我猜你的预期延迟来自于时间/比特或者类似的东西。但是,当您从具有操作系统(安卓或Linux或其他操作系统)的系统向I2C发送数据时,您必须经过所有层才能到达实际的I2C。最有可能的是,这个驱动程序在内核中。因为它是硬件资源,所以也有某种形式的门控来防止几段代码同时使用I2C。此外,有时对于某些设备,系统可能不会立即发送数据,但可能会推迟一点。不过,这可能不是你的情况。

此外,对于一些硬件设备,当您发送数据时,它不会经过常规的数据写入,但会通过其他方式发送数据,这种方法对于大块可能更有效,但对于小块来说效率更低,这会让您从一开始就有一些延迟。I2C上的音频流就是一个很好的例子。在系统中,通常需要一个数据缓冲器和一个直接存储器存取通道,以便以适当的速率将数据传输到I2C,从而获得您想要的音频。这对于音频流的目的来说是非常有效的,但只发送几个字节并不是很好。

所以,我对你的测量结果并不感到惊讶。

在我看来,如果你想改进它,你将不得不经历编写自己的驱动程序的痛苦。然后,你变得依赖于平台。如果它是一个自定义系统,那就没问题,但如果它是一个必须在任何平板电脑上运行的消费者应用程序,那它就不可行了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13126774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档