<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è) > 嵌入式系統 > 設計應用 > CPLD的DSP多SPI端口通信設計

CPLD的DSP多SPI端口通信設計

作者: 時(shí)間:2011-06-02 來(lái)源:網(wǎng)絡(luò ) 收藏
2.2 鎖存器

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

  鎖存器的工作特點(diǎn):當gate引腳上輸入高電平信號時(shí),鎖存器工作開(kāi)始鎖存總線(xiàn)上的數據;當gate引腳上是低電平時(shí),鎖存器不工作,即當總線(xiàn)上的數據發(fā)生變化時(shí),鎖存器的輸出不發(fā)生變化。由于本需要多個(gè)參數傳輸,通過(guò)地址選擇的方法把這3個(gè)數據從一條總線(xiàn)上區分出來(lái),設置傳輸數據的低兩位為地址選擇位。地址選擇位經(jīng)移位寄存器,串并轉換,作為三輸入與門(mén)的兩個(gè)輸入端,進(jìn)行地址選擇。每次16位的數據移位結束,數據穩定時(shí),在計數器高電平作用下,相應gate的引腳上輸出高電平,數據鎖存入相應的鎖存器。例如,可以設置低兩位是“11”時(shí),送入PWM電路的是ll位的調相信號;當低兩位設置成“01”時(shí),送入PWM電路的是10位調節A相占空比的信號;當低兩位設置成“10”時(shí),送入PWM電路的是10位調節B相占空比的信號。由此可以在電路中一個(gè)三輸人的與門(mén),當16位數據傳輸完畢,即在相應gate的引腳上輸出高電平時(shí),數據存入對應的鎖存器,如圖5所示。

  

數據的選址和鎖存在CPLD中的設計框圖

  2.3 DSP與LTC6903的接口配置

  由于LTC6903芯片本身具有接口,需要在DSP的程序中設置相應的寄存器。LTC6903采用上升沿接收,且接收時(shí)高位在前,所以需要DSP設置為下降沿傳輸,傳輸時(shí)高位在前。在傳輸的過(guò)程中,在脈沖信號的下降沿數據發(fā)生變化,傳輸數據;在脈沖信號的上升沿數據穩定,便于LTC6903鎖存數據,傳輸時(shí)序如圖6所示。從圖中可以看出,所要傳輸的數據是十六進(jìn)制數019A,下降沿數據發(fā)生變化,上升沿數據穩定,傳輸16位數據,有16個(gè)脈沖。實(shí)驗結果表明,DSP配置是與LTC6903的接口工作時(shí)序相匹配的。

  

SPI的數據和脈沖時(shí)序圖

  3 DSP中SPI的開(kāi)發(fā)過(guò)程

  SPI端口數據傳輸的特點(diǎn)是:主設備的時(shí)鐘信號出現與否決定數據傳輸的開(kāi)始,一旦檢測到時(shí)鐘信號即開(kāi)始傳輸,時(shí)鐘信號無(wú)效后傳輸結束。這期間,從設備使能時(shí)鐘信號的起停狀態(tài)很重要。DSP56F801的SPI端口的時(shí)鐘信號起停狀態(tài)如表1所列。在設計中設置的SPI控制寄存器的CPOL和CPLA位是“11”。SCLK空閑時(shí)為高電平,傳輸中數據變化發(fā)生在下降沿,穩定在上升沿。從圖2可看出實(shí)現了與中的移位鎖存電路的匹配,傳輸正確。

  

SCLK時(shí)鐘的起停狀態(tài)

  SPI端口協(xié)議要求系統上電復位后,從機先于主機開(kāi)始工作。如果從機在主機之后開(kāi)始工作,就有可能丟掉部分時(shí)鐘信號,使得從機并不是從數據的第一位開(kāi)始接收,造成數據流的不同步??赏ㄟ^(guò)硬件延時(shí)或軟件延時(shí)的方法,來(lái)確保從機先于主機工作。本設計采用軟件延時(shí)的辦法來(lái)實(shí)現數據流的同步。這個(gè)延時(shí)由兩部分組成,一部分是DSP串行輸出數據的時(shí)間延時(shí),另外一部分就是后續數字電路中的延時(shí)。延時(shí)的具體計算過(guò)程如下:數據傳輸時(shí)使用的時(shí)鐘信號是對總線(xiàn)時(shí)鐘的2分頻,當DSP的主頻是60 MHz時(shí),總線(xiàn)時(shí)鐘頻率是30MHz,對它進(jìn)行2分頻,可以計算出SCLK的周期是66.6ns(實(shí)際所測出的周期是78.2 ns)。另外通過(guò)測試得到PWM電路的延時(shí)最長(cháng)時(shí)間是23.6 ns,鎖存器的最大延時(shí)是7.6 ns,移位寄存器的最大延時(shí)是3.O ns。由上述對數字電路的延時(shí)和對SCLK周期的測試,就可以得到這樣一個(gè)結論:設PWM電路的延時(shí)時(shí)間為t1、鎖存器的延時(shí)時(shí)間為t2、移位寄存器的延時(shí)時(shí)間為t3、SCLK的時(shí)鐘周期是Tc,在SPI傳輸的過(guò)程中,整個(gè)電路的延時(shí)t可以這樣計算:

  

公式

  由于數字電路傳輸中存在這樣的延時(shí),所以在寫(xiě)DSP程序時(shí),需要加入一定的延時(shí)。此實(shí)驗中加入的延時(shí)是2μs,可以實(shí)現可靠傳輸。



關(guān)鍵詞: 設計 通信 SPI DSP CPLD

評論


相關(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>