<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

雅特力AT32 MCU HOGP開發指南

雅特力 AT32 MCU ? 2023-12-30 08:14 ? 次閱讀

HOGP概述

HOGP(HID over GATT)是由Bluetooth SIG維護的藍牙配置文件規范,通過低功耗藍牙實現HID的配置文件并作為與計算器之間的接口,消除HID中對電線或物理連接的需求。

HID角色

在HID中,以及在HOGP的延伸中,定義了兩個角色,這些角色是HID主機和HID設備。HID設備一次只能主動連接到單個HID主機;然而一個HID主機可以連接到多個HID設備。有關主機和設備如何交互的細節,請參閱HOGP規范中的第3章HID設備需求和第4章HID主機需求和行為。

一、HID主機

HID主機實現藍牙GAP中的中心(Central)角色,接收輸入訊息并使用提供的數據進行更進一步的處理。例如,計算器會是HID主機,因為這是接收HID數據的設備。HID主機對HID功能的正確執行有許多責任與需求,但在此開發指南中所提供的范例僅實現了HID設備,因此本文檔不涉及這些內容。想要了解HID主機的職責和需求,請參閱HOGP規范中的第2章配置、第4章HID主機需求和行為、第5章連線建立。

二、HID設備HID設備實現藍牙GAP中的外設(Peripheral)角色,負責將輸入信息傳輸到中央計算器。例如,鼠標或鍵盤會是HID設備,因為它們將輸入數據發送到計算器設備。

Bluetooth Profile

要透過藍牙實現HID功能,那就必須要事先定義好規范,如此主機及裝置雙方才能夠順利通信,由于本開發指南是針對裝置的部份進行說明,故此處只列出裝置所需的服務。

表1. HID裝置的必須服務

6ddc09f4-a6a8-11ee-9ee2-92fbcf53809c.png

這邊要注意到Device Information Service中的PnP特征,如果是開發一個標準的鍵盤或鼠標,請根據已經注冊的Vendor ID及Product ID填入其中。

例 HID裝置實做

HOGP 工程是一個在 AT32WB415 上實現 HOGP 規范的低功耗藍牙工程,該工程使用 HOGP 規范指定的藍牙外設角色,演示了 HOGP 的鍵盤及鼠標。通過使用通知(Notification)和 GATT 配置文件,該項目能夠通過低功耗藍牙 HID 裝置并與 HID 主機正確連接。HOGP 工程中有幾個復雜的部份,在本文檔中進行了討論,這些部份組合在一起以實現整體功能。

報告映射討論

HOGP工程依賴于報告映像,報告映射是HOGP用于實現低功耗藍牙HID功能的結構。報告映像用于告訴主機許要從HID設備獲得什么功能和什么樣的數據,在原始的HID USB規范中,報告映射稱為報告描述符,報告映射和報告描述符是相同的,它們之間唯一的區別是報告映射用于HOGP,報告描述符用于HID USB。該工程使用的報告映像可以在app_hid.c文件中找到,并且包含在gHIDReportDescriptor變量中,此工程中的報告映像包含鍵盤的輸入信息。該結構分為多個部份,應用程序以及HID主機能夠通過使用報告ID字段找到所需的部份??梢暂p松修改報告映像以包含不同的輸入或修改已經存在的輸入,USB實現者論壇的設備工作組有一個報告描述符建構器工具,可以用于輕松創建報告映射。下面的程序代碼顯示了報告映像結構片段,所有字段都有標簽,可以輕松修改。例如,如果需要不同數量的鍵盤按鍵,則可以輕松修改相關字段。

  • HID Report

6de573f4-a6a8-11ee-9ee2-92fbcf53809c.png

修改裝置類型

