新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > CPLD的DSP多SPI端口通信設(shè)計

        CPLD的DSP多SPI端口通信設(shè)計

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

        本文引用地址:http://www.104case.com/article/150661.htm

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

          

        數(shù)據(jù)的選址和鎖存在CPLD中的設(shè)計框圖

          2.3 DSP與LTC6903的接口配置

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

          

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

          3 DSP中SPI的開發(fā)過程

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

          

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

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

          

        公式

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



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

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 井冈山市| 房山区| 五莲县| 济南市| 小金县| 迁安市| 陈巴尔虎旗| 怀化市| 凤冈县| 江西省| 肇源县| 徐水县| 成都市| 德庆县| 高安市| 嘉义县| 临海市| 塔城市| 阿荣旗| 三原县| 临汾市| 西乌珠穆沁旗| 柯坪县| 无锡市| 新丰县| 腾冲县| 洛隆县| 湟源县| 巍山| 遵化市| 天津市| 大厂| 西林县| 乐昌市| 尤溪县| 疏附县| 郁南县| 正蓝旗| 贵港市| 东乌珠穆沁旗| 尉犁县|