高性能單片機μPD70320的特點及應(yīng)用
1. 概述
μPD70320是日本NEC公司生產(chǎn)的V25系列16位單片機,它具有功能強、可靠性高、速度快、兼容性好的優(yōu)點。該芯片除CPU外還集成了512字節(jié)的 RAM、三個I/O口、8個模擬量輸入端、兩個DMA、兩個定時器、兩個全雙工異步通訊口和一個中斷控制器等電路,μPD70320具有先進的快速中斷功能,特別適合實時多任務(wù)處理;采用嚴(yán)格的CMOS制造工藝,穩(wěn)定工作范圍寬,電源電壓3~8V,可選用的晶振頻率為1~6MHz,抗干擾,可在惡劣環(huán)境中使用;采用特殊的雙總線結(jié)構(gòu),使用32位內(nèi)部寄存器和6字節(jié)指令隊列,在相同的時鐘頻率下,比8088快2~4倍;其指令集僅是8088的一個超集,把 PC機上的程序稍作修改就可在μPD70320上運行,因而開發(fā)它不需要特殊的開發(fā)裝置和調(diào)試軟件,因此可降低開發(fā)成本,加快開發(fā)進度。μPD70320 的引腳圖如圖1所示。
μPD70320與8088的寄存器和指令是一樣的,差異在于μPD70320集成了眾多外圍芯片和由于內(nèi)核不同而引起的時序關(guān)系的改變。新增的功能是通過特殊功能寄存器區(qū)(SFR)、片內(nèi)數(shù)據(jù)區(qū)(IDA)以及特殊指令來實現(xiàn)的。SFR和IDA在512字節(jié)片內(nèi)RAM中由高到低依地址連續(xù)排列,可以通過設(shè)置SFR中的片內(nèi)數(shù)據(jù)區(qū)地址寄存器(IDB)的值來重新定位SFR和IDA在1MB內(nèi)存的任意位置。IDB的值是20位地址的高8位,因此訪問SFR就象訪問內(nèi)存一樣。片內(nèi)RAM地址映象如圖2所示。
圖2給出了SFR和IDA的分布情況、SFR用于訪問片內(nèi)周邊單元;IDA主要用于快速寄存器的塊切換(RBS)和宏服務(wù)功能(MSF)。
2. 特殊功能寄存器(SFR)
μPD70320有多種特殊功能的寄存器,現(xiàn)簡述如下:
2.1 三個I/O口
每個口的每一個端均可通過設(shè)置口模式寄存器(PM)的相應(yīng)位而成為輸入或輸出端,設(shè)置成1,表示輸入;設(shè)置成0,表示輸出??谀J娇刂萍拇嫫鳎≒MC)決定口的相應(yīng)端是用于控制模式還是I/O模式,設(shè)置成1,表示控制模式;設(shè)置成0,表示I/0模式。接口寄存器(P)用于存取輸入輸出數(shù)據(jù)。
2.2 八個模擬量比較器輸入
每個模擬輸入(PTO~PT7)均可與參考電壓(Vth)的分壓值進行比較、PT端的電壓大于分壓值,PT寄存器相應(yīng)位為1:反之為0。通過設(shè)置接口模式寄存器(PMT)的值(01H~10H)可改變分壓比,分壓值等于Vth與分壓比/16的乘積。PT、PMT地址分別為××F38H、××F3BH。
2.3 兩個16位定時器
每個定時器包括16位模數(shù)寄存器(MD)、16位減一寄存器(TD)、控制寄存器(TC)、宏服務(wù)寄存器(TMS)和中斷控制器(TIC)。定時器0有連續(xù)和單次工作方式。定時器1僅有連續(xù)工作方式。
連續(xù)工作方式時:MD置好初值、TC的Bit5置1,啟動定時器。當(dāng)TD減至0時、MD自動加載模數(shù)到TD,TD又重新開始工作,如此循環(huán)下去直至TC的Bit5置0。
單次工作方式時:TD0和MD0都可單獨作減1寄存器使用,TD0或MD0減至0后定時器就停止工作。
2.4 兩個串行通訊口
每個通訊口包括接收緩存器(RB)、發(fā)送緩存器(TB)、模式寄存器(SM)、控制寄存器(SC)、波特率發(fā)生器(BRG)、通訊錯誤寄存器(SE)、接收宏服務(wù)寄存器(SRMS)、發(fā)送宏服務(wù)寄存器(STMS)、錯誤中斷控制器(STIC)、接收中斷控制器(SRIC)和發(fā)送中斷控制器(STIC)等 11個寄存器。每個通訊口有接收數(shù)據(jù)線(RXD)、發(fā)送數(shù)據(jù)線(TXD))和握手控制線(CTS)。當(dāng)CTS=0時,啟動發(fā)送;當(dāng)數(shù)據(jù)起始位的下降沿被檢測到時,啟動接收。數(shù)據(jù)幀格式由起始位、7或8位數(shù)據(jù)位,奇偶校驗位、1或2停止位組成,這些參數(shù)由SM的相應(yīng)位決定。
當(dāng)通訊發(fā)生錯誤、接收到數(shù)據(jù)或數(shù)據(jù)發(fā)送完畢時,都會產(chǎn)生中斷,其優(yōu)先級依次降低,除錯誤中斷外,接收到數(shù)據(jù)和數(shù)據(jù)發(fā)送都有向量中斷、RBS和MSF三種方式。當(dāng)通訊發(fā)生錯誤時,SE的相應(yīng)位置1,SE的Bit0,Bit1,Bit2分別對應(yīng)溢出錯、幀格式錯和校驗錯。
2.5 兩個DMA控制器
DMA能迅速在內(nèi)存和外設(shè)之間傳遞數(shù)據(jù),它有兩種方式四種模式。兩種方式為:內(nèi)存到內(nèi)存I/O(MtoM)和內(nèi)存與I/O(M&I/O)方式。內(nèi)存到內(nèi)存方式下有單步模式(SSM)和閃電模式(BM);內(nèi)存到I/O方式下有一次傳輸模式(STM)和請求釋放模式(DRM)。四種模式的工作狀態(tài)如下:
SSM:當(dāng)DMA請求發(fā)生時,DMA操作交替進行直至指定字節(jié)傳輸完為止;
BM:當(dāng)DMA請求發(fā)生時,MA操作連續(xù)進行直至指定字節(jié)傳輸完為止;
STM:當(dāng)DMA請求發(fā)生時,執(zhí)行一次DMA操作;
DRM:當(dāng)DMARQ請求輸入線保持為高時,進行DMA操作,直至DMARQ為低。
每個DMA控制器有三根控制線:請求輸入線(DMARQ)、相應(yīng)輸出線(DMAAK)及終止計數(shù)輸出線(TC)。另外,還有三個功能寄存器:控制寄存器(DMAC)、模式寄存器(DMAM)和中斷寄存器(DMAIC)。DMA操作的地址信息存放在IDA中,并可軟件設(shè)置。
2.6 系統(tǒng)寄存器
μPD70320主要有四個系統(tǒng)寄存器,即:模式控制寄存器(SBC),標(biāo)志寄存器(FLAG),處理器控制寄存器(PRC),片內(nèi)數(shù)據(jù)區(qū)地址寄存器(IDB)。
μPD70320有三種模式:工作模式、暫停模式和關(guān)閉模式。工作模式就是CPU正常工作時的狀態(tài),暫停模式是執(zhí)行HLAT命令后進入的,NMI中斷可使之返回工作模式,關(guān)閉模式是執(zhí)行STOP命令后進入的,系統(tǒng)復(fù)位或NMI可使之返回工作模式,返回后程序從何處開始執(zhí)行由SBC決定。如SBC的 Bit0=0,返回后程序從FFFF:0000H重新開始;反之從斷點開始。FLAG的Bit0和Bit1是用戶自定義標(biāo)志。PRC的Bit0和Bit1 決定系統(tǒng)時鐘,其值00H、01H、10H分別對應(yīng)晶振頻率的1/2、1/4、1/8分頻數(shù);PRC的Bit7決定禁止(Bit7=0)或使能(Bit7=1)訪問IDA。
3. 中斷系統(tǒng)
μPD70320除傳統(tǒng)的向量中斷方式外,還有寄存器塊切換方式(RBS)和宏服務(wù)功能(MSF),后兩種方式適合實時多任務(wù)處理。
3.1 向量中斷方式
這種方式與8088兼容,在內(nèi)存最低端(00000H~00400H)的1kB內(nèi)存中存放256個中斷向量。其中0~31在μPD70320內(nèi)部已分配好,見表1所列。
在256個中斷中,硬中斷有17個,其中片內(nèi)硬中斷12個,外部硬中斷5個。它們分成8個組,每個組對應(yīng)一個優(yōu)先級,共8個優(yōu)先級、0級最高、7級最低;每組內(nèi)每個中斷的優(yōu)先權(quán)(1為最高,3為最低)是固定的,組與組之間的優(yōu)先級可以通過設(shè)置中斷控制寄存器(IC)來決定。其默認(rèn)優(yōu)先級見2表所列。
中斷優(yōu)先級寄存器(IPR)的相應(yīng)位表示當(dāng)前中斷的優(yōu)先級(如:Bit3=1表示當(dāng)前中斷優(yōu)先級為3)。NMI,INIP2,INTP1,INTP0的觸發(fā)方式分別在中斷模式寄存器(INTM)的Bit0,Bit2,Bit4,Bit6定義,1表示上升沿、0表示下降沿。
3.2 寄存器塊切換方式(RBS)
μPD70320有8個寄存器塊(Bank0~Bank7),由低到高連續(xù)存放于IDA中,其地址從××E00H到××EFFH共256Bytes,每個寄存器塊含16個16位寄存器,可參見圖2。
使用RBS應(yīng)首先在中斷控制寄存器(IC)的低3位設(shè)置寄存器塊號并且設(shè)置Bit4為1,初始化寄存器塊內(nèi)的CS、Vector 、PC和SS,SP及其它寄存器;硬件產(chǎn)生中斷請求或執(zhí)行INTCS指令,芯片自動將當(dāng)前PC和PSW的值保存在寄存器塊內(nèi)的PC Save和PSW Save中,Vector PC取出PC值放在PC寄存器中,執(zhí)行中斷處理;中斷返回時,執(zhí)行RETRBI,從PC Save和PSW Save中恢復(fù)PC和PSW的值。這種中斷方式不需要堆棧保存寄存器的值,因此速度大大加快,更適合多任務(wù)處理。定時器、通訊口、DMA及外部中斷都可以采用這種方式 。
3.3 宏服務(wù)方式(MSF)
MSF是特殊的微程序,它完成SFR與內(nèi)存之間的數(shù)據(jù)傳輸,減少軟件開銷和CPU時間,不需要寄存器保護、恢復(fù)等相關(guān)處理。每次請求MSF時,數(shù)據(jù)在 SFR和內(nèi)存之間傳輸而不需要中斷CPU的工作,同時,宏服務(wù)計數(shù)器(MSC)減1,當(dāng)MSC減到零時,一個中斷將會發(fā)生。MSF還有字符搜索功能,當(dāng)搜索到字符時,中斷也會發(fā)生。除NMI、INTP、INTTB、INTD0、INTD1外的其它硬件中斷都有MSF。宏服務(wù)通道有8個(0~7),每個通道含8個字節(jié),其地址從xxE00H到xxE3FH共64Bytes。另外,uPD70320還具有系統(tǒng)時鐘輸出、DRAM刷新脈沖輸出、插入等待周期、總線掛起、計時中斷、I/O陷阱等功能。
4. 應(yīng)用
由上可見,μPD70320是一個功能強大的單片機產(chǎn)品,它不僅與8088兼容,而且具有自身的特點。因此特別適合于要求速度快,容量大,可靠性高,功能強的應(yīng)用系統(tǒng)。圖3是μPD70320的一個應(yīng)用實例,該應(yīng)用充分利用了μPD70320優(yōu)異的性能和兼容性。因此可見,μPD70320為單片機的更廣泛應(yīng)用開創(chuàng)了新的領(lǐng)域。