<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 全功能SPI接口的設計與實(shí)現

全功能SPI接口的設計與實(shí)現

作者: 時(shí)間:2013-05-16 來(lái)源:網(wǎng)絡(luò ) 收藏

當分頻時(shí)鐘用于產(chǎn)生SPICLK時(shí),異或門(mén)XOR1的一個(gè)輸入端來(lái)自配置寄存器的Polarity端,用于控制時(shí)鐘極性。節點(diǎn)Y3作為D觸發(fā)器MTN1的輸出端,輸出方程為:
b.JPG
S0為0,D觸發(fā)器上升沿觸發(fā)。S0為1,D觸發(fā)器保持原狀態(tài)。通過(guò)MTN1后的分頻時(shí)鐘,其高電平時(shí)間和低電平時(shí)間相等或相差一個(gè)系統時(shí)鐘周期,這個(gè)時(shí)鐘即為主模式下產(chǎn)生的SPICLK,通過(guò)Phase和Polarity端的選擇將會(huì )有四種不同時(shí)鐘模式。
當分頻時(shí)鐘用于產(chǎn)生SPI控制器的內部時(shí)鐘時(shí),MUX2的選擇端S來(lái)自配置寄存器的主/從模式選擇端,選擇內部時(shí)鐘還是外部時(shí)鐘通過(guò)。輸出端LANCLK用于SPI控制器的數據輸入/輸出鎖存時(shí)鐘。其方程為:
c.JPG
這里的DICLKn為通過(guò)MUX2后的分頻時(shí)鐘。由于時(shí)鐘極性對傳輸協(xié)議沒(méi)有影響,所以上式將使四種時(shí)鐘模式轉變成2種,即上升沿無(wú)延遲和下降沿有延遲,而后在用于控制數據的輸入/輸出鎖存。通過(guò)節點(diǎn)Y2的分頻時(shí)鐘經(jīng)過(guò)控制邏輯傳送到輸出端CNTCLK和DATCLK,這兩個(gè)時(shí)鐘分別用于SPI控制器內部計數器的計數時(shí)鐘和移位寄存器的控制時(shí)鐘。
以上分析均是在SPI控制器工作在主模式的情況,當SPI控制器工作在從模式時(shí),外部時(shí)鐘來(lái)自與門(mén)AND1的一個(gè)輸入,通過(guò)控制邏輯分別到達CNTCLK和DATCLK端。
在時(shí)鐘生成模塊里同時(shí)具有相應控制功能:Reset引腳,模塊的復位端,低有效。SPISTE引腳,SPI控制器的使能端,低有效。Susp_free和Susp_soft引腳,決定了當仿真器突然中斷時(shí)SPI模塊將采取何種動(dòng)作,在時(shí)鐘生成模塊里,Susp_free和Susp_soft被置為00時(shí),將關(guān)斷SPI CLK,使正在傳送的數據立即停止。

3 SPI控制器的仿真實(shí)現
SPI控制器的仿真使用Mentor公司的ModelSim軟件,該軟件可在windows,Linux平臺上使用,支持VHDL或Verilog硬件描述語(yǔ)言(HDL)仿真。它支持所有器件的行為級仿真、VHDL或Verilog仿真激勵。為了測試設計的正確性,編寫(xiě)了testbench模塊,包括產(chǎn)生時(shí)鐘信號,控制寄存器的配置,收發(fā)的數據,產(chǎn)生的中斷等。
3.1 SPI控制器時(shí)鐘仿真驗證
當SPI工作在主模式下,控制器根據從控制器的時(shí)序要求會(huì )提供具有4種不同極性和相位的時(shí)鐘。圖6為SPI控制器內部時(shí)鐘生產(chǎn)模塊的仿真驗證,輸入DICLK為分頻后時(shí)鐘,其對系統時(shí)鐘進(jìn)行了14分頻。時(shí)鐘生產(chǎn)模塊對DICLK進(jìn)行處理,產(chǎn)生LANCLK,CNTCLK,DATCLK和4種不同極性和相位的SPICLK。

本文引用地址:http://dyxdggzs.com/article/153493.htm

e.JPG


3.2 SPI控制器工作在主模式下的驗證測試
通過(guò)配置寄存器選擇SPI工作在主模式,此時(shí)主SPI通過(guò)引腳SPICLK提供整個(gè)串行網(wǎng)絡(luò )的串行時(shí)鐘。SPI波特率寄存器決定發(fā)送和接收的傳輸速率。發(fā)送數據時(shí),主控制器先發(fā)送SPICLK信號,然后向SPIDAT和SPITXBUF寄存器寫(xiě)入數據C00F和8FF,寫(xiě)入這兩個(gè)寄存器都可以啟動(dòng)SPISIMO引腳上的數據發(fā)送(先發(fā)送最高有效位)。同時(shí)從控制器通過(guò)引腳SPISIMO將接收到的數據移入SPIDAT的最低位,當選定量的位發(fā)送完時(shí),整個(gè)數據發(fā)送完畢,數據按照右對齊的格式存入SPIRXBUF中,以備系統讀取(一般為cpu),同時(shí)中斷標志位被置為1,當系統發(fā)出指令,讀取存在SPITXBUF的數據時(shí),SPI中斷標志位被清零,仿真結果如圖7所示。

f.JPG



4 結束語(yǔ)
文中提出了一種全功能硬件SPI接口設計方法,實(shí)現了4種具有不同極性和相位的時(shí)鐘,它吸取了傳統軟硬件的優(yōu)點(diǎn),具有速度快、結構簡(jiǎn)單的特點(diǎn),并已通過(guò)功能仿真和FPGA驗證,結果證明本設計是可靠的,可直接用于FPGA中或者作為硬件電路嵌入具體芯片內。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>