基于FPGA的串行外圍接口SPI設(shè)計與實現(xiàn)(2)
2012年05月23日 10:18 來源:互聯(lián)網(wǎng) 作者:秩名 我要評論(0)
為了實現(xiàn)對模塊的控制,除了clk、cs、sck、miso、mosi 這些信號之外,還需要一些其他信號。其中,rst 是復(fù)位信號,用于SPI 模塊的初始化。en 是模塊的使能信號,當(dāng)en=1 時模塊開始工作。
data_i 是待發(fā)送數(shù)據(jù)的8 位并行輸入端。data_o 是用于接收和發(fā)送數(shù)據(jù)的移位寄存器, 也是數(shù)據(jù)傳輸完成時已接收數(shù)據(jù)的8位并行輸出端,圖4 是所設(shè)計的SPI 主機(jī)模塊的框圖。
圖4 SPI 模塊框圖
下面是用Verilog HDL 設(shè)計的SPI 主機(jī)模塊(CPOL =0,CPHA=1)的主要程序,程序中省去了變量的聲明,并在注釋中對這些變量作了說明。
3 設(shè)計的仿真、綜合與實現(xiàn)
通過編寫測試平臺,并使用Mentor Graphics 公司的仿真工具M(jìn)odelSim SE PLUS 6.1f 對該SPI 模塊進(jìn)行仿真,得到的仿真波形如圖5 所示。
圖5 SPI 模塊的仿真波形
從圖中可以看出,sck 的空閑電平IDLE=0,接收數(shù)據(jù)時刻是下降沿即ACTIVE-IDLE 邊沿, 故該SPI 模塊的工作模式是CPOL=0,CPHA=1,與設(shè)計一致。當(dāng)en=0 時,cs=1,SPI 總線處于空閑狀態(tài)。當(dāng)en=1 時,在下降沿cs=0,sck 輸出時鐘信號,總線數(shù)據(jù)傳輸開始。同時,data_o=data_i, 移位寄存器存入待發(fā)送數(shù)據(jù)11010111.在第1 個周期上升沿,主機(jī)通過mosi 發(fā)送data_o 最高位1 至從機(jī)。在第1 個周期下降沿,data_o 左移一位,多出一個空閑位data_o[0],主機(jī)通過miso 接收從機(jī)發(fā)送的數(shù)據(jù)最高位1,并將其存入data_o[0],data_o=10101111.依此類推,后面7 個周期的數(shù)據(jù)傳輸過程與第1 個周期類似。8 位數(shù)據(jù)全部傳輸完成之后,cs=1,一個完整的SPI 總線傳輸過程結(jié)束??梢园l(fā)現(xiàn),data_o中的數(shù)據(jù)被一個一個從主機(jī)發(fā)送到從機(jī),同時data_o 也被用來存儲從機(jī)發(fā)送的數(shù)據(jù)。8 個周期完成之后,data_o 中存儲的數(shù)據(jù)正是從機(jī)發(fā)送的數(shù)據(jù)10101101.綜合以上分析,該SPI 模塊的功能是正確的。
通過實驗,在Xilinx ISE 9.1i 中完成了對該模塊的綜合與實現(xiàn),并下載到Digilent 公司的FPGA 開發(fā)板Spartan-3E Starter 上進(jìn)行驗證,實驗結(jié)果正確。綜合工具使用ISE 自帶的XST,下載工具使用ISE 自帶的iMPACT.
4 結(jié)語
本文用Verilog 硬件描述語言設(shè)計了一個符合SPI 總線規(guī)范的SPI 主機(jī)模塊,使用仿真工具M(jìn)odelSim 對其進(jìn)行仿真并給出了仿真波形。在Xilinx ISE 中對該模塊進(jìn)行綜合與實現(xiàn),并在FPGA 上完成了下載與驗證。該SPI 主機(jī)模塊的功能正確,工作穩(wěn)定,可擴(kuò)展性強(qiáng)。由于SPI 總線應(yīng)用范圍很廣,利用FPGA 可重復(fù)配置的優(yōu)點,該模塊可以很方便地應(yīng)用于各種場合。本文作者創(chuàng)新點:根據(jù)SPI 總線規(guī)范,用Verilog HDL 設(shè)計并實現(xiàn)了一個帶有移位寄存器的SPI 總線模塊,具有簡潔高效、便于修改、可擴(kuò)展性強(qiáng)等特點。
上周熱點文章排行榜
上周資料下載排行榜
論壇熱帖
- 玩轉(zhuǎn)FPGA,賽靈思FPGA設(shè)計大賽活動細(xì)則,參賽必看 wangka
- 7種你從沒想過的LED照明應(yīng)用,最后一個亮瞎了 assingle
- 2012,我們畢業(yè)啦-畢業(yè)季分享活動正式上線 assingle
- 【博客分享季】 我的單片機(jī)入門 kisswo
- 在辦公室里自制一個植物鍵盤 assingle
- 碉堡了,這是5星級賓館的標(biāo)準(zhǔn)阿~ 東十三少
- 點亮iphone4 LOGO燈純手工版 技術(shù)強(qiáng)帖?。?!秒殺技術(shù)宅! 心如明鏡
- 【電子拆解無極限】四核處理器露給你看 HTC One X詳細(xì)拆解 assingle
- 【我們畢業(yè)啦】二逼青歡樂多-畢業(yè)照片回顧 cch6213
- 話說今天終于收到耳機(jī)了,曬圖 小鷹fighting
熱門博文
創(chuàng)新實用技術(shù)專題
熱評
- LM3S9B96開發(fā)板手冊及原理圖
- STM32F103ZET6紅牛電路圖
- 高通發(fā)布全新設(shè)計DragonBoard板
- NI推出Single-Board RIO嵌入式介面
- protel99se正式漢化版免費下載
- hi3515海思原版原理圖
- matlab 7.0軟件下載(免費破解版)
- TX-1C型單片機(jī)開發(fā)板原理圖
- 三菱A500變頻器原理圖
- 三相IGBT全橋隔離驅(qū)動電源設(shè)計
博文
- 問什么郵箱激活不了
- 八成大學(xué)生認(rèn)同先就業(yè)后擇業(yè)
- 我的心路
- 你是否曾這樣傷害過一個人?
- 為什么郵箱激活不了
- 2012.5.12 第一個DS18B20程序
- 到底有多少人在校園里浪費青春
- 藍(lán)牙技術(shù)越來越雞肋
- 【博客分享季】 我的單片機(jī)入門
- 到底有多少人在校園里浪費青春
帖子
- 【博客分享季】 我的單片機(jī)入門 kisswo
- 7種你從沒想過的LED照明應(yīng)用,最后一個亮瞎了 assingle
- 公司內(nèi)部資料共享 onejy
- 在辦公室里自制一個植物鍵盤 assingle
- 工程師應(yīng)該掌握的20個模擬電路 nf10000000
- 基于LabVIEW的數(shù)據(jù)采集與信號處理系統(tǒng)的設(shè)計 努力有理想
- labview設(shè)計憤怒的小鳥 海角一客
- 點亮iphone4 LOGO燈純手工版 技術(shù)強(qiáng)帖!?。∶霘⒓夹g(shù)宅! 心如明鏡
- 玩轉(zhuǎn)FPGA,賽靈思FPGA設(shè)計大賽活動細(xì)則,參賽必看 wangka
- 發(fā)布《精通LabVIEW虛擬一起程序設(shè)計》暨-【送書活動預(yù)告】 assingle
用戶評論
查看全部 條評論
查看全部 條評論>>