一种基于嵌入式系统的多通道RS485模块测试方法与流程

文档序号:32496781发布日期:2022-12-10 04:38阅读:26来源:国知局
一种基于嵌入式系统的多通道RS485模块测试方法与流程
一种基于嵌入式系统的多通道rs485模块测试方法
【技术领域】
1.本发明涉及电气领域,具体为一种基于嵌入式系统的多通道rs485模块测试方法。


背景技术:

2.rs485是一种差分通信方式,其通信速度快、抗干扰能力强、通信距离远,可多机联网通信,因此被广泛应用于工业控制、电力通讯,智能仪表等诸多领域。
3.由于其应用的广泛性和通用性,所以rs485通信相关的硬件部分通常被做成单独的小模块并引出必要的几个接口引脚以便于硬件集成。目前rs485模块产品种类繁多,质量也参差不齐,因此在产品方案设计前对rs485模块的测试工作是十分必要的。目前市面也有对rs485模块的测试是pc通过专用的串口软件将测试数据通过数据下行usb口经usb转uart模块传输给下行uart转rs485模块后,经上行uart转rs485模块、usb转uart模块和上行usb口返回,
4.但是存在以下弊端:
5.1)采用pc作为测试主机成本高,不便捷。
6.2)占用pc串口资源多,接线多,且每次最多测试两个rs485模块,测试效率低。
7.3)缺少测试的中间过程状态的指示,不利于定位问题点所在。
8.针对一般rs485模块测试存在的缺陷,因此本发明提出一种多通道rs485通信模块测试方法,大大提高了rs485模块测试的便捷性、可靠性。


技术实现要素:

9.为实现上述目的,本发明提供如下技术方案:一种基于嵌入式系统的多通道rs485模块测试方法,该方法包含一种多通道rs485模块测试装置和一种基于modbus rtu请求/应答协议的测试方法。
10.装置包括主控模块、辅控模块、电源模块、rs485模块插座组。
11.主控:整个测试装置的核心控制部分,负责整个装置的人机交互及测试过程控制;
12.辅控:负责对主控发出的测试信息进行响应;
13.电源模块给装置提供正常工作所需的+24v直流电源;
14.rs485模块插座组用于连接被测的rs485模块。
15.主控模块包括主控mcu、按键输入、lcd显示和声光指示模块。
16.主控mcu部分包括1个单片机及其必要的外围电路,是连接主控部分各个功能模块及辅控部分的中枢;
17.按键部分用于提供必要的用户操作,包括“启/停”、“加”、“减”和“确认”四个按键,其功能定义如下:
[0018]“启/停”:开始或停止测试。
[0019]“加”:向上调整测试通讯的波特率。
[0020]“减”:向下调整测试通讯的波特率。
[0021]“确认”:确认修改测试通讯的波特率。
[0022]
主控声光指示部分包括1个蜂鸣器和若干个led指示灯,蜂鸣器用于操作提示和报警,每次用户按下按键,蜂鸣器会发出一声短促的“嘀”声。
[0023]
备选的,在测试过程中,如果出现有模块测试不合格的情况,蜂鸣器会发出“嘀嘀”的报警声。
[0024]
优选的,主控声光指示部分的led指示灯包括1个运行指示灯和数个通道指示灯,运行指示灯用于指示主控程序运行状态,在主控mcu程序正常运行时以1hz的频率闪烁。
[0025]
优选的,通道指示灯用于指示测试通道的通讯状态,每1个通道指示灯对应1个测试通道,主控程序空闲或发送测试数据时,指示灯熄灭,当接收到正确的数据帧时,指示灯亮起。
[0026]
lcd显示部分包括一个rs232接口的组态屏及其接口电路,用于显示测试数据和测试结果等相关信息。
[0027]
辅控部分包括辅控mcu部分、辅控led指示部分及板载rs485模块组。其中辅控mcu部分可以通过并口io与主控mcu相连,以接收主控mcu发送的配置数据,
[0028]
优选的,辅控mcu部分还可以通过板载rs485模块接收主控发出的测试数据包,解析执行后将数据或结果通过板载rs485模块返回给主控mcu,并通过led指示部分指示通讯状态。
[0029]
优选的,辅控led指示部分包含1个运行指示灯和数个通道指示灯,运行指示灯用于指示辅控程序运行状态,在辅控mcu程序正常运行时以1hz的频率闪烁。
[0030]
优选的,通道指示灯用于指示测试通道的通讯状态,每1个通道指示灯对应1个测试通道,辅控程序在空闲状态或者发送测试数据时,指示灯熄灭,当接收到正确的数据帧时,指示灯亮起。
[0031]
电源模块所述电源模块连接外部电源适配器+24v直流电源,+24v电源经装置分成三路;包括内部两路dc/dc电源模块+5v主电源、+5v辅电源和一路隔离电源;
[0032]
优选的,dc/dc电源模块+5v主电源给主控部分、dc/dc电源模块+5v辅电源辅控部分供电,隔离电源专给rs485模块供电。
[0033]
进一步地,一种基于modbus rtu请求/应答协议的测试方法,包含以下步骤:
[0034]
1)准备阶段:
[0035]
a、将待测rs485模块插入模块插座中,给装置上电;
[0036]
b、主控mcu上电初始化,启动modbusrtu服务,以供lcd屏读取其状态数据及测试结果等信息,启动led灯、蜂鸣器等控制服务,以对测试过程中间状态作出声光指示,最后启动按键服务监听用户按键输入以执行相应操作;
[0037]
c、辅控mcu上电初始化,开启led灯控制服务以便对各个板载rs485模块通信状态进行指示,监听并口数据输入状态,根据其输入状态配置rs485通信的波特率,最后启动modbusrtu服务,监听各个rs485通信接口,随时准备对监听到的主控mcu发出的modbus请求进行响应。
[0038]
2)测试阶段:
[0039]
a、按下“启/停”键开始测试,主控mcu通过每个被测rs485模块发出modbus请求,随后进入监听状态等待辅控mcu返回的modbus响应数据;
[0040]
b、modbus请求经被测rs485模块传送至板载rs485模块,最后被辅控mcu监听到;
[0041]
c、辅控mcu每监听到一个modbus请求就将对应的led指示灯点亮,然后对监听到的modbus请求进行解析、处理后,生成对应的modbus响应,将响应数据依次通过板载rs485模块、被测rs485模块返回给主控mcu,随后熄灭对应的led指示灯;
[0042]
d、主控mcu接收到返回的modbus响应后,将对应的led指示灯点亮,然后对modbus响应数据进入解析、处理后更新测试状态等数据,随后熄灭对应的led指示灯并进入下一个测试周期。
[0043]
特别的,在测试过程中,若某个被测rs485模块有问题,则经此模块发出的modbus请求不能被辅控mcu成功接收到,故无法对主控mcu进行响应,对应的主控mcu侧和辅控mcu侧的led指示灯均处于熄灭状态。
[0044]
3)波特率切换:
[0045]
a、按键切换到不同的波特率,按“确认”键后,主控mcu根据新的波特率重新配置rs485通信波特率,并通过并口将波特率信息传送给辅控mcu,使其重新配置通信波特率;
[0046]
b、按下“启/停”键开始当前波特率配置下的新一轮测试。
[0047]
4)重复2~3骤直到所有波特规定的波特率配置下测试完成,能通过所有测试的rs485模块视为合格。
[0048]
本发明通过主控mcu与辅控mcu之间的信息传递状态和结果来确定两者之间用于传输数据的硬件模块功能是否正常。当主控mcu和辅控mcu的串口以相同波特率工作时,如果主控mcu每次向辅控mcu发送约定的数据请求后,总是能得到辅控mcu的正确的响应数据,则认为两者之间赖以传输数据的rs485模块硬件功能和性能是正常的,否则认为rs485模块功能或性能不符合要求。
[0049]
本发明的优点:该装置可同时测试多个rs485模块,只需将待测模块插入模块插座中,然后按装置的开始按键即可进行模块功能测试,并将测试的状态和结果通过led指示灯,lcd显示屏及蜂鸣器等多种方式显示出来,操作简单方便,测试高效。
【附图说明】
[0050]
图1为本发明的整体功能模块图;
[0051]
图2为本发明的主控模块电路图;
[0052]
图3为本发明的辅控模块电路图;
[0053]
图4为本发明的电源模块电路图;
[0054]
图5为本发明的主控mcu程序流程图;
[0055]
图6为本发明的辅控mcu程序流程图;
[0056]
图7为本发明的整体程序流程图;
[0057]
图8为传统rs485模块测试硬件连接示意图;
[0058]
图9为传统rs485模块接口图;
[0059]
图10为传统usb转uart模块接口图。
[0060]
其中:v1、g1、tx和rx为uart接口,v1为uart口电源,g1为uart口地,tx和rx分别为uart口的发送和接收口;v2、g2、a和b为rs485接口,v2、g2分别为电源和地,a、b为rs485数据传输的差分接口。
【具体实施方式】
[0061]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]
请参阅图8-10一般方案对rs485模块的测试过程为:
[0063]
pc通过专用的串口软件将测试数据通过数据下行usb口经usb转uart模块传输给下行uart转rs485模块后,经上行uart转rs485模块、usb转uart模块和上行usb口返回;
[0064]
然后通过pc端串口软件或人工比较发送和返回的数据,如果完全相同则视为通信正常,上行和下行的两个uart转485模块功能都没问题,否则两个模块中至少有一个有问题,需用已验证过的模块分别替换这两个模块以确认问题模块。
[0065]
上述测试方法存在以下弊端:
[0066]
1)采用pc作为测试主机成本高,不便捷。
[0067]
2)占用pc串口资源多,接线多,且每次最多测试两个rs485模块,测试效率低。
[0068]
3)缺少测试的中间过程状态的指示,不利于定位问题点所在。
[0069]
针对一般rs485模块测试方法存在的缺陷,本发明提出一种基于嵌入式系统的多通道rs485模块测试方法,该装置可同时测试多个rs485模块,只需将待测模块插入模块插座中,然后按装置的开始按键即可进行模块功能测试,并将测试的状态和结果通过led指示灯,lcd显示屏及蜂鸣器等多种方式显示出来,操作简单方便,测试准确高效。
[0070]
实施例1
[0071]
以下为本发明提供的实施例1:
[0072]
一种基于嵌入式系统的多通道rs485模块测试方法,装置包括主控模块、辅控模块、电源模块、rs485模块插座组。
[0073]
主控:整个测试装置的核心控制部分,负责整个装置的人机交互及测试过程控制;辅控:负责对主控发出的测试信息进行响应;电源模块给装置提供正常工作所需的+24v直流电源;rs485模块插座组用于连接被测的rs485模块。
[0074]
将被测rs485模块插入模块插座组中,连接外部电源适配器,打开电源开关。
[0075]
+24v电源经装置内部两路dc/dc电源模块后产生两路+5v电源,一路供给主控部分和辅控部分,一路供给rs485模块。
[0076]
主控mcu上电初始化内部数据及各个功能模块后,运行指示灯以1hz的频率闪烁,通道指示灯熄灭,与lcd组态屏接口的modbusrtu服务启动,同时等待用户操作。用户可有以下两种操作:
[0077]
a)通讯波特率调整
[0078]
通讯波特率最小为1200bps,最大为9600bps。用户每按一次“加”、“减”键,波特率增加或减小1200bps。用户选择好波特率并按下确认键后,主mcu根据新的配置重新初始化所有测试通道,然后将波特率配置信息通过与辅控mcu相连的并口io发送给辅控mcu。
[0079]
b)开始/停止测试
[0080]
用户按下“启/停”按键后,如果当前正处于模块测试中,则停止测试,熄灭通讯指示灯,主控mcu不再向被测rs485模块发送测试数据,也不再接收其返回的数据。
[0081]
辅控mcu上电初始化内部数据及各个功能模块后,运行指示灯以1hz的频率闪烁,通道指示灯熄灭,同时不断监听所有板载rs485模块的通讯口,以及与主控mcu相连的并口io。如果板载rs485模块通讯口有接收到正确的测试数据帧,则点亮对应通道的led指示灯,完成相应的内部操作并通过板载rs485模块向主控mcu返回相应的数据后再熄灭led指示灯。如果从并口接收到新的波特率配置信息,则辅控mcu根据新的配置重新初始化所有板载rs485模块通讯口,然后再监听所有板载rs485模块通讯口。
[0082]
实施例2
[0083]
实施例2为5通道rs485模块测试实施例,以下针对其上电运行、测试、波特率切换三个功能进行详细说明:
[0084]
1.上电运行
[0085]
将待测rs485模块插入图3所示辅控电路图的被测rs485模块插座(m2、m4、m6、m8、m10),将外部+24v直流电源连接到图4所示电源电路图的cn1插座,闭合开关sw1使装置上电。输入24v电源经过u2(k7805-1000l)稳压输出+5v1供电给主控部分和辅控部分。输入24v电源经u3(k7805-1000l)稳压输出5v后再经u1(ib0505s-2wr3)隔离后供电给rs485模块。
[0086]
2.主控mcu运行
[0087]
主控mcu u6(ht6025)上电后,同时进行以下几个操作:
[0088]
a.开启modbusrtu服务,以随时响应来自lcd组态屏接口(cn2)的modbusrtu请求;
[0089]
b.控制运行指示灯led7(运行指示灯)以1hz的频率闪烁;
[0090]
c.监听sw2、sw3、sw4、sw5按键输入,根据不同的按键输入执行对应的操作;
[0091]
d.控制蜂鸣器buzzer1在有按键按下时发出按键提示音(“嘀”)。
[0092]
3.辅控mcu运行
[0093]
辅控mcu u5(ht6025)上电后,同时进行以下操作:
[0094]
a.开启modbusrtu服务,以随时响应来自板载rs485模块(m3、m5、m7、m9、m11)的modbusrtu请求;
[0095]
b.控制运行指示灯led1(运行指示灯)以1hz的频率闪烁。
[0096]
4.测试
[0097]
a.装置上电运行后,按下“启/停”键(sw2)启动测试后,主控mcu u6(ht6025)同时向被测rs485模块(m2、m4、m6、m8、m10)发送modbusrtu请求,这些modbusrtu请求经被测rs485模块传送给板载rs485模块(m3、m5、m7、m9、m11)后,被辅控mcu u5(ht6025)接收;
[0098]
b.辅控mcu u5接收到这些请求后,首先点亮对应的led指示灯(led2~led6),然后进行内部数据处理及相关操作生成相应的modbusrtu响应,通过板载rs485模块、被测rs485模块返回给主控mcu u6(ht6025),响应发送完后,熄灭led2~led6;
[0099]
c.主控mcu u6接收到辅控mcu u5返回的modbusrtu响应后,点亮对应的led指示灯(led8~led12),延时一段时间后,熄灭led8~led12,再重新发送modbusrtu请求以开始下一次测试。
[0100]
5.波特率切换
[0101]
装置上电运行后或者停止测试后,按“加”或“减”键调整好波特率,然后再下“确认”键,主控mcu u6(ht6025)根据新的配置重新初始化所有测试通道,然后将波特率配置信息通过与辅控mcu相连的并口io(dio0~dio2)发送给辅控mcu u5,u5根据新的配置重新初
始化所有板载rs485模块通讯口,然后再监听所有板载rs485模块通讯口。
[0102]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1