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

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

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

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

IO序列化操作:提升系統(tǒng)互操作性的關鍵技術

青山老竹農(nóng) ? 來源:jf_82863998 ? 作者:jf_82863998 ? 2026-02-25 16:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在異構系統(tǒng)并存的今天,IO序列化操作成為實現(xiàn)系統(tǒng)間互操作性的核心技術。通過標準化的數(shù)據(jù)格式(如JSON、Protobuf、Hessian等),不同語言、平臺的系統(tǒng)得以無縫交換信息。合理設計序列化策略,可大幅提升系統(tǒng)的集成能力與擴展性。

一、概述

ioqueue 模塊提供了 IO 序列操作的功能,可以通過硬件定時器精確控制 GPIO 的操作時序。

注意事項:

對于 Air700EXX 系列、Air780EXX 系列、Air8000 系列模組,硬件定時器有如下要求:

硬件定時器 id:0-5,六個硬件定時器,

定時器精度:20 微秒,為硬件支持的最小時間單位。

3 和 5 固定被底層占用不可使用

pwm 功能依賴硬件定時器,ioqueue 不可與 pwm 功能同時使用

pwm0 對應 0

pwm4 對應 4

以此類推

注意:Air6101/Air8101 不支持此功能

1.1 使用場景

ioqueue 主要是輸出一些特殊的電平序列,捕獲自定義協(xié)議。

如果有以下需要就可以使用該庫:

精確控制多個 GPIO 的開關時序

循環(huán)執(zhí)行固定的 GPIO 操作序列

捕獲 GPIO 邊沿變化的精確時間戳

模擬非標準通信協(xié)議

1.1.1 輸入捕獲場景(以 DHT11 數(shù)據(jù)讀取為例)

單總線協(xié)議要求嚴格的時序控制、主機需要先發(fā)送特定啟動信號、傳感器響應時間精確到微秒級、數(shù)據(jù)通過脈沖寬度編碼

使用流程:

wKgZPGmdh0yAFKFhAAE68rZIxqQ333.png

下面演示使用硬件定時器精確控制 DHT11 通信時序,通過捕獲下降沿時間戳解碼溫濕度數(shù)據(jù),實現(xiàn)微秒級精確通信:

dht11 通訊協(xié)議介紹:

數(shù)據(jù)分為小數(shù)部分和整數(shù)部分,一次完整的數(shù)據(jù)傳輸為 40bit,高位先出

數(shù)據(jù)格式:8bit 濕度整數(shù)數(shù)據(jù) +8bit 濕度小數(shù)數(shù)據(jù) +8bit 溫度整數(shù)數(shù)據(jù) +8bit 溫度小數(shù)數(shù)據(jù) +8bit 校驗

8bit 校驗 = 8bit 濕度整數(shù)數(shù)據(jù) +8bit 濕度小數(shù)數(shù)據(jù) +8bit 溫度整數(shù)數(shù)據(jù) +8bit 溫度小數(shù)數(shù)據(jù)

校驗可以判斷數(shù)據(jù)是否正確發(fā)送

DHT11 工作時序:

主機發(fā)送起始信號以后,DHT11 發(fā)送響應信號,然后發(fā)送 40bit 的數(shù)據(jù),高位在前

總時序圖如下:

wKgZPGmdh5KAJXzDAAH9gg6zCYY212.png

起始信號:總線空閑狀態(tài)由 DHT11 內(nèi)置上拉電阻拉高,主機拉低總線至少 18ms釋放總線 20-40us

DHT11 響應:存在的 DHT11 會及時響應主機,同時拉低總線 80us 后,釋放總線 80us,然后拉低總線,表示開始傳送數(shù)據(jù)

wKgZPGmdh_6AMhzsAAIgx_fZ7aw067.png

發(fā)送數(shù)據(jù):當總線是低電平是表示開始發(fā)送數(shù)據(jù),同時存在 50us 低電平時隙,之后拉高總線,高電平的持續(xù)時間表示發(fā)送 0 或者 1,當高電平持續(xù)時間為 26us-28us 表示發(fā)送 0,高電平持續(xù)時間為 70us 時,表示發(fā)送 1

數(shù)據(jù)發(fā)送完畢,由上拉電阻拉高,置回空閑高電平狀態(tài)

wKgZO2mdiCOAc5QPAAZHD43t0do013.pngwKgZPGmdiEuAaXClABD-Rjn8z_0963.png

具體波形如下:

wKgZO2mdiHGAQtHSAAGuwaFZ4eg935.pngwKgZPGmdiIuAVu1KAAHMskpm_qY479.pngwKgZO2mdiJiAUZ6zAASOrpCsZ7o967.pngwKgZO2mdiKOAMMVnAAH28PQ01eA791.png

