新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 80C196MC的外設(shè)事務(wù)服務(wù)器及其應(yīng)用

80C196MC的外設(shè)事務(wù)服務(wù)器及其應(yīng)用

——
作者:福州大學(xué) 唐愛民 胡金高 時(shí)間:2007-08-21 來源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 收藏

  摘要:介紹利用專用于電機(jī)控制的16位單片機(jī)PTS在變頻器中實(shí)現(xiàn)異步串行通信的方法。重點(diǎn)介紹PTS和普通中斷的差別及程序設(shè)計(jì)中應(yīng)注意的問題,同時(shí)給出通用變頻器通信協(xié)議及程序框圖。

    關(guān)鍵詞:單片機(jī) 變頻器 通信

引言

  變頻器在工業(yè)現(xiàn)場(chǎng)中越來越廣泛。為了能實(shí)現(xiàn)整個(gè)自動(dòng)化系統(tǒng)的協(xié)調(diào)控制,同時(shí)能監(jiān)視多臺(tái)變頻器的運(yùn)行狀況,方便地對(duì)單一變頻器或多臺(tái)變頻器實(shí)行啟停、正反轉(zhuǎn)、升降速、參數(shù)設(shè)置等操作是非常必要的。本文介紹利用變頻器的主控芯片內(nèi)的PTS在變頻器中實(shí)現(xiàn)異步串行通信的方法。

1 關(guān)于PTS

1.1 PTS和普通中斷

  90C196MC高性能16位單片機(jī)內(nèi)部“嵌入”了各種以往被認(rèn)為是“外圍設(shè)備”的電路。外設(shè)事務(wù)服務(wù)器PTS(Peripheral Transaction Server)就是一種被嵌入的“外設(shè)”。它是一種微代碼硬件中斷處理器,對(duì)中斷可提供一種類似于DMA(直接存儲(chǔ)器訪問)的響應(yīng),其CPU 的開銷比普通中斷系統(tǒng)(基于上是一種軟件中斷服務(wù)系統(tǒng))要少得多。為便于理解PTS的工作過程,圖1示出了PTS和普通中斷流程的主要差別。從圖1可以看出:

 ?、貾TS的執(zhí)行是靠CPU硬件微代碼來完成的;而普通中斷是靠中斷正常的程序,由PC入棧、現(xiàn)場(chǎng)保護(hù)、用戶服務(wù)程序、恢復(fù)現(xiàn)場(chǎng)與PC出棧來完成。顯然后者對(duì)CPU的開支要比前者多得多。

 ?、谕ǔV袛嗨龅氖窍嗤墓ぷ?,如不斷的連續(xù)A/D轉(zhuǎn)換、數(shù)據(jù)組的傳遞、通信的多字節(jié)傳遞等。PTS正利用這點(diǎn),由一個(gè)程序啟動(dòng)PTS,讓之在PTS計(jì)數(shù)器單元控制下不中斷正常程序靠硬件微代碼(即類似DMA的插入)來分時(shí)完成,在PTS計(jì)數(shù)單元完成后轉(zhuǎn)化為一次普通中斷,通過普通中斷進(jìn)行一系列PTS完成后的結(jié)果處理。

  ③在中,PTS優(yōu)先級(jí)總是比普通中斷優(yōu)先級(jí)要高,并且有近16個(gè)中斷源,對(duì)16位的允許位和響應(yīng)位的字寄存器進(jìn)行各自控制;同時(shí),PTS和普通中斷是各位相對(duì)應(yīng)的,這樣使得PTS完成后轉(zhuǎn)化為一次普通中斷就變得很簡(jiǎn)單。

  ④在80C196MC中,與PTS有關(guān)的控制有:總允許位PSW.10以及各中斷源的選擇位PTSSEL寄存器。其中PSW.10通過EPTS指令置位,允許PTS服務(wù)。與普通中斷有關(guān)的控制有:總允許位PSW.9以及中斷屏蔽寄存器INT-MASK。

1.2 PTS實(shí)現(xiàn)串行輸入/輸出模式

  80C196MC沒有硬件通用異步收發(fā)器UART,但是利用專門的PTS模式可以方便且低軟件開銷地實(shí)現(xiàn)串行輸入和輸出功能。既可實(shí)現(xiàn)異步SIO(ASIO)功能,也可實(shí)現(xiàn)同步SIO(SSIO)功能。采用16MHz晶振,用PTS完成波特率為9600的半雙工串行輸入輸出時(shí),CPU的的開銷只有4%左右。

  PTS SIO模式占用2個(gè)控制塊,每個(gè)控制塊包含8個(gè)8位寄存器,如圖2所示。

  這2個(gè)控制塊的地址不一定是連續(xù)的,但它們都應(yīng)在寄存器RAM區(qū)內(nèi),控制塊首地址都應(yīng)能被8整除。

2 程序設(shè)計(jì)

  采用80C196MC異步串行輸入/輸出模式實(shí)現(xiàn)變頻器與計(jì)算機(jī)之間的通信,其初始化程序主要包括P2端口和定時(shí)器的初始化以及PTS SIO模式初始化等。

  首先將接收端的CAPCOMP1設(shè)置為下降沿捕獲方式。當(dāng)CAPCOMP1捕捉到起始位的前沿后,進(jìn)入接收中斷服務(wù)子程序,其程序流程如圖3所示。

