前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇通信軟件范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
前言
在發(fā)動機電控系統(tǒng)開發(fā)過程中,通常采用單線程編程方法和結(jié)構(gòu)化的軟件開發(fā)方法。該方法無論從理論上還是從工程實踐方面都比較成熟,也取得了一定的成果。而隨著柴油機電控系統(tǒng)控制要求的提高,其軟件系統(tǒng)變得越來越復(fù)雜,開發(fā)時間也變得較長[1]。傳統(tǒng)方式在通用性上不能令人滿意,且開發(fā)周期長、難度大。引入面向?qū)ο蠓椒ㄩ_發(fā)軟件可很好地解決這一問題。CAN總線通信已發(fā)展成為發(fā)動機進(jìn)行數(shù)據(jù)標(biāo)定和通信的主流總線,并有基于CAN總線通信協(xié)議的CCP、KWP2000和SAEJ1939等應(yīng)用層通信標(biāo)準(zhǔn)[2]。國內(nèi)對如何有效簡潔地表達(dá)CAN通信協(xié)議的內(nèi)容進(jìn)行了有針對性的研究,取得了一些成果[3]。本文中采用統(tǒng)一建模語言(unifiedmodelinglanguage,UML)分析和設(shè)計遵循CCP協(xié)議的CAN通信軟件,并探索面向?qū)ο筌浖_發(fā)方法在發(fā)動機控制領(lǐng)域的應(yīng)用。
1CCP協(xié)議和UML建模
1.1CAN總線和CCP協(xié)議CAN即控制器局域網(wǎng),主要用于汽車控制系統(tǒng),它擁有諸多優(yōu)點,是發(fā)動機控制系統(tǒng)通信的主要總線之一。發(fā)動機的動力性、燃油經(jīng)濟性和排放的改善,都依賴于大量預(yù)先存儲在控制單元軟件中的控制和調(diào)節(jié)參數(shù)(如特征值、曲線、脈譜等,統(tǒng)稱標(biāo)定參數(shù))[4]。CCP協(xié)議就是用于發(fā)動機電控系統(tǒng)參數(shù)標(biāo)定、數(shù)據(jù)采集和實時監(jiān)控的CAN通信應(yīng)用層協(xié)議。CCP協(xié)議有兩個數(shù)據(jù)流向,一個是命令接收對象(CRO),其報文格式如圖1所示;另一個是數(shù)據(jù)傳輸對象(DTO)。DTO又分為兩種報文:命令返回報文(CRM)和數(shù)據(jù)采集報文(DAQ),其幀格式如圖2和圖3所示。CRM用于反映指令執(zhí)行是否成功。在這些幀中,CMD表示指令代碼,CTR表示指令計數(shù)器,PID表示數(shù)據(jù)包號碼,ERR表示錯誤代碼[5]。根據(jù)CCP協(xié)議,數(shù)據(jù)標(biāo)定可分為兩種模式,一種是DAQ模式,可對一塊數(shù)據(jù)進(jìn)行采集、監(jiān)控和標(biāo)定;另一種是查詢(POLLING)模式,只能對單獨的數(shù)據(jù)進(jìn)行采集、監(jiān)控和標(biāo)定。CCP協(xié)議有一套復(fù)雜的指令代碼和較高的實時性要求。開發(fā)基于CCP協(xié)議的CAN通信軟件須考慮到這兩個方面。
1.2UML建模方法UML是一種繪制軟件藍(lán)圖的標(biāo)準(zhǔn)建模語言[6],其目的是對面向?qū)ο蟮南到y(tǒng)進(jìn)行可視化、詳細(xì)和完整地描述。UML可運用于軟件開發(fā)過程各個階段的建模活動,尤其是分析與設(shè)計。將UML運用于面向?qū)ο蟮能浖到y(tǒng)建模時,為了體現(xiàn)系統(tǒng)的靜態(tài)和動態(tài)模型,可運用UML的用例圖、類圖、協(xié)作圖、順序圖和狀態(tài)圖5類圖形[7]進(jìn)行描述。這5類圖是相互聯(lián)系的,從不同角度來描述系統(tǒng),實際上往往只需3~4種圖即可精確地定義需求。(1)用例圖用于表達(dá)系統(tǒng)對外部提供的服務(wù),它描述了系統(tǒng)的功能模型。(2)類圖用于表示系統(tǒng)內(nèi)部的靜態(tài)結(jié)構(gòu),它表示出所有對象的屬性、特征和操作,同時體現(xiàn)了類之間的關(guān)系。(3)協(xié)作圖和順序圖一般用于描述系統(tǒng)的動態(tài)行為和可視化對象間的通信。協(xié)作圖關(guān)注對象交互的結(jié)構(gòu)方面。順序圖表示以時間順序安排的對象交互,能更加清晰地顯示控制流和事件順序。(4)狀態(tài)圖通過狀態(tài)和遷移,描述實體的動態(tài)行為及組成實體元素的狀態(tài)條件、響應(yīng)和動作。在系統(tǒng)的靜態(tài)和動態(tài)模型中,用例圖模型是系統(tǒng)建模的核心[8]。運用UML軟件的建模過程如下。(1)進(jìn)行系統(tǒng)需求分析,在分析的基礎(chǔ)上建立系統(tǒng)的用例圖。(2)建立系統(tǒng)的靜態(tài)模型,將系統(tǒng)功能需求分解到各個對象類,確定各個對象類的作用。(3)建立系統(tǒng)的動態(tài)模型,確定系統(tǒng)各個狀態(tài)的轉(zhuǎn)換過程和各個動作的時序,最終完成整個建模活動。
2發(fā)動機CAN通信軟件的UML建模
2.1系統(tǒng)介紹通過燃燒分析儀了解氣缸內(nèi)燃燒情況,電子控制單元通過傳感器獲取發(fā)動機當(dāng)前狀態(tài),并通過CAN總線上傳到上位機,上位機則根據(jù)這些信息對控制參數(shù)進(jìn)行標(biāo)定。發(fā)動機標(biāo)定系統(tǒng)組成見圖4。
2.2系統(tǒng)需求分析在發(fā)動機標(biāo)定過程中,每個信號量的變化率和對標(biāo)定目標(biāo)的影響是不同的。通常冷卻液溫度、進(jìn)氣溫度和進(jìn)氣壓力等數(shù)據(jù)在發(fā)動機運行過程中變化率較小,為降低系統(tǒng)開銷,應(yīng)降低數(shù)據(jù)采集和數(shù)據(jù)上傳的頻率。而對于轉(zhuǎn)速和共軌系統(tǒng)軌壓等高頻信號,須有較高的采樣頻率,同時要采用適當(dāng)?shù)娜蒎e機制盡量避免總線仲裁機制的觸發(fā),提高傳輸速率。發(fā)動機標(biāo)定參數(shù)可分為:敏感型參數(shù)和非敏感型參數(shù)。在進(jìn)行發(fā)動機外特性曲線標(biāo)定時,噴油提前角、噴油量及其修正系數(shù)、燃油溫度及其修正系數(shù)和噴油延遲時間等,對發(fā)動機的動力性能影響較大,屬于敏感型參數(shù);而機油壓力和燃油溫度等對發(fā)動機的動力性能影響不大,屬于非敏感型參數(shù)。總的來說,首先進(jìn)行敏感型參數(shù)的標(biāo)定,而后進(jìn)行非敏感型參數(shù)的標(biāo)定。在此過程中須根據(jù)個人需求,在數(shù)據(jù)采集功能中定義敏感型和非敏感型參數(shù)的范圍。根據(jù)CCP協(xié)議,數(shù)據(jù)的標(biāo)定有POLLING和DAQ兩種模式。對于非敏感型參數(shù)建議使用DAQ模式,對于敏感型參數(shù)建議使用POLLING模式。這樣既可提高標(biāo)定效率,也可改善標(biāo)定的質(zhì)量。發(fā)動機的狀態(tài)監(jiān)控功能要實時反映其運行狀態(tài)。在此功能中,上位機要對發(fā)動機的重要參數(shù)進(jìn)行監(jiān)控,確保其處在可控的運行狀態(tài)下。
2.3系統(tǒng)用例建模總結(jié)系統(tǒng)需求和CAN的功能,上位機通過4個用例跟系統(tǒng)進(jìn)行聯(lián)系,即數(shù)據(jù)采集、數(shù)據(jù)分類、狀態(tài)監(jiān)控和數(shù)據(jù)標(biāo)定,如圖5所示。在數(shù)據(jù)采集功能下,系統(tǒng)根據(jù)設(shè)置,按照一定的條件對系統(tǒng)的數(shù)據(jù)進(jìn)行采集并存放在上位機的存儲空間內(nèi),以便離線診斷和數(shù)據(jù)分析。數(shù)據(jù)分類功能將數(shù)據(jù)進(jìn)行分類,確定每種數(shù)據(jù)的優(yōu)先級、屬性和采取的數(shù)據(jù)標(biāo)定模式。作為一種容錯手段,該功能分離出數(shù)據(jù)庫中的冗余數(shù)據(jù),保證標(biāo)定軟件的穩(wěn)定。此外,數(shù)據(jù)分類功能還將設(shè)置每種數(shù)據(jù)的正常變化和正常變化率范圍的門限,超出門限的數(shù)據(jù)將被認(rèn)為是錯誤的。若連續(xù)多次出現(xiàn),也將以錯誤標(biāo)志位的方式放入CAN通信數(shù)據(jù)庫。在狀態(tài)監(jiān)測功能下,系統(tǒng)調(diào)用命令處理功能,解析上位機發(fā)送的指令代碼進(jìn)行數(shù)據(jù)的傳輸。傳輸模式可通過數(shù)據(jù)分類功能來設(shè)定。在數(shù)據(jù)標(biāo)定功能下,系統(tǒng)首先解析上位機發(fā)送的命令指令選定標(biāo)定模式,而后在數(shù)據(jù)庫中尋找到需要標(biāo)定的數(shù)據(jù),最后按照上位機的要求更改數(shù)據(jù),執(zhí)行編程指令完成標(biāo)定工作。系統(tǒng)自身有錯誤診斷功能(錯誤機制),其操作都在系統(tǒng)的監(jiān)控之下,如果出現(xiàn)錯誤,系統(tǒng)將啟動錯誤機制,以保證系統(tǒng)不會出現(xiàn)崩潰狀態(tài)。同時,系統(tǒng)會以錯誤幀的形式向上位機告知當(dāng)前錯誤狀態(tài)。
2.4建立系統(tǒng)的靜態(tài)模型圖6為幾種重要的類之間的關(guān)系。上位機類與數(shù)據(jù)標(biāo)定類是使用關(guān)系(《use》)。數(shù)據(jù)標(biāo)定類和系統(tǒng)是相關(guān)聯(lián)的,1個系統(tǒng)只有1個數(shù)據(jù)標(biāo)定類,1個數(shù)據(jù)標(biāo)定類可對應(yīng)多個系統(tǒng)。DAQ模式類和POLLING模式類是數(shù)據(jù)標(biāo)定的子類,它們繼承了數(shù)據(jù)標(biāo)定類的所有特性,并有各自的特點。DAQ模式類和數(shù)據(jù)類通過對象描述表(ODT)相關(guān)聯(lián),1個DAQ模式類對應(yīng)多個ODT,1個ODT對應(yīng)多個數(shù)據(jù)。而POLLING模式類直接和數(shù)據(jù)聯(lián)系,而且是多對多的。圖7和圖8分別為數(shù)據(jù)標(biāo)定類和數(shù)據(jù)類的屬性和操作。數(shù)據(jù)標(biāo)定類是一種抽象類,沒有直接的實例與之對應(yīng)。作為父類,它允許子類繼承該父類的所有屬性和操作。該類屬性中命令代碼表征了符合CCP協(xié)議的標(biāo)定命令,如CONNECT的代碼是0x01;數(shù)據(jù)包號反映了數(shù)據(jù)發(fā)送模式,如PID為255表示從設(shè)備反饋給主設(shè)備的響應(yīng)。不論是在DAQ模式還是POLLING模式下進(jìn)行標(biāo)定,都須包含與上位機建立邏輯連接、斷開連接、接收CRO信息、發(fā)送DTO信息、命令解析和發(fā)送成功返回等操作。后文會介紹該類操作的一些應(yīng)用。數(shù)據(jù)類是一種具體類,CAN數(shù)據(jù)庫中待標(biāo)定的數(shù)據(jù)都屬于該類。數(shù)據(jù)的屬性包括名稱、首地址、數(shù)據(jù)類型、數(shù)量和該數(shù)據(jù)的正常范圍,通過這些屬性可確定該數(shù)據(jù)的所有特征。對數(shù)據(jù)類的操作包括數(shù)據(jù)濾波和合理性檢查。在數(shù)據(jù)采集功能中,數(shù)據(jù)濾波可對采集到的不合理數(shù)據(jù)進(jìn)行篩除。在狀態(tài)監(jiān)測功能中,若檢查數(shù)據(jù)不在正常范圍之內(nèi),則啟動數(shù)據(jù)錯誤報警功能告知上位機。
2.5建立系統(tǒng)的動態(tài)模型在系統(tǒng)動態(tài)建模的過程中一般使用狀態(tài)圖和順序圖。狀態(tài)圖能清晰地反映系統(tǒng)狀態(tài)在遷移時實體元素的狀態(tài)條件、響應(yīng)和動作。順序圖可依據(jù)時間清晰地展示控制流的方向,適合描述系統(tǒng)的動態(tài)行為。經(jīng)綜合考慮,軟件的初始化過程使用狀態(tài)圖描述,實際的通信實現(xiàn)使用順序圖。圖9為從系統(tǒng)初始化到軟件安裝完畢所經(jīng)歷的整個狀態(tài)過程。上電后,系統(tǒng)進(jìn)入啟動狀態(tài)。如果系統(tǒng)啟動失敗,系統(tǒng)就會退出;如果系統(tǒng)啟動成功,系統(tǒng)進(jìn)入CAN驅(qū)動安裝狀態(tài)。安裝完成后,系統(tǒng)進(jìn)入CCP驅(qū)動安裝狀態(tài)。完成后,系統(tǒng)進(jìn)入下一個裝置的安裝。圖10為CAN驅(qū)動安裝狀態(tài)。在CAN驅(qū)動安裝過程中,系統(tǒng)從初始化參數(shù)中獲得ID信息,進(jìn)入寄存器配置狀態(tài),配置完成CAN的控制寄存器并清除寄存器的所有標(biāo)志位。完成后,進(jìn)行CAN接收和傳送功能的配置。配置接收功能的3個操作為:獲取發(fā)送者的ID;將接收到的內(nèi)容移至緩沖區(qū)和清除寄存器標(biāo)志位,準(zhǔn)備下一次接收。配置發(fā)送功能的3個操作為:配置發(fā)送寄存器的ID;將緩沖區(qū)的內(nèi)容放入發(fā)送寄存器和發(fā)送成功校驗。完成之后,CAN驅(qū)動安裝完畢,進(jìn)入下一個步驟。圖11為CCP驅(qū)動安裝狀態(tài)。在CCP驅(qū)動安裝過程中,系統(tǒng)首先建立命令處理環(huán)境。其主要功能是對接收到的信息進(jìn)行解析。如果上位機要求數(shù)據(jù)采集采用DAQ模式,則系統(tǒng)開始建立DAQ環(huán)境。在這個過程中,要先安裝DAQ相關(guān)組件,然后建立DAQ處理功能,最后完成命令代碼和DAQ處理的鏈接。完成后,系統(tǒng)進(jìn)入CCP初始化狀態(tài)。該狀態(tài)下,系統(tǒng)將建立版本檢查函數(shù)、打開數(shù)據(jù)通道和所有CCP軟件參數(shù)清零等功能。之后,系統(tǒng)連接底層驅(qū)動和CCP應(yīng)用軟件的接口,最終完成CCP驅(qū)動安裝。如果上位機要求采用POLL-ING模式,則系統(tǒng)直接進(jìn)入CCP初始化狀態(tài)。圖12為在CCP協(xié)議的DAQ模式下的通信過程,參與通信的主要有:上位機、命令處理模塊、數(shù)據(jù)采集模塊、DAQ模塊和數(shù)據(jù)等。CCP協(xié)議在BAQ模式下的通信過程如下。(1)上位機與系統(tǒng)進(jìn)行連接。上位機向系統(tǒng)的命令處理模塊發(fā)送建立連接的請求,而后系統(tǒng)發(fā)送CRM(握手報文)。連接成功后,PC和系統(tǒng)以一問一答的方式進(jìn)行獲得版本號和交換ID的動作。(2)PC開始與系統(tǒng)正式通信。上位機發(fā)送控制信息給系統(tǒng)的命令處理模塊。命令處理模塊在接收完畢后,對控制信息進(jìn)行解析。(3)命令處理模塊會將解析后的上位機請求發(fā)送給數(shù)據(jù)標(biāo)定模式模塊,開始準(zhǔn)備進(jìn)行數(shù)據(jù)傳輸。(4)數(shù)據(jù)標(biāo)定模式模塊進(jìn)行數(shù)據(jù)傳輸初始化。在這之前,數(shù)據(jù)采集用例會選擇采用POLLING模式還是DAQ模式。在DAQ模式下,它會鏈接若干個DAQ列表,每個DAQ列表包含若干個ODT,ODT的每個字節(jié)都指向DAQ上需要的數(shù)據(jù)所對應(yīng)地址。(5)鏈接完所有的DAQ列表后,DAQ模塊會去數(shù)據(jù)類中獲取相關(guān)的數(shù)據(jù),將所得到的數(shù)據(jù)填入DAQ列表。DAQ模塊會將該DAQ列表傳遞給數(shù)據(jù)標(biāo)定模式模塊,并準(zhǔn)備發(fā)送。(6)當(dāng)條件具備時,數(shù)據(jù)標(biāo)定模式模塊會發(fā)送上位機請求的數(shù)據(jù)。發(fā)送完畢后,數(shù)據(jù)標(biāo)定模式模塊會進(jìn)行校驗,以確保發(fā)送成功。然后才能再次接收上位機發(fā)送的命令請求,否則不作響應(yīng)。
PowerPC和DSP通過雙口存儲器進(jìn)行數(shù)據(jù)通信。該中還介紹了總線通信系統(tǒng)中PowerPC和DSP的故障管理功能。本軟件充分利用系統(tǒng)資源,實現(xiàn)了通信總線的控制與管理,滿足航電系統(tǒng)總線通信與管理的要求。
PowerPC是IBM和Motorola公司共同開發(fā)的高性能、低功耗、開放架構(gòu)的處理器,采用簡單的指令集(RISC),同時集成了PCI -Express、千兆網(wǎng)絡(luò)、RapidIO及CAN等多種網(wǎng)絡(luò)通信控制器,支持DMA、I2C、UART等數(shù)據(jù)交換組件,具有處理能力強、網(wǎng)絡(luò)通信接口多等優(yōu)點,被廣泛應(yīng)用于汽車電子、航空航天、工業(yè)控制等要求高性能和高可靠性的領(lǐng)域[1-3]。鑒于此,文中設(shè)計了一種基于PowerPC750配有VME總線的CPU模塊,滿足現(xiàn)代武器裝備的需求。
TMS320F240系列DSP是美國TI公司于1997年推出的,專為數(shù)字電機控制和其他控制應(yīng)用系統(tǒng)而設(shè)計的16位定點數(shù)字信號處理器。它將數(shù)字信號處理的高速運算功能與面向電機的強大控制能力結(jié)合在一起,從而成為傳統(tǒng)的多微處理器單元和多片設(shè)計系統(tǒng)的理想替代品。
F240片內(nèi)外設(shè)包括雙10位A/D轉(zhuǎn)換器,帶有鎖相環(huán)PLL時鐘模塊,帶中斷的看門狗定時器模塊,串行通信接口SCI及串行外設(shè)接口SPI,另外,還集成了一個事件管理模塊EVM。因此,F(xiàn)240不僅具有高速數(shù)據(jù)處理能力,還具有控制和事件管理能力,可完成人機界面,與上位機進(jìn)行串行通信[4-5]。
1 總線通信系統(tǒng)架構(gòu)
總線通信系統(tǒng)由一個CPU(PowerPC)模塊、一個DSP模塊以及電源模塊組成。CPU模塊采用PowerPC750處理器,同時集成了網(wǎng)卡和大容量FLASH,具有高速的數(shù)據(jù)采集及處理、仿真任務(wù)調(diào)度以及數(shù)據(jù)存儲等功能。DSP模塊采用TMS320F240系列芯片,通過局部總線,與外界設(shè)備通過RS422、ARINC429等數(shù)據(jù)交換總線相連。
用戶通過PowerPC發(fā)送和接收任務(wù)數(shù)據(jù),PowerPC再通過雙口存儲器與DSP相連接,進(jìn)行數(shù)據(jù)交換,DSP則負(fù)責(zé)RS422串行通信總線和ARINC429總線通信的控制管理、數(shù)據(jù)接收和發(fā)送等,以上整個系統(tǒng)完成了總線的通信功能。總線通信系統(tǒng)架構(gòu)如圖1所示。
2 總線通信系統(tǒng)軟件設(shè)計
2.1總線通信系統(tǒng)軟件概述
總線通信系統(tǒng)軟件由驅(qū)動軟件和控制軟件組成,是實現(xiàn)RS422串行通信和ARINC429總線通信的專用軟件。其中,驅(qū)動軟件實現(xiàn)DSP與主機應(yīng)用軟件間的接口控制與數(shù)據(jù)傳遞,它可提供各類消息數(shù)據(jù)的讀、寫支持,對DSP內(nèi)程序的調(diào)度。控制軟件負(fù)責(zé)RS422串行通信和ARINC429總線通信的控制、數(shù)據(jù)接收和發(fā)送等。
2.2驅(qū)動軟件
驅(qū)動軟件運行在PowerPC模塊上,是應(yīng)用軟件與控制軟件的接口軟件,為實現(xiàn)應(yīng)用軟件的管理功能,驅(qū)動軟件控制DSP模塊的初始化、啟動、停止、自測試,監(jiān)控DSP模塊狀態(tài),控制DSP模塊和主機的數(shù)據(jù)交換。驅(qū)動軟件操作狀態(tài)及轉(zhuǎn)換關(guān)系如圖2所示。
當(dāng)DSP在處在停止?fàn)顟B(tài),調(diào)用DSP_Bit進(jìn)行DSP自檢測,調(diào)用DSP_Initialize進(jìn)行DSP初始化。初始化完成后可調(diào)用DSP_Go將DSP轉(zhuǎn)入運行狀態(tài)。在運行狀態(tài)下可調(diào)用操作信息驅(qū)動程序、RS422驅(qū)動程序和ARINC429總線驅(qū)動程序,進(jìn)行消息傳輸,也可調(diào)用DSP_Stop將DSP轉(zhuǎn)入停止?fàn)顟B(tài)。
驅(qū)動軟件按其功能分為:模塊控制程序、RS422控制程序、ARINC429總線控制程序、操作信息控制程序。
模塊控制程序的主要功能是啟動DSP模塊上的初始化程序,使DSP初始化,然后啟動DSP上的啟動程序使DSP開始工作,還可以停止DSP運行以及啟動DSP上的BIT程序進(jìn)行自檢測。
RS422控制程序的主要功能包括對RS422各通道進(jìn)行初始化(各通道的接收/發(fā)送數(shù)據(jù)緩沖區(qū)劃分,每個數(shù)據(jù)塊的新數(shù)據(jù)、錯誤、中斷等標(biāo)志字的設(shè)置,波特率、奇偶校驗位、數(shù)據(jù)位和停止位的設(shè)置),接著從雙口存儲器讀DSP端RS422接收到的消息,并將要通過RS422發(fā)送的消息數(shù)據(jù)寫入雙口存儲器,最終由DSP上的RS422進(jìn)行數(shù)據(jù)發(fā)送。通過檢查RS422的接收緩沖區(qū),可以檢查是否有新數(shù)據(jù)。
ARINC429總線控制程序主要功能包括對ARINC429總線通道進(jìn)行初始化,從雙口存儲器讀ARINC429總線接收到的消息,并將要通過ARINC429總線發(fā)送的消息寫入雙口存儲器。
操作信息控制程序主要包括讀DSP模塊的自檢測結(jié)果,讀取DSP的HeartBeat計數(shù)器的當(dāng)前值,讀取DSP的狀態(tài),建立主機和DSP之間的通訊,復(fù)位DSP模塊。
2.3控制軟件
控制軟件運行在DSP模塊上,它負(fù)責(zé)RS422串行通信總線和ARINC429總線通信的控制、數(shù)據(jù)發(fā)送和接收等。控制軟件的主程序中包括對DSP的初始化、啟動、自檢測、停止及復(fù)位等功能。控制軟件響應(yīng)來自運行在PowerPC上驅(qū)動軟件的下發(fā)的命令,進(jìn)行相應(yīng)功能操作。在DSP模塊初始化中,定時器中斷被使能。定時器中斷服務(wù)程序會以固定的周期執(zhí)行,其中包括RS422通信握手,RS422在線狀態(tài)判斷,RS422發(fā)送和接收數(shù)據(jù),ARINC429總線發(fā)送和接收數(shù)據(jù)等程序。
RS422通信握手程序首先從PowerPC寫入雙口存儲器的相應(yīng)地址中讀取通信狀態(tài)字,然后判斷各通道狀態(tài),若三次接收到的通信狀態(tài)字均為預(yù)值,則通信建立成功。
RS422在線狀態(tài)判斷程序負(fù)責(zé)讀取各通道的在線狀態(tài),如果該通道已建立好通信,則清空接收寄存器,發(fā)送該通道在線狀態(tài)命令;接收在線狀態(tài)程序接收的現(xiàn)行狀態(tài)數(shù)據(jù)長度若等于該通道的數(shù)據(jù)長度,則判斷該通道的設(shè)備在線。
RS422串行通信總線和ARINC429總線均采用查詢方式進(jìn)行數(shù)據(jù)的發(fā)送和接收。
2.4故障管理
故障管理分為兩部分:PowerPC故障管理和DSP故障管理,每部分包含了故障檢測、故障過濾和故障處理。如圖3所示。
DSP的故障檢測的手段主要有BIT和軟件注入,PowerPC模塊主要有BIT,VxWorks5.5捕獲軟件故障、DSP注入、應(yīng)用軟件注入。BIT包含PUBIT、PBIT和IBIT,PUBIT上電后對系統(tǒng)硬件資源的檢測,PBIT系統(tǒng)運行過程中對硬件資源周期性的檢測,IBIT由用戶啟動對系統(tǒng)硬件資源的檢測,BIT能夠完成整個周期硬件資源的檢測。
應(yīng)用軟件在運行過程中,發(fā)現(xiàn)故障,將該故障注入故障隊列中,實現(xiàn)應(yīng)用軟件故障的管理。DSP發(fā)生致命性的,自己無法處理或者需要PowerPC處理的故障時,將此類故障注入PowerPC的故障隊列中,以提高系統(tǒng)處理故障的能力。系統(tǒng)運行過程中,VxWorks5.5將捕獲的異常信息注入故障隊列中,以解決運行過程中產(chǎn)生的異常。
系統(tǒng)中的故障按照存在程度分為暫時性故障和永久性故障。暫時性故障帶有間斷性,是在一定條件下產(chǎn)生的故障,通過系統(tǒng)的調(diào)整或者運行環(huán)境的改變消失的故障。永久性故障具有永恒性,一旦發(fā)生故障,則系統(tǒng)無法自身的恢復(fù),一直處于故障狀態(tài)。
按照故障的嚴(yán)重程度將故障分為破壞性故障和非破壞性故障,破壞性故障一旦發(fā)生,將對系統(tǒng)造成致命的破壞,導(dǎo)致系統(tǒng)無法正常工作;非破壞性故障一般是局部的,影響系統(tǒng)的部分功能,但不會對系統(tǒng)造成致命性破壞。故障管理需要將同時具有非破壞性和暫時性的故障采用門限值的方式過濾掉,將過濾后的故障和其他類型的故障提交給故障處理機制處理。
門限值的過濾方式:在故障檢測時,發(fā)現(xiàn)設(shè)備故障后,設(shè)備的故障數(shù)N=N+1,當(dāng)N超過門限值W時,則向故障處理機制提交故障;再次檢測時,發(fā)現(xiàn)該設(shè)備正常則N=N-1,當(dāng)N<0時,則將N設(shè)為0。
3 小結(jié)
在總線通信軟件中采用PowerPC + DSP的結(jié)構(gòu),既能發(fā)揮PowerPC高速信號采集和處理能力,又能發(fā)揮DSP高速數(shù)字信號處理能力。PowerPC上運行的驅(qū)動軟件是應(yīng)用軟件與控制軟件的接口軟件,實現(xiàn)了應(yīng)用軟件的管理功能;DSP上運行的控制軟件,它負(fù)責(zé)RS422串行通信總線和ARINC429總線通信的控制、數(shù)據(jù)發(fā)送和接收等。該軟件充分利用系統(tǒng)資源,實現(xiàn)了通信總線的控制與管理,滿足了航電總線通信與管理的要求。
關(guān)鍵詞:即時通信軟件; P2P模式; Jxta; Java
中圖分類號:TN87+; TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1004-373X(2010)14-0136-04
Java Realization of P2P Instant Messaging Software Based on Jxta
QING Lin
(Hunan Normal University, Changsha 410006,China)
Abstract: The purpose of this software is to figure out the problem that the common instant message software mostly depended on the ability of the centre pole. The software is based on the frame of JXTA of the JAVA, and uses the development method of linking GUI with IMbean, achieves the posting of messages between every Peer.
Keywords: instant messaging software; P2P; Jxta; Java
P2P技術(shù)是目前非常流行的一種分布式計算技術(shù),P2P網(wǎng)絡(luò)的基礎(chǔ)單位是對等點,每個對等點之間能夠互訪。SUN公司針對P2P技術(shù)的特點提出了自己關(guān)于P2P網(wǎng)絡(luò)的Jxta研究項目,本文設(shè)計的即時通信軟件便是基于該技術(shù)來開發(fā)的。
1 軟件實現(xiàn)
1.1 系統(tǒng)架構(gòu)
Jxta P2P applications即本文所設(shè)計的軟件是建立在JavaBean上的,JavaBean是一種類,它針對特定的用途封裝了屬性和方法[1],實現(xiàn)特定的用途,而下面的JAL是Java的抽象層,它直接隔開了Jxta的平臺,為上層的程序管理Jxta的對等體,廣告,管道以及其他各種底層的實現(xiàn)和細(xì)節(jié)[2]。
1.2 總體設(shè)計步驟和方法
總體設(shè)計步驟和方法[3]如下:
(1) 設(shè)計JAL;
(2) 設(shè)計本軟件的中的JavaBean,即IMbean;
(3) 創(chuàng)建應(yīng)用程序VSJChat的GUI圖形界面;
(4) 鏈接IMbean和應(yīng)用程序GUI,以實現(xiàn)功能[4]。
1.3 設(shè)計JAL的Peer接口
JAL實際上也是API即引用程序接口,實現(xiàn)以下功能:
(1) 發(fā)現(xiàn)Peer同時能被發(fā)現(xiàn);
(2) 搜索其他Peer和Peer群;
(3) 創(chuàng)建和管理Peer群;
(4) 和其他Peer的交流;
(5) 獲得其他Peer或者Peer群的信息[5]。
Peer接口設(shè)計程序如下所示:
public interface Peer{ //開始
public void boot(String name)
throws Exception;
public void boot(String name,
String group)throws Exceptio
//申明可用性
public void publish()
throws Exception; //Peer信息
public String getName();
public String[]getPeers()
throws Exception; //發(fā)送和接收信息
public boolean sendMessage(
String name,Message msg)
throws Exception;
public boolean broadcast
(Messagemsg)throws Exception
public Message receiveMessage()
throws Exception; //信息處理
public Message newMessage();
public void pushObject(Message m
String tag,Object obj)
throws Exception;
public Object popObject(
Message msg,String tag)
throws Exception; //群處理
public void createGroup(
String name)throws Exceptio
public void joinGroup(String name
throws Exception;
public String[]getGroups()
throws Exception;
public void createAndOrJoinGroup
String name)throws Exceptio
public void leaveGroup(String nam
throws Exception;
//信息效用
public boolean
searchGroupWithName(String name)
throws Exceptio
public boolean
searchPeerWithName(String n
throws Exception;
public void displayPeers()
throws Exception;
public void displayGroups()
throws Exception;
public void displayServices()
throws Exception;
public String getPeerStatistics();
}
1.4 IMbean的設(shè)計
IMBean是在JAL基礎(chǔ)上開發(fā)的一個應(yīng)用JavaBean。它的作用是:處理所有的Jxta細(xì)節(jié)問題(包括初始化Peer,異常處理)[6];處理輸入信息,傳輸?shù)絍SJChat;處理輸出信息,通過Jxta網(wǎng)絡(luò)發(fā)送。
1.5 應(yīng)用程序VSJChat的GUI圖形界面的創(chuàng)建
利用圖形編輯器創(chuàng)建GUI圖形界面。使用的開發(fā)工具是NetBeans,利用其中的圖形編輯器創(chuàng)建。層結(jié)構(gòu)和每個GUI組件的類型,各個按鈕的名字將顯示在圖像界面中。
GUI產(chǎn)生代碼程序如下所示:
Public class VSJChat extends Javax.swing.JFrame{
/**產(chǎn)生新模板VSJchat*/
public VSJChat(){
...
}
private void initComponents(){
chatBean1=new
org.Jxta.ezel.beans.imbean.IMBean();
jPanel1=new Javax.swing.JPanel();
jTextField1=new Javax.swing.JTextField();
jButton1=new Javax.swing.JButton();
jPanel2=new Javax.swing.JPanel();
jTextArea1=new Javax.swing.JTextArea();
setTitle("VSJ P2P World Wide Messaging-100%Java Edition");
addWindowListener(new
Java.awt.event.WindowAdapter(){
public void windowClosing
(Java.awt.event.WindowEvent evt){
exitForm(evt);
}
});
jPanel1.setLayout(new Java.awt.BorderLayo
jTextField1.setColumns(40);
jTextField1.setFont(new Java.awt.Font(
"Dialog",0,10));
jPanel1.add(jTextField1,
Java.awt.BorderLayout.CENTER);
jButton1.setText("Send Message");
jPanel1.add(jButton1,Java.awt.BorderLayou
getContentPane().add(jPanel1,
Java.awt.BorderLayout.SOUTH);
jPanel2.setLayout(new Java.awt.BorderLayo
jTextArea1.setEditable(false);
jTextArea1.setFont(new
Java.awt.Font("Dialog",2,12));
jTextArea1.setFocusable(false);
jTextArea1.setMinimumSize(new
Java.awt.Dimension(500,400));
1.6 建立IMBean和應(yīng)用程序VSJChat的鏈接
1.6.1 導(dǎo)入IMBean
在IDE開發(fā)工具中加入代碼來導(dǎo)入IMBean,修改VSJChat產(chǎn)生構(gòu)造器來完成的。在源程序中創(chuàng)建了┮桓霆特別的構(gòu)造器,它用2個字符串作為參數(shù),并為┮桓霆私有方法localInit()構(gòu)造出初始化代碼。用一個發(fā)送者或?qū)Φ葯C名字和一個群名調(diào)用initBean()方法將激活在特定的群中的關(guān)聯(lián)對等機名的Jxta平臺。使用IMBean可加入到存在的被提供用戶名的IM會話中。在localInit()方法中,可以設(shè)置其他可獲得的IMBean參數(shù),如alias和topic properties[7]。
程序:導(dǎo)入bean
public VSJChat(){
mySenderName="noname";
myGroupName="netpeergroup";
localInit();
}
public VSJChat(String peername,String groupname){
mySenderName=peername;
myGroupName=groupname;localInit();
}
private void localInit(){
initComponents();
try{
chatBean1.initBean(mySenderName,myGroupName);
}catch(Exception ex){
ex.printStackTrace();
}
chatBean1.setSenderName(mySenderName);
chatBean1.setAlias("NOALIAS");
chatBean1.setTopic("ALL");
jTextField1.requestFocus();
1.6.2 實現(xiàn)IMBean發(fā)信息的功能
在GUI圖形界面中把jBotton1的按紐命名為“Send Message”。運用NetBeans3.5的GUI編輯器,選中jBotton1組件,選擇事件標(biāo)簽的屬性列,點擊為事件名“actionPerformed”的屬性名,再輸入事件處理器的名字“SendClick”。這將在VSJChat中自動創(chuàng)建一個事件處理器方法。
產(chǎn)生事件監(jiān)聽者程序[8] 如下所示:
jButton1.addActionListener(new Java.awt.event.ActionListener(){
public void actionPerformed(Java.awt.event.ActionEvent evt)
SendClicked(evt);
}
);
SendClicked()方法也同時產(chǎn)生了。填充這個方法,通過IMbean來取得用戶輸入和發(fā)送的消息。
獲得用戶輸入和發(fā)送的信息程序如下所示:
private static final String CHAT_SEP=">";
private static final String CR="\\n";
private static final String EMPTY_TEXT="";
private StringBuffer curMsgs=new
StringBuffer(EMPTY_TEXT);
private void SendClicked(
Java.awt.event.ActionEvent evt){
try{String latestMsg=jTextField1.getText();
chatBean1.sendMessage(latestMsg);
curMsgs.append(mySenderName+
CHAT_SEP+latestMsg+CR);
jTextArea1.setText(curMsgs.toString());
jTextField1.setText(EMPTY_TEXT);
jTextField1.requestFocus();
}catch(Exception ex){
ex.printStackTrace();
} }
在使用者打完字時按下回車鍵來發(fā)送信息。這可以在處理jTextFieldv1組件的actionPerformed()事件中完成。再一次使用GUI編輯器,這次選擇jTextField1組件,調(diào)用TextFieldComplete()處理方法[9]。
程序:發(fā)送信息快捷方式
jTextField1.addActionListener(new
ava.awt.event.ActionListener(){
public void actionPerformed(
Java.awt.event.ActionEvent
evt){
TextFieldComplete(evt);
} });
然后可以填充TextFieldComplete()方法來簡單調(diào)用SendClick(),因為回車等同于點擊“Send Message”按紐。
發(fā)送信息程序如下所示:
private void TextFieldComplete(
Java.awt.event.ActionEvent evt){
SendClicked(evt);
})
1.6.3 實現(xiàn)IMBean接收信息功能
IMBean有2種接收信息的模式,事件處理和輪流檢測。因應(yīng)用程序不同,2種方法可以任選其一。本文用的是事件處理方式。可以在組件層級顯示中通過點擊IMBean組件,在屬性列表中選擇“event”標(biāo)簽,運用IDE來加入1個對IMBean的MessageReceive事件的監(jiān)聽程序。這個事件處理器可稱為“messageHandler”。
IDE也為messageHandler()方法產(chǎn)生一個架構(gòu)代碼。這里,給找到接收的信息和刷新顯示在jTextArea中的信息填充邏輯語言[10]。
刷新顯示在jTextArea中的信息程序如下所示:
private void messageHandler(MessageReceivedEvent evt){
curMsgs.append(evt.getSender()+
CHAT_SEP+evt.getMessageText()
+CR);
jTextArea1.setText(
curMsgs.toString());
}
完成以上工作以后,VSJChat應(yīng)用程序的編寫就完成了。
1.7 實驗結(jié)果
當(dāng)?shù)谝淮芜\行VSJChat,Jxta GUI配置器會彈出,并要求設(shè)置配置參數(shù),在初始化配置后,這些配置將存儲在一個.Jxta目錄中,以后重啟時將只為使用安全用戶名和密碼者提醒。按局域網(wǎng)上配置測試參數(shù)。首先,創(chuàng)建集合點,這個可以用網(wǎng)上的目錄code/test/rdvnode中的runit.bat文件開始。仔細(xì)研究runit.bat文件,看到它實際上開始的是uk.co.vsj.Jxta2.wwm.RunRDV類,即:這個類的代碼創(chuàng)建一個Jxta群,把它作為一個群的集合點。現(xiàn)在開始第一個對等點,即peer1,在code/test/peer1目錄下運行runit,bat文件。繼續(xù)配置peer2,和peer1同樣設(shè)置。這個對等點可以通過code/test/peer2目錄下的runit.bat文件開始。運行這2個Peer,運用以上的命令,就可以用peer1和peer2運行VSJChat了。雖然只運行了2個peer,但按照上面的配置方法,只改變Peer的IP配置,在同一個VSJChat上運行多少個Peer都是可以的。
2 結(jié) 語
本文著重介紹了如何實現(xiàn)了基于P2P網(wǎng)絡(luò)技術(shù)的即時通信軟件的對等體雙方互相收發(fā)信息。當(dāng)然P2P網(wǎng)絡(luò)時代的應(yīng)用還很多,今后本軟件將向著包含網(wǎng)絡(luò)存儲,分布式下載等更多的應(yīng)用功能的方向發(fā)展。
參考文獻(xiàn)
[1]吳先濤,吳承治.P2P技術(shù)及其演進(jìn)[J].現(xiàn)代傳輸,2008 (3):64-65.
[2]楊天路,劉宇宏,張文,等.P2P網(wǎng)絡(luò)技術(shù)原理與系統(tǒng)開發(fā)案例[M].北京:人民郵電出版社,2007.
[3]Scott Oaks,Bernard Traversat. Jxta技術(shù)手冊[M].北京:清華大學(xué)出版社,2004.
[4]宋雪昌.基于Jxta對等網(wǎng)絡(luò)的即時通信系統(tǒng)的研究與實現(xiàn)[D].蘇州:蘇州大學(xué),2005.
[5]周功業(yè),黎書生.新一代網(wǎng)絡(luò)計算模型:P2P及其Jxta體系結(jié)構(gòu)的設(shè)計與實現(xiàn)[J].計算機應(yīng)用研究,2002(9):139-140.
[6]鄧杰文.P2P系統(tǒng)模型綜述[J].中國科技信息,2008(6): 116-117.
[7]吳國慶.對等網(wǎng)絡(luò)技術(shù)研究[J].計算機技術(shù)與發(fā)展,2008(7):100-101.
[8]許斌.Jxta-Java P2P網(wǎng)絡(luò)編程技術(shù)[M].北京:清華大學(xué)出版社,2003.
一、傳統(tǒng)數(shù)字通信原理實驗現(xiàn)狀
(一)數(shù)字通信原理硬件實驗平臺。1.采樣基礎(chǔ)及采樣編碼類實驗。包括:脈沖幅度調(diào)制、脈沖編碼調(diào)制、自適應(yīng)差分脈沖編碼調(diào)制和連續(xù)可變斜率增量調(diào)制實驗。2.調(diào)制解調(diào)類實驗。包括:移頻鍵控、二進(jìn)制移相鍵控、差分二進(jìn)制相移鍵控、最小移頻鍵控、高斯最小頻移鍵控、正交相移鍵控、偏移四相相移鍵控和正交幅度調(diào)制實驗。3.編碼解碼類實驗。包括:漢明碼實驗、加擾碼實驗、傳號交替反轉(zhuǎn)碼/三階高密度雙極性碼碼型變換和傳號反轉(zhuǎn)碼碼型變換實驗。4.接口類實驗。包括:用戶環(huán)路接口實驗、雙音多頻檢測實驗、RS442接口實驗和RS232接口實驗。5.系統(tǒng)性實驗。包括:IS95擴頻系統(tǒng)Walsh碼特性測量、IS95(CDMA/DS)系統(tǒng)信號傳輸實驗和移動衰落信道通信系統(tǒng)綜合測試。
(二)數(shù)字通信原理硬件實驗平臺面臨的問題。前面所提到的實驗平臺集多種功能于一體,包括對無線通信常用的技術(shù)教學(xué),幫助學(xué)生時間,里面涵蓋了數(shù)字通信的原理已經(jīng)當(dāng)前最現(xiàn)代的技術(shù)技能,此實驗平臺系統(tǒng)結(jié)合了數(shù)字通信硬件平臺的原理、技術(shù)、實踐多方面,可以說實用又簡便,雖然現(xiàn)在硬件平臺凸顯很多優(yōu)點,但是還面臨很多問題需要改進(jìn)實驗平臺。1.在實驗時,試驗箱中的專有模擬芯片,雖然根據(jù)數(shù)字通信原理設(shè)計,但是由于設(shè)計效果欠佳,模擬鎖相環(huán)實驗時方法比較老,所以模擬芯片的電路時常有受損情況。2.在數(shù)字調(diào)制實驗數(shù)字實驗箱鏈接的處理方式通常是很模糊的,特別是解調(diào)和同步算法的結(jié)果不能被測試和評價這個問題,使學(xué)生按照規(guī)定的順序操作得到的僅僅是實驗結(jié)論,并沒辦法進(jìn)一步的研究的內(nèi)部機理。3.這個硬件平臺受限于模擬芯片的容量和處理分析能力,內(nèi)容和實踐具體步驟受限,發(fā)展空間也有一定的局限性,對學(xué)生的創(chuàng)新能力的發(fā)揮有很大影響。4.由于這個數(shù)字硬件實驗平臺的相關(guān)部件比較容易受損,這也導(dǎo)致實驗成本升高。針對以上陳述,本文利用Matlab的GUI工具,將用于用于數(shù)字通信原理實驗軟件平臺和數(shù)字通信原理有機結(jié)合,總之,硬件平臺的發(fā)展,對于提高學(xué)生的自主設(shè)計能力,理論與實踐相結(jié)合,以及提高數(shù)字通信理論課程的教學(xué)效果有很大幫助。
二、數(shù)字通信實驗軟件平臺設(shè)計
(一)數(shù)字通信實驗軟件平臺系統(tǒng)。此次根據(jù)數(shù)字通信原理設(shè)計的軟件平臺既有發(fā)送裝置,又有接收裝置,分為這兩個部分。根據(jù)圖1我們可以看出,此軟件平臺有幾個構(gòu)成部分。被虛線框住的軟件部分代表的是軟件平臺增加的擴展部分。整個平臺系統(tǒng)分為以下一個部分:采樣、量化、編碼、重構(gòu)。編碼和調(diào)制就是我們常用的信道編碼和調(diào)制,這樣不僅可以在軟件平臺上實現(xiàn)功能,還能在硬件平臺上實現(xiàn)調(diào)制實驗和信道編碼。在這些模塊都完備以后,我們還要完善其他子模塊,以便于各項數(shù)據(jù)可以在一個模塊流轉(zhuǎn)到下一模塊,圖中接收端沒有展開探討是因為接收端是發(fā)送端的逆過程,所以不予考慮。系統(tǒng)在具體應(yīng)用調(diào)試時,還要不斷修改和完善。
圖1 數(shù)字通信原理軟件實驗平臺系統(tǒng)框圖
(二)數(shù)字通信實驗軟件平臺。軟件實驗平臺采用了Matlab軟件中的GUI工具,數(shù)字通信原理軟件實驗平臺系統(tǒng)界面見圖2。
圖2 數(shù)字通信原理軟件實驗平臺系統(tǒng)界面
由圖2可知,Matlab軟件中的GUI工具也有圖1中的接受和發(fā)送部分,除此之外,還有數(shù)字通信軟件平臺的參數(shù)和顯示,這些方面最終以時頻域的方式表現(xiàn)出來,顯示運行結(jié)果。
在Matlab軟件中還有相對應(yīng)的存儲模塊來存放通信信號以及臨時通信信號,在數(shù)字通信實驗軟件平臺中發(fā)送信號要經(jīng)歷采集樣本、輸入序碼,以及整個數(shù)字信道的編碼和數(shù)字調(diào)制的全過程,在采集樣本時要實現(xiàn)將信號化為數(shù)字?jǐn)?shù)列這樣的形式,只有轉(zhuǎn)變成為數(shù)字序列,才能將其存入文件;輸入序碼指的就是文件中抽取序碼讀取;信道編碼就是仿真常見的編碼方式,比如CRC碼和卷積碼,以此進(jìn)行差錯控制;數(shù)字調(diào)制采用的不同進(jìn)制的調(diào)制方法,調(diào)制后會將信號繪制成波形或功率譜,主要運用的進(jìn)制方法有ASK、FSK、PSK或者M(jìn)SK等等;擴頻指的是對載波的調(diào)制方式,主要是運用高速偽隨機的序列方式,因為他的速率遠(yuǎn)遠(yuǎn)大于原來我們說的元新號碼的速率,方便信號的充分?jǐn)U展。他的優(yōu)點就是可以預(yù)防被竊聽,具備一定的防干擾能力。由于每個用戶擁有不同的擴譜碼,所以可以將相互正交的擴譜碼做為根據(jù),這樣就將移動通信系統(tǒng)和數(shù)字通信原理、DS-CDMA原理很好的糅合在一起,運用相關(guān)技術(shù),將先進(jìn)技術(shù)融入到現(xiàn)在的軟件平臺中,每個用戶可以用同一個頻帶。接收裝置是對發(fā)送信號的仿真,引入了高斯白噪聲的過程,也是以波形和功率譜的形式繪制出來。
三、數(shù)字通信實驗軟件平臺實現(xiàn)
(一)數(shù)字通信實驗軟件平臺驗證。在進(jìn)行數(shù)字通信實驗軟件平臺驗證的時候,要根據(jù)圖一的整體構(gòu)造對模塊編程,軟件實驗平臺的功能更加完善,比硬件平臺的功能更加完善,也能實現(xiàn)大部分實驗功能,在同一時間,有更多的擴展,如AMI/ CMI / HDB3編碼部分和漢明碼的編碼和調(diào)制部分,BFSK,D /BASK調(diào)制技術(shù)也是一種可以實現(xiàn)硬件實驗平臺的技術(shù)。因此,操作和測試對于波形的硬件平臺和軟件平臺是可以比較的。圖3是FSK圖形示波器測試和實際使用的GUI工具硬件平臺的比較。
圖3 軟件仿真與實測對比(以FSK調(diào)制為例)
編碼、調(diào)制、擴頻3個主要環(huán)節(jié)都進(jìn)行了有效擴展:其中編碼環(huán)節(jié)增加了奇偶校驗碼、循環(huán)碼、BCH碼、RS碼、卷積碼、Turbo碼;調(diào)制環(huán)節(jié)增加了16QaM和256QaM;擴頻環(huán)節(jié)增加了擴頻碼設(shè)計。
(二)數(shù)字通信實驗軟件平臺各模塊。為了讓學(xué)生更加清晰掌握整個操作,在數(shù)字通信實驗軟件平臺的GUI運行后,要先在軟件實驗平臺上點擊“采樣”,這樣就可以提取信號,并將信號以文本格式保存在文件中,假如信號是數(shù)字就不需要這樣的步驟。然后點擊“輸入碼序列”,打開剛才的文本文件,可以看到數(shù)據(jù)就在相對應(yīng)的位置,我們可以根據(jù)圖4所顯示的,對信道編碼進(jìn)行編碼,選擇最恰當(dāng)?shù)木幋a方式,圖4就是從文件中讀取輸入碼序列,然后表現(xiàn)編碼結(jié)果,根據(jù)相對應(yīng)的參數(shù),點擊“調(diào)制”,然后信號同樣是以波形和功率譜的形式表現(xiàn)出來,圖5就是演示此過程,調(diào)制方式為FSK。
圖4 數(shù)字信源及其CRC信道編碼波形 圖5 BFSK調(diào)制信號波形及功率譜
然后對信號進(jìn)行擴頻,點擊“擴頻”按鈕。輸入一個信噪比值,點擊“噪聲”按鈕,加入噪聲。擴頻以及加入噪聲后的波形和頻譜如圖6所示(圖中所加噪聲,其信噪比為5dB)。再點擊“解擴”按鈕可從擴頻信號中恢復(fù)原信號,然后點擊“解調(diào)”按鈕,對信號進(jìn)行解調(diào),然后譯碼得到有用信號,最后將其與輸入信號進(jìn)行比較。
另外需要說明的是噪聲雖然在信道中存在,但實際上是在接收端引入的,所以將引入噪聲這一步歸在接收模塊。在做卷積碼仿真時,由于所用方法譯碼時不能將原數(shù)據(jù)全部恢復(fù),所以需要在編碼時補零,這樣譯碼得到的才是完整的初始碼序列。這次設(shè)計的GUI只包含了通信的一些基本步驟,實際情況要復(fù)雜得多。比如實際信道中還包括衰減、延遲、多徑、多普勒頻移等很多問題,此外,在接收端還要考慮濾波器設(shè)計、均衡、同步等問題。
參考文獻(xiàn)
[1]皮宇鋒,郭杰榮.信息通信教學(xué)軟件的開發(fā)設(shè)計[J].中國電力教育,2010,15:84-86.
[2]自動化技術(shù)、計算機技術(shù)[J].中國無線電電子學(xué)文摘,2007,03:183-248.
關(guān)鍵詞 軟件通信體系結(jié)構(gòu) 無線電系統(tǒng) 軟件定義
中圖分類號:TP319 文獻(xiàn)標(biāo)識碼:A
在現(xiàn)實生活中,軟件定義無線電技術(shù)在軍事方面的應(yīng)用不斷地發(fā)展研究,各國為了早日實現(xiàn)軍事化的軟件定義無線電技術(shù),加大了對軟件定義無線電的研究。目前,軟件定義無線電技術(shù)已成為未來軍事通信發(fā)展的趨勢。①
1 軟件通信體系結(jié)構(gòu)
1.1 硬件體系結(jié)構(gòu)
軟件通信體系中硬件體系結(jié)構(gòu)采用了面向?qū)ο蠹夹g(shù),通過面向面向?qū)ο蠹夹g(shù)的概念對系統(tǒng)內(nèi)部的典型模塊進(jìn)行劃分,要求實際系統(tǒng)一旦實現(xiàn),必須將其詳細(xì)的、完整的接口進(jìn)行公開。軟件開發(fā)人員可以通過公開的接口,對硬件的性能和容量以加載特定的波形,第三方則通過公開的接口,提供系統(tǒng)內(nèi)部模塊,方便了新技術(shù)的插入。
硬件體系結(jié)構(gòu)除了要對所有無線設(shè)備系統(tǒng)內(nèi)部硬件模塊的組成進(jìn)行定義,還要給出所有無線設(shè)備內(nèi)部硬件的物理屬性。當(dāng)無線設(shè)備系統(tǒng)內(nèi)部硬件物理屬性符合條件時,這些硬件設(shè)備就可以應(yīng)用到實際平臺硬件模塊,具有統(tǒng)一性,針對所有的通信設(shè)備來說都是通用的,實現(xiàn)了硬件模塊設(shè)計的實用性與通用性,節(jié)約了系統(tǒng)成本。未來無線通信系統(tǒng)發(fā)展主要以軟件為主,而現(xiàn)代無線通信系統(tǒng)是由軟件與硬件相結(jié)合來實現(xiàn)無線通信的功能。因此,為滿足無線通信系統(tǒng)未來發(fā)展的需求,硬件模塊要具有一定的可擴展性,這可以確保在原有硬件模塊基礎(chǔ)上,通過增加新的功能或者在已有的硬件模塊中增加新的硬件模塊來實現(xiàn)新的技術(shù),既保證了硬件模塊統(tǒng)一性,又增加了硬件模塊內(nèi)在的靈活性,滿足軟件無線電發(fā)展的需求。②
1.2 軟件體系結(jié)構(gòu)
在軟件通信體系中軟件與硬件所承擔(dān)的功能不同,根據(jù)軟件在通信體系中所承擔(dān)的功能,可將軟件體系結(jié)構(gòu)由上到下分為應(yīng)用程序、核心框架、公共對象請求體系中間件和嵌入式實時操作系統(tǒng)四部分。其中核心框架、公共對象請求體系中間件以及嵌入式實時操作系統(tǒng)三部分共同構(gòu)成了軟件體系結(jié)構(gòu)中的核心內(nèi)容,也是軟件體系結(jié)構(gòu)中一個通用的軟件平臺。軟件平臺的構(gòu)成給開發(fā)人員和波形的設(shè)計帶來了新的要求與限制,有利于實現(xiàn)波形從一個無線通信系統(tǒng)到另一個無線通信系統(tǒng)的移植。
1.3 安全體系結(jié)構(gòu)
軟件通信體系中安全體系結(jié)構(gòu),為了保證在不同的無線通信系統(tǒng)能夠相互通連與相互操作,是為了確保用戶的信息在傳輸、發(fā)送、處理以及存儲過程中的完整性與機密性。在安合體系結(jié)構(gòu)中,整個系統(tǒng)的安全功能是由一個通信保密模塊、紅邊處理器以及黑邊處理器三部分共同來完成的,而非一個邊界分明的安全模塊來單獨完成。③
2 軟件定義無線電系統(tǒng)
軟件定義無線電系統(tǒng)又稱為軟件無線電系統(tǒng),是一種可以通過軟件進(jìn)行編輯,實現(xiàn)全部功能的無線電,具有較高的靈活性與通用性。用戶通過軟件無線電系統(tǒng),對動態(tài)修改配置對系統(tǒng)中的網(wǎng)絡(luò)裝備與軟件更新設(shè)備進(jìn)行修改,從而獲得更好的服務(wù)與性能。軟件定義無線電系統(tǒng)是通過一個簡單的終端設(shè)備,運用軟件重配置功能來支持各種不同種類的無線系統(tǒng)與服務(wù)的新技術(shù)。固定或者移動的軟件定義無線電設(shè)備,都能讓用戶通過改變軟件改變接收與發(fā)送的特征。移動無線電系統(tǒng)與改變運行模式的軟件定義無線電設(shè)備相互通聯(lián),并且能夠同時在多種公共安全頻帶中工作。
軟件定義無線電系統(tǒng)不僅具備基本的無線通信功能,還具有以下三個方面的功能:一是通過軟件定義無線電系統(tǒng)能夠升級系統(tǒng)所裝載的軟件,以此來達(dá)到對系統(tǒng)的升級與功能的更新。④二是軟件定義無線電系統(tǒng)可以支持不同電臺系統(tǒng)的相互通聯(lián),達(dá)到不同獨立運行的電臺系統(tǒng)能夠互傳信息。三是軟件定義無線電系統(tǒng)主要以軟件為主,解放了硬件通信業(yè)務(wù)傳輸方式,通過軟件定義無線電系統(tǒng)所裝載不同軟件實現(xiàn)動態(tài)配置系統(tǒng)功能。
3 軟件定義無線電的發(fā)展
軟件定義無線電技術(shù)采用現(xiàn)代化高端軟件進(jìn)行操縱與控制,具有高自動化程度與較強的擴展能力,打破傳統(tǒng)依賴于硬件發(fā)展的通信體系。軟件定義無線電體系的發(fā)展是通信領(lǐng)域的第三次革命,經(jīng)歷了從固定通信到移運通信,模擬通信到數(shù)字通信的改革。
軟件定義無線電技術(shù)作為現(xiàn)代通信行業(yè)新技術(shù),在未來的無線電通信應(yīng)用中有良好的發(fā)展前景,可能成為未來無線電通信技術(shù)的支柱。軟件定義無線電技術(shù)可以多頻段多模式的手機、衛(wèi)星通信、智能天線以及蜂窩移動通信系統(tǒng)、無線局域網(wǎng)等各個相關(guān)的應(yīng)用領(lǐng)域。
4 總結(jié)
隨著科學(xué)技術(shù)的不斷發(fā)展,軟件定義無線電系統(tǒng)在各個領(lǐng)域中得到了廣泛的應(yīng)用,無線通信體系朝著通信數(shù)字化、智能一體化的發(fā)展。由于我國目前無線通信體系硬件水平的有限,導(dǎo)致軟件無線電通信還達(dá)不到理想的要求。針對軟件通信體系與軟件定義無線電系統(tǒng)的研究,可以預(yù)見,軟件定義無線電技術(shù)可能成為未來通信行業(yè)發(fā)展的核心內(nèi)容。⑤
注釋
① 范建華,王曉波,李云洲.基于軟件通信體系結(jié)構(gòu)的軟件定義無線電系統(tǒng)[J].通信技術(shù),2011,51(8):1031-1037.
② 劉獻(xiàn),張棟嶺,陳涵生.軟件定義無線電及軟件通信體系結(jié)構(gòu)的規(guī)范[J].計算機工程,2009,30(1):95-98.
③ 邱永紅,朱勤.基于軟件通信系統(tǒng)的無線通信系統(tǒng)研究[J].系統(tǒng)工程與電子技術(shù),2009,26(5)621-625.