0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何以最簡單、最高效的方式使用這些種類繁多,操作復雜的傳感器呢?

UtFs_Zlgmcu7890 ? 來源:lp ? 2019-03-14 14:14 ? 次閱讀

傳感器作為各個領域最重要的設備之一,產(chǎn)品種類之多,應用領域之廣,隨著“智能時代”的到來,傳感器的使用將發(fā)揮更加關鍵的作用。那么,要如何以最簡單、最高效的方式使用這些種類繁多,操作復雜的傳感器呢?本文將為大家一一介紹。

傳感器作為一種檢測裝置,它的應用早已滲透到諸如工業(yè)生產(chǎn)、宇宙探索、海洋探測、環(huán)境保護、資源調查、醫(yī)學診斷、生物工程、甚至文物保護等等極其之廣泛的領域??梢院敛豢鋸埖卣f,從茫茫的太空,到浩瀚的海洋,以及各種復雜的工程系統(tǒng),幾乎每一個現(xiàn)代化項目,都離不開傳感器。

目前,市面上已經(jīng)存在大量各種類型,各種型號,不同廠家生產(chǎn)的各種傳感器,例如,溫度、濕度、電壓、電流、壓強、光照、加速度、角速度等等。它們的應用場景、產(chǎn)品參數(shù)、使用方法都不盡相同,這往往使許多項目開發(fā)人員在使用傳感器時舉步維艱:添加一個傳感器,就要編寫對應的驅動,提供一套訪問這個傳感器的接口

通常情況下,在一個復雜的系統(tǒng)中,傳感器往往不止一個,可能存在幾個或幾十個甚至更多不同種類的傳感器,若這些傳感器的使用接口都不相同,那么可想而知,軟件方面的工作量和復雜度又會有多大?無形中又增加了很大的開發(fā)難度。不僅如此,若基于多種傳感器開發(fā)的應用程序想跨平臺復用,而底層各個傳感器的接口卻千奇百怪,那么,這樣的工作量和復雜度又會上升到什么程度?

為了解決這些問題,AWorks定義了通用的傳感器接口,適用于各式各樣的傳感器,只要是掛載在AWorks系統(tǒng)中的傳感器,都可以通過相同的操作接口來訪問。同時,只要是基于這些通用接口開發(fā)的應用程序,都不會與具體的硬件設備綁定,換句話說,底層更換使用不同型號的傳感器,對應用程序不會造成影響,應用程序可以不做任何改動。

從功能上看,傳感器實現(xiàn)了對真實世界中某種物理信號(溫度、濕度、氣壓等)的采集,在使用傳感器時,最重要的操作就是從傳感器中獲取出相應的數(shù)據(jù)。接下來,進一步介紹如何通過接口獲取傳感器數(shù)據(jù)作。

01

傳感器通道ID

在介紹接口的使用方法之前,需要簡單了解一個概念,AWorks之所以能夠實現(xiàn)使用一套相同的接口訪問所有類型的傳感器,是因為AWorks對系統(tǒng)中的傳感器進行了統(tǒng)一的管理。為了實現(xiàn)對各式各樣的傳感器進行統(tǒng)一管理,在AWorks中,定義了“傳感器通道”的抽象概念,一路傳感器通道用于完成一路物理信號的采集,系統(tǒng)為每個傳感器通道分配了一個唯一的ID。例如,若此時系統(tǒng)中存在三個傳感器,分別為溫濕度傳感器HTS221(能為系統(tǒng)提供一路溫度和一路濕度通道),三軸磁傳感器LIS3MDL(能位系統(tǒng)提供X,Y,Z軸三路磁數(shù)據(jù)通道和一路溫度通道)和光照傳感器BH1730(能為系統(tǒng)提供一路光照度采集通道),則對應的ID分配范例詳見表 1。

表1 傳感器通道ID分配

