<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于CPLD的TMS320F2812硬件平臺(tái)設(shè)計(jì)

          基于CPLD的TMS320F2812硬件平臺(tái)設(shè)計(jì)

          作者: 時(shí)間:2011-06-06 來源:網(wǎng)絡(luò) 收藏

          1 引言

          本文引用地址:http://www.ex-cimer.com/article/187487.htm

            TMS320是美國(guó)德州儀器公司推出的C2000 家族中最新一代產(chǎn)品。先進(jìn)的內(nèi)部和外設(shè)結(jié)構(gòu)使得該處理器主要用于大存儲(chǔ)設(shè)備管理、高性能的控制場(chǎng)合。在構(gòu)成的應(yīng)用系統(tǒng)中,需要設(shè)計(jì)一些邏輯控制電路來保證系統(tǒng)正常有序地工作。這里,我們采用 來設(shè)計(jì)外圍電路的譯碼及邏輯控制,使DSP 系統(tǒng)達(dá)到小型化、集成化和高可靠性。

            2 在TMS320系統(tǒng)中的應(yīng)用

            2.1 TMS2812介紹

            TMS2812 數(shù)字信號(hào)處理器是在F24X的基礎(chǔ)上開發(fā)的高性能定點(diǎn)芯片。能夠運(yùn)行24x 開發(fā)的代碼程序,并且F2812 采用32bit 操作大大提高了處理能力。它的主要特點(diǎn)如下:

            ● 采用高性能的靜態(tài)CMOS 技術(shù),主頻可以工作在150 MHZ(時(shí)鐘周期可達(dá)6.67ns);

            ● 高性能的 32 位中央處理器,可以進(jìn)行16 位X16 位以及32 位X32 位的乘且累加操作;

            ● 片內(nèi)大容量存儲(chǔ)器,128 K×16 bits 的Flash 和18 K×16 bits 的數(shù)據(jù)/程序存儲(chǔ)器;

            ● 高速外設(shè)接口,最多可擴(kuò)展1.5 M×16 bit 存儲(chǔ)器;

            ● 3 個(gè)32-bit CPU 定時(shí)器,其中CPU 定時(shí)器1 和CPU 定時(shí)器2 被保留用作實(shí)時(shí)操作系統(tǒng)OS。CPU 定時(shí)器0 可供用戶使用,作為獨(dú)立的,全局性的定時(shí)中斷控制;

            ● 具有 12-bit 的 ADC 流水線變換時(shí)間最小60 ns,單變換200 ns;可選擇兩個(gè)時(shí)間管理器觸發(fā)功能;

            ● 改進(jìn)的 eCAN 2.0B 接口模塊;

            ● 多種串行通信接口(2 個(gè)UART、1 個(gè)SPI 及1 個(gè)MCBSP);

            ● 高性能低功耗,采用1.8V 內(nèi)核電壓和3.3V外圍接口電壓;

            2.2 硬件結(jié)構(gòu)介紹

            我們采用 Alter 公司的EPM7064S 芯片來完成內(nèi)部邏輯管理及與總線接口工作。該芯片采用快閃存儲(chǔ)技術(shù)(FastFLASH),功耗較低。宏單元數(shù)達(dá)到64 個(gè),完全滿足設(shè)計(jì)的邏輯要求。引腳到引腳的延時(shí)為4ns,計(jì)數(shù)器頻率可達(dá)151MHZ。其輸出電壓為3.3V 或5V,可以通過設(shè)置VCCIO 引腳來選擇不同的輸出電壓。I/O 引腳可接受5V、3.3V 和2.5V 的混合電壓輸入,在多電源混合系統(tǒng)中,這一特性非常有用,可以節(jié)省大量的電平轉(zhuǎn)換器。

            TMS2812 應(yīng)用系統(tǒng)需要外擴(kuò)一些必要的電路,包括支持內(nèi)部程序運(yùn)行的RAM 和EEROM,以及D/A 轉(zhuǎn)換電路等,其系統(tǒng)結(jié)構(gòu)框圖如圖1 所示:


            2.2.1 數(shù)模轉(zhuǎn)換器的應(yīng)用

            在 TMS320F2812 中,片外擴(kuò)展是通過TMS320F2812 中的外設(shè)接口XINTF 來實(shí)現(xiàn)的。

            它類似于C240X 的外部接口,但也做了改進(jìn):

           ?。?)在C240X中,程序存儲(chǔ)空間、數(shù)據(jù)存儲(chǔ)空間和I/O 空間映射在相同的地址(0000~FFFF),對(duì)它們的訪問通過控制線( DS , PS , IS )來區(qū)分;而在F2812 中,外部存儲(chǔ)器接口分成了5個(gè)固定的存儲(chǔ)映像區(qū)域,可尋址1MB 的片外存儲(chǔ)器空間,具有獨(dú)立的地址,沒有了控制線( DS , PS , IS )。

            (2) 每個(gè) F2812 的XINTF 區(qū)都有一個(gè)片選信號(hào)。其中,有的區(qū)域的片選信號(hào)在內(nèi)部是“與”在一起的,組成了一個(gè)共享的芯片選擇,比如XZCS0 和XZCS1共享一個(gè)片選信號(hào)XZCS0AND1,XZCS6和XZCS7共享一個(gè)片選信號(hào)XZCS6AND7。在這種方式下,同一個(gè)存儲(chǔ)器可被連到兩個(gè)區(qū)或者我們可以用外部譯碼邏輯來區(qū)分這兩個(gè)區(qū)。

           ?。?)5 個(gè)固定的存儲(chǔ)映像區(qū)域的每一個(gè)區(qū)還可以分別指定等待狀態(tài)數(shù),選通信號(hào)的建立時(shí)間,激活時(shí)間和保持時(shí)間。這些特征使得接口與外部存儲(chǔ)器及外設(shè)脫離了聯(lián)系,可以靈活獨(dú)立地進(jìn)行外部擴(kuò)展。在本次設(shè)計(jì)中,除了液晶除了液晶顯示模塊和鍵盤外,所有的外擴(kuò)寄存器和存儲(chǔ)器全部映射在XINTFZONE 2(0x080000~0x0FFFFF)譯碼的空間內(nèi)。我們使用了DAC7625 作為數(shù)模轉(zhuǎn)換芯片,該芯片為4 通道12 位雙緩沖的DAC 芯片,工作電壓可以是+5V 或-5V~+5V 的模擬電壓。

            輸出電壓是0~3.3V 的直流電壓。功能框圖如圖2 所示:


            其中,DAC7625 芯片中LDAC 引腳為載入DAC 引腳,當(dāng)為低電平時(shí),所有寄存器為透明,保持寄存器里的數(shù)據(jù)送到轉(zhuǎn)換器輸出通道;A1、A0 引腳為寄存器選擇引腳,根據(jù)地址總線譯碼選通不同的A1、A0 組合,從而將1 ~ 4 通道的保持寄存器映射到0xC0000~0xC0003 的地址空間。此外,我們還設(shè)計(jì)了傳送寄存器(DACTLR),映射地址為0xC0004,這個(gè)寄存器的所有數(shù)據(jù)位都無效,既不可讀也不可寫。對(duì)這個(gè)寄存器執(zhí)行任何讀或?qū)懖僮鞫紩?huì)產(chǎn)生一個(gè)內(nèi)部信號(hào),將LDAC 引腳置為低電平,啟動(dòng)轉(zhuǎn)換器工作。其中,整個(gè)譯碼邏輯都是由CPLD 芯片完成。下面介紹譯碼邏輯的部分VHDL 語言描述:


          上一頁 1 2 下一頁

          關(guān)鍵詞: F2812 CPLD 2812 320F

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();