多语言配置显示装置的制作方法

文档序号:6394075阅读:329来源:国知局
专利名称:多语言配置显示装置的制作方法
技术领域
本实用新型涉及一种显示存储用的显示装置,特别是一种针对多语言的显示装置
背景技术
现有技术的嵌入式多语言显示有两种方式,一种是利用嵌入式系统自身的多语言字库,将翻译好的语言包如XML文件、数据库文件或者其他文本文件存入到嵌入式系统当中,利用操作系统本身的字库进行显示。其缺点是:多语言显示受嵌入式系统所运行的操作系统字库限制,加入嵌入式系统本身只可以有汉字,英文,葡萄牙语的字库,其他语言配置进去就会显示出乱码;翻译和测试困难,在产品出口之前,生产厂商必须要配有出口国家的专业翻译人员,如果翻译人员对专业了解不够,开发人员必须与翻译人员进行大量的沟通或进行培训,测试过程也存在这样的困难。另一种是利用位图点阵压缩的方法,将多语言生成位图,然后转换成矩阵点阵信息,根据每个像素点是否有像素生成二进制压缩文件格式存入系统,嵌入式系统通过解压二进制点阵信息,根据每条语句的位置读取点阵信息,是0还是I还原图像,最终还原点阵图片。其缺点是:因为二进制点阵信息由0和I组成,只能显示有和无,无法生成颜色信息;在有背景的情况下,因为二进制点阵将过渡的颜色也直接转换成了 “ 1”,而无法还原过渡的颜色,在文字边缘会产生锯齿感。
发明内容本实用新型的目的是提供一种多语言配置显示装置,要解决的技术问题是针对多语言显示,并提高显示效果。本实用新型采用以下技术方案:一种多语言配置显示装置,所述多语言配置显示装置由电脑和嵌入式显示模块板经USB传输电路连接构成;所述嵌入式显示模块板设有嵌入式主芯片,嵌入式主芯片分别连接USB传输电路、存储模块电路、视频信号解码器电路和显示电路。
本实用新型的嵌入式主芯片采用MP521芯片。本实用新型的电脑是个人计算机。本实用新型的显示电路是液晶显示电路.[0008]本实用新型的USB传输电路的USB5V接口经第81电阻与MP521芯片的UHVBUS管脚连接,USB传输电路的D-接口和D+接口为USB的差分信号接口,D-接口经过第62电阻与MP521芯片的USBHDM管脚连接,D+接口经过第63电阻与MP521芯片的USBHDP管脚连接。本实用新型的嵌入式主芯片经板对板连接器连接USB传输电路,板对板连接器设有连接器。本实用新型的连接器上设有I至30个插针。本实用新型的存储模块电路采用Nand Flash存储器芯片,其存储空间为128MX8bits。[0012]本实用新型的视频信号解码器电路采用视频信号解码器芯片ADV7180。本实用新型的显示电路由MP521的IXD输出管脚LDATAO至LDATA17构成。本实用新型与现有技术相比,利用电脑和嵌入式显示模块板,输入完全来自电脑的PC配置端,用户可以根据自己的需要任意输入要显示的文字的内容、字体和颜色信息,自行修改任何语言字库,嵌入式显示模块板读取多语言文件,根据配置颜色显示文字信息,在文字边缘,将背景色和文字颜色进行过渡,减少锯齿感,解决了依赖嵌入式显示模块自身字库和输入法影响多语言配置和显示的问题。

图1是本实用新型实施例采用的多语言配置显示系统工作流程图。图2是本实用新型实施例采用的多语言配置显示系统显示流程图。图3是本实用新型实施例采用的语言文件结构图。图4是本实用新型实施例采用的多语言配置显示系统结构图。图5是本实用新型的USB传输电路图。图6是本实用新型的板对板连接器电路图。图7是本实用新型的存储模块电路图。图8是本实用新型的视频信号解码器电路。图9是本实用新型的液晶IXD显示电路图。
具体实施方式
以下结合附图和实施例对本实用新型作进一步详细说明。本实用新型的多语言配置显示装置,由电脑和嵌入式显示模块板经USB传输电路连接构成。嵌入式显示模块板设有嵌入式主芯片,嵌入式主芯片分别连接USB传输电路、存储模块电路、视频信号解码器电路和显示电路。嵌入式主芯片经板对板连接器连接USB传输电路。显示电路连接显示屏,电脑是个人计算机PC,显示电路是液晶LCD显示电路。本实施例中,个人计算机PC采用戴尔DELL的0PTIPLEX380型台式电脑。个人计算机PC与嵌入式显示模块板通过USB连接。嵌入式主芯片采用台湾兆宏电子股份有限公司的Magic pixel MP521芯片。如图5所示,USB传输电路的USB5V接口经第81电阻R81与MP521芯片的UHVBUS管脚连接,USB5V接口是+5v电源接口。USB传输电路的D-接口和D+接口为USB2.0的差分信号接口,D-接口经过第62电阻R62与MP521芯片的USBHDM管脚连接,D+接口经过第63电阻R63与MP521芯片的USBHDP管脚连接。如图6所示,板对板连接器用于连接USB传输电路的接口,设有连接器CNl,连接器CNl上设有I至30个插针,连接器CNl可以直接插接在与该连接器相对应的30针的母座上。母座可以经过USB连接器、USB数据线与PC连接。连接器CNl的USB5V接口( I插针)与USB传输电路的USB5V接口连接。连接器CNl的D-接口(4插针)与USB传输电路的D-接口连接,连接器CNl的D+接口( 2插针)与USB传输电路的D+接口连接。PC将字库文件和显示配置文件数据,经过USB传输电路的数据线传送到板对板连接器CNl的D+接口(2插针)和D-接口(4插针)上。然后,该数据经过R62和R63、管脚USBHDP和USBHDM进入到MP521。MP521芯片将字库文件和显示配置文件数据信息储存到Nand Flash存储器中。如图7所示,存储模块电路采用Nand Flash存储器芯片U3,其存储空间为128MX8bits, U3的Mcc管脚与+3v电源连接,U3的Vss管脚与电源的地线连接。U3的第9管脚CE与MP521的FCEX接口连接,当该接口为低电平时,U3被MP521选中,即MP521可以从U3读取数据。U3的写使能端WE管脚与MP521的写控制端口 FWEX连接。U3的读使能端RE管脚与MP521的读控制端口 FREX连接。当操作者操作PC经过USB数据线将字库文件和显示配置文件数据发送给MP521后,MP521将会给FCLE管脚低电平,选中U3芯片,对U3写入数据。U3的输入/输出1/00至1/07接口分别与MP521的FDATAO至FDATA7连接。MP521选中U3芯片后,MP521根据Nand Flash存储器芯片U3的写数据时序,将MP521中的字库文件和显示配置文件数据通过FDATAO至FDATA7输出口,写入U3芯片中,即将字库文件和显示配置文件数据信息保存在了 U3芯片中。当MP521需要调用字库文件和显示配置文件时,MP521会根据Nand Flash存储器芯片U3的读数据时序,将U3中存储的数据通过U3的FDATAO至FDATA7输出接口传送到MP521芯片中。如图8所示,视频信号解码器电路采用视频信号解码器芯片U5ADV7180。U5的第22管脚AVDD接+1.8V电压,该管脚为U5内部的模拟电路提供电源。U5的第14、30管脚为U5内部的数字电路提供+1.8v电源。U5的第3管脚DVDDIO为U5的数字信号I/O 口提供+3.3v的电源。U5的第19管脚AINl是模拟的CVBS视频信号输入端。当U5的CVBS接口有CVBS视频信号接入时,U5将模拟的视频信号转换为相应的数字信号,然后经过U5的DO至D7I/0 口将数据传送到MP521的SDATA2至SDATA9I/0 口中。如图9所示,液晶IXD显示电路由MP521的IXD输出管脚LDATAO至LDATA17构成。MP521将8位的数字视频信号转换为红绿蓝RGB信号并驱动液晶IXD显示屏显示。当需要显示多语言文字界面时,MP521芯片将调用从PC中经过USB接口储存在U3芯片中的字库文件和显示配置文件数据,然后,通过MP521的IXD输出管脚LDATAO至LDATA17,将多语言文字显示在IXD屏上。如图4所示,本实用新型采用的多语言配置显示系统,设有电脑配置端和嵌入式系统,电脑采用个人计算机PC。PC配置端用于形成每条要显示的语言信息,语言信息为构成语言内容的语言字库信息,并配置每条要显示的语言内容的字体位置、颜色、长度、高度、字体和字形的显示配置信息。嵌入式系统用于从语言字库信息中找到要显示的语言内容,再按照显示配置信息还原成图片数据,为显示作准备。显示配置信息由操作人员在PC配置端设置,或PC配置端默认为设定的初始值。PC配置端设有字库编辑和预览模块、字库数据库存储模块、字库文件和显示配置文件模块。字库编辑和预览模块从字库数据库存储模块中编辑、读取、删除或预览每条要显示的不同语言的语句信息数据。字库编辑和预览模块的字库编辑模块修改字库数据库存储模块中每条语句信息的语句内容、显示字体位置、颜色、长度、高度、字体和字形。接受操作人员从与字库编辑和预览模块连接的输入设备输入、编辑或保存语句信息数据的指令,然后将语句信息数据保存到字库数据库存储模块,与字库编辑和预览模块的预览模块连接的显示设备显示预览出多语言的预览图片。字库数据库存储模块用于存储字库编辑和预览模块指令保存的语句信息数据,语句信息为语句内容、显示字体位置、颜色、长度、高度、字体和字形。输入的语句经预览界面显示,操作人员确认保存后,将语句信息数据按设定或指定的显示文件名生成语句信息,再将图片数据存储在字库数据库存储模块内。字库数据库存储模块接受字库编辑和预览模块发出的指令,将存储在字库数据库存储模块内的语句信息数据生成含有语言内容的语言字库文件(或称字库文件)和含有字体位置、颜色、长度、高度、字体和字形的显示配置信息的显示配置文件,经字库文件和显示配置文件模块USB传输至嵌入式系统;具体为字库数据库存储模块里面的语句信息数据,按预览图片中语句内容的每个像素点的颜色信息被生成十六进制或二进制格式的字库文件,供嵌入式系统调用,每条语句内容的像素大小可以根据需要调整,像素大小=像素宽度X像素高度,比如用于作为标题的语句像素高度比较大,显示像素可以是=128X64,而用于一般显示的语句高度不需要那么大,则显示像素只需要=128X32。在利用USB传输字库文件时,同时将字库数据库存储模块中的某条语句信息数据的显示信息经字库文件和显示配置文件模块被发送至嵌入式系统,或将数据存入安全数码卡SD卡(Secure Digital Memory Card)插入到嵌入式系统卡槽,显不信息为显不字体位置、颜色、长度、高度、字体和字形。字库数据库存储模块接受字库编辑和预览模块的增加、删除或修改指令,将语句信息数据添加到字库数据库存储模块的数据库中,进行更新保存。字库文件和显示配置文件模块是PC配置端的输出端,连接嵌入式系统的输入口,字库文件和显示配置文件模块通过USB将字库文件和显示配置文件输出到嵌入式系统的文件系统模块。字库文件和显示配置文件模块的字库文件模块根据字库编辑和预览模块的传输显示指令,将字库数据库存储模块中的语句信息数据生成十六进制或二进制格式的字库文件,然后字库文件和显示配置文件模块的显示配置文件模块将字库文件的序列ID号、在嵌入式系统连接的显示屏要显示的位置、颜色、长度、高度、字体和字形形成文本文件格式的显示配置文件,字库文件和显示配置文件模块将字库文件和显示配置文件发送给嵌入式系统的文件系统模块。嵌入式系统设有文件模块、多语言解图输出模块、显示模块。文件系统模块接收字库文件和显示配置文件模块传输来的字库文件和显示配置文件后,将其保存到嵌入式系统的文件系统模块的存储部分中。文件系统模块读取字库文件和显示配置文件,读取到显示配置文件中的一条显示语句的序列ID信息,根据该序列ID从字库文件中读取到十六进制或二进制格式字库文件的数据,然后向多语言解图输出模块发送显示命令,将字库文件的数据、显示位置、颜色、长度、高度、字体和字形信息发送到多语言解图输出模块。多语言解图输出模块接收到文件系统模块发送来的显示命令,接收文件系统模块发送来的字库文件数据、显示位置、颜色、长度、高度、字体和字形信息,按读出的每个十六进制或二进制格式字节的值就是每个像素点的颜色值的方式,转换为像素值,根据每个像素的颜色值,将显示配置文件的显示位置、颜色、长度、高度、字体和字形进行糅合,形成显示的图片数据,然后将这条语句的图片数据发送到显示模块。显示模块接收到多语言解图输出模块发送来的语句的图片数据,将语句的图片数据输出到LCD显示屏进行显示。本实施例的多语言配置显示系统,PC配置端设置在PC电脑内,嵌入式系统设置在嵌入式显示模块板Nand Flash的嵌入式主芯片内。PC采用XP或Windows7操作系统,嵌入式系统米用程序语目GCC4.4.0实现。字库编辑和预览模块从字库数据库存储模块中编辑每条要显示的语句信息的指令:
string Sql =
WordForm form = new WordForm();
form.Text = nid1.manyLanguage 1.look("cfg.form2.Update");
C urren 11 ndex = W ordG rid.C urrentCel 1.Row I ndex;
Currentscroilindex = WorclGrid.FirstDisplayedScroIlingRovvIndex;
TextID = WordGrid[0, WordGrid.CurrentCell.RovvIndexj.Value.ToString();form.ValueEn = WordGrid[2, WordGrid.CurrentCell.Rowlndex].Value.ToString();form.VaIueChs = WordGrid[l, WordGrid.CurrentCelI,RowIndex].Value.'I oString();form.ShowWords=WordGrid[3,
WordGrid.CurrentCe]!.RowIndex].Value.ToStringO;form.X = WordGrid[4, WordGrid.CiirrentCell.Ro\vIiidex].Value.ToStriiig();form.Y = VVordGrid[5, WordGrid.CurrentCel1.Rowlndex].Value.'roString();form.ShowFont = WordGrid[8, WordGrid.CurrcntCcl 1.RowIndcx].Valuc.ToStringO;form.FontSize = WordGrid[9, WordGrid.CurrentCell.Rowlndex], V e ToString();lbrm.length = WordGrid[i2, WoidCl ri d.C u nen !Ce 11.Ro w I ndex].V a I ue foStringO;form.heigth = WordGrid[[3,VVordGrid.CurrentCel1.Rowlndex],Vaiue.ToStringO;form.Spcacc Rn able=boo 1.Parsc( WofdGri d[6,
WordGrid.CurrentCel 1.Row I ndex].Vaiue.ToStringO);
lbrm.Space — WordGridp, WordGrid.CurreniCell.Rowlndex],Value.ToSliingO;form.Style = WordG rid [10, WordGrid.CurrentCei1.Rowlndex], Vaiue/1StringO;tbnn.ShowDialogO;if (form.ChangedeO)
{
Xstr = form.X;
Ystr= fom1.Y;
strFont = form.ShowFont;
si/c = ibrm.FontSize;
Length = form, leng th;
Height = form.heigth;
space = form.SpcaceEnabie;nSpace = form.Space; strStyle = form.Sty Ie;
Showtext = form.S ho w Words;字库编辑和预览模块从字库数据库存储模块中读取每条要显示的语句信息的指令:
string sql = "select * from textFont order by ID";
SqiExccutc(sql, rcf ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; H-十)
{
if (int.Parse(ds.Tabies|0].RowsTi]10].ToString()) != i + I)
{
MessageBox.Show(manyLanguagel.look("cfg,msg 10") + (i + l).ToString());return;
}`WordGrid.Rows.Add(threeStr(ds.Tables[0j.Rows[ij[0].ToStnng()),ds.Tab!es[0].Rovvs[i][l j,
ds.Tables[01.Rows[i][2],ds.Tabies[0j.Rows[i][3], ds.Tables[0].Rows[ij|:4]5ds.Tables[0].Rovvs[i][5], ds.Tables[0].Rovvs[i][6], ds.Tables[0].Rows[i][7],ds.Tables[0],Rows[.1][8], ds.Tables[0].Rows[i][9], ds.Tabies[0].Rows[ij[ 10],ds.Tables[0].RowsfilH I], ds.TabIesfO].Rowsfi] [12], ds.Tables.Rows [i ] [13 ]);
}字库编辑和预览模块从字库数据库存储模块中删除语句信息的指令:string sql="delete*from textFont where ID= ‘” +TextID+`[0055]SqlExecute (sql, ref ds);字库编辑和预览模块从字库数据库存储模块中预览每条要显示的语句信息的指令:[0057]
Bitiimp minMap = new Bitmap(int.Parse(Length)5 intParse(HeiglU));
Bitmap minMapShow = new Bitmap(int.Parse(Length), int.Parse(Height));
Bitmap max Map 二 new B i Un ap (i 111.P ar s e (L en g th) * 2, int.Parse(Height) * 2);if(space)
I
md1.textMod.getBitmap(ref minMapShow, ref miniMap, ref maxMap, Showtext,int.Parse(Xstr), int.Parsef Ystr), strFont, int.Parse(size): strStyle,uit Parse(nSpace), ref m_nlelt, int.Parse(Length), int.Parse(Height) / 2,fontcolor.Color.White);
}
lKc
I
in d 1.Te x t.M 0 d.ge t F i tin a p (ref minMapShow, ref minMap, ref max Map, Showtext, int..Parse(Xstr), int.Parse(Ystr), strFont, int.Parsefsize), strStyle, ref m_nleft, int.Parse(1.ength), int.Parse(Height) / 2, fontcolor, Color.Whitc);
}
remark = ,H';
remark = md1.textMod.mapToByte(ref minMap);md1.m read.Clos e();Sql = "update textFont set Chinese= + form.ValueChs + english-" +form.ValueEn 一.0ther=”* + Showtext + X=" + Xstr + ".\= + Ystr +spacing^=" + space +
”,spacing='" + nSpace + '",font="' + strFont + "!,size=" + size + ",fontStyle='" +strStyle + ”',remark='" + remark +
,”,length=”’ + Length + '",height-" + Height +where ID=" + TextID +md1.m_read.Close():md1.SqlExecute(SqI; ref ds);
Sql = "select ^ from textFont order by ID";md 1.Sq I Exec ute( SqL ref ds );md1.mb DateBasechanged = true;md1.m_1.ead = md1.SqIGetReader(Sqi);md1.updataDsToGiid(ref WordGrid, ref ds);
WordGrid.CiirrentCe11 = WordGrid.Rows [Currentlndex].Cel I s;
WordG i i d.F i rstD i sp iayed Scrol I i ng Ro vv I ndex = C urrentscroll i ndex;
TextChangeToControi(int.Parse(TextlD), minMapShow);字库数据库存储模块存储字库编辑和预览模块指令保存的语句信息的指令::`StreamWriter sw = new StreamWriter(fileName, false, Encoding.DefauIt);
sw.Write(Begin);
sw.Write(devcstr);
sw.Flush();`
sw.C1se();字库文件和显示配置文件模块将字库文件和显示配置文件输出到嵌入式系统的文件系统模块的指令:
FileStream fs = new FileStream(fi IeName, FileMode.Create, File Access.Write); WordGrid.Sort(WordGrid.Coluinns[0], ListSortDirection.Ascending); string FileDate = long startaddress = 0; int i = 0; int Count = 0;
byte[] datebyt = new byte[8]; int.Width = 0; int Height = U
for (i = 0; i < WordGrid.Rows.Count; i++)
{
Width = (int)(WordGrid[32, i],Value);
Height = (int)(WordGrid[13, i],Value); if (WordGrid[11, i].Vaiue.ToStringO ==丨丨
WordGrici[lI, i],Vaiue.ToString0.Length != Width * Height * 2)
I
continue;
}
else Count十十;}
for (1-0; i<8; i+十)
{
datebyt I i | = Oxff;
}
datebyt[0] = (byte)(Count / 256);datebyt[I] — (byte)(Coum % 256);startaddress = (Count + 3) * 8;fs.Writc(datcbyt, 0,8);
for (i = 0; i < WordGlid.Rows.Count; i++)
{
Width:.(int)( WordGrid[12, i],Value);
Height = (int)(WordGrid[! 3, i],Value):1f (WordGridI 11, i|.Vaiue.ToStringO == ||
WordGrid[11,i].Valuc.ToString().Length != Width * Height 年 2)
{
continue;
}
datcbyt.[0] = (bytc)(int.Parsc(WordGrid[ 12, i].Vaiue.ToStringO)丨 256);datebyt[l] = (byte)(int.Parse(WordGrid[ 12, i].Value.ToString()) % 256);datebyl[2] 二 (b yte)(int.Parse(WordGi id[ 13, i],Vaiue.ToStringO) / 256);datebyt[3] = (byte)(int.Parse(WordGiid[ 13, i].Vaiue.ToString()) % 256);
datebyt[4] = (byte)((startaddress / 65536) / 256); datebyt[5] = (byte)((startaddrcss / 65536) % 256); datebyl[6] = (byfe)({startaddress % 65536) / 256); datebyt[7] = (byte)((startaddress % 65536) % 256); fs.Write(datebyt, 0, 8);
startaddress += WordGridj 11, i].V a I u e.To S t r i ng ().Le i igth / 2;
}
for (i = 0; i < 8; i++)
{
datebyt[i] = Ox ff;
}
fs.VVritc(datcbvt, 0, 8); fs.Write(datebyt, 0, 8);
for (int j = 0; j < WordGrid.Rows.Count; j++)
{
md1.ShowProcess(md1.manyLangijagel.1ook("cfg.fomi 1.Export"), ((j: I) * IOO /WordG ri d.Rovvs.C cm nr));
FiieDate = WordGrid[I I, j],Vaiue.ToStringO;byle[] bulT- new byle[FileDale.Length / 2];for (i = 0; i < FileDate.Length 2 !++)
{ buff[i] = (byte)(int.Parse(FileDate.Substring(i * 2, 2),
System.Giobalization.NumberStyles.HexNumber));}
fs.Write(bufr, 0, buff.Length);
}
fs.Close();
md.1_ShowF)rocess(''”,I) return true;文件系统模块读取字库文件和显示配置文件的指令mpx_DriveChange(255); //设置文件到FLASH主分区运行
rnpx_DirRootChange();
if(g—StSetupMenu..LanguageType ==0)
{
M ultiLangOpen{ "WcfgWchina.bin");
MultiLaiigOpen VDP( ’\\cfg\\VDPChinese.bin”);
}`else if(g_stSetupMenu.LanguageTvpe ==1 )
{
MultiLangOpen(',\\cfg\\english.bin'');
MultiLangOpenV[)P(!,V\cfg\\VDPEnglish.bin");}
else
{
MultiLangOpen("\\cfg\\china.bin");
Multi LangOpen V D P( "WcfgWVDPChi nese.bi n'!);
}[0069]
conCounl-0;
con—control=con—controll;itTinitFileToConiList(object/'\\ctg\\al23.txt.'')<100)
{
DPrintfCanrrtxtEn-O1-");
conCount=0;
con_control=con_controlT;
initF.1leToComL,ist(objt'eC\\cfg\.\al2301d.txt");
conCount=conCount;
con_control=con_controlT; //控件的地址和类型管理的数组指向 initFileSavef \\efg\\al23.txf');//把旧的保存为新的,替换掉
}
conCoimt I =ConCount;
ConCount=O;`
con_control=con_contro1Scene;
it'(initFiIeToComList(object”\\d’g\\AL23scene.txO <100 )
{
DPrititfr八L.23scene.txt Error");conCount-0 con contro!=con controlScene; initF.1lcToComl..1st(ohject:,n..\\cfg.\\AL23sccncOld.rxt''); conCountScene=conCount; con_coiHio1-con_coiilrolScene;initF ileSave( trWcfgWA L23 scene.txt");
}
conCountScene=conCount;文件系统模块向多语言解图输出模块发送显示命令的指令:
void MuItiLangOpen(U08 *fileName)
{
S32 retCode;
U32 fileSize;
U 16 uniName[33];
U08 ascName[33];
mpx UtiIAsc2Uni(uniName, fileName 32) //"WcfgWaa.txt"retCode = mpxDirNodeLocate(uniName);if (retCode !=NO_ERR)
{` DPrintf("%s was not found !!!" ,fileName); return;
}
{
phraseFileHandle = mpx_FileOpen(); mpx_FileRead(phraseFiieHandle, ascName, 2); phraseCount=ascNaine[0]*256+ascName[l];
DPrintfCphraseCount %d 0 od %d" ,ascName ,ascN ame [ l],phraseCount);[0073]
}
}多语言解图输出模块读出的每个十六进制字节的值,转换为像素值,根据每个像素的颜色值,将显示配置文件的显示位置、颜色、长度、高度、字体和字形进行糅合,形成显示的图片数据的指令:
void WriteFont U 16(U08 *Font, U16 postion—x,U16 postion_y,U16 postion_w,U16postion_h,U 16 color)
{
U08 window—index;
U32 frarae start;
S16 fb—width;
Li 16 *dst_buf;
U16 R1=0,G1=0,B 1=0;
U32 st—buf;
U08 tmp[8]-{0x01,0x02,0x04,0x08,Ox10,0x20,0x40,0x80};
Rl = color / 0X800;
Gl = (color % 0X800) / 0X20;
BI = co!or % 0x20;
U16 i j,k,x,temp_x,temp_y;
I'OS rl;
U32 seek;
U16 TMP-0;
window」ndex = mpx —Gdc FrameB uffer Act i veGet(O);frame—start=
nipx_GdcFramcBufTcrAddi'Gct(1.CD_PANH1._ACTIVH,window_indcx);
fb—width = mpx—GdcFrameBufferWidtiiGet(IXD—PANEL—ACTIVE);
temp_y = postiony;
for(i=0;i<postion h 1+ 卜)
{
dst buf = fi amc start-^- ((postion_y + i)*fb—width*2 post.1on_x*2);foitj=0;j<postion_w ;j++)
{
if(*Font!=0)
{
//^Font-^Font % 32; if(吓ont > 26 )
{
di>t but= color;`
}
else if(*(Font+1 )==0) //和右边的点对比 {
^dsLbu1-MixColouit4lIdsLbuJ+1), Rl ,GI,B I^Foni);
}
else if(*(Font-l)==0) //和左边的点对比
{
*dst—buf=MixColour(*(dst—buf-1), RLGLBl ,Font);
}
else if(*(Font-postion_w)=0) //和上边的点对比
{
*dst buf=MixColour(*(dst buf-fb width), Rl,Gl,Bl,*Font);
}
else if(*(Font+postion—w)==0) //和上边的点对比{
*dst—buf=MixColc)ur(*(dst—but'+fb—width), Rl,Gl,Bl,*F0.nt);
}
else if(*(Font+postion_w+1)==0) //和右下边的点对比{
i5iClstJxif=M ixCoiour(*(dst—bufi fb—width I I), Rl,Gi ,BI ,ifiFont);
}
else if(*(F ont+postion_w-1)==0) //和左下边的点对比
{`
*dst_buf=MixCoioin(*(dsl_biii^-rb_\vidth-1), RLGl,B!产Font);
}
else if(5i!(Font-postion_w+l)=0) //和右上边的点对比{
*dst—huf=MixCo!oiir(*(dst—huf-fb—width+1 ),RI ,GI ,B I Font);
}
else if(*(Font-postion—w-1 )=0) //和左上边的点对比
{
*dst_buf=MixColour(*(dst_buf-fb_width-l), Rl,Gl,BI,*Font);
}
}
dst—buf++;
Font++;
}
}
U16 MixColour(Lf32 sColour,U 16 RI,U16 G1,U16 BI,U16 BReference)
{
U32 kCoiour=0;
Ul 6 R=O5G=O,B=O; R = sColour / 0X800;
G = (sColour % 0X800) / 0X20;
B = sColour % 0x20;
R=(R*(32-BReference)十RI *BRefere.nce) 5; G=(G:ii(32-BReferenc`e)^G I *BReference) 5; B=(B*(32-BReference)+B I *BReference) 5;.//R=32-(64-R-Rl)/2;
//064-( 128-G-GI )/2;
//B=32-(64-B-B I )/2;return R*0X800+G*0X20+B;
}多语言解图输出模块将语句的图片数据发送到显示模块的指令:
void Mu!tiLangPrint(U 16 ID,U16 postion—x,U16 postion—y,U 16 color)[0081]
{
U32 seek=0,leg;
H I 6 indcxCH[4],width,height;
U32 tempBufferAddr; i J'( (ID>phi'aseCounl)]|(ID-—0))
{
DPrintf("Can't print this word,ID=%d",ID); return;
}
seek=ID*8;//读索引区,得到图片宽度,高度和位置信息
mpx FileSeekiphraseFiIeHandle, seek, SEEK SET); mpx_FiieRead(phraseFileHandle, indexCH, 8); width =indexCHL0J; hci ght=indexCH[ I ];
seek=:1ndexCH[2]*0xl0000+indexCH[3]; leg-vvidtli * heighL;
mpx_FileSeekfphraseFileHandle, seek, SEEK SET);
//tempBufferAddr = malloc(leg);
//DPrintiTleg %d %d",widthjieight);
//DPrintf(''%d,%d.%c!,%d,%d'', I D,vvidth,height,seekjeg); tempBufferAddr = (U32) m px_M a 11 o c (i eg); mpx_FileRead(phraseFileHandle, (U08 >:i)tempBufferAddt\ leg);
WriteFontJJ 16( (1..116*)tenipBufferAddr,postion_x,postion_y,vvidth,height,coior); mpx_Free((void *) tempBufferAddr);
}在PC配置端,字库编辑和预览模块首先利用PC端Windows操作系统的抗锯齿AntiAlias效应,生成显示文字的预览图片,保存时将文字转换为纯蓝色,底色转换成纯黑色,提取每个像素点红绿蓝(R,G, B)的“B”值,按照十六进制一个字节进行保存成字库文件,背景色为黑色(O, O, O),文字显示颜色为蓝色(0,O, 255),将24位色的像素点转换为嵌入式系统支持的16位色(R5位,G6位,B5位),计算方式为“R”保留高5位字节,“G”保留高字节6位,“B”保留高字节5位,那么纯蓝色的16位色的值为(0,0,31) “B”的值为31,而底色黑色的值为(O, O, O), “B”的值为O。在文字边缘由于Window的抗锯齿效应,像素点的颜色将会在蓝色与黑色之间,因此“B”值会在O和31之间。假如一条语句图片的某个边缘像素点的颜色24位色的值是(0,0,224),得到16位色的值为(0,0,28),那么将“B”值“28”按十六进制一个字节“1C”进行保存,如果一条语句的图片大小为128像素X32像素,由此得出这条语句占用空间为:显示的像素长度128X显示的像素高度32=4096个字节。在字库文件头部,每条语句按序号都有一个ID号,里面有一条语句的起始地址,像素长度,像素高度信息,嵌入式系统的文件系统模块在读取字库文件的时候将会根据每条语句的首地址和本条语句的占用空间,来获取每条语句的图片信肩、O在嵌入式系统的文件系统模块,有两个文件,一个是显示配置文件主要是配置要显示的语句ID号,显示位置,文字显示颜色,另一个是上面生成的字库文件。假如读取配置文件得到ID号为“2”的某条语句,根据ID从字库文件查找到ID为“2”的起始地址为“5616”,像素长度为128,像素高度为32,文字显示颜色为Cl。那么5616至9712这段空间就为此语句的像素信息。嵌入式系统的文件系统模块获取到显示此语句的背景颜色为C2,遍历从字库文件获取的像素空间,如果像素点的值为31,该像素的显示颜色就是Cl,如果像素的值为O则该像素显示颜色为C2,如果介于之间,将像素的值定义为Alpha按如下公式[(C1-C2) XAlpha]/32+C2进行计算,得到混合后的像素值,每个像素点(R,G,B)分别按以上公式进行计算,然后生成混合后的实际像素颜色。Void PrintText(byte * pixels, //获取的字库的像素空间 unsigned int length,//字库空间总长度
unsigned int textcolor, //显示的文字颜色 unsigned int background) //获耳又的背景色
{
unsigned char i = O;
for (i = O; i < length; i++ )
I
if (pixels[ij == M ;
{
Printpixel(textcolor, i); //打印像素为文字颜色
}
else
if (pixe!s[ij == Oj
IPrintpixelCbackgroimd, i); //打印像素为背景颜色
}
tlst
{
unsilined char r = O O
unsigned char g = 0; unsigned char b = 0; unsigned Alpha = pixels[i];
r = (getR(textcolor) - getR(background))*Alpha ) 5 + geiR(backgiOund);
g = (getG(textcolor) - getG (backgro und)) * Alpha ) 5 + getGi background);
b = (getB(textcolor) - getB (backgrou nd)) * AI pha )少-5 + getB (backgro und);
Printpixel(colorformrgb(r, b, g), i);//打印像素为混合后的颜色` }
}
}如图1所示,本实用新型采用的多语言配置显示系统工作时,按以下步骤进行:一、首先由操作人员定义基本的多语言显示内容,基本的多语言显示内容为语言字库信息和显示配置信息,其中,中、英文语言字库信息要先设置到字库数据库存储模块中,为用户提供基本翻译对象,或者直接使用。二、操作人员根据每条语句的中文或者英文内容,翻译或者选择想要显示的语言内容。如果仅需要显示中文或者英文,操作人员只需要将中文或者英文语句从字库数据库存储模块复制到预览模块需要显示的对话框内。三、操作人员调整每条语言的显示配置信息,如:语句的字体,间距,字形,大小,颜色,显示宽度,显示高度,显示位置,预览成功后操作保存。四、字库数据库存储模块按设定或指定的显示文件名,生成带有多语言语句信息的字库文件,字库文件和显示配置文件被保存在字库数据库存储模块中,文件结构为十六进制或二进制格式,十六进制格式如图3所示。五、操作人员将字库文件和显示配置文件传输到嵌入式系统中。六、如图2所示,嵌入式系统打开字库文件和显示配置文件,根据字库文件语句索引和显示配置文件的显示文字索引,得到起始地址,再根据文件头定义的每条语句在文件中的位置和长度读取显示信息,即像素颜色。七、从嵌入式系统中获取多语言显示区域背景的颜色值。八、在文字显示边缘的颜色值与背景颜色进行糅合,将背景的红绿蓝RGB值,与要显示文字的颜色RGB值进行混合计算,即混合颜色,再按照计算后的值进行显示。本实用新型采用的系统在Windows下使用,用户可以根据Windows操作系统的任意字库和输入法输入用户想要显示的语言和字体,解决嵌入式系统字库输入法不能满足各国语言的限制。在本实用新型采用的系统可以看到每条语句的显示信息,用户可以进行修改和预览内容,调节字体,以及其他显示信息:如字体,字形,颜色,显示位置,长度,宽度,间隙。系统根据用户调整的参数生成位图显示出来,然后将整个位图点阵的颜色值转换成一个字节的十六进制的点阵信息保存。保存的语言文件包含语句条数,每条语言起始的地址,长度,颜色,位图的像素信息。显示端可以根据语言的编号去查找该语言的显示信息并显
/Jn ο嵌入式系统读入多语言文件,根据序号查找语句的显示信息,将配置的语言信息读入到内存中,包括位图大小,显示颜色,位图内容。将位图的每个像素与显存的背景像素进行糅合,优化文字的边缘效果,效果比现有技术的嵌入式显示模块自带的字库和直接用二进制位图点阵显示方法灵活,显示效果大为清晰。本实用新型采用的系统在MP521芯片上运行,显示效果显著。
权利要求1.一种多语言配置显示装置,其特征在于:所述多语言配置显示装置由电脑和嵌入式显示模块板经USB传输电路连接构成;所述嵌入式显示模块板设有嵌入式主芯片,嵌入式主芯片分别连接USB传输电路、存储模块电路、视频信号解码器电路和显示电路。
2.根据权利要求1所述的多语言配置显示装置,其特征在于:所述嵌入式主芯片采用MP521芯片。
3.根据权利要求2所述的多语言配置显示装置,其特征在于:所述电脑是个人计算机。
4.根据权利要求3所述的多语言配置显示装置,其特征在于:所述显示电路是液晶显示电路.
5.根据权利要求4所述的多语言配置显示装置,其特征在于:所述USB传输电路的USB5V接口经第81电阻(R81)与MP521芯片的UHVBUS管脚连接,USB传输电路的D-接口和D+接口为USB的差分信号接口,D-接口经过第62电阻(R62)与MP521芯片的USBHDM管脚连接,D+接口经过第63电阻(R63)与MP521芯片的USBHDP管脚连接。
6.根据权利要求5所述的多语言配置显示装置,其特征在于:所述嵌入式主芯片经板对板连接器连接USB传输电路,板对板连接器设有连接器(CNl)。
7.根据权利要求6所述的多语言配置显示装置,其特征在于:所述连接器(CNl)上设有1至30个插针。
8.根据权利要求7所述的多语言配置显示装置,其特征在于:所述存储模块电路采用Nand Flash存储器芯片(U3),其存储空间为128MX8bits。
9.根据权利要求8所述的多语言配置显示装置,其特征在于:所述视频信号解码器电路采用视频信号解码器芯片(U5) ADV7180。
10.根据权利要求8所述的多语言配置显示装置,其特征在于:所述显示电路由MP521的LCD输出管脚LDATAO至LDATA17构成。
专利摘要本实用新型公开了一种多语言配置显示装置,要解决的技术问题是提高显示效果。本实用新型的多语言配置显示装置,由电脑和嵌入式显示模块板经USB传输电路连接构成;嵌入式显示模块的嵌入式主芯片分别连接USB传输电路、存储模块电路、视频信号解码器电路和显示电路。本实用新型与现有技术相比,利用电脑和嵌入式显示模块板,输入完全来自电脑的PC配置端,用户可以根据自己的需要任意输入要显示的文字的内容、字体和颜色信息,自行修改任何语言字库,嵌入式显示模块板读取多语言文件,根据配置颜色显示文字信息,在文字边缘,将背景色和文字颜色进行过渡,减少锯齿感,解决了依赖嵌入式显示模块自身字库和输入法影响多语言配置和显示的问题。
文档编号G06F17/30GK202929611SQ201220525238
公开日2013年5月8日 申请日期2012年10月15日 优先权日2012年10月15日
发明者章德明, 陈春祥, 姚旭 申请人:深圳市视得安罗格朗电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1