按照以上的傳感器通道ID分配方式,理論上,系統(tǒng)中可以掛載無數(shù)個各種類型的傳感器,新加入的傳感器通道只需按照以上方式依次向后分配ID即可。通常情況下,該ID號的分配已經(jīng)由系統(tǒng)完成,無需我們自行分配,我們只需簡單知道當前系統(tǒng)中的有效ID號所對應的傳感器通道類型即可。例如,當前AWorks系統(tǒng)中存在的傳感器如表1所示,有三個傳感器,ID號為0~6,下文中函數(shù)接口ID的使用將以此為例。

02

獲取傳感器數(shù)據(jù)

基于以上對傳感器ID的描述,此時若想獲取傳感器的數(shù)據(jù),只需在應用程序中調用獲取傳感器數(shù)據(jù)的函數(shù)接口即可,獲取傳感器數(shù)據(jù)的函數(shù)接口如下:

其中,id即為傳感器通道ID號,p_val為存放對應ID的傳感器數(shù)據(jù)。此處aw_sensor_val_t類型為一個結構體,只需知道它是一個保存?zhèn)鞲衅鲾?shù)據(jù)的變量即可。

基于此,獲取系統(tǒng)中任意傳感器通道的數(shù)據(jù)只需調用該接口即可,例如,每隔500ms獲取一次溫度采樣數(shù)據(jù)的程序范例如下:

同樣,若想獲取光照度傳感器采樣數(shù)據(jù),程序范例如下:

以此類推,只需要調用這一個相同的接口,便可以依次獲取系統(tǒng)中所有傳感器的數(shù)據(jù)。此時,或許有人會疑問,系統(tǒng)中那么多傳感器,一個一個調用該接口,會不會顯得繁瑣?對于該問題,AWorks系統(tǒng)當然給出了答案,那就是提供同時獲取多通道或者所有通道傳感器數(shù)據(jù)的接口,該接口原型如下:

其中,p_ids為指向傳感器通道id列表的指針;num表示通道的數(shù)目,即id列表的大??;p_buf指向用于存儲各通道數(shù)據(jù)的緩存,緩存大小與num一致?;谠摻涌?,可以同時獲取多個或所有系統(tǒng)中傳感器的采樣數(shù)據(jù),例如,每隔500ms獲取當前表 1中所有的傳感器通道采樣數(shù)據(jù)的程序范例如下:

基于此,AWorks系統(tǒng)的傳感器接口已經(jīng)完美的實現(xiàn)了使用同種接口獲取所有傳感器采樣數(shù)據(jù)的功能。此時,或許有人又會提出疑問,這兩個接口采用的似乎都是輪詢的方式獲取傳感器數(shù)據(jù),若在效率要求較高的場合,調用該接口是不是不太好呢?再者說,如今的許多傳感器都可以采用中斷觸發(fā)的方式獲取數(shù)據(jù),這樣可以大大提高應用程序的效率,那么能不能實現(xiàn)這種功能呢?當然!AWorks同樣提供了這種接口,而且接口的調用非常方便,簡潔。接下來將為你一一揭秘。

03

觸發(fā)方式獲取傳感器數(shù)據(jù)

如今大多數(shù)傳感器內部都支持了通過中斷觸發(fā)的方式通知應用程序獲取傳感器數(shù)據(jù)的功能,應用程序只需檢測觸發(fā)類型做相應的處理即可,這樣大大提高了應用程序的執(zhí)行效率,避免了以查詢這種耗時的方式主動獲取傳感器數(shù)據(jù)的操作。

傳感器具有的觸發(fā)方式一般由傳感器本身決定。例如,溫濕度傳感器HTS221具有的可配置觸發(fā)方式只有數(shù)據(jù)準備就緒觸發(fā);三軸磁傳感器LIS3MDL具有的可配置觸發(fā)方式有數(shù)據(jù)準備就緒觸發(fā)和上下門限值觸發(fā)。接下來將只以數(shù)據(jù)準備就緒觸發(fā)方式,講解如何高效的獲取傳感器數(shù)據(jù)。

在AWorks中,要實現(xiàn)通過觸發(fā)方式獲取傳感器通道數(shù)據(jù),只需要兩步操作即可,第一步是配置傳感器通道的觸發(fā)回調函數(shù),第二步則是打開該通道的觸發(fā)。

首先,配置傳感器通道觸發(fā)模式的函數(shù)原型如下:

其中,id為傳感器通道的編號,flags參數(shù)為配置的觸發(fā)模式對應的宏(此處只以數(shù)據(jù)準備就緒觸發(fā)舉例,其所對應的宏在AWorks中定義為AW_SENSOR_TRIGGER_DATA_READY,直接傳入即可),pfn_cb為觸發(fā)回調函數(shù),p_arg為用戶觸發(fā)回調函數(shù)參數(shù)。觸發(fā)回調函數(shù)的類型為aw_sensor_trigger_cb_t,定義如下:

其中,p_arg為用戶觸發(fā)回調函數(shù)參數(shù),trigger_src為存放的觸發(fā)類型。例如,此時要配置三軸磁傳感器LIS3MDL的X軸采集通道(表1通道2)的數(shù)據(jù)準備就緒觸發(fā),程序范例如下:

當以上程序完成通道的觸發(fā)方式的配置后,接下來,只需打開該通道的觸發(fā)即可,該函數(shù)接口的定義如下:

該函數(shù)接口只需傳入id即可。注意,aw_sensor_trigger_on函數(shù)接口必須在aw_sensor_trigger_cfg接口之后調用,先后順序不能顛倒。

此時,要通過觸發(fā)方式獲取三軸磁傳感器LIS3MDL的X軸采集數(shù)據(jù)的完整程序范例如下:

通過以上的接口,完美的實現(xiàn)了一種接口訪問所有傳感器數(shù)據(jù)的功能,并且這些接口可以在任何運行AWorks操作系統(tǒng)的平臺上使用,且無論平臺中的傳感器類型和數(shù)目如何變化,只需要知道該平臺傳感器通道的ID信息,則都可以使用這些通用接口來進行訪問。只要是基于該通用接口開發(fā)的應用程序,只要是在AWorks系統(tǒng)中,應用程序能實現(xiàn)“零”修改的移植。在軟件意義上,真正實現(xiàn)了“一次編程、終生使用、跨平臺”的歷史難題。

04

總結

AWorks是ZLG歷時12年開發(fā)的下一代開源嵌入式開發(fā)平臺,將MCU和OS的共性高度抽象為統(tǒng)一接口,支持平臺組件“可插拔、可替換、可配置”,與硬件無關、與操作系統(tǒng)種類無關的方式設計,用戶只需修改相應的頭文件,即可實現(xiàn)“一次編程、終生使用、跨平臺”。

并且ZLG推出了一系列搭載AWorks操作系統(tǒng)的Cortex-M0/3/4/7、Coterx-A7/8/9、ARM7/9、DSP等常用內核的核心板。使用這些核心板,即可在AWorks平臺上快速完成產(chǎn)品開發(fā)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2545

    文章

    50445

    瀏覽量

    751075
  • 數(shù)據(jù)

    關注

    8

    文章

    6810

    瀏覽量

    88743
  • 函數(shù)
    +關注

    關注

    3

    文章

    4283

    瀏覽量

    62325

