伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用超高速閃存微控制器實現快速內存傳輸

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-02-21 16:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

概述

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

XDATA 復制例程 - 原始 8051

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

; 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 復制例程-超高速微控制器

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

; 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 復制例程 - 使用計時器/計數器

若要使用計時器/計數器,應用程序必須在復制例程期間提供計時器/計數器及其關聯的輸入引腳。基本思想是使用片內計數器來跟蹤和終止復制環路,而不是使用工作寄存器。/WR選通用作計數器的輸入信號。圖 1 顯示了一個硬件配置示例。

圖1.低電平有效WR選通計數的硬件圖。

圖1.低電平有效WR選通計數的硬件圖。

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

使用定時器/計數器方法的好處

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

此外,預計并非所有超高速微控制器設計都將使用新的總線結構。一些系統設計人員可能希望保留傳統的8051總線接口,甚至可能將超高速微控制器放入現有插座中。在這些情況下,計數器端接復制環路提供了高性能折衷方案。

由于定時器/計數器端接復制環路依賴于內部 16 位定時器硬件來計算外部讀/寫事件的數量,因此不需要單獨的 DJNZ 指令來跟蹤 16 位環路控制變量。這允許應用程序對大于 256 字節的數據長度執行高速同步傳輸。

表1比較了原始8051架構的復制環路與三種可能的超高速微控制器配置。計數器終止的復制循環已突出顯示。下表是計時器/計數器終止副本的示例代碼清單。代碼中突出顯示了復制循環,以便與前兩個示例進行比較。

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

計數器終止復制方法(代碼示例)

;------------------------------------------------------------
; 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

使用內部 XRAM 實現更高的傳輸速率

