Rs-485总线式测控系统中测控模块的即插即用法及其测控模块的制作方法

文档序号:6570055阅读:297来源:国知局
专利名称:Rs-485总线式测控系统中测控模块的即插即用法及其测控模块的制作方法
技术领域
本发明涉及是一种以主机为中心,配以各测控模块构成的RS-485总线式测控系统。
测控系统广泛用于远程数据采集、过程控制系统、能源管理、安全系统、实验室自动化、智能大厦以及产品性能测试等领域。在这类测控系统中,测控模块是通过一对双绞线完成与主机通讯,各模块并联在总线上。测控模块在工作之前,除了对其输入/输出类型、输入/输出范围等参数进行设置外,还必须对其地址、通讯波特率进行配置。监控系统中各个模块的波特率可以相同,但模块的地址不得重复。因此,模块使用前或使用中,对于模块地址的分配和波特率的确定是系统正常运行的必要保证。
现有技术在每个测控模块接入监控系统前,必须通过人工的方式,单独对其进行参数配置,使得接入监控系统的每个模块都有确定的波特率和不相同的地址,即模块的波特率和地址均是已知的,这样主机才能识别每一个测控模块并使之工作。当有多个波特率和地址均是未知的测控模块接入监控系统后,由于可能存在测控模块的地址相同的情况(一般出厂时模块地址缺省设置是相同的),主机发出一个命令,就会同时有多个测控模块响应,而造成数据冲突(即总线竞争);或者由于主机通讯波特率与模块不同,使得二者通讯无法进行。所以,如果没有人工单独地对每一个模块进行地址分配和波特率设定,计算机监控系统将无法工作。这种人工设置对于用户而言,使监控系统的安装显得既麻烦又费时。
本发明的目的在于避免上述现有技术中的不足之处,提供一种RS-485总线式测控系统中测控模块的即插即用法及其测控模块。以解决模块波特率自适应和总线竞争的技术方法,来实现测控模块的即插即用功能,对于地址和波特率不详的测控模块,在其接入运行在标准波特率集的监控系统后,测控模块具有自动调整自身波特率与系统相匹配的能力;同时,在有多个测控模块接入系统后,模块具有与系统相匹配的自动识别能力。
本发明的目的通过如下技术方案实现本发明所述的RS-485总线式测控系统中的测控模块即插即用法,包括三个步序测控模块与主机的波特率自适应,主机对其总线上各测控模块的识别及注册,测控模块按系统主机分配的参数进行配置,其中所述测控模块与主机的波特率自适应;a、实现测控模块对RS-485总线上有无信息传送的侦听。
b、以测控模块能否接收到RS-485总线上传输的有效数据来判断该测控模块的波特率与主机是否相适应;c、测控模块自动调整直至与主机波特率相匹配。
所述主机对其总线上各测控模块的识别及注册;a、置测控系统运行软件以及每一测控模块各自唯一的代码。
b、测控模块对RS-485总线上有无信息传送的侦听。
c、置测控模块的CPU串口为边发送边接收状态,在总线空闲时,由模块发送其本身对应的代码信息,并同时将发送的信息与接收到的反馈信息按位比较,若一致,即数据传输成功,总线无数据冲突。
d、主机向总线发布由查询码和主机软件代码构成的模块查询命令,测控模块将该命令信息与其自身对主机软件代码的记录比较,以完成主机对于测控模块的识别;所述测控模块按系统主机分配的参数进行配置;经相互识别后的主机根据现有模块的注册以及地址资源的使用情况,向对应的模块发送配置命令,该配置命令包含有配置命令码、模块代码、模块地址码、波特率代码和主机码。
本发明测控模块,其内置单片机U1,由电容C1、C2、晶体振荡器X1与单片机U1的内部电路构成振荡电路,采用非易失性存储器U3,异步通信串行接口,包括信号接收端RXD和信号发送端TXD,其特征是所述信号接收端RXD另有一路通过同相器U5与单片机U1的外部中断INTO端相连接。
与已有技术相比,本发明具有如下优点1、本发明提供了测控模块波特率自适应功能,在测控系统中无论是由于现场强干扰使模块波特率代码丢失,或是由于主机的波特率发生变化,造成模块与主机不能正常通讯的情况时,本发明都能够做到自动识别并快速与主机相匹配,尽快恢复与主机的通讯。从而避免或尽可能减少测控系统失控而造成的不良后果,极大地提高了系统的工作可靠性。
2、本发明中的测控模块即插即用功能使得模块的使用更为简单、便利,大大降低了对模块使用人员技术水平的要求。
3、本发明测控模块自身结构简单,几乎不增加硬件成本。


