发明内容
本发明的目的是提出一种针对通信访问的数据管理系统,针对通信访问的具体需要建立清晰的数据管理结构,通过配置形式增减数据项和修改数据信息,实现简便的维护和移植。
本发明提出的一种针对通信访问的数据管理系统,其特征在于该系统含有:
数据存储器,用以保存通信访问数据项,数据项类型包括单个数据项、一维数组数据项、二维数组数据项、三维数组数据项、四维数组数据项;数据存储器中多维数组的数据项元素按照每维的索引计数值先低维再高维、计数递增的顺序连续存储,每维的数据项的个数不超过255,即十六进制0xFF;
配置信息表,用以保存数据存储器中通信访问数据项的属性参数;配置信息表的每条配置信息包括数据标识码DC、数据访问状态SC、数据项长度LC、数据项保存地址AC共4项属性参数;每个数据项具有唯一的4字节数据标识码DC,数据标识码各字节由高至低为DB3、DB2、DB1和DB0,每个数据项对应的数据标识码各字节的取值范围为[0,0xFE],配置信息表中各条配置信息按照数据标识码DC递增的顺序逐条排列;数据访问状态SC包括4个状态标志,分别是写入屏蔽标志WM、读取屏蔽标志RM、数组标志DS、低字节序标志LE,每个状态标志具有有效和无效两个状态,这4个状态标志的有效和无效状态分别表示通信访问可写入和不可写入数据存储器中对应数据项、可读取和不可读取数据存储器中对应数据项、数据项为数组元素和单个数据、数据项按低字节在低地址和数据项按高字节在低地址的顺序保存;数据项长度LC是数据项的字节长度;数据项保存地址AC是数据项在数据存储器中各字节所保存地址的最小值,即最低地址;配置信息表采用成对的连续两条配置信息保存数组数据项的属性参数,其中第一条配置信息的数据标识码、数据项保存地址为数组中的第一个数据项元素的属性参数,第二条配置信息的数据标识码、数据项保存地址为数组中的最后一个数据项元素的属性参数,这两条配置信息的数据访问状态和数据项长度相同,并且其数组标志DS均有效,数据项长度等于数组每个数据项元素的字节长度;第一条配置信息的数据标识码DC_1的4个字节DB3_1、DB2_1、DB1_1和DB0_1和第二条配置信息的数据标识码DC_2的4个字节DB3_2、DB2_2、DB1_2和DB0_2分别对应被存数组从高维至低维的索引计数值的变化下限和变化上限,4个字节依次从DB3_1至DB3_2、从DB2_1至DB2_2、从DB1_1至DB1_2、从DB0_1至DB0_2增1变化的所有组合数据对应数组中每个数据项元素的数据标识码,而(DB3_2- DB3_1)、(DB2_2- DB2_1)、(DB1_2- DB1_1)和(DB0_2- DB0_1)四个差值中非0计算值的个数等于被存数组的维数,同时该非0计算值等于被存数组在该维的长度减1;依据前述数据存储器中多维数组的存储规则,数据项元素按照数据标识码递增顺序在数据存储器中连续存储;
查询处理器,用以接收由写入控制器和读取控制器输入的查询标识码DS,读取配置信息表的配置信息,向写入控制器和读取控制器输出查询结果;查询结果为符合查询条件的数据项的数据标识码DC、数据保存地址AC、数据项长度LC、数据访问状态SC、以及查询数据项的总项数NS和总长度TS;查询标识码定义与数据标识码相同,但其各字节的取值范围为[0,0xFF];当对应字节取值为0xFF时,查询结果为数据标识码对应字节从0至0xFE所有有效取值的数据项集合的逐项配置信息;查询处理器按照以下4种情况判断查询条件并输出查询结果;
第1种情况,当配置信息表中存在一条数据标识码和查询标识码相同的配置信息时,查询处理器从配置信息表读取并输出对应于该条配置信息的数据标识码DC、数据保存地址AC、数据项长度LC、数据访问状态SC,所输出的查询数据项的总项数NS等于1,总长度TS等于该数据项长度LC;
第2种情况,当查询标识码与配置信息表中一对配置信息所表示的一个数组数据项的数据标识码相同时,查询处理器输出的数据标识码DC等于查询标识码DS,查询处理器输出的数据保存地址AC等于配置信息表中第一条配置信息的数据项保存地址加上偏移地址,其中的偏移地址等于数据存储器中所查询数据项的最低地址与数组中第一个数据项元素的最低地址之差,查询处理器输出的数据项长度LC和数据访问状态SC分别等于第一条配置信息的数据项长度和数据访问状态,查询处理器输出的查询数据项的总项数NS等于1,总长度TS等于第一条配置信息的数据项长度LC;
第3种情况,当查询标识码的字节中包含0xFF,而且配置信息表中存在查询标识码DS所对应的数据项集合的配置信息时,查询处理器依次输出该数据项集合各数据项的数据标识码DC、数据保存地址AC、数据项长度LC、数据访问状态SC,查询处理器输出的查询数据项的总项数NS等于所查询的数据项集合中所有数据项的总项数,查询处理器输出的查询数据项的总长度TS等于所查询的数据项集合中所有数据项的字节长度总和;
第4种情况,除前述3种情况之外,即配置信息表中不存在符合查询标识码的数据项的配置信息时,查询处理器输出的数据标识码DC、数据保存地址AC、数据项长度LC、数据访问状态SC为任意值,查询处理器输出的查询数据项的总项数NS和总长度TS均为0;
写入控制器,接收通信访问控制器输入的由写入数据标识码DW、通信数据、通信低字节序状态FE所组成的写入命令,执行通信数据写入数据存储器操作,并输出写访问状态SW;其中,写入数据标识码DW对应通信访问控制器将要写入的数据项的4字节数据标识码,通信低字节序状态FE具有有效和无效两种状态,分别表示通信数据先收发的字节为数据项的低字节和先收发的字节为数据项的高字节,写访问状态SW具有写成功和写失败两种状态,分别表示写入控制器执行写入命令后通信数据被成功写入数据存储器和未被写入数据存储器;写入控制器首先将写入数据标识码DW作为查询标识码输出给查询处理器,从查询处理器获得查询结果,然后当查询结果属于第1、2、3种情况,并且所查询的数据项的写入屏蔽标志WM无效时,则按照数据项长度LC和数据保存地址AC将通信数据写入数据存储器,最后写入控制器的写访问状态SW输出写成功状态指示;通信访问控制器输入的通信低字节序状态FE具有有效和无效两种状态,分别表示通信数据先收发的字节为数据项的低字节和先收发的字节为数据项的高字节;如果通信低字节序状态FE和数据项的低字节序标志LE有效性一致,则将通信数据以先收到的字节存入低地址、后收到的字节存入高地址的顺序写入数据存储器;如果通信低字节序状态FE和数据项的低字节序标志LE有效性不一致,则将通信数据以先收到的字节存入高地址、后收到的字节存入低地址的顺序写入数据存储器;当查询结果属于第4种情况,或者所查询的数据项的写入屏蔽标志WM有效时,不将通信数据写入数据存储器,写入控制器的写访问状态SW输出写失败状态指示;
读取控制器,接收通信访问控制器输入的由读取数据标识码DR、通信低字节序状态FE、发送数据缓冲区所组成的读取命令,执行读取数据存储器操作,将读取数据写入发送数据缓冲区,并输出读访问状态SR;其中,读取数据标识码DR对应通信访问控制器将要读取的数据项的4字节数据标识码,通信低字节序状态FE具有有效和无效两种状态,分别表示通信数据先收发的字节为数据项的低字节和先收发的字节为数据项的高字节,读访问状态SR具有读成功和读失败两种状态,分别表示读取控制器执行读取命令后所读取数据被成功写入发送数据缓冲区和未被写入发送数据缓冲区;读取控制器首先将读取数据标识码DR作为查询标识码输出给查询处理器,从查询处理器获得查询结果,然后当查询结果属于第1、2、3种情况,并且所查询的数据项的读取屏蔽标志RM无效时,则按照数据项长度LC和数据保存地址AC从数据存储器读取数据并写入发送数据缓冲区,最后读取控制器的读访问状态SR输出读成功状态指示;如果通信低字节序状态FE和数据项的低字节序标志LE有效性一致,则将数据项以数据存储器中低地址的字节写入先发送的数据缓冲区字节空间、高地址的字节写入后发送的数据缓冲区字节空间的顺序写入发送数据缓冲区;如果通信低字节序状态FE和数据项的低字节序标志LE有效性不一致,则将数据项以数据存储器中高地址的字节写入先发送的数据缓冲区字节空间、低地址的字节写入后发送的数据缓冲区字节空间的顺序写入发送数据缓冲区;当查询结果属于第4种情况,或者所查询的数据项的读取屏蔽标志RM有效时,不读取数据存储器的数据项,读取控制器的读访问状态SR输出读失败状态指示。
本发明能够对单个数据项和最高四维数组数据进行管理,能够覆盖具有数据信息通信要求的各类应用。通过配置信息表和查询处理器来辅助写入控制器和读取控制器的数据访问。该配置信息表通过配置信息标明了数据存储器中通信访问数据项的属性参数。配置信息中的数据标识码是每个需要通信访问的数据项的数字标签,便于数据项配置信息的查询。配置信息还包含数据项的保存地址、长度、读写屏蔽状态、字节序状态。为了简化数组数据项的配置,减少配置信息存储资源占用量,本发明专门针对数组数据项制定了基于一对信息的配置规则。基于查询处理器对配置信息表的查询检索,可以获得每个被查询数据项的配置信息,便于读取控制器和写入控制器进一步读写访问数据存储器中的数据。查询处理过程依据单一数据项、数组中的一个数据项、数据项集合、无效数据项的4种情况分别输出查询结果。由此,写入控制器可以基于通信访问的写入命令实现数据存储器中数据项的写入,读取控制器可以基于通信访问的读取命令实现读取数据存储器中的数据项,并填写入通信访问控制器的发送数据缓冲区。写入控制器和读取控制器通过自动识别数据项的字节序和通信收发的字节序状态设置,将数据按照正确的顺序写入数据存储器和发送数据缓冲区。
当使用本发明的数据管理系统时,如果添加、删除或修改数据项,不需要改动查询处理器、写入控制器、读取控制器和通信访问控制器,只需要修改配置信息表即可,简化了信息的维护工作,同时清晰的结构和字节序状态的设置便于实现本系统在不同应用和装置中的移植,并可以应用于信息采集和数据通信的各种场合。
具体实施方式
本发明实施例的结构框图如图2所示。数据存储器存储如下四个数据:
(1) N1,单一数据项,4字节有符号整数0xAA998877,采用高字节序保存在地址0x0100、0x0101、0x0102、0x0103的4个字节中,即4个字节分别存储0xAA、0x99、0x88、0x77;
(2) N2,2×3的2维有符号整数数组,N2[0][0]=0x0001,N2[0][1]=0x0002,N2[0][2]=0x0003,N2[1][0]=0x0011,N2[1][1]=0x0012,N2[1][2]=0x0013,采用低字节序保存在从地址0x0200起始的12个字节中,即依次为:0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00;
(3) N3,单一数据项,长度为8个字节的年月日字符串”12/06/01”,采用低字节序保存在从0x0300起始的8个字节中,依次为:0x31, 0x30, 0x2F, 0x36, 0x30, 0x2F, 0x32,0x31;
(4) N4,单一数据项,长度为8个字节的时间字符串”07:30:59”,采用高字节序保存在从0x0310起始的8个字节中,依次为:0x30, 0x37, 0x3A, 0x33, 0x30, 0x3A, 0x35, 0x39。
配置信息表中数据访问状态SC采用一个字节,写入屏蔽标志WM、读取屏蔽标志RM、数组标志DS、低字节序标志LE分别对应该字节的从低到高的第1至4个比特,比特位为1代表有效,比特位为0代表无效,SC的第5至8个比特为0。配置信息表依据数据标识码递增顺序建立如下5条配置信息:
(1) 对应N3:数据标识码DC=0x01000100,即各字节为DB3=0x01、DB2=0x00、DB1=0x01和DB0=0x00;数据访问状态SC=0x09,即写入屏蔽标志WM=1有效,该数据项不可写入,读取屏蔽标志RM=0无效,该数据项可读取,数组标志DS=0无效,低字节序标志LE=1有效,数据项低字节在低地址;数据项长度LC=8;数据项保存地址AC=0x0300;
(2) 对应N4:DC=0x01000200,即DB3=0x01、DB2=0x00、DB1=0x02、DB0=0x00;SC=0x00,即WM=0,RM=0,DS=0,LE=0数据项高字节在低地址;LC=8;AC=0x0310;
(3) 对应N2数组第一个数据项:DC=0x02000000,即DB3=0x02、DB2=0x00、DB1=0x00、DB0=0x00;SC=0x0C,即WM=0,RM=0,DS=1数组标志有效,LE=1数据项低字节在低地址;LC=2;AC=0x0200;
(4) 对应N2数组最后一个数据项:DC=0x02010002,即DB3=0x02、DB2=0x01、DB1=0x00、DB0=0x02;SC=0x0C,即WM=0,RM=0,DS=1数组标志有效,LE=1数据项低字节在低地址;LC=2;AC=0x020A;
(5) 对应N1:DC=0x02020000,即DB3=0x02、DB2=0x02、DB1=0x00、DB0=0x00;SC=0x00,即WM=0,RM=0,DS=0,LE=0数据项高字节在低地址;LC=4;AC=0x0100。
连续的第(3)条和第(4)条配置信息分别定义了数组属性的数据项N2中的第一个数据项和最后一个数据项。而且,这两条配置信息中数据访问状态和数据项长度相同,数组标志DS均为有效,数据项长度LC等于数组中每个数据项元素的字节长度。由于这两条配置信息数据标识码不同的字节为DB2和DB0两个字节,该个数等于数组的变化维数。DB0的差值为2,数组第1维有3个元素;DB2的差值为1,数组第2维有2个元素。由此,N2数组中N2[0][0]、N2[0][1]、N2[0][2]、N2[1][0]、N2[1][1]、N2[1][2]的数据项标识码依次为0x02000000、0x02000001、0x02000002、0x02010000、0x02010001、0x02010002。显然,每个数据项依数据标识码递增顺序在数据存储器中连续存储。
查询处理器输入来自写入控制器和读取控制器的查询标识码DS时,将按照4种情况输出查询结果。下面结合具体实例说明查询处理过程:
第1种情况,例(1):查询标识码DS=0x01000200,与第(2)条配置信息的数据标识码和查询标识码相同,对应数据项N4,查询处理器输出该条配置信息的数据标识码DC=0x01000200、数据保存地址AC=0x0310、数据项长度LC=8、数据访问状态SC=0x00,所输出的查询数据项的总项数NS=1,总长度TS等于该数据项长度LC,即TS=8。
第2种情况,例(2):查询标识码DS=0x02010001,与第(3)条和第(4)条配置信息定义数组中一个数据项的数据标识码相同,对应数据项N2[1][1],查询处理器输出DC=0x02010001,第一条配置信息的数据项保存地址为0x0200,偏移地址为8,数据保存地址AC等于两者之和,即AC=0x0208,数据项长度LC=2,数据访问状态SC=0x0C,查询数据项的总项数NS=1,总长度TS=2。
第3种情况,例(3):查询标识码DS=0x0100FF00,此时字节DB1为0xFF,DB1在[0, 0xFE]范围内只有取值0x01和0x02在配置信息表中对应有效的数据标识码,分别是第(1)条和第(2)条配置信息,于是数据项集合包含2个数据项N3和N4,查询处理器依次输出2个数据项配置信息。第1个数据项信息DC=0x01000100、AC=0x0300、LC=8、SC=0x09;第2个数据项信息DC=0x01000200、AC=0x0310、LC=8、SC=0x00。查询数据项的总项数NS=2,查询数据项的总长度TS=16。
例(4):查询标识码DS=0x02FF00FF,此时字节DB2和DB0都为0xFF,数据项集合包括由第(3)条和第(4)条配置信息对应的数组N2的所有数据项,还包括第(5)条配置信息对应的数据项N1,查询处理器依次输出7个数据项信息。前6个数据项信息是DC为从0x02000000到0x02010002、AC从0x0200到0x020A、LC=2、SC=0x0C;第7个数据项信息DC=0x02020000、AC=0x100、LC=4、SC=0x00。查询数据项的总项数NS=7,查询数据项的总长度TS=16。 第4种情况,除前述3种情况之外,即配置信息表中不存在符合查询标识码的数据项时,查询处理器输出DC=0、AC=0、LC=0、IS=0,查询数据项的总项数NS=0,总长度TS=0。
当通信访问控制器输入写入控制器写入命令时,写入控制器首先通过查询处理器获得需要写入的数据项的配置信息。如果数据项存在且可写入,则写入控制器完成写入操作,最后输出写成功状态指示;如果数据项不存在或者不可写入,则写入控制器不进行写入操作,最后输出写失败状态指示。写入操作依据通信低字节序状态和数据项低字节序状态,将通信数据对应数据项的每个字节以正确的顺序写入数据存储器。写访问状态SW用1表示写成功状态指示,0表示写失败状态指示。如果通信低字节序状态FE为有效,即通信数据先收发的字节为数据项的低字节,则对应前述查询处理器的4个输入例子,写入控制器的写入操作如下:
例(1):写入数据标识码DW=0x01000200,通信数据依先后顺序的接收字节依次为:0x35, 0x32, 0x3A, 0x32, 0x34, 0x3A, 0x31, 0x30。依查询结果,该数据项N4可写入。而且,该数据项低字节序LE为无效,与通信低字节序状态FE不一致,写入操作将通信数据中后收到的字节存入低地址,于是数据存储器地址从0x0310起始的8个字节中,依次更改为:0x30, 0x31, 0x3A, 0x34, 0x32, 0x3A, 0x32, 0x35,即对应时间字符串”01:42:25”。写访问状态SW输出1。
例(2):写入数据标识码DW=02010001,通信数据依先后依次为:0x12, 0xAA。该数据项对应N2[1][1],可写入,且低字节序LE为有效,与通信低字节序状态FE一致,写入操作将数据存储器地址为0x208和0x209的两个字节改为0x12和0xAA,写入操作后N2[1][1]=0xAA12。写访问状态SW输出1。
例(3):写入数据标识码DW=0x0100FF00。由于查询结果返回的数据项N3的写入屏蔽标志WM=1有效,该数据项不可写入,所以通信数据不写入数据存储器。写访问状态SW输出0。
例(4):写入数据标识码DW=0x02FF00FF,通信数据依先后依次为:0x01, 0xBB, 0x02, 0xBB, 0x03, 0xBB, 0x11, 0xBB, 0x12, 0xBB, 0x13, 0xBB, 0x44, 0x33, 0x22, 0x11。查询结果返回的数组N2的所有数据项和数据项N1,均可写入。数组N2的数据项低字节序LE与通信低字节序状态FE一致,前12个字节写入操作后,数据存储器地址从0x0200起始的12个字节依次更改为:0x01, 0xBB, 0x02, 0xBB, 0x03, 0xBB, 0x11, 0xBB, 0x12, 0xBB, 0x13, 0xBB,即N2[0][0]=0xBB01,N2[0][1]=0xBB02,N2[0][2]=0xBB03,N2[1][0]=0xBB11,N2[1][1]=0xBB12,N2[1][2]=0xBB13。数据项N1的数据项低字节序LE与信低字节序状态FE不一致,后4个字节写入操作后,数据存储器地址从0x0100起始的4个字节依次更改为:0x11, 0x22, 0x33, 0x44,即N1=0x11223344。写访问状态SW输出1。
当通信访问控制器输入读取控制器读取命令时,读取控制器首先通过查询处理器获得需要读取的数据项的配置信息。如果数据项存在且可读取,则读取控制器完成读取操作,最后输出读成功状态指示;如果数据项不存在或者不可读取,则读取控制器进行不读取操作,最后输出读失败状态指示。读取操作依据通信低字节序状态和数据项低字节序状态,将数据存储器中的数据项以正确的顺序写入发送数据缓冲区。读访问状态SW用1表示读成功状态指示,0表示读失败状态指示。如果通信低字节序状态FE为无效,即通信数据先发送的字节为数据项的高字节,则对应前述查询处理器的例(1),读取控制器的读取操作如下:
例(1):读取数据标识码DW=0x01000200。依查询结果,该数据项对应N4,是可读取。如果N4为时间字符串”07:30:59”,在数据存储器中从地址0x0310起始的8个字节依次为:0x30, 0x37, 0x3A, 0x33, 0x30, 0x3A, 0x35, 0x39。而且,该数据项低字节序LE为无效,与通信低字节序状态FE一致,读取操作将数据项在数据存储器中低地址的字节先写入发送的数据缓冲区字节空间,发送缓冲区写入8个字节,依据从先到后的顺序,通信发送字节依次为:0x30, 0x37, 0x3A, 0x33, 0x30, 0x3A, 0x35, 0x39。读访问状态SR输出1。