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