图1为本发明系统框图。
图2为本发明测控模块电路原理图。
图3为本发明测控系统中的信号传输时序图。
图4为本发明测控系统中波特率自适应流程图。
以下通过实施例,结合附图对本发明作进一步描述。
实施例参见图2,本实施例中的即插即用测控模块,其内置单片机U189C52,由电容C1、C2、晶体振荡器X1与单片机U1的内部电路构成振荡电路,产生CPU工作的时钟信号。采用非易失性存储器U3 X25045,用以保存模块的波特率和地址信息,模块掉电时,其保存的信息不会丢失。U3与CPU的P20~24和RESET口线相连。本实施例采用异步通信串行接口包括信号接收端RXD和信号发送端TXD,如图所示,在信号接收端RXD另有一路通过同相器U5 7407与单片机U1的外部中断INTO端相连接。
当CPU将数据写入E2PROM时,U3的CS片选置为0电平,WP写保护置为1电平,数据随SCK时钟信号,通过串行数据输入口SI管脚写入E2PROM。当CPU从E2PROM读取数据时,CS片选置为0电平,WP置为0电平,数据随SCK时钟信号,通过串行数据输出口SO管脚读入CPU。
图中,U4 RS485为通讯收发器,其接收发送端RO、DI分别与CPU串口的接收发送端RxD、TxD相连,通讯收发器的使能端RE、DE分别与CPU P1口的P16 P17口线相连,U4 RS485通讯收发器的引脚说明如下RO---接收数据端RE---接收数据使能端,低电平有效DE---发送数据使能端,高电平有效DI---发送数据端DATA(-)---接RS-485网络的正端,数据传输端DATA(+)---接RS-485网络的负端,数据传输端当CPU通过P16 P17口线将RE置为1电平、DE置为1电平,U4 RS485通讯收发器处于发送状态,CPU数据可通过DI管脚发送到RS-458总线上;当RE置为0电平、DE置为0电平,U4 RS485通讯收发器处于接收状态,RS-458总线上数据CPU可通过RO管脚读入;当RE置为0电平、DE置为1电平,U4 RS485通讯收发器同时处于发送和接收状态。
侦听RS-485通讯线有无收发信息的工作原理是CPU首先通过P16P17口线将U4 RS485通讯收发器置于接收状态,CPU 89C52中断0(INT0)设置为信号的下降沿触发;由于串口通讯每帧的启始位电平总是由高电平跳至到低电平,当通讯线上有收发信息时,该跳变信号经U4 RS485收发器RO管脚、U5A 7407同相器传送到INT0中断口线,引起CPU 89C52产生中断;反之,通讯线上没有收发信息,CPU 89C52就不会产生中断。
解决数据冲突的工作原理是接在计算机监控系统的RS-485总线上的每个模块,在其发送信息之前,为避免由于竞争引起的数据冲突,首先使用上面所述的侦听技术,侦听RS-485总线上是否有信息在发送,如果RS-485总线是空闲的,则可以发送;如果RS-485总线是忙的,则等待一个随机时间间隔后重新再试。当CPU 89C52准备发送数据时,先通过CPU的P16和P17口线,将U4 RS485收发器的发送和接收功能同时使能,即U4RS485通讯收发器同时处于发送和接收状态,使CPU能够边发送数据、边接收数据,在CPU 89C52把数据发送出去后,CPU将发送的数据与同时接收回来的数据按位比较,若不一致,就说明RS-485总线上的数据已产生了冲突,则CPU 89C52重复上述过程;若一致,即数据传输成功,总线无数据冲突。
参见图1,应用系统是以主机为中心,配以分布在各处的测控模块。图中,CESN-2520为RS-232/RS-485转换模块,CESN-2510为中继模块,CESN-2000系列为测控模块。主机与测控模块的通讯遵循主从式、ASCII码命令/响应通讯协议。测控模块与主机之间的通讯波特率采用1200、2400、4800、9600、19.2K、38.4K、57.6K、115.2Kbps(其代码分别为03、04、05、06、07、08、09、0A)标准波特率集中的一个进行通讯。
本实施例中即插即用法的实现包括三个步序测控模块与主机的波特率自适应;主机对其总线上各测控模块的识别及注册;测控模块按系统主机分配的参数进行配置。
关于测控模块与主机的波特率自适应。
首先按E2PROM内贮存的波特率代码进行模块通讯波特率的配置,然后侦听RS-485通讯线上有无主机与测控模块的收发信息;当RS-485通讯线上没有收发信息,模块不进入波特率检测程序;而当RS-485通讯线上有收发信息,模块又无法收到有效数据,则说明测控模块的波特率与主计算机的波特率不同,此时测控模块自动进入波特率检测程序,变换当前波特率,直至能收到有效的数据为止。这时测控模块将此时通讯波特率设定为当前工作的波特率,并将这个波特率代码存入E2PROM中。具体方法为a、实现测控模块对RS-485总线上有无信息传送的侦听。
其原理如前所述。当采用异步串行方式通讯时,传输数据的每一帧包含1位启始位、8位数据位和1位停止位,如图3所示。每帧信号的开始电平总是由高电平跳至低电平。当通讯线上有收发信息时,引起CPU 89C52产生中断。反之,通讯线上没有收发信息,CPU 89C52就不会产生中断。
b、以测控模块能否接收到RS-485总线上传输的有效数据来判断该测控模块的波特率与主机是否相适应;当模块侦听到总线上有数据传送时,产生INT0中断,这时串行口开始一条命令数据的接收,如果模块在足够长的延时时间内接收不到有效数据,可以断定模块的波特率与主计算机不相适应。只有当模块接收到一组有效数据时,才能够得出模块与主计算机波特率相适应的结论。
对模块所接收的命令数据是否有效的判断方法如下首先对主机的有效命令格式进行分析,主机向模块发布命令的格式为定义符 地址 命令 数据 结束符其中定义符取值可以是$或#或%或@地址码取值范围00~FFH命令内容命令不同,其取值范围和字节长度也不相同。
数据码数据不同,其取值范围和字节长度也不相同结束符(cr)回车例$230(cr)其中,$为定义符,23为地址码,0为命令码,(cr)为结束符。
模块与主计算机的通讯遵循ASCII码命令/响应协议,即主计算机把将要向模块传输的命令以ASCII码的形式传送给模块,每一帧传送一位ASCII码,直至命令结束。
上例命令中,主机向模块传送命令以从左到右的顺序将$、2、3、0、(cr)这五个字符分为5帧传送,每一帧传送值分别为对应字符的ASCII码。
通过对主机与模块通讯的命令格式和通讯协议进行分析,得出主计算机有效命令数据具有下列四个特征1、主机命令的第一帧数据必定为命令定义符$、或#、或%、或@的ASCII码。
2、第二帧数据和第三帧数据的取值有两种可能(1)、为**的ASCII码。
(2)、为模块地址的ASCII码,地址的取值范围00~FF。
3、命令的最后一帧数据必定为(cr)的ASCII码4、主机的每一条命令,都是由若干帧数据组成的;由于命令的长短不同,所以模块所接收的数据帧数也不相同,但每一帧数据均为ASCII码。
在得知主机命令的四个特征后,根据这四个特征对模块所接收到的每一帧数据进行判断,以确定是否为有效的主机命令代码。只有当确定模块接收到了一条完整的主计算机命令时,说明模块与主计算机的波特率相适应;否则,说明模块的波特率与主机不相适应。
c、测控模块自动调整直至与主机波特率相匹配。
在上述两步判断的基础上,可以得出模块与主计算机的波特率是否适应,如相适应,则将目前模块的波特率代码写入E2PROM中,如果不适应,则变换模块的标准波特率代码,再重复以上二步骤,直到模块的波特率与主机相适应为止。然后将正确的波特率代码存入E2PROM中。
至此,测控模块的波特率自适应功能完成。
模块波特率自适应流程图,如图4所示。
关于主机对其总线上各测控模块的识别及注册a、置测控系统运行软件以及每一测控模块各自唯一的代码。
模块实现即插即用的过程,实质是模块与系统主计算机相互识别的过程,为了便于二者间的相互辨别,对于每个模块均有一组唯一的代码,其格式及代表的意义为模块型号 年(2位) 月(2位) 日(2位) 序号(3位)例如2011 00 01 23 480其中2011模块型号 002000年 011月 2323日 480序号对于每个监控系统运行的软件也有一组唯一的代码,该代码借鉴了组件(COM)规范中唯一标识符产生的原理,软件的唯一代码为25位长的字符串(0~9,A~W 32进制)。
b、测控模块对RS-485总线上有无信息传送的侦听。
测控模块即插即用的实现,除了解决通讯波特率的问题,还必须解决总线竞争的问题。同样使用图2所示电路的侦听技术。当通讯线上有收发信息,引起CPU 89C52产生中断;反之,通讯线上没有收发信息,CPU 89C52就不会产生中断。
c、置测控模块的CPU串口为边发送边接收状态,在总线空闲时,由模块发送其本身对应的代码信息,并同时将发送的信息与接收到的反馈信息按位比较,若一致,即信息传输成功,总线无数据冲突。
通过侦听,如果RS-485总线是空闲的,则测控模块可以发送信息;如果总线是忙的,则等待一个随机时间间隔后重新再试。当测控模块CPU89C52准备发送数据时,先通过CPU的P16和P17口线,将U4 RS485收发器的发送和接收功能同时使能,使CPU处于边发送边接收的状态,在CPU 89C52把数据发送出去后,CPU将已发送的数据与接收到的数据按位比较,若不一致,就说明RS-485总线上的数据已产生了冲突,则CPU89C52重复上述过程,直至比较结果一致。
d、主机向总线发布由查询码和主机软件代码构成的模块查询命令,测控模块将该命令信息与其自身对主机软件代码的记录比较,以完成主机对于测控模块的识别。
在解决总线竞争、模块与软件唯一代码问题后,对于具有即插即用功能的测控模块,用户可以将其接入或移出RS-485总线,而不需要重新启动监控系统进行修改或调整配置参数。对于安装好的、以RS-485总线为通讯通道的监控系统,不管系统是首次运行或系统已在运行中,此时加入测控模块,无论模块是第一次使用,还是曾经使用过,当该模块接入监控系统的RS-485总线上后,系统均会找到新加入的模块并识别它。具体方法是系统主机总以一定的时间间隔,以广播方式向总线发布模块查询命令,查询广播命令由查询码和主机软件代码(简称为主机码)组成,总线上所有测控模块在收到查询广播命令后,首先,判别主机码是否与模块本身记录的主机码相同,若比较结果相同,测控模块无响应,反之,测控模块向主机发送模块代码以及模块当前的参数配置状态。
此外,若有模块从RS-485总线上移出,当监控系统启动时,将采用点名方式检查总线上模块的存在情况,若经多次点名确认,对已从RS-485总线上移出的模块,主机将移出的模块从注册表中删除。
关于对于测控模块的参数配置模块与主机经相互识别后,主机根据现有模块的注册以及地址资源的使用情况,向对应的模块发送配置命令,该配置命令包含有配置命令码、模块代码、模块地址码、波特率代码和主机码。
当接在监控系统RS-485总线上的所有模块接收到配置命令后,各模块将配置命令中的模块代码与本身的模块代码进行比较,若比较结果相同,则模块把新的模块地址码、波特率代码和主机码写入E2PROM中并重新初始化,按新的配置开始工作。从而实现即插即用的功能。
权利要求
1.RS-485总线式测控系统中测控模块的即插即用法,其特征是包括三个步序测控模块与主机的波特率自适应,主机对其总线上各测控模块的识别及注册,测控模块按系统主机分配的参数进行配置,其中所述测控模块与主机的波特率自适应;a、实现测控模块对RS-485总线上有无信息传送的侦听。b、以测控模块能否接收到RS-485总线上传输的有效数据来判断该测控模块的波特率与主机是否相适应;c、测控模块自动调整直至与主机波特率相匹配。所述主机对其总线上各测控模块的识别及注册;a、置测控系统运行软件以及每一测控模块各自唯一的代码。b、测控模块对RS-485总线上有无信息传送的侦听。c、置测控模块的CPU串口为边发送边接收状态,在总线空闲时,由模块发送其本身对应的代码信息,并同时将发送的信息与接收到的反馈信息按位比较,若一致,即数据传输成功,总线无数据冲突。d、主机向总线发布由查询码和主机软件代码构成的模块查询命令,测控模块将该命令信息与其自身对主机软件代码的记录比较,以完成主机对于测控模块的识别;所述测控模块按系统主机分配的参数进行配置;经相互识别后的主机根据现有模块的注册以及地址资源的使用情况,向对应的模块发送配置命令,该配置命令包含有配置命令码、模块代码、模块地址码、波特率代码和主机码。
2.一种应用在权利要求1所述方法中的即插即用测控模块,其内置单片机U1,由电容C1、C2、晶体振荡器X1与单片机U1的内部电路构成振荡电路,采用非易失性存储器U3,异步通信串行接口,包括信号接收端RXD和信号发送端TXD,其特征是所述信号接收端RXD另有一路通过同相器U5与单片机U1的外部中断INTO端相连接。
全文摘要
RS-485总线式测控系统中测控模块的即插即用法及其测控模块,其特征是该方法包括三步:测控模块与主机的波特率自适应;主机对其总线上各测控模块的识别及注册;测控模块按系统主机分配的参数配置。测控模块的特征是其信号接收端另有一路与单片机的外部中断相接。本发明的即插即用功能使模块的使用更为简单、便利,并大大提高系统工作可靠性。
文档编号G06F13/38GK1342938SQ0011253
公开日2002年4月3日 申请日期2000年9月11日 优先权日2000年9月11日
发明者袁廷华 申请人:合肥创源智能网络有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1