精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
基于80C166單片機PEC服務的PROFIBUS-FDL從站協(xié)議實現(xiàn)
[1] [2]  下一頁
基于80C166單片機PEC服務的PROFIBUS-FDL從站協(xié)議實現(xiàn)
 更新時間:2008-8-17 16:31:48  點擊數(shù):10
【字體: 字體顏色

摘要:在詳細分析西門子80C166單片機PEC服務工作機制和PROFIBUS-FDL幀格式的基礎上,提出了基于該種單片機PEC服務機制的PROFIBUS-FDL從站協(xié)議的實現(xiàn)方法,并在實際工作中得到成功應用。

    關鍵詞:80C166 PEC服務 PROFIBUS-FDL

當前工業(yè)設備制造技術正向高性能、專用化、分布式、網絡化方向發(fā)展。以前,大量使用PLC實現(xiàn)的控制系統(tǒng),實踐證明雖然安全可靠,但由于PLC本身的技術原因,很難達到更快速的實時控制要求它們正被高性能的嵌入式專用控制器替代。這種專用控制器的設計,可以進一步提高設備的控制性能;引入現(xiàn)場總線技術,保證專用控制器的系統(tǒng)可集成性,以適應當前分布式、網絡化的應用趨勢。

本文是在研制棒材生產線飛剪的專用控制器時涉及的一個子課題。為保證該控制器能與現(xiàn)有PLC網連接以及與遠程操作站通信,在幾乎不增加硬件的基礎上,利用核心CPU——西門子80C166所具有的一個類似DMA的功能高效率地實現(xiàn)PROFIBUS-FDL從站協(xié)議。

1 西門子80C166單片機

80C166單片機是西門子C166系列16位嵌入式微控制器的第一代產品。其體系結構如圖1所示。它結合RISC處理器的優(yōu)點,克服了CISC處理器在嵌入式應用中的瓶頸;在25MHz時鐘頻率下,可達到12.5MIPS,幾乎所有的指令執(zhí)行時間小于80ns;在指令處理上,采用四級指令流水線管道結構;在存儲管理上,統(tǒng)一線性地址空間可達256KB,具有段代碼、頁數(shù)據(jù)式管理機制;采用寄存器池,上下文切換時間只要80ns;16位乘法400ns,32位除法800ns,中斷響應時間最慢400ns;外部事件控制器PEC服務具有類似DMA的功能,可實現(xiàn)存儲器與外設之間的高速數(shù)據(jù)傳輸;豐富的在片外設:1KB RAM、10路A/D、76路I/O、7個定時器/計數(shù)器、16個比較/捕獲單元、2個串行通信接口、在片的WATCHDOG等。

圖1 西門子80C166體系結構

2 80C166的PEC服務

2.1 80C166的PEC服務機制

PEC是外部事件控制器的英文縮寫。PEC服務是80C166提供的一種特殊數(shù)據(jù)傳輸機制。其目的是在原有的中斷控制器基礎上,用較小的硬件代價、盡可能少占用處理機周期實現(xiàn)內存與外部設備的快速數(shù)據(jù)交換類似DMA,但無需專用的DMA控制器。80C166有8路PEC服務通道。用PEC服務進行一次數(shù)據(jù)傳輸,僅占用處理機一個機器周期20MHz時100ns,且不影響當前程序的執(zhí)行。

2.2 PEC服務的工作過程

通常,當普通中斷事件發(fā)生時,系統(tǒng)將保存當前CPU狀態(tài)PSW和程序的地址;然后,根據(jù)不同的中斷源,進行上下文切換,裝載相應的中斷矢量,執(zhí)行相應的中斷服務程序;執(zhí)行完后,恢復被中斷程序的上下文,繼續(xù)執(zhí)行被中斷程序。

對于某一PEC服務,它總是與一具體中斷源、中斷矢量或中斷服務相聯(lián)系。在80C166中,當一個中斷的中斷優(yōu)先級為最高級14或15且定義了與之相關聯(lián)的PEC服務通道時,該中斷就具有PEC服務功能。這時,當該中斷請求發(fā)生時,將不觸發(fā)中斷服務程序的執(zhí)行,而是觸發(fā)PEC服務。當PEC服務經過設定的若干次的外部事件觸發(fā)后,再觸發(fā)執(zhí)行相應的中斷服務程序(一個普通中斷過程)。

    如圖2所示。一次PEC服務的工作過程是由PEC控制寄存器定義的,其中計數(shù)位域(8位傳送計數(shù)器)COUNT定義了PEC服務的數(shù)據(jù)傳輸次數(shù);源指針、目的指針指明具體的數(shù)據(jù)傳輸來源和目的;PEC服務的數(shù)據(jù)傳輸過程完全由硬件執(zhí)行:當中斷請求發(fā)生時,由硬件將源指針所指單元的內容傳給目的指針所指的單元,然后由PEC控制寄存器相應定義位控制是源指針還是目的指針增加1或2,同時COUNT值減1;當多次中斷請求使COUNT減為0時,PEC服務完成,觸發(fā)與之關聯(lián)的中斷服務程序。

