基于FPGA的串行外圍接口SPI設(shè)計(jì)與實(shí)現(xiàn)
2012年05月23日 10:18 來(lái)源:互聯(lián)網(wǎng) 作者:秩名 我要評(píng)論(0)
引言
SPI(串行外圍接口)總線,是一個(gè)同步串行接口的數(shù)據(jù)總線,它具有全雙工、信號(hào)線少、協(xié)議簡(jiǎn)單、傳輸速度快等優(yōu)點(diǎn)。由于串行總線的信號(hào)線比并行總線更少、更簡(jiǎn)單,越來(lái)越多的系統(tǒng)放棄使用并行總線而采用串行總線。在眾多串行總線中,SPI 總線與I2C 總線、CAN 總線、USB 等其他常用總線相比有很大優(yōu)勢(shì),如SPI 總線的數(shù)據(jù)傳輸速度可達(dá)若干Mbps, 比I2C 總線快很多。SPI 總線最典型的應(yīng)用就是主機(jī)與外圍設(shè)備(如EEPROM、Flash RAM、A/D 轉(zhuǎn)換器、LED 顯示器、實(shí)時(shí)時(shí)鐘等)之間的通信。
FPGA(現(xiàn)場(chǎng)可編程門陣列)是在PAL、GAL、PLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,具有設(shè)計(jì)周期短、可重復(fù)編程、靈活性強(qiáng)等特點(diǎn)。用FPGA 設(shè)計(jì)的SPI 總線具有可擴(kuò)展性強(qiáng)、便于修改等優(yōu)點(diǎn)。只要對(duì)設(shè)計(jì)做簡(jiǎn)單的改動(dòng),即可對(duì)SPI 總線的數(shù)據(jù)位數(shù)、工作模式等進(jìn)行擴(kuò)展,充分發(fā)揮了FPGA 的優(yōu)勢(shì)。
1 SPI 總線的結(jié)構(gòu)和工作原理
SPI 總線區(qū)分主機(jī)(Master)和從機(jī)(Slave)兩部分,它的結(jié)構(gòu)框圖如圖1 所示。
圖1 SPI 總線結(jié)構(gòu)框圖
主機(jī)和從機(jī)之間通過(guò)4 根信號(hào)線連接,分別是SCK、MOSI、MISO、CS,它們的定義如下。
SCK:同步時(shí)鐘信號(hào),用來(lái)同步主機(jī)和從機(jī)的數(shù)據(jù)傳輸,由主機(jī)控制輸出,從機(jī)在SCK 的邊沿接收和發(fā)送數(shù)據(jù);MOSI:主機(jī)輸出、從機(jī)輸入信號(hào),主機(jī)在上升沿(或下降沿)通過(guò)該信號(hào)線發(fā)送數(shù)據(jù)給從機(jī),從機(jī)在下降沿(或上升沿)通過(guò)該信號(hào)線接收該數(shù)據(jù);MISO:主機(jī)輸入、從機(jī)輸出信號(hào),從機(jī)在上升沿(或下降沿)通過(guò)該信號(hào)線發(fā)送數(shù)據(jù)給主機(jī),主機(jī)在下降沿(或上升沿)通過(guò)該信號(hào)線接收該數(shù)據(jù);CS:從機(jī)片選信號(hào),由主機(jī)控制輸出。
其工作原理是: 當(dāng)沒(méi)有數(shù)據(jù)需要在主機(jī)和從機(jī)之間傳輸時(shí),主機(jī)控制SCK 輸出空閑電平,CS 輸出無(wú)效電平,SPI 總線處于空閑狀態(tài);當(dāng)有數(shù)據(jù)需要傳輸時(shí),主機(jī)控制CS 輸出有效電平,SCK輸出時(shí)鐘信號(hào),SPI 總線處于工作狀態(tài);在某個(gè)時(shí)鐘邊沿,主機(jī)和從機(jī)同時(shí)發(fā)送數(shù)據(jù),將數(shù)據(jù)分別傳輸?shù)組OSI 和MISO 上;在下一個(gè)時(shí)鐘邊沿,主機(jī)和從機(jī)同時(shí)接收數(shù)據(jù),分別將MISO 和MOSI上的數(shù)據(jù)接收并存儲(chǔ);當(dāng)數(shù)據(jù)全部傳輸完畢時(shí),主機(jī)控制SCK 輸出空閑電平,CS 輸出無(wú)效電平,SPI 總線重新回到空閑狀態(tài)。至此,一個(gè)完整的SPI 總線數(shù)據(jù)傳輸過(guò)程完成。
SPI 總線有兩個(gè)控制位:CPOL 和CPHA.將SCK 的空閑電平用IDLE 表示,非空閑電平用ACTIVE 表示。CPOL 用來(lái)選擇IDLE 的電平值。當(dāng)CPOL=0 時(shí),IDLE=0;當(dāng)CPOL=1 時(shí),IDLE=1.
CPHA 用來(lái)選擇接收數(shù)據(jù)的時(shí)刻。當(dāng)CPHA=0 時(shí), 接收時(shí)刻是IDLE-ACTIVE 邊沿;當(dāng)CPHA=1 時(shí),接收時(shí)刻是ACTIVE-IDLE邊沿。根據(jù)CPOL 和CPHA 的取值情況,SPI 總線共有4 種不同的工作模式。圖2 給出了SPI 總線在不同工作模式下的工作時(shí)序。
圖2 SPI 總線的工作時(shí)序
當(dāng)CPHA=0 時(shí),MOSI 和MISO 的時(shí)序有所不同,主要是第一個(gè)數(shù)據(jù)位MSB 的發(fā)送時(shí)刻不同。MOSI 的MSB 在SCK 的第一個(gè)IDLE-ACTIVE 邊沿的前半個(gè)周期由主機(jī)發(fā)送到MOSI 上;而MISO 的MSB 則在CS 信號(hào)的下降沿由從機(jī)發(fā)送到MISO 上。當(dāng)CPHA=1 時(shí),MOSI 和MISO 的時(shí)序完全相同。
2 SPI 主機(jī)模塊的設(shè)計(jì)
本文設(shè)計(jì)的SPI 主機(jī)模塊主要完成以下工作:
?。?) 將主機(jī)收到的8 位并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),并發(fā)送給從機(jī);(2) 接收來(lái)自從機(jī)的串行數(shù)據(jù),將其轉(zhuǎn)換為并行數(shù)據(jù),通過(guò)并行端口輸出;(3) 輸出從機(jī)所需要的輸入信號(hào)、時(shí)鐘信號(hào)SCK 和片選信號(hào)CS。
在數(shù)據(jù)串并轉(zhuǎn)換的過(guò)程中, 必須用到寄存器來(lái)存放臨時(shí)數(shù)據(jù)。一般情況下,發(fā)送數(shù)據(jù)需要1 個(gè)發(fā)送寄存器,接收數(shù)據(jù)需要1個(gè)接收寄存器,則至少需要2 個(gè)寄存器。在SPI 總線中,每發(fā)送1個(gè)數(shù)據(jù)位則發(fā)送寄存器多出1 個(gè)空閑位, 正好可以在半個(gè)周期后用來(lái)接收1 個(gè)數(shù)據(jù)位。為了減少資源消耗,可以用1 個(gè)移位寄存器來(lái)代替2 個(gè)獨(dú)立的接收寄存器和發(fā)送寄存器。圖3 所示為SPI 總線的硬件結(jié)構(gòu)框圖,其中MaSTer 和Slave 各使用1 個(gè)移位寄存器接收和發(fā)送數(shù)據(jù)。
圖3 SPI 總線的硬件結(jié)構(gòu)
上周熱點(diǎn)文章排行榜
- 日本開(kāi)發(fā)出用于振動(dòng)發(fā)電新合金
- 外國(guó)牛人教你一步步快速打造首臺(tái)機(jī)器人(超詳
- 全球首款惠普Z(yǔ)1電腦拆解:德州儀器、英特爾成最
- 工程師電子制作故事:無(wú)線網(wǎng)絡(luò)控制激光坦克機(jī)
- 揭秘磁懸浮燈泡無(wú)線電力傳輸(附完整電路圖)
- 華為畢業(yè)四年菜鳥(niǎo)身價(jià)千萬(wàn) HTC最需要害怕的新對(duì)
- 華為內(nèi)部工資和待遇詳解,50%員工空談28萬(wàn)年薪?
- 易拉罐增強(qiáng)WiFi信號(hào)的方法
- 物聯(lián)網(wǎng)最新前沿技術(shù)應(yīng)用大賞(圖文)
- 最具創(chuàng)意LED發(fā)明:仿生LED隱形眼鏡 虛擬天空
上周資料下載排行榜
論壇熱帖
- 玩轉(zhuǎn)FPGA,賽靈思FPGA設(shè)計(jì)大賽活動(dòng)細(xì)則,參賽必看 wangka
- 7種你從沒(méi)想過(guò)的LED照明應(yīng)用,最后一個(gè)亮瞎了 assingle
- 2012,我們畢業(yè)啦-畢業(yè)季分享活動(dòng)正式上線 assingle
- 【博客分享季】 我的單片機(jī)入門 kisswo
- 在辦公室里自制一個(gè)植物鍵盤 assingle
- 碉堡了,這是5星級(jí)賓館的標(biāo)準(zhǔn)阿~ 東十三少
- 點(diǎn)亮iphone4 LOGO燈純手工版 技術(shù)強(qiáng)帖!??!秒殺技術(shù)宅! 心如明鏡
- 【電子拆解無(wú)極限】四核處理器露給你看 HTC One X詳細(xì)拆解 assingle
- 【我們畢業(yè)啦】二逼青歡樂(lè)多-畢業(yè)照片回顧 cch6213
- 話說(shuō)今天終于收到耳機(jī)了,曬圖 小鷹fighting
熱門博文
創(chuàng)新實(shí)用技術(shù)專題
FPGA技術(shù)應(yīng)用
FPGA資料下載
- 基于FPGA的噴油脈寬處理系統(tǒng)的設(shè)計(jì)
- 基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 高速成形濾波器的研究與實(shí)現(xiàn)
- 基于FPGA的高速AD轉(zhuǎn)換
- 測(cè)控系統(tǒng)中B碼同步技術(shù)的FPGA實(shí)現(xiàn)
- RFID讀卡器設(shè)計(jì)方案
- 基于高速FPGA的PCB設(shè)計(jì)技巧
- 基于FPGA的運(yùn)動(dòng)估計(jì)設(shè)計(jì)
- 基于FPGA實(shí)現(xiàn)固定倍率的圖像縮放
- 基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
熱評(píng)
- LM3S9B96開(kāi)發(fā)板手冊(cè)及原理圖
- STM32F103ZET6紅牛電路圖
- 高通發(fā)布全新設(shè)計(jì)DragonBoard板
- NI推出Single-Board RIO嵌入式介面
- protel99se正式漢化版免費(fèi)下載
- hi3515海思原版原理圖
- matlab 7.0軟件下載(免費(fèi)破解版)
- TX-1C型單片機(jī)開(kāi)發(fā)板原理圖
- 三菱A500變頻器原理圖
- 三相IGBT全橋隔離驅(qū)動(dòng)電源設(shè)計(jì)
博文
- 問(wèn)什么郵箱激活不了
- 八成大學(xué)生認(rèn)同先就業(yè)后擇業(yè)
- 我的心路
- 你是否曾這樣傷害過(guò)一個(gè)人?
- 為什么郵箱激活不了
- 2012.5.12 第一個(gè)DS18B20程序
- 到底有多少人在校園里浪費(fèi)青春
- 藍(lán)牙技術(shù)越來(lái)越雞肋
- 【博客分享季】 我的單片機(jī)入門
- 到底有多少人在校園里浪費(fèi)青春
帖子
- 【博客分享季】 我的單片機(jī)入門 kisswo
- 7種你從沒(méi)想過(guò)的LED照明應(yīng)用,最后一個(gè)亮瞎了 assingle
- 公司內(nèi)部資料共享 onejy
- 在辦公室里自制一個(gè)植物鍵盤 assingle
- 工程師應(yīng)該掌握的20個(gè)模擬電路 nf10000000
- 基于LabVIEW的數(shù)據(jù)采集與信號(hào)處理系統(tǒng)的設(shè)計(jì) 努力有理想
- labview設(shè)計(jì)憤怒的小鳥(niǎo) 海角一客
- 點(diǎn)亮iphone4 LOGO燈純手工版 技術(shù)強(qiáng)帖?。?!秒殺技術(shù)宅! 心如明鏡
- 玩轉(zhuǎn)FPGA,賽靈思FPGA設(shè)計(jì)大賽活動(dòng)細(xì)則,參賽必看 wangka
- 發(fā)布《精通LabVIEW虛擬一起程序設(shè)計(jì)》暨-【送書(shū)活動(dòng)預(yù)告】 assingle
用戶評(píng)論
查看全部 條評(píng)論
查看全部 條評(píng)論>>