freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vhdl的串行同步通信spi設(shè)計(編輯修改稿)

2025-07-26 19:12 本頁面
 

【文章內(nèi)容簡介】 AT91RM9200.SPI 的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少 4 根線,事實上 3 根也可以(單向傳輸時) 。也是所有基于 SPI 的設(shè)備共有的,它們是 SDI(數(shù)據(jù)輸入) ,SDO (數(shù)據(jù)輸出) ,SCK (時鐘) ,CS(片選) 。 ?。?)SDO 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入 ?。?)SDI 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出 ?。?)SCLK 時鐘信號,由主設(shè)備產(chǎn)生 ?。?)CS 從設(shè)備使能信號,由主設(shè)備控制  其中 CS 是控制芯片是否被選中的,也就是說只有片選信號為預(yù)先規(guī)定的使能信號時(高電位或低電位) ,對此芯片的操作才有效。這就允許在同一總線上連接多個 SPI 設(shè)備成為可能。  接下來就負(fù)責(zé)通訊的 3 根線了。通訊是通過數(shù)據(jù)交換完成的,這里先要知道 SPI 是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)?。這就是 SCK 時鐘線存在的原因,由SCK 提供時鐘脈沖,SDI,SDO 則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過 SDO 線,數(shù)據(jù)在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少 8 次時鐘信號的改變(上沿和下沿為一次) ,就可以完成 8 位數(shù)據(jù)的傳輸?!PI 是一個環(huán)形總線結(jié)構(gòu),由 ss(cs) 、sck、sdi、sdo 構(gòu)成,其時序其實很簡單,主要是在 sck 的控制下,兩個雙向移位寄存器進行數(shù)據(jù)交換。  假設(shè)下面的 8 位寄存器裝的是待發(fā)送的數(shù)據(jù) 10101010,上升沿發(fā)送、下降沿接收、高位先發(fā)送?! ∧敲吹谝粋€上升沿來的時候 數(shù)據(jù)將會是 sdo=1;寄存器中的 10101010 左移一位,后面補入送來的一位未知數(shù) x,成了 0101010x。下降沿到來的時候,sdi 上的電平將鎖存到寄存器中去,那么這時寄存器=0101010sdi,這樣在 8 個時鐘脈沖以后,兩個寄存器的內(nèi)容互相交換一次。這樣就完成里一個 spi 時序。 波特率這是一個衡量通信速度的參數(shù)。它表示每秒鐘傳送的 bit 的個數(shù)。例如 300 波特表示每秒鐘發(fā)送 300 個 bit。當(dāng)我們提到時鐘周期時,我們就是指波特率例如如果協(xié)議需要4800 波特率,那么時鐘是 4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為 4800Hz。通常電話線的波特率為 14400,28800 和 36600。波特率可以遠遠大于這些值,但是波特率和距離成反比。串行 口每秒發(fā)送或接收數(shù)據(jù)的碼元數(shù)為傳碼 ,單位為波特,也叫波特率。若發(fā)送或接收一位數(shù)據(jù)所需時間為 T,則波特率為 1 / T,相應(yīng)的發(fā)送 或接收時鐘為 1 / T Hz 。發(fā)送和接收設(shè)備的波特率應(yīng) 一致。位 同步是實現(xiàn)收發(fā)雙方的碼元同步,由數(shù)據(jù)傳輸系統(tǒng)的同步控制電路實現(xiàn)。發(fā)送端由發(fā)送時鐘 的定時脈沖對數(shù)據(jù)序列取樣再生,接收端由接收時 鐘的定時脈沖對接收數(shù)據(jù)序列取樣判斷,恢復(fù)原來 的數(shù)據(jù)序列。因此,接收時鐘和發(fā)送時鐘必須同頻 同相,這是由接收端的定時提取和鎖相環(huán) 電路實現(xiàn) 的。傳碼率與位同步必須同時滿足 。否則,接收設(shè)備接收不到有效信息。 3 模塊設(shè)計 頂層模塊 RTL 綜合頂層文件設(shè)計,將波特率發(fā)生模塊,數(shù)據(jù)發(fā)送模塊,數(shù)據(jù)接收模塊,和數(shù)碼顯示模塊通過例化語句組合成總的頂層模塊。其中數(shù)據(jù)發(fā)送模塊為并行輸入串行輸出模塊,在時鐘的上升沿發(fā)送一位數(shù)據(jù),共需要 8 個時鐘脈沖即可發(fā)送完一字節(jié)數(shù)據(jù)。數(shù)據(jù)接收模塊為串行輸入并行輸出模塊,串行輸入的數(shù)據(jù)來自數(shù)據(jù)發(fā)送模塊,在時鐘的上升沿接收數(shù)據(jù),即由“自己發(fā)送的數(shù)據(jù)自己同步接收”來模擬主從器件間數(shù)據(jù)的全雙工傳輸。數(shù)碼管顯示模塊則是循環(huán)顯示 0~8 數(shù)字,每循環(huán)一次代表傳輸完一字節(jié)。以下是頂層模塊 VHDL 源程序:library ieee。use 。use 。entity spi isport(clk,stop,load: in std_logic。 data_in: std_logic_vector(7 downto 0 )。 deng_out : out std_logic_vector(7 downto 0 )。shuma_out : out std_logic_vector(6 downto 0 ))。end spi。architecture one of spi isponent sdiport(clk_sdi : in std_logic。 sdi_in : in std_logic。 load : in std_logic。 shuma:out integer range 0 to 8。 sdi_out : out std_logic_vector(7 downto 0 ))。end ponent。ponent sdoport(clk_sdo,load : in std_logic。 sdo_in : in std_logic_vector(7 downto 0)。 sdo_out : out std_logic)。end ponent。ponent SHUMGport(num:in INTEGER RANGE 0 TO 8。dout:out std_logic_vector(6 downto 0))。end ponent。ponent fenpinport(clk,stop:in std_lo
點擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1