串行外圍接口SPI功能模塊的設(shè)計
摘 要:串行外設(shè)接口SPI是現(xiàn)在很流行的一種同步串行接口,可用于與其他外設(shè)或者單片機進行通信。根據(jù)SPI總線性能特點,給出了SPI總線的數(shù)據(jù)傳輸規(guī)范,設(shè)計了一種SPI的IP功能模塊,并成功應(yīng)用到監(jiān)控系統(tǒng)SOC芯片中。
1 引 言
SPI(Serial Peripheral Interface)串行外圍接口是一種3線同步串行全雙工通信接口,它具有電路簡單,速度陜,通信可靠等優(yōu)點,近年來大量的新型器件如LCD模塊、FLASH、EEPROM存儲器、數(shù)據(jù)輸入輸出設(shè)備都采用了SPI接口,新型的單片機一般都已將SPI接口控制器集成在單片機內(nèi)部,這樣能夠大大降低軟件的工作量。
由于SPI系統(tǒng)總線一共只需3~4位數(shù)據(jù)線和控制線即可實現(xiàn)與具有SPI總線接口功能的各種I/O器件進行接口,而擴展并行總線則需要8根數(shù)據(jù)線、8—16位地址線、2~3位控制線,因此,采用SPI總線接口可以簡化電路設(shè)計,節(jié)省很多常規(guī)電路中的接口器件和I/0口線,提高設(shè)計的可靠性,使用SPI總線可以增加應(yīng)用系統(tǒng)接口器件的種類,提高應(yīng)用系統(tǒng)的性能。
2 SPI模塊的接口信號、時序要求及工作模式
2.1 內(nèi)部總線接口
在本設(shè)計中,內(nèi)部總線接口采用的是AMBA總線3.0協(xié)議,具有較好的可移植性和可復(fù)用性。SPI是APB總線上的Slave模塊。APB總線的時序完全遵照(ABMA Specification)(Rev 3.0)。因此此SPI模塊支持3種DMA操作,除了標(biāo)準(zhǔn)信號線外,還有3根與DMA模塊連接的中斷請求信號線。
2.2 SPI總線接口及時序
SPI串行接口使用4條線可與多種標(biāo)準(zhǔn)外圍器件直接接口:串行時鐘線SCLK,主機輸入/從機輸出數(shù)據(jù)線MISO,主機輸出/從機輸人數(shù)據(jù)線MOSI和低電平有效的從機選擇線SSN。SCLK是主機時鐘線,為MISO數(shù)據(jù)的發(fā)送和接收提供同步時鐘信號。
在正常工作的時候,主機的4個引腳應(yīng)和從機對應(yīng)的4個引腳分別相連。
SPI模塊為了和外設(shè)進行數(shù)據(jù)交換,根據(jù)外設(shè)的工作要求,其輸出串行同步時鐘的極性和相位可以進行配置,時鐘的極性(CPOL)對傳輸?shù)膮f(xié)議沒有重大影響。如果CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;相反,如果CPOL=l,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進行數(shù)據(jù)傳輸。
如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外設(shè)時鐘相位和極性應(yīng)該一致。SPI接口時序如圖1、圖2所示。
圖1 CPOL=0 CPHA =0
圖2 CPOL=0 CPHA=1
評論