What is the difference between ACL and SCO Link in Bluetooth?
ACL= Asynchronous Connection-Less. SCO = Synchronous Connection Oriented. SCO is Point to Point Connection between only one master and only one slave. ACL is multipoint connection between one master and many slaves. What are the other differences?
4 Answers 4
SCO is for real-time narrow band signal which does not require retransmission. Voice data in Bluetooth hands free kit is an example for this. This narrow band audio is called «Bluetooth voice» type. Where as ACL is for all other BT data transfer including High quality audio/video data. Example is music playback through A2DP. This is high bandwidth data and hence called «Advanced Audio». SCO is fixed bandwidth channels and can have maximum 3 channels per device, but throughput of ACL varies with other active connections(SCO and ACL) at that time.
ACL: It is used exclusively to transport data. Retransmission based on ARQ. Available types DMx(Moderate rate), DHx(High data rate). where x=1,3,5
SCO: It is mainly used for Voice Communication (or data and voice combined). No retransmissions.HV1,HV2,HV3 are different types of voice packets possible. each with different encoding scheme.
Check out the following diagram from my favorite conceptual guide to Bluetooth functionality.
Like Abin said, SCO is primarily utilized when a contiguous, real-time signal is required, like during a phone call.
ACL is for everything else, and is the primary mediating protocol for most data-transmission use-cases.
SCO provides a circuit switched connection, where a dedicated, point-to-point link is established between the master device and the slave device before communication starts. SCO is a symmetric link, i.e. fixed slots are allocated for each direction. SCO radio links are used for time critical data transfer, mainly voice data. A master device can support three SCO links with the same or different slaves. A slave device can have a maximum of three SCO links with its master device. The focus is minimization of time latency. The maximum data rate of SCO link is 64,000 bps (bits per second). Packet retransmissions are not allowed, for assuring real-time transfer of voice traffic. Forward Error Correction (FEC) is applied for data reliability.
ACL is a packet oriented link, i.e. the link establishes a packet – switched network. Both symmetric and asymmetric traffic are supported. The master device controls the bandwidth of the ACL link. ACL is used for transmission of data traffic which are delivered at irregular intervals. One master device which connects with maximum seven slave devices via ACL links to form a Piconet. The main objective is to maintain data integrity rather than time latency. The maximum data rates of ACL links can reach a 57.6 Kbps in downlink and 721 bps in uplink. Packet retransmissions are allowed to ensure data integrity. Both FEC as well as Backward Error Correction with retransmissions are adopted for data reliability.
Difference between ACL and SCO Link in Bluetooth
SCO is a symmetric, point-to-point link between the master device and the slave device connected via Bluetooth.
ACL is a point – to – multipoint link for transmitting general data packets using Bluetooth connection. ACL is used for irregular traffic between a master device and one or more slave devices.
Differences between SCO and ACL
SCO | ACL | |
---|---|---|
1 | SCO provides a circuit switched connection, where a dedicated, point-to-point link is established between the master device and the slave device before communication starts. | ACL is a packet oriented link, i.e. the link establishes a packet – switched network. |
2 | SCO is a symmetric link, i.e. fixed slots are allocated for each direction. | Both symmetric and asymmetric traffic are supported. The master device controls the bandwidth of the ACL link. |
3 | SCO radio links are used for time critical data transfer, mainly voice data. | ACL is used for transmission of data traffic which are delivered at irregular intervals. |
4 | A master device can support three SCO links with the same or different slaves. A slave device can have a maximum of three SCO links with its master device. | One master device which connects with maximum seven slave devices via ACL links to form a Piconet. |
5 | The focus is minimization of time latency. | The main objective is to maintain data integrity rather than time latency. |
6 | The maximum data rate of SCO link is 64,000 bps (bits per second). | The maximum data rates of ACL links can reach a 57.6 Kbps in downlink and 721 bps in uplink. |
7 | Packet retransmissions are not allowed, for assuring real-time transfer of voice traffic. | Packet retransmissions are allowed to ensure data integrity. |
8 | Forward Error Correction (FEC) is applied for data reliability. | Both FEC as well as Backward Error Correction with retransmissions are adopted for data reliability. |
Synchronous Connection-Oriented (SCO) Link
Bluetooth link layers define two types of data links, Synchronous Connection Oriented (SCO) link, being one of them. SCO is a symmetric, point-to-point link between the master device and the slave device connected via Bluetooth.
Features of Bluetooth SCO links
- In SCO, a dedicated, point-to-point link is established between the master device and the slave device before communication starts.
- SCO is a symmetric link, i.e. fixed slots are allocated for each direction.
- Since fixed slots are reserved, SCO provides a circuit switched connection.
- SCO radio links are used for time critical data transfer, particularly for voice data.
- Both the master and the slave device transmit encoded voice data in their reserved timeslots.
- A master device can support three SCO links with the same or different slaves.
- A slave device can have a maximum of three SCO links with its master device.
- A SCO link can transmit a 64,000 bps (bits per second) PCM audio channel.
- SCO frames are not retransmitted. This is because the transmission is time critical and it is not feasible to retransmit real-time voice data.
- Since retransmission is not possible, forward error correction is the only error correcting option for transmission of reliable data.
- An improvement over SCO links is enhanced SCO (eSCO) links. The eSCO links permit more flexibility in setting up links, support limited retransmissions, and allow more types of data packets than SCO.
Прием подключений SCO в драйвере профиля Bluetooth
Драйвер профиля SCO может зарегистрировать себя для ответа на входящие запросы на подключение к синхронным Connection-Oriented (SCO) с удаленных устройств. Например, драйвер профиля SCO для устройства с профилем беспроводной телефонии (CTP) отвечает на входящий запрос на подключение SCO от устройства CTP, принимая или отклоняя запрос. Если драйвер профиля сервера принимает запрос, драйвер профиля сервера отвечает на входные данные с устройства и передает эти входные данные в стек драйверов Bluetooth.
Драйверы профилей сервера должны выполнить следующие действия, чтобы принимать входящие запросы на подключение SCO от удаленных устройств Bluetooth.
Получение входящих запросов на подключение SCO от удаленных устройств
- Драйверы профилей должны создавать и отправлятьзапрос BRB_SCO_REGISTER_SERVER на регистрацию функции обратного вызова SCO в стеке драйверов Bluetooth, чтобы стек уведомлял драйвер профиля о входящих запросах на подключение SCO.
- Когда стек драйвера Bluetooth получает от удаленного устройства входящий запрос на подключение SCO, он вызывает функцию обратного вызова SCO , зарегистрированную ранее драйвером профиля. Стек драйверов Bluetooth передает значение ScoIndicationRemoteConnect параметру Indication функции обратного вызова.
- Чтобы ответить на входящие запросы на подключение, драйверы профилей должны создать и отправить запрос BRB_SCO_OPEN_CHANNEL_RESPONSE . В зависимости от значения элемента Response структуры _BRB_SCO_OPEN_CHANNEL , переданной с этим запросом, драйвер профиля сервера принимает или отклоняет запрос на подключение.
- Если драйвер профиля сервера принимает подключение, стек драйверов Bluetooth может вызвать функцию обратного вызова SCO , как указано в элементе callbackструктуры _BRB_SCO_OPEN_CHANNEL , чтобы уведомить драйвер профиля сервера о любых изменениях в подключении SCO.
После того как драйвер профиля примет запрос на подключение, он может использовать другие brb для отправки и получения данных через только что установленное подключение SCO.
Чтобы прекратить получение уведомлений о попытках подключения SCO удаленного устройства, драйверы профилей должны создать и отправитьзапрос BRB_SCO_UNREGISTER_SERVER на отмену регистрации сервера, когда драйвер профиля обрабатывает IRP_MN_REMOVE_DEVICE Plug and Play удалить уведомления.
Дополнительные сведения об уведомлениях и функциях обратного вызова см. в разделе Поддержка уведомлений о событиях Bluetooth.