1.1.2 輸出精確脈沖場景

需要不同的脈沖寬度、軟件循環(huán)無法滿足精度要求、需要連續(xù)輸出大量脈沖

使用流程:

wKgZPGmdiQCAH8OlAAFniBE1aRw531.png

下面演示利用硬件定時器生成固定頻率或可變寬度的精確脈沖序列,支持連續(xù)和單次延時模式,實現(xiàn)微秒級脈沖控制:

固定間隔脈沖

wKgZPGmemT2AMW75AAOLw23kFFo801.pngwKgZO2memY6AEkKkAAFaiAOdo5s964.png

可變寬度脈沖序列

wKgZPGmembaALzlKAAQ__GUmg34855.pngwKgZO2memdCAQslUAAFlmcSnPmQ991.png

二、核心示例

示例可參考 1.1.1 章節(jié)具體使用分析。

三、常量詳解

核心庫常量,顧名思義是由 LuatOS 內(nèi)核固件中定義的、不可重新賦值或修改的固定值,在腳本代碼中不需要聲明,可直接調用;

ioqueue 模塊沒有常量。

四、函數(shù)詳解

ioqueue.init(hwtimer_id, cmd_cnt, repeat_cnt)

功能

初始化一個 io 操作隊列。

參數(shù)

hwtimer_id

wKgZO2memjmAJK9XAAHNyxwotE8289.png

cmd_cnt

wKgZO2memlSABz_cAAF_rvEtOOU628.png

repeat_cnt

wKgZPGmemm-AdiDqAAC5ufrwFt0221.png

返回值

無返回值。

示例

wKgZPGmemqCAFt7DAABqjbrEqF4938.png

ioqueue.setdelay(hwtimer_id, time_us, time_tick, continue)

功能

對 io 操作隊列增加延時命令。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

time_us

wKgZPGmemuSASAxUAACp4yrjSE4279.png

time_tick

wKgZO2memv-AVOTXAAFvyJr2bz4172.png

continue

wKgZO2memxqAWSu1AAH5X8fIgkE877.png

返回值

無返回值。

示例

wKgZPGmemz6AcwZVAAF_3_kKyRw268.png

ioqueue.delay(hwtimer_id)

功能

對 io 操作隊列增加一次重復延時,在前面必須有 setdelay 并且是連續(xù)延時。

注意事項

必須在前面的 ioqueue.setdelay 設置 continue=true

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

返回值

無返回值。

示例

wKgZPGmem8iAI3XmAADjqFeLTKw641.png

ioqueue.setgpio(hwtimer_id, pin, is_input, pull_mode, init_level)

功能

對 io 操作隊列增加設置 gpio 命令。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

pin

wKgZPGmenC6AdPnjAACuxCrszac672.png

is_input

wKgZO2menEyABCP8AADBOmfzreI096.png

pull_mode

wKgZO2menMmADbh_AADyHqc2sng900.png

init_level

wKgZPGmenNmAMSRSAAC2viheLww748.png

返回值

無返回值。

示例

wKgZPGmenPyAOs-GAACkiFwWTeg249.png

ioqueue.input(hwtimer_id, pin)

功能

對 io 操作隊列增加讀取 gpio 命令。

應用場景:在精確時序點讀取 GPIO 電平狀態(tài)

使用時必須先調用 ioqueue.setgpio 設置輸入模式,然后通過 ioqueue.get()讀取輸入數(shù)據(jù)

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

pin

wKgZPGmenXSAfAv4AADISK908Rg340.png

返回值

無返回值。讀取的數(shù)據(jù)需要通過 ioqueue.get 獲取。

示例

wKgZPGmenYuAQ5VSAAZFgXvXhAo414.png

ioqueue.output(hwtimer_id, pin, level)

功能

對 io 操作隊列增加輸出 GPIO 命令。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

pin

wKgZO2menkyAO6pOAADJrhwh-5A841.png

level

wKgZPGmenmKAZHXlAACcIWe6s1Y291.png

返回值

無返回值。

示例

wKgZO2mennOAWISPAABEQngRiNo568.png


ioqueue.set_cap(hwtimer_id, pin, pull_mode, irq_mode, max_tick)

功能

對 io 操作隊列增加設置捕獲某個 IO 命令。

捕獲的配置命令

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

pin

wKgZPGmenC6AdPnjAACuxCrszac672.png

pull_mode

wKgZO2menqOAMVA0AADGhc1XZ0k696.png

irq_mode

wKgZPGmenrOAYRbvAADwzkMfTSM420.png

