專利名稱:數(shù)據(jù)處理單板之間的以太網(wǎng)通信裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多個(gè)實(shí)體之間的通信裝置及方法,尤其涉及通訊領(lǐng)域的分布式實(shí)時(shí)系統(tǒng)中的多塊數(shù)據(jù)處理單板之間的以太網(wǎng)通信設(shè)備及方法技術(shù)。
背景技術(shù):
在通訊領(lǐng)域,一個(gè)大型設(shè)備完成的功能通常能夠抽象成一個(gè)簡(jiǎn)單的“數(shù)據(jù)輸入-數(shù)據(jù)處理-數(shù)據(jù)輸出”模型。由于實(shí)際處理的數(shù)據(jù)量巨大,且考慮到設(shè)備可靠性,這個(gè)設(shè)備通常由多個(gè)數(shù)據(jù)處理單板構(gòu)成,它們共同協(xié)作,完成設(shè)備所提供的功能。數(shù)據(jù)處理單板之間的內(nèi)部通信通常是采用以太網(wǎng)方式。
目前常用的以太網(wǎng)通信裝置模式是客戶機(jī)/服務(wù)器模式,即C/S模式。它的優(yōu)點(diǎn)是把某項(xiàng)處理功能一分為二,分別在客戶機(jī)和服務(wù)器上完成,使得客戶機(jī)和服務(wù)器的處理能夠各自高度優(yōu)化。但是,對(duì)于通訊領(lǐng)域的某些應(yīng)用,它的不足之處在于1、客戶機(jī)和服務(wù)器的概念,而實(shí)際運(yùn)用中各個(gè)數(shù)據(jù)處理單板的地位是相同的;2、戶機(jī)和服務(wù)器提供的服務(wù)是不一樣的,這樣在實(shí)際應(yīng)用中的處理會(huì)比較復(fù)雜,增加了系統(tǒng)實(shí)現(xiàn)和維護(hù)的難度。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是,針對(duì)C/S模式的以上不足,提出一種能夠動(dòng)態(tài)地配置鏈路聯(lián)接,便于代碼維護(hù),可更好的解決單板上各個(gè)任務(wù)間的控制信息交互問(wèn)題。
本發(fā)明數(shù)據(jù)處理單板之間的以太網(wǎng)通信裝置,包括(1)在整個(gè)通信裝置中起著給任務(wù)交互信息的作用,并且記錄了鏈路的配置信息,決定建鏈對(duì)象與方式的套接口控制表(SCBT,Socket Cotrol BlockTable)。
(2)用于提供上下行數(shù)據(jù)的收發(fā)接口。
(3)用于和相應(yīng)單板建鏈的建鏈任務(wù)(ESTT,Establish Task)模塊。
(4)用于收到驅(qū)動(dòng)消息時(shí),負(fù)責(zé)將發(fā)送緩沖區(qū)內(nèi)的數(shù)據(jù)推到網(wǎng)絡(luò)上的發(fā)送任務(wù)(SNDT,Send Task)模塊。
(5)用于接收網(wǎng)絡(luò)數(shù)據(jù)的接收任務(wù)(RCVT,Receive Task)模塊。
(6)代理任務(wù)(AGTT,Agent Task)模塊。
數(shù)據(jù)處理單板之間的以太網(wǎng)通信方法,所述方法包括以下步驟(1)建鏈任務(wù)(ESTT)首先創(chuàng)建服務(wù)端的監(jiān)聽套接口,然后非阻塞接收客戶端的連接請(qǐng)求,其次創(chuàng)建客戶端的套接口,主動(dòng)向套接口控制表(SCBT)中記錄的對(duì)端單板發(fā)出非阻塞連接請(qǐng)求,然后定時(shí)輪詢,在輪詢時(shí),建鏈任務(wù)還要掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了出錯(cuò)的套接口句柄關(guān)閉,同時(shí)在套接口控制表(SCBT)中設(shè)置相應(yīng)的變量,以便在下一次輪詢的時(shí)候能夠重新和相應(yīng)單板建鏈。
(2)當(dāng)應(yīng)用程序調(diào)用本平臺(tái)提供的數(shù)據(jù)發(fā)送函數(shù)(函數(shù)名為NetCommSend )數(shù)據(jù)的時(shí)候,將純用戶數(shù)據(jù)和用戶信息合二為一,并將其拷貝到套接口控制表(SCBT)中相應(yīng)的發(fā)送緩沖區(qū),然后給數(shù)據(jù)發(fā)送任務(wù)(SNDT)發(fā)消息,當(dāng)數(shù)據(jù)發(fā)送任務(wù)(SNDT)收到消息時(shí)候,負(fù)責(zé)將發(fā)送緩沖區(qū)內(nèi)的數(shù)據(jù)推到網(wǎng)絡(luò)上去。當(dāng)數(shù)據(jù)接收任務(wù)(RCVT)或建鏈任務(wù)(ESTT)得知套接口句柄無(wú)效時(shí),將發(fā)消息給數(shù)據(jù)發(fā)送任務(wù)(SNDT),在收到消息的時(shí)候,數(shù)據(jù)發(fā)送任務(wù)(SNDT)掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了要關(guān)閉的套接口句柄關(guān)掉,當(dāng)應(yīng)用程序希望發(fā)送的的單板地址在套接口控制表(SCBT)中未登記時(shí),數(shù)據(jù)發(fā)送任務(wù)(SNDT)模塊將采用UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)方式將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)。
(3)數(shù)據(jù)接收任務(wù)(RCVT)采用限時(shí)阻塞方式,平時(shí)它限時(shí)阻塞于系統(tǒng)調(diào)用select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)函數(shù),當(dāng)select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)返回套接口可讀條件時(shí),將調(diào)用recv (套接口標(biāo)準(zhǔn)接口函數(shù)之一)將數(shù)據(jù)拷貝到套接口控制表(SCBT)中相應(yīng)的接收緩沖區(qū),若接收到的數(shù)據(jù)已經(jīng)是一個(gè)完整的用戶數(shù)據(jù)包,則解包后交給消息分發(fā)模塊處理,當(dāng)select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)因?yàn)槌瑫r(shí)返回時(shí),則掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了已經(jīng)出錯(cuò)需要關(guān)閉的套接口句柄關(guān)掉。
(4)建鏈任務(wù)(ESTT)在建鏈成功后,給數(shù)據(jù)發(fā)送任務(wù)(SNDT)和數(shù)據(jù)接收任務(wù)(RCVT)共享套接口句柄。
(5)建鏈任務(wù)(ESTT)在重新接入某數(shù)據(jù)處理單板(DPB)的建鏈請(qǐng)求后,在套接口控制表(SCBT)中需設(shè)置相應(yīng)的變量,讓數(shù)據(jù)發(fā)送任務(wù)(SNDT)和數(shù)據(jù)接收任務(wù)(RCVT)把失效的套接口句柄關(guān)閉;在此套接口的所有句柄全都關(guān)閉后,此套接口資源自動(dòng)釋放。
(6)數(shù)據(jù)發(fā)送任務(wù)(SNDT)或數(shù)據(jù)接收任務(wù)(RCVT)在知道某一個(gè)套接口失效時(shí),在掃描套接口控制表(SCBT)中需設(shè)置相應(yīng)的變量,讓數(shù)據(jù)發(fā)送任務(wù)(SNDT)或數(shù)據(jù)接收任務(wù)(RCVT)和建鏈任務(wù)(ESTT)把失效套接口的句柄關(guān)閉。
利用實(shí)時(shí)操作系統(tǒng)(RTOS,Real-Time Oprating System)提供的套接口標(biāo)準(zhǔn)函數(shù)接口和其本身的系統(tǒng)調(diào)用函數(shù)庫(kù),本裝置構(gòu)建了一個(gè)網(wǎng)絡(luò)通信平臺(tái),叫做NetComm Platform,簡(jiǎn)稱NP裝置,這就是本以太網(wǎng)通信裝置。
本以太網(wǎng)通信裝置由三部分組成1.套接口控制表(SCBT,Socket Cotrol Block Table)在整個(gè)模塊中起著給任務(wù)交互信息的作用,并且記錄了鏈路的配置信息,決定建鏈的對(duì)象與方式;2.應(yīng)用接口(Interface)給應(yīng)用提供的上下行數(shù)據(jù)收發(fā)接口;3.任務(wù)(Task)分為建鏈任務(wù)(ESTT),數(shù)據(jù)接收任務(wù)(RCVT),數(shù)據(jù)發(fā)送任務(wù)(SNDT),以及代理任務(wù)(AGTT)。
建鏈任務(wù)(ESTT)描述建鏈任務(wù)(ESTT)采用的是非阻塞輪詢方法。
首先創(chuàng)建服務(wù)器端的監(jiān)聽套接口,然后非阻塞接收客戶端的連接請(qǐng)求;其次創(chuàng)建客戶端的套接口,主動(dòng)向套接口控制表(SCBT)中記錄的對(duì)端單板發(fā)出非阻塞連接請(qǐng)求。然后,定時(shí)輪詢。
本模塊采用C/S混編方式的優(yōu)點(diǎn)是單板程序可以不用區(qū)分服務(wù)器端和客戶端,從而減小了維護(hù)程序的復(fù)雜度。
在輪詢的時(shí)候,建鏈任務(wù)(ESTT)還要掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了出錯(cuò)的套接口句柄關(guān)閉,同時(shí)在套接口控制表(SCBT)中設(shè)置相應(yīng)的變量,以便在下一次輪詢的時(shí)候能夠重新和相應(yīng)單板建鏈。
發(fā)送任務(wù)(SNDT)描述數(shù)據(jù)發(fā)送任務(wù)(SNDT)是阻塞方式的。
當(dāng)應(yīng)用程序(APP)調(diào)用本平臺(tái)提供的數(shù)據(jù)發(fā)送函數(shù)(函數(shù)名為NetCommSend )發(fā)送數(shù)據(jù)的時(shí)候,該函數(shù)將純用戶數(shù)據(jù)和用戶信息合二為一,并將其拷貝到套接口控制表(SCBT)中相應(yīng)的發(fā)送緩沖區(qū),然后給數(shù)據(jù)發(fā)送任務(wù)(SNDT)發(fā)觸發(fā)消息。當(dāng)數(shù)據(jù)發(fā)送任務(wù)(SNDT)收到觸發(fā)消息時(shí)候,負(fù)責(zé)將發(fā)送緩沖區(qū)內(nèi)的數(shù)據(jù)推到網(wǎng)絡(luò)上去。當(dāng)接收任務(wù)(RCVT)或建鏈任務(wù)(ESTT)得知套接口無(wú)效時(shí),將發(fā)消息給數(shù)據(jù)發(fā)送任務(wù)(SNDT);在收到消息的時(shí)候,數(shù)據(jù)發(fā)送任務(wù)(SNDT)掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了要關(guān)閉的套接口句柄關(guān)掉。
當(dāng)應(yīng)用希望發(fā)送的的單板地址在套接口控制表(SCBT)中未登記時(shí),本模塊將采用UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)方式將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)。
接收任務(wù)(RCVT)描述接收任務(wù)(RCVT)采用限時(shí)阻塞方式。平時(shí)它限時(shí)阻塞于系統(tǒng)調(diào)用select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)函數(shù)。當(dāng)select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)返回套接口可讀條件時(shí),將調(diào)用recv (套接口標(biāo)準(zhǔn)接口函數(shù)之一)將數(shù)據(jù)拷貝到套接口控制表(SCBT)中相應(yīng)的接收緩沖區(qū)。若接收到的數(shù)據(jù)已經(jīng)是一個(gè)完整的用戶數(shù)據(jù)包,則解包后交給消息分發(fā)模塊處理。當(dāng)select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)因?yàn)槌瑫r(shí)返回時(shí),則掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了已經(jīng)出錯(cuò)需要關(guān)閉的套接口句柄關(guān)掉。
代理任務(wù)(AGTT)描述代理任務(wù)(AGTT)的功能是作為后臺(tái)工具軟件的代理。它的功能是執(zhí)行測(cè)試;性能監(jiān)視;完成配置。
各個(gè)任務(wù)阻塞方式各不相同,且之間少有聯(lián)系。它們依靠信號(hào)量和套接口控制表(SCBT)來(lái)相互協(xié)調(diào)。主要有以下幾種情況1.建鏈任務(wù)(ESTT)在建鏈成功后,給數(shù)據(jù)發(fā)送任務(wù)(SNDT)和接收任務(wù)(RCVT)分配套接口句柄;2.建鏈任務(wù)(ESTT)在重新接入某數(shù)據(jù)處理單板(DPB)的建鏈請(qǐng)求后,在套接口控制表(SCBT)中需設(shè)置相應(yīng)的變量,讓數(shù)據(jù)發(fā)送任務(wù)(SNDT)和接收任務(wù)(RCVT)把失效套接口的句柄關(guān)閉;在此套接口的所有句柄全都關(guān)閉后,此套接口資源自動(dòng)釋放;3.接收任務(wù)(RCVT)(或發(fā)送任務(wù)(SNDT))在知道某一個(gè)套接口失效時(shí),在套接口控制表(SCBT)中需設(shè)置相應(yīng)的變量,讓發(fā)送任務(wù)(SNDT)(或接收任務(wù)(RCVT))和建鏈任務(wù)(ESTT)把失效套接口的句柄關(guān)閉。
本裝置利用實(shí)時(shí)操作系統(tǒng)(RTOS,Real-Time Oprating System)提供的套接口(Sockets)和系統(tǒng)調(diào)用函數(shù)庫(kù),構(gòu)建了一個(gè)網(wǎng)絡(luò)通信平臺(tái)(NP,NetCommPlatform),數(shù)據(jù)處理單板(DPB,Data Process Board)只要綁定了網(wǎng)絡(luò)通信平臺(tái)(NP)裝置,就可以用利用網(wǎng)絡(luò)通信平臺(tái)(NP)提供的服務(wù)在數(shù)據(jù)處理單板(DPB)之間進(jìn)行高速可靠的數(shù)據(jù)交換。
圖2所示的是本以太網(wǎng)通信裝置的三個(gè)組成部分套接口控制表(SCBT,即圖中的SCB),接口(Interface),Task(接收任務(wù)(RCVT),發(fā)送任務(wù)(SNDT),建鏈任務(wù)(ESTT),代理任務(wù)(AGTT)),以及它們之間的關(guān)系,圖中可以看到應(yīng)用程序(APP)通過(guò)接口(Interface)與對(duì)端進(jìn)行數(shù)據(jù)交互,這是本裝置最重要的一項(xiàng)功能。
圖3所示的是建鏈任務(wù)(ESTT)的運(yùn)行方式。建鏈任務(wù)(ESTT)采用的是非阻塞輪詢方法。首先創(chuàng)建服務(wù)器端的監(jiān)聽套接口,然后非阻塞接收客戶端的連接請(qǐng)求(ACCEPT);其次創(chuàng)建客戶端的套接口,主動(dòng)向套接口控制表(SCBT)中記錄的對(duì)端單板發(fā)出非阻塞連接請(qǐng)求(CONNECT)。然后,定時(shí)(IDLE)輪詢。
圖4所示的應(yīng)用數(shù)據(jù)的發(fā)送過(guò)程。應(yīng)用(APP)調(diào)用接口(Interface)提供的數(shù)據(jù)發(fā)送接口發(fā)送數(shù)據(jù),接口(Interface)模塊將數(shù)據(jù)搬移到套接口控制表(SCBT)提供的數(shù)據(jù)緩沖區(qū),同時(shí)觸發(fā)發(fā)送任務(wù)(SNDT),讓其負(fù)責(zé)將套接口控制表(SCBT)緩沖中的數(shù)據(jù)推到網(wǎng)絡(luò)上。Data3為數(shù)據(jù)發(fā)送任務(wù)(SNDT)一次發(fā)送的數(shù)據(jù),若Data3小于Data2,則需要數(shù)據(jù)發(fā)送任務(wù)(SNDT)多次發(fā)送,才能將數(shù)據(jù)全部推到網(wǎng)絡(luò),這將由定時(shí)消息激活。
圖5所示的應(yīng)用數(shù)據(jù)的接收過(guò)程。當(dāng)?shù)讓又袛鄼z測(cè)到網(wǎng)絡(luò)上的數(shù)據(jù)時(shí),將激活接收任務(wù)(RCVT)接收數(shù)據(jù);接收任務(wù)(RCVT)對(duì)于不同類型的數(shù)據(jù)進(jìn)行不同處理。對(duì)于UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)方式的應(yīng)用數(shù)據(jù)包,一次接收完畢,然后通過(guò)Interface提交相應(yīng)的APP;對(duì)于TCP(Transfer Control Protocol,傳輸控制協(xié)議)方式的應(yīng)用數(shù)據(jù)包,若一次能夠接收完成,那么也是立即提交給應(yīng)用(APP);若分多次才能接收完畢,那么就要先入套接口控制表(SCBT)接收數(shù)據(jù)緩沖,等待一個(gè)應(yīng)用數(shù)據(jù)包完全接收完畢,才向應(yīng)用(APP)提交。
在分布式實(shí)時(shí)系統(tǒng)中,多塊數(shù)據(jù)處理單板之間交換大量數(shù)據(jù)是很平常的事,在通信領(lǐng)域,對(duì)數(shù)據(jù)交換的帶寬、實(shí)時(shí)性和可靠性提出了更高的要求。目前市場(chǎng)上尚無(wú)成熟通用的解決方案。
本發(fā)明提出的數(shù)據(jù)處理單板之間的以太網(wǎng)通信裝置,是根據(jù)實(shí)際開發(fā)過(guò)程中的個(gè)例歸納抽象出來(lái)的,具有較強(qiáng)的移植性。本發(fā)明做到了數(shù)據(jù)處理單板(DPB)只要綁定了網(wǎng)絡(luò)通信平臺(tái)(NP)裝置,就可以用利用網(wǎng)絡(luò)通信平臺(tái)(NP)提供的服務(wù)在數(shù)據(jù)處理單板(DPB)之間進(jìn)行高速可靠的數(shù)據(jù)交換。本裝置采用了如下的一些新技術(shù)C/S混編技術(shù);套接口控制表(SCBT)技術(shù);可配置的TCP(Transfer Control Protocol,傳輸控制協(xié)議)互聯(lián)技術(shù)。
較之傳統(tǒng)的C/S裝置,優(yōu)點(diǎn)有便于代碼維護(hù),且能夠動(dòng)態(tài)地配置鏈路聯(lián)接;很好地解決了單板上各個(gè)任務(wù)間的控制信息交互問(wèn)題;通信模塊能夠根據(jù)實(shí)際情況靈活配置TCP(Transfer Control Protocol,傳輸控制協(xié)議)鏈路,且無(wú)須重新啟動(dòng)單板,新配置即可生效。
權(quán)利要求
1.一種數(shù)據(jù)處理單板之間的以太網(wǎng)通信裝置,其特征在于該以太網(wǎng)通信裝置包括(1)在整個(gè)通信裝置中起著給任務(wù)交互信息的作用,并且記錄了鏈路的配置信息,決定建鏈對(duì)象與方式的套接口控制表;(2)用于提供數(shù)據(jù)的收發(fā)接口;(3)用于創(chuàng)建監(jiān)聽套接口,非阻塞接收客戶端的連接請(qǐng)求,創(chuàng)建客戶端的套接口,定時(shí)輪詢,關(guān)閉出錯(cuò)的套接口句柄,設(shè)置相應(yīng)的變量,在下一次輪詢的時(shí)候能夠重新和相應(yīng)單板建鏈的建鏈任務(wù)(ESTT)模塊;(4)用于收到觸發(fā)消息時(shí),負(fù)責(zé)將發(fā)送緩沖區(qū)內(nèi)的數(shù)據(jù)推到網(wǎng)絡(luò)上,當(dāng)收到數(shù)據(jù)接收任務(wù)(RCVT)或建鏈任務(wù)(ESTT)得知套接口無(wú)效消息時(shí),掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了要關(guān)閉的套接口句柄關(guān)掉的發(fā)送任務(wù)(SNDT)模塊;(5)用于限時(shí)阻塞于系統(tǒng)調(diào)用select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)函數(shù),將調(diào)用recv (套接口標(biāo)準(zhǔn)接口函數(shù)之一)將數(shù)據(jù)拷貝到套接口控制表(SCBT)中相應(yīng)的接收緩沖區(qū),若接收到的是一個(gè)完整的用戶數(shù)據(jù)包,則解包后交給消息分發(fā)模塊處理,當(dāng)select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)因?yàn)槌瑫r(shí)返回時(shí),掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了已經(jīng)出錯(cuò)需要關(guān)閉的套接口句柄關(guān)掉的接收任務(wù)(RCVT)模塊。
2.一種數(shù)據(jù)處理單板之間的以太網(wǎng)通信方法,其特征在于該以太網(wǎng)通信方法包括以下步驟(1)建鏈任務(wù)首先創(chuàng)建服務(wù)端的監(jiān)聽套接口,然后非阻塞接收客戶端的連接請(qǐng)求,其次創(chuàng)建客戶端的套接口,主動(dòng)向套接口控制表(SCBT)中記錄的對(duì)端單板發(fā)出非阻塞連接請(qǐng)求,然后定時(shí)輪詢,在輪詢時(shí),建鏈任務(wù)還要掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了出錯(cuò)的套接口句柄關(guān)閉,同時(shí)在套接口控制表(SCBT)中設(shè)置相應(yīng)的變量,以便在下一次輪詢的時(shí)候能夠重新和相應(yīng)單板建鏈;(2)數(shù)據(jù)發(fā)送任務(wù)(SNDT)當(dāng)應(yīng)用程序調(diào)用本平臺(tái)提供的數(shù)據(jù)發(fā)送函數(shù)(函數(shù)名為NetCommSend )數(shù)據(jù)的時(shí)候,將純用戶數(shù)據(jù)和用戶信息合二為一,并將其拷貝到套接口控制表(SCBT)中相應(yīng)的發(fā)送緩沖區(qū),然后給數(shù)據(jù)發(fā)送任務(wù)(SNDT)發(fā)觸發(fā)消息,當(dāng)數(shù)據(jù)發(fā)送任務(wù)(SNDT)收到消息時(shí)候,負(fù)責(zé)將發(fā)送緩沖區(qū)內(nèi)的數(shù)據(jù)推到網(wǎng)絡(luò)上去。當(dāng)數(shù)據(jù)接收任務(wù)(RCVT)或建鏈任務(wù)得知套接口無(wú)效時(shí),將發(fā)消息給數(shù)據(jù)發(fā)送任務(wù)(SNDT),在收到消息的時(shí)候,數(shù)據(jù)發(fā)送任務(wù)(SNDT)掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了要關(guān)閉的套接口句柄關(guān)掉,當(dāng)應(yīng)用程序希望發(fā)送的的單板地址在套接口控制表(SCBT)中未登記時(shí),數(shù)據(jù)發(fā)送任務(wù)(SNDT)模塊將采用UDP(User DatagramProtocol,用戶數(shù)據(jù)報(bào)協(xié)議)方式將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò);(3)數(shù)據(jù)接收任務(wù)(RCVT)采用限時(shí)阻塞方式,平時(shí)它限時(shí)阻塞于系統(tǒng)調(diào)用select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)函數(shù),當(dāng)select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)返回套接口可讀條件時(shí),將調(diào)用recv (套接口標(biāo)準(zhǔn)接口函數(shù)之一)將數(shù)據(jù)拷貝到套接口控制表(SCBT)中相應(yīng)的接收緩沖區(qū),若接收到的數(shù)據(jù)已經(jīng)是一個(gè)完整的用戶數(shù)據(jù)包,則解包后交給消息分發(fā)模塊處理,當(dāng)select (套接口標(biāo)準(zhǔn)接口函數(shù)之一)因?yàn)槌瑫r(shí)返回時(shí),則掃描套接口控制表(SCBT),將被其他任務(wù)標(biāo)記了已經(jīng)出錯(cuò)需要關(guān)閉的套接口句柄關(guān)掉;(4)建鏈任務(wù)在建鏈成功后,給數(shù)據(jù)發(fā)送任務(wù)(SNDT)和數(shù)據(jù)接收任務(wù)(RCVT)套接口句柄;(5)建鏈任務(wù)在重新接入某數(shù)據(jù)處理單板(DPB)的建鏈請(qǐng)求后,在套接口控制表(SCBT)中需設(shè)置相應(yīng)的變量,讓數(shù)據(jù)發(fā)送任務(wù)(SNDT)和數(shù)據(jù)接收任務(wù)(RCVT)把失效套接口的句柄關(guān)閉;在此套接口的所有句柄全都關(guān)閉后,此套接口資源自動(dòng)釋放;(6)數(shù)據(jù)發(fā)送任務(wù)(SNDT)或數(shù)據(jù)接收任務(wù)(RCVT)在知道某一個(gè)套接口失效時(shí),在套接口控制表(SCBT)中需設(shè)置相應(yīng)的變量,讓數(shù)據(jù)發(fā)送任務(wù)(SNDT)或數(shù)據(jù)接收任務(wù)(RCVT)和建鏈任務(wù)把失效套接口的句柄關(guān)閉。
全文摘要
一種數(shù)據(jù)處理單板之間的以太網(wǎng)通信裝置,包括多個(gè)用實(shí)時(shí)操作系統(tǒng)(RTOS,Real-Time Oprating System)的數(shù)據(jù)處理單板(DPB);用于將多個(gè)數(shù)據(jù)處理單板(DPB)聯(lián)接在一起的網(wǎng)絡(luò)集線器(HUB),決定建鏈的對(duì)象與方式的套接口控制表(SCBT);用于提供數(shù)據(jù)的收發(fā)接口;建鏈任務(wù)(ESTT)模塊,數(shù)據(jù)發(fā)送任務(wù)(SNDT)模塊,數(shù)據(jù)接收任務(wù)(RCVT)模塊及代理任務(wù)(AGTT)模塊。本裝置具有如下優(yōu)點(diǎn)C/S混編技術(shù),便于代碼維護(hù),且能夠動(dòng)態(tài)地配置鏈路聯(lián)接;套接口控制表(SCBT)技術(shù),很好地解決了單板上各個(gè)任務(wù)間的控制信息交互問(wèn)題;本裝置中的通信模塊能夠根據(jù)實(shí)際情況靈活配置TCP(TransferControl Protocol,傳輸控制協(xié)議)鏈路,且無(wú)須重新啟動(dòng)單板,新配置即可生效。
文檔編號(hào)H04L12/28GK1414739SQ0113205
公開日2003年4月30日 申請(qǐng)日期2001年10月26日 優(yōu)先權(quán)日2001年10月26日
發(fā)明者沈儉 申請(qǐng)人:深圳市中興通訊股份有限公司上海第二研究所