摘? 要: 介紹變頻器專用仿真器的設(shè)計(jì)開(kāi)發(fā),。硬件設(shè)計(jì)方面,介紹了芯片的選擇,重點(diǎn)論述三對(duì)PWM波形發(fā)生器,、保護(hù)電路和信號(hào)輸入輸出電路,并選擇并口與上位機(jī)通信;軟件設(shè)計(jì)方面,仿真器與上位機(jī)的通訊使用同步串行通訊(SPI),軟件依據(jù)此通訊協(xié)議而設(shè)計(jì),使用32位命令-地址-數(shù)據(jù)方式。此仿真器也可直接用于變頻控制,實(shí)際使用證明,此仿真器優(yōu)于其它通用型仿真器,。
關(guān)鍵詞: 變頻器? 仿真器? PWM波形
?
市面上各種仿真器應(yīng)有盡有,但這些仿真器是通用性的,對(duì)于使用8XC196MC作為變頻器專用芯片的開(kāi)發(fā)人員來(lái)說(shuō),卻并不那么好用,甚至有一定的障礙,因?yàn)榉抡嫫鞯挠行┒丝谝驯环抡嫦到y(tǒng)使用,用戶就不能再使用這些端口。
下面依據(jù)變頻器開(kāi)發(fā)的一些要求設(shè)計(jì)簡(jiǎn)單好用的8XC196MC仿真器,重點(diǎn)是三相波形發(fā)生器(WG)及保護(hù)(EXTINT)電路8XC196MC和其他的芯片比較,一個(gè)最顯著的特點(diǎn)是它的WG電路,。WG是使8XC196MC適合于電機(jī)控制的主要片內(nèi)外圍電路,其與專用三相波形發(fā)生器芯片HEF4752相似,但它的功能更強(qiáng),使用起來(lái)更方便,占用CPU時(shí)間更少,。WG可產(chǎn)生三對(duì)具有同一載波(三角波或正向鋸齒波可選)但占空比各自可編程的PWM波形,每對(duì)PWM波形是互補(bǔ)的,。其間的死區(qū)時(shí)間(不重迭激活時(shí)間),、輸出極性和輸出組合均可編程,。載波周期和各相的占空比的修改方式以及每個(gè)載波周期中斷請(qǐng)求次數(shù)也可編程。當(dāng)被WG驅(qū)動(dòng)的外設(shè)發(fā)生故障時(shí),其保護(hù)電路立即硬件關(guān)閉WG的輸出,并提出中斷請(qǐng)求,。當(dāng)用WG的三對(duì)PWM波形(經(jīng)隔離放大)來(lái)驅(qū)動(dòng)三相逆變器時(shí),可實(shí)現(xiàn)交流電機(jī)的變頻調(diào)速或其他交直流調(diào)速方案,。
1 硬件設(shè)計(jì)方案
為了簡(jiǎn)化仿真器r 設(shè)計(jì),使用87C196MC作仿真器開(kāi)發(fā)芯片,這樣可以利用其內(nèi)部的EPROM。內(nèi)部的EPROM可以作為仿真器的監(jiān)控程序(要求正確無(wú)誤),外部的RAM可以作為仿真器的用戶程序,。內(nèi)部EPROMr 主要任務(wù)是將用戶程序,、數(shù)據(jù)送到外部RAM中或從RAM中讀取程序、數(shù)據(jù)因?yàn)?7C196MC在運(yùn)行內(nèi)部EPROM程序時(shí),外部的P3,、P4,、P5口可以設(shè)置為I/O口,這樣就可以控制這三個(gè)I/O口來(lái)控制RAM數(shù)據(jù)的寫(xiě)入或讀出,此時(shí)P3、P4口需要接上拉電阻),在傳送用戶程序時(shí)從內(nèi)部EPROM處執(zhí)行程序(將=1后復(fù)位),。傳送完用戶程序后,再?gòu)耐獠縍AM處執(zhí)行程序(將=0后復(fù)位),。另外,為了使用方便,使用一個(gè)8255作為鍵盤(pán)掃描和動(dòng)態(tài)顯示擴(kuò)展芯片,分配重復(fù)地址0FF00~0FFFF共256個(gè)地址空間。8255的PB口用來(lái)作為驅(qū)動(dòng)數(shù)碼管8段碼的信號(hào),PC下口作為驅(qū)動(dòng)數(shù)碼管4位碼的信號(hào),同時(shí)作為鍵盤(pán)掃描輸出信號(hào),PC上口其中3位作為鍵盤(pán)掃描輸入信號(hào),這樣就有4個(gè)動(dòng)態(tài)顯示的數(shù)碼管和12個(gè)鍵組成的鍵盤(pán),已能滿足大部分的開(kāi)發(fā)要求,。8255其余端口可留給用戶擴(kuò)展使用,。RAM使用32K(程序數(shù)據(jù)共同占用),地址為0000~7FFF,這樣大的空間已經(jīng)能滿足幾乎所有的開(kāi)發(fā)應(yīng)用,剩下8000~FEFF的31.75K留給用戶擴(kuò)展使用,。
2 仿真器硬件設(shè)計(jì)
硬件設(shè)計(jì)要求將WG波形發(fā)生器的輸出口(產(chǎn)生三對(duì)PWM波形用來(lái)驅(qū)動(dòng)三相逆變器),、A/D轉(zhuǎn)換輸入口(用于反饋電流、反饋轉(zhuǎn)速,、電位器電壓設(shè)置,、電位器頻率設(shè)置等的輸入)、多功能P2口(用戶可以利用它作一些如電源開(kāi)關(guān),、報(bào)警,、轉(zhuǎn)速捕獲及串行通訊等)、保護(hù)電路輸入引腳EXTINT(它和外部中斷共用同一引腳,用來(lái)接受外設(shè)的故障信號(hào),并同時(shí)提出中斷請(qǐng)求)留給用戶,另外安排鍵盤(pán)和顯示(使用8255擴(kuò)展),。為了用戶使用方便,這些口都必須使用標(biāo)準(zhǔn)的接口插槽,。仿真器與計(jì)算機(jī)進(jìn)行通訊,才能將程序或數(shù)據(jù)寫(xiě)入或讀自仿真器的RAM,所以仿真器本身需要通訊接口。為了不占用用戶端口,強(qiáng)制使用8位總線方式,這樣就多出了P5.6(BUSWIDTH)和P5.4引腳,如果使用簡(jiǎn)單的同步帶時(shí)鐘反饋串行通訊方式與計(jì)算機(jī)連接,使用計(jì)算機(jī)并口(計(jì)算機(jī)并口操作簡(jiǎn)單,并且有輸出鎖存器,還可以控制,、等引腳,與前面的要求相符)與仿真器通訊,。由于A/D轉(zhuǎn)換共有13路,一般情況下用戶用不了這么多,所以可以選擇P1.0和P1.1給仿真器通訊使用。
按這樣的方式分配引腳:P1.0——由計(jì)算機(jī)到仿真器的主時(shí)鐘(CLKI)信號(hào);P1.1——由計(jì)算機(jī)到仿真器的數(shù)據(jù)(DI)信號(hào);P5.4——由仿真器到計(jì)算機(jī)的數(shù)據(jù)(DO)信號(hào);P5.6——由仿真器到計(jì)算機(jī)的反饋時(shí)鐘(CLKO)信號(hào),。圖1就是儀此而設(shè)計(jì)的仿真器框圖,。
?
3 仿真器軟件設(shè)計(jì)
軟件設(shè)計(jì)的主要任務(wù)是完成計(jì)算機(jī)和仿真器的通訊,也就是說(shuō),要求計(jì)算機(jī)的軟件協(xié)議與仿真器的軟件協(xié)議相容。選用同步帶時(shí)鐘反饋串行通訊協(xié)議,計(jì)算機(jī)為主機(jī),仿真器為從機(jī),這樣就不受延時(shí)時(shí)間的限制,而且通訊速度可以在一定的范圍內(nèi)可調(diào)。協(xié)議定義如下:
(1) 數(shù)據(jù)格式采用8位無(wú)校驗(yàn)方式;
(2) 從機(jī)一直等待主機(jī)時(shí)鐘上升沿;
(3) 在主機(jī)的時(shí)鐘上升沿之前,主機(jī)的數(shù)據(jù)已準(zhǔn)備好;
(4) 從機(jī)在接受到主機(jī)的時(shí)鐘上升沿后,讀取主機(jī)送來(lái)的數(shù)據(jù),將反饋時(shí)鐘信號(hào)置位(高電平),。主機(jī)在接受到從機(jī)的反饋時(shí)鐘信號(hào)上升沿后,將主時(shí)鐘信號(hào)清位(低電平);
(5) 從機(jī)在接受到主機(jī)的時(shí)鐘下降沿后,發(fā)送自己的數(shù)據(jù)給主機(jī),然后將反饋時(shí)鐘信號(hào)清位;
(6)主機(jī)在接受到從機(jī)的反饋時(shí)鐘信號(hào)下降沿后,讀取從機(jī)送來(lái)的數(shù)據(jù);
(7) 這樣就完成了1位數(shù)據(jù)的傳遞,如此重復(fù)第3步到第6步,直到8位數(shù)據(jù)傳完,時(shí)序如圖2,。
?
另外,使用4字節(jié)命令-地址-數(shù)據(jù)格式。第一字節(jié)是命令字,包括讀,、寫(xiě)和測(cè)試命令;第二字節(jié)是高地址;第三字節(jié)是低地址;第四字節(jié)表示要寫(xiě)入或讀出的數(shù)據(jù),。
仿真器傳送一個(gè)字節(jié)數(shù)據(jù)(同時(shí)輸出1字節(jié)數(shù)據(jù)和輸入1字節(jié)數(shù)據(jù))算法設(shè)計(jì)如下:
(1)寄存器DATAIN存放從計(jì)算機(jī)輸入到仿真器的數(shù)據(jù),寄存器DATAOUT存放仿真器輸出到計(jì)算機(jī)的數(shù)據(jù),設(shè)置計(jì)數(shù)器COUNT=8;
(2) 等待計(jì)算機(jī)的主時(shí)鐘信號(hào)上升沿;
(3)將DATAIN寄存器左移一位,讀取輸入主數(shù)據(jù)電平。如果為1,則DATAIN=DATAIN+1,否則轉(zhuǎn)向4;
(4) 將從時(shí)鐘信號(hào)置高;
(5) 等待計(jì)算機(jī)的主時(shí)鐘信號(hào)下降沿;
(6) 將DATAOUT左移一位,最高位移入C,。如果C為1,則將從數(shù)據(jù)信號(hào)置為高電平,否則將其清為低電平,然后將從時(shí)鐘信號(hào)清為低電平,。
(7) 計(jì)數(shù)器COUNT=COUNT-1。如果COUNT不為0,則轉(zhuǎn)第2步,否則此子程序返回,。
與此相仿,計(jì)算機(jī)傳送一個(gè)字節(jié)的算法設(shè)計(jì)如下:
(1) 設(shè)置計(jì)數(shù)器COUNT=8,寄存器DATAIN=0存放從仿真器輸入到計(jì)算機(jī)的數(shù)據(jù),寄存器DATAOUT存放計(jì)算機(jī)輸出到仿真器的數(shù)據(jù),傳送錯(cuò)誤標(biāo)志ERROR=FALSE(假);
(2) 判斷DATAOUT的最高位是否為1,。若為1,則將主數(shù)據(jù)信號(hào)置位,否則將其清位,然后將DATAOUT左移一位,將主時(shí)鐘信號(hào)置位;
(3) 等待反饋時(shí)鐘信號(hào)上升沿,并同時(shí)測(cè)試是否超時(shí)。如果超時(shí),ERROR=TRUE(真),子程序返回,否則轉(zhuǎn)第4步;
(4) 將主時(shí)鐘信號(hào)清位;
(5) 等待反饋時(shí)鐘信號(hào)下降沿,并測(cè)試是否超時(shí),。
如果超時(shí),ERROR=TRUE,子程序返回,否則轉(zhuǎn)第6步;
(6) DATAIN左移一位,讀取從數(shù)據(jù)信號(hào),。如果為1,則DATAIN=DATAIN+1,否則直接轉(zhuǎn)到第7步;
(7) COUNT=COUNT-1,判斷COUNT是否為0。
為0則子程序返回,否則轉(zhuǎn)第2步,。
仿真器向外部RAM寫(xiě)數(shù)據(jù)的子程序算法如下(不包括寫(xiě)命令1字節(jié)):
(1) 從計(jì)算機(jī)傳入一個(gè)字節(jié)數(shù)據(jù)(調(diào)用一次傳送1字節(jié)子程序,以后都是這樣),寫(xiě)入P4輸出寄存器,。然后再傳入一個(gè)字節(jié)數(shù)據(jù),寫(xiě)入P3輸出寄存器。給地址鎖存引腳ALE(P5.0)一個(gè)高脈沖(先置高,再清低),鎖存地址;
(2) 再?gòu)挠?jì)算機(jī)傳入一個(gè)字節(jié)數(shù)據(jù),寫(xiě)入P3輸出寄存器,。給單片機(jī)寫(xiě)引腳(P5.2)一個(gè)低脈沖(先清低,再置高),這樣就向RAM寫(xiě)入了一字節(jié)數(shù)據(jù);
(3) 子程序返回,。
仿真器從外部RAM讀數(shù)據(jù)的子程序算法(不包括讀命令1字節(jié)):
(1) 從計(jì)算機(jī)傳入一個(gè)字節(jié)數(shù)據(jù),寫(xiě)入P4輸出寄存器。然后再讀入一個(gè)字節(jié),寫(xiě)入P3輸出寄存器,。給地址鎖存引腳ALE(P5.0)一個(gè)高脈沖,鎖存地址;
(2) 向P3輸出寄存器寫(xiě)入0FFH,以定義P3口為輸入口,。給單片機(jī)讀引腳(P5.3)一個(gè)低電平,再讀P3口引腳寄存器P3_PIN數(shù)據(jù)到DATAOUT,然后將讀引腳變?yōu)楦唠娖?
(3) 向計(jì)算機(jī)傳入一個(gè)字節(jié)數(shù)據(jù)DATAOUT,返回。
依此法設(shè)計(jì)的仿真器已經(jīng)投入使用,實(shí)際使用證明,根據(jù)以上方法設(shè)計(jì)的仿真器用于變頻器開(kāi)發(fā)非常方便,其中的RAM可以使用EEPROM(如AT28C64)代替(管腳兼容,相鄰數(shù)據(jù)之間的時(shí)間間隔可以通過(guò)計(jì)算機(jī)軟件控制),。用戶程序設(shè)計(jì)好寫(xiě)入EEPROM后,可以直接用于工業(yè)現(xiàn)場(chǎng)控制,。
?
參考文獻(xiàn)
1 王秩泉.高檔單片機(jī)8xC196MC與電氣傳動(dòng),電氣傳動(dòng)自動(dòng)化,1997;19(3)
2 何熙文.Intel 8XC196MC/MD高檔單片機(jī)原理及實(shí)用設(shè)計(jì).大連:大連理工大學(xué)出版社,1995
3 趙秀菊.單片微型計(jì)算機(jī)8XC196原理及應(yīng)用.南京:東南大學(xué)出版社,1995
4 張 利.PC機(jī)打印口的原理及應(yīng)用開(kāi)發(fā),,北京:清華大學(xué)出版社,,1996
5 Stephen D.Gilbert.跟我學(xué)VISUAL C++ 6.北京:機(jī)械工業(yè)出版社,1999