- 嵌入式通信系統(tǒng)
- 張曉勇 彭軍
- 2255字
- 2019-10-12 16:30:35
2.2.3 嵌入式通信軟件設(shè)計
1.嵌入式通信軟件的組成
(1)嵌入式通信軟件構(gòu)建類型
廣義地劃分,通信系統(tǒng)有兩類軟件構(gòu)件:協(xié)議軟件(應(yīng)用軟件)和系統(tǒng)軟件。協(xié)議軟件實現(xiàn)協(xié)議規(guī)范;而系統(tǒng)軟件(含基礎(chǔ)軟件)通常包括一個實時操作系統(tǒng)和管理硬件的基礎(chǔ)軟件。
協(xié)議軟件實現(xiàn)協(xié)議規(guī)范中詳細(xì)規(guī)定的協(xié)議。規(guī)范由一些國際標(biāo)準(zhǔn)化組織制定,如ISO、IEEE、ITU-T等。協(xié)議實現(xiàn)通常基于狀態(tài)事件機,也叫狀態(tài)機。狀態(tài)機是協(xié)議實現(xiàn)的核心,其形式通常為一狀態(tài)事件遷移圖,記錄一系列規(guī)則來指出在某一事件下應(yīng)執(zhí)行的動作。
基礎(chǔ)軟件包括緩沖區(qū)管理、動態(tài)內(nèi)存管理、定時器管理、資源管理、模塊間的通信,其他軟件模塊的監(jiān)視、硬件模塊的狀態(tài)管理等。系統(tǒng)軟件包括實時操作系統(tǒng)和設(shè)備驅(qū)動程序等。
(2)嵌入式通信軟件設(shè)計考慮
①硬件體系結(jié)構(gòu)。
②RTOS是否選定。
③需要什么樣的性能。
④需要實現(xiàn)那些協(xié)議。
⑤實現(xiàn)時要使用哪些全局?jǐn)?shù)據(jù)結(jié)構(gòu)和表。
⑥需要什么樣的緩沖區(qū)管理和定時器管理。
⑦告警、統(tǒng)計處理機制。
⑧系統(tǒng)測試方法。
2.通信軟件結(jié)構(gòu)模型
(1)通信系統(tǒng)軟件結(jié)構(gòu)模型(見圖2-2)

