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