亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        單片機(jī)的高效串行通信研究

        2010-06-22 08:18:42宋兵躍吳軍輝黃斌
        關(guān)鍵詞:接收數(shù)據(jù)通信協(xié)議字節(jié)

        宋兵躍,吳軍輝,黃斌

        (1.同濟(jì)大學(xué) 現(xiàn)代農(nóng)業(yè)科學(xué)與工程研究院; 2.同濟(jì)大學(xué) 教育部設(shè)施農(nóng)業(yè)網(wǎng)上合作中心,上海200092)

        宋兵躍(碩士研究生),研究方向?yàn)橹悄芸刂萍扒度胧较到y(tǒng)應(yīng)用。

        1 串行通信介紹

        所謂串行通信,就是將數(shù)據(jù)分成一個(gè)個(gè)的二進(jìn)制位(bit),然后通過(guò)一條線路或一個(gè)通信信道,按照規(guī)定的規(guī)程逐位依次進(jìn)行傳輸,實(shí)現(xiàn)計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與外部設(shè)備之間的通信(數(shù)據(jù)交換)。串行通信因其占用硬件資源少、可大幅度降低通信線路的成本、簡(jiǎn)化通信設(shè)備、應(yīng)用靈活、易維護(hù)等諸多優(yōu)點(diǎn),在工業(yè)控制、電力通信、智能儀表等領(lǐng)域得到了廣泛應(yīng)用[1]。

        目前 ,有 EIA-RS232 、EIA-RS485 、電流環(huán) 、CAN 等串行通信方式。EIA-RS232是全雙工的通信模式,可以保證短距離點(diǎn)對(duì)點(diǎn)的高速傳輸;EIA-RS485可實(shí)現(xiàn)較長(zhǎng)距離下的多點(diǎn)互聯(lián)通信;CAN屬于現(xiàn)場(chǎng)總線的范疇,采用多主機(jī)制,改善了在集散控制系統(tǒng)下的主從通信模式[2]。隨著應(yīng)用需求的復(fù)雜化,對(duì)串行通信的通信效率及性能的要求越來(lái)越高,所以如何制定一套切實(shí)可行、簡(jiǎn)單易用,又能大幅度提高串行通信效率的通信協(xié)議,如何在PC端、嵌入式系統(tǒng)端構(gòu)建一個(gè)高效的串行數(shù)據(jù)處理的應(yīng)用程序,是亟待解決的一大問(wèn)題。

        面向各個(gè)領(lǐng)域不同的應(yīng)用需求,串行通信的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)也多種多樣,如總線型、環(huán)型、星型等。本文以加油站信息管理系統(tǒng)為例,介紹串行通信協(xié)議的制定以及高效通信數(shù)據(jù)處理的實(shí)現(xiàn)。

        2 串行通信協(xié)議的設(shè)計(jì)

        2.1 系統(tǒng)總體構(gòu)架

        加油站信息管理系統(tǒng)的結(jié)構(gòu)如圖1所示。本系統(tǒng)中,每臺(tái)加油機(jī)為一個(gè)應(yīng)用節(jié)點(diǎn)(即圖中的控制點(diǎn)),通過(guò)半雙工RS485總線連接至通信控制器。在該RS485網(wǎng)絡(luò)中,通信控制器為主機(jī)(Master),各加油機(jī)為從機(jī)(Slave),構(gòu)成一個(gè)主從通信的網(wǎng)絡(luò)架構(gòu)。在多種串行接口標(biāo)準(zhǔn)中,RS485接口以其結(jié)構(gòu)簡(jiǎn)單、通信速率高、傳輸距離遠(yuǎn)、使用的傳輸線較少、在長(zhǎng)距離通信時(shí)比較經(jīng)濟(jì)等諸多優(yōu)點(diǎn),在集散式控制裝置中得到了廣泛應(yīng)用。RS485采用差分電平傳輸,只需兩根信號(hào)線,可以方便地增加控制節(jié)點(diǎn)數(shù)目[3]。

        圖1 加油站信息管理系統(tǒng)結(jié)構(gòu)圖

        通信控制器通過(guò)全雙工RS232總線與管理PC機(jī)進(jìn)行數(shù)據(jù)交互。RS232總線為全雙工通信總線,為了保證實(shí)時(shí)性和高效性,管理PC機(jī)和通信控制器這個(gè)層面的數(shù)據(jù)交互采用互為主機(jī)的通信方式,以此構(gòu)成一個(gè)集散控制系統(tǒng)[4]。

        各個(gè)加油站信息管理系統(tǒng)中,控制點(diǎn)的數(shù)目可能較大,所以對(duì)數(shù)據(jù)通信的實(shí)時(shí)性提出了較高的要求。采用RS485總線作為底層通信接口。與點(diǎn)對(duì)點(diǎn)的通信方式相比,任何節(jié)點(diǎn)均能偵聽(tīng)到總線上傳輸?shù)娜魏螖?shù)據(jù),這對(duì)串行通信數(shù)據(jù)接收處理也提出了很高的要求。每一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)既要可靠、穩(wěn)定地完成其自身的控制工作,又要準(zhǔn)確、高效地在RS485總線上接收到發(fā)送至本節(jié)點(diǎn)的通信數(shù)據(jù)幀。

        2.2 通信協(xié)議格式的定義

        2.2.1 協(xié)議幀格式

        (1)主機(jī)下發(fā)數(shù)據(jù)幀格式

        起始標(biāo)志數(shù)據(jù)(5AH+A5H)+長(zhǎng)度(從命令字開(kāi)始到校驗(yàn)和為止的字節(jié)數(shù))+命令字HIGH+命令字LOW+機(jī)號(hào)+參數(shù)+1字節(jié)校驗(yàn)和(從命令字開(kāi)始到校驗(yàn)碼前一字節(jié)的邏輯異或和)

        (2)從機(jī)上傳數(shù)據(jù)幀格式

        起始標(biāo)志數(shù)據(jù)(9BH+B9H)+長(zhǎng)度(從命令字開(kāi)始到校驗(yàn)和為止的字節(jié)數(shù))+命令字HIGH+命令字LOW+機(jī)號(hào)+參數(shù)+1字節(jié)校驗(yàn)和(從命令字開(kāi)始到校驗(yàn)碼前一字節(jié)的邏輯異或和)[5]

        2.2.2 協(xié)議幀解釋

        起始標(biāo)志數(shù)據(jù):采用一字節(jié)或多字節(jié)作為幀起始標(biāo)志(該部分的字節(jié)定義應(yīng)盡量與幀數(shù)據(jù)的其他部分完全不同)。接收方在接收錯(cuò)誤后,接收數(shù)據(jù)時(shí)總是先尋找?guī)^。幀頭的排他性將有利于提高各通信節(jié)點(diǎn)的接收效率。

        長(zhǎng)度:應(yīng)盡量采用短幀,以避免各種干擾因素對(duì)通信效率的影響??筛鶕?jù)實(shí)際應(yīng)用情況,在“長(zhǎng)度”后增加“長(zhǎng)度反碼”或“長(zhǎng)度補(bǔ)碼”等校驗(yàn)數(shù)據(jù),對(duì)長(zhǎng)度進(jìn)行更為嚴(yán)格的校驗(yàn)[6]。

        命令字:根據(jù)實(shí)際通信應(yīng)用需求,可應(yīng)用1~2字節(jié)的通信命令字。

        機(jī)號(hào):所需接收方的地址識(shí)別號(hào)。可根據(jù)實(shí)際應(yīng)用需求進(jìn)行修改,如增加源地址、目的地址等。

        參數(shù):應(yīng)用數(shù)據(jù)??紤]到數(shù)據(jù)的安全性,可針對(duì)不同的應(yīng)用對(duì)該部分的數(shù)據(jù)進(jìn)行加密處理。

        校驗(yàn)和:數(shù)據(jù)校驗(yàn),可根據(jù)應(yīng)用需求選擇不同的校驗(yàn)方式[7]。

        3 高效串行通信方式的實(shí)現(xiàn)

        3.1 通信控制器發(fā)送數(shù)據(jù)的處理機(jī)制

        通信控制器的發(fā)送數(shù)據(jù)流程如圖2所示。通信控制器首先判斷最高優(yōu)先級(jí)的命令字是否需要發(fā)送。如果需要,則進(jìn)入該命令字的發(fā)送流程;如果沒(méi)有,接著判斷次高優(yōu)先級(jí)的命令字是否需要發(fā)送。如果需要?jiǎng)t進(jìn)入發(fā)送流程,根據(jù)命令字的優(yōu)先級(jí)由高到低的順序依次判斷要發(fā)送的命令字。當(dāng)沒(méi)有通信數(shù)據(jù)命令字發(fā)送時(shí),通信控制器會(huì)發(fā)送輪詢命令字。此外,在發(fā)送完一幀數(shù)據(jù)后,通信控制器會(huì)開(kāi)啟接收超時(shí)定時(shí)器T2,如果通信控制器在超時(shí)時(shí)間內(nèi)收到應(yīng)答命令數(shù)據(jù)幀,則進(jìn)入相應(yīng)數(shù)據(jù)處理流程,同時(shí)關(guān)閉T2。如果系統(tǒng)長(zhǎng)時(shí)間未收到應(yīng)答命令數(shù)據(jù)幀,則重新發(fā)送該命令字的數(shù)據(jù),并記錄發(fā)送該命令字的次數(shù)。當(dāng)發(fā)送的命令字的幀超過(guò)10次仍未收到相應(yīng)應(yīng)答命令,則視為該命令字和PC機(jī)的通信失敗,把通信流程重新調(diào)整到輪詢命令字狀態(tài)下。

        圖2 通信控制器數(shù)據(jù)發(fā)送流程

        發(fā)送的代碼程序放到單片機(jī)的串行中斷服務(wù)程序中來(lái)處理[8],代碼如下:

        3.2 通信控制器接收數(shù)據(jù)的處理機(jī)制

        在通信控制器的接收端,應(yīng)保持串行中斷的優(yōu)先級(jí)最高。這樣才能保證系統(tǒng)時(shí)刻可以和PC處于通信的狀態(tài)。具體的處理機(jī)制如下:

        ①找到幀頭(本協(xié)議是2個(gè)字節(jié))。找到第 1個(gè)幀頭,就把接收步驟的全部標(biāo)志S賦值1,把接收字節(jié)的內(nèi)容放到接收數(shù)據(jù)緩沖區(qū)中。接著找第2個(gè)幀頭,找到幀頭后把內(nèi)容順序放到接收數(shù)據(jù)緩沖區(qū)中。繼續(xù)判斷命令字是不是協(xié)議中規(guī)定的合法命令字。如果是,再根據(jù)命令字所對(duì)應(yīng)的長(zhǎng)度來(lái)判斷該幀數(shù)據(jù)的合法性。因?yàn)樵谥贫ㄍㄐ艆f(xié)議時(shí)就規(guī)定了特定命令字所對(duì)應(yīng)的數(shù)據(jù)長(zhǎng)度,這兩點(diǎn)約束條件就可以保證接收數(shù)據(jù)是合法的,從而提高了系統(tǒng)的穩(wěn)定性[12]。如果命令字和其對(duì)應(yīng)的長(zhǎng)度值合法,則把S值賦值為3,進(jìn)入下一步的數(shù)據(jù)處理步驟。

        ②在一幀數(shù)據(jù)接收開(kāi)始時(shí),開(kāi)啟接收超時(shí)定時(shí)器。如果在超時(shí)時(shí)間內(nèi)未收到一幀完整的數(shù)據(jù),則視為本次通信流程失敗,重新初始化串行通信,等待下次通信。

        ③如果一幀數(shù)據(jù)完全接收正確并成功,則關(guān)閉接收定時(shí)器,停止響應(yīng)串行中斷,以防止處理的過(guò)程中有新的接收數(shù)據(jù)影響有效數(shù)據(jù)的處理。處理完畢,使能串行中斷,打開(kāi)接收定時(shí)器,清除接收步驟 S為0,根據(jù)處理過(guò)程中標(biāo)志位的改變情況繼續(xù)和PC進(jìn)行相應(yīng)的數(shù)據(jù)通信[9]。通信控制器數(shù)據(jù)接收流程如圖3所示。

        圖3 通信控制器數(shù)據(jù)接收流程

        編者注:具體實(shí)現(xiàn)代碼略。

        4 總 結(jié)

        本文設(shè)計(jì)了一套完整的通信協(xié)議,通信控制器的發(fā)送端始終處于通信狀態(tài),能以很快的速度響應(yīng)系統(tǒng)協(xié)議規(guī)定的命令字及其數(shù)據(jù)的發(fā)送。在通信控制器的接收端,采用逐字節(jié)處理的方式,通過(guò)設(shè)定全局變量來(lái)確定處理接收數(shù)據(jù)幀的步驟,細(xì)化了處理接收數(shù)據(jù)的過(guò)程,保證了數(shù)據(jù)高效、可靠的傳輸。本系統(tǒng)已經(jīng)應(yīng)用在上海寶鋼集團(tuán)加油站信息管理系統(tǒng)中。實(shí)驗(yàn)結(jié)果證明,按照此協(xié)議進(jìn)行的通信數(shù)據(jù)準(zhǔn)確,通信高效可靠,自適應(yīng)能力強(qiáng),具有在相關(guān)領(lǐng)域推廣的價(jià)值。

        編者注:本文為期刊縮略版,全文見(jiàn)本刊網(wǎng)站www.mesnet.com.cn。

        [1]胡新華,鄧元勇,王先平.多種通信網(wǎng)絡(luò)及接口轉(zhuǎn)換模塊的研制[J].計(jì)算機(jī)工程,2009,35(6).

        [2]徐勇,賀建民,王景玉.計(jì)算機(jī)硬件技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社北京交通大學(xué)出版社,2004:272.

        [3]謝瑞和.串行技術(shù)大全[M].北京:清華大學(xué)出版社,2003:5-8.

        [4]王常力,羅安.分布式控制系統(tǒng)(DCS)設(shè)計(jì)與應(yīng)用實(shí)例[M].北京:電子工業(yè)出版,2005:22-24.

        [5]Castro M,Sebastian R,Yeves F,et al.Well-known serial buses for distributed control of backup power plants——RS-485 versus controller area network(CAN)solutions[J].Industrial Electronics Society,2002,3(5-8):2381-2386.

        [6]凌力.網(wǎng)絡(luò)協(xié)議與網(wǎng)絡(luò)安全[M].北京:清華大學(xué)出版社,2007:131-134.

        [7]Hubaut F,Laforge B,Le Dortz O,et al.Implementation of a serial protocol for the liquid argon calorimeters of the ATLAS detector[C].Nuclear Science,Volume 48,Issue 4,Part 1,2001:1254-1258.

        [8]田清.51單片機(jī)C語(yǔ)言程序設(shè)計(jì)快速入門[M].北京:人民郵電出版社,2007:80-85.

        [9]南建輝.MCS-51單片機(jī)原理及應(yīng)用實(shí)例[M].北京:清華大學(xué)出版社,2004:257-268.

        猜你喜歡
        接收數(shù)據(jù)通信協(xié)議字節(jié)
        No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
        沖激噪聲背景下基于幅度預(yù)處理的測(cè)向新方法*
        No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
        低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計(jì)方法
        基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計(jì)
        簡(jiǎn)談MC7字節(jié)碼
        單片機(jī)模擬串口數(shù)據(jù)接收程序的實(shí)現(xiàn)及優(yōu)化
        基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計(jì)與研究
        基于NS-3的PLC多頻通信協(xié)議仿真平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
        RSSP-I、RSSP-Ⅱ及SAHARA三種安全通信協(xié)議實(shí)現(xiàn)技術(shù)簡(jiǎn)介
        99久久亚洲精品日本无码| 加勒比一区二区三区av| 国产精品无套内射迪丽热巴| 人人妻人人澡人人爽人人精品| 欧美极品美女| 无码AV高潮喷水无码专区线 | 成人h动漫精品一区二区| 免费一级a毛片在线播出 | av最新版天堂在资源在线| 色婷婷精久久品蜜臀av蜜桃| 色噜噜亚洲精品中文字幕| 日本久久精品视频免费| 亚洲视频一区二区三区视频| 女人的精水喷出来视频| 少妇性bbb搡bbb爽爽爽| 国产精品欧美一区二区三区不卡| 一区二区三区国产亚洲网站| 国产香蕉97碰碰视频va碰碰看 | 日中文字幕在线| 国产av一区二区三区丝袜 | 免费啪啪av人妻一区二区 | 国产精品久久久| 国产精品一区二区久久精品| 亚洲国产欧美另类va在线观看| 动漫av纯肉无码av在线播放| 日韩有码中文字幕av| 国产我不卡在线观看免费| 色播视频在线观看麻豆| 国产成人精品日本亚洲专区61| 米奇7777狠狠狠狠视频影院| 人人妻人人澡人人爽久久av| 色欲AV无码久久精品有码| 少妇激情一区二区三区| 日本人妻免费一区二区三区| 久久精品国产亚洲av麻豆长发| 国产在线观看无码免费视频| 精品久久无码中文字幕| 欧美亚洲尤物久久综合精品| 人妻体体内射精一区中文字幕| 中文字幕无码成人片| 97精品超碰一区二区三区|