999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種SPI串口模塊的FPGA實現

2012-07-12 05:06:56四川九洲電器集團公司王維維
電子世界 2012年18期
關鍵詞:信號設計

四川九洲電器集團公司 王維維 馮 碩 昌 暢

一種SPI串口模塊的FPGA實現

四川九洲電器集團公司 王維維 馮 碩 昌 暢

主要介紹了一種在FPGA中實現SPI總線通信串口模塊的方法,并給出了設計方案、仿真結果以及硬件測試結果。本設計可以廣泛應用于常規處理控制器件(單片機、DSP等)同外部外設及其它處理器之間進行SPI數據通信的系統中,特別是需要快速構建數據通信系統的應用環境,在通信、消費電子及工業控制等諸多領域有廣闊的應用前景。

SPI接口;VHDL;FPGA

1.引言

串行外設接口(SPI)是一個高速同步的串行輸入/輸出口。SPI通常用于處理器和外部外設以及其它處理器之間進行通信。很多新型器件如LCD模塊、FLASH、ADC、EEPROM存儲器以及時鐘芯片等都采用了SPI接口。但在實際開發應用中,若主控制器無SPI接口或需要與多個具有SPI接口的外設通信,就要使用主控制器的I/O口通過軟件來模擬,這在很大程度上限制了其應用給數據傳輸帶來不便。所以采用硬件來實現SPI接口擴充的方法最為可行。

當前,基于主從處理器結構的系統架構已經成為一種主流(如DSP+FPGA,MCU+FPGA等)。FPGA優點主要在于它有很強的靈活性,即其內部的具體邏輯功能可以根據需要配置,對電路的修改和維護很方便。傳統SPI接口的FPGA實現往往采用廠家提供的IP核實現,這種方法雖能基本滿足SPI通信要求,但設計不夠靈活,不利于功能擴展。基于此,提出一種新的基于FPGA的SPI串口模塊實現方法。

2.SPI總線接口及時序

SPI串行接口運用4條線可與多種標準中心器件間接接口:串行時鐘線SPICLK,主機輸出/從機輸入數據線SPISIMO,主機輸入/從機輸出數據線SPISOMI和低電平有效的從機選通信號線SPI_CS。

SPICLK為主機時鐘線,是從機的一個輸入,為SPISOMI數據的發送和接收提供同步時鐘信號。時鐘的相位(CPHA)與極性(CPOL)可以用來控制數據的傳輸。CPOL=“0”表示SCLK的靜止狀態為低電平,CPOL=“1”則表示SCLK的靜止狀態為高電平。時鐘相位(CPHA)可以用來選擇兩種不同的數據傳輸模式。如果CPHA=“0”,數據在信號SPI_CS聲明后的第一個SCLK邊沿有效。而當CPHA=“1”時,數據在信號SPI_CS聲明后的第二個SCLK邊沿才有效。因此,主機與從機中SPI設備的時鐘相位和極性必須要一致才能進行通信。

SPI有兩種工作模式:主模式和從模式。工作在主模式下,不管是發送還是接收數據,SPICLK為整個串行通信網絡提供時鐘。串行數據發送時,首先發送的是最高有效位(MSB),時鐘信號的1次作用對應1位數據的發送(SPISIMO)和另1位數據的接收(SPISOMI)。工作在從模式下,不管是發送還是接收數據,一直必需在SPICLK信號作用下停止,并且SPI_CS信號必需有效。1個典型的SPI系統包括一個主MCU和1個或幾個從外圍器件。

SPI主模式的數據接收時序見圖1。

SPI主模式的數據發送時序見圖2。

3.FPGA設計方案

本設計按一個默認數據通信速率(10Mbps)、時鐘模式(無相位延時的下降沿)、主/從工作方式(主SPI模式)進行SPI數據的收發。可通過外部處理控制器對本模塊進行各種通信參數的動態配置,以適應不同的通信速率、時鐘模式、工作方式、數據長度等情況。配置完畢后,即可開始SPI數據的收發過程。

圖1 SPI主模式數據接收時序

圖2 SPI主模式數據發送時序

圖3 SPI串口模塊系統框圖

