CN102750249B - 上位机与下位机通信的方法、装置及系统 - Google Patents
上位机与下位机通信的方法、装置及系统 Download PDFInfo
- Publication number
- CN102750249B CN102750249B CN201210216713.2A CN201210216713A CN102750249B CN 102750249 B CN102750249 B CN 102750249B CN 201210216713 A CN201210216713 A CN 201210216713A CN 102750249 B CN102750249 B CN 102750249B
- Authority
- CN
- China
- Prior art keywords
- information
- slave computer
- host computer
- virtual register
- message bag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及一种上位机与下位机通信的方法、装置及系统。所述方法包括:上位机与下位机建立通信连接;所述上位机向缓存中写入消息包,将所述消息包中信息虚拟寄存器的值设置为通信执行信息;所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值与所述信息虚拟寄存器的值是否相同,如果相同,则所述上位机根据所述通信执行信息与所述下位机通信。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种上位机与下位机通信的方法、装置及系统。
背景技术
目前,在嵌入式系统中,通常将等待调试或接收数据的目标系统称为下位机,而与其对应的调试或发送数据的目标系统称为上位机,上位机一般为个人电脑(personalcomputer,PC机)。上位机通过异步串行通信来实现对下位机的控制,在现有技术中采用通用异步接收/发送装置提供上位机和下位机之间数据的上传和下载等各项操作。在上位机与下位机通信过程中,上位机用于发送命令或数据,而下位机用于执行命令并接收数据。
上位机与下位机之间的通信需建立合适的通信机制,以保证可以准确、简便的交换数据,如图1所示,目前现有技术中上位机与下位机的通信方式。
具体的工作过程如下:上位机与下位机通过通用异步接收/发送装置缓存进行数据传输,通用异步接收/发送装置的缓存结构是采用先入先出队列(FirstInputFirst0utput,FIF0)实现,当从其缓存中将数据读出后不能继续保存,上位机将命令写入缓冲0中,下位机则不断的读缓冲0,当缓冲0中存放数据时,则读取过程如图1中虚线所示,下位机接收到信号后写缓冲1,过程与上位机中是一致的。
上位机并没有考虑在向下位机发送命令或数据时的硬件资源代价,以及对于下位机而言其解析上位机发送的命令或数据时的难易程度;下位机则通常因为没有设计合适的驻留程序,导致解析上位机的命令代价偏高。
发明内容
本发明的目的是为了解决现有技术中上位机与下位机通信时,上位机发送命令或数据时的硬件资源代价过高,以及对于下位机而言其解析上位机发送的命令或数据时的难易程度的问题,提供了一种上位机与下位机通信的方法、装置及系统。
在第一方面,本发明提供了一种上位机与下位机通信的方法,其特征在于,所述方法包括:
上位机与下位机建立通信连接;
所述上位机向缓存中写入消息包,将所述消息包中信息虚拟寄存器的值设置为通信执行信息;
所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值与所述信息虚拟寄存器的值是否相同,如果相同,则所述上位机根据所述通信执行信息与所述下位机通信。
优选地,与所述下位机通信过程中,所述上位机与所述下位机发送/接收包括多个虚拟寄存器的消息包,所述上位机与所述下位机读取/写入与当前通信相关的1个或多个虚拟寄存器的值。
优选地,所述通信执行信息具体为:第一执行信息和第二执行信息,所述第一执行信息为数据传输类信息,所述第二执行信息为非数据传输类信息;
若所述通信执行信息为第一执行信息时,则第一执行信息采用第一发送模式写入所述缓存中;
若所述通信执行信息为第二执行信息时,则第二执行信息采用第二发送模式写入所述缓存中;
所述第一发送模式包括前缀部分和后缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包,在所述后缀部分存储数据文件的数据包;
所述第二发送模式包括前缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包。
优选地,所述上位机读取所述下位机写入所述缓存中的消息包,判断所述状态虚拟寄存器的值是否为通信结束信息,如果所述状态虚拟寄存器的值为所述通信结束信息,则与所述下位机结束通信。
优选地,所述状态虚拟寄存器还存储所述下位机通信状态的信息。
在第二方面,本发明提供了一种上位机与下位机通信的方法,其特征在于,所述方法包括:
下位机与上位机建立通信连接;
所述下位机读取所述上位机写入缓存中的消息包;
所述下位机解析所述消息包,所述消息包中信息虚拟寄存器的值为通信执行信息;
所述下位机向反馈虚拟寄存器中写入数值并向所述缓存中写入包括所述反馈虚拟寄存器的消息包;
根据所述通信执行信息继续与所述上位机通信,完成所述通信执行信息。
优选地,所述下位机根据所述通信执行信息执行完成后,将将通信结束信息写入所述状态虚拟寄存器,并向缓存中写入包括所述状态虚拟寄存器的消息包,与所述上位机结束通信。
优选地,所述状态虚拟寄存器还存储所述下位机通信状态的信息。
在第三方面,本发明提供了一种上位机与下位机通信的装置,其特征在于,所述装置包括:
连接单元,用于上位机与下位机建立通信连接;
写入单元,用于所述上位机向缓存中写入消息包,将所述消息包中信息虚拟寄存器的值设置为通信执行信息;
反馈单元,用于所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值与所述信息虚拟寄存器的值是否相同,如果相同,则所述上位机根据所述通信执行信息与所述下位机通信。
在第四方面,本发明提供了一种上位机与下位机通信的装置,其特征在于,所述装置包括:
连接单元,用于下位机与上位机建立通信连接;
读取单元,用于所述下位机读取所述上位机写入缓存中的消息包;
解析单元,用于所述下位机解析所述消息包,所述消息包中信息虚拟寄存器的值为通信执行信息;
写入单元,用于所述下位机向反馈虚拟寄存器中写入数值并向所述缓存中写入包括所述反馈虚拟寄存器的消息包;
执行单元,用于根据所述通信执行信息继续与所述上位机通信,完成所述通信执行信息。
在第五方面,本发明提供了一种上位机与下位机通信的系统,其特征在于,所述系统包括:上位机和下位机,所述系统还包括缓存;其中,上位机和下位机中的一端将另一端需要执行的信息写入所述缓存中,将需要传输的数据写入所述缓存中;上位机和下位机中的另一端从所述缓存中读取需要的信息。
通过应用本发明公开的方法和装置,上位机与下位机之间利用设置的虚拟寄存器,通过缓冲发送、接收数据,下位机通过读取并解析虚拟寄存器的值执行上位机下发的命令信息,从而实现上位机与下位机之间简单、高效的通信。
附图说明
图1为现有技术中上位机与下位机的通信方式;
图2为本发明提供的上位机与下位机通信的方法框架图;
图3为本发明提供的一上位机与下位机通信的方法流程图;
图4为本发明提供的信息发送模式图;
图5为本发明提供的另一上位机与下位机通信的方法流程图;
图6为本发明提供的一上位机与下位机通信的装置图;
图7为本发明提供的另一上位机与下位机通信的装置图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。
下面以图2为例详细说明本发明提供的上位机与下位机通信的方法,图2为本发明提供的上位机与下位机通信的方法框架图。
如图2所示,本发明提供的上位机与下位机通信的方法中,在上位机与下位机传输的消息包是由多个虚拟寄存器构成;其中,将所述多个虚拟寄存器中的信息虚拟寄存器的值设置为通信执行信息,下位机从缓存中读取消息包,对消息包进行解析,设置反馈虚拟寄存器的值,向缓存中写入多个虚拟寄存器值的消息包,其中,下位机只设置反馈虚拟寄存器的值,上位机从缓存中读取消息包,从中解析出反馈虚拟寄存器的值,上位机判断所述反馈虚拟寄存器的值与信息虚拟寄存器的值是否相同,如果相同则,继续与下位机继续通信,完成通信执行信息,否则通信中断。
下面以图3为例详细说明本发明提供的数据发送的方法,图3为本发明提供的一个上位机与下位机通信的方法流程图,在本实施例中实施主体为上位机。
如图3所示,消息包被划分为多个虚拟寄存器,将多个虚拟寄存器中的信息虚拟寄存器的值设置为通信执行信息,并将多个虚拟寄存器的值打包,写入缓存中,其中,将所述多个虚拟寄存器中的信息虚拟寄存器的值设置为通信执行信息,判断下位机写入反馈虚拟寄存器的值与信息虚拟寄存器的值是否相同,如果相同,则继续与所述下位机通信,完成通信执行信息,实现上位机与下位机通信的方法需要以下步骤,具体包括:
步骤300、上位机与下位机建立通信连接;
具体地,上位机与下位机建立通信连接之前,定义了8个虚拟寄存器,共32个字节,每个虚拟寄存器占4个字节(占用的字节数可自行定义),这8个虚拟寄存器并不驻留在任存储部件中,而动态的存在于上位机与下位机之间信息发送或接收的消息包中,在本发明实施例中,以定义8个虚拟寄存器为例进行说明,所述8个虚拟寄存器如表1所示。
表1
虚拟寄存器 | 功能 |
信息虚拟寄存器dperg1 | 存放上位机发送的信息 |
地址虚拟寄存器dperg2 | 存放存储器的地址信息 |
文件大小虚拟寄存器dperg3 | 存放数据文件大小字节信息 |
反馈虚拟寄存器dperg4 | 存放下位机反馈信息 |
状态虚拟寄存器dperg5 | 存放下位机通信状态 |
临时虚拟寄存器dperg6 | 临时寄存器 |
临时虚拟寄存器dperg7 | 临时寄存器 |
临时虚拟寄存器dperg8 | 临时寄存器 |
首先,上位机将信息虚拟寄存器(dpreg1)的值设置为通信开始信息(COMM),其他虚拟寄存器的值不设置,将8个虚拟寄存器的值打包,向缓存中写入消息包,即消息包中存储的是dpreg1的值;
下位机等待读取缓存,直到缓存中存在数据时,下位机读取上位机写入的消息包,并解析该消息包,从消息包中提取dpreg1的值,若提取的dpreg1的值为COMM,即通信开始信息,则,将COMM写入反馈虚拟寄存器(dpreg4)中,即设置反馈虚拟寄存器(dpreg4)的值为COMM,并打包写入缓存中,等待上位机的判断;
上位机读取下位机写入缓存中的dpreg4值的消息包,从消息包中提取dpreg4的值,判断dpreg4的值是否与自身写入dpreg1的值相同;
如果dpreg4的值与dpreg1的值相同,则上位机获取通信权,与下位机开始通信,否则,返回通信中断。
需要说明的是,每次上位机与下位机在通信过程中,上位机与下位机发送/接收由多个虚拟寄存器构成的消息包,上位机与下位机读取/修改与当前通信相关的多个虚拟寄存器的值。
进一步需要说明的是,下位机将读取到的信息虚拟寄存器的值写进反馈虚拟寄存器是必不可少的,由于上位机无法准确判别下位机是否稳定、正确的执行对应的信息,当下位机设置反馈虚拟寄存器的值,并写入缓存后,上位机才可以通过解析下位机设置的反馈虚拟寄存器的值,来判断下位机是否处于正确工作状态。
步骤310、上位机向缓存中写入由多个虚拟寄存器构成的消息包;
具体地,上位机在获得与下位机的通信权后,开始准备与下位机进行通信,此时,上位机将dpreg1的值设置为通信执行信息,在本发明实施例中所述通信执行消息包括两类执行信息:第一执行信息和第二执行信息;所述第一执行信息用于上位机与下位机之间上传或下载数据文件,即数据传输类信息;所述第二执行信息用于下位机执行的信息,即非数据传输类信息,第一执行信息与第二执行信息如表2和表3所示;
表2第一执行信息及功能
第一执行信息 | 功能 |
DNLD | 上位机向下位机下载数据文件 |
UPLD | 下位机向上位机上传数据文件 |
表3第二执行信息及功能
第二执行信息 | 功能 |
EXEC | 执行程序 |
CHCK | 下位机校验接收的数据文件是否正确 |
CONT | 大块数据的连续写 |
EXIT | 终止通信 |
COMM | 通信开始信息 |
comm | 通信结束信息 |
在本发明实施例中,采用两种数据发送模式,如图4所示,图4为本发明提供的信息发送模式图。第一发送模式中,分为前缀信息和后缀信息两部分,前缀信息为存储多个虚拟寄存器值的消息包,后缀信息为上传或下载的数据文件的数据包,第一发送模式用于上位机向下位机发送第一执行信息时的传输模式;第二发送模式中,只存储多个虚拟寄存器值的消息包,即只包括第一发送模式中的前缀部分,第二发送模式用于上位机向下位机发送第二执行信息时的传输模式。
需要说明的是,表2和表3中所列举的通信执行信息只为一小部分,通信执行信息可根据用户的实际需要进行扩展,在本发明实施例中,以第一执行信息中的DNLD信息为例,详细说明本发明上位机与下位机之间的通信过程。
应当理解的是,在步骤310中,上位机设置dpreg1的值为COMM后,采用第二发送模式发送,下位机接收到上位机发送的dpreg1的值为COMM后,设置dpreg4的值为COMM,也是采用第二发送模式写入缓存,等待上位机的判断。
此时,上位机将dpreg1的值设置为DNLD信息,由于DNLD信息是用于上位机向下位机下载数据文件的信息,因此,上位机更新消息包中dpreg1、dpreg2、dpreg3的值并以第二发送模式写入缓存中。
需要说明的是,在本发明实施例中,上位机与下位机执行DNLD信息,因此,需要设置多个虚拟寄存器,在实际应用中根据具体的命令,设置多个虚拟寄存器。
步骤320、上位机读取所述下位机写入所述缓存中的消息包;
具体地,根据步骤300的描述,下位机在与上位机成功建立通信后,读取缓存,等待上位机写入缓存中的消息包,根据步骤310、310的描述,上位机按照第一发送模式在缓存中写入dpreg1值的消息包,下位机从缓存中读取该消息包,下位机再次解析消息包,下位机读取dpreg1的值后,即DNLD信息,明确上位机将下载数据文件,此时,下位机将从消息包中读取的dpreg1的值写入dpreg4,向缓存中发送消息包,即下位机将其中的反馈虚拟寄存器设置为DNLD,向缓存中发送消息包,下位机继续等待上位机的判断,同时,上位机读取下位机写入缓存中的消息包后,执行步骤330。
需要说明的是,在本发明实施例中,上位机与下位机执行DNLD信息,因此,下位机需要解析多个虚拟寄存器,在实际应用中根据具体的命令,解析多个虚拟寄存器。
步骤330、判断所述反馈虚拟寄存器的值是否与所述信息虚拟寄存器的值相同,如果相同,则进行下一步操作,否则,通信中断;
具体地,根据步骤320的描述,上位机读取下位机写入缓存中的消息包,解析该消息包,判断消息包中的dpreg4的值是否与dpreg1的值相同,即是否为DNLD信息,如果dpreg4的值与dpreg1的值相同,则执行步骤340;如果dpreg4的值与dpreg1的值不相同,则中断通信。
步骤340、如果相同,则上位机根据所述通信执行信息与所述下位机通信。
具体地,上位机将dpreg2的值设置为下位机用于存放数据文件的存储器的地址信息,将dpreg3的值设置为上位机向下位机传输数据文件的大小字节信息,并将dpreg2和dpreg3的值写入前缀部分,将下载至下位机的数据文件的数据信息写入后缀部分,以第一发送模式进行发送,下位机从缓存中读取上位机写入前缀部分的消息包,下位机解析消息包,保留dpreg2、dpreg3的值后,根据dpreg2、dpreg3的值,读取上位机下载数据文件的数据包。
需要说明的是,在本发明实施例中,上位机读取dpreg4的值为DNLD信息,与自身设置dpreg1的值相同,则上位机将数据文件的数据包写入后缀部分,并将后缀部分写入缓存中,下位机根据dpreg2、dpreg3的值查找到存储数据文件的存储器的地址,从缓存中读取到上位机下载的数据文件的数据包后,根据存储器的地址信息,将数据文件的数据包存入;
下位机通过将数据文件全部写入存储器后,将状态虚拟寄存器(dpreg5)的值设置为通信结束信息,即comm,并将dpreg5的值打包后写入缓存中,上位机读取缓存时,获取dpreg5的消息包,识别获取的信息是否为comm,若是,则明确下位机已完成数据文件的存储,即刻终止与下位机的通信连接;若不是,则返回读取错误信息。
需要说明的是,dpreg5的值还用于存储下位机通信状态的信息,当用户需要获取下位机的通信状态时,查询dpreg5的值即可获知。
应当理解的是,下位机设置dpreg5的值为comm后,采用第二发送模式发送。
需要说明的是,在上述实施例中,仅以举例的方式定义虚拟寄存器的数量为8个,使用虚拟寄存器的数量为5个,但定义和使用虚拟寄存器的数量并不限制于此,在实际应用中,还需根据实际情况定义和使用虚拟寄存器。
通过应用本发明上述的数据发送的方法,上位机与下位机之间利用设置的虚拟寄存器,通过缓冲发送、接收数据,下位机通过读取并解析虚拟寄存器的值执行上位机下发的命令信息,从而实现上位机与下位机之间简单、高效的通信。
下面以图5为例详细说明本发明提供的上位机与下位机通信的方法,图5为本发明提供的另一上位机与下位机通信的方法流程图,在本实施例中实施主体为下位机。
如图5所示,下位机与上位机建立连接后,从缓存中读取上位机发送的消息包,并向缓存中写入经过修改反馈虚拟寄存器的消息包,等待上位机的判断,上位机判断下位机写入缓存中的反馈虚拟寄存器的值与自身设置的信息虚拟寄存器的通信执行信息是否相同,如果相同,则向所述下位机发送数据文件,完成通信执行信息,下位机在完成通信执行信息后,向缓存中写入通信结束信息,下位机结束与上位机的通信连接,实现上位机与下位机通信的方法需要以下步骤,具体包括:
步骤500、下位机与上位机建立通信连接;
具体地,前述已详细说明下位机与上位机建立通信连接的具体过程,在此,不在赘述。
步骤510、下位机读取所述上位机写入缓存中由多个虚拟寄存器构成的消息包;
具体地,下位机在与上位机成功建立通信后,读取缓存,等待上位机写入缓存中的消息包,根据前述实施例步骤310的描述,上位机在缓存中写入dpreg1值的消息包,下位机从缓存中读取该消息包,执行步骤520。
步骤520、下位机解析所述多个虚拟寄存器值的消息包;
具体地,根据步骤510的描述,下位机解析上位机写入缓存的消息包,下位机读取在消息包中的dpreg1的值后,即DNLD信息,明确上位机将下载数据文件后,此时,下位机将从消息包中读取的dpreg1的值写入dpreg4。
步骤530、下位机向所述缓存中写入修改了反馈虚拟寄存器值的消息包;
具体地,根据步骤520的描述,下位机读取dpreg1的值后,即DNLD信息,明确上位机将下载数据文件,此时,下位机将dpreg4的值设置为DNLD信息,并将dpreg4的值打包写入缓存中,下位机继续等待上位机的判断。
步骤540、下位机根据所述通信执行信息继续与所述上位机通信,完成所述通信执行信息;
具体地,上位机读取下位机写入缓存中的dpreg4值的消息包,并判断dpreg4的值是否与dpreg1的值相同,即是否为DNLD信息,如果dpreg4的值与dpreg1的值相同,则上位机继续与下位机保持通信,上位机将dpreg2的值设置为下位机用于存放数据文件的存储器的地址信息,将dpreg3的值设置为上位机向下位机传输数据文件的大小字节信息,并将dpreg2和dpreg3的值写入前缀部分,将下载至下位机的数据文件的数据信息写入后缀部分,以第一发送模式进行发送,下位机从缓存中读取上位机写入前缀部分的消息包,下位机解析消息包,保留dpreg2、dpreg3的值后,根据dpreg2、dpreg3的值,读取上位机下载数据文件的数据包;
在本发明实施例中,上位机读取dpreg4的值为DNLD信息,与自身设置dpreg1的值相同,则上位机将数据文件的数据包写入后缀部分,并将后缀部分写入缓存中,下位机根据dpreg2、dpreg3的值查找到存储数据文件数据包的存储器的地址,从缓存中读取到上位机下载的数据文件后,根据存储器的地址信息,将数据文件的数据包存入;
下位机通过缓存将数据文件全部写入存储器后,将dpreg5的值设置为通信结束信息,即comm,并将dpreg5的值打包后写入缓存中,上位机读取缓存时,获取dpreg5的消息包,识别获取的信息是否为comm,若是,则明确下位机已完成数据文件的存储,即刻终止与下位机的通信连接。
需要说明的是,dpreg5的值还用于存储下位机通信状态的信息,当用户需要获取下位机的通信状态时,查询dpreg5的值即可获知。
根据前述下位机接收数据的流程描述,具体下位机接收数据文件的程序为:
上述程序显示了下位机与上位机通信程序的基本框架,它由两层嵌套循环实现,外层循环用于上位机向下位机发送的信息,并实现相关功能,而内层循环是当上位机每发起一次通信操作,即上位机发送‘COMM’信息后,等待后续具体操作命令的循环体,当下位机接收到通信执行信息时,上述程序以通信执行信息中的第一执行信息‘DNLD信息’为例,设置整型变量comm=0,下位机跳出内层循环返回至外层循环,完成通信执行信息对应的功能。
下位机通信程序在外层循环中死循环,等待上位机的‘COMM’信息;下位机获取‘COMM’信息后,置整型变量comm=1,进入内层循环开始等待,并向缓存写入反馈信号,即置dpreg4的值=f1ag0=dpreg1的值;上位机写入‘DNLD’信息或其他有效信息,内层循环置comm=0,返回外层循环;下位机根据相应的标号执行对应的功能,执行结束后置dpreg5的值=’comm’并写入至缓存;下位机继续在外层循环进行循环等待下一次通信。
需要说明的是,在上述实施例中,仅以举例的方式定义虚拟寄存器的数量为8个,使用虚拟寄存器的数量为5个,但定义和使用虚拟寄存器的数量并不限制于此,在实际应用中,还需根据实际情况定义和使用该虚拟寄存器。
通过应用本发明上述的上位机与下位机的方法,上位机与下位机之间利用设置的虚拟寄存器,通过缓存发送、接收数据,下位机通过读取并解析虚拟寄存器的值执行上位机下发的命令信息,从而实现上位机与下位机之间简单、高效的通信。
相应地,图6为本发明提供的信息发送的装置图;如图6所示,所述信息发送的装置包括:
连接单元610,用于上位机与下位机建立通信连接;
写入单元620,用于所述上位机向缓存中写入消息包,将所述消息包中信息虚拟寄存器的值设置为通信执行信息,与所述下位机通信过程中,所述上位机与所述下位机发送/接收包括多个虚拟寄存器的消息包,所述上位机与所述下位机读取/写入与当前通信相关的1个或多个虚拟寄存器的值;
反馈单元630,用于所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值与所述信息虚拟寄存器的值是否相同;
第一执行单元640,用于如果相同,则所述上位机根据所述通信执行信息与所述下位机通信。
所述连接单元具体用于:所述上位机将所述信息虚拟寄存器的值设置为通信开始信息,并向所述缓存中写入包括所述信息虚拟寄存器的消息包;
所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值是否与所述信息虚拟寄存器的值相同,如果相同,则与所述下位机开始下一步通信,否则,终止通信。
所述写入单元具体用于:第一执行信息和第二执行信息,所述第一执行信息为数据传输类信息,所述第二执行信息为非数据传输类信息;
若所述通信执行信息为第一执行信息时,则第一执行信息采用第一发送模式写入所述缓存中;
若所述通信执行信息为第二执行信息时,则第二执行信息采用第二发送模式写入所述缓存中;
所述第一发送模式包括前缀部分和后缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包,在所述后缀部分存储数据文件的数据包;
所述第二发送模式包括前缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包。
所述装置还包括:判断单元650,用于所述上位机读取所述下位机写入所述缓存中的消息包,判断所述状态虚拟寄存器的值是否为通信结束信息;
第二执行单元660,用于如果所述状态虚拟寄存器的值为所述通信结束信息,则与所述下位机结束通信。
所述状态虚拟寄存器还存储所述下位机通信状态的信息。
通过应用本发明上述的上位机与下位机通信的装置,上位机与下位机之间利用设置的虚拟寄存器,通过缓存发送、接收数据,下位机通过读取并解析虚拟寄存器的值执行上位机下发的命令信息,从而实现上位机与下位机之间简单、高效的通信。
图7为本发明提供的信息接收的装置图;如图7所示,所述信息接收的装置包括:连接单元710,用于下位机与上位机建立通信连接;
读取单元720,用于所述下位机读取所述上位机写入缓存中的消息包;
解析单元730,用于所述下位机解析所述消息包,所述消息包中信息虚拟寄存器的值为通信执行信息;
写入单元740,用于所述下位机向反馈虚拟寄存器中写入数值并向所述缓存中写入包括所述反馈虚拟寄存器的消息包;
执行单元750,用于根据所述通信执行信息继续与所述上位机通信,完成所述通信执行信息。
所述连接单元具体用于:所述下位机读取所述上位机写入所述缓存中的消息包;
所述下位机判断所述消息包中的所述信息虚拟寄存器的值是否为通信开始信息,如果是,则将所述通信开始信息写入所述反馈虚拟寄存器中;
所述下位机向所述缓存中写入包括所述反馈虚拟寄存器的消息包。
所述装置还包括:设置单元760,用于所述下位机根据所述通信执行信息执行完成后,将将通信结束信息写入所述状态虚拟寄存器,并向缓存中写入包括所述状态虚拟寄存器的消息包,与所述上位机结束通信。
所述状态虚拟寄存器还存储所述下位机通信状态的信息。
通过应用本发明上述的上位机与下位机通信的装置,上位机与下位机之间利用设置的虚拟寄存器,通过缓存发送、接收数据,下位机通过读取并解析虚拟寄存器的值执行上位机下发的命令信息,从而实现上位机与下位机之间简单、高效的通信。
相应地,本发明还提供了一种上位机与下位机通信的系统,所述系统包括:上位机和下位机,
所述系统还包括缓存;其中,上位机和下位机中的一端将另一端需要执行的信息写入所述缓存中,将需要传输的数据写入所述缓存中;上位机和下位机中的另一端从所述缓存中读取需要的信息。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种上位机与下位机通信的方法,其特征在于,所述方法包括:
上位机与下位机建立通信连接;
所述上位机向缓存中写入消息包,将所述消息包中信息虚拟寄存器的值设置为通信执行信息;
所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值与所述信息虚拟寄存器的值是否相同,如果相同,则所述上位机根据所述通信执行信息与所述下位机通信;
其中,与所述下位机通信过程中,所述上位机与所述下位机发送/接收包括多个虚拟寄存器的消息包,所述上位机与所述下位机读取/写入与当前通信相关的1个或多个虚拟寄存器的值;
所述通信执行信息包括:第一执行信息和第二执行信息,所述第一执行信息为数据传输类信息,所述第二执行信息为非数据传输类信息;
若所述通信执行信息为第一执行信息时,则第一执行信息采用第一发送模式写入所述缓存中;
若所述通信执行信息为第二执行信息时,则第二执行信息采用第二发送模式写入所述缓存中;
所述第一发送模式包括前缀部分和后缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包,在所述后缀部分存储数据文件的数据包;
所述第二发送模式包括前缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包。
2.根据权利要求1所述的上位机与下位机通信的方法,其特征在于,所述上位机与下位机建立通信连接进一步包括:
所述上位机将所述信息虚拟寄存器的值设置为通信开始信息,并向所述缓存中写入包括所述信息虚拟寄存器的消息包;
所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值是否与所述信息虚拟寄存器的值相同,如果相同,则与所述下位机开始下一步通信,否则,终止通信。
3.根据权利要求1所述的上位机与下位机通信的方法,其特征在于,所述方法还包括:
所述上位机读取所述下位机写入所述缓存中的消息包,判断状态虚拟寄存器的值是否为通信结束信息,如果所述状态虚拟寄存器的值为所述通信结束信息,则与所述下位机结束通信。
4.根据权利要求3所述的上位机与下位机通信的方法,其特征在于,所述状态虚拟寄存器还存储所述下位机通信状态的信息。
5.一种上位机与下位机通信的方法,其特征在于,所述方法包括:
下位机与上位机建立通信连接;
所述下位机读取所述上位机写入缓存中的消息包;
所述下位机解析所述消息包,所述消息包中信息虚拟寄存器的值为通信执行信息;
所述下位机向反馈虚拟寄存器中写入数值并向所述缓存中写入包括所述反馈虚拟寄存器的消息包;
根据所述通信执行信息继续与所述上位机通信,完成所述通信执行信息;
其中,所述上位机与所述下位机通信过程中,所述上位机与所述下位机发送/接收包括多个虚拟寄存器的消息包,所述上位机与所述下位机读取/写入与当前通信相关的1个或多个虚拟寄存器的值;
所述通信执行信息包括:第一执行信息和第二执行信息,所述第一执行信息为数据传输类信息,所述第二执行信息为非数据传输类信息;
若所述通信执行信息为第一执行信息时,则第一执行信息采用第一发送模式写入所述缓存中;
若所述通信执行信息为第二执行信息时,则第二执行信息采用第二发送模式写入所述缓存中;
所述第一发送模式包括前缀部分和后缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包,在所述后缀部分存储数据文件的数据包;
所述第二发送模式包括前缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包。
6.根据权利要求5所述的上位机与下位机通信的方法,其特征在于,所述下位机与上位机建立通信连接进一步包括:
所述下位机读取所述上位机写入所述缓存中的消息包;
所述下位机判断所述消息包中的所述信息虚拟寄存器的值是否为通信开始信息,如果是,则将所述通信开始信息写入所述反馈虚拟寄存器中;
所述下位机向所述缓存中写入包括所述反馈虚拟寄存器的消息包。
7.根据权利要求5所述的上位机与下位机通信的方法,其特征在于,所述方法还包括:
所述下位机根据所述通信执行信息执行完成后,将将通信结束信息写入状态虚拟寄存器,并向缓存中写入包括所述状态虚拟寄存器的消息包,与所述上位机结束通信。
8.根据权利要求7所述的上位机与下位机通信的方法,其特征在于,所述状态虚拟寄存器还存储所述下位机通信状态的信息。
9.一种上位机与下位机通信的装置,其特征在于,所述装置包括:
连接单元,用于上位机与下位机建立通信连接;
写入单元,用于所述上位机向缓存中写入消息包,将所述消息包中信息虚拟寄存器的值设置为通信执行信息;
反馈单元,用于所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值与所述信息虚拟寄存器的值是否相同;
第一执行单元,用于如果相同,则所述上位机根据所述通信执行信息与所述下位机通信;
其中,与所述下位机通信过程中,所述上位机与所述下位机发送/接收包括多个虚拟寄存器的消息包,所述上位机与所述下位机读取/写入与当前通信相关的1个或多个虚拟寄存器的值;
所述写入单元具体用于:
第一执行信息和第二执行信息,所述第一执行信息为数据传输类信息,所述第二执行信息为非数据传输类信息;
若所述通信执行信息为第一执行信息时,则第一执行信息采用第一发送模式写入所述缓存中;
若所述通信执行信息为第二执行信息时,则第二执行信息采用第二发送模式写入所述缓存中;
所述第一发送模式包括前缀部分和后缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包,在所述后缀部分存储数据文件的数据包;
所述第二发送模式包括前缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包。
10.根据权利要求9所述的上位机与下位机通信的装置,其特征在于,所述连接单元具体用于;
所述上位机将所述信息虚拟寄存器的值设置为通信开始信息,并向所述缓存中写入包括所述信息虚拟寄存器的消息包;
所述上位机读取所述下位机写入所述缓存中的消息包,判断所述消息包中反馈虚拟寄存器的值是否与所述信息虚拟寄存器的值相同,如果相同,则与所述下位机开始下一步通信,否则,终止通信。
11.根据权利要求9所述的上位机与下位机通信的装置,其特征在于,所述装置还包括:
判断单元,用于所述上位机读取所述下位机写入所述缓存中的消息包,判断状态虚拟寄存器的值是否为通信结束信息;
第二执行单元,用于如果所述状态虚拟寄存器的值为所述通信结束信息,则与所述下位机结束通信。
12.根据权利要求11所述的上位机与下位机通信的装置,其特征在于,所述状态虚拟寄存器还存储所述下位机通信状态的信息。
13.一种上位机与下位机通信的装置,其特征在于,所述装置包括:
连接单元,用于下位机与上位机建立通信连接;
读取单元,用于所述下位机读取所述上位机写入缓存中的消息包;
解析单元,用于所述下位机解析所述消息包,所述消息包中信息虚拟寄存器的值为通信执行信息;
写入单元,用于所述下位机向反馈虚拟寄存器中写入数值并向所述缓存中写入包括所述反馈虚拟寄存器的消息包;
执行单元,用于根据所述通信执行信息继续与所述上位机通信,完成所述通信执行信息;
其中,所述上位机与所述下位机通信过程中,所述上位机与所述下位机发送/接收包括多个虚拟寄存器的消息包,所述上位机与所述下位机读取/写入与当前通信相关的1个或多个虚拟寄存器的值;
所述通信执行信息包括:第一执行信息和第二执行信息,所述第一执行信息为数据传输类信息,所述第二执行信息为非数据传输类信息;
若所述通信执行信息为第一执行信息时,则第一执行信息采用第一发送模式写入所述缓存中;
若所述通信执行信息为第二执行信息时,则第二执行信息采用第二发送模式写入所述缓存中;
所述第一发送模式包括前缀部分和后缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包,在所述后缀部分存储数据文件的数据包;
所述第二发送模式包括前缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包。
14.根据权利要求13所述的上位机与下位机通信的装置,其特征在于,所述连接单元具体用于:
所述下位机读取所述上位机写入所述缓存中的消息包;
所述下位机判断所述消息包中的所述信息虚拟寄存器的值是否为通信开始信息,如果是,则将所述通信开始信息写入所述反馈虚拟寄存器中;
所述下位机向所述缓存中写入包括所述反馈虚拟寄存器的消息包。
15.根据权利要求13所述的上位机与下位机通信的装置,其特征在于,所述装置还包括:
设置单元,用于所述下位机根据所述通信执行信息执行完成后,将通信结束信息写入状态虚拟寄存器,并向缓存中写入包括所述状态虚拟寄存器的消息包,与所述上位机结束通信。
16.根据权利要求15所述的上位机与下位机通信的装置,其特征在于,所述状态虚拟寄存器还存储所述下位机通信状态的信息。
17.一种上位机与下位机通信的系统,所述系统包括:上位机和下位机,其特征在于,
所述系统还包括缓存;其中,上位机和下位机中的一端将另一端需要执行的信息写入所述缓存中,将需要传输的数据写入所述缓存中;上位机和下位机中的另一端从所述缓存中读取需要的信息;
所述缓存中存储了所述上位机或者所述下位机写入的消息包,所述消息包包括多个虚拟寄存器,所述上位机与所述下位机读取/写入与当前通信相关的1个或多个虚拟寄存器的值;
所述消息包中信息虚拟寄存器的值设置为通信执行信息,所述通信执行信息包括:第一执行信息和第二执行信息,所述第一执行信息为数据传输类信息,所述第二执行信息为非数据传输类信息;
若所述通信执行信息为第一执行信息时,则第一执行信息采用第一发送模式写入所述缓存中;
若所述通信执行信息为第二执行信息时,则第二执行信息采用第二发送模式写入所述缓存中;
所述第一发送模式包括前缀部分和后缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包,在所述后缀部分存储数据文件的数据包;
所述第二发送模式包括前缀部分,在所述前缀部分存储包括所述多个虚拟寄存器值的消息包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210216713.2A CN102750249B (zh) | 2012-06-27 | 2012-06-27 | 上位机与下位机通信的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210216713.2A CN102750249B (zh) | 2012-06-27 | 2012-06-27 | 上位机与下位机通信的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102750249A CN102750249A (zh) | 2012-10-24 |
CN102750249B true CN102750249B (zh) | 2016-01-06 |
Family
ID=47030450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210216713.2A Expired - Fee Related CN102750249B (zh) | 2012-06-27 | 2012-06-27 | 上位机与下位机通信的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102750249B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823447B (zh) * | 2014-03-04 | 2016-06-01 | 北京七星华创电子股份有限公司 | 半导体设备的上下位机的通信方法和通信系统 |
CN109939310A (zh) * | 2017-12-20 | 2019-06-28 | 北京谊安医疗系统股份有限公司 | 呼吸机的下位机向上位机发送数据的方法和呼吸机 |
CN108170618A (zh) * | 2017-12-28 | 2018-06-15 | 施耐德万高(天津)电气设备有限公司 | 基于rs485总线的缓存结构及其软件控制方法 |
CN109284244A (zh) * | 2018-01-24 | 2019-01-29 | 上海云统信息科技有限公司 | 一种离线数据同步存储系统 |
CN109130855A (zh) * | 2018-08-03 | 2019-01-04 | 浙江中科领航汽车电子有限公司 | 一种液晶仪表显示元素渐变效果的辅助方法、系统及装置 |
CN112084050A (zh) * | 2019-06-14 | 2020-12-15 | 北京北方华创微电子装备有限公司 | 信息记录方法及系统 |
CN113810250B (zh) * | 2021-09-27 | 2023-02-07 | 西安热工研究院有限公司 | 一种消息跟踪方法、系统及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257352A (en) * | 1989-07-05 | 1993-10-26 | Hitachi, Ltd. | Input/output control method and system |
CN101359321A (zh) * | 2008-09-02 | 2009-02-04 | 北京中星微电子有限公司 | 一种实现处理器相互通讯的方法及装置 |
CN101819560A (zh) * | 2009-02-27 | 2010-09-01 | 杭州晟元芯片技术有限公司 | 一种spi接口存储器执行程序方法和装置 |
CN102364908A (zh) * | 2011-10-21 | 2012-02-29 | 深圳航天东方红海特卫星有限公司 | 基于星载电子设备的信息传输系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100392601C (zh) * | 2003-07-16 | 2008-06-04 | 纬创资通股份有限公司 | 于电脑系统中装置间转移控制权及由待机切换至运作的方法 |
-
2012
- 2012-06-27 CN CN201210216713.2A patent/CN102750249B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257352A (en) * | 1989-07-05 | 1993-10-26 | Hitachi, Ltd. | Input/output control method and system |
CN101359321A (zh) * | 2008-09-02 | 2009-02-04 | 北京中星微电子有限公司 | 一种实现处理器相互通讯的方法及装置 |
CN101819560A (zh) * | 2009-02-27 | 2010-09-01 | 杭州晟元芯片技术有限公司 | 一种spi接口存储器执行程序方法和装置 |
CN102364908A (zh) * | 2011-10-21 | 2012-02-29 | 深圳航天东方红海特卫星有限公司 | 基于星载电子设备的信息传输系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102750249A (zh) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102750249B (zh) | 上位机与下位机通信的方法、装置及系统 | |
CN103024059B (zh) | 一种物联网中间件系统 | |
US6434660B1 (en) | Emulating one tape protocol of flash memory to a different type protocol of flash memory | |
CN107229415B (zh) | 一种数据写方法、数据读方法及相关设备、系统 | |
CN106951388A (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
CN101783812A (zh) | 一种基于网络的fpga配置系统及配置方法 | |
CN113900982B (zh) | 一种分布式异构加速平台通信方法、系统、设备及介质 | |
CN103365701A (zh) | 一种模拟读卡器的工作方法和模拟通信系统 | |
CN102736938A (zh) | Fpga配置程序的烧写方法 | |
US11829323B2 (en) | Method of notifying a process or programmable atomic operation traps | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN103378994A (zh) | 一种通信设备的测试方法及终端 | |
US10496422B2 (en) | Serial device emulator using two memory levels with dynamic and configurable response | |
CN115905095A (zh) | Usb免驱通信方法、装置、电子设备及存储介质 | |
CN109857553A (zh) | 内存管理方法及装置 | |
CN101261611A (zh) | 一种外围设备间的数据传输装置和传输方法 | |
CN108322482A (zh) | 一种协议转换的方法及装置 | |
CN103326889B (zh) | 一种新旧版本间通信兼容的方法及装置 | |
CN105117353A (zh) | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN109710187A (zh) | NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质 | |
CN115481078A (zh) | 主从式通讯系统及方法 | |
CN111371799A (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN101770088B (zh) | 液晶显示模块测试装置及其数据传送方法 | |
CN105739919A (zh) | 资料存取系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190514 Address after: 618300 No. 74 Taizhong Road, Guanghan City, Deyang City, Sichuan Province Patentee after: Sichuan Lianzhong defense science and Technology Co., Ltd. Address before: 100190 No. 21 Road, West North Fourth Ring Road, Haidian District, Beijing Patentee before: Institute of acoustics, Chinese Academy of Sciences |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160106 Termination date: 20210627 |