新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于PXA270嵌入式系統(tǒng)的Socket通信設計

基于PXA270嵌入式系統(tǒng)的Socket通信設計

作者: 時間:2009-05-18 來源:網(wǎng)絡 收藏

1 引言
是Intel 公司的一款XScale 架構的高集成度高性能處理器,采用ARMv5TE內(nèi)核,包含了Intel的SpeedStep 技術,優(yōu)化了處理器的功耗,可以動態(tài)調(diào)節(jié) CPU 的電壓和頻率來節(jié)省電源的功耗。支持多種操作,如Linux、WinCE、Nucleus、Palm OS、VxWorks等。
接口是網(wǎng)絡層的API,定義了許多函數(shù)和例程,可以用它們來開發(fā)網(wǎng)絡層的應用程序。網(wǎng)絡的數(shù)據(jù)傳輸是一種特殊的I/O,具有一個類似于打開文件的函數(shù)調(diào)用(),該函數(shù)返回一個整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^該Socket實現(xiàn)的。
2
分為服務器端和客戶端兩部分,服務器端為運行Linux操作系統(tǒng)的PC機,客戶端為系統(tǒng),在該系統(tǒng)中移植和構建Linux操作系統(tǒng),兩者通過Switch交換機進行網(wǎng)絡。
2.1 系統(tǒng)工作原理
在Linux 操作系統(tǒng)中,Socket 屬于文件系統(tǒng)的一部分,網(wǎng)絡可以被看作是對文件的讀取。Linux 擁有POSIX 標準庫函數(shù),Socket()、Bind()、Sendto()、Recvfrom()等庫函數(shù)可以方便地實現(xiàn)客戶/ 服務器模型中數(shù)據(jù)的傳送與接收。系統(tǒng)設計主要的目的是完成服務器和客戶端網(wǎng)絡的實現(xiàn)。首先啟動宿主機和客戶機的操作系統(tǒng)Linux,然后每個模塊加載網(wǎng)絡設備驅(qū)動程序,最后通過協(xié)議建立雙方的通信鏈路,完成Socket通信,詳細情況如圖1所示。
2.2 嵌入式TCP/IP協(xié)議架構
作為TCP服務器,在三次握手建立連接的過程中,作為監(jiān)聽狀態(tài)的服務器,處于LISTEN狀態(tài),等待對方發(fā)起連接。當它接收到SYN數(shù)據(jù)片,立即發(fā)出SYN+ACK的數(shù)據(jù)片確認收到對方的SYN,此時變?yōu)镾YN_ RECEIVED狀態(tài)。再接收到對方返回的一個包含ACK的空數(shù)據(jù)片則三次握手完成,進入ESTABLISHED狀態(tài),最后進行TCP數(shù)據(jù)通訊。

本文引用地址:http://butianyuan.cn/article/152489.htm

圖1 系統(tǒng)的原理示意圖
建立連接時初始化序列號,然后根據(jù)對方發(fā)包中的值來確定序列號,不記憶序列號,不能識別重復報文。嵌入式服務器僅僅在服務器端響應客戶端的請求,接收一個發(fā)送一個確認回答,不考慮失序問題。同時接收到TCP請求后,將存儲于發(fā)送緩沖區(qū)中的數(shù)據(jù)立即發(fā)送即可,只需一個數(shù)據(jù)包就能完成,也不需考慮失序問題。
因為嵌入式系統(tǒng)采用滑動窗口為1的傳輸方式,即發(fā)送一次數(shù)據(jù)包就等待返回應答,因此當接收不到確認包,就認為自己發(fā)送的包丟失,直接發(fā)送上次發(fā)送的數(shù)據(jù)。TCP的連接中,當客戶機異常導致連接崩潰時,嵌入式系統(tǒng)發(fā)數(shù)據(jù)時會被回復復位信號,回到初始狀態(tài)。嵌入式TCP/IP協(xié)議如圖2所示。
3 客戶端/服務器端功能設計
在TCP/IP網(wǎng)絡中,通信的兩個進程間相互作用的主要模式是客戶/服務器模式,即客戶端向服務器端發(fā)出服務請求,服務器接收到請求后,提供相應的服務。客戶/服務器模式在操作過程中采取的是主動請求方式。

圖2 嵌入式TCP/IP圖解

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

tcp/ip相關文章:tcp/ip是什么



上一頁 1 2 3 4 下一頁

評論


相關推薦

技術專區(qū)

關閉