999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于RS485的多主機通信協議的設計

2015-01-27 03:02:33胡明飛漆靜群可迪群
自動化與儀表 2015年7期
關鍵詞:單片機

胡明飛,楊 艷,漆靜群 ,可迪群

(1.武漢大學 物理科學與技術學院,武漢 430072;2.華中科技大學 光學與電子信息學院,武漢 430074;3.華中科技大學 自動化學院,武漢 430074)

智能儀表和現場總線的出現標志著工業控制領域網絡時代的到來,而以單片機多機通信實現分布式處理系統也逐漸成為主流。其中RS485總線因其結構簡單、通信速率高、傳輸距離遠等諸多優點,得以廣泛應用。RS485總線常采用主從式協議進行通信,但當終端用戶數目增加到一定程度后,主機的任務會過于繁重,系統性能大幅度下降[1]。因此,本文提出了一種基于RS485總線的多主機通信協議SBUS(simple BUS)的設計,各主機均擁有獨立的處理能力,在需要發送數據時采用CSMA/CD(carrier sense multiple access/collision detect)協議進行信道爭用,這樣就分擔了主控機的風險,并且提高了通信效率。

1 SBUS協議概述

SBUS協議是在通過研究CSMA/CD協議之后而設計的一個網絡中各主機可以主動發起連接的通信協議,其結構框圖如圖1所示。

當總線上有數據幀到來時,協議會先對數據包行地址識別,若是發往本機的數據則繼續接收剩余的數據,并存放到接收緩沖區;并且當檢測到數據幀結束標志時則停止接收,然后通知應用層來取走數據;反之若發現數據包的地址非本機則拒絕接收余下的數據。數據從緩沖區取出之前會進行一些處理,比如差錯處理、進程解析等;若校驗錯誤根據需要確定是否重發。

圖1 SBUS協議架構圖Fig.1 SBUS protocol architecture diagram

當應用層需要發送一個數據包時,會先添加一些頭部信息,然后寫入發送緩沖區,等待鏈路層發送處理函數發送;發送時,會先監聽信道,當檢測到信道空閑則占用信道,然后將當前待發送的數據幀發送出去,并同時進行沖突檢測,若有沖突則進行沖突處理。

這樣就保證了網絡中可以存在多個主機,它們之間是通過信道爭用機制來與主控機進行通信的,各機處于平等的地位,相對于主從式通信而言,多主式通信在一定程度上可以提高通信效率[1]。

2 硬件設計

這里主要介紹測試時與SBUS協議相關的一些硬件電路設計。

2.1 RS485收發器電路設計

利用SBUS多主式協議,完成了多路溫度采集系統的設計。常見的串口RS-232標準因為通信距離短、速率低,所以不適于該通信系統,而RS-485標準則很好地彌補了這方面的缺陷。所以物理層的收發器設計采用了Maxim公司的MAX485芯片,具體電路如圖2所示。

圖2 RS485通信電路原理圖Fig.2 RS485 communication circuit diagram

采用RS485標準,其傳輸速率可最高達到10 Mb/s,傳輸距離延長到1219.2 m(速率低于100 kb/s時)。它的數據信號采用差分傳輸方式,使用一對雙絞線,見圖2中的A和B[2-3]。

RS485收發器有2個使能端,將接收使能端(/RE)接地,發送使能端由51單片機控制,所以主機空閑時一直處于接收狀態,而當需要發送數據的時候使能發送端即可。另外,為了實現總線的監聽,將串口接收端通過施密特觸發器接至單片機的外部中斷INT0,這樣可通過中斷來判斷總線是否忙。

2.2 總線拓撲接口的設計

RS-485是一種半雙工結構通信總線,大多用于一對多點的通信系統,故采用T頭的星狀型網絡拓撲,如圖3所示。在多路溫度采集系統中通信媒介采用RJ45接口的網線,且各機共地連接[1,3]。

圖3 星型網絡拓撲接口原理圖Fig.3 Star network topology interface principle diagram

3 SBUS協議設計

通信協議的主要部分由數據發送和數據接收2個模塊構成。流程如圖4所示。

