日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

與現(xiàn)代傳感器接口:接口設(shè)計

李雪 ? 來源: bairunwanda168 ? 作者: bairunwanda168 ? 2022-07-21 11:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在現(xiàn)代開發(fā)周期中使用傳感器時,重要的是在編寫任何傳感器代碼之前,開發(fā)人員花時間仔細(xì)考慮他們的系統(tǒng)架構(gòu)。精心架構(gòu)的應(yīng)用程序?qū)⑻峁┸浖?a target="_blank">接口,不僅提供與傳感器交互的通用方法,而且還將抽象這些傳感器的硬件細(xì)節(jié)。許多嵌入式開發(fā)人員仍在編寫代碼,將他們的傳感器代碼與他們的應(yīng)用程序緊密耦合,這使得重用、擴(kuò)展和測試軟件變得具有挑戰(zhàn)性。開發(fā)人員可以遵循的一個很好的最佳實(shí)踐是花時間在他們的架構(gòu)中設(shè)計一個合適的接口,然后產(chǎn)生這些好處。在我之前的帖子中,我討論了不同類型的驅(qū)動程序。在這篇文章中,我將討論接口設(shè)計概念以及如何將它們應(yīng)用于與傳感器的接口。

創(chuàng)建接口的好處

使用面向?qū)ο笳Z言的開發(fā)人員自然會理解接口可以為應(yīng)用程序提供的好處,但大多數(shù)嵌入式系統(tǒng)仍然使用 C 編寫,因此這些開發(fā)人員可能會忽略這些好處。嵌入式系統(tǒng)中創(chuàng)建與 I/O 設(shè)備交互的接口有很多好處,例如:

  • 反轉(zhuǎn)代碼依賴方向
  • 增強(qiáng)便攜性
  • 抽象的復(fù)雜性和低級細(xì)節(jié)
  • 提高重用性和可擴(kuò)展性
  • 簡化軟件維護(hù)

當(dāng)使用接口與傳感器交互時,開發(fā)人員會發(fā)現(xiàn)許多低級細(xì)節(jié)都是從高級應(yīng)用程序中抽象出來的。這意味著應(yīng)用程序不知道傳感器是否連接到 ADC、I2C 總線、SPI 總線或其他一些硬件接口。

例如,花點(diǎn)時間看一下下圖:

pYYBAGLXUT6AEktyAABYBODCu_s638.png

pYYBAGLXUT6AEktyAABYBODCu_s638.png
傳感器接口中的抽象(來源:Jacob Beningo)

在此示例中,應(yīng)用程序通過傳感器 API 進(jìn)行調(diào)用,并使用其操作之一與傳感器進(jìn)行交互。應(yīng)用程序不知道 Sensor API 的幕后發(fā)生了什么,它可能有函數(shù)調(diào)用,例如:

  • Sensor_Read
  • Sensor_Write

該傳感器接口可能正在直接調(diào)用 ADC 外圍設(shè)備,或者它可能正在創(chuàng)建從通信外圍設(shè)備發(fā)送出去的消息包。界面的好處是應(yīng)用程序開發(fā)人員不需要知道這些細(xì)節(jié)。(事實(shí)上??,接口層可能只是取消對已配置為指向正確模塊以處理傳感器通信的函數(shù)指針的引用!這在我們的 C 應(yīng)用程序中提供了一種簡單的繼承形式。)

設(shè)計傳感器接口

有興趣創(chuàng)建良好、可重復(fù)使用的傳感器接口的開發(fā)人員應(yīng)該遵循幾個步驟。這些步驟有助于確保界面在第一次交互時盡可能可用,即使在界面完全穩(wěn)定之前可能需要多次迭代。

第一步是確定將在您將設(shè)計的嵌入式系統(tǒng)中使用的傳感器類型,然后檢查數(shù)據(jù)表。在此步驟中,您希望熟悉所有不同傳感器類型之間共有的操作和數(shù)據(jù),以及哪些不常見。您會發(fā)現(xiàn),即使跨不同類型的傳感器,操作和數(shù)據(jù)之間也始終存在共性。我們希望將這種共性構(gòu)建到界面中。我們將不常見的操作和數(shù)據(jù)構(gòu)建到該接口的擴(kuò)展中,這允許我們根據(jù)正在開發(fā)的應(yīng)用程序添加和刪除這些功能。

