<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 無(wú)線(xiàn)VoIP系統設計應用

無(wú)線(xiàn)VoIP系統設計應用

作者: 時(shí)間:2011-12-25 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/155400.htm

其中A0~A20:地址輸入;DQ0~DQ14:數據輸入/輸出;DQ15/A-1:DQ15(按字模式進(jìn)行數據的輸入/輸出),A-1(按字節模式進(jìn)行最低有效位地址輸入);CE:切片啟動(dòng)輸入;WE:寫(xiě)啟動(dòng)輸入;OE:輸出啟動(dòng)輸入;RESET:硬件重啟引腳,低電平有效;RY/BY:讀/忙輸出,連接到主處理器ADM5120的RDY引腳以提高速度。

W986432DH的引腳分布如圖4所示。其中A0~A10:地址引腳;BS0和BS1:存儲體選擇;DQ0~DQ31:數據輸入/輸出的復用引腳;RAS:行地址選通;CAS:列地址選通;WE:允許寫(xiě)入,命令輸入,當在RAS時(shí)鐘上升沿取樣時(shí),CAS和WE確定操作將被執行;DQM0~DQM3:輸入/輸出掩碼,當DQM在讀周期高電平采樣時(shí)輸出緩沖區置于高阻抗(2個(gè)時(shí)延),而在寫(xiě)周期采樣將零時(shí)延地阻止寫(xiě)操作;CLK:在時(shí)鐘上升沿抽樣輸入;CKE:時(shí)鐘啟動(dòng),當CKE為低時(shí),進(jìn)入掉電模式、暫停模式或自我充電模式。

2 軟件的與實(shí)現

軟件的整體架構如圖5所示,其在局域網(wǎng)內實(shí)現了基于A(yíng)DM5120的UDP方式點(diǎn)對點(diǎn)通訊和廣播通訊。UDP(User Datagram Protocol,用戶(hù)數據報協(xié)議)主要用來(lái)支持那些需要在計算機之間傳輸數據的網(wǎng)絡(luò )。眾多的客戶(hù)/服務(wù)器模式的網(wǎng)絡(luò )例如網(wǎng)絡(luò )視頻會(huì )議等都需要使用UDP協(xié)議。UDP協(xié)議直接位于IP(網(wǎng)際協(xié)議)協(xié)議的頂層,屬于網(wǎng)絡(luò )協(xié)議中的傳輸層協(xié)議。由于UDP協(xié)議不需建立連接,具有效率高、速度快和占用資源少等優(yōu)點(diǎn),于消息通信和實(shí)時(shí)系統中可以提高系統傳輸數據的效率。UDP具有組播和廣播功能,是分發(fā)信息的一個(gè)理想協(xié)議。本系統還移植了一種基于A(yíng)DM5120的嵌入式Web服務(wù)器boa,實(shí)現了對系統進(jìn)行基于B/S方式的Web配置。


2.1 點(diǎn)對點(diǎn)通訊的實(shí)現

在本系統中,在一個(gè)網(wǎng)段內的任意兩個(gè)應用程序之間可以進(jìn)行全雙工通信,每個(gè)應用程序既可做為服務(wù)器又可做為客戶(hù)端。其UDP編程步驟如圖6所示,以下是兩個(gè)應用程序A和B之間進(jìn)行點(diǎn)對點(diǎn)通訊的具體實(shí)現過(guò)程:



(1)雙方分別建立socket,調用socket函數:

s=socket(PF_INET,SOCK_DGRAM,0)

SOCK_DGRAM表示套接字類(lèi)型為數據報套接字,即采用UDP協(xié)議進(jìn)行通信。

(2)綁定已設置好的自己的地址和端口信息,調用bind函數:

bind(s,(struct sockaddr*)my_addr,sizeof(structsockaddr))

(3)將select函數置于阻塞狀態(tài),直到監視文件描述符集合rfds中某個(gè)文件描述符發(fā)生變化為止:

select(pCtrl->rwd+1,&rfds,IFX_NULL,IFX_NULL,NULL)

(4)數據傳輸:sendto()和recvfrom()用于在無(wú)連接的數據報socket方式下進(jìn)行數據傳輸。由于本地socket并沒(méi)有與遠端機器建立連接,所以在發(fā)送數據時(shí)應指明目的地址。如圖6所示,A作為發(fā)送方,通過(guò)其套接字用函數sendto()將其服務(wù)請求數據發(fā)送到接收方B的指定端口,B通過(guò)其套接字用函數recvfrom()接收數據,處理好服務(wù)請求后又將服務(wù)應答發(fā)回A,此時(shí)A便成了接收方,A接收應答后還可繼續發(fā)送數據給B。

2.2 廣播通訊的實(shí)現

廣播和多播都用于實(shí)現向多個(gè)接收者發(fā)送UDP數據報,但是廣播不像多播那樣在接收端有復雜的控制過(guò)程,因而實(shí)現比多播簡(jiǎn)單的多。以下廣播通訊的實(shí)現均在點(diǎn)對點(diǎn)通訊的基礎上實(shí)現的。

在發(fā)送方,只需要設置套接字socket的選項為允許發(fā)送廣播,然后在發(fā)送時(shí)指定目的IP為廣播地址即可。具體地,允許socket廣播通過(guò)setsockopt函數設置廣播選項來(lái)實(shí)現,當setsockopt參數optname為SO_BROADCAST時(shí),表示打開(kāi)或禁止從該socket廣播,當參數optval為1時(shí)允許廣播,為0時(shí)禁止廣播。

系統編程實(shí)現廣播的部分源碼為:

int bBroadcast=1:
setsockopt(pCtrl-->nAdminSocket,SOL_SOCKET,SO_BROADCAST,bBroadcast,sizeof(bBroadcast));
setsockopt(pConn-->nUsedSocket,SOL_SOCKET,SO_BROADCAST,bBroadcast,sizeof(bBroadcast));
tO_addr.sin_addr.s_addr=inet_addr(WIRLESS_IP_BROADCAST);

/*WIRLESS_IP_BROADCAST為廣播地址,其值是將網(wǎng)絡(luò )接口(本系統為ath0)IP地址的主機ID部分設置為全1,網(wǎng)絡(luò )ID部分不變而得到*/

tO_addr.sin_family=AF_INET;

據文獻[7]所講,在接收方,一般不需做任何改動(dòng)即可收到廣播。但在本系統實(shí)現的實(shí)驗過(guò)程中,當將socket綁定到非INADDR_ANY的IP地址時(shí),接收方無(wú)法收到廣播,并且沒(méi)有任何錯誤指示,即需要綁定本地端口地址到通配地址INADDR_ANY才可接收廣播:

my_addr.sin_addr.s_addr=htonl(INADDR_ANY);

另外,本系統還實(shí)現了廣播強插功能,即不管用戶(hù)當前處于摘機、撥號狀態(tài),還是處于通話(huà)狀態(tài),當有廣播來(lái)電時(shí),都斷開(kāi)原來(lái)的連接而與廣播主叫建立新的連接(用戶(hù)不用掛機)。為了防止通話(huà)混亂,本系統設定同一時(shí)刻只有擁有廣播控制權的用戶(hù)有發(fā)言權,而其他用戶(hù)能聽(tīng)不能說(shuō),當其他用戶(hù)想發(fā)言時(shí),只要按下“*”鍵就搶到了廣播控制權,最后只有當擁有廣播控制權的用戶(hù)掛機時(shí),廣播才停止,而任一其他用戶(hù)掛機,不影響廣播通訊繼續進(jìn)行。

系統編程實(shí)現廣播強插的部分源碼見(jiàn)表1和表2。




3 結 語(yǔ)

該系統完成后,成功地應用于常德市某一電廠(chǎng),進(jìn)行生產(chǎn)調度,系統能實(shí)現點(diǎn)對點(diǎn)通訊和廣播通訊,并且通話(huà)質(zhì)量良好,基本無(wú)雜音和抖動(dòng)。

本系統因自帶網(wǎng)卡可以自組織網(wǎng)絡(luò ),它可以作為一種指令調度機被應用到通信蔽塞的工廠(chǎng),另外還可外接喇叭自動(dòng)接聽(tīng)電話(huà),機器操作員不用停下手中的工作就可照指令進(jìn)行相應的操作。另外,本系統應用可拓展性好,如:系統可通過(guò)PCM通道進(jìn)行FXO連接從而實(shí)現與傳統PSTN互通(見(jiàn)圖1);在本系統上移植SIP協(xié)議棧便可實(shí)現與WIFI手機互通;將本系統整合到Ad Hoc網(wǎng)絡(luò )中,基于A(yíng)d Ioc網(wǎng)絡(luò )的各類(lèi)移動(dòng)終端設備便可應運而生,因此本系統具有廣闊的市場(chǎng)前景。

上拉電阻相關(guān)文章:上拉電阻原理
鎖相環(huán)相關(guān)文章:鎖相環(huán)原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>