UART以及其他接口协议
常见硬件通信(SPI、I2C、CAN、USB、UART)协议介绍

常见硬件通信(SPI、I2C、CAN、USB、UART)协议介绍其中,CS是从芯片是否被主芯片选中的控制信号,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),主芯片对此从芯片的操作才有效。
这就使在同一条总线上连接多个SPI设备成为可能。
接下来就负责通讯的3根线了。
通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。
这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。
数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。
完成一位数据传输,输入也使用同样原理。
因此,至少需要8次时钟信号的改变(上沿和下沿为一次),才能完成8位数据的传输。
SCLK信号线只由主设备控制,从设备不能控制信号线。
同样,在一个基于SPI的设备中,至少有一个主控设备。
这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。
也就是说,主设备通过对SCLK时钟线的控制可以完成对通讯的控制。
通过逻辑分析仪采集 spi 总线数据,可以看到四个通道的波形变化,判断信号的时钟周期、时钟相位和极性,并能够解码获取实际传输的数据和指令。
SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。
不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。
最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
I2C协议I2C推荐文章:《IIC通信协议,搞懂这篇就够了》注:后台发送“IIC” 即可获取基于STM32上实现软件模拟IIC的完整代码。
uart总线协议标准文档

uart总线协议标准文档
Uart协议,也就是异步串行通信协议,是属于链路层的协议。
它规定了数据传送bit级的格式。
需要开始位,数据位,奇偶校验位,结束标志位。
具体要求可以搜索 uart协议的详细信息。
该协议之下包括了RS232-C,RS485等标准,也可以说是RS232和RS485协议,还可以称为RS232和RS485接口(这是因为UART本身也可翻译为通用异步串行收发器)。
无论RS232还是RS485,都属于物理层的协议标准,即二者都定义了各自的电平以及机械等接口标准。
另外,RS232只能实现单对单的通信,比如一个DB-9的数据线,只能连接两个终端。
而RS485则不同,他可以实现多台终端的联网,具体的接口可以采用DB-9也可以采用更加简单的双绞线连接。
总之,UART协议是不同终端之间通信的相互约定,他规定了数据的发送格式,即每一位二级制数据的具体意义;而RS232和RS485则规定了该协议在实现的时候的具体电平标准和机械标准。
对于RS232可以使用所有9根线,也可以只使用2,3,5,称为miniRS232,也可以同时在一个DB-9接口中同时接入两套输入输出信号,即两个RXD和两个TXD,当然此时要求另一个终端的接口也有相同的接线方式,当然也可以将一套禁用(配置芯片内寄存器),而只使用2,3,5,此时该接口退化为
miniRS232。
对于RS485而言,只使用2,3,5,或者只使用2,3,也可以简单的采用双绞线连接在两个终端之间。
嵌入式开发常用通信协议(总结)

嵌⼊式开发常⽤通信协议(总结)在嵌⼊式系统中,板上通信接⼝是指⽤于将各种集成电路与其他外围设备交互连接的通信通路或总线。
以下内容为常⽤板上通信接⼝:包括I2C、SPI、UART、1-Wire1. I2C总线(Inter Integrated Circuit)I2C总线是⼀种同步、双向、半双⼯的两线式串⾏接⼝总线。
这⾥,半双⼯的含义是指在任意给定的时刻,只有⼀个⽅向上是可以通信的。
I2C总线最早由Philips半导体公司于20世纪80年代研发⾯市。
I2C最初的设计⽬标是为微处理器/微控制器系统与电视机外围芯⽚之间的连接提供简单的⽅法。
I2C总线由两条总线组成:串⾏时钟线SCL和串⾏数据线SDA。
SCL线——负责产⽣同步时钟脉冲。
SDA线——负责在设备间传输串⾏数据。
I2C总线是共享的总线系统,因此可以将多个I2C设备连接到该系统上。
连接到I2C总线上的设备既可以⽤作主设备,也可以⽤作从设备。
主设备负责控制通信,通过对数据传输进⾏初始化/终⽌化,来发送数据并产⽣所需的同步时钟脉冲。
从设备则是等待来⾃主设备的命令,并响应命令接收。
主设备和从设备都可以作为发送设备或接收设备。
⽆论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产⽣。
在相同的总线上,I2C⽀持多个主设备的同时存在。
图1-1显⽰了I2C总线上主设备和从设备的连接关系。
图1-1 图1-2 I2C数据传输格式 当总线空闲时,SDA 和SCL 都处于⾼电平状态,当主机要和某个从机通讯时,会先发送⼀个开始条件,然后发送从机地址和读写控制位,接下来传输数据(主机发送或者接收数据),数据传输结束时主机会发送停⽌条件。
传输的每个字节为8 位,⾼位在前,低位在后。
• 开始条件: SCL 为⾼电平时,主机将SDA 拉低,表⽰数据传输即将开始。
• 从机地址:主机发送的第⼀个字节为从机地址,⾼7 位为地址,最低位为R/W 读写控制位,1 表⽰读操作,0 表⽰写操作。
uart协议

