一种APF控制系统的双口RAM模块的制作方法

文档序号:32252280发布日期:2022-11-19 02:02阅读:74来源:国知局
一种APF控制系统的双口RAM模块的制作方法
一种apf控制系统的双口ram模块
技术领域
1.本发明涉及电力电子控制技术领域,具体涉及一种apf控制系统的双口ram模块。


背景技术:

2.电气信息数据和运行状态数据对整个电力系统的安全稳定运行起着关键作用,所以要实时监控电网的各种运行参数并根据收集的数据分析电网的运行质量,对电网进行协调与优化。电网质量以及有源电力滤波器装置运行情况需要由终端监控系统进行监控,通过对电网系统进行统一的监控管理,可以提高运行效率,将故障风险控制在可控范围内。
3.如何将具有多个计算模块协同工作的apf控制系统产生的大批量结构复杂的数据高效及时地反馈到控制终端,并同时将控制终端下发的配置参数保存并发送给apf控制系统中的相关模块,以实现对电网系统进行高效的监控管理,是本领域技术人员需要面对的问题。


技术实现要素:

4.针对本领域目前存在的技术问题,第一方面,本发明公开了一种apf控制系统的双口ram模块,所述双口ram模块用于所述apf控制系统的硬核与mcu的通信;双口ram模块包括五个读写一致的ram块,其中:
5.第一ram块:存储所述双口ram的状态信息;
6.第二ram块:存储包括波形数据,从板数据,从板状态;
7.第三ram块:存储包括供所述mcu查询的缓冲数据;
8.第四ram块:存储在所述硬核和所述mcu之间交换的包括配置参数和通知信号;
9.第五ram块:存储故障代码;
10.所述双口ram模块通过在一个sram存储器上设置由两套完全独立的数据线、地址线和读写控制线组成的访问系统实现,允许两套所述访问系统同时对所述sram存储器随机访问,具体地包括:允许所述硬核和所述mcu通过所述访问系统同时对所述sram存储器随机读写;不允许所述mcu和/或所述硬核对所述sram存储器上的一个地址单元同时读写。
11.进一步地,所述第一ram块根据所述状态信息协调所述硬核和所述mcu对包括第二ram块的读取或写入,所述状态信息包括:ram2读写状态,ram4读写状态,ram2设备id,参数传递设备id,写故障指针,读故障指针,读命令指针,写命令指针,mcu传递参数的有效数据位。
12.第二方面,本发明提出了一种apf控制系统,所述apf控制系统的主控制器连接三个设备模块,每个所述设备模块分别控制三相的三个从板,所述主控制器包括硬核和mcu,所述硬核通过前述的硬核接口模块与所述mcu通信。
13.更具体地,本发明提出的apf控制系统的所述主控制器的硬核设有硬核接口模块,所述硬核通过所述硬核接口模块读写双口ram。
14.通过双口ram模块支持硬核与mcu的通信,将电网系统实时运行的各项电气数据、
开关状态、运行的线路的稳定性等信息显示在显示屏上,实现对电网系统运行状况的实时掌控,并对重要数据进行存储。
附图说明
15.图1、一些apf控制系统架构图;
16.图2、一些双口ram模块的原理图;
17.图3、一些双口ram与mcu或硬核之间的通信(读取)的时序图,其中,clock表示时钟信号,address_a表示地址线,rden_a表示读命令,q_a表示读的数据;
18.图4、一些双口ram与mcu或硬核之间的通信(写入)的时序图,其中,data_a表示数据线,address_a表示地址线,wren_a表示写命令。
具体实施方式
19.首先,对本发明中出现的以下术语进行解释:
20.apf(active power filter)有源电力滤波器,是一种用于动态抑制谐波、补偿无功的新型电力电子装置;mcu(micro controller unit)为微控制单元,ram(random access memory)随机存取存储器,与主控芯片直接交换数据的内部存储器,ram工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息;sram(static random-access memory)静态随机存取存储器;sdram(synchronous dynamic random-access memory)同步动态随机存取内存;fpga,现场可编程门阵列。
21.术语“循环读取”指的是每隔1ms读取一次,而不是连续的读取。
22.下面结合附图进一步解释本发明。
23.一些实施方式的apf控制系统如图1,其中apf控制系统的主控制器基于fpga实现,其中每个主控制器下设有三个(三台)设备,每个设备由三个模块组成。一个模块代表一个从控制器;以三个模块(分别对应三相交流电电网中的a,b,c三相)组成一个设备(台);主控制器设有硬核部分和mcu两个模块。通过硬核实现apf的主要功能,包括谐波提取、基准合成、高速异步串行通信,因此硬核对实时性要求较高、运算速度较快、以流水线处理居多;mcu负责处理实时性要求不高的内容,主要用于用户交互显示通信。双口ram模块用于硬核与mcu之间的通信。
24.一些实施方式,如图2所示的双口ram模块包括五个读写一致的ram块,其中:
25.第一ram块:存储所述双口ram的状态信息;
26.第二ram块:存储包括波形数据,从板数据,从板状态;
27.第三ram块:存储包括供所述mcu查询的缓冲数据;
28.第四ram块:存储在所述硬核和所述mcu之间交换的包括配置参数和通知信号;
29.第五ram块:存储故障代码。
30.一些硬核接口模块通过读写双口ram与mcu通信。该硬核接口模块的顶层实体的输入信号包括:时钟信号,波形数据,从板数据,从板状态,双口ram读写状态,故障信号,通知信号;输出信号包括:使能信号,数据输出(data_out),地址输出(add_out),命令输出,通知信号;所述命令输出包括所述mcu发给所述硬核的命令;
31.一些硬核接口模块包括以下主要底层模块:
32.状态监测模块:对所述双口ram进行监测并输出所述双口ram读写状态;
33.波形数据写入模块:用于将所述电压波形数据和电流波形数据写入所述双口ram中;
34.从板数据写入模块:用于将所述从板数据和所述从板状态写入所述双口ram中;
35.命令写入读取模块:用于将所述mcu发给所述硬核的命令写入所述双口ram中;
36.参数传递模块:用于控制所述mcu与所述硬核之间的配置参数传递;
37.故障信号写入模块:用于将所述故障信号写入所述双口ram中,同时修改故障指针的信息;
38.分时复用模块:用于控制所有上述底层模块对所述双口ram的读写的分时复用。
39.其中,所述复用模块被配置为:当判断所述双口ram没有被占用时,发送第二使能信号给所述状态检测模块;所述状态检测模块被配置为:接收到所述第二使能信号后开始工作。
40.一些实施方式的双口ram模块通过在一个sram存储器上设置由两套完全独立的数据线、地址线和读写控制线组成的访问系统实现,允许两套访问系统同时对sram存储器随机访问,具体地包括:允许硬核和mcu通过访问系统同时对sram存储器随机读写;不允许mcu和/或硬核对sram存储器上的一个地址单元同时读写。
41.一些实施方式的双口ram模块,第一ram块根据状态信息协调硬核和mcu对其他ram块的读写,状态信息包括:ram2读写状态、ram4读写状态、ram2设备id、参数传递设备id、写故障指针、读故障指针、读命令指针、写命令指针、mcu传递参数的有效数据位。在一些更具体的实施方式中,第一ram块的状态信息见表2所示。
42.一些实施方式的双口ram模块,硬核和/或mcu对双口ram模块中的第二ram块的读写包括:
43.硬核将波形数据分批写入第二ram块;
44.只有当每批波形数据完成写入后,允许mcu对第二ram块执行读取波形数据;每批波形数据包括一个采样周期内的:网侧三相电流,网侧三相电压,负载侧三相电流,负载侧三相电压,三相总补偿电流,三相模块补偿电流;需要说明的是,硬核只写入mcu指定的模块的三相模块补偿电流。
45.一些实施方式的双口ram模块硬核和/或mcu对第二ram块的读写包括以下步骤:
46.硬核将从板数据和从板状态写入第二ram块;从板数据包括各从板的三相igbt温度、散热器温度、直流侧电压、输出电流;从板状态包括各从板的设备状态、设备容量;
47.当apf控制系统的状态数据写入第二ram块后,mcu立即读取。
48.一些实施方式的双口ram模块,硬核和/或mcu对第一ram块的读写包括以下步骤:
49.硬核在向第二ram块写入波形数据之前,读取ram2读写状态;
50.硬核写入波形数据,同时修改ram2读写状态;
51.mcu循环读取ram2读写状态。
52.一些实施方式,硬核在向第二ram块中写入三相模块补偿电流前,读取ram2设备id的值识别mcu指定的模块。
53.一些实施方式,mcu读取双口ram的步骤还包括以下时序控制的:
54.当mcu读取硬核正在写入的地址单元,mcu读取的数据是该地址单元的历史值;
55.当硬核读取mcu正在写入的地址单元,硬核读取的数据是该地址单元的历史值;
56.当mcu和硬核同时写入同一个地址单元时,该地址单元随机存储被写入的值。
57.一些实施方式,硬核和/或mcu读取双口ram的步骤还包括:
58.在地址线上准备读地址;
59.发送读命令,读命令持续至少一个全局时钟但不超过五个全局时钟;
60.双口ram在读命令发送后的若干全局时钟内读取数据;
61.读命令置为下沿之后允许下一次读取;
62.写入双口ram的步骤包括:
63.在地址线上准备写地址;
64.在数据线上准备写入的数据,发送写命令,写命令持续至少一个全局时钟但不超过五个全局时钟;
65.每次写命令信号置为下沿之后允许下一次写入。
66.通过以下具体的实施例进一步解释本发明的技术方案。
67.实施例
68.apf控制系统的主控制器是基于fpga的数字控制器,其硬核主要包括数据采集子模块、电网电压锁相子模块、滑动窗dft子模块、网侧pr调节器子模块、无功dq提取子模块、谐波注入基准产生子模块、apf工作模式选择子模块、高速光纤通信接口子模块等,还包括一些辅助子模块,如硬件保护、时序控制、mcu数据接口子模块和接触器控制子模块等;从控制器实现对直流侧电压的控制。设备id定义的方法:主控制器通过光纤的通信接口的编号,自动分配id:
69.设备一的三相id分别为:0x010a,0x010b,0x010c;
70.设备二的三相id分别为:0x020a,0x020b,0x020c;
71.设备三的三相id分别为:0x030a,0x030b,0x030c;
72.当id为0x0100,0x0200,0x0300
……
时;说明所指的是某台设备(包括abc三相),0xaaaa则指的是,所有的设备。
73.在fpga内部开辟出一块双口ram以实现mcu和硬核部分之间的通信。在该具体实施例中的双口ram大小为1024bit
×
64bit。将该双口ram划分成5块,分别为ram#1,rma#2,ram#3,ram#4,ram#5。每个ram块存放着不同的数据。配置32位的mcu,其内部有一个32bit
×
32bit的乘法器。经实际测试,mcu工作在50m比较稳定。硬核和mcu同双口ram之间的接口信号是固定的,硬核和mcu之间无信号直接交换,靠双口ram中转。
74.双口ram是在一个sram存储器上具有两套完全独立的数据线、地址线和读写控制线,并允许两个独立的系统同时对该存储器进行随机性的访问,是一个共享式的多端口存储器,其可以允许mcu或这硬核同时随机对其读或写,但是不允许mcu同时对一个地址单元读和写操作,也不允许硬核对同一个地址单元进行读和写操作。
75.当mcu读硬核正在写的地址单元,mcu读取到的数据是该地址单元的历史值;当硬核读mcu正在写的地址单元,硬核读取到的数据也是该地址单元的历史值。但是当mcu和硬核同时写一个地址时,该地址单元的值是不确定的。历史值被保存到缓存模块。
76.表1给出了硬核和双口ram的接口信号。byteena_a是写字节使能信号,将写入ram的64bit数据分为8个字节,对应byteena_a的8bit,当相应的bit为高时,该字节才能别写入
到相应的地址单元中,该地址单元中的其他字节数据保持不上次历史值不变。
77.mcu和双口ram之间的接口信号是类似的,只是中间多了一个额外的时钟匹配模块,避免多次写或者读双口ram。
78.表1.硬核和双口ram的接口信号
79.信号宽度说明data_a64bit写双口ram的数据address_a10bit读或者写双口ram的地址wren_a1bit写双口ram的请求信号rden_a1bit读双口ram的请求信号byteena_a8bit写双口ram的字节使能信号q_a64bit双口ram输出数据
80.下面详细介绍读取和写入双口ram的时序,以mcu的读和写时序为例(硬核时序是类似的)。
81.1.读取双口ram时序
82.读双口ram的函数原型是:void read_ram(alt_u16 address,alt_16*receive_data);
83.alt_u16:mcu中的数据类型,16位无符号数。
84.address:双口ram的地址。
85.实际中ram地址的长度最长10位,此处高6位为方便扩展,读取ram的时候,需要把10位的地址,高位填0,扩展成16位地址。从双口ram中,读取的数据放在receive_data对应的数组中。
86.如图3,mcu(或者fpga硬核部分)在地址线上address_a将读的地址准备好后,就可以发送读命令,命令的脉冲宽度至少1个全局时钟长度(50m),不允许超过5个全局时钟长度,否则会二次读双口ram;上述的读双口ram函数,对mcu测试时,在主频为50m时,命令脉冲是10m。发出命令后,等适当的时间后,就可以从q_a信号读入数据。一次读双口ram大概需要4个全局时钟。address_a需在rden_a为低之后,方可发生变化,否则会读取错误的数据。
87.2.写双口ram时序
88.mcu中写双口ram的函数原型是:
89.void write_ram(alt_u16 address,alt_u8 byte_en,alt_16*send_data)alt_u16,alt_u32是mcu中,16、32位无符号数。
90.address是写双口ram的地址,同样需要从10位的地址扩展成16位地址。
91.byte_en是字节写使能标志位。
92.写的数据在指针send_data对应的数组中。
93.如图4,mcu(或者fpga硬核)在address_a和data_a上,将待写的地址和数据准备好后,就可以发送写命令,写命令的脉冲宽度至少1个全局时钟长度(50m),不允许超过5个全局时钟长度,否则会二次写双口ram;上述的写双口ram函数,在主频为50m时,经实际测试,命令脉冲是10m的宽度。address_a和data_a需在wren_a为低之后,方可发生变化,否则会将错误的数据写入错误的地址。一次写双口ram大概需要4个全局时钟。
94.读写双口ram的速度是非常快的,对于主频为50m的mcu来说,读或写一次双口ram
大概需要1ns的时间。
95.3.各ram块数据详细定义
96.3.1 ram#1数据定义
97.ram#1相当于控制寄存器区域,所有ram的读写状态数据都在此存储;硬核和mcu会经常对此处的空间进行查询,以决定对rma空间进行操作;详细的地址定义见下表:
98.表2.ram#1的地址定义
[0099][0100]
对各个参数的意义进一步解释如下:
[0101]
3.1.1 ram2_state
[0102]
ram2_state:分为状态0,1,2,3;其中0:mcu空闲;1:硬核正在写ram#2;2:硬核写完ram#2;3:mcu正在读ram#2;当硬核200ms发送周期时间到的时候,检测到ram2_state!=3,就可以向ram2中写数据,写之前把ram2_state设置为1;全部写完后把ram2_state值2;mcu循环读取ram2_state,如果ram2_state为2;则开始读取ram#2中的数据;读之前把ram2_state设置为3;全部读完后把ram2_state设置为0。
[0103]
3.1.2 ram2_id
[0104]
ram2_id里面为某个设备id的值;当硬核向ram#2中写数据之前需要判断ram2_id的值;当mcu把ram2_id写0x10的时候,说明mcu需要硬核把id为0x1a,0x1b,0x1c的设备的“模块补偿电流波形”;当mcu把ram2_id写0x20的时候,说明mcu需要硬核把id为0x2a,0x2b,0x2c的设备的“模块补偿电流波形”;写入到ram#2中,以供mcu读取;当w_id为0的时候,mcu不读取设备的“模块补偿电流波形”。
[0105]
3.1.3 ram3_w_ord和ram3_r_ord
[0106]
ram3_w_ord,ram3_r_ord范围就是ram#3缓冲区大小(0~31);
[0107]
ram3_w_ord:命令写指针;ram3_r_ord:命令读指针;偏移量:0x300;
[0108]
具体应用:
[0109]

