GSM/GPS車載系統(tǒng)中LCD中文顯示的編程方法
1 問題的提出
一個GPS車輛終端在硬件上主要包括以下幾部分:
◇GPS接收模塊,用于接收GPS衛(wèi)星發(fā)回的GPS定位信號。
◇GSM通信模塊,用于實(shí)現(xiàn)終端模塊與監(jiān)控中心的無線通信。
◇中央控制單元,對信號接收、短消息通信及人機(jī)交互等工作進(jìn)行控制。
◇鍵盤、顯示單元,用于人機(jī)交互,顯示監(jiān)控中心的命令。
在GPS車輛終端系統(tǒng)的開發(fā)過程中,出于系統(tǒng)功能和產(chǎn)品成本的綜合考慮,大多數(shù)設(shè)計(jì)者都會選取一塊廉價、低端的LCD液晶顯示器。由于GSM短消息編碼方式與普通LCD顯示器不兼容,許多GPS車載終端不支持中文信息的顯示,這是設(shè)計(jì)中的一個技術(shù)難點(diǎn)。GSM短消息通常是以PDU模式收/發(fā)的,在這種模式下模塊收到的是一串Unicode碼字符。unicode碼即統(tǒng)一碼。是一種在計(jì)算機(jī)上使用的字符編碼方式。它為不同語言的每個字符設(shè)定了統(tǒng)一且唯一的二進(jìn)制編碼,以滿足跨語言、跨平臺進(jìn)行文本轉(zhuǎn)換和處理的要求。例如,當(dāng)監(jiān)控中心向GPS車輛終端發(fā)送“速回中心”這樣一條調(diào)度信息時,終端將收到Unicode字符串“0698 E698 1E18 06FE”。但目前大多數(shù)LCD顯示器并不支持這種編碼,要在終端上顯示這條信息,必須將其轉(zhuǎn)換為LCD支持的GB碼,即字符串“CBD9 BBD8 D6D0 DOC4”。
要進(jìn)行這樣一種轉(zhuǎn)換,在通常情況下有兩種方法:①找出這兩種編碼方式的運(yùn)算關(guān)系,通過公式進(jìn)行轉(zhuǎn)換;②分別建立Unicode和GB兩張碼表,通過查表的方式進(jìn)行轉(zhuǎn)換。但由于Unicode和GB是兩種相互獨(dú)立的編碼方式,它們之間沒有任何聯(lián)系,運(yùn)算關(guān)系更是無從談起,因此第一種方法是行不通的。而對于第二種方法,從理論上講是完全可行的,且在PC機(jī)上通過高級語言的函數(shù)調(diào)用即可實(shí)現(xiàn);但對內(nèi)存極為有限的單片機(jī)來說,要建立如此龐大的兩張碼表顯然是不可想象的。即使舔加了存儲器,具備了足夠的存儲空間,碼表的錄入和對應(yīng)也同樣是一項(xiàng)繁瑣的工作。因此,一種切實(shí)可行的,能夠?qū)崿F(xiàn)中文顯示的設(shè)計(jì)方案就顯得尤為重要。
2 解決方案的設(shè)計(jì)
為了解決上述難題,筆者特設(shè)計(jì)了一種在GSM模塊的TEXT模式下,基于調(diào)度中心發(fā)送GB碼字符串的編碼方法。
GSM短消息的TEXT模式(文本模式)與PDU模式相同,也是一種使用AT命令傳輸數(shù)據(jù)的接口協(xié)議。不同的是,在信息傳輸過程中網(wǎng)絡(luò)傳輸?shù)氖怯⑽幕驍?shù)字等ASCII內(nèi)碼,因此該模式適合于非智能終端、終端仿真器和一些基于V.25ter自動呼叫/自動應(yīng)答的應(yīng)用軟件。例如,發(fā)送字符A到模塊,并通過AT命令讀SIM卡內(nèi)容到單片機(jī)內(nèi)存,通過偉福仿真器的DTAE窗可觀測到如圖1所示的ASCII碼。
將內(nèi)存中ASCII碼翻譯后可得如下信息:
由于所有GB碼皆由大寫英文字母和數(shù)字組成,兩者又都是ASCII內(nèi)碼,因此可將調(diào)度信息的GB碼通過ASCII內(nèi)碼字符的形式向車載終端發(fā)送。例如,仍是“速回中心”這條短消息,查GB-2312表可得這4個漢字的GB碼為“CBD9 BBD8D6D0 DOC4”。將此條字符串發(fā)送到車載終端,終端接收后的信息如圖2所示。
圖2中70H~7FH內(nèi)存單元存放了該條信息。由于此時接收到的只是一串英文和數(shù)字的字符,要在LCD上顯示,還須將其還原為GB碼(即兩個字符轉(zhuǎn)換為相應(yīng)的一個2位16進(jìn)制數(shù),并存入一個內(nèi)存單元)。將上述字符串轉(zhuǎn)換、合并,存儲在:BOH開始的內(nèi)存單元中的數(shù)據(jù)如圖3所示。
圖3中BOH~BSH內(nèi)存單元中存放了“速回中心”這條短消息的GB碼。軟件實(shí)現(xiàn)流程圖如圖4所示。
還原為GB碼程序?qū)崿F(xiàn)如下:
經(jīng)上述過程后,顯示緩沖區(qū)中便存放了“速回中心”這4個字的GB碼。將這些GB碼經(jīng)程序送入LCD顯示器內(nèi)存DDRAM中后,即可進(jìn)行顯示。
結(jié)語
本文利用GB碼的一些組成特點(diǎn),提出并實(shí)現(xiàn)了一種發(fā)送GB碼字符串的編碼方式。這種方法成功地解決了GSM短消息編碼方式與普通LCD顯示器不兼容的問題,去除了許多GPS車載終端不支持信息的弊端,有很強(qiáng)的實(shí)用性。
評論