摘要:對講機的通信距離有限,提出一種通過Internet傳輸數(shù)字對講機話音和數(shù)據(jù),擴大對講機通信范圍的方案。數(shù) 字對講機通過串口與計算機相連,計算機作為中心站,完成數(shù)據(jù)的轉(zhuǎn)發(fā)功能,并通過Internet傳輸數(shù)據(jù)。首先設(shè)計了數(shù)字對 講機和計算機之間通信的串口通信協(xié)議,在此基礎(chǔ)上詳細講述了中心站的軟件設(shè)計。中心站軟件的設(shè)計主要包括三個部 分,對講機模塊和計算機之間串口通信協(xié)議的設(shè)計和實現(xiàn),通過Internet使用UDP協(xié)議的數(shù)據(jù)傳輸;使用Access數(shù)據(jù)庫對 對講機用戶號碼及中心站IP地址的管理等。通過對中心站軟件的測試表明,設(shè)計的串口通信協(xié)議可行,使用中心站軟件能 通過該方案有效地擴大對講機的通信距離。
關(guān)鍵詞:數(shù)字對講機;串口通信;UDP; Acce s s
中圖分類號:TP399 文獻標(biāo)識碼:B 文章編號:1004-373X(2010)02-073-03
Central Station Software Design for Transmission of Digital Walkie-talkie through Internet
XIN Ran ,XIE Xiaoming
(College of Information Scinece and Technology ,Beijing University of Chemical Technology ^Beijing ,100029 ,China)
Abstract: The communication scope of walkie-talkie is limited ,a scheme which is used for transmission of the voice and data of digital walkie-talkie through Internet to enlarge the communication scope is proposed. The scheme links digital walkie-talkie with computer using serial port ,the computer acts as a central station to forward the data ,and the data is transmitted through Internet. The serial port communication protocol between digital walkie-talkie and computer is designed ,on this basis , the central station software is designed. The software mainly includes three parts ,the design and realization of the communication protocol between walkie-talkie module and computer ,using UDP protocol to transmit data through Internet ,and using Access database to manage the users' number of walkie-talkie and IP address of central station. Through testing the central station software ,it shows that the designed serial port communication protocol is feasible ,using this software through this scheme it can effectively enlarge the communication scope of digital walkie-talkie.
Keywords : digital walkie-takie ; serial port communication ;UDP;Access
0引言
作為無線通信工具,對講機與移動電話相比具有自 己的特點,在一對一、一對多的定向?qū)m椡ㄐ胖?具有建 立通信迅速的特點,尤其是一對多的特性是普通移動電 話所不能比擬的。以前對講機廣泛應(yīng)用于部隊、公安、 安全、救護、公用事業(yè)等政府部門,隨著經(jīng)濟的發(fā)展,人 民對移動通信要求的增加,對講機逐步開始應(yīng)用于出租 車調(diào)度、安保、物業(yè)管理、工地、酒店等民用場合。但是 對講機的通信距離有限,常規(guī)對講機的通話距離一般為 3〜5 km[1],某些專業(yè)對講機的通信距離可以達到 10 km以上,而實際通話距離一般只能為2〜7 km,在有 高大建筑物或高山阻擋的情況下,通話距離還會相對短 些。當(dāng)有系統(tǒng)基站支持時,對講機的通話范圍可達 十幾千米,甚至幾十千米,這無疑大大增加了系統(tǒng)成本。
收稿日期:2009~08-10
本文探討了一種利用Internet傳輸數(shù)字對講機話音和 數(shù)據(jù)業(yè)務(wù)的方法,所使用的數(shù)字對講機基于dPMR協(xié) 議。利用dPMR協(xié)議[2]實現(xiàn)的對講機,通過撥號建立 呼叫連接,號碼為7位數(shù)字,除話音通信外,還可實現(xiàn)數(shù) 據(jù)通信,并可以實現(xiàn)組呼。使用該方法組網(wǎng)簡單,可以 大幅度降低成本,有效地擴大對講機的通信距離。
1系統(tǒng)工作原理
通過互聯(lián)網(wǎng)傳輸數(shù)字對講機話音和數(shù)據(jù)的工作原 理如圖1所示。每個中心站及其所連接的通信模塊和 該范圍的對講機可以看成一個區(qū)域,對應(yīng)對講機號碼的 一個號段,通信模塊與中心站使用串口連接,實現(xiàn)數(shù)據(jù) 的透明傳輸,將數(shù)據(jù)發(fā)送給中心站處理。假設(shè)左側(cè)中心 站所在區(qū)域的某一對講機撥號發(fā)起呼叫,其數(shù)據(jù)信息通 過無線信道發(fā)送到通信模塊再發(fā)送到中心站,同時也發(fā) 送到同一區(qū)域的其他對講機,中心站使用中心站軟件對 數(shù)據(jù)信息解析,若發(fā)現(xiàn)被呼對講機號碼在同一區(qū)域內(nèi)則
辛然等:數(shù)字對講機互聯(lián)網(wǎng)傳輸?shù)闹行恼拒浖O(shè)計
軟件技術(shù)
不處理,由被呼對講機接收數(shù)據(jù);若發(fā)現(xiàn)被呼對講機號 碼在其他區(qū)域,中心站軟件則根據(jù)被呼號碼查詢其所在 區(qū)域中心站的IP地址,然后將數(shù)據(jù)通過Internet轉(zhuǎn)發(fā) 到該IP地址所對應(yīng)的中心站。中心站在整個對講機系 統(tǒng)中所起的作用是把接收到源對講機的數(shù)據(jù)轉(zhuǎn)發(fā)給目 的對講機,其作用與轉(zhuǎn)發(fā)臺相同,可看作是軟轉(zhuǎn)發(fā)。數(shù) 字對講機話音和工作原理如圖1所示。
x、m•機 x>m•機 x>m•機 x」謂•機
圖1數(shù)字對講機話音和數(shù)據(jù)工作原理示意圖
2中心站軟件設(shè)計概述
這里重點講述中心站軟件的設(shè)計。所用的開發(fā)環(huán) 境是VC++ 6.0,所用的編程語言是VC+ +和MFC。中 心站軟件應(yīng)實現(xiàn)以下主要功能。
(1)對講機號碼,IP地址的管理,包括對講機號碼 及其所在區(qū)域中心站IP地址的注冊、刪除、更新等;
(2)通過串口與通信模塊通信,并對數(shù)據(jù)解析;
(3)通過Internet網(wǎng)將數(shù)據(jù)轉(zhuǎn)發(fā)給遠方中心站。 根據(jù)要完成的以上三個功能,中心站軟件的設(shè)計也
應(yīng)該主要包括三個模塊:
(1)使用Access數(shù)據(jù)庫管理對講機號碼和中心站 IP地址。該模塊在實現(xiàn)上要在用戶界面(UI)上留出接 口 ,使得用戶能夠通過用戶界面方便地管理對講機號碼 和中心站IP地址,包括添加、刪除、修改等;
(2)使用MSComm控件實現(xiàn)中心站與對講機模塊 的串口通信。該部分也應(yīng)該在用戶界面上留有接口。 其中,串口端口號,串口通信的波特率,以及校驗位、數(shù) 據(jù)位、停止位等都是用戶可設(shè)置的;
(3)使用UDP協(xié)議通過Internet傳輸數(shù)據(jù)。該部 分米用Windows在后臺網(wǎng)絡(luò)實現(xiàn)編程。下面分別對 三個模塊的設(shè)計和實現(xiàn)做詳細討論。
3使用Access數(shù)據(jù)庫管理對講機號碼和中心站IP 地址
討論的中心站軟件對講機號碼和中心站IP地址的 管理釆用Access數(shù)據(jù)庫,具有使用簡單,費用低廉,對 機器的配置要求低等特點。當(dāng)然也可以根據(jù)實際情況 使用其他數(shù)據(jù)庫,如MySQL等。所使用的數(shù)據(jù)庫編程
74
接口是MFC ODBC類[3],所設(shè)計的數(shù)據(jù)庫表格至少應(yīng) 該包括兩個字段,中心站IP地址字段和對講機號碼字 段。同一個IP地址可能要對應(yīng)許多不同的對講機號 碼,還可以根據(jù)需要加入其他字段,如中心站所在地字 段,對講機是否處于漫游狀態(tài)等字段。需要設(shè)計的基本 管理功能如下:
添加當(dāng)新增對講機用戶時,用于添加中心站IP 地址和對講機號碼。
刪除用于刪除不需要的對講機號碼,同時刪除其 所在的整條記錄。
修改對講機號碼當(dāng)中心站所在區(qū)域某一對講機 更換號碼時用來修改號碼,而中心站IP地址不變。
修中心站IP地址當(dāng)更換另一臺機器作為中心站 時,應(yīng)保證以前的中心站IP地址全部修改為新的,而對 應(yīng)的對講機號碼不變。
以上功能的實現(xiàn)需要使用CRecordSet類的成員 函數(shù)[4]。
4中心站與通信模塊的通信
4.1串口通信協(xié)議
中心站與通信模塊釆用串口進行通信。串行通信 接口(RS 232)是計算機標(biāo)準(zhǔn)配置的通信接口,利用串 口進行數(shù)據(jù)通信、數(shù)據(jù)釆集等是計算機的重要應(yīng)用領(lǐng)域 之一。利用串口的數(shù)據(jù)傳輸可以根據(jù)具體的實際情況 設(shè)計自己的數(shù)據(jù)交換規(guī)則,即通信協(xié)議[5]。該系統(tǒng)的串 口通信協(xié)議參考了 RS 232串口通信協(xié)議的格式,靠起 始位和停止位實現(xiàn)字符的界定或同步,而協(xié)議當(dāng)中的具 體字段內(nèi)容則根據(jù)dPMR協(xié)議的話音和數(shù)據(jù)傳輸來設(shè) 計通信過程。所設(shè)計的中心站與通信模塊間的通信協(xié) 議如表1所示。
表1中心站與通信模塊通信協(xié)議
含義 字節(jié)數(shù) 說明
起始符 1 0x7E
源ID 7 1234567
目的ID 7 1234567 ,123 * * *
數(shù)據(jù)類型 1
數(shù)據(jù)幀說明 1
數(shù)據(jù)部分長度 1 長度=n
數(shù)據(jù)部分 n
校驗和 1 從起始符到數(shù)據(jù)部分結(jié)束,按字節(jié)求和
結(jié)束符 1 0x7E
4.2協(xié)議說明
中心站與通信模塊的通信協(xié)議如下:
起始符起始符為1個字節(jié),取值為0x7E。
源ID源ID是發(fā)送數(shù)據(jù)對講機的ID ,其取值為
7位數(shù)字串。
目的ID目的ID是接收數(shù)據(jù)對講機的ID ,其取值 為7位數(shù)字串,且后4位可以為通配符“ * ”,表示該位 可以為任意數(shù)字。
數(shù)據(jù)類型數(shù)據(jù)類型表示通信數(shù)據(jù)的用途,根據(jù)通 信數(shù)據(jù)的不同作用,把數(shù)據(jù)分為以下幾類,如表2所示。
表2數(shù)據(jù)類型分類
類型取值 作用 類型取值 作用
1 請求連接:用于語音通話 5 圖片文件:無需請求連接
2 斷開連接:用于語音通話 6 〜255 備用
3 語音 0 未使用
4 短信息:無需請求連接
數(shù)據(jù)幀 數(shù)據(jù)幀的說明占1字節(jié),其說明如表3
所示。 表3數(shù)據(jù)幀說明
bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1
是否文件是否有后 備用 名幀,0否,續(xù)幀, 1是 0無,1有
注:該字節(jié)的bit 1只在傳輸文件、短信息時有意義,傳輸語音時無意 義;bit 2只在傳輸文件時有意義。在傳輸文件時,第一幀為文件名,從 第二幀開始為文件內(nèi)容。
數(shù)據(jù)長度數(shù)據(jù)長度指數(shù)據(jù)部分的長度,1個字 節(jié),取值為0〜255。
數(shù)據(jù)部分數(shù)據(jù)部分為實際傳輸?shù)臄?shù)據(jù),其內(nèi)容可 以為空。
校驗和檢驗和的計算方法指從起始符開始到數(shù) 據(jù)部分的最后一個字節(jié),逐字節(jié)求和,然后模256。
結(jié)束符結(jié)束符為1個字節(jié),取值為0x7E。
4. 3使用MSComm控件實現(xiàn)串口通信
在實現(xiàn)計算機和串口通信時使用MFC的 MSComm控件[6]。如前面提到,串口的某些屬性應(yīng)該 是用戶可設(shè)置的,如串口的端口選擇,串口通信的波特 率,以及校驗位、數(shù)據(jù)位、停止位的選擇等。使用 MSComm控件實現(xiàn)串口通信的一個重要函數(shù)是On-Comm()函數(shù)[7],這個函數(shù)是用來處理串口消息事件 的,每當(dāng)串口接收到數(shù)據(jù),就會產(chǎn)生一個串口接收數(shù)據(jù) 緩沖區(qū)中有字符的消息事件,OnComm()函數(shù)就會執(zhí) 行,在OnComm()函數(shù)加入相應(yīng)的處理代碼就能實現(xiàn) 自已想要的功能。具體的串口通信過程應(yīng)按照上文提 到的串口通信協(xié)議實現(xiàn)。當(dāng)中心站接收到串口的數(shù)據(jù) 時,應(yīng)該解析出接收數(shù)據(jù)對講機的ID ,即目的ID ,因為 對講機號碼是惟一的,所以據(jù)此目的ID查找中心站IP 地址,若IP地址就是本地中心站的IP ,說明被呼號碼 就在本區(qū)域,則不予處理,否則根據(jù)中心站IP地址,通
過Internet將數(shù)據(jù)轉(zhuǎn)發(fā)到遠端中心站,遠端中心站接收 到數(shù)據(jù)后再通過串口將其發(fā)送給該中心站所連接的通 信模塊進行數(shù)據(jù)處理。
5使用UDP協(xié)議通過Internet傳輸數(shù)據(jù)
考慮到數(shù)據(jù)傳輸?shù)膶崟r性,通過Internet傳輸數(shù)據(jù) 時米用UDP協(xié)議,這里使用Windows系統(tǒng)的Winsock
API網(wǎng)絡(luò)編程接口[8]。由于各中心站軟件是對等關(guān)系, 所以并沒有采用客戶機/服務(wù)器模型。為了提高接收數(shù) 據(jù)的成功率和數(shù)據(jù)的傳輸效率,程序使用兩個套接字, 一個套接字用來接收數(shù)據(jù),另一個用來發(fā)送數(shù)據(jù),發(fā)送 和接收數(shù)據(jù)使用不同的端口。使用UDP數(shù)據(jù)報的套 接字編程模型[9]如下:
(1)創(chuàng)建套接字,調(diào)用socket函數(shù)。socket函數(shù)原 型為:
SOCKET socket(int af ,int type ,int protocol)
(2)將本地地址與服務(wù)端口綁定,這個過程調(diào)用 bind函數(shù)完成。該函數(shù)原型為:
int bind ( SOCKET s , const struct sockaddr * name , int
namelen)
此處應(yīng)該注意將主機字節(jié)轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)[1()]。
(3)當(dāng)收到串口傳來的數(shù)據(jù),并查到相應(yīng)的中心站 IP地址后,調(diào)用sendto函數(shù)發(fā)送數(shù)據(jù)。sendto函數(shù)原 型為:
int sendto (SOCKET s ,const char * buf ,int len ,int flags)
(4)接收端等待接收數(shù)據(jù),當(dāng)收到數(shù)據(jù)時調(diào)用rec-from函數(shù)接收。函數(shù)原型為:
int recvfrom(SOCKET s ,char * buf ,int len ,int flags ,struct sockaddr *from ,int *fromlen)
(5)調(diào)用closesocket函數(shù)關(guān)閉套接字。該函數(shù)原
型為:
int clo sesocket ( SOC KET s)
在進行UDP編程時,從串口傳來的數(shù)據(jù)除了根據(jù) 串口通信協(xié)議從中解出有用的字段,如目的ID等,并不 進行處理,將數(shù)據(jù)全部通過Internet網(wǎng)進行傳輸,遠端 中心站接收到數(shù)據(jù)后,通過串口與其所連接的通信模塊 進行通信,而對數(shù)據(jù)的處理則由遠端通信模塊根據(jù)串口 通信協(xié)議完成。
6結(jié)語
這里提出一種通過Internet網(wǎng)傳輸數(shù)字對講機話 音和數(shù)據(jù)的方案,可以擴大對講機的通信距離。重點講
圖5時鐘、輸入、未知系統(tǒng)輸出、
自適應(yīng)濾波器的輸出及誤差信號
從圖5的結(jié)果可以看出,自適應(yīng)濾波器在經(jīng)過開始 的一段振蕩后,輸出逐漸與未知系統(tǒng)輸出一致,二者的 誤差逐漸減小到接近零,即實現(xiàn)了無差跟蹤,可見,該自 適應(yīng)濾波器實現(xiàn)了對未知系統(tǒng)的跟蹤和建模,且有相當(dāng) 快的收斂速度。
5結(jié)語
本文用Matlab中的Simulink對LMS算法的實現(xiàn) 方法進行了仿真,并在FPGA中實現(xiàn)了 LMS算法,進 而實現(xiàn)了在FPGA中用自適應(yīng)濾波器對未知系統(tǒng)的建
模,并對FPGA設(shè)計的系統(tǒng)建模結(jié)果用Matlab軟件仿 真以增強Quartus的仿真功能,從而得到完整而且直觀 的仿真結(jié)果,這種系統(tǒng)建模所釆用的仿真、實現(xiàn)和驗證 方法同樣適用于消除寬帶信號中的窄帶干擾、實現(xiàn)自適 應(yīng)譜線增強以及自適應(yīng)均衡等[1],具有一定的通用性。
參考文獻
[1]陳懷琛.數(shù)字信號處理及其Matlab實現(xiàn)[M].北京:電子工 業(yè)出版社,1998.
[2]楊躍忠,闕沛文,李亮.自適應(yīng)LMS濾波器在FPGA中的實 現(xiàn)[J ].微計算機信息,2006 ,22(11) :158 -160.
[3]潘松.EDA技術(shù)使用教程[M].北京:科學(xué)出版社,1999.
[4]孫耀奇,高火濤,熊超,等.基于Matlab和FPGA的FIR數(shù)
字濾波器設(shè)計及實現(xiàn)J].現(xiàn)代電子技術(shù),2008,31 (11): 89-92.
[5]郭繼昌,向暉,滕建輔,等.基于FPGA的FIR濾波器的實現(xiàn) [J].電子技術(shù)應(yīng)用,2000 ,26(5) :60-62.
[6]李明緯,黃世震.應(yīng)用分布式算法在FPGA平臺實現(xiàn)FIR低 通濾波器[J].中國集成電路,2007 ,20⑵:90-92.
[7]陳炳權(quán).基于FPGA的FIR濾波器FFT算法與DA算法實 現(xiàn)[J].襄樊學(xué)院學(xué)報,2005 ,22(2) :54-56.
[8]宋立業(yè),王景勝,彭繼慎.自適應(yīng)濾波器的算法研究及DSP 仿真實現(xiàn)[J ].現(xiàn)代電子技術(shù),2008 ,31(5) :112-114.
[9]胡廣書.數(shù)字信號處理[M].北京:清華大學(xué)出版社,2003.
[10]褚振勇,翁木云.FPGA設(shè)計及應(yīng)用[M].西安:西安電子科 技大學(xué)出版社,2002.
自適應(yīng)濾波器的輸出及誤差信號如圖5所示,其中,輸 入信號同樣為迭加了隨機信號的正弦波。
0 200 400 600 800 1 000 1 200 1 400 1 600 1 800 2 000
-1 0001-i-i-i-i-i-i-i-i-i-1
> 0 200 400 600 800 1 000 1 200 1 400 1 600 1 800 2 000
作者簡介劉艷女,1976年出生,陜西寶雞人,碩士研究生,助理工程師。研究方向為數(shù)字信號處理。
(上接第乃頁)
述了這一方案中最重要的一部分中心站軟件的設(shè)計和 實現(xiàn)。通過對筆者所實現(xiàn)的中心站軟件進行測試表明, 能夠順利地通過Internet實現(xiàn)數(shù)字對講機話音和數(shù)據(jù) 的傳輸,到達預(yù)期目的,并且所提出的方案具有組網(wǎng)簡 單,建設(shè)成本低廉的特點。
參考文獻
[1 ]百度百科.對講機[EB/ OL ]. http :// baike. baidu. com/ view/ 34537. htm.
[2] ETSI TS 102 490 ,Peerto-Peer Digital Private Mobile Radio using FDMA with a Channel Spacing of 6,25 kHz with e. r. p of up to 500 mW[S]. 2005.
[3]劉刀桂,孟繁晶.Visual C+ +實踐與提高-數(shù)據(jù)庫篇[M].
北京:中國鐵道出版社,2001.
4]韓存兵.Visual C+ +數(shù)據(jù)庫編程實戰(zhàn)[M].北京:科學(xué)出版 社,2003.
5]王承君.自定義串口數(shù)據(jù)通信協(xié)議的分析與設(shè)計[J].計算 機工程,2004 ,30(24) :192-194.
6]王華,岳麗全,岳志高.MSComm控件在VC++ 6.0串口通 信中的應(yīng)用J ].長春工程學(xué)院學(xué)報,2009 ,10(1) :1-3.
7]李現(xiàn)勇.Visual C++串口通信與工程實踐[M].北京:人民郵 電出版社,2005.
8]夏躍偉,孫愛民.Winsock控件實現(xiàn)基于UDP的網(wǎng)絡(luò)通訊 [J].計算機科學(xué),2008 ,35(4) :392-393.
9]曹衍龍,劉海英.Visual C++網(wǎng)絡(luò)通信編程實用案例精選 [M]. 2版.北京:人民郵電出版社,2006.
10]蘆東昕,張華強,王陳.基于UDP的可靠數(shù)據(jù)傳遞技術(shù)研 究[J].計算機工程,2003 ,29(22) :62-63.
作者簡介辛然男,1985年出生,內(nèi)蒙古赤峰人,碩士研究生。主要研究方向為移動通信。
謝曉明男,1969年出生,江西奉新人,副教授。主要研究方向為移動通信技術(shù)和寬帶通信技術(shù)。