官术网_书友最值得收藏!

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)。

主站蜘蛛池模板: 绥滨县| 平度市| 镇雄县| 稷山县| 长沙县| 永宁县| 亳州市| 天峨县| 新龙县| 华池县| 静海县| 翁牛特旗| 理塘县| 雷波县| 班戈县| 易门县| 米林县| 绥宁县| 清远市| 大冶市| 吴江市| 闻喜县| 霍州市| 绥江县| 汽车| 冕宁县| 长宁区| 民丰县| 大关县| 丹阳市| 金昌市| 无棣县| 巩留县| 宜昌市| 瓮安县| 溧水县| 海丰县| 襄汾县| 慈溪市| 西充县| 普定县|