- 相關(guān)推薦
80C196MC的外設(shè)事務(wù)服務(wù)器及其應(yīng)用
摘要:介紹利用專用于電機控制的16位單片機80C196MC的外設(shè)事務(wù)服務(wù)器PTS在變頻器中實現(xiàn)異步串行通信的方法。重點介紹PTS和普通中斷的差別及程序設(shè)計中應(yīng)注意的問題,同時給出通用變頻器通信協(xié)議及程序框圖。引言
變頻器在工業(yè)現(xiàn)場中應(yīng)用越來越廣泛。為了能實現(xiàn)整個自動化系統(tǒng)的協(xié)調(diào)控制,同時能監(jiān)視多臺變頻器的運行狀況,方便地對單一變頻器或多臺變頻器實行啟停、正反轉(zhuǎn)、升降速、參數(shù)設(shè)置等操作是非常必要的。本文介紹利用變頻器的主控芯片80C196MC內(nèi)的外設(shè)事務(wù)服務(wù)器PTS在變頻器中實現(xiàn)異步串行通信的方法。
1 關(guān)于外設(shè)事務(wù)服務(wù)器PTS
1.1 PTS和普通中斷
90C196MC高性能16位單片機內(nèi)部“嵌入”了各種以往被認為是“外圍設(shè)備”的電路。外設(shè)事務(wù)服務(wù)器PTS(Peripheral Transaction Server)就是一種被嵌入的“外設(shè)”。它是一種微代碼硬件中斷處理器,對中斷可提供一種類似于DMA(直接存儲器訪問)的響應(yīng),其CPU 的開銷比普通中斷系統(tǒng)(基于上是一種軟件中斷服務(wù)系統(tǒng))要少得多。為便于理解PTS的工作過程,圖1示出了PTS和普通中斷流程的主要差別。從圖1可以看出:
①PTS的執(zhí)行是靠CPU硬件微代碼來完成的;而普通中斷是靠中斷正常的程序,由PC入棧、現(xiàn)場保護、用戶服務(wù)程序、恢復(fù)現(xiàn)場與PC出棧來完成。顯然后者對CPU的開支要比前者多得多。
②通常中斷所做的是相同的工作,如不斷的連續(xù)A/D轉(zhuǎn)換、數(shù)據(jù)組的傳遞、通信的多字節(jié)傳遞等。PTS正利用這點,由一個程序啟動PTS,讓之在PTS計數(shù)器單元控制下不中斷正常程序靠硬件微代碼(即類似DMA的插入)來分時完成,在PTS計數(shù)單元完成后轉(zhuǎn)化為一次普通中斷,通過普通中斷進行一系列PTS完成后的結(jié)果處理。
③在80C196MC中,PTS優(yōu)先級總是比普通中斷優(yōu)先級要高,并且有近16個中斷源,對應(yīng)用16位的允許位和響應(yīng)位的字寄存器進行各自控制;同時,PTS和普通中斷是各位相對應(yīng)的,這樣使得PTS完成后轉(zhuǎn)化為一次普通中斷就變得很簡單。
④在80C196MC中,與PTS有關(guān)的控制有:總允許位PSW.10以及各中斷源的選擇位PTSSEL寄存器。其中PSW.10通過EPTS指令置位,允許PTS服務(wù)。與普通中斷有關(guān)的控制有:總允許位PSW.9以及中斷屏蔽寄存器INT-MASK。
1.2 PTS實現(xiàn)串行輸入/輸出模式
80C196MC沒有硬件通用異步收發(fā)器UART,但是利用專門的PTS模式可以方便且低軟件開銷地實現(xiàn)串行輸入和輸出功能。既可實現(xiàn)異步SIO(ASIO)功能,也可實現(xiàn)同步SIO(SSIO)功能。采用16MHz晶振,用PTS完成波特率為9600的半雙工串行輸入輸出時,CPU的的開銷只有4%左右。
PTS SIO模式占用2個控制塊,每個控制塊包含8個8位寄存器,如圖2所示。
這2個控制塊的地址不一定是連續(xù)的,但它們都應(yīng)在寄存器RAM區(qū)內(nèi),控制塊首地址都應(yīng)能被8整除。
2 程序設(shè)計
采用80C196MC異步串行輸入/輸出模式實現(xiàn)變頻器與計算機之間的通信,其初始化程序主要包括P2端口和定時器的初始化以及PTS SIO模式初始化等。
首先將接收端的CAPCOMP1設(shè)置為下降沿捕獲方式。當(dāng)CAPCOMP1捕捉到起始位的前沿后,進入接收中斷服務(wù)子程序,其程序流程如圖3所示。
下面介紹程序中應(yīng)注意的要點:
①接收程序中,采用EPA CAPCOMP1捕獲/比較模塊。它首先利用其捕獲功能造成1次普通中斷,而不是1個PTS周期。在這次啟動中斷中,把CAPCOMP1模塊切換成比較方式,啟動PTS周期。
②10個PTS周期后,將產(chǎn)生1次END of PTS中斷。該中斷與啟動斷共享1個中斷向量,因此,在該中斷服務(wù)程序中必須判斷本次中斷是啟動中斷還是END-of-PTS中斷。區(qū)分的依據(jù)可以是CAPCOMP1 CON.6(CE位):若CE=0,模塊為捕獲方式,表明是啟動中斷;反之,模塊已切換為比較方式,表明是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ù)。
④在發(fā)送任何數(shù)據(jù)前,用于TXD的端口(P2.0)引腳必須初始化為“1”;向TXD腳寫“0”,即上當(dāng)于發(fā)起始位,整個數(shù)據(jù)的傳輸過程就開始了。
3 通信協(xié)議
上位機(計算機)與下位機(變頻器)之間每次通信均是7個字節(jié),每個字節(jié)8位。其通信協(xié)議格式如下所示:
STXADDRCM1CM2DATA1DATA2BCC報頭地址命令1命令2數(shù)據(jù)1數(shù)據(jù)2異或校驗其中,報頭STX=02H,地址ADDR為下位機(變頻器)的編號,BCC為各幀數(shù)據(jù)異或后的結(jié)果。下面結(jié)合不同的操作分別介紹其它各幀的含義。
3.1 讀數(shù)據(jù)
根據(jù)變頻器參數(shù)的不同使用級別,將其參數(shù)分為F、P、E三級數(shù)據(jù):F組數(shù)據(jù)主要為用戶常用的一級參數(shù),如給定頻率等;P組數(shù)據(jù)為專業(yè)用戶或廠內(nèi)的整定數(shù)據(jù),如閉環(huán)PID參數(shù)等;E組數(shù)據(jù)為顯示及當(dāng)前狀態(tài)的臨時參數(shù)與數(shù)據(jù),如輸出頻率、輸出速度等。
CM1:0FXH(X表示變頻器參數(shù)組號)
F0:讀取F組數(shù)據(jù)
【80C196MC的外設(shè)事務(wù)服務(wù)器及其應(yīng)用】相關(guān)文章:
ADμC812的串行外設(shè)接口(SPI)及其應(yīng)用03-18
服務(wù)器集群技術(shù)及其在視頻網(wǎng)絡(luò)中的應(yīng)用03-18
80C196MC在中頻感應(yīng)電源中的應(yīng)用03-18
矩陣的分解及其應(yīng)用03-07
EDA技術(shù)及其應(yīng)用03-19
鈦合金的特性及其應(yīng)用03-01
矩陣函數(shù)的性質(zhì)及其應(yīng)用03-07
矩陣對角化及其應(yīng)用03-07
矩陣的廣義逆及其應(yīng)用03-07