圖2-2 通信系統(tǒng)軟件結(jié)構(gòu)模型
(2)系統(tǒng)塊與功能塊關(guān)系模型
系統(tǒng)塊由多個功能塊組成。在這些功能塊里,只有一塊功能塊與環(huán)境交互,它收集環(huán)境中發(fā)生的事件,把它們轉(zhuǎn)換成可以處理的消息,發(fā)給相應(yīng)的進程。同時,它還接收各功能塊中進程發(fā)往環(huán)境的消息,把它們轉(zhuǎn)換成硬件可以執(zhí)行的動作或操作系統(tǒng)的系統(tǒng)調(diào)用。
3.通信系統(tǒng)協(xié)議軟件實現(xiàn)
(1)狀態(tài)機
協(xié)議是通信系統(tǒng)功能的核心,而協(xié)議實現(xiàn)的核心是狀態(tài)機。協(xié)議有些是有狀態(tài)的,有些是無狀態(tài)的。如IP轉(zhuǎn)發(fā)是無狀態(tài)的,其轉(zhuǎn)發(fā)動作的執(zhí)行不依賴以前的行為或數(shù)據(jù)包。而7號信令系統(tǒng)中的TUP協(xié)議是有狀態(tài)的,其呼叫流程是和以前的行為或數(shù)據(jù)包密切相關(guān)的。
(2)協(xié)議數(shù)據(jù)單元處理
①PDU預(yù)處理:主要包括包文法檢查及校驗和驗證等工作。
②給狀態(tài)機的事件:預(yù)處理完成確定包的類型,并將適當(dāng)?shù)氖录鹘o狀態(tài)機,狀態(tài)機完成數(shù)據(jù)包的解析,將協(xié)議數(shù)據(jù)轉(zhuǎn)換為編程數(shù)據(jù),狀態(tài)機根據(jù)消息類型及消息攜帶的具體參數(shù)執(zhí)行下一步動作。
③PDU傳輸:狀態(tài)機完成相應(yīng)動作后將產(chǎn)生的結(jié)果以消息的形式,結(jié)合具體所需參數(shù),利用PDU組包功能,將編程數(shù)據(jù)轉(zhuǎn)化為協(xié)議數(shù)據(jù),發(fā)送到線路上,傳送給對方。因此,概括地講,協(xié)議數(shù)據(jù)單元處理就是PDU的校驗、組包及解包過程,該步驟直接影響狀態(tài)機的執(zhí)行。
(3)協(xié)議接口
協(xié)議任務(wù)并非孤立存在或執(zhí)行,需要和系統(tǒng)環(huán)境中的其他成分接口和交互包括:
①實時操作系統(tǒng);
②存儲管理;
③緩沖區(qū)管理;
④時間管理;
⑤事件管理;
⑥進程間通信;
⑦驅(qū)動程序接口;
⑧配置與控制。
(4)協(xié)議軟件數(shù)據(jù)結(jié)構(gòu)
①表:表主要有四類。
● 配置:用于設(shè)置操作參數(shù)和邊界的讀/寫或只讀。例如,口令就是配置參數(shù)。
● 控制:用于改變通信軟件模塊的讀/寫信息。例如,開啟或關(guān)斷協(xié)議,主備用切換標(biāo)志設(shè)置等就是控制。
● 狀態(tài):詳細(xì)反映當(dāng)前操作狀態(tài)的只讀信息。例如,HDLC鏈路的運行狀態(tài)就是狀態(tài)變量。
● 統(tǒng)計:模塊記數(shù)或監(jiān)視到的只讀信息。例如,對一個對模塊接收或發(fā)送的報文數(shù)記數(shù)的變量就是統(tǒng)計變量。
②其他的數(shù)據(jù)結(jié)構(gòu):
● 進程控制塊:記錄協(xié)議模塊中各進程狀態(tài),參數(shù)等信息的數(shù)據(jù)結(jié)構(gòu)。
● 接口控制塊:記錄模塊或進程間通信端口狀態(tài)及信息的數(shù)據(jù)結(jié)構(gòu)。
③實現(xiàn):在協(xié)議軟件中使用的數(shù)據(jù)結(jié)構(gòu)表、進程控制塊、接口控制塊,通常使用數(shù)組、鏈表、樹結(jié)構(gòu)等方式實現(xiàn)。
為了能夠快速、有效地訪問數(shù)據(jù)結(jié)構(gòu),主要根據(jù)不同對象設(shè)計不同的HASH算法直接定位的方式實現(xiàn)。
(5)配置與控制
協(xié)議的配置與控制是指協(xié)議的管理。
①開啟和關(guān)斷協(xié)議;
②開啟和關(guān)斷特定端口的協(xié)議;
③特定接口的編址;
④設(shè)置最大幀尺寸;
⑤協(xié)議消息超時管理;
⑥對等實體的超時處理;
⑦鑒別安全信息;
⑧流量參數(shù)管理;
⑨封裝信息。
(6)系統(tǒng)啟動
①對各種表的大小參數(shù)進行初始化;
②為動態(tài)數(shù)據(jù)結(jié)構(gòu)和狀態(tài)表分配內(nèi)存;
③狀態(tài)表變量初始化;
④緩沖區(qū)和定時器接口初始化;
⑤從本地源讀入配置,并對配置初始化;
⑥高層和低層接口初始化,包括向高層和/或低層注冊;
⑦需要時創(chuàng)建和啟動其他的協(xié)議任務(wù);
⑧在無限循環(huán)中等待。
4.多板通信軟件的設(shè)計
通信系統(tǒng)很復(fù)雜,通常在一個機殼上有多塊板,甚至有多個機殼。本小節(jié)討論通信中常用的多板設(shè)計中軟件結(jié)構(gòu)的變化。
(1)板件通信協(xié)議及實現(xiàn)
板間通信協(xié)議(ICCP或ICP)解決各主控板之間的通信問題和主控板和硬件插板的通信問題。目前使用的通信方式:TCP、UDP、HDLC等。
板間通信協(xié)議的實現(xiàn):對底層通信方式進行封裝,提供兩個統(tǒng)一的接口,分別對應(yīng)基本傳輸服務(wù)(A類服務(wù))和帶差錯控制的服務(wù)(B類服務(wù))。
A類服務(wù):通信的一方將報文發(fā)送給對方,不等對方證實。對方收到報文后直接交給用戶,不回證實。這類服務(wù)不提供差錯控制,主要適合兩種場合:協(xié)議用戶本身自己提供差錯控制;ICCP底層已提供差錯控制,如TCP。
B類服務(wù):該服務(wù)與MTP相似,每個報文都帶一個前向序號字節(jié)和一個后向序號字節(jié)。所謂前向序號是指發(fā)送方給當(dāng)前發(fā)送報文的編號,所謂后向序號是本方已正確接收的報文序號。通過對這些序號的判斷,實現(xiàn)對丟失報文的重發(fā),從而達(dá)到差錯控制的目的。B類服務(wù)主要用于直接控制HDLC芯片進行通信,或在局域網(wǎng)上使用UDP協(xié)議。
(2)多板系統(tǒng)中的故障與容錯
多板系統(tǒng)和單板系統(tǒng)都會受到硬件故障的影響,但多板系統(tǒng)能夠通過切換到另一塊板對故障進行處理,這就是多板系統(tǒng)的容錯。目前,電信級設(shè)備普遍要求具有容錯功能。單控制板+多線板結(jié)構(gòu)是通信應(yīng)用中經(jīng)常使用的多板系統(tǒng)實現(xiàn)。
5.通信系統(tǒng)管理軟件
①SNMP管理
②公共管理信息協(xié)議(CMIP);
③公共對象請求代理結(jié)構(gòu)(CORBA);
④事務(wù)語言1(TL1);
⑤命令行接口(CLI、MML)。
- 輕松學(xué)會單片機
- ABAQUS 2016有限元分析從入門到精通
- VxWorks設(shè)備驅(qū)動開發(fā)詳解
- 基于HCS12的嵌入式系統(tǒng)設(shè)計
- DSP技術(shù)與應(yīng)用實例
- 嵌入式產(chǎn)品分析與設(shè)計
- 零起點學(xué)Proteus單片機仿真技術(shù)
- 基于STM32的嵌入式系統(tǒng)設(shè)計與實踐
- STM32W無線射頻Zigbee單片機原理與應(yīng)用
- 零基礎(chǔ)學(xué)51單片機(C語言版)
- 51單片機工程師是怎樣煉成的:基于C語言+Proteus仿真
- 嵌入式系統(tǒng)與Qt程序開發(fā)
- C51單片機項目設(shè)計實踐教程(第2版)
- 嵌入式通信系統(tǒng)
- 基于Proteus的51系列單片機設(shè)計與仿真(第4版)