基于脚本的智能驾驶场景仿真方法、装置及设备与流程

文档序号:32844233发布日期:2023-01-06 21:54阅读:23来源:国知局
基于脚本的智能驾驶场景仿真方法、装置及设备与流程

1.本技术涉及自动驾驶技术领域,尤其涉及一种基于脚本的智能驾驶仿真方法、装置及设备。


背景技术:

2.在对自动驾驶算法进行测试时,可以采用仿真场景来代替真实场景对自动驾驶算法进行测试。也就是将自动驾驶算法接入到仿真平台,在仿真平台仿真出相对应的场景对自动驾算法进行测试。
3.为了保证自动驾驶算法测试的可靠性,往往需要进行大量的仿真测试,这就需要设计并实现大量的仿真测试用例。现有技术中,在对仿真测试用例进行编写和仿真时,往往是针对特定场景和特定设备的数据格式进行编写和仿真。对于不同的测试场景需要基于不同的语法来编写测试用例,在调用不同格式的数据时,也需要基于不同的语法来编写测试用例。这就使得即使不同的测试场景中含有相同或相似的场景元素,在编写各测试用例时,也要对这些场景元素进行重复编写,不能相互调用。仿真测试用例的编写和仿真操作较为复杂,导致仿真效率较低。
4.因此,如何简化仿真测试用例编写过程,提高智能驾驶场景仿真效率,成为本领域技术人员亟需解决的技术问题。


技术实现要素:

5.本说明书实施例提供的一种基于脚本的智能驾驶仿真方法、装置及设备,可以简化测试用例的编写过程,适用于不同场景的测试用例的编写,以及便于调用不同格式的数据,从而提高了场景仿真的效率。
6.为解决上述技术问题,本说明书实施例是这样实现的:
7.本说明书实施例提供的一种基于脚本的智能驾驶仿真方法,包括:获取预设仿真脚本;所述预设仿真脚本为利用预先定义的场景脚本语言编写的脚本,所述场景脚本语言包括用于获取仿真场景中各场景元素的语言;
8.利用场景解释器对所述仿真脚本进行解析,并调用所述仿真脚本中所需的场景仿真函数,生成对应的场景仿真数据;
9.利用场景构造器,构建所述场景仿真数据对应的仿真场景;
10.利用场景控制器,控制所述仿真场景中各个仿真对象按照预设线程进行仿真。
11.本说明书实施例提供的一种基于场景脚本的智能驾驶场景仿真装置,包括:脚本获取模块,用于获取预设仿真脚本;所述预设仿真脚本为利用预先定义的场景脚本语言编写的脚本,所述场景脚本语言包括用于获取仿真场景中各场景元素的语言;
12.脚本解析模块,用于利用场景解释器对所述仿真脚本进行解析,并调用所述仿真脚本中所需的场景仿真函数,生成对应的场景仿真数据;
13.场景构造模块,用于利用场景构造器,构建所述场景仿真数据对应的仿真场景;
14.场景控制模块,用于利用场景控制器,控制所述仿真场景中各个仿真对象按照预设线程进行仿真。
15.本说明书实施例提供的一种基于场景脚本的智能驾驶场景仿真设备,包括:
16.至少一个处理器;以及,
17.与所述至少一个处理器通信连接的存储器;其中,
18.所述存储器存储有可被所述至少一个处理器执行的语言,所述语言被所述至少一个处理器执行,以使所述至少一个处理器能够:获取预设仿真脚本;所述预设仿真脚本为利用预先定义的场景脚本语言编写的脚本,所述场景脚本语言包括用于获取仿真场景中各场景元素的语言;
19.利用场景解释器对所述仿真脚本进行解析,并调用所述仿真脚本中所需的场景仿真函数,生成对应的场景仿真数据;
20.利用场景构造器,构建所述场景仿真数据对应的仿真场景;
21.利用场景控制器,控制所述仿真场景中各个仿真对象按照预设线程进行仿真。
22.本说明书中提供的至少一个实施例能够实现以下有益效果:通过将仿真场景划分为多个场景元素,对场景元素进行抽象化,并针对各个场景元素进行标准化定义,来形成场景脚本语言。场景脚本语言,可以适用不同测试场景的测试用例的编写,可以支持调用不同格式的数据。通过场景脚本语言来编写仿真脚本,基于仿真脚本进行仿真。在进行仿真时,通过场景解释器对仿真脚本进行解析后即可调用相对应的程序接口来实现场景元素的建立,场景元素建立后传入场景构造器,场景构造器构造出仿真场景,再通过场景控制器控制仿真场景的具体实现。如此,简化了测试用例的编写过程,适用于不同场景的测试用例的编写,以及便于调用不同格式的数据,从而提高了场景仿真的效率。
附图说明
23.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
24.图1为本说明书实施例提供的一种基于脚本的智能驾驶仿真方法的流程示意图;
25.图2为本说明书实施例提供的一种基于脚本的智能驾驶场景仿真方法的流程框架图;
26.图3为本说明书实施例提供的一种基于脚本的智能驾驶场景仿真装置的结构示意图;
27.图4为本说明书实施例提供的一种基于脚本的智能驾驶场景仿真设备的结构示意图。
具体实施方式
28.为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基
于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
29.以下结合附图,详细说明本说明书各实施例提供的技术方案。
30.图1为本说明书实施例提供的一种基于脚本的智能驾驶仿真方法的流程示意图。从程序角度而言,该流程的执行主体可以为服务器,或服务器处搭载的应用程序。
31.如图1所示,该方法包括如下步骤:
32.步骤101:获取预设仿真脚本;所述预设仿真脚本为利用预先定义的场景脚本语言编写的脚本,所述场景脚本语言包括用于获取仿真场景中各场景元素的语言。
33.仿真脚本是通过预先定义的场景脚本语言编写的,场景脚本语言对构成仿真场景的场景元素进行抽象化,并将各个场景元素定义为标准化语言,各场景元素语言对应有预先设计好的函数,或者对应预先定义好的程序接口。场景脚本语言可以为解释性语言,对不同的测试场景进行了统一的定义,使得场景脚本语言可以适用不同测试场景的编写,例如可以同时适用速度规划的测试场景、车辆前碰撞场景等场景的测试用例的编写;场景脚本语言同样支持对不同格式的数据进行调用,例如既可以调用信号灯数据又可以调用路侧感知数据。在编写仿真脚本时,可以对各场景元素语言进行拼凑,并相应填写各场景元素语言中具体的属性值,即可完成仿真测试用例的编写。一个脚本可以对应生成一个仿真场景,一个仿真场景对应一个id。仿真平台在进行仿真时,可通过场景id获取对应的预设仿真脚本。
34.具体的,预设仿真脚本可以是基于antlr4编辑的文法文件scene.g4。场景脚本语言,可以是基于openscenario与sumo的traci接口进行预先定义的、可读性好的语言。编写好的仿真脚本可以以文本的形式保存,便于保存,同时也便于进行进一步地编辑,来对仿真脚本进行改进。
35.其中,openscenario是一种描述动态场景的数据格式。sumo是可以实现很多实际交通场景的模拟的软件,traci是用来从sumo调取交通信息控制信号灯状态等与sumo进行互动的接口。
36.步骤103:利用场景解释器对所述仿真脚本进行解析,并调用所述仿真脚本中所需的场景仿真函数,生成对应的场景仿真数据。
37.利用场景解释器对仿真脚本的进行逐句解析,解析一句,执行一句,调用该语句对应的场景仿真函数,场景仿真函数可以是与程序接口相对应的函数,通过该语句对应的程序接口来调用场景仿真函数,将仿真脚本预先定义的属性值赋值给场景仿真函数来生成具体的场景元素。场景仿真数据是多个场景元素的集合。例如,在编写脚本时,只需定义出障碍物的尺寸或颜色等,在执行时,调取生成障碍物的程序接口,将尺寸值和颜色值输入给程序接口对应的函数,运行后即可生成该种尺寸或颜色的障碍物。
38.通过场景解释器对仿真脚本进行逐句翻译并执行,可以使得场景脚本语言跨平台性强。对场景脚本进行解析后可以调用不同格式的数据,场景脚本中的场景元素语言分别有相对应的程序接口,在场景解释器翻译后,调用相对应的程序接口对应的函数来执行。程序接口可以对应于不同软件,不同的软件有各自的强项,例如a软件更利于信号灯场景的模拟,b软件更利于车辆模型的模拟。使得在编写脚本时可以通过简单的语言编写,来调用不同的程序接口,实现复杂场景的模拟。
39.步骤105:利用场景构造器,构建所述场景仿真数据对应的仿真场景。
40.在通过程序接口对应的函数生成各场景元素后,将场景元素输入给场景构造器,场景构造器对场景元素进行结合和布置,构建出仿真场景。例如,对静态场景元素进行布置,对动态场景元素进行初始化设置以及构建动态场景元素的触发器任务。
41.步骤107:利用场景控制器,控制所述仿真场景中各个仿真对象按照预设线程进行仿真。
42.场景控制器用于仿真场景全局控制的实现,操控仿真场景模拟的启停,模拟感知数据和车辆数据。通过对仿真场景进行解析,生成仿真场景中的各仿真对象的控制线程,使各个仿真对象按照预设线程执行相应的任务来实现仿真。
43.图1中的方法,将仿真场景划分为多个场景元素,对场景元素进行抽象化,并针对各个场景元素进行标准化定义,来形成场景脚本语言的定义。场景脚本语言,可以适用不同测试场景的测试用例的编写,可以支持调用不同格式的数据。通过场景脚本语言来编写仿真脚本,基于仿真脚本进行仿真。在进行仿真时,通过场景解释器对仿真脚本进行解析后即可调用相对应的程序接口来实现场景元素的建立,场景元素建立后传入场景构造器,场景构造器构造出仿真场景,再通过场景控制器控制仿真场景的具体实现。如此,简化了测试用例的编写过程,适用于不同场景的测试用例的编写,以及便于调用不同格式的数据,从而提高了场景仿真的效率。
44.可选地,所述仿真场景包括环境车辆的行驶场景,所述利用场景构造器,构建所述场景仿真数据对应的仿真场景具体包括:
45.基于所述场景仿真数据构造所述环境车辆的初始状态和所述环境车辆的触发器任务;所述环境车辆的初始状态包括所述环境车辆的经纬度信息、航向、车速和车道编号中的一者或多者;所述触发器任务用于控制所述环境车辆执行相应的任务。
46.在进行场景仿真时,动态场景的仿真实现是仿真的重点和难点。例如环境车辆的行驶场景,在对自动驾驶算法进行测试时,道路上除测试车辆之外的车辆被称为环境车辆,通过对环境车辆的行驶状态进行设置,来验证测试车辆在各种不同的环境车辆的行驶场景中能否完成安全驾驶。
47.由于场景解释器是对仿真脚本进行逐句解析和执行的,生成的各个独立的场景元素要输入给场景构造器,场景构造器添加各场景元素之间的关联关系,并将其结合为相应的仿真场景。例如环境车辆a为轿车,环境车辆b为卡车,在对仿真脚本进行逐句解析和执行时,先生成环境车辆a的轿车模型和环境车辆b的卡车模型,然后场景构造器将轿车模型和卡车模型分别结合至相对应的车道上,根据轿车模型和卡车模型的经纬度信息调整其具体的放置位置,设置轿车模型和卡车模型的航向以及速度等,场景构造器还用于构建环境车辆的触发器任务,如在行驶预设时间后加速,在行驶至预设位置时变道,在行驶预设距离后停车等。
48.可选地,利用场景控制器,控制所述仿真场景中各个仿真对象按照预设线程进行仿真,具体包括:
49.利用场景控制器对所述仿真场景进行解析,生成所述环境车辆的车辆模型线程;
50.所述车辆模型线程用于下发所述触发器任务来控制所述环境车辆完成相应行驶任务。
51.在对环境车辆的行驶场景进行仿真时,控制器通过对仿真场景进行解析,包括对
环境车辆的初始状态、环境车辆在整个仿真过程中要执行的行驶任务,进行解析,来建立环境车辆的车辆线程模型,车辆线程模型用于按照逻辑和时间顺序来控制环境车辆执行相应行驶任务。场景控制器用于监听环境车辆的状态信息,在该环境车辆满足触发器任务的触发条件时,下发相应的触发器任务来控制环境车辆执行相应行驶任务。例如触发器任务为在到达a位置时变道,场景控制器在监测到环境车辆到达a位置后,下发变道任务,控制环境车辆变道。
52.可选地,当所述环境车辆的行驶场景中包含有至少两个环境车辆时;所述利用场景构造器,构建所述场景仿真数据对应的仿真场景还包括:
53.基于所述场景仿真数据构建至少两个所述环境车辆之间的依赖关系;所述依赖关系包括至少两个所述环境车辆之间的相对位置关系。
54.例如,两个环境车辆的依赖关系为,a车在b车前方预设距离处,或者b车与a车保持预设距离跟随a车行驶等。本方法,便于包含多辆环境车辆的仿真场景的实现,只需在编写场景脚本定义出具体的依赖关系,在进行程序仿真时,即可调用相对应的仿真函数,将具体的参数输入仿真函数执行,即可得到对应的具体的场景。
55.可选地,所述下发所述触发器任务来控制所述环境车辆完成相应行驶任务,具体包括:
56.根据所述触发器任务调取相应的车辆运行模型;
57.将所述触发器任务下发给所述车辆运行模型来控制所述环境车辆完成相应行驶任务;所述车辆运行模型包括预先定义的匀速模型、加减速模型、变道模型和紧急制动模型中至少一种。
58.在场景控制器控制环境车辆执行相应行驶任务时,可先根据触发器任务调取相应的车辆运行模型,车辆运行模型为预先定义的,直接调用即可。车辆运行模型可以实时上报此车状态(经度、纬度、航行、速度、车道编号、行驶状态)至rcu、4g、rsm等通道,同时与场景控制器交互车辆位置和状态。比如触发器任务为当车辆到达预设位置时变道,当监测到车辆到达预设位置时,调用变道模型,将变道任务下发给变道模型即可使环境车辆完成变道的行驶任务。由于车辆运行模型为预先定义的,使得在实际仿真时,场景的实现耗时较少,运行更加稳定。通过调用预先定义的车辆运行模型,同样可以进一步简化仿真脚本的编写,基于简单的仿真脚本即可完成复杂的场景模拟仿真。
59.可选地,所述变道模型为基于三阶贝塞尔曲线进行换道路径规划构造出的车辆运行模型。
60.变道模型是基于换道中速度变化不影响路径,车辆沿车道方向的速度受纵向控制调节而与换道独立的设计思路上建立的。
61.具体过程是:建立直角坐标系,坐标系的第一坐标轴用于表示车辆距离换道起点沿车道行驶的路程,第二坐标轴用于表示车辆的侧向(垂直于车道延伸的方向)偏移量。其中第一坐标轴可以为x轴,第二坐标轴可以为y轴。
62.在此坐标系下生成三阶贝塞尔曲线,四个控制点:p1为原点,p2为(v0t1,0),p3为(v0(t
lc-t1),w),p4为(v0t
lc
,w)。其中,v0为起始车速,w为车道宽,s为当前距换道起点沿车道距离,t
lc
为换道时间,t1为控制点时间。
63.如此,可以通过对换道时间t
lc
和控制点时间t1的配置,来创建不同的换道轨迹,创
建出不同换道轨迹的车辆换道场景。
64.在执行换道任务时,变道模型可以先由纵向控制求得各个时刻的距离s,根据贝塞尔曲线插值法,将距离s代入到三阶贝塞尔曲线,得到各个时刻的侧向偏移量,从而使环境车辆按预设变道轨迹完成变道。
65.可选地,当所述触发器任务为改变两个所述环境车辆之间沿车道纵向的距离时,
66.所述场景控制器将一个所述环境车辆确定为受控车辆,另一个所述环境车辆确定为参考车辆;
67.基于在所述仿真脚本预先定义的改变距离和改变时间,计算所述受控车辆相对于所述参考车辆的相对加速度;
68.将所述相对加速度与参考车辆加速度之和作为受控车辆加速度;
69.调取所述加减速模型,将所述受控车辆加速度输入所述加减速模型来控制所述受控车辆行驶。
70.如此,可以通过预先定义受控车辆与参考车辆的改变距离为d、改变时间为tc、现距离为d0、参考车辆在时刻t速度v
0,t
和加速度a
0,t
,来创建不同的两个环境车辆改变距离的场景。
71.具体的实现方法可以为:场景控制器使受控车辆与参考车辆的相对速度按照先从0增大后减小至0的变速规则则进行变速。此种规则下受控车辆的相对速度曲线为等腰三角形,在速度-时间图中顶点速度为相对加速度绝对值进一步可以计算出在时刻t时刻受控车辆的各运动状态如下:
72.在t≤tc/2时,受控车辆的位置为速度为v
0,t
(t)+art,加速度为a
0,t
+ar;在t》tc/2时,受控车辆的位置为速度为v
0,t
+ar(t
c-t),加速度为a
0,t-ar。
73.场景控制器将受控车辆在tc时间段内各个时刻t的加速度实时发送给加减速模型,来控制受控车辆行驶,使得在经过tc时间段后,受控车辆与参考车辆的距离变为d。
74.可选地,所述场景脚本语言包括以下一种多种:仿真类语言,用于测试场景的初始与终止状态定义及相关配置;控制类语言,用于车辆的驾驶控制;约束类语言,用于根据其他道路使用者状态确定受控道路使用者的状态;跟踪类语言,用于控制道路使用者的路线的跟踪选择;控制器类语言,用于设置车辆控制器的自动控制;交通控制类语言,用于设置交通信号;模型类语言,用于指定仿真用的物理模型;障碍物类语言,用于设置道路环境中的障碍物;感知类语言,用于设置车端与路侧感知的配置。
75.场景脚本语言将各场景元素进行分类并抽象化,并定义为标准化语言。在进行脚本编写时,只需寻找场景元素所对应的语言,并对属性值进行具体限定,在进行仿真时即可生成具体的场景元素。
76.其中,各类语言的优先级为:跟踪类语言》控制器类语言》控制类语言》约束类语言。
77.下面,对一个简单的仿真脚本进行介绍:
78.v1=create(type:car)
79.v2=create(type:car)
80.initstate(v1,spd:30,ln:1657325221422301185,d:70)
81.initstate(v2,spd:20,ln:165732522142230118702,d:10)
82.accel(v1,a:-20,s:1,at:trigtime(10))
83.endsim(trigtime(30))
84.仿真过程为:先创建一辆汽车模型v1,再创建一辆汽车模型v2。对汽车模型v1进行初始化,速度为30m/s,车道编号为1657325221422301185,距起点位置为70m。对汽车模型v2进行初始化,速度为20m/s,车道编号为165732522142230118702,距起点位置为10m。汽车模型v1在10秒后执行加速任务,加速度为-20m/s2,加速时间为1s。在仿真时间到达30s后停止仿真。
85.可选地,仿真平台可设置有脚本编写页面,该页面上有各类场景元素语言的选择按钮。在某一场景元素语言的按钮被选择后可以显示该场景元素语言下具体的指令,具体的指令可被拖拽至脚本文本编辑区,或者被用户点击后直接出现在脚本文本编辑区,用户在脚本文本编辑区填写或修改该条指令具体的属性值即可完成对该条指令的编辑,经过多次操作后,完成对该场景元素代码的编写。
86.基于此,在步骤101,获取预设仿真脚本之前,所述方法还可以包括,获取用户发送的选择操作,所述选择操作用于选择预设场景元素所对应的预设规则代码;
87.基于所述操作,确定所述操作对应的预设规则代码;
88.获取所述用户针对所述预设规则代码提供的参数属性值,以生成所述预设仿真脚本。
89.采用此种方法对预设仿真脚本进行编辑,便于脚本编写人员的编写。普通技术人员只需点选对应场景元素语言的按钮,并修改相关参数即可完成对该场景元素的编写。无需脚本编写人员具有较为专业的代码编写知识,也能进行仿真脚本的编写。
90.图2为本说明书实施例提供的一种基于脚本的智能驾驶场景仿真方法的流程框架图,参照图2对实现智能驾驶场景仿真的整个过程进行描述。首先进行场景脚本的编写,将编写好的场景脚本输入到仿真平台,仿真平台的场景解释器对场景脚本进行解析。调用相应的仿真程序接口,仿真程序接口封装有被解析后的场景脚本中各语句所对应的函数,函数对场景元素进行构造并传入场景构造器。场景构造器对场景元素进行处理,构造相关算法,生成统一的各车初始状态、各车依赖关系和各车触发器任务,并传入场景控制器。场景控制器对场景构造器构造出的场景进行解析,基于各车信息生成车辆模型线程,进行各车初始化设置,触发器任务下发,实时监听各车状态信息,模拟感知数据、车辆数据,操控场景启停,调整车辆运行状态等。在调整车辆运行状态时,通过调用相应的车辆运行模型来实现。车辆运行模型是负责车辆与云控算法交互时运动模型,车辆运行模型包括匀速行驶、加减速行驶、变道、紧急制动和网联车循迹等模型。
91.基于一个总的发明构思,本说明书实施例还提供了上述方法对应的基于场景脚本的智能驾驶场景仿真装置。图3为本说明书实施例提供的一种基于脚本的智能驾驶场景仿真装置的结构示意图,如图3所示,该装置包括:
92.脚本获取模块301,用于获取预设仿真脚本;所述预设仿真脚本为利用预先定义的
场景脚本语言编写的脚本,所述场景脚本语言包括用于获取仿真场景中各场景元素的语言;
93.脚本解析模块302,用于利用场景解释器对所述仿真脚本进行解析,并调用所述仿真脚本中所需的场景仿真函数,生成对应的场景仿真数据;
94.场景构造模块303,用于利用场景构造器,构建所述场景仿真数据对应的仿真场景;
95.场景控制模块304,用于利用场景控制器,控制所述仿真场景中各个仿真对象按照预设线程进行仿真。
96.基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
97.图4为本说明书实施例提供的一种基于场景脚本的智能驾驶场景仿真设备的结构示意图。如图4所示,设备400可以包括:
98.至少一个处理器410;以及,
99.与所述至少一个处理器通信连接的存储器430;其中,
100.所述存储器430存储有可被所述至少一个处理器410执行的语言420,所述语言被所述至少一个处理器410执行,以使所述至少一个处理器410能够:获取预设仿真脚本;所述预设仿真脚本为利用预先定义的场景脚本语言编写的脚本,所述场景脚本语言包括用于获取仿真场景中各场景元素的语言;
101.利用场景解释器对所述仿真脚本进行解析,并调用所述仿真脚本中所需的场景仿真函数,生成对应的场景仿真数据;
102.利用场景构造器,构建所述场景仿真数据对应的仿真场景;
103.利用场景控制器,控制所述仿真场景中各个仿真对象按照预设线程进行仿真。
104.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图4所示的设备而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
105.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字符系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl
(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
106.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
107.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字符助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
108.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
109.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
110.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序语言实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序语言到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的语言产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
111.这些计算机程序语言也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的语言产生包括语言装置的制造品,该语言装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
112.这些计算机程序语言也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的语言提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
113.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
114.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
115.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读语言、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字符多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
116.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列元素的过程、方法、商品或者设备不仅包括那些元素,而且还包括没有明确列出的其他元素,或者是还包括为这种过程、方法、商品或者设备所固有的元素。在没有更多限制的情况下,由语句“包括一个
……”
限定的元素,并不排除在包括所述元素的过程、方法、商品或者设备中还存在另外的相同元素。
117.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
118.本技术可以在由计算机执行的计算机可执行语言的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
119.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1