一种总线协议无关的通信方法,用于在宿主机与目标机之间建立与具体通信端口无关的命令驱动式通信协议;所述宿主机包括文件管理与数据传送模块、协议命令处理模块和各种总线通信处理模块;所述目标机包括命令执行与数据传送模块、命令解析模块和各种总线通信处理模块;其特征在于:所述宿主机还包括设置在协议命令处理模块与各种总线通信处理模块之间的通信管理模块,所述目标机还包括设置在命令解析模块与各种总线通信处理模块之间的通信管理模块,所述通信管理模块设置了四个缓冲区,分别为命令执行缓冲区、命令接收缓冲区、数据执行缓冲区、数据接收缓冲区,并对具体的通信端口进行管理。
【技术实现步骤摘要】
本专利技术涉及一种总线协议无关的通信方法,尤其涉及在采用SPARC V8处理器的目标机和采用PC机的宿主机之间实现总线协议无关的通信方法。
技术介绍
对于嵌入式系统开发来说,监控软件在嵌入式系统的调试与应用过程中具有重要的作用。一般监控软件的运行模式是在宿主机上运行一个控制台,在目标机上运行一个代理软件,通过命令解析模块把信息或数据传送到目标。代理和控制台之间的信息交换需要用到通信总线,根据总线种类不同,通信协议也是不一样的,因此信息交换过程中完成的数据交换和命令交换需要根据通信协议的不同制定不同的信息交换协议,这样才能通过上位机去控制下位机的运行。目前的作法是基于一种特定的总线,命令交互过程与总线协议密切相关,这种一对一的通信方式不支持多种通信总线,需要根据总线类型的不同制定不同的通信协议和数据传输格式。目前的通信结构如图1所示。SPARC V8 (Scalable Processor Architecture V8) ^ SUN Microsystems纪80年代提出的一种开放性的32位RISC处理器体系结构。SPARC V8作为一种通用的处理器,应用于多种不同的环境。以SPARC V8为处理器的目标机和宿主机之间的通信总线有多种,因此,监控软件所涉及的目标机和宿主机之间的通信协议必须适应多种总线的通信要求,而目前一对一的总线通信方式限制了嵌入式系统开发的广泛适应性。
技术实现思路
为了适应各种类型的通信总线要求,提高系统开发效率,需要一种通用的与具体通信端口无关的通信协议,从而在不用改变数据结构情况下达到适应不同通信协议的目的。本专利技术提供一种总线协议无关的通信方法,用于在宿主机与目标机之间建立与具体通信端口无关的命令驱动式通信协议;所述宿主机包括文件管理与数据传送模块、协议命令处理模块和各种总线通信处理模块,其中文件管理与数据传送模块主要完成对文件的管理操作和对界面交互功能的识别与管理,协议命令处理模块用于通信命令和数据的发送与接收;所述目标机包括命令执行与数据传送模块、命令解析模块和各种总线通信处理模块,其中命令执行与数据传送模块用于在宿主机的控制下,将数据传送到目标机的指定区域,或将目标机指定区域的数据传给宿主机,命令解析模块用于完成各种通信协议命令的解析、执行;其特征在于所述宿主机还包括设置在协议命令处理模块与各种总线通信处理模块之间的通信管理模块,所述目标机还包括设置在命令解析模块与各种总线通信处理模块之间的通信管理模块,所述通信管理模块设置了四个缓冲区,分别为命令执行缓冲区、命令接收缓冲区、数据执行缓冲区、数据接收缓冲区,并对具体的通信端口进行管理;其中,所述目标机的通信管理模块解析通信命令的过程如下3(1)首先对目标机做初始化,并初始化所有通信端口和缓冲区,转步骤O),进入通信端口选择过程;(2)在解析通信命令之前,首先对通信端口进行识别,通信时采用自动识别方法选择通信端口,系统复位后假定所有通信通道都可能作为通信端口 ;如果需要接收串行数据, 则按照预先设定的通道顺序查询各端口,首先查到数据的端口将被选择为临时端口 ;如果从临时端口接收到一个正确的命令,则认为收到该命令的通信通道就是当前选择的通信通道,并将当前通道选择标志送给通信通道选择标志,完成通信通道的选择;(3)识别到可用通信端口后,执行命令解析过程;按照协议约定,宿主机送来的信息包分为缓冲命令包,立即命令包和数据命令包三种,命令包类型由所接收信息包的第一个字符确定;如果是缓冲命令包则执行步骤G),数据命令包执行步骤(5),立即命令包执行步骤(6),其他转步骤(7);(4)接收到缓冲命令包后,首先判断命令长度和校验和是否正确,如果正确则将接收到的数据暂存到命令接收缓冲区,当宿主机通过校验命令确认目标机正确接收了缓冲命令后,再将其切换到命令执行缓冲区,并设置命令执行缓冲区状态为命令就绪状态后转步骤⑵;(5)接收到数据命令包后,将接收到的数据暂存到数据接收缓冲区,当宿主机通过校验命令确认目标机正确接收了该包数据后,设置数据接收缓冲区状态为数据就绪状态后转步骤(7);通过一个命令将其切换到数据执行缓冲区,供缓冲命令执行时使用;(6)接收到立即命令包后,根据命令包类型执行不同的功能命令,同时给宿主机回送一个应答包,并转步骤(7);如果接收的是执行缓冲区中命令的命令,则执行命令缓冲区中存储的缓冲命令,缓冲命令实现的功能包括擦除FLASH,上传程序或数据,下载目标内存的数据,或转移到指定地址去执行程序,执行完毕后转步骤(7);(7)结束本次通信命令解析过程,转步骤(2)。特别地,所述宿主机采用PC机,所述目标机采用SPARC V8处理器为CPU。采用本专利技术的总线协议无关的通信方法可以任意选择一种通信总线,同时在目标机和宿主机之间建立一种层次化的中间层,即一种虚拟通信协议,该协议采取一种命令应答方式,命令处理与总线通信相互隔离,使得命令的扩展更加方便。对于通信端口来说,命令协议可以自动解析使用哪种端口进行通信,同时可以屏蔽不同通信接口之间的差异性, 在宿主机与目标机之间建立与具体通信端口无关的命令驱动式通信协议,同时支持通信命令及串行通信接口的扩展。附图说明图1是现有技术的目标机与宿主机之间的通信结构图。图2是协议传输的简要框图。图3是本专利技术的监控软件的总体构成与分层框图。图4是本专利技术的缓冲区数据流方向示意图。图5是本专利技术的目标机解析通信命令的运行过程图。具体实施方式本实施方式的目标机采用SPARC V8处理器为CPU,宿主机采用PC机,通过155 总线、串行通信总线(UART)、CAN、SPI或SPACEWIRE等总线,对目标机的内存数据或程序进行上传加载和下载回传,控制目标机的程序执行流程。宿主机与目标机之间的命令、数据、 状态应答均采用协议包形式进行传送。通常情况下,总是由PC机首先向目标机发送一个命令包,目标机在正确收到命令包后,根据协议向PC机回送相应的状态应答包。图2是协议传输的简要框图。选择使用何种总线建立宿主机和目标机之间的通信,对于目标机来说是透明的, 并且这种总线是可以变化的,只要符合接口需要就可以。本专利技术的具体做法是任意选择一种通信总线,同时在目标机和宿主机之间建立一种层次化的中间层,即一种虚拟通信协议, 该协议采取一种命令应答方式,命令处理与总线通信相互隔离,这样可以使得命令的扩展更加方便。对于通信端口来说,通信协议可以自动解析使用哪种端口进行通信,同时可以屏蔽不同通信接口之间的差异性,在宿主机与目标机之间建立与具体通信端口无关的命令驱动式通信协议,同时支持通信命令及串行通信接口的扩展。协议实现时主要由三部分组成运行在PC机上的控制台软件(V8_Loader)、目标上运行的代理软件(V8_Agent)及通信接口协议(CP)三部分组成,这三部分组成整个协议的监控软件。宿主机(PC)上运行V8_Loader以完成通信接口选择、文件管理、数据打包等功能,并按照通信协议与代理软件进行通信,完成数据上下传;代理软件运行在以V8处理器为CPU的目标机上,完成各种通信协议命令的解析、执行,在控制台软件的控制下,将数据传送到目标机的指定区域,或将目标机指定区域的数据传给控制台软件;通信接口协议规定了控制台软件和代理软件之本文档来自技高网...
【技术保护点】
1.一种总线协议无关的通信方法,用于在宿主机与目标机之间建立与具体通信端口无关的命令驱动式通信协议;所述宿主机包括文件管理与数据传送模块、协议命令处理模块和各种总线通信处理模块,其中文件管理与数据传送模块主要完成对文件的管理操作和对界面交互功能的识别与管理,协议命令处理模块用于通信命令和数据的发送与接收;所述目标机包括命令执行与数据传送模块、命令解析模块和各种总线通信处理模块,其中命令执行与数据传送模块用于在宿主机的控制下,将数据传送到目标机的指定区域,或将目标机指定区域的数据传给宿主机,命令解析模块用于完成各种通信协议命令的解析、执行;其特征在于:所述宿主机还包括设置在协议命令处理模块与各种总线通信处理模块之间的通信管理模块,所述目标机还包括设置在命令解析模块与各种总线通信处理模块之间的通信管理模块,所述通信管理模块设置了四个缓冲区,分别为命令执行缓冲区、命令接收缓冲区、数据执行缓冲区、数据接收缓冲区,并对具体的通信端口进行管理;其中,所述目标机的通信管理模块解析通信命令的过程如下:(1)首先对目标机做初始化,并初始化所有通信端口和缓冲区,转步骤(2),进入通信端口选择过程;(2)在解析通信命令之前,首先对通信端口进行识别,通信时采用自动识别方法选择通信端口,系统复位后假定所有通信通道都可能作为通信端口;如果需要接收串行数据,则按照预先设定的通道顺序查询各端口,首先查到数据的端口将被选择为临时端口;如果从临时端口接收到一个正确的命令,则认为收到该命令的通信通道就是当前选择的通信通道,并将当前通道选择标志送给通信通道选择标志,完成通信通道的选择;(3)识别到可用通信端口后,执行命令解析过程;按照协议约定,宿主机送来的信息包分为缓冲命令包,立即命令包和数据命令包三种,命令包类型由所接收信息包的第一个字符确定;如果是缓冲命令包则执行步骤(4),数据命令包执行步骤(5),立即命令包执行步骤(6),其他转步骤(7);(4)接收到缓冲命令包后,首先判断命令长度和校验和是否正确,如果正确则将接收到的数据暂存到命令接收缓冲区,当宿主机通过校验命令确认目标机正确接收了缓冲命令后,再将其切换到命令执行缓冲区,并设置命令执行缓冲区状态为命令就绪状态后转步骤(7);(5)接收到数据命令包后,将接收到的数据暂存到数据接收缓冲区,当宿主机通过校验命令确认目标机正确接收了该包数据后,设置数据接收缓冲区状态为数据就绪状态后转步骤(7);通过一个命令将其切换到数据执行缓冲区,供缓冲命令执行时使用;(6)接收到立即命令包后,根据命令包类型执行不同的功能命令,同时给宿主机回送一个应答包,并转步骤(7);如果接收的是执行缓冲区中命令的命令,则执行命令缓冲区中存储的缓冲命令,缓冲命令实现的功能包括擦除FLASH,上传程序或数据,下载目标内存的数据,或转移到指定地址去执行程序,执行完毕后转步骤(7);(7)结束本次通信命令解析过程,转步骤(2)。...
【技术特征摘要】
1.一种总线协议无关的通信方法,用于在宿主机与目标机之间建立与具体通信端口无关的命令驱动式通信协议;所述宿主机包括文件管理与数据传送模块、协议命令处理模块和各种总线通信处理模块,其中文件管理与数据传送模块主要完成对文件的管理操作和对界面交互功能的识别与管理,协议命令处理模块用于通信命令和数据的发送与接收;所述目标机包括命令执行与数据传送模块、命令解析模块和各种总线通信处理模块,其中命令执行与数据传送模块用于在宿主机的控制下,将数据传送到目标机的指定区域,或将目标机指定区域的数据传给宿主机,命令解析模块用于完成各种通信协议命令的解析、执行;其特征在于所述宿主机还包括设置在协议命令处理模块与各种总线通信处理模块之间的通信管理模块,所述目标机还包括设置在命令解析模块与各种总线通信处理模块之间的通信管理模块,所述通信管理模块设置了四个缓冲区,分别为命令执行缓冲区、命令接收缓冲区、数据执行缓冲区、数据接收缓冲区,并对具体的通信端口进行管理;其中,所述目标机的通信管理模块解析通信命令的过程如下(1)首先对目标机做初始化,并初始化所有通信端口和缓冲区,转步骤0),进入通信端口选择过程;(2)在解析通信命令之前,首先对通信端口进行识别,通信时采用自动识别方法选择通信端口,系统复位后假定所有通信通道都可能作为通信端口 ;如果需要接收串行数据,则按照预先设定的通道顺序查询各端口,首先查到数据的端口将被选择为临时端口 ;如果从临时端口接收到一个正确的命令,则认为收到该命令的通信通道就是当...
【专利技术属性】
技术研发人员:张伟功,辛明瑞,张永祥,荣金叶,丁瑞,朱晓燕,尚媛园,关永,邱庆林,
申请(专利权)人:首都师范大学,
类型:发明
国别省市:11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。