• 通向白垩纪的时空隧道(科技大观) 2019-09-16
  • 忻州 端午节假期旅游收入达59962万元--黄河新闻网 2019-09-15
  • 售8.98万-15.18万元 2018款广汽传祺GS4上市 2019-09-11
  • 【专题】气象防灾减灾 我们在行动 2019-09-03
  • 贵的有道理!OPPO华为专利量领先友商一条街 2019-09-03
  • 《春天读诗5》:蒋方舟致敬周梦蝶《我选择》 2019-08-29
  • 回复@老老保老张工:连马克思都要重构个人所有制也!你不会自以为比马克思还高明吧? 2019-08-26
  • 美国三大航空公司为何拒改涉台表述 英媒:是白宫要求死扛 2019-08-25
  • 马旭明:坚持“工业强市”战略不动摇 开创黄石经济新局面 2019-08-23
  • 微信群,让人又爱又恨 2019-08-23
  • 奇!鼻腔里竟然长出“土块”来 2019-08-23
  • 出卖社会主义,发不了大财。 2019-08-22
  • 日照市住建局争引到位省级政府和社会资本合作奖补资金94万元 2019-08-22
  • 人民网评:今天,“雄安故事”翻开了新时代的新篇章 2019-08-21
  • 回复@老老保老张工:你是想自己生产的产品没人要还继续给你配置资源? 2019-08-21
  • 首页 > 应用 > 测试测量
    [导读]传感器作为各个领域最重要的设备之一,产品种类之多,应用领域之广,随着“智能时代”的到来,传感器的使用将发挥更加关键的作用。那么,要如何以最简单,最高效的方式使用这些种类繁多,操作复杂的传感器呢?

    内蒙古十一选五玩法 www.ologb.com 传感器作为各个领域最重要的设备之一,产品种类之多,应用领域之广,随着“智能时代”的到来,传感器的使用将发挥更加关键的作用。那么,要如何以最简单,最高效的方式使用这些种类繁多,操作复杂的传感器呢?

    传感器作为一种检测装置,它的应用早已渗透到诸如工业生产、宇宙探索、海洋探测、环境?;?、资源调查、医学诊断、生物工程、甚至文物?;さ鹊燃渲惴旱牧煊???梢院敛豢湔诺厮?,从茫茫的太空,到浩瀚的海洋,以及各种复杂的工程系统,几乎每一个现代化项目,都离不开传感器。

    目前,市面上已经存在大量各种类型,各种型号,不同厂家生产的各种传感器,例如,温度、湿度、电压、电流、压强、光照、加速度、角速度等等。它们的应用场景、产品参数、使用方法都不尽相同,这往往使许多项目开发人员在使用传感器时举步维艰:添加一个传感器,就要编写对应的驱动,提供一套访问这个传感器的接口。通常情况下,在一个复杂的系统中,传感器往往不止一个,可能存在几个或几十个甚至更多不同种类的传感器,若这些传感器的使用接口都不相同,那么可想而知,软件方面的工作量和复杂度又会有多大?无形中又增加了很大的开发难度。不仅如此,若基于多种传感器开发的应用程序想跨平台复用,而底层各个传感器的接口却千奇百怪,那么,这样的工作量和复杂度又会上升到什么程度?

    为了解决这些问题,AWorks定义了通用的传感器接口,适用于各式各样的传感器,只要是挂载在AWorks系统中的传感器,都可以通过相同的操作接口来访问。同时,只要是基于这些通用接口开发的应用程序,都不会与具体的硬件设备绑定,换句话说,底层更换使用不同型号的传感器,对应用程序不会造成影响,应用程序可以不做任何改动。

    从功能上看,传感器实现了对真实世界中某种物理信号(温度、湿度、气压等)的采集,在使用传感器时,最重要的操作就是从传感器中获取出相应的数据。接下来,进一步介绍如何通过接口获取传感器数据作。

    1.传感器通道ID

    在介绍接口的使用方法之前,需要简单了解一个概念,AWorks之所以能够实现使用一套相同的接口访问所有类型的传感器,是因为AWorks对系统中的传感器进行了统一的管理。为了实现对各式各样的传感器进行统一管理,在AWorks中,定义了“传感器通道”的抽象概念,一路传感器通道用于完成一路物理信号的采集,系统为每个传感器通道分配了一个唯一的ID。例如,若此时系统中存在三个传感器,分别为温湿度传感器HTS221(能为系统提供一路温度和一路湿度通道),三轴磁传感器LIS3MDL(能位系统提供X,Y,Z轴三路磁数据通道和一路温度通道)和光照传感器BH1730(能为系统提供一路光照度采集通道),则对应的ID分配范例详见表 1。

    表 1 传感器通道id分配

    b1.png

    按照以上的传感器通道ID分配方式,理论上,系统中可以挂载无数个各种类型的传感器,新加入的传感器通道只需按照以上方式依次向后分配ID即可。通常情况下,该ID号的分配已经由系统完成,无需我们自行分配,我们只需简单知道当前系统中的有效ID号所对应的传感器通道类型即可。例如,当前AWorks系统中存在的传感器如表 1所示,有三个传感器,ID号为0~6,下文中函数接口ID的使用将以此为例。

    2.获取传感器数据

    基于以上对传感器ID的描述,此时若想获取传感器的数据,只需在应用程序中调用获取传感器数据的函数接口即可,获取传感器数据的函数接口如下:

    aw_err_t aw_sensor_data_get (int id, aw_sensor_val_t *p_val);

    其中,id即为传感器通道ID号,p_val为存放对应ID的传感器数据。此处aw_sensor_val_t类型为一个结构体,只需知道它是一个保存传感器数据的变量即可。

    基于此,获取系统中任意传感器通道的数据只需调用该接口即可,例如,每隔500ms获取一次温度采样数据的程序范例如下:

    1 aw_sensor_val_t tem_val;

    2 while (1) {

    3 aw_sensor_data_get(0, &tem_val); // 通道ID为0,对应表 1中的温度采集通道

    4 aw_mdelay(500);

    5 }

    同样,若想获取光照度传感器采样数据,程序范例如下:

    1 aw_sensor_val_t als_val;

    2 while (1) {

    3 aw_sensor_data_get(6, &als_val); // 通道ID为6,对应表 1中的光照度采集通道

    4 aw_mdelay(500);

    5 }

    以此类推,只需要调用这一个相同的接口,便可以依次获取系统中所有传感器的数据。此时,或许有人会疑问,系统中那么多传感器,一个一个调用该接口,会不会显得繁琐?对于该问题,AWorks系统当然给出了答案,那就是提供同时获取多通道或者所有通道传感器数据的接口,该接口原型如下:

    aw_err_t aw_sensor_group_data_get (const int *p_ids,

    int num,

    aw_sensor_val_t *p_buf);

    其中,p_ids为指向传感器通道id列表的指针;num表示通道的数目,即id列表的大小;p_buf指向用于存储各通道数据的缓存,缓存大小与num一致?;诟媒涌?,可以同时获取多个或所有系统中传感器的采样数据,例如,每隔500ms获取当前表 1中所有的传感器通道采样数据的程序范例如下:

    1 const int id_s[7] = {0, 1, 2, 3, 4, 5, 6}; // 应用程序使用7个通道

    2 aw_sensor_val_t val_buf[7]; // 存储7个通道数据的缓存

    3

    4 while (1) {

    5 aw_sensor_group_data_get(id_s, 7, val_buf); // 获取当前系统所有传感器通道的采样数据

    6 aw_mdelay(500);

    7 }

    基于此,AWorks系统的传感器接口已经完美的实现了使用同种接口获取所有传感器采样数据的功能。此时,或许有人又会提出疑问,这两个接口采用的似乎都是轮询的方式获取传感器数据,若在效率要求较高的场合,调用该接口是不是不太好呢?再者说,如今的许多传感器都可以采用中断触发的方式获取数据,这样可以大大提高应用程序的效率,那么能不能实现这种功能呢?当然!AWorks同样提供了这种接口,而且接口的调用非常方便,简洁。接下来将为你一一揭秘。

    3.触发方式获取传感器数据

    如今大多数传感器内部都支持了通过中断触发的方式通知应用程序获取传感器数据的功能,应用程序只需检测触发类型做相应的处理即可,这样大大提高了应用程序的执行效率,避免了以查询这种耗时的方式主动获取传感器数据的操作。

    传感器具有的触发方式一般由传感器本身决定。例如,温湿度传感器HTS221具有的可配置触发方式只有数据准备就绪触发;三轴磁传感器LIS3MDL具有的可配置触发方式有数据准备就绪触发和上下门限值触发。接下来将只以数据准备就绪触发方式,讲解如何高效的获取传感器数据。

    在AWorks中,要实现通过触发方式获取传感器通道数据,只需要两步操作即可,第一步是配置传感器通道的触发回调函数,第二步则是打开该通道的触发。

    首先,配置传感器通道触发模式的函数原型如下:

    aw_err_t aw_sensor_trigger_cfg (int id,

    uint32_t flags,

    aw_sensor_trigger_cb_t pfn_cb,

    void *p_arg);

    其中,id为传感器通道的编号,flags参数为配置的触发模式对应的宏(此处只以数据准备就绪触发举例,其所对应的宏在AWorks中定义为AW_SENSOR_TRIGGER_DATA_READY,直接传入即可),pfn_cb为触发回调函数,p_arg为用户触发回调函数参数。触发回调函数的类型为aw_sensor_trigger_cb_t,定义如下:

    typedef void (*aw_sensor_trigger_cb_t) (void *p_arg, uint32_t trigger_src);

    其中,p_arg为用户触发回调函数参数,trigger_src为存放的触发类型。例如,此时要配置三轴磁传感器LIS3MDL的X轴采集通道(表 1通道2)的数据准备就绪触发,程序范例如下:

    1 /* 定义一个回调函数,用于当触发事件产生时,该函数被调用 */

    2 static void __pfn_trigger_callback (void *p_arg, uint32_t trigger_src)

    3 {

    4 /* 数据准备就绪触发*/

    5 if (trigger_src & AW_SENSOR_TRIGGER_DATA_READY) {

    6 aw_sensor_data_get(2, &data_val); // 触发方式获取该通道的采样数据

    7 }

    8 }

    9 aw_sensor_trigger_cfg( 2,

    10 AW_SENSOR_TRIGGER_DATA_READY,

    11 __pfn_trigger_callback,

    12 NULL); // 配置通道2的数据准备就绪触发

    当以上程序完成通道的触发方式的配置后,接下来,只需打开该通道的触发即可,该函数接口的定义如下:

    aw_err_t aw_sensor_trigger_on (int id);

    该函数接口只需传入id即可。注意,aw_sensor_trigger_on函数接口必须在aw_sensor_trigger_cfg接口之后调用,先后顺序不能颠倒。此时,要通过触发方式获取三轴磁传感器LIS3MDL的X轴采集数据的完整程序范例如下:

    1 aw_sensor_val_t data_val; // 定义传感器数据缓存区

    2

    3 /* 定义一个回调函数,用于当触发事件产生时,该函数被调用 */

    4 static void __pfn_trigger_callback (void *p_arg, uint32_t trigger_src)

    5 {

    6 /* 数据准备就绪触发*/

    7 if (trigger_src & AW_SENSOR_TRIGGER_DATA_READY) {

    8 aw_sensor_data_get(2, &data_val); // 触发方式获取该通道的采样数据

    9 }

    10 }

    11

    12 int mian()

    13 {

    14 aw_sensor_trigger_cfg(2,

    15 AW_SENSOR_TRIGGER_DATA_READY,

    16 __pfn_trigger_callback,

    17 NULL);

    18 aw_sensor_trigger_on (2);

    19 while (1) {

    20 aw_mdelay(1000);

    21 }

    22 }

    通过以上的接口,完美的实现了一种接口访问所有传感器数据的功能,并且这些接口可以在任何运行AWorks操作系统的平台上使用,且无论平台中的传感器类型和数目如何变化,只需要知道该平台传感器通道的ID信息,则都可以使用这些通用接口来进行访问。只要是基于该通用接口开发的应用程序,只要是在AWorks系统中,应用程序能实现“零”修改的移植。在软件意义上,真正实现了“一次编程、终生使用、跨平台”的历史难题。

    4.总结

    AWorks是ZLG历时12年开发的下一代开源嵌入式开发平台,将MCU和OS的共性高度抽象为统一接口,支持平台组件“可插拔、可替换、可配置”,与硬件无关、与操作系统种类无关的方式设计,用户只需修改相应的头文件,即可实现“一次编程、终生使用、跨平台”。

    并且ZLG推出了一系列搭载AWorks操作系统的Cortex-M0/3/4/7、Coterx-A7/8/9、ARM7/9、DSP等常用内核的核心板。使用这些核心板,即可在AWorks平台上快速完成产品开发。

    1.png

    换一批

    延伸阅读

    [传感器] 超然:全新豪华智能纯电品牌高合HiPhi

    超然:全新豪华智能纯电品牌高合HiPhi

    华人运通亮相了首款全新豪华智能纯电品牌高合HiPhi量产定型车。该车型有望在明年下半年生产,后年下半年投放市场。......

    关键字:HiPhi 1 智能照明 传感器

    [传感器] 传感器拍下美国51区UFO物体?

    传感器拍下美国51区UFO物体?

    前几天上百万的网友要求攻占51区,想找到外星人的身影,部分地区更是人心惶惶。美国51区再次发现不明飞行物?。?!男子苦等6小时,用传感器拍下明飞行物。......

    关键字:UFO 传感器 美国51区

    [传感器] 详解汽车传感器产业

    详解汽车传感器产业

    推荐国元证券的报告《车载 MEMS 及智能传感器研究》,详解传统传感器、MEMS和四种智能传感器的技术特点、行业现状和市场规模。......

    关键字:微机电传感器 智能传感器 车载 MEM

    [传感器] 华为Mate30 Pro相机拥有“双4千万”及大尺寸传感器

    华为Mate30 Pro相机拥有“双4千万”及大尺寸传感器

    日前,最新爆料称Mate 30 Pro将采用4000万主摄+4000万像素广角的配置,将成为业内首款双大底高像素拍照手机?;狹ate 30系列预计将于今年10月发布,除了麒麟985、支持5G、采用“瀑布屏”之外,Mate 30系列的相机......

    关键字:Mate 30 Pro RYYB传感器 ToF相机

    [传感器] 国内公司在图像传感器下游应用行业有望迅速崛起

    国内公司在图像传感器下游应用行业有望迅速崛起

    英国调查公司IHS Markit近期的一项数据显示,索尼在CMOS(互补金属氧化物半导体)图像传感器领域维持优势。据Yole数据,汽车CMOS传感器市场2016年产值达到了5.28亿美金,2017年产值预计将达到6.5亿美金,未来几年将保......

    关键字:图像传感器 智能驾驶 CAGR

    [传感器] 关注着三个传感器,决定汽车油耗问题

    关注着三个传感器,决定汽车油耗问题

    买策划容易养车难,是目前很多车主烦恼的一个问题。车子上面有很多重要的配件,车子买了之后都是要行驶很多年的,但是当一个汽车行驶了很多年之后,很多零件都开始慢慢的出问题了,所以车子就要隔段时间被“包养”了。......

    关键字:空气流量计 汽车温度传感器 氧传感器

    [传感器] 全球图像传感器索尼独占一半份额

    全球图像传感器索尼独占一半份额

    根据日经中文援引iHSMarket的数据称,全球CMOS图像传感器价值120亿美元,同比增5.1%,其中索尼的市场份额达到了50.1%,尽管份额下滑了1.8%,但依然独家控制了全球一半的份额。......

    关键字:CMOS图像传感器 CIS传感器 智能手机

    [传感器] 中科银河芯:高性能传感器芯片助力芯片国产化

    中科银河芯:高性能传感器芯片助力芯片国产化

    近日,中科银河芯对外宣布于今年7月完成数千万元Pre-A轮融资,由中科院创投领投,南京动平衡、三峡鑫泰、北京科微创投共同跟投,将主要用于技术研发、产品线扩展及部分产品量产,并进一步引进高端人才。中科银河芯是来自中科院微电子所的创业团队,此......

    关键字:中科银河芯 传感器 物联网

    [传感器] 车用气体传感器将成为爆款

    车用气体传感器将成为爆款

    随着汽车数量越来越多、使用范围越来越广,尾气对环境的负面效应也越来越大,尤其是危害城市环境,引发呼吸系统疾病,造成地表空气臭氧含量过高,加重城市热岛效应,使城市环境转向恶化。目前,世界各个国家都在研究如何降低机动车尾气污染。......

    关键字:二氧化碳浓度传感器 氧传感器 氮氧化物传感器

    [传感器] 手机应用的五款传感器介绍

    手机应用的五款传感器介绍

    手机是怎么实现当指纹打开手机,倾斜手机操作游戏,口袋里装着手机记录步等功能的?靠简单的程序代码吗?......

    关键字:光线传感器 重力传感器 磁场传感器

    [传感器] DEP公司:提升内燃机效的内燃机传感器

    DEP公司:提升内燃机效的内燃机传感器

    DEP公司是一家拥有专业发动机设计和研发能力的公司。据外媒报道,美国Detroit Engineered Products(DEP)公司宣布推出一款先进IC(内燃机)传感器,该内燃机传感器可通过向发动机的电控系统提供反馈,执行多种传感任务......

    关键字:DEP IC(内燃机)传感器 压力传感器

    [传感器] 明年iPhone配置激光传感器能测距

    明年iPhone配置激光传感器能测距

    据国外媒体报道,在周一发出的一份研究报告中,郭明錤表示苹果手机全新的摄像头将包括一个名为“ToF”的新传感器,可以让iPhone更好地“看到”周围的世界,改进增强现实(AR)体验和具备更好的计算机视觉能力。苹果明年销售的两款新手机将包含T......

    关键字:ToF 传感器 VCSEL

    [智能硬件] 手机市场将因LG首款打孔屏智能机而“沸腾”

    手机市场将因LG首款打孔屏智能机而“沸腾”

    近日外媒消息,据荷兰著名科技博客 LetsGoDigital 近日曝光的一份设计专利, LG的首款打孔屏智能机可能很快公布。......

    关键字:LG 打孔屏 传感器

    [传感网] 盛思锐创——微型二氧化碳传感器

    盛思锐创——微型二氧化碳传感器

    今年7月30日-8月1日举办的2019第十一届深圳国际物联网博览会,盛思锐展台位于深圳会展中心9号馆D110号展位,现场展示了多种环境及流量传感器产品,与客户和行业专业人士分享各类产品的巨大应用潜力以及相关资讯。......

    关键字:物联网博览会 二氧化碳传感器 SCD40

    [传感网] 智能手环产品嵌入紫外线传感器

    智能手环产品嵌入紫外线传感器

    智能手环是一种穿戴式智能设备。用户可以通过智能手环记录日常生活中的锻炼、睡眠、部分还有饮食等实时数据,并将这些数据与手机、平板、ipod touch同步,起到通过数据指导健康生活的作用。而且,别看智能手环个头不大,其功能还是比较强大的,比如......

    关键字:智能手环 实时数据 紫外线传感器

    我 要 评 论

    网友评论

    技术子站

    更多

    项目外包

    更多

    推荐博客

  • 通向白垩纪的时空隧道(科技大观) 2019-09-16
  • 忻州 端午节假期旅游收入达59962万元--黄河新闻网 2019-09-15
  • 售8.98万-15.18万元 2018款广汽传祺GS4上市 2019-09-11
  • 【专题】气象防灾减灾 我们在行动 2019-09-03
  • 贵的有道理!OPPO华为专利量领先友商一条街 2019-09-03
  • 《春天读诗5》:蒋方舟致敬周梦蝶《我选择》 2019-08-29
  • 回复@老老保老张工:连马克思都要重构个人所有制也!你不会自以为比马克思还高明吧? 2019-08-26
  • 美国三大航空公司为何拒改涉台表述 英媒:是白宫要求死扛 2019-08-25
  • 马旭明:坚持“工业强市”战略不动摇 开创黄石经济新局面 2019-08-23
  • 微信群,让人又爱又恨 2019-08-23
  • 奇!鼻腔里竟然长出“土块”来 2019-08-23
  • 出卖社会主义,发不了大财。 2019-08-22
  • 日照市住建局争引到位省级政府和社会资本合作奖补资金94万元 2019-08-22
  • 人民网评:今天,“雄安故事”翻开了新时代的新篇章 2019-08-21
  • 回复@老老保老张工:你是想自己生产的产品没人要还继续给你配置资源? 2019-08-21
  • 老时时彩 福建22选5开奖结果 什么彩票 VR竞速馆 竞彩足球亚盘技巧 手机注册电子游艺送体验金 老版彩票走势图 天津时时彩q群有没有 江西快三怎么算中奖 广西快乐十分钟开将结果 急速赛车在线观看 福建31选7走势图带连线 彩票中奖查询2019072 排列五走势图周一 白姐六肖中特网