只有當開發者正確地填入裝置類型參數,主機端才能顯示出合適的裝置圖標,即便在廣播的時候能夠正確辨識出裝置的類型,但如果沒有修改GAP中的Appearance數值,聯機后的裝置圖標依然會顯示異常,以下特別列出在開發時容易疏忽的地方:1. 廣播時的Appearance,主機掃描到時就會將裝置類型顯示出來,比如說鍵盤或是鼠標,在代碼中位于user_config.h里面的宏定義APP_HID_ADV_DATA_APPEARANCE, 0x03C2代表鼠標, 0x03C1代表鍵盤,更詳細的內容可以參考SIG的Spec.圖1. Appearance Part of ADV Data6df72bf8-a6a8-11ee-9ee2-92fbcf53809c.png2.?聯機建立后,主機會來讀取裝置的GAP, 這個時候就會得到這個裝置是屬于哪一種類型,如果沒有正確填寫,在主機端的驅動安裝完成后,顯示的裝置類型會與預期的不同。這個部份的代碼位于app_task.c中的gapc_get_dev_info_req_ind_handler函式,代碼中已將鍵盤及鼠標的Appearance給定義起來,使用者可以依據需求擴充。圖2. GAP Client Gets Device Apperance6e066fd2-a6a8-11ee-9ee2-92fbcf53809c.png3.?在新增HID Profile時,填入當前的應用類型,這位于app_hid.c中的app_hid_add_hids函式,使用者可以根據當前需求填入鍵盤或是鼠標的宏定義,但要記得一定要有Protocol Mode才能正常使用。圖3. GAP Client Gets Device Apperance6e13c15a-a6a8-11ee-9ee2-92fbcf53809c.png

資源類型

1) 硬件環境:對應產品型號的AT-START BOARD2) 軟件環境wb415_hogp_bt_demo\projects\ble_app_remotewb415_hogp_mcu_demo\utilities\wb415_hogp_mcu_demo\mdk_v5

軟件設計

1) 配置流程a) MCU端

  • 配置USER KEY作為擊鍵
  • 編寫USART3通訊函數
  • 輪詢USER KEY是否按下
  • 根據需求去配置USER KEY按下后發出的AT command

b) BT端

  • 將HOGP的Profile加入database
  • 編寫應用層與GATT之間的界面
  • 在應用層中輪詢AT command
  • 透過HOGP將不同的key function發給host端

2) 代碼介紹a)MCU端

  • main函數代碼描述

6e2655a4-a6a8-11ee-9ee2-92fbcf53809c.pngb)?BT端
原則上不需要去修改Profile層的內容,由APP層去設定HID裝置的內容即可

  • 初始化HOGP裝置變量

6e425434-a6a8-11ee-9ee2-92fbcf53809c.png

  • 將HOGP加入database

6e56e700-a6a8-11ee-9ee2-92fbcf53809c.png在main函數之中的while loop不斷輪詢app_user_entry()來確認有無收到AT command,如果收到有收到AT command則執行該命令的內容。

  • 解析AT command并執行對應的程序

6e68b2a0-a6a8-11ee-9ee2-92fbcf53809c.png

實驗效果

  • 按下AT-START板上的USER KEY發送www back按鍵,則瀏覽器頁面返回上一頁
  • 按下AT-START板上的USER KEY發送volume up按鍵,則音量提高(需要修改ATcommand)
  • 按下AT-START板上的USER KEY發送volume down按鍵,則音量降低(需要修改AT command)

按鍵定義

本應用指南以多媒體按鍵為例,在代碼中定義了多媒體按鍵值的數組,用戶可以在app_key.c中找到以下代碼:

  • 多媒體按鍵值定義

6e823b9e-a6a8-11ee-9ee2-92fbcf53809c.png在app.c中的app_user_entry函數,每當添加一個新的按鍵實例,必須透過app_hid_send_report這個函數,將按鍵值及長度發送給主機端,主機才能根據按鍵值做出對應的行為;舉例來說,要發出降低音量的按鍵功能,從上面的注釋可以看到volume down對應到第九列,是整個數組的第18個數,因此調用發送函數時寫成app_hid_send_report(&key_copy[18], 2),其他按鍵也是如此使用。

HOGP相關AT command

本應用指南中,已經建立部分的AT command,如下表:表2. HOGP相關AT command

6e948c68-a6a8-11ee-9ee2-92fbcf53809c.png

用戶自行添加AT command時,需要在MCU端及BT端同時增加對應的實例;MCU端要在at_cmd.h中新增AT command的請求及期待的響應;BT端要在app.h中新增要解析的AT command字符串、command的枚舉以及回復的枚舉,數量上如果對不上的話則發出的按鍵功能可能會不正常。另外鼠目標AT command及位移都是填入Dummy Data, 使用者如果要反應真實的位移及實作按鍵、滾輪等功能,需要自己由傳感器讀取數據,并修改鼠標的AT command讓它可以攜帶真實參數,接收AT command的部份也要實做解析函數去取出AT command中的參數內容,并填入Notification之中。關于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創新趨勢的芯片設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發與創新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內核,締造M4業界最高主頻288MHz運算效能,并支持工業級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業縫紉機、伺服驅控、電競周邊市場、斷路器、ADAS、T-BOX、數字電源、電動工具等終端設備應用,廣泛地覆蓋5G、物聯網、消費、商務及工控等領域。

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

    關注

    146

    文章

    16130

    瀏覽量

    344819
  • 雅特力
    +關注

    關注

    0

    文章

    142

    瀏覽量

    7811
  • AT32
    +關注

    關注

    1

    文章

    103

    瀏覽量

    1873
