www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]首先對比分析在執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移時,傳統(tǒng)8051單片機和進行DPTR擴展后的8051單片機在數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率上的差別。通過詳細分析DPTR操作所涉及的因素,具體實現(xiàn)對DPTR的擴展,并進行實際仿真測試。

摘要 首先對比分析在執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移時,傳統(tǒng)8051單片機和進行DPTR擴展后的8051單片機在數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率上的差別。通過詳細分析DPTR操作所涉及的因素,具體實現(xiàn)對DPTR的擴展,并進行實際仿真測試。
關(guān)鍵詞 8051單片機 DPTR 數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率

  單片機的出現(xiàn)是計算機技術(shù)發(fā)展史上的一個里程碑,它使計算機從海量數(shù)值計算進入到控制領(lǐng)域。在單片機中,以8051系列最為經(jīng)典,至今仍是最普及、廣泛使用的8位MCU架構(gòu)。業(yè)界許多技術(shù)人員在其基礎(chǔ)上不斷進行性能擴展,使得8051系列芯片不斷完善,從而形成一個龐大的體系。在傳統(tǒng)的8051系列單片機中,設(shè)置了一組雙字節(jié)寄存器(數(shù)據(jù)指針DPTR),用于訪問外接的64 KB數(shù)據(jù)存儲器和I/O接口電路;但在現(xiàn)今的8051單片機應(yīng)用中,特別是在嵌入式系統(tǒng)中,往往涉及大規(guī)模的數(shù)據(jù)轉(zhuǎn)移操作,而傳統(tǒng)8051的一組數(shù)據(jù)指針使用起來則顯得捉襟見肘,因此若在8051設(shè)計中將數(shù)據(jù)指針設(shè)計為兩組或多組,則在執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移操作時會相當簡便、迅速。在這種背景下,本文首先以數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率為衡量標準,分析了DPTR擴展的意義,并在Oregano公司的MCS8051核[1]上實現(xiàn)了DPTR擴展。