接下來,一旦我們確定了操作和數(shù)據(jù),我們就可以用 C 語言勾勒出一個可以滿足我們傳感器需求的接口。該接口的復(fù)雜性完全取決于開發(fā)人員。例如,我們可以設(shè)計一個簡單的基于函數(shù)調(diào)用的接口,其中函數(shù)原型可能如下所示:

bool Sensor_Init(const SensorConfig_t * const Config);
bool Sensor_Read(const SensorObj_t * const, SensorData_t * const SensorData);
bool Sensor_Write(const SensorObj_t * const, SensorData_t * const SensorData);

在這種情況下,對接口的任何調(diào)用都會返回一個布爾值,該布爾值提供有關(guān)操作結(jié)果的信息。例如,我們可能會調(diào)用Sensor_Read,如果底層實(shí)現(xiàn)是輪詢設(shè)備以獲取傳感器數(shù)據(jù)就緒,那么如果沒有新數(shù)據(jù),我們可能會返回 false。如果數(shù)據(jù)可用,則可能會將其復(fù)制到提供給接口的SensorData位置并返回 true。(我們當(dāng)然可以變得更復(fù)雜并創(chuàng)建錯誤代碼和其他返回值,但我們應(yīng)該從簡單開始)。

該接口可用于與任意數(shù)量的傳感器進(jìn)行交互,我們只需將SensorObj信息傳遞給接口,然后讓接口完成我們需要完成的操作即可。我們也可以將其用作模板并為傳感器名稱重命名Sensor,盡管這開始最小化抽象的有用性和可重用性。

我們可以設(shè)計接口的最后一種有趣的方式是成為函數(shù)指針的結(jié)構(gòu)。然后,開發(fā)人員將實(shí)例化該結(jié)構(gòu)并使用與他們想要連接的傳感器相關(guān)的特定函數(shù)調(diào)用對其進(jìn)行初始化。此實(shí)現(xiàn)可能如下所示:

typedef struct
{
bool ( Init)(const SensorConfig_t * const Config);
bool (
Read)(const SensorObj_t * const, SensorData_t * const SensorData);
bool (*Write)(const SensorObj_t * const, SensorData_t * const SensorData);
} 傳感器_t;

然后,我們可以通過簡單地創(chuàng)建和初始化這個結(jié)構(gòu)來為多個傳感器使用相同的接口,例如:

常量 Sensor_t 模擬 =
{
Adc_Init,
Adc_Read,
Adc_Write
};
常量 Sensor_t Gyro =
{
Gyro_Init,
Gyro_Read,
Gyro_Write
};

調(diào)用傳感器的接口然后看起來像:

模擬.Init(AdcConfig);
Gryo.Init(GyroConfig);

正如你所看到的,這種類型的接口是非??蓴U(kuò)展和可重用的。這可能會讓一些開發(fā)人員感到緊張,因?yàn)樗_實(shí)使用了函數(shù)指針。必須注意確保這些函數(shù)指針正常運(yùn)行。

結(jié)論

將傳感器連接到嵌入式系統(tǒng)時,自然的本能是檢查該傳感器,然后開始為其編寫驅(qū)動程序。不幸的是,這導(dǎo)致軟件緊密耦合并且不具有可擴(kuò)展或可重用的優(yōu)點(diǎn)。正如我們在這篇文章中所看到的,我們應(yīng)該首先關(guān)注我們的軟件架構(gòu)以及我們的傳感器如何適應(yīng)該架構(gòu)。然后我們可以開發(fā)一個接口來抽象出我們傳感器的細(xì)節(jié),這樣應(yīng)用程序就不會意識到復(fù)雜性或低級細(xì)節(jié)。這樣一來,如果在設(shè)計周期后期發(fā)現(xiàn)傳感器不適合應(yīng)用程序,則可以輕松更換傳感器,而無需修改核心應(yīng)用程序代碼


