首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 消费类电子 > bluez协议栈架构经典解析

bluez协议栈架构经典解析

资料介绍
bluez协议栈架构解析
Bluez体系架构:
[pic]
[pic]
HCI层:
HCI指令分组:
在hci_send_cmd()函数中调用hci_sched_cmd()来激活tasklet_schedule(&hdev
->cmd_task);。hci_send_cmd()用于将传入数据,OGF,OCF、长度以及参数指针构成一
个sk_buff结构形式打包。随后skb_queue_tail()函数将这个指令包添加到蓝牙设备的
hci_dev结构的指令队列尾部。struct
hci_dev定义在include/net/bluetooth/hci_core.h中,该结构中定义了数据成员和ope
n、close、flush、send等函数指针,它们由蓝牙驱动提供。
在HCI模块被初始化时,调用hci_register_dev()中的tasklet_init()将此tasklet分
配到设备。另外hdev-
>rx_task可以通过中断调用hci_recv_frame()(在hci_core.h中),进一步调用hci_sc
hed_rx()来激活。hdev-
>tx_task可以通过hci_send_acl()或hci_send_sco()然后调用hci_sched_tx()来激活

回过头来,再看hci_send_cmd(),当tasklet hdev-
>cmd_task运行时,调用hci_cmd_task(),然后进一步调用hci_send_frame()。这是HCI
核心的传输函数,可以传输所有类型的HCI数据。


事件分组:
事件分组的处理需要上面提到的hdev-
>rx_task,在对应的处理函数hci_rx_task()中,需要根据
标签:bluez协议栈架构解
bluez协议栈架构经典解析
本地下载

评论