通用手持编程器通信控制方法

文档序号:7923943阅读:166来源:国知局

专利名称::通用手持编程器通信控制方法
技术领域
:本发明涉及一种利用手持编程器对待设置的控制对象进行通信控制的方法,具体涉及一种可适用于多种不同格式的控制对象进行通信控制的方法。
背景技术
:微控制器的运用使控制对象具有了精度髙、功能多、灵活性强、可进行参数设置等新特征。因此,微控制器在控制领域得到了广泛应用,主要体现在利用与控制对象相配套的编程器,使用户在现场能够方便地对控制对象参数进行修改、设置和查阅,使控制器能够适合各种复杂场合的应用需要,同时也为控制器提供了友好的人机界面。所谓的手持编程器就是通过一条专用通讯线与控制对象实现通讯连接,在手持编程器端设置被控对象的各种工作参数,被控对象端的微控制器据此对被控对象进行操控,从而实现对控制对象的控制的装置。手持编程器因其体积小、重量轻、性能卓越而赢得愈来愈多的国内客户的青睐,目前常见的有三菱、欧姆龙、西门子手持编程器。现有的手持编程器是针对特定的控制对象而言的,在手持编程器中设置有对应于特定控制对象的数据存贮区,手持编程器上设置有对应待控制参数的控制按键,操作者通过选择对应参数的控制按键,来改变参数的设置值,手持编程器据此生成控制命令,与控制对象进行通信,实现参数的修改控制。上述手持编程器存在的问题是,由于必须预先针对特定的控制对象设置数据存贮区和参数控制按键,一种手持编程器只能适用于一种被控对象或者是几种控制参数相同的被控对象,因而不具有通用性。显然,如果能够设计一种适合于多种需求的通用型手持编程器,则对于同一工作区域的多台被控制设备只需要采用一台手持编程器,可以降低设备的采购成本,方便操作者的管理和使用,减少不必要的资源浪费。
发明内容本发明目的是提供一种通用手持编程器通信控制的方法,通过该方法,实现一种手持编程器与多个被控对象间的信息交换。为达到上述发明目的,本发明采用的技术方案是一种通用手持编程器通信控制的方法,包括下列步骤(1)手持编程器上电,进行自身信息初始化;(2)在手持编程器的存贮器中开辟与整屏显示数据量相同的显示缓冲区,用于暂存待显示的一整屏信息;设置命令缓冲区,用于暂存控制命令;(3)手持编程器与被控对象进行通信,下载控制参数的信息,获取控制参数的初始值,并存入所述显示缓冲区中(4)在手持编程器上显示控制参数的信息及初始值,通过控制按键调整控制参数的值为所需设定的值;(5)根据按键命令和显示缓冲区中控制参数的当前值生成控制命令,存入所述命令缓冲区中;(6)与被控对象进行通信,发送所述控制命令,实现控制参数的修改。上述技术方案中,步骤(3)中,所述控制参数的信息包括参数名称、初始值、上限、下限和步长。步骤(4)中,调整控制参数的值的方法为,通过按键选定需要调整的参数,用两个按键分别控制参数的值的增加和减小,在未达到上限或下限时,每一次按键时增加或减小一个步长。由于在获取的控制参数信息中包括了上、下限值、步长和初始值,在本步骤中容易通过按键实现控制;其中,当被控参数为开关量时,一种方法是在参数信息中说明,另一种方法是,把开关量的上、下限值分别定义为l和O,步长定义为l,从而实现和其它参数同样的控制。通常,对多个参数的设定有两种控制方式,一种方式是,一次性读取所有参数信息,对应在手持编程器上设置参数选择按钮,选择需要调整的参数进行控制;另一种优选的方式为,在被控对象中存贮有控制参数选项菜单,在所述步骤(2)和(3)之间,手持编程器首先与控制对象进行通信,下载控制参数选项菜单存入所述显示缓冲区中并进行显示,操作者选取待控制参数,通过所述步骤(3)至(6)实现控制,然后返回控制参数选项菜单,重复上述过程直至完成所有控制参数的调整。上述技术方案中,所述手持编程器与控制对象进行通信的方法为,设有重发计数器,在进行通信时,首先对重发计数器清零,然后将所述命令缓冲区中的数据发送至控制对象,并对重发计数器加l,如未收到返回数据,当重发计数器数值大于2时,显示出错信息,否则重复数据发送过程;在接收到返回数据后,对数据按预先设定的规则进行校验。由于上述技术方案的运用,本发明与现有技术相比具有下列优点1.本发明通过从被控对象处下载控制参数上下限、开关量定义以及变量间隔(步长)、当前数值等,然后屏幕显示这些数值,在手持编程器上利用按键方式对参数值进行修改,并将修改的参数值发送到控制设备,由控制设备进行处理,最终将结果反馈到手持编程器以便于对控制设备参数的査阅,由此确保嵌入式系统的安全性、可靠性、抗干扰性。2.由于控制参数是从控制对象处获取的,因而可以任意改变被控对象的控制参数个数、种类、上下限及步长,从而适用于多种不同的被控对象的控制。图1是本发明实施例一的通信电平选择电路图。图2是本发明实施例一中SCI串行通信流程图。图3是实施例二的系统运行流程图。具体实施方式下面结合附图及实施例对本发明作进一步描述实施例一一种通用手持编程器通信控制方法,包括以下步骤(1)开辟64字节的LCD显示缓冲区,用于暂存待显示的一整屏信息;(2)编程器由编程对象(即被控对象)供电(3)在SCI串行通信正常的情况下,手持编程器由步骤(2)上电后,手持编程器在自身信息初始化之后从编程对象处下载控制参数,获得手持编程器对编程对象的初始参数设置,并将该值存入步骤(l)所述的显示缓冲区中;(4)在编程器的数据寄存器内设置一个命令缓冲区;(5)在系统正常情况下,根据参数值和按键情况得到控制命令,并且计算校验码存入步骤(4)中所述命令缓冲区中;开启重发计数,发送存入步骤(2)中所述命令缓冲区中的数据;如果在重发两遍数据后,没有收到数据,显示"通信出错";如果成功收到数据,则随后验证收到的数据,显示结果(包括出错结果)。本实施例中,通用手持编程器的主控芯片为飞思卡尔半导体公司生产的一款性价比髙的MC68HC908LJ12,虽然Flash空间较小,但12K已足够使用,与编程对象的接口使用标准的9芯串口。对于手持编程器与控制对象信息交换的显示,采用4行8列带汉字字库的LCD,可以显示4行8列的中文或者4行16列的英文。根据程序模块化和独立性的思想,由于一个汉字码占用2个字节,4行8列一共64个字节。在这64字节信息中,按行横向排列可以安排控制对象的基本信息控制对象名称、研发公司名称、控制对象的SN号和型号。为此,上述技术方案中,在手持编程器上开辟64字节的LCD显示缓冲区,用于暂存待显示的一整屏信息。而显示一整屏汉字信息的操作则放到定时器中断处理程序中,这样就能把显示的内容放到显示缓冲区中,定时刷新显示,使LCD的显示操作和显示的更新操作分开处理。由此,显示的更新操作只需要改变显示缓冲区中的内容即可。手持编程器上电的主要方式是从控制对象处取电。这一技术方案主要是利用串口头第6脚获得上电。上电后,手持编程器和控制对象的通信开始建立,通信过程如下手持编程器首先发送一帧给控制对象,控制对象根据帧中不同的命令字符做不同的处理,然后回送给手持编程器一帧内容作为应答信息。通信方式以及通信所遵守的协议是通信过程的保证。通用手持编程器可以支持TTL电平通信和232电平通信,SCI串行通信方式可以通过跳线的方式选择串口使用哪种电平通信。具体方法如下如果选择TTL电平通信去掉COMMR3和COMMR2两个0欧的电阻;如果选择232电平通信则去掉COMMR5和COMMR4这两个0欧的电阻。通过这样的跳线方式,达到在硬件上,选择不同电平的目的,电路参见附图l所示。对于通信协议的规定,本实施例采用特定的发送指令格式和接受数据格式进行信息交换。在串行通信的过程中,如果发送方和接收方没有同步开始收发数据,接收方往往会从发送方给的数据中间开始截取,这样就会造成接收到错位数据的现象。为了有效防止出现这样的问题,在每批发送的数据流头尾都加上数据帧,接收方在接收到一批数据后,如果验证到数据帧头尾不正确,就将此帧数据全部丢掉。SDF-1型手持编程器通信协议规定手持编程器发送数据流的帧头为"W",接收数据流的帧头为"A",帧尾都为"E"(注意帧头尾字符为人为规定,没有特殊含义)。手持编程器发送的帧都为IO个字节,发送指令的格式为一个字节帧头"W"+3个字节命令字符+3个字节参数数据+1个字节语言标志位+1个字节异或校验码+—个字节帧尾"E"。手持编程器接收的帧长度不定,接收数据的格式为l个字节帧头"A"+1个字节帧字节个数+乂个字节(乂>=1)须接收的数据内容+1个字节异或校验码+1个字节帧尾"E"。手持编程器发送帧中的命令字符说明了该帧的含义,也规定了随后接收帧中数据内容的格式和含义。手持编程器命令字符与对应数据内容的详细说明见表1-<table>tableseeoriginaldocumentpage7</column></row><table>在手持编程器与控制对象的通信开始之时,手持编程器显示一屏初始化信息,主要包括手持编程器的型号、序列号、研发公司等。初始化信息大约持续2秒钟左右,随后手持编程器读取编程对象信息,并显示在LCD上。如果没有读到编程对象的信息,则显示"通信出错",并一直读取编程对象信息,直到成功为止。编程对象信息包括编程对象名、序列号、型号、研发公司等。读到编程对象信息,并将该信息设置为手持编程器的初始值。在编程模式状态下每一屏显示一个编程对象的参数信息,可以通过上下键循环选择参数。每按一次上键或下键后,手持编程器发送读此时参数的命令帧。如果成功接收到所要的数据帧,编程器显示当前控制器参数的值(包括单位);如果接收数据帧不成功,则显示出错信息(通信出错、读写指令出错、校验出错)。整个SCI发送控制命令的程序流程大体如下首先,根据参数值和按键中断情况,判断控制命令并计算相应的校验码,存于命令缓冲区中。第二,开启重发计数,发送缓冲区中的数据。第三,如果在重发两遍数据后,没有收到数据,显示"通信出错"。第四,如果成功收到数据,则随后验证收到的数据,显示结果(包括出错结果),通信结束。通信过程见附图2所示。其中,开辟显示缓冲区是使LCD的显示操作和显示的更新操作分开处理,可以更快捷便利的控制编程对象;而在通信中的通信方式的选择、发送指令和接受数据格式的规定以及通信中命令缓冲区的设置,使得手持编程器所处理的控制对象的内容都不在手持编程器上,而在控制对象处,在手持编程器与控制对象连接之前,编程器没有任何内容,在控制处理过程中编程器也不下载控制对象的内容到本地。这样一来,通用手持编程器就可以广泛适用于多种电机控制器、电量计以及各种可以通过串行通信设定参数的设备,而不是仅仅局限于有限的几种控制器。实施例二一种通用手持编程器通信控制方法,包括以下步骤(1)幵辟64字节的LCD显示缓冲区,用于暂存待显示的一整屏信息;(2)编程器由编程对象供电;(3)在SCI串行通信正常的情况下,手持编程器由步骤(2)上电后,手持编程器在自身信息初始化之后从编程对象处下载控制参数,获得手持编程器对编程对象的初始参数设置,并将该值存入步骤(l)所述的显示缓冲区中;(4)在编程器的数据寄存器内设置一个命令缓冲区;[51在系统正常情况下,根据参数值和按键情况得到控制命令,并且计算校验码存入步骤(4)中所述命令缓冲区中;开启重发计数,发送存入步骤(2)中所述命令缓冲区中的数据;如果在重发两遍数据后,没有收到数据,显示"通信处错"如果成功收到数据,则随后验证收到的数据,显示结果(包括出错结果)。本实例中手持编程器的程序模块主要包括LCD显示模块、按键程序模块、菜单程序模块、串行通信模块和写Flash子程序模块。整体流程见附图3。SFD-1型通用手持编程器软件通过与控制设备串行通信,一方面从控制器读取参数及状态信息,将控制器数据通过LCD显示出来;另一方面扫描按键操作,形成相应的命令字写入到控制器中,对控制器进行参数设置。其中串行通信模块是关键模块之一。SCI模块的主要任务一方面是为命令字生成校验码后向控制器发送;另一方面是接收控制器传回的数据并进行校验。为了保证数据传输的可靠性,在SCI程序设计中增加了超时重传功能。SCI重传协议执行过程大体如下首先,根据菜单级别和按键中断情况,判断控制命令并计算相应的校验码,存于命令缓冲区中。第二,开启定时器计时。第三,如果在指定的发送时间(大约为5秒后),没有收到数据,则重发控制命令。第四,如果两次重传后仍收不到数据(大约15秒),则认为通信出错;如果成功收到数据,则随后验证收到的数据,显示结果(包括出错结果)。最后,关闭定时器,通信结束。权利要求1.一种通用手持编程器通信控制方法,其特征在于,包括下列步骤(1)手持编程器上电,进行自身信息初始化;(2)在手持编程器的存贮器中开辟与整屏显示数据量相同的显示缓冲区,用于暂存待显示的一整屏信息;设置命令缓冲区,用于暂存控制命令;(3)手持编程器与被控对象进行通信,下载控制参数的信息,获取控制参数的初始值,并存入所述显示缓冲区中;(4)在手持编程器上显示控制参数的信息及初始值,通过控制按键调整控制参数的值为所需设定的值;(5)根据按键命令和显示缓冲区中控制参数的当前值生成控制命令,存入所述命令缓冲区中;(6)与被控对象进行通信,发送所述控制命令,实现控制参数的修改。2.根据权利要求1所述的通用手持编程器通信控制方法,其特征在于步骤(3)中,所述控制参数的信息包括参数名称、初始值、上限、下限和步长。3.根据权利要求2所述的通用手持编程器通信控制的方法,其特征在于步骤(4)中,调整控制参数的值的方法为,通过按键选定需要调整的参数,用两个按键分别控制参数的值的增加和减小,在未达到上限或下限时,每一次按键时增加或减小一个步长。4.根据权利要求1所述的通用手持编程器通信控制方法,其特征在于在被控对象中存贮有控制参数选项菜单,在所述步骤(2)和(3)之间,手持编程器首先与控制对象进行通信,下载控制参数选项菜单存入所述显示缓冲区中并进行显示,操作者选取待控制参数,通过所述步骤(3)至(6)实现控制,然后返回控制参数选项菜单,重复上述过程直至完成所有控制参数的调整。5.根据权利要求1所述的通用手持编程器通信控制方法,其特征在于所述手持编程器与控制对象进行通信的方法为,设有重发计数器,在进行通信时,首先对重发计数器清零,然后将所述命令缓冲区中的数据发送至控制对象,并对重发计数器加l,如未收到返回数据,当重发计数器数值大于2时,显示出错信息,否则重复数据发送过程;在接收到返回数据后,对数据按预先设定的规则进行校验。全文摘要本发明公开了一种通用手持编程器通信控制的方法,其特征在于在手持编程器的存贮器中开辟显示缓冲区用于暂存待显示的一整屏信息;设置命令缓冲区用于暂存控制命令;手持编程器与被控对象进行通信,下载控制参数的信息,获取控制参数的初始值,并存入所述显示缓冲区中;在手持编程器上显示控制参数的信息及初始值,通过控制按键调整控制参数的值为所需设定的值;根据按键命令和显示缓冲区中控制参数的当前值生成控制命令并发送给被控对象,实现控制参数的修改。本发明通过从被控对象处下载控制参数信息,可以任意改变被控对象的控制参数个数、种类、上下限及步长,适用于多种不同的被控对象的控制。文档编号H04L12/54GK101369867SQ20081019672公开日2009年2月18日申请日期2008年9月17日优先权日2008年9月17日发明者仇国阳,刘纯平,曹金华,朱巧明,王宜怀申请人:苏州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1