1  DPTR擴展意義

  為描述8051中的DPTR擴展的意義,我們針對實現(xiàn)大規(guī)模數(shù)據(jù)轉(zhuǎn)移,分別對DPTR擴展前后作了對比。為使對比更加清晰明了,提出了數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率的概念。

  數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率v定義為進行單字節(jié)數(shù)據(jù)轉(zhuǎn)移所耗費的機器周期數(shù),即v=nt。其中,n表示所轉(zhuǎn)移數(shù)據(jù)字節(jié)數(shù);t表示所耗費的機器周期,可設(shè)定其單位為字節(jié)/機器周期。

  在未進行DPTR擴展的8051中,可通過設(shè)置地址緩沖區(qū)的方法來實現(xiàn)大規(guī)模的數(shù)據(jù)轉(zhuǎn)移。具體的例程如下:

  MOVPRE:
    MOV50H, #s_adrh
    MOV51H, #s_adrl
    MOV52H,#t_adrh
    MOV53H,#t_adrl
    MOVR2, #64
  REMOVE:MOV DPH, 50H
    MOV DPL, 51H
    MOVX A, @DPTR
    INC DPTR
    MOV 50H, DPH
    MOV 51H, DPL
    MOV DPH, 52H
    MOV DPL, 53H
    MOVX @DPTR,A
    INC DPTR
    MOV 52H, DPH
    MOV 53H, DPL
    DJNZ R2, REMOVE

  在此例程中,50H、51H用于存放數(shù)據(jù)源地址s_adr(s_adrh為高字節(jié), s_adrl為低字節(jié)),52H、53H用于存放數(shù)據(jù)目的地址t_adr(t_adrh為高字節(jié), t_adrl為低字節(jié)),實現(xiàn)將源地址起始64字節(jié)數(shù)據(jù)轉(zhuǎn)移至目的地址。在8051中,執(zhí)行n字節(jié)數(shù)據(jù)移位操作耗費(14+28×n+2)個機器周期,數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率為v=n/(14+28×n+2)。在本例程中,n為64,計算得出共需耗費1 808個機器周期,執(zhí)行效率v約為0.035 4字節(jié)/機器周期,而且在此實現(xiàn)方法中需占用8051的4個片內(nèi)存儲器(RAM)單元。

  如8051中擁有兩組DPTR,并可通過特殊指令來實現(xiàn)DPTR選取??稍O(shè)定SETDPTR0指令表示選取DPTR0,SETDPTR1指令表示選取DPTR1,#s_adr表示數(shù)據(jù)源地址,#t_adr表示數(shù)據(jù)目的地址,則程序可設(shè)計為:

  MOVPRE:
    SETDPTR0
    MOVDPTR,#s_adr
    SETDPTR1
    MOV DPTR,#t_adr
    MOV R2,#64
  REMOVE2:
    SETDPTR0
    MOVX A,@DPTR
    INC DPTR
    SETDPTR1
    MOVX @DPTR,A
    INC DPTR
    DJNZ R2,REMOVE2

  程序中, 對于特殊指令SETDPTR0和SETDPTR1,可通過設(shè)置特殊功能寄存器(SFR)以表示DPTR狀態(tài),并對此SFR進行操作,以實現(xiàn)DPTR選取。因此DPTR選取指令可由3字節(jié)指令實現(xiàn),則在兩組DPTR情況下執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移需耗費(14+12×n+2)個機器周期,數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率為v=n/(14+12×n+2)。在本例程中,執(zhí)行64字節(jié)數(shù)據(jù)轉(zhuǎn)移需耗費784個機器周期,執(zhí)行效率約為0.085 64字節(jié)/機器周期。

  通過以上對比發(fā)現(xiàn),擁用兩組DPTR的8051比傳統(tǒng)8051在大規(guī)模數(shù)據(jù)傳輸時的數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率比為(14+28×n+2)/(14+12×n+2)。由圖1可知,隨著所轉(zhuǎn)移數(shù)據(jù)量的不斷加大,即n值增大時,執(zhí)行效率比也不斷增大,且最后趨近于2.33。


圖1  數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率對比圖

  經(jīng)過以上分析得出:在8051中設(shè)置兩組DPTR將會使其在數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率上有很大提高。從資源占用方面考慮,使用擴展DPTR的方式來實現(xiàn)數(shù)據(jù)轉(zhuǎn)移,僅需在8051中添加一個SFR,因此在8051中實現(xiàn)DPTR擴展,可在資源占用很少的條件下,明顯加快數(shù)據(jù)轉(zhuǎn)移速率。這對于在嵌入式系統(tǒng)應(yīng)用中,進行大規(guī)模數(shù)據(jù)轉(zhuǎn)移意義重大。

2  具體設(shè)計實現(xiàn)

  在8051中對DPTR實現(xiàn)擴展,首先需要對DPTR的相關(guān)指令進行分析,再確定對其進行擴展會影響到哪些指令操作;并根據(jù)其所涉及的指令,分析相應(yīng)的模塊,最后針對各模塊分別進行設(shè)計修改。

2.1  相關(guān)指令分析

  在8051標準指令集的111條指令中,與DPTR有關(guān)的指令共有5類,分別為:

 ?、?nbsp; 程序存儲器查表指令,“MOVC A,@A+DPTR”;
  ②  片外RAM傳送指令,“MOVX A, @DPTR”和“MOVX @ DPTR , A”;
 ?、?nbsp; 寄存器數(shù)據(jù)傳送指令,即可對DPTR進行讀寫操作,在8051中DPTR由DPH(DPTR高8位字節(jié))和DPL(DPTR低8位字節(jié))構(gòu)成,且DPH和DPL與一般的SFR一樣,都可作為寄存器進行讀寫、壓棧等操作;
  ④  程序轉(zhuǎn)移指令,“JMP @A+DPTR”;
 ?、?nbsp; 運算指令,可分別對DPH和DPL進行運算操作。

  通過對以上與DPTR相關(guān)的5類指令分析可知:第③類指令和第⑤類指令是將DPTR作為SFR進行操作的。第①類指令和第④類指令都是DPTR與PC指針進行的數(shù)據(jù)傳送操作;第②類指令是對片外RAM地址寄存器進行的數(shù)據(jù)傳送操作。因此,DPTR的操作具體涉及8051中以下3個模塊:SFR讀寫模塊、PC指針模塊及片外RAM地址模塊,故對DPTR的擴展也在這3個模塊中進行。

