文章直接来源:嵌入式大杂烩c#
在嵌入式系统中,板上通讯接口是指用于将各类集成电路与其余外围设备交互链接的通讯通路或总线。如下内容为经常使用板上通讯接口:包括I2C、SPI、UART、1-Wire:
架构
I2C总线
I2C总线是一种同步、双向、半双工的两线式串行接口总线
。这里,半双工的含义是指在任意给定的时刻,只有一个方向上是能够通讯的。异步
I2C总线最先由Philips半导体公司于20世纪80年代研发面市。I2C最初的设计目标是为微处理器/微控制器系统与电视机外围芯片之间的链接提供简单的方法。大数据
I2C总线由两条总线组成:串行时钟线SCL和串行数据线SDA。spa
SCL线——负责产生同步时钟脉冲。设计
SDA线——负责在设备间传输串行数据。3d
I2C总线是共享的总线系统,所以能够将多个I2C设备链接到该系统上。链接到I2C总线上的设备既能够用做主设备,也能够用做从设备。code
主设备负责控制通讯,经过对数据传输进行初始化/终止化,来发送数据并产生所需的同步时钟脉冲。blog
从设备则是等待来自主设备的命令,并响应命令接收。主设备和从设备均可以做为发送设备或接收设备。不管主设备是做为发送设备仍是接收设备,同步时钟信号都只能由主设备产生。接口
在相同的总线上,I2C支持多个主设备的同时存在。图1-1显示了I2C总线上主设备和从设备的链接关系。
当总线空闲时,SDA 和SCL 都处于高电平状态,当主机要和某个从机通信时,会先发送一个开始条件,而后发送从机地址和读写控制位,接下来传输数据(主机发送或者接收数据),数据传输结束时主机会发送中止条件。传输的每一个字节为8 位,高位在前,低位在后。
开始条件:SCL 为高电平时,主机将SDA 拉低,表示数据传输即将开始。
从机地址:主机发送的第一个字节为从机地址,高7 位为地址,最低位为R/W 读写控制位,1 表示读操做,0 表示写操做。
通常从机地址有7 位地址模式和10 位地址模式两种,若是是10 位地址模式,第一个字节的头7 位是11110XX 的组合,其中最后两位(XX)是10 位地址的两个最高位,第二个字节为10 位从机地址的剩下8 位,以下图所示:
应答信号:每传输完成一个字节的数据,接收方就须要回复一个ACK(acknowledge)。写数据时由从机发送ACK,读数据时由主机发送ACK。当主机读到最后一个字节数据时,可发送NACK(Notacknowledge)而后跟中止条件。
数据:从机地址发送完后可能会发送一些指令,依从机而定,而后开始传输数据,由主机或者从机发送,每一个数据为8 位,数据的字节数没有限制。
重复开始条件:在一次通讯过程当中,主机可能须要和不一样的从机传输数据或者须要切换读写操做时,主机能够再发送一个开始条件。
中止条件:在SDA 为低电平时,主机将SCL 拉高并保持高电平,而后在将SDA 拉高,表示传输结束。
SPI总线
SPI总线是同步、双向、全双工的4线式串行接口总线
,最先由Motorola公司提出。SPI是由“单个主设备+多个从设备”构成的系统。须要说明的是:在系统中,只要任意时刻只有一个主设备是处于激活状态的,就能够存在多个SPI主设备。常运用于EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器和数字信号解码器之间实现通讯。
为了实现通讯,SPI共有4条信号线,分别是:
(1)主设备出、从设备入(Master Out Slave In,MOSI):由主设备向从设备传输数据的信号线,也称为从设备输入(Slave Input/Slave Data In,SI/SDI)。
(2)主设备入、从设备出(Master In Slave Out,MISO):由从设备向主设备传输数据的信号线,也称为从设备输出(Slave Output/Slave Data Out,SO/SDO)。
(3)串行时钟(Serial Clock,SCLK):传输时钟信号的信号线。
(4)从设备选择(Slave Select,SS):用于选择从设备的信号线,低电平有效。
SPI使用方法:
上图所示芯片有2 个SPI 控制器,SPI 控制器对应SPI 主设备,每一个SPI 控制器能够链接多个SPI从设备。挂载在同一个SPI 控制器上的从设备共享3 个信号引脚:SCK、MISO、MOSI,但每一个从设备的CS 引脚是独立的.
主设备经过控制CS 引脚对从设备进行片选,通常为低电平有效。任什么时候刻,一个SPI 主设备上只有一个CS 引脚处于有效状态,与该有效CS 引脚链接的从设备此时能够与主设备通讯。
因此,SPI通讯方式可使用“一主多从”的结构进行通讯。每一个链接到总线上的器件都有惟一的地址,主设备启动数据传输并产生时钟信号,从设备被主设备寻址,同一时刻只容许有一个主设备。
从设备的时钟由主设备经过SCLK 提供,MOSI、MISO 则基于此脉冲完成数据传输。SPI 的工做时序模式由CPOL(Clock Polarity,时钟极性)和CPHA(Clock Phase,时钟相位)之间的相位关系决定,CPOL 表示时钟信号的初始电平的状态,CPOL 为0 表示时钟信号初始状态为低电平,为1 表示时钟信号的初始电平是高电平。CPHA 表示在哪一个时钟沿采样数据,CPHA 为0 表示在首个时钟变化沿采样数据,而CPHA 为1 则表示在第二个时钟变化沿采样数据。
根据CPOL 和CPHA 的不一样组合共有4 种工做时序模式:CPOL=0,CPHA=0、CPOL=0,CPHA=一、CPOL=1,CPHA=0、CPOL=1,CPHA=1
UART
UART——通用异步收发传输器
,UART 做为异步串口通讯协议的一种,工做原理是将传输数据的每一个字符一位接一位地传输。在应用程序开发过程当中使用频率较高的数据总线。
基于UART的数据传输是异步形式的串行数据传输。基于UART的串行数据传输不须要使用时钟信号来同步传输的发送端和接收端,而是依赖于发送设备和接收设备之间预约义的配置。
对于发送设备和接收设备来讲,二者的串行通讯配置(波特率、单位字的位数、奇偶校验、起始位数与结束位、流量控制)应该设置为彻底相同。经过在数据流中插入特定的比特序列,能够指示通讯的开始与结束。当发送一个字节数据的时候,须要在比特流的开头加上起始位,并在比特流的末尾加上结束位。数据字节的最低位紧接在起始位以后。
UART 串口的特色是将数据一位一位地顺序传送,只要2 根传输线就能够实现双向通讯,一根线发送数据的同时用另外一根线接收数据。
UART 串口通讯有几个重要的参数,分别是波特率、起始位、数据位、中止位和奇偶检验位,对于两个使用UART 串口通讯的端口,这些参数必须匹配,不然通
起始位:表示数据传输的开始,电平逻辑为“0” 。
数据位:可能值有五、六、七、八、9,表示传输这几个bit 位数据。通常取值为8,由于一个ASCII 字符值为8 位。
奇偶校验位:用于接收方对接收到的数据进行校验,校验“1” 的位数为偶数(偶校验) 或奇数(奇校验),以此来校验数据传送的正确性,使用时不须要此位也能够。
中止位:表示一帧数据的结束。电平逻辑为“1”。
波特率:串口通讯时的速率,它用单位时间内传输的二进制代码的有效位(bit) 数来表示,其单位为每秒比特数bit/s(bps)。常见的波特率值有4800、9600、14400、38400、115200 等,数值越大数据传输的越快,波特率为115200 表示每秒钟传输115200 位数据。
1-Wire接口
1-Wire接口是由Maxim Dallas半导体公司(首页为http://www.maxim-ic.com)开发的异步半双工通讯协议
,也称为Dallas 1-Wire®协议。其中,按照主-从通讯模型,只使用单条信号线DQ实现通讯。
1-Wire总线的一个重要特征在于,该总线容许在信号线上传输能量。1-Wire接口支持在总线上链接单个主设备以及一个或多个从设备。
并行接口
板上并行接口(parallel interface)一般用于系统与外围设备之间的通讯,其中,外围设备经过存储器映射到系统的主控端。只要嵌入式系统的主控处理器/控制器含有并行总线,支持并行总线的设备就能够直接链接到该总线系统上。外围设备与主控端之间具备控制信号接口,能够控制并行总线上的数据通讯。这里,通讯的控制信号包括读/写信号和设备选择信号。通常说来,外围设备具备设备选择线;只有当主控处理器选通该线的时候,该设备才是有效的。
数据传输的方向能够是从主控端到外围设备,也能够是从外围设备到主控端;这是经过读和写控制信号线进行控制的。只有主控处理器可以控制读控制信号和写控制信号。通常说来,外围设备经过存储器映射到主控处理器,从而能够访问分配的地址范围。此时,设备须要使用地址译码电路来产生芯片选择信号。
当处理器选择的地址位于设备指定范围内的时候,译码电路对芯片选择线进行触发,从而激活设备。而后,处理器可使能相应的控制线(分别是RD\与WD\),从而由设备读出数据,或者是向设备写入数据。
为了实现并行通讯,系统须要严格遵循时序规范。前面已经提到过,并行通讯是由主控处理器启动的。若是某外围设备想要对通讯进行初始化,那么能够向处理器发出中断,告知相关信息。为了实现上述功能,设备的中断线须要链接处处理器的中断线上,而且主控处理器须要触发相应的中断。须要说明的是,主控处理器的数据总线宽度决定了并行接口的宽度,能够是4位、8位、16位、32位、64位等。设备支持的总线宽度应该与主控处理器彻底相同。
3.美国再发实体清单,北理、南航、南理工上榜,“国防七子”终于齐了!
5.Windows 拥抱 Android,微软在下怎样的一步棋?
6.散装vs批发谁效率高?变量访问被ARM架构安排的明明白白