2.3 PEC服務應用優(yōu)勢

以串口接收一幀16字節(jié)的數(shù)據(jù)為例。若采用傳統(tǒng)的串口接收方式,每接收到一字節(jié),產生一個中斷;在中斷服務程序中,要將它從串口接收緩沖器中取出,順序放到幀接收緩沖區(qū)相應單元中;當接收滿16字節(jié)后,進行幀處理。

如果采用PEC服務的方式,只要事先定義好PEC通道就可以了。首先,定義串口接收中斷優(yōu)先級為14或15以及與之相關聯(lián)的PEC通道。即定義相應PEC通道控制寄存器為:COUNT為16字節(jié)傳輸,源指針為串口接收緩沖器,目的指針為幀接收緩沖區(qū)首址且每次傳輸完成后,目的指針加1。這樣,串口每接收到一字節(jié),將觸發(fā)一次PEC服務,由硬件將數(shù)據(jù)從串口接收緩沖器中取出,順序放到幀接收緩沖區(qū)相應單元中,但當前執(zhí)行的程序并不被中斷;當16字節(jié)完全接收完成后,觸發(fā)串口接收中斷服務程序,進行幀的處理。

與傳統(tǒng)的串口接收方式相比較,PEC服務方式在進行數(shù)據(jù)傳輸時不中斷當前程序的執(zhí)行,因此節(jié)省了大量的上下文切換時間,處理機效率得到大大提高。

下面討論采用80C166的PEC服務實現(xiàn)PROFIBUS-FDL從站協(xié)議的方法。

3 PROFIBUS-FDL幀結構分析

3.1 PROFIBUS-FDL幀結構

PROFIBUS幀的格式有多種形式,但對于從站來說,只要處理三種幀即可。

.無數(shù)據(jù)且長度固定的幀:

.帶數(shù)據(jù)域且長度固定的幀:

. 帶數(shù)據(jù)域且長度可變的幀:



    其中,各字段說明如下:

SD1:無數(shù)據(jù)幀的開始定界符,#10H;

SD2:可變長度幀的開始定界符,#68H;

SD3:固定長度幀的開始定界符,#A2H;

ED:結束定界符,#16H;

LE與LEr:LE與LEr相同,都表示長度占一個字節(jié),它是DA+SA+FC+DATA-UNIT的字節(jié)數(shù)總和;

DA與SA:DA目的站地址與SA源站地址各占一個字節(jié);

FCS:校驗段,占一個字節(jié),它采用不計進位的求和運算得到校驗碼。校驗域為DA+SA+FC+DATA-UNIT;

FC:幀控制字字段,占一個字節(jié);

SYN:同步字段,至少33空閑位(邏輯電平1),但僅在請求幀及令牌幀前出現(xiàn),不允許在字符之間出現(xiàn)。

3.2 PROFIBUS幀結構的特點

從上面的幀格式可以看出幀的長度不固定。發(fā)送時,幀的長度是已知的;但接收時,幀的長度是未知的。因此,要提高接收效率,只能采用分段方式接收,隨時解析和保存關鍵信息,并確定隨后接收的字節(jié)數(shù)。

4 PROFIBUS-FDL從站協(xié)議的PEC服務實現(xiàn)

PROFIBUS-FDL從站的數(shù)據(jù)接收及應答過程分三個階段完成:第一階段,幀的完整接收;第二階段,根據(jù)接收到的FC幀控制字字段,判斷主站正在進行怎樣的數(shù)據(jù)請求;第三階段,從站組織應答幀,啟動幀的發(fā)送過程。

第二階段的幀控制字處理請參考PROFIBUS標準的相關內容。對于第三階段的組織和發(fā)送應答幀,由于數(shù)據(jù)長度和內容已知,只要定義好串口發(fā)送中斷/服務,定義好相應的PEC通道:源地址為發(fā)送數(shù)據(jù)緩沖區(qū)首址+1、目的地址為串口發(fā)送緩沖器、COUNT域為發(fā)送字節(jié)數(shù)-1,將所要發(fā)送數(shù)據(jù)的第一個字節(jié)寫入串口發(fā)送緩沖器,即可觸發(fā)串口發(fā)送相關的PEC服務;當COUNT減為0時,觸發(fā)串口發(fā)送中斷服務子程序,完成串口數(shù)據(jù)發(fā)送過程。由于該過程實現(xiàn)簡單,不作詳細討論。這里主要討論第一階段的幀完整接收實現(xiàn)過程。

