国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于UART設(shè)備的現(xiàn)場(chǎng)總線通信協(xié)議*

2012-07-25 03:18:46王清珍鄔寶寅
微處理機(jī) 2012年4期
關(guān)鍵詞:發(fā)送數(shù)據(jù)令牌指令

王清珍,鄔寶寅

(1.鄭州科技學(xué)院信息科學(xué)與工程系,鄭州450064;2.鄭州科技學(xué)院機(jī)械工程系,鄭州450064)

1 基于UART設(shè)備的現(xiàn)場(chǎng)總線應(yīng)用分析

現(xiàn)代工業(yè)現(xiàn)場(chǎng)控制中,經(jīng)常采用現(xiàn)場(chǎng)總線結(jié)構(gòu)[1],將各個(gè)工業(yè)現(xiàn)場(chǎng)設(shè)備連接起來(lái),實(shí)現(xiàn)設(shè)備之間的信息交換。單片機(jī)等帶有UART結(jié)構(gòu)的芯片可以用來(lái)制造工業(yè)現(xiàn)場(chǎng)控制器、智能儀表等設(shè)備,這些設(shè)備可以通過單片機(jī)自帶的UART結(jié)構(gòu)[2]來(lái)搭建現(xiàn)場(chǎng)總線,實(shí)現(xiàn)相互通信。UART設(shè)備廣泛存在于單片機(jī)等可編程設(shè)備中,這種設(shè)備傳輸簡(jiǎn)單,具有較高的數(shù)據(jù)傳輸正確性和準(zhǔn)確性,可以實(shí)現(xiàn)芯片之間半雙工、雙工異步通信。但僅靠芯片電平的UART設(shè)備傳輸距離較近,且只能實(shí)現(xiàn)主機(jī)、從機(jī)之間的通信,不能實(shí)現(xiàn)任意兩個(gè)設(shè)備之間的通信,不完全符合現(xiàn)場(chǎng)總線之間的要求。

為實(shí)現(xiàn)現(xiàn)場(chǎng)總線功能,需要設(shè)計(jì)一套通信協(xié)議,實(shí)現(xiàn)任意兩個(gè)UART設(shè)備之間的通信。并且需要采用RS485型電氣接口,提高通信距離。RS485接口是一種工業(yè)電氣標(biāo)準(zhǔn),采用半雙工方式通訊,可以實(shí)現(xiàn)較遠(yuǎn)距離通信和較高的傳輸速度,抗干擾能力強(qiáng)。該設(shè)計(jì)將UART設(shè)備與RS485接口結(jié)合起來(lái),借助相應(yīng)的通信軟件,可以構(gòu)建一種現(xiàn)場(chǎng)總線,用于工業(yè)現(xiàn)場(chǎng)設(shè)備的通訊。

2 硬件結(jié)構(gòu)設(shè)計(jì)

在工業(yè)現(xiàn)場(chǎng)的可編程控制系統(tǒng)中,實(shí)現(xiàn)無(wú)主機(jī)的多機(jī)通信,每一個(gè)模塊本身在系統(tǒng)中既是一個(gè)主控模塊,相對(duì)于另一個(gè)模塊來(lái)說(shuō)又是從模塊。模塊與模塊之間采用RS485工業(yè)現(xiàn)場(chǎng)總線通信[3],因此在各模塊的串行通信端口必須增加電平轉(zhuǎn)換器。每個(gè)模塊采用以單片機(jī)為中心構(gòu)成的嵌入式控制模塊,通過串口進(jìn)行信息傳輸,通過接口芯片MAX487掛載在RS485現(xiàn)場(chǎng)總線上。各模塊通過本文設(shè)計(jì)的協(xié)議在RS485總線上進(jìn)行穩(wěn)定的數(shù)據(jù)傳輸,在整個(gè)總線上最多可以接入255個(gè)模塊。系統(tǒng)的總線硬件結(jié)構(gòu)如圖1所示。

圖1 總線硬件結(jié)構(gòu)

3 通信協(xié)議軟件設(shè)計(jì)

