专栏中心

EEPW首页 > 专栏 > 灵活的软件I2C通信协议

灵活的软件I2C通信协议

发布人:0750long 时间:2009-07-09 来源:工程师 发布文章
灵活的软件I2C通信协议

 

单片机内置的硬件I2C部件大家已经很熟悉了,现在给大家介绍一种自己修改之后的软件I2C通信协议,在适当的时候可能会给自己的系统带来更多的灵活性。

软件I2C在使用中硬件链路同样是两线制,一根时钟线(CLK),一根数据线(DATA)。数据传送方式为空闲时间CLK和DATA均为高电平,CLK拉低开始数据传送,CLK低电平期间对DATA赋值,CLK高电平期间数据稳定可以做数据接收。高低电平的周期和比例可以根据自己系统的时钟和数据处理灵活调整,一次数据传送的BIT数要事先约定好,方便后面的数据接收处理。

软件处理过程如下:对于发送端,CLK拉低开始数据传送,并在CLK低电平期间给DATA赋值,赋值成功之后把CLK拉高,适当延时即可以开始下一BIT位数据的传送。对于接收端,为了能够及时检测到有数据传送,应该吧CLK接到外部中断管脚,并开启相应的外部中断,触发方式选择为下降沿触发,这样一旦有数据传送就可以检测到,并在中断服务程序中完成一次数据接收,CLK低电平期间做循环等待,高电平期间做数据检测储存。

该软件I2C通信协议是对硬件I2C部件的一种简化处理,使用中根据自己的系统设计灵活处理,在很多使用过程中都会给你带来方便。

以下程序是一段发射端的实例代码,仅供大家参考:

void status_out(uint8_t hdd_status)
{
     uint8_t i;
  uint8_t test;
  for(i=0; i<8; i++)
  {
      scl_low;
      test = (1 << i);
   if(hdd_status & test)
   {
      sda_high;
   }
   else
   {
      sda_low;
   }
   delay(10);
   scl_high;
   delay(20);
  
  }
  scl_high;
  sda_high;
}

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

浅谈电视机各式保护电路

LabVIEW网络讲坛第三季——第一期:基本结构框架的新特征

视频 2009-04-23

平行导线通过有割缝地层时的影响的时域分析图形

SK海力士首次向客户提供12层HBM4样品,预计下半年量产

TDK推出电流高达1600mA的车载同轴电缆供电(PoC)电感器

欧洲半导体公司呼吁制定欧盟芯片法案2.0

AI推理应用爆发推升QLC NAND Flash市场需求

元太科技携手瑞昱半导体 发表第二代整合系统于基板的电子纸价签

请教几个问题

wsj 2005-06-09

清华大学知名教授解读点石成金的微电子产业(中)

视频 2009-04-24

LabVIEW网络讲坛第三季——第二期:状态机(上集)

视频 2009-04-23

罗克韦尔自动化在NVIDIA GTC 2025大会上首次展示Emulate3D Factory Test

嵌入式实时系统开发的正确选择

波士顿动力Atlas机器人超进化:会跳托马斯 动作完美复刻人类

NI PAC平台引领工业控制发展新技术

视频 2009-04-23

浅析新材料在高密度电子封装上的应用及发展前景

欧盟重拳砸向硅谷!指控谷歌垄断 苹果被逼“拆墙”

清华大学知名教授解读点石成金的微电子产业(上)

视频 2009-04-24

尼得科精密检测科技将参展CPCA Show 2025

浅谈多层印制电路板的设计和制作

英飞凌与Eatron将双方在AI电池管理解决方案方面的合作范围扩展至工业和消费应用领域

更多 培训课堂
更多 焦点
更多 视频

技术专区