<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò )與存儲 > 設計應用 > 一種單片機多機通信系統的設計

一種單片機多機通信系統的設計

作者: 時(shí)間:2008-05-21 來(lái)源:<<微計算機信息 >> 收藏

  摘要: 融合技術(shù)和技術(shù),優(yōu)化的格式和控制方式以及引入檢測序列,設計基于A(yíng)T89S52的協(xié)議;系統拓撲結構采用總線(xiàn)型;網(wǎng)絡(luò )接口電路采用端口轉發(fā)的形式等進(jìn)行單片機系統的設計,系統易于擴展且提高了穩定性。結果表明,此系統設計解決了8位單片機的問(wèn)題,實(shí)現了客戶(hù)機與服戶(hù)機間的通信,以及客戶(hù)機與客戶(hù)機間的通信。

本文引用地址:http://dyxdggzs.com/article/82877.htm

  關(guān)鍵字:單片機;通信協(xié)議;;;網(wǎng)絡(luò )接口

  1  引言

  隨著(zhù)單片機和技術(shù)的不斷發(fā)展,單片機的應用也從獨立的單機向網(wǎng)絡(luò )發(fā)展,由和單片機構成的多機網(wǎng)絡(luò )系統已成為單片機技術(shù)發(fā)展的一個(gè)方向。二者的結合,充分發(fā)揮了單片機在實(shí)時(shí)數據采集和數據管理上的優(yōu)點(diǎn)。單片機在計算機的網(wǎng)絡(luò )通訊與數據傳輸、工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數據處理等都有廣泛地應用,已滲透到我們生活的各個(gè)領(lǐng)域。許多應用都涉及到單片機多機通信。然而,單片機對網(wǎng)絡(luò )數據的處理方式不同于通用計算機系統,尤其有的單片機只提供8位的數據收發(fā)接口,在一定程度上阻礙了單片機在網(wǎng)絡(luò )方面的應用。因此,采用單片機技術(shù)與計算機網(wǎng)絡(luò )技術(shù)相結合的辦法 ,對單片機多機通信系統進(jìn)行研究,在設計單片機網(wǎng)絡(luò )的通信協(xié)議的基礎上,系統網(wǎng)絡(luò )拓撲結構采用總線(xiàn)型,網(wǎng)絡(luò )接口電路采用端口轉發(fā)的形式,實(shí)現了8位單片機多機通信。

  2  系統網(wǎng)絡(luò )協(xié)議設計

  擬定網(wǎng)絡(luò )容量為1臺服務(wù)機和62臺客戶(hù)機,客戶(hù)機之間可以相互通信??蛻?hù)機和服務(wù)機之間也可以相互通信。設計的協(xié)議考了停止等待協(xié)議,參考了IP數據包而設計。經(jīng)過(guò)綜合分析和優(yōu)化處理,制定如下單片機多機通信協(xié)議。

  (1)服務(wù)機協(xié)議

 ?、俜?wù)機按1/384的間隔發(fā)送詢(xún)問(wèn)數據包;

 ?、趯斍霸?xún)問(wèn)地址加1,判斷,如果大于63則置當前詢(xún)問(wèn)地址為1,如果小于1則置當前詢(xún)問(wèn)地址為62,轉下一步;

 ?、巯虍斍霸?xún)問(wèn)地址機器發(fā)送一詢(xún)問(wèn)數據包;

 ?、艿却粋€(gè)發(fā)送間隔時(shí)間;

 ?、萑绻麤](méi)有收到確認包則轉到將當前數據包重發(fā),重發(fā)計數器加1,計數器大于2則轉向⑥;如果收到確認包轉到⑦;

 ?、拊O置發(fā)送失敗標記,重發(fā)計數器清0,轉到②;

 ?、咴O置發(fā)送成功標記,重發(fā)計數器清0,轉到⑧;

 ?、嗖榭幢辉?xún)問(wèn)客戶(hù)機是否有數據要發(fā)送,有則分配總線(xiàn)使用權和時(shí)間片,轉到⑨,否則轉到②;

 ?、岬却辉?xún)問(wèn)客戶(hù)機的發(fā)送結束數據包,如果收到轉到②。在一個(gè)時(shí)間片(1/384s)內,沒(méi)有收到,視為超時(shí)。服務(wù)機收回總線(xiàn)使用權,轉到②。

  (2)客戶(hù)機協(xié)議

 ?、俳邮諏儆诒緳C的數據包;

 ?、谌绻窃?xún)問(wèn)數據包,檢查本機是否有數據要發(fā)送,如果有,則發(fā)送"有數據發(fā)送信息"到服務(wù)機,并捎帶確認轉到③,否則發(fā)送"沒(méi)有數據發(fā)送信息"到服務(wù)機,并捎帶確認,轉到①;其它類(lèi)型數據包不處理,轉到①;

 ?、鄣却W(wǎng)絡(luò )資源分配數據包,收到則發(fā)送確認包,轉到⑤;超時(shí),停止等待轉到①;

 ?、艿却弦粩祿拇_認,收到則轉到⑤,否則轉到⑦;

 ?、輽z查是否還有數據要發(fā)送,有則發(fā)送數據包轉到⑥;否則發(fā)送"結束發(fā)送信息"到服務(wù)機,轉到①。

 ?、迿z查是否超時(shí),如果超時(shí)結束發(fā)送轉到①,否則轉到④。

 ?、咧匕l(fā),是否超過(guò)兩次,是則當前發(fā)送失敗,轉到⑤,否則轉到④。

  因此,每發(fā)一數據包都會(huì )請求對方的確認,如果沒(méi)有確認,則會(huì )再重發(fā)一次,超過(guò)兩次則被視為對方不可達,發(fā)送失??;并且在被詢(xún)問(wèn)客戶(hù)機有數據發(fā)送時(shí),如果總線(xiàn)空閑,服務(wù)機將分配其使用時(shí)間片,在這個(gè)時(shí)間片內,如果數據未發(fā)送完成,服務(wù)機將強行收回。能發(fā)送完成,客戶(hù)機要發(fā)送結束數據包,歸還總線(xiàn)使用權。

  3  系統網(wǎng)絡(luò )拓撲設計

  選用總線(xiàn)型網(wǎng)絡(luò )拓撲結構,各站直接連在總線(xiàn)上,由服務(wù)機統一管理網(wǎng)絡(luò )總線(xiàn),分配網(wǎng)絡(luò )資源。使用類(lèi)似于令牌總線(xiàn)網(wǎng)的協(xié)議,由服務(wù)機輪詢(xún)每一客戶(hù)機是否有數據發(fā)送,如果有分配發(fā)送時(shí)間,移交總線(xiàn)使用權,否則詢(xún)問(wèn)下一客戶(hù)機;其中接口電路會(huì )將所接收到信號中繼,并轉發(fā)。因此網(wǎng)絡(luò )中任意一臺機器所發(fā)送的數據對其它機器都是可見(jiàn)的,并且在一定程度上保證了信號的可靠性。

  系統網(wǎng)絡(luò )拓撲設計如下圖所示:

       

  圖1系統網(wǎng)絡(luò )拓撲設計

  4  網(wǎng)絡(luò )接口電路的功能與設計

 ?。?)網(wǎng)絡(luò )接口電路的功能

  網(wǎng)絡(luò )接口電路完成的主要功能如下:①完成網(wǎng)絡(luò )數據元的接收;②對接收到的數據元轉發(fā)給其它端口;③多端口機制,端口間相互轉發(fā);④提交收到的數據元;⑤中繼收到的數據元;⑥提供網(wǎng)絡(luò )狀態(tài)信號;⑦各端口之間同構,使用交叉線(xiàn)。

  (2)網(wǎng)絡(luò )接口電路的設計

  為實(shí)現上述功能要求,網(wǎng)絡(luò )接口電路設計時(shí)一共采用了四片74HC245芯片,共同承擔數據的收發(fā)工作,其中每一塊芯片對應一個(gè)端口。在外表現為三個(gè)端口,這是因為有一個(gè)端口被本機占用,電路已布置在線(xiàn)路板上。各端口之間用交叉線(xiàn)連接,當檢測到收線(xiàn)上有信號時(shí),芯片開(kāi)始啟動(dòng)工作,將信號分成三路中繼出來(lái),一路發(fā)給單片機,其它兩種發(fā)給另外的兩個(gè)端口。在收方的收收線(xiàn)上如果檢測到同樣的信號,則進(jìn)行同樣的操作。當單片機向外界發(fā)送數據時(shí),就啟動(dòng)對應于單片機收發(fā)端口上的芯片,將信號中繼后發(fā)送給另外的三個(gè)端口,并隨時(shí)檢測收線(xiàn)信號的變化,一旦檢測到電平信號由高倒低的變化一次,即說(shuō)明有數據需要接收,接收完后將產(chǎn)生一中斷信號,啟動(dòng)處理程序進(jìn)行處理。

  網(wǎng)絡(luò )接口電路中設計了網(wǎng)絡(luò )狀態(tài)信號BUS,當各芯片都沒(méi)有工作時(shí),表示網(wǎng)絡(luò )中沒(méi)有數據傳輸,這時(shí)BUS經(jīng)非門(mén)電路取反變成低電平,與單片機二號中斷引腳相連,單片機可以通過(guò)這一引腳撐握網(wǎng)絡(luò )狀態(tài),實(shí)現數據包的發(fā)送。

  網(wǎng)絡(luò )接口電路中還設計了指標信號,當收到數據時(shí)信號便置高,這時(shí)接在信號上的LED發(fā)光管將會(huì )發(fā)光,以表示收到數據。

  5   客戶(hù)機與服務(wù)機電路設計

  系統中有客戶(hù)機和服務(wù)機兩種不同的電路。將客戶(hù)機電路和服務(wù)機電路整合在一個(gè)電路板上
