I2C总线与串口

发布者:星光曲折最新更新时间:2017-11-30 来源: eefocus关键字:I2C总线  串口 手机看文章 扫描二维码
随时随地手机看文章

I2C总线与串口 
I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL.在 
I2C总线上传送的一个数据字节由八位组成.总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位.数据传送首先传送最高位(MSB).首先由主机发出启动信号“S”(SDA在SCL高电平期间由高电平跳变为低电平),然后由主机发送一个字节的数据.启动信号后的第一个字节数据具有特殊含义:高七位是从机的地址,第八位是传送方向位,0表示主机发送数据(写),1表示主机接收数据(读).被寻址到的从机设备按传送方向位设置为对应工作方式.标准I2C总线的设备都有一个七位地址,所有连接在I2C总线上的设备都接收启动信号后的第一个字节,并将接收到的地址与自己的地址进行比较,如果地址相符则为主机要寻访的从机,应在第九位答时钟脉冲时向SDA线送出低电平作为应答.除了第一字节是通用呼叫地址或十位从机地址之外,第二字节开始即数据字节.数据传送完毕,由主机发出停止信号“P”(SDA在SCL高电平期间由低电平跳变为高电平). 
个人觉得I2C总线思想有点像USB总线,都是广播式的.

串口是一根线传送数据,一根线接收数据 
I2C是一根线是时钟线,一根线是数据线,数据线是双向的,可以接收,也可以发送.

I2C接口是"器件间"接口,是在一块板子之内数据的,RS232串行接口是"设备间"接口,更多的是用于两台设备之间传输数据.从传输数据的距离来说,应该是RS232传输的距离较远,但二者具体差别多少,我没有做过专门的试验.

有很大方式的不同.譬如i2c是带地址的通讯,支持多方通讯,串口就搞不定;两者通讯的机制原理也不同;另外速度上I2C相对会快一些,好像i2c是philips发明的,目的就是解决速度的瓶颈.网上有很多资料,自己搜一下吧!

i2c是同步串行传输,RS232(或曰UART,通用异步收发器)是异步串行传输.

同步方式必须有一根时钟线连接传输的两端,i2c里的scl就是这根时钟线.因为同步方式不用花费额外的开销对其数据,所以其传输速率一般比异步方式高


关键字:I2C总线  串口 引用地址:I2C总线与串口

上一篇:用单片机驱动LED数码管显示总结
下一篇:关于c与汇编混合编程的一点总结

推荐阅读最新更新时间:2024-03-16 15:47

