一种板间通信数据的解析方法与流程

文档序号:18642214发布日期:2019-09-11 23:35阅读:365来源:国知局
一种板间通信数据的解析方法与流程

本发明涉及信号通信技术领域,尤其是涉及了一种板间通信数据的解析方法。



背景技术:

当前起重机控制系统中,往往需要实现不同信号处理板之间的互联和信息交换,如通过主控板同时向数字量输入输出板,编码器板,交流输入输出板以及模拟量输出板发送数据,主控板根据响应来控制扩展板程序的运行。

主控板与多块扩展板间的信号传输,最常见的是并行数据传输,但并行通信布线复杂、成本较高、不适合远距离传输且可靠性较低。主控板与多块扩展板间利用串行通信方式进行数据传输的应用还不是很成熟,数据的传输速率和准确率不高,会影响到系统的正常工作。



技术实现要素:

为了克服背景技术中的不足,本发明公开了一种板间通信数据的解析方法,实现了主控板与多块扩展板间的串行通信,通过设计数据传输帧格式和读写解析方法,提高了传输速度,保证了传输的正确性。

为实现上述发明目的,本发明采用如下技术方案:

一种板间通信数据的解析方法,包括以下步骤:

步骤一:系统初始化,系统开始工作后,扩展板自身进行数据初始化工作,清除缓冲区及相关变量;

步骤二:主控板发送报文信息,主控板根据任务需求构造不同格式的报文信息,若主控板进行读寄存器操作,则主控板根据主机读寄存器帧格式构造报文信息,若主控板进行写寄存器操作,则主控板根据主机写寄存器桢格式构造报文信息,最后主控板生成crc校验码,并将报文信息发送给各个扩展板;

步骤三:扩展板接收报文信息,与主控板相连的各个扩展板同时接收到主控板发送的报文信息,扩展板接收到报文信息后,对报文信息中的从机地址码进行核对,若报文信息中的从机地址码与扩展板的地址不一致,则舍弃此条报文信息,继续等待下条报文的到来,若报文信息中的从机地址码与扩展板的地址一致,则进行错误帧检测;若crc校验码正确,则进入步骤四,若crc校验码出现错误,则舍弃此条报文信息,继续等待下条报文到来;

步骤四:扩展板发送回应报文,扩展板根据主控板发送报文信息中的功能码判断需要执行什么动作,若为读寄存器操作,则扩展板读取主控板发送报文信息所需读取的寄存器中的数据,并根据读寄存器返回帧格式构造回应报文,若为写寄存器操作,则扩展板将主控板发送的数据依次写入相应的寄存器中,并根据写寄存器返回帧格式构造回应报文,最后扩展板生成crc校验码,并将回应报文信息发送给主控板;

步骤五:主控板解析回应报文信息,主控板接收到扩展板发送的回应报文信息后,对回应报文信息中的从机地址码进行核对,若回应报文信息中的从机地址码与主控板已发送报文信息中的从机地址码不一致,则舍弃此条回应报文信息,等待下一条回应报文信息到来,若回应报文信息中的从机地址码与主控板已发送报文信息中的从机地址码一致,则进行错误帧检测;若crc校验码正确且功能码为读寄存器操作,主控板读取扩展板发送的回应报文信息中的数据信息,若crc校验码正确且功能码写寄存器操作,主控板判定写寄存器成功,若crc校验码出现错误,则舍弃此条报文信息;主控板判断与扩展板通信是否结束,若继续进行通信,则重复步骤二。

优选的,所述主机读寄存器帧包括从机地址码、功能码、首寄存器地址、寄存器数和校验位。

优选的,所述主机写寄存器帧包括从机地址码、功能码、首寄存器地址、寄存器数、数据段和校验位。

优选的,所述读寄存器返回帧包括从机地址码、功能码、寄存器数、数据段和校验位。

优选的,所述写寄存器返回帧包括从机地址码、功能码、首寄存器地址、寄存器数和校验位。

本发明通过设计数据传输帧格式和读写解析方法,实现了主控板与多块扩展板间的快速串行通信,可以支持多种电气接口,帧格式简单、紧凑,通俗易懂;主从机读写灵活,可以读写单个寄存器变量,也可以读写多个寄存器变量,可以读写连续的寄存器变量,也可以读写离散的寄存器变量,无需修改程序本体,只需传递读写函数接口的形参即可实现对不同数据的读写;增加帧错误检测判断、发送数据成功检测判断、接收数据成功检测判断、通信状态检测判断,保证了数据的可靠传输。

附图说明

图1为主控板与多块扩展板间的串行通信结构示意图;

图2为本发明板间通信数据的解析方法流程示意图;

图3为本发明主机读寄存器帧格式;

图4为本发明主机写寄存器帧格式;

图5为本发明读寄存器返回帧格式;

图6为本发明写寄存器返回帧格式。

具体实施方式

通过下面的实施例可以详细的解释本发明,公开本发明的目的旨在保护本发明范围内的一切技术改进,本发明并不局限于下面的实施例。

图1为主控板与多块扩展板间的串行通信结构示意图,一块主控板与多块扩展板间进行串行通信时,多块扩展板共用一条数据传输线,当主控板发送命令时,多块扩展板同时接收到该命令。

