999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM11的嵌入式通信系統(tǒng)

2012-08-01 07:14:34王猛張為劉艷艷
微型電腦應(yīng)用 2012年6期
關(guān)鍵詞:嵌入式信息系統(tǒng)

王猛,張為,劉艷艷

0 引言

近年來(lái),隨著電子產(chǎn)業(yè)技術(shù)的蓬勃發(fā)展,小型化、智能化、網(wǎng)絡(luò)化的電子產(chǎn)品成為當(dāng)今市場(chǎng)的主流,遍布于家用電子、消費(fèi)電子等各個(gè)方面。而伴隨著物聯(lián)網(wǎng)、云計(jì)算等新興概念的提出,電子產(chǎn)品之間的數(shù)據(jù)交換、網(wǎng)絡(luò)通信以及產(chǎn)品之間的協(xié)同操作勢(shì)必成為今后的研究熱點(diǎn)。

本系統(tǒng)基于統(tǒng)一通信的需求,采用C/S 模式,服務(wù)器端運(yùn)行于PC,客戶(hù)端運(yùn)行于Mini6410 ARM 平臺(tái),以軟件方式實(shí)現(xiàn)了多客戶(hù)端的點(diǎn)對(duì)點(diǎn),點(diǎn)對(duì)多點(diǎn)的語(yǔ)音交談及文件和消息的傳輸,具有較強(qiáng)的移植性,可以適應(yīng)有線(xiàn)及無(wú)線(xiàn)等多種網(wǎng)絡(luò)接入方式。

1 系統(tǒng)的設(shè)計(jì)

本系統(tǒng)硬件包括PC 機(jī),采用搭載三星公司的S3C6410芯片的Mini6410 ARM 平臺(tái);操作系統(tǒng)均采用Linux 系統(tǒng)。系統(tǒng)結(jié)構(gòu)組成。

本系統(tǒng)采用C/S 模式,運(yùn)行于PC的服務(wù)器端,采用Java 語(yǔ)言編寫(xiě),并設(shè)計(jì)了可視化界面,方便管理員對(duì)系統(tǒng)的常規(guī)操作和管理,后臺(tái)鏈接MySQL 數(shù)據(jù)庫(kù),保存系統(tǒng)相應(yīng)執(zhí)行過(guò)程和數(shù)據(jù)。運(yùn)行于ARM 平臺(tái)的客戶(hù)端采用C 語(yǔ)言編寫(xiě),同時(shí)基于MiniGUI 設(shè)計(jì)了簡(jiǎn)單的可視化界面,具有登陸,退出等功能,并且可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)及點(diǎn)對(duì)多點(diǎn)的語(yǔ)音時(shí)時(shí)交流,及文件和消息傳輸。系統(tǒng)軟件功能示意圖,如圖1所示:

圖1 系統(tǒng)軟件功能示意圖

現(xiàn)有類(lèi)似通信系統(tǒng)[1][2]在數(shù)據(jù)傳輸方式上只支持客戶(hù)端和服務(wù)器之間的單向通信,或多客戶(hù)端自身具有獨(dú)立IP地址的情況。但是,當(dāng)今嵌入式設(shè)備無(wú)線(xiàn)接入的情況愈發(fā)普遍,相當(dāng)于每個(gè)設(shè)備只是此網(wǎng)絡(luò)中的一個(gè)端口,對(duì)外網(wǎng)而言,并不具備獨(dú)立的IP 地址。此時(shí),基于上述數(shù)據(jù)傳輸方式的通信系統(tǒng)便不再有效。另外,部分嵌入式處理器的通信系統(tǒng)[3][4]只能實(shí)現(xiàn)相對(duì)單一的功能,如單獨(dú)傳輸語(yǔ)音數(shù)據(jù),或單獨(dú)傳輸文字信息等。

針對(duì)以上情況,本文提出一種基于C/S 模式的通信傳輸系統(tǒng),即將客戶(hù)端要傳輸?shù)臄?shù)據(jù)通過(guò)最初的通信連接發(fā)送至服務(wù)器,再由服務(wù)器將接收到的數(shù)據(jù)重新打包發(fā)給需要接收的客戶(hù)端。如此可以實(shí)現(xiàn)客戶(hù)端在不具備獨(dú)立IP 地址的情況下與其他客戶(hù)端的多種數(shù)據(jù)交換,同時(shí)可基于云計(jì)算等技術(shù)在服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行相應(yīng)處理,增加功能,擴(kuò)展應(yīng)用;此外采用多線(xiàn)程技術(shù),緩解了服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求時(shí)的運(yùn)算負(fù)擔(dān)。

2 軟件功能的實(shí)現(xiàn)

2.1 服務(wù)器端數(shù)據(jù)庫(kù)的設(shè)計(jì)

MySQL 數(shù)據(jù)庫(kù)由于其小巧、開(kāi)源、功能強(qiáng)大等原因被廣泛采用,通過(guò)相應(yīng)的SQL 語(yǔ)句進(jìn)行增加、刪除、修改、查詢(xún)等操作,可以方便有效的進(jìn)行系統(tǒng)管理。在本系統(tǒng)中,服務(wù)器端后臺(tái)與MySQL 數(shù)據(jù)庫(kù)連接,以JDBC 方式驅(qū)動(dòng),通過(guò)獲取數(shù)據(jù)庫(kù)中相應(yīng)表單的值以達(dá)到控制客戶(hù)端間通信及管理整個(gè)系統(tǒng)的功能。

在MySQL 中,建立了名為family的數(shù)據(jù)庫(kù),其中創(chuàng)建了如下表單:msgTbl、room、roomCreater、roomState、setAnswer、setAsk、userState;還包含兩張動(dòng)態(tài)表msgTbl_Id和userTbl_Id。每張表都由一個(gè)主鍵及其他字段,通過(guò)“表關(guān)聯(lián)”可以將多張表關(guān)聯(lián)起來(lái),使數(shù)據(jù)庫(kù)中的數(shù)據(jù)并非各自獨(dú)立,而是可以方便地表達(dá)復(fù)雜的數(shù)據(jù)關(guān)系。這些表單分別記錄著群組信息,管理者信息,創(chuàng)建者信息,用戶(hù)信息,響應(yīng)信息,及系統(tǒng)運(yùn)行時(shí)客戶(hù)間的索引信息和應(yīng)答內(nèi)容信息等。數(shù)據(jù)庫(kù)中的動(dòng)態(tài),如表1所示:

表1 數(shù)據(jù)庫(kù)中動(dòng)態(tài)表userTbl_Id

表1 動(dòng)態(tài)記錄了登陸到系統(tǒng)某Id 群組的客戶(hù)信息,包括客戶(hù)名、客戶(hù)IP 地址與端口、登陸時(shí)間、用戶(hù)狀態(tài)、離開(kāi)的時(shí)間。其中,客戶(hù)狀態(tài)可以通過(guò)“userStateId”字段與表“userState”進(jìn)行關(guān)聯(lián)獲知。此表為系統(tǒng)的應(yīng)答響應(yīng)過(guò)程及數(shù)據(jù)傳輸過(guò)程提供了良好的服務(wù),使整個(gè)系統(tǒng)傳輸機(jī)制得以正常運(yùn)行。

2.2 語(yǔ)音傳輸?shù)膶?shí)現(xiàn)

系統(tǒng)的語(yǔ)音雙工實(shí)現(xiàn)流程,如圖2所示:

圖2 點(diǎn)到點(diǎn)語(yǔ)音傳輸過(guò)程

考慮到語(yǔ)音實(shí)時(shí)傳輸對(duì)效率要求較高,故在實(shí)現(xiàn)語(yǔ)音雙工通信時(shí)采用無(wú)連接的UDP 協(xié)議,保證傳輸?shù)挠行?。系統(tǒng)實(shí)現(xiàn)了點(diǎn)對(duì)點(diǎn)的語(yǔ)音傳輸及點(diǎn)對(duì)多點(diǎn)的語(yǔ)音傳輸,可以分別用topersonsound 及toallsound 命令請(qǐng)求開(kāi)啟。此處僅以點(diǎn)對(duì)點(diǎn)的語(yǔ)音傳輸為例做具體說(shuō)明,點(diǎn)對(duì)多點(diǎn)語(yǔ)音傳輸機(jī)制相似。

在所有客戶(hù)端登陸服務(wù)器的初始階段,客戶(hù)端與服務(wù)器的連接信息已經(jīng)記錄在后臺(tái)的數(shù)據(jù)庫(kù)中,不管客戶(hù)端是否具有獨(dú)立IP,其與服務(wù)器的連接建立是唯一可見(jiàn)的,所以此種通信機(jī)制可以適應(yīng)各種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。

當(dāng)客戶(hù)端發(fā)起語(yǔ)音傳輸請(qǐng)求時(shí),會(huì)先向服務(wù)器發(fā)送語(yǔ)音傳輸請(qǐng)求,并附有接收者的信息,服務(wù)器再將此請(qǐng)求發(fā)給指定接收者,若接收者同意請(qǐng)求,則發(fā)確認(rèn)消息經(jīng)服務(wù)器發(fā)回給發(fā)送端,如此即建立起經(jīng)過(guò)服務(wù)器中轉(zhuǎn)的發(fā)送端和接收端的語(yǔ)音通信連接。

為不影響其他數(shù)據(jù)的傳輸,發(fā)送端和接收端都會(huì)開(kāi)啟新的線(xiàn)程單獨(dú)傳輸語(yǔ)音數(shù)據(jù),同時(shí)服務(wù)器也會(huì)在接收到表示傳輸語(yǔ)音數(shù)據(jù)的“sound”標(biāo)識(shí)后新建語(yǔ)音處理線(xiàn)程,并新建一個(gè)數(shù)據(jù)接收對(duì)象DatagramSocket 綁定到專(zhuān)門(mén)用于語(yǔ)音傳輸?shù)亩丝谏?。其客?hù)端及服務(wù)器端新建線(xiàn)程的代碼如下:

在發(fā)送端及接收端進(jìn)行語(yǔ)音雙向傳輸時(shí),其經(jīng)服務(wù)器轉(zhuǎn)發(fā)的語(yǔ)音數(shù)據(jù)前分別加上“fs_s”和“fs_r”的標(biāo)識(shí),以令服務(wù)器明確數(shù)據(jù)應(yīng)向何處轉(zhuǎn)發(fā)。而在服務(wù)器接收以上數(shù)據(jù)時(shí)循環(huán)調(diào)用DatagramSocket 對(duì)象的receive()方法,將接收到的數(shù)據(jù)轉(zhuǎn)為字節(jié)數(shù)組,再在數(shù)據(jù)前加上“SOUND”標(biāo)識(shí),再調(diào)用DatagramSocket 對(duì)象的send()方法轉(zhuǎn)發(fā)給指定的客戶(hù)端,至此,完成了語(yǔ)音的雙工通信。

在最后階段,如需終止語(yǔ)音傳輸,只需用“OVERSOUND”命令結(jié)束此會(huì)話(huà),客戶(hù)端會(huì)在發(fā)送時(shí)加上“OVERSOUND”頭標(biāo)識(shí),服務(wù)器端獲取到“OVERSOUND”標(biāo)識(shí)即結(jié)束此通信過(guò)程。

對(duì)于點(diǎn)對(duì)多點(diǎn)語(yǔ)音傳輸,只需將“SOUND_S”和“SOUND_R”的頭標(biāo)識(shí)換為“SOUND_S_ALL”和“SOUND_R_ALL”,此時(shí)通知服務(wù)器要將語(yǔ)音數(shù)據(jù)發(fā)至群組所有客戶(hù)端,并且其中包含了發(fā)送者信息。其他機(jī)制大體相似。

2.3 文件傳輸

不同于語(yǔ)音的實(shí)時(shí)性要求,在Internet 環(huán)境下由于丟包及亂序現(xiàn)象普遍,而文件數(shù)據(jù)要求其完整和可靠性,故在文件傳輸?shù)臅r(shí)候采用TCP 協(xié)議,以點(diǎn)對(duì)點(diǎn)的文件傳輸為例,具體流程,如圖3所示:

圖3 點(diǎn)到點(diǎn)文件傳輸過(guò)程

在初始連接階段,客戶(hù)端與服務(wù)器之間建立TCP 連接,并在服務(wù)器端單獨(dú)開(kāi)辟處理文件傳輸?shù)男戮€(xiàn)程,并開(kāi)辟新端口用以傳遞客戶(hù)端之間交換的數(shù)據(jù)。當(dāng)雙方確定開(kāi)始傳輸文件后,發(fā)送端首先將文件名信息及接收者信息發(fā)送給服務(wù)器,服務(wù)器再依據(jù)此信息將文件名傳給指定接收者,之后發(fā)送端以固定長(zhǎng)度的文件幀(此處設(shè)為1024 字節(jié))發(fā)送給服務(wù)器再由服務(wù)器轉(zhuǎn)發(fā),接收者則循環(huán)接收文件內(nèi)容。當(dāng)文件傳輸最后數(shù)據(jù)不足設(shè)定的每次傳輸?shù)奈募L(zhǎng)度,則只將剩余部分傳輸,并標(biāo)識(shí)傳輸大小,接收端依此大小接收,至此文件傳輸過(guò)程結(jié)束。

對(duì)于點(diǎn)對(duì)多點(diǎn)的文件傳輸,只需在上圖發(fā)送第一幀的信息中將"NAME_TOPER"換為"NAME_TOALL"即可。

2.4 字符消息傳輸

對(duì)于字符消息的傳輸,由于其所需傳輸數(shù)據(jù)量小,可以與控制信息及請(qǐng)求命令等共用同一線(xiàn)程,無(wú)需如傳輸語(yǔ)音和文件數(shù)據(jù)時(shí)新建線(xiàn)程,減小資源消耗,其傳輸過(guò)程,如圖4所示:

圖4 點(diǎn)到點(diǎn)消息傳輸過(guò)程

發(fā)送端首先發(fā)送接收者信息給服務(wù)器端,當(dāng)服務(wù)器端判斷接收者存在則返回相應(yīng)幀消息,否則提示接收者不在,并在發(fā)送端屏幕上顯示。當(dāng)發(fā)送端接收到正常的相應(yīng)消息時(shí)則發(fā)送消息內(nèi)容給服務(wù)器,服務(wù)器轉(zhuǎn)發(fā)此消息給接收端,接收端解析此消息,并會(huì)在屏幕上打印出消息發(fā)送者昵稱(chēng)及其發(fā)送內(nèi)容。

3 系統(tǒng)測(cè)試的結(jié)果

該系統(tǒng)的服務(wù)器端運(yùn)行于裝有Redhat Linux 操作系統(tǒng)的PC 機(jī),后臺(tái)連接MySQL 數(shù)據(jù)庫(kù),兩個(gè)客戶(hù)端均分別運(yùn)行于Mini6410 ARM11 開(kāi)發(fā)平臺(tái)。將在PC 機(jī)上開(kāi)發(fā)好的客戶(hù)端程序進(jìn)行交叉編譯,生成可執(zhí)行文件,再通過(guò)串口的方式下載到兩個(gè)開(kāi)發(fā)板上。其中一個(gè)客戶(hù)端通過(guò)路由接入Internet 網(wǎng),另一個(gè)客戶(hù)端直接接入Internet 網(wǎng),服務(wù)器端自身為獨(dú)立IP 地址,以此模擬復(fù)雜網(wǎng)絡(luò)拓?fù)淝闆r。系統(tǒng)開(kāi)啟后,如圖5所示:

圖5 服務(wù)器界面及客戶(hù)端登陸界面

管理員在服務(wù)器端開(kāi)啟用戶(hù)組,等待客戶(hù)端登陸,,服務(wù)器端和客戶(hù)端分別基于AWT 和MiniGUI 設(shè)計(jì)了可視化界面,方便與用戶(hù)交互。之后進(jìn)行語(yǔ)音數(shù)據(jù)傳輸,如圖6所示:

圖6 點(diǎn)對(duì)點(diǎn)語(yǔ)音傳輸截圖

此處選中Toperson 選項(xiàng),進(jìn)行點(diǎn)對(duì)點(diǎn)語(yǔ)音傳輸,若當(dāng)選中ToAll 選項(xiàng),則可以與用戶(hù)組中其他所有客戶(hù)端進(jìn)行語(yǔ)音通信。而在進(jìn)行文件傳輸時(shí),如圖7所示:

圖7 點(diǎn)對(duì)點(diǎn)文件傳輸截圖

首先選中Toperson 選項(xiàng),輸入要發(fā)送的客戶(hù)端,然后點(diǎn)擊Openfile 按鈕選擇要發(fā)送的文件,之后即進(jìn)行發(fā)送。而圖8 顯示:

圖8 字符消息發(fā)送截圖

消息發(fā)送界面,在''MESSAGE LOG WINDOW"下顯示客戶(hù)端間相互發(fā)送的消息,在其下方的文本輸入框下可以輸入要發(fā)送的消息,選擇要發(fā)送的客戶(hù)端進(jìn)行發(fā)送。

語(yǔ)音傳輸測(cè)試表明,可實(shí)現(xiàn)雙工通話(huà),話(huà)音清晰,通話(huà)延遲小于3秒。分別針對(duì)音頻、視頻、圖片及文本四種類(lèi)型文件測(cè)試了系統(tǒng)的文件傳輸功能,測(cè)試結(jié)果,如表2所示:

表2 各測(cè)試文件傳輸速度比較

上測(cè)試結(jié)果表明,在Internet 網(wǎng)絡(luò)環(huán)境下,本系統(tǒng)的文件傳輸過(guò)程克服了丟包及時(shí)延的影響,文件接收完整,傳輸速率達(dá)到80k/s。

在消息傳輸?shù)臏y(cè)試中,系統(tǒng)響應(yīng)快速,消息的發(fā)送端及消息內(nèi)容等信息均正常顯示在屏幕上,無(wú)丟包亂序的情況出現(xiàn)。

4 結(jié)束語(yǔ)

本系統(tǒng)解決了在不同網(wǎng)絡(luò)拓?fù)洵h(huán)境下基于嵌入式設(shè)備的網(wǎng)絡(luò)通信問(wèn)題,其特點(diǎn)為低成本、易移植,應(yīng)用廣,可廣泛應(yīng)用于消費(fèi)電子及新型的物聯(lián)網(wǎng)領(lǐng)域。當(dāng)然,因?yàn)閿?shù)據(jù)需要經(jīng)過(guò)服務(wù)器轉(zhuǎn)發(fā),本系統(tǒng)對(duì)于處于同一局域網(wǎng)之間的嵌入式設(shè)備而言,效率較低。可通過(guò)加入判斷條件,令處于同一網(wǎng)段的嵌入式設(shè)備之間進(jìn)行直接通信以提高效率,進(jìn)一步拓展應(yīng)用范圍,此為另一研究課題。

[1]武曉燕,張為,鄧小勇.基于ARM9的嵌入式語(yǔ)音與數(shù)據(jù)通信系統(tǒng)[J].微型電腦應(yīng)用,2011.27(10):23-26

[2]吳駿,肖志濤.基于 S3C2410 A的嵌入式網(wǎng)絡(luò)通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).[j]計(jì)算機(jī)應(yīng)用研究,2008.25(6):1897-1990

[3]周安棟,張伽偉,石鴻萍.ARM11 嵌入式系統(tǒng)實(shí)時(shí)網(wǎng)絡(luò)通信和LCD 顯示的實(shí)現(xiàn).[j]現(xiàn)代電子技術(shù),2011.34(16):7-9

[4]董建勛,李錦明,李 鵬,張文棟.一種融合嵌入式Linux和GPRS的手機(jī)通信系統(tǒng),[j]2011.19(11):2804-2806

[5]孫瓊.嵌入式Linux 應(yīng)用程序開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2006.

[6]Mini6410 用戶(hù)手冊(cè)[k],2010

猜你喜歡
嵌入式信息系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
展會(huì)信息
Altera加入嵌入式視覺(jué)聯(lián)盟
倍福 CX8091嵌入式控制器
主站蜘蛛池模板: 中文无码日韩精品| 少妇精品在线| 成年免费在线观看| 久久九九热视频| 欧美日本在线观看| 九九香蕉视频| 日本免费新一区视频| 91精品专区| a网站在线观看| 日韩国产高清无码| 青青草国产免费国产| 国产欧美又粗又猛又爽老| 一级一级一片免费| 任我操在线视频| 亚洲国产天堂在线观看| 自慰高潮喷白浆在线观看| 日本国产精品一区久久久| 久久永久视频| 四虎影视无码永久免费观看| 国产精品私拍99pans大尺度| 欧美第一页在线| 一本一道波多野结衣av黑人在线| 午夜高清国产拍精品| 久久国产香蕉| 欧美午夜小视频| 免费jjzz在在线播放国产| 2021国产乱人伦在线播放| 99久久精品免费看国产免费软件| 91精品国产无线乱码在线| 国产精品丝袜视频| 精品少妇人妻av无码久久| 国产精品区网红主播在线观看| 免费一级无码在线网站 | 亚洲欧美一区二区三区图片| 99热亚洲精品6码| www.精品国产| 精品久久高清| 国产亚洲精品自在线| 99久久精品视香蕉蕉| 国产在线麻豆波多野结衣| 91视频精品| 国产91九色在线播放| 欧美色伊人| 国产精品第| 热这里只有精品国产热门精品| 色偷偷综合网| 国产欧美在线观看精品一区污| 国产青榴视频| 亚洲色中色| 国产一级裸网站| 国产麻豆91网在线看| 毛片一级在线| 久久综合AV免费观看| 国产主播福利在线观看| av在线5g无码天天| 国产精品嫩草影院av| 99热精品久久| 国产在线八区| 中文字幕日韩欧美| 777国产精品永久免费观看| 国产精品免费电影| 精品久久久久久成人AV| 亚洲色图综合在线| 午夜福利视频一区| 毛片免费在线视频| 日韩人妻少妇一区二区| 亚洲天堂视频在线播放| 久久精品最新免费国产成人| 国产小视频在线高清播放| 日本手机在线视频| 国产精品久久久精品三级| 国产一级精品毛片基地| 亚洲中文字幕在线观看| 狠狠色丁香婷婷| 一边摸一边做爽的视频17国产| 欧美在线综合视频| 好吊色妇女免费视频免费| 国产99在线观看| 国产精品欧美激情| 国产不卡国语在线| 五月婷婷综合在线视频| 亚洲性影院|