2.2  具體模塊設(shè)計

  對于DPTR狀態(tài)寄存器可設(shè)為dptr_sel,通過對DPTR狀態(tài)標志位dps操作,實現(xiàn)DPTR選取。當dps=0時,選取DPTR0;當dps=1時,選取DPTR1。在8051中,DPTR分別由DPH和DPL組成,因此對DPTR的選取實際上是對特殊功能寄存器DPH0、DPL0和DPH1、DPL1的選取。

  基于以上的設(shè)計思路,筆者分別在涉及DPTR操作的3個模塊中進行了相應(yīng)的修改。本設(shè)計所選用MCS8051核由VHDL語言設(shè)計,完全兼容標準8051指令集。

  在SFR讀寫模塊中,應(yīng)針對讀、寫模塊分別進行修改。通過分析MCS8051設(shè)計代碼可知,對于DPTR的讀操作,是通過將DPTR中數(shù)據(jù)傳送給數(shù)據(jù)暫存寄存器S_REGDATA,再通過對S_REGDATA進行讀操作來實現(xiàn)的,因此可在進行DPTR數(shù)據(jù)暫存前,利用選擇位dps來對DPTR進行選取。具體示意如圖2所示。

  在對DPTR進行寫操作時,實際上是對DPH和DPL進行操作(DPH地址為83H,DPL地址為82H),因此對DPTR進行寫操作時需對DPH和DPL分別進行操作。在MCS8051中對SFR的寫操作,實際上是先將要寫入的數(shù)據(jù)暫存在S_DATA寄存器中,再通過將S_DATA數(shù)據(jù)分別寫入DPH和DPL來實現(xiàn)的。因此可在S_DATA數(shù)據(jù)寫入前對DPTR0和DPTR1進行選擇判斷,來實現(xiàn)對DPTR0和DPTR1的寫操作,即dps=1時,將S_DATA數(shù)據(jù)寫入DPH1和DPL1;dps=0時,將S_DATA數(shù)據(jù)寫入DPH0和DPL0,具體結(jié)構(gòu)如圖3所示。


圖2  DPTR讀模塊示意圖    圖3  DPTR寫模塊結(jié)構(gòu)圖

  在PC指針模塊和片外RAM地址模塊中,由于也是涉及DPTR的讀操作,因此該模塊的修改與SFR讀模塊中的修改類似,也是利用dps來實現(xiàn)DPTR0、DPTR1的選取。

3  仿真測試

  在MCS8051中,針對以上3個模塊分別作了修改,將DPTR擴展為兩組,通過對DPTR_SEL(設(shè)定為SFR的E1H)中DPTR狀態(tài)標志位dps進行操作,來實現(xiàn)對DPTR0和DPTR1的選取,并利用仿真軟件Modelsim6.0進行了仿真測試。由于在實現(xiàn)DPTR擴展時主要針對SFR讀寫模塊、PC指針模塊和片外RAM地址模塊這3個模塊進行了修改,因此對于DPTR擴展的仿真測試也分3個模塊進行。

3.1  針對SFR讀寫模塊的測試

  該模塊的測試主要為測試DPTR0和DPTR1的數(shù)據(jù)傳輸。首先對DPTR狀態(tài)標志dps位進行操作,分別選取DPTR0和DPTR1;其次分別對其進行寫操作;最后將DPTR0和DPTR1中數(shù)據(jù)值依次輸出寄存器A中。具體波形如圖4所示。