使用定時器/計數器提高執行效率的基本原理不僅適用于外部數據復制例程,還可用于外部數據讀取或寫入內部數據存儲器。例如,如果應用要求從外部存儲器(或從并行外設)讀取或寫入不超過1024字節,則可以使用DS1C89/430的內部450kB數據存儲器進一步提高傳輸速率。

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

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

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    49

    文章

    8779

    瀏覽量

    165343
  • 計數器
    +關注

    關注

    32

    文章

    2320

    瀏覽量

    98447
  • 定時器
    +關注

    關注

    23

    文章

    3370

    瀏覽量

    124285
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PIC32MM0064GPL036 系列 32 位閃存微控制器深度剖析

    PIC32MM0064GPL036 系列 32 位閃存微控制器深度剖析 引言 在電子設計領域,微控制器的選擇至關重要,它直接影響到產品的性能、功耗和成本。PIC32MM0064GPL036 系列
    的頭像 發表于 04-08 18:05 ?960次閱讀

    Z8 Encore! XP 64K 系列閃存微控制器產品詳解

    Z8 Encore! XP 64K 系列閃存微控制器產品詳解 一、引言 在微控制器的世界里,Zilog 的 Z8 Encore! XP MCU 系列一直占據著重要的位置。今天我們要深入探討的是 Z8
    的頭像 發表于 04-07 11:35 ?127次閱讀

    Z8 Encore! XP 64K系列閃存微控制器:高性能8位解決方案

    Z8 Encore! XP 64K系列閃存微控制器在此基礎上增加了閃存內存,具備在線編程能力,大大縮短了開發時間,并允許在現場進行程序更改。其新
    的頭像 發表于 04-05 09:20 ?210次閱讀

    深入剖析Maxim ZLF645系列閃存微控制器

    深入剖析Maxim ZLF645系列閃存微控制器 在電子設備不斷發展的今天,微控制器的性能和功能對于產品的成功至關重要。Maxim的ZLF645系列閃存
    的頭像 發表于 04-04 15:15 ?565次閱讀

    探索DS89C430/DS89C450超高速閃存微控制器的卓越性能與應用潛力

    探索DS89C430/DS89C450超高速閃存微控制器的卓越性能與應用潛力 在電子工程師的日常設計工作中,選擇一款性能卓越、功能豐富的微控制器至關重要。今天,我們來深入了解Maxim
    的頭像 發表于 04-01 16:55 ?541次閱讀

    深入剖析DS89C420超高速微控制器:性能、特性與應用全解析

    深入剖析DS89C420超高速微控制器:性能、特性與應用全解析 在電子工程師的世界里,高性能微控制器實現各種創新設計的核心。今天,我們就來深入探討一下DS89C420這款
    的頭像 發表于 04-01 16:55 ?546次閱讀

    高速性能之選:DS89C430/DS89C450超高速閃存微控制器深度解析

    高速性能之選:DS89C430/DS89C450超高速閃存微控制器深度解析 在電子工程師的設計世界里,選擇一款性能卓越的微控制器至關重要。今
    的頭像 發表于 03-24 15:00 ?141次閱讀

    探索DS80C310高速微控制器:性能與應用深度解析

    憑借其卓越的性能和豐富的特性在市場上占據了一席之地。今天,我們就來深入了解一下這款強大的微控制器。 文件下載: DS80C310.pdf 二、產品概述 DS80C310 是一款與 80C31/80C32 兼容的快速微控制器。它重
    的頭像 發表于 03-24 14:45 ?149次閱讀

    MIC5191:超高速線性調節的設計與應用解析

    哪些便利和優勢。 文件下載: MIC5191YML-TR.pdf 一、產品概述 MIC5191是一款超高速線性調節,它采用外部N溝道FET作為功率器件。這種設計使得它具備超高速能力,能夠滿足微處理
    的頭像 發表于 03-02 16:00 ?389次閱讀

    AD8009:超高速低失真放大器的卓越之選

    景中如何大放異彩。 文件下載: AD8009.pdf 一、AD8009的特性亮點 1. 超高速性能 AD8009具有令人矚目的超高速特性。其壓擺率高達5,500 V/μs(4 V階躍,G = +2),這意味著它能夠快速響應輸入信
    的頭像 發表于 01-23 14:30 ?431次閱讀

    MAX9600/MAX9601/MAX9602:超高速比較的卓越之選

    MAX9600/MAX9601/MAX9602:超高速比較的卓越之選 在電子工程師的日常設計中,超高速比較的選擇至關重要。今天我們要深入探討的是MAXIM公司的MAX9600/MA
    的頭像 發表于 01-07 17:45 ?701次閱讀

    解析瞬態密碼!海伯森超高速相機讓您從容審視每一個動作瞬間

    有限公司的超高速工業相機為核心,系統剖析其基于全局快門CMOS圖像傳感芯片、超高速FPGA(圖像處理單元)并行處理及PCIeGen等數據傳輸高速
    的頭像 發表于 12-29 11:00 ?445次閱讀
    解析瞬態密碼!海伯森<b class='flag-5'>超高速</b>相機讓您從容審視每一個動作瞬間

    MCU微控制器CH32L103高速電吹風方案

    MCU微控制器是整個電吹風控制系統的指揮中心。英尚微推出的高速電吹風方案,以MCU微控制器CH32L103為主控微控制器,幫助
    的頭像 發表于 11-27 16:20 ?527次閱讀

    微控制器讀取閃存中的軟件信息時,軟件信息部署在哪里? 是 SRAM 嗎?

    我對 PMG1 閃光燈有疑問。 1.微控制器讀取閃存中的軟件信息時,軟件信息部署在哪里? 是 SRAM 嗎? 2.微控制器加載軟件時,在部署之前是否檢查 SRAM 是否復位?
    發表于 05-23 06:22

    MAX32555 Cortex-M3閃存微控制器英文數據手冊

    電子發燒友網站提供《MAX32555 Cortex-M3閃存微控制器英文數據手冊.pdf》資料免費下載
    發表于 04-25 16:40 ?7次下載