国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM硬件的手持機間短消息交互的程序設計

2015-11-23 02:35:15李文軍芮茂海王蘇毅舒德全任德成
關鍵詞:手持機短消息信令

李文軍,芮茂海,王蘇毅,舒德全,任德成

(總參通信訓練基地,宣化 075100)

基于ARM硬件的手持機間短消息交互的程序設計

李文軍,芮茂海,王蘇毅,舒德全,任德成

(總參通信訓練基地,宣化 075100)

基于自主搭建的嵌入式開發(fā)環(huán)境和VS2003軟件開發(fā)的控制終端軟件,設計了一種短消息交互的實現(xiàn)方案。通過對短消息菜單的程序設計,結合鍵盤、顯示屏等外設,實現(xiàn)對字符編輯、發(fā)送和接收,從而實現(xiàn)了手持機間的短消息交互。

T9輸入法;狀態(tài)機;中英混排;信令結構

引 言

短消息是現(xiàn)代通信的重要形式之一,短信業(yè)務讓手機成為電報式的解讀工具,使視覺文字成為現(xiàn)代通信中傳遞信息和溝通的一種重要方式。短信這種文字視覺式的信息傳輸、解析特點,使其他類似的短消息業(yè)務廣泛應用于具備通信功能的嵌入式手持設備中。

在研制一種基于STM32F107VCT6芯片的互聯(lián)形嵌入式手持機時,不同的用戶之間需要進行文本信息交互。本文基于現(xiàn)實需求,根據短信的基本定義并參考現(xiàn)代手機中短信的功能設計,研究了一套實現(xiàn)短消息功能的方案,以實現(xiàn)短消息的編輯、存儲、發(fā)送、接收等功能,并在某嵌入式手持設備中獲得了應用。

1 短消息總體設計

手持機的短消息通信功能是嵌入式通信系統(tǒng)整體設計方案的一部分,不同的嵌入式手持機設備通過網線采用星型拓撲結構與控制終端電腦相連,利用控制終端軟件的調度實現(xiàn)手持機與電腦之間的信令交互和狀態(tài)控制,最終使控制終端實現(xiàn)對固定格式的短消息信令的轉發(fā),進而實現(xiàn)不同手持機間的短消息通信,其星型拓撲結構如圖1所示。

圖1 星型拓撲結構及短消息實現(xiàn)總體設計方框圖

手持機是互聯(lián)互通功能實現(xiàn)的終端,其短消息功能實現(xiàn)的方案是:在STM32F107VCT6主控芯片的調度下,相關外圍軟、硬件外設相互配合,完成短消息的4個功能模塊,即短消息發(fā)送(包括文字編輯)、短消息接收、短消息存儲、短消息刪除。

1.1 硬件模塊簡介

