usb/1394 on the pc mark slezak program manager windows device experience group marksl @...
TRANSCRIPT
USB/1394 on the PC
Mark SlezakProgram ManagerWindows Device experience groupMarkSl @ microsoft.com Microsoft Corporation
USB – Refactoring of USBHubUSB – Refactoring of USBHub
Stack Update to Improve USB Rewrite of USBHub.sys
Improvements include better: Power Management
Selective Suspend behavior
Kernel Debugging over USB BetaNew feature for Windows codenamed “Longhorn”
Allows for debugging systems without legacy ports
1394 – What’s Changed & What Hasn’t 1394 – What’s Changed & What Hasn’t
Longhorn is primarily bug fixesImproving the current code base is the main goal
Improvements to 1394 debugging
Removal of IP over 1394 in Longhornhttp://www.microsoft.com/whdc/system/bus/1394/IP_1394.mspx
Bluetooth on the PC
Vatsal BhardwajProgram ManagerWindows Device experience groupVatsalb @ microsoft.com Microsoft Corporation
Robin HeydonTechnical consultant Robin.Heydon @ csr.com CSR plc
OutlineOutline
Bluetooth on future OSBluetooth on 64-bit versions of Windows
Bluetooth on Longhorn
Overview of Bluetooth Driver development interfaces – Presentation from Cambridge Silicon Radio
Bluetooth SIG roadmap
Improving end user experience with sync on Microsoft’s stack for Bluetooth
Call to Action
Bluetooth on 64-Bit Versions of WindowsBluetooth on 64-Bit Versions of Windows
Port the existing Windows XP SP2 features to x64 client release
No Bluetooth stack on Windows Server 2003
Profiles Supported Windows XP SP2 Windows XP x64
Human Interface Device (HID) X X
Dial-up Networking (DUN) X X
Hard Copy Replacement Printing (HCRP) X X
Personal Area Network user (PANU) X X
File push – Object Push Profile (OPP) X X
Virtual COM ports X X
New Features on LonghornNew Features on Longhorn
Profile parity with Windows XP SP2 and Windows XP x64
Core stack enhancements Support for Synchronous Connection Oriented links (SCO)
Channel avoidance
Improved extensibility L2cap and SDP interfaces
SCO/eSCO interfaces
Qualification update to Bluetooth 2.0 + EDR (Enhanced Data Rate)
New Features for Longhorn New Features for Longhorn –– Core Stack ImprovementsCore Stack Improvements
Synchronous connection oriented links (SCO)
Enhanced Synchronous connection orientedlinks (eSCO)
Improved AFH channel interference avoidancewith 802.11
Support for newer, faster hardware – EDR radios
New Features for Longhorn – ExtensibilityNew Features for Longhorn – Extensibility
Goals SCO driver development interface
Service discovery protocol (SDP) driver development interface
L2cap driver development interface
Device installation
User mode extensibility in the Microsoft core stack for Bluetooth isprovided with RFCOMM sockets (published as part of SDK) and VCOM ports
New Features for Longhorn – Extensibility (con’t)New Features for Longhorn – Extensibility (con’t)
Out of scopeProviding interface to HCI layer to enable 3rd partiesto add HCI commands
Providing interface to allow addition of custom L2cap/SCO/SDP interfaces
Providing a mechanism to install custom RFCOMM protocol layer on top of the L2cap protocol layer
Profile Examples Which Can Be Developed on Profile Examples Which Can Be Developed on Top of Microsoft Stack for BluetoothTop of Microsoft Stack for Bluetooth
Headset profile
Handsfree profile
Advanced audio distribution profile
A/V remote control profile
File transfer protocol profile
HCI
SCO L2CAP SDP
Audio StackSCO
Hardware
Kernel mode
User mode
RFCOMM
New Proposed DDI
HS Profile
Sync Profile
CT Profile
HF Profile
BPPBIP
A/V Profiles
FTP Profile
Audio StackL2CAP
SPP
VCOM
OPP
HID PANU HCRPDUN
User Mode ExtensibilityPotential Clients:
Sync Software, Imaging Software
Kernel modeextensibility
Primary Client:Audio profiles
Bluetooth Protocol Stack on LonghornBluetooth Protocol Stack on Longhorn
New CoreComponent
ExistingComponent
Open to 3rd-PartyDevelopment
Bluetooth driver development interfaces overview
Robin HeydonTechnical Consultant CSR plc
Value proposition to CSRValue proposition to CSR
Our customers who wish to use a Microsoft StackGives them level of flexibility to add profiles
We will support them in adding these profiles
Leverage current Microsoft StackReusing the existing robust code base
Add functionality that our customers wantLeverage CSR profile code base
Used in many end products already - interoperability
Bluetooth DDI InterfaceBluetooth DDI Interface
Interfaces to Bluetooth L2CAP and SDPUsing IOCTLs to perform actions
IOCTL_BTH_GET_LOCAL_INFOReads Bluetooth Local Radio Information
BD_ADDR, Version Numbers, Name, Class Of Device, Supported Features
IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO
Writes an SDP record that will be published
Also includes Class of Device, Security, Browsability
IOCTL_INTERNAL_BTH_SUBMIT_BRBDoes most of the other useful stuff
Create connections, send data, etc…
Bluetooth BRB InterfaceBluetooth BRB Interface
Using Internal Bth Submit BRB, you can:
Connect to servicesBRB_L2CA_OPEN_CHANNEL
BRB_L2CA_ACL_TRANSFER
BRB_L2CA_CLOSE_CHANNEL
Register connectable servicesBRB_REGISTER_PSM
L2CAP_SERVER_INTERFACE
ConnectionIndication
BRB_L2CA_OPEN_CHANNEL_RESPONSE
Example Service Example Service
L2CAP_SERVER_INTERFACEAssociates the PSM with an IndicationCallback function
BRB_REGISTER_PSMRegisters the PSM as connectable
IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFOPublishes an SDP record describing the service
IndicationCallback (ConnectionIndication)Indicates that a inbound connection has arrived
BRB_L2CA_OPEN_CHANNEL_RESPONSEAccepts this inbound connection
L2CA_TRANSFER_DATATransfers data, in and out
L2CA_CLOSE_CHANNELCloses the channel
SummarySummary
Providing everything that is requiredRegistering of PSMs
Registering of SDP records
Open / Read / Write / Close L2CAP Channels
Connectionless Data
Easy to use
Easy to extend current stackAdd current and new profiles
Bluetooth Roadmap Features That are Bluetooth Roadmap Features That are Interesting to Microsoft Interesting to Microsoft
Bluetooth QoS
Efficient service discovery
Alphanumeric PINs
Simple pairing
Bluetooth QoSBluetooth QoS
Myth: EDR will solve my problems of limited Bluetooth bandwidth, when using a stereo headset with other Bluetooth devices (like HID devices, printers, sync with mobile phones). With EDR, I don’t need QoS
Bluetooth QoS (con’t)Bluetooth QoS (con’t)
Reality: EDR does increase the Bluetooth bandwidth to 2-3 Mbps, but is not an alternative to QoS, stereo audio, HID devices, printers all operate over ACL links with no channel access guarantees
QoS is needed for better coexistence of Stereo audio profiles with other Bluetooth profiles
Efficient Service DiscoveryEfficient Service Discovery
Current protocol takes a long time to discover Bluetooth devices and resolve their user friendly names Bad user experience
~ 5-6 sec to discover all Bluetooth 1.2 devices
~ 10-11 sec to discover all Bluetooth 1.1 devices
Remote name resolution (RNR) takes an additional 0.5 - 2 sec per device
Efficient service discovery reduces requirements to make baseband connections during device discovery Better user experience
Reduces the need to issue RNR duringdevice discovery
Improving Sync Experience on Windows OS Improving Sync Experience on Windows OS
COM ports challenges
User Experience COM ports are hard to configure
User must manually select them
My sync experience
Question: I Am an ISV Writing Sync Applications, Question: I Am an ISV Writing Sync Applications, What Should I Do?What Should I Do?
Recommendation: Develop PC applications that use sockets to communicate to Bluetooth devices
Socket interfaces are very common
Provide richer environment More predictable buffering / data flow
Good error status indications
More control over connections
Link to Online SDKhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/bluetooth/bluetooth/bluetooth_start_page.asp
Some of the Partners Who Have Developed Their Some of the Partners Who Have Developed Their Sync Applications Using the Microsoft SDK for Sync Applications Using the Microsoft SDK for BluetoothBluetooth
“Nokia's mission is to offer to the best products and solutions with a superior user experience. Cooperation with industry leaders, such as Microsoft, will enable us to offer truly compelling choices to mobile users. Nokia PC Suite software developed using these new Microsoft’s tools for Bluetooth provides our customers with a great end user experience when they connect and synch their mobile phone with their Bluetooth enabled Windows PC”
- Jouni Rapakko, Technology Manager, PC Suite Unit, Nokia
Call to ActionCall to Action
ALLInstall the Longhorn builds on your machines and use the Microsoft stack for Bluetooth
Send us your feedback on Bthfb @microsoft.com
Driver/third party stack developersSend an email with business justification to bthddi @microsoft.com to request enrollment in beta program and get the Bluetooth DDI design documents
Application DevelopersUse Microsoft SDK for Bluetooth to develop applications
Post feedback, questions on the SDK on bthapi @microsoft.com alias
OEMsAdopt Microsoft stack for Bluetooth on Longhorn
Device vendorsUse stronger PINs and Support alphanumeric PINs whenever possible
Support Extended service inquiry and Improved service inquiry/response
Contact InformationContact Information
For feedback on Microsoft stack for Bluetoothor general Bluetooth feedback
Bthfb @ microsoft.com
For feedback on Microsoft SDK for BluetoothBthapi @ microsoft.com
SummarySummary
Product name: Microsoft stack for Bluetoothon Longhorn
Low power cable replacement technology
Microsoft stack for Bluetooth is extensible
Value proposition to partners Reduce development cost, time to market for their Bluetooth product
Microsoft provides the core stack functionality and APIs
Partners can focus on developing profiles
Product differentiationDevice vendors can develop custom profiles for theirdevices using the Microsoft SDK for Bluetooth,Microsoft DDK for Bluetooth
Appendix
Recommendation: Bluetooth Security Recommendation: Bluetooth Security
Use strong PINs Windows XP SP2 recommends the use of 8-character PIN length
Support Alphanumeric PINs whenever possible(2005 Bluetooth SIG Roadmap feature)
Don’t default to the discoverable state
Don’t hardwire the same PINs to all your devices
Improving Overall User Experience Improving Overall User Experience
Recommendation: Use the Bluetooth UI in Windows XP SP2 to discover, connect, and bind remote devices
Provide a consistent interface so that users don’t have to learn multiple interfaces
The BluetoothSelectDevices API can be usedto invoke our UI
Link to SDKhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/bluetooth/bluetooth/bluetooth_start_page.asp
Question: I am an ISV . . .Question: I am an ISV . . .
Ideal situation is remote device uses RFCOMM directly without Serial Port profile
If remote device uses SPP and depends RS232 status signals like RTS, CTS, RI, etc, then applications can manipulate RS232 signals by using SIO_RFCOMM_SEND_COMMAND socket IOCTL
Applications can also implement the other parts of the SPP protocol like RPN and RLS messages viasocket IOCTL
Community ResourcesCommunity Resources
Windows Hardware & Driver Central (WHDC)www.microsoft.com/whdc/default.mspx
Technical Communitieswww.microsoft.com/communities/products/default.mspx
Non-Microsoft Community Siteswww.microsoft.com/communities/related/default.mspx
Microsoft Public Newsgroupswww.microsoft.com/communities/newsgroups
Technical Chats and Webcastswww.microsoft.com/communities/chats/default.mspx
www.microsoft.com/webcasts
Microsoft Blogswww.microsoft.com/communities/blogs
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.