<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于SDL的通信協(xié)議開發(fā)平臺

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/158152.htm


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


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

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

          3.1.2 進程狀態(tài)機的實現(xiàn)

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


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


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



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();