max_tick

wKgZPGmensKAfxNLAAHlQgVWB04466.png

返回值

無返回值。

示例

wKgZO2mentSAT7y2AAIVhZKSgPQ973.png

ioqueue.capture(hwtimer_id)

功能

對 io 操作隊列增加捕獲一次 IO 狀態(tài)命令。

捕獲的執(zhí)行命令,必須先經(jīng)過 ioqueue.set_cap 配置后才能使用 ioqueue.capture 來捕獲,一個 set_cap 配置可以被多個 capture 命令復用

參數(shù)

hwtimer_id

wKgZO2menz-ARfYoAADcnUdsbg4622.png

返回值

無返回值。捕獲的數(shù)據(jù)需要通過 ioqueue.get 獲取。

示例

wKgZPGmen0-ANKpJAAAmvyWFqOg648.png


ioqueue.cap_done(hwtimer_id, pin)

功能

對 io 操作隊列結束捕獲某個 IO 命令。

使用場景:

1.捕獲任務完成時 :主動結束,告訴系統(tǒng)數(shù)據(jù)讀取完成,停止 gpio 捕獲

2.切換捕獲目標時:比如從捕獲 gpio1 切換到捕獲 gpio2,需要先結束捕獲 gpio1。

3.錯誤處理或者提前退出時調用。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

pin

wKgZPGmenC6AdPnjAACuxCrszac672.png

返回值

無返回值。

示例

wKgZPGmen4SAdlZ8AAA7A-yGSlM447.png

ioqueue.get(hwtimer_id, input_buff, capture_buff)

功能

獲取 io 操作隊列中輸入和捕獲的數(shù)據(jù)。

注意事項

input,set_cap,capture 這三個配置接口配置的功能,緩存到的輸入數(shù)據(jù)和捕獲數(shù)據(jù),都是通過 get 接口來讀取出來

input_buff ← 存儲 ioqueue.input() 的即時電平采樣結果

capture_buff ← 存儲 ioqueue.capture() 的邊沿事件 + 時間戳

input_cnt = 成功的 ioqueue.input() 操作數(shù)量

capture_cnt = 成功的 ioqueue.icapture() 操作數(shù)量(可能因超時而小于計劃數(shù))

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

input_buff

wKgZO2meoLyAYHDnAAEFs_4x3KE233.png

capture_buff

wKgZO2meoMyAZMi0AAEJElU_tBg594.png

返回值

local input_cnt, capture_cnt = ioqueue.get(hwtimer_id, input_buff, capture_buff)

input_cnt

wKgZO2meoOKAGaN5AABzNIC6xDM624.png

capture_cnt

wKgZPGmeoPKAP9wYAABzvILJ0Vo416.png

示例

wKgZPGmeoQSAHpVzAABLNegMC8w442.png

ioqueue.start(hwtimer_id)

功能

啟動 io 操作隊列。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

返回值

無返回值。

示例

wKgZPGmeoW2APevgAAAl7U8ahuo615.png


ioqueue.stop(hwtimer_id)

功能

停止 io 操作隊列,可以通過 start 從頭開始。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

返回值

local loop_cnt, cmd_cnt = ioqueue.stop(hwtimer_id)

loop_cnt

wKgZO2meoY-AI-WgAACCMsnAiHU370.png

cmd_cnt

wKgZPGmeoaCAWp1kAADJEUZgAtc651.png

示例

wKgZPGmeobWACAncAAB0I2JYXu4534.png

ioqueue.release(hwtimer_id)

功能

釋放 io 操作隊列的資源,下次使用必須重新 init。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

返回值

無返回值。

示例

wKgZPGmeoo6AGn-RAAAl3phtFgE927.png


ioqueue.clear(hwtimer_id)

功能

清空 io 操作隊列。

此接口重置了命令隊列但保留了硬件定時器資源,可以直接添加新的命令。前提是你確信之前隊列的狀態(tài)完全被清空,且新的命令序列與之前的結構兼容。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

返回值

無返回值。

示例

wKgZPGmeoraAMPv4AAAlj7Myy1Y955.png


ioqueue.done(hwtimer_id)

功能

檢測 io 操作隊列是否已經(jīng)執(zhí)行完成。

參數(shù)

hwtimer_id

wKgZPGmemseAB4xVAAC3guTmCC0380.png

返回值

local is_done = ioqueue.done(hwtimer_id)

is_done

wKgZPGmeot-AQ5FoAABs4C4zxps860.png

示例

wKgZPGmeou2AXmEBAACa1FRgBfQ671.png

ioqueue.exti(pin, pull_mode, irq_mode, onoff)