該通信協(xié)議的設(shè)計(jì)借助了令牌環(huán)[4]原理。掛載在總線上的每一個(gè)設(shè)備,都有唯一的一個(gè)地址,并存儲(chǔ)有下位設(shè)備的地址??偩€上的設(shè)備常態(tài)下處于從控狀態(tài),可以接收。擁有令牌標(biāo)志的設(shè)備處于主控狀態(tài),可以向需要傳送數(shù)據(jù)的目標(biāo)設(shè)備發(fā)送數(shù)據(jù),完畢之后將令牌標(biāo)志傳送給下位設(shè)備。這樣可以保證在任一時(shí)刻只有一個(gè)設(shè)備具有數(shù)據(jù)發(fā)送權(quán),而數(shù)據(jù)發(fā)送權(quán)在總線上所有的設(shè)備之間循環(huán),使每一個(gè)都有向目標(biāo)設(shè)備發(fā)送數(shù)據(jù)的機(jī)會(huì)。

信息傳輸過程中需要設(shè)置一系列的變量和常數(shù)。相互通訊的設(shè)備之間所傳送的內(nèi)容有指令和數(shù)據(jù)兩種情況:所傳輸?shù)氖侵噶顒t第9位為1,是數(shù)據(jù)則第9位為0。傳輸指令和標(biāo)志位的內(nèi)容如表1、表2所示。通信軟件分從控模式和主控模式兩種情況。

表1 控制字與應(yīng)答字分配表

表2 標(biāo)志位含義解析表

3.1 從控模式

從控模式下設(shè)備處于接收狀態(tài),可以通過UART中斷運(yùn)行程序,對(duì)接收到的數(shù)據(jù)做出一系列判斷。接收到的內(nèi)容有兩種可能,指令或數(shù)據(jù),通過串行數(shù)據(jù)的第九位進(jìn)行分辨,第九位為1表示指令,為0表示數(shù)據(jù)。

程序流程圖如圖2所示,接收到的內(nèi)容若為指令,通過識(shí)別判斷指令的內(nèi)容,結(jié)合相應(yīng)標(biāo)志位做出動(dòng)作。在初始狀態(tài)下,作為數(shù)據(jù)接收方,若從控模式設(shè)備接收到尋址指令,且指令地址與本地地址相一致,則將地址匹配標(biāo)志位置位;若接收到數(shù)據(jù)開始發(fā)送指令,且地址已經(jīng)匹配,則將sm2位清零,數(shù)據(jù)接收緩存區(qū)初始化,做好數(shù)據(jù)接收準(zhǔn)備;若接收到數(shù)據(jù)傳送結(jié)束指令,則將sm2位置位,地址匹配標(biāo)志位復(fù)位,退出接收狀態(tài)。若接收到授令牌指令,且地址已經(jīng)匹配,則將令牌標(biāo)志置位,開始運(yùn)行主控模式下的數(shù)據(jù)發(fā)送操作。若接收的內(nèi)容是數(shù)據(jù),且數(shù)據(jù)允許接收位sm2為0,則將數(shù)據(jù)存入接收緩存區(qū)。

圖2 從控模式程序流程圖

從控模式設(shè)備每接收到一次有效指令,都要向主控模式設(shè)備做出相應(yīng)應(yīng)答,而總線上每次只有唯一的從控模式設(shè)備,可以作出應(yīng)答。在接收和應(yīng)答相切換時(shí)要轉(zhuǎn)換MAX487芯片的收發(fā)狀態(tài)。每一次接收都由中斷觸發(fā),發(fā)送應(yīng)答由中斷關(guān)閉,可以節(jié)省CPU資源。

3.2 主控模式

當(dāng)設(shè)備接收到有效的授令牌指令之后,轉(zhuǎn)為主控模式,并運(yùn)行相關(guān)程序段。程序流程圖如圖3所示。若主控設(shè)備有數(shù)據(jù)需要向目標(biāo)設(shè)備發(fā)送,則按程序流程圖所示過程,依次發(fā)送目標(biāo)設(shè)備地址尋址指令,發(fā)送數(shù)據(jù)開始傳送指令,連續(xù)發(fā)送數(shù)據(jù),最后發(fā)送數(shù)據(jù)傳送完畢指令;若主控設(shè)備沒有數(shù)據(jù)需要發(fā)送或數(shù)據(jù)發(fā)送完畢,便需要將令牌標(biāo)志傳給下位機(jī),依次發(fā)送下位機(jī)地址尋址指令和授令牌指令,退出主控模式。