審核編輯 黃昊宇

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

    關(guān)注

    2578

    文章

    55598

    瀏覽量

    794391
  • 接口設(shè)計
    +關(guān)注

    關(guān)注

    2

    文章

    206

    瀏覽量

    30776
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    MAX9921:雙路2線霍爾效應(yīng)傳感器接口的卓越之選

    MAX9921:雙路2線霍爾效應(yīng)傳感器接口的卓越之選 在電子設(shè)計領(lǐng)域,傳感器接口的性能和穩(wěn)定性對于整個系統(tǒng)的正常運(yùn)行至關(guān)重要。今天,我們要深入探討一款名為MAX9921的雙路2線霍爾效
    的頭像 發(fā)表于 04-04 09:05 ?279次閱讀

    MAX9621:雙路2線霍爾效應(yīng)傳感器接口的卓越之選

    MAX9621:雙路2線霍爾效應(yīng)傳感器接口的卓越之選 在電子設(shè)計領(lǐng)域,傳感器接口的性能直接影響著整個系統(tǒng)的穩(wěn)定性和準(zhǔn)確性。今天,我們來深入了解一下Maxim公司的MAX9621,一款雙
    的頭像 發(fā)表于 04-04 09:05 ?271次閱讀

    分享低功耗接口數(shù)字溫度傳感器的BMS控制方案

    在電池管理系統(tǒng)(BMS)中,溫度監(jiān)測的準(zhǔn)確性直接影響電池的安全邊界與使用壽命。接口數(shù)字溫度傳感器作為BMS感知層的核心器件,負(fù)責(zé)實(shí)時采集電芯、匯流排及模組關(guān)鍵節(jié)點(diǎn)的溫度數(shù)據(jù)。與傳統(tǒng)熱敏電阻相比,接口
    的頭像 發(fā)表于 04-01 17:11 ?606次閱讀
    分享低功耗<b class='flag-5'>接口</b>數(shù)字溫度<b class='flag-5'>傳感器</b>的BMS控制方案

    醫(yī)療電子設(shè)備測試 | 人機(jī)交互 + 傳感器接口 + 執(zhí)行控制 協(xié)同測試方案

    醫(yī)療電子設(shè)備測試 | 人機(jī)交互 + 傳感器接口 + 執(zhí)行控制 協(xié)同測試方案
    的頭像 發(fā)表于 03-27 13:46 ?245次閱讀
    醫(yī)療電子設(shè)備測試 | 人機(jī)交互 + <b class='flag-5'>傳感器</b><b class='flag-5'>接口</b> + 執(zhí)行控制 協(xié)同測試方案

    MAX9924–MAX9927:可變磁阻傳感器接口的卓越之選

    MAX9924–MAX9927:可變磁阻傳感器接口的卓越之選 在汽車電子領(lǐng)域,精確的位置和速度傳感對于發(fā)動機(jī)、變速等關(guān)鍵系統(tǒng)的正常運(yùn)行至關(guān)重要??勺兇抛瑁╒R)
    的頭像 發(fā)表于 01-14 14:40 ?358次閱讀

    MAX9924–MAX9927:可變磁阻傳感器接口的卓越之選

    MAX9924–MAX9927:可變磁阻傳感器接口的卓越之選 在電子工程領(lǐng)域,傳感器接口的性能對于整個系統(tǒng)的穩(wěn)定性和準(zhǔn)確性起著至關(guān)重要的作用。今天,我們要深入探討的是Maxim Int
    的頭像 發(fā)表于 01-14 14:40 ?405次閱讀

    MAX9924 - MAX9927:可變磁阻傳感器接口的卓越之選

    MAX9924 - MAX9927:可變磁阻傳感器接口的卓越之選 在汽車電子系統(tǒng)中,精確的位置和速度傳感至關(guān)重要,特別是對于曲軸、凸輪軸和傳動軸等關(guān)鍵部件。Maxim Integrated
    的頭像 發(fā)表于 01-14 14:30 ?384次閱讀

    探索MAX9621:雙路2線霍爾效應(yīng)傳感器接口的卓越性能

    探索MAX9621:雙路2線霍爾效應(yīng)傳感器接口的卓越性能 在電子工程師的日常設(shè)計工作中,傳感器接口的選擇至關(guān)重要,它直接影響著整個系統(tǒng)的性能和穩(wěn)定性。今天,我們就來深入探討一款優(yōu)秀的
    的頭像 發(fā)表于 01-14 14:25 ?331次閱讀

    MAX9924–MAX9927:可變磁阻傳感器接口的卓越選擇

    MAX9924–MAX9927:可變磁阻傳感器接口的卓越選擇 在硬件設(shè)計開發(fā)領(lǐng)域,傳感器接口的性能對于整個系統(tǒng)的穩(wěn)定性和準(zhǔn)確性起著至關(guān)重要的作用。今天,我們來深入探討一下Maxim
    的頭像 發(fā)表于 01-14 14:25 ?378次閱讀

    MAX9921:雙路2線霍爾效應(yīng)傳感器接口的卓越之選

    MAX9921:雙路2線霍爾效應(yīng)傳感器接口的卓越之選 在電子工程師的日常設(shè)計工作中,傳感器接口的選擇至關(guān)重要,它直接影響著整個系統(tǒng)的性能和穩(wěn)定性。今天,我們就來深入探討一款備受關(guān)注的產(chǎn)
    的頭像 發(fā)表于 01-14 14:20 ?381次閱讀

    單電源傳感器接口放大器AD22057:特性、應(yīng)用與設(shè)計要點(diǎn)

    單電源傳感器接口放大器AD22057:特性、應(yīng)用與設(shè)計要點(diǎn) 在電子工程師的日常設(shè)計工作中,選擇合適的放大器至關(guān)重要。今天,我們就來深入探討一款單電源傳感器接口放大器——AD22057,
    的頭像 發(fā)表于 01-13 16:25 ?229次閱讀

    分享1-Wire接口數(shù)字溫度傳感器IC型號

    如今,隨著測溫應(yīng)用環(huán)境的升級和拓展,精準(zhǔn)的溫度測量與控制已成為各種環(huán)境數(shù)據(jù)采集的關(guān)鍵,傳統(tǒng)模擬溫度傳感器已經(jīng)無法滿足市場的要求,而1-Wire接口數(shù)字溫度傳感器IC的出現(xiàn),極大地簡化了系統(tǒng)設(shè)計。為此
    的頭像 發(fā)表于 12-02 16:34 ?1044次閱讀
    分享1-Wire<b class='flag-5'>接口</b>數(shù)字溫度<b class='flag-5'>傳感器</b>IC型號

    溫度傳感器一般走哪些協(xié)議和接口

    溫度傳感器常用的通信協(xié)議和接口可根據(jù)應(yīng)用場景(如工業(yè)控制、智能家居、物聯(lián)網(wǎng)等)和傳輸需求(距離、速度、功耗等)分為有線和無線兩大類,具體協(xié)議和接口的選擇需結(jié)合傳感器類型、系統(tǒng)架構(gòu)及成本
    的頭像 發(fā)表于 09-23 17:22 ?1805次閱讀

    傳感器有哪些類型?有哪些接口

    傳感器的類型和接口種類繁多,以下是一些常見的分類和接口方式: 傳感器類型 溫度傳感器:用于測量溫度,常見的有熱電偶、熱電阻、數(shù)字溫度
    的頭像 發(fā)表于 05-22 09:33 ?1.8w次閱讀

    可以通過 slavefifo 接口建立 FX3 和傳感器通信嗎?

    需要在CYUSB2014和AR0144c之間建立通信。 我們不采用 UVC 框架。 我們可以通過 slavefifo 接口建立 FX3 和傳感器通信嗎? 我已將“slfifosync”項(xiàng)目文件視為
    發(fā)表于 05-19 08:30
    高安市| 烟台市| 沙坪坝区| 江都市| 嘉善县| 舟曲县| 台北市| 邢台县| 威宁| 商丘市| 尼勒克县| 清镇市| 和平县| 和顺县| 红原县| 霞浦县| 比如县| 肥东县| 双流县| 宜兰市| 白山市| 东宁县| 新兴县| 雅安市| 施甸县| 城固县| 平顺县| 宁城县| 青田县| 霍州市| 龙游县| 桦南县| 新竹县| 内江市| 繁昌县| 玉溪市| 石台县| 通江县| 沿河| 蓝山县| 同江市|