<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于SDL的通信協(xié)議開(kāi)發(fā)平臺

基于SDL的通信協(xié)議開(kāi)發(fā)平臺

作者: 時(shí)間:2009-03-26 來(lái)源:網(wǎng)絡(luò ) 收藏

l 引 言
是一種用來(lái)說(shuō)明和描述系統的國際通用的標準化語(yǔ)言。它將直觀(guān)的圖形和固定的格式結合起來(lái),使開(kāi)發(fā)人員可以簡(jiǎn)潔高效地將規范和描述出來(lái),的應用,可以縮短開(kāi)發(fā)周期,降低系統的差錯率,提高軟件質(zhì)量?,F在越來(lái)越多的電信設備開(kāi)發(fā)商開(kāi)始使用進(jìn)行軟件開(kāi)發(fā)。
但SDL并非編程語(yǔ)言,用SDL描述系統以后最終需要將SDL系統映射成實(shí)際程序才有意義,而目前一般是借助于國外的一些開(kāi)發(fā)工具如SDT提供的SDL和C語(yǔ)言的轉換工具來(lái)完成,開(kāi)發(fā)人員通過(guò)編寫(xiě)SDL系統和環(huán)境的接口函數來(lái)實(shí)現所生成的代碼和RTOS的集成。這種方法提高了開(kāi)發(fā)的效率,但也有一些缺點(diǎn):設計依賴(lài)于工具,脫離工具則代碼難以維護、SDL生成的代碼非常復雜,不便于修改和閱讀,所以在實(shí)際應用中這些工具往往用于協(xié)議驗證。
為了提高協(xié)議開(kāi)發(fā)效率,我們在無(wú)線(xiàn)系統開(kāi)發(fā)中建立一套自主的SDL的協(xié)議,通過(guò)這個(gè)平臺可以實(shí)現SDL基本元素以及之間的和RTOS任務(wù)之間的通信,并集成了協(xié)議中常用的定時(shí)器管理功能、內存管理功能。

本文引用地址:http://dyxdggzs.com/article/158152.htm


2 SDL介紹
SDL(Specification and Description Language)是1976年至1992年由ITU―T發(fā)展和標準化的一種描述系統行為的語(yǔ)言,SDL的數學(xué)模型是擴展有限(EFSM),是一種高層泛用型的用于事件驅動(dòng)、實(shí)時(shí)和通信系統的描述語(yǔ)言,電信系統和協(xié)議是它主要應用領(lǐng)域之一。SDL有圖形和文本兩種表示形式,SDL/GR和SDL/PR。它既可以用來(lái)對系統的功能進(jìn)行說(shuō)明,也可以描述系統的內部結構和行為,因而應用范圍很廣,可以用于協(xié)議工程的各個(gè)階段。SDL采用一種層次結構來(lái)對系統進(jìn)行描述和說(shuō)明,結構和功能被清楚地劃分。系統可以分為多個(gè)功能塊,功能塊表示系統內部功能相對獨立的幾個(gè)模塊,它們之間通過(guò)信道相連。根據系統規模的大小,每個(gè)功能塊還可以分為子功能塊或。與傳統FSM類(lèi)似,SDL進(jìn)程具有有限數量的被有限數量躍遷連接著(zhù)的宏控制狀態(tài)。通過(guò)一個(gè)輸入信號(也可稱(chēng)使能條件)的接收、事先設置的定時(shí)器的定時(shí)或當前狀態(tài)變量(連續信號)值所指定條件的確認,躍遷能夠被觸發(fā)。在SDL中,定義了一些基本的數據類(lèi)型和操作,以及構造新類(lèi)型的機制,使得SDL擁有和C/C++語(yǔ)言一樣的數據操作能力,因此它可以用于系統的設計和實(shí)現。


3 SDL構成和實(shí)現
SDL建立在嵌入式實(shí)時(shí)操作系統上,主要包括4個(gè)模塊:進(jìn)程管理、消息管理、定時(shí)器管理、緩存管理,如圖1所示。其中進(jìn)程管理模塊提供了SDL進(jìn)程的創(chuàng )建、刪除等庫函數,并提供了SDL功能塊和進(jìn)程的描述表,通過(guò)這張表格可以確定任務(wù)塊和進(jìn)程的從屬關(guān)系。在消息管理模塊提供了進(jìn)程間、進(jìn)程和功能塊間、進(jìn)程和外部任務(wù)間的消息通信函數;定時(shí)器管理和緩沖管理模塊則提供了定時(shí)器的創(chuàng )建、刪除函數以及緩沖的創(chuàng )建和釋放函數。

3.1 功能塊和進(jìn)程的實(shí)現
3.1.1 功能塊實(shí)現
采用SDL描述的系統包含若干個(gè)功能塊(block),每個(gè)功能塊內至少有一個(gè)進(jìn)程(process),功能塊是用RTOS的任務(wù)直接實(shí)現的不需要開(kāi)發(fā)者單獨創(chuàng )建,只需在功能塊中預先定義包含哪些進(jìn)程,SDL系統在初始化時(shí)直接可以創(chuàng )建功能塊。每個(gè)功能塊內進(jìn)程的并發(fā)調度是由功能塊的一個(gè)調度函數實(shí)現,而功能塊之間的調度則由操作系統完成。功能塊任務(wù)內除了完成個(gè)進(jìn)程的輪詢(xún)調度外,還負責接收外部環(huán)境的消息并分發(fā)消息到各個(gè)進(jìn)程中;除此外功能塊任務(wù)還負責本功能塊內所有進(jìn)程的定時(shí)器管理工作。功能塊內部工作流程圖如圖2所示。

3.1.2 進(jìn)程狀態(tài)機的實(shí)現

c++相關(guān)文章:c++教程


數字通信相關(guān)文章:數字通信原理


通信相關(guān)文章:通信原理



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>