0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用超高速閃存微控制器實(shí)現(xiàn)快速內(nèi)存?zhèn)鬏?/h1>

達(dá)拉斯半導(dǎo)體超高速閃存微控制器具有雙數(shù)據(jù)指針,具有自動(dòng)遞增/遞減和切換選擇功能。本應(yīng)用筆記將采用一個(gè)數(shù)據(jù)指針的原始8051架構(gòu)與DS89C430和DS89C450的新架構(gòu)及其更高的數(shù)據(jù)移動(dòng)效率進(jìn)行了比較。本文提供了大量代碼示例,以幫助理解該超高速微控制器的雙數(shù)據(jù)指針的使用。

概述

嵌入式系統(tǒng)設(shè)計(jì)人員和程序員一直在尋找巧妙的方法來突破其 8051 微控制器設(shè)計(jì)的性能極限。如果您的應(yīng)用受到微控制器復(fù)制外部數(shù)據(jù)存儲(chǔ)器緩沖器或讀/寫存儲(chǔ)器映射外設(shè)的速率的限制,則可能會(huì)受益于使用更多片上硬件和更少軟件的方案。本應(yīng)用筆記介紹了使用定時(shí)器/計(jì)數(shù)器作為終止固定長(zhǎng)度復(fù)制例程的方法。將這種方法與達(dá)拉斯的超高速 8051 架構(gòu)及其數(shù)據(jù)指針增強(qiáng)功能結(jié)合使用,可以以超過 2MBps 的速率復(fù)制數(shù)據(jù),比以相同時(shí)鐘頻率運(yùn)行并配備單個(gè)數(shù)據(jù)指針的標(biāo)準(zhǔn) 20 內(nèi)核快 8051 倍以上。

XDATA 復(fù)制例程 - 原始 8051

最初的8051架構(gòu)僅包含一個(gè)數(shù)據(jù)指針(DPTR = DPH + DPL),但提供了兩種間接訪問外部數(shù)據(jù)存儲(chǔ)器的不同方式。MOVX指令可以使用16位數(shù)據(jù)指針(例如,MOVX @DPTR,A)或8位工作寄存器(例如,MOVX @R0,A)來訪問MOVX數(shù)據(jù)空間。請(qǐng)注意,后一條指令使用 8 位寄存器指針,因此要求在執(zhí)行指令之前使用指針的最高有效地址字節(jié)寫入端口 2。只有一個(gè)數(shù)據(jù)指針,在復(fù)制超過 256 字節(jié)的數(shù)據(jù)時(shí)管理源指針和目標(biāo)指針需要大量使用工作寄存器進(jìn)行臨時(shí)存儲(chǔ)。下面是使用單個(gè)數(shù)據(jù)指針復(fù)制數(shù)據(jù)時(shí)通常執(zhí)行的代碼示例。

; Original 8051 Copy - Single DPTR
; R6:R7 control copy length
; R4:R0 used for source/dest DPTR hi/lo temp storage
loop: ; Cycle Count @ 12clks/cycle
movx a,@dptr ; 2
inc dptr ; 2
xch a,r0 ; 1
xch a,dpl ; 1
xch a,r0 ; 1
xch a,r4 ; 1
xch a,dph ; 1
xch a,r4 ; 1
movx @dptr,a ; 2
inc dptr ; 2
xch a,r0 ; 1
xch a,dpl ; 1
xch a,r0 ; 1
xch a,r4 ; 1
xch a,dph ; 1
xch a,r4 ; 1
djnz r7,loop ; 2 => 22cycles * length
djnz r6,loop ; 2 => 2cycles * (1 + (length/256))

XDATA 復(fù)制例程-超高速微控制器

超高速微控制器包含兩個(gè)數(shù)據(jù)指針(DPTR = DPH + DPL;DPTR1 = DPH1 + DPL1),允許單獨(dú)的源和目標(biāo)數(shù)據(jù)指針。此外,它還實(shí)現(xiàn)了硬件控件,以在數(shù)據(jù)指針之間自動(dòng)切換,并自動(dòng)遞增或遞減活動(dòng)數(shù)據(jù)指針,以響應(yīng)某些與 DPTR 相關(guān)的指令。有關(guān)增強(qiáng)型雙數(shù)據(jù)指針的完整詳細(xì)信息,請(qǐng)參閱超高速微控制器用戶指南。下面的代碼演示了增強(qiáng)的雙數(shù)據(jù)指針如何簡(jiǎn)化復(fù)制例程。自動(dòng)切換活動(dòng)數(shù)據(jù)指針的指令標(biāo)有 [T],自動(dòng)前進(jìn)數(shù)據(jù)指針的指令標(biāo)有 [+/-]。為了與原始8051架構(gòu)進(jìn)行比較,假設(shè)了標(biāo)準(zhǔn)的8051外部P2,P0存儲(chǔ)器總線結(jié)構(gòu),從而給出了5個(gè)時(shí)鐘周期的最小MOVX持續(xù)時(shí)間(1個(gè)時(shí)鐘周期用于MOVX操作碼提取,4個(gè)時(shí)鐘周期用于數(shù)據(jù)存儲(chǔ)器訪問)。雖然頁面模式 1 外部總線配置的周期計(jì)數(shù)未反映在下面的代碼示例中,但應(yīng)該注意的是,頁面模式 1 確實(shí)提供了絕對(duì)的最小外部 MOVX 持續(xù)時(shí)間(3 個(gè)時(shí)鐘周期 = MOVX 操作碼提取的 1 個(gè)時(shí)鐘周期 + 數(shù)據(jù)存儲(chǔ)器訪問的 2 個(gè)時(shí)鐘周期)。

; Ultra High-Speed Micro Copy - Enhanced Dual DPTRs
; DPS.4 (AID) = 1; DPS.5 (TSL) = 1;
; R6:R7 control copy length
loop: ; Cycle Count @ 1clk/cycle
movx a,@dptr ; 5 [T][+/-]
movx @dptr,a ; 5 [T][+/-]
djnz r7,loop ; 5 => 15 cycles * length
djnz r6,loop ; 5 => 5 cycles * (1 +(length/256))

XDATA 復(fù)制例程 - 使用計(jì)時(shí)器/計(jì)數(shù)器

若要使用計(jì)時(shí)器/計(jì)數(shù)器,應(yīng)用程序必須在復(fù)制例程期間提供計(jì)時(shí)器/計(jì)數(shù)器及其關(guān)聯(lián)的輸入引腳?;舅枷胧鞘褂闷瑑?nèi)計(jì)數(shù)器來跟蹤和終止復(fù)制環(huán)路,而不是使用工作寄存器。/WR選通用作計(jì)數(shù)器的輸入信號(hào)。圖 1 顯示了一個(gè)硬件配置示例。

圖1.低電平有效WR選通計(jì)數(shù)的硬件圖。

圖1.低電平有效WR選通計(jì)數(shù)的硬件圖。

所有超高速微控制器定時(shí)器/計(jì)數(shù)器輸入引腳(T0、T1、T2)都能夠?qū)ο喈?dāng)于系統(tǒng)時(shí)鐘頻率四分之一的輸入頻率進(jìn)行采樣。這意味著要采樣的輸入信號(hào)必須具有最小高電平和低電平時(shí)間,每個(gè)周期為2個(gè)系統(tǒng)時(shí)鐘周期。除了 1 周期或 2 周期尋呼模式 1 中最快的 MOVX 外,/WR 選通器還滿足所有其他外部 MOVX 操作的此標(biāo)準(zhǔn)。在進(jìn)入復(fù)制循環(huán)之前,16 位計(jì)數(shù)器加載適當(dāng)?shù)闹?(216- #bytes復(fù)制),定時(shí)器/計(jì)數(shù)器中斷被啟用,并且增強(qiáng)的數(shù)據(jù)指針配置為最快速的復(fù)制。復(fù)制的最后一個(gè)字節(jié)會(huì)導(dǎo)致計(jì)數(shù)器翻轉(zhuǎn)并生成計(jì)時(shí)器中斷,從而允許將代碼執(zhí)行返回到主程序。

使用定時(shí)器/計(jì)數(shù)器方法的好處

使用計(jì)時(shí)器/計(jì)數(shù)器的主要好處是提高了性能,同時(shí)允許更寬容的 xdata 訪問時(shí)間。已經(jīng)注意到,最快的復(fù)制循環(huán)執(zhí)行時(shí)間是通過將外部總線結(jié)構(gòu)配置為尋呼模式 1(端口 2 = 多路復(fù)用地址 MSB/LSB 和端口 0 = 數(shù)據(jù))來實(shí)現(xiàn)的。盡管頁面模式 1 提供了終極性能,但它也需要最快的 xdata 訪問時(shí)間 (tRLDV < 中聯(lián)).計(jì)時(shí)器/計(jì)數(shù)器方法提供幾乎相同的性能,同時(shí)使最大 xdata 訪問時(shí)間幾乎翻倍。

此外,預(yù)計(jì)并非所有超高速微控制器設(shè)計(jì)都將使用新的總線結(jié)構(gòu)。一些系統(tǒng)設(shè)計(jì)人員可能希望保留傳統(tǒng)的8051總線接口,甚至可能將超高速微控制器放入現(xiàn)有插座中。在這些情況下,計(jì)數(shù)器端接復(fù)制環(huán)路提供了高性能折衷方案。

由于定時(shí)器/計(jì)數(shù)器端接復(fù)制環(huán)路依賴于內(nèi)部 16 位定時(shí)器硬件來計(jì)算外部讀/寫事件的數(shù)量,因此不需要單獨(dú)的 DJNZ 指令來跟蹤 16 位環(huán)路控制變量。這允許應(yīng)用程序?qū)Υ笥?256 字節(jié)的數(shù)據(jù)長(zhǎng)度執(zhí)行高速同步傳輸。

