- 相關(guān)推薦
基于80C166單片機PEC服務(wù)的PROFIBUS-FDL從站協(xié)議實現(xiàn)
摘要:在詳細(xì)分析西門子80C166單片機PEC服務(wù)工作機制和PROFIBUS-FDL幀格式的基礎(chǔ)上,提出了基于該種單片機PEC服務(wù)機制的PROFIBUS-FDL從站協(xié)議的實現(xiàn)方法,并在實際工作中得到成功應(yīng)用。當(dāng)前工業(yè)設(shè)備制造技術(shù)正向高性能、專用化、分布式、網(wǎng)絡(luò)化方向發(fā)展。以前,大量使用PLC實現(xiàn)的控制系統(tǒng),實踐證明雖然安全可靠,但由于PLC本身的技術(shù)原因,很難達(dá)到更快速的實時控制要求?它們正被高性能的嵌入式專用控制器替代。這種專用控制器的設(shè)計,可以進一步提高設(shè)備的控制性能;引入現(xiàn)場總線技術(shù),保證專用控制器的系統(tǒng)可集成性,以適應(yīng)當(dāng)前分布式、網(wǎng)絡(luò)化的應(yīng)用趨勢。
本文是在研制棒材生產(chǎn)線飛剪的專用控制器時涉及的一個子課題。為保證該控制器能與現(xiàn)有PLC網(wǎng)連接以及與遠(yuǎn)程操作站通信,在幾乎不增加硬件的基礎(chǔ)上,利用核心CPU——西門子80C166所具有的一個類似DMA的功能高效率地實現(xiàn)PROFIBUS-FDL從站協(xié)議。
1 西門子80C166單片機
80C166單片機是西門子C166系列16位嵌入式微控制器的第一代產(chǎn)品。其體系結(jié)構(gòu)如圖1所示。它結(jié)合RISC處理器的優(yōu)點,克服了CISC處理器在嵌入式應(yīng)用中的瓶頸;在25MHz時鐘頻率下,可達(dá)到12.5MIPS,幾乎所有的指令執(zhí)行時間小于80ns;在指令處理上,采用四級指令流水線管道結(jié)構(gòu);在存儲管理上,統(tǒng)一線性地址空間可達(dá)256KB,具有段?代碼?、頁?數(shù)據(jù)?式管理機制;采用寄存器池,上下文切換時間只要80ns;16位乘法400ns,32位除法800ns,中斷響應(yīng)時間最慢400ns;外部事件控制器PEC服務(wù)具有類似DMA的功能,可實現(xiàn)存儲器與外設(shè)之間的高速數(shù)據(jù)傳輸;豐富的在片外設(shè):1KB RAM、10路A/D、76路I/O、7個定時器/計數(shù)器、16個比較/捕獲單元、2個串行通信接口、在片的WATCHDOG等。
圖1 西門子80C166體系結(jié)構(gòu)
2 80C166的PEC服務(wù)
2.1 80C166的PEC服務(wù)機制
PEC是外部事件控制器的英文縮寫。PEC服務(wù)是80C166提供的一種特殊數(shù)據(jù)傳輸機制。其目的是在原有的中斷控制器基礎(chǔ)上,用較小的硬件代價、盡可能少占用處理機周期實現(xiàn)內(nèi)存與外部設(shè)備的快速數(shù)據(jù)交換?類似DMA,但無需專用的DMA控制器?。80C166有8路PEC服務(wù)通道。用PEC服務(wù)進行一次數(shù)據(jù)傳輸,僅占用處理機一個機器周期?20MHz時100ns,且不影響當(dāng)前程序的執(zhí)行。
2.2 PEC服務(wù)的工作過程
通常,當(dāng)普通中斷事件發(fā)生時,系統(tǒng)將保存當(dāng)前CPU狀態(tài)PSW和程序的地址;然后,根據(jù)不同的中斷源,進行上下文切換,裝載相應(yīng)的中斷矢量,執(zhí)行相應(yīng)的中斷服務(wù)程序;執(zhí)行完后,恢復(fù)被中斷程序的上下文,繼續(xù)執(zhí)行被中斷程序。
對于某一PEC服務(wù),它總是與一具體中斷源、中斷矢量或中斷服務(wù)相聯(lián)系。在80C166中,當(dāng)一個中斷的中斷優(yōu)先級為最高級14或15且定義了與之相關(guān)聯(lián)的PEC服務(wù)通道時,該中斷就具有PEC服務(wù)功能。這時,當(dāng)該中斷請求發(fā)生時,將不觸發(fā)中斷服務(wù)程序的執(zhí)行,而是觸發(fā)PEC服務(wù)。當(dāng)PEC服務(wù)經(jīng)過設(shè)定的若干次的外部事件觸發(fā)后,再觸發(fā)執(zhí)行相應(yīng)的中斷服務(wù)程序(一個普通中斷過程)。
如圖2所示。一次PEC服務(wù)的工作過程是由PEC控制寄存器定義的,其中計數(shù)位域(8位傳送計數(shù)器)COUNT定義了PEC服務(wù)的數(shù)據(jù)傳輸次數(shù);源指針、目的指針指明具體的數(shù)據(jù)傳輸來源和目的;PEC服務(wù)的數(shù)據(jù)傳輸過程完全由硬件執(zhí)行:當(dāng)中斷請求發(fā)生時,由硬件將源指針?biāo)竼卧膬?nèi)容傳給目的指針?biāo)傅膯卧,然后由PEC控制寄存器相?yīng)定義位控制是源指針還是目的指針增加1或2,同時COUNT值減1;當(dāng)多次中斷請求使COUNT減為0時,PEC服務(wù)完成,觸發(fā)與之關(guān)聯(lián)的中斷服務(wù)程序。
2.3 PEC服務(wù)應(yīng)用優(yōu)勢
以串口接收一幀16字節(jié)的數(shù)據(jù)為例。若采用傳統(tǒng)的串口接收方式,每接收到一字節(jié),產(chǎn)生一個中斷;在中斷服務(wù)程序中,要將它從串口接收緩沖器中取出,順序放到幀接收緩沖區(qū)相應(yīng)單元中;當(dāng)接收滿16字節(jié)后,進行幀處理。
如果采用PEC服務(wù)的方式,只要事先定義好PEC通道就可以了。首先,定義串口接收中斷優(yōu)先級為14或15以及與之相關(guān)聯(lián)的PEC通道。即定義相應(yīng)PEC通道控制寄存器為:COUNT為16字節(jié)傳輸,源指針為串口接收緩沖器,目的指針為幀接收緩沖區(qū)首址且每次傳輸完成后,目的指針加1。這樣,串口每接收到一字節(jié),將觸發(fā)一次PEC服務(wù),由硬件將數(shù)據(jù)從串口接收緩沖器中取出,順序放到幀接收緩沖區(qū)相應(yīng)單元中,但當(dāng)前執(zhí)行的程序并不被中斷;當(dāng)16字節(jié)完全接收完成后,觸發(fā)串口接收中斷服務(wù)程序,進行幀的處理。
與傳統(tǒng)的串口接收方式相比較,PEC服務(wù)方式在進行數(shù)據(jù)傳輸時不中斷當(dāng)前程序的執(zhí)行,因此節(jié)省了大量的上下文切換時間,處理機效率得到大大提高。
下面討論采用80C166的PEC服務(wù)實現(xiàn)PROFIBUS-FDL從站協(xié)議的方法。
3 PROFIBUS-FDL幀結(jié)構(gòu)分析
3.1 PROFIBUS-FDL幀結(jié)構(gòu)
PROFIBUS幀的格式有多種形式,但對于從站來說,只要處理三種幀即可。
.無數(shù)據(jù)且長度固定的幀:
.帶數(shù)據(jù)域且長度固定的幀:
【基于80C166單片機PEC服務(wù)的PROFIBUS-FDL從站協(xié)議實現(xiàn)】相關(guān)文章:
基于minigui的網(wǎng)真機界面的實現(xiàn)08-05
基于Gene8310的嵌入式家庭服務(wù)機器人05-11
基于合同管理的工程量清單編制06-08
社區(qū)衛(wèi)生服務(wù)站預(yù)防保健工作探析08-19
試析基于勝任素質(zhì)的薪酬模式構(gòu)建01-03
基于戰(zhàn)略治理的企業(yè)環(huán)境風(fēng)險研究08-28
都市頻道制作網(wǎng)的設(shè)計與實現(xiàn)05-29
基于軟交換的固網(wǎng)智能化05-11