您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 基于CSR硬件的蓝牙开发说明
第一部分BTM02E-08蓝牙模块一、模块的基本参数1、特性支持蓝牙协议1.1、1.2输出功率等级为class2支持USB1.1和UART串口低电压供电2.7V~3.6V标准供电电压3.3V内置8MbitFLASH存储器尺寸:14.525.02.3mm2、描述采用CSR公司的蓝牙芯片作为核心芯片,并配以8MbitFLASH存储器,SPI接口,UART接口,USB接口,PCM音频接口,16MHz晶振,带通滤波器,天线匹配电路等。并不是所有的应用都适合嵌入式应用,因为应用程序和固件栈必需共享片上RAM,以RFCOMM为基础的应用可用的RAM大概为几百字节。应用代码必需控制在32K字以内。二、BlueCore2-External蓝牙芯片工作原理2.4GHzRFRAMDSPMCUI/OSPIUARTUSBPI/O晶振8MBitFLASH天线BTM02E-08板上资源BlueCore2-External内部资源1、关键特性片外8Mbit的存储器可以灵活的用于系统解决方案。片上32Kbit的RAM用来实现蓝牙无线传输中数据交换的缓冲4M波特率的异步串行接口片上可运行多种协议栈:标准HCI协议栈,全部内嵌的RFCOMM协议栈等96Ball-VFBGA封装2、管脚使用USB接口不用时应接地所有IO管脚被配置成输入时,复位后将变成弱下拉不用的AIO(可编程模拟IO)管脚不使用时应该悬空3、内部功能模块USB:用来与其他数字设备的通用接口,BlueCore02扮演外围设备角色,来回应主机的请求SPI(异步串行接口):用来与其它数字设备的接口,SPI口可以用来调试软件和烧写外部FLASH存储器UART:与其他设备通信的通用同步串口可编程IO:共有15个可编程管脚(12个数字的和3个模拟的),有运行在片上的固件来控制4、CSR软件栈CSR为BlueCore2提供了片上运行的固件(Firmware),片上运行的协议栈仍需HCI的支持1)HCIStack该Firmware提供了一组特性及支持相应特性的HCI在标准蓝牙协议上做了扩展:支持蓝牙串口协议——BCSP,一种以UART为物理层,可靠的特有协议(可选)提供了额外的50个系列HCI指令可以访问可编程IO端口访问蓝牙时钟访问固件上的随机数产生器动态配置UART(波特率,校验,数据位)无线传输使能:一个简单的命令,与一个专门的物理开关有关,确定radio是否可以传输数据可以读取芯片外部管脚上的电压,可以运行在VM或主机上来电池的监测提供一组BCCMD命令,来访问片上的“persiststore”,该数据库存储了器件的蓝牙地址,器件class,radio配置,USB/DFU常数等(DeviceFirmwareUpgrade)UART上break命令的应用:用于重启,开机进入低功耗,唤醒主机提供一组“radiotest”或者BIST指令,直接控制片上的radio虚拟机。固件提供虚拟机环境,来运行应用代码。虚拟机需要BlueLab和内嵌协议RFCOMM(或者L2CAP,SDP),运行在VM上的协议可以完成通过可编程IO点亮LED的简单工作2)BlueCoreRFCOMMStack软件栈(将以Firmware的形式转载到片上)直到RFCOMM层的协议都运行在片上与主机接口:RS232,RFCOMM协议(如何建立无线串口连接?)服务发现协议3)虚拟机栈所有代码都在片上运行,代码在固件旁边运行(代码与固件并行运行)用户可以呼叫固件完成各种操作用户的应用代码与堆栈是分开的,防止对堆栈造成影响,可以随时修改应用代码4)面向应用的应用软件的编写当更高层的蓝牙协议栈像固件一样在片上运行时,底层将会通过片上运行的一个UART的驱动程序提供L2CAP,RFCOMM,SDP的API给高层5、片外存储器提供了8M位的存储空间,字长为16位。用来存储代码和配置数据6、UART接口信号机制。UART接口为与其他串口器件提供了一种简单的机制。采用RS232协议电平为0V~VDD_PADS(IO电路的电压),要求额外的电平转换芯片。四种信号中,RX和TX用来传输数据,RTS和CTS可以用来做流控(低电平有效),采用CMOS工艺。UART的波特率等参数设置有软件来完成。复位。UART接口可以发送一BREAK信号复位BlueCore芯片,即RX信号线被置低的时间超过在PS中的Key:PSKEY_HOST_IO_UART_RESET_TIMEOUT设定的值,可以用来主机复位系统。同样道理,芯片也可以发送一BREAK信号来唤醒主机。波特率。可以通过公式计算结果设置任意波特率,也可以设置标准波特率。PSKEY_UART_BAUD_RATE(0X204)7、SPI(串行外围设备接口)BlueCore使用有16位数据位和16位地址位的SPI,当处理器运行时或被终止时将会通过SPI交换数据指令周期。芯片为从设备,从SPI_MOSI接受命令,从SPI_MISO发送数据SPI复位后,CSB必需置低。写入时,MOSI上的数据在时钟的上升沿写入BlueCore。读出时,在CLK的下降沿读出。CSB变高时结束。写入过程。线串行写入8位的命令字(写指令为00000010),接着是16位地址,然后16位的数据写入该地址中。芯片内地址自动加1,接下来的数据将连续的存储于FLASH中。读出过程。同上,先写入读命令字C[15:0](00000011),然后写入读地址A[15:0],在MISO上将输出16位的校验字T[15:0],跟着输出16位数据D[15:0]。校验字包括写入的命令字[7:0],和读出数据对应的地址[15:8],可以有效克服读出错误地址的内容。读过程地址自动加1.8、PIO可由片上运行的应用程序或者HCI来访问。PIO[0]/RXEN。复用端。由PSKEY的PSKEY_TX/RX_PIO_CONTROL(0x209)来决定,可以用来作为radio前端的传输开关。PIO[2]/USB_PULL_UP(1)。复用端。UART中,可用来做PIO。USB中,用来做上拉。外部RAM应用中,用来做片选。PIO[3]/USB_WAKE_UP。USB中,由PSKEY中的PSKEY_USB_PIO_WAKEUP(0x2cf)PIO[4]/USB_ON(1)。PIO[5]/USB_DETACH(1)PIO[6]/CLK_REQ。由PSKey中的PSKEY_CLOCK_REQUEST_ENABLE(0x246)决定。芯片处于深度睡眠时,管脚可以接低,当有一个时钟请求时接高,时钟必须有4ms的上升沿。9、USB芯片包括一全速的USB接口(12Mbits/s),能够直接驱动USB电缆而无需USB收发芯片。USB的数据线D+和D-连接到USB内部的USBIO缓冲器中,因此输出阻抗较低。为了与USB电缆的特性阻抗相匹配,在D+和D-上必须串联电阻。USB协议规定USB数据线输出的最小高电平为2.8V,为满足此要求,VDD_USB供电端至少为3.1V自供电模式。电路将由自己的供电系统供电,而不是来自于USB电缆的VBUS(5V),这种模式VBUS只会提供很小的电流(小于0.5mA)。要求VBUS要经过一电阻网络分压,以便于当VBUS变高时(连接到了PC)BlueCore可以检测到。USB_ON端可以由任一PIO来充当,但是必需在PSKEY_USB_PIO_VBUS中注明所选的PIO号Detach和Wake_up信号BlueCore可以提供两个额外的信号给主机:USB_DETACH和USBWAKE_UP。这两个而外的信号在USB电缆和协议中是不存在的,但是在嵌入式系统应用中却非常有用,因为嵌入式应用中实际的USB电缆是不可见的(直接用PCB布线相连),所以不知道什么时候USB电缆应该建立连接。Usb_detach:置高时将会使USB_D+和USB_D-变为高组态,相当于断开总线连接。置低时将恢复连接,并等待主机恢复。USB_WAKE_UP:用来唤醒主机。只有USB_DETACH有效时才有意义,置为高电平时用来唤醒主机,以重新开始传输数据。它是用来替换软件中USBWAKE_UP消息的,当断开连接时不能使用。三、外部Flash存储器蓝牙的配置参数被存储到Flash的PS区,可以通过程序包里的PSTool工具来对其进行操作。四、RS232电平转换芯片为主机与BlueCore的3.3V逻辑电平提供接口五、复位电路高电平复位。上电时,复位管脚将置高。可以确保电压稳定在3.3V之前芯片处于复位状态。否则,当电压从1.8V降至1.6V时,芯片将尝试着从外部存储器获得指令,而此时Flash(针对3.3V供电的Flash)的供电可能没有准备好,Flash将返回错误的指令给BlueCore,这将会导致固件的配置失败。(电压升至1.6V以上时芯片开始工作,而3.3V还未达到,Flash还不能正常工作)当使用1.8VFlash时,复位电路可以取消,把复位管脚直接接地,因为Flash和BlueCore将同时达到1.8V电平(3.3V和1.8V可能不会同时达到)(根据CSR公司提供的模块资料,在复位管脚处模块已经通过一10K的下拉电阻接地。根据复位要求,应尽量延长复位时间,以确保电源供电稳定。应接一大点电容)平时可以直接接地也可以通过一个1K电阻,要保证接地可靠。六、开关开关的反跳在软件中实现。七、PIO不用的IO管脚可以悬空,因为在IC内部有弱下拉电阻。在模块中,未用的AIO通过一100nF电容接地。八、LED可以由芯片的管脚直接驱动九、PCBSPI应留出相应的监测点,以便在卡过程中编程,校准,和查询芯片。十、数据速率最大数据传输速率受到rs232电平转换速率限制,比特率的设置在PSKEY中。要根据所使用的RS232转换器的实际速率来设置PS_KEY中的速率值。十一、低功耗节点应用。电缆替代例子的底层固件层中不能应用深度睡眠模式。MAX3243和MAX3228当没有有效的RS232信号时会自动进入低功耗模式关闭器件。将FORCEON(232转换芯片的引脚)与3.3V相连可以关闭低功耗特性(此处加入跳线使该引脚可以接到0V提供选择)。当将引脚FORCEOFF接3.3V时,将会使能自动低功耗模式。在RS232芯片输入端没有有效数据输入时232芯片将会被关闭进入低功耗模式。(将FORCE_OFF接3.3VCC使能自动低功耗模式,而通过控制FORCEON的高低来最终确定是否真正的使用低功耗模式)。232芯片输出的信号INVALID像BlueCore指明是否有有效信号,从而可以唤醒BlueCore。INVALID为高电平时表明输入端输入了有效数据。INVALID连接到了IO7,向BlueCore提供一个高电平来唤醒BlueCore。如果一个PIO被设置为输入,输入的低电平必须是一个有效地低电平,RS232芯片输出的INVALID信号有可能不是一个有效地低电平,所以当没有有效信号输入时,RS232芯片的输出端变为高组态,需要加入下拉电阻,以确保PIO7输入为低电平,是芯片进入睡眠状态(PIO中有弱下拉)。为能使PIO能产生中断,需将其设置为输入并合理设置PSKEY_DEEP_SLEEP_PIO_WEEK,如果使用VM可以使用VmDeepSleepEnable(1)来设置(VM应支持对PS的修改)。十二、软件栈LM(LinkManager),LC(LinkController),L2CAP,SDP和RFCOMM将以二进制文件的形式提供(是固件),Connectionmanagerlibrary和串口应用以C代码的形式提供,在BlueLab中编译通过后,在VM中运行(VM基于的是解释机制,编译一条执行一条?)。1、将要下载的固件编译成二进制文件并下载到Flash中,通过SPI下载。2、设置PS,通过PSTool十三、配对过程1、RS232上电2、如果已经配对,它将自动尝试建立连接,应用里存储了配对的设备地址。3、如果上述过程失败,或者没有地址入口,从设备将
本文标题:基于CSR硬件的蓝牙开发说明
链接地址:https://www.777doc.com/doc-5411625 .html