技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 一種單片機(jī)多機(jī)通信系統(tǒng)的設(shè)計(jì)

一種單片機(jī)多機(jī)通信系統(tǒng)的設(shè)計(jì)

時(shí)間:2008-05-13 10:47:00來(lái)源:zhangting

導(dǎo)語(yǔ):?融合單片機(jī)技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),優(yōu)化數(shù)據(jù)包的格式和控制方式以及引入幀檢測(cè)序列,設(shè)計(jì)基于AT89S52的單片機(jī)網(wǎng)絡(luò)的單片機(jī)多機(jī)通信協(xié)議
摘 要: 融合單片機(jī)技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),優(yōu)化數(shù)據(jù)包的格式和控制方式以及引入幀檢測(cè)序列,設(shè)計(jì)基于AT89S52的單片機(jī)網(wǎng)絡(luò)的單片機(jī)多機(jī)通信協(xié)議;系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用總線型;網(wǎng)絡(luò)接口電路采用端口轉(zhuǎn)發(fā)的形式等進(jìn)行單片機(jī)多機(jī)通信系統(tǒng)的設(shè)計(jì),系統(tǒng)易于擴(kuò)展且提高了穩(wěn)定性。結(jié)果表明,此系統(tǒng)設(shè)計(jì)解決了8位單片機(jī)多機(jī)通信的問(wèn)題,實(shí)現(xiàn)了客戶機(jī)與服戶機(jī)間的通信,以及客戶機(jī)與客戶機(jī)間的通信。 關(guān)鍵字:單片機(jī);通信協(xié)議;數(shù)據(jù)包;幀;網(wǎng)絡(luò)接口 1、引言 隨著單片機(jī)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,單片機(jī)的應(yīng)用也從獨(dú)立的單機(jī)向網(wǎng)絡(luò)發(fā)展,由計(jì)算機(jī)和單片機(jī)構(gòu)成的多機(jī)網(wǎng)絡(luò)系統(tǒng)已成為單片機(jī)技術(shù)發(fā)展的一個(gè)方向。二者的結(jié)合,充分發(fā)揮了單片機(jī)在實(shí)時(shí)數(shù)據(jù)采集和數(shù)據(jù)管理上的優(yōu)點(diǎn)。單片機(jī)在計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸、工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理等都有廣泛地應(yīng)用,已滲透到我們生活的各個(gè)領(lǐng)域。許多應(yīng)用都涉及到單片機(jī)多機(jī)通信。然而,單片機(jī)對(duì)網(wǎng)絡(luò)數(shù)據(jù)的處理方式不同于通用計(jì)算機(jī)系統(tǒng),尤其有的單片機(jī)只提供8位的數(shù)據(jù)收發(fā)接口,在一定程度上阻礙了單片機(jī)在網(wǎng)絡(luò)方面的應(yīng)用。因此,采用單片機(jī)技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)相結(jié)合的辦法,對(duì)單片機(jī)多機(jī)通信系統(tǒng)進(jìn)行研究,在設(shè)計(jì)單片機(jī)網(wǎng)絡(luò)的通信協(xié)議的基礎(chǔ)上,系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用總線型,網(wǎng)絡(luò)接口電路采用端口轉(zhuǎn)發(fā)的形式,實(shí)現(xiàn)了8位單片機(jī)多機(jī)通信。 2、系統(tǒng)網(wǎng)絡(luò)協(xié)議設(shè)計(jì) 擬定網(wǎng)絡(luò)容量為1臺(tái)服務(wù)機(jī)和62臺(tái)客戶機(jī),客戶機(jī)之間可以相互通信。客戶機(jī)和服務(wù)機(jī)之間也可以相互通信。設(shè)計(jì)的協(xié)議考了停止等待協(xié)議,數(shù)據(jù)包參考了IP數(shù)據(jù)包而設(shè)計(jì)。 經(jīng)過(guò)綜合分析和優(yōu)化處理,制定如下單片機(jī)多機(jī)通信協(xié)議。 (1)服務(wù)機(jī)協(xié)議 ①服務(wù)機(jī)按1/384的間隔發(fā)送詢問(wèn)數(shù)據(jù)包; ②將當(dāng)前詢問(wèn)地址加1,判斷,如果大于63則置當(dāng)前詢問(wèn)地址為1,如果小于1則置當(dāng)前詢問(wèn)地址為62,轉(zhuǎn)下一步; ③向當(dāng)前詢問(wèn)地址機(jī)器發(fā)送一詢問(wèn)數(shù)據(jù)包; ④等待一個(gè)發(fā)送間隔時(shí)間; ⑤如果沒(méi)有收到確認(rèn)包則轉(zhuǎn)到將當(dāng)前數(shù)據(jù)包重發(fā),重發(fā)計(jì)數(shù)器加1,計(jì)數(shù)器大于2則轉(zhuǎn)向⑥;如果收到確認(rèn)包轉(zhuǎn)到⑦; ⑥設(shè)置發(fā)送失敗標(biāo)記,重發(fā)計(jì)數(shù)器清0,轉(zhuǎn)到②; ⑦設(shè)置發(fā)送成功標(biāo)記,重發(fā)計(jì)數(shù)器清0,轉(zhuǎn)到⑧; ⑧查看被詢問(wèn)客戶機(jī)是否有數(shù)據(jù)要發(fā)送,有則分配總線使用權(quán)和時(shí)間片,轉(zhuǎn)到⑨,否則轉(zhuǎn)到②; ⑨等待被詢問(wèn)客戶機(jī)的發(fā)送結(jié)束數(shù)據(jù)包,如果收到轉(zhuǎn)到②。在一個(gè)時(shí)間片(1/384s)內(nèi),沒(méi)有收到,視為超時(shí)。服務(wù)機(jī)收回總線使用權(quán),轉(zhuǎn)到②。 (2)客戶機(jī)協(xié)議 ①接收屬于本機(jī)的數(shù)據(jù)包; ②如果是詢問(wèn)數(shù)據(jù)包,檢查本機(jī)是否有數(shù)據(jù)要發(fā)送,如果有,則發(fā)送"有數(shù)據(jù)發(fā)送信息"到服務(wù)機(jī),并捎帶確認(rèn)轉(zhuǎn)到③,否則發(fā)送"沒(méi)有數(shù)據(jù)發(fā)送信息"到服務(wù)機(jī),并捎帶確認(rèn),轉(zhuǎn)到①;其它類型數(shù)據(jù)包不處理,轉(zhuǎn)到①; ③等待網(wǎng)絡(luò)資源分配數(shù)據(jù)包,收到則發(fā)送確認(rèn)包,轉(zhuǎn)到⑤;超時(shí),停止等待轉(zhuǎn)到①; ④等待上一數(shù)據(jù)包的確認(rèn),收到則轉(zhuǎn)到⑤,否則轉(zhuǎn)到⑦; ⑤檢查是否還有數(shù)據(jù)要發(fā)送,有則發(fā)送數(shù)據(jù)包轉(zhuǎn)到⑥;否則發(fā)送"結(jié)束發(fā)送信息"到服務(wù)機(jī),轉(zhuǎn)到①。 ⑥檢查是否超時(shí),如果超時(shí)結(jié)束發(fā)送轉(zhuǎn)到①,否則轉(zhuǎn)到④。 ⑦重發(fā),是否超過(guò)兩次,是則當(dāng)前發(fā)送失敗,轉(zhuǎn)到⑤,否則轉(zhuǎn)到④。 因此,每發(fā)一數(shù)據(jù)包都會(huì)請(qǐng)求對(duì)方的確認(rèn),如果沒(méi)有確認(rèn),則會(huì)再重發(fā)一次,超過(guò)兩次則被視為對(duì)方不可達(dá),發(fā)送失敗;并且在被詢問(wèn)客戶機(jī)有數(shù)據(jù)發(fā)送時(shí),如果總線空閑,服務(wù)機(jī)將分配其使用時(shí)間片,在這個(gè)時(shí)間片內(nèi),如果數(shù)據(jù)未發(fā)送完成,服務(wù)機(jī)將強(qiáng)行收回。能發(fā)送完成,客戶機(jī)要發(fā)送結(jié)束數(shù)據(jù)包,歸還總線使用權(quán)。 3、系統(tǒng)網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì) 選用總線型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),各站直接連在總線上,由服務(wù)機(jī)統(tǒng)一管理網(wǎng)絡(luò)總線,分配網(wǎng)絡(luò)資源。使用類似于令牌總線網(wǎng)的協(xié)議,由服務(wù)機(jī)輪詢每一客戶機(jī)是否有數(shù)據(jù)發(fā)送,如果有分配發(fā)送時(shí)間,移交總線使用權(quán),否則詢問(wèn)下一客戶機(jī);其中接口電路會(huì)將所接收到信號(hào)中繼,并轉(zhuǎn)發(fā)。因此網(wǎng)絡(luò)中任意一臺(tái)機(jī)器所發(fā)送的數(shù)據(jù)對(duì)其它機(jī)器都是可見(jiàn)的,并且在一定程度上保證了信號(hào)的可靠性。 系統(tǒng)網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)如下圖所示: [align=center] 圖1 系統(tǒng)網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)[/align] 4、網(wǎng)絡(luò)接口電路的功能與設(shè)計(jì) (1)網(wǎng)絡(luò)接口電路的功能 網(wǎng)絡(luò)接口電路完成的主要功能如下:①完成網(wǎng)絡(luò)數(shù)據(jù)元的接收;②對(duì)接收到的數(shù)據(jù)元轉(zhuǎn)發(fā)給其它端口;③多端口機(jī)制,端口間相互轉(zhuǎn)發(fā);④提交收到的數(shù)據(jù)元;⑤中繼收到的數(shù)據(jù)元;⑥提供網(wǎng)絡(luò)狀態(tài)信號(hào);⑦各端口之間同構(gòu),使用交叉線。 (2)網(wǎng)絡(luò)接口電路的設(shè)計(jì) 為實(shí)現(xiàn)上述功能要求,網(wǎng)絡(luò)接口電路設(shè)計(jì)時(shí)一共采用了四片74HC245芯片,共同承擔(dān)數(shù)據(jù)的收發(fā)工作,其中每一塊芯片對(duì)應(yīng)一個(gè)端口。在外表現(xiàn)為三個(gè)端口,這是因?yàn)橛幸粋€(gè)端口被本機(jī)占用,電路已布置在線路板上。各端口之間用交叉線連接,當(dāng)檢測(cè)到收線上有信號(hào)時(shí),芯片開(kāi)始啟動(dòng)工作,將信號(hào)分成三路中繼出來(lái),一路發(fā)給單片機(jī),其它兩種發(fā)給另外的兩個(gè)端口。在收方的收收線上如果檢測(cè)到同樣的信號(hào),則進(jìn)行同樣的操作。當(dāng)單片機(jī)向外界發(fā)送數(shù)據(jù)時(shí),就啟動(dòng)對(duì)應(yīng)于單片機(jī)收發(fā)端口上的芯片,將信號(hào)中繼后發(fā)送給另外的三個(gè)端口,并隨時(shí)檢測(cè)收線信號(hào)的變化,一旦檢測(cè)到電平信號(hào)由高倒低的變化一次,即說(shuō)明有數(shù)據(jù)需要接收,接收完后將產(chǎn)生一中斷信號(hào),啟動(dòng)處理程序進(jìn)行處理。 網(wǎng)絡(luò)接口電路中設(shè)計(jì)了網(wǎng)絡(luò)狀態(tài)信號(hào)BUS,當(dāng)各芯片都沒(méi)有工作時(shí),表示網(wǎng)絡(luò)中沒(méi)有數(shù)據(jù)傳輸,這時(shí)BUS經(jīng)非門電路取反變成低電平,與單片機(jī)二號(hào)中斷引腳相連,單片機(jī)可以通過(guò)這一引腳撐握網(wǎng)絡(luò)狀態(tài),實(shí)現(xiàn)數(shù)據(jù)包的發(fā)送。 網(wǎng)絡(luò)接口電路中還設(shè)計(jì)了指標(biāo)信號(hào),當(dāng)收到數(shù)據(jù)時(shí)信號(hào)便置高,這時(shí)接在信號(hào)上的LED發(fā)光管將會(huì)發(fā)光,以表示收到數(shù)據(jù)。 5、客戶機(jī)與服務(wù)機(jī)電路設(shè)計(jì) 系統(tǒng)中有客戶機(jī)和服務(wù)機(jī)兩種不同的電路。將客戶機(jī)電路和服務(wù)機(jī)電路整合在一個(gè)電路板上,即兩種電路用同一塊電路板表現(xiàn)出來(lái)。 對(duì)于客戶機(jī),客戶不需要部門控制電路,但其需要編址,故需要地址獲取電路。 對(duì)于服務(wù)機(jī),它不需要編址,統(tǒng)一固定為65這一地址,故不需要地址獲取這一部分電路。服務(wù)機(jī)擔(dān)負(fù)著整個(gè)網(wǎng)絡(luò)的監(jiān)管與輪詢工作。 其它電路客戶機(jī)與服務(wù)機(jī)均同構(gòu),所以不需要做任何修改。 電路板上,采取不插器件的方式實(shí)現(xiàn)兩種不同構(gòu)的電路在同一電路板上實(shí)現(xiàn),大大地壓縮開(kāi)發(fā)成本。 6、系統(tǒng)功能模塊圖 (1) 系統(tǒng)功能: 服務(wù)器部分 ① 完成網(wǎng)絡(luò)的輪詢,每隔一定時(shí)間向網(wǎng)絡(luò)中的機(jī)器發(fā)出詢問(wèn)數(shù)據(jù)包。 ② 讀取ADC數(shù)據(jù),顯示當(dāng)前環(huán)境溫度 ③ 控制一個(gè)調(diào)風(fēng)閥,顯示電機(jī)角度數(shù)據(jù) ④ 掃描鍵盤,提供按鍵控制 ⑤ 從網(wǎng)絡(luò)中收集調(diào)風(fēng)閥信息,智能控制風(fēng)機(jī)的開(kāi)啟 ⑥ 控制本實(shí)驗(yàn)室照明電路的開(kāi)、關(guān) ⑦ 能夠接管網(wǎng)絡(luò)中任意一臺(tái)客戶機(jī) 客戶機(jī)部分 ① 接收服務(wù)機(jī)的輪詢,發(fā)送確認(rèn)數(shù)據(jù)包 ② 讀取ADC數(shù)據(jù),顯示當(dāng)前環(huán)境溫度 ③ 控制一個(gè)調(diào)風(fēng)閥,顯示電機(jī)角度數(shù)據(jù) ④ 掃描鍵盤,提供按鍵控制 ⑤ 讀取本機(jī)地址 ⑥ 接收來(lái)自服務(wù)器的管理操作 (2)功能劃分: 軟件系統(tǒng)采用模塊化的方式,每個(gè)設(shè)備編寫一個(gè)驅(qū)動(dòng)程序。驅(qū)動(dòng)程序負(fù)責(zé)驅(qū)動(dòng)其所控制的設(shè)備。并向其它程序提供接口,方便其它程序調(diào)用,控制設(shè)備。 各個(gè)驅(qū)動(dòng)功能劃分如下: ① 數(shù)碼管驅(qū)動(dòng)程序:驅(qū)動(dòng)數(shù)據(jù)管顯示,按指定方式顯示數(shù)據(jù)。 ② 鍵盤驅(qū)動(dòng)程序:動(dòng)態(tài)掃描鍵盤,判別按鍵,并避開(kāi)電路毛刺。 ③ 蜂鳴器驅(qū)動(dòng)程序:驅(qū)動(dòng)蜂鳴器安指定方式發(fā)聲。 ④ ADC驅(qū)動(dòng)程序:讀取模數(shù)轉(zhuǎn)換器數(shù)據(jù),并轉(zhuǎn)換為溫度數(shù)值。 ⑤ 串口驅(qū)動(dòng)程序:收發(fā)數(shù)據(jù)包,過(guò)濾非本機(jī)數(shù)據(jù)包 其中還有一個(gè)輪詢模塊,它在時(shí)鐘的驅(qū)動(dòng)下按一定間隔時(shí)間向網(wǎng)絡(luò)中各臺(tái)客戶機(jī)發(fā)送詢問(wèn)數(shù)據(jù)包。如果兩次沒(méi)有收到回應(yīng),則視發(fā)送數(shù)據(jù)包失敗。并能夠向被接管的客戶機(jī)發(fā)送管理數(shù)據(jù)包。同樣也需要確認(rèn),超過(guò)兩次則視為失敗。 系統(tǒng)功能模塊圖如圖2所示。 [align=center] 圖2 系統(tǒng)功能模塊圖[/align] 由圖可知,所有的驅(qū)動(dòng)程序都掛靠在時(shí)鐘中斷上,由時(shí)鐘中斷按一定的頻率調(diào)用這些驅(qū)動(dòng)程序。 7、小結(jié) 系統(tǒng)設(shè)計(jì)了一個(gè)基于網(wǎng)絡(luò)控制和管理的控制系統(tǒng)。它將計(jì)算機(jī)機(jī)網(wǎng)絡(luò)技術(shù)和單片機(jī)技術(shù)進(jìn)行融合,網(wǎng)絡(luò)協(xié)議設(shè)計(jì)參考計(jì)算機(jī)網(wǎng)絡(luò)中的停止等待協(xié)議和TCP/IP協(xié)議,但為了更好的適應(yīng)于單片機(jī)處理,優(yōu)化了數(shù)據(jù)包的格式和控制方式,大大提高了處理速度和效率。同時(shí),引入幀檢測(cè)序列,提供數(shù)據(jù)包的檢測(cè)機(jī)制,提高了網(wǎng)絡(luò)的可靠性。系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用總線型,網(wǎng)絡(luò)接口電路采用端口轉(zhuǎn)發(fā)的形式,便于擴(kuò)展且提高了穩(wěn)定性。此系統(tǒng)設(shè)計(jì)功能齊全可以通過(guò)服務(wù)器控制整個(gè)網(wǎng)絡(luò)的所有客戶機(jī),監(jiān)視所有客戶機(jī)運(yùn)行情況;系統(tǒng)操作簡(jiǎn)單,具有一定的經(jīng)濟(jì)意義和實(shí)用價(jià)值。 參考文獻(xiàn) [1] (美)Christa Anderson.Mark Minasi.Mastering Local Area Networks [M] .出版社Sybex ,1999. [2] 江曉安.董秀峰.模擬電子技術(shù)[M].西安電子科技大學(xué)出版社,2002. [3] 張永瑞.楊林耀.張雅蘭.電路分析基礎(chǔ)[M].西安電子科技大學(xué)出版社,2001. [4] Barry B.Brey.Programming the 80286,80386,80486,and Pentium-Base

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:FC302中心卷繞功能介紹及調(diào)試...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)