IP Library Granted Patent US 9,819,498
Granted Patent B2
US 9,819,498 · App. 13/576,077 · Granted Nov 14, 2017

System and method for wireless re-programming of memory in a communication system

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,819,498
App. No.
13/576,077
Granted
Nov 14, 2017
Kind
B2
Abstract

The invention relates to a system and method of re-programming memory, and in particular, to wirelessly re-programming software, such as the application code, residing in memory of a trainable transceiver. The wireless re-programming of memory allows for software in the trainable transceiver to be updated or replaced from a remote location, where a direct or wired connection to the product is not otherwise available.

Claims (46)

1. A method of programming memory in a wireless control system using a remote device, comprising:

providing new application code to the remote device, the new application code configured to enable the wireless control system to train to and control a first one or more remote receiver devices;

independent of receiving a communication from one of the first one or more remote receiver devices, receiving the new application code from the remote device using wireless communication between the wireless control system and the remote device;

updating, by a boot loader of the wireless control system, an existing application code stored in the memory of the wireless control system with the new application code by controlling reprogramming of the existing application code in the memory of the wireless control system, the existing application code configured to enable the wireless control system to train to and control a second one or more remote receiver devices, wherein the first one or more remote receiver devices includes at least one remote receiver device not included in the second one or more remote receiver devices, such that updating the existing application code with the new application code newly enables the wireless control system to train to and control the at least one remote receiver device not included in the second one or more remote receiver devices;

entering into a programming mode on the wireless control system;

authenticating the communication between the wireless control system and the remote device, wherein the authentication of the communication includes:

transmitting information including at least one of a part number, a serial number, an application version, or a boot loader version of the wireless control system from the wireless control system to the remote device;

verifying, at the remote device, that the new application code is compatible with the information;

in response to the application code being compatible with the information, sending a challenge from the remote device to the wireless control system and sending an acknowledgement of the challenge from the wireless control system to the remote device; and

in response to the application code not being compatible with the information, ending communication between the remote device and the wireless control system; and

indicating a status of the authentication of the communication.

2. The method of programming memory of claim 1 , wherein the application code is encrypted with a common key and appended with header information.

3. The method of programming memory of claim 2 , further comprising:

extracting the header information;

decrypting at least a first block of data with the common key;

storing data in a program code buffer in the remote device for sending to the wireless control system; and

sending the at least one data block from the remote device to the wireless control system until an end of data is reached.

4. The method of programming memory of claim 3 , further comprising:

receiving the at least first block of data from the remote device;

verifying the integrity of the at least first block of data;

determining an end of transmission of the at least first block of data; and programming at least part of the memory of the wireless control system with the application code.

5. A system for programming memory, comprising:

a wireless control system including at least a transceiver circuit, a boot loader, and memory, the memory storing an existing application code configured to enable the wireless control system to train to and control a first one or more remote receiver devices; and

a remote device including at least a second transceiver circuit and second memory and configured to be provided a new application code configured to enable the wireless control system to train to and control a second one or more remote receiver devices, wherein the second one or more remote receiver devices includes at least one remote receiver device not included in the first one or more remote receiver devices,

wherein the remote device is configured to wirelessly transmit the new application code stored in the second memory of the remote device to the wireless control system,

wherein the wireless control system is configured to receive the new application code using the transceiver circuit independent of receiving a communication from one of the first one or more remote receiver devices,

wherein the boot loader of the wireless control system is configured to update the existing application code with the new application code by controlling reprogramming of the existing application code in the memory of the wireless control system, such that the updating newly enables the wireless control system to train to and control the at least one remote receiver device not included in the first one or more remote receiver devices,

wherein the wireless control system is configured to:

enter into a programming mode in response to an input and

transmit information including at least one of a part number, a serial number, an application version, or a boot loader version of the wireless control system to the remote device; and

wherein the remote device is configured to:

verify that the new application code is compatible with the information, and

in response to the application code being compatible with the information, send a challenge to the wireless control system and receive an acknowledgement of the challenge from the wireless control system; and

in response to the application code not being compatible with the information, end communication between the remote device and the wireless control system; and

wherein the wireless control system is further configured to indicate a status of the authenticating the communication.

6. The system for programming memory of claim 5 , wherein the application code is encrypted with a common key and appended with header information.

7. The system for programming memory of claim 6 , wherein the remote device is configured to:

extract the header information;

decrypt at least a first block of data with the common key;

store data in a program code buffer in the remote device for sending to the wireless control system; and

send the at least one data block to the wireless control system until an end of data is reached.

8. The system for programming memory of claim 7 , wherein the wireless control system is configured to:

receive the at least first block of data from the remote device;

verify the integrity of the at least first block of data;

determine an end of transmission of the at least first block of data; and

program at least part of the memory of the wireless control system with the application code.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR, IT SHOULD BE JOHNSON CONTROLS TECHNOLOGY COMPANY. PREVIOUSLY RECORDED ON REEL 032514 FRAME 0564. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Recorded Apr 11, 2014
From: JOHNSON CONTROLS TECHNOLOGY COMPANY
To: GENTEX CORPORATION
Reel/Frame 032664/0688 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR, SHOULD BE JOHNSON CONTROLS TECHNOLOGY COMPANY. ADDITIONAL CORRECTIVE ASSIGNMENT RECORDED @ 032514/0564. PREVIOUSLY RECORDED ON REEL 032471 FRAME 0695. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Recorded Apr 7, 2014
From: JOHNSON CONTROLS TECHNOLOGY COMPANY
To: GENTEX CORPORATION
Reel/Frame 032621/0757 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT # 5703941 IS INCORRECT AND SHOULD BE 6703941. PATENT # 6330569 IS INCORRECT AND SHOULD BE 8330569. PREVIOUSLY RECORDED ON REEL 032471 FRAME 0695. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Recorded Mar 21, 2014
From: GENTEX CORPORATION
To: GENTEX CORPORATION
Reel/Frame 032514/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2014
From: GENTEX CORPORATION
To: GENTEX CORPORATION
Reel/Frame 032471/0695 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2012
From: VUYST, CHRIS H.; WITKOWSKI, TODD R.; SHEARER, CARL L.; GEERLINGS, STEVEN L.; KLAVER, THOMAS D.
To: JOHNSON CONTROLS TECHNOLOGY COMPANY
Reel/Frame 028819/0962 →