Bluetooth Core Architecture Blocks----蓝牙核心架构

参考:
Core System Architecture

SIG标准


如今蓝牙由蓝牙技术联盟(Bluetooth Special Interest Group,简称SIG)管理。蓝牙技术联盟在全球拥有超过25,000家成员公司,它们分布在电信、计算机、网络、和消费电子等多重领域。IEEE将蓝牙技术列为IEEE 802.15.1,但如今已不再维持该标准。蓝牙技术联盟负责监督蓝牙规范的开发,管理认证项目,并维护商标权益。制造商的设备必须符合蓝牙技术联盟的标准才能以“蓝牙设备”的名义进入市场。蓝牙技术拥有一套专利网络,可发放给符合标准的设备。
蓝牙协议规范遵循开放系统互连参考模型(OSI/RM),从低到高地定义了蓝牙协议堆栈的各个层次。
SIG所定义的蓝牙技术规范的目的是使符合该规范的各种应用之间能够实现互操作。互操作的远端设备需要使用相同的协议栈,不同的应用需要不同的协议栈。但是,所有的应用都要使用蓝牙技术规范中的数据链路层和物理层。

蓝牙协议


蓝牙协议栈体系结构


  蓝牙技术规范的目的是使符合该规范的各种应用之间能够实现互操作.互操作的远端设备需要使用相同的协议栈,不同的应用需要不同的协议栈.并不是任何应用都必须使用全部协议,而是可以只使用其中的一层或多层.但是,所有的应用都要使用蓝牙技术规范中的数据链路层和物理层.
  
  设计蓝牙协议栈的主要原则是尽可能地利用现有的各种高层协议,保证现有协议与蓝牙技术的融合以及各种应用之间的互通性以及充分利用兼容蓝牙技术规范的软硬件系统.蓝牙技术规范的的开放性保证了设备制造商可自由地选用其专利协议或常用的公共协议,在蓝牙技术规范基础上开发新的应用.
  
  蓝牙技术规范(specification)包括核心协议(protocol)应用规范(profile)两个部分。

  核心协议包含蓝牙协议栈中最低的4个Layer,和一个基本的服务协议SDP(Service Discover Protocol),以及所有应用profile的基础Profile GAP(General Acess Profile)。核心协议是蓝牙协议栈中必不可少的。

  除了核心协议外,蓝牙规范必须包含一些其他的应用层的服务和协议–应用层profile。

蓝牙协议栈通常有如下内容:
这里写图片描述
这里写图片描述
我从网上找到了协议架构的中文图示
这里写图片描述

按照各层协议在整个蓝牙协议体系中所处的位置,蓝牙协议可分为底层协议(底层硬件模块)、中间层协议和高层协议三大类.

底层硬件部分包括无线跳频(RF)、基带(BB)和链路管理(LM)。
RF层 通过2.4GHz无需授权的ISM频段的微波,实现数据位流的过滤和传输,本层协议主要定 义了蓝牙收发器在此频带正常工作所需要满足的条件。

基带负责跳频以及蓝牙数据和信息帧的传输。

链路管理负责连接、建立和拆除链路并进行安全控制。 LM (Link Manager) 层是蓝牙协议栈的链路管理层协议, 他负责将上层HCI 命令翻译成基 带能接受的操作, 建立ACL (数据) 和SCO (语音) 链接, 以及使蓝牙设备进入节能状态的工 作模式等。 LC (Link Control) 层负责在一批数据包传送期间, 响应上层LM 命令(如执行建立数据包的 传输链路, 维持链路等功能的LM 命令)。 HCI 位于蓝牙系统的L2CAP(逻辑链路控制与适配协议)层和LMP(链路管理协议)层之间 的一层协议。HCI为上层协议提供了进入LM的统一接口和进入基带的统一方式。 蓝牙的SIG规定了四种与硬件连接的物理总线方式:USB、RS232、UART和PC卡

