发明内容
本发明实施例提供了一种冰箱的上位机、冰箱的下位机、冰箱的通信方法及系统,能够不通过单片机的通信模块而实现上位机与下位机的交互。
本发明实施例提供了一种冰箱的上位机,包括:
上位机处理单元、上位机定时器、第一I/O口和第二I/O口;其中,
所述上位机定时器分别与所述第一I/O口和所述第二I/O口相连;
所述上位机处理单元,用于接收外部输入的当前指令,生成所述当前指令对应的通信命令,将所述通信命令发送给所述上位机定时器;
所述上位机定时器,用于执行:
A1:获取所述上位机处理单元生成的所述通信命令;
A2:通过所述第一I/O口将所述通信命令发送至冰箱的下位机;
A3:通过所述第二I/O口接收所述冰箱的下位机发送的针对所述通信命令的回复信号;其中,所述回复信号包括:引导码、通信头码、状态数据、校验码和结束电平;
A4:依次判断所述回复信号中的所述引导码、所述通信头码、所述状态数据,所述校验码和所述结束电平是否均符合对应的冰箱的上位机预设规则,如果是,则确定所述回复信号为有效回复信号,并提取所述状态数据,否则,执行A2。
优选地,所述上位机定时器,进一步用于判断所述上位机定时器是否在预设等待时间内接收到所述回复信号,如果否,执行A2。
优选地,所述上位机定时器,进一步用于执行:
在所述提取所述状态数据之后,进一步包括:
等待预设间隔时间,返回A1。
优选地,所述上位机定时器,用于执行:
所述A4,包括:
B1:判断所述引导码是否满足:所述引导码的值与上位机引导码预设值相同,如果是执行B2,否则,执行A2;
B2:判断所述通信头码是否满足:所述通信头码的值在上位机头码预设范围内,且所述通信头码的值与上位机头码预设值相同,如果是,执行B3,否则,执行A2;
B3:判断所述状态数据是否满足:所述状态数据的值在上位机状态预设范围内,且所述状态数据的字节数与冰箱的上位机预设字节数相同,如果是,则执行B4,否则,执行A2;
B4:判断所述校验码是否正确,如果是,则执行B5,否则执行A2;
B5:判断所述结束电平是否满足:所述结束电平的持续时间与上位机预设持续时间相同,如果是,则确定所述回复信号为有效回复信号,并提取所述状态数据,否则,执行A2。
第二方明本发明实施例提供了一种冰箱的下位机,包括:下位机处理单元、下位机定时器、第三I/O口和第四I/O口;其中,
所述下位机定时器分别与所述第三I/O口和所述第四I/O口相连;
所述下位机定时器,用于执行:
通过所述第三I/O口接收所述冰箱的上位机发送的通信命令;其中,所述通信命令包括:引导码、通信头码、控制命令、校验码和结束电平;
依次判断所述通信命令中的所述引导码、所述通信头码、所述控制命令、所述校验码和所述结束电平是否均符合对应的下位机预设规则,如果是,则确定所述通信命令为有效通信命令,触发所述下位机处理单元,获取所述下位机处理单元生成的所述控制命令对应的回复信号,通过所述第四I/O口向所述冰箱的上位机发送所述回复信号;
所述下位机处理单元,用于执行所述控制命令,生成所述控制命令对应的所述回复信号,并将所述回复信号发送给所述下位机定时器。
优选地,所述下位机定时器,用于执行:
所述依次判断所述通信命令中的所述引导码、所述通信头码、所述控制命令、所述校验码和所述结束电平是否均符合对应的下位机预设规则,如果是,则确定所述通信命令为有效通信命令,包括:
C1:判断所述引导码是否满足:所述引导码的值与下位机引导码预设值相同,如果是执行C2,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令;
C2:判断所述通信头码是否满足:所述通信头码的值在下位机头码预设范围内,且所述通信头码的值与下位机头码预设值相同,如果是,执行C3,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令;
C3:判断所述控制命令是否满足:所述控制命令的值在下位机命令预设范围内,且所述控制命令的字节数与下位机预设字节数相同,如果是,则执行C4,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令;
C4:判断所述校验码数据位是否正确,如果是,则执行C5,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令;
C5:判断所述结束电平是否满足:所述结束电平的持续时间与下位机预设持续时间相同,如果是,则确定所述通信命令为有效通信命令,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令。
第三方面本发明实施例提供了一种冰箱的通信方法,应用于冰箱的上位机,包括:
A0:接收外部输入的当前指令,生成所述当前指令对应的通信命令;
A1:获取所述通信命令;
A2:通过所述冰箱的上位机的第一I/O口将所述通信命令发送至冰箱的下位机;
A3:通过所述冰箱的上位机的第二I/O口接收所述冰箱的下位机发送的针对所述通信命令的回复信号;其中,所述回复信号包括:引导码、通信头码、状态数据、校验码和结束电平;
A4:依次判断所述回复信号中的所述引导码、所述通信头码、所述状态数据,所述校验码和所述结束电平是否均符合对应的冰箱的上位机预设规则,如果是,则确定所述回复信号为有效回复信号,并提取所述状态数据,否则,执行A2。
优选地,所述A4,包括:
B1:判断所述引导码是否满足:所述引导码的值与上位机引导码预设值相同,如果是执行B2,否则,执行A2;
B2:判断所述通信头码是否满足:所述通信头码的值在上位机头码预设范围内,且所述通信头码的值与上位机头码预设值相同,如果是,执行B3,否则,执行A2;
B3:判断所述状态数据是否满足:所述状态数据的值在上位机状态预设范围内,且所述状态数据的字节数与冰箱的上位机预设字节数相同,如果是,则执行B4,否则,执行A2;
B4:判断所述校验码是否正确,如果是,则执行B5,否则执行A2;
B5:判断所述结束电平是否满足:所述结束电平的持续时间与上位机预设持续时间相同,如果是,则确定所述回复信号为有效回复信号,并提取所述状态数据,否则,执行A2。
优选地,在所述提取所述状态数据之后,进一步包括:
等待预设间隔时间,返回A1。
第四方面,本发明实施例提供了一种冰箱的通信方法,应用于冰箱的下位机,包括:
通过所述冰箱的下位机的第三I/O口接收冰箱的上位机发送的通信命令;其中,所述通信命令包括:引导码、通信头码、控制命令、校验码和结束电平;
依次判断所述通信命令中的所述引导码、所述通信头码、所述控制命令、所述校验码和所述结束电平是否均符合对应的下位机预设规则,如果是,则确定所述通信命令为有效通信命令,执行所述控制命令,生成所述控制命令对应的所述回复信号,通过所述冰箱的下位机的第四I/O口向所述冰箱的上位机发送所述控制命令对应的回复信号。
第五方面,本发明实施例提供了一种冰箱的通信系统,包括:第一方面中任一所述的冰箱的上位机和第二方面中任一所述冰箱的下位机。
本发明实施例提供了一种冰箱的上位机、冰箱的下位机、冰箱的通信方法及系统,通过冰箱的上位机的定时器和两路I/O口实现向冰箱的下位机发送上位机处理单元生成的通信命令以及接受下位机针对通信命令的回复信号,能够实现不通过单片机的通信模块而实现上位机与下位机的交互。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种冰箱的上位机,包括:上位机定时器101、第一I/O口102、第二I/O口103和上位机处理单元104;其中,
上位机定时器101分别与第一I/O口102和第二I/O口103相连;
上位机处理单元104,用于接收外部输入的当前指令,生成所述当前指令对应的通信命令,将所述通信命令发送给所述上位机定时器;
上位机定时器101,用于执行:
A1:获取所述上位机处理单元104生成的所述通信命令;
A2:通过第一I/O口102将所述通信命令发送至冰箱的下位机;
A3:通过第二I/O口103接收所述冰箱的下位机发送的针对所述通信命令的回复信号;其中,所述回复信号包括:引导码、通信头码、状态数据、校验码和结束电平;
A4:依次判断所述回复信号中的所述引导码、所述通信头码、所述状态数据,所述校验码和所述结束电平是否均符合对应的冰箱的上位机预设规则,如果是,则确定所述回复信号为有效回复信号,并提取所述状态数据,否则,执行A2。
本发明实施例提供了一种冰箱的上位机,通过冰箱的上位机的定时器和两路I/O口实现向冰箱的下位机发送上位机处理单元生成的通信命令以及接收下位机针对通信命令的回复信号,能够不通过单片机的通信模块而实现上位机与下位机的交互。
在本发明的一个实施例中,所述上位机定时器,进一步用于判断所述上位机定时器是否在预设等待时间内接收到所述回复信号,如果否,执行A2。
为了提高冰箱的上位机的交互效率,通过在上位机定时器设置预设等待时间,使得上位机定时器可以判断是否在预设等待时间内接收到回复信号,如果没有接收到回复信号,则上位机定时器重新获取通信命令。
例如,预设等待时间为1S,冰箱的上位机A发送通信命令的时间大于1S或者冰箱的上位机A发送的命令与冰箱的下位机不匹配,导致1S内冰箱的上位机A没有接收到回复信号,则冰箱的上位机A重新发送通信命令。
在本发明一个实施例中,所述上位机定时器,进一步用于执行:
在所述提取所述状态数据之后,进一步包括:
等待预设间隔时间,返回A1。
冰箱的上位机与冰箱的下位机交互时,为了能实时并有效地获取冰箱的参数,在提取到有效回复信号中的状态数据之后,等待预设间隔时间后,重新接收外部输入的指令,并对应地生成通信命令,以进行再次交互。
例如,用户需要监控冰箱的温度,则先发送通信命令并在提取到有效回复信号中的状态数据,之后在等待预设间隔时间后,重新接收外部输入的指令,并对应地生成通信命令,以再次获取冰箱的参数。
为了能够提高冰箱的上位机的交互效率,在本发明一个实施例中,所述上位机定时器,用于执行:
所述A4,包括:
B1:判断所述引导码是否满足:所述引导码的值与上位机引导码预设值相同,如果是执行B2,否则,执行A2;
B2:判断所述通信头码是否满足:所述通信头码的值在上位机头码预设范围内,且所述通信头码的值与上位机头码预设值相同,如果是,执行B3,否则,执行A2;
B3:判断所述状态数据是否满足:所述状态数据的值在上位机状态预设范围内,且所述状态数据的字节数与冰箱的上位机预设字节数相同,如果是,则执行B4,否则,执行A2;
B4:判断所述校验码是否正确,如果是,则执行B5,否则执行A2;
B5:判断所述结束电平是否满足:所述结束电平的持续时间与上位机预设持续时间相同,如果是,则确定所述回复信号为有效回复信号,并提取所述状态数据,否则,执行A2。
上位机定时器先判断引导码,以判断当前信号是否为回复信号,如果引导码的值与上位机引导码预设值不同,则程序返回到A2,如果引导码的值与上位机引导码预设值相同,则判断通信头码。
通信头码对应冰箱的型号,即通过通信头码冰箱的上位机可以判断是哪个型号冰箱发来的数据,如果通信头码的值不在上位机头码预设范围内,或所述通信头码的值与上位机头码预设值不同,则程序返回到A2,如果通信头码的值在上位机头码预设范围内,且通信头码的值与上位机头码预设值相同,判断状态数据。
状态数据就是冰箱的各个参数,例如温度。如果状态数据的值不在上位机状态预设范围内,或状态数据的字节数与冰箱的上位机预设字节数不同,则程序返回到A2,如果状态数据的值在上位机状态预设范围内,且状态数据的字节数与冰箱的上位机预设字节数相同,则判断校验码。
如果校验码不正确,则程序返回到A2,如果校验码正确,则判断结束电平;如果束电平的持续时间与上位机预设持续时间相同,则确定回复信号为有效回复信号并提取状态数据,否则程序返回到A2。
在本发明一个实施例中,当上位机定时器在20秒内没有接到冰箱的下位机发送的有效回复信号时,会发出通信故障警报,直至才收到有效回复信号时解除通信故障警报。
如图2所示,本发明实施例提供了一种冰箱的下位机,包括:下位机定时器201、第三I/O口202、第四I/O口203和下位机处理单元204;其中,
下位机定时器201分别与第三I/O口202和第四I/O口203相连;
下位机定时器201,用于执行:
通过第三I/O口202接收冰箱的上位机发送的通信命令;其中,所述通信命令包括:引导码、通信头码、控制命令、校验码和结束电平;
依次判断所述通信命令中的所述引导码、所述通信头码、所述控制命令、所述校验码和所述结束电平是否均符合对应的下位机预设规则,如果是,则确定所述通信命令为有效通信命令,触发所述下位机处理单元,获取所述下位机处理单元生成的所述控制命令对应的回复信号,通过第四I/O口203所述冰箱的上位机发送所述控制命令对应的回复信号;
下位机处理单元204,用于执行所述控制命令,生成所述控制命令对应的所述回复信号,并将所述回复信号发送给所述下位机定时器。
本发明实施例提供了一种冰箱的下位机,通过下位机的定时器和两路I/O口实现向冰箱的上位机发送下位机处理单元针对通信命令生成的回复信号以及接受冰箱的上位机的通信命令,能够实现不通过单片机的通信模块而实现上位机与下位机的交互。
为了能够提高下位机的交互效率,在本发明的一个实施例中,所述下位机定时器,用于执行:
所述依次判断所述通信命令中的所述引导码、所述通信头码、所述控制命令、所述校验码和所述结束电平是否均符合对应的下位机预设规则,如果是,则确定所述通信命令为有效通信命令,包括:
C1:判断所述引导码是否满足:所述引导码的值与下位机引导码预设值相同,如果是执行C2,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令;
C2:判断所述通信头码是否满足:所述通信头码的值在下位机头码预设范围内,且所述通信头码的值与下位机头码预设值相同,如果是,执行C3,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令;
C3:判断所述控制命令是否满足:所述控制命令的值在下位机命令预设范围内,且所述控制命令的字节数与下位机预设字节数相同,如果是,则执行C4,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令;
C4:判断所述校验码数据位是否正确,如果是,则执行C5,否则,通过所述第三I/O口重新接收冰箱的上位机发送的通信命令;
C5:判断所述结束电平是否满足:所述结束电平的持续时间与下位机预设持续时间相同,如果是,则确定所述通信命令为有效通信命令,否则,返回所述通过所述第三I/O口接收所述冰箱的上位机发送的通信命令。
下位机定时器先判断引导码,以判断当前信号是否为通信命令,如果引导码的值与下位机引导码预设值不同,则通过第三I/O口重新接收冰箱的上位机发送的通信命令,如果引导码的值与下位机引导码预设值相同,则判断通信头码。
通信头码对应着冰箱的型号,即通过通信头码冰箱的下位机可以判断当前的通信命令是否由本机执行,如果通信头码的值不在下位机头码预设范围内,或所述通信头码的值与下位机头码预设值不同,则通过第三I/O口重新接收冰箱的上位机发送的通信命令,如果通信头码的值在下位机头码预设范围内,且所述通信头码的值与下位机头码预设值相同,判断控制命令。
控制命令为冰箱的下位机具体要执行的程序,例如提供数据、执行操作。如果控制命令的值不在下位机命令预设范围内,或控制命令的字节数与下位机预设字节数不同,则通过第三I/O口重新接收冰箱的上位机发送的通信命令,如果控制命令的值在下位机命令预设范围内,且控制命令的字节数与下位机预设字节数相同,则判断校验码。
如果校验码不正确,则通过第三I/O口重新接收冰箱的上位机发送的通信命令,如果校验码正确,则判断结束电平;如果束电平的持续时间与下位机预设持续时间相同,则确定通信命令为有效通信命令并执行控制命令,向所述冰箱的上位机发送所述控制命令对应的回复信号,否则通过第三I/O口重新接收冰箱的上位机发送的通信命令。
如图3所示本发明实施例提供了一种冰箱的通信方法,应用于冰箱的上位机,包括以下步骤:
步骤301,接收所述外部输入的当前指令,生成所述当前指令对应的通信命令。
步骤302,获取通信命令,通过所述冰箱的上位机的第一I/O口将所述通信命令发送至冰箱的下位机。
步骤303,通过所述冰箱的上位机的第二I/O口接收所述冰箱的下位机发送的针对所述通信命令的回复信号;其中,所述回复信号包括:引导码、通信头码、状态数据、校验码和结束电平。
步骤304,依次判断所述回复信号中的所述引导码、所述通信头码、所述状态数据,所述校验码和所述结束电平是否均符合对应的冰箱的上位机预设规则,如果是,则执行步骤305,否则,执行步骤302。
步骤305,确定所述回复信号为有效回复信号,并提取所述状态数据。
在本发明的一个实施例中,所述A4,包括:
B1:判断所述引导码是否满足:所述引导码的值与上位机引导码预设值相同,如果是执行B2,否则,执行A2;
B2:判断所述通信头码是否满足:所述通信头码的值在上位机头码预设范围内,且所述通信头码的值与上位机头码预设值相同,如果是,执行B3,否则,执行A2;
B3:判断所述状态数据是否满足:所述状态数据的值在上位机状态预设范围内,且所述状态数据的字节数与冰箱的上位机预设字节数相同,如果是,则执行B4,否则,执行A2;
B4:判断所述校验码是否正确,如果是,则执行B5,否则执行A2;
B5:判断所述结束电平是否满足:所述结束电平的持续时间与上位机预设持续时间相同,如果是,则确定所述回复信号为有效回复信号,并提取所述状态数据,否则,执行A2。
本发明的一个实施例中,在所述提取所述状态数据之后,进一步包括:
等待预设间隔时间,返回A1。
为了更好地说明本发明上述实施例,如图4所示,本发明实施列提供了另一种冰箱的通信方法,应用于冰箱的上位机,包括以下步骤:
步骤401,接收外部输入的当前指令,生成当前指令对应的通信命令。
步骤402,获取通信命令,通过冰箱的上位机的第一I/O口将通信命令发送至冰箱的下位机。
步骤403,通过冰箱的上位机的第二I/O口接收冰箱的下位机发送的针对通信命令的回复信号;回复信号包括:引导码、通信头码、状态数据、校验码和结束电平。
步骤404,判断引导码是否满足:引导码的值与上位机引导码预设值相同,如果是执行步骤405,否则,执行步骤402。
在本发明实施例中,引导码是固定不变的,为6ms高电平和2ms低电平,用于建立冰箱的上位机与冰箱的下位机的交互联系。
步骤405,判断通信头码是否满足:通信头码的值在上位机头码预设范围内,且通信头码的值与上位机头码预设值相同,如果是,执行步骤406,否则,执行步骤402。
在本发明实施例中,通信头码的数据格式为8位二进制编码,冰箱的上位机进行校验时,从最低位开始,依次对8位编码进行校验,如果有一位不符合预设规则,则执行步骤402。
步骤406,判断状态数据是否满足:状态数据的值在上位机状态预设范围内,且状态数据的字节数与冰箱的上位机预设字节数相同,如果是,则执行步骤407,否则,执行步骤402。
在本发明实施例中,状态数据的数据格式为8位二进制编码,冰箱的上位机进行校验时,从最低位开始,依次对8位编码进行校验,如果有一位不符合预设规则,则执行步骤402。
步骤407,判断校验码是否正确,如果是,则执行步骤408,否则执行步骤402。
在本发明实例中,判断校验码的过程如下:冰箱的上位机将通信头码与接收的状态数据累加求和保留低位字节后,与接收的冰箱的下位机发送的校验位相比较,验证冰箱的下位机发送的信息与冰箱的上位机接收的信息是否一致。
步骤408,判断结束电平是否满足:结束电平的持续时间与上位机预设持续时间相同,如果是,则执行步骤409,否则,执行步骤402。
在本发明实例中,结束电平的预设持续时间为高电平2ms。
步骤409,确定回复信号为有效回复信号,并提取状态数据。
步骤410,等待预设间隔时间,执行步骤401。
在本发明实例中,预设间隔时间为10ms。
本发明实施例提供了一种冰箱的通信方法,应用于冰箱的下位机,包括:
通过冰箱的下位机的第三I/O口接收冰箱的上位机发送的通信命令;通信命令包括:引导码、通信头码、控制命令、校验码和结束电平;
依次判断所述通信命令中的所述引导码、所述通信头码、所述控制命令、所述校验码和所述结束电平是否均符合对应的下位机预设规则,如果是,则确定所述通信命令为有效通信命令,执行所述控制命令,生成所述控制命令对应的所述回复信号,通过所述冰箱的下位机的第四I/O口向所述冰箱的上位机发送所述控制命令对应的回复信号。
如图5所示,本发明实施例提供了一种冰箱的通信方法,应用于冰箱的下位机,包括以下步骤:
步骤501,通过冰箱的下位机的第三I/O口接收冰箱的上位机发送的通信命令;通信命令包括:引导码、通信头码、控制命令、校验码和结束电平;
步骤502,依次判断所述通信命令中的所述引导码、所述通信头码、所述控制命令、所述校验码和所述结束电平是否均符合对应的下位机预设规则,如果是,则执行步骤503,否则,执行步骤501。
步骤503,确定所述通信命令为有效通信命令,执行所述控制命令,并生成所述控制命令对应的所述回复信号。
步骤504,通过所述冰箱的下位机的第四I/O口向所述冰箱的上位机发送所述控制命令对应的回复信号。
为更好地说明本发明上述实施例,如图6所示,本发明实施例提供了另一种冰箱的通信方法,应用于冰箱的下位机,包括以下步骤:
步骤601,通过冰箱的下位机的第三I/O口接收冰箱的上位机发送的通信命令。
步骤602,判断引导码是否满足:引导码的值与下位机引导码预设值相同,如果是执行步骤603,否则,执行步骤601。
在本发明实施例中,引导码是固定不变的,为6ms高电平和2ms低电平,用于建立冰箱的上位机与冰箱的下位机的交互联系。
步骤603,判断通信头码是否满足:通信头码的值在下位机头码预设范围内,且所述通信头码的值与下位机头码预设值相同,如果是,执行步骤604,否则,执行步骤601。
在本发明实施例中,通信头码的数据格式为8位二进制编码,冰箱的下位机进行校验时,从最低位开始,依次对8位编码进行校验,如果有一位不符合预设规则,则执行步骤601。
步骤604,判断控制命令是否满足:控制命令的值在下位机命令预设范围内,且所述控制命令的字节数与下位机预设字节数相同,如果是,则执行步骤605,否则,执行步骤601。
在本发明实施例中,控制命令的数据格式为8位二进制编码,冰箱的下位机进行校验时,从最低位开始,依次对8位编码进行校验,如果有一位不符合预设规则,则执行步骤601。
步骤605,判断校验码是否正确,如果是,则执行步骤606,否则执行步骤601。
在本发明实例中,判断校验码的过程如下:冰箱的下位机将通信头码与接收的状态数据累加求和保留低位字节后,与接收的冰箱的上位机发送的校验位相比较,验证冰箱的上位机发送的信息与冰箱的下位机接收的信息是否一致。
步骤606,判断结束电平是否满足:结束电平的持续时间与下位机预设持续时间相同,如果是,则执行步骤607,否则,执行步骤601。
在本发明实例中,结束电平的预设持续时间为高电平2ms。
步骤607,确定所述通信命令为有效通信命令,执行所述控制命令,并生成所述控制命令对应的所述回复信号。
步骤608,通过所述冰箱的下位机的第四I/O口向所述冰箱的上位机发送所述控制命令对应的回复信号。
如图7所示,本发明实施提供了一种冰箱的通信系统,包括:上述实例中任一所述的冰箱的上位机701和上述实例中任一所述的冰箱的下位机702。
如图8所示,本发明实施例提供了另一种冰箱的通信系统,包括:冰箱的上位机801,冰箱的下位机802,通信总线803;其中,
冰箱的上位机801包括:上位机定时器101、第一I/O口102、第二I/O口103和上位机处理单元104;
上位机定时器101,用于初始工作模式设定为基本间隔定时功能,控制第一I/O口102的电平状态,使得上位机定时器101向冰箱的下位机802发送通信命令,发送完成后切换工作模式为捕捉功能,通过第二I/O口103接收冰箱的下位机802发送的回复信号。
冰箱的下位机802包括:下位机定时器201、第三I/O口202、第四I/O口203和下位机处理单元204;
下位机定时器201,用于初始工作模式设定为捕捉功能,通过第三I/O口202接收冰箱的上位机801发送的通信命令,接受到有效的通信命令后,切换工作模式为基本间隔定时功能,控制第四I/O口203的电平状态,使得冰箱的下位机定时器能够向冰箱的上位机发送回复信号。
通信总线803,用于传递冰箱的上位机801发送的通信命令以及冰箱的下位机802发送的回复信号。
为了更好地说明,上述系统的交互关系,如图9所示,本发明实例提供了一种冰箱的通信方法,应用于冰箱的通信系统,包括以下步骤:
步骤901,接收外部输入的当前指令,生成当前指令对应的通信命令。
步骤902,获取通信命令,通过冰箱的上位机的第一I/O口将通信命令发送至冰箱的下位机。
在本发明实施例中,通过设置上位机定时器的初始状态为基本间隔定时功能,使得上位机定时器可以通过冰箱的上位机的第一I/O口将通信命令发送至冰箱的下位机。上位机定时器发送通信命令之后,上位机定时器工作状态切换为下降沿捕捉功能。
步骤903,通过冰箱的下位机的第三I/O口接收冰箱的上位机发送的通信命令;其中,通信命令包括:引导码、通信头码、控制命令、校验码和结束电平。
在本发明实施例中,通过设置下位机定时器的初始状态为下降沿触发捕捉功能,使得下位机定时器可以通过第三I/O口接收通信命令。
步骤904,依次判断所述通信命令中的引导码、通信头码、控制命令、校验码和结束电平是否均符合对应的下位机预设规则,如果是,则执行步骤905,否则执行步骤903。
步骤905,确定通信命令为有效通信命令,执行控制命令,并生成控制命令对应的回复信号。
步骤906,通过冰箱的下位机的第四I/O口向冰箱的上位机发送控制命令对应的回复信号。
在本发明实施例中,下位机定时器每次接收到有效通信命令后,下位机定时器工作状态切换为基本间隔定时功能,使得下位机定时器可以通过第四I/O口发送回复信号。下位机定时器发送回复信号后,下位机定时器工作状态切换为下降沿触发捕捉功能。
步骤907,通过冰箱的上位机的第二I/O口接收冰箱的下位机发送的针对通信命令的回复信号;其中,回复信号包括:引导码、通信头码、状态数据、校验码和结束电平;
步骤908,依次判断所述回复信号中的所述引导码、所述通信头码、所述状态数据,所述校验码和所述结束电平是否均符合对应的冰箱的上位机预设规则,如果是,则执行步骤909,否则,执行步骤907。
步骤909,确定所述回复信号为有效回复信号,并提取所述状态数据。
在本发明实施例中,上位机定时器每次接收到有效回复信号之后,上位机定时器工作状态切换为基本间隔定时功能,使得冰箱的上位机可以再次发送通信命令。
步骤910,等待预设间隔时间,执行步骤901。
综上所述,本发明各个实施例至少具有如下有益效果:
1、本发明一个实施例中,通过冰箱的上位机的定时器和两路I/O口实现向冰箱的下位机发送上位机处理单元生成的通信命令以及接受下位机针对通信命令的回复信号,能够实现不通过单片机的通信模块而实现上位机与下位机的交互。
2、本发明一个实施例中,通过下位机的定时器和两路I/O口实现向冰箱的上位机发送下位机处理单元针对通信命令生成的回复信号以及接受冰箱的上位机的通信命令,能够实现不通过单片机的通信模块而实现上位机与下位机的交互。
3、本发明的一个实施例中,通过执行针对交互过程自定义包括引导码、通信头码、状态数据、控制命令、校验码和结束电平的通信协议,使得交互过程准确、便捷。
4、本发明的一个实施例中,通过配置上位机定时器,可以避免由于通信命令发送时间过长或长时间没有收到回复而导致冰箱的上位机与冰箱的下位机交互中断的问题。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。