串行接口介绍CellorCaoAudioStream串行通信的类型串行异步通信数据格式工作原理•异步通信是以字符为单位传送的,每传送一个字符,以起始位作为开始标志,以停止位作为结束标志,字符之间的间隔(空闲)传送高电平。传送开始后,接收设备不断检测传输线上是否有起始位到来,当接收到一系列“1”后,检测到第一个“0”,说明起始位出现,就开始接收所规定的数据位、奇偶校验位及停止位。经过接收器处理,将停止位去掉,把数据位拼装成为一个字节数据,经校验无误,则接收完毕。1/0111/01/01/01/01/01/01/01/0第n个字符5~8位数据奇偶校验位停止位起始位起始位1/01/001/01/0低位高位停止位奇偶校验位第(n-1)个字符第(n+1)个字符串行通信的类型串行同步通信数据格式工作原理:在通信协议中,通信双方约定同步字符的编码格式和同步字符的个数。在传送过程中,接收设备首先搜索同步字符,与事先约定的同步字符进行比较,如比较相同,则说明同步字符已经到来,接收方就开始接收数据,并按规定的数据长度拼装成一个个数据字节,直至整个数据块接收完毕,经校验无误传送错误时,结束一帧信息的传送。(接收设备和发送设备必须使用同一时钟)同步字符数据1数据2…数据n校验字符1校验字符2UART定义:通用异步收发器(UART:UniversalAsynchronousReceiver/Transmitter)是一种串行接口,用于控制计算机与串行设备。它提供了一种简单的途径,使两个器件无需共享一个时钟信号就能进行通信。类型硬件UART:控制计算机与串行设备的芯片软件UART:控制计算机与串行设备的程序功能(硬件):由计算机内部传送过来的并行数据转换为输出的串行数据流,把计算机外部来的串行数据转换为并行数据,供计算机内部使用并行数据的器件使用。输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。UARTUARTINS8250的内部结构UART数据缓冲寄存器读/写控制逻辑数据发送器数据接受器波特率发生器MODEM控制逻辑中断控制器8T16T16T…时钟(RCLK)16T确定已检测到起始位检测数据位起始位数据线(SIN)D0D116T…起始位和数据位的采样时序UARTUARTINS8250的引脚信号D0D1D3D4D5D6D7RCLKSINSOUTCS0CS1/CS2/BAUDOUTXTAL1XTAL2/DOSTRDOSTRDOSTRVCCRI/DCD/DSR/CTSMR/OUT1/DTR/RTS/OUT2INTRNCA0A1A2/ADSCSOUTDDISDISTRD2/DISTRI2C总线含义:I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式(数据线SDA和时钟线SCL)串行总线,用于连接微控制器及其外围设备。特点:简单性有效性多主控性I2C总线工作原理总线构成:I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。各种被控制电路均并联在这条总线上,每个电路和模块都有唯一的地址,在信息的传输过程中,器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器)。主控器件通常为微控制器I2C总线信号类型•开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据•结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据•应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。I2C总线数据的有效性SDA线上的数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。I2C总线传输数据字节格式:发送到SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制,每个字节后必须跟一个响应位。如果从机要完成一些其他功能后才能接收或发送下一个完整的数据字节,可以使时钟线SCL保持低电平迫使主机进入等待状态。当从机准备好接收下一个数据字节并释放时钟线SCL后,数据传输继续。I2C总线传输数据响应:相关的响应时钟脉冲由主机产生,在响应的时钟脉冲期间,发送器释放SDA线(高)。在响应的时钟脉冲期间,接收器必须将SDA线拉低使它在这个时钟脉冲的高电平期间保持稳定的低电平。•从机不响应从机地址时•响应但不能接受更多的字节时•从主机(发送器)——主机(接收器)时I2C总线时钟同步所有主机在SCL线上产生它们自己的时钟来传输I2C总线上的报文。数据只在时钟的高电平周期有效。首先完成高电平周期的器件会再次将SCL线拉低。产生的同步SCL时钟的低电平周期由低电平时钟周期最长的器件决定,而高电平周期由高电平时钟周期最短的器件决定。I2C总线仲裁主机只能在总线空闲的时侯启动传输当SCL线是高电平时仲裁在SDA线发生I2C总线用时钟同步机制作为握手时钟同步机制除了在仲裁过程中使用外,还可以用于使能接收器处理字节级或位级的快速数据传输。在字节级的快速传输中器件可以快速接收数据字节,但需要更多时间保存接收到的字节或准备另一个要发送的字节,然后从机以一种握手过程在接收和响应一个字节后使SCL线保持低电平,迫使主机进入等待状态,直到从机准备好下一个要传输的字节。I2C总线7位寻址7位地址格式B3B2B1B0A0A0A1A2设备厂商标示地址标示读/写操作SPISPI介绍SPI接口的全称是“SerialPeripheralInterface”,意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的、全双工、同步串行总线SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:•MOSI–主器件数据输出,从器件数据输入•MISO–主器件数据输入,从器件数据输出•SCLK–时钟信号,由主器件产生•/SS–从器件使能信号,由主器件控制SPI单主单从模式单主多从模式SPISPI基本组成SPICR:SPI控制寄存器SPICSR:SPI控制/状态寄存器SPIDR:SPI数据寄存器SPI主模式操作主模式下,内部电平必须一直保持为高串行时钟从SCK引脚上输出SPI主模式操作配置SPI主模式功能•设置SPR[2~0]位选择时钟频率•配置CPOL和CPHA位,选择时钟极性和相位。•对SSM位和SSI位的设置选择主模式操作方式•设置MSTR和SPE位为1主模式发送过程•配置完成后,当向SPIDR寄存器中写入一个字节数据时,数据字节被写入8位移位寄存器,然后移位寄存器由数据最高位开始串行移出各位到MOSI引脚,字节传输过程开始•字节传输结束时:–硬件设置SPIF位为1–如果此时SPIE位=1,且CC寄存器中的中断屏蔽位被清除,则产生一次中断SPISPI数据、时钟极性和相位图SPI从模式操作在从模式下,操作的串行时钟来自于主器件,由SCK引脚上输入,MISO和MOSI引脚的输入输出方向互换。设置从模式操作•时钟极性和相位应与主器件一致•对引脚进行设置,方法类似主模式•清除MSTR位,同时还要设置SPE位=1,以启用SPI的I/O复用功能从模式接收过程•从器件接收到时钟信号和在MOSI引脚上的数据最高位时,数据传输过程开始•数据传输结束时–当SPIF为1时,访问SPICSR寄存器一次–对SPIDR寄存器进行一次读或写操作I2C与SPI的比较SPI实施起来较I2C要复杂:SPI协议没有定义寻址机制,需通过外部SS信号线选择设备,当出现多slave应用时,需要多根SS信号线SPI总线不支持总线控制权仲裁,只能用于单Master的场合,而I2C可以支持多Master的应用SPI协议相对于I2C要简单,没有握手机制,数据传输效率高,速度快,通常可以达到几Mbit/s,而I2C串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。SPI没有指定的流控制,没有应答机制确认是否接收到数据,而I2C有应答机制。I2SI2S(Inter-ICSoundBus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。在飞利浦公司的I2S标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。I2S有3个主要信号:•串行时钟(SCLK)–SCLK的频率=2×采样频率×采样位数•帧时钟(LRCK)–为“1”表示正在传输的是左声道的数据–为“0”则表示正在传输的是右声道的数据•串行数据(SDATA)–就是用二进制补码表示的音频数据I2S一个典型的I2S信号I2SDSP芯片ADSP-21065L中I2S实例PCMPCM(PulseCodeModulation):将声音等模拟信号经过抽样、量化、编码后转换成数字信号。PCM通信系统:抽样定理:如果对某一带宽有限的时间连续信号(模拟信号)进行抽样,且抽样速率达到一定数值,那么根据这些抽样值就能准确地确定原信号。量化:利用预先规定的有限个(M=2N)电平来表示模拟抽样值的过程。抽样量化编码信道干扰译码低通滤波A/D变换D/A变换