當前位置:首頁 > 單片機 > 單片機
[導讀]引言近年來,以單片機以及嵌入式系統(tǒng)平臺為基礎的各種智能終端廣泛應用于各行各業(yè)的專用設備和產(chǎn)品中,也將逐漸滲透到家用電器和各種消費類電子產(chǎn)品中。單片機以其價格低廉、技術成熟而廣泛應用于各種低端產(chǎn)品之中,

引言

近年來,以單片機以及嵌入式系統(tǒng)平臺為基礎的各種智能終端廣泛應用于各行各業(yè)的專用設備和產(chǎn)品中,也將逐漸滲透到家用電器和各種消費類電子產(chǎn)品中。

單片機以其價格低廉、技術成熟而廣泛應用于各種低端產(chǎn)品之中,但是由于單片機的尋址能力有限,限定了其最大的存儲空間。比如最常用的MCS-51單片機,其直接尋址的數(shù)據(jù)存儲空間為64k字節(jié),如果通過擴展來得到更大的存儲空間,既增加了系統(tǒng)成本,也為數(shù)據(jù)讀取操作帶來了不便(對擴展區(qū)間的訪問要通過端口操作實現(xiàn))。所以在單片機系統(tǒng)的設計中,存儲空間的大小是一個很重要的因素。

在PC機上的漢字顯示,是來自存儲在PC機上的漢字庫。漢字庫中的漢字以點陣形式組成。如果以一個16x16點陣的漢字庫作為基本字模庫,每個漢字占32 個字節(jié)。GB2312中規(guī)定了6763個二級漢字,則需要的存儲空間大體為6763×32字節(jié),約200多K字節(jié)。顯然,如果要在單片機終端上顯示漢字,不可能把以上所有的“漢字庫”信息都放在單片機系統(tǒng)的存儲空間中。

本文以我實驗室獨立開發(fā)的智能餐飲信息系統(tǒng)為例,首先介紹關于漢字顯示的基礎知識,然后說明在實際應用中如何對系統(tǒng)漢字庫進行裁減,只保留需要在終端上顯示的“漢字庫”信息,最后介紹在實際應用中會涉及到的有關字模提取和字模轉(zhuǎn)化的處理方法。

1:關于漢字顯示的基礎知識

在中文WIN9X下,我們輸入一個雙八位字節(jié),就得到一個漢字,就會認為這雙八位字節(jié)就是對應這樣的字形,這是錯誤的。這個雙八位字節(jié)被稱為漢字的內(nèi)碼(詳見下文),內(nèi)碼對于字庫來說,只是查找字形的索引。通過這個雙八位字節(jié)可以唯一的從漢字庫中查詢得到其對應的漢字字形數(shù)據(jù)(字模)。對應不同編碼標準的字體,內(nèi)碼對應了不同的字形。我們常用的是國標GB2312<<信息交換用漢字編碼字符集>>,包含了最常用的簡體中文文字。

如果系統(tǒng)所使用的“漢字庫”中每個漢字按16x16點陣模式存放,則每個漢字由16x16=256個點組成,占用16x2=32個字節(jié)的連續(xù)內(nèi)存單元。每個字節(jié)有8位,每一位都有兩種狀態(tài),即亮或暗,分別用1或0來表示。在16x16點陣中,用各個位的亮暗來表示一個字,凡是筆畫經(jīng)過的地方都為1(亮), 沒有筆畫的地方都為0(暗),這樣就可以表示不同的漢字。

圖1 是“大”字16x16點陣模式排列放大后的結果。

在PC機中,組成字模的32個字節(jié)默認的排列順序如圖2所示:每行兩個字節(jié),低字節(jié)為DB0~DB7,高字節(jié)為DB8~DB15,每字節(jié)8比特,共16行32個字節(jié)。圖中標出了第1、第2個字節(jié)和第31、第32個字節(jié)的存放位置。

于是,我們可以得到“大”字的漢字字模(32個字節(jié),10進制表示):(1,0,1,0,1,0,1,0,1,4,255,254,1,0,2,128,2,128,2,64,4,64,4,32,8,16,16,14,96,4,0,0)