写命令:
[0110]
a当显示下发一个命令时
[0111]
b判断ram3_w_ord的范围是不是在(0~31)之间,如果不是则
[0112]
ram3_w_ord=0;ram3_r_ord=0;
[0113]
c把命令写入ram3_w_ord+0x300地址中,让ram3_w_ord指向下一个区域;
[0114]

读命令:
[0115]
(1)硬核循环读取ram3_w_ord,ram3_r_ord;
[0116]
(2)如果他们的范围不在(0~31)之间则ram3_w_ord=0;ram3_r_ord=0;
[0117]
(3)如果ram3_w_ord!=ram3_r_ord;则读取ram3_r_ord+0x300中的命令,并执行;让ram3_r_ord指向下一个区域;
[0118]
3.1.4 ram4_ord
[0119]
ram4_ord分别为0,1,2,3;
[0120]
0:空闲;1:mcu申请主控制器参数;2:主控制器参数上传完毕,mcu可以读取;3:mcu修改参数,等待主控制器修改;
[0121]
ram4_id:模块的id,如果为0;则传递的是系统的参数,ram4_addr:传递的数据的地址,详见表2;
[0122]
ram4_enob:有效数据位(000000000)2-(111111111)2;mcu传上来的数,只有数据的有效数据位为1时,硬核才能修改此参数;
[0123]