,即兩種電路用同一塊電路板表現出來(lái)。

  對于客戶(hù)機,客戶(hù)不需要部門(mén)控制電路,但其需要編址,故需要地址獲取電路。

  對于服務(wù)機,它不需要編址,統一固定為65這一地址,故不需要地址獲取這一部分電路。服務(wù)機擔負著(zhù)整個(gè)網(wǎng)絡(luò )的監管與輪詢(xún)工作。

  其它電路客戶(hù)機與服務(wù)機均同構,所以不需要做任何修改。

  電路板上,采取不插器件的方式實(shí)現兩種不同構的電路在同一電路板上實(shí)現,大大地壓縮開(kāi)發(fā)成本。

  6  系統功能模塊圖

  (1) 系統功能:

  服務(wù)器部分

 ?、?完成網(wǎng)絡(luò )的輪詢(xún),每隔一定時(shí)間向網(wǎng)絡(luò )中的機器發(fā)出詢(xún)問(wèn)數據包。

 ?、?讀取ADC數據,顯示當前環(huán)境溫度

 ?、?控制一個(gè)調風(fēng)閥,顯示電機角度數據

 ?、?掃描鍵盤(pán),提供按鍵控制

 ?、?從網(wǎng)絡(luò )中收集調風(fēng)閥信息,智能控制風(fēng)機的開(kāi)啟

 ?、?控制本實(shí)驗室照明電路的開(kāi)、關(guān)

 ?、?能夠接管網(wǎng)絡(luò )中任意一臺客戶(hù)機

  客戶(hù)機部分

 ?、?接收服務(wù)機的輪詢(xún),發(fā)送確認數據包

 ?、?讀取ADC數據,顯示當前環(huán)境溫度

 ?、?控制一個(gè)調風(fēng)閥,顯示電機角度數據

 ?、?掃描鍵盤(pán),提供按鍵控制

 ?、?讀取本機地址

 ?、?接收來(lái)自服務(wù)器的管理操作

  (2)功能劃分:

  軟件系統采用模塊化的方式,每個(gè)設備編寫(xiě)一個(gè)驅動(dòng)程序。驅動(dòng)程序負責驅動(dòng)其所控制的設備。并向其它程序提供接口,方便其它程序調用,控制設備。

  各個(gè)驅動(dòng)功能劃分如下:

 ?、?數碼管驅動(dòng)程序:驅動(dòng)數據管顯示,按指定方式顯示數據。

 ?、?鍵盤(pán)驅動(dòng)程序:動(dòng)態(tài)掃描鍵盤(pán),判別按鍵,并避開(kāi)電路毛刺。

 ?、?蜂鳴器驅動(dòng)程序:驅動(dòng)蜂鳴器安指定方式發(fā)聲。

 ?、?ADC驅動(dòng)程序:讀取模數轉換器數據,并轉換為溫度數值。

 ?、?串口驅動(dòng)程序:收發(fā)數據包,過(guò)濾非本機數據包

  其中還有一個(gè)輪詢(xún)模塊,它在時(shí)鐘的驅動(dòng)下按一定間隔時(shí)間向網(wǎng)絡(luò )中各臺客戶(hù)機發(fā)送詢(xún)問(wèn)數據包。如果兩次沒(méi)有收到回應,則視發(fā)送數據包失敗。并能夠向被接管的客戶(hù)機發(fā)送管理數據包。同樣也需要確認,超過(guò)兩次則視為失敗。

  系統功能模塊圖如圖2所示。

       

                   圖2 系統功能模塊圖

  由圖可知,所有的驅動(dòng)程序都掛靠在時(shí)鐘中斷上,由時(shí)鐘中斷按一定的頻率調用這些驅動(dòng)程序。

  7 小結

  系統設計了一個(gè)基于網(wǎng)絡(luò )控制和管理的控制系統。它將計算機機網(wǎng)絡(luò )技術(shù)和單片機技術(shù)進(jìn)行融合,網(wǎng)絡(luò )協(xié)議設計參考計算機網(wǎng)絡(luò )中的停止等待協(xié)議和TCP/IP協(xié)議,但為了更好的適應于單片機處理,優(yōu)化了數據包的格式和控制方式,大大提高了處理速度和效率。同時(shí),引入檢測序列,提供數據包的檢測機制,提高了網(wǎng)絡(luò )的可靠性。系統網(wǎng)絡(luò )拓撲結構采用總線(xiàn)型,網(wǎng)絡(luò )接口電路采用端口轉發(fā)的形式,便于擴展且提高了穩定性。此系統設計功能齊全可以通過(guò)服務(wù)器控制整個(gè)網(wǎng)絡(luò )的所有客戶(hù)機,監視所有客戶(hù)機運行情況;系統操作簡(jiǎn)單,具有一定的經(jīng)濟意義和實(shí)用價(jià)值。

  參考文獻

  [1] (美)Christa Anderson.Mark Minasi.Mastering Local Area Networks [M] .出版社Sybex ,1999.

  [2]  江曉安.董秀峰.模擬電子技術(shù)[M].西安電子科技大學(xué)出版社,2002.

  [3]  張永瑞.楊林耀.張雅蘭.電路分析基礎[M].西安電子科技大學(xué)出版社,2001.

  [4]  Barry B.Brey.Programming the 80286,80386,80486,and Pentium-Based Personal Computer[M].電子工業(yè)出版社,1998.

  [5]  湯子瀛.哲風(fēng)屏.湯小丹.計算機操作系統[M].西安電子科技大學(xué)出版社,1996.

  [6]  江曉安.董秀峰.楊頌華.數字電子技術(shù)[M].西安電子科技大學(xué)出版社,2002.

  [7]  周明德.微型計算機系統原理及應用[M].清華大學(xué)出版社,1998.

  [8]  林雪梅.彭佳紅.姚志成.單片機多機通信協(xié)議的設計[J] .微計算機信息,2006.2-2:24-26

  [9]  張魯.智能卡操作系統中存儲管理設計[J] .微計算機信息,2005,8-3:18-19

tcp/ip相關(guān)文章:tcp/ip是什么


蜂鳴器相關(guān)文章:蜂鳴器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>