uart协议UART(Universal Asynchronous Receiver/Transmitter)即通用异步收发传输器,是一种串行通信接口协议。
它通常被用于微处理器和外围设备之间的通信,如模拟/数字转换器、蓝牙模块、无线模块等。
UART协议的传输速率取决于波特率。
波特率是串口通信中传输的数据速率,通常用bps(位/秒)表示。
UART协议可以通过设置不同的波特率进行不同的数据传输速率。
由于它是一种异步协议,所以不需要时钟信号同步数据传输,而是通过起始位、数据位、校验位和停止位组成数据帧进行传输。
数据帧格式如下:| 起始位 | 数据位 | 奇偶校验位 | 停止位 || ------ | ------ | ---------- | ------ || 1位 | 5-9位 | 0/1/2 | 1/2位 |起始位通常为逻辑“0”,表示数据开始传输。
数据位可以设置为5-9位,分别表示传输数据的长度为5-9位。
奇偶校验位可选0、1、2三种,用于检测数据传输的正确性。
停止位可以设置为1位或2位,用于表示数据传输的结束。
UART协议的优点是通用性很强,可以应用于许多不同类型的设备之间的通信。
另外,由于它是一种硬件协议,所以速度比软件协议快,并且数据传输可靠性高。
但在长距离传输时,由于串口波形的失真,可能会导致数据传输出现错误。
为了在UART协议中实现更高的数据传输速率,有时会采用流控制。
流控制可以通过软件或硬件实现,用于减少数据传输中的错误。
总之,UART协议是一种通用的串行通信协议,应用广泛,可以实现快速可靠的数据传输。
通用接口协议(串口,iic,spi,can,TCPIP协议)