實現(xiàn)短消息通信功能的硬件系統(tǒng)包括計算機和手持機兩大部分,計算機為成型的商業(yè)電腦,不再贅述。手持機為自主設計,其硬件電路主要由以下幾部分組成,即控制芯片STM32F107VCT6、像素為128×64的JLX12864G-573-PC型液晶顯示模塊(包括字庫IC)、容量為64Mb 的W25Q64的FLASH存儲芯片、網絡通信模塊(包括網絡控制芯片VM35RB DP83848VVVBC及網絡變壓器HR911105A及其附屬電容、電阻)、4×5鍵盤(包括0~9 及A、B、C、#鍵及上、下、確定鍵),以及電源等其他外設。

STM32F107VCT6是ST公司設計的內核為Cortex -M3的32位處理器,其最高工作頻率達72MHz,內部含有256KB的FLASH和64KB的SRAM,實時性好,且具有很強的中斷處理能力,目前廣泛應用于嵌入式和手持設備中,是手持機實現(xiàn)短消息功能的核心部件。

JLX12864G-573-PC型液晶顯示模塊包括ST7565R驅動芯片、顯示屏(128×64像素)和內置標準字庫的存儲芯片,可以通過STM32F107VCT6的引腳接口實現(xiàn)對字符、圖片的提取、顯示以及變更等操作。

W25Q64是華邦公司推出的大容量SPI FLASH產品,容量為8MB,支持標準SPI,最大SPI時鐘可達80MHz[2]。在本設計中是利用STM32F107VCT6自帶的SPI來實現(xiàn)對外部FLASH(即W25Q64)存儲內容的讀寫,以實現(xiàn)手持機短消息的存儲、刪除功能。

網絡控制芯片VM35RB DP83848VVVBC是美國國家半導體公司生產的一種支持10/100Mbps的單路物理層網絡芯片,具備良好的魯棒性和低功耗特點,對各種標準的以太網解決方案有良好的兼容性,在本設計中通過UDP通信方式實現(xiàn)主電腦控制終端的信令交互與短消息收發(fā)。

1.2 軟件模塊簡介

實現(xiàn)短消息通信功能的軟件系統(tǒng)包括計算機中控軟件和手持機操作軟件兩個部分。

計算機中控軟件采用VC++編寫,利用VS2003開發(fā)環(huán)境基于無鏈接的UDP協(xié)議,自定義了短消息類,接收并解析收到的短消息信令,根據信令中包含的目標ID和目標ID所指向手持機的工作狀態(tài),決定是否轉發(fā)短消息。代碼相對簡單,不再贅述。

短消息的程序實現(xiàn)方面主要由以下5部分組成:STM32F107VCT6的驅動程序、顯示芯片驅動和顯示程序、網絡驅動及初始化程序、按鍵控制程序以及短消息實現(xiàn)程序。在本設計中,手持機操作軟件的編寫不依賴操作系統(tǒng),為自主設計的代碼,以上5部分代碼是在ST公司自帶的庫文件上編寫。手持機開機后,程序初始化,配置好STM32F107VCT6的內部時鐘以及SPI、鍵盤、W25Q64、顯示屏、網絡接口等外設的引腳,并分別啟動。之后利用UDP協(xié)議通過網絡向電腦控制終端上報開機信息。在開機后,以心跳的方式每3s向控制終端匯報一次工作狀態(tài)。最后通過鍵盤操作進入到短消息界面,進行短消息的操作(接收短消息通過中斷的方式進行)。

2 短消息實現(xiàn)的程序設計

在本設計中,短消息是由手持機編輯并發(fā)出,以特定格式的信令通過控制終端的解析、轉發(fā)到目的手持機,手持機短消息菜單界面分為收件箱、寫信息、發(fā)件箱、刪除短信4個子菜單,其界面如圖2左圖所示。

圖2 短消息功能界面及漢字編輯、英漢混排界面

“收件箱”即接收到信息后,將信息解析、存儲,以便查看、編輯(包括刪除、轉發(fā))的功能菜單。其接收功能是“收件箱”的核心,具體實現(xiàn)是利用網絡通信中斷函數(shù)ETH_IRQHandler(),通過指定端口接收并解析來自控制終端轉發(fā)的短消息信令,并將之存儲在W25Q64芯片中。

“刪除短信”功能就是對存儲在W25Q64中的發(fā)送信息、接收信息進行擦除,即將目標存儲空間覆蓋特定字符,如0x00。在本設計中存儲芯片W25Q64最小擦除單位為一個4KB大小的扇區(qū)[2],為了使程序邏輯更加簡單明了,對信息的刪除,以及對接收信息、發(fā)送信息的存儲操作都是以4KB為單位對W25Q64的扇區(qū)進行操作的。

“寫信息”功能是短消息功能實現(xiàn)代碼中最龐大也是最核心的部分,即通過鍵盤操作,參考T9輸入算法編輯文字(包括英、漢、數(shù)字、標點等),并提取相應的GB2312碼存放到STM32F107VCT6開辟的緩存buffer中。當決定發(fā)送時,與輸入的信宿號碼(相當于手機號碼)一起按照固定格式組成一條短消息信令,利用UDP協(xié)議通過網絡接口發(fā)送出去,并將之存儲到W25Q64芯片中預先劃分的“發(fā)件箱”區(qū)域中,即“發(fā)件箱”所能夠查看的內容。

存儲(包括刪除)、接收短消息的代碼相對簡單,技術實現(xiàn)難度較低,在此不再贅述?!皩懶畔ⅰ敝袧h字編輯的難度較高,遠遠超過英文、數(shù)字、標點的編輯,因此,以漢字的編輯過程為主要對象進行詳細說明。

2.1 “寫信息”程序設計與狀態(tài)轉換

“寫信息”菜單的代碼程序參考了當前市場流行的T9輸入法的界面和基本操作流程,并根據應用需求做適當改進。不同的輸入內容可通過“#”鍵進行循環(huán)切換,數(shù)字輸入采用直接按鍵的方式,英文大/小寫字母、標點符號以快速連按的方式進行選擇并輸入,程序設計相對簡單。以漢語拼音的方式實現(xiàn)漢字輸入的方法需要隨時根據鍵盤和顯示屏的顯示內容進行狀態(tài)轉換,過程相對復雜。

漢字擁有固定的形、音對應關系,這是漢字編輯的邏輯起點。利用T9拼音輸入漢字的思維邏輯是:一個漢字至少對應一個拼音,因此可利用漢字對應的漢語拼音查找同音漢字,然后在同音漢字中查找目標漢字?!皩懶畔ⅰ辈藛沃袧h字編輯的實現(xiàn)及狀態(tài)機轉換過程也是與這種認知規(guī)律相一致,即是一個采用循環(huán)[3-4]結構,不斷查找、判斷輸入數(shù)字串與拼音組合及同拼音漢字這三者之間的映射關系過程[5]。

首先通過“#”號鍵調整輸入方式,使之處于漢字輸入的狀態(tài)下;然后通過鍵盤2~9輸入代表拼音的數(shù)字串,并在顯示屏上實時顯示拼音的“匹配結果”,若代表拼音的數(shù)字串輸入有誤,可以通過C鍵刪除上一個錯誤輸入的數(shù)字,若代表拼音的數(shù)字串輸入正確,則通過A或B鍵查找目標字符拼音,即篩選與數(shù)字串對應的拼音組合;若拼音組合也正確,則判斷、確定目標漢字,即按下“1”鍵,確定拼音,并通過1~5鍵選擇排列的1~5個漢字,存儲其GB2312碼,并將其對應的點陣組合顯示到顯示屏上,或利用上、下鍵選擇下一組同音的5個漢字。至此一個漢字的輸入過程便完成了,下一步則可以根據短消息編輯的需求,決定是繼續(xù)輸入漢字還是按下確定鍵輸入信宿的號碼,并按發(fā)送鍵將保存的GB2312碼流發(fā)送出去。算法的主體結構如圖3所示,并可借鑒參考文獻[1]中漢字“幫”的輸入過程(如圖2右圖所示)。

2.2 信息功能實現(xiàn)的關鍵點設計

要完成短消息的編輯、發(fā)送和接收等主體功能,漢字拼音碼表的查找,中、英文混排編輯以及設計合理的信令結構是其中的關鍵點。

2.2.1 “碼表查找”數(shù)據結構

圖3 寫信息編輯漢字的操作流程和狀態(tài)機轉換圖

漢字輸入法的實現(xiàn)過程實際上是一個根據鍵盤輸入查找拼音組合以及相應漢字的過程,但關鍵在于數(shù)字串到拼音往往是一種多對多的映射關系,而拼音到同音的漢字排列表是一種一對多的映射關系。為實現(xiàn)正確的漢字輸入,首先要獲得正確組合的數(shù)字串,根據數(shù)字串找到對應的拼音,再根據該拼音找到對應的漢字,最后根據漢字的機內碼到漢字字庫中查找漢字的顯示點陣,這一過程不妨稱為“碼表查找”過程?!按a表查找”的實現(xiàn)中對合理碼表的設計具有重要意義[4]。

拼音索引數(shù)據結構,是一個包括輸入數(shù)字序列、拼音、拼音碼表的結構體,這三者構成一個完整的三級映射關系。其定義如下:

其中具體的拼音索引表(部分)由2~9數(shù)字組合成的數(shù)字序列、數(shù)字序列對應的拼音,以及拼音碼表數(shù)組3部分組成。

在本設計自定義的拼音索引表py_index_li[]中,拼音順序按英文字母表順序排列。數(shù)字串2264對應兩個拼音,即“bang”與“cang”,但在輸入“2264”數(shù)字串后,顯示屏上首先顯示的匹配結果為“bang”及其對應的同音漢字,因為“bang”的位置比“cang”靠前,是第一順位匹配拼音,而若目標漢字為“蒼”,則需要根據A或B鍵調換拼音,并通過上/下鍵,結合“1”鍵以及其他數(shù)字鍵選擇漢字“蒼”,并將其GB2312碼存放到預先設定的數(shù)組中。

}//拼音索引表

與拼音碼表數(shù)組對應的漢字排列表(部分),每一個拼音碼表數(shù)組中存放的內容并不是表面顯示的漢字字形,而是標識漢字的GB2312內碼,即目標漢字編輯、存儲的內容。

2.2.2 中、英文混排編輯

短消息是一種視覺式的文字信息,涉及文字在LCD顯示屏上的顯示與排版。在本設計中顯示與排版的主要難度在于中、英文字符的混排。

本設計中采用的液晶顯視屏為64×128像素,采用的漢字點陣為16×16像素,英文字母、數(shù)字、標點為8×16像素。在中、英文混排編輯時,尤其在文字換行排版時容易出現(xiàn)以下兩種情形,導致排版顯示異常:其一,行尾僅剩8×16像素的空間,卻要輸入一個16×16像素的漢字;其二,對已輸入的字符進行刪除時,首先確定需要刪除字符所占用的像素空間。

欲解決以上問題,需要在文字編輯時建立一個與輸入文字相對應的標志位數(shù)組(如英文字符為1,漢字為2),以標識當前輸入文字的像素大小。在每一次文字輸入或刪除時,都需要根據這個數(shù)組的值、確定文字顯示的排版。

2.2.3 短消息信令格式

短消息以固定信令格式的形式由控制終端轉發(fā),在不同的手持機之間傳輸??刂平K端在轉發(fā)時需要知道的信息包括短消息標識性字頭、信源、信宿以及各自的權限。而為了使信宿手持機能夠準確地解析出信息內容,控制終端轉發(fā)的短消息信令應該包括短消息標識性字頭、信源號碼、信息長度、號碼長度以及短消息內容。

當短消息發(fā)出時,號碼區(qū)存放的號碼為信宿號碼,而控制終端利用本機ID號識別信源并確定其權限;當控制終端接收到信源發(fā)來的短消息信令時,需要將接收到的ID號轉化為信源號碼并填充到號碼區(qū),然后根據信宿號碼對應的IP地址和端口,利用UDP協(xié)議發(fā)送出去。短消息信令的基本格式如下所示:

$$AA$$ 信息長度號碼長度內容(≤48)信宿號碼(發(fā))或信源號碼(收)本機ID

結 語

短消息式的文本信息交互方式在當前嵌入式設備中應用非常廣泛,本文基于短消息的基本功能菜單提出了一套既簡單又能滿足基本文字交互的短消息交互實現(xiàn)方案。本實現(xiàn)方案中程序采用VC++編寫,代碼具有較強的可修改、可移植性,并可根據需要添加新功能。目前本方案己經應用在某通信系統(tǒng)中,但是本設計中文本的傳輸方案相對簡單,增加校驗、加密以及采用更可靠的傳輸方式是下一步研究的重點。

[1]李文軍,于明浩,王新征.T9輸入法在嵌入式設備中的實現(xiàn)方案[J].單片機與嵌入式系統(tǒng)應用,2014,12(14):1-4.

[2]張洋,劉軍.原子教你玩STM32[M].北京:北京航空航天大學出版社,2013.

[3]張真波,李俊,倪宏,等.電視機遙控器中文輸入法的實現(xiàn)[J].計算機工程,2008,1(2):278-280.

[4]甘亞輝.嵌入式中文拼音輸入法的設計[J].開發(fā)案例,2008,3(3):84-85.

[5]李晨.嵌入式系統(tǒng)下中文拼音輸入法的設計與實現(xiàn)[J].航空電子技術,2009,12(4):31-34.

李文軍(講師),主要從事嵌入式硬件及軟件系統(tǒng)研發(fā);芮茂海、任德成,主要從事通信領域相關的科研、教學;王蘇毅、舒德全,主要從事硬件設計與開發(fā)。

Program of Short Message lnteraction Between Handheld Machines Based on ARM

Li Wenjun,Rui Maohai,Wang Suyi,Shu Dequan,Ren Decheng
(Communication Training Base of General Staff,Xuanhua 075100,China)

The paper introduces a solution of communication with short message based on the embedded development environment designed independent and control terminal software of VS2003.Through the design of menu of short message,combining with the keyboard and the display screen,the characters of editing,sending and receiving are realized,so as to the short message interaction between the handheld machines is realized.

T9input method;state machine;mix of chinese and english;structure of signaling

TP393;TN919

A

??薛士然

2015-01-27)

猜你喜歡
手持機短消息信令
SLS字段在七號信令中的運用
移動信令在交通大數(shù)據分析中的應用探索
試論電視新聞短消息的采寫策略
新聞傳播(2018年14期)2018-11-13 01:12:58
基于WIA—PA的無線手持機設計
淺談廣播短消息的采寫
新聞傳播(2018年1期)2018-04-19 02:09:00
基于信令分析的TD-LTE無線網絡應用研究
消費導刊(2017年24期)2018-01-31 01:28:37
從拿手機 的姿勢看你是怎樣的人
中學生(2017年7期)2017-04-12 01:38:31
北斗高精度手持機在航測外業(yè)中的應用
測繪通報(2016年6期)2016-07-15 05:08:39
LTE網絡信令采集數(shù)據的分析及探討
短消息業(yè)務評估體系的研究與實現(xiàn)
電信科學(2013年11期)2013-09-29 04:48:18
嘉义市| 桓台县| 宣汉县| 内江市| 东台市| 旅游| 永平县| 茶陵县| 乌拉特后旗| 敖汉旗| 天全县| 阿荣旗| 铜鼓县| 河池市| 上林县| 弥渡县| 陆丰市| 潮州市| 顺昌县| 佳木斯市| 武夷山市| 漯河市| 苏尼特右旗| 宜丰县| 永安市| 浑源县| 左贡县| 罗源县| 都匀市| 通河县| 丰台区| 广东省| 岢岚县| 宜春市| 汶川县| 徐水县| 鸡东县| 瓦房店市| 岳西县| 鲁山县| 烟台市|