圖4  SFR讀寫測試波形

  由圖4可知,在執(zhí)行指令75E100前后(即將dps復(fù)位,選取DPTR0),DPH和DPL輸出(執(zhí)行指令E583,E582)到寄存器A中的值不同。指令75E100執(zhí)行前DPH輸出為55,DPL輸出為66,執(zhí)行后輸出分別為11和22,因此表明通過dps進行DPTR選取,讀寫操作無誤,即對SFR讀寫模塊的修改無誤。

3.2  針對PC指針的數(shù)據(jù)查表測試

  針對此模塊,進行了一個查表測試,即向DPTR0和DPTR1中分別寫入data1和data2兩個數(shù)據(jù)表的地址;而后利用dps選取DPTR0和DPTR1,再分別對其進行數(shù)據(jù)查表輸出。具體波形如圖5所示。


圖5  PC指針的數(shù)據(jù)查表波形

  選取DPTR1(已存入data2地址,執(zhí)行指令75E180)后,將寄存器A清零(執(zhí)行指令7400),并將查表數(shù)據(jù)輸出(執(zhí)行指令93),輸出數(shù)據(jù)為11H;而后選取DPTR0,再次將寄存器A清零,并進行查表輸出,輸出數(shù)據(jù)為44H。對比可發(fā)現(xiàn)輸出數(shù)據(jù)與表中數(shù)據(jù)一致。由此表明,通過dps選取DPTR0和DPTR1,進行數(shù)據(jù)查表操作無誤,即對PC指針模塊的修改無誤。

3.3  片外RAM數(shù)據(jù)讀寫測試

  對于片外RAM數(shù)據(jù)讀寫測試,即大規(guī)模數(shù)據(jù)轉(zhuǎn)移,測試方案為:首先將DPTR0和DPTR1中分別寫入地址adr0和adr1,再分別對這兩個地址寫入數(shù)據(jù),最后將這兩個地址的數(shù)據(jù)通過DPTR0和DPTR1讀出,將讀出的結(jié)果與寫入結(jié)果對比,具體測試波形如圖6所示。


圖6  片外RAM數(shù)據(jù)讀寫波形

  將dps置位(執(zhí)行指令75E180)選取DPTR1后,將片外RAM中adr1數(shù)據(jù)讀出,輸出數(shù)據(jù)為77H;將dps復(fù)位(執(zhí)行指令75E100)選取DPTR0后,將adr0數(shù)據(jù)讀出,輸出數(shù)據(jù)為44H。經(jīng)對比可發(fā)現(xiàn)與所寫入的數(shù)據(jù)一致。由此可表明,通過dps選擇DPTR0和DPTR1對片外RAM進行數(shù)據(jù)讀寫無誤,即表明對片外RAM地址模塊的修改無誤。

3.4  FPGA仿真測試

  基于MCS8051這款8051微控制器,我們還進行了實際的FPGA仿真測試。首先利用RS232接口,在從計算機上將大規(guī)模數(shù)據(jù)接收并寫入到MCS8051片外RAM的地址adr0中;再利用例程2所給方法,進行大規(guī)模數(shù)據(jù)轉(zhuǎn)移,將數(shù)據(jù)轉(zhuǎn)移寫入到地址adr1中;最后通過RS232接口將adr1中數(shù)據(jù)發(fā)送到計算機。通過對比發(fā)送和接收的數(shù)據(jù)發(fā)現(xiàn),筆者對于DPTR的擴展無誤。

結(jié)語

  通過擴展DPTR可使8051在大規(guī)模數(shù)據(jù)轉(zhuǎn)移時的執(zhí)行效率大大提高,這使得采用擴展8051作為微控制器的嵌入式系統(tǒng),在大規(guī)模數(shù)據(jù)轉(zhuǎn)移時,其處理速度將大大提高。利用文中所闡述的方法也可將DPTR擴展為多組,但其具體應(yīng)用意義尚需進一步探討。

