下面是WinCE中蓝牙协议栈的架构图:
可以看到,HCI传输层以上的协议层全部由WinCE实现了,所以蓝牙模块只需要实现了基带层和链路管理层,并提供HCI传输接口给WinCE就可以了。WinCE支持使用USB、UART、SDIO等接口的蓝牙模块。
开发板上使用的是CSR-BC4-EXT-C2-PA蓝牙模块,模块接在串口0上。使用CSR的BCSP传输协议。以下是配置方法:
1 添加Bluetooth Stack with Universal Loadable Driver
2 注册表配置
[HKEY_LOCAL_MACHINE/Software/Microsoft/Bluetooth/Transports/BuiltIn/1]
"driver"="bthcsr.dll"
"flags"=dword:4
"name"="COM0:"
"baud"=dword:1c200
"resetdelay"=dword:1388
使用COM0,波特率115200。
3 配置PSKEY
先用BlueFlash烧写固件,然后用PSTool配置PSKEY,只要配置HOST_INTERFACE和UART_BAUDRATE就可以了,其他按默认配置。
PSKEY_HOST_INTERFACE: UART link running BCSP
PSKEY_UART_BAUDRATE: 115.2kbaud
4 添加文件传输服务
1) 在PB里增加OBEX inbox和OBEX File Browser组件
2) 修改注册表:
; @CESYSGEN IF SERVERS_MODULES_OBEXFILE
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Obex/Services/{f9ec7bc4-953c-11d2-984e-525400dc9e09}]
"BaseDir"="//Temp//Ftp" ;默认根目录.对方可见目录
"Server"="obexfile.dll"
"canWrite" = dword:1 ;可访问,可读写
"authenticate"= dword:0
"transport authentiate" = dword:0
; @CESYSGEN IF CE_MODULES_BTD
"BluetoothSdpRecord"=hex:35,41,09,00,01,35,03,19,11,06,09,00,04,35,11,35,/
03,19,01,00,35,05,19,00,03,08,0a,35,03,19,00,08,/
09,00,06,35,09,09,65,6e,09,00,6a,09,01,00,09,00,/
09,35,08,35,06,19,11,06,09,01,00,09,01,00,25,03,/
46,54,50
; @CESYSGEN ENDIF CE_MODULES_BTD
; @CESYSGEN ENDIF SERVERS_MODULES_OBEXFILE