圖3 主控模式

主控設(shè)備每次發(fā)送指令之后,都需要等待相應(yīng)的從控設(shè)備發(fā)出正確應(yīng)答,才能開始下一條指令的發(fā)送。若在規(guī)定時(shí)間內(nèi)沒有收到正確的應(yīng)答信號(hào),則重復(fù)發(fā)送指令;當(dāng)重復(fù)發(fā)送指令一定次數(shù)后還沒有收到正確的應(yīng)答信號(hào),則認(rèn)為目標(biāo)設(shè)備不存在,將相應(yīng)的錯(cuò)誤標(biāo)志位置位。

為了簡(jiǎn)化程序結(jié)構(gòu),主控模式運(yùn)行中UART收發(fā)采用查詢方式。

4 結(jié)束語(yǔ)

整個(gè)系統(tǒng)由若干個(gè)模塊組成,模塊之間通過RS485電氣接口相連。在每個(gè)模塊上設(shè)計(jì)人機(jī)操作界面,構(gòu)建了系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù),編寫了各個(gè)模塊的數(shù)據(jù)采集和處理程序[5],建立了模塊與模塊之間的硬件電路,編寫調(diào)試了各部分的軟件代碼,提供了實(shí)時(shí)數(shù)據(jù)顯示。實(shí)現(xiàn)了各模塊數(shù)據(jù)的自動(dòng)采集功能,加工處理后的數(shù)據(jù)能自動(dòng)存入后臺(tái)數(shù)據(jù)庫(kù)中。設(shè)計(jì)的無(wú)主機(jī)多機(jī)通信模型最多可以連接255個(gè)現(xiàn)場(chǎng)可編程控制模塊,可以很方便地實(shí)現(xiàn)雙向通信,在通訊協(xié)議的支持下系統(tǒng)能自動(dòng)識(shí)別各個(gè)功能模塊的功能。本系統(tǒng)結(jié)構(gòu)較簡(jiǎn)單,功能較完善,具有一定的實(shí)用價(jià)值,可以滿足集管分控可編程控制器的通信要求。

[1] 潘世永,鄭萍,等.集散控制系統(tǒng)(DCS)的發(fā)展及展望[J].自動(dòng)化與儀器儀表,2003(4):50-53.

[2] 王清珍.單片機(jī)原理及接口技術(shù)[M].大連:大連理工大學(xué)出版社,2009.

[3] 徐和飛,牛秦洲,等.基于MODBUS協(xié)議的開關(guān)量控制模塊設(shè)計(jì)[J].自動(dòng)化與儀表,2009(10):24-28.

[4] 季燏..基于邏輯令牌環(huán)的容錯(cuò)協(xié)議的研究與實(shí)現(xiàn)[J].學(xué)位論文,2007.

[5] 徐應(yīng)躍,吳愛國(guó),等.現(xiàn)場(chǎng)總線MAC層的分析[J].化工自化及儀表,2010(2):20-23.

猜你喜歡
發(fā)送數(shù)據(jù)令牌指令
移動(dòng)自組網(wǎng)中MAC層協(xié)議研究
聽我指令:大催眠術(shù)
稱金塊
基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
動(dòng)態(tài)令牌分配的TCSN多級(jí)令牌桶流量監(jiān)管算法
使用IPSec安全傳輸數(shù)據(jù)
新干县| 琼中| 浦江县| 汝州市| 洞头县| 海淀区| 贺兰县| 美姑县| 灌云县| 阆中市| 巴彦县| 井研县| 和林格尔县| 巴林左旗| 博罗县| 东乡族自治县| 洪雅县| 仲巴县| 时尚| 抚松县| 常宁市| 陆川县| 竹溪县| 珲春市| 崇明县| 扎兰屯市| 泰顺县| 巨鹿县| 普格县| 贵溪市| 聂荣县| 大冶市| 和田县| 饶平县| 丰原市| 抚顺县| 互助| 龙川县| 漳州市| 河南省| 兴义市|