蓝牙底层协议


  蓝牙底层协议实现蓝牙信息数据流的传输链路,是蓝牙协议体系的基础,它包括射频协议(无线跳频RF)、基带协议(BB)和链路管理协议(LM).
  

射频协议(Radio Frequency Protoc)


  信道安排上,系统采用跳频扩频技术,抗干扰能力强、保密性好.蓝牙SIG制定了两套跳频方案,其一是分配79个跳频信道,每个频道的带宽为1MHz,其二是23信道的分配方案,1.2版本以后的蓝牙规范目前已经不再推荐使用第二套方案.
  

基带协议(Base Band Protoc)


  基带层在蓝牙协议栈中位于蓝牙射频层之上,同射频层一起构成了蓝牙的物理层.
  


  链路管理协议(LMP)是在蓝牙协议栈中的一个数据链路层协议.LMP执行链路设置、认证、链路配置和其它协议:链路管理器发现其它远程链路管理器(LM)并与它们通过链路管理协议(LMP)进行通信.

  两种链路类型: 面向连接的同步链路(SCO)面向无连接的异步链路(ACL)

蓝牙中间层协议


  蓝牙中间层协议完成数据帧的分解与重组、服务质量控制、组提取等功能,为上层应用提供服务,并提供与底层协议的接口,此部分包括主机控制器接口协议、逻辑链路控制与适配协议、串口仿真协议、电话控制协议和服务发现协议.

主机控制器接口协议(Host Controller Interface Protocol,HCI)


  蓝牙HCI是位于蓝牙系统的逻辑链路控制与适配协议层和链路管理协议层之间的一层协议.HCI为上层协议提供了进入链路管理器的统一接口和进入基带的统一方式.在HCI的主机和HCI主机控制器之间会存在若干传输层,这些传输层是透明的,只需完成传输数据的任务,不必清楚数据的具体格式.蓝牙的SIG规定了四种与硬件连接的物理总线方式,即四种HCI传输层:USB、RS232、UART和PC卡
  
  主机控制接口(HCI)为主机提供了直接控制蓝牙模块的方法和途径。通过HCI把蓝牙模块 和主机连接在一起。HCI模块由HCI事件管理、HCI命令管理、HCI ACL/SCO数据传输、HCI传 输层API、向上层输出的API模块组成。HCI Firmware通过访问基带命令、链路管理器命令、 硬件状态寄存器、控制寄存器、事件寄存器实现对蓝牙硬件的HCI命令
  
  HCI协议提供了统一访问蓝牙控制器的能力。 主机控制器以HCI命令的形式提供了访问蓝牙硬 件的基带控制器、链路管理器、硬件状态寄存 器、控制寄存器以及事件寄存器的能力,所有 这些功能都要通过内置于蓝牙硬件内部的HCI Firmware来实现。主机通过HCI接口向主机控制 器内的HCI Firmware发送HCI命令,HCI Firmware 再通过基带命令、链路管理器命令、硬件状寄 存器、控制寄存器以及事件寄存器完成该HCI命 令,从而实现对蓝牙硬件的控制。
