本发明专利技术涉及一种两线制解决RS485多主仲裁冲撞的系统,包括用于实现信号抢占的硬件层、用于以不定长空闲监控和不定长抢占头机制引导设备在不同时间启动数据发送的链路层和用于对发送数据帧组包、对接收数据拆包校验的数据校验层,硬件层包括一个或多个两线制总线抢占机制电路。本发明专利技术只需两线制总线即可完成抢占,结构简单;提供随机抢占机制,在总线的空闲时可生成几十万种的随机抢占信号,实现每个设备都有不同的抢占标识,大大提高了设备的总线抢占成功率,空闲时间越长,随机数越多;提供数据校验机制,针对每包应用数据进行CRC封装解析,提高数据的正确性;总线抢占成功率较高,极大的减少了总线抢占消耗的时间,提高了总线使用率。
【技术实现步骤摘要】
一种两线制解决RS485多主仲裁冲撞的系统
本专利技术涉及信息或其他信号在存储器、输入/输出设备或者中央处理机之间的互连或传送的
,特别涉及一种两线制解决RS485多主仲裁冲撞的系统。
技术介绍
RS485总线是一种常规的通信总线,其不能够进行总线的自动仲裁,也就是说,为了避免总线竞争,是无法向总线同时发送数据的,因此整个系统的通信效率必然较低,数据冗余量较大,对于速度要求高的应用场所不适应用RS485总线。当然,RS485总线也有其优势,为了充分应用此优势,目前已有基于多种应对上述弊端的多主RS485总线仲裁的方法,如采用三线制总线,设置收、发总线和控制线,发送数据时先设置控制引脚,发送完后,撤销控制引脚。然而,当系统设备比较多的时候,这种系统结构难免会遇到几乎同时发送控制线的设备,就会导致多个设备同时抢占成功,进而导致数据发送失败。
技术实现思路
本专利技术解决了现有技术中的问题,提供了一种优化的两线制解决RS485多主仲裁冲撞的系统。本专利技术所采用的技术方案是,一种两线制解决RS485多主仲裁冲撞的系统,所述系统包括:一硬件层,包括一个或多个两线制总线抢占机制电路,用于实现信号的抢占;一链路层,用于以不定长空闲监控和不定长抢占头机制引导设备在不同时间启动数据发送;一数据校验层,用于对发送的数据帧组包、对接收的数据进行拆包校验。优选地,所述两线制总线抢占机制电路包括配合设置的MCU和RS485收发芯片,所述RS485收发芯片的数据线为信号抢占线。优选地,所述RS485收发芯片的接收端与MCU的串口接收端连接,所述RS485收发芯片的发送端与MCU的串口发送端连接;所述RS485收发芯片的T/R端连接MCU的IO输出端,用于实现芯片的发送接收使能控制;所述RS485收发芯片的接头端连接MCU的IO输出端,用于实现总线抢占控制。优选地,所述RS485收发芯片的接收端还连接MCU的IO输入端,用于监听总线是否空闲。优选地,所述RS485收发芯片的接收端对应的MCU的IO输入端监听总线的跳边沿变化,检测到有总线跳变则认为总线被占用;在总线空闲时控制输出RS485收发芯片的接头端引脚,使总线B端电平变化,进行总线抢占;总线抢占成功后,撤销接头端引脚控制,发送数据。优选地,所述链路层中,不定长空闲监控和不定长抢占头机制包括以下步骤:步骤1:RS485收发芯片的接收端对应的MCU的IO输入端监听总线;若超过预设时间T1没有接收到总线跳变信号,则进行步骤2,否则重复步骤1;步骤2:进入总线不定长空闲监控状态;产生一个随机数N,基于预设规则,以N关联一监听时间T2,在T2时间内检测是否存在总线跳变信号,若有,则返回步骤1,否则,进行下一步;其中,N为1至1024的整数;步骤3:进入不定长抢占头状态;生成随机时间T3,产生控制引脚作为抢占头,当RS485收发芯片的接收端状态变化,启动定时器,在定时时间结束时,恢复控制引脚;记录控制引脚作为抢占头的真实时间TL;在总线抢占头发送时,RS485收发芯片的接收端对应的MCU的IO输入端监听总线状态,检测到总线跳变后启动定时器,记录引脚产生数据监听的时间TS;步骤4:对TL和TS进行校验,若误差小于预设值,则抢占成功,否则失败,返回步骤1;步骤5:延时预设时间后进入数据发送状态,发送真实数据。优选地,所述步骤1中,T1为5ms。优选地,所述步骤2中,T2为N*15μs。优选地,所述步骤3中,T3为200~800μs。优选地,所述步骤5中,对发送的数据帧增加标准头、数据长度和CRC,发送时,进行数据帧组包,接收时,对接收的数据进行拆包并校验。本专利技术提供了一种优化的两线制解决RS485多主仲裁冲撞的系统,包括用于实现信号的抢占的硬件层、用于以不定长空闲监控和不定长抢占头机制引导设备在不同时间启动数据发送的链路层和用于对发送的数据帧组包、对接收的数据进行拆包校验的数据校验层,其中,硬件层包括一个或多个两线制总线抢占机制电路。本专利技术的有益效果在于:(1)与三线制总线相比,只需要两线制总线即可完成抢占,结构简单;(2)提供随机抢占机制,在总线的空闲时可生成几十万种的随机抢占信号,实现每个设备都有不同的抢占标识,大大提高了设备的总线抢占成功率,空闲时间越长,随机数越多;(3)提供数据校验机制,针对每包应用数据进行CRC封装解析,提高数据的正确性;(4)总线抢占成功率较高,极大的减少了总线抢占消耗的时间,提高了总线使用率。附图说明图1为本专利技术的系统的工作流程图;图2为本专利技术中RS485收发芯片的连接参考示意图。具体实施方式下面结合实施例对本专利技术做进一步的详细描述,但本专利技术的保护范围并不限于此。本专利技术涉及一种两线制解决RS485多主仲裁冲撞的系统,针对总线抢占失败提供解决方法,以硬件层实现数据传输,以链路层实现总线抢占发送,以数据校验层实现数据校验,同时链路层提供一种不定长空闲监控和不定长抢占头机制,为总线每个设备提供不一样的抢占空闲时间从而解决总线同时冲撞的问题。所述系统包括:一硬件层,包括一个或多个两线制总线抢占机制电路,用于实现信号的抢占;所述两线制总线抢占机制电路包括配合设置的MCU和RS485收发芯片,所述RS485收发芯片的数据线为信号抢占线。所述RS485收发芯片的接收端与MCU的串口接收端连接,所述RS485收发芯片的发送端与MCU的串口发送端连接;所述RS485收发芯片的T/R端连接MCU的IO输出端,用于实现芯片的发送接收使能控制;所述RS485收发芯片的接头端连接MCU的IO输出端,用于实现总线抢占控制。所述RS485收发芯片的接收端还连接MCU的IO输入端,用于监听总线是否空闲。所述RS485收发芯片的接收端对应的MCU的IO输入端监听总线的跳边沿变化,检测到有总线跳变则认为总线被占用;在总线空闲时控制输出RS485收发芯片的接头端引脚,使总线B端电平变化,进行总线抢占;总线抢占成功后,撤销接头端引脚控制,发送数据。本专利技术中,硬件层的两线制总线抢占机制电路主要由一个主控MCU和一个RS485收发芯片构成,在不增加总线条数的情况下实现抢占信号,485总线B作为数据线的同时也作为抢占信号线。本专利技术中,RS485收发芯片可以为SN65HVD12DR,此芯片的选择和具体的接线可以由本领域技术人员自行设置,此处给出部分连接参考,如图2所示:以U0_RX(RS485收发芯片的接收端)连接MCU的串口接收端;以U0_RX同时也连接MCU的一个IO输入,用于监听总线是否空闲;以U0_TX(RS485收发芯片的发送端)连接MCU的串口发送端;以RS485收发芯片的T/R连接MCU的IO输出,实现RS485收发芯片的发送接收使本文档来自技高网...
【技术保护点】
1.一种两线制解决RS485多主仲裁冲撞的系统,其特征在于:所述系统包括:/n一硬件层,包括一个或多个两线制总线抢占机制电路,用于实现信号的抢占;/n一链路层,用于以不定长空闲监控和不定长抢占头机制引导设备在不同时间启动数据发送;/n一数据校验层,用于对发送的数据帧组包、对接收的数据进行拆包校验。/n
【技术特征摘要】
1.一种两线制解决RS485多主仲裁冲撞的系统,其特征在于:所述系统包括:
一硬件层,包括一个或多个两线制总线抢占机制电路,用于实现信号的抢占;
一链路层,用于以不定长空闲监控和不定长抢占头机制引导设备在不同时间启动数据发送;
一数据校验层,用于对发送的数据帧组包、对接收的数据进行拆包校验。
2.根据权利要求1所述的一种两线制解决RS485多主仲裁冲撞的系统,其特征在于:所述两线制总线抢占机制电路包括配合设置的MCU和RS485收发芯片,所述RS485收发芯片的数据线为信号抢占线。
3.根据权利要求2所述的一种两线制解决RS485多主仲裁冲撞的系统,其特征在于:所述RS485收发芯片的接收端与MCU的串口接收端连接,所述RS485收发芯片的发送端与MCU的串口发送端连接;
所述RS485收发芯片的T/R端连接MCU的IO输出端,用于实现芯片的发送接收使能控制;
所述RS485收发芯片的接头端连接MCU的IO输出端,用于实现总线抢占控制。
4.根据权利要求3所述的一种两线制解决RS485多主仲裁冲撞的系统,其特征在于:所述RS485收发芯片的接收端还连接MCU的IO输入端,用于监听总线是否空闲。
5.根据权利要求4所述的一种两线制解决RS485多主仲裁冲撞的系统,其特征在于:所述RS485收发芯片的接收端对应的MCU的IO输入端监听总线的跳边沿变化,检测到有总线跳变则认为总线被占用;在总线空闲时控制输出RS485收发芯片的接头端引脚,使总线B端电平变化,进行总线抢占;总线抢占成功后,撤销接头端引脚控制,发送数据。
6.根据权利要求1所述的一种两线制解决RS485多主仲裁冲撞的系统,其特征在于:...
【专利技术属性】
技术研发人员:梁昆,覃文君,钱伟,张轩铭,
申请(专利权)人:杭州拓深科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。