表1比較了原始8051架構(gòu)的復(fù)制環(huán)路與三種可能的超高速微控制器配置。計(jì)數(shù)器終止的復(fù)制循環(huán)已突出顯示。下表是計(jì)時(shí)器/計(jì)數(shù)器終止副本的示例代碼清單。代碼中突出顯示了復(fù)制循環(huán),以便與前兩個(gè)示例進(jìn)行比較。

微控制器選項(xiàng) 持續(xù)時(shí)間(毫秒)(1kbyte xdata copy-loop, sysclk=25MHz) 快速的 XDATA 訪問時(shí)間 (tRLDV)3 同步傳輸? 使用的特殊功能
超高速微控制器1 0.441 < 1 x tCLCL 頁面模式 1 總線結(jié)構(gòu)
超高速微控制器1 0.480 < 2 x tCLC 是的 定時(shí)器/計(jì)數(shù)器和定時(shí)器輸入引腳
超高速微控制器1 0.601 < 2 x tCLC -
標(biāo)準(zhǔn) 80512 10.568 < 5 x tCLC -
1機(jī)器周期 = 1 x t中聯(lián);增強(qiáng)型雙數(shù)據(jù)指針,具有自動(dòng) Inc/Dec、自動(dòng)切換功能
2機(jī)器周期 = 12 x t中聯(lián);單個(gè)數(shù)據(jù)指針
3參考單個(gè)器件數(shù)據(jù)表的精確數(shù)據(jù)RLDV最大值。

計(jì)數(shù)器終止復(fù)制方法(代碼示例)

;------------------------------------------------------------
; Demonstrate use of Timer/Counter 1 to terminate copy loop
; Use P3.6 (Active-Low WR) as an input to Timer/Counter 1 (P3.5)
; In this example:
; 1) Source, dest, and length defined as constants.
; 2) Code saves only DPTR0 state under the assumption that a
; single DPTR is normally used and that the second (DPTR1)
; is enabled only for certain routines (such as this one).
; 3) Code disables all other interrupts during the copy.
; 4) External non-overlapping xdata to xdata transfer
;------------------------------------------------------------
$include(420.def) ; include file w/SFRs
source equ 0100h ; source xdata address
dest equ 0200h ; dest xdata address
length equ 256d ; #bytes to copy
;------------------------------------------------------------
org 0h
ljmp 0100h
;------------------------------------------------------------
;Timer/Counter 1 interrupt
;------------------------------------------------------------
org 1bh
clr tr1 ; disable timer/counter 1
pop acc ; pop 'ajmp' loop addr
pop acc ; from the stack
pop dps ; return pre-transfer
pop dph ; DPTR state
pop dpl
pop ie ; return interrupt config
pop eie
reti ; back to instruction
; after "xmemcpy_.." call
;------------------------------------------------------------
; Main
;------------------------------------------------------------
org 0100h
orl tmod, #50h ; 16-bit counter
anl ckcon, #0F8h ; fast 2-cycle MOVX
call xmemcpy_count ; call xdata copy code
sjmp $
;------------------------------------------------------------
; 1) Save interrupt enable registers, make only T/C#1 enabled
; 2) Save DPTR0
; 3) Timer/Counter 1 loaded with (2^16-#bytes to copy)
; 4) Configure source/destination pointers
; 5) Execute copy loop
; - last write rolls the Counter
; - Timer/Counter 1 Interrupt breaks the loop
;------------------------------------------------------------
xmemcpy_count:
push eie
push ie
mov eie, #00h ; disable other ints
mov ie, #88h ; EA=1, ET1=1
push dpl ;save DPTR state
push dph
push dps
mov th1, #high(-length) ; copy length
mov tl1, #low(-length)
setb tr1 ; enable Timer1
orl dps, #30h ; SEL=0,TSL=1, AID=1
mov dptr, #source ; DPTR0 = source addr
mov dptr, #dest ; DTPR1 = dest addr
transfer:
movx a, @dptr ;[5] read from @DPTR0
movx @dptr, a ;[5] write to @DPTR1
ajmp transfer ;[2] in loop etil int
; ----
; [12] total
end