主机 其他高层协议 HCI驱动 物理总线(串口,USB等)驱动


  逻辑链路控制与适配层协议(L2CAP)是蓝牙系统中的核心协议,它是基带的高层协议,可以认为它与链路管理协议(LMP)并行工作.L2CAP为高层提供数据服务,允许高层和应用层协议收发大小为64 KB的L2CAP数据包.L2CAP只支持基带面向无连接的异步传输(ACE),不支持面向连接的同步传输(sco).L2CAP采用了多路技术、分割和重组技术、组提取技术,主要提供协议复用、分段和重组、认证服务质量、组管理等功能.
  L2CAP协议是一个为高层协议屏蔽基带协议的适配协议,位于基带协议之上,属于数据链路层,为高层提供面 向连接和面向无连接的数据服务,完成协议复用、分段和重组、服务质IQoS(Quality Of Service)传输以及组抽象 等功能: (1)协议复用:多个高层协议共享一个公共的物理连接,从逻辑上看每个协议都有自己独立的数据通道,但由于 基带协议不能识别任何高层协议,所以L2CAP必须支持上层协议复用,它能区分诸如服务发现协议、RFCOMM协 议、电话控制协议等高层协议。
  分段与重组:与有线的物理媒质相比,蓝牙基带协议数据包的大小是有限的。最大的基带包只能传输341字节 的信息,这就限制了高层协议带宽的有效使用,因此较大的L2CAP包必须分解成小的基带包来发送。同样,在接 收方,必须将多个基带包重组为一个完整的L2CAP数据包。
  服务质量:在L2CAP建立连接的过程中允许改变两台蓝牙设备间的服务质量,每个L2CAP实体必须监视协议使 用的资源并保证服务质量的实现。
  组管理:蓝牙的基带协议支持微微网,即一组设备使用同一时钟同步跳频,L2CAP协议的组提取功能可以有 效地将协议的组映射为基带的微微网,以避免高层协议为了有效的管理组而必须与基带协议以及链路管理器直 接联系。

串口仿真协议(RFCOMM)


  串口仿真协议在蓝牙协议栈中位于L2CAP协议层和应用层协议层之间,基于ETSI标准TS 07.10,在L2CAP协议层之上实现了仿真9针RS232串口的功能,可实现设备间的串行通信,从而对现有使用串行线接口的应用提供了支持.

  RFCOMM提供对RS-232串口的仿真,包括对数据信号线和非数据信号线的仿真。它既可以仿真 两个设备之间的多个串口,也可以支持多个设备之问的多串口仿真,同时RFCOMM中还提供 了对空调制解调器的仿真。 1.RFCOMM对九针RS-232串口的仿真 RFCOMM提供了对九针RS-232串口的仿真,包括数据信号线和非数据信号线。 2.多串口仿真 两个数据终端设备之间通过RFCOMM通信,可以打开多达60个仿真串口,但是实际打开串口 数还要视设备生产商的具体实现以及实际需要而定。各仿真串口之间通过数据链路连接标示 符DLCI(Data Link Connection Identifier)加以区分,其中DLCI_0用于指示控制信道,DLCI_1不可用, 而DLCI_62和DLCI 63为保留标示符

电话控制协议(Telephony Control Protocol Spectocol,TCS)


  电话控制协议位于蓝牙协议栈的L2CAP层之上,包括电话控制规范二进制(TCS BIN)协议和一套电话控制命令(AT Commands).其中,TCS BIN定义了在蓝牙设备间建立话音和数据呼叫所需的呼叫控制信令;AT Commands则是一套可在多使用模式下用于控制移动电话和调制解调器的命令,它SIG在ITU.TQ.931的基础上开发而成.TCS层不仅支持电话功能(包括呼叫控制和分组管理),同样可以用来建立数据
  呼叫,呼叫的内容在L2CAP上以标准数据包形式运载.

服务发现协议(Service Discovery Protocol,SDP)


  服务发现协议(SDP)是蓝牙技术框架中至关重要的一层,它是所有应用模型的基础.任何一个蓝牙应用模型的实现都是利用某些服务的结果.在蓝牙无线通信系统中,建立在蓝牙链路上的任何两个或多个设备随时都有可能开始通信,仅仅是静态设置是不够的.蓝牙服务发现协议就确定了这些业务位置的动态方式,可
  以动态地查询到设备信息和服务类型,从而建立起一条对应所需要服务的通信信道.

蓝牙高层协议


  蓝牙高层协议包括对象交换协议、无线应用协议和音频协议.

