帶ARM核的雙CPU數字信號處理器
摘要:主要介紹美國TI公司最新推出的定點數字信號處理器TMS320VC5470的結構、功能及特性。對集成到該器件中的TMS320C54x數字信號處理器和ARM7TDMI RISC MCU及其兩者的連接分別作了介紹。對選用TMS320VC5470作為數字信號處理器構建嵌入式系統有一定的參考價值。
本文引用地址:http://www.j9360.com/article/242331.htm關鍵詞:TMS320VC5470 DSP MCU TMS320C54x ARM7TDMI
引言
TMS320VC5470(簡稱5470)是集成了基于TMS320C54x體系結構的DSP子系統和基于ARM7TDMI核的RISC微控制器子系統的CPU定點數字信號處理器。它與以前的器件相比,提高了速度、降低了功耗,并且在很大程度上提高了編程靈活性,有利于對產品的軟硬件升級,用于實現具有特殊功能的產品。通過合理安排軟硬件資源,還可以節省投資,加速上市時間。
1 TMS320VC5470特性及功能框圖
*集成了1個TMS320C54x體系結構的DSP和1個ARM7TDMI RISC MCU的雙CPU處理器;
*帶有72K×16位集成SRAM的16位低功耗DSP,速度可高達100MHz;
*用于DSP和MCU子系統的先進電源管理和低功耗模式;
*集成的DSP子系統外圍,包括2個高速的全雙工多通道緩沖串口McBSPs,使DSP核可以與編解碼器(CODEC)直接接口;具有6個獨立通道的DMA控制器;ARM端接口(port interface)為MCU子系統和DSP子系統的CPU之間進行有效的信息交換提供了2K×16位的共享存儲器接口;外存儲器接口EMIF(External Memory Interface);可以將外部總線周期擴展到14個機器周期的軟件可編程等待狀態生器;1個用于控制功能的軟件可編程的硬件定時器;可編程的鎖相環PLL時鐘發生器。
*帶有16K字節集成SRAM和仿真性能增強型的ARM7TDMI RISC微控制器核,使運行速度可高達47.5MHz;
*集成的MCU子系統外圍,包括通用異步收發器UART、支持SIR協議的UART/IrDA接口、串行外圍接SPI、36個通用I/O引腳、I2C接口、2個通用定時器、1個看門狗定時器、中斷處理器、支持Flash/SRAM/SDRAM/ROM的外部存儲接口、對MCU外圍靈活的時鐘管理、可編程的鎖相環時鐘發生器。
*基于片上掃描的仿真邏輯,DSP和MCU核的IEEE標準1149.1+(JTAG)邊界掃描邏輯;
*支持DSP和MCU核的基于掃描的仿真。
圖1為TMS320VC5470器件的功能框圖。此器件由DSP和MCU 2個子系統構成。
2 DSP子系統功能介紹
DSP子系統是基于TMS320C54x、片上存儲器和外圍的,并且與其它的C54x產品代碼兼容。DSP子系統包括DSP CPU核、用于產生時鐘的鎖相環、與外部并行設備連接的接口、1個定時器、72K字的RAM、2個多通道緩沖串口、1個允許MCU訪問DSP子系統某部分存儲器映射的接口以及1個JTAG接口。
(1)DSP核
5470器件中DSP子系統的定點數字信號處理器(DSP)采用的是先進的改進型哈佛體系結構,其中有1條程序存儲器總線和3條數據存儲器總線。此處理器提供具有高度并行性的算術邏輯單元(ALU)、專用硬件邏輯、片上存儲器以及附加的片上外設。DSP操作的速度和靈活性的基礎是其高度專用性的指令集。
程序和數據空間的分離以及4條并行總線允許對程序的指令和數據進行同時訪問,每條總線訪問不同的存儲器空間以實現不同的DSP操作,從而提供了高度的并行性。在1個單周期中可以執行2次讀操作和1次寫操作。并行存儲的指令和特定應用的指令可以完全利用這種結構。另外,數據可以數據和程序空間之間進行傳輸。這種并行性保證了包含算術、邏輯和位運算的強大的操作指令集都可以在1個機器周期內完成。DSP子系統還包含1個專門用于在線仿真的仿真端口,此端口直接被TI公司的擴展型開發系統(XDS)硬件仿真器訪問并提供仿真。除此之外,5470的DSP子系統還包括控制機制,用于管理重復操作、函數調用和DSP中斷。
(2)DSP存儲器
5470器件提供72K字的片上RAM如下:40K字的程序空間單邊訪問RAM(SARAM)、16K字的數據空間雙邊訪問RAM(DARAM)和16K字數據空間單邊訪問RAM(SARAM)。每一個DARAM塊可以在1個機器周期內執行2次DSP訪問。DSP子系統在1個機器周期內還可以執行對分離的存儲塊的多個訪問。在一次正常的復位之后,地址0x0000~0x7FFF之間的數據空間RAM塊只被映射為數據存儲空間,址0x06000~0x0FFFF之間的程序空間RAM塊只被映射為程序空間。DSP存儲器映射有2種模式:正常模式和API啟動模式。復位、中斷和陷阱向量均位于程序空間。當出現陷阱時,處理器將陷阱地址加載到程序計數器(PC),并從這個向量位置開始執行代碼。器件復位后,復位、中斷和陷阱向量映射到程序空間的地址FF80h。然而這些向量可以通過加載中斷向量指針(IPTR)重新使之映射到程序空間中的任何128字頁面的開始地址。
(3)DSP寄存器
5470器件有27個寄存器映射的CPU寄存器(MMR),它們映射到地址為0H~1FH之間的數據存儲器空間。此器件還有1個與外圍相關的存儲器映射的寄存器組。
5470器件的分體切換控制寄存器BCSR(Bank-Switching Control Register)既控制著與5409類似的分體切換等待狀態的發生,也控制著5470的一些特性。分體切換等待狀態,指DSP子系統交叉訪問程序或數據存儲器空間內的存儲器分體邊界時,自動插入1個周期。當交叉訪問數據空間和程序空間的邊界時,也會自動插入1個分體切換等待狀態。BSCR所控制的5470的特性包括對一些DSP子系統外存儲器接口功能配置的控制,以及一些有關MCU可以用來訪問DSP子系統某RAM部分接口的內容。BSCR寄存器還為DSP提供了些對ARM編程接口的控制,這一機制使得MCU可以訪問數字信號處理器的內部RAM部分。此外,還包括對API模式(APIMODE位)、1個MCU中斷(HINT位)、DSP存儲器映射選擇(ABMDIS位)的控制。圖2給出了BSCR寄存器的位結構,表1列出了各字段的功能。
表1 分體切換控制寄存器位字段的功能
字段名 | 復位值 | 功 能 |
BNKCMP | 1111 | 分體比較 |
PS-DS | 1 | 程序讀-數據讀訪問 |
Reserved | 0 | 保留 |
ARMDIS | 0 | ARM啟動模式禁止 |
HINT | 0 | 主處理器中斷 |
APIMODE | 0 | HOM/SAM使能 |
EXIO | 0 | 外部線接口關閉 |
(4)DSP外圍
DSP子系統提供了與5409類似的高速全雙工串口——2個多通道緩沖串口(McBSPs)。它們允許與其它的54x設備、編解碼器及系統中的其它設備進行直接接口。
DSP子系統包括1個6通道的DMA控制器,用于執行獨立的數據傳輸。在DMA控制器進行DMA傳輸時有幾點限制;第1,DMA控制器能訪問通常在程序空間的RAM,不能訪問在MCU子系統中執行的RAM,不能訪問在DSP數據空間與API接口連接的RAM;第2,DMA控制器不能在McBSP DRR和DXR寄存器之間進行數據傳輸,不能在McBSP DRR或DXR寄存器與外部資源之間進行數據傳輸;第3,DMA控制器不能對外部資源進行32位的訪問。
MCU和DSP之間通過片上共享的API存儲器進行信息交換。API存儲器是一個8K×16位字的DARAM(Dual-Access RAM)塊。API存儲器還可以被DSP用作通用數據或程序DARAM。在這個電路中,只有DSP存儲器有DARAM。API通過分體切換控制寄存器可以選擇兩種操作模式之一:共享訪問模式SAM(Shared-Access Mode)和主機模式HOM(Host-Only Mode)。在SAM模式下,DSP和MCU都可以訪問API存儲器。來自MCU的異步主機訪問在內部被重新同步。如果DSP和MCU試圖在同一時間進行訪問操作,那么MCU進行優先訪問,而DSP則等待1個周期。當DSP處于IDLE1模式時,SAM可以運行。在HOM模式下,只有MCU可以訪問API存儲器,對于DSP則禁止讀訪問。當DSP從一個復位相退出時,缺省配置是SAM模式。當DSP處于正常操作模式或IDLE1模式時,通常選擇SAM模式;當DSP處于IDLE2或IDLE3模式時,通常選擇HOM模式。
(5)DSP電源管理
DSP子系統具有3種省電模式,分別由IDLE1、IDLE2和IDLE3指令激活。在這種3種模式下,C54x DSP核進入睡眠狀態,從而與正常模式相比大大降低了功耗。這3種模式的區別于對芯片內部模塊的關閉程序及喚醒方式不同。在IDLE1模式下,關閉除DSP系統時鐘以外的所DSP活動。因為系統時鐘要用于DSP子系統外圍模式,所以DSP外圍電路能夠繼續工作。這樣,外圍(例如串口和定時器)則可以命名DSP離開省電狀態。在IDLE2模式下,同時關閉DSP子系統的外圍及DSP核,但是DSP子系統的鎖相環(PLL)時鐘放大器則仍將保持活動狀態以便可以從IDLE2狀態快速恢復。由于DSP子系統的外圍在這種模式下被關閉,它們不能像IDLE1那樣通過產生中斷來喚醒C54x。然而,由于外圍的完全關閉使功耗大大地降低了。為了終止IDLE2,可以通過復位或激活中斷0來實現。IDLE3模式與IDLE2模式類似,只不過它還將關閉鎖相環(PLL)電路。IDLE3用于獲得最小可能的DSP功耗。另外,如果系統要求C54x運行在較低的速度下以節省功耗,那么IDLE3狀態允許外部重新配置DSP PLL。與IDLE3一樣,通過復位或激活斷0可以終止IDLE3。
3 MCU子系統功能介紹
5470 MCU子系統包括TI公司的增加了仿真特性的ARM7TDMI微處理器核以及一些外圍,包括SPI和I2C接口、通用異步收發器、定時器、通用輸入/輸出接口和外部存儲器接口。MCU子系統提供4K×32位的通用RAM和4K×32位的太網包RAM。
(1)MCU核
MCU子系統使用TI公司的增加了仿真特性的ARM7TDMIE核,它是ARM公司ARM7TDMI核的一種衍生品。ARM7TDMI處理器核是ARM7 Thumb家庭中的一種,是一種低功耗3的32位RISC處理器,并且組合了Thumb 16位的壓縮指令集。這種微處理器可以通過執行中2位或16位指令來處理32位、16位或8位數據。由于引入Thumb而獲得的卓越的代碼密度,可以降低對存儲器大小的需求,并且可以從16位寬的存儲器獲得32位的系統性能,從而降低了系統的成本。
MCU存儲器空間包括內部RAM、內部外圍、用于訪問外存儲器和外區域以及外部SDRAM。
(2)MCU存儲器接口
MCU存儲器接口通過1條32位寬的數據總線使MCU與內部及外部的存儲器和外部設備連接。這條總線支持MCU訪問8位、16位和32位的數據。所有的外圍控制寄存器均為32位,因此只能使用32位的操作進行訪問。
MCU存儲器接口允許端配置,以便保證所有的外部設備工作在同樣的端模式下。MCU存儲器接口還提供對外部訪問的管理,所支持的外部設備包括ROM(Flash)、SRAM和SDRAM。外部數據部線是一種32位的雙向總線。MCU對內部外圍和內部存儲器的訪問通常在0等待狀態執行。SDRAM刷新周期使任何MCU訪問發生延遲。MCU對外部SDRAM存儲器訪問的定時由SDRAM接口寄存器控制。
API接口用于MCU對DSP存儲器中的某一小部分進行訪問,它提供了一條通向DSP子系統中的API RAM的16位數據通路。所有的32位事務被分成2個16位的API事務。API接口支持向連續的訪問操作之間可編程地插入等待狀態,以保證MCU子系統和DSP子系統之間的信號同步。
(3)MCU外圍
5470MCU子系統的外圍主要包括通用異步收發器(UART)接口、串行外圍接口(SPI)、通用I/O口、I2C接口、定時器和中斷控制器。
UART模塊通過2個64位深的先進先出堆棧對處理器接收到的字符數據執行從串行到并行的轉換,并對處理器傳輸的字符數據執行從并行到串行的轉換。SPI是一個雙向的3路接口,用于為從或向外部設備進行的數據傳輸提供一個3路串行接口。這個串口完全由MCU存儲器接口控制。它是基于一個循環移位寄存器的,允許2種傳輸模式,即并行輸入、串行輸出和串行輸入、并行輸出。54703提供36個通用I/O口(GPIO),它們可以通過內部寄存器配置成讀或寫模式。這些GPIO被分成2組:GPIO(19:0)和KBGPIO(15:0)。KBGPIO是鍵盤GPIO引腳,它們當中有些具有內部上拉電阻,但其進行的操作與GPIO(19:0)引腳類似。主I2C接口模塊為MCU子系統總線和I2C引腳之間提供了1個接口,它允許MCU控制與I2C引腳連接的外部設備。I2C接口實際上一是個并行到串行和串行到并行的轉換器。從MCU接收的并行數據必須在I2C總線上轉換為適當的串行格式傳輸給外部設備,從I2C總線上接收的串行數據必須轉換為適當的并行格式傳輸給MCU。5470 MCU子系統包括3個16位的定時器,它們可被配置為“自動加載”或“倒計數器0并停止”2種模式。當定時器計數到0時,向MCU產生1個中斷。定時器0可被配置為看門狗定時器或通用定時器,定時器1和時器2為通用定時器??撮T狗定時器在倒計數為0時復位MCU子系統,以避免用戶程序被死循環阻塞而使程序失去控制。MCU子系統的中斷控制器對MCU子系統的16個中斷源(IRQ0~15)進行優先權和屏蔽控制。它還可以將這些中斷劃分為MCU的2種中斷輸入:nIRQ(低優先級中斷請求)和nFIQ(快速中斷請求)。它既可以從內部模塊也可以從外部的芯片環境中接收中斷。外部中斷可以通過GPIO和/或KBGPIO引腳提供。
(4)MCU的省電模式
MCU及其子系統外圍可以通過設置CLKM_BER和WAKEUP_REG2個寄存器的適當位被關閉和喚醒。在MCU關閉之間,由軟件來負責將ARM_CLOCK設置為旁路或低頻模式。由來自某外圍的第1個中斷將MCU喚醒。
(5)MCU外部時鐘管理
5470器件由外圍時鐘輸入信號REFCLK提供時鐘定時。5470 REFCLK輸入不提供時鐘振蕩器。所以它必須由遇到VIH和VIL請求的方形波輸入信號來驅動。DSP和MCU子系統的時鐘都是通過使用鎖相環由REFCLK衍生的。復位或加電之后,2個子系統中各自CLKMD寄存器內容由各自鎖相環上可編程內部端口的狀態決定。對于MCU子系統,這些內部端口是硬連線的,所以缺省模式下的可編程性能是不可用的。對于DSP子系統,DSP PLL的可編程內部端口與寄存器DSP_REG的輸出相連接,此寄存器由RISC處理器控制。這樣在MCU子系統的控制下,DSP PLL的缺省值則允許為可編程的。圖3為時鐘管理模塊框圖。
(6)初始化
RESET是復位DSP和MCU子系統的主復位輸入。RESET_OUT信號在MCU的控制下可用于復位外部設備。當MCU子系統被復位時,MCU程序計數器從地址0x00000000開始執行;當DSP子系統被復位時,DSP程序計數器從地址0xFF80開始執行。每一個MCU子系統外圍可以通過MCU子系統寄存器RESET_REG的控制位被獨立地復位。缺省情況下,只要MCU子系統復位一被激活,這些位就被置位,從而使所有的MCU子系統外圍處于活動狀態。
5470提供了靈活的仿真性能。它既支持TI公司的仿真工具,也支持第三方公司開發的工具。由于這些仿真工具可能既識別C54x DSP核也識別ARM7TDMIE核,也可能只識別C54x DSP核,或只識別ARM7TDMIE核,或只識別ARM7TDMI核,因此需要多種仿真模式。為了允許對各種仿真器使用的內部JTAG鏈進行配置,5470在TRST的上升沿對EMU1和EMU0引腳進行取樣。根據這些引腳的值,內部掃描鏈被配置成不同的仿真模式。
結束語
自20世紀80年代數字信號處理器進入市場以來,在社會各個領域得到了迅速廣泛的展。從通信、網絡、雷達等領域到馬達控制、數碼相機、助聽器領域都在使用數字信號處理器。由于TI公司最新推出的雙核定點數字信號處理器TMS320VC5470具有雙CPU、功耗小、速度快等特點,為數字信號處理領域提供了一種更先進的可選器件。希望通過本文的介紹,可以使硬件或軟件工程師在選用此器件進行應用開發方面有所幫助。
評論