1.SPI接口原理
串行外围设备接口(Serial Peripheral Interface,SPI),用来在微控制器和(hé)外围设备(bèi)芯片之间提供一个低成本、易使用的接口(SPI有时候也(yě)被称为4线接口)。这种接口可以用来连(lián)接存储器(存储数据(jù))、A/D转换器、D/A转换器、实时(shí)时钟日历、LCD驱(qū)动器、传感器等(děng)等。
SPI主要使(shǐ)用四(sì)个(gè)信号:主机输(shū)出/从机输入(MOSI)、主机输(shū)入/从机输出(MISO)、串行SCLK或SCK、外设芯(xīn)片(piàn)(CS)。有些处理器(qì)有SPI接口专用的芯片选择(zé),称为从机选择SS。
MOSI信号由主机产生(shēng),从机接受。在有些芯片(piàn)上,MOSI只被简单地标(biāo)为串行输入(SI),或者串行数据(jù)输入SDI。MISO信号(hào)由从(cóng)机产生,不过还是在主机的控制下产(chǎn)生的。在一些芯片上,MISO有时被称为串行输出(SO),或(huò)者(zhě)串行数据输出(SDO)。外设片选信号通常只是由主机的(de)备用I/O引脚产生。
与标准的串行(háng)接(jiē)口接口不同,SPI是一个(gè)同(tóng)步协(xié)议(yì)接口,所有(yǒu)的传输都参照一个共同(tóng)的时钟,这(zhè)个同步(bù)时钟信号由(yóu)主机产生,接收(shōu)数据的外(wài)设使(shǐ)用时钟来(lái)对串行(háng)比特流的接受进(jìn)行同步化。可以将多(duō)个具(jù)有SPI接口的芯片(piàn)连到主机的同一个SPI接口上,主机通过控制从设备的片选输入(rù)引(yǐn)脚来选择接受数(shù)据的从设备(bèi)。
2.SPI传输过程(chéng)
主机和外(wài)设都包(bāo)含一个串(chuàn)行移(yí)位寄存器,主机通过它的SPI串行寄存器写(xiě)入一个(gè)字节来(lái)发(fā)起一次传输(shū)。寄存器是通过(guò)MOSI信号线将字(zì)节传送给外设,外设(shè)也将自己的移位寄存器(qì)中的内容(róng)通过MISO信号(hào)线返回给(gěi)主机。这样,两个移(yí)位寄存器中的内(nèi)容(róng)就被(bèi)交换了。外设的写操作和读操(cāo)作(zuò)是同步完成的,因(yīn)此SPI成(chéng)为一个很有效的协(xié)议。
如果(guǒ)只(zhī)是进行写操作,主机只需忽略收到(dào)的字(zì)节;反(fǎn)过来,如果(guǒ)主机要(yào)读取外设的一个(gè)字节,就必须发送一个空字节来引发从机的传输。
当主(zhǔ)机发(fā)送一个连续的数据流时,有些外设能够进行多字节传输。许多拥有SPI接(jiē)口的存储器(qì)芯片都以这种方式工作。在这种传输方式下(xià),SPI外设(shè)的(de)芯片(piàn)选择(zé)端必须(xū)在整个(gè)传输过程中保持(chí)低电平。比如,存储器芯片会希(xī)望在一个“写“命令之后紧接着(zhe)收到的是四个地址字节(起始地(dì)址),这(zhè)样,后(hòu)面接(jiē)受到的数据就可以存储(chǔ)到该(gāi)地址。一次传(chuán)输可能会(huì)涉(shè)及千字节(jiē)的移位(wèi)或(huò)更多(duō)信息(xī)。
其他(tā)外设只需要(yào)一个单字节(比如(rú)一个发给A/D转换器的(de)命令),有(yǒu)些(xiē)甚至还支持菊花链连接,菊花链连接三台SPI设(shè)备,如(rú)下(xià)图(tú):
主机处理器从(cóng)其SPI接口发送三个字节的数据。第一个字(zì)节发送(sòng)给外(wài)设(shè)A,当第二个字节发送给外设(shè)A的时(shí)候,第一个字节已移(yí)出(chū)了A,而传(chuán)送给了B。同样,主机想要从外设A读(dú)取一个结果,它必须再发送一个3字(zì)节(空(kōng)字节)的序列,这样就可以把A中的数据移到B中,然后再(zài)移(yí)到C中,最后送回到主机。在这个(gè)过程中,主机还依次从B和C接受到字节。
注意(yì),菊花链连接不(bú)一定适(shì)用于所有的(de)SPI设备,特(tè)别是(shì)要求多字节传输的设备(比如存储器芯片),有的外设芯片也不支持菊花链连(lián)接。
根据(jù)时钟(zhōng)极性和时钟相位的不同,SPI有四个工(gōng)作模式:
时(shí)钟极性CPOL有高、低两极;时钟极性(xìng)为低电平时(shí),空闲时时钟(SCK)处于低电平,传输(shū)时(shí)跳到(dào)高电平;时钟极性(xìng)为高电平(píng)时,空(kōng)闲时时钟处于高电平,传输时跳到低电平。
时钟(zhōng)相位CPHA有两个:时钟相位0和时钟相位(wèi)1。当(dāng)时钟相位为0时,时钟(zhōng)周(zhōu)期(qī)的前一(yī)边缘采集数据;当时钟相位为1时,时钟周期的后一边(biān)缘采集数据。
客服(fú)QQ1:63355785 客服QQ2:61303373 客服QQ3:67399965 客服QQ4:2656068273 产品分(fèn)类地图
版权所有:保定市(shì)九州网页版和禾邦电子有限公司 保定市九州网页版和禾邦电子(zǐ)有限公司(sī)营业执照(zhào)

关键字(zì):保定电(diàn)子(zǐ)元器件 保定电子(zǐ)元(yuán)件 电子(zǐ)元器(qì)件 电子(zǐ)元(yuán)件