收藏 人收藏

    評論

    相關推薦

    國產MCU做得越來越好了 在車用電子領域再度突破

    `在車用電子領域再度突破,AT32 MCU大量應用于ADAS環視系統隨著城市化進程的迅猛發展,人民生活水平的日益提高,城市機動車數量飛
    發表于 11-30 21:58

    AT32F407/407A系列MCU,可輕松替換STM32F107/207/407

    可以參考AT32F407A系列,依然可帶來CPU速度、SRAM與外設外圍上大幅度提升外,面對如此高價格的STM32F407,AT32F407A更是有巨大的價格優勢在。
    發表于 01-22 14:36

    Cortex-M4高性能AT32F413系列MCU,優勢替換STM32F103

    應用,電機控制,OBD應用>>32位MCU AT32與Sxx32/Gx32替換對照表( 參照
    發表于 01-22 14:40

    FAQ0093 AT32更換外部晶振后BSP修改方法

    AT32_New_Clock_Configuration 工具的使用以及 AT32 時鐘配置流程、代碼解析等詳細介紹,請參考各型號的 AN,下表所列 AN 均可從官網獲取。 類
    發表于 02-19 21:23

    MCU開發指南

    錦銳MCU開發指南:CA51F3系列一、錦銳MCU簡介二、CA51F3系列簡介三、CA51F351P6資源四、技術資料下載開發環境搭建一、錦銳MCU
    發表于 11-04 08:47

    FAQ0090 AT32F4xx系列獨立PWM輸出數量

    FAQ0090 AT32F4xx系列獨立PWM輸出數量Questions: AT32F4xx 系列不同封裝型號可以輸出最多獨立 PWM 數量Answer:AT32F4 系列不同封裝型號可以輸出
    發表于 05-11 19:44

    AT32 HOGP開發指南

    AT32 HOGP開發指南前言人機接口設備(Human Interface Devices, HID)的主要目的是基于USB實現者論壇所維護的規格書,提供用戶與計算器之間的接口。HID涵蓋了顯示器
    發表于 08-26 19:29

    AT32 MCU QSPI應用說明

    AT32 MCU QSPI Application Note主要介紹以下幾部分內容:1. 基于提供的V2.x.x 的BSP 板級支持包
    發表于 10-25 06:18

    AT32 MCU CAN入門指南

    AT32 MCU CAN入門指南本文介紹了CAN 標準協議,AT32 CAN 的使用流程以及基于AT32 的幾個CAN 使用例程。
    發表于 10-25 06:01

    AT32 MCU SDIO入門指南

    AT32 MCU SDIO入門指南本應用入門指南主要介紹以下幾部分內容:1.基于
    發表于 10-25 08:08

    AT32 MCU XMC入門指南

    AT32 MCU XMC入門指南本文介紹了XMC 外設功能,以及上述幾種存儲器和LCD 的驅動方式和相關代碼。
    發表于 10-25 08:08

    AT32 MCU ACC使用指南

    AT32 MCU ACC使用指南AT32 MCU 擁有HICK 自動時鐘校準器,其作用是當系統內部使用HICK 作為時鐘源時,若外界環境改變
    發表于 10-25 07:24

    AT32 HOGP開發指南

    AT32 HOGP開發指南人機接口設備(Human Interface Devices, HID)的主要目的是基于USB實現者論壇所維護的規格書,提供用戶與計算器之間的接口。
    發表于 10-26 06:18

    AT32 MCU SDIO入門指南

    電子發燒友網站提供《AT32 MCU SDIO入門指南.pdf》資料免費下載
    發表于 09-19 16:18 ?1次下載
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> SDIO入門<b class='flag-5'>指南</b>

    AT32 MCU CAN入門指南下載

    電子發燒友網站提供《AT32 MCU CAN入門指南下載.pdf》資料免費下載
    發表于 09-19 15:53 ?3次下載
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> CAN入門<b class='flag-5'>指南</b>下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>