【嵌入式系統復習】嵌入式網絡與協議棧

目錄

  • 開放式系統互連模型
  • 總線通信的報文組形式以及傳遞方式
    • 報文組形式
    • 報文傳遞方式
  • 網絡分配與調度
  • 嵌入式TCP/IP
  • 藍牙技術
    • 藍牙的節能狀態
    • 糾錯方案
    • 藍牙協議棧

開放式系統互連模型

在這里插入圖片描述

ISO/OSI七層模型展示了網絡結構與各層的功能。
應用層:
提供了終端用戶程序和網絡之間的應用程序接口
表示層:
規定了數據交換的格式并為應用程序提供有效的轉換工具
會話層:
提供了一種控制網絡上終端用戶交互的機制,例如,數據分組和檢測點
傳輸層:
定義了面向連接的服務,可以保證數據按照一定的順序無差錯地在多條鏈路上傳送,同時會對網絡資源的利用做一些優化
網絡層:
定義了基本的點到點數據傳輸服務,在多轉發網絡中特別重要
數據鏈路層:
主要作用:錯誤檢測和控制一條單個鏈路,如果網絡需要多個數據鏈路實現多轉發,那么數據鏈路層將不再保證轉發的數據的完整性。
物理層:
規定了系統間基本的接口特性,如物理連接、電氣特征、電子部件、物理部件的基本功能、位交換的基本功能。

總線通信的報文組形式以及傳遞方式

報文組形式

網絡允許多個設備相互連接,所以總線是鏈路形式,連接到總線的所有網絡設備都必須有自己的唯一地址。

在這里插入圖片描述

總線上的通信以報文組的形式進行每一個分組報文包含目的地址被傳送的數據檢錯和糾錯信息
總線上的信息交互不是通過共享內存實現的,而是在總線上通過傳遞報文來實現的。

報文傳遞方式

報文傳遞方式有請求/應答方式推移方式
1、請求/應答方式
以中斷方式為例。
發送方設計一個發送隊列,需要發送的報文先放在發送隊列中,發送中斷服務程序從發送隊列中讀取報文并進行發送。
接收方也以中斷的方式進行接收。中斷控制器接收到一個報文時會產生一個中斷,然后執行中斷服務程序,把報文交給中斷任務,由中斷任務來完成報文的處理。(報文一般較長,如果利用中斷服務程序處理報文,則會耽誤下一個報文的接收。)
在這里插入圖片描述
2、推移方式
數據的發送方在不需要等待請求的情況下主動發送數據。適用于數據發送方周期性產生數據的系統,如:
傳感器節點不斷向主機發送數據的連續過程控制系統、CAN總線網絡系統、現場總線網絡的過程數據的通信機制。
這種方式省掉了發送請求的通信量,可以減少網絡流量。

網絡分配與調度

嵌入式系統分為I/O密集型系統和計算密集型系統,所以有必要使用不同的策略。
1、對于I/O密集型系統:
入手點:I/O設備以及關聯的處理
1、編制I/O設備的清單
2、根據預算,確定哪個任務需要具有很短的進程期限,并判斷網絡傳輸是否能滿足需求
3、確定哪些任務處理元素或網絡接口
4、分析通信時間,確定關鍵性通信是否可能相互影響,確定為了達到通信的實現要求,是否需要使用復雜的網絡或多個網絡
5、為I/O設備分配所需要的最小數量的處理設備。
2、對于計算密集型系統:
入手點:進程
1、從具有最短進程期限的任務開始,任務的進程期限越短,越有可能單獨需要一個或多個處理設備。
如果一個高優先級任務與低優先級任務共享處理設備,那么不僅需要更昂貴的處理設備,而且會非線性地增加調度開銷
2、分析通信時間,確定關鍵性通信是否可能相互影響。
3、盡可能把低優先級任務分配到共享的處理設備上

嵌入式TCP/IP

TCP/IP通常被認為是一個4層協議系統:應用層,傳輸層,網絡層,網絡接口層
應用層:處理特定應用程序;把數據按照傳輸層的格式要求組織好,向下一層傳輸;
傳輸層(TCP/UDP):提供應用程序之間的通信服務(端到端通信);管理信息流動,提供可靠地傳輸服務,確保數據到達;
網絡層(IP):處理主機之間地通信問題;接受傳輸層請求,傳輸具有目的地址信息地分組,將分組封裝到IP數據包中,填入數據包頭部,把它交給適當地網絡接口傳輸。
網絡接口層:負責接受IP數據包,把數據包通過選定的網絡發送出去。
TCP與UDP區別:
TCP是一種可靠的數據流傳輸服務協議。進行通信的雙方,在傳輸數據之前必須先建立連接。數據傳輸完畢,任何一方都可以斷開連接。
由于IP數據包可能丟失、接受順序與發送順序不一致,所以TCP要能夠實現差錯恢復、排序等功能。
TCP使用滑動窗口機制實現差錯控制
UDP是一種不可靠、五連接數據包交付服務協議。它只把分組從一臺主機發送到另一臺主機,不保證該數據是否能達到另一端,可靠性由應用程序提供,它適用于一些自身提供面向連接功能的應用,如網絡監控數據交換。