圖4 收發函數模塊的流程圖Fig.4 Flow chart of sending and receiving function module

3.1 地址的匹配和數據包起始幀的結束標志

51單片機的串口通信中SM2位稱之為多機通信控制位,其作用是當串口工作在方式2或方式3下時,若SM2=1,僅當接收到第9位(RB8)為1時,才將前8位數據送入SBUF,并置位RI,產生中斷;若接收到的RB8=0,則丟棄前8位數據。當SM2=0時,無論RB8=0或1都將前8位數據送入SBUF,置位RI,產生中斷。

利用該功能,可將傳輸的第9位設置為數據/地址標志位,即RB8=1時,為地址幀,反之為數據幀。初始化后將SM2=1,此時主機一直處于接收地址幀的狀態,當到來一地址幀后即可接收。若前8位數據所代表的地址為本機地址,則將SM2置為0,此時主機就可以接收余下若干字節的數據幀了,其他主機因為地址不匹配SM2仍為1,不能接收余下的數據幀,原理如圖5所示,這樣就達到了數據包的正確接收了。

圖5 地址識別流程Fig.5 Address recognition process

圖5所示的地址匹配過程可視為幀的起始標志,同樣的原理可以實現數據包結束幀的標定。假設主機A正在向主機B傳輸數據,當A想結束一幀數據的傳輸,只需將RB8=1即可,而B在接收數據幀的時候不斷查詢RB8(數據幀的第9位一直為0),若發現RB8=1則說明該字節為結束標志符(該字節內容無任何實際意義),一幀數據已接收完成,需停止接收。此時,SM2又要設為1,為接收下一幀做準備。

3.2 CSMA/CD的實現

CSMA/CD即載波監聽多路訪問/沖突檢測,實現過程:在51單片機的RXD端通過一個反向器與外部中斷0連接,如圖6所示,同時初始化一個定時器,時長為T,外部中斷0的中斷服務函數對定時器初值進行重裝[2,4]。當RS-485總線上有數據傳輸時,中斷會被反復觸發,定時器初值也一直重裝。這樣如果定時器溢出(即T時間內總線上仍沒有數據傳輸),則可認為總線是空閑的,就可以占用信道發送數據了[5]。

圖6 利用中斷監聽總線Fig.6 Using interrupt monitor bus

其中總線監聽函數代碼如下:

可以看到,函數中使用 while(!send_flag);語句來等待總線空閑,即當總線有數據傳輸時,檢測總線的中斷則持續觸發,對send_flag進行置位的定時器也不斷重裝,這樣send_flag就一直是0,進程阻塞在這里,等到總線空閑后,定時器會溢出,然后send_flag就置位,數據發送進程繼續往下執行,即該主機檢測到了總線空閑,并占用信道。

若同時有多個主機檢測到總線空閑,發送數據時就會產生沖突,所以在發送數據幀之前,需發送若干字節的測試碼(比如0xaa),并接收回來,若有沖突則接收回來的測試碼發生變化,這樣就檢測到了沖突。RS485收發控制器的接收使能一直接地,即一直處于使能狀態,這樣在發送數據的時候,接收和發送使能是同時打開的,所以既能發又能收;雖然51的串行接收和發送緩沖SBUF是共用的,但二者并不沖突,因為在串行接收的時候內部有個移位寄存器,當接收到完整的字節后它才將整個字節送到SBUF,又由于程序是順序執行的,而非同時進行,所以這里可以自發自收[3,5]。

以上為沖突檢測的具體實現,當函數返回FALSE后,要對數據進行沖突處理,在多路溫度采集系統設計時,采取的沖突處理策略是:延時一段時間,繼續新一輪的總線競爭,代碼如下:

4 協議的應用——多路溫度采集系統

4.1 多路溫度采集系統構成

整個系統由一個主控機和若干溫度采集器構成,主控機主要負責將多個采集器傳送過來的溫度數據進行實時的顯示和存儲,并且提供人機交互,便于查詢和控制。

4.2 采集器和主控器的主流程

