(成都信息工程學(xué)院,成都 610225)
“北斗”系統(tǒng)是我國(guó)自主研發(fā)的第一代區(qū)域性衛(wèi)星導(dǎo)航通信系統(tǒng),可提供定位、授時(shí)和通信服務(wù)。作為軍民兩用系統(tǒng),“北斗”系統(tǒng)提供民用通信服務(wù)時(shí),通信頻度受到限制,在SIM卡的一個(gè)頻度內(nèi),可傳送數(shù)據(jù)的比特?cái)?shù)也受到限制。因此,如何對(duì)“北斗”終端進(jìn)行改進(jìn),使其支持較大的文件或圖片數(shù)傳輸,更好地滿足不同行業(yè)的需求,對(duì)“北斗”系統(tǒng)的民用推廣非常重要。
在“北斗”終端上完成較大的文件或圖片數(shù)據(jù)傳輸,目前常用的方法是用多個(gè)硬件終端將一個(gè)數(shù)據(jù)文本分段發(fā)送,接收方再將分段數(shù)據(jù)重組形成一個(gè)完整的數(shù)據(jù)文本。這種方法用多個(gè)硬件終端同傳一個(gè)數(shù)據(jù)文本,其相互間的同步很難協(xié)調(diào);在接收端,不同的數(shù)據(jù)分段分時(shí)到來(lái),到達(dá)的延時(shí)各不相同,其重組算法的實(shí)現(xiàn)難度很大,工作效率也不高。另一方面,這種方法增加了使用成本,其維護(hù)和管理的難度也很大。
針對(duì)上述問(wèn)題,本文提出一個(gè)新的設(shè)計(jì)方案:將“北斗”終端的SIM卡由1張?jiān)黾拥絥張,依次使用不同的SIM卡進(jìn)行數(shù)據(jù)傳送。在實(shí)際使用時(shí),根據(jù)傳輸需求,選擇合適的n值及SIM卡的通信頻度來(lái)完成文件或圖片數(shù)據(jù)的傳輸。與現(xiàn)有的方案相比,本方案具有如下優(yōu)點(diǎn):其應(yīng)用軟件的穩(wěn)定性、可維護(hù)性大大提高;分片數(shù)據(jù)接收時(shí)延可控,分片編號(hào)連續(xù),易于重組;同時(shí)硬件成本沒(méi)有增加,而單位時(shí)間內(nèi)數(shù)據(jù)傳輸量成倍增加。
“北斗一代”通信定位終端一般由射頻處理、FPGA+DSP基帶信號(hào)處理等模塊組成。射頻模塊完成射頻信號(hào)的收、發(fā);FPGA主要完成數(shù)字下變頻、本地GPS擴(kuò)頻碼產(chǎn)生、時(shí)基信號(hào)產(chǎn)生、GPS幀同步信號(hào)產(chǎn)生和幀數(shù)據(jù)解調(diào)等功能;DSP主要完成GPS幀數(shù)據(jù)的讀取和電文解析、GPS解算和速度求解、GPS授時(shí)等功能[1-2]。
鑒于ARM9豐富的內(nèi)部和外部接口資源,本方案基帶信號(hào)處理部分采用FPGA+ARM9,同時(shí)將SIM卡的數(shù)量增加至多張。在ARM9中,移植UCOS操作系統(tǒng),通過(guò)程序控制n張SIM卡協(xié)同完成數(shù)據(jù)發(fā)送工作。其終端硬件組成原理如圖1所示。
圖1 終端硬件的組成原理Fig.1 The general structure of terminal hardware
圖1中,設(shè)每個(gè)SIM卡的通信頻度為Ts、通信量為Mbit、通信等級(jí)為d,當(dāng)終端上只有一張SIM卡時(shí),其通信的波特率為B=M/T。若n張SIM卡在Ts內(nèi)正好都完成一次數(shù)據(jù)傳送,則終端的數(shù)據(jù)傳輸波特率B=M×n/T,其中M、T由SIM卡的通信等級(jí)d限制,n由FPGA的門級(jí)數(shù)和SIM卡的通信頻度T確定。通過(guò)公式可以看出,在同種SIM卡的基礎(chǔ)上,n張SIM卡終端的通信速率是一張SIM卡的n倍。
在制定數(shù)據(jù)通信協(xié)議時(shí),要充分考慮到“北斗”數(shù)據(jù)傳輸速率較低的現(xiàn)狀,盡量不要增加額外的功能數(shù)據(jù)段,要充分利用“北斗”系統(tǒng)所提供的通信協(xié)議。
圖2為數(shù)據(jù)發(fā)送協(xié)議,其系統(tǒng)幀頭數(shù)據(jù)、發(fā)送目的地址、系統(tǒng)幀尾數(shù)據(jù)均為“北斗”系統(tǒng)所要求的數(shù)據(jù)段,應(yīng)嚴(yán)格按照其通信協(xié)議要求組織數(shù)據(jù)。在此協(xié)議中,幀號(hào)+數(shù)據(jù)類型占一個(gè)字節(jié)寬度,DATA為要發(fā)送的數(shù)據(jù),其總的比特?cái)?shù)最大為M-8,8為幀號(hào)+數(shù)據(jù)類型占用去的比特?cái)?shù)。
幀號(hào)占高4位,編號(hào)為0~15;數(shù)據(jù)類型占低4位,可根據(jù)需要對(duì)數(shù)據(jù)進(jìn)行分類。
系統(tǒng)幀頭數(shù)據(jù)發(fā)送目的地址幀號(hào)+數(shù)據(jù)類型DATA系統(tǒng)幀尾數(shù)據(jù)
圖2 數(shù)據(jù)發(fā)送協(xié)議
Fig.2 Data transmission protocol
圖3為接收應(yīng)答協(xié)議。命令有00和FF兩種,00表示所收到的數(shù)據(jù)錯(cuò)誤,F(xiàn)F表示收到的數(shù)據(jù)正確。幀號(hào)為發(fā)送端對(duì)應(yīng)SIM卡所發(fā)數(shù)據(jù)幀的編號(hào)。
圖3 接收應(yīng)答協(xié)議
Fig.3 Answer protocol for receiver end
圖4為SIM卡復(fù)用控制協(xié)議,從協(xié)議中可以看出,當(dāng)一張SIM卡的信息寫入FPGA到下一張SIM卡的信息寫入FPGA總共有5 s的延時(shí)?!氨倍贰苯K端在衛(wèi)星信號(hào)失鎖時(shí),能在1 s內(nèi)再次捕獲并鎖定到衛(wèi)星信號(hào)。FPGA寫入新的SIM卡信息并成功鎖定衛(wèi)星信號(hào),第一個(gè)2 s延時(shí)足夠。通常情況下,組幀并發(fā)送一組數(shù)據(jù)整個(gè)過(guò)程平均耗時(shí)600 ms(此數(shù)據(jù)為測(cè)試所得),協(xié)議中給定1.5 s的耗時(shí)。最后1.5 s的延時(shí)用來(lái)接收應(yīng)答信息并處理。
SIM1卡的信息寫到FPGA 延時(shí)2 s組幀并發(fā)送(耗時(shí)1.5 s)延時(shí)1.5 s……SIMn卡的信息寫到FPGA延時(shí)2 s組幀并發(fā)送(耗時(shí)1.5 s)延時(shí)1.5 s
圖4 SIM卡復(fù)用控制協(xié)議
Fig.4 SIM cards multiplexing control protocol
在系統(tǒng)設(shè)計(jì)時(shí),SIM卡的通信頻度T與卡的張數(shù)n應(yīng)滿足:5×n≤T。
基于ARM9微處理器的終端硬件采用模塊化設(shè)計(jì)[3],主要分為射頻處理模塊、FPGA處理模塊、ARM處理模塊、電源處理模塊,其原理框圖如圖1所示。SIM卡與FGPA的連接原理如圖5所示。
圖5 SIM卡與FGPA的連接原理Fig.5 The general connection of SIM cards and FGPA
圖5中SIM卡的通信等級(jí)都相同,通信頻度T為30 s, 在一個(gè)通信頻度內(nèi),每次的最大通信數(shù)據(jù)量M為680 bit。SIM卡數(shù)量n要滿足5×n≤T這個(gè)關(guān)系,所以n的值為6。與帶有一張SIM卡的通信終端比較,在同樣的通信頻度內(nèi),其通信數(shù)據(jù)量為原來(lái)的6倍。
從圖5中還可看出,SIM卡的時(shí)鐘端由FPGA同一端口提供,其復(fù)位端、雙向數(shù)據(jù)線由FPGA不同端口提供。
終端應(yīng)用軟件在UCOS操作系統(tǒng)中實(shí)現(xiàn)[4-5],根據(jù)“北斗”終端開機(jī)并鎖定衛(wèi)星信號(hào)的時(shí)間要小于2 s的技術(shù)要求,在ARM9中移植UCOS操作系統(tǒng)為其最佳選擇。
終端系統(tǒng)軟件主要包括以下幾個(gè)任務(wù):串行通信任務(wù),完成內(nèi)外數(shù)據(jù)的交換;“北斗”通信接收處理任務(wù),完成數(shù)據(jù)的接收和解幀;SIM卡輪詢發(fā)送處理任務(wù),完成數(shù)據(jù)的分割、組幀和發(fā)送;SIM卡讀寫處理任務(wù),對(duì)SIM卡進(jìn)行數(shù)據(jù)的讀寫,得到需要的數(shù)據(jù)信息;系統(tǒng)監(jiān)控任務(wù),對(duì)整個(gè)系統(tǒng)的工作狀態(tài)進(jìn)行監(jiān)視,并報(bào)告終端的工作狀態(tài)。
4.2.1自動(dòng)確定分片數(shù)據(jù)長(zhǎng)度的算法設(shè)計(jì)
在每一次分片數(shù)據(jù)的傳輸過(guò)程中,“北斗”系統(tǒng)采用超幀的形式進(jìn)行發(fā)送。在超幀接收過(guò)程中,只要有一個(gè)短幀出現(xiàn)錯(cuò)誤,整個(gè)分片數(shù)據(jù)就算發(fā)送失敗。如果分片數(shù)據(jù)長(zhǎng)度縮短,短幀的數(shù)據(jù)量就減少,所以為了保證分片數(shù)據(jù)發(fā)送的成功率,其分片數(shù)據(jù)的長(zhǎng)度也要隨衛(wèi)星信道質(zhì)量的改變而改變。
“北斗一代”共有6個(gè)通信信道,終端選擇兩個(gè)不在同一衛(wèi)星且能量較強(qiáng)的信道作為工作信道。分片數(shù)據(jù)的長(zhǎng)度由定時(shí)偵測(cè)得到,其方法是定時(shí)監(jiān)測(cè)衛(wèi)星各信道能量,當(dāng)工作信道能量變化達(dá)到一定程度后,進(jìn)行信道切換,并發(fā)Length長(zhǎng)度的數(shù)據(jù)給自己,根據(jù)接收的情況進(jìn)行長(zhǎng)度設(shè)定。如長(zhǎng)度自動(dòng)設(shè)定失敗,其分片數(shù)據(jù)長(zhǎng)度為“北斗”系統(tǒng)默認(rèn)的發(fā)送數(shù)據(jù)的最短長(zhǎng)度。其算法實(shí)現(xiàn)步驟如下:
(1)如果Length=0,則長(zhǎng)度自動(dòng)設(shè)定失敗,停止長(zhǎng)度偵測(cè);否則,給自己發(fā)Length長(zhǎng)度的默認(rèn)數(shù)據(jù);
(2)在規(guī)定的時(shí)間內(nèi)是否正確收到所發(fā)送的數(shù)據(jù),如接收失敗,則發(fā)送次數(shù)加1,并轉(zhuǎn)步驟3;如接收成功,接收與發(fā)送次數(shù)均加1,轉(zhuǎn)步驟3;
(3)如果發(fā)送次數(shù)小于3轉(zhuǎn)步驟1;否則,轉(zhuǎn)步驟4;
(4)如果接收成功次數(shù)等于3,則長(zhǎng)度自動(dòng)偵測(cè)成功,Length的值為分片數(shù)據(jù)的長(zhǎng)度,停止長(zhǎng)度偵測(cè);如果接收成功的次數(shù)等于2,Length=2×(Length/3),轉(zhuǎn)步驟1;如果接收成功次數(shù)等于1,Length=Length/2,轉(zhuǎn)步驟1;如果接收成功的次數(shù)等于0,Length=Length/3,轉(zhuǎn)步驟1。
4.2.2多SIM卡復(fù)用的程序?qū)崿F(xiàn)
本終端帶有6張同等級(jí)的SIM卡,程序通過(guò)對(duì)FPGA的控制每次選擇1張SIM卡工作。數(shù)據(jù)通過(guò)6張SIM卡循環(huán)發(fā)送,直到數(shù)據(jù)發(fā)送結(jié)束為止,其程序?qū)崿F(xiàn)算法如圖6所示。
圖6 n張SIM卡復(fù)用的程序流程Fig.6 The flowchart of n SIM cards multiplexing
在終端中運(yùn)行一個(gè)數(shù)據(jù)發(fā)送測(cè)試程序[6],完成1.98 kbyte大小的數(shù)據(jù)文件重復(fù)發(fā)送。發(fā)送測(cè)試程序流程如圖7所示。程序通過(guò)串口向PC機(jī)送出發(fā)送的總幀數(shù)、重發(fā)幀數(shù)以及發(fā)送成功的總幀數(shù)等參數(shù)。根據(jù)這些參數(shù),可以算出發(fā)送的成功率以及發(fā)送1.98 kbyte大小的數(shù)據(jù)文件所需的平均時(shí)間。
圖7 發(fā)送測(cè)試程序流程圖Fig.7 The flowchart of sending a test program
測(cè)試平臺(tái)由帶有6張SIM卡的“北斗”終端通過(guò)串行口與一臺(tái)PC機(jī)相連,終端運(yùn)行發(fā)送測(cè)試程序,PC機(jī)運(yùn)行結(jié)果監(jiān)視程序,其監(jiān)視結(jié)果如圖8所示。圖8中,接收區(qū)顯示內(nèi)容為終端發(fā)送的原始數(shù)據(jù),右邊為終端通過(guò)串口送來(lái)的統(tǒng)計(jì)結(jié)果。整個(gè)測(cè)試過(guò)程共用時(shí)76 363 s,由于停止測(cè)試時(shí),最后一幀的應(yīng)答還沒(méi)有收到,所以原始數(shù)據(jù)總幀數(shù)比成功發(fā)送的總幀數(shù)少1幀。計(jì)入重發(fā)的數(shù)據(jù)幀,總計(jì)發(fā)送15 273幀,成功發(fā)送13 999幀數(shù)據(jù),數(shù)據(jù)發(fā)送的成功率為91.66%;1.98 kbyte大小的文件成功發(fā)送一遍的平均時(shí)間為136.35 s。如果用帶一張SIM卡的“北斗”終端來(lái)發(fā)送這個(gè)文本大約需要818.10 s的時(shí)間??梢钥闯?,發(fā)送時(shí)間縮短為原來(lái)的1/6。
圖8 數(shù)據(jù)傳輸監(jiān)視結(jié)果Fig.8 The monitoring result of data transmission
通過(guò)多SIM卡復(fù)用傳送數(shù)據(jù)的設(shè)計(jì)方案,相當(dāng)于縮短了終端的通信頻度,既滿足了“北斗”系統(tǒng)的通信規(guī)則,又提高了通信速率。如采用頻度為50 s的SIM卡可擴(kuò)充至10張,其通信速率將提高到原來(lái)的10倍;如采用頻度為30 s的SIM卡可擴(kuò)充至6張,其通信速率將提高到原來(lái)的6倍。通過(guò)擴(kuò)展SIM卡,不需要增加額外的硬件成本,就可在“北斗”終端上實(shí)現(xiàn)較大文本數(shù)據(jù)和圖片數(shù)據(jù)的傳輸,這種方法具有較高的民用推廣價(jià)值。
參考文獻(xiàn):
[1] 李成軍,馮振明. 基于FPGA+DSP結(jié)構(gòu)的三星無(wú)源定位系統(tǒng)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,2008,34(8):59-61.
LI Cheng-jun, FENG Zhen-ming. Three-satellite passive position system design based on FPGA+DSP [J].Application of Electronic Technique,2008,34(8):59-61. (in Chinese)
[2] 魏秀啟,鄭維廣,隋紹勇.北斗導(dǎo)航定位接收機(jī)的原理及硬件實(shí)現(xiàn)[J]. 電子元器件應(yīng)用,2009,11(4):37-40.
WEI Xiu-qi, ZHENG Wei-guang, SUI Shao-yong. Theory and Hardware Realization of Beidou Navigation & Positioning Terminal[J]. Application of Electronic Components,2009,11(4):37-40. (in Chinese)
[3] 朱斌. 基于嵌入式微處理器的GPS跟蹤報(bào)警系統(tǒng)設(shè)計(jì)[J]. 電訊技術(shù),2010,50(4):88-91.
ZHU Bin.Design of a GPS Tracking Alarm System Based on Embedded Microprocessor[J]. Telecommunication Engineering,2010,50(4):88-91.(in Chinese)
[4] 竇建華,張宣,江鵬,等. 基于μC/OS-Ⅱ的北斗導(dǎo)航接收機(jī)設(shè)計(jì)[J].微計(jì)算機(jī)信息, 2008,24(29):71-74.
DOU Jian-hua,ZHANG Xuan,JIANG Peng,et al.Design of Beidou Navigation System Receiver Based on μC/OS-Ⅱ[J]. Microcomputer Informatio,2008,24(29):71-74.(in Chinese)
[5] JEAN J LABROSSE. 嵌入式實(shí)時(shí)操作系統(tǒng)UCOS-II[M]. 2版.邵貝貝,譯.北京:北京航空航天大學(xué)出版社,2003.
JEAN J LABROSSE. Embedded Real-time Operating System UCOS-II [M]. 2nd ed.Translated by SHAO Bei-bei. Beijing: Beijing University of Aeronautics and Astronautics Press, 2003.(in Chinese)
[6] 高迪駒.基于北斗衛(wèi)星通信系統(tǒng)的船載終端串口通信[J]. 上海海事大學(xué)學(xué)報(bào), 2008,29(4):10-14.
GAO Di-ju. Shipborne Terminal Serial-port Communication Based on Beidou Satellite Communication System[J].Academy of Science & Technology Shanghai Maritime University, 2008,29(4):10-14. (in Chinese)