IP Library Granted Patent US 9,672,177
Granted Patent B2
US 9,672,177 · App. 15/011,158 · Granted Jun 6, 2017

Synchronization of electronic device with another electronic device on bus using synchronization field

Inventor: Jens Kristian Poulsen (Kitchener, CA)
Assignee: BlackBerry Limited
G06F13/3625G06F1/12H04J3/06H04L7/041H04L7/042H04L7/048H04L7/10H04L1/1607H04L2001/0094
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,672,177
App. No.
15/011,158
Granted
Jun 6, 2017
Kind
B2
Abstract

Various embodiments are described herein related to techniques for synchronizing a slave device to a master device that communicates using a unified bus communication protocol or some aspect thereof. In one example, the method may comprise assuming a first mode of operation for the unified bus communication protocol; searching for a synchronization pattern at one or more locations in transmitted data according to the first mode of operation; obtaining synchronization when the located synchronization pattern is verified according to at least one synchronization rule for the mode of operation; and if synchronization is not obtained based on the assumed first mode of operation, a second mode of operation for the unified bus communication protocol is assumed and the searching and obtaining acts are carried out on the transmitted data according to the second mode of operation.

Claims (57)

1. A method of synchronizing a slave device to a master device on a wired bus using a synchronization field, the method comprising:

receiving a bitstream of data on the wired bus, the bitstream comprising occurrences of the synchronization field, the synchronization field comprising a constant sync field and a dynamic sync field, the constant sync field having a constant sync value;

locating a first occurrence of the synchronization field in the received bitstream by searching for the constant sync value of the constant sync field;

reading a first value of the dynamic sync field of the located first occurrence of the synchronization field;

based on the first value computing an expected value of the dynamic sync field of a next occurrence of the synchronization field;

locating the next occurrence of the synchronization field by searching again for the constant sync value of the constant sync field in the bitstream;

reading a second value of the dynamic sync field of the located next occurrence of the synchronization field; and

verifying that the second value is equal to the computed expected value,

wherein the first value of the dynamic sync field comprises a pseudorandom value.

2. The method of claim 1 , wherein the dynamic sync field is 4 bits in length.

3. The method of claim 1 , wherein the constant sync value comprises the bit string “10110001”.

4. The method of claim 2 , wherein when the first value is represented in MSB (Most Significant Bit) first order as {S4, S3, S2, S1}, then the expected value of the dynamic sync field of the next occurrence of the synchronization field in MSB first order is {S3, S2, S1, (S4 XOR S3)}, where XOR is the “exclusive or” operation.

5. A method of enabling synchronization of slave devices to a master device on a wired bus using a synchronization field, the synchronization field comprising a constant sync field and a dynamic sync field, the constant sync field having a constant sync value, the method comprising:

transmitting, by the master device, in a first frame within a bitstream of data on the wired bus, a first instance of the synchronization field, the dynamic sync field of the first instance having a first dynamic sync value; and

transmitting, by the master device, in a second frame within the bitstream, the second frame being successive to the first frame, a second instance of the synchronization field, the dynamic sync field of the second instance having a second dynamic sync value, wherein the second dynamic sync value can be determined from the first dynamic sync value;

wherein the first dynamic sync value comprises a pseudorandom value.

6. The method of claim 5 , wherein the dynamic sync field is 4 bits in length.

7. The method of claim 5 , wherein the constant sync value comprises the bit string “10110001”.

8. The method of claim 6 , wherein a first time the synchronization field is transmitted after reset the master device sets the dynamic sync field to a value of “1111”.

9. The method of claim 6 , wherein when the first dynamic sync value is represented in MSB (Most Significant Bit) first order as {S4, S3, S2, S1}, the second dynamic sync value in MSB first order is {S3, S2, S1, S4 XOR S3}, where XOR is the “exclusive or” operation.

10. An electronic device that synchronizes with another electronic device on a wired bus using a synchronization field, the electronic device comprising:

a memory storing executable instructions; and

a processor in communication with the memory configured to execute the instructions to cause the device to:

receive a bitstream of data on the wired bus, the bitstream comprising occurrences of the synchronization field, the synchronization field comprising a constant sync field and a dynamic sync field, the constant sync field having a constant sync value;

locate a first occurrence of the synchronization field in the received bitstream by searching for the constant sync value of the constant sync field;

read a first value of the dynamic sync field of the located first occurrence of the synchronization field;

