文档章节

单片机常用数据接口和总线和协议

h
 houj
发布于 2014/10/29 16:04
字数 1956
阅读 86
收藏 1

单片机常用数据接口和总线和协议

一)SPI接口


1)概述

SPI接口的全称是Serial Peripheral Interface",意为串行外围接口;
SPI为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps

2)角色

SPI连接设设备分主机和从机两种角色:
主机(Master) 时钟信号由主机提供,通信的时机和过程有主机完全控制
从机(Slaver) 冲击被动的根据主机的时钟作出相应;

3)引脚

SPI一般需要4个引脚参与通信:
MOSI 主器件数据输出,从器件数据输入(主出从入)
MISO 主器件数据输入,从器件数据输出(主入从出)
SCLK 时钟信号,由主器件产生
NSS 从器件使能信号,由主器件控制,低电平有效,有的IC会标注为CS(Chip select)(片选);

4)通信过程

主机将CS拉低,主机提供时钟信号,主机和从机随着时钟的节奏传输和接收数据;
数据,传输的数据为8位,高位在前,低位在后;

5)工作模式

SPI有四种工作模式,各个工作模式的不同在于SCLK不同, 具体工作由CPOL,CPHA决定
CPOL: (Clock Polarity),时钟极性
当CPOL为0时,时钟空闲idle时候(初始)的电平是低电平(n);
当CPOL为1时,时钟空闲idle时候(初始)的电平是高电平(u);
CPHA:(Clock Phase),时钟相位
当CPHA为0时,时钟周期的前一边缘(时钟波形的左边缘)采集数据;
当CPHA为1时,时钟周期的后一边缘(时钟波形的右边缘)采集数据;
CPOL和CPHA,分别都可以是0或时1,对应的四种组合就是:
模式名 参数 描述 图形*
Mode0 CPOL=0,CPHA=0 时钟初始为低电平,上升沿采集数据 (1n)
Mode1 CPOL=0,CPHA=1 时钟初始为低电平,下降沿采集数据 (n1)
Mode2 CPOL=1,CPHA=0 时钟初始为高电平,下降沿采集数据 (1u)
Mode3 CPOL=1,CPHA=1 时钟初始为高电平,上升沿采集数据 (u1)
*上表(n) (u)要当成图形来看,反应时钟脉冲的形状,1是采样位置

6)实践

有时候搞不清模式,或则懒得费那脑筋,就轮着每种模式试一遍吧,总有一个是对的;

二)I2C总线


1)概述

I2C(Inter-Integrated Circuit)总线,又叫IIC,读作"I-squared-C"或"I方C";总线支持连接多个主机和从机;

2)术语

术语 描述
发送器 发送数据到总线的器件
接收器 从总线接收数据的器件
主机 初始化发送,产生时钟信号和终止发送的器件
从机 被主机寻址的器件
多主机 同时有多于一个主机尝试控制总线,但不破坏报文
仲裁 是一个在多个主机尝试控制总线,但只允许一个控制总线并使报文不被破坏的过程;
同步 两个或多个器件同步时钟信号的过程

3)引脚

SDA 通过串行数据线,接上拉电阻
SCL 串行时钟线,接上拉电阻

4)数据传输过程

a)每个字节8位,高位在前,低位在后;每个字节后跟一个响应位
b)初始状态:SDA高,SCL高;
c)SCL线是高电平时,SDA线从高电平向低电平切换,这个情况表示起始条件;
d)传输数据位时,SDA线必须在SCL的高电平周期保持稳定,SDA的高或低电平状态只I2C位传输数据有效性有在SCL线的时钟信号是低电平时才能改变;
e)在响应的时钟脉冲期间发送器释放SDA 线(高),在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平;
f)SCL线是高电平时,SDA线由低电平向高电平切换,这个情况表示停止条件。

5)寻址

第一个发送的字节是地址
a)7位寻址:高位在前,低位在后,高7位表示地址,低1位表示方向,0读,1写;
b)10位寻址:
10位寻址和7 位寻址兼容,而且可以结合使用。
10位寻址采用了保留的1111XXX 作为起始条件(S),或重复起始条件(Sr )后的第一个字节的头7 位。
10位寻址不会影响已有的7位寻址,有7位和10位地址的器件可以连接I2C总线10位地址格式到相同的I2C总线。它们都能用于标准模式(F/S)和高速模式(Hs)系统。
保留地址位1111XXX 有8 个组合,但是只有4 个组合11110XX 用于10 位寻址,剩下的4个组合11111XX 保留给后续增强的I2C 总线。
10位从机地址是由在起始条件(S)或重复起始条件(Sr )后的头两个字节组成。
第一个字节的头7位是11110XX 的组合,其中最后两位(XX) 是10 位地址的两个最高位(MSB)。
第一个字节的第8位(最低位)是R/W 位,决定了传输的方向,0读,1写。
如果R/W 位是“0 ”,则第二个字节是10位从机地址剩下的8位;如果R/W位是“1” 则下一个字节是从机发送给主机的数据。