对象交换协议(Object Exchange Protocol,OBEX)


  OBEX是由红外数据协会(IrDA)制定用于红外数据链路上数据对象交换的会话层协议.蓝牙SIG采纳了该协议,使得原来基于红外链路的OBEX应用有可能方便地移植到蓝牙上或在两者之间进行切换.OBEX是一种高效的二进制协议,采用简单和自发的方式来交换对象.它提供的功能类似于帅协议,在假定传输层可靠的基础上,采用客户机.服务器模式.它只定义传输对象,而不指定特定的传输数据类型,可以是从文件到商业电子贺卡、从命令到数据库等任何类型,从而具有很好的平台独立性.

无线应用协议(Wireless Application Protocol,WAP)


  无线应用协议(WAP)由无线应用协议论坛制定,是由移动电话类的设备使用的无线网络定义的协议.WAP融合了各种广域无线网络技术,其目的是将互联网内容和电话债券的业务传送到数字蜂窝电话和其他无线终端上.选用WAP可以充分利用为无线应用环境开发的高层应用软件.

其他


SDP 发现服务

这个模型分为三个过程:设备发现过程,设备名字发现过程和SDP服务发现
SDP由三大模块组成: 链路维护模块:完成SDP链路的建立,参数配置和拆链。 PDU收发模块:完成请求PDU的封装发送,收到PDU后以socket通讯方式交给SDP解析服务器完成。 SDP解析服务器:完成收到的PDU的解析,对于请求PDU检索数据库得到响应数据后返回给PDU收 发模块,对于响应PDU解析出的结果直接发送给应用程序。

三种节能状态,
停等(Park)状态 保持(Hold)状态 呼吸(Sniff)状态

三种纠错方案
前向纠错(FEC) 前向纠错 自动重发(ARQ)

在链路层中,蓝牙系统提供了认证、加密和密钥管理等功能。 每个用户都有一个个人标识码(PIN),它会被译成128bit的链路密钥 (Link Key)来进行单双向认证。一 旦认证完毕,链路就会以不同长度的密码(Encryphon Key)来加密(此密码以shit为单位增减,最大 的长度为128bit)链路层安全机制提供了大量的认证方案和一个灵活的加密方案(即允许协商密码的 长度)

蓝牙协议体系中的协议按SIG的关注程度分为四层:
核心协议:BaseBand、LMP、L2CAP、SDP;
电缆替代协议:RFCOMM;
电话传送控制协议:TCS-Binary、AT命令集;
选用协议:PPP、UDP/TCP/IP、OBEX、WAP、vCard、vCal、IrMC、WAE。
除上述协议层外,规范还定义了主机控制器接口(HCI),它为基带控制器、连接管理器、硬件状态和控制寄存器提供命令接口。在图1中,HCI位于L2CAP的下层,但HCI也可位于L2CAP上层。
具体可以参照
蓝牙协议介绍

bluez协议栈


BlueZ 是官方 Linux Bluetooth栈,由主机控 制接口(Host Control Interface ,HCI)层、 Bluetooth协议核心、逻辑链路控制和适配 协议(Logical Link Control and Adaptation Protocol,L2CAP)、SCO 音频层、其他 Bluetooth 服务、用户空间后台进程以及配 置工具组成。
BlueZ以标准socket形式封装了hci、l2cap和 rfcomm协议,使得应用调用更加方便。

参考http://www.bluez.org/

Bluetooth hardware


蓝牙协议栈bluez可分为两部分:内核代码和用户态程序及工具集,其中内核代码由BLUEZ核心协议和驱动程序等模块组成的。用户态程序及工具集包括应用程序接口和BLUEZ工具集。 在内核代码中,bluez协议的bluez-kernal和bluez-libs软件实现了主机控制接口(HCI)和套接字接口 的全部功能,内核代码采用模块化设计,由设备驱动程序模块和蓝牙核心协议模块组成,分别 位于Linux内核的代码的drivers子目录和net子目录下,drivers子目录代码包括Linux内核对各种接 口的蓝牙设备的驱动,net子目录下包括蓝牙核心协议和一部分扩展协议的内核代码,如L2CAP, RFCOMM, SCO, SDP, BNEP的协议。

