zoukankan      html  css  js  c++  java
  • I2C总线学习1

    I2C总线学习(一)--信号类型

    I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。     

        每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器,由总线上接收数据的器件则为接收器。
       在CPU与被控IC 之间、IC 与IC 之间进行双向传送,高速IIC 总线一般可达400kbps以上。 I2C总线在传送数据过程中共有三种类型信号,  它们分别是:开始信号、结束信号和应答信号。 
      开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 
      结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 
      应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。

     

     代码:

    (1)起始信号   

    复制代码
    Void I2CStart(void)
    {
      SomeNop(  );
    
      SCL = 1;
    
      SomeNop(  );
    
      SDA = 0;
    
      SomeNop(  );
    
      SCL = 0;
    
      SomeNop(  );
    
    }
    复制代码

    (2)终止信号

    复制代码
    void I2cStop(void)
    {
        SDA = 0;
        SomeNop(  );
        SCL = 1;
        SomeNop(  );
        SDA = 1;
        SomeNop(  );
        SCL = 0;
    }
    复制代码

    嵌入式单片机

     
    摘要: 设计前要分析设备的需求,包括设备类型、要实现的所有功能,对应每一个功能如何实现、采用的数据传输类型和速率、所需要的硬件资源。接着针对我们的功能选择合适USB接口芯片,比较各种芯片的性能,选择性价比最高的芯片进行设计。选择好芯片后就可以开展实际的USB功能设备的软硬件开发,软件的开发包括USB芯片的固件设计、USB主机的驱动程序和主机的用户界面应用程序等,硬件开发涉及功能设备组件实现、硬件接口、分配资源等,软硬件的设计和调试是分不开的,最后对整个软硬件系统进行综合调试,以确保所需功能的完善。 USB设备的设计流程阅读全文
    posted @ 2013-04-03 21:59 markmin214 阅读(2) | 评论 (0) 编辑
    摘要: USB主机在USB系统中处于中心地位,并且对USB及其连接的设备有着特殊的责任,主机控制着所有对USB的访问,一个外设只有主机允许才有权力访问总线,主机同时也监测着USB的结构。USB主机包括三层:设备驱动程序、USB系统软件、USB主控制器(主机的总线接口) 。另外,还有两个软件接口:USB驱动接口,主机控制驱动(HCD)接口。 USB设备包括Hub和功能设备,一个USB设备可以分为三个层:最底层是总线接口用来发送与接收包,中间层处理总线接口与不同的端点之间的数据流通,一个端点是数据最终的使用者或提供者,它可以看作数据的源或接收端,最上层就是USB设备所提供的功能比如鼠标或键盘等。Hub(.阅读全文
    posted @ 2013-04-03 21:51 markmin214 阅读(2) | 评论 (0) 编辑
    摘要: USB总线接口具有向外提供电源的能力,并且是5V的电压,非常的适合TTL信号系统。使用这个电源可以再一定程度上为设备供电,减少了USB电源设计,简化了USB系统结构。USB电缆有四根导线:电源线(红色Vbus)、地线(黑色GND)、D+(绿色)和D -(白色)。 D+和D -导线是差分对,D+和D-是差分输入线,它使用的是3.3V的电压,而电源线和地线可向设备提供5V电压,对于高输出功率USB端口其最大输出电流为500MA,低输出功率为100mA。当然USB设备可以采用总线 供电,也可以采用自供电。连接某一设备后,主控制器将通过一个称为“枚举”的过程查询该设备,枚举过程允许主控制器了解所...阅读全文
    posted @ 2013-04-03 21:45 markmin214 阅读(2) | 评论 (0) 编辑
    摘要: USB(Universal Serial Bus,通用串行总线)作为一种新的外设连接技术,最初是由Compag,DEC,IBM,Intel,Microsoft,NEC和Northern Telecom等七大业内巨头共同开发的。该技术着眼于简化计算机与外设的连接过程,顾及低速和高速的兼容;从而解决串行设备和并行设备与计算机相连的争论,为用户提供一种可共享的、可扩充的、使用方便的串行总线。 随着PC机向各层次的发展与渗透,外围设备与PC的连接与扩充变得越来越重要。1994年,Microsoft公司提出PnP(Plus and Play,即插即用)方案,旨在把PC外设和扩充电路板连接起来,实现系统对阅读全文
    posted @ 2013-04-03 21:41 markmin214 阅读(1) | 评论 (0) 编辑
    摘要: 从左往右依次为:miniUSB公口(A型插头)、miniUSB公口(B型插头)、 USB公口(B型)、 USB母口(A型插座)、 USB公口(A型插头)阅读全文
    posted @ 2013-04-03 21:25 markmin214 阅读(3) | 评论 (0) 编辑
    摘要: 以三轴加速度传感器MMA7660为例:#define MMA7660_SDAGPIO_Pin_10//PC10 //IIC数据线接口#define MMA7660_SCLGPIO_Pin_15//PA15 //IIC时钟线接口#define MMA7660_INTGPIO_Pin_14//PA14 1 /* 2 *========================================================= 3 * 函数功能:IIC总线初始化信号 4 * 参数:无 5 * 函数返回值:无 6 * SDA --- 7 * ...阅读全文
    posted @ 2013-04-03 18:55 markmin214 阅读(2) | 评论 (0) 编辑
    摘要: 写入过程 单片机进行写操作时,首先发送该器件的7位地址码和写方向位“0”(共8位,即一个字节),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为相应,单片机收到应答后就可以传送数据了。 传送数据时,单片机首先发送一个字节的被写入器件的存储区的首地址,收到存储器器件的应答后,单片机就逐个发送各数据字节,但每发送一个字节后都要等待应答。当要写入的数据传送完后,单片机应发出终止信号以结束写入操作。写入n个字节的数据格式 : 读出过程 单片机先发送该器件的7位地址码和写方向位“0”(“伪写”),发送完后释放SDA线并在SCL阅读全文
    posted @ 2013-04-03 18:30 markmin214 阅读(4) | 评论 (0) 编辑
    摘要: 总线的寻址(1)寻址字节位定义 I2C总线采用7位的寻址字节,寻址字节是起始信号后的第一个字节。 D7~D1位组成从机的地址。D0位是数据传送方向位,为“0”时表示主机向从机写数据,为“1”时表示主机由从机读数据。(2)寻址方式 主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/位将自己确定为发送器或接收器。 从机的地址由固定部分和可编程部分组成。在一个系统中可能希望接入多个相同的从机,从机地址中可编程部分决定了可接入总线该类器件的最大数目。如一个从机的7位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个同样的器件,即可以有8阅读全文
    posted @ 2013-04-03 17:28 markmin214 阅读(8) | 评论 (0) 编辑
    摘要: 数据传送格式(1)字节传送与应答 每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。 (2)数据帧格式 在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/),用“0”表示主机发送数据(T),“1”表示主机接收数据(R)。每次数据传送总是由主机产生的终止信号结束。 注:有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。 A表示应答, 表示非应答(高电平)。S表示起始信号,P表示终止信号。。 举例:阅读全文
    posted @ 2013-04-03 16:57 markmin214 阅读(8) | 评论 (0) 编辑
    摘要: I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。 每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器,由总线上接收数据的器件则为接收器。 在CPU与被控IC 之间、IC 与IC 之间进行双向传送,高速IIC 总线一般可达400kbps以上。 I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL为高电平时,SDA由高...阅读全文
    posted @ 2013-04-03 16:41 markmin214 阅读(119) | 评论 (0) 编辑
    摘要: 将系统内各时钟的频率定义为宏,方便用户操作。•初始化流程:(1)(2)(3)阅读全文
    posted @ 2013-04-03 14:54 markmin214 阅读(4) | 评论 (0) 编辑
    摘要: CPU正常工作需要有合适的时钟信号,包括ARM核使用的CCLK时钟,和芯片外设使用的PCLK时钟。CPU时钟结构:时钟产生单元包括晶体振荡器、锁相环振荡器(PLL)和VPB分频器。•晶体振荡器可以使用内部的晶体振荡器产生时钟信号,也可以从外部引入时钟信号。•锁相环(PLL)由晶体振荡器输出的时钟信号,通过PLL升频,可以获得更高的系统时钟(CCLK)。•VPB分频器VPB分频器决定处理器时钟(CCLK)与外设器件所使用的时钟(PCLK)之间的关系。用途:通过VPB总线为外设提供所需的PCLK时钟,以便外设在合适的速度下工作;在应用不需要任何外设全速运行时使功耗降低。阅读全文
    posted @ 2013-04-03 11:59 markmin214 阅读(23) | 评论 (0) 编辑
    摘要: Cortex-M3 处理器内核Cortex-M3 处理器系统方框图Cortex ‐ M3总线连接范例寄存器组 Cortex ‐ M3处理器拥有 R0‐R15 的寄存器组。其中 R13 作为堆栈指针 SP 。SP 有两个,但在同一时刻只能有一个可以看到,这也就是所谓的“banked ”寄存器。存储器映射Cortex ‐ M3预定义的存储器映射 不像其它的 ARM 架构,它们的存储器映射由半导体厂家说了算,Cortex ‐ M3预先定义好了“粗线条的”存储器映射。通过把片上外设的寄存器映射到外设区,就可以简单地以访问内存的方式来访问这些外设的寄存器,从而控制外设的工作。结果,片上外设可以使用 C 阅读全文
    posted @ 2013-04-03 09:00 markmin214 阅读(505) | 评论 (0) 编辑
    摘要: 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。详细框图嵌入式开发体系结构 最小系统框图:阅读全文
    posted @ 2013-03-28 19:25 markmin214 阅读(15) | 评论 (0) 编辑
    摘要: MMA7660是一个3轴g-sensor,它主要用于测量倾斜角,惯性力,冲击力及震动.工作原理:mma7660是一种电容式g-sensor.电容式g-sensor大多为欧美厂商,其技术是在wafer的表面做出梳状结构,当产生动作时,由侦测电容差来判断变形量,反推出加速度的值.与压阻式不同的是,电容式很难在同一个结构中同时感测到三个轴(X,Y,Z)的变化,通常都是X,Y和Z分开来的, (这也就是为什么当板子水平放置时,无论如何改变X,Y的位置,都不会有中断产生,因为这时它只能检测Z轴的变化,X,Y的变化它检测不到,只有当我们将板子倾斜一个角度后才能检测X,Y的变化) .而压阻式在同一个结...阅读全文
    posted @ 2013-03-28 17:15 markmin214 阅读(6) | 评论 (0) 编辑

     

     

     

     

     

  • 相关阅读:
    Siege 3.0 正式版发布,压力测试工具
    Pomm 1.1.2 发布,专为 PG 设计的 ORM 框架
    Whonix 0.5.6 发布,匿名通用操作系统
    国内开源 java cms,Jspxcms 2.0 发布
    EZNamespaceExtensions.Net v2013增加对上下文菜单、缩略图、图标、属性表的支持
    GNU Guile 2.0.9 发布,Scheme 实现
    jdao 1.0.4 发布 轻量级的orm工具包
    OpenSearchServer 1.4 RC4 发布
    Percona Server for MySQL 5.5.3030.2
    Samba 4.0.5 发布
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2998782.html
Copyright © 2011-2022 走看看