參考文獻

[1]  http://oregano.at/ip/ip12.htm.
[2]  盧毅,賴杰. VHDL與數(shù)字電路設(shè)計[M]. 北京:科學出版社,2001:99139.
[3]  吳炳勝,王桂梅.  80C51單片機原理與應(yīng)用[M]. 北京:冶金工業(yè)出版社,2001.
[4]  王春玲. VHDL設(shè)計中電路優(yōu)化問題探討[J]. 單片機與嵌入式系統(tǒng)應(yīng)用,2006(1):6971.
[5]  關(guān)華深,羅春,羅明清. 一款SoC的功能測試系統(tǒng)的設(shè)計[J]. 電子工程師,2005(4):1618.

楊磊(碩士研究生),主要研究方向為密碼系統(tǒng)芯片設(shè)計;
張遠洋(碩士研究生),主要研究方向為密碼工程與應(yīng)用;
李崢(副教授),主要研究方向為信息安全理論與技術(shù)。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關(guān)鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學者共同探討了在形勢依然嚴峻的當下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

SAIHUB CAB 025M成功獲得安全試驗所UL美國與加拿大認證證書 新加坡2022年10月17日 /美通社/ -- SAI.TECH Global Corporation("SAI.TECH"...

關(guān)鍵字: AI BSP PS 清潔能源

鄭州2022年10月17日 /美通社/ -- 近日,《福布斯》發(fā)布了"2022年全球最佳雇主榜單"(The World's Best Employers 2022),中國平安再度上榜并排名全...

關(guān)鍵字: 福布斯 ST TI BSP

通過第二項3nm設(shè)計選用擴展技術(shù)領(lǐng)先地位 第三季度強勁的貿(mào)易和設(shè)計選用反映出我們結(jié)合了IP和定制硅的混合業(yè)務(wù)模式 自2022年9月1日起,OpenFive首次并入集團 盡管宏觀環(huán)境困難,但管理層仍對業(yè)務(wù)...

關(guān)鍵字: BSP ALPHA PEN Silicon

百奧賽圖(北京)醫(yī)藥科技股份有限公司的全資子公司祐和醫(yī)藥科技(北京)有限公司宣布與臨床階段的美國生物制藥公司Syncromune達成協(xié)議,共同開發(fā)和商業(yè)化基于Syncrovax?技術(shù)的瘤內(nèi)免疫療法。Syncrovax?平...

關(guān)鍵字: ROM OV

歐洲藥品管理局人用藥品管理委員會 (CHMP) 的積極建議是基于 EFFISAYIL® 1 研究結(jié)果,該研究是針對泛發(fā)性膿皰型銀屑病 (GPP) 發(fā)作患者的最大的臨床研究[1] 與斑塊狀銀屑病不同,GP...

關(guān)鍵字: HM BSP GP FOR

流體動壓滑動軸承為風機發(fā)展書寫嶄新篇章 軸承滑動層增材制造與精加工為工業(yè)級大規(guī)模生產(chǎn)鋪平道路 軸承設(shè)計從綜合性系統(tǒng)理念出發(fā) 德國施韋因富特和漢堡2022年10月17日 /美通社/ -- 舍弗勒推出了采...

關(guān)鍵字: 齒輪箱 滑動軸承 風力渦輪機 BSP

上海2022年10月17日 /美通社/ -- Brother內(nèi)置墨倉彩色噴墨一體機DCP-C421W新上市。此次Brother創(chuàng)新引入"按需打印,按頁付費"...

關(guān)鍵字: DC 打印機 BSP DESIGN

慕尼黑2022年10月17日 /美通社/ -- TUV南德意志集團(以下簡稱"TUV南德")在EcoVadis全球企業(yè)社會責任評級中以總分71分榮獲金獎。...

關(guān)鍵字: OV ADIS BSP COM

單片機

21600 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