一种用于单片机的数据通信方法技术

技术编号:17917421 阅读:42 留言:0更新日期:2018-05-10 21:19
本发明专利技术涉及一种用于单片机的数据通信方法,用于在多个单片机之间传输数据,其中多个单片机中的一个单片机为主机,其余单片机为从机,其特征在于:主机及所有从机均与通信总线连接,主机与从机之间通过预定格式的数据帧进行数据通信,当一台从机连接到通信总线上后,首先检测通信总线是否空闲,若通信总线忙,否则持续等待至通信总线空闲,若通信总线空闲,则向主机发送匹配数据;主机在成功接收到从机发送的包含匹配信息的数据帧后,向从机发送包含匹配成功信号的数据帧,当上述从机接收到主机发送的数据帧后,从机处于等待工作状态。与现有技术相比,本发明专利技术提供的方法通过节省了单片机与单片机之间的连接线。

【技术实现步骤摘要】
一种用于单片机的数据通信方法
本专利技术涉及一种用于单片机的数据通信方法。
技术介绍
单片机现广泛应用于家用电器、仪器仪表、医用设备和智能设备等领域,很多设备都要求单片机与一个或多个传感器或者其他单片机进行通信。现在应用于单片机的主要通信方法有UART、IIC、SPI等,这些通信方式都至少需要2根以上的连接线才能实现,同时要求单片机内置相应的通信接口模块,增加了单片机的成本。
技术实现思路
本专利技术所要解决的技术问题是针对上述现有技术提供一种仅需一根通信总线就能实现数据传输的用于单片机的数据通信方法。本专利技术解决上述技术问题所采用的技术方案为:一种用于单片机的数据通信方法,用于在多个单片机之间传输数据,其中多个单片机中的一个单片机为主机,其余单片机为从机,其特征在于:主机及所有从机均与通信总线连接,主机与从机之间通过预定格式的数据帧进行数据通信,其中数据帧的预定格式为:引导码校准码读写码从机设备码数据码校验码结束码其中,引导码为一固定时间ts的低电平,10ms≤ts≤50ms,当接收数据的主机或从机检测到一个连续ts的低电平时,准备开始接收数据;校准码包括一个2t的高电平和一个2t的低电平,用于校准不同单片机的波特率;读写码为“1”或者“0”,“1”表示主机向从机写数据,“0”表示主机向从机读数据,其中“1”为5t的高电平和2t的低电平代,“1”为2t的高电平和5t的低电平,t为单片机的电平周期;而通信总线空闲时,其处于高电平;从机设备码用于区分不同的从机,以此来明确通信数据传送的指向性;与通信总线连接的从机都有一个与主机约定好的唯一的设备码,长度为ns位;数据码用于存储主从机之间需要交换的数据;校验码用于校验数据是否正确;结束码为7t的高电平,当接收数据帧的主机或从机检测到结束码时,通信结束,通信总线被释放;当一台从机连接到通信总线上后,首先检测通信总线是否空闲,若通信总线忙,否则持续等待至通信总线空闲,若通信总线空闲,则向主机发送匹配数据,将匹配数据作为数据码内容,然后发送预定格式的数据帧给主机;主机在成功接收到从机发送的包含匹配信息的数据帧后,向从机发送包含匹配成功信号的数据帧,当上述从机接收到主机发送的包含匹配成功信号的数据帧后,从机处于等待工作状态;若上述从机在预设时间内未收到主机发送的包含匹配成功信号的数据帧,则从机继续发送包含匹配信号的数据帧给主机,如果从机发送5次包含匹配信号的数据帧给主机后,仍未收到主机发来的包含匹配成功信号的数据帧,则从机进行报错处理;从机与主机之间的数据通信方法为:主机一次只能与单一从机进行通信,主机在与某一从机通信时,其他从机也会接收到通信数据,此时从机通过对通信数据的数据帧中的从机设备码进行解析,然后与自身的从机设备码进行匹配,若匹配则接收该数据帧,否则就丢弃该数据帧;主机在向某一个从机发送数据帧后,此从机从主机发送包含接收成功信号的数据帧,主机收到该包含接收成功信号的数据帧,表示此次通信成功,若主机在预设时间内未收到从机返回的包含接收成功信号的数据帧,则主机继续发送原始数据帧,发送5次后仍未收到从机返回的包含接收成功信号的数据帧,则认为该从机不在线或工作异常,进行报错处理。作为改进,从机在接收数据帧时,首先对数据帧中的读写码进行判断,若是“0”,则直接舍弃,若是“1”,则从机解析从机设备码,然后与自身的从机设备码进行匹配,若匹配则接收该数据帧,直至通信结束,否则就丢弃该数据帧。再改进,所述从机通过如下步骤接收主机发来的数据帧:步骤1)、设置从机与通信总线连接的通信接口为输入态;步骤2)、检测是否有大于ts时间的连续低电平,若有则进入步骤3),否则持续检测;步骤3)、接收寄存器清零,数据位数寄存器清零,高电平持续时间th清零,低电平持续时间tl清零;步骤4)、检测电平是否变高,若是则进入步骤5),否则持续检测;步骤5)、计时器清零,对高电平开始计时;步骤6)、检测电平是否变低,若是则进入步骤8),否则进入步骤7);步骤7)、计时是否超过最大时间tmax,若是则进入步骤27),否则进入步骤6);步骤8)、记录高电平持续时间th,计时器清零,对低电平开始计时;步骤9)、检测电平是否变高,若是则进入步骤11),否则进入步骤10);步骤10)、计时是否超过最大时间tmax,若是则进入步骤27),否则进入步骤9);步骤11)、记录低电平持续时间tl,计时器清零;步骤12)、判断|th-tl|是否小于阈值tp,若是则进入步骤13),否则进入步骤27);步骤13)、获取电平周期t=th,th、tl清零,对高电平开始计时;步骤14)、检测电平是否变低,若是则进入步骤15),否则持续检测;步骤15)、记录高电平时间th,计时器清零,对低电平开始计时;步骤16)、检测电平是否变高,若是则进入步骤17),否则持续检测;步骤17)、记录低电平时间tl,计时器清零;步骤18)、判断th和tl是否满足1t≤th≤6t,且1;t≤tl≤6t,若是则进入步骤19),否则进入步骤27);步骤19)、若th>tl,则数据位为“1”,若th<tl,则数据位为“0”,并把数据存入接收寄存器,数据位数寄存器加1,th、tl清零,对高电平计时;步骤20)、判断数据位寄存器是否等于1,若是则进入步骤21),否则进入步骤22);步骤21)、判断首位数据是否为1,若是则进入步骤14),否则进入步骤27);步骤22)、判断数据位数寄存器是否等于ns+1,若是则进入步骤23),否则进入步骤24);步骤23)、判断接收寄存器第2到ns+1位数据是否等于从机设备码,若是则进入步骤14),否则进入步骤27);步骤24)、判断数据位数寄存器是否等于n,若是则进入步骤25),否则进入步骤14);步骤25)、是否检测到连续7t的高电平,若是则进入步骤26),否则进入步骤27);步骤26)、通信成功,返回;步骤27)、通信失败,接收寄存器清零,数据位数寄存器清零,高电平持续时间th清零,低电平持续时间tl清零,计时器清零,返回。与现有技术相比,本专利技术的优点在于:1、本专利技术提供的方法通过一根通信总线实现了所有单片机之间的连接,相比UART、IIC、SPI等常用于单片机的通信方法,节省了单片机与单片机之间的连接线;2、本专利技术提供的方法对单片机的要求较低,只需要有通用输入/输出接口和计时器或定时器就行,成本低且易实现,可以广泛应用于多个设备之间的通信;还能实现波特率自适应,提高了通信的准确率。附图说明图1为本专利技术实施例中主机与从机连接示意图;图2为本专利技术实施例中从机接收数据流程简图。图3为本专利技术实施例中从机接收数据详细流程图。具体实施方式以下结合附图实施例对本专利技术作进一步详细描述。专利技术提供一种用于单片机的数据通信方法,用于在多个单片机之间传输数据,其中多个单片机中的一个单片机为主机,其余单片机为从机,主机及所有从机均与通信总线连接,参见图1所示。主机与从机之间通过预定格式的数据帧进行数据通信,其中数据帧的预定格式为:引导码校准码读写码从机设备码数据码校验码结束码其中,引导码为一固定时间ts的低电平,10ms≤ts≤50ms,当接收数据的主机或从机检测到一个连续ts的低电平时,准备开始接收数据;校准码包括本文档来自技高网...
一种用于单片机的数据通信方法

