收藏 分销(赏)

串口触摸屏的设计与实现.pdf

上传人:自信****多点 文档编号:539734 上传时间:2023-11-27 格式:PDF 页数:5 大小:1.48MB
下载 相关 举报
串口触摸屏的设计与实现.pdf_第1页
第1页 / 共5页
串口触摸屏的设计与实现.pdf_第2页
第2页 / 共5页
串口触摸屏的设计与实现.pdf_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、wwwele169com|93应用技术串口触摸屏的设计与实现吴艳玲,周岩,王志刚,章良芳(河北汉光重工有限责任公司,河北邯郸,056017)摘要:可编程触摸键盘在显控台上的应用已经非常普遍,且可编程触摸键盘的销售情况比较乐观,为拓展产品的功能、打破产品中的技术壁垒,在原JW06105型可编程触摸键盘的结构尺寸基础上,通过更换软件运行平台、调整设备的通讯方式等手段满足不同条件下用户要求,并在一定条件下替代JW06105型可编程触摸键盘应用于各标准台上,销售前景良好。本文介绍了可编程触摸键盘的硬件组成及工作原理,详细讲解了该模块开发的软件设计,软件的设计原则、软件环境、软件组成和软件功能,对实现的

2、类进行一一分析研究。本文采用串口通信接口方式,在QT环境下实现了可编程触摸键盘应用程序的开发。关键词:串口;可编程触摸键盘0 引言可编程触摸键盘在多功能标准显控台上的应用已经非常普遍,且可编程触摸键盘的销售情况比较乐观,为拓展产品的功能、打破产品中的技术壁垒,在原来型号可编程触摸键盘的结构尺寸基础上,通过更换软件运行平台、调整设备的通讯方式等手段满足不同条件下用户要求,并在一定条件下替代原来型号可编程触摸键盘应用于各标准台上,销售前景良好。1 产品组成和工作原理 1.1 产品组成可编程触摸键盘的组成包括结构组件、液晶盒组件、控制板组件和接口器件等。(1)液晶盒组件部分包含前面板、液晶屏、屏蔽丝

3、网玻璃组成;(2)控制板组件包括核心控制板卡组成;(3)接口器件包括电源接口和信号接口插座;(4)结构件包含面板、后框架组成。图 1可编程触摸键盘分解图 1.2 产品工作原理产品工作原理图如图 2 所示。该设备具备两组对外接口,分别为 RS232 串口信号及电源接口、USB 调试接口。当调试时,可编程触摸键盘通过 USB 调试接口进行调试。当正常工作时,可编程触摸键盘通过 RS232 通信方式控制显示传输的图形、文字或按键等信息。W1 线缆:核心主板输出接口 XP1 的 LVDS 信号线缆与 LED 显示屏的输入接口相连接,实现显示功能;W2 线缆:核心主板输出接口 XP1 的供电线缆与 LE

4、D 显示屏输入接口相连接,给 LED 显示屏提供电压;W3 线缆:通过对外接口的 XS1 外部电源与核心主板的输入接口 XP2 相连接,实现外部供电;W4 线缆:通过对外接口的 XS1 外部电源与电阻屏的主控板相连,实现外部供电;W5 线缆:电阻屏主板的输出接口与五线电阻屏输入口相连,实现通信功能;图 2可编程触摸键盘工作原理图94|电子制作2023 年 7 月应用技术W6 线缆:核心主板输出接口 XP5 与五线电阻屏输入接口XP4 相连接实现串口通讯;W7 线缆:外部主机与核心主板XP6 相连,实现通信;W8 线缆:核心主板接口 XP7 与对外接口的 XS1 相连接,实现复位。液晶盒组件由屏

5、蔽丝网和液晶原屏粘接组成,主要作用为:(1)图形显示功能;(2)屏面板加固功能;(3)电磁屏蔽功能;(4)减小镜面反射率。核心控制板主要作用如下:(1)接收上位机发送的控制指令,解析报文并将报文中的图形、文字等信息转化为显示信号;(2)接收触摸屏指令,并判定触摸位置是否符合要求;(3)与上位机进行实时交互,完成设备的在线诊断等故障诊断功能。2 软件设计软件驱动设计支持 Vxworks、道系统版本 6.0、中标麒麟操作系统 4.0、Vxworks 及 WindowsXPE 操作系统。可编程触摸键盘可通过 RS232 接口与主机相连,主机通过应用程序发送指令,指令通过可编程触摸键盘的驱动程序传递报

