本发明专利技术公开了一种电力线载波通信方法,涉及电力线载波通信领域。该电力线载波通信方法,包括发送方将长数据分为短数据组成一组数据包后,按照预设的间隔时间依次发送,接收方接收到数据包后,采用长度校验、校验值校验和包号连续性校验的方法确认数据的正确性,解决了电力线载波通信中有效通信时间短难以传输,信道干扰大,数据容易出错的技术问题,保证了传输数据的准确性和完整性。本发明专利技术的优点是方法简单、可靠性高、误码率低。
【技术实现步骤摘要】
本专利技术涉及一种数据通信的方法,尤其是一种载波通信的方法。
技术介绍
为了在220V/50Hz的交流电中完成通信,载波通信模块会选择在干扰最小的时候进行通信,即在电压的正玄波过零的时候前后1.5ms左右的时间进行通信,其波特率为1200bps。因为是50Hz的波形,每10ms才可以通信3.3ms左右时间,也就是1秒钟只有1/3的时间在通信,波特率为1200bps一秒钟最多通信1200/10=120字节,1/3的时间就是120/3=40字节/秒。可见我们一秒最多发送40字节,如果我们要发送长数据,将长时间占有载波网络,如果在期间有很多的其他终端也发起通信请求,势必造成通信失败。
技术实现思路
本专利技术所要解决的技术问题是针对上述载波通信通信时间短,容易受干扰的技术问题,提供一种操作简单、可靠性高、误码率低的电力线载波通信方法。本专利技术解决其技术问题所采用的技术方案是:一种电力线载波通信方法,包括:S1:发送方按照预设的时间间隔,依次发送一组数据包,所述数据包的结构包括:包号+数据正文+校验值;S2:接收方收到数据包,判断是否为该组最后一个数据包,若是则进入步骤S4;若不是,则进入下一步;S3:接收方对数据包进行长度校验,若长度错误,则发送出错包,请求发端重发该包;若长度正确,则进入下一步;S4:接收方对数据包进行校验值校验,若校验值错误,则发送出错包,请求发送方重发该包;若校验值正确,则进入下一步;S5:接收方对数据包进行包号连续性校验,若包号不连续,则发送出错包,请求发送方重发该包的上一包;若包号连续,则进入下一步;S6:判断是否接收完成该组数据包,若否,则不动作;若是,则接收结束。这里,接收方采用三种校验的方式,可以保证数据传输的正确性和完整性,这里采用包号连续性校验,不仅可以解决发送方发送的某个数据包丢失的问题,还可以解决当接收方接收到出错数据包后,发出出错包给发送方,发送方没收到出错包,继续发送新数据包的情况,接收方发现接收的数据包包号不连续会继续发送包号出错包,请求发送方发送上一个数据包,保证了数据接收的完整性。更优地,数据包的包号为1个字节、数据正文为6个字节,校验值为1个字节。这里,将待发送的长数据分成以6个字节为一组的数据组成数据包,加上1个字节的包号,用来表示这个是第几个分包,再加上1个字节的校验值,组成一个完整的数据包就是8个字节。8个字节的传输时间约为200ms。按一秒计算这样比不分包发送的成功率提高了5倍。更优地,数据包的校验值为该数据包包号和数据正文所有字节的校验值。更优地,预设的时间间隔为200ms。由于8个字节的传输时间约为200ms,我们将时间间隔预设为200ms,可以最大限度的提高通信效率。更优地,出错包的结构包括:出错包号+出错标志+校验值,包号为1个字节,出错标志为1个字节,校验值为1个字节。更优地,出错标志字节包括数据01、02和03,01代表CRC错,02代表长度错,03代表包号不连续。这里将出错包的出错标志分为三种,能够让发送方清楚的知道出错的问题,发送合适的数据包,节约了通信时间,保证了通信正确率。更优地,出错包的检验值为该出错包的出错包号和出错标志所有字节的校验值。更优地,校验值为CRC8校验值,采用的校验结果低位在前的格式。本专利技术的有益效果是:与现有的通信技术相比,本专利技术针对电力线载波通信的特性,提供了一种电力线载波通信方法,通过发送方将长数据分为短数据组成一组数据包后,按预设的间隔时间依次发送,接收方接收数据包后,采用长度校验、校验值校验和包号连续性校验的方法确认数据,解决了载波通信中有效通信时间短难以传输,信道干扰大,数据容易出错的技术问题,保证了传输数据的准确性和完整性。附图说明图1是本专利技术实施例电力线载波通信方法流程图。具体实施方式下面结合附图和实施例对本专利技术进一步说明。实施方式:如图1所示,本专利技术实施例提供的一种电力线载波通信方法,方法如下:发送方采用分包发送的方式,首先将一个长数据包分为以6个字节为一组的短数据包,我们在每个短数据包的前面加上1个字节的分包序列号,用来表示这个是第几个分包,为保证通信的过程能检查到是否被干扰了,我们将1个字节的分包序列号和6个字节的数据进行CRC8校验,CRC8校验值为1个字节作为数据包最后1个字节,这样一个完整的数据包就是8个字节。8个字节的传输时间约为200ms。按一秒计算这样比不分包发送的成功率提高了5倍。发送方按照200ms的时间间隔从第1个数据包开始发送到最后一个数据包。对于接收方来说,首先确定是否为最后一个数据包,如果是最后一个数据包,则只需要经过校验值校验和包号连续性校验,因为最后一个数据包不一定有6个字节的数据。如果不是最后一个数据包,则需要经过数据包长度校验,若数据包不是8个字节则说明数据包出错,发送出错包;若是8个字节则进入校验值校验,校验值如果不对则说明数据包出错,发送出错包;若校验值正确则进入包号连续性校验,如果发现和前一个包号不连续,则说明数据包出错,发送出错包请求发送方重发上一个数据包,如果包号连续则判断是否接收完成,若包号为FF,则说明数据传输流程结束,若不是则不动作继续接收。为节省网络通信资源,对校验正确的包不发起确定包,对应校验失败的包,接收方将发起出错包告知发送方哪一包数据出错了,要求重发。这样就保证整个通信是可控,和高效的。通信协议更为简化,出错包包括:出错包号+出错标志+校验值,共3个字节。发送方发送的数据包协议如下:如协议规定,最大能发250个数据包,250*6=1500字节,能最长发送1K以上的数据长度,完全满足应用需求了。最后一包包号为255,通知接收方该组数据包已经发完了。接收方返回的出错包协议如下:如协议规定,头字节返回出错包号,第2字节返回出错标志,对于出错标志1和2,发送方接收后将重发该包,对于出错标志3,发送方接收后将重发上一个包号的内容。如接收方没有接收到出错包,也将继续收到包号不连续的出错包。实施例1:A方向B方发送数据:6817917200000068110433343435D116。以上需要发送的数据共16个字节,按照分包要求分为3个包:第一包数据(16进制)如下:包号数据1数据2数据3数据4数据5数据6CRC801681791720000BF第二包数据(16进制)如下:包号数据1数据2数据3数据4数据5数据6CRC802006811043334D4第三包数据(16进制)如下:包号数据1数据2数据3数据4CRC8FF3435D116C9如第三包发现有CRC值出错,则B返回出错包如下:包号出错原因CRC8(低位)030126实施例2:A向B查询数据,B向A返回查询数据,数据如下:6817917200000068910633343435B5545A16。以上要发送的数据共18位,安装分包要求分为以下3包。第一包返回数据(16进制)如下:包号数据1数据2数据3数据4数据5数据6CRC801681791720000BF第二包返回数据(16进制)如下:包号数据1数据2数据3数据4数据5数据6CRC802006891063334DD第三包返回数据(16进制)如下:包号数据1数据2数据3数据4数据5数据6CRC8FF3435B5545A16A5本文档来自技高网...
【技术保护点】
一种电力线载波通信方法,其特征在于,包括:S1:发送方按照预设的时间间隔,依次发送一组数据包,所述数据包的结构包括:包号+数据正文+校验值;S2:接收方收到数据包,判断是否为该组最后一个数据包,若是则进入步骤S4;若不是,则进入下一步;S3:接收方对数据包进行长度校验,若长度错误,则发送出错包,请求发送方重发该包;若长度正确,则进入下一步;S4:接收方对数据包进行校验值校验,若校验值错误,则发送出错包,请求发送方重发该包;若校验值正确,则进入下一步;S5:接收方对数据包进行包号连续性校验,若包号不连续,则发送出错包,请求发送方重发该包的上一包;若包号连续,则进入下一步;S6:判断是否接收完成该组数据包,若否,则不动作;若是,则接收结束。
【技术特征摘要】
1.一种电力线载波通信方法,其特征在于,包括:S1:发送方按照预设的时间间隔,依次发送一组数据包,所述数据包的结构包括:包号+数据正文+校验值;S2:接收方收到数据包,判断是否为该组最后一个数据包,若是则进入步骤S4;若不是,则进入下一步;S3:接收方对数据包进行长度校验,若长度错误,则发送出错包,请求发送方重发该包;若长度正确,则进入下一步;S4:接收方对数据包进行校验值校验,若校验值错误,则发送出错包,请求发送方重发该包;若校验值正确,则进入下一步;S5:接收方对数据包进行包号连续性校验,若包号不连续,则发送出错包,请求发送方重发该包的上一包;若包号连续,则进入下一步;S6:判断是否接收完成该组数据包,若否,则不动作;若是,则接收结束。2.根据权利要求1所述的电力线载波通信方法,其特征在于,所述数据包的包号为1个字节、数据正文为6个字节,校验值为1...
【专利技术属性】
技术研发人员:海波,
申请(专利权)人:四川海博智能科技有限责任公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。