多种工业应用串行总线特性及比较(SPI_UART_IIC_CAN)
【Tod】SPI I2C UART区别

高位先发
低位先发
复杂度:SPI > I2C > UART
SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出 (SDO)、串行数据输入(SDI)。可以实现多个SPI设备互相连接。提供SPI 串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或 从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时, 还可以增加一条从设备选择线。
实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口 (SCL)。
UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很 多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、 UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一 根用于接收。如果用通用IO口模拟UART总线,则需一个输入口,一个 输出口。
如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输 入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设 备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从 设备,则只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master) 接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经 常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的 设备地址,因此可以实现设备组网。如果用通用IO口模拟I2C总线,并
MCU串行总线比较
分类
名称
线制 信号线
模式 时钟信
号 数据起
始
同步串行口SSP
串行外设接 口
SPI
三线制
SCLK SDO SDI
全双工 半双工
有
CAN、I2S、I2C、SPI、SSP总线的介绍和比较

计算机基本知识一、SPI总线说明串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。
SPI 用于CPU与各种外围器件进行全双工、同步串行通讯。
SPI可以同时发出和接收串行数据。
它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线CS。
这些外围器件可以是简单的TTL移位寄存器,复杂的LCD显示驱动器,A/D、D/A转换子系统或其他的MCU。
当SPI工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。
发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。
主SPI的时钟信号(SCK)使传输同步。
其典型系统框图如下图所示。
SPI主要特点有: 可以同时发出和接收串行数据;∙可以当作主机或从机工作;∙提供频率可编程时钟;∙发送结束中断标志;∙写冲突保护;∙总线竞争保护等。
图2示出SPI总线工作的四种方式,其中使用的最为广泛的是SPI0和SPI3方式(实线表示):SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。
如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。
时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。
如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。
SPI主模块和与之通信的外设音时钟相位和极性应该一致。
通用接口协议(串口,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是⼀个模拟电压输出的芯⽚。
SPI_IIC_USART_区别

第一个区别当然是名字:SPI(Serial Peripheral Inter face:串行外设接口);I2C(INTER IC BUS)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。
主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART 发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,看看牛人们的意见吧!wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
SPI、I2C、UART串行总线协议

串口通讯通信协议 (2)串口通信 (7)RS-232 (8)串口通讯通信协议所谓通信协议是指通信双方的一种约定。
约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。
因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。
目前,采用的通信协议有两类:异步协议和同步协议。
同步协议又有面向字符和面向比特以及面向字节计数三种。
其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。
一、物理接口标准1.串行通信接口的基本任务(1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。
在异步通信方式下,接口自动生成起止式的帧数据格式。
在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。
(2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。
所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。
因此串并转换是串行接口电路的重要任务。
(3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。
(4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。
在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。
(5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。
(6)提供EIA-RS-232C接口标准所要求的信号线:远距离通信采用MODEM时,需要9根信号线;近距离零MODEM方式,只需要3根信号线。
这些信号线由接口电路提供,以便与MODEM或终端进行联络与控制。
2、串行通信接口电路的组成为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA与TTL电平转换器以及地址译码电路组成。
CAN、I2S、I2C、SPI、SSP 总线协议

标签:无标签一、 SPI 总线说明串行外围设备接口 SPI (serial peripheral interface)总线技术是Motorola 公司推出的一种同步串行接口, Motorola 公司生产的绝大多数 MCU(微控制器)都配有 SPI 硬件接口,如 68 系列 MCU。
SPI 用于 CPU 与各种外围器件进行全双工、同步串行通讯。
SPI 可以同时发出和接收串行数据。
它只需四条线就可以完成 MCU 与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线 CS。
这些外围器件可以是简单的 TTL 移位寄存器,复杂的 LCD 显示驱动器, A/D、D/A 转换子系统或者其他的 MCU。
当 SPI 工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO) 接收的数据逐位移到移位寄存器(高位在前)。
发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。
主 SPI 的时钟信号 (SCK) 使传输同步。
其典型系统框图如下图所示。
SPI 主要特点有: 可以同时发出和接收串行数据 ;可以当做主机或者从机工作 ;提供频率可编程时钟 ;发送结束中断标志 ;写冲突保护 ;总线竞争保护等。
图 2 示出 SPI 总线工作的四种方式,其中使用的最为广泛的是 SPI0 和 SPI3 方式(实线表示):SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。
如果 CPOL="0",串行同步时钟的空暇状态为低电平;如果 CPOL=1,串行同步时钟的空暇状态为高电平。
时钟相位 (CPHA) 能够配置用于选择两种不同的传输协议之一进行数据传输。
如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或者下降)数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿(上升或者下降) 数据被采样。
几种最常用的串行数据传输总线-SPI
⼏种最常⽤的串⾏数据传输总线-SPI串⾏数据总线由于占⽤较少的管脚被⼴泛应⽤在MCU和外设的连接中,在过去的⼏⼗年⾥,有三种最常⽤的多线串⾏数据传输格式SPI、I2C和UART。
这3种串⾏总线的主要区别:SPI - Serial Peripheral Interface(串⾏外设接⼝),突出了外设,也就有了主(Master - 控制器)和从(Slave - 外设)之分,在总线中也就只有⼀个“主⼈”,其它都是处于服从的位置,也就是Slave,它是⼀种有时钟信号的同步串⾏总线,从器件的寻址是靠专⽤的⽚选信号线SS来实现的;I2C - Inter-Integrated Circuits(集成电路之间的连接),没有突出主次,也就是所有挂在总线上的器件都是平等的,它也是⼀种有时钟信号的同步串⾏总线,每个器件都有⾃⼰的地址,两根信号线都需要通过电阻上拉;UART - universal asynchronous receiver/transmitter(通⽤异步收/发),顾名思义,它是异步串⾏总线,传输的信号中没有专⽤的时钟信号线。
由于很多MCU、外设芯⽚为了节省管脚,都采⽤了管脚功能复⽤的⽅式,同⼀个管脚既可以⽤于SPI,也可以⽤于I2C,根据具体的器件连接⽅式进⾏选⽤。
当器件的管脚配置为I2C的时候,要记住在I2C的两根信号线(SCL、SDA)上⼀定要有上拉电阻,SPI则不需要。
今天我们就先来说说SPI:SPI(Serial Peripheral Interface - 串⾏外设接⼝)是⼀种⽤于短距离通信(主要是嵌⼊式系统中)的同步串⾏通信接⼝规范,这种接⼝由Motorola发明,已经成了⼀种事实标准。
⼴泛⽤于各种MCU处理器中,同传感器,串⾏ADC、DAC、存储器、SD卡以及LCD等进⾏数据连接。
⼏乎所有的微处理器/微控制器都有SPI/I2C和UART接⼝,⽽且不⽌⼀个SPI和I2C也被⼴泛⽤于传感器的数字接⼝连接即便FPGA也将SPI和I2C做成了硬化的IP在芯⽚内主要的信号线:SPI总线由4根主要的信号线组成以实现数据在主设备(Master)和从设备(Slave)之间的全双⼯(收、发同时执⾏)同步(由时钟同步)通信:SCLK:串⾏时钟(由主设备输出),每个时钟周期将会移出⼀个新的数据位;MOSI:主设备输出⇒从设备输⼊,数据由主设备进⼊从设备,器件A上的MOSI线连接到器件B 上的MOSI线。
CANI2SI2CSPI总线接口总结
CANI2SI2CSPI总线接口总结CAN(Controller Area Network)是一种面向实时通信的串行总线标准。
它最初是由Bosch公司开发,主要用于汽车电子系统中的控制和通信。
CAN总线采用差分信号传输,拥有较高的抗干扰能力和可靠性,可实现在复杂电气环境下的快速数据传输。
CAN总线可以支持多个设备的分布式通信,通过先进的协议机制实现高效的数据传输和数据帧的优先级设置。
CAN总线的通信速率通常为1 Mbps,可以满足实时性要求较高的应用场景,如汽车电子、工业控制和航空航天等。
I2S(Inter-IC Sound)是一种串行音频接口标准。
它由飞利浦(Philips)公司提出,用于在音频设备之间传输音频数据。
I2S接口采用三线制的同步通信方式,包括一个时钟线、一个数据线和一个帧同步线。
I2S接口支持双向通信,可以同时传输音频数据和控制信号。
I2S接口的主要特点是高保真音频传输和灵活的系统集成能力。
它广泛应用于消费电子产品,如音频解码器、音频处理器、音频放大器等。
I2C(Inter-Integrated Circuit)是一种串行通信总线标准。
它由Philips公司开发,用于连接集成电路之间的通信。
I2C总线采用双线制的同步通信方式,包括一个时钟线和一个数据线。
I2C总线可以支持多个设备的串行连接,每个设备都有一个唯一的地址,可以通过该地址进行单独访问。
I2C总线具有简单、低功耗和可靠的特点,适用于连接存储器、传感器、显示器和其他外设等。
它的通信速率通常在100 kbps到3.4 Mbps之间,适用于中等速度的数据传输。
SPI(Serial Peripheral Interface)是一种串行外设接口标准。
它最早由Motorola公司提出,用于连接微控制器和外设之间的通信。
SPI总线采用四线制的同步通信方式,包括一个时钟线、一个主从选择线、一个主机输出从机输入线和一个主机输入从机输出线。
SPI,UART,I2C的区别以及RS232与RS485的区别
SPI,UART,I2C的区别以及RS232与RS485的区别详细的区别:第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS:意为IC之间总线)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。
主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,I2C线更少,比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C 需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
【总线】UART、Modbus、I2C、SPI、RS232、RS485及串口通讯常用参数
【总线】UART、Modbus、I2C、SPI、RS232、RS485及串⼝通讯常⽤参数⼀、UART异步收发传输,作为集成于微处理器中的周边设备,把并⾏输⼊信号转成串⾏输出信号,(⼀般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯⽚进⾏搭配)作为连接外部设备的接⼝。
该总线双向通信,可以实现全双⼯传输和接收。
在嵌⼊式设计中,UART⽤于主机与辅助设备通信,如与PC机通信包括与监控调试器和其它器件,如EEPROM通信。
⼀个字符接着⼀个字符传输,⼀个字符的信息由起始位、数据位、奇偶校验位和停⽌位组成。
传输时低位在前⾼位在后。
发送端和接收端必须按照相同的字节帧格式和波特率进⾏通信。
UART的设计采⽤模块化的设计思想,主要分为 3个模块:数据发送模块、数据接收模块及波特率发⽣器控制模块。
发送模块实现数据由并⾏输⼊到串⾏输出,接收模块实现数据由串⾏输⼊到并⾏输出,波特率发⽣器模块控制产⽣UART时钟频率。
发送逻辑对从发送FIFO读取的数据执⾏“并→串”转换。
控制逻辑输出起始位在先的串⾏位流,并且根据控制寄存器中已编程的配置,后⾯紧跟着数据位(注意:最低位 LSB 先输出)、奇偶校验位和停⽌位。
在检测到⼀个有效的起始脉冲后,接收逻辑对接收到的位流执⾏“串→并”转换。
此外还会对溢出错误、奇偶校验错误、帧错误和线中⽌(line-break)错误进⾏检测,并将检测到的状态附加到被写⼊接收FIFO的数据中。
需要两根信号线和⼀根地线。
⼆、Modbus1、ASCII模式与RTU模式的区别(1)ASCII:消息中每个ASCII字符都是⼀个⼗六进制字符组成(2)RTU:消息中每个8位域都是两个⼗六进制字符组成在同样波特率下,RTU可⽐ASCII⽅式传输更多的数据三、RS232、RS485(1)RS232RS232接⼝可以实现点对点的通信⽅式,但这种⽅式不能实现联⽹功能。
个⼈计算机上的通讯接⼝之⼀,异步传输标准接⼝。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多种工业应用串行总线特性及比较
由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与软件、开发系统(如仿真器)或网络中的其它设备进行通信。
目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。
微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口()、内部集成电路() 和通用串行总线,以及车用串行总线,包括控制器区域网()和本地互连网()。
这些总线在速度、物理接口要求和通信方法学上都有所不同。
本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表)。
为了说明方便起见,本文的阐述是基于微处理器的设计。
串行与并行相比
串行相比于并行的主要优点是要求的线数较少。
例如,用在汽车工业中的串行总线只需要一根线来与从属器件进行通信,公司的总线只使用一根线来输送信号和电源。
较少的线意味着所需要的控制器引脚较少。
集成在一个微控制器中的并行总线一般需要条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要个引脚来与外部器件接口,这增加了芯片的总体尺寸。
相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。
另外,在板设计中并行总线需要更多的线来与其它外设接口,使板面积更大、更复杂,从而增加了硬件成本。
此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。
例如,可以很容易地去掉总线上旧器件并用新的来替代。
串行总线的故障自诊断和调试也非常简单,可以很容易地跟踪网络中一个有故障的器件并用新器件替换而不会干扰网络。
但另一方面,并行总线比串行速度快。
例如,公司的“”总线速度可高达,而最高的串行速度不会超过几个兆赫。
在工业和汽车应用中常用的串行协议
是一种通用串行数据总线,用于异步通信。
该总线双向通信,可以实现全双工传输和接收。
在嵌入式设计中,用来与进行通信,包括与监控调试器和其它器件,如通信。
、通信
首先将接收到的并行数据转换成串行数据来传输。
消息帧从一个低位起始位开始,后面是个或个数据位,一个可用的奇偶位和一个或几个高位停止位。
接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。
如果选择了奇偶,就在数据位后面加上奇偶位。
奇偶位可用来帮助错误校验。
在接收过程中,从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。
也产生额外的信号来指示发送和接收的状态。
例如,如果产生一个奇偶错误,就置位奇偶标志。
、数据方向和通信速度。