以 LAN 模式建構單晶片嵌入式伺服器之網路架構 作者 : 黃冠穎 ( ); 推薦 : 徐業良 ( ) 以 LAN 模式建構單晶片嵌入式伺服器之網路架構 本文介紹如何以 LAN 模式建構單晶片嵌入式伺服器 ARM 與 PIC_SERVER 之間的雙向溝通, 應用在

Similar documents
9 Internet 10 Internet

经华名家讲堂

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

Microsoft PowerPoint - 数据通信-ch1.ppt

计算机网络

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

Microsoft Word - DIR-615_B2_Manual_1.00_T_.doc

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 计 算 机 网 络 在

工程师培训

<4D F736F F F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>

第3章 计算机网络体系结构

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

1. 二 進 制 數 值 ( ) 2 轉 換 為 十 六 進 制 時, 其 值 為 何? (A) ( 69 ) 16 (B) ( 39 ) 16 (C) ( 7 A ) 16 (D) ( 8 A ) 在 電 腦 術 語 中 常 用 的 UPS, 其 主 要 功 能

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

Microsoft PowerPoint - 01-ch01-4.ppt

ebook

Chapter #

C3_ppt.PDF

untitled

Data Server_new_.doc

穨CAS1042快速安速說明.doc


01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Fl

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc

( CIP) /,. - :, ISBN TP312 CIP ( 2004 ) : ( ) : : : : /16 : 21 : 347 : : : I

<4D F736F F D20D2F8D0D043444D41CEDECFDFBDD3C8EB41544DBBFAC1AACDF8D3A6D3C3BDE2BEF6B7BDB0B82DD0DEB8C4B0E62E646F63>

目 彔 1. 准 备 工 作 登 彔 设 置 功 能 说 明 实 时 监 控 基 本 控 制 功 能 设 置 画 质 调 节 彔 像 与 抓 拍

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft PowerPoint - Socket programming.ppt [相容模式]


Microsoft PowerPoint - Lab 07.ppt

IPv6 Multicast骨幹網路建置參考

AL-M200 Series

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

校友会系统白皮书feb_08

PowerPoint 演示文稿

untitled

C6_ppt.PDF

SL2511 SR Plus 操作手冊_單面.doc

<4D F736F F D20312D3120B9ABBFAAD7AAC8C3CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A92E646F63>

, 60 IBM 多 个 计 算 机 互 联 的 计 算 机 网 络 60 HOS HOS 1-1a 1-1b HOS FEP 1-1c ARPANE(Advanced Research Project Agency Network) ARPA (1) 1-2 IMP

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

Microsoft PowerPoint - 96遠東科大通訊網路CAN Bus

ch09.PDF

Microsoft Word T-REC-Y C.doc

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

Microsoft Word htm


Microsoft Word - 選擇_無解答2_.doc

IP505SM_manual_cn.doc

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

ebook67-9

<A4E2BEF7B4FAB8D5B3F8A F52322E786C7378>

R3105+ ADSL

Microsoft PowerPoint - 01-ch01-1.ppt

005-1

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5

<4D F736F F D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A92E646F63>

<4D F736F F F696E74202D DB371B054A8F3A977A94DBAF4B8F4BCD2ABAC2E BB0DFC5AA5D205BACDBAE65BCD2A6A15D>

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

(標題)

課程簡介

untitled

Microsoft Word - cr_xi_supported_platforms_tw.doc

ebook

Microsoft Word - Dis3_Ch B_Lab_Student.doc

SyncMail AJAX Manual

致 谢 4.0 版 评 审 员 Alain Abran École de Technologie Supérieure, Université du Québec Canada Peter Fagg Pentad United Kingdom Jayakumar K. R. Amitysoft In

WebST 3.0管理员手册

计算机网络

PPP Intranet Chapter 3 Chapter IaaS PaaS SaaS

一、选择题

<4D F736F F D D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63>