使用內(nèi)部 XRAM 實(shí)現(xiàn)更高的傳輸速率

使用定時(shí)器/計(jì)數(shù)器提高執(zhí)行效率的基本原理不僅適用于外部數(shù)據(jù)復(fù)制例程,還可用于外部數(shù)據(jù)讀取或?qū)懭雰?nèi)部數(shù)據(jù)存儲(chǔ)器。例如,如果應(yīng)用要求從外部存儲(chǔ)器(或從并行外設(shè))讀取或?qū)懭氩怀^1024字節(jié),則可以使用DS1C89/430的內(nèi)部450kB數(shù)據(jù)存儲(chǔ)器進(jìn)一步提高傳輸速率。

由于內(nèi)部MOVX操作只需要2個(gè)周期,因此讀/寫傳輸環(huán)路(到目前為止一直是討論的主題)可以減少到9個(gè)周期,有效傳輸速率為3.67MBps(@33MHz),并且僅占用4B的代碼空間(下面的代碼)。請(qǐng)記住,兩個(gè)MOVX操作之一,無論是讀取還是寫入,都必須在外部存儲(chǔ)器上執(zhí)行,以便/RD或/WR選通遞遞增加定時(shí)器/計(jì)數(shù)器,最終終止傳輸環(huán)路。下面的第一個(gè)代碼示例給出了對(duì)應(yīng)于外部 MOVX 寫入的周期計(jì)數(shù),第二個(gè)示例顯示了外部 MOVX 讀取。另請(qǐng)注意,當(dāng)計(jì)數(shù)/RD信號(hào)時(shí),計(jì)數(shù)器應(yīng)初始化為[216- (#bytes復(fù)制 +1)],以便在循環(huán)中斷之前進(jìn)行最終的字節(jié)寫入。

loop: ; Ultra High-Speed Microcontroller User's Guide Cycle Count / Byte Count
movx a,@dptr ; 2 (internal MOVX) / 1
movx @dptr,a ; 5 (external MOVX) / 1
ajmp loop ; 2 / 2
; 9 cycles / 4 bytes
-- OR --
loop: ; Ultra High-Speed Microcontroller User's Guide Cycle Count / Byte Count
movx a,@dptr ; 5 (external MOVX) / 1
movx @dptr,a ; 2 (internal MOVX) / 1
ajmp loop ; 2 / 2
; 9 cycles / 4 bytes

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7837

    瀏覽量

    153275
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2282

    瀏覽量

    95798
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3271

    瀏覽量

    116571
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MAX32555 Cortex-M3閃存微控制器英文數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《MAX32555 Cortex-M3閃存微控制器英文數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 04-25 16:40 ?0次下載

    超高速工業(yè)相機(jī)的應(yīng)用

    超高速工業(yè)相機(jī)的采集速率通常大于50Gb/s,能夠捕捉和處理極高速運(yùn)動(dòng)的物體圖像,幀率遠(yuǎn)高于普通相機(jī),這使得它能夠捕捉到更多細(xì)節(jié)和動(dòng)態(tài)變化。
    的頭像 發(fā)表于 02-24 17:27 ?345次閱讀
    <b class='flag-5'>超高速</b>工業(yè)相機(jī)的應(yīng)用

    中微愛芯超高速雙通道比較AiP3212概述

    AiP3212是一款具有內(nèi)部遲滯的低功耗、超高速雙通道比較,可實(shí)現(xiàn)軌到軌輸入和推挽輸出。
    的頭像 發(fā)表于 12-16 11:19 ?541次閱讀
    中微愛芯<b class='flag-5'>超高速</b>雙通道比較<b class='flag-5'>器</b>AiP3212概述

    FPGA 與微控制器優(yōu)缺點(diǎn)比較

    和可編程互連組成。它們的主要優(yōu)點(diǎn)是并行處理能力極強(qiáng),可以同時(shí)執(zhí)行多個(gè)操作,這使得FPGA在需要高速數(shù)據(jù)處理的應(yīng)用中表現(xiàn)出色,如數(shù)字信號(hào)處理(DSP)、通信系統(tǒng)和高速接口。 微控制器 微控制器
    的頭像 發(fā)表于 12-02 09:58 ?967次閱讀

    調(diào)試MSP430系列微控制器上的閃存問題

    電子發(fā)燒友網(wǎng)站提供《調(diào)試MSP430系列微控制器上的閃存問題.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 10:27 ?0次下載
    調(diào)試MSP430系列<b class='flag-5'>微控制器</b>上的<b class='flag-5'>閃存</b>問題

    C2000?微控制器的USB閃存編程

    電子發(fā)燒友網(wǎng)站提供《C2000?微控制器的USB閃存編程.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 11:30 ?0次下載
    C2000?<b class='flag-5'>微控制器</b>的USB<b class='flag-5'>閃存</b>編程

    C2000?微控制器的串行閃存編程

    電子發(fā)燒友網(wǎng)站提供《C2000?微控制器的串行閃存編程.pdf》資料免費(fèi)下載
    發(fā)表于 09-03 10:15 ?0次下載
    C2000?<b class='flag-5'>微控制器</b>的串行<b class='flag-5'>閃存</b>編程

    RM42L432 16/32位RISC閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《RM42L432 16/32位RISC閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-08 09:52 ?0次下載
    RM42L432 16/32位RISC<b class='flag-5'>閃存</b><b class='flag-5'>微控制器</b>數(shù)據(jù)表

    TMS570LS1115 16位和32位RISC閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS570LS1115 16位和32位RISC閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-08 09:34 ?0次下載
    TMS570LS1115 16位和32位RISC<b class='flag-5'>閃存</b><b class='flag-5'>微控制器</b>數(shù)據(jù)表

    TMS570LS1114 16位和32位RISC閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS570LS1114 16位和32位RISC閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-07 10:58 ?0次下載
    TMS570LS1114 16位和32位RISC<b class='flag-5'>閃存</b><b class='flag-5'>微控制器</b>數(shù)據(jù)表

    超高速直線模組究竟有多快?飛創(chuàng)直線模組最快速度是多少?

    超高速直線模組速度每秒幾毫米至幾十米。飛創(chuàng)直線模組速度快,提供定制化服務(wù)。選擇時(shí)需考慮負(fù)載、行程、精度等因素,不同品牌和型號(hào)性能各異。
    的頭像 發(fā)表于 08-07 09:57 ?607次閱讀
    <b class='flag-5'>超高速</b>直線模組究竟有多快?飛創(chuàng)直線模組最<b class='flag-5'>快速</b>度是多少?

    超高速電機(jī)的氣隙為什么較大?

    ? ? ? ?超高速電機(jī)的氣隙較大的原因主要包括機(jī)械強(qiáng)度、減小定轉(zhuǎn)子之間的耦合電容、?振動(dòng)噪聲方面、抑制共模軸電流和電磁兼容等方面的考慮。? ? ? ? ?1、機(jī)械強(qiáng)度原因。超高速電機(jī)由于轉(zhuǎn)速非常高
    的頭像 發(fā)表于 08-02 18:32 ?1218次閱讀

    如何通過Miniwiggler V3將labview程序閃存微控制器?

    我正試圖通過 Miniwiggler V3 將 labview 程序閃存微控制器中,但我找不到任何說明如何操作的文檔。 我是新手,有沒有什么方法可以直接閃存程序?
    發(fā)表于 07-04 06:00

    為什么無法通過modus ide恢復(fù)和閃存微控制器?

    我面臨著將生成的 ELF 文件導(dǎo)入 modus ide 的問題。 之后,設(shè)置配置調(diào)試 elf 文件,沒有出錯(cuò),但無法通過 modus ide 恢復(fù)和閃存微控制器
    發(fā)表于 05-31 08:57

    如何在TC36x微控制器實(shí)現(xiàn)冗余閃存?

    我需要在英飛凌 TC36x 微控制器實(shí)現(xiàn)冗余閃存。 實(shí)施過程中我需要做哪些事情?
    發(fā)表于 05-30 07:36

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品