2.字模提取及數(shù)據(jù)文件下載

2.1 在實際應用中,需要進行字模提取來適應有限的存儲空間

我實驗室獨立開發(fā)的餐飲業(yè)信息系統(tǒng)中就是應用單片機來實現(xiàn)智能點菜終端。系統(tǒng)構成如圖3所示:

在以上系統(tǒng)中,終端中存儲著所有的菜譜信息,操作員通過點菜終端可以瀏覽菜譜。簡單的操作流程為:當操作員通過終端點好了菜以后,終端以無線方式將菜肴信息發(fā)送到基站,基站通過串口將數(shù)據(jù)發(fā)送給服務器,服務器對數(shù)據(jù)進行處理之后要進行入庫、打印和向終端返回等操作。

在本系統(tǒng)中所采用的單片機為MSC-51,帶32K的外部RAM和128K的FLASH存儲器。其中,128K字節(jié)的FLASH存儲空間用作數(shù)據(jù)存儲器,記錄了菜譜、桌位等和業(yè)務相關的信息,另外有64K字節(jié)用作存儲漢字庫(字模)。

GB2312中規(guī)定常用的兩級漢字6763個(每個漢字有32字節(jié)),占用200多K字節(jié)的存儲空間。顯然,不能把漢字庫中的所有漢字字模都下載到終端上,只能是選擇終端需要顯示的漢字的字模進行提取和下載。終端的64K存儲空間可以存儲大約2000個漢字。在實際應用中一般酒店的菜肴數(shù)量在 200~600之間,要用到的漢字數(shù)在400~1800之間,所以64K的存儲空間足夠本系統(tǒng)的應用。

2.2 如何進行字模提取和下載處理

在本系統(tǒng)中,終端數(shù)據(jù)存儲區(qū)中的字庫信息、菜譜、桌位等業(yè)務信息是從服務器上下載得到的。首先,服務器中的處理程序提取相關數(shù)據(jù)并生成各個下載信息文件,然后處理程序?qū)⑦@些下載文件下載到終端上。系統(tǒng)和終端通過串口線相連,以串口通信方式將數(shù)據(jù)下傳到終端的數(shù)據(jù)存儲區(qū)。

字模裁減及填充終端字庫下載文件流程如圖4 所示:

首先,運行在服務器上的處理程序遍歷數(shù)據(jù)庫中的菜譜表、桌位表等所有包含下載信息的、帶有漢字的表記錄。從中找到需要下載的漢字,根據(jù)這些漢字的內(nèi)碼,從系統(tǒng)字庫中得到漢字的字模,經(jīng)過字模轉(zhuǎn)化(在后面介紹),然后保存在字庫下載文件中。

為了保證下傳的漢字字模不會重復,在數(shù)據(jù)庫中創(chuàng)建一個“漢字表”來存儲每個經(jīng)過篩選的漢字的信息。表中有兩個字段,一個用來存儲漢字的內(nèi)碼,另一個用來存儲該漢字字模在字庫下載文件中的偏移地址(終端程序可以通過某個漢字在字庫下載文件中的偏移地址來唯一確定該漢字的字模存放位置)。每得到一個漢字的內(nèi)碼時,先到漢字表中查詢表中是否已經(jīng)包含了該漢字,再決定是否進行提取和下載處理。

然后,處理程序逐個遍歷菜譜表、桌位表等數(shù)據(jù)表項來生成菜譜下載文件、桌位下載文件等。這些下載文件中涉及到的漢字,以該漢字的字模在終端下載字庫文件中的偏移地址來標識。這樣每個漢字可以用兩個字節(jié)唯一標識。

最后,處理程序?qū)⒁陨线@些下載文件通過串口下傳給終端,終端將下載文件的內(nèi)容保存在數(shù)據(jù)存儲區(qū)中,并記錄存放字庫下載文件數(shù)據(jù)區(qū)的起始地址,記為A。當需要顯示漢字時,終端程序先得到該漢字在下載文件中的偏移地址,記為B,然后計算出該漢字字模的存放位置(A+B),從此位置開始連續(xù)讀取32字節(jié),就得到了該漢字字模數(shù)據(jù),之后通過驅(qū)動液晶屏將漢字顯示出來。

3.需要注意的關鍵技術

3.1 漢字字模的提取

先說明一下在中文信息交換標準GB2312中涉及到的三個概念:區(qū)位碼、國標碼、內(nèi)碼。

中文國標字符集是一個94×94的矩陣,其中每一個漢字(包括數(shù)字、英文字母和標點符號)都是二維矩陣中的某個元素。這樣,每一個漢字都可以用一個二元組來表示(x,y)。其中,x是該字所在的行號,y為列號。

GB2312在此基礎上對矩陣進行劃分,分為94個區(qū),每區(qū)94位,x定義了該字所在的行號,y表示該字所在的位號,x和y均以二進制或十六進制表示。這就是“區(qū)位碼”,例如:“啊”字的區(qū)位碼為(0x10,0x01),表示位于16區(qū)第一位。于是漢字庫中的字模存放位置(相對于字庫文件頭的偏移地址)可以由區(qū)位碼計算得到:偏移地址=區(qū)碼×94+位碼。那么“啊”字的字模相對于字庫文件頭的偏移地址等于16×94+1=1505(十進制表示)。

但是許多低位數(shù)字已被其它領域所占用,比如:0x06表示通信確認回答標志。為了不與已經(jīng)存在的信碼相混淆,GB2312在每個區(qū)位碼上加上0x20,這樣形成的碼叫國標碼。例如:“啊”字的國標碼為(0x30,0x21)。

由于通用的ASCII字符的最高位為0,為了在計算機內(nèi)部和之間傳輸漢字時可以和ASCII碼區(qū)別開來,將表示漢字的兩個字節(jié)的最高位都置1。這樣,相當于在國標碼基礎上高低字節(jié)同時加了0x80,這就是上面提到的內(nèi)碼。比如:“啊”字的內(nèi)碼為(0xB0,0xA1)。在計算機內(nèi)部,用內(nèi)碼來唯一標識一個漢字。在程序中,通過調(diào)用系統(tǒng)函數(shù)取得某個漢字的ASCII字符表示,也就得到了這個漢字的內(nèi)碼。

在明白了內(nèi)碼和區(qū)位碼之間的關系后,我們可以根據(jù)某個漢字的內(nèi)碼計算得到該漢字的區(qū)位碼;再通過區(qū)位碼計算得到該漢字的字模在漢字庫表中的偏移地址;從此地址開始的連續(xù)32個字節(jié)就是該漢字的字模信息。

3.2 字模轉(zhuǎn)換

圖1中所示的漢字顯示與字模存放的關系是PC機中的字模存儲格式。而在單片機系統(tǒng)中,選擇不同的液晶驅(qū)動器要求有不同的字模存儲方式。比如我們在實際應用中,使用的是清華蓬遠科貿(mào)公司的HD61202液晶驅(qū)動器。圖5 指示了HD61202液晶驅(qū)動器所要求的字模存放與漢字顯示的關系。圖中標明了標出了第1、第2個字節(jié)和第31、第32個字節(jié)的存放位置。

 

造成漢字顯示與字模存放有這樣關系是因為不同的液晶驅(qū)動器有不同的掃描顯示方式。所以,為了能夠?qū)h字正確的顯示出來,針對不同的液晶驅(qū)動要做相應的字模轉(zhuǎn)化。字模轉(zhuǎn)化可以自編一個轉(zhuǎn)化函數(shù)來實現(xiàn),在寫入終端字庫下載文件前將32個字節(jié)的字模按位轉(zhuǎn)化為需要的格式,再按字節(jié)順序存入下載文件。

經(jīng)過轉(zhuǎn)化之后,“大”字的字模(32個字節(jié))變成:(32,32,32,32,32,32,160,127,0,64,64,32,16,12,3,0,160,32,32,32,32,48,32,0,1,6,8,16,32,96,32,0), 這就是存放在終端下載字庫中的字模格式。

參考資料:
1:《單片機應用系統(tǒng)設計》 何立民 北京航空航天大學出版社 1994
2:《漢字編碼標準與識別》
 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