原文標題:如何以最簡單的方式獲取傳感器數(shù)據(jù)?

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    溫度傳感器如何選型 常用溫度傳感器的優(yōu)缺點

    溫度傳感器是電路中一個比較常見的元器件,同時溫度傳感器種類也是五花八門,那么種類繁多的溫度傳感器
    發(fā)表于 07-27 09:34 ?4292次閱讀
    溫度<b class='flag-5'>傳感器</b>如何選型 常用溫度<b class='flag-5'>傳感器</b>的優(yōu)缺點

    貼片機中的傳感器種類及功能

      貼片機是由很多部分組成,它的運行條仵是要求許多部位在一種正常狀態(tài)下才能運行,怎樣知道各組成部分是處在正常運行條件下?傳感器完成這一使命。通過傳感器檢測各組成部分的狀態(tài),再把信息傳送到控制部分
    發(fā)表于 09-03 10:46

    如何獲取傳感器數(shù)據(jù)

    傳感器作為各個領域最重要的設備之一,產(chǎn)品種類之多,應用領域之廣,隨著“智能時代”的到來,傳感器的使用將發(fā)揮更加關鍵的作用。那么,要如何以簡單
    發(fā)表于 08-13 07:26

    傳感器種類是如何進行劃分的

    傳感器按轉換原理可分為哪幾種類型?傳感器按供電方式可分為哪幾種類型?
    發(fā)表于 11-02 06:11

    傳感器種類

    傳感器種類  傳感器種類繁多,往往同一種被測量可以用不同類型的傳感器來測
    發(fā)表于 09-11 12:14 ?2219次閱讀

    位移傳感器種類及光柵的原理與應用介紹

    本文介紹了位移傳感器種類,常用位移傳感器計量光柵的測量原理,信號處理和具體應用,對四倍頻專用集成電路 QA740210 做了簡單介紹。 位移是和物體的位置在運動過程中的移動有關的量,
    發(fā)表于 11-08 15:15 ?24次下載
    位移<b class='flag-5'>傳感器</b>的<b class='flag-5'>種類</b>及光柵的原理與應用介紹

    汽車傳感器位置圖解詳解

     汽車傳感器過去單純用于發(fā)動機上,現(xiàn)在巳擴展到底盤、車身和燈光電氣系統(tǒng)上了。這些系統(tǒng)采用的傳感器有100多種。在種類繁多
    發(fā)表于 12-26 11:02 ?2.9w次閱讀

    聲音傳感器的應用

    當下,傳感器的技術在不斷地提高創(chuàng)新當中,但種類繁多,功能復雜而又強大,致使很多人對傳感器知之甚少,更不要提它的應用范圍了,今天我就為您詳解聲
    的頭像 發(fā)表于 07-04 11:45 ?8672次閱讀

    傳感器種類及作用

    傳感器是各種儀器儀表的重要組成部分,它是實現(xiàn)自動檢測和自動控制的首要環(huán)節(jié)。那么,傳感器種類和作用都有哪些
    發(fā)表于 06-15 08:52 ?4.3w次閱讀

    傳感器的7大感應方式介紹

    01 接近感應 接近感應通常意味著檢測: a、是否存在物體。 b、對象的大小或簡單形狀。 接近傳感器操作中可以進一步分為接觸式或非接觸式,以及模擬或數(shù)字。傳感器的選擇取決于物理,環(huán)境
    的頭像 發(fā)表于 03-22 11:18 ?3385次閱讀

    傳感器的常見種類及主要分類

    傳感器英文名稱transducer/sensor是一種檢測裝置,在日常生活中得到了非常廣泛的應用。如今傳感器所檢測的信號近來顯著地增加,因而其種類也極其繁多。那么
    發(fā)表于 09-19 14:51 ?4.2w次閱讀

    介紹位移傳感器種類及特點

    位移傳感器種類繁多,近年來應用領域不斷擴大,越來越多的創(chuàng)新技術被運用到傳感器中,位移傳感器根據(jù)位移量的大小輸出大小不同的電信號,然后能判斷位
    發(fā)表于 11-26 17:30 ?8869次閱讀

    傳感器的常見種類有哪些

    傳感器是一種檢測裝置,在日常生活中得到了非常廣泛的應用。主要由敏感元件、轉換元件、變換電路和輔助電源組成,具有微型化、數(shù)字化、智能化等特點,傳感器在自動控制領域都有著重要作用。傳感器種類
    的頭像 發(fā)表于 01-04 20:27 ?3w次閱讀

    傳感器的主要特點及常見種類

    傳感器是一種檢測裝置,在日常生活中得到了非常廣泛的應用。如今傳感器所檢測的信號近來顯著地增加,因而其種類也極其繁多。接下來簡單給大家介紹一下
    的頭像 發(fā)表于 01-06 18:28 ?6220次閱讀

    氣敏傳感器可測量的氣體種類有哪些

    氣敏傳感器是一種能夠檢測特定氣體或氣體濃度的傳感器,廣泛應用于環(huán)境監(jiān)測、工業(yè)安全、醫(yī)療健康等領域。由于氣敏傳感器種類繁多,它們可以檢測的氣
    的頭像 發(fā)表于 09-20 09:56 ?302次閱讀