bluez核心协议


内核中的bluez核心协议源代码,都在net目录或者net/bluetooth
这里写图片描述

hci_core.c

HCI在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具 体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如 像UART、USB和PC Card等等。

hci_core.c相当于一个框架,用于把各种具体通信方 式胶合起来,并提供一些公共函数的实现。
hci_cmd_task是负责发送CMD的任务,它从hdev->cmd_q队列中取CMD,然后调 用hci_send_frame把CMD发送出去,hci_send_frame又会调用实际的HCI驱动的 send函数发送数据。
hci_rx_task是负责接收数据的任务,它从hdev->rx_q队列中取数据,然后根据数 据的类型调用上层函数处理。数据包有三种类型: HCI_EVENT_PKT: 用于处理一些通信事件,比如连接建立,连接断开,认证和加 密等事件,这些事件控制协议状态的改变。

HCI_ACLDATA_PKT 异步非连接的数据包,通过hci_acldata_packet提交给上层的 L2CAP协议处理(hci_proto[HCI_PROTO_L2CAP])。 HCI_SCODATA_PKT: 同步面向连接的数据包,通过hci_scodata_packet提供给上层 的SCO协议处理(hci_proto[HCI_PROTO_SCO])。

hci_tx_task是负责发送数据的任务,发送所有connection中的ACL和SCO数据, 以及hdev->raw_q中的数据包。

HCI为上层提供的接口主要有:

hci_send_sco发送SCO数据包,把要发送的数据包放入connection的发 送队列中,然后调度发送任务去发送。

hci_send_acl发送ACL数据包,把要发送的数据包放入connection的发送 队列中,然后调度发送任务去发送。

hci_send_cmd送命令数据,把要发送的数据包放入hdev->cmd_q队列 中,然后调度命令发送任务去发送。

hci_register_proto/hci_unregister_proto 注册/注销上层协议,HCI会把接 收到的数据转发给这些上层协议。 hci_register_dev/hci_unregister_dev: 注册/注销设备,HCI会把要发送的数 据通过这些设备发送出去。 其它一些公共函数。

hci_conn.c

提供了一些连接管理,论证和加密的函数。

net/hci_event.c

事件处理函数,负责状态机的维护,这些事件通常会使连接从一个状态 转换另一个状态。
hci_si_event 用于发送事件。

hci_event_packet 用于处理底层上报的事件,从hci_rx_task处调用过来。

hci_sock.c

给上层提供一个socket接口,应用程序可以通过socket的方式来访问HCI。
hci_sock_init 中注册了BTPROTO_HCI类型family。

hci_sock_create 创建sock的函数,它的sock的ops指向hci_sock_ops。

hci_sock_setsockopt/hci_sock_getsockopt 设置/获取sock的一些选项。

hci_sock_sendmsg 发送消息,根据消息的类型把消息放到适当的队列中。

hci_sock_recvmsg 接收消息,从接收队列中取消息。

hci_sysfs.c

提供一些sysfs文件系统接口。

l2cap.c

L2CAP是HCI之上的协议,提供诸如QoS,分组,多路复用,分段和组装之类 的功能。
通过bt_sock_register为上层提供一个sock接口
l2cap_sock_create 创建sock的函数,它的sock的ops指向l2cap_sock_ops。

l2cap_sock_setsockopt/l2cap_sock_getsockopt 设置/获取sock的一些选项。

l2cap_sock_sendmsg发送消息,通过HCI提供hci_send_acl函数把消息传递给 下层的设备。

bt_sock_recvmsg 接收消息,从接收队列中取消息。

通过hci_register_proto向其下的HCI注册协议: l2cap_connect_ind:处理连接请求。

l2cap_connect_cfm:确认连接。 l2cap_disconn:处理断开请求。 l2cap_auth_cfm:认证确认。

l2cap_encrypt_cfm:加密确认。 l2cap_recv_acldata:处理来自HCI的数据。

sco.c

