通用可靠的串口/以太網(wǎng)網(wǎng)關(guān)設計
摘要:介紹了一種串口/以太網(wǎng)嵌入式網(wǎng)關(guān)的設計方案,詳細討論了串口可靠通信的實(shí)現方法,并在開(kāi)源操作系統RTThread和微處理器S3C2 440開(kāi)發(fā)板的軟硬件平臺上實(shí)現。網(wǎng)關(guān)實(shí)際應用于一個(gè)無(wú)線(xiàn)傳感器網(wǎng)絡(luò )項目,實(shí)驗表明該網(wǎng)關(guān)能實(shí)現可靠的數據通信。
關(guān)鍵詞:串口/以太網(wǎng)網(wǎng)關(guān);可靠串口通信;RT-Thread;S3C2440
引言
隨著(zhù)物聯(lián)網(wǎng)的蓬勃發(fā)展,越來(lái)越多的傳統本地設備或網(wǎng)絡(luò )有接入計算機網(wǎng)絡(luò )的需求,而這些傳統沒(méi)備一般都是不具備網(wǎng)絡(luò )接口的非IP設備。最常用的通信接口是串口,不能直接接入計算機網(wǎng)絡(luò ),在不改變這些原有設備的基礎上,使用串口/以太網(wǎng)網(wǎng)關(guān)來(lái)接入計算機網(wǎng)絡(luò )的方式不失為一種比較好的解決方案。
基于此需求,設計和實(shí)現了串口/以太網(wǎng)網(wǎng)關(guān),網(wǎng)絡(luò )結構如圖1所示。實(shí)現了非IP設備與IP設備間的數據通信,并特別考慮了串口通信的可靠性,從軟件和硬件兩方面詳細討論了保證串口通信可靠性的方法。IP端通信的可靠性由TCP/IP協(xié)議保證,這樣就保證了串口設備與IP設備間通信的可靠性。
1 網(wǎng)關(guān)工作原理
1.1 概 述
網(wǎng)關(guān)實(shí)現串口設備和以太網(wǎng)之間的協(xié)議轉換,具體表現為幀格式的轉換,可表示為:
Socket幀←→凈荷數據←→串口幀
其中Socket(套接字)幀和串口幀郜是為實(shí)現網(wǎng)關(guān)可靠通信而自定義格式的幀,凈荷數據為真正需要傳送的應用數據。
網(wǎng)關(guān)的數據通信可分為兩部分:網(wǎng)絡(luò )端和串口端,要保證整個(gè)網(wǎng)關(guān)通信的可靠性,那么就要分別保證網(wǎng)絡(luò )端和串口端通信的可靠性。
在網(wǎng)絡(luò )端,網(wǎng)關(guān)使用了流式套接字。流式套接字使用TCP協(xié)議,而TCP協(xié)議是面向連接的,保證了數據傳輸的正確性和順序性。所以,流式的套接字可以提供可靠的、面向連接的通信流。但是,流式數據對應用來(lái)說(shuō)不易使用,所以Socket數據傳送都是基于幀格式的。
在串口端,串口數據傳送本質(zhì)上也是字節流式的,在硬件層次是不可靠的,而且不能保證數據的完整性,需要在軟件上有一些其他機制來(lái)保證可靠性。所以,網(wǎng)關(guān)串口的數據傳送同樣基于幀格式,并且使用了接收確認、超時(shí)重發(fā)、差錯校驗等機制來(lái)保證可靠性。
圖2為網(wǎng)關(guān)工作時(shí)的數據流示意圖。圖中3個(gè)帶箭頭的橢圓表示3個(gè)線(xiàn)程,圖中未畫(huà)出建立Socket連接、串口初始化和線(xiàn)程啟動(dòng)等過(guò)程。
tcp/ip相關(guān)文章:tcp/ip是什么
評論