读参数:
[0124]
(1)mcu需要读取某一页数据;
[0125]
(2)mcu把ram4_id写入模块id;
[0126]
(3)mcu把ram4_addr写入传递页的数据地址;
[0127]
(4)ram4_ord=1;
[0128]
(5)表示mcu需要读取模块id为ram4_id;数据地址为ram4_addr的数据;
[0129]
(6)硬核准备好数据写入到0x340~0x342区域;并且ram4_ord=0x02;
[0130]
(7)mcu循环读取ram4_ord如果ram4_ord==0x02;则开始读取0x340~0x342区域的内容,显示到界面;读取完毕后,ram4_ord==0;
[0131]

写参数:
[0132]
(1)当人机界面发送修改参数命令;
[0133]
(2)mcu值把需要修改的数据放到0x343~0x345区域(一共九个数据:参数1~参数9),
[0134]
(3)把需要修改参数对应在ram4_enob中的位置1(比如只修改参数3;那么ram4_enob=(000000100)2;如果参数全部修改,那么ram4_enob=(000000100)2
[0135]
(4)ram4_id和ram4_addr分别放入数据的设备id和数据-地址
[0136]
(5)ram4_ord=0x03;表示写参数已经发送
[0137]
(6)硬核循环读取ram4_ord,如果ram4_ord==0x03,根据ram4_enob置位的情况,那么把0x343~0x345区域中的参数写入到ram4_id和ram4_addr对应的自己的存储空间,最后ram4_ord=0;3.1.5ram5_w_err和ram5_r_err ram5_w_err,ram5_r_err:范围就是ram#5缓冲区大小(0~31);ram5_w_err:写故障指针;ram5_r_err:读故障指针;偏移量:0x3e0;具体应用:
[0138]
·
写故障:
[0139]
(1)当硬核发生一次故障
[0140]
(2)硬核判断ram5_w_err的范围是不是在(0~31)之间,如果不是则ram5_w_err=0;ram5_r_err=0;
[0141]
(3)把故障信息写到ram5_w_err+0x3e0的地址中;ram5_w_err指向下一个地址;
[0142]
·
读故障
[0143]
(1)mcu循环读取ram5_w_err,ram5_r_err
[0144]
(2)如果他们的范围是不是在(0~31)之间ram5_w_err=0;ram5_r_err=0;
[0145]
(3)如果ram5_w_err!=ram5_r_err,则读取ram5_r_err中的故障代码保存记录;让ram5_r_err指向下一个区域;
[0146]
3.2 ram#2数据定义
[0147]
ram#2块主要存储需要显示的apf系统的相关信息。首先硬核部分收集数据,并写入到相关ram中;mcu然后读取这些数据,随后更新显示屏的相关数据。硬核以200ms的速率写入,只有全部写入完以后,才允许mcu从中读取,从而保证完整性。硬核和软核的读写采用ram#1中的ram2_state来控制;对于该ram块的其他数据,只要有更新之后(该部分的更新主要是来自从控制器的运行状态反馈),就立刻刷新。mcu的显示刷新速率,取决于mcu对ram读的速率。
[0148]
不是从控制器上所有的模块补偿电流波形都需要发送上来,硬核只需要发送软核所需要的某个设备的补偿电流波形,硬核通过读取ram2_id中的数据来判断软核需要硬核传递的补偿波形是哪一个设备的;设备id根据光纤编号自动分配。
[0149]
下表给出了该ram块的详细数据定义:
[0150]
表3.ram#2数据定义
[0151]
[0152][0153]
表4给出了设备状态的详细定义:
[0154]
表4.设备状态定义
[0155]
命令代码说明0x0000停止0x0001运行0x0002故障0x0003离线
0x0004急停0x0005待机0x0006不存在其他备用
[0156]
3.3.ram#3数据定义
[0157]
ram#3块相当于一个数据缓冲区,fpga硬核接受mcu的命令,然后依次执行,需要说明的是,fpga硬核不保存mcu的命令,也不返回状态信号,mcu需要自己查询其他ram块相关数据,以确定fpga是否完成命令的执行。
[0158]
表5.ram#3数据定义
[0159][0160]
表6.命令格式
[0161]
命令代码说明0xa0停机0xb0待机0xc0开机0xd0复位0xe0备用其他
‑‑‑
[0162]
3.4.ram#4数据定义
[0163]
ram#4用于在硬核和mcu之间传递参数,参数的传递以页为单位,一页9个数据0x340~0x342用于保存硬核传送给mcu的数据;0x343~0x345用于发送muc给硬核参数的设置;通过ram#1中的ram4_ord,ram4_id,ram4_addr,ram4_enob来控制数据的传递。读写的数据具体格式参见表7-8。
[0164]
表7.硬核写、mcu读的数据格式
[0165][0166]
表8.mcu写、硬核读的数据格式
[0167][0168]
具体参数详见下表:
[0169]
表9.读写数据参数
[0170]
[0171]
[0172]
[0173][0174]
3.5 ram#5数据定义
[0175]
这部分主要是故障代码的存取,保证当多个故障同时发生的时候,旧的没有被mcu读取的故障不能被新的故障所覆盖,所以在这里有可以同时写入32个故障代码的缓冲区域;当故障发生时;硬核根据写指针0x3ff中的指向的位置把发生故障设备的id和具体的故障代码放入到0x3e0~0x3fd的缓冲区,以供mcu读取保存;数据定义和格式见表10,具体的事件代码编码如表11所示。
[0176]
表10.ram#5的数据定义
[0177][0178]
表11.事件代码编码
[0179]
[0180]
[0181][0182]
一些实施方式,在quartus中搭建mcu接口模块,其引脚的类型和功能在下表中列出。
[0183]
表12.mcu接口功能表
[0184]
[0185]
[0186][0187]
基于nios ii软核处理器的mcu接口内部集成了许多模块,主要包括的模块说明见表13:
[0188]
表13.mcu接口的各个主要模块说明
[0189]
名称描述cpuniosii处理器tri_state_bridge_0avalon-mm三态桥button并行io口led并行io口rs232通用异步串口(uart)模块,采用232电平rs232_485通用异步串口(uart)模块,采用232电平rs232_dis通用异步串口(uart)模块,采用232电平jtag_uart_0jtag口调试模块cfi_flash闪存接口sdramsdram控制器pio_in并行io口pio_out并行io口sysidsystemidperipheraltimer_1间隔计时器timer_2间隔计时器sys_state并行io口ram_control并行io口ram_addr并行io口ram_data_a并行io口ram_data_b并行io口ram_byte_en并行io口
[0190]
本说明书中描述的主题的实施方式和功能性操作可以在以下中实施:数字电子电路,有形实施的计算机软件或者固件,计算机硬件,包括本说明书中公开的结构及其结构等同体,或者上述中的一者以上的组合。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序,即,一个或多个有形非暂时性程序载体上编码的计算机程序指令的
一个或多个模块,用以被数据处理设备执行或者控制数据处理设备的操作。“数据处理设备”包含所有种类的用于处理数据的设备、装置以及机器,作为实例,包括可编程处理器、计算机或者多重处理器或者多重计算机。设备可以包括专用逻辑电路。设备除了包括硬件之外,还可以包括创建相关计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一种或多种的组合代码。在本说明书中描述的处理和逻辑流程可以由一个或多个可编程计算机执行,该计算机通过运算输入数据并且生成输出而执行一个或多个的计算机程序,以运行函数。处理和逻辑流程还可以由专用逻辑电路,并且设备也可以被实施为专用逻辑电路。为了发送与用户的交互,本说明书中描述的主题的实施方式可以被实施在计算机上,该计算机具有屏幕用于向用户显示信息。
[0191]
虽然本说明书包含很多具体的实施细节,但是这些不应当被解释为对任何发明的范围或者对可以要求保护的内容的范围的限制,而是作为可以使特定发明的特定实施方式具体化的特征的说明。在独立的实施方式的语境中的本说明书中描述的特定特征还可以与单个实施方式组合地实施。相反地,在单个实施方式的语境中描述的各种特征还可以独立地在多个实施方式中实施,或者在任何合适的子组合中实施。此外,虽然以上可以将特征描述为组合作用并且甚至最初这样要求,但是来自要求的组合的一个或多个特征在一些情况下可以从该组合去掉,并且要求的组合可以转向子组合或者子组合的变形。
[0192]
已经描述了主题的特定实施方式。其他实施方式在以下权利要求的范围内。例如,在权利要求中记载的活动可以以不同的顺序执行并且仍旧实现期望的结果。作为一个实例,为了实现期望的结果,附图中描述的处理不必须要求示出的特定顺序或者顺序次序。在特定实现中,多任务处理和并行处理可以是有优势的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1