基于Memory-link协议的GP触摸屏与PIC单片机通信的实现
2007年
第2期
仪表技术与传感器
InstrumentTechniqueandSensor
20[J7
No.2
基于Memory.link协议的GP触摸屏与PIC单片机通信的实现
李明伟,张献梅,张倩
(大连理工大学电子工程系,辽宁大连116023)
摘要:介绍了PIC单片机与GP触摸屏的通讯及实现方法•简要分析了
Memory.1 ink通讯协议,给出了PIC单片机与
GP触摸屏异步串行通讯连接图,以及用PIC编写的部分关键通信程序•经实验验证:该方法稳定可靠,为开发者采用GP
触摸屏与带串口的智能设备之间的通信连接提供了参考.
关键词:GP触摸屏;PIC单片机;Memory一Link协议;软件
中图分类号:TP393・04;TP311・ll文献标识码:A文章编
号:1002—1841(2007)02—0052—02
ImplementationofCommunicationbetweenPICSignalChipProfessor
andGPTouch.screenBasedonMemory」inkProtocol
LIMing-wei,ZHANGXian—mei,ZHANGQian
(DepartmentofElectronicEngineering,O.alianUniversityofTechnology,O'aliarl 116023,China)
Abstract:IntroducedthecommunicationmethodbetweenPICsignalchippro
fessor(SCP)andGPtouch一screenanditsimplementa・
tion.BrieflyanalyzedMemory—linkprotocol,provided〜hemediagramofasynchronousserialcommunicationbetweenPICSCPandGP
touch-screen,andgivenpartsofkeycommunicationpmgram.Theexperimentai
ms 〜tsshowthatthismethodissteadyancireliable,an(lit
providesreferencetothedeveloperswhouseGPtouch一screenandPICSCP.
Keywords:GPtouch-screen;PICsignalchipprofessOr(PICSCP);memory-linkprotocol software
1GP触摸屏
GP触摸屏除具有强大的图形功能和数据处理功能外,还
可以通过标准的cF卡来存储配方数据,实时采样数据和历史报警信息•采用具有强大图形编辑功能的GP—PRO/PBUIforWindows作为屏幕编辑软件,能够容易地创建直观的屏幕画面.
PIC单片机接口功能丰富,与GP触摸屏结合起来,能将控 |
|
制的灵活性和工控软件的控制稳定性有机地结合起来,从而优化现场测控系统的总体性能和性价比•由于PIC单片机不像
PLC可以直接和GP触摸屏通信,所以在选好GP触摸屏的通信
协议以后,要为单片机编写对应的通信程序.
2Memory-link通信协议
GP触摸屏具有强大的通信功能,支持多种连接方式,如Rs
232,RS一422,RS— 485,Ethernet以及各种现场总线等•它包括两种通信模式:直接存取通信方式(DirectAccessCommunica.
tion)和内存链接通信方式(MemorynkCommunication).直接通信不需要编写通信程序,一般用于与PLC,变频器,温度控制器
等通信;Memory.link通信一般用于GP触摸屏与单片机这种非
标准通信设备通信.GP触摸屏采用主从式的访问方式,在Memory-link方式下,触摸屏是从站,对方设备是主站,触摸屏根
据主站传来的数据命令进行工作.
Memory-link通信有两种工作方式:ASCII码兼容方式和扩展方式.ASCII码兼容方式是GP触摸屏和主机一对一的通信,扩展方式既可以一对一也可以一对多通信.
对于ASCII码兼容方式,GP与主机有4条通信命令:主机
收稿口期:2006—07—10收修改稿口期:2006—10—28
读命令,GP应答命令,主机写命令,GP中断输出命令.
2」主机读命令和GP应答命令
主机读命令和GP应答命令成对出现•当主机发出读GP
内部寄存器地址数据命令后,触摸屏立即给出应答命令•主机读命令的通信协议格式为
起始应答返回第一字的数据返回第二字的数据结束
其中读起始地址,读数据长度和GP应答命令返回的数据都占4个字节,其他的占1个字节,都是以ASCII码形式发送.
2.2主机写命令
主机可以直接对GP的内部寄存器地址写数据•通讯协议格式为写入数据的起始地址和写入的数据都占4个字节.
2.3中断输出
当触摸屏的按键被按下时,如果写一个字节数据到GP内部寄存器地址0013H,该地址数据就会主动发出中断输出信号给单片机•单片机的中断服务程序根据接收到的控制命令执行相应的中断服务子程序【lj・
3用PIC单片机实现与GP通讯
第2期李明伟等:基于Memory.link协议的GP触摸屏与PIC单片机通信的实现53
GP内部的寄存器称为LS区,有8192个字地址空间,除了
系统数据区[0〜⑼和特殊继电器区[20322047]外,用户都 可以直接访问•单片机的通信程序只要指定读或写GP寄存器 地址就可以直接对该地址操作•选用了PIC高性能单片机和 GP触摸屏通信实现控制显示,鉴于通讯只是一对…的通讯,采 用了Memory.Link通讯协议下的ASCII码兼容方式,单片机为主机,GP为从机.
3」硬件设计
单片机选用了PIC1617877.GP触摸屏选用GP2301.PIC的RC6RC7
口设置为异步串行通讯模式的输入输出口,经过
M.〜32芯片将TrL电平转换为RS一232电平,再与GP触摸屏
25针串行口相连,即完成了硬件连接.图1为系统的通讯连接图图1通讯连接图
3.2软件设计
触摸屏与PIC单片机的通信程序用C语言编写.编泽工具选择PICC编译F.采用PIC16F877自带的通用同步异步收发器(USART)与触摸屏通信.
在通信前首先要对串行口进行初始化,例如,选用的通信方式,波特率,通信口等•设计采用低波特率的异步串行通信
方式,RC7和RC6口分别为异步串行输入输出口[31.PIC单片机对GP写操作可以直接在程序里凋用写操作子程序:简要给出写操作的实现过程:
VoidWriteToGPC^writep^writelen,write一 address)WriteReadyO;//发送写GP标志,ESC:WWriteData(writeaddress);// 发送地址while(write一len!:O)//write一len为发送的数据个数Writelen〜;〃发送数据自减1
wteData(〜writepr);//发送数据
write—
prH; 〃数据指针加1
wTiteprH;//数据指针再加1
/f运行〜,xite—len次循环
wT();发送结束标志
dataend//CR
return;
由于ASCII码兼容方式只支持ASCII码传送,所以所有的
数据都必须转化成ASCII码•例如,要向CP触摸屏的100和101地址写数据55,16&就需要向TXREG写入如下的一串字符:
1B,57,30,30,36,34,30,30,33,37,30,30,41,38,0D
单片机读操作与写操作类似,具体的操作可以参考介绍的
通讯协议•发送完读命令以后立即接收GP的应答命令•可以
设置超吋控制,如果接收超吋则重新发送读命令,连续几次都接收超时,就向触摸屏发送错误标志,触摸屏通过内置lamp可以很形象地显示报警信息.
读GP和接收GP应答命令的程序流程图如图2所示.
N
图2读GP和GP应答流程图
当单片机接收到触摸屏发出的中断信号后,就根据接收到
的中断标志执行相应的操作.
给出一些关键的中断服务程序片断:
VoidinterruptReceive一
interrupt()〃中断服务程序 f
If(RCIE&&RCIF)//如果是接收到触摸屏发来的中断信号
{
interrupt一
data-RCREG;〃接收到的数据存放到全局变量
Dointerrupt(interruptdata);//中断服务子程序
关键的中断服务子程序片断:
VoidDo—interrupt(interrupt~ata) {
switch(interrupt—ata)
casekProcessFirst—
Interrupt();
break;///中断命令为1的情况
ca.〜e2.P/,oce〜・$〜
Second——
Interrupt();
break;//中断命令为2的情况
〃其他情况略default: break; | |
}
程序编写完成后,将GP触摸屏与PIC16C77相连接,通过触
摸屏对PIC16C77读写数据并发送中断,在设置波特率为
19.2I(B时也能稳定地工作•实验表明了两者之(下转第55页)
第2期高友:振弦式传感器测量过程中干扰问题的解决
表1激励电压与测量距离关系表
55
激发电压Vp—测量距离/m
5o
75
]oO
<2O
<40
>]oO
(5)元器件的选择要合理,电阻耍选择五环金属膜电阻,电
容要采用独石电容,传感器输入线要采用优质的两芯屏蔽线.
(6)数字地与模拟地一点共地接地的合理与否对电路性能
往往有很大影响,尤其是测量的仪器仪表•许多电路故障,如
自激生干扰,噪声大等都与接地不良有密切关系•振弦频率检测仪机箱要用全金属的,并可靠接地•否则,用示波器,万用表等仪表测试工作参数时也会引起干扰_5j・由于电路中有激励电压产生电路.所以要做好前置放大级的退耦,在用22nF旁路效果最好,如图2所示.
I
图2振弦频率检测仪的原理框图
2软件解决干扰
(1) 测量要在激发过一定时间后进行•因为在激发脉冲刚
过的瞬时,钢弦可能会在不同程度上是强迫振动,此时立即计
数会影响测量精度,所以开门信号必须在钢弦处于口由振动状
态时才应出现•经试验选择激励100ms后,单片机开始计数较为合适.
(2)测量中单片机要分段进行,同时对各段计数值进行比
较,以解决杂波干扰•具体方法如下,如果连续不相等次数大于3次•则显示新测量值,否则显示上次测量值•如果该次测量值与上次测量值之差大于3,则显示该次测量值•源程序(部分)如下:
.f(Measure Value>I.astMeasure)
{NoSameB:0:
(MeasureValue一I.astMeasure )>:3) } I.astMeasure=MeastweValue;}
else {NoSame A++:
No〜neA>:3)
{I-tMeasure:Measta' e Value;
NoSameA=NoSameB=0:
}
else{Measure Value=I.astMeasure;}
f
}
elseif(Measure Value<l_aslMeasure) |
|
{NoSameA:0:
if((I.astMeasure一MeasureValue)>=3)
{LastMeasure:MeasureValue;}
else}NoSameB++:
if(NoSameB>:3)
{I.astMeasure=MeasureValue;
NoSameA=NoSameB=0:
}
else{Measure Value:LastMeasure;}
}
f
else {No 〜neA:NoSameB=0:
LastMeasure: Measure Value;
其中,MeasureValue为木次测量值;I.astMeasure为上次测量
值;NoSameA为本次测量值大于上次测量值次数;NoSameB为本
次测量值小于上次测量值次数.
(3)时钟产生电路一定要准确分频,同时程序在调用延吋时要充分考虑调用相关命令所用的时间,并将其计算出开门时间,以减小计时时间误差[61.
3结论
结果表明:振弦频率检测仪能很好的测量振弦式传感器,
仪器的稳定性好,精度高.
参考文献:
⑴邓铁六•大量程自激振弦式传感器及相关技术•传感器技术,2001
(9):41.
⑵王刚屹•仪表放大器及在智能化仪器中的使用•电子制作,2005
(8):35.
⑶李澎•简易倍频电路.[EB/OL].[2005—07—19] .http://www.
eetchina,com/简易倍频电路・htm.
⑷李岗•单按键密码锁•电子制作,2003⑹:63.
⑸张国华•模拟电路的接地技术•电子制作,2005⑷:35.
⑹山军,罗方•等精度测频装置的制作•电子制作,2006(1):54.
⑺美国基康公司•振弦式传感器使用说明书.
作者简介:高友(1971—),实验师,从事电子教学工作.(上接第53页)间的通信是稳定可靠的.
4结束语
系统釆用GP触摸屏,人机界面美观;釆用Memory一hnk通信
协议,通信速度高,可靠性强,己成功应用于光电色选机系统.由于GP触摸屏自身功能的强大和开发环境的友好,对PIC单片机在测控领域得到更广泛的应用提供了支持.
参考文献: |
|
⑴陈旭东,陈彤.Pro-face触摸屏高级应用手册上海天任电子有限公司,2003.
[2]刘和平.PIC16F87X单片机实用软件与接口技术一c语言及其应用•北京:北京航天航空出版社,2002.
⑶张明峰・PIC单片机入门与实践•北京:jE京航天航空大学出版
社.2004.
作者简介:李明伟(1957
),副教授,主耍研究方向为微波技术,超声波
技术及光电子技术为基础的应用技术研究.