嵌入式开发——关于Arduino开发的一些思考 (接上一篇)[0]

    上一篇中介绍了,Arduino作为从机与上位机(pc、arm)的通信,提到了zigbee,其实zigbee也不便宜,其实还有一些更为经济的解决方案,下面要提到的是其中一种——I²C(Inter-Integrated Circuit),这是由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边装置而发展的一种通信协议,现在linux内核模块也支持I²C,其头文件为/usr/include/linux/i2c.h,2007年产生了该协议的第三个版本[1]。

        I²C通过一根串行数据线(SDA)和1根串行时钟线(SCL)实现了双工的同步数据传输,通讯效率较高。实施过程中,可以用一个Arduino控制器充当主机A,其他控制器作为客户机B,主从机器通过I²C总线连接在一起,运用地址来相互识别。I²C的通讯库存在于Wire.h当中[2]。
        这样,在通过TTL将充当主机的控制器链接到上位机(pc、arm)上,上位机将控制命令发送到主机控制器A上,让后再由主机控制器A通过I²C总线广播出去,与该控制命令有关的客户机B开始执行命令;相反的,客户机B的信息通过I²C总线发送到主机控制器A,再有主机控制器A处理后发送或者是直接发送到上位机上。

        I²C的方式不适合长距离的信息传递,适合用于[桌面设备]之间的通讯。


参见

[0]嵌入式开发——关于Arduino开发的一些思考 http://my.oschina.net/gason/blog/65111

[1]I²C http://zh.wikipedia.org/wiki/I%C2%B2C

[2]Wriehttp://arduino.cc/it/Reference/Wire

你可能感兴趣的:(通讯,arduino,I²C)