張偉
(江蘇科技大學(張家港校區),江蘇張家港 215600)
51單片機接收GPS數據的算法與實現
張偉
(江蘇科技大學(張家港校區),江蘇張家港215600)
本文研究的對象為處理器為51單片機的應用系統,研究的主要內容為應用系統在編程的過程中的內存使用區劃分、GPS定位信息流數據格式兩方面。在應用系統在使用的過程中,51單片機具有內存較小的特點,而GPS導航具有數據流較大的特點,兩者之間存在著較大的矛盾。為了解決這一矛盾,本文提出了51單片機接收GPS數據的壓縮算法。
51單片機GPS數據數據壓縮
在嵌入式的GPS車載系統的處理器一般情況下采用51單片機,但是這種處理器具有內存較小的特點,其內存僅為128B,而GPS定位信息數量流具有較大的特點。51單片機內存與GPS定位信息之間存在著嚴重的矛盾,本文針對這對矛盾提出了GPS數據的壓縮算法,更好地解決了51單片機在應用過程中內存較小的問題。
51單片機具有內存較小的特點,其內存僅為128B,其中寄存器區為32個字節、數據緩沖區為80個字節、位尋址區為16個字節[1]。在對單片機技術人員的技術水平進行衡量的過程中,單片機內存寶貴資源的利用率是其重要的衡量標準之一。如果項目開發過程中應用了51單片機,那么程序設計人員在內存資源利用的過程中,寄存器區的主要功能為參與程序運算數據寄存單元,數據緩沖區的主要功能為對數據運算結果或中間結果進行緩存,位尋址去的主要功能為變量或標志的定義。
GPS接收機在工作狀態中會不間斷地進行GPS導航定位信息的傳輸,通過串口將這些信息傳輸到單片機中。如果沒有對這些GPS導航定位信息進行處理,那么這些數據將是一長串字節流信息。因此,必須要通過一定的程序對GPS導航定位信息進行轉化,使其具有實際意義并能夠為高層決策提供依據。GPS在進行信息提取的過程中與其他的通信協議類似,首先要對幀結構進行明確,之后依據結構進行定位信息的提取。
嵌入式的GPS車載系統的使用者關注的主要內容包括日期、時間、糾度、面速度等,因此GPS系統可以采用$GPRMC記錄語言。這種語言所包含的字節為70個,主要的內容包括語句標識頭、世界時間、定位狀態、緯度、緯度方位、經度、經度方位、地面速度、地面路線、日期、磁偏角、校驗和和結束標記[2]。如果試用51單片機作為接收器,單片機內存緩沖區需要花費70個字節,導致數據緩沖區的80個字節所剩無幾,根本不能夠用作他途。
通過對GPS數據記錄進行分析發現,語句之間的數據段中存在著較多的冗余位[3]。此外,數據記錄中包含數字、英文字符多種形式,因此將GPS數據進行劃分,為之后的壓縮工作奠定基礎。例如:
$GPRMC,(UTC時間) 12153,(UTC時間) A,(定位狀態) 0033.4304,(緯度) N,(緯度半球) 00118.2030,(經度) E,(經度半球) 029.8,(地面速度) 240.8,(地面航向) 050712,(UTC日期) 120.E,(磁偏角)A,(校驗和)。
第一,在語句標識頭$GPRMC,的處理過程中,由于所有語句的標識頭都是相同的,可以將這7個字節作為冗余信息進行去除,從而節約7個字節的位置。在程序處理的過程中,可以對$GPRMC,進行預置,實現標識頭與GPS信息的同步信號監測處理。第二,UTC時間同樣占用7個字節,通過時分秒的格式對世界時間進行指示,在加上8小時之后轉換為背景時間[4]。在UTC時間中可以將“,”視為冗余位進行去除。第三,定位狀態占用2個字節,依據定位狀態對GPS信息定位的成功與否進行判斷,定位狀態中可以將“,”視為冗余位進行去除。第四,緯度占用10個字節,可以將“.”、“,”視為冗余位進行去除。第五,緯度指示器占用2個字節,其作用是對東西經進行指示,所有的$GPRMC,中的該信息段都位于東經,因此可以將其視為冗余位進行去除。第六,緯度占用11個字節,可以將“.”、“,”視為冗余位進行去除。第七,緯度指示器占用2個字節,所有的$GPRMC,語句中該段信息都相同,可以將其視為冗余信息進行去除。第八,地面速度占用6個字節,可以將“.”、“,”視為冗余位進行去除。第九,地面航向占用6個字節,可以將“.”、“,”視為冗余位進行去除。第十,其他記錄段中所有無關的都可以進行保留,能夠去除17個字節。
通過壓縮與處理之后,共去除掉38個字節,剩余的字節數為32個。在壓縮與處理的過程中最為重要的就是“.”與“,”符號的去除,其他的冗余為可以通過接受不存儲的方法進行去掉[5]。為了實現直觀的效果,可以進行單片機的單字節串行口接收的子程序和接收GPS數據流中的一段如時間、經度、緯度等并去掉GPS數據串中間的“,”和“.”兩個符號的子程序的設置。
通過對GPS數據流的壓縮與處理,能夠實現GPS車載系統中51單片機處理器存儲空間的節省,還具有信道占用時間降低、數據安全性提高等特點。本文提出的壓縮程序針對的對象為GPS數據格式,因此該壓縮程序具有壓縮比較大、通用性較差的特點。在將該程序移植到其他系統中時,需要對其進行一定的修改。各個GPS廠家執行的規范標準都是NMEA-0183輸出語句,這就為改壓縮程序的通用奠定了基礎,而進行修改的主要原因為數據輸出格式具有差別。
[1]王波,冬梅,劉東.基于ATMEGA644P單片機的GPS數據記錄器[J].電子世界,2014(43):5-6.
[2]劉曉,伍小東,姚軍光,魏權利.基于單片機采集GPS數據系統的設計[J].青島科技大學學報(自然科學版),201 1(65):172-175.
[3]郭耀華.基于單片機的GPS數據采集與傳輸系統的設計與實現[J].山東工業技術,2013(64):48-49.
[4]董作民,姜木霖,陳曉青,段潤雪.MCS-51單片機與GPS-OEM板數據通訊的研究與應用[J].湖北汽車工業學院學報,2010(25):37-41.
[5]魏守明,周生輝.GPS數據在出租車集群調度系統中的傳輸方案[J].電子技術,2012(5):29-31.
張偉(1994—),江蘇南通人,江蘇科技大學(張家港校區)學生,電氣工程及其自動化專業。