李小林 王炳強(qiáng)
摘要:隨著經(jīng)濟(jì)的快速發(fā)展,社會在不斷的進(jìn)步,傳統(tǒng)嵌入式軟件開發(fā)環(huán)境架構(gòu)存在缺乏可擴(kuò)展性、不能共享通信資源、不能共享目標(biāo)機(jī)代理等資源的問題。文章研究嵌入式軟件通信架構(gòu)(TargetcommunicationFramework,簡稱TCF),以及基于該架構(gòu)的嵌入式軟件開發(fā)環(huán)境技術(shù)。TCF在目標(biāo)機(jī)和宿主機(jī)之間建立共享的通信鏈接、統(tǒng)一通信協(xié)議、基于服務(wù)的架構(gòu),共享通信通道和目標(biāo)機(jī)代理,是下一代嵌入式軟件開發(fā)環(huán)境的全新設(shè)計(jì)理念。
關(guān)鍵詞:TCF;嵌入式軟件開發(fā)環(huán)境;交叉調(diào)試;CDT;天脈操作系統(tǒng)
引言
通信信號自動(dòng)調(diào)制方式識別的應(yīng)用范圍廣泛,在軟件無線電接收機(jī)中更具有十分重要的意義。軟件無線電的思路是構(gòu)建一個(gè)通用硬件平臺,用軟件來實(shí)現(xiàn)盡可能多的無線通信功能,目標(biāo)是實(shí)現(xiàn)多波段、多體制、多制式的接收和發(fā)送,達(dá)到通信設(shè)備之間的互聯(lián)互通,信號調(diào)制方式的自動(dòng)識別是軟件無線電接收機(jī)的必備功能之一。
1軟件無線電概述
約瑟夫·米托拉(JesephMitola)在1922年5月份舉行的美國通信系統(tǒng)會議上第一次正式提出了“軟件無線電”(SWR,SoftwareRadio)的概念。該概念的核心思想就是積極建構(gòu)一個(gè)模塊化、標(biāo)準(zhǔn)化、通用化的硬件支持平臺,而后借助該硬件支持平臺,讓寬帶D/A轉(zhuǎn)換器、A/D轉(zhuǎn)換器與天線在最大程度上相互靠近,利用軟件技術(shù)來實(shí)現(xiàn)各種所需要的無線通信功能,例如數(shù)據(jù)格式、工作頻段、加密模式、調(diào)制解調(diào)方式以及通信協(xié)議等等,讓軟件無線電擁有使用靈活、通用性強(qiáng)、便于升級和系統(tǒng)聯(lián)網(wǎng)的優(yōu)勢。由于軟件無線電的各種功能是通過軟件編程實(shí)現(xiàn)的,因此,假如需要對通信系統(tǒng)進(jìn)行更新只需要添加新型軟件模塊即可;同時(shí),軟件無線電可以形成多種通信協(xié)議與調(diào)制波形,因此能夠有效兼容以往的舊體制電臺,延長了通信系統(tǒng)的使用壽命,降低了使用成本。
在今天,日新月異的電子技術(shù)和計(jì)算機(jī)技術(shù)、高速發(fā)展的信號處理技術(shù)和寬帶模數(shù)轉(zhuǎn)換技術(shù)、具有較高技術(shù)成熟度的EDA工具和可編程器件尤其是不斷提升的硬件制造水平,這些均為軟線無線電提供了極大的技術(shù)便利。有鑒于此,軟件無線電的物理層必須要具備非常優(yōu)秀的適應(yīng)性和靈活性,能夠在最大程度上兼容各種操作系統(tǒng),并保證各種通信功能可以正常使用。
2嵌入式通信架構(gòu)
TCF設(shè)計(jì)共享的物理鏈接解決共享網(wǎng)絡(luò)資源的問題;設(shè)計(jì)統(tǒng)一的通信協(xié)議、并采用基于服務(wù)的架構(gòu),解決共享代理的問題、缺乏可擴(kuò)展性的問題。
2.1共享的物理鏈接
TCF通信鏈接包括通道、消息、JSON碼、服務(wù)四層,對應(yīng)OSI網(wǎng)絡(luò)模型的5到7層。會話層由通道和消息組成;表示層進(jìn)行數(shù)據(jù)描述和編碼;應(yīng)用層駐留各種服務(wù)。TCF根據(jù)目標(biāo)機(jī)配置創(chuàng)建宿主機(jī)和目標(biāo)機(jī)的數(shù)據(jù)交換通道。一個(gè)物理網(wǎng)絡(luò)可以創(chuàng)建多路通道,一個(gè)通道可以掛接多個(gè)服務(wù)。工具調(diào)用通道的標(biāo)準(zhǔn)接口,選擇需要的服務(wù)。
2.2統(tǒng)一的通信協(xié)議
TCF制定一種統(tǒng)一的基于文本的通信協(xié)議。該協(xié)議定義消息的時(shí)序和數(shù)據(jù)格式。TCF包含四類消息:命令消息、回復(fù)消息、事件消息、流控制消息。命令消息通知目標(biāo)機(jī)執(zhí)行預(yù)定義動(dòng)作?;貜?fù)消息回復(fù)命令的執(zhí)行結(jié)果或狀態(tài)。事件消息通知訂閱者目標(biāo)機(jī)狀態(tài)的改變。流控制消息發(fā)送網(wǎng)絡(luò)狀態(tài),預(yù)防堵塞。表1列舉消息類型及其語法。TCF通信協(xié)議規(guī)定斜體部分?jǐn)?shù)據(jù)的格式;黑體部分和服務(wù)相關(guān),可以使用任意的符合需求的數(shù)據(jù)編碼。TCF默認(rèn)選擇JSON編碼。JSON(JavaScriptObjectNotation)是一個(gè)基于文本的、輕量級的數(shù)據(jù)交換協(xié)議。
宿主機(jī)工具創(chuàng)建通道,選擇需要的服務(wù)并發(fā)送命令消息,命令消息的語法中,“C”表示是命令類消息標(biāo)識,“token”是通道標(biāo)識,“service”是服務(wù)標(biāo)識,“command”是命令名稱,“argu-mentsdata”是命令參數(shù)。目標(biāo)機(jī)代理收到、解析命令消息,派發(fā)調(diào)用的服務(wù)。服務(wù)的執(zhí)行結(jié)果通過回復(fù)消息發(fā)給工具?;貜?fù)消息有兩類,R類和P類。一個(gè)命令消息對應(yīng)一個(gè)R類消息或多個(gè)P類消息。R類消息是立即執(zhí)行并返回的消息,“resultdata”表示返回?cái)?shù)據(jù);P類消息是長時(shí)間執(zhí)行的消息,“progressdata”表示當(dāng)前命令的執(zhí)行進(jìn)度數(shù)據(jù)。目標(biāo)機(jī)狀態(tài)發(fā)生改變時(shí),發(fā)送事件消息通知宿主機(jī)工具。工具可以訂閱關(guān)注的事件類型?!癳vent”表示事件類型。“eventdata”表示事件的數(shù)據(jù)。當(dāng)宿主機(jī)發(fā)送消息的速度過快,超過通道或目標(biāo)機(jī)的處理能力時(shí),目標(biāo)機(jī)發(fā)送流控制消息給宿主機(jī)?!皌rafficcongestionlevel”的取值范圍為-100到100,表示通信擁塞級別從小大。當(dāng)通信擁塞級別大于0時(shí),宿主機(jī)就會調(diào)整消息發(fā)送頻率。
2.3基于服務(wù)的架構(gòu)
TCF把目標(biāo)機(jī)代理的功能歸納分類為一組服務(wù)。目標(biāo)機(jī)只運(yùn)行一個(gè)代理,容納、管理所有服務(wù);接收宿主機(jī)的命令消息,派發(fā)相應(yīng)服務(wù);組織回復(fù)消息;監(jiān)聽目標(biāo)機(jī)狀態(tài)變化,組織事件消息;根據(jù)網(wǎng)絡(luò)狀態(tài)組織流控制消息。TCF定義的基本服務(wù)共5類、12種:(1)遠(yuǎn)程定位類,包括定位服務(wù),用于發(fā)送、接收遠(yuǎn)程定位信息,自動(dòng)發(fā)現(xiàn)上線的目標(biāo)機(jī);(2)遠(yuǎn)程文件系統(tǒng)控制類,包括文件系統(tǒng)服務(wù);(3)遠(yuǎn)程進(jìn)程控制類,包括進(jìn)程服務(wù),提供啟動(dòng)、停止、掛接、解掛等進(jìn)程控制;(4)目標(biāo)系統(tǒng)狀態(tài)控制類,包括系統(tǒng)監(jiān)控服務(wù),用于獲取目標(biāo)機(jī)系統(tǒng)狀態(tài),如系統(tǒng)內(nèi)核、進(jìn)程、線程對象的信息;(5)調(diào)試控制類,包括:運(yùn)行控制服務(wù)、斷點(diǎn)服務(wù)、寄存器服務(wù)、內(nèi)存服務(wù)、上下文服務(wù)、反匯編服務(wù)、棧幀服務(wù)、符號表服務(wù)。TCF支持動(dòng)態(tài)加卸載服務(wù)??梢栽谀繕?biāo)設(shè)備運(yùn)行時(shí)啟動(dòng)、停止指定服務(wù)。TCF支持?jǐn)U展服務(wù)。擴(kuò)展分為實(shí)現(xiàn)新的服務(wù)以及服務(wù)增值。服務(wù)增值加工服務(wù)回復(fù)消息,回復(fù)經(jīng)過二次解釋的數(shù)據(jù)。
3TCF的典型實(shí)現(xiàn)
Eclipse是嵌入式軟件集成開發(fā)環(huán)境的主流平臺。通過集成不同的插件,Eclipse可以擴(kuò)展各種功能:支持C/C++開發(fā)的CDT(C/C++DevelopmentToolkit)項(xiàng)目;支持遠(yuǎn)程系統(tǒng)開發(fā)的RSE(RemoteSystemExplorer)項(xiàng)目;實(shí)現(xiàn)TCF架構(gòu)的項(xiàng)目。TCF項(xiàng)目分為宿主機(jī)端、目標(biāo)機(jī)端。宿主機(jī)使用Java實(shí)現(xiàn)的TCF架構(gòu)核心。目標(biāo)機(jī)端使用C實(shí)現(xiàn)TCF代理。我們選擇Eclipse+TCF+CDT+RSE的結(jié)構(gòu),實(shí)現(xiàn)支持天脈1嵌入式實(shí)時(shí)操作系統(tǒng)的嵌入式軟件開發(fā)環(huán)境。在結(jié)如圖1描述的結(jié)構(gòu)中,基于CDT實(shí)現(xiàn)調(diào)試器;基于RSE實(shí)現(xiàn)監(jiān)控器。調(diào)試器和監(jiān)控器通過TCF架構(gòu)核心和目標(biāo)機(jī)上的TCF代理程序通信,完成天脈的開發(fā)調(diào)試。
結(jié)語
隨著各家供應(yīng)商的接受,基于TCF的商用開發(fā)工具軟件已經(jīng)逐步出現(xiàn),如WindRiver公司workbench3.2及其后續(xù)系列產(chǎn)品。TCF已經(jīng)納入Eclipse開源社區(qū),借著開源目的優(yōu)勢,TCF將成為新一代嵌入式軟件開發(fā)環(huán)境行業(yè)的實(shí)際標(biāo)準(zhǔn)。
參考文獻(xiàn):
[1]劉芳,臧威.基于Eclipse平臺的嵌入式交叉調(diào)試環(huán)境MRTOS[J].電子科技,2013,26(5):18-21.
[2]張琴,田寶玉.通信信號調(diào)制模式的自動(dòng)識別技術(shù)及發(fā)展前景[J].電訊技術(shù),2008,48(2):6-10.