藍牙技術

藍牙的節能狀態

藍牙的節能狀態:呼吸(Sniff)、保持(Hold)、停用(Park)三種狀態。
節能效率(從高到低):停用->保持->呼吸
呼吸狀態:從節點降低從網絡收聽消息的速率。
保持狀態:節點停止傳送數據,一旦激活,數據傳輸立即重新開始。
停用狀態:節點被賦予停用節點地址,并以一定間隔監聽主節點的消息。
主節點的消息包括:詢問該節點是否愿意成為活動節點、詢問任何停等節點是否愿意成為活動節點、廣播消息。

糾錯方案

糾錯方案包括:1/3前向糾錯、2/3前向糾錯、自動重傳
前向糾錯一般應用于噪聲干擾較大的信道。
SCO鏈路:使用1/3前向糾錯。
ACL鏈路:使用2/3前向糾錯。
自動重傳要求傳送的數據在下一個時隙得到確認,而確認消息的產生要求數據必須通過報頭錯誤檢測和循環冗余校驗。

藍牙協議棧

在這里插入圖片描述
硬件模塊:
射頻RF:實現數據位流的過濾和傳輸
基帶層BB:負責跳頻和藍牙數據及信息幀的傳輸
鏈路管理層LM:負責連接的建立和拆除以及鏈路的安全和控制
軟件模塊:
L2CAP屬于數據鏈路層一部分:負責向上層提供面向連接和無連接的數據服務(協議復用、分組的分割和重組、組提取)
SDP:定義藍牙服務類型和屬性發現服務的方法,提供服務瀏覽的方法
射頻通信協議RFCOMM:仿真串行電纜接口協議,通過RFCOMM,藍牙可以在無線環境下實現對高層協議(TCP/IP)的支持。
支持AT指令集,從而實現移動電話、傳真機與Modem之間的無線連接。
TCS協議:定義了藍牙設備之間建立語音和數據呼叫的控制信號。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377628.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

代碼兼容、技巧

代碼兼容、技巧 前端開發中,一個頭疼的事,就是代碼的不兼容,這里貼出自己在前端開發中的一些解決經驗。除了其瀏覽器本身的BUG外,不建議使用CSS hack來解決兼容性問題的。 IE和FF下對”li“的的高度解析不同 可以不定義高度&#…

Windows Phone 7 自定義事件

在Windows Phone的應用開發里面,對于事件這種東西我們可以隨處可見,系統本來就已經封裝好了各種各樣的事件機制,如按鈕的單擊事件等等的。在實際的開發中,我們需要自己去給相關的類自定義一些事件來滿足業務的要求,特別…

getcwd函數_PHP getcwd()函數與示例

getcwd函數PHP getcwd()函數 (PHP getcwd() function) The full form of getcwd is "Get Current Working Directory", the function getcwd() is used to get the name of the current working directory, it does not accept any parameter and returns the curren…

十四、數據庫的導出和導入的兩種方法

一、以SQL腳本格式導出(推薦) 導出 右擊需要導出的數據庫,任務—>生成腳本 下一步 選擇要導出的數據庫,下一步 內容根據需求修改,沒啥需求直接下一步 勾選 表 勾選需要導出的數據庫中的表 選擇腳本保存的路…

Apache中 RewriteCond 規則參數介紹