圖5 SPI主模式數據發送流程

圖4 SPI主模式數據接收流程

圖6 仿真結果圖

本設計中增加了一根主/從SPI方的握手信號線SPI_STATUS,該信號線在從SPI方發送數據時被從方拉為低電平,而在從SPI方接收數據時被從方設置為高電平。

根據SPI總線的原理,本設計分為兩大功能模塊:數據接收及協議解析、數據發送處理。該SPI串口模塊系統框圖如圖3所示。

在這些子模塊中,數據接收FIFO和數據發送FIFO用來做接收、發送數據的FIFO。通信參數配置單元供處理控制器讀寫配置SPI的各種參數。對外并行接口單元負責與外部處理控制器進行數據交互。串行數據接收、命令解析及中斷產生單元完成串行數據接收、通信命令解析及產生中斷信號通知處理控制器進行數據接收操作。串行時鐘產生及收發控制單元用來發生主模式下的時鐘信號,同時對數據的接收或者發送進行功能切換。串行數據發送處理單元負責把并行進來的數據串行傳出,完成對數據發送的處理。

(1)數據接收及協議解析

當從SPI方發送數據的時刻到來時,本設計檢測到狀態線SPI_STATUS為“低”,則串行時鐘產生及收發控制單元立即啟動接收邏輯,對外輸出串行時鐘SPICLK信號和選通信號SPI_CS,同時在SPICLK上升沿時刻進行數據采樣,并將串行數據進行相應緩存。

每當采樣數據構成一個完整字節時,由接收模塊將收到的數據存入“數據接收FIFO”,同時對串口數據中的特殊字段進行協議解析。過程如下:先檢索收全數據同步頭字節“AAH AAH”后,對后面接收的完整字節進行+1計數處理,再檢索收到串口數據總長度字節后,判斷已收到的字節總數是否達到串口數據總長度值。如果達到接收數據總長度值,則表示一幀數據命令接收完整,此處由接收模塊置出“命令數據接收完整”標志;同時,當檢測到狀態線SPI_STATUS的上升沿到來,給出數據接收完畢中斷標志信號int_rxd及時中斷處理控制器,通知外部控制器讀取數據進行處理,而不必每接收到1個字節就中斷一次,避免了主程序被頻繁中斷。

目前,本設計的接收FIFO和發送FIFO深度均設定為2048字節,可以緩存大量的通信數據,而不會將先前收到的數據覆蓋,外部處理控制器可以在處理完其它緊要任務后,再來進行SPI數據的讀取和后續處理,而不必擔心已接收的SPI數據會丟掉。

接收數據的流程圖如圖4所示。

(2)數據發送處理

當需要發送SPI數據時,外部處理控制器將需要發送的所有數據依次寫入本設計的“數據發送FIFO”中,再對本設計另一個地址單元寫入“啟動發送命令”后,即可啟動數據發送模塊發送數據。該模塊實時判定數據發送FIFO是否為空,若FIFO內有數據則立即對外輸出串行時鐘SPICLK信號和選通信號SPI_CS,并在SPICLK的下降沿時刻對取出的數據進行發送,首先發送的是最高有效位(MSB)。即對主程序而言,就是向一特定地址寫入所有需要發送的數據,再寫入一個啟動發送命令即可自動完成全部數據的發送,無需進行發送流程控制。

發送數據的流程圖如圖5所示。

4.電路完成

為了保證代碼的準確性,首先應根據模塊功能需求來編寫相應測試向量作為本SPI模塊的輸入激勵,然后經過查看模塊的輸出結果,判定本SPI模塊的各項功能是否正確。

采用了XILINX公司的EDA編譯軟件平臺ISE10.1,將用VHDL語言描述好的SPI接口模塊進行了綜合,然后用modelsim軟件進行仿真。在建立測試平臺時,首先建立模擬從SPI方數據發送的模塊,同時建立模擬主SPI方數據發送的模塊,再將接收/發送數據內容進行比較、驗證。在仿真軟件的輔助分析下,得到了正確的結果。仿真結果如圖6所示。