從上面的幀結構分析可見,幀的長度是不固定的。因此,為提高接收效率,應用PEC服務分三步進行數(shù)據(jù)的批量接收。

4.1 第一步:幀頭接收

首先,初始化時,定義串口接收PEC服務為連續(xù)接收三字節(jié),用于接收幀的前三字節(jié)。

由第一個字符SDx(x=1,2,3)判斷幀類型;對于不帶數(shù)據(jù)固定長度幀和帶數(shù)據(jù)固定長度幀接下來的兩個字符是DA、SA,判斷DA是否為本機地址;而對于帶數(shù)據(jù)長度可變幀,接下來的兩個字符是LE、LEr,判斷其是否相等。

若以上判斷都成立,則需定義下一次PEC服務的接收字符數(shù):對于固定長度幀,定義PEC批量接收三字節(jié)數(shù)據(jù),并保存DA、SA;對于可變長度幀,定義PEC服務接收四字節(jié)數(shù)據(jù),轉第二步;

若LE≠LEr或DA目的地址非本站地址,則重回到初始狀態(tài),進行幀頭接收。

4.2 第二步:幀控制字接收

由于主站幀的連續(xù)發(fā)送,會再次觸發(fā)PEC服務。由串口接收PEC服務連續(xù)接收三或四字節(jié)后,處理如下:

.不帶數(shù)據(jù)固定長度幀,接收三字節(jié),分別為FC、FCS、ED。對FCS和ED分別完成累加和校驗與幀結束判斷后,將幀控制字FC保存,轉去執(zhí)行幀控制字處理。

.帶數(shù)據(jù)固定長度幀 接收三字節(jié)分別為FC和數(shù)據(jù)單元的前兩個字節(jié),保存FC,定義PEC服務接收后八個數(shù)據(jù)字節(jié),轉第三步。

.帶數(shù)據(jù)可變長度幀,接收了四字節(jié),分別為SD、DA、SA、FC。對SD再進行一次判斷,之后判斷DA是否為本機地址,保存DA、SA、FC,定義PEC服務接收余下的數(shù)據(jù)字節(jié)長度由LE確定,轉第三步。

4.3 第三步:幀數(shù)據(jù)接收

當串口接收PEC服務連續(xù)接收八或更多的字節(jié)后,處理如下:

.帶數(shù)據(jù)固定長度幀,接收八個字節(jié),分別為余下的六字節(jié)數(shù)據(jù)和FCS、ED。在累加和校驗與幀結束判斷完畢后,轉去執(zhí)行幀控制字處理。

.帶數(shù)據(jù)長度可變幀,接收了DATA-UNIT+2個字節(jié),分別DATA-UNIT個數(shù)據(jù)字節(jié)和FCS、ED。在累加和校驗與幀結束判斷完畢后,進行協(xié)議要求的目的地址和原地址的地址擴展判斷和保存,轉去執(zhí)行幀控制字處理。

4.4 串口接收中斷服務子程序

以上三步都由串口接收中斷服務子程序負責完成。每一步對應不同的處理狀態(tài)。為提高程序的執(zhí)行效率,用有限狀態(tài)機實現(xiàn)。以1、2、3分別表示上述幀接收三個步驟,4表示幀控制字處理狀態(tài),其狀態(tài)轉換如圖3。

采用這種協(xié)議實現(xiàn)方法,在最近研制的棒材生產線的飛剪控制器中運行效果良好。


 

  • 上一篇: 80C196KC-ADMC401接口電路設計及其應用
  • 下一篇: 基于PIC單片機的便攜式測試記錄儀設計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    沈丘县| 凤庆县| 信丰县| 濉溪县| 辽宁省| 嘉鱼县| 耒阳市| 太仆寺旗| 泽库县| 涡阳县| 麻江县| 图们市| 丹凤县| 邓州市| 仁寿县| 合肥市| 吉首市| 凤翔县| 鲜城| 宁国市| 陆良县| 罗平县| 精河县| 子洲县| 望城县| 石泉县| 噶尔县| 保山市| 武乡县| 二手房| 舞钢市| 肥城市| 沛县| 东乌珠穆沁旗| 织金县| 江孜县| 阿鲁科尔沁旗| 蓬溪县| 富顺县| 新邵县| 城固县|