1. SPI串行外围设备接口(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口。Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI总线是一种三线同步总线,因其硬件功能很强,所以,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
2. SCI串行通信接口(serial communication interface)也是由Motorola公司推出的。它是一种通用异步通信接口UART,与MCS-51的异步通信功能基本相同。
说白一点一个是同步串行、一个是异步串行
再白一点——同步的需要多出一条时钟线、异步的只需要接收、发送两条线
SCI模块用于串行通讯,如RS422、RS485、RS232;
SPI模块用于扩展外设,如AD、DA、FRAM、DSP等。
SCI模块和SPI模块是两个外设的扩展模块!
SCI是异步通信
SPI是同步通信


sci是异步串行通信接口,spi是同步,spi分主从机,通信速率上spi高于sci
SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。
sci是单片机的串口通信,spi是单片机的I2C通信
一个是同步时钟,一个是异步时钟
SCI是异步通信串口,只有两根线就可一完成通信。
SPI是同步通信串口,需要的线比SCI多。
SPI和I2C的区别
I2C的数据输入输出用的是一根线,SPI则分为dataIN和dataOUT。由于这个原因,采用I2C时CPU的端口占用少,SPI多一根。但是由于I2C的数据线是双向的,所以隔离比较复杂,SPI则比较容易。所以系统内部通信可用I2C,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是I2C和SPI都不适合长距离传输。长距离时就要用485了。
区别:SPI:高速同步串行口。3~4线接口,收发独立、可同步进行
UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢
SPI:一种串行传输方式,三线制,网上可到其通信协议和用法的
3根线实现数据双向传输
串行外围接口 Serial peripheral interface
UART:通用异步收发器
UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终 端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:
将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据
流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。
I2C:能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。
S12DG128的SPI由四根线组成,一根是主从选择、一根是时钟、一根主输入、一根主输出。同步通信和异步通信的区别
看I2C总线和SAA7113好久了,不知道该怎么对SAA7113进行初始化和读写SAA7113内部的寄存器,各位大侠能否指点一二?I2C总线启动后,直接通过SDA写入地址吗?还有应答信号又是怎么回事?
看I2C总线和SAA7113好久了,不知道该怎么对SAA7113就行初始化和读写SAA7113内部的寄存器。
A:看来您是没有看懂SAA7113的data sheet并且是第一次接触I2C这种“东西”了。
有关数据的传输方法与协议SAA7113的data sheet里面描述的很清楚啊,您按照它上面的要求做就可以了,该传送地址的就传送地址,改传送数据就传送您要传送的数据,根据I2C的传输协议要求,每传送完一个数据必需要等SAA7113给出应答再传送下一数据,直到把所有需要传送的数据都传送完就可以了。从SAA7113中读取数据也是同样的过程。
从您的给出的“标题”来看,似乎不是不知道如何对SAA7113进行数据的读/写,而是不知道如何用FPGA进行对SAA7113的操作。这也简单啊,您改成MCU不就成了吗??如果不会写软件,那就请软件工程师来作不就可以了吗?
如果您非的用FPGA来实现,那也好办啊,您用的FPGA中如果有Memory,那您就把要传送到SAA7113的数据固化到里面,而后再从Memory里把数据读出,通过I2C控制器把数据通过I2C Bus传送到SAA7113不就行了吗???!!!!!如果没有片内Memory那也好办啊,不用我说您也应该知道怎么做了吧??
各位大侠能否指点一二?I2C总线启动后,直接通过SDA写入地址吗?
A:当然是啦!
还有应答信号又是怎么回事?
A:是Slave or Master器件或设备在收到数据后给出的一个反馈信号或称反馈标识,用于通知Master设备您可以继续传送下一数据了。如果Master没有收到应答信号,它可以重新再传刚才发出的数据或是转出错处理历程进行报错。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。