图2为本发明一种板间通信数据的解析方法流程示意图,该解析方法使用主--从技术,即主控板进行查询,其它扩展板根据主控板查询信息作出相应反应;该解析方法针对主控板的读写操作,设计了主机读寄存器帧、主机写寄存器帧格式、读寄存器返回帧和写寄存器返回帧,其具体格式如图3-图6所示,同时规定当一帧数据结束后,4个字符时间内没有新的数据到达,判断为帧结束。各个帧元素具体说明如下。

从机地址码:通讯传送的第一个字节,表示扩展板的地址;主控板发送报文中的从机地址码表明将要与之进行通信的扩展板地址,扩展板回应报文的从机地址码表明向主控板进行回应的扩展板地址;每个扩展板都有具有唯一的地址码。

功能码:通讯传送的第二个字节,表示需要执行何总操作,0xaa为读操作,功能码0xbb为写操作;主控板发送报文中的功能码,告诉扩展板执行什么动作;扩展板回应报文中的功能码,若与从主控板发送报文中的功能码一致,表明扩展板已响应主控板进行操作。

首寄存器地址:读取或者写入数据的开始地址单元,占用2个字节,高字节在前低字节在后。

寄存器数:读取或者写入寄存器的个数,占用2个字节。

数据段:数据段包含了需要读取或写入的数据内容,高字节在前低字节在后。

校验码:用于检查主控板和扩展板传输过程中的错误,错误校验使用了16位循环冗余的方法(crc16),长度为2字节,低字节在前,高字节在后。

一种板间通信数据的解析方法具体包括以下步骤。

步骤一:系统初始化。

系统开始工作后,扩展板自身进行数据初始化工作,清除缓冲区及相关变量。

步骤二:主控板发送报文信息。

主控板根据任务需求构造不同格式的报文信息。

若主控板进行读寄存器操作,则主控板根据主机读寄存器帧格式构造报文信息,如图3所示;报文信息中的从机地址码为要进行通信的扩展板地址码,报文信息中的功能码告之被选中的扩展板要执行读存器操作,这里使用0xaa,报文信息中的首寄存器地址和寄存器数告知扩展板要读取以首寄存器地址开始读寄存器以及读寄存器的个数。

若主控板进行写寄存器操作,则主控板根据主机写寄存器桢格式构造报文信息,如图4示;报文信息中的从机地址码为要进行通信的扩展板地址码,报文信息中的功能码告之被选中的扩展板要执行写寄存器操作,这里使用0xbb,报文信息中的首寄存器地址和寄存器数是告诉扩展板从首寄存器地址开始写寄存器以及写寄存器的个数,报文信息中的数据段为要写入的数据内容。

最后主控板生成crc校验码,并将报文信息发送给各个扩展板。

步骤三:扩展板接收报文信息。

与主控板相连的各个扩展板同时接收到主控板发送的报文信息,扩展板接收到报文信息后,对报文信息中的从机地址码进行核对。

若报文信息中的从机地址码与扩展板的地址不一致,说明要与主控板通信的不是此块扩展板,则舍弃此条报文信息,继续等待下条报文的到来;若报文信息中的从机地址码与扩展板的地址一致,说明要与主控板通信的是此块扩展板,则进行错误帧检测。

若crc校验码正确,传输过程无误,该扩展板可以与主控板通信,则进入步骤四,若crc校验码出现错误,则舍弃此条报文信息,继续等待下条报文到来。

步骤四:扩展板发送回应报文。

扩展板根据主控板发送报文信息中的功能码判断需要执行什么动作。

若为读寄存器操作,则扩展板读取主控板发送报文信息所需读取的寄存器中的数据,并根据读寄存器返回帧格式构造回应报文,如图5所示;回应报文中的从机地址码是与主控板进行通信的扩展板地址,回应报文中的功能码是主控板发送报文信息中功能码的回应,回应报文中的寄存器数是在主控板发送报文信息中寄存器数的回应,数据段包括了扩展板读取的数据内容。

若为写寄存器操作,则扩展板将主控板发送的数据依次写入相应的寄存器中,并根据写寄存器返回帧格式构造回应报文,如图6所示;回应报文中的从机地址码是与主控板进行通信的扩展板地址,回应报文中的功能码是主控板发送报文信息中功能码的回应,回应报文中的首寄存器地址和寄存器数是主控板发送报文信息中首寄存器地址和寄存器数的回应。

最后扩展板生成crc校验码,并将回应报文信息发送给主控板。

步骤五:主控板解析回应报文。

主控板接收到扩展板发送的回应报文信息后,对回应报文信息中的从机地址码进行核对。

若回应报文信息中的从机地址码与主控板已发送报文信息中的从机地址码不一致,说明不是该地址的扩展板与主控板通信,则舍弃此条回应报文信息,等待下一条回应报文信息到来;若回应报文信息中的从机地址码与主控板已发送报文信息中的从机地址码一致,则进行错误帧检测。

若crc校验码正确且为功能码为读寄存器操作,主控板读取扩展板发送的回应报文信息中的数据信息,若crc校验码正确且为功能码写寄存器操作,主控板判定写寄存器成功,若crc校验码出现错误,则舍弃此条报文信息。

主控板判断与扩展板通信是否结束,若继续进行通信,则重复步骤二。

本发明未详述部分为现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1