三)UART接口


1)概述

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,串口;

2)引脚

TX 发数据,对应对方的RX
RX 收数据,对应对方的TX
也可以有硬件流控制的脚,TX,RX也可以根据需要只使用一个

2)数据传输

起始位 低,表示开始传输;
数据位 可以是4、5、6、7、8bit,低位在前,一般是8bit,表示一个字符
奇偶校验位 可选
停止位 它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平,用于表示数据结束和时钟同步
空闲位 处于高电平

3)波特率

传输速率(bps);
常用波特率:
1200,2400,4800,9600,14400,19200,28800,38400,57600,76800,115200,230400,250000,460800,921600,1M

四)I2S协议


1)概述

I2S(InterIC Sound Bus)是飞利浦公司针对数字音频设备之间的音频数据传输而制定的一种总线标准,采用沿独立的导线传输时钟与数据信号的设计,通过分离数据和时钟信号,避免了时差诱发的失真。I2S总线简单有效,可以有效提升输出数据的质量,在各种嵌入式音频系统中有广泛应用。

2)引脚:

SCLK 串行时钟SCK,也叫位时钟BCLK(BCK),即每发送1位数字音频数据,SCK上都有1个脉冲。SCK的频率=2×采样频率×采样位数。在数据传输过程中,I2S总线的发送器和接收器都可以作为系统的主机来提供系统的时钟频率。
LRCK 帧时钟WS,即命令(声道)选择,用于切换左右声道的数据。WS的频率等于采样频率,由系统主机提供。WS为“1”表示传输的是右声道的数据,WS为“0”表示传输的是左声道的数据。
SDATA 串行数据信号SD,用于传输二进制补码表示的音频数据。高位在前,低位在后, 接收端可以根据需要放弃部分低位数据;

五)CAN总线


六)ISO7816智能卡传输协议


© 著作权归作者所有

h
粉丝 9
博文 81
码字总数 57985
作品 0
长沙
技术主管
私信 提问
STM32F103 CAN总线配置与通信小记

STM32F103 CAN总线配置与通信小记 总线概念在此只做非常简要的介绍 CAN 是Controller Area Network 的缩写(CAN BUS),具有布线简单、典型的总线型结构、可最大限度的节约布线与维护成本、稳定...

zhengningwei
2017/03/11
0
0
【博文汇总】SPI总线学习

【博文汇总】SPI总线学习 【SPI总线协议介绍】 简要的介绍了SPI协议的技术性能、总线结构、接口定义、物理内部结构、时钟极性和时钟相位、传输时序、数据传输以及优缺点。通过该文章能多SPI...

长平狐
2013/06/03
44
0
求 Bootloader 源代码

哪位高手写过单片机的 BootLoader 呀? 求源码一看。 还有基于 CAN 总线通信的 在线更新程序的 协议及代码实现。谢谢。我目前从事汽车电子软件开发,接触的处理器都是Freescale的HC/HCS系列单...

Lnn_soar
2012/03/11
1K
3
如何让单片连入互联网,然后进行远程操作

现在都在讲究什么物联网,远程监控,其实这种技术很早以前就已经存在了,比如说基于CAN总线的操作之类的东西。只是那种都是在工业中用的比较广泛而已,没有面对普通的消费者而已。 废话不多说...

天蓬小猪
2015/05/30
443
11
LIN总线概要

随着汽车业的飞速发展,汽车电控系统的配置不断升级,使得车辆上的电子元件越来越多,其相互连接的网络结构也越来越复杂。过去所采用的电缆连接方式所带来的庞大布线负担,容易造成车体过重和...

青春无极限
2016/02/24
249
0

没有更多内容

加载失败,请刷新页面

加载更多

STM32进阶之串口环形缓冲区实现

队列的概念 在此之前,我们来回顾一下队列的基本概念: 队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO)的线性表,只允许在一端插入(入队),在另一端进行删除(出队)。 队列...

杰杰1号
29分钟前
10
0
设计模式-建造者模式

建造者模式 定义 将一个复杂对象的构建和它的表示分离,使得同样的构建过程创建出不同的表示。这句话理解起来优点抽象,我们打个简单的比方吧,中国人都喜欢做菜,做菜的时候后会放很多配料...

木本本
33分钟前
10
0
017、xml版本代码生成器配置

1、在pom.xml文件中增加mybatis-generator-maven-plugin插件 <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>......

北岩
45分钟前
7
0
用jQuery-Easy-UI编写注册页面

本文转载于:专业的前端网站➮用jQuery-Easy-UI编写注册页面 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content=......

前端老手
53分钟前
7
0
Git ssh配置

生成密钥对 ssh-keygen -t rsa -C "email@email.com"邮箱替换自己邮箱在地址C:\Users\账户\.ssh下,id_rsa、id_rsa.pub两个文件复制文件id_rsa.pub内容到github\gitlab的Settings-> SSH ......

JUKE
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部