jz2440裸机开发与分析:串口编程2
、 UART0初始化 初始化配置内容:波特率(115200);8bit数据位;1bit停止位;无奇偶校验位;无流控制 uart.c: void uart0_init() { /*配置GPH2,3为TXD,RXD,并且将这两个引脚内部拉高*/ /*GPHCON(0x56000070)*/ /*GPHUP(0x56000078)*/ GPHCON &= ~((0x3 4) | (0x3 6)); // 置零 GPHCON |= ((0x2 4) | (0x2 6)); GPHUP &= ~((0x1 2) | (0x1 3));// 置零 /*设置波特率115200*/ /*UBR
[单片机]
jz2440裸机开发与分析:<font color='red'>串口</font>编程2
STM32CubeMX串口配置及库printf打印
最新版STM32CubeMXV5.0.0已经上传到了网盘,或者自己通过软件在线升级。 STM32CubeMX运行环境搭建包含两个部分。首先是 Java运行环境安装,其次是STM32CubeMX软件安装。Java 软件和STM32CubeMX 软件都可以在官网找到最新的下载。 1. Java运行环境,大家可以到 Java 官网 www.java.com下载最新的 Java 软件; 2.STM32CubeMX可以在ST官网www.st.com/content/st_com/zh.html下载最新的版本; 3.或者在我网盘上下载全部所需软件资料,链接:https://pan.baidu.com/s/1kWUH08n 密码:
[单片机]
STM32CubeMX<font color='red'>串口</font>配置及库printf打印
51单片机串口通信测试程序
#include unsigned char flag,a; void delay(); void main() { TMOD=0x20;//设置定时器1为工作方式2 TH1=0xfa; //TH1=256-2^0*22118400/32/12/9600 波特率为9600,晶振为22.1184Mhz TL1=0xfa; TR1=1; //定时器1打开 REN=1; //允许串行接收位。由软件置REN=1,则启动串行口接收数据 SM0=0; //选择串行口工作方式1 SM1=1; EA=1; //开总中断 ES=1; //开串口中断 while(1) { if(flag=
[单片机]
51单片机实现通讯协议的串口通讯编程
我们以51单片机为例。51中一般针对串口通讯编程,通常采取中断接受查询发送的方式。中断函数在接受数据到达时被重复调用,其实是个重复入栈的过程,所以不宜将函数写的太长,函数太长一般会导致栈太深占用系统资源,二是处理时间过长,可能导致通讯出错。为了防止在处理数据过程中不受干扰,通常在处理接受数据前关闭中断,处理完后再开。 通常的的编程方式如下: static void UartInterruptService(void) interrupt 4 { ES = 0; RI = 0; uart_process(SBUF); ES=1; } 下面重点介绍数据处理函数 uart_process(SBUF); 其实很多时候,对于通讯
[单片机]
51单片机实现通讯协议的<font color='red'>串口</font>通讯编程
一个非常不错的串口程序
//PC读MCU指令结构:(中断方式,ASCII码表示) //帧: 帧头标志| 帧类型| 器件地址| 启始地址| 长度n| 效验和| 帧尾标志 //值: ’n’ ’y’ | ’ r’ | 0x01 | x | x | x | 0x13 0x10 //字节数: 2 | 1 | 1 | 1 | 1 | 1 | 2 //求和: ///////////////////////////////////////////////////////////////////// //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分 //其
[单片机]
再次发模拟串口,51自适应波特率
这个是在12T的8051上面用的模拟串口程序,配合22.1184M的晶振,加上6T的双倍速,波特率可以上38400 但是我认为和某些STC的芯片比,还是差了一点,所以说,看官门看注释吧。开启帧请发送没有连续低电平的字符,类似0 55,0xff,0x7f如此等等,如果有连续低电平很容易造成判断失误 这个程序可以用在STC的自动冷启动模块里(STC15F101系列就行,很便宜的,注意是八位装载模式顺便把T1X12关了~然后补偿可以顺便减小一点,顺便说一句,用AT89C51来做也行)。这个在24M/22.1184M/11.0592M均工作正常,11.0592能到9600,24能到38400。不过,我提个醒,如果看官们真拿这个做STC冷启的
[单片机]
STM32 串口中断总结
简介:本文以USART1为例,叙述串口中断的编程过程。一般情况下我们使用原始的外设和GPIO端口引脚的映射关系,如果要改变其映射的话,请另外查看参考手册上关于GPIO重映射部分。对于GPIO的复用,其引脚的输入与输出模式都有要求. 1、先来讲述一下在应用串口中断时涉及到的一些库文件。 首先对于STM32外设库文件的应用编程,misc.c和stm32f10x_rcc.c是肯定要添加到。 接下来就是我们要用到的相关外设了。毫无疑问,串口文件stm32f10x_usart.c是必须的。串口通信是对通用GPIO端口引脚的功能复用,所以还需要stm32f10x_gpio.c文件。另外,因为有中断的产生,所以中断文件stm32f10
[单片机]
I2C总线在Linux系统中的驱动设计
  1 引言       Linux操作系统因具有源代码公开、便于裁减、有广泛的处理器支持等优点,成为当前嵌入式系统的热门选择。基于I2C总线的键盘扩展设备主要用于满足嵌入式设备中对多按键的需求,驱动程序在系统启动时对硬件进行初始化。在系统启动后实现硬件和应用程序之间的数据交互。针对 S3C2410 微处理器和键盘扫描管理器件,深入讨论如何在嵌入式操作系统ARM Linux中实现 ZLG7290 的驱动。 2 I2C总线    I2C总线是器件间串行传输总线,以其规范和带I2C接口的外围器件获得广泛应用。 S3C2410 处理器内置有I2C总线接口。I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved