具体实施方式
下面将结合本发明中的说明书附图,对发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明具体实施例提供了一种嵌入式血液分析仪的控制方法及其控制系统,所述主处理器和可编程逻辑器件分离设置并通过串行总线进行通信,从而解决二者在同一块电路板上,造成容易相互干扰的问题。以下分别进行详细说明。
实施例一、
本发明具体实施例介绍了一种嵌入式血液分析仪控制系统的控制方法。如图1所示,所述嵌入式血液分析仪控制系统主要包括主处理器101、可编程逻辑器件102、控制单元组103。主处理器101包括单片机、DSP、ARM和CPU及其外围电路构成的上位机,作为应用程序、底层驱动程序的载体,负责发送指令给FPGA/CPLD并接收、对比和处理应答信息。
可编程逻辑器件102在本具体实施例中优选FPGA/CPLD。在通讯过程中,FPGA/CPLD接收到主处理器101的数据包后,解析数据包,转发至或直接控制控制单元组103,同时发送应答信息给主处理器101。
控制单元组103包括从处理器、各硬件设备等,特点为低速,低数据量。
本发明提供一种嵌入式血液分析仪控制系统,将主处理器与升级机率大、易受外界干扰的FPGA/CPLD和控制单元分离设置,分离后,在主处理器不改动的情况下,只需升级FPGA/CPLD程序或是升级很少的硬件接口,就可实现控制单元的升级。
嵌入式主处理器101与FPGA/CPLD 102通过串行总线连接,采用USB和UART等成熟的串行通讯接口,连接线长度在3米内; FPGA/CPLD 102连接控制单元103,其通讯接口和通讯协议因控制单元103的不同而不同,因全自动血细胞分析仪控制单元103都是低速设备,采集的细胞信号数据量不大,因此可采用串行总线将主处理器和FPGA/CPLD、控制单元分离具备可行性。
如图2所示,所述嵌入式分析仪控制系统的控制方法包括如下步骤:
S201主处理器发送指令到FPGA/CPLD;
所述指令主要有操作指令和查询指令两种。
所述操作指令为操控控制单元组中的某一控制单元的指令;所述查询指令为查询控制单元组中某一控制单元的相关数据的指令。
S202 FPGA/CPLD接收主处理器发送的指令,解析指令,执行并发送应答回文到主处理器。
S203主处理器收到FPGA/CPLD模块发送的应答回文,进行应答回文解析和处理操作。
第二实施例、
在本发明的一些实施例中,所述嵌入式分析仪控制系统控制方法中主处理器和FPGA/CPLD模块之间的通讯还加入了握手容错机制,从而保证了双方控制消息的同步,克服了因采用串行总线连接线长而造成数据传输过程中容易出错的问题,提高了系统控制方的容错能力,加入所述握手容错机制后所述控制系统的控制方法具体包括步骤如下,如图3所示:
S301, 主处理器发送指令到FPGA/CPLD;
如图4所示,所述步骤S301具体为:
S3011, 主处理器组织命令;
S3012, 通过串行总线发送命令给FPGA/CPLD。
所述命令包括查询命令和操作命令。
S302, FPGA/CPLD接收到主处理器发送的指令,解析指令,判断指令是否有效,如果无效,发送错误码到主处理器;如果有效执行指令并发送应答回文到主处理器。如图4所示,所述步骤S302具体包括如下步骤:
S3021,接收指令;
空闲时,FPGA/CPLD的接收模块一直处于准备接收状态,当有数据来临时,接收数据,根据操作类型和操作对象字段确定指令包的长度,当接收到一个完整的指令包后,通知解析模块;
S3022,解析指令;
解析模块收到通知后,取出指令包,按照双方事先约定的通讯协议解析指令包;若指令包是非法的,直接进入发送模块,发送应答(内容为错误码);若指令包是有效的,执行指令,同时发送应答(内容为查询结果或操作指令)。
S3023,执行指令;
若指令为查询指令,将所要查询的控制单元的当前状态寄存器的值写入应答缓冲寄存器;若指令为操作指令,则执行相应操作,同时将接收到的操作指令写入应答缓冲寄存器。
S3024,发送应答回文;
将应答缓冲寄存器的值发送给处理器。
S303, 主处理器接收FPGA/CPLD模块发送的应答回文,进行应答回文解析,判断应答回文的类型是查询或操作指令应答还是错误码应答,根据应答类型进行相应的处理操作, 如图4所示,具体过程为:
S3031,主处理器接收应答回文;
S3032, 解析应答;
所述应答回文的解析的具体过程为:判断应答为何种应答,如果是查询指令应答或操作指令应答,发送相应的数据到存储模块;如果是错误码应答,判断错误码是已知还是未知,如果是已知错误码进入错误处理模块;如果是未知错误码,进一步判断是否已经到达“容许接收最长等待时间(根据需求预先设定N)”,如果已经到达就进入错误处理模块,如果没有就再次获取FPGA/CPLD模块的应答,重复前面的判断操作。
所述主处理器和FPGA/CPLD模块的交互协议规定了交互双方发送的指令及应答(包括操作指令、查询指令 、操作指令应答、查询指令应答)的组织方式,通信双方根据确定的数据格式对数据做组织或解析,其格式定义如下面介绍:
一条数据的格式定义:
操作类型字段 |
操作对象字段 |
操作单元编号字段 |
操作方式字段(数据字段) |
其中:
操作类型字段指示该条数据是操作指令还是查询指令或者其他指令;
操作对象字段指示该条数据具体要操作的单元类型,如高压、电机、电磁阀等;
操作单元编号字段指示该条数据要求操作的具体是哪一个单元,如操作对象字段指示的单元类型为电机,则操作单元编号字段则指示是哪一个编号的电机;
操作方式字段指示该条数据对某种单元类型的某个单元的具体操作方式,比如是查询电机的运动状态,还是关闭某个电磁阀等;
其中,操作类型字段空间上有预留,可以增加新的类型;
操作对象字段空间上有预留,可以增加新的操作对象;
操作单元编号字段空间上有预留,可以增加新的操作单元,比如电机电磁阀可以增加;
错误码是应答的一种特殊情况,其中:
错误码标记字段用于指示该条数据是错误码,错误码便于接收方(嵌入式主处理器A)快速区分回文的类型(正确/错误)及获取较为详细的错误信息;
错误码信息字段指示错误的类型;
特殊码数据是指令的一种特殊情况,其中:
特殊码标记字段用于指示该条数据是特殊码,特殊码用于具有特殊类型、数量较少且操作具有一定随机性的设备,比如吸样键;
特殊码数据字段指示该条数据包含的特殊操作内容;
实施例三、
本发明具体实施例还介绍了嵌入式血液分析仪控制系统,本发明具体实施例介绍了一种嵌入式血液分析仪控制系统的控制方法。如图1所示,所述嵌入式血液分析仪控制系统主要包括主处理器101、可编程逻辑器件102、控制单元组103。主处理器101包括单片机、DSP、ARM和CPU及其外围电路构成的上位机,作为应用程序、底层驱动程序的载体,负责发送指令给FPGA/CPLD并接收、对比和处理应答信息。
可编程逻辑器件102在本具体实施例中优选FPGA/CPLD。在通讯过程中,FPGA/CPLD接收到主处理器101的数据包后,解析数据包,转发至或直接控制控制单元组103,同时发送应答信息给主处理器101。
控制单元组103包括从处理器1031、各硬件设备1032等,所述从处理器1031根据FPGA/CPLD102发送的指令控制各硬件设备1032的动作,所述各控制单元的特点为低速,低数据量。
本发明提供一种嵌入式血液分析仪控制系统,将主处理器与升级机率大、易受外界干扰的FPGA/CPLD和控制单元分离设置,分离后,由于FPGA/CPLD模块102连接控制单元103,其通讯接口和通讯协议因控制单元103的不同而不同,当控制单元如果在需求上有增加时,仅需修改FPGA/CPLD端即可,对整个系统的冲击很小。
嵌入式主处理器101与FPGA/CPLD 102通过串行总线连接,采用USB和UART等成熟的串行通讯接口,连接线长度在3米内; FPGA/CPLD 102连接控制单元组103,其通讯接口和通讯协议因控制单元103的不同而不同,因全自动血细胞分析仪控制单元组103都是低速设备,采集的细胞信号数据量不大,因此可采用串行总线将主处理器和FPGA/CPLD、控制单元分离具备可行性。
在本发明的一些实施例中,根据实施例一所述的方法,所述主处理器101主要包括如下模块:
第一发送/接收模块1011、第一解析模块1012、存储模块1013、错误码处理模块1014.
所述第一发送/接收模块1011用于向所述FPGA/CPLD模块发送指令和接收从FPGA/CPLD模块发回的应答回文。
所述第一解析模块1012用于解析接收到的从FPGA/CPLD模块发回的应答回文,判断所述应答回文的类型是错误码、查询状态、操作指令中的哪一种。
所述存储模块1013用于存储查询和操作指令应答回文;
所述错误码处理模块1014用于对错误码应答进行处理。
在本发明的一些实施例中,根据实施例一所述的方法,所述FPGA/CPLD模块102主要包括如下模块:
第二发送/接收模块1021、第二解析模块1022、第二处理模块1023。
所述第二发送/接收模块1021用于接收从所述主处理器发送的指令并向所述主处理器发送应答回文。
所述第二解析模块1022用于判断接收到的从所述主处理器发送的指令是否有效,如果无效,直接通过发送模块发送错误码给所述主处理器;如果有效,通过所述第二处理模块进行处理,再将应答回文发送给处理器。
所述第二处理模块1023,用于根据所述主处理器发送的有效指令进行处理并作出相应的应答回文。所述第二处理模块1023还进一步包括:查询模块10231和操作模块10232,即如果所述指令是查询指令,则查询模块根据指令信息执行查询操作,所述应答回文为查询的结果;如果指令是操作指令,则通过操作模块10232控制控制单元执行相应的操作,并将操作指令作为应答回文发送给处理器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤并可以通过硬件编程程序来控制相关的硬件完成,所述的硬件编程程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的嵌入式血液分析仪控制系统的控制方法及其控制系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。