一种基于RS485多主机有线串行通讯的方法技术

技术编号:3492246 阅读:1012 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于RS485多主机有线串行通讯的方法,每一台设备均为主机,通过RS485总线相互连接,各设备间通过发送数据、接收数据、定时处理过程实现通讯。本发明专利技术使得各连接设备相互间能够直接通讯,摆脱了对一台主机的依赖,即使连接的主机中有一台或多台崩溃,其余的设备也可以正常通讯。而且节约了通讯时间和线路,提高了通讯效率,增强了通讯系统的通用性和可靠性。

【技术实现步骤摘要】

【技术保护点】
一种基于RS485多主机有线串行通讯的方法,其特征在于:每一台设备均为主机,通过RS485总线相互连接;各设备间的通讯,包括发送数据过程、接收数据过程和定时处理过程;其中发送数据过程包括以下步骤:(1-1)需要发送数据的发送方设备在发送数据前,首先判断要发送的数据包是一般数据包、点对点回复包还是重发包、广播数据包的回复包;(1-2)如果要发送的数据包是一般数据包或者点对点数据包的回复包,如果当前发送状态忙,则判断是否在发送延时中,并且当前数据包的紧急发送标志是否置位,如果不是,则暂缓发送;如果当前发送状态空闲,则设置好发送指针、发送计数器,再判断网络是否空闲,若网络空闲,则启动发送;若网络忙,则设置发送延时及重发次数,延时结束后再发送;(1-3)如果要发送的数据包是重发包或者广播数据包的回复包,则设置发送延时时间及重发次数,延时结束后发送;接收数据过程包括以下步骤:(2-1)判断当前是否处于数据包接收状态,若不是在数据包接收状态,则判断接收到的数据是否数据包起始标志,如果是起始标志,则将接收状态设置为数据包接收状态,并初始化接收缓冲区及接收指针,准备接收数据;(2-2)在数据包接收状态,判断接收到的数据是否数据包结束标志,如果不是结束标志,则数据进行转义处理后存入接收缓冲区;(2-3)在数据包接收状态下,接收到数据包结束标志,则判断数据包长度是否正确,长度正确则再判断数据包校验和是否正确,如果不正确的话,复位接收标志,返回接收空闲状态;(2-4)接收到的数据包长度、校验都正确的话,判断该数据包是否回复包,如果是回复包,则判断是否对本机地址的回复,如果是,则清除本机等待回复标志,等待发送新的数据包;如果不是对本机地址的回复,则进行竞争回复处理;(2-5)如果接收到的是一般数据包,则判断数据包的目的地址是否本机,如果是,则生成并发送回复包,并把接收到的数据交给上层程序进行处理;定时处理过程包括以下步骤:(3-1)判断当前发送状态是否在发送延迟;若在发送延时状态,则将发送延时减1,如果发送延时减少到0,则判断当前网络状态是否空闲,如果网络状态空闲,则发送数据包起始标志;否则,判断发送重试次数减1是否等于0,如果等于0,则发送出错;不等于0,则设置重发延时;(3-2)判断当前发送状态是否在发送超时状态;如果是,则判断发送超时时间减1是否等于0,若等于0,则启动发送超时处理;(3-3)判断是否处于等待ACK状态;如果是,...

【技术特征摘要】

【专利技术属性】
技术研发人员:王炅罗笑南王建民周健辉
申请(专利权)人:广州市聚晖电子科技有限公司中山大学
类型:发明
国别省市:81[中国|广州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1