based on the first value compute an expected value of the dynamic sync field of a next occurrence of the synchronization field;

locate the next occurrence of the synchronization field by searching again for the constant sync value of the constant sync field in the bitstream;

read a second value of the dynamic sync field of the located next occurrence of the synchronization field; and

verify that the second value is equal to the computed expected value,

wherein the first value of the dynamic sync field comprises a pseudorandom value.

11. The device of claim 10 , wherein the dynamic sync field is 4 bits in length.

12. The device of claim 10 , wherein the constant sync value comprises the bit string “10110001”.

13. The device of claim 11 , wherein when the first value is represented in MSB (Most Significant Bit) first order as {S4, S3, S2, S1}, then the expected value of the dynamic sync field of the next occurrence of the synchronization field in MSB first order is {S3, S2, S1, (S4 XOR S3)}, where XOR is the “exclusive or” operation.

14. An electronic device that synchronizes with another electronic device on a wired bus using a synchronization field, the synchronization field comprising a constant sync field and a dynamic sync field, the constant sync field having a constant sync value, the electronic device comprising:

a memory storing executable instructions; and

a processor in communication with the memory configured to execute the instructions to cause the device to:

transmit in a first frame within a bitstream of data on the wired bus a first instance of the synchronization field, the dynamic sync field of the first instance having a first dynamic sync value; and

transmit in a second frame within the bitstream, the second frame being successive to the first frame, a second instance of the synchronization field, the dynamic sync field of the second instance having a second dynamic sync value, wherein the second dynamic sync value can be determined from the first dynamic sync value;

wherein the first dynamic sync value comprises a pseudorandom value.

15. The device of claim 14 , wherein the dynamic sync field is 4 bits in length.

16. The device of claim 14 , wherein the constant sync value comprises the bit string “10110001”.

17. The device of claim 15 , wherein the processor is further configured to cause the device to set the dynamic sync field to “1111” a first time that the synchronization field is transmitted after reset.

18. The device of claim 15 , wherein when the first dynamic sync value is represented in MSB (Most Significant Bit) first order as {S4, S3, S2, S1}, the second dynamic sync value in MSB first order is {S3, S2, 51, S4 XOR S3}, where XOR is the “exclusive or” operation.

19. A non-transitory computer readable medium comprising instructions executable on a processor of an electronic device that synchronizes to another electronic device on a wired bus using a synchronization field, the instructions causing the processor to execute a method comprising:

receiving a bitstream of data on the wired bus, the bitstream comprising occurrences of the synchronization field, the synchronization field comprising a constant sync field and a dynamic sync field, the constant sync field having a constant sync value;

locating a first occurrence of the synchronization field in the received bitstream by searching for the constant sync value of the constant sync field;

reading a first value of the dynamic sync field of the located first occurrence of the synchronization field;

based on the first value computing an expected value of the dynamic sync field of a next occurrence of the synchronization field;

locating the next occurrence of the synchronization field by searching again for the constant sync value of the constant sync field in the bitstream;

reading a second value of the dynamic sync field of the located next occurrence of the synchronization field; and

verifying that the second value is equal to the computed expected value,

wherein the first value of the dynamic sync field comprises a pseudorandom value.

20. A non-transitory computer readable medium comprising instructions executable on a processor of an electronic device that synchronizes with another electronic device on a wired bus using a synchronization field, the synchronization field comprising a constant sync field and a dynamic sync field, the constant sync field having a constant sync value, the instructions causing the processor to execute a method comprising:

transmitting in a first frame within a bitstream of data on the wired bus, a first instance of the synchronization field, the dynamic sync field of the first instance having a first dynamic sync value; and

transmitting in a second frame within the bitstream, the second frame being successive to the first frame, a second instance of the synchronization field, the dynamic sync field of the second instance having a second dynamic sync value, wherein the second dynamic sync value can be determined from the first dynamic sync value;

wherein the first dynamic sync value comprises a pseudorandom value.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
CHANGE OF NAME Recorded Mar 15, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 038087/0963 →
Continuity (6)
Continuation 13803393 · Mar 14, 2013
Continuation In Part 13784547 · Mar 4, 2013
Provisional Application 61714156 · Oct 15, 2012
Provisional Application 61654386 · Jun 1, 2012
Provisional Application 61654287 · Jun 1, 2012
Related Publication 20160147686A1 · May 26, 2016