功能

啟動/停止一個帶系統(tǒng) tick 返回的外部中斷。

ioqueue.exti 是一個獨立的外部中斷接口,與 ioqueue 隊列系統(tǒng)完全分離,提供簡單的 GPIO 邊沿事件捕獲功能。

使用場景:簡單的按鍵檢測、傳感器狀態(tài)監(jiān)控、旋轉編碼器計數(shù)

參數(shù)

pin

wKgZPGmenC6AdPnjAACuxCrszac672.png

pull_mode

wKgZO2mepY2AF1p9AADEvpwMe9I475.png

irq_mode

wKgZO2mepZyAchscAADvAwqzrHY186.png

onoff

wKgZO2mepayAeZbeAACrMWOHUB4938.png

返回值

無返回值。

示例

wKgZPGmepb-ALWiYAAGfZJHHmdI870.png

五、模組支持說明

僅支持 Air700EXX 系列、Air780EXX 系列、Air8000 系列模組,Air6101/Air8101 不支持此功能。


今天的內(nèi)容就分享到這里了~

審核編輯 黃宇

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

    關注

    0

    文章

    511

    瀏覽量

    42932
  • 硬件
    +關注

    關注

    13

    文章

    3638

    瀏覽量

    69177
  • 定時器
    +關注

    關注

    23

    文章

    3375

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    吉事勵引領電動汽車充電操作性與兼容測試新風向

    在電動汽車行業(yè)蓬勃發(fā)展的進程中,充電樁的操作性與兼容已成為決定行業(yè)能否持續(xù)穩(wěn)健前行的核心要素。這不僅關系到用戶充電體驗的優(yōu)劣,更影響著整個產(chǎn)業(yè)生態(tài)的健康發(fā)展。
    的頭像 發(fā)表于 03-30 15:27 ?634次閱讀
    吉事勵引領電動汽車充電<b class='flag-5'>互</b><b class='flag-5'>操作性</b>與兼容<b class='flag-5'>性</b>測試新風向

    是德科技攜手愛立信賦能Pre-6G操作性驗證

    是德科技(NYSE: KEYS )近日宣布,與愛立信攜手合作,使用是德科技的WaveJudge無線分析儀解決方案,對愛立信Pre-6G基站(gNB)與Pre-6G原型設備間的操作性進行故障排查
    的頭像 發(fā)表于 03-03 16:10 ?594次閱讀

    通過恩智浦RW612三頻無線MCU提升多協(xié)議操作性

    無線連接是現(xiàn)代智能家居和工業(yè)系統(tǒng)的基石,推動著無數(shù)更智能、更自主設備的普及。恩智浦非常重視無線操作性,確保生態(tài)合作體系中的每臺設備能夠無縫協(xié)同工作的關鍵能力。
    的頭像 發(fā)表于 03-03 11:47 ?1392次閱讀

    JSON:簡潔代碼高效搞定序列化與反序列化

    面對頻繁的數(shù)據(jù)交互需求,用最簡方式實現(xiàn)JSON序列化與反序列化已成為開發(fā)者必備技能,借助主流庫,輕松實現(xiàn)零負擔數(shù)據(jù)轉換。JSON(JavaScriptObjectNotation)是一種輕量級
    的頭像 發(fā)表于 02-25 19:04 ?264次閱讀
    JSON:簡潔代碼高效搞定<b class='flag-5'>序列化</b>與反<b class='flag-5'>序列化</b>

    【ioqueue】 IO序列化操作全解析

    從內(nèi)存對象到可存儲或可傳輸?shù)淖止?jié)流,IO序列化操作完成了數(shù)據(jù)形態(tài)的轉化。這一過程不僅涉及編碼與解碼邏輯,還需處理版本兼容、安全與性能開銷等問題。全面掌握這一
    的頭像 發(fā)表于 02-24 19:22 ?241次閱讀
    【ioqueue】 <b class='flag-5'>IO</b><b class='flag-5'>序列化</b><b class='flag-5'>操作</b>全解析

    極簡代碼,搞定JSON序列化與反序列化

    快速實現(xiàn)JSON數(shù)據(jù)的生成(序列化)與解析(反序列化)。 目前json庫已全面支持LuatOS開發(fā)系列產(chǎn)品,開發(fā)者可根據(jù)項目實際需求,靈活選用并進行快速集成與開發(fā)。 一、 JSON基礎要點 在
    的頭像 發(fā)表于 02-23 21:46 ?459次閱讀
    極簡代碼,搞定JSON<b class='flag-5'>序列化</b>與反<b class='flag-5'>序列化</b>

    深入剖析LMH0030:SMPTE標準數(shù)字視頻序列化器的卓越之選

    深入剖析LMH0030:SMPTE標準數(shù)字視頻序列化器的卓越之選 在當今數(shù)字的時代,數(shù)字視頻處理技術日新月異。對于電子工程師而言,選擇一款性能卓越、功能豐富的數(shù)字視頻序列化器至關重要
    的頭像 發(fā)表于 12-30 14:00 ?439次閱讀

    SN65HVS885:工業(yè)自動的理想數(shù)字輸入序列化

    SN65HVS885:工業(yè)自動的理想數(shù)字輸入序列化器 在工業(yè)和建筑自動領域,對于高通道密度數(shù)字輸入模塊的需求日益增長。德州儀器(TI)的SN65HVS885作為一款八通道數(shù)字輸入序列化
    的頭像 發(fā)表于 12-25 11:00 ?597次閱讀

    Wi-Fi幾乎滲透到所有需要無線連接的場景中,是構建本地無線網(wǎng)絡的首選技術。

    。 4. 技術持續(xù)演進 從802.11a/b/g到Wi-Fi 6(802.11ax)及未來的Wi-Fi 7,性能、效率與安全不斷提升。 三、關鍵技術詞解析 IEEE 802.11:
    發(fā)表于 12-08 17:23

    基于CW32 MCU的I2C接口優(yōu)化穩(wěn)定讀寫EEPROM關鍵技術

    問題,實現(xiàn)多個EEPROM設備的穩(wěn)定讀寫操作。 通過這些優(yōu)化技術,能夠有效提升CW32 MCU在I2C通信中的穩(wěn)定性和可靠,確保在復雜環(huán)境下的數(shù)據(jù)傳輸安全和穩(wěn)定。
    發(fā)表于 12-03 07:29

    5G網(wǎng)絡通信有哪些技術痛點?

    地形復雜的區(qū)域,信號穿透能力差,導致信號質量不穩(wěn)定。 高頻段通信與設備兼容:5G使用的高頻段使得設備間的兼容性問題更加突出,不同廠商之間的技術標準差異可能導致設備操作性差。
    發(fā)表于 12-02 06:05

    是德科技與HEAD acoustics成功完成新一代eCall系統(tǒng)操作性測試

    是德科技(NYSE: KEYS )近日宣布,其基于UXM的新一代eCall(NG eCall)解決方案,已成功與全球汽車聲學測試領導者HEAD acoustics GmbH完成操作性測試。
    的頭像 發(fā)表于 11-18 11:29 ?778次閱讀

    Microchip與AVIVA Links實現(xiàn)ASA-ML操作性驗證

    汽車行業(yè)正加速從專有串行器/解串器(SerDes)解決方案向汽車串行器/解串器聯(lián)盟(Automotive SerDes Alliance)及其首個開放標準——ASA Motion Link(ASA-ML)構建的可操作系統(tǒng)生態(tài)過渡。
    的頭像 發(fā)表于 10-23 17:13 ?1465次閱讀

    解讀新發(fā)布的 Matter 1.4:推動智能家居設備操作性關鍵升級

    著Matter 1.4的發(fā)布,智能家居和物聯(lián)網(wǎng)(IoT)行業(yè)迎來了新的里程碑。Matter作為全球統(tǒng)一的智能家居互聯(lián)協(xié)議,在操作性、安全和能效優(yōu)化等方面取得了重大突破。本文將從Matter
    的頭像 發(fā)表于 05-16 17:38 ?1153次閱讀

    快手上線鴻蒙應用高性能解決方案:數(shù)據(jù)反序列化性能提升90%

    普通對象(如 JSON 數(shù)據(jù))與類實例進行互轉,是實現(xiàn)面向對象編程與數(shù)據(jù)序列化解耦的核心工具。隨著業(yè)務復雜度的提升,該庫在反序列化過程中逐漸暴露出性能瓶頸,影響用戶核心體驗。因此
    發(fā)表于 05-15 10:01
    白朗县| 和硕县| 太谷县| 土默特右旗| 峨山| 莱西市| 承德县| 石景山区| 营口市| 石泉县| 阆中市| 抚宁县| 安宁市| 灵璧县| 鄢陵县| 涿鹿县| 嘉荫县| 甘肃省| 焉耆| 二连浩特市| 辽宁省| 江川县| 河东区| 墨竹工卡县| 和林格尔县| 汉川市| 朝阳县| 晋宁县| 九江县| 阿拉善左旗| 方山县| 大新县| 马公市| 平湖市| 扶风县| 红原县| 临夏县| 永丰县| 诸暨市| 永川市| 太仆寺旗|