RewriteCond就像我們程序中的if語句一樣,表示如果符合某個或某幾個條件則執行RewriteCond下面緊鄰的RewriteRule語句,這就是RewriteCond最原始、基礎的功能,為了方便理解,下面來看看幾個例子。RewriteEngine onRewriteCond %{HTT…

【C++grammar】文件I/O流的基本用法

目錄1、輸入輸出類介紹1.C/C文件操作對比2.什么是流?3.C I/O流類層次4.帶緩沖的輸入輸出5.gcc編譯器cin.in_avail()2、向文件寫入數據1.寫文件小練習2.如何將信息同時輸出到文件和屏幕?3、從文件讀數據1.檢測文件是否成功打開2.檢測是否已到文件末尾3.讀…

作業2 分支循環結構

書本第39頁 習題2 1.輸入2個整數num1和num2.計算并輸出它們的和&#xff0c;差&#xff0c;積&#xff0c;商&#xff0c;余數。 //輸入2個整數num1和num2.計算并輸出它們的和&#xff0c;差&#xff0c;積&#xff0c;商&#xff0c;余數。//#include<stdio.h> int main…

求一個序列中最大的子序列_最大的斐波那契子序列

求一個序列中最大的子序列Problem statement: 問題陳述&#xff1a; Given an array with positive number the task to find the largest subsequence from array that contain elements which are Fibonacci numbers. 給定一個具有正數的數組&#xff0c;任務是從包含菲波納…

十三、系統優化

系統整體框架圖 程序運行進入紡織面料庫存管理系統主頁面 用戶子系統功能演示&#xff1a; 1&#xff0c;點擊用戶登錄進入用戶登錄頁面&#xff0c;可以注冊和找回密碼 2&#xff0c;注冊新用戶&#xff0c;賬號、密碼、性別、手機號均有限制&#xff0c;用戶注冊需要按指定…

時間工具類[DateUtil]

View Code 1 package com.ly.util;2 3 import java.text.DateFormat;4 import java.text.ParseException;5 import java.text.SimpleDateFormat;6 import java.util.Calendar;7 import java.util.Date;8 9 /**10 * 11 * 功能描述12 * 13 * authorAdministrator14 * Date Jul 19…

JQuery delegate多次綁定的解決辦法

我用delegate來控制分頁&#xff0c;查詢的時候會造成多次綁定 //前一頁、后一頁觸發 1 $("body").delegate("#tableFoot a:not(a.btn)", "click", function () { 2 _options.page $(this).attr("page"); 3 loadTmpl(_option…

leetcode 45. 跳躍游戲 II 思考分析

題目 給定一個非負整數數組&#xff0c;你最初位于數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 你的目標是使用最少的跳躍次數到達數組的最后一個位置。 示例: 輸入: [2,3,1,1,4] 輸出: 2 解釋: 跳到最后一個位置的最小跳躍數是 2。 從下標為 …

C程序實現冒泡排序

Bubble Sort is a simple, stable, and in-place sorting algorithm. 氣泡排序是一種簡單&#xff0c;穩定且就地的排序算法。 A stable sorting algorithm is the one where two keys having equal values appear in the same order in the sorted output array as it is pre…

一、爬蟲基本概念

一、爬蟲根據使用場景分類 爬蟲&#xff1a; 通過編寫程序&#xff0c;模擬瀏覽器上網&#xff0c;讓其去互聯網上抓取數據的過程。 ① 通用爬蟲&#xff1a;抓取系統重要的組成部分&#xff0c;抓取的是一整張頁面的數據 ② 聚焦爬蟲&#xff1a;建立在通用爬蟲的基礎之上&am…

經營你的iOS應用日志(二):異常日志

如果你去4S店修車&#xff0c;給小工說你的車哪天怎么樣怎么樣了&#xff0c;小工有可能會立即搬出一臺電腦&#xff0c;插上行車電腦把日志打出來&#xff0c;然后告訴你你的車發生過什么故障。汽車尚且如此&#xff0c;何況移動互聯網應用呢。 本文第一篇&#xff1a;經營你的…

Discuz 升級X3問題匯總整理

最近一段時間公司的社區垃圾帖數量陡然上漲&#xff0c;以至于社區首頁的推薦版塊滿滿都是垃圾帖的身影&#xff0c;為了進一步解決垃圾帖問題我們整整花了1天時間刪垃圾貼&#xff0c;清除不良用戶&#xff0c;刪的手都酸了&#xff0c;可見垃圾帖的數量之多&#xff01;可恥的…

【C++grammar】格式化輸出與I/O流函數

目錄1、格式化輸出1. setw manipulator(“設置域寬”控制符)2. setprecision manipulator(“設置浮點精度”控制符)3. setfill manipulator(“設置填充字符”控制符)4. Formatting Output in File Operation(在文件操作中格式化輸入/輸出)5.小練習2、用于輸入/輸出流的函數1. g…

python 忽略 異常_如何忽略Python中的異常?

python 忽略 異常什么是例外&#xff1f; (What is an Exception?) An exception is an event, which occurs during the execution of a program that interrupts the normal execution of the application. Generally, any application when encountered with a situation t…

三、實戰---爬取百度指定詞條所對應的結果頁面(一個簡單的頁面采集器)

在第一篇博文中也提及到User-Agent&#xff0c;表示請求載體的身份&#xff0c;也就是說明通過什么瀏覽器進行訪問服務器的&#xff0c;這一點很重要。 ① UA檢測 門戶網站服務器會檢測請求載體的身份。如果檢測到載體的身份表示為某一款瀏覽器的請求&#xff0c;則說明這是一…

Spring MVC攔截器實現分析

SpringMVC的攔截器不同于Spring的攔截器&#xff0c;SpringMVC具有統一的入口DispatcherServlet&#xff0c;所有的請求都通過DispatcherServlet&#xff0c;所以只需要在DispatcherServlet上做文章即可&#xff0c;DispatcherServlet也沒有代理&#xff0c;同時SpringMVC管理的…