常见接口电路介绍一、I2C总线简介1.什么是I2C?NXP半导体(原Philips半导体)于20多年前发明了一种简单的双向二线制串行通信总线,这个总线被称为Inter-IC或者I2C总线。目前I2C总线已经成为业界嵌入式应用的标准解决方案,被广泛地应用在各式各样基于微控器的专业、消费与电信产品中,作为控制、诊断与电源管理总线。多个符合I2C总线标准的器件都可以通过同一条I2C总线进行通信,而不需要额外的地址译码器。由于I2C是一种两线式串行总线,因此简单的操作特性成为它快速崛起成为业界标准的关键因素2.I2C总线的基本概念1)发送器(Transmitter):发送数据到总线的器件2)接收器(Receiver):从总线接收数据的器件3)主机(Master):初始化发送、产生时钟信号和终止发送的器件4)从机(Slave):被主机寻址的器件其线路结构图如下:如上图示,I2C总线具有如下特点:1)I2C总线是双向传输的总线,因此主机和从机都可能成为发送器和接收器。不论主机是发送器还是接收器,时钟信号SCL都要由主机来产生2)只需要由两根信号线组成,一根是串行数据线SDA,另一根是串行时钟线SCL3)SDA和SCL信号线都必须要加上拉电阻Rp(Pull-UpResistor)。上拉电阻一般取值3~10KΩ4)SDA和SCL管脚都是漏极开路(或集电极开路)输出结构3.I2C总线的信号传输1)3种速率可选择标准模式100kbps、快速模式400kbps、最高速率3.4Mbps2)具有特定的传输起始、停止条件a)起始条件:当SCL处于高电平期间时,SDA从高电平向低电平跳变时产生起始条件。起始条件常常简记为Sb)停止条件:当SCL处于高电平期间时,SDA从低电平向高电平跳变时产生停止条件。停止条件简记为P3)数据传输从确定从机地址开始a)多个从机可连接到同一条I2C总线上,它们之间通过各自唯一的器件地址来区分b)一般从机地址由7位地址位和一位读写标志R/W组成,7位地址占据高7位,读写位在最后。读写位是0,表示主机将要向从机写入数据;读写位是1,则表示主机将要从从机读取数据4)以字节为单位的数据传输方式a)I2C总线以字节(Byte)为单位收发数据,主机总是先发地址再发数据b)在I2C总线传输数据过程中,每传输一个字节,都要跟一个应答状态位。遵循“谁接收谁产生”的原则,即总是由接收器产生应答位,应答位为0表示接收器应答(ACK);为1则表示非应答(NACK)c)如果接收器在接收完最后一个字节的数据,或者不能再接收更多的数据时,应当产生非应答来通知发送器4.I2C总线数据传输时序图示1)传输格式图示(灰色为主机的工作时隙,白色为从机的工作时隙)S:起始位(START)SA:从机地址(SlaveAddress),7位从机地址W:写标志位(Write),1位写标志R:读标志位(Read),1位读标志A:应答位(Acknowledge),1位应答A:非应答位(NotAcknowledge),1位非应答D:数据(Data),每个数据都必须是8位P:停止位(STOP)2)传输时序示例5.I2C总线在手机上的常见应用所应用范围包括:摄像头、调频收音机芯片、音频编解码芯片、模拟电视、光电鼠标等二、SPI总线简介1.什么是SPI?串行外围设备接口SPI(serialperipheralinterface)总线技术是Motorola公司推出的一种同步串行接口,Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI用于CPU与各种外围器件进行全双工、同步串行通讯2.SPI总线应用线路图示如上图示,SPI总线具有如下特点:1)包含主机(MASTER)以及从机(SLAVE)2)由4条必要信号线组成:串行时钟线(SCLK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线(SS)3)如果需要增加外部从机,则相应需要增加对应此器件的低电平有效从机选择线(SS)3.SPI总线波特率和时钟模式1)SPI模块支持125种不同的波特率,最大波特率为系统时钟频率的四分之一2)SPI有四种时钟模式,由CLOCKPOLARITY和CLOCKPHASE位控制。CLOCKPOLARITY位选择时钟的有效沿是上升沿还是下降沿,CLOCKPHASE位选择是否有半个时钟周期的延时a)上升沿,无延时:SPI在时钟上升沿发送数据,在时钟的下降沿接收数据b)上升沿,有延时:SPI在时钟上升沿前半个周期发送数据,在时钟的上升沿接收数据c)下降沿,无延时:SPI在时钟下降沿发送数据,在时钟的上升沿接收数据d)下降沿,有延时:SPI在时钟下降沿前半个周期发送数据,在时钟的下降沿接收数据4种时钟模式如图所示4.SPI总线传输特点SPI是一个环形总线结构,其时序其实很简单,主要是在SCLK的控制下,两个双向移位寄存器进行数据交换,内部结构如下:以上升沿,无延时时钟模式为例,上升沿到来的时候,MOSI上的电平将被发送到从设备的寄存器中,下降沿到来的时候,MISO上的电平将被接收到主设备的寄存器中举例:假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对SPI的8个时钟周期的数据情况演示一遍(时钟的上升沿发送数据,在时钟的下降沿接收数据)(上面的上表示上升沿、下表示下降沿。这样就完成了两个寄存器8位的交换)5.SPI总线在手机上的常见应用所应用范围包括:LCD、触摸屏控制芯片等三、串口简介1.什么是串口?串口是计算机上一种非常通用的设备通信的协议。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口能够轻松实现远距离通信。2.串口应用线路图示典型地,串口通信使用3根线完成:(1)地线,(2)发送,(3)接收3.串口总线传输特点串口通信最重要的参数是波特率、起始位、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:1)波特率:a)这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数,通常串口的波特率为14400,28800和36600等b)波特率和距离成反比2)起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始3)数据位:这是衡量通信中实际数据位的参数,标准的值是5、7和8位4)停止位:标志着传送一个字符的结束,用逻辑“1”电平表示,典型的值为1,1.5和2位(1.5位是时间上的宽度,代表一个bit的1.5倍。例如你的波特率是1000bps,那么一个bit的宽度就是1ms,一个停止位是1ms,而1.5个停止位就是1.5ms了)5)奇偶校验位:在串口通信中一种简单的检错方式a)奇校验:人为的往信号中添加一个校验位来确保所发送的信号中“1”的数目为奇数个,如:0110,010110100,00000b)偶校验:人为的往信号中添加一个校验位来确保所发送的信号中“1”的数目为偶数个,如:0100,010110100,000104.串口数据传输时序图示(空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高)5.串口的扩展应用RS-232C是个人计算机上的通讯接口之一,是由电子工业协会(ElectronicIndustriesAssociation,EIA)所制定的异步传输标准接口。通常RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25)的型态出现,一般个人计算机上会有两组RS-232接口,分别称为COM1和COM2常用的RS-232引脚只有9根,它们是:1)联络控制信号线:a)DSR(DCE)数据发送准备好,DataSetReadyb)DTR数据终端(DTE)准备好,DataTerminalReadyc)RTSDTE请求DCE发送(RequestToSend)d)CTSDCE允许DTE发送(ClearToSend),该信号是对RTS信号的回答。e)DCD数据载波检测(DataCarrierDetection),当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收,并且由DCE将接收到的载波信号解调为数字信号,经RXD线送给DTEf)RI振铃信号(Ringing),当DCE收到对方的DCE设备送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫2)2个数据信号:a)发送TXDb)接收RXD3)1个信号地线:GND实际应用图示6.串口在手机上的常见应用通常只使用TXD,RXD,GND三根信号,用于蓝牙模块,程序调试信息读取等等四、USB简介1.什么是USB?USB是英文UniversalSerialBUS(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的2.普及USB的目的随着计算机硬件飞速发展,外围设备日益增多,键盘、鼠标、调制解调器、打印机、扫描仪早已为人所共知,数码相机、MP3随身听接踵而至,这么多的设备,如何接入个人计算机?USB就是基于这个目的产生的。USB是一个使计算机周边设备连接标准化、单一化的接口3.USB的拓朴结构1)USB的网络协议中每个USB的系统有且只有一个host它负责管理整个USB系统,包括USBDevice的连接与删除、与USBDevice的通信、总路线的控制等等2)Host端有一个RootHub,可提供一个或多个USB下行端口,每个端口可以连接一个USBHub或一个USBDevice3)USBHub是用于USB端口扩展的,即USBHub可以将一个USB端口扩展为多个端口。上图中的每个Func(Function)就是一个USBDevice,如USB键盘、USB鼠标、USBMODEM、USB硬盘等等4)CompoundDevice是指带一个Hub和一个或多个不可删除的USBDevice的复合设备5)一个USB系统可连接多达127个Function4.USB的设备类型(deviceclass)虽然USB设备都会表现USB的一些基本的特征,但是USB的设备还是可以分成多个不同类型。同类型的设备可以拥有一些共同的行为特征和工作协议从而使设备的驱动程序的书写变得简单一些。下表中就给出一些基本的USB的设备类型分类5.USB的电气特性USB连接器包含四条线:2条用于电源供电(VBUS和GND),2条用于USB数据传输(D+和D-)。VBUS提供5V电源,电流可达500mA。D+和D-为双向信号线,信号传输速率为12Mbps(每位83ns)。D+和D-信号电平为3.3V6.USB的特点1)USB为所有的USB外设提供了单一的易于使用的标准的连接类型。这样一来就简化了USB外设的设计,实现了单一的数据通用接口2)整个的USB的系统只有一个端口和一个中断节省了系统资源3)USB支持热插拔(hotplug)和PNP(Plug-and-Play),也就是说在不关闭PC的情况下可以安全的插上和断开USB设备4)USB在设备供电方面提供了灵活性。直接连接到Hub,或者是连接到Host的设备可以通过USB,也可以通过电池或者其它的电力设备来供电,或使用两种供电方式的组合并且支持节约能源的挂机和唤醒模式5)USB提供全速12Mbps的速率和低速1.5Mbps的速率来适应各种不同类型的外设,USB2.0还支持480Mbps的高速传输速率6)为了适应各种不同类型外围设备的要求,USB提供了四种不同的数据传输类型:控制传输,Bulk数据传输,中断数据传输和同步数据传输,同步数据传输可为音频和视频等实时设备的实时数据传输提供固定带宽7)USB的端口具有很灵活的扩展性,一个USB端口串接上一个USBHub就可以扩展为多个USB端口7.USB的传输方