本文通過對TI公司DSP處理器TMS320F2812接口機制及時序特性的研究,介紹了TMS320F2812的接口配置思路及注意事項,分析了訪問外設的時序控制機理,同時試驗驗證了該處理器流水線操作的時序訪問特性,并針對該特性提出了提高時序可靠性的設計措施,對指導基于TMS320F2812的系統設計、提高產品接口時序可靠性具有重要意義。
【關鍵詞】TMS320F2812 外部接口 時序 可靠性
近年來,隨著微電子技術的飛速發展,數字信號處理器(DSP)應用越來越廣泛,同時也得到越來越多的關注。TI公司推出的TMS320F2812由于具有功耗低、運算速度快、片上資源豐富、編程靈活、可靠性高等優點,成為電子設計中應用最廣泛的處理器之一。
基于TMS320F2812產品設計中DSP處理器需要與A/D、D/A、1553B等外設進行信息交互,接口時序的可靠性直接影響電子控制產品的功能可靠性,接口不可靠、時序不匹配會導致:DSP讀到異常數據, 參與控制的數據錯誤從而發出錯誤的指令;外設接收到異常數據或指令,外設按照異常數據或指令動作,導致產品工作異常。為了提高DSP處理器與外設接口的時序可靠性,從而提高產品的整體可靠性,本文針對TMS320F2812與外設的接口時序設計進行了深入研究。
1 TMS320F2812外部接口描述
TMS320F2812外部接口(XINTF)采用異步非復用模式總線,映射到5個獨立的存儲空間:Zone0、Zone1、Zone2、Zone6、Zone7,當訪問相應的存儲空間時,就會產生一個片選信號;另外,XZCS0n和XZCS1n共用一個片選信號XZCS0AND1n, XZCS6n和XZCS7n共用一個片選信號XZCS6AND7n,XZCS2n單獨輸出一個片選信號。TMS320F2812的外部接口框圖如圖1所示。
TMS320F2812的外部五個存儲空間Zone0、Zone1、Zone2、Zone6、Zone7每個空間都可以獨立地設置訪問等待、選擇、建立以及保持時間,同時還可以用XREADY信號來控制外設的訪問。外部接口的訪問時鐘頻率由內部的XTIMCLK提供,XTIMCLK頻率可以配置為等于系統輸出時鐘fSYSCLKOUT或fSYSCLKOUT/2。
2 外部接口配置
外部接口控制寄存器能夠配置各種參數,以便能夠與眾多不同外部擴展設備無縫接口。在使用過程中,主要根據TMS320F2812器件的工作頻率以及XINTF的特性進行配置。由于配置前后,XINTF可能會發生很大變化,所以盡量避免將配置程序放在XINTF擴展的存儲器空間執行。
在改變XINTF配置寄存器和時序寄存器的過程中,不能對XINTF進行如下操作:仍在CPU流水線上的指令對XINTF的訪問、XINTF寫緩沖器內的寫訪問、數據讀寫和預先取指操作。為保證在改變配置過程中不訪問XINTF,任何配置XTIMING0/1/2/6/7/、XBANK或XINTCNF2寄存器的操作,都必須采用如圖2所示配置流程圖。
2.1 XINTF時鐘配置
XINTF模塊有兩種時鐘模式,可以配置為與SYSCLKOUT時鐘頻率相同或為SYSCLKOUT/2。所有的外部擴展訪問都是以內部XINTF的時鐘XTIMCLK為參考的,因此在配置XINTF時,首先要通過XINTCNF2寄存器配置XTIMCLK。外部接口還提供一個時鐘輸出XCLKOUT,所有外部接口的訪問都是在XCLKOUT上升沿開始,可以通過XINTCNF2寄存器的CLKMODE位配置XCLKOUT的頻率。
2.2 寫緩沖
TMS320F2812復位后默認情況下寫緩沖被屏蔽,為提高XINTF性能,要使能寫緩沖訪問模式。在不停止CPU的情況下,最多可允許3個數據通過緩沖方式向XINTF寫數據。寫緩沖器的深度可以在XINTCNF2寄存器內進行配置。
2.3 各地址空間訪問的建立(lead)、激活(Active)、和跟蹤(Trail)的時序配置
XINTF是直接訪問外部接口的存儲器映射區域。任何對XINTF空間的讀或寫操作的時序都可以分為三個階段:建立、激活和跟蹤。在寄存器XTIMING中可以設置每個XINTF空間訪問各階段時等待的XTIMCLK周期數。讀寫訪問操作的時序可以獨立進行配置。除此之外,為了能夠與慢速外設接口,還可以使用X2TIMING位使訪問特定空間的建立、激活和跟蹤等待時間延長1倍。
對于XTIMING配置為最長仍不能滿足可靠接口要求的慢速外設,DSP可以配置為檢測外設輸出的XREADY信號,從而可以延長DSP訪問外設的激活階段。TMS320F2812上所有的XINTF空間公用一個XREADY信號,每個空間都可以進行獨立配置檢測或不檢測XREADY信號,并可以選擇同步檢測或異步檢測XREADY信號。DSP訪問外設使用XREADY信號訪問外設時,一定要保證外設輸出至DSP的XREADY信號的可靠性,并需要看門狗進行保護。
3 TMS320F2812流水線訪問外設特性
對于C28X系列DSP,在對外設進行訪問時,有兩種情況:一種是訪問時硬件會保護外設寄存器所占用的存儲空間,嚴格按照語句順序執行,避免操作次序被顛倒,這樣的存儲空間稱為寫操作后面緊跟讀操作流水線保護空間,在TMS320F2812上,Zone1空間為默認的寫操作緊跟讀操作流水線保護空間;另一種是讀操作先于寫操作執行,由于該特性存在,在寫操作后面緊跟讀操作執行時,如果兩個操作的目標地址不同,其實際的執行順序為先執行讀操作后執行寫操作(如果兩個操作的目標地址相同,其實際的執行順序為先執行寫操作后執行讀操作),對于 TMS320F2812,Zone0、Zone2、Zone6、Zone7空間為此類非流水線保護空間。endprint
3.1 試驗驗證情況
對于TMS320F2812的非流水線保護空間(以Zone0為例),設計了測試代碼,通過示波器觀察DSP輸出的R/Wn信號,以此判斷DSP實際執行語句的順序,測試源代碼如下:
int i,iTemp;
int * ADDR1, * ADDR2;
……
for(i=0;i<5;i++)
{
iTemp = *ADDR1;
*ADDR1= iTemp;
iTemp = *ADDR2;
*ADDR2= iTemp;
}
當指針ADDR1與ADDR2指向的地址相同時,經R/Wn信號測得的波形如圖3所示,由波形可知DSP每個循環執行語句的時序為讀→寫→讀→寫。
當指針ADDR1與ADDR2指向的地址不同時,經R/Wn信號測得的波形如圖4所示,由波形可知DSP每個循環執行語句的時序為讀→讀→寫→寫,每個循環中間的寫→讀操作互換變為讀→寫操作,其原因即上面所述DSP的不受保護的流水線訪問機制。由于此時時序互換的寫操作和讀操作的目標地址不同,因此訪問時序的互換不會影響程序的運行結果。
對于TMS320F2812的寫操作后面緊跟讀操作流水線保護空間Zone1,同樣用上述測試代碼進行試驗,通過示波器觀察DSP輸出的R/Wn信號。由于空間Zone1對DSP訪問外設時寫操作后面緊跟讀操作流水線進行了保護,無論目標地址是否相同均不會出現時序顛倒的情況。對于Zone1的兩地址ADDR1與ADDR2相同和不同時,通過示波器觀察DSP輸出的R/Wn信號波形均如圖5所示。
3.2 基于TMS320F2812流水線訪問外設特性的設計措施
由于TMS320F2812流水線訪問外設除受保護區Zone1以外均有寫操作后面緊跟讀操作時先執行讀操作的特性,當外設通過并行接口用XINTF進行訪問時,實際應用中如果涉及向某一寄存器寫入一條指令會更新另一寄存器某些狀態位,并接著通過后一寄存器狀態位查詢前一條操作是否操作成功的工作流程,在查詢后一寄存器狀態時必須保證前一條寫入操作可靠執行,此時寫→讀的操作順序必須嚴格執行不允許顛倒,如遇此情況,設計時須將該外設映射到Zone1,保證操作時序的正確性。
基于以上分析,擴展用XINTF進行訪問的帶寄存器并行外設時,其地址空間應盡量分配在流水線保護空間Zone1,以提高操作時序的可靠性。
4 結束語
本文通過對TI公司DSP處理器TMS320F2812接口機制及時序特性的研究,介紹了TMS320F2812的接口配置思路及注意事項,分析了訪問外設的時序控制機理,同時試驗驗證了該處理器流水線操作的時序訪問特性,并針對該特性提出了利用流水線保護空間Zone1擴展外設提高時序可靠性的設計措施,對指導基于TMS320F2812的系統設計、提高產品接口時序可靠性具有重要意義。
參考文獻
[1]Texas Instruments,《TMS320F2810, TMS320F2811,TMS320F2812,TMS320C2810, TMS320C2811,TMS320C2812 Digital Signal Processors》,DALLAS, TEXAS,2005.
[2]Texas Instruments,《TMS320x281x DSP External Interface (XINTF) Reference Guide》,DALLAS,TEXAS,2004.
[3]蘇奎峰,呂強,耿慶鋒,陳圣儉.TMS320F2812 原理與開發[M].電子工業出版社,2005.
[4]蘇奎峰,呂強,常天慶,張永秀.TMS320X281X DSP原理及C程序開發[M].北京航空航天大學出版社,2008.
作者簡介
曹英?。?982-),男,河北省人。高級工程師,自動化專業碩士,現從事控制器、電機驅動器等電力電子產品研發,長于電子產品可靠性設計與故障模式探究。
作者單位
北京精密機電控制設備研究所 北京市 100076endprint