CN111277478B - 一种基于不同波特率从设备的rs485总线复用控制方法 - Google Patents
一种基于不同波特率从设备的rs485总线复用控制方法 Download PDFInfo
- Publication number
- CN111277478B CN111277478B CN202010104712.3A CN202010104712A CN111277478B CN 111277478 B CN111277478 B CN 111277478B CN 202010104712 A CN202010104712 A CN 202010104712A CN 111277478 B CN111277478 B CN 111277478B
- Authority
- CN
- China
- Prior art keywords
- slave
- microprocessor
- bus
- ask
- slave device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/4013—Management of data rate on the bus
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及在一种基于不同波特率从设备的RS485总线的复用控制方法。系统是由RS485总线构成的分布式系统,由主设备、RS485总线,从设备组构成,其中主设备和RS485相连,RS485分别和从设备组相连;微处理器保存有由从设备属性配置结构体定义的从设备配置单元组mySlave[n],先检查微处理器的串口波特率配置是否和mySlave[Ask].BitRate一致,如不一致,则重新配置串口波特率,延时D1,将RS485器件配置为发送,延时D2,发送指令,延时D3,再将RS485器件配置为接收。采用本发明无需额外增加485相关电路,可实现同一个RS485总线上主设备和从设备之间不同波特率的通讯。
Description
技术领域
本发明涉及一种RS485总线通讯技术领域,特别是涉及一种基于不同波特率从设备的RS485总线复用控制方法。
背景技术
RS485总线因其具有较强的抗干扰能力、良好的可靠性能、适用于中长距离通信等优点,在一主多从架构的分布式应用领域得到了广泛应用,有全双工、半双工和单工三种模式,其中以半双工模式的主问从答最为常见,波特率固定、通信协议固定,这种工作方式在从机较多时存在轮训时间长、数据收集慢等不足。因此,围绕如何提高此类系统中从机的数据上报效率,2008年《单片机与嵌入式系统》第8期的“提高RS485总线主从通信效率的软件设计”利用多播轮询方式可节约通信时间,增强了数据的实时性;2008年《机电工程》第4期的“基于变波特率的RS485消防车检测系统的设计”提出了一种应用于中小型分布式实时检测系统的变波特率RS485主从式总线结构,为RS485总线应用提供了一种的思路;2016年《计算机应用与软件》第2期的“非确定时序的多设备异波特率串行通信的研究”选取了一个主设备和三个从设备组成的模型进行研究,其中三个从设备分别具有不同的特性:能定时应答主设备询问和固定波特率的从设备,能定时应答主设备询问和波特率可设的从设备,以及非确定时间应答主设备询问和波特率可设的从设备,采用插值异波特率通信协议能提高非确定时序的主从式多设备通信的效率,而且避免某些从设备误收数据,同时该通信协议可以适用于其他本身不能自动仲裁的现场总线通信。另外,实际应用驱动研究,围绕RS485总线还拓展了其他设计,如文献CN104579881B发明了一种可配置RS232/422/485复用电路,包括复用控制模块、隔离收发模块、数据收发模块、接线端子复用模块,将处理器的UART的TX和RX信号通过光电隔离器隔离以后分别接入RS232收发器和差分收发器收发引脚,利用微处理器的3个IO引脚分别控制3个光电隔离型MOSFET继电器进一步控制3个不同的数据收发器进行切换来是实现多种通信方式的复用和可配置;文献CN105844893B发明了一种接口转换器RS485通信接口抄表与维护复用的方法,实现多增加了一个抄表信道,增加了转换器的带载数量,减少了转换器的数量;针对MCU非常有限的串口资源,依据MCU与外部串口的通信时间不到1%,也就是说99%的时间是不工作的情况;文献CN107391417A公开了一种复用串口的方法,大幅提升串口资源利用率;文献CN105721171B发明了一种485接口电路的低功耗控制方法,将485接口器件分为三种状态:发送态、接收态、休眠态,485接口器件在三种状态中以间歇模式工作,从而有效降低器件功耗;文献CN106953809A公开一种基于485分时通信的设备资源采集方法,确定主设备和其通过RS485总线连接的每个从设备的时隙,在每个从设备的时隙内,发送资源变化消息给主设备,在主设备的时隙内,根据接收到的资源变化消息同时向对应的从设备返回资源获取请求,根据从设备接收到的资源获取请求,在其时隙内将资源数据发送给主设备,可满足通信设备大批量的数据采集需求。
如果在同一个RS485总线中存在不同波特率的从设备,常规技术中那种只有与主机波特率相同的从设备才能完成通讯的模式就无法满足此类应用需求。为此,要么选择铺设更多的RS485线路,一条RS485线路一种波特率,要么选择在从机端实现自动识别主机的波特率并进行自动跟踪调整。文献CN107222344A公开了可同一路RS485上采集不同波特率和协议的设备数据的系统,操作人员在远程服务器的软件中根据RS485采集模块接入的每一个设备的通讯协议和波特率进行单独的配置一对一的采集规则,微控制器获取远程服务器的上述的采集规则的配置文件,配置文件包合对每个接入RS485采集模块的采集协议、采集间隔和每个接入的设备所在的总线路数等信息,当配置文件获取并校验配置文件正确后,微控制器按照规则,对采集模块传送配置文件,采集模块收到属于自己的配置信息之后,按照规则,经过max485芯片的电平转换之后,将采集代码发送到设备上,设备响应后,将数据传回暂存在采集模块中,等微控制器来拉去数据,等RS485采集模块采集完成后,微控制器依次拉去数据;文献CN106130856A设计了一种自适应波特率485通讯协议,包括时钟检测模块、数据接收模块、综合处理单元、数据发送模块、与标准RS485总线连接的RS485收发器,时钟检测模块用于RS485总线的波特率自动识别,完成与主设备的波特率匹配并设置好数据接收模块和数据发送模块的波特率,将总线接收切换给数据接收模块,实现在同一RS485总线系统中,各从设备可以用不同的波特率完成与主设备的通讯。
因此,在RS485总线的主设备实现RS485接口电路的复用控制方法,满足主设备和不同波特率从设备之间的通讯,可进一步丰富RS485总线应用,具有应用价值。
发明内容
本发明的目的是为RS485总线上的主设备提供一种RS485总线的复用控制方法,实现在同一个RS485总线上主设备和不同波特率从设备之间的通讯。
为达到上述目的,本发明的设计技术方案是:
一种基于RS485总线的分布式系统,由主设备(101)、RS485总线(102),从设备组1(1011、1012、1013)、从设备组2(1021、1022、1023)和从设备组3(1031、1032、1033)构成,其中主设备和RS485相连,RS485同时和从设备1、从设备2、从设备3相连,从设备组1的波特率为B1,从设备组2的波特率为B2,从设备组3的波特率为B3,其中,B1不等于B2,B2不等于B3,B1不等于B3。
所述的主设备、从设备,由微处理器(201)、电源模块(202)、RS485器件(203)和其它功能电路(204)组成;其中,电源模块(202)分别和微处理器(201)、RS485器件(203)、其它功能电路(204)相连,微处理器(201)和RS485器件(203)、其它功能电路(204)相连。
所述的主设备、从设备,其微处理器(201)的RX1、TX1、DE1、RE1分别和RS485器件(203)的TX2、RX2、DE2、RE2相连。
所述的主设备、从设备,其构成中的RS485器件(203),是一个半双工的接口器件,主设备、从设备只在发送数据时把RS485器件(203)配置为输出方式,其他均配置为输入方式;某一时刻,RS485总线上只有一个设备发送数据,其他设备为输入接收状态。
所述的RS485总线,以主设备问、从设备答的半双工方式通讯,一个字节的格式位数为S1位,通常S1为10,由1个起始位、1个停止位和8个数据位组成;如果通讯的波特率为B4,即每秒传送B4个字节,则通讯的比特率BitRate为B4×S1。
所述的主设备,其内部微处理器(201)设置有一个从设备属性配置结构体,由比特率、超时时间、指令长度、m字节指令缓冲区组成,如下表所示:
变量名 | 类型 | 说明 |
BitRate | uint32 | 通讯的比特率 |
Timeout | uint8 | 发送指令后等待从设备应答的最大时间,单位:毫秒 |
CmdLen | uint8 | 一包指令数据的长度 |
Cmd[m] | uint8 | 一包指令数据的缓冲区 |
所述主设备的微处理器(201),设置有由从设备属性配置结构体定义的从设备配置单元组mySlave[n],n为从设备的个数。
所述主设备的微处理器(201),有一个轮询控制单元(Ask),范围:0~n,用于以轮询方式读取从设备mySlave[Ask]中配置数据。
所述主设备的微处理器(201),以轮询方式启动向RS485发送指令时,首先读取mySlave[Ask]的数据,其次检查微处理器(201)的串口比特率配置是否和mySlave[Ask].BitRate一致,如果不一致则开始后续处理步骤,以mySlave[Ask].BitRate数据配置微处理器(201)的串口比特率,延时一段时间D1,D1的单位为微秒,范围:1~10,然后,将RS485器件(203)配置修改为发送状态,延时一段时间D2,D2的单位为微秒,范围:1~30,最后,将mySlave[Ask].Cmd[0]到mySlave[Ask].Cmd[mySlave[Ask].CmdLen]的数据依次发送到RS485总线,指令全部发送完成后,延时一段时间D3,D3的单位为毫秒,将RS485器件(203)配置修改为接收状态,其中:D3=S1×W1×1000/(mySlave[Ask].BitRate),式中,S1为一个字节的格式位数,W1范围为1.5~10,mySlave[Ask].BitRate为第Ask个从设备的比特率。
所述主设备的微处理器(201),设置有一个定时器T3。
所述主设备的微处理器(201),把指令发送到RS485总线完成后,用mySlave[Ask].Timeout数据配置定时器T3,启动T3开始计时。
所述主设备的微处理器(201),串口中断接收到RS485送来的数据时,关闭T3。
所述主设备的微处理器(201)的定时器T3中断发生时,Ask加一后对n取余操作,准备启动轮询下一个从设备操作。
所述主设备的微处理器(201),串口接收完成一包数据后,对数据按照协议进行解析,解析完成后,Ask加一后对n取余操作,准备启动轮询下一个从设备操作。
与现有技术相比,本发明的有益效果是:本方法在现有硬件平台上就可实现同一个RS485总线上主设备和从设备之间的不同波特率通讯,无需额外增加485相关电路,具有资源少、使用方便等优点。
本发明的目的、特征及优点将通过实施例并结合附图进行详细说明。
附图说明
图1是本发明的应用结构图。
图2是本发明的主设备硬件构成图。
图3是从设备属性配置结构体及从设备配置单元组成示意图。
图4是微处理器发送服务流程图。
具体实施方式
图1中,101是主设备,102是RS485总线,1011、1012、1013是波特率1的从设备1、2、m,m≤255,1021、1022、1023是波特率2的从设备1、2、n,n≤255,1031、1032、1033是波特率3的从设备1、2、p,p≤255,并且,(m+n+p)≤255,101和102相连,102分别和1011、1012、1013、1021、1022、1023、1031、1032、1033相连,RS485总线以半双工方式通讯。
图2中,201是微处理器,202是电源模块,203是RS485器件,204是其它功能电路,202分别和201、203、204相连,201和204相连,201的串口接收端RX1、发送端TX1分别和203的发送端TX2、接收端RX2相连,201的DE1、RE1引脚分别和203的DE2、RE2相连。
图3中,301是比特率单元,302是超时时间单元,303是指令长度单元,304是m字节指令缓冲区,301、302、303、304构成从设备属性配置结构体;305是轮询控制单元(Ask),31011、31012、31013、31021、31022、31023、31031、31032、31033是由从设备属性配置结构体定义的从设备配置单元,保存在微处理器中,由微处理器轮询方式读取进行操作。
为了更详细的描述本发明,下面结合图3和图4作进一步说明。
步骤401:主设备准备轮询发送服务,然后执行步骤402;
步骤402:读取当前从设备配置单元mySlave[Ask]的数据,执行步骤403;
步骤403:检查主设备微处理器串口比特率是否和当前从设备配置单元mySlave[Ask]的比特率一致,如果相等执行步骤406,否则不相等执行步骤404;
步骤404:以从设备配置单元mySlave[Ask]的比特率数据配置主设备微处理器的串口比特率,然后执行步骤405;
步骤405:延时D1,然后执行步骤406;
步骤406:将RS485器件配置修改为发送状态,然后执行步骤407;
步骤407:延时D2,然后执行步骤408;
步骤408:发送当前从设备配置单元mySlave[Ask]数据的指令,然后执行步骤409;
步骤409:延时D3,然后执行步骤410;
步骤410:将RS485器件配置修改为接收状态,然后执行步骤411;
步骤411:用当前从设备配置单元mySlave[Ask]的超时时间数据配置主设备微处理器定时器T3中断时间,启动T3,然后执行步骤412;
步骤412:服务结束。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应该理解,我们所描述的具体实施例只是说明性的,而不是用于对本发明范围的限定,任何受本发明技术路线启发所作的等效修饰以及变化,都应当涵盖在本发明权利要求所保护的范围内。
Claims (6)
1.一种基于不同波特率从设备的RS485总线复用控制方法,其特征在于:
1)由包含微处理器(201)的主设备(101)、RS485总线(102),从设备组1、从设备组2和从设备组3构成,其中主设备(101)和RS485相连,RS485总线(102)同时和从设备1、从设备2、从设备3相连,从设备组1的波特率为B1,从设备组2的波特率为B2,从设备组3的波特率为B3,其中,B1不等于B2,B2不等于B3,B1不等于B3,RS485(102)总线以主设备问、从设备答的半双工方式通讯,一个字节的格式为S1位;
2)所述的主设备、从设备,由微处理器(201)、电源模块(202)、RS485器件(203)和其它功能电路(204)组成;其中,电源模块(202)分别和微处理器(201)、RS485器件(203)、其它功能电路(204)相连,微处理器(201)和RS485器件(203)、其它功能电路(204)相连;
3)所述主设备(101)的微处理器(201),内部设置有一个从设备属性配置结构体,由波特率BitRate、超时时间Timeout、指令长度CmdLen、m字节指令缓冲区Cmd[m]组成,设置有由从设备属性配置结构体定义的从设备配置单元组mySlave[n],n为从设备的个数;主设备的微处理器(201),有一个轮询控制单元(Ask),范围:0~n,用于以轮询方式读取从设备mySlave[Ask]中配置数据;
4)所述主设备(101)的微处理器(201),首先读取mySlave[Ask]的数据,其次检查微处理器(201)的串口波特率配置是否和mySlave[Ask].BitRate一致,如果不一致,则以mySlave[Ask].BitRate数据配置微处理器(201)的串口波特率,延时一段时间D1;D1的单位为微秒,范围:1~10;然后,将RS485器件(203)配置修改为发送状态,延时一段时间D2,D2的单位为微秒,范围:1~30;最后,将mySlave[Ask].Cmd[0]到mySlave[Ask].Cmd[mySlave[Ask].CmdLen]的数据依次发送到RS485总线(102),指令全部发送完成后,延时一段时间D3,D3的单位为毫秒,将RS485器件(203)配置修改为接收状态;
D3=S1×W1×1000/(mySlave[Ask].BitRate),W1范围为1.5~10。
2.根据权利要求1所述的一种基于不同波特率从设备的RS485总线复用控制方法,其特征在于所述的主设备、从设备,其微处理器(201)的RX1、TX1、DE1、RE1分别和RS485器件(203)的TX2、RX2、DE2、RE2相连。
3.根据权利要求1所述的一种基于不同波特率从设备的RS485总线复用控制方法,其特征在于从设备组1包括有从设备组1的波特率为B1的从设备1、2、m,m≤255;从设备组2包括有从设备组2的波特率为B2的从设备1、2、q,q≤255;从设备组3包括有从设备组3的波特率为B3的从设备1、2、p,p≤255,并且,(m+q+p)≤255。
4.根据权利要求1所述的一种基于不同波特率从设备的RS485总线复用控制方法,其特征在于所述主设备的微处理器(201),设置有一个定时器T3;当微处理器(201)把指令发送到RS485总线完成后,用mySlave[Ask].Timeout数据配置定时器T3,启动T3开始计时;所述微处理器(201),串口中断接收到RS485送来的数据时,关闭T3。
5.根据权利要求1所述的一种基于不同波特率从设备的RS485总线复用控制方法,其特征在于所述主设备,其微处理器(201)的定时器T3中断发生时,Ask加一后对n取余操作,准备启动轮询下一个从设备操作。
6.根据权利要求1所述的一种基于不同波特率从设备的RS485总线复用控制方法,其特征在于所述主设备,其微处理器(201)完成一包数据接收后,对数据按照协议进行解析,解析完成后,Ask加一后对n取余操作,准备启动轮询下一个从设备操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010104712.3A CN111277478B (zh) | 2020-02-20 | 2020-02-20 | 一种基于不同波特率从设备的rs485总线复用控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010104712.3A CN111277478B (zh) | 2020-02-20 | 2020-02-20 | 一种基于不同波特率从设备的rs485总线复用控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277478A CN111277478A (zh) | 2020-06-12 |
CN111277478B true CN111277478B (zh) | 2022-01-18 |
Family
ID=71002236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010104712.3A Active CN111277478B (zh) | 2020-02-20 | 2020-02-20 | 一种基于不同波特率从设备的rs485总线复用控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111277478B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813021A (zh) * | 2020-07-15 | 2020-10-23 | 深圳市天磁科技有限公司 | 一种rs485地址复用的多从机数据采集系统 |
CN111698139A (zh) * | 2020-07-15 | 2020-09-22 | 深圳市天磁科技有限公司 | 一种rs485总线多主机竞争切换方法 |
CN113259169A (zh) * | 2021-06-01 | 2021-08-13 | 武汉慧联无限科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113543202B (zh) * | 2021-07-29 | 2024-09-24 | 陕西天基通信科技有限责任公司 | 一种设备序列号sn上报方法及系统 |
CN114070670A (zh) * | 2021-10-21 | 2022-02-18 | 杭州奥能电源设备有限公司 | 一种基于rs485环形网络的分布式系统及操作方法 |
CN114430354B (zh) * | 2022-01-27 | 2024-04-09 | 中安智联未来有限公司 | 一种基于can总线的i/o模块扩展通信方法和设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100041349A1 (en) * | 1989-08-03 | 2010-02-18 | Broadcom Corporation | Remote radio data communication system with data rate switching |
CN202711246U (zh) * | 2012-07-31 | 2013-01-30 | 深圳市赛格导航科技股份有限公司 | 一种485总线与232总线的扩展应用系统 |
CN102868584B (zh) * | 2012-10-11 | 2015-05-06 | 江苏西电南自智能电力设备有限公司 | 一种采用串行通信接口的同步时分多路复用总线通信方法 |
CN104391814A (zh) * | 2014-11-10 | 2015-03-04 | 中国电子科技集团公司第二十研究所 | 一种参数可调节的通用rs232-can总线适配器 |
CN107147553B (zh) * | 2017-05-10 | 2019-12-17 | 深圳市亿维自动化技术有限公司 | 从站波特率及帧格式的调整方法、调整装置及调整设备 |
CN107357219A (zh) * | 2017-08-30 | 2017-11-17 | 江南大学 | 一种自适应工业网关 |
-
2020
- 2020-02-20 CN CN202010104712.3A patent/CN111277478B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111277478A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277478B (zh) | 一种基于不同波特率从设备的rs485总线复用控制方法 | |
CN103049414B (zh) | Fc总线与can总线间数据的转换及传输方法 | |
CN101150809B (zh) | 移动终端处理器串口唤醒与流控的方法 | |
CN102819512B (zh) | 一种基于spi的全双工通信装置及其方法 | |
CN108107827B (zh) | 一种基于zynq平台软核的srio控制方法 | |
CN101136735A (zh) | 使用通用异步收发报机的半双工串口通信系统及通信方法 | |
CN112713910B (zh) | Rs485收发状态的转换方法、系统、设备及介质 | |
CN116013055A (zh) | 一种基于hplc与hrf双模通信技术实现快速抄读电能表的测试方法 | |
CN114257245A (zh) | 一种基于dsp-fpga的多通道ad采集系统 | |
CN202230378U (zh) | 终端可任意扩展的运动控制系统 | |
CN108289323A (zh) | 一种基于zigbee的低功耗智能家居无线控制方式 | |
CN102929830A (zh) | 一种软件模拟快速通信协议 | |
CN104251536A (zh) | 一种一对多的电流环通信方法及通讯装置 | |
CN109328449A (zh) | RTEX-EtherCAT协议转换装置及工业控制系统 | |
CN102957586B (zh) | 基于无冲突协议的全双工rs485总线通信方法 | |
CN109800201B (zh) | 基于linux的RS485实时收发控制的驱动方法 | |
CN208477514U (zh) | 一种智能温控器的spi转uart的模拟电路 | |
CN110300042A (zh) | 一种总线通信系统及通信控制方法 | |
CN210804414U (zh) | 一种通讯接口可复用的电路 | |
CN116165516A (zh) | 一种用于硅后芯片的并行验证系统和芯片 | |
CN201774551U (zh) | 两物理隔断网络即时通讯数据摆渡传输器 | |
CN202206412U (zh) | 基于无冲突协议的全双工rs485总线通信装置 | |
CN101827290A (zh) | 一种可以直接和语音编解码器进行语音交换的pcm时隙交换方法 | |
CN210780847U (zh) | 一种EtherCAT总线时钟分布系统 | |
CN110297795B (zh) | 基于以太网phy芯片实现单路串行数据传输系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |