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