本发明专利技术属于通讯协议的技术领域,具体涉及一种单片机串行通讯协议;解决的技术问题为:提供一种能够提高数据传输的正确性,能够识别传递内容,并且当出现数据传输错误能够直接得到差异位置的单片机串行通讯协议;采用的技术方案为:上位单片机和下位单片机进行通信时,包括以下步骤:上位单片机给下位单片机发送识别ID;下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机;上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送;本发明专利技术适用于串行通讯领域。
【技术实现步骤摘要】
本专利技术属于通讯协议的
,具体涉及一种单片机串行通讯协议。
技术介绍
现有的单片机UART通讯,解决了通讯协议中的硬件部分内容,可以使通讯不必再关心物理层,但通讯中可能出现的数据传输错误及处理没有给出方法,传输中对客户传递的内容不加识别,需要客户维护传递的数据正确性和数据内容的识别。
技术实现思路
本专利技术克服现有技术存在的不足,所要解决的技术问题为:提供一种能够提高数据传输的正确性,能够识别传递内容,并且当出现数据传输错误能够直接得到差异位置的单片机串行通讯协议。为了解决上述技术问题,本专利技术采用的技术方案为:一种单片机串行通讯协议,用于上位单片机和下位单片机之间的通信,上位单片机和下位单片机进行通信时,包括以下步骤:101、上位单片机给下位单片机发送识别ID;102、下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机;103、上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,则执行步骤104,如否,则执行步骤105;104、上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送,而下位单片机将两次接收到的数据内容进行比较,如果相同,则执行步骤107,如果不相同,则执行步骤108;105、上位单片机的重发计数加1,如该重发计数小于等于N,则返回步骤101,否则,执行步骤106,其中,重发计数的初始值为1,N为大于等于1的自然数;106、上位机异常脱出;107、数据内容判定为正常值,下位单片机为接收下一数据字节做准备;108、数据内容判定判定为异常值,下位单片机进行异常处理后,为接收下一数据字节做准备。具体地,所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:对待传输数据字节的类型进行分类,分为变量和指令。具体地,所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,第9位数据位用于区分上位单片机发送的数据字节是识别ID还是数据内容。具体地,所述将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,具体包括:将上位单片机和下位单片机的串行控制寄存器SCON的SM0、SM1设置为10或11。具体地,步骤105中,N为1。具体地,上位单片机和下位单片机开始进行通信时,上位单片机和下位单片机的发送中断请求标志位TI和接收中断请求标志位RI均为0。本专利技术与现有技术相比具有以下有益效果:本专利技术中,上位单片机向下位单片机发送的数据字节被明确的分为识别ID和数据内容,使得传递的数据类别通过确认而严格传递,使得双机通讯得以准确协调工作,下位单片机能够通过比较而确定错误出现的位置,提高数据传输的正确性,而且发送双方的代码简单,处理迅速,占用内存少,对于低速的单片机来说,可以选取较为高速的通讯速率。附图说明下面结合附图对本专利技术做进一步详细的说明;图1为本专利技术实施例一提供的一种单片机串行通讯协议的流程示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例;基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。一种单片机串行通讯协议,用于上位单片机和下位单片机之间的通信,其特征在于:上位单片机和下位单片机进行通信时,包括以下步骤:101、上位单片机给下位单片机发送识别ID。102、下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机。103、上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,则执行步骤104,如否,则执行步骤105。104、上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送,而下位单片机将两次接收到的数据内容进行比较,如果相同,则执行步骤107,如果不相同,则执行步骤108。105、上位单片机的重发计数加1,如该重发计数小于等于N,则返回步骤101,否则,执行步骤106,其中,重发计数的初始值为1,N为大于等于1的自然数。106、上位机异常脱出。107、数据内容判定为正常值,下位单片机为接收下一数据字节做准备。108、数据内容判定判定为异常值,下位单片机进行异常处理后,为接收下一数据字节做准备。不同于奇偶校验位,哈希算法等校验方法,本专利技术变量名、指令名的确认使用了取反比较,数据传递的正确性使用了重复传递数值比较,本专利技术数据传递的异常可以通过两次数值的比较,直接得到差异位置,为应用提供了灵活性,代码简单,占用内存少,适合于资源较少的单片机间的协调工作。具体地,所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:对待传输数据字节的类型进行分类,分为变量和指令。本实施例补足了现有UART通讯中欠缺的部分,将数据内容区分为变量和指令两类,并对两类需要的变量值和指令运行所需数据进行单独传输,使得客户能够让通讯的双方交换变量和指令协调工作。具体地,所述上位单片机给下位单片机发送识别ID之前,包括以下步骤:将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,第9位数据位用于区分上位单片机发送的数据字节是识别ID还是数据内容。本实施例以传送的第9数据位作为区分数据与类名的标志位,根据需要按照变量和指令两种方式来传递数据。更具体地,所述将上位单片机和下位单片机的串行口工作模式设定为9位UART格式,具体包括:将上位单片机和下位单片机的串行控制寄存器SCON的SM0、SM1设置为10或11。串行通讯UART协议有多种工作模式,用于传输数据,本专利技术利用UART的工作模式二或三(固定或可变频率9位异步通讯方式)进行通讯,能满足双机间的变量或指令的交换和传递,实现双机间的协调工作。具体地,步骤105中,N为1。本实施例中,N的值可根据实际应用环境进行设置。具体地,上位单片机和下位单片机开始进行通信时,上位单片机和下位单片机的发送中断请求标志位TI和接收中断请求标志位RI均为0。本专利技术对串行通讯的数据内容进行分类,可以按照变量和指令分别传输数据,满足单片机间的协调工作。对ID和数据用物理帧中的第九数据位区分,物理层的支持使得传递迅速,正确,不会混淆。传输过程中的数据传输错误发现与处理使用取反比较和等值比较实现,代码简单,执行迅速。传送数据的逐字节即时校验,占用内存少,错误位置确定,为应用提供了灵活性。变量和指令的传递,使得单片机间的数据、指令传递清晰,迅速,准确,为单片机间的协同工作创造了条件。串行通讯作为普遍使用的数据通讯方式,通讯协议种类繁多,适应于不同设备、系统,应用于不同的目的,各有所长,各有所短。本专利技术为单片机间的协同工作所设计,代码简单,执行迅速,有一定的容错能力,能在现有代码基础上发展更完善的数据处理流程。最后应说明的是:以上各实施例仅用以说明本专利技术的技术方案,而非对其限制;尽管参照前述各实施例对本专利技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等本文档来自技高网...
【技术保护点】
一种单片机串行通讯协议,用于上位单片机和下位单片机之间的通信,其特征在于:上位单片机和下位单片机进行通信时,包括以下步骤:101、上位单片机给下位单片机发送识别ID;102、下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机;103、上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,则执行步骤104,如否,则执行步骤105;104、上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送,而下位单片机将两次接收到的数据内容进行比较,如果相同,则执行步骤107,如果不相同,则执行步骤108;105、上位单片机的重发计数加1,如该重发计数小于等于N,则返回步骤101,否则,执行步骤106,其中,重发计数的初始值为1,N为大于等于1的自然数;106、上位机异常脱出;107、数据内容判定为正常值,下位单片机为接收下一数据字节做准备;108、数据内容判定判定为异常值,下位单片机进行异常处理后,为接收下一数据字节做准备。
【技术特征摘要】
1.一种单片机串行通讯协议,用于上位单片机和下位单片机之间的通信,其特征在于:上位单片机和下位单片机进行通信时,包括以下步骤:101、上位单片机给下位单片机发送识别ID;102、下位单片机对接收到的识别ID进行取反,并将取反后的识别ID传送回上位单片机;103、上位单片机将接收到的取反识别ID和之前发送的识别ID进行比较,判断二者是否为取反关系,如是,则执行步骤104,如否,则执行步骤105;104、上位单片机连续两次向下位单片机发送数据内容,然后进行下一数据字节的发送,而下位单片机将两次接收到的数据内容进行比较,如果相同,则执行步骤107,如果不相同,则执行步骤108;105、上位单片机的重发计数加1,如该重发计数小于等于N,则返回步骤101,否则,执行步骤106,其中,重发计数的初始值为1,N为大于等于1的自然数;106、上位机异常脱出;107、数据内容判定为正常值,下位单片机为接收下一数据字节做准备;108、数据内容判定判定为异常值,下位单片机进行异常处理后,为接收下一数据字节做...
【专利技术属性】
技术研发人员:陈冠斌,杨冶,
申请(专利权)人:江苏茶花电气股份有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。