下面介紹程序中應(yīng)注意的要點(diǎn):

 ?、俳邮粘绦蛑校捎肊PA CAPCOMP1捕獲/比較模塊。它首先利用其捕獲功能造成1次普通中斷,而不是1個(gè)PTS周期。在這次啟動(dòng)中斷中,把CAPCOMP1模塊切換成比較方式,啟動(dòng)PTS周期。

 ?、?0個(gè)PTS周期后,將產(chǎn)生1次END of PTS中斷。該中斷與啟動(dòng)斷共享1個(gè)中斷向量,因此,在該中斷服務(wù)程序中必須判斷本次中斷是啟動(dòng)中斷還是END-of-PTS中斷。區(qū)分的依據(jù)可以是CAPCOMP1 CON.6(CE位):若CE=0,模塊為捕獲方式,表明是啟動(dòng)中斷;反之,模塊已切換為比較方式,表明是END-of-PTS中斷。

  ③END-of-PTS中斷服務(wù)中,必須禁止捕獲/比較模塊,并清除相應(yīng)中斷是掛位。為繼續(xù)接收或發(fā)送后續(xù)的數(shù)據(jù)幀,在退出中斷前必須重新設(shè)置捕獲/比較模塊的方式以及PTSCB中的PTSCOUNT-PTSCON1、DATA等寄存器;必須重置PTSSEL的相應(yīng)位,允許相應(yīng)的PTS服務(wù)。

 ?、茉诎l(fā)送任何數(shù)據(jù)前,用于TXD的端口(P2.0)引腳必須初始化為“1”;向TXD腳寫“0”,即上當(dāng)于發(fā)起始位,整個(gè)數(shù)據(jù)的傳輸過程就開始了。

3 通信協(xié)議

  上位機(jī)(計(jì)算機(jī))與下位機(jī)(變頻器)之間每次通信均是7個(gè)字節(jié),每個(gè)字節(jié)8位。其通信協(xié)議格式如下所示:

STX ADDR CM1 CM2 DATA1 DATA2 BCC
報(bào)頭 地址 命令1 命令2 數(shù)據(jù)1 數(shù)據(jù)2 異或校驗(yàn)

  其中,報(bào)頭STX=02H,地址ADDR為下位機(jī)(變頻器)的編號(hào),BCC為各幀數(shù)據(jù)異或后的結(jié)果。下面結(jié)合不同的操作分別介紹其它各幀的含義。

3.1 讀數(shù)據(jù)

  根據(jù)變頻器參數(shù)的不同使用級(jí)別,將其參數(shù)分為F、P、E三級(jí)數(shù)據(jù):F組數(shù)據(jù)主要為用戶常用的一級(jí)參數(shù),如給定頻率等;P組數(shù)據(jù)為專業(yè)用戶或廠內(nèi)的整定數(shù)據(jù),如閉環(huán)PID參數(shù)等;E組數(shù)據(jù)為顯示及當(dāng)前狀態(tài)的臨時(shí)參數(shù)與數(shù)據(jù),如輸出頻率、輸出速度等。

  CM1:0FXH(X表示變頻器參數(shù)組號(hào))

  F0:讀取F組數(shù)據(jù)

  F1:讀取P組數(shù)據(jù)

  F2:讀取E組數(shù)據(jù)

  CM2:表示參數(shù)在組內(nèi)的代號(hào)

  DATA1、DATA2:建議寫入00

3.2 寫數(shù)據(jù)

  CM1:0EXH(X表示變頻器參數(shù)組號(hào))

  CM2:含義同讀數(shù)據(jù)

  DATA1:數(shù)據(jù)高位字節(jié)

  DATA2:數(shù)據(jù)低位字節(jié)

3.3 讀/寫控制

  CM1:0CCH

  CM2:控制字節(jié),其格式如下所示:

CON FEQ STA STOP FORE BACK UP DOWN

  各位含義如表1所列。

表1

CON 1控制字節(jié)有效 0控制字節(jié)無效
FEQ 1頻率值有效 0頻率值無效
STA 1啟動(dòng) 0狀態(tài)不變
STOP 12停機(jī) 0狀態(tài)不變
FORE 1正轉(zhuǎn) 0狀態(tài)不變
BACK 1反轉(zhuǎn) 0狀態(tài)不變
UP 1升速 0狀態(tài)不變
DOWN 1減速 0狀態(tài)不變

  當(dāng)CON=1且FEQ=1時(shí),DATA1、DAT2中的數(shù)據(jù)為運(yùn)行狀態(tài)控制的有效頻率值;否則,數(shù)據(jù)無效。

3.4 應(yīng)答

  下位機(jī)(如變頻器)接收到上位機(jī)(即PC機(jī))的完整的7個(gè)字節(jié)數(shù)據(jù)后,除上位機(jī)廣播通信外均應(yīng)作出應(yīng)答。如果異或校驗(yàn)無誤,其應(yīng)答格式同接收到的數(shù)據(jù)格式,只是DATA1、DATA2兩位為上位機(jī)要訪問參數(shù)碼的當(dāng)前值;若異或校驗(yàn)有誤,則發(fā)回出錯(cuò)幀:

  STR ADDR 0DH 0DH 0FFH 0FFH BCC。

4 小結(jié)

  變頻器通過采用80C196MC中的PTS SIO與計(jì)算機(jī)通信后,可在計(jì)算機(jī)上實(shí)現(xiàn)對(duì)變頻器的狀態(tài)顯示、參數(shù)修改、在線操作以及優(yōu)化控制等遠(yuǎn)程控制功能。這樣,現(xiàn)場(chǎng)的操作在控制室就可以完成了,可以最大限度地減輕操作人員的負(fù)擔(dān),改善工作環(huán)境,提高企業(yè)的自動(dòng)化水平。同時(shí)由于采用PTS方案,大大減少了CPU的開銷。

 



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