麥秀青 王千 陸平 徐冬晨 張晨
關(guān)鍵詞:多模通信;國產(chǎn)操作系統(tǒng);YROS;HTML5 技術(shù)
中圖分類號:TP316 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-8228(2023)11-141-05
0 引言
隨著通信技術(shù)的不斷發(fā)展,移動終端的通信模式變得非常復(fù)雜多樣。不同的無線通信技術(shù)[1]各有優(yōu)缺點(diǎn)且制式差異較大,能綜合各種不同通信制式優(yōu)點(diǎn)的多模通信是必然趨勢。由于波形廠商意見不統(tǒng)一、波形標(biāo)準(zhǔn)進(jìn)展緩慢等問題,給多模通信終端操作系統(tǒng)適配帶來了很大的挑戰(zhàn)。
本文提出了一種多模通信終端操作系統(tǒng)的關(guān)鍵技術(shù)實(shí)現(xiàn)方案,該方案集成了天通通信[2]、LTE[3]和自組網(wǎng)[4]通信模塊,針對多模通信終端的融合通信需求,基于國產(chǎn)操作系統(tǒng)YROS(銀河銳華終端操作系統(tǒng))平臺實(shí)現(xiàn)了多模融合通信框架,通過對通信模塊的抽象化,忽略了不同通信模塊在工作方式上的差異,保證了模塊間的協(xié)同工作以及平滑切換。對上層應(yīng)用形成統(tǒng)一、共享的HTML5 應(yīng)用軟件接口,對下層通過集成不同波形廠家定制SDK,對天通通信、LTE 和自組網(wǎng)的通信協(xié)議進(jìn)行軟件適配,并與多模通信層的通信模塊進(jìn)行集成,來實(shí)現(xiàn)基于多模通信鏈路的數(shù)據(jù)傳輸能力,采用統(tǒng)一的通信框架從而滿足了不同架構(gòu)、不同體制通信波形之間的融合通信設(shè)計(jì)需求。
1 多模融合通信框架
國內(nèi)移動通信操作系統(tǒng)[5]絕大多數(shù)由Android 定制[6]而成。Android 源代碼開放,應(yīng)用開發(fā)更加自如,開發(fā)者可以有更大的設(shè)計(jì)權(quán)限,但Android 系統(tǒng)的升級要通過終端廠家,導(dǎo)致系統(tǒng)升級緩慢,新版本不能很快得到推廣,同時(shí)還存在知識產(chǎn)權(quán)和安全后門風(fēng)險(xiǎn)。
國產(chǎn)操作系統(tǒng)YROS 是由中國電子科技集團(tuán)公司第32 研究所與中國人民解放軍國防科技大學(xué)聯(lián)合研制的智能移動操作系統(tǒng),其主要技術(shù)路徑和TDOS、OpenHarmony 大致相同,均為Linux+HTML5 路線,但是采用更加開放的Gecko 引擎,由Mozilla 基金會主導(dǎo)開發(fā),遵守MPL 協(xié)議,在知識產(chǎn)權(quán)方面風(fēng)險(xiǎn)幾乎為零。同時(shí)在以H5 為主的應(yīng)用生態(tài)構(gòu)建方面已有很好的開發(fā)人員基礎(chǔ)和市場基礎(chǔ)[7-8]。
基于自主可控的設(shè)計(jì)需求和H5 應(yīng)用生態(tài)前景,本文提出的多模通信終端操作系統(tǒng)方案在國產(chǎn)YROS平臺的基礎(chǔ)上擴(kuò)充了天通、LTE 和自組網(wǎng)通信方式,具備了支持自組網(wǎng)、天通和LTE 等多種通信方式的短信和通話功能。其中的關(guān)鍵技術(shù)多模融合框架如圖1 所示,其采用了軟件分層架構(gòu)設(shè)計(jì)思路,經(jīng)典三層架構(gòu)自頂向下由應(yīng)用層、多模通信層、通信協(xié)議層組成,應(yīng)用層負(fù)責(zé)提供業(yè)務(wù)展示和用戶交互,多模通信層負(fù)責(zé)對上提供融合通信業(yè)務(wù)能力,對下分發(fā)業(yè)務(wù)請求,通信協(xié)議層對上提供通信數(shù)據(jù)訪問接口。
⑴ 應(yīng)用軟件層
主要包括了通訊錄、設(shè)置、通話和信息的用戶界面人機(jī)交互模塊,在YROS 平臺應(yīng)用基礎(chǔ)上進(jìn)行了移植重構(gòu),實(shí)現(xiàn)了多模通信方式下的電話應(yīng)用、短信應(yīng)用和系統(tǒng)設(shè)置應(yīng)用,為用戶提供了對天通、自組網(wǎng)和LTE 多模通信業(yè)務(wù)功能的統(tǒng)一訪問。
⑵ 多模通信層
主要包括了天通通信模塊、LTE 通信模塊和自組網(wǎng)通信模塊。在多模通信層中,通信模塊負(fù)責(zé)與下層相應(yīng)的波形通信協(xié)議棧建立數(shù)據(jù)鏈路通道,通過與波形進(jìn)行數(shù)據(jù)交互為上層提供了基于數(shù)據(jù)鏈路的網(wǎng)絡(luò)通信接口功能。通過封裝Web 接口,完成了對通信共性業(yè)務(wù)的支撐,對全部波形通信業(yè)務(wù)模塊進(jìn)行標(biāo)準(zhǔn)化抽象,包含通話業(yè)務(wù)、即時(shí)消息業(yè)務(wù)、基礎(chǔ)設(shè)置業(yè)務(wù)。對上提供統(tǒng)一的應(yīng)用軟件業(yè)務(wù)功能接口,以供應(yīng)用軟件共享調(diào)用。
⑶ 通信協(xié)議層
主要包括了天通協(xié)議棧封裝庫rild、LTE 協(xié)議棧開發(fā)工具庫SDK、自組網(wǎng)協(xié)議棧開發(fā)工具庫SDK。通過對天通、LTE 和自組網(wǎng)的通信協(xié)議進(jìn)行軟件適配,并與上層多模通信層的通信模塊進(jìn)行集成,實(shí)現(xiàn)基于多模通信鏈路的數(shù)據(jù)傳輸能力。
2 主要通信模塊設(shè)計(jì)與實(shí)現(xiàn)
2.1 天通通信模塊
天通通信模塊包括了消息傳輸模塊、查詢設(shè)置模塊、通話模塊、短信模塊。其中,消息傳輸模塊負(fù)責(zé)提供消息轉(zhuǎn)發(fā)、請求封裝等基礎(chǔ)功能;查詢設(shè)置模塊提供天通網(wǎng)絡(luò)服務(wù)的打開/關(guān)閉,天通卡信息和網(wǎng)絡(luò)信息的查詢等功能;通話模塊負(fù)責(zé)提供天通電話撥打、接聽、掛斷等功能并提供系統(tǒng)接口;短信模塊提供天通短信收發(fā)功能并提供系統(tǒng)接口。
⑴ 消息傳輸
天通消息傳輸模塊提供天通通信協(xié)議層(RILD)和系統(tǒng)中天通功能模塊(查詢設(shè)置模塊、通話模塊、短信模塊)交互的功能。
當(dāng)天通消息傳輸模塊接收到天通業(yè)務(wù)功能模塊的請求消息時(shí),將請求消息類型和請求對應(yīng)的回調(diào)函數(shù)保存在Map 中,并將請求消息封裝為請求數(shù)據(jù)包發(fā)送給天通通信協(xié)議層;當(dāng)天通消息傳輸模塊接收到天通通信協(xié)議層的請求回報(bào)數(shù)據(jù)包時(shí),從數(shù)據(jù)包中取出返回信息,根據(jù)返回信息中的請求消息類型,在Map中查找該消息類型并調(diào)用對應(yīng)回調(diào)函數(shù),然后從Map中刪除該請求消息類型;當(dāng)天通消息傳輸模塊接收到天通通信協(xié)議層的主動上報(bào)數(shù)據(jù)包時(shí),根據(jù)返回信息中的消息類型,調(diào)用對應(yīng)函數(shù)。
⑵ 查詢設(shè)置
天通查詢設(shè)置模塊提供天通連接開啟關(guān)閉、天通卡信息查詢,當(dāng)前連接狀態(tài)查詢等功能,并向上層提供相關(guān)接口。天通設(shè)置模塊保存當(dāng)前天通卡與連接信息,并為每個(gè)應(yīng)用維護(hù)一個(gè)天通卡監(jiān)聽器列表與連接服務(wù)監(jiān)聽器列表,并提供監(jiān)聽器的注冊與注銷接口。
當(dāng)天通查詢設(shè)置模塊接收到上層應(yīng)用的查詢請求后,返回天通設(shè)置模塊中保存的對應(yīng)天通卡與連接信息,如天通卡id、類型、當(dāng)前連接、當(dāng)前連接狀態(tài)等;當(dāng)天通查詢設(shè)置模塊通過天通消息傳輸模塊收到天通卡信息和連接信息變更消息時(shí),向消息傳輸模塊發(fā)送請求,然后根據(jù)返回消息修改查詢設(shè)置模塊保存的信息,并通過上層應(yīng)用注冊的監(jiān)聽器向上層應(yīng)用發(fā)送事件;當(dāng)天通查詢設(shè)置模塊接收到上層應(yīng)用的設(shè)置連接服務(wù)的請求后,向天通消息傳輸模塊發(fā)送請求,并通過上層應(yīng)用注冊的監(jiān)聽器向上層應(yīng)用發(fā)送結(jié)果事件。天通查詢設(shè)置流程圖如圖2 所示。
⑶ 通話
天通通話功能模塊提供天通通話的撥號、接聽、掛斷等功能,并向上層應(yīng)用提供相關(guān)接口。天通通話模塊保存當(dāng)前通話狀態(tài),為每個(gè)應(yīng)用維護(hù)一個(gè)通話狀態(tài)監(jiān)聽器列表,并提供監(jiān)聽器的注冊與注銷接口。
當(dāng)天通通話功能模塊接收到上層應(yīng)用的發(fā)起通話的請求后,向天通消息傳輸模塊發(fā)送請求;當(dāng)通過天通消息傳輸模塊收到來電請求消息時(shí),修改當(dāng)前通話狀態(tài),并通過上層應(yīng)用注冊的監(jiān)聽器向上層應(yīng)用發(fā)送對應(yīng)事件;當(dāng)接收到上層應(yīng)用的應(yīng)答通話的請求后,向天通消息傳輸模塊發(fā)送請求;當(dāng)接收到上層應(yīng)用的掛斷通話的請求后,向天通消息傳輸模塊發(fā)送請求;當(dāng)通過天通基礎(chǔ)模塊收到通話狀態(tài)變更消息時(shí),修改當(dāng)前通話狀態(tài),并通過上層應(yīng)用注冊的監(jiān)聽器向上層應(yīng)用發(fā)送對應(yīng)事件。天通通話功能流程圖如圖3所示。
⑷ 短信
天通短信功能模塊提供天通短信的發(fā)送、接收功能,并向上層應(yīng)用提供相關(guān)接口,并為每個(gè)應(yīng)用維護(hù)一個(gè)短信消息監(jiān)聽器列表,并提供監(jiān)聽器的注冊與注銷接口。
當(dāng)天通短信功能模塊接收到上層應(yīng)用發(fā)送短信的請求后,向天通消息傳輸模塊發(fā)送請求,當(dāng)從天通消息傳輸模塊接收到發(fā)送結(jié)果消息時(shí),通過上層應(yīng)用注冊的監(jiān)聽器向上層應(yīng)用返回事件,其中包括發(fā)送中事件、已發(fā)送事件、發(fā)送成功事件和失敗事件;當(dāng)天通短信功能模塊從天通消息傳輸模塊接收到收到短信消息時(shí),通過上層應(yīng)用注冊的監(jiān)聽器向上層應(yīng)用發(fā)送事件通知用戶。天通短信功能流程圖如圖4 所示。
2.2 LTE 通信模塊
LTE 通信模塊包括了LTE 波形加載模塊、電話模塊、短信模塊。其中LTE 波形加載模塊負(fù)責(zé)提供LTE波形加載、建立數(shù)據(jù)通信鏈路、數(shù)據(jù)傳輸?shù)裙δ?;電話模塊負(fù)責(zé)提供LTE 電話撥打、接聽、掛斷等功能并提供系統(tǒng)接口;短信模塊負(fù)責(zé)提供LTE 點(diǎn)對點(diǎn)及群組的短信收發(fā)功能并提供系統(tǒng)接口。
⑴ LTE 波形加載
LTE 波形加載功能主要提供數(shù)據(jù)通訊鏈路建立與數(shù)據(jù)傳輸功能。數(shù)據(jù)通信鏈路的建立主要分為鏈路不可用階段、鏈路建立階段、網(wǎng)絡(luò)層協(xié)商階段、鏈路終止階段等四個(gè)階段。當(dāng)系統(tǒng)啟動后,若檢測到加載有LTE 模塊,則通過AT 指令打開LTE 模塊,此時(shí)進(jìn)入到鏈路不可用狀態(tài);待LTE 通信物理鏈路激活后,進(jìn)入鏈路建立階段,在此階段中進(jìn)行鏈路控制協(xié)議協(xié)商,以確定工作方式、認(rèn)證方式、鏈路壓縮等,若協(xié)商成功,表示底層鏈路已經(jīng)正確建立,若協(xié)商失敗,則返回至鏈路不可用狀態(tài);底層數(shù)據(jù)鏈路建立后,進(jìn)行網(wǎng)絡(luò)層協(xié)議階段,此階段過程中按照各網(wǎng)絡(luò)控制些以進(jìn)行配置協(xié)商,協(xié)商成功則數(shù)據(jù)通信鏈路便可以基于TCP/IP 進(jìn)行發(fā)送/接收報(bào)文。在數(shù)據(jù)鏈路建立成功后,波形丟失等多種情況可能導(dǎo)致鏈路終止,此時(shí)會通過鏈路控制協(xié)議報(bào)文來關(guān)閉鏈路,并通知網(wǎng)絡(luò)層與物理層強(qiáng)制關(guān)閉鏈路,最終使鏈路處于不可用狀態(tài)。數(shù)據(jù)通信鏈路的建立與斷開的流程如圖5 所示。
當(dāng)通訊鏈路建立成功后,會創(chuàng)建一個(gè)網(wǎng)絡(luò)接口,并在創(chuàng)建之初獲取動態(tài)分配的IP 地址。上層應(yīng)用發(fā)送TCP/IP 數(shù)據(jù)包時(shí),數(shù)據(jù)會經(jīng)過LTE 協(xié)議封裝,通過該網(wǎng)絡(luò)接口將數(shù)據(jù)發(fā)送到LTE 模塊,LTE 模塊將信息發(fā)送出去。當(dāng)LTE 模塊收到數(shù)據(jù)時(shí),會先通過LTE 協(xié)議解析,最終將數(shù)據(jù)發(fā)送給上層應(yīng)用。
LTE 電話模塊提供LTE 電話撥打、接聽、掛斷等功能并提供系統(tǒng)接口。當(dāng)LTE 電話功能模塊接受到LTE 本地客戶端的登錄成功消息后,啟動消息接受線程,以接收來自LTE 本地客戶端的消息;LTE 電話功能模塊為每個(gè)應(yīng)用維護(hù)一個(gè)電話狀態(tài)監(jiān)聽器列表,并提供監(jiān)聽器的注冊與注銷接口;當(dāng)接收到用戶應(yīng)用的電話撥打請求時(shí),LTE 電話模塊獲取LTE 的用戶登錄信息以及系統(tǒng)當(dāng)前的通話狀態(tài),若當(dāng)前沒有用戶登錄或處于優(yōu)先級更高的通話中,則拒絕用戶應(yīng)用電話撥號請求或?qū)⒔邮艿降膩黼娤仐?,否則LTE 電話模塊向LTE 本地客戶端發(fā)送電話撥打/接聽消息;當(dāng)LTE通話接通后,LTE 電話模塊將收發(fā)電話音頻流數(shù)據(jù),并接受LTE 電話狀態(tài)消息,并將消息封裝成LTE 電話事件通過用戶應(yīng)用注冊的監(jiān)聽器發(fā)送給用戶應(yīng)用,直至用戶應(yīng)用通過電話掛斷接口結(jié)束當(dāng)前LTE 電話。LTE電話功能的流程圖如圖6 所示。
⑶ 短信
LTE 短信模塊主要提供LTE 點(diǎn)對點(diǎn)以及群組的短信收發(fā)功能并提供系統(tǒng)接口。當(dāng)LTE 短信功能模塊接收到LTE 本地客戶端的登錄成功消息后啟動接受消息線程,用以接受LTE 本地客戶端的短信相關(guān)消息;LTE 短信功能模塊為每個(gè)應(yīng)用維護(hù)一個(gè)短信消息監(jiān)聽器列表,并提供監(jiān)聽器的注冊與銷毀接口;當(dāng)接收到用戶應(yīng)用發(fā)送的短信的請求后,LTE 短信功能模塊獲取LTE 的用戶登錄信息,若當(dāng)前沒有用戶登錄,則拒絕用戶的登錄發(fā)送短信請求,否則LTE 短信功能模塊向LTE 本地客戶端發(fā)送短信請求;當(dāng)LTE 功能模塊接受到LTE 本地客戶端發(fā)送的短信送達(dá)狀態(tài)消息或收到短信消息時(shí),將其封裝成短信事件通過用戶應(yīng)用注冊的監(jiān)聽器發(fā)送給用戶應(yīng)用。短信功能流程圖如圖7 所示。
2.3 自組網(wǎng)通信模塊
自組網(wǎng)通信模塊包括了自組網(wǎng)波形加載模塊、業(yè)務(wù)消息封裝解析模塊、業(yè)務(wù)接口訪問模塊。其中自組網(wǎng)波形加載負(fù)責(zé)提供自組網(wǎng)波形集成部署和加載功能;業(yè)務(wù)消息封裝解析負(fù)責(zé)提供對自組網(wǎng)通信數(shù)據(jù)協(xié)議的解析和封裝功能;業(yè)務(wù)接口訪問負(fù)責(zé)提供自組網(wǎng)通話、短消息、文件傳輸、群組和配置項(xiàng)查詢設(shè)置的功能訪問。
⑴ 自組網(wǎng)波形加載
目前自組網(wǎng)協(xié)議SDK 由自組網(wǎng)服務(wù)組件、自組網(wǎng)SDK 和安裝腳本組成,其中,自組網(wǎng)服務(wù)組件由核心服務(wù)程序、共享庫和分區(qū)鏡像文件等組成;自組網(wǎng)SDK 是基于自組網(wǎng)服務(wù)運(yùn)行的可執(zhí)行程序,負(fù)責(zé)分發(fā)和接收自組網(wǎng)消息;安裝腳本是由一系列安裝指令組成的批處理程序。本地部署自組網(wǎng)波形服務(wù)組件,系統(tǒng)啟動后運(yùn)行服務(wù)組件,檢測當(dāng)前是否為自組網(wǎng)模式,啟動自組網(wǎng)波形服務(wù),完成自組網(wǎng)波形加載。
⑵ 業(yè)務(wù)消息封裝解析
自組網(wǎng)功能業(yè)務(wù)的核心部分是對自組網(wǎng)通信數(shù)據(jù)交互協(xié)議的處理,自組網(wǎng)通信模塊通過解析和封裝通信協(xié)議完成與自組網(wǎng)模塊的業(yè)務(wù)功能交互,自組網(wǎng)通信模塊與自組網(wǎng)協(xié)議棧模塊之間的數(shù)據(jù)交互示意圖如圖8 所示。自組網(wǎng)通信模塊是通過與自組網(wǎng)通信協(xié)議層進(jìn)行UDP 通信,同時(shí)解析和封裝自組網(wǎng)通信數(shù)據(jù)交互協(xié)議,從而對系統(tǒng)上層使用自組網(wǎng)業(yè)務(wù)功能提供支撐。
⑶ 業(yè)務(wù)接口訪問
通過對自組網(wǎng)業(yè)務(wù)功能的進(jìn)行web 接口封裝,上層應(yīng)用能夠便捷的使用自組網(wǎng)業(yè)務(wù)功能。按照業(yè)務(wù)類型,自組網(wǎng)業(yè)務(wù)功能分為通話業(yè)務(wù)、信息業(yè)務(wù)、群組業(yè)務(wù)和配置項(xiàng)管理。自組網(wǎng)業(yè)務(wù)功能訪問示意圖如圖9 所示。
自組網(wǎng)通信模塊中的業(yè)務(wù)接口訪問模塊負(fù)責(zé)接收用戶層業(yè)務(wù)功能請求和請求應(yīng)答,分發(fā)透傳自組網(wǎng)業(yè)務(wù)消息。每個(gè)應(yīng)用會實(shí)例化業(yè)務(wù)接口訪問模塊的一個(gè)子進(jìn)程實(shí)例,而每個(gè)子進(jìn)程中都有一個(gè)子進(jìn)程消息管理器(CPMM),通過CPMM 轉(zhuǎn)發(fā)業(yè)務(wù)請求消息到相應(yīng)的父進(jìn)程消息管理;每個(gè)子流程的父進(jìn)程中都有一個(gè)父進(jìn)程消息管理器(PPMM),父進(jìn)程消息管理器接收到子進(jìn)程消息管理器的消息后,向業(yè)務(wù)接口訪問服務(wù)組件封裝分發(fā);業(yè)務(wù)接口訪問服務(wù)組件完成相應(yīng)業(yè)務(wù)后,向父進(jìn)程發(fā)送業(yè)務(wù)指示結(jié)果,再由父進(jìn)程消息管理器向子進(jìn)程消息管理器分發(fā)業(yè)務(wù)指示結(jié)果,應(yīng)用通過接口實(shí)例獲取業(yè)務(wù)應(yīng)答,完成了一次業(yè)務(wù)接口訪問流程。
3 結(jié)束語
本文基于國產(chǎn)操作系統(tǒng)YROS 平臺實(shí)現(xiàn)了多模終端操作系統(tǒng)關(guān)鍵模塊,該方案集成了天通通信、LTE 和自組網(wǎng)通信模塊,滿足了終端設(shè)備多模通信的特定需求,該方案的多模通信功能已在國產(chǎn)多模終端得到了應(yīng)用驗(yàn)證,通過應(yīng)用表明,本文給出的研究方案合理可行,在整體功能上,都達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。
隨著移動互聯(lián)網(wǎng)業(yè)務(wù)的發(fā)展,面向新型的通信網(wǎng)絡(luò)架構(gòu),在復(fù)雜的通信環(huán)境下不僅要能做到相互之間兼容互通,而且還需要跨頻段跨時(shí)空的提供遠(yuǎn)程超視距且安全可靠的語音、數(shù)據(jù)、圖像和視頻通信[9]。這對通信終端操作系統(tǒng)提出了更高的要求,也是下一步會繼續(xù)深入研究的方向。