通⽤接⼝协议(串⼝,iic,spi,can,TCPIP协议) UARTUART通信⽅式:异步串⾏全双⼯通信⽅式异步通信:有通信速度要求。
UART通信速度由两个设备⾃⼰决定。
UART通信有⼀个数据格式。
UART通信四要素:波特率、数据位长度、校验位、停⽌位。
芯⽚通信过程中将这四个要素配好,完成了⼀⼤半功能。
备注:⾃⼰⽤过的开发版:STM32F407VGIIC协议:iic有两根线:⼀根时钟线,⼀个数据线。
iic有⼀个起始信号:时钟线拉⾼,数据从⾼电平到低电平,形成iic的起始信号iic是如何发送数据的:起始信号+设备地址+数据+结束信号7.1 字节格式发送到 SDA 线上的每个字节必须为 8 位每次传输可以发送的字节数量不受限制每个字节后必须跟⼀个响应位⾸先传输的是数据的最⾼位 MSB 见图 6如果从机要完成⼀些其他功能后例如⼀个内部中断服务程序才能接收或发送下⼀个完整的数据字节可以使时钟线 SCL 保持低电平迫使主机进⼊等待状态当从机准备好接收下⼀个数据字节并释放时钟线 SCL 后数据传输继续7.2 响应数据线低电平时产⽣应答,可继续发送,不然应为⾼电平,主机产⽣结束条件项⽬中的iic:HDC2010、DAC5574HDC2010:它是⼀个测量环境温湿度的⼀个芯⽚(IC),湿度和温度数字传感器8位的⼀个寄存器使⽤过程如下:使⽤iic进⾏寄存器的初始化:复位、关闭中断、启动测量寄存器//等待测量完成//去读取温湿度寄存器的数据。
void HDC2010Init(void){HDC2010WriteReg(HDC2010_RESET_DRDY_INT_CONF,SOFT_RES_NORMAL|ODR_1_120HZ|HEAT_EN_OFF|DRDY_OR_INT_EN_HIGH_Z); //正常复位、1/120输出速度、DRDY/INT_EN 引脚输出为⾼阻,不中断HDC2010WriteReg(HDC2010_INTERRUPT_MASK,DRDY_MASK_DISABLE|TH_MASK_DISABLE|TL_MASK_DISABLE|HH_MASK_DISABLE|HL_MASK_DISABLE); //中断掩码寄存器设置,所有中断关HDC2010WriteReg(HDC2010_MEASUREMENT_CONF,TEM_RES_14BIT|HUM_RES_14BIT|MEAS_CONF_TEM_HUM|MEAS_TRIG_START);//测量寄存器设置,温度14bit,温湿度均使⽤、并且启动测量}void HDC2010Read(void){unsigned short temperture=0;unsigned short humidity=0;float temperture_temp=0;float humidity_temp=0;while(HDC2010ReadReg(HDC2010_INTERRUPT_DRDY)&DRDY_START_READAY!=DRDY_START_READAY);//等待测量完成temperture=HDC2010ReadRegU16(HDC201_TEMPERATURE_LOW);humidity=HDC2010ReadRegU16(HDC201_HUMIDITY_LOW);//printf("temperture=%d\n",temperture);//printf("humidity=%d\n",humidity);temperture_temp=(float)(((float)temperture)*165/65536) - 40;humidity_temp=(float)(((float)humidity)*165/65536);if(temperture_temp<0)printf("00");elseprintf("%.2d",(int)temperture_temp);//printf("%d\n",(int)humidity_temp);}DAC5574是⼀个模拟电压输出的芯⽚。
fpga常用接口协议

fpga常用接口协议FPGA常用接口协议随着科技的不断发展,FPGA(现场可编程门阵列)在数字电路设计中的应用越来越广泛。
FPGA常用接口协议是指在FPGA与其他设备之间进行数据交换时所使用的通信协议。
本文将介绍几种常见的FPGA接口协议,包括SPI、I2C、UART和PCIe。
一、SPI(串行外设接口)协议SPI是一种串行通信协议,可以实现FPGA与外设之间的数据传输。
SPI接口由四条线组成,分别是时钟信号(SCLK)、主设备输出从设备输入(MOSI)、主设备输入从设备输出(MISO)和片选信号(CS)。
SPI协议采用主从模式,主设备通过控制时钟信号和片选信号来与从设备进行通信。
SPI接口的优点是通信速度快,但只能实现点对点的通信。
二、I2C(串行总线接口)协议I2C是一种串行通信协议,可以实现FPGA与多个外设之间的数据传输。
I2C接口由两条线组成,分别是时钟信号(SCL)和数据信号(SDA)。
I2C协议采用主从模式,主设备通过控制时钟信号和数据信号来与从设备进行通信。
I2C接口的优点是可以同时连接多个从设备,但通信速度相对较慢。
三、UART(通用异步收发传输)协议UART是一种异步串行通信协议,可以实现FPGA与其他设备之间的数据传输。
UART接口由两条线组成,分别是发送线(TX)和接收线(RX)。
UART协议采用点对点通信,通过发送和接收线来进行数据传输。
UART接口的优点是通信简单易用,但通信速度相对较慢。
四、PCIe(外部总线接口)协议PCIe是一种高速串行总线接口协议,可以实现FPGA与计算机之间的数据传输。
PCIe接口由多条差分信号线组成,包括数据传输线(TX和RX)和控制信号线(CLK、RESET等)。
PCIe协议采用主从模式,通过数据传输线和控制信号线来实现高速数据传输。
PCIe接口的优点是通信速度快,但连接和配置相对复杂。
总结:本文介绍了几种常见的FPGA常用接口协议,包括SPI、I2C、UART 和PCIe。
STM的通信接口和协议支持
STM的通信接口和协议支持在嵌入式系统设计中,STM(System Timer Module)的通信接口和协议支持起着至关重要的作用。
通过合理选择和配置通信接口以及支持的协议,可以有效提高系统的稳定性、可靠性和性能。
本文将就STM的通信接口以及协议支持展开讨论,并介绍其在嵌入式系统中的应用。
一、通信接口STM提供了多种通信接口,方便与外部设备进行数据交换和通信。
常见的通信接口包括UART、SPI和I2C。
1. UART(Universal Asynchronous Receiver/Transmitter)UART是一种常见的串行通信接口,适用于长距离传输和点对点通信。
它以异步方式传输数据,通过发送和接收线路进行双向通信。
STM芯片上的UART通信接口可配置波特率、数据位数、校验位和停止位等参数,以满足不同应用的需求。
2. SPI(Serial Peripheral Interface)SPI是一种高速的串行通信接口,适用于短距离传输和多设备通信。
它以同步方式传输数据,通过主从模式进行通信。
STM芯片上的SPI通信接口支持全双工通信、多主模式和多种SPI模式选择,可实现高效的数据传输和设备间的快速通信。
3. I2C(Inter-Integrated Circuit)I2C是一种两线制串行通信接口,适用于短距离传输和多设备通信。
它以同步方式传输数据,通过主从模式进行通信。
STM芯片上的I2C通信接口支持多主模式、多种I2C模式选择以及高速模式等,可实现低功耗的设备间通信。
二、协议支持STM芯片的通信接口还支持多种通信协议,如CAN、Ethernet和USB等。
1. CAN(Controller Area Network)CAN是一种广泛应用于汽车电子和工业自动化等领域的串行通信协议。
它具有高可靠性、抗干扰能力强等特点。
STM芯片上的CAN通信接口支持多种CAN协议和模式,可实现数据的可靠传输和实时性要求。
UART接口
数据通信的几个术语:并行:数据各位同时进行传送串行:数据逐位顺序进行传送全双工:(串行通信)收/发可同时进行半双工:(串行通信)收/发不可同时进行异步串行通信:以字符为单位进行传送同步串行通信:以数据块为单位进行传送波特率(bps.):1.UARTUART(Universal Asynchronous Receiver and Transmitter)通用异步收发器(异步串行通信口),是一种通用的数据通信协议,它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART 是异步串行通信口的总称。
而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容,这些东东都是物理层的概念。
通信协议,是属于通信网络中的数据链路层的概念。
1.2 UART通信协议UART使用的是异步,串行通信。
串行通信是指利用一条传输线将资料一位位地顺序传送。
特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。
异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。
数据传送速率用波特率来表示,即每秒钟传送的二进制位数。
例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。
数据通信格式如下图:其中各位的意义如下:起始位:先发出一个逻辑”0”信号,表示传输字符的开始。
数据位:可以是5~8位逻辑”0”或”1”。
如ASCII码(7位),扩展BCD码(8位)。
小端传输校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)停止位:它是一个字符数据的结束标志。
三种常见嵌入式设备通信协议
三种常见嵌入式设备通信协议嵌入式设备通信协议是指用于嵌入式系统中不同设备之间进行通信的标准或规范。
它们定义了设备之间如何交换数据、建立连接并实现通信的方式。
下面将介绍三种常见的嵌入式设备通信协议。
1.SPI(串行外围设备接口)SPI是一种常用的传输协议,用来连接微控制器和外围设备,主要应用于短距离的高速数据传输。
SPI采用四线的全双工方式进行通信,包括主设备(Master)和从设备(Slave)。
主设备通过时钟信号(SCLK)控制数据传输时序,并通过一个主设备选择信号(SS)选择与其通信的从设备。
SPI支持半双工和全双工通信模式,数据传输速率可达几十MHz。
2. I2C(Inter-Integrated Circuit)I2C是一种串行通信协议,广泛应用于连接不同的嵌入式设备,如传感器、存储器和其他外围设备。
I2C使用两根双向的串行数据线(SDA和SCL)进行通信。
在I2C总线上,设备通过一个唯一的地址进行寻址,可以支持多个从设备连接到同一总线上。
I2C具有简单、灵活、成本低廉的特点,数据传输速率一般在100kHz到3.4MHz之间。
3. UART(Universal Asynchronous Receiver Transmitter)UART是一种普遍使用的异步串行通信协议,在嵌入式系统中常用于连接计算机和外部设备,如调试器、无线模块和显示器。
UART通过两条数据线(TX和RX)进行全双工的异步串行通信,数据传输时,发送方和接收方需要预设一致的波特率和数据格式。
UART协议简单、可靠,并且能够支持相对低速的数据传输。
除了上述提到的三种嵌入式设备通信协议,还有很多其他常见的通信协议,如CAN(Controller Area Network)、Ethernet、USB (Universal Serial Bus)等。
这些通信协议根据不同的应用需求和硬件平台进行选择,可以实现设备之间的可靠、高效的数据通信。
UART以及其他接口协议
UART以及其他接口协议UART,全称通用异步收发传输协议(Universal Asynchronous Receiver Transmitter),是一种同步和异步串行通信的标准协议。
它是应用于计算机串行端口通信的一种通信方式,由发送方和接收方之间通过一根数据线进行双向数据传输。
UART常用于连接计算机和外部设备,比如调制解调器、传感器、显示屏等。
UART的工作原理是通过固定的波特率(Baudrate)将数据分割为连续的帧发送。
每个帧由起始位、数据位、奇偶校验位和停止位组成。
发送方将数据输出到串行数据线上,接收方在接收数据同时进行同步,通过检测起始位的时刻来同步接收数据,然后按照固定的数据位顺序读取数据。
除了UART,还有一些其他常用的接口协议,包括I2C、SPI和CAN。
I2C,全称为Inter-Integrated Circuit,是一种短距离数据传输的串行通信协议,也被称为二线制串行总线。
I2C由两根线组成,一根为数据线(SDA),用于传输数据;另一根为时钟线(SCL),用于同步数据传输的时序。
I2C可以连接多个设备,通过设备地址进行通信。
SPI,全称为Serial Peripheral Interface,是一种同步的串行通信协议。
SPI通常由一个主设备和多个从设备组成,主设备负责控制通信的时序,并向从设备发送数据。
SPI使用了四根线,包括一个片选线(CS)用于选择从设备,一个时钟线(CLK)用于同步数据传输,一个主从数据线(MOSI)用于主设备向从设备发送数据,以及一个从主数据线(MISO)用于从设备向主设备发送数据。
CAN,全称为Controller Area Network,是一种用于实时应用的串行通信协议。
CAN常用于汽车电子系统、工业自动化等领域。
CAN总线由两根线组成,一根为CAN_H,用于传输高电平;另一根为CAN_L,用于传输低电平。
CAN使用触发型通信方式,在总线上允许多个设备同时发送数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UART以及其他接口协议2007-06-26 16:42由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。
目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。
微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。
这些总线在速度、物理接口要求和通信方法学上都有所不同。
本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。
为了说明方便起见,本文的阐述是基于微处理器的设计。
串行与并行相比串行相比于并行的主要优点是要求的线数较少。
例如,用在汽车工业中的LIN串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。
较少的线意味着所需要的控制器引脚较少。
集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。
相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。
另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB板面积更大、更复杂,从而增加了硬件成本。
此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。
例如,可以很容易地去掉总线上旧器件并用新的来替代。
串行总线的故障自诊断和调试也非常简单,可以很容易地跟踪网络中一个有故障的器件并用新器件替换而不会干扰网络。
但另一方面,并行总线比串行速度快。
例如,Rambus公司的“Redwood”总线速度可高达,而最高的串行速度不会超过几个兆赫。
在工业和汽车应用中常用的串行协议1. UARTUART是一种通用串行数据总线,用于异步通信。
该总线双向通信,可以实现全双工传输和接收。
在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。
a. UART通信UART首先将接收到的并行数据转换成串行数据来传输。
消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。
接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。
如果选择了奇偶,UART就在数据位后面加上奇偶位。
奇偶位可用来帮助错误校验。
在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。
UART也产生额外的信号来指示发送和接收的状态。
例如,如果产生一个奇偶错误,UART就置位奇偶标志。
b. 数据方向和通信速度"数据传输可以首先从最低有效位(LSB)开始。
然而,有些UART允许灵活选择先发送最低有效位或最高有效位(MSB)。
微控制器中的UART传送数据的速度范围为每秒几百位到。
例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高达。
UART波特率还受发送和接收线对距离(线长度)的影响。
目前,市场上有只支持异步通信和同时支持异步与同步通信的两种硬件可用于UART。
前者就是UART名字本身的含义,在摩托罗拉微控制器中被称为串行通信接口(SCI);Microchip微控制器中的通用同步异步收发器(USART)和在富士通微控制器中的UART是后者的两个典型例子。
c. 计算机中的UARTUART是计算机中串行通信端口的关键部分。
在计算机中,UART相连于产生兼容RS232规范信号的电路。
RS232标准定义逻辑“0”信号相对于地为3到25伏,而逻辑“1”相对于地为-3到-25伏。
所以,当一个微控制器中的UART相连于PC时,它需要一个RS232驱动器来转换电平。
2. 同步外设接口同步外设接口(SPI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。
a. SPI通信{该总线通信基于主-从配置。
它有以下4个信号:MOSI:主出/从入MISO:主入/从出SCK:串行时钟SS:从属选择芯片上“从属选择”(slave-select)的引脚数决定了可连到总线上的器件数量。
在SPI传输中,数据是同步进行发送和接收的。
数据传输的时钟基于来自主处理器的时钟脉冲,摩托罗拉没有定义任何通用SPI的时钟规范。
然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于SO-数据位的时钟相位。
CPOL和CPHA的设置决定了数据取样的时钟沿。
b. 数据方向和通信速度【SPI传输串行数据时首先传输最高位。
波特率可以高达5Mbps,具体速度大小取决于SPI硬件。
例如,Xicor公司的SPI串行器件传输速度能达到5MHz。
c. SPI与UART比较SPI通信快于UART通信,两者都可以用在中等速度外设的通信中,例如非易失性EEPROM存储器。
然而,SPI更常用于EEPROM或数模变换器的通信中。
有些UART能支持SPI通信,在这种情况下,会用一个通用IO作为从属选择引脚。
3. I2C总线I2C是由飞利浦公司开发的双线同步总线。
像SPI一样,该总线可用来与EEPROM、ADC、DAC和LCD这类慢速器件进行通信。
a. I2C通信I2C是一个半双工、多主总线,该总线网络有一个或几个主控器件和很多个从器件。
信息由两条串行线传输:串行数据线(SDA)和串行时钟线(SCL)。
图1显示了使用两个主控和三个从器件相连接的例子。
[网络中的每一个器件都预指定一个7位或10位的地址。
飞利浦会给器件制造商分配地址,也有一个特定的地址用于高速通信,以及一个通用呼叫地址用于与网络中所有器件的通信。
10位寻址的优点是允许更多的器件(高达1024个)布置在网络中。
然而,总线中器件的数目取决于总线的电容量,必须限制在400pF以内。
主控器件发起数据传送,并提供用于通信的时钟信号。
通信开始于SCL为高电平时SDA由高到低的转换,紧接着是一个7位或10位的从地址,一个数据方向位(R/W),一个应答位和停止状态。
停止状态定义为在时钟信号为高时数据线电平由低到高的转换。
每一个数据字节长度为8位,单次传送的字节数并没有限制。
由于I2C是一个多主总线,因此可能有两个或更多的主控器件同时试图访问总线,在时钟信号为高电平时在总线上置“1”的主控器件赢得总线仲裁。
I2C有三种不同的运行模式:标准、快速和高速模式。
在使用快速和高速模式时,可能某个从属器件不能像主控器件那么快地处理数据。
此时,从属器件会将SCL线拉至低电平来保持总线,这迫使主控器件进入等待状态,直至从属器件准备就绪。
b. 数据方向和通信速度数据传输首先从最高位开始。
I2C总线设计用于三种数据传输速度,每个都向下兼容性:低速,数据传输率为0到100kbps;快速,数据传输率可以高达400kbps;…高速,数据传输率可以高达。
c. I2C与SPI比较I2C和SPI都能用于低速器件的通信,而SPI的数据传输速率高于I2C。
此外,SPI具有一个内在地址功能,不需要设计一个额外的寄存器来测试地址,从而减少软件和硬件的设计开销。
4. 控制器区域网络控制器区域网络(CAN)是一个多主异步串行总线。
由于它具有优良的错误处理机制及可靠的数据传送性能,该总线在汽车工业中非常普遍,在高安全系数要求的医疗行业中也正在得到普及。
CAN最初由德国的Robert Bosch公司开发,提供给汽车电子系统所用的低成本通信总线,现在已经成为国际标准,被采用为高速应用的ISO11898标准和用于低速应用的ISO11519标准。
a. CAN通信当总线空闲时,任何CAN节点都可以开始数据发送。
如果两个或更多的节点同时开始发送,就使用标识符来进行按位仲裁以解决访问冲突。
CAN是一个广播类型的总线,所有节点都接收总线上的数据,硬件上的过滤机制决定消息是否提供给该接点用。
\b. 四种消息帧的类型数据帧:该帧从一个发送器承载数据到一个接收器。
根据CAN规范有两种数据帧格式,它们的唯一本质区别在于标识符的长度:CAN标准帧,也称为,支持11位长度的标识符;另一个是CAN 扩展帧,也称为,支持29位长度的标识符。
图2显示了两种规范的CAN数据帧。
远程帧:此帧由一个接收CAN节点发送,用来请求带有远程帧中规定的标识符的数据帧。
错误帧:此帧将任何总线错误通知其它单元,在接收到这个帧时发送器会自动进行消息重发。
超载帧:超载帧由一个忙的CAN节点送出,以请求在前后数据帧之间增加一个额外的延迟。
c. CAN硬件术语基本CAN(Basic CAN)控制器:这是一种廉价的CAN控制器,具有有限的发送/接收消息缓冲器,以及有限的CAN消息过滤机制。
完全CAN(Full CAN)控制器:完全CAN是一个高成本、高性能的CAN控制器,具有能缓冲8个或更多消息的缓冲器用于接收和发送。
例如,富士通的集成CAN微控制器能提供16个消息缓冲器用于接收和发送。
此外,富士通的MB90443微控制器能灵活地将两个CAN控制器的消息缓冲器组合在一个中,以形成能缓冲32个消息的缓冲器。
~标准CAN控制器:该CAN控制器能够处理仅有11位标识符的消息。
扩展CAN控制器:该控制器能够处理含有11位和29位标识符的消息。
时间触发CAN(TTCAN)控制器:该CAN控制器根据时间和事件的触发来安排CAN消息,增强了CAN网络的总体性能和行为的确定性。
d. 数据方向和通信速度数据字节的传输首先从最高位开始。
一个8位的数据字节能在一次发送中进行传输,最大的CAN总线速度是1Mbps。
e. CAN在汽车中的应用图3的例子显示了CAN网络是如何通过富士通的16位CAN微控制器在汽车中应用。
f. 物理接口"大多数CAN微控制器需要一个外部收发器来连接物理总线。
目前市场上提供以下一些收发器:高速CAN收发器有飞利浦的82C251,TI的SN65/75LBC031,Bosch的CF150,C250,Unitrode的UC5350;低速CAN收发器有飞利浦82C252、TJA1053,西门子TLE 6252G;单线CAN收发器有飞利浦AU5790,英飞凌TLE 6255,Delphi DK166153。
5.本地互连网络本地互连网络(LIN)是一个低成本、单线串行总线,能执行全双工串行通信。