查看: 10968|回复: 15

[分享] 【LPC824学习】②IIC通信实例

[复制链接]
  • TA的每日心情
    开心
    2017-11-15 10:33
  • 签到天数: 79 天

    连续签到: 1 天

    [LV.6]常住居民II

    89

    主题

    2169

    帖子

    3

    金牌会员

    Rank: 6Rank: 6

    积分
    1779
    最后登录
    2020-8-22
    发表于 2016-10-12 14:35:07 | 显示全部楼层 |阅读模式
    本帖最后由 何昌昕 于 2016-10-12 14:35 编辑

    紧接上一个帖子https://www.nxpic.org.cn/module/forum/thread-606549-1-1.html

    首先先来了解下IIC通信,下面摘取百度百科一段简单的介绍,IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。80年代的通信协议沿用至今,足见其稳定与便捷性。现在市面上大多数字类传感器均是采用IIC通信协议。

    IIC协议只需要使用到两根双向信号线,一根为数据线SDA,一根为时钟线SCL。当总线空闲时,两根线均为高电平。IIC总线在进行数据传输时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有时钟线上的信号为低电平时,数据线上的高低电平才允许变化。

    下面简单叙述,我们如何通过模拟IIC的方式实现对MMA8451和MPU3050传感器的读写。

    要实现模拟IIC需要几个关键的程序:

    1.初始化程序,需要将SDA,SCL都拉高,释放总线。

    QQ截图20161012131756.jpg

    2.IIC总线开始和停止信号

    QQ截图20161012132633.jpg

    根据这张时序图,我们可以看到,IIC的起始信号是SCL在高电平期间,SDA一个下降沿即可产生开始信号

    同样的,SCL在高电平期间,SDA一个上升沿即可产生停止信号,程序实现如下图所示

    QQ截图20161012132153.jpg

    3.应答与非应答信号

    每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。同样的我们根据上面的时序图写出如下代码。

    IIC的应答信号为当SDA为低电平时,SCL低高低即可产生应答信号。

    IIC的非应答信号为当SDA为高电平时,SCL低高低即可产生非应答信号。

    QQ截图20161012132842.jpg


    4.写数据

    单片机在进行写操作的过程中,首先先发送该器件的7位地址码和方向位0,共8位,一个字节,发送完后,释放SDA线,并在SCL线上产生第9个时钟信号,被选中的器件在确认是自己的地址后,在SDA线上产生一个应答信号作为回应,单片机收到应答后就可以传送数据了。

    传送数据时,单片机首先发送一个字节的被写入器件存储的首地址,收到器件应答后,单片机依次发送各数据字节,但每个字节都需要等待应答。

    QQ截图20161012134807.jpg QQ截图20161012141419.jpg

    5.读数据

    读数据的过程和写数据一样,首先先发送该器件的7位地址码和方向位0,共8位,一个字节,发送完后,释放SDA线,并在SCL线上产生第9个时钟信号,被选中的器件在确认是自己的地址后,在SDA线上产生一个应答信号作为回应,单片机收到应答后就可以传送数据了。

    然后,再发一个字节要读出器件存储区的首地址,收到应答后,单片机要重复一次起始信号,并发出器件地址和读方向位1,收到器件应答后就可以读出各数据字节了,每读出一个数据字节,单片机都要发出应答信号,当读完最后一个字节后,需要返回非应答信号,并发出结束信号终止操作。

    QQ截图20161012134821.jpg QQ截图20161012141233.jpg



    基本的IIC总线的操作就这样,下面我们只需要查阅芯片的数据手册进行初始化配置和读写数据即可。 MMA8451datasheet.pdf (489.05 KB, 下载次数: 3)
    签到
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-5-11 17:59
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    396

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1381
    最后登录
    2023-9-15
    发表于 2016-10-12 15:59:58 | 显示全部楼层
    谢谢啊 好东西
    今天好忙啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-1-8 18:28
  • 签到天数: 93 天

    连续签到: 1 天

    [LV.6]常住居民II

    3

    主题

    221

    帖子

    0

    高级会员

    Rank: 4

    积分
    586
    最后登录
    2022-1-8
    发表于 2016-11-30 13:13:18 | 显示全部楼层
    学习了,呵呵
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-1-24 08:47
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    524

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2017-4-19
    发表于 2016-11-30 13:32:45 | 显示全部楼层
    谢谢分享                        
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-12-22 08:20
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    48

    帖子

    0

    注册会员

    Rank: 2

    积分
    156
    最后登录
    2017-1-4
    发表于 2016-11-30 17:22:29 | 显示全部楼层
    你这个是不是硬件I2C吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-24 08:30
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]常住居民I

    22

    主题

    817

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1713
    最后登录
    2019-12-7
    发表于 2016-11-30 21:53:18 来自手机 | 显示全部楼层
    学习下。。。。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-31 22:07
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    20

    主题

    385

    帖子

    19

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2092
    最后登录
    2020-7-1
    发表于 2016-11-30 22:01:49 | 显示全部楼层
    dr9790 发表于 2016-11-30 17:22
    你这个是不是硬件I2C吧

    模拟   
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-21 08:52
  • 签到天数: 861 天

    连续签到: 1 天

    [LV.10]以坛为家III

    75

    主题

    2523

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5867
    最后登录
    2025-1-22
    发表于 2016-12-1 07:19:22 | 显示全部楼层
    学习,非常详细,看手册是不是10,11是默认的IIC?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-4-15 09:51
  • 签到天数: 234 天

    连续签到: 1 天

    [LV.7]常住居民III

    1

    主题

    782

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1640
    最后登录
    2020-4-15
    发表于 2017-1-11 14:25:23 | 显示全部楼层
    谢谢楼主分享。。
    今天天气不错!签到!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2020-6-6 16:15
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]常住居民I

    4

    主题

    264

    帖子

    0

    高级会员

    Rank: 4

    积分
    808
    最后登录
    2020-6-6
    发表于 2017-1-12 09:12:30 | 显示全部楼层
    MARK 不错哦
    签到签到
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 20:28 , Processed in 0.104656 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表