SCO也是运行在HCI之上的协议,它是面向连接的可靠的传输方式,主要 用于声音数据传输。 通过bt_sock_register为上层提供一个sock接口

sco_sock_create 创建sock的函数,它的sock的ops指向sco_sock_ops。

sco_sock_setsockopt/sco_sock_getsockopt 设置/获取sock的一些选项。

sco_sock_sendmsg 发送消息,通过HCI提供sco_send_frame函数把消息 传递给下层的设备。

bt_sock_recvmsg 接收消息,从接收队列中取消息。 通过hci_register_proto向其下的HCI注册协议

sco_connect_ind 处理连接请求。

sco_connect_cfm 确认连接。

sco_disconn_ind 处理断开请求。

sco_recv_scodata 处理来自HCI数据。

rfcomm


源代码位于/net/bluetooth/rfcomm中
rfcomm是基于l2CAP之上的协议,它在蓝牙协议之上封装传统的RS232串口。
这里写图片描述

bluez驱动程序


驱动程序位于drivers/bluetooth
这里写图片描述
前面我们介绍的都是HCI及其上层的协议,HCI下层的实现就是HCI驱动程 序,这些驱动程序用于与蓝牙硬件通信,通信的方式常见的有USB, UART和PC card等几种。

这里我们看看USB的方式: drivers/bluetooth/hci_usb.c

hci_usb_probe 调用hci_register_dev向前面说的hci_core注册HCI设备。

hci_usb_send_frame 用于提供给HCI去发送数据包。它把数据包放到传 输队列__transmit_q(husb, bt_cb(skb)->pkt_type)之中,然后调用 hci_usb_tx_process去传输数据。