班 進 行 人 數 加 權 分 析 ;( 三 ) 建 議 就 教 學 意 見 調 查 分 數 與 該 名 學 生 成 績 作 統 計 分 析 ( 祝 若 穎 博 士 : 第 ( 一 ) ( 三 ) 項 上 次 會 議 已 詳 細 報 告 教 務 長 : 第 ( 二 ) 項 為 呈 現 原 始 數 據

Microsoft Word - 第3章.doc

<4D F736F F D20B8DFB5C8D1A7D0A3B1BEBFC6CEEFC1AACDF8B9A4B3CCD7A8D2B5D3A6D3C3D0CDC8CBB2C5C5E0D1F8D6B8B5BCD2E2BCFBA3A B0E6A3A92E646F6378>

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

第7章 網路概論

计算机网络概论

飞鱼星多WAN防火墙路由器用户手册

Transcription:

作者 : 黃冠穎 (2009-03-31); 推薦 : 徐業良 (2009-03-31) 本文介紹如何以 LAN 模式建構單晶片嵌入式伺服器 ARM 與 PIC_SERVER 之間的雙向溝通, 應用在遠端臨場機器人 (Telepresence Robot for Interpersonal Communication, TRIC) 各模組間的資訊溝通 本研究使用凱斯電子科技公司 (http://www.kaise.com.tw/) 的 KS2410 開發板, 與 YZU PIC_SERVER 為模組進行開發 1. 系統架構本研究選用其處理器為 ARM920T 的 Samsung S3C2410X-KS_2410 開發板 ( 以下簡稱 ARM) 與 PIC_SERVER V3.X 板作為硬體設備進行架構, 兩者皆具有乙太網路 (Ethernet) 與網際網路 (Internet) 等通訊功能, 本研究採用 TCP 與 HTTP 兩種通訊協定進行溝通 本節首先簡單介紹 TCP/IP 架構模式和 HTTP 通訊協定, 接著敘述本研究建立之系統架構 1.1 TCP/IP 架構模式簡介 1978 年 International Standardization Organization(ISO) 制訂了一套網路模型標準架構, 稱做 Reference Model for Open System Interconnection (OSI), 廣泛被引用來說明數據通訊協定的結構及功能 如圖 3-1 所示,OSI 把數據通訊的各種功能分為七個層級, 在功能上又可以被劃分為兩組 : 網路群組 : 由實體層 資料連接層 和網路層組成 使用者群組 : 由傳送層 會談層 表示層 和應用層組成 1

圖 3-1. OSI 網路模型 層層相疊的 OSI 架構常被稱為 堆疊 (stack), 或是 協定堆疊, 如圖 3-2 所示, 發送端與接收端溝通時, 每一層協定皆只與對方相同的層級溝通, 然後將資料串向相鄰的上下兩層協定解釋 同一層彼此之間如何傳送資料都有必然的規則, 各層不需要知道其他層是如何工作的, 只關心相同層級的協定即可 這樣的網路模型明顯的好處是留給各層都有自己的設計與發展空間, 當某一層要進行協定更新時, 其他層無需同時被修改 圖 3-2. OSI 網路模型傳輸 [.] 2

OSI 網路模型提到的七層協定, 在實際應用中某些層級常常會被整合在一起, 如 TCP/IP 便是一個四層的架構模式 TCP/IP 字面上代表了兩個協定 :TCP(Transmission Control Protocol, 傳輸控制協定 ) 和 IP(Internet Protocol, 網際協定 ) TCP/IP 模式的架構中則只分為實體層 網路層 傳輸層與應用層四層, 但並不代表其省略了 OSI 中某一層的功能, 而是將 OSI 中某些層的功能合併為一層, 目的在簡化系統設計 表 3-1 為 OSI 網路架構與 TCP/IP 的網路架構比對圖 表 3-1. 架構比對圖 ISO/OSI 分層應用層 (Application Layer) 表示層 (Presentation Layer) 交談層 (Session Layer) 傳輸層 (Transport Layer) 網路層 (Network Layer) 資料連結層 (Data Link Layer) 實體層 (Physical Layer) TCP/IP 分層應用層 (Application Layer) 傳輸層 (Transport Layer) 網路層 (Network Layer) 實體層 (Physical Layer) TCP 與 HTTP 各分別歸類在 TCP/IP 架構的傳輸層與應用層內 傳輸層能夠解決諸如可靠性與保證資料按照正確的順序到達等問題 ; 應用層定義了應用程式 (FTP E-mail HTTP ) 是如何進入 OSI 模式進行傳送 應用層支持使用者所選用的應用程式做檔案傳送和密碼驗證等動作, 但其本身並不屬於應用程式 TCP 現為網路上最常用的一種標準傳輸控制協定, 提供可靠的傳遞方式, 保證資料完整 無損並且按順序到達 ;HTTP 為 Hypertext Transport Protocol 的簡稱, 是網際網路上應用最為廣泛的一種超文件傳輸協定, 也是一個客戶端和伺服端發送請求和應答的標準 在實際用法上, 使用者選用應用層中的某一個應用程式向傳輸層發送用於網路間傳輸的資料串, 在傳輸層中使用 TCP 的方式把資料串分割成適當的長度, 打包成一個封包發送給網路層, 由網路層將封包傳送給接收端 為了不遺失封包,TCP 利用編號的方式將封包按序發送, 同時接收端也按序接收, 並回報一個確認 (ACK), 如發送端未收到確認, 那麼對應的數據可能流失, 將會被重傳 相對於 TCP 而言,HTTP 是架在 TCP 協定上的一種應用程式, 但 HTTP 在溝通上較為麻煩, 使用環境與閘道較複雜, 相比之下 TCP 在使用設定上較簡單容易, 只 3

做一次的資料答覆就結束通訊 由於一般大眾或業者在網路的選擇上廣泛使用 HTTP 作為使用者應用介面, 故本研究在網路架構設計上依不同的網域需求分別使用此兩種通訊方式 1.2 系統網路架構 圖 3-3 為本研究建立的系統架構圖 如圖所示, 網路環境分為開放式的網際網路 (Internet) 與封閉式的區域網路 (LAN) 等兩種網域 圖 3-3. 系統網路架構 由於開放式的網路環境會因使用者端使用不同的網路連線方式與設定而增加其複雜度, 本研究在遠端臨場機器人 TRIC 的應用上, 在 ARM 端與使用者端之間的網路環境選擇以 HTTP 通訊協定的方式傳遞資訊, 而在區域網路內, 以 ARM 作為伺服主機透過路由器 (Router) 連接外部網域, 若各模組要對外網際網路傳訊溝通皆須統一透過 ARM 向外溝通, 即各終端 PIC_SERVER 不直接對外溝通, 且各個模組之間採用簡單的 TCP 方式通訊即可 如圖 3-4 所示,ARM 與 PIC_SERVER 透過路由器上網, 遠端使用者發出 HTTP 訊息經由網際網路傳送至 ARM, 由 ARM 判斷訊息後再依指令執行其所需的動作, 或將指令用 TCP 方式轉發給指定的 PIC_SERVER 執行動作 ;PIC_SERVER 亦可發送指令給 ARM 或其他模組 ; 各個 PIC_SERVER 若需回報資訊, 也都會經 ARM 匯集資訊後回傳給遠方使用者 4

圖 3-4. 系統通訊模式 2. PIC_SERVER 程式需求與流程 等程式 本節敘述如何在 PIC_SERVER 同時建立 HTTP Server TCP Server 與 TCP Client 2.1 PIC_SERVER 程式設計 本研究將 PIC_SERVER 範例程式 ex_6_tcp_server.c 與 ex_8_tcp_client_1.c 稍作修改, 將兩程式部分整合即可在同一塊 PIC_SERVER 板上, 以同時達到 TCP Server 與 TCP Client 等功能 圖 3-4 紅色框部分程式為開通網路功能讓 PIC_SERVER 上網, 有此程式即完成 Server 功能 ; 圖 3-5 紅色框部分程式為 PIC_SERVER 當 CLIENT 端使用時, 設定 TCP 通訊欲發送之 IP 與 Port 位址程式, 讓 PIC_SERVER 知道須向那個位址發送資訊 5

圖 3-4. 開啟 SERVER 端功能 圖 3-5. 設定位址 至此已開啟了 PIC_SERVER 的 Server 與 Client 兩功能, 發送的命令必須寫在下圖中的 Callback function 裡面,Callback function 掌管了 PIC_SERVER 所有從網路接收或發送訊息的功能 圖 3-6 與圖 3-7 分別為 Client 端與 Server 端發送與回報的部分程式 6

圖 3-6. Client 端發送與回報 圖 3-7. Server 端發送與回報 將以上 4 個部分的程式統合在一起即可讓 PIC_SERVER 同時擁有 HTTP Server TCP Server 與 TCP Client 等功能, 使用者可依所需功能再做其他增加與修改 7

3. KS_2410 程式設計與流程在 ARM9 開發版 KS_2410 上有掛載 Linux 作業系統, 本研究主要以 Linux 下的 C 語言來撰寫程式 Linux 作業系統是使用 socket 觀念來設計網路程式 Socket 稱之為窗口, 是一種可做雙向資料傳輸的通道, 可將其想像成一種裝置,Linux 程式需經由此裝置與本地或是遠端的程序作溝通 本研究在程式設計上使用的是 Internet-domain socket 結構的相關函數, 並運用 IPv4 socket 定址結構來儲存 IP 位址 通訊埠等訊息, 用來與遠端做溝通 3.1 Linux TCP 程式設計流程 本節先介紹 Linux TCP Server 與 TCP Client 兩種程式設計流程 要完成 TCP 網路程式, 需要呼叫許多相關的 socket 函數來幫助我們撰寫 以下分別介紹引用的相關函數與設計流程 (1) Socket 要使用 TCP 就需要透過 socket 做資料傳輸, 首要工作是先建立 socket, 可使用 socket() 函數 (2) Bind 在 TCP 通訊協定中, 使用 bind() 函數將 IPv4 socket 定址結構聯繫到我們所建立的 socket, 每當封包到達網路介面時,Linux 便會將這個封包導向其所連結的 socket (3) Listen 建立好 socket 並做好 bind 後, 在 Server 端我們使用 listen() 函數來通知 Linux 建立 listening socket, 等待 Client 端的連線要求 (4) Accept 當 Server 端建立好 listening socket 且接收到 Client 端的連線請求, 就會把連線請求放到連線佇列中,Server 會呼叫 accept() 函數來處理其連線請求 8

(5) Connect 在 TCP 中, 當 Client 端建立好 socket 後, 可以呼叫 connect() 函數向 Server 端要求連線, 確定連線後, 彼此就能互傳資料 (6) Close 最後, 呼叫 close() 函數來終止 Server 端與 Client 端的 socket 連結 綜合以上說明, 可用圖 3-8 來表示 Linux TCP 程式設計流程 圖 3-8. Linux TCP 程式設計流程 9

3.2 Linux TCP Server 程式設計 圖 3-9 所示為 Linux TCP Server 程式 圖中第 6 至 13 行為引用的函數宣告 ; 第 15 行定義 Port 為 3334; 第 19 20 行為定義 IPv4 結構 ; 第 36 至 38 行使用 socket() 函數建立 socket; 第 42 至 46 行為儲存與開通 socket 的 IP 位址與通訊埠 ; 第 49 50 行使用 bind() 函數連結 socket; 第 53 54 行使用 listen() 函數聆聽 Client 端連線請求 ; 第 59 60 行是當 Client 端要求連線後, 使用 accept() 函數處理連線, 使用者可在第 62 行之後可加入自己所想要處理的動作程序, 第 128 至 131 行為 Server 端回報資訊給 Client 端 ; 第 136 行為處理完一次連線後使用 close() 函數結束此次連線, 跳出迴圏, 等待下一次接受連線再重新作動 10

圖 3-9. Linux TCP Server 程式設計 3.3 Linux TCP Client 程式設計 圖 3-10 為 Linux TCP Client 程式 圖中第 6 至 10 行為引用的函數宣告 ; 第 14 行為定義 IPv4 結構 ; 第 35 至 38 行為儲存與開通 socket 的 IP 位址與通訊埠 ; 第 41 至 45 行使用 socket() 函數建立 socket; 第 47 50 行使用 connect() 函數向 Server 端建立連線, 使用者可在第 51 行之後可加入自己所想要處理的動作程序, 第 53 至 57 行為將指令發送給指定位址的 Server 端做動 ; 第 60 至 63 行為 Client 端列印資訊回報給 Server 端 ; 第 67 行為處理完一次發送程序後使用 close() 函數結束此次連線, 跳出迴圏, 等待下一次開啟連線再重新作動 11

圖 3-10. Linux TCP Client 程式設計 12