6、文至核心控制板,核心控制板解析主机发送的报文,并将报文中的图形与文字信息显示在显示屏上。2.1 软件配置列表(1)可编程触摸键盘底层应用程序;(2)设备驱动程序;(3)中间件程序;(4)上位机应用程序。2.2 协议要求(1)以通用软件开发规范为准则;(2)采用容错、冗余等措施,确保软件的可靠性、安全性和健壮性;(3)采用由顶向下、层次化、模块化结构设计方法。2.3 开发工具的选用应用 QT4.8.4 开发平台,遵循 RS232 通用协议。编程语言采用 C、C+语言实现可编程触摸键盘的嵌入式应用软件开发。2.4 底层应用软件的开发可编程触摸键盘的软件开发采用基于优先级的抢占式多任务调度策略;使用

7、二进制信号量来实现任务间的同步与互斥;使用消息队列和管道来实现任务间的通讯;编程语言使图 3可编程触摸键盘软件工作流程wwwele169com|95应用技术用 C/C+程序设计语言,采用双缓存技术进行图形绘制、图片处理功能的开发;应用软件可以根据需要进行扩充修改。3 底层应用软件的实现可编程触摸键盘具有强大的作图和显示功能,能够实时、直观、准确地获取丰富的系统状态和目标信息;能够实时进行故障定位,并向用户实时反馈可编程触摸键盘的运行状态。它将兼容了原有可编程触摸键盘应用软件的所有功能。其软件框图如图 4 所示。图 4可编程触摸键盘软件框图TPKCore:触摸屏核心类,目前包含 TPKPage

8、类、PConnet 类、Graphic 类的实例,及通信线程的具体实现;TPKPage:页面处理类,包含页面的各种参数,背景颜色、是否使用、是否显示等等;实现其功能的部分函数定义如下所示:private:boolm_bIsUsed;boolm_bIsShow;boolm_bIsClear;unsignedintm_unRGB;CPTKButtonm_PTKMapBtnARY_BTN_MAX;public:QImagem_image;voidSetRGB(unsignedintunColor);unsignedintGetRGB(void);voidSetUsed(boolbUsed=TRUE)

9、;boolGetUsed(void);voidSetShow(boolbShow);boolGetShow(void);voidSetClear(void);boolGetClear(void);voidSetBTN(CPTKButtonPTKBtn);voidDelBTN(int&nID);voidCreateBtmp(constint&nWidth,constint&nHigh);CPTKButton*GetBTNByID(intnID);CPTKButton*GetBTNAdr();CPTKPage(void);CPTKPage(void);像获取按键 ID 设置按键等功能的部分代码在

10、QT 开发环境下具体实现如下代码所示:CPTKButton*CPTKPage:GetBTNByID(intnID)CPTKButtontmpBtn;if(nID=ARY_BTN_MAX)returnNULL;elsereturn&m_PTKMapBtnnID;voidCPTKPage:SetBTN(CPTKButtonPTKBtn)CPTKButtontmpBtn;intnID=PTKBtn.GetID();m_PTKMapBtnnID=PTKBtn;PConnect 类:通讯管理,主要包括报文的解释;在 QT 中并没有特定的串口控制类,使用第三方写的qextserialport 类。首先设置

11、串口参数,如:波特率,数据位,奇偶校验位,停止位,数据控制流控制,再设置串口号,打开串口等功能。实现其部分功能代码如下所示:PortSettingsm_set,m_set1;m_set.BaudRate=BAUD115200;m_set1.BaudRate=BAUD9600;m_set.DataBits=DATA_8;m_set1.DataBits=DATA_8;m_set.Parity=PAR_NONE;m_set1.Parity=PAR_NONE;m_set.StopBits=STOP_1;m_set1.StopBits=STOP_1;m_set.FlowControl=FLOW_OFF;