hci_usb_tx_process 根据数据的类型去调用hci_usb_send_ctrl /hci_usb_send_isoc /hci_usb_send_bulk`把数据通过USB发送给硬件。

BlueZ内部结构分析

BlueZ文件结构


Bluetooth/hcidump:hci command/event的trace工具,可以监视蓝牙数据的传送情况。 ?BlueZ/libs:应用层对hci command/event的封装, 提供了发送hci command,接收对应的hci event的 接口。
BlueZ/src: Bluetooth 服务、用户空间后台进程以 及配置工具

主要后台进程


hciattach:将蓝牙芯片绑定到/dev/tty*口。
sdpd:SDP协议后台进程,负责蓝牙服务注册,查询等。
bluetoothd:bluetooth后台监视进程。监听hci event。

Security Mode
● Security mode 1 No active security enforcement Security mode 2 ● Service level security On device level no difference to mode 1 ● Security mode 3 Device level security Enforce security for every low-level connection

Pairing Proces


Pin_help的理念在bluez-util 3.x时已经被移除,并被密钥代理所代替。 现在支持两种类型的密钥代理:默认和设备特定。一个”特定”的密钥代 理处理所有远端的密钥请求,一个默认的密钥代理,处理特定的代理 所没有发现的所有密钥请求 当CreateBonding方法被调用时,bluetoothd守护进程将确认当前的文件系 统中是否保存了链接密钥,若可以找到,就返回一个错误。若找不到, D-Bus消息将被发出来为密钥请求的设备,注册一个密钥代理。每个 密钥代理被D-Bus对象路径所体现,bluetoothd依据唯一的总线名称和 对象路径来区分代理

蓝牙芯片结构


蓝牙芯片架构


蓝牙芯片,即即通常所说的Controler,实现的是蓝牙协议栈中最底3层的协议,RF,LC,LMP。用在Feature Phone上时,蓝牙芯片作为Slave挂在BB上(不知Smart Phone是不是挂在AP上)。他是一个相对独立完整的子系统,拥有自己的RF,基带,CPU,数据总线和存储设备。通过USB或UART(通常是UART)与Host通信,上一节架构图的HCI,物理上所依赖的便是UART或USB。
其中蓝牙基带控制器是蓝牙硬件模块的关键模块。其主要功能是在微处理器控制下,实现蓝牙基带部分的所有实时处理功能,包括负责对接收的bit流进行符号定时提取和恢复;分组头及净荷的循环冗余度校验(CRC),分组头及净荷的前向纠错码FEC处理,加密和解密处理等,且能提供从基带控制器到其它芯片的接口等。CPU一般采用RISC结构的嵌入式微处理器,如ARM7TDMI微处理器,才能满足对蓝牙核心协议的高速处理和大量数据bit流的处理。Flash 存储器用于存放基带和链路管理层中的所有协议软件。SRAM作为CPU 的运行空间,在工作时把Flash中的软件调入SRAM中处理。射频收发器负责接收或发送高频的通信信号。UART和USB接口提供到HCI的主机控制器接口传输层的物理连接,是上层协议与蓝牙硬件模块进行通信的通道。蓝牙测试模块主要提供无线层和基带层的认证和一致性规范,同时还管理产品的生产和售后的测试,为可选模块。

蓝牙芯片厂商


CSR公司是目前最大的蓝牙芯片的全球供应商,大约占有50%的市场份额,同时也提供WiFi和VoIP解决方案。
CSR公司在蓝牙芯片市场的主要竞争对手是Broadcom( BROADCOM公司,中文名叫“博通”)。

学生用的蓝牙芯片基本都是用CSR的,就像学生开发zigbee都用TI的CC2531一样,CSR的芯片就像CC2531一样,是集成了RF收发模块的MCU,只不过CC2531是用8051内核的,还有AD,串口等和8051单片机差不多的设备,而CSR芯片中BC打头的牛逼点,是ARM核和DSP核的,又有ARM架构又有DSP架构,
不管是CC2531还是CSR的蓝牙芯片,芯片刚买回来的时候里面一定都是没有程序,就像stm32一样,不可能芯片里已经刷了协议栈固件什么的,都要自己下的,所以你只买芯片没用,还要买开发套件,包括下载器开发板那些东西,只有你不断通过下载和调试在这些东西上面自己写出了一个真正稳定和成熟的程序后,下一步才可以舍弃下载器和开发板这些初级的东西,才可以自己放心地用这个芯片画一块自己的PCB板(当然也要预留下载接口),然后把成熟的程序下载到其中,这个时候你自己画的板子才算是一个产品阶段了。

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
51232是一种Raspberry Pi开发板型号,它可以与Simulink驱动程序块一起使用。Simulink是一种用于模拟、建模和代码生成的工具,而Raspberry Pi是一种可以运行Simulink模型的单板计算机。 Simulink驱动程序块是用于将Raspberry Pi的功能与Simulink模型集成的工具。它允许用户通过Simulink模型来控制和读取Raspberry Pi上的各种传感器和执行器。用户可以通过简单地将各种驱动程序块添加到Simulink模型中来实现与Raspberry Pi的通信和控制。 ADC表示模拟转数字转换器,DAC表示数字转模拟转换器,PWM表示脉冲宽度调制。Raspberry Pi上的ADC和DAC驱动程序块可以实现数据的模拟输入和输出。用户可以将传感器的模拟信号通过ADC转换为数字信号,并在Simulink模型中进行处理。类似地,用户可以使用DAC将模拟输出信号从Simulink模型发送到执行器。 PWM驱动程序块可以通过产生脉冲宽度调制信号来控制Raspberry Pi上的PWM输出引脚。PWM信号可以用于控制各种执行器,如电机和舵机。用户可以在Simulink模型中调整PWM信号的参数,并通过Raspberry Pi的PWM引脚将其输出。 总而言之,51232 Raspberry Pi Simulink驱动程序块可以实现与Simulink模型的综合,通过ADC和DAC驱动程序块进行模拟输入和输出,通过PWM驱动程序块控制PWM输出。这使得用户能够利用Simulink的功能来控制和监测Raspberry Pi上的各种设备和传感器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值