如圖7所示,采集器主要功能就是周期地進行溫度采集、轉化,然后將無差錯的數據通過SBUS協議發送到總線上,根據地址匹配主控機會接收到該幀數據。

圖7 采集器和主控器的主流程圖Fig.7 Main flow chart of the collector and the main controller

5 結語

本系統進一步完善的話,通過RS485組網,可實現各種現場數據的采集,尤其是點對多點的通信,在從機數量多的時候,采取主從式通信必然會導致通信效率降低,而本文提出了多主機進行信道爭用機制,可在一定程度上解決此問題,但是要很好地解決它,還需要對協議做進一步的完善,比如實現主從式和多主機通信之間的智能切換,在網絡負荷量較大時可切換到主從式通信,這樣就避免了網絡中某個主機一直爭用不到總線;而當負荷減輕時又切換到CSMA/CD協議下。

[1]陳汝全.單片機實用技術:整機設計、多機通信、實用技術[M].北京:電子工業出版社,1992.

[2]謝筑森.單片機開發與典型應用設計[M].合肥:中國科學技術大學出版社,1997.

[3]夏繼強.單片機實驗與實踐教程[M].北京:北京航空航天大學出版社,2001.

[4]余孟嘗.數字電子技術基礎簡明教程[M].北京:高等教育出版社,1999.

[5]馬忠梅.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,1999.

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 国产sm重味一区二区三区| 国产 在线视频无码| 亚洲an第二区国产精品| 亚洲人成影视在线观看| 97青草最新免费精品视频| 日韩欧美综合在线制服| 色综合综合网| 欧美国产在线精品17p| 激情乱人伦| 婷五月综合| 激情网址在线观看| 精品国产乱码久久久久久一区二区| 亚洲第七页| 国产99视频免费精品是看6| 天堂久久久久久中文字幕| 亚洲乱码在线视频| 亚洲欧美成人在线视频| 最新国产在线| 成人久久18免费网站| 日本欧美视频在线观看| 久久人与动人物A级毛片| 免费 国产 无码久久久| 色婷婷成人| 激情五月婷婷综合网| 亚亚洲乱码一二三四区| 欧美在线伊人| 国产丝袜啪啪| 亚洲国产av无码综合原创国产| 国产精品久久久久鬼色| 99爱在线| 国产精品三级专区| 色综合久久综合网| 2020最新国产精品视频| 国产精品亚洲一区二区三区在线观看 | 亚洲水蜜桃久久综合网站| 午夜a级毛片| 午夜精品久久久久久久2023| 亚洲精品午夜无码电影网| 亚洲国产日韩在线观看| 一级毛片不卡片免费观看| 亚洲中文字幕日产无码2021| 国产丝袜91| 综合社区亚洲熟妇p| 欧美亚洲综合免费精品高清在线观看 | 国产成人禁片在线观看| 毛片三级在线观看| 暴力调教一区二区三区| 久久亚洲精少妇毛片午夜无码| 天天色天天操综合网| 久久久久青草线综合超碰| 日韩AV手机在线观看蜜芽| 99精品在线视频观看| 亚洲精品成人片在线观看| 久久免费视频播放| 欧美午夜在线视频| 国产尤物jk自慰制服喷水| 亚洲视频免| 中文字幕亚洲乱码熟女1区2区| 久久男人视频| 成人福利在线免费观看| 亚洲黄色网站视频| 六月婷婷激情综合| 免费一级毛片在线播放傲雪网| AⅤ色综合久久天堂AV色综合| 国产成人免费手机在线观看视频| 国产老女人精品免费视频| 国产在线精品人成导航| 欧美激情综合一区二区| 亚洲久悠悠色悠在线播放| 亚洲天堂日韩在线| 色网站在线视频| 亚洲精品在线观看91| 欧美日韩国产系列在线观看| 国产在线观看91精品| 日韩精品一区二区三区大桥未久 | 东京热av无码电影一区二区| 国产精品综合久久久| 国产亚洲精品无码专| 国产精品林美惠子在线播放| 亚洲最大看欧美片网站地址| 久久免费视频6| 人妻丰满熟妇啪啪|