CN102629193A - 用于多传感器系统的软件框架及开发平台 - Google Patents
用于多传感器系统的软件框架及开发平台 Download PDFInfo
- Publication number
- CN102629193A CN102629193A CN 201110424147 CN201110424147A CN102629193A CN 102629193 A CN102629193 A CN 102629193A CN 201110424147 CN201110424147 CN 201110424147 CN 201110424147 A CN201110424147 A CN 201110424147A CN 102629193 A CN102629193 A CN 102629193A
- Authority
- CN
- China
- Prior art keywords
- sensor
- software
- data
- api
- development
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Testing Or Calibration Of Command Recording Devices (AREA)
- Navigation (AREA)
- Stored Programmes (AREA)
- Gyroscopes (AREA)
Abstract
所揭示的软件框架及开发平台促进针对多传感器系统的软件开发。在一些实施方案中,开发者可选择包含传感器装置的所要组合的传感器板。所述传感器板可耦合到开发板,所述开发板包含目标处理器及用以促进包含所述目标处理器及所述传感器的系统的开发及测试的其它电路。提供包含应用程序编程接口API的各种软件支持工具,所述应用程序编程接口API提供用于所述传感器板上的所述传感器的软件驱动器的API抽象。通过使用所述API的所述抽象,软件开发者不必写用以与所述各种软件驱动器交互的代码(“粘合”)。另外,所述API提供对用于实施数据缩放、单位转换及数学函数与算法的多种软件库函数的访问。
Description
相关申请案交叉参考
本申请案主张2010年12月10日提出申请的标题为“用于多传感器系统的软件框架及开发平台(Software Framework and Development Platform for Multi-Sensor Systems)”的第61/422,084号美国临时申请案的优先权,所述美国临时申请案的全部内容以引用的方式并入本文中。
技术领域
此标的物大体来说涉及软件开发,且更特定来说涉及用于多传感器系统的软件框架及开发平台。
背景技术
许多现代移动装置(例如,智能电话、电子输入板)包含一套传感器以支持需要惯性及环境传感器数据的应用程序。惯性数据可由板上加速计、陀螺仪传感器及磁力计提供。环境数据可由温度传感器、压力传感器、接近传感器及环境光传感器提供。惯性及环境传感器可由若干个制造商提供为集成电路芯片。因此,单个装置通常包含来自多个制造商的传感器。每一传感器可包含其自身的软件驱动器以允许在应用程序处理器(例如,微控制器)上运行的程序代码与所述传感器交互,例如请求传感器数据或编程所述传感器。
由于传感器装置制造商将其装置出售给许多客户,因此传感器装置通常提供原始数据以允许客户的软件应用程序视需要而处理所述原始数据。应用程序开发者必须对原始数据实施进一步处理(例如,缩放与单位转换),此需要来自应用程序处理器的额外处理循环。
发明内容
所揭示的软件框架及开发平台促进针对多传感器系统的软件开发。在一些实施方案中,开发者可选择包含传感器装置的所要组合的传感器板。所述传感器板可耦合到开发板,所述开发板包含目标处理器及用以促进包含所述目标处理器及所述传感器的系统的开发及测试的其它电路。提供包含应用程序编程接口(API)的各种软件支持工具,所述应用程序编程接口(API)提供用于所述传感器的软件驱动器的API抽象。通过使用所述API抽象,软件开发者不必写用以与所述各种软件驱动器交互的代码(“粘合”)。另外,所述API抽象提供对用于实施数据缩放、单位转换及数学函数与算法的多种软件库函数的简单访问。
本发明的特定实施例可经实施以实现以下优点中的一者或一者以上:1)针对多传感器系统的快速且高效的软件开发,2)减少的软件开发成本,及3)到传感器的简单接口及应用程序软件的标准API定义。
附图说明
图1是用于开发及测试多传感器系统的示范性软件开发系统的框图。
图2图解说明用于使用图1的软件开发系统来开发软件的示范性软件架构。
图3是用于使用图2的软件架构来请求传感器数据的示范性过程的流程图。
图4是用于存储及执行由图1的软件开发系统开发的软件且使用图2的软件架构的示范性多传感器系统的框图。
具体实施方式
示范性开发平台
图1是用于开发及测试多传感器系统的示范性软件开发系统100的框图。在一些实施方案中,系统100包含开发板102及传感器板104。
开发板102可包含目标处理器106、板控制器108、数字端口110a到110b、数据存储器112(例如,快闪存储器)、模拟端口114、编程端口116、串行端口118(例如,USB)、通用I/O端口120(GPIO)及触摸滑块接口122。
目标处理器106为正存储及执行正使用开发者板102开发或测试的软件的处理器。板控制器108控制开发者板102的功能,包含功率管理、I/O端口及外围装置、总线管理、存储器管理及与开发板102有关的任何其它功能。板控制器108可执行用于实施各种开发者板功能的操作系统代码。数字端口110a、110b向各种数字装置及外围装置提供到开发者板102的数字接口。模拟端口114为各种模拟装置及外围装置提供到开发者板102的模拟接口。编程端口116提供到开发者板102的接口,所述接口允许另一计算装置将程序代码加载到开发板102中以供目标处理器106执行。串行端口118提供到开发者板102的串行通信接口(例如,USB)。通用I/O(GPIO)端口为外部装置及外围装置提供到开发板102的一般接口端口。触摸滑块接口122为触摸滑块输入提供到开发者板102的接口。其它开发板可包含更多或更少的组件。
传感器板104可包含用于与开发者板102介接的接口124。传感器板104包含传感器126a到126c。传感器126可为由开发者选择的任一传感器装置组合。传感器126a到126b可为惯性传感器,其中传感器126a为加速计,传感器126b为陀螺仪传感器,且传感器126c为磁力计。一些传感器板可包含环境传感器,包含温度传感器、压力传感器及光传感器。又一些传感器板可包含惯性传感器与环境传感器的组合。
这些传感器装置中的每一者可为由不同制造商提供的集成电路芯片。多个传感器可提供于单个集成电路封装中(例如,加速计与陀螺仪组合)。每一传感器装置可经由针对所述特定传感器开发的专用软件驱动器提供原始传感器数据。所述专用软件驱动器提供用于允许用户请求原始传感器数据的低级API。应用程序代码可经由高级API访问这些软件驱动器,所述高级API提供所述软件驱动器的抽象,因此给所述软件驱动器添加透明层。此额外透明层级可通过减少开发者需要的关于用以与传感器介接的软件驱动器的知识量而简化应用程序代码的开发。借助高级API,应用程序不需要传感器特有代码。使用高级API,应用程序可与不具有源代码修改的不同硬件平台一起使用。参考图2更详细地论述所述高级API。
图2图解说明用于使用图1的软件开发系统来开发软件的示范性软件架构200。在一些实施方案中,软件架构200可在概念上包含应用程序层202、软件库层204及驱动器层206。驱动器层206与包含传感器板104上的传感器装置的硬件208直接介接。软件架构200表示API函数调用及API函数调用返回可遍历的概念层次或“软件堆栈”。举例来说,需要罗盘航向的应用程序可向软件库函数做出API函数调用以计算罗盘航向。所述软件库函数可与用于界定用于返回API函数调用结果的数据结构的定义与说明相关联。API函数调用可包含提供变量或指针的参数列表,所述变量或指针用于将数据及指针发送到用于实施罗盘航向计算的基础软件库代码及从所述基础库代码接收数据及指针。所述软件库代码可利用由传感器制造商提供的低级API来访问存储于传感器装置中的数据寄存器中的原始数据。这些低级API由于高级API抽象而对于应用程序开发者为透明的。
在实例性架构200中,硬件208中存在惯性与环境传感器的混合。此在驱动器层206中产生针对如图2中所示的传感器中的每一者的驱动器及API抽象。软件库函数层204中的软件库函数将使用API抽象来访问软件驱动器。软件库函数的一些实例可为缩放、单位转换、数学计算或算法或可有益于应用程序的任何其它所要函数。图2中所示的传感器并非穷尽性列表且可以类似方式支持其它类型的传感器。
在一些实施方案中,可在驱动器层206中提供软件框架。软件框架为包含用于提供可由用户代码选择性地越权控制或专门化的类属功能性因此提供特定功能性的共用代码的抽象。软件框架可包含缠绕在API中的代码的可再用抽象,且可含有将其与其它软件库函数分开的区别特征。
图3是用于使用图2的软件架构来请求传感器数据的示范性过程300的流程图。在一些实施方案中,过程300可在从应用程序接收对传感器数据的请求(302)时开始。可基于经编程时间周期、由所述应用程序识别的条件或响应于中断或其它异步事件(包含由传感器装置自身产生的那些事件)而起始此请求。可经由API调用从应用程序做出所述请求。可以“C”程序设计语言或任何其它适合语言来实施API代码。结构定义可使用“C”联合体来允许不同数据类别的数据字段的“别名”。可用来自实时时钟的值(例如,微秒值)自动地填入时间戳字段。
过程300识别用于提供传感器数据的目标传感器(304)。过程300检查以查看是否请求原始传感器数据(306)。如果请求原始传感器数据,那么过程300向目标传感器请求原始传感器数据(308)、从目标传感器接收原始数据(310)并将所述原始传感器数据返回到调用应用程序(312)。如果未请求原始传感器数据,那么过程300向目标传感器请求原始数据(314)、从目标传感器接收原始传感器数据(316)、处理原始数据(318)并将经处理原始传感器数据返回到调用应用程序(320)。处理原始数据(318)可包含使用原始数据进行数据缩放、转换或计算数学公式或算法。
使用高级API,加速度读取序列可具有以下形式:
在此实例中,可使用API调用sensor_attach()及传感器描述符accel_dev将加速计识别为目标传感器。可由调用应用程序通过设定accel_data.scaled=true来请求原始加速计数据。此将导致以毫g为单位的原始加速度数据返回到调用应用程序。可使用API函数调用sensor_get_acceleration()来取得加速度数据并在accel_data结构的三个字段中返回加速度数据。
API可使用两个基本结构化数据类型来返回传感器数据.第一数据类型为vector_data_t。此数据类型可用于3轴感测装置(例如,加速计、陀螺仪)或返回三个值的其它读数(例如,罗盘航向)。可在三个单独数据字段中返回三个值(例如,32位带符号整数)。第二数据类型为scalar_t。此数据类型可用以返回一维测量(例如,温度、压力)。
其它传感器具有类似读出序列。举例来说,陀螺仪传感器可具有呈以下形式的读出序列:
许多传感器装置可提供温度数据作为辅助输出值。可在装置内部使用温度数据进行温度补偿。用于陀螺仪的示范性温度读出序列可具有以下形式:
在一些实施方案中,API调用可提供数学函数或算法。举例来说,用于罗盘航向的API调用涉及采集3轴磁性传感器测量X、Y、Z及使用加速计重力加速度来测量倾斜角侧倾(θ)及俯仰(Φ)。可使用方程式[1]及[2]将X及Y磁性传感器测量旋转成由向量XH及YH界定的水平平面:
XH=X*cos(Φ)+Y*sin(θ)*sin(Φ)-Zcos(θ)sin(Φ),[1]
YH=Y*cos(θ)+Z*sin(θ) [2]
可使用方程式[3]依据方程式[1]及[2]来计算方位角:
磁性航向计算序列可具有以下形式:
图4是用于存储及执行由图1的软件开发系统开发的软件且使用图2的软件架构的示范性多传感器系统400的框图。在一些实施方案中,系统400可包含存储器接口402、一个或一个以上处理器404、外围装置接口406、存储器410、I/O子系统412、加速计414、MEMS陀螺仪416、磁力计418及压力传感器420。I/O子系统412包含与触摸屏/垫426耦合的触摸控制器422及耦合到其它输入/控制装置(例如,开关)的其它输入控制器424。针对传感器414、416、418及420开发的软件可存储于存储器410中且由处理器404执行以将传感器数据提供到也存储于存储器410中且由处理器404执行的一个或一个以上应用程序。
尽管此文件含有许多特定实施方案细节,但这些细节不应解释为对可主张的内容的范围的限制而是应解释为可为特定实施例特有的特征的描述。在此说明书中在单独实施例的背景中描述的某些特征还可以组合形式实施于单个实施例中。相反地,在单个实施例的背景中描述的各种特征也可单独地或以任何适合子组合形式实施于多个实施例中。此外,虽然上文可将特征描述为以某些组合形式起作用且甚至最初如此主张,但来自所主张组合的一个或一个以上特征在一些情况下可从所述组合去除,且所述所主张组合可针对子组合或子组合的变化形式。
Claims (4)
1.一种软件开发系统,其包括:
开发板,其包含接口、板控制器及目标处理器;
传感器板,其经由所述接口耦合到所述开发板,所述传感器板包含多个传感器装置;
存储器,其存储程序代码,在由所述目标处理器执行时,所述程序代码提供对用于经由软件抽象与所述多个传感器交互的软件驱动器或软件库函数的访问。
2.根据权利要求1所述的系统,其中所述软件抽象提供接收原始传感器数据或经处理传感器数据的选项,其中所述经处理传感器数据由所述软件库函数中的一者或一者以上提供。
3.根据权利要求1所述的系统,其中所述传感器来自包含以下各项的传感器群组:加速计、陀螺仪传感器、磁力计、温度传感器、压力传感器、光传感器、接近传感器及触摸传感器。
4.一种方法,其包括:
从请求者接收对传感器数据的请求;
识别用于提供所述传感器数据的目标传感器;
确定请求的是经处理传感器数据;
向所述目标传感器请求原始数据;
处理所述原始传感器数据;及
将所述经处理传感器数据返回到所述请求者。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US42208410P | 2010-12-10 | 2010-12-10 | |
US61/422,084 | 2010-12-10 | ||
US13/109,952 US8869095B2 (en) | 2010-12-10 | 2011-05-17 | Software framework and development platform for multi-sensor systems |
US13/109,952 | 2011-05-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102629193A true CN102629193A (zh) | 2012-08-08 |
Family
ID=46200784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110424147 Pending CN102629193A (zh) | 2010-12-10 | 2011-12-09 | 用于多传感器系统的软件框架及开发平台 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8869095B2 (zh) |
CN (1) | CN102629193A (zh) |
DE (1) | DE102011088268A1 (zh) |
TW (1) | TW201234266A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104641622A (zh) * | 2012-09-20 | 2015-05-20 | 大陆汽车有限责任公司 | 用于借助于移动电话控制车载计算机的系统 |
CN108334102A (zh) * | 2017-01-17 | 2018-07-27 | 翔升(上海)电子技术有限公司 | 无人机开发平台和方法 |
CN110569206A (zh) * | 2019-07-16 | 2019-12-13 | 广州市中海达测绘仪器有限公司 | 一种支持多传感器的驱动框架、方法、电子设备及存储介质 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043619B2 (en) * | 2012-06-19 | 2015-05-26 | Getac Technology Corporation | Method and apparatus for power management according to a situation mode |
US9378055B1 (en) | 2012-08-22 | 2016-06-28 | Societal Innovations Ipco Limited | Configurable platform architecture and method for use thereof |
US9501140B2 (en) | 2012-11-05 | 2016-11-22 | Onysus Software Ltd | Method and apparatus for developing and playing natural user interface applications |
US9454208B2 (en) | 2013-03-14 | 2016-09-27 | Google Inc. | Preventing sleep mode for devices based on sensor inputs |
US10154095B2 (en) | 2014-05-21 | 2018-12-11 | N.Io Innovation, Llc | System and method for aggregating and acting on signals from one or more remote sources in real time using a configurable platform instance |
US9891893B2 (en) | 2014-05-21 | 2018-02-13 | N.Io Innovation, Llc | System and method for a development environment for building services for a platform instance |
WO2015177639A1 (en) | 2014-05-21 | 2015-11-26 | Societal Innovations Ipco Limited | System and method for fully configurable real time processing |
CN104156211B (zh) * | 2014-08-08 | 2017-02-22 | 北京大学 | 一种用于传感器的通用数据接口及数据调用方法 |
WO2016151398A1 (en) | 2015-03-23 | 2016-09-29 | Societal Innovations Ipco Limited | System and method for configuring a platform instance at runtime |
US10412291B2 (en) * | 2016-05-19 | 2019-09-10 | Scenera, Inc. | Intelligent interface for interchangeable sensors |
US10693843B2 (en) | 2016-09-02 | 2020-06-23 | Scenera, Inc. | Security for scene-based sensor networks |
US10101175B2 (en) | 2016-11-15 | 2018-10-16 | Industrial Technology Research Institute | Sensor interface circuit and sensor output adjusting method |
US11022511B2 (en) | 2018-04-18 | 2021-06-01 | Aron Kain | Sensor commonality platform using multi-discipline adaptable sensors for customizable applications |
CN112114789B (zh) * | 2019-06-20 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 一种业务开发方法及设备 |
EP4033727B1 (en) * | 2021-01-26 | 2023-01-04 | Deutsche Telekom AG | Method for providing adapted positioning information towards at least one consuming application regarding a plurality of objects comprising at least one specific object, system or telecommunications network for providing adapted positioning information, positioning information consuming application, program and computer-readable medium |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6144954A (en) * | 1998-01-27 | 2000-11-07 | Li; Chou H. | Automatic development of computer software |
US7346891B2 (en) * | 2002-07-05 | 2008-03-18 | Eka Systems Inc. | System and method for automating generation of an automated sensor network |
US7773715B2 (en) * | 2002-09-06 | 2010-08-10 | Rosemount Inc. | Two wire transmitter with isolated can output |
US8355804B2 (en) * | 2005-09-15 | 2013-01-15 | Honda Motor Co., Ltd. | Interface for sensor query and control |
US7895257B2 (en) * | 2006-02-21 | 2011-02-22 | University Of Florida Research Foundation, Inc. | Modular platform enabling heterogeneous devices, sensors and actuators to integrate automatically into heterogeneous networks |
US8015547B2 (en) * | 2006-06-29 | 2011-09-06 | Augusta Systems, Inc. | Reconfigurable, hierarchical component-based architecture and framework and methods for rapidly developing sensor device-enabling software applications |
US7966274B2 (en) * | 2006-08-14 | 2011-06-21 | Neural Id Llc | Enhanced learning and recognition operations for radial basis functions |
US8700924B2 (en) * | 2008-05-21 | 2014-04-15 | International Electronic Machines Corp. | Modular sensor node and communications system |
US8276159B2 (en) * | 2009-09-23 | 2012-09-25 | Microsoft Corporation | Message communication of sensor and other data |
US9197736B2 (en) * | 2009-12-31 | 2015-11-24 | Digimarc Corporation | Intuitive computing methods and systems |
US8121618B2 (en) * | 2009-10-28 | 2012-02-21 | Digimarc Corporation | Intuitive computing methods and systems |
KR20110063297A (ko) * | 2009-12-02 | 2011-06-10 | 삼성전자주식회사 | 휴대용단말기 및 그 제어방법 |
US8432368B2 (en) * | 2010-01-06 | 2013-04-30 | Qualcomm Incorporated | User interface methods and systems for providing force-sensitive input |
-
2011
- 2011-05-17 US US13/109,952 patent/US8869095B2/en not_active Expired - Fee Related
- 2011-12-02 TW TW100144444A patent/TW201234266A/zh unknown
- 2011-12-09 CN CN 201110424147 patent/CN102629193A/zh active Pending
- 2011-12-12 DE DE201110088268 patent/DE102011088268A1/de not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104641622A (zh) * | 2012-09-20 | 2015-05-20 | 大陆汽车有限责任公司 | 用于借助于移动电话控制车载计算机的系统 |
US9736679B2 (en) | 2012-09-20 | 2017-08-15 | Continental Automotive Gmbh | System for controlling a vehicle computer using a mobile telephone |
CN108334102A (zh) * | 2017-01-17 | 2018-07-27 | 翔升(上海)电子技术有限公司 | 无人机开发平台和方法 |
CN110569206A (zh) * | 2019-07-16 | 2019-12-13 | 广州市中海达测绘仪器有限公司 | 一种支持多传感器的驱动框架、方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
DE102011088268A1 (de) | 2012-06-14 |
US8869095B2 (en) | 2014-10-21 |
US20120151432A1 (en) | 2012-06-14 |
TW201234266A (en) | 2012-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102629193A (zh) | 用于多传感器系统的软件框架及开发平台 | |
US9939259B2 (en) | Measuring object dimensions using mobile computer | |
US20140311209A1 (en) | System and method for determining sensor accuracy of a portable electronic device | |
US20130009772A1 (en) | Method and mechanism for assisted diagnosis and maintenance of health monitoring system | |
US10289458B2 (en) | Multi-function button for wearable device | |
CN107729749A (zh) | 结合系统信息和硬件特性的安卓模拟器检测方法及装置 | |
US11487377B2 (en) | Electronic device acquiring user input when in submerged state by using pressure sensor, and method for controlling electronic device | |
CN104154915A (zh) | 一种基于智能穿戴设备的音频操作方法和智能穿戴设备 | |
CN108389264A (zh) | 坐标系统确定方法、装置、存储介质及电子设备 | |
CN110647212A (zh) | 一种折叠角度的确定方法、装置、电子设备及存储介质 | |
Bose et al. | On the noise and power performance of a shoe-mounted multi-IMU inertial positioning system | |
CN111835945B (zh) | 相机设备及其通信方法 | |
US11435187B2 (en) | Method for calibrating sensor or azimuth information obtained through sensor, based on azimuth information obtained using satellite positioning circuit, and electronic device supporting the same | |
CN110207643B (zh) | 折叠角度检测方法、装置、终端及存储介质 | |
CN106796113B (zh) | 使用电子设备的双磁强计的虚拟陀螺仪 | |
CN107633170A (zh) | 一种结合硬件特性与传感器的安卓模拟器检测方法及装置 | |
US11372498B2 (en) | Electronic device for supporting user input and control method of electronic device | |
US11868551B1 (en) | System and method for customized user input | |
KR102443699B1 (ko) | Kvssd 내 데이터 분석 장치 및 방법 | |
US10860321B2 (en) | Electronic device and method for processing instruction using the same | |
CN109782999A (zh) | 一种输入方法、输入设备以及一种计算机可读介质 | |
CN109816047A (zh) | 提供标签的方法、装置、设备及可读存储介质 | |
CN110207687A (zh) | 物体姿态测量方法、测量装置、电子设备及存储介质 | |
Said | Zařízení pro analýzu pohybu pomocí inerciálních senzorů | |
CN108646931A (zh) | 一种终端控制方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120808 |