仿真通過后,將整個設計工程文件經綜合后的EDIF文件提交給ISE進行布局、布線后,把所生成的mcs文件下載到XILINX公司的FPGA芯片XC3S400中運行,結果與在modelsim中的仿真結果一致,該SPI總線接口模塊能達到所要求實現的性能,具有很強的實用性。

5.結束語

本設計以FPGA為硬件平臺,應用VHDL語言進行程序編制??蓪崿F對SPI通信數據的自動接收和發送,也可由外部程序對該SPI串口進行快速配置,從而完成串口通信速率、時鐘模式、工作方式、數據長度等的動態更改。

通過簡單的程序復用,該設計可擴充為多路SPI數據通信接口,一方面彌補了常規處理控制器件(單片機、DSP等)所自帶的SPI硬件串口操作繁瑣、功能受限的不足,另一方面也把單片機、DSP從頻繁的數據查詢或數據中斷中解放出來,從而投入更多精力到其它的功能控制中。

[1]侯伯亨,顧新,編著.VHDL硬件描述語言與數字邏輯電路設計[M].西安電子科技大學出版社,1999.

[2]孫豐軍,余春暄.SPI串行總線接口的Verilog實現[J].現代電子技術,2005.

王維維(1980—),男,陜西人,2002年畢業于武漢大學,主要從事電子信息方面工作。

馮碩(1984—),男,四川人,2007年畢業于電子科技大學,主要從事電子信息方面工作。

昌暢(1987—),男,重慶人,2009年畢業于四川大學,主要從事電子信息方面工作。

猜你喜歡
信號設計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
孩子停止長個的信號
瞞天過?!律O計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: av一区二区人妻无码| 午夜天堂视频| 亚洲天堂视频在线观看| 国产色伊人| 国产一区成人| 中国国产高清免费AV片| 欧美一区二区啪啪| 40岁成熟女人牲交片免费| 91无码网站| 高清无码一本到东京热| 波多野衣结在线精品二区| www欧美在线观看| 天天操天天噜| 国产麻豆精品手机在线观看| 亚洲综合色婷婷中文字幕| 中文字幕2区| 免费看a级毛片| 精品国产99久久| 久久99精品国产麻豆宅宅| 成年女人a毛片免费视频| 国产午夜人做人免费视频中文| 亚洲国产理论片在线播放| av在线5g无码天天| 日本人妻丰满熟妇区| 久久综合色播五月男人的天堂| 久久国语对白| 国产精品思思热在线| 国产精品永久在线| 玖玖精品在线| 青草精品视频| 亚洲成a人片77777在线播放 | 97亚洲色综久久精品| 制服丝袜 91视频| 青草午夜精品视频在线观看| 欧美日韩va| 91小视频在线观看| 国产女人在线| 午夜免费小视频| 奇米影视狠狠精品7777| 国产国语一级毛片在线视频| 欧美色图久久| 97色婷婷成人综合在线观看| 国产鲁鲁视频在线观看| 在线看AV天堂| 国产理论精品| 直接黄91麻豆网站| 欧美一区日韩一区中文字幕页| 久久婷婷五月综合97色| 国产成人你懂的在线观看| 五月婷婷综合网| 色偷偷男人的天堂亚洲av| 日本国产精品一区久久久| 伊人久久婷婷五月综合97色| 国产成人亚洲精品蜜芽影院| 一级毛片在线免费视频| 久久精品国产精品国产一区| 国产a v无码专区亚洲av| 亚洲精品色AV无码看| 国产亚洲美日韩AV中文字幕无码成人| 欧美激情综合| 色精品视频| 国产在线观看成人91| 久久人与动人物A级毛片| 午夜日b视频| 亚洲高清无码精品| 日本www在线视频| 亚洲国产综合第一精品小说| 91麻豆国产精品91久久久| 男女男免费视频网站国产| 欧美精品xx| 亚洲男人的天堂久久精品| 亚洲色图欧美视频| 综合五月天网| 国产一区二区三区夜色 | 亚洲男人在线| 欧美一道本| 国产激爽大片高清在线观看| 亚洲精品无码不卡在线播放| 国产女人在线观看| 激情视频综合网| 亚洲综合一区国产精品| 在线观看国产一区二区三区99|