【技术保护点】
一种用于单片机的数据通信方法,用于在多个单片机之间传输数据,其中多个单片机中的一个单片机为主机,其余单片机为从机,其特征在于:主机及所有从机均与通信总线连接,主机与从机之间通过预定格式的数据帧进行数据通信,其中数据帧的预定格式为:

【技术特征摘要】
1.一种用于单片机的数据通信方法,用于在多个单片机之间传输数据,其中多个单片机中的一个单片机为主机,其余单片机为从机,其特征在于:主机及所有从机均与通信总线连接,主机与从机之间通过预定格式的数据帧进行数据通信,其中数据帧的预定格式为:引导码校准码读写码从机设备码数据码校验码结束码其中,引导码为一固定时间ts的低电平,10ms≤ts≤50ms,当接收数据的主机或从机检测到一个连续ts的低电平时,准备开始接收数据;校准码包括一个2t的高电平和一个2t的低电平,用于校准不同单片机的波特率;读写码为“1”或者“0”,“1”表示主机向从机写数据,“0”表示主机向从机读数据,其中“1”为5t的高电平和2t的低电平代,“1”为2t的高电平和5t的低电平,t为单片机的电平周期;而通信总线空闲时,其处于高电平;从机设备码用于区分不同的从机,以此来明确通信数据传送的指向性;与通信总线连接的从机都有一个与主机约定好的唯一的设备码,长度为ns位;数据码用于存储主从机之间需要交换的数据;校验码用于校验数据是否正确;结束码为7t的高电平,当接收数据帧的主机或从机检测到结束码时,通信结束,通信总线被释放;当一台从机连接到通信总线上后,首先检测通信总线是否空闲,若通信总线忙,否则持续等待至通信总线空闲,若通信总线空闲,则向主机发送匹配数据,将匹配数据作为数据码内容,然后发送预定格式的数据帧给主机;主机在成功接收到从机发送的包含匹配信息的数据帧后,向从机发送包含匹配成功信号的数据帧,当上述从机接收到主机发送的包含匹配成功信号的数据帧后,从机处于等待工作状态;若上述从机在预设时间内未收到主机发送的包含匹配成功信号的数据帧,则从机继续发送包含匹配信号的数据帧给主机,如果从机发送5次包含匹配信号的数据帧给主机后,仍未收到主机发来的包含匹配成功信号的数据帧,则从机进行报错处理;从机与主机之间的数据通信方法为:主机一次只能与单一从机进行通信,主机在与某一从机通信时,其他从机也会接收到通信数据,此时从机通过对通信数据的数据帧中的从机设备码进行解析,然后与自身的从机设备码进行匹配,若匹配则接收该数据帧,否则就丢弃该数据帧;主机在向某一个从机发送数据帧后,此从机从主机发送包含接收成功信号的数据帧,主机收到该包含接收成功信号的数据帧,表示此次通信成功,若主机在预设时间内未收到从机返回的包含接收成功信号的数据帧,则主机继续发送原始数据帧,发送5次后仍未收到从机返回的包含接收成功信号的数据帧,则认为该从机不在线或工作异常,进行报错处理。2.根据权利要求1所述的用于单片机的数据通信方法,其特征在于:从机在接收数据帧时,首先对数据帧中的读写码进行判断,若是“0”,则直接舍弃,若是“1”,则从机解析从机设备码,然...

【专利技术属性】
技术研发人员:罗迪威茅忠群诸永定方献良
申请(专利权)人:宁波方太厨具有限公司
类型:发明
国别省市:浙江,33

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

1