12、m_set1.FlowControl=FLOW_OFF;m_set.Timeout_Millisec=2;m_set1.Timeout_Millisec=2;96|电子制作2023 年 7 月应用技术m_pPort=newQextSerialPort(.com2,m_set,QextSerialPort:Polling);m_pPort1=newQextSerialPort(.com7,m_set1,QextSerialPort:Polling);qDebug(m_set1.Timeout_Millisec=%dn,m_set1.Timeout_Millisec);m_pPort-open(Q

13、IODevice:ReadWrite);m_pPort1-open(QIODevice:ReadWrite);报文解析,例如:根据可编程触摸键盘通信协议要求创建按键报文解析部分代码如下所示:intCPConnect:ML_SOCM_CreateCommnKey(char*pchBuf,int&nPage,CPTKButton&tpkBtn,constint&nlen)QRectrect;nPage=pchBuf10;tpkBtn.SetID(pchBuf11);rect.setLeft(GetInt(pchBuf+12);rect.setTop(GetInt(pchBuf+14);rect.s

14、etWidth(GetInt(pchBuf+16);rect.setHeight(GetInt(pchBuf+18);tpkBtn.SetPTKBtnRect(rect,GetRGB(pchBuf+21),GetRGB(pchBuf+24),GetRGB(pchBuf+27);tpkBtn.SetLightRGB(GetRGB(pchBuf+30);t p k B t n.S e t S t r M s g(p c h B u f+3 7,(i n t)pchBuf36,GetRGB(pchBuf+33);tpkBtn.SetKeyAttr(int)pchBuf20);returnN_PT_C

15、RTBTN;Graphic 类:绘图类,这些函数主要完成触屏的图形绘制的所有工作。完成触摸屏绘制工作的部分函数定义程序如下所示:例 如intis_chinese(charp)实 现 输 入 的 字 符 是 否 是 中文;voidTouchKey_CharShow(QPainter*p,CPTKButton*pPTKBtn)实现按键字符在哪个页码上显示按键。intis_chinese(charp);v o i d To u c h K e y _ C h a r S h o w(Q Pa i n t e r*p,CPTKButton*pPTKBtn);void CharPosition(shor

16、t CharRows,shortCharRow,shortclength,CPTKButton*pPTKBtn,short&stCharX,short&stCharY);voidShowChar(QPainter*p,shortsALLlen,shortclength,unsignedchar*ShowCharSz,shortcleft,shortchigh,CPTKButton*pPTKBtn);voidInitDashVal(constint&nVal=0);voidInt2Bin(unsignedintunValue,floatfArray);voidDrawTransparentRec

17、t(QPainter*p,constQRect&rect,constunsignedint&color);voidDrawTransparentEllipse(QPainter*p,constQRect&rect,constunsignedint&color);voidDrawTransparentPolygon(QPainter*p,QPointF*ptAry,constint&nLen,constunsignedint&color);voidDrawTransparentArc(QPainter*p,constQRect&rect,constint&nStartAngle,constint

18、&nEndAngle,constunsignedint&color);voidDrawEllipse(QPainter*p,constQRect&rect,constunsignedint&colorEdge,constunsignedint&colorFill);/画椭圆voidDrawLine(QPainter*p,constQPoint&ptA,constQPoint&ptB,constunsignedint&color);voidDrawPolygon(QPainter*p,QPoint*ptAry,constint&nLen,constunsignedint&colorEdge,co

19、nstunsignedint&colorFill);voidDrawPie(QPainter*p,constQRect&rect,constQPoint&ptStart,constQPoint&ptEnd,constunsignedint&colorEdge,constunsignedint&colorFill);voidDrawCommKey(QPainter*p,CPTKButton*pPTKBtn);voidDrawPicKey(QPainter*p,CPTKButton*pPTKBtn);voidDrawUniteKey(QPainter*p,CPTKButton*pPTKBtn);P

20、TKBTN 类:按键处理类,包含按键的颜色、形状、ID 值和区域等属性的设置,实现其功能的部分函数定义如下所示:voidSetPTKBtn(constQRect&rcBtn,constunsignedint&unBtnRGB,constunsignedint&unBtnLTRGB,constunsignedint&unBtnRBRGB,constint&nID);voidChgPTKBtn(constint&nKeyAttr,constunsignedint&unLightRGB,charchBuf,intnLen);void SetPTKBtnRect(const QRect&rcBtn,c

21、onstunsignedint&unBtnRGB,constunsignedint&unBtnLTRGB,constunsignedint&unBtnRBRGB);voidSetStrMsg(charchBuf,intnLen,const(下转第 115 页)wwwele169com|115科技论坛Ps:设置功率(W);FIX:功率耦合器固有衰减(dB);VPin:基准输出功率检波电压(mV);VPout:实际输出功率检波电压(mV);V:DA 输出压控调整电压(mV);Vbase:压控调整最小步进电压(mV);n:电压调整次数(Vbase,n 根据实际联调情况确定)。(4)参数显示单元:主要

22、完成液晶显示模块的初始化清屏对坐标位置显示参数等功能。(5)键盘处理单元:接收面板小键盘的输入,包括控制命令参数设置光标移动翻屏等操作命令;当任一按键动作产生时,软件采用外部中断方式来获取,对输入的命令均进行参数合法性检查,执行正确的命令及参数。(6)网络通信处理单元:具备与上位机软件的网络通信功能,接收命令类型有两种:一种是查询命令,当接收到此命令时,向上位机上报当前的设备工作状态;另一种命令是参数控制命令,当接收到此命令时,按照正确的参数格式要求对设备进行相应的参数配置和状态控制,无论是否控制成功都要按约定格式给予上位机对应的响应。将编写好的模块经编译器进行编译,生成目标文件,通过 IDE

23、 软件将程序烧写到 FPGA 硬件中,最终完成设计。4 结语本文提供的设计方法可以兼容多种常用硬件接口,具有高度通用性,只需要对部分软件进行修改,就能够适用于大部分嵌入式应用场景,节约了开发成本,对同类型产品设计具有一定的参考价值。该设计已在本单位评审通过纳入共用模块管理,它不仅在高功放系统上得到广泛应用,还在 S/X/KA频段跟踪接收机、导频接收机等多个工程项目中使用,经过现场常年使用验证,其性能稳定可靠,效果优秀。参考文献 1 李兰英等.NiosII 嵌入式软核 SOPC 设计原理及应用 M.北京航空航天大学出版社,2006.2 ALTERA Inc.NIOS development Bo

24、ard Reference ManualS,2003.3 刘韬,楼兴华.FPGA 数字电子系统设计开发实例导航 M.北京人民邮电出版社,2005.unsignedint&unRGB);voidSetKeyAttr(constint&nKeyAttr);voidChnKeyAttr(constchar&chValue);intGetKeyAttr();voidSetLightRGB(constunsignedint&unLightRGB);unsignedintGetLightRGB();/获取指示灯的颜色unsignedintGetStrRGB();/获取字符颜色char*GetStrPoin

25、t();/获取字符串指针intGetStrLen();/获取字符串长度voidSetFont(constint&nSize,constint&nType);floatGetFontPound(void);intGetFontSize(void);intGetFontType(void);voidSetPTKPicBtn(constQRect&rcBtn,constshort&sUpPicID,constshort&sDnPicID,constshort&sInPicID);boolGetPicFlag();btnCLASSGetBtnClassFlag();voidSetBtnClassFla

26、g(btnCLASSclassBtn);shortGetUpPicID();shortGetDnPicID();4 结论可编程触摸键盘在日常生产生活中已经推广使用了很多年,随着触摸屏技术的日趋完善,其可靠性和寿命都得到了大幅提高,在船舶自动化领域中具有触摸功能的人机界面类产品数量及种类也在增多。本文首先介绍了可编程触摸键盘的硬件组成及工作原理,详细讲解了该模块开发的软件设计,对软件的设计原则、软件环境、软件组成和软件功能,对每一个实现的类进行一一分析研究。在原 JW06105 型可编程触摸键盘的结构尺寸基础上,通过更换软件运行平台、调整设备的通讯方式等手段满足不同条件下用户要求,并在一定条件下替代 JW06105 型可编程触摸键盘应用于各标准台上,销售前景良好。本文采用串口通信接口方式,在Qt环境下实现了可编程触摸键盘应用程序的开发。参考文献 1 李秀梅.可编程触摸键盘设计 J.企业科技与发展:下半月,2009(4):2.2 王彦,张辉.一种可编程触摸键盘的设计及软件实现 J.佛山科学技术学院学报:自然科学版,2011,29(3):3.3 霍亚飞,程梁.Qt5 编程入门 M.北京航空航天大学出版社,2015.(上接第 96 页)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服