劉桂華
【摘要】隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)通信技術(shù)已經(jīng)應(yīng)用到人們工作和生活的各個(gè)里領(lǐng)域,通信與人們的生活息息相關(guān),通信功能的完善至關(guān)重要。本文簡(jiǎn)要探討了單片機(jī)多機(jī)通信系統(tǒng)的網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)和多機(jī)通信協(xié)議,以實(shí)現(xiàn)客戶機(jī)與服務(wù)機(jī)以及客戶機(jī)之間的通信。
【關(guān)鍵詞】單片機(jī);多機(jī)通信;協(xié)議;設(shè)計(jì)
1系統(tǒng)網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)
服務(wù)機(jī)是整個(gè)單片機(jī)多機(jī)通信網(wǎng)絡(luò)系統(tǒng)中的主體,其能夠?qū)崿F(xiàn)網(wǎng)絡(luò)資源的有效分配。在單片機(jī)網(wǎng)絡(luò)協(xié)議中,服務(wù)端能夠根據(jù)不同客戶機(jī)的具體需要向每一個(gè)客戶端發(fā)送相關(guān)數(shù)據(jù)。單片機(jī)多機(jī)通信網(wǎng)絡(luò)系統(tǒng)一般采用總線型的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),基于總線型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),單片機(jī)多機(jī)通信都是以基帶的形式進(jìn)行信息的傳遞和傳輸,在拓?fù)浣Y(jié)構(gòu)中的每一個(gè)節(jié)點(diǎn)都能夠進(jìn)行信息的接收和發(fā)送,具體來說,接收器的主要功能是接收信息并將信息以基帶的形式傳送給服務(wù)機(jī),發(fā)送器的主要功能是根據(jù)服務(wù)機(jī)指令向拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)中的極端發(fā)送數(shù)據(jù)?;谶@個(gè)特點(diǎn),總線型的拓?fù)浣Y(jié)構(gòu)所使用電纜長(zhǎng)度較小,但其中的總線負(fù)載能力較強(qiáng),這就對(duì)總線的長(zhǎng)度以及其連接節(jié)點(diǎn)的數(shù)量提出了要求[1]。
服務(wù)機(jī)在進(jìn)行數(shù)據(jù)傳輸發(fā)送的時(shí)候要詢問客戶機(jī),之后按照設(shè)計(jì)的網(wǎng)絡(luò)協(xié)議進(jìn)入到整個(gè)拓?fù)浣Y(jié)構(gòu)電路中,當(dāng)?shù)谝粋€(gè)客戶機(jī)接收到數(shù)據(jù)時(shí),服務(wù)機(jī)會(huì)進(jìn)行詢問,客戶機(jī)選擇“是”,則此客戶機(jī)需要數(shù)據(jù)接收,如果此客戶機(jī)選擇“否”,則服務(wù)機(jī)依此進(jìn)行下一臺(tái)客戶機(jī)的詢問,從而保證數(shù)據(jù)最終被接受并使用。為了保證數(shù)據(jù)的接受和使用,在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中客戶機(jī)發(fā)送的數(shù)據(jù)對(duì)于其他機(jī)器來說都是可見的,以此來保證信號(hào)的可靠性。
2通信協(xié)議設(shè)計(jì)
網(wǎng)絡(luò)通信協(xié)議的設(shè)計(jì)是實(shí)現(xiàn)單片機(jī)多機(jī)通信的基礎(chǔ),通信協(xié)議即是在計(jì)算機(jī)網(wǎng)絡(luò)中,單片機(jī)之間進(jìn)行數(shù)據(jù)交換的規(guī)則,為了實(shí)現(xiàn)正常通信,每一個(gè)終端都要對(duì)各自字符集中的字符進(jìn)行變換,變?yōu)闃?biāo)準(zhǔn)字符之后才能夠進(jìn)入到網(wǎng)絡(luò)中,進(jìn)而進(jìn)行傳輸和傳送,在傳送到目的終端之后,在將標(biāo)準(zhǔn)字符轉(zhuǎn)換為目的終端字符集中的字符。對(duì)于單片機(jī)多機(jī)通信來說,其主要是多臺(tái)通信機(jī)來公用一臺(tái)服務(wù)機(jī),TCP/IP是互聯(lián)網(wǎng)的基礎(chǔ)協(xié)議,互聯(lián)網(wǎng)中的操作都離不開TCP/IP協(xié)議,單片多機(jī)通信的系統(tǒng)服務(wù)對(duì)象是多個(gè)用戶,因此,為了實(shí)現(xiàn)單片機(jī)多機(jī)通信,就要對(duì)網(wǎng)絡(luò)協(xié)議的中的IP地質(zhì)、子網(wǎng)掩碼、DNS服務(wù)器等參數(shù)進(jìn)行詳細(xì)的設(shè)置。這樣通信系統(tǒng)的服務(wù)端就能夠根據(jù)用戶數(shù)據(jù)內(nèi)容進(jìn)行判斷,并根據(jù)協(xié)議進(jìn)行數(shù)據(jù)的發(fā)送,接收端會(huì)根據(jù)TCP/IP網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)的接受,這樣一來則服務(wù)端與接收端的通信完成。服務(wù)端在進(jìn)行數(shù)據(jù)發(fā)送的時(shí)候會(huì)詢問客戶端,客戶端需要根據(jù)通信協(xié)議進(jìn)行回復(fù),如果如果沒有回復(fù)則進(jìn)行二次詢問,如果第一次詢問無應(yīng)答,則會(huì)繞過此客戶端,將數(shù)據(jù)發(fā)送到下一個(gè)客戶端,通過依此根據(jù)通信協(xié)議的詢問,最終實(shí)現(xiàn)客戶端接收數(shù)據(jù),如果沒有一個(gè)客戶端符合通信協(xié)議,那么數(shù)據(jù)則會(huì)顯示發(fā)送失敗,進(jìn)而原路返回,回到服務(wù)端。
在通信協(xié)議的設(shè)計(jì)中,每一個(gè)詢問數(shù)據(jù)包都會(huì)請(qǐng)求客戶機(jī)的確認(rèn),如果客戶機(jī)沒有對(duì)詢問數(shù)據(jù)包進(jìn)行確認(rèn),則進(jìn)行重發(fā),超過兩次詢問數(shù)據(jù)包發(fā)送客戶機(jī)沒有確認(rèn)則認(rèn)為發(fā)送失敗或?qū)Ψ讲豢伤瓦_(dá)。被詢問的客戶機(jī)在數(shù)據(jù)發(fā)送的過程中,如果結(jié)構(gòu)中總線空閑,服務(wù)機(jī)可以將時(shí)間片進(jìn)行分配使用,如果在時(shí)間片內(nèi)客戶機(jī)沒有發(fā)送完成相關(guān)數(shù)據(jù),則服務(wù)機(jī)進(jìn)行強(qiáng)行回收總線使用和時(shí)間片,如果客戶機(jī)發(fā)送成功,客戶機(jī)要發(fā)送結(jié)束數(shù)據(jù)包,并將總線的使用權(quán)歸還。
3電路設(shè)計(jì)
3.1網(wǎng)絡(luò)接口電路功能
網(wǎng)絡(luò)接口電路的功能主要有以下幾個(gè)方面:①實(shí)現(xiàn)各個(gè)端口之間的同構(gòu),實(shí)現(xiàn)對(duì)交叉線的使用;②能夠?yàn)榫W(wǎng)絡(luò)通信提供網(wǎng)絡(luò)狀態(tài)的相關(guān)信號(hào);③能夠接收相關(guān)數(shù)據(jù)元,并將所接收到的數(shù)據(jù)元提交或?qū)?shù)據(jù)元轉(zhuǎn)發(fā)到其他的端口上去;④網(wǎng)絡(luò)接口電路采用的是多端口機(jī)制,這樣多個(gè)端口之間就能夠?qū)崿F(xiàn)信息及數(shù)據(jù)的相互轉(zhuǎn)發(fā)。
3.2網(wǎng)絡(luò)接口電路設(shè)計(jì)
網(wǎng)絡(luò)接口電路是單片機(jī)多機(jī)通信系統(tǒng)中的重要組成部分,其是客戶機(jī)與服務(wù)機(jī)實(shí)現(xiàn)通信的橋梁,是通信協(xié)議產(chǎn)生作用的橋梁。單片機(jī)的多機(jī)通信中,網(wǎng)絡(luò)接口電路中的數(shù)據(jù)接發(fā)工作主要有多片芯片工程來完成,其中每一個(gè)芯片都與一個(gè)客戶機(jī)端口互相對(duì)應(yīng),一旦電路中出現(xiàn)信號(hào),則芯片則會(huì)進(jìn)行信號(hào)的接收和發(fā)送工作,實(shí)現(xiàn)信號(hào)向單片機(jī)的傳遞,而芯片在沒有進(jìn)行工作的時(shí)候,單片機(jī)多機(jī)通信系統(tǒng)中的第一號(hào)電路會(huì)與第二號(hào)電路相互連接,從而實(shí)現(xiàn)在芯片不工作的情況下的數(shù)據(jù)傳輸,而網(wǎng)絡(luò)接口電路中信號(hào)增強(qiáng)則代表著數(shù)據(jù)的接收成功。在單片機(jī)多機(jī)通信中,客戶機(jī)與服務(wù)機(jī)之間的網(wǎng)絡(luò)接口電路的穩(wěn)定性與通信的連續(xù)性息息相關(guān),單片機(jī)多機(jī)通信系統(tǒng)中的客戶機(jī)往往不需要對(duì)網(wǎng)絡(luò)接口電路進(jìn)行控制,只需要依照網(wǎng)絡(luò)通信協(xié)議所發(fā)送的相關(guān)IP地址進(jìn)行選擇即可,而對(duì)于服務(wù)機(jī)來說,服務(wù)機(jī)也不需要根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)電路進(jìn)行選擇,這就大大減少了多機(jī)通信系統(tǒng)的通信負(fù)擔(dān),提升了通信效率[2]。
3.3客戶機(jī)與服務(wù)機(jī)電路設(shè)計(jì)
單片機(jī)多機(jī)通信中,共有兩種客戶機(jī)和服務(wù)機(jī)電路,將服務(wù)機(jī)電路與客戶機(jī)電路整合到同一個(gè)電路板中,就能夠共同表現(xiàn)兩種電路。客戶端不需要對(duì)電路進(jìn)行控制,但要獲取電路地址,并進(jìn)行編址。對(duì)于服務(wù)機(jī)來說,不需要對(duì)電路進(jìn)行編址,其地址同一固定,因此不需要獲取電路。但服務(wù)機(jī)承擔(dān)著多機(jī)通信網(wǎng)絡(luò)的監(jiān)管和輪詢功能。
參考文獻(xiàn)
[1]沈一凡.一種單片機(jī)多機(jī)通信系統(tǒng)的設(shè)計(jì)[J]. 硅谷,2014,22:28+32.
[2]朱小超,徐雪春.基于Modbus協(xié)議的上位機(jī)與單片機(jī)通信的實(shí)現(xiàn)與仿真[J].儀表技術(shù)與傳感器,2011,06:65-68.