Methods and associated systems for storing instructions in program memory
By collaborating with a contactless transponder and reader, and utilizing an NFC transponder for wired bus programming, the problem of requiring power supply and connection cables for microcontroller firmware programming in existing technologies is solved. This enables simultaneous programming of multiple products and "in-box" programming, improving the operational robustness of the production line and simplifying maintenance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-09-03
- Publication Date
- 2026-04-03
AI Technical Summary
Existing technologies require powering the product and connecting cables when performing initial firmware programming or upgrades on microcontrollers, and cannot program multiple products simultaneously. Furthermore, wireless technology requires too much firmware and pre-pairing in the bootloader, making it unsuitable as an initial programming solution.
It employs a contactless transponder and a contactless reader in collaboration, programmed via a wired bus, and uses an NFC transponder as a bridge to achieve contactless communication, directly transmitting software program instructions to the module, thus avoiding the need for product power supply and connection cables.
It enables simultaneous programming of multiple products on the production line, reduces manual operation steps, improves product robustness, reduces equipment costs and maintenance complexity, supports "in-box" programming, and simplifies production line operation.
Smart Images

Figure CN114138313B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to French patent application No. 2008956, filed on September 3, 2020, which is incorporated herein by reference. Technical Field
[0003] The application relates to storing instructions in program memory and an associated system. Background Technology
[0004] On the production line, firmware is downloaded to the flash memory of the microcontroller (MCU). After production, the firmware may need to be downloaded to the MCU flash memory for upgrades. Initial programming or upgrade programming may require powering the product or application and connecting a cable to an external connector or, after opening the product, to an internal connector.
[0005] This connection can be wired or wireless. Known examples of wired solutions use a JTAG connector. Communication buses such as USB or UART are another type of wired solution. Known ways to avoid wiring include using wireless communication such as Bluetooth or WiFi. Summary of the Invention
[0006] In one embodiment, a system includes a contactless reader and a device. The device includes a contactless transponder, which includes a contactless interface and a transponder wired interface, and is configured to communicate with the contactless reader via the contactless interface according to a contactless protocol. The device includes a bus coupled to the transponder wired interface and at least one module coupled to the bus, the at least one module including processing circuitry, and the contactless reader is configured to transmit instructions of a software program executable by the processing circuitry to the at least one module via the contactless transponder.
[0007] The embodiment includes a method for storing software program instructions in a memory of at least one module having processing circuitry. The method includes: providing a transponder including a contactless interface and a transponder wired interface; coupling a bus between the transponder wired interface and at least one module; causing a reader to transmit software program instructions to the transponder via the contactless interface according to a contactless protocol; and causing the transponder to transmit the software program instructions on the bus to at least one module. Attached Figure Description
[0008] Various advantages and features of the embodiments will become apparent in the following detailed description and non-limiting drawings, wherein:
[0009] Figure 1 An example of a system according to an embodiment of the present invention is illustrated;
[0010] Figure 2 The illustration shows a non-limiting example of controllable energy harvesting according to an embodiment of the present invention;
[0011] Figure 3 The illustration shows the labels of an integrated set according to an embodiment of the present invention;
[0012] Figure 4 The illustration shows the transmission of data in 8-bit packets (bytes) on an I2C bus according to an embodiment of the present invention;
[0013] Figure 5 The illustration shows a master transmitter that addresses a slave receiver using a 7-bit address according to an embodiment of the present invention;
[0014] Figure 6 The illustration shows a master computer reading the slave device immediately after the first byte, according to an embodiment of the present invention.
[0015] Figure 7 The illustration shows an NFC / RFID reader that, according to an embodiment of the present invention, sends RF commands to an NFC / RFID tag to program the number of I2C bytes to be read;
[0016] Figure 8 The illustration shows an NFC / RFID reader that sends an RF write command to an NFC / RFID tag according to an embodiment of the present invention;
[0017] Figure 9 The diagram illustrates an I2C pass-through state machine that reads I2C bytes from a buffer and sends the I2C bytes to the corresponding slave module via the I2C bus, thereby adding signaling conditions.
[0018] Figure 10 The illustration shows an NFC / RFID reader that sends an RF read command to an NFC / RFID tag to check whether the I2C operation has been terminated, according to an embodiment of the present invention.
[0019] Figure 11 The illustration shows an NFC / RFID reader that sends an RF read command to an NFC / RFID tag to read the acknowledgment bit value contained in the register RGK to check whether the I2C write operation was successful, according to an embodiment of the present invention.
[0020] Figure 12 An example of an RF pass-through state machine according to an embodiment of the present invention is illustrated;
[0021] Figure 13 An example of an I2C pass-through state machine according to an embodiment of the present invention is illustrated;
[0022] Figure 14An example flowchart illustrating a method for storing software program instructions in the memory of a module according to an embodiment of the present invention is shown.
[0023] Figure 15 The illustration shows steps according to an embodiment of the invention, wherein the reader sends a specific RF command to the tag to configure the microcontroller in bootloader mode;
[0024] Figure 16 The illustration shows a reader sending an RF write command to a tag according to an embodiment of the present invention;
[0025] Figure 17 An embodiment of the present invention using the I2C bus is illustrated, and
[0026] Figure 18 The illustration shows an example of a mark compatible with the use of the SPI protocol according to an embodiment of the present invention;
[0027] Figure 19 The illustration shows a host machine connected to one or more slave machines via four or more lines according to an embodiment of the present invention;
[0028] Figure 20 The illustration shows that, according to an embodiment of the present invention, the SPI bus based on data exchange in a shift register is full-duplex;
[0029] Figure 21 The illustration shows data sampled on an SCLK having configurable phase CPHA and polarity according to an embodiment of the present invention;
[0030] Figure 22 An example of an RF pass-through state machine according to an embodiment of the present invention is described in detail;
[0031] Figure 23 An example of an SPI pass-through state machine according to an embodiment of the present invention is described in detail. Detailed Implementation
[0032] Embodiments of the present invention relate to storing software program instructions (e.g., instructions for firmware (FW)) into the memory (e.g., flash memory) of a module (e.g., a microcontroller (MCU)) having processing circuitry.
[0033] However, initial firmware programming or upgrades not only require powering the product, but also necessitate opening the product if a specific external connector is unavailable. For communication, a cable must be connected to the MCU, which is typically done manually. Therefore, there is a possibility of connector breakage or degradation during operation.
[0034] Furthermore, it is impossible to program multiple products simultaneously (i.e., product boards packaged together), and it is impossible to perform "in-box" programming, i.e., programming a fully packaged product without physical access connectors.
[0035] Known wired technologies (such as JTAG connectors) require wiring and power. Known wireless technologies (such as Bluetooth or WiFi) do not provide power and require too much firmware to be included in the bootloader, as well as pre-pairing to allow communication. Therefore, these technologies cannot be used as an initial programming solution.
[0036] The embodiments present a more robust product programming approach with fewer manual steps in production. The embodiments also provide the possibility of programming multiple products simultaneously.
[0037] The embodiments also provide the possibility of "in-box" programming, that is, allowing the FW to be programmed at the very end of the production line, which allows for customization at the end of the production line. The embodiments also provide reduced and simplified product maintenance.
[0038] According to an embodiment, it is proposed to use a contactless transponder (e.g., an NFC transponder) to cooperate contactlessly with a contactless reader (e.g., an NFC reader) and with the processing circuitry (e.g., a microcontroller) of a module to be programmed via a wired bus (e.g., an I2C or SPI bus) and to transmit program instructions from the reader to the module via the transponder.
[0039] Therefore, there is no need to open the product (module) to connect cables or have external connectors, thus reducing manual steps in the production line. Consequently, the embodiment provides better product or application robustness (no connector wear). Product maintenance is reduced and simplified.
[0040] It also allows for simultaneous programming of multiple modules (all modules existing in the same RF field can be programmed at the same time).
[0041] "In-box" programming is also possible, such as programming the FW at the very end of the production line, which allows for customization at the end of the production line.
[0042] There is no need to power the module (e.g., the microcontroller) internally, because if the transponder is provided with, for example, a battery, the power can come from the transponder or from the reader field.
[0043] According to one approach, a system has been proposed that includes contactless readers and devices, such as IoT (Internet of Things) objects, connected watches, connected gas meters, but these examples are not limited.
[0044] The device includes a contactless transponder, such as an NFC / RFID transponder.
[0045] The transponder includes a contactless interface and a wired transponder interface, and is configured to communicate with the reader via the contactless interface according to a contactless protocol.
[0046] The device includes a bus (e.g., an internal integrated circuit (I2C) bus, an SPI bus, or a so-called SMBus) coupled to a wired interface of the transponder and at least one module (e.g., a microcontroller) coupled to the bus.
[0047] The at least one module includes processing circuitry.
[0048] The reader is configured to transmit instructions (e.g., firmware instructions) of a software program executable by processing circuitry to at least one module via a transponder.
[0049] Embodiments of the present invention are particularly suitable for NFC transponders, such as tags, which are intended to serve as a bridge between the external contactless communication device (reader) (e.g., a cellular mobile phone, more commonly known as a "smartphone") and the device(s) modules.
[0050] Such transponders used as gateways can also be called "dynamic transponders" or "dynamic tags".
[0051] Near Field Communication (NFC) is a wireless connectivity technology that allows short-range (e.g., 10 cm) communication between electronic devices (such as contactless smart cards or tags) and readers.
[0052] NFC technology is particularly well-suited for connecting any type of user device and allows for fast and easy communication.
[0053] A contactless transponder is a transponder that can exchange information with a contactless reader via an antenna according to a contactless communication protocol.
[0054] An NFC transponder, as a contactless transponder, is a transponder compatible with NFC technology.
[0055] NFC technology is an open standard technology platform in ISO / IEC 18092 and ISO / IEC 21481, but it incorporates many existing standards, such as the Class A and Class B protocols defined in ISO-14443, which can be communication protocols that can be used in NFC technology.
[0056] Non-contact technology can also be used in radio frequency identification (RFID) transponders that are compatible with ISO 15693 and ISO 18000-3.
[0057] When information is transmitted between the reader and the transponder, the reader generates a magnetic field via its antenna, which is typically a 13.56 MHz sine wave (carrier) in the standard used in common practice.
[0058] In order to transmit information from the reader to the transponder, the reader uses amplitude modulation of the carrier wave.
[0059] The transponder includes processing circuitry configured to demodulate the received carrier wave in order to obtain data transmitted from the reader.
[0060] For information transmission from the transponder to the reader, the reader generates a magnetic field (carrier) without modulation.
[0061] The transponder antenna then modulates the field generated by the reader according to the information to be transmitted. The frequency of this modulation corresponds to the subcarrier of the carrier. The frequency of the subcarrier depends on the communication protocol used and may, for example, be equal to 848 kHz.
[0062] This modulation is performed by modifying the load on the terminals connected to the transponder antenna.
[0063] Therefore, two operating modes are possible: passive mode or active mode.
[0064] In passive mode, the transponder inversely modulates the wave from the reader to transmit information and does not integrate the transmission circuitry itself or a transmitter for information transmission; for example, it can generate its own magnetic field during broadcasting. Unlike active transponders that include a transmitter, this type of transponder without a transmitter is called a passive transponder.
[0065] Typically, passive transponders have no power supply because they use waves from the reader to power their integrated circuits.
[0066] In some applications, passive transponders can be combined with a power source, such as a battery.
[0067] In active operation mode, both the reader and the active transponder generate electromagnetic fields. This operation mode is typically used when the active transponder is powered by a battery.
[0068] Each NFC device (reader and transponder) uses a modulation scheme to transmit data. Here, modulation again causes a load modification, which is then referred to as active load modulation communication.
[0069] Compared to passive communication mode, a greater operating distance of up to 20cm is achieved, depending on the protocol used.
[0070] Moreover, the use of active load modulation allows for the use of very small antennas.
[0071] The embodiments disclosed herein are preferably applied to passive transponders, but are also compatible with active transponders.
[0072] Although it is possible to have a master unit within the module, according to an advantageous embodiment, the reader and transponder are configured such that the reader is the master unit on the bus during the transmission of the instructions.
[0073] Although the reader is not directly connected to the wired communication bus, from a system perspective, the reader can actually be considered the host of the application or the host on the bus, because it initiates commands within frames consistent with the contactless protocol, and these commands are translated by the transponder into commands on the bus that are consistent with the protocol used on the bus.
[0074] From a physical perspective, the wired interface that is actually connected to the bus is the host interface.
[0075] Therefore, it can also be said that the reader is a host on a bus connected to the host's wired interface.
[0076] Using this embodiment, it is therefore not necessary to have a host inside the at least one module, which leads to reduced device cost, simplified development, reduced and simplified maintenance, and smaller device size.
[0077] The transponder is advantageously a gateway during the direct transmission of software program instructions between the reader and the at least one module via the transponder.
[0078] The at least one module is also advantageously configured to communicate directly with the reader via the transponder, i.e., without going through any microcontroller.
[0079] According to an embodiment, the at least one module includes a memory (e.g., flash memory), a bootloader, and a bootloader mode, wherein the bootloader is configured to store the instructions into the memory.
[0080] As is well known to those skilled in the art, the bootloader is stored in the microcontroller's internal boot ROM memory (system memory). It is programmed by the microcontroller manufacturer during production. Its primary task is to download the firmware to the internal flash memory via a serial interface (I2C, SPI, etc.).
[0081] Once in bootloader mode, the microcontroller is observing the serial interface to detect programming commands.
[0082] The communication protocol is defined for each serial interface and has a compatible set of commands and sequences.
[0083] The bootloader can typically be activated by setting one or more pins of the dedicated microcontroller to a given level and / or by an internal configuration bit that allows the mode to be activated.
[0084] However, bootloader mode can be activated in different ways. For example, if the flash memory is empty, the microcontroller may automatically boot in bootloader mode. In the case of a firmware update, the microcontroller can be put into bootloader mode by jumping from user code execution to system memory. In this case, it is not necessary to set specific pins to specific voltage levels.
[0085] Bootloader mode can be exited by either exiting the bootloader activation condition and generating a hardware reset or jumping to user code.
[0086] According to an embodiment, the reader is also configured to activate the bootloader mode via a transponder.
[0087] For example, the at least one module has at least one module terminal dedicated to activating the bootloader mode, and the transponder has at least one transponder terminal coupled to the at least one module terminal and is configured to: set the at least one transponder terminal to one or more voltage levels in response to a bootloader mode activation command received from a reader via a contactless interface.
[0088] According to another aspect, a transponder belonging to the system defined above is proposed.
[0089] More specifically, the transponder may include a pass-through circuit configured to implement pass-through functionality for message exchange between the reader and the at least one module during the transmission of instructions from the software program.
[0090] The reader can be configured to initiate at least one first bootloader command within at least one frame consistent with the contactless protocol, the at least one first bootloader command comprising a first data payload including instructions of a software program, and the pass-through circuit can be configured to transform the at least one first bootloader command into at least one second bootloader command on the bus consistent with the protocol used on the bus.
[0091] According to an embodiment, the pass-through circuit includes a first volatile memory configured to buffer a first data payload intended to be sent to the reader via the contactless interface and a corresponding second data payload.
[0092] According to an embodiment, the pass-through circuit further includes a second volatile memory configured to store control data, and the pass-through circuit is configured to implement the pass-through function for message exchange between the reader and the at least one module based on the control data.
[0093] According to an embodiment, the pass-through circuit further includes: a first state machine configured to cooperate with the reader via a contactless interface and configured to write / read a portion of the first memory and the second memory based on commands received from the reader; and a second state machine configured to cooperate with the bus via the wired interface based on the contents of a portion of the second memory and configured to write / read a portion of the first memory and the second memory.
[0094] According to an embodiment, the second state machine is configured to read the first data payload from the first volatile memory and execute them on the bus to manage the clock and all bus protocol signaling information.
[0095] According to an embodiment, the second state machine is configured to read bus responses and store them in a first volatile memory so that the response can be read by the first state machine.
[0096] When the bus is an I2C bus, the at least one first bootloader command initiated by the reader may include at least one request for a write operation to the at least one module.
[0097] The at least one request for a write operation to the at least one module may include the address of the at least one module, a specific command code, and at least some instructions to be written to the memory.
[0098] When the bus is an SPI bus, the at least one first bootloader command initiated by the reader may include at least one write command.
[0099] According to an advantageous embodiment, the transponder includes a controllable energy harvesting circuit configured to power the at least one module, and the reader is configured to send a specific command to the transponder to activate the energy harvesting circuit.
[0100] According to another perspective, a reader belonging to the system defined above has also been proposed.
[0101] According to another aspect, a device belonging to the system defined above has also been proposed.
[0102] According to another aspect, a method for storing software program instructions in a memory of at least one module having processing circuitry has been proposed.
[0103] The method includes: providing a transponder comprising a contactless interface and a transponder wired interface; coupling a bus between the transponder wired interface and the at least one module; causing the reader to transmit software program instructions to the transponder via the contactless interface according to a contactless protocol; and causing the transponder to transmit software program instructions on the bus to the at least one module.
[0104] According to an embodiment, the method further includes: causing the reader to act as a host on the bus during the transmission of the software program instructions.
[0105] According to an embodiment, the method includes: providing a memory and a bootloader for the at least one module; placing the at least one module in bootloader mode; and causing the bootloader to store the software program instructions into the memory.
[0106] According to an embodiment, the method further includes enabling the reader to activate the bootloader mode via the transponder.
[0107] According to an embodiment, the method further includes: providing at least one module terminal for the at least one module to be used for activating a bootloader mode; providing at least one transponder terminal coupled to the at least one module terminal for the transponder; causing the reader to send a bootloader mode activation command to the transponder via a contactless interface; and causing the transponder to set the at least one transponder terminal to at least one voltage level in response to the bootloader mode activation command.
[0108] According to an embodiment, the method further includes: storing control data by a transponder; and implementing a pass-through function for message exchange between the reader and the at least one module based on the control data during the transmission of instructions from the software program.
[0109] According to an embodiment, the method includes: causing a reader to initiate at least one first bootloader command within at least one frame consistent with the contactless protocol, the at least one first bootloader command including a first data payload comprising instructions of a software program; and causing the pass-through function to transform the at least one first bootloader command into at least one second bootloader command on a bus consistent with a protocol used on the bus.
[0110] According to an embodiment, the method further includes: providing a transponder with a controllable energy harvesting circuit configured to power the at least one module, and causing a reader to send a specific command to the transponder to activate the energy harvesting circuit.
[0111] like Figure 1As shown, an example of a system SYS according to an embodiment of the present invention is illustrated, wherein an NFC / RFID reader RD can act as an I2C host for an application or device APP to deliver firmware instructions to a module MD, such as a microcontroller, including a processing circuit PRU configured to execute the firmware.
[0112] In other words, the reader RD is configured to communicate directly with the module MD of the device APP via the contactless interface INT1 of the NFC / RFID dual-interface transponder (or tag) TG.
[0113] Although the reader RD is not directly connected to the bus BS (here, the I2C bus), the reader RD can be considered as the actual host of the application or the host on the I2C bus, because it initiates commands within the RF frame, and these commands are translated into I2C commands for the I2C bus that are consistent with the I2C protocol.
[0114] The I2C interface INT2 of the tag or transponder TG is actually connected to the I2C bus BS. This interface (also known as the wired transponder interface INT2) is the host interface.
[0115] Therefore, it can also be said that the reader is the host on the BS bus via the I2C host interface INT2.
[0116] The module MD also includes an I2C slave interface INTD connected to the bus BS and a memory MF designed to store firmware, such as flash memory.
[0117] The module MD also includes the known bootloader BLD and at least one module terminal, here three module terminals GPC1 to GPC3, which are coupled to three transponder terminals GPO1 to GPO3 respectively.
[0118] The TG label also includes a control circuit GPOCTRL, which is configured to set the transponder terminals GPO1 to GPO3 and thus the module terminals GPC1 to GPC3 to the corresponding voltage levels in response to a bootloader mode activation command received from the reader via the contactless interface INT1.
[0119] In this example, upon receiving the bootloader mode activation command, the module is placed in bootloader mode and the bootloader is activated.
[0120] This will be explained in more detail later.
[0121] In this embodiment, the marker TG also includes a controllable energy harvesting circuit EHM, which has a known structure, is configured to power the module MD using the power supply voltage VCC, and the reader is configured to send a specific command to the transponder to activate the energy harvesting circuit EHM.
[0122] More precisely, a non-limiting example of a controllable energy harvesting circuit (EHM) is shown in Figure 2 The diagram is shown schematically.
[0123] When an NFC / RFID tag (TG) receives more power from the RF field generated by the reader than it needs to power itself, a portion of the received energy can be used to power an external device (here, module MD).
[0124] The circuit EHM can embed a diode rectifier bridge RBR, whose output is controlled by a MOS switch MSW.
[0125] When the MOS switch MSW is turned on, no voltage is delivered to the EHM output EHMS.
[0126] When the MOS switch MSW is turned off, the rectified voltage from the marked antenna coil ANT1 is delivered to the output EHMS to power external devices (i.e., modules or microcontrollers MD).
[0127] The EHM on / off switch can be controlled via the dedicated command EHMCTRL.
[0128] In addition to the circuit just described, the TG marking integrates... Figure 3 The circuit set ENS is illustrated in more detail above.
[0129] This tag TG can be used as a gateway to allow the exchange of messages between the reader and module MD, during which the reader is the host and the wired interface INT2 is the host on the bus BS.
[0130] An example of such marking and its operation is described in PCT application filed on May 14, 2020, under PCT / EP2020 / 063427.
[0131] Those skilled in the art may refer to this PCT application.
[0132] This PCT application is incorporated herein by reference.
[0133] Some features of the markings, and more specifically some exchange steps used in this invention, are now highlighted.
[0134] like Figure 3 As shown, the TG marker is in Figure 1 The circuit set is integrated within the ENS:
[0135] Non-volatile memory (NVM), such as EEPROM,
[0136] The first volatile memory, such as a buffer BF (FIFO), is used to store I2C bytes.
[0137] The second volatile memory includes multiple registers, such as the following:
[0138] The RGW register is used to store the number of I2C bytes to be written.
[0139] Register RGD is used to store the number of I2C bytes to be read.
[0140] The RGC register (containing one bit) is used to signal that an I2C command exists in the buffer BF.
[0141] The register RGR (containing one bit) is used to signal that an I2C response exists in buffer BF.
[0142] The RGK register (containing one bit) is used to record the acknowledgment bit value. The RGK register is reset when read.
[0143] State machine SM1 for RF pass-through control
[0144] SM2, a state machine for I2C pass-through control
[0145] This marking TG can be implemented, for example, by an integrated circuit or chip, such as an integrated circuit from STMicroelectronics' series of integrated circuits with the reference numeral ST25.
[0146] The I2C protocol is well known to those skilled in the art and can be found in the I2C specification. Some features of the I2C protocol are now highlighted.
[0147] The I2C bus uses two wires: Serial Data (SDA) and Serial Clock (SCL).
[0148] All I2C master and slave devices are connected using only these two wires.
[0149] The device acting as the master generates the bus clock and initiates communication on the bus, while other devices are slaves and respond to commands on the bus.
[0150] In order to communicate with a specific device, each slave device must have a unique address on the bus.
[0151] I2C master devices do not need addresses because no other (slave) devices send commands to the master.
[0152] Both signals SCL and SDA are bidirectional.
[0153] One bit of data is transmitted for each clock pulse. The SDA signal can only change when the SCL signal is low. When the clock is high, the data should remain stable.
[0154] Every I2C command initiated by the host device begins with a start condition and ends with a stop condition. For both cases, SCL must be high. A high-to-low transition of SDA is considered a start, and a low-to-high transition is considered a stop.
[0155] After the start condition is met, the bus is considered busy.
[0156] After the start condition, the host can generate a repeating start. This is equivalent to a normal start and is usually followed by the slave's I2C address.
[0157] Figure 4 , Figure 5 and Figure 6 (Excerpt from I2C specification version 6.0, April 4, 2014) This diagram illustrates the features of the I2C protocol.
[0158] like Figure 4 As illustrated, data on the I2C bus is transmitted in 8-bit packets (bytes). There is no limit to the number of bytes; however, each byte must be followed by an ACK bit from the slave device. This ACK bit signals to the slave device whether it is ready to continue with the next byte. The master device must generate a clock pulse for all data bits and the ACK bit. If the slave device does not acknowledge the transmission, it means there is no more data or the device is not yet ready to transmit. The master device must then generate a stop or repeat start condition.
[0159] Data is first transmitted in the most significant bit (MSB). If the slave device cannot receive or transmit another full byte of data before performing some other function (such as providing an internal interrupt), it can hold the clock line SCL low to force the master into a wait state. Data transmission continues when the slave device prepares another byte of data and releases the clock line SCL.
[0160] like Figure 5 and Figure 6 As shown in the diagram, each slave device on the bus should have a unique 7-bit address.
[0161] Communication begins with a start condition, followed by a 7-bit slave address and data direction bits R / W.
[0162] If the R / W bit is 0 ( Figure 5 If the data direction bit R / W is 1, then the master will write to the slave device. Otherwise, if the data direction bit R / W is 1, the master will read from the slave device. Figure 6 ).
[0163] After the slave address and data direction bits R / W are sent, the master can continue reading or writing.
[0164] Communication ends with a stop condition that also signals that the I2C bus is idle.
[0165] If the master needs to communicate with other slaves, it can generate a repeat start with another slave address without generating a stop condition.
[0166] If the master only writes to the slave device, then the data transmission direction will not be changed. Figure 5 The slave receiver acknowledges each byte.
[0167] If the master only needs to read from the slave device, it only sends an I2C address with the R / W bits set to read. After this, the master device begins reading data. Figure 6 ).
[0168] At the moment of the first acknowledgment, the master transmitter becomes the master receiver, and the slave receiver becomes the slave transmitter. This first acknowledgment A is still generated by the slave. The master generates subsequent acknowledgments. The stop condition is generated by the master, which only sends a non-acknowledgment before the stop condition.
[0169] Figures 7 to 11 An example of the sequential steps in the process of writing bytes into a slave module is provided, which are sent by the reader RD for transmission to the slave module of the device APP.
[0170] As will be explained in more detail later, this process of writing bytes will be used to transmit firmware instructions from the reader RD to the slave module MD.
[0171] like Figure 7 As illustrated, the NFC / RFID reader RD sends (step S7) RF command 700 to the NFC / RFID tag to program the number of I2C bytes to be read.
[0172] RF command 700 has a conventional structure that conforms to the RF protocol used, and the number of I2C bytes to be read is included in the data payload of RF command 700.
[0173] The value for the number of I2C bytes to be read here is 0, because there are no bytes to be read on the I2C bus.
[0174] The number of I2C bytes to be read is extracted from the RF command by state machine SM1 (RF pass-through control) and also written to register RGD by state machine SM1 (RF pass-through control).
[0175] Registers RGC and RGR contain a value of 0, while register RGK contains a value of 1.
[0176] like Figure 8 As illustrated, the NFC / RFID reader RD sends (step S8) RF write command 800 to the NFC / RFID tag.
[0177] The RF command 800 contains the I2C bytes to be written to the I2C bus and the I2C slave address of the slave module intended to receive those I2C bytes.
[0178] The I2C slave address and I2C bytes form a complete I2C message, intended to be delivered to the I2C bus, but there is no I2C signaling information; that is, there are no start and stop conditions here.
[0179] The first byte of the I2C slave address includes the R / W bit set to "write".
[0180] This will toggle the "I2C command in buffer" bit in register RGC.
[0181] In other words, register RGC is set to 1 by state machine SM1 (RF pass-through control).
[0182] The state machine SM1 (RF pass-through control) stores x I2C bytes into buffer BF and updates register RGW with x I2C bytes to write to the specified slave module.
[0183] like Figure 9 As shown in the diagram, the I2C pass-through state machine SM2 reads I2C bytes from the buffer BF and sends them to the corresponding slave module via the I2C bus, thereby adding signaling conditions (start and stop conditions).
[0184] This will toggle the "I2C command in buffer" bit in register RGC.
[0185] In other words, register RGC is reset to 0 by state machine SM2.
[0186] The I2C pass-through state machine SM2 reads the acknowledgment bit sent by the I2C slave module from the I2C bus and stores the value 0 in the "Ack" register bit RGK.
[0187] like Figure 10 As illustrated, the NFC / RFID reader RD sends (step S10) RF read command 1000 to the NFC / RFID tag to check whether the I2C operation has been terminated (polling).
[0188] When the RF read command 1000 is received, the RF state machine SM1 reads the "I2C command in buffer" bit contained in the register RGC.
[0189] The value of this bit is sent to the reader RD via RF response 1001, which has a standard structure conforming to the RF protocol used.
[0190] If the value of this bit is 0, the I2C write operation ends.
[0191] like Figure 11 As illustrated, the NFC / RFID reader RD sends an RF read command 1100 (step S11) to the NFC / RFID tag to read the acknowledgment bit value contained in the register RGK to check whether the I2C write operation was successful. If the acknowledgment bit value is 0, the write operation is successful.
[0192] More precisely, the RF command 1100 is processed by the RF state machine SM1, which reads the value contained in the register RGK, sends it to the reader RD via the RF response 1101, and resets the value of the register RGK to the value 1.
[0193] From and Figures 7 to 11 As can be seen from the relevant explanation, registers RGD, RGW, RGC, RGR, and RGK contain control (also known as configuration) data (one or more bits), which allows for determining, for example, whether an operation exists or not to be performed, the type of operation (write or read operation), the status of the operation (e.g., termination), or the result of the operation (e.g., success).
[0194] Those control registers are read and / or written by:
[0195] - When the RF state machine SM1 receives an RF command (request) sent by the reader, or
[0196] -By I2C state machine SM2.
[0197] More precisely, registers RGD, RGW, and RGC are written by the RF state machine SM1.
[0198] For example, if the RGC register contains the value 0, it means that there is no I2C command to be executed by the I2C state machine SM2.
[0199] If the RGC register contains the value 1, it indicates that there is an I2C command to be executed by the I2C state machine SM2, which is either a write operation or a read operation.
[0200] The type of operation (read or write) is determined by the contents of registers RGD and RGW.
[0201] More precisely, if the value contained in register RGD is empty and the value contained in register RGW is not empty, then the operation requested by the reader is a write operation.
[0202] If the value contained in register RGW is empty and the value contained in register RGD is not empty, then the operation requested by the reader is a read operation.
[0203] Registers RGW and RGD are also read by state machine SM2 to know the number of bytes written or read in the specified slave module.
[0204] Register RGC is also read by state machine SM2 to know whether a command should be executed on the bus, and is also written to state machine SM2 when command execution has started.
[0205] The RGC register is also read by the state machine SM1 when a reader requests it, to know whether the execution of the requested command has been terminated.
[0206] The register RGR is written by state machine SM2 to indicate that the read byte is stored in buffer BF, and the register RGR is also read by state machine SM1 when the reader requests it to check whether the I2C read operation has been terminated.
[0207] The register RGK (e.g., initially set to 1) is written by state machine SM2 when an acknowledgment bit is received, read by state machine SM1 when the reader RD requests it to check whether the read or write operation was successful, and then reset to 1 by state machine SM1.
[0208] Among these control data, the data contained in registers RGD and RGW is control data that is sent or derived from the data payload of the command sent by the reader, and defines whether the command from the reader is a write operation or a read operation in the specified slave module.
[0209] The data contained in register RGC is control data that defines whether an operation is to be performed on the bus, or whether it is present or absent.
[0210] The data contained in register RGC is also control data indicating whether the execution of a write operation requested by the reader is terminated, and the data contained in register RGR is control data indicating whether the execution of a read operation requested by the reader is terminated.
[0211] The data contained in register RGR is also control data indicating whether the result of a read operation requested by the reader is stored in the transponder.
[0212] The data contained in register RGK is control data indicating whether a read or write operation requested by the reader was successful.
[0213] Figure 12 An example of the RF pass-through state machine SM1 is described in detail, and Figure 13 An example of the I2C pass-through state machine SM2 is detailed, both of which allow for specific implementations. Figures 7 to 11 The steps disclosed in the document.
[0214] Having brought up these general considerations, we now refer to more specific examples. Figures 14 to 17 The embodiments of the present invention will be described below.
[0215] Figure 14 The diagram illustrates an example flowchart of a method for storing software program instructions in the memory (e.g., flash memory) MF of a module (here, a microcontroller) MD.
[0216] In step STP1, the reader RD enables communication with the tag TG by transmitting an RF field specified by the NFC / RFID standard in use.
[0217] The marker is powered by the reader field.
[0218] In step STP2, the reader sends a specific RF command to the marker to modify the levels of pins or terminals GPO1 to GPO3 and therefore GPC1 to GPC3 in order to configure the microcontroller in bootloader mode.
[0219] In fact, it is assumed here that the microcontroller MD requires pins GPCO1 to GPCO3 to be set to specific levels in order to enter bootloader mode.
[0220] In step STP3, the reader sends a specific RF command to the tag to activate the energy harvesting circuit (EHM) and thus power the microcontroller.
[0221] The microcontroller then boots in bootloader mode.
[0222] In step STP4, the reader sends a specific RF command to the tag to send an I2C command to the microcontroller.
[0223] This step, STP4, allows the firmware to be downloaded into the microcontroller's flash memory (MF).
[0224] Once programming is complete, the reader terminates communication with the tag in step STP5. The RF field is removed, and the microcontroller is no longer powered.
[0225] In step STP6, the microcontroller prepares to boot on the new firmware upon the next power-on.
[0226] For more detailed information on step STP2, please refer to [link / reference]. Figure 15 .
[0227] More precisely, the reader RD sends a dedicated RF command 1500 to the marker TG to cause the control circuit GPOCTR to change the output level of terminals GPO1 to GPO3.
[0228] For example, the ISO 15693 specification allows the use of special command codes (so-called custom commands) CMCD followed by IC manufacturer codes ICMC to create special RF commands not defined by the specification.
[0229] Therefore, the dedicated custom command 1500 can be used to modify the levels of terminals GPO1 to GPO3 marked TG. The command payload (located between the beginning of frame SOF and the end of frame EOF) contains the terminal number GPO_id and the corresponding requested output level LGPO.
[0230] After being processed by conventional means of marking, such as decrypting the global state machine of the command from the received RF frame, the command is managed by the control circuit GPOCTR, and depending on the payload value, the control circuit GPOCTR modifies the voltage level of the selected terminal GPOi.
[0231] The tag therefore sends an RF response 1501 to the reader.
[0232] As mentioned above, the NFC / RFID tag then powers the microcontroller via the Energy Harvesting Output (EHMS). The dedicated command EHMCTRL that activates the Energy Harvesting Circuit (EHM) is also decrypted from the received RF frame by the global general state machine.
[0233] The microcontroller then boots in bootloader mode because the microcontroller’s dedicated bootloader terminals GPCO1 to GPCO3 have been set to the correct voltage values by terminals GPO1-GPO3 marked TG.
[0234] Once in bootloader mode, the microcontroller is monitoring the serial interface INTD to detect programming commands.
[0235] When the I2C slave address of the microcontroller MD is detected, the bootloader BLD will execute known received I2C commands, which are specific to each microcontroller and are transmitted in frames using the I2C protocol.
[0236] This will allow firmware instructions to be transferred from the reader RD to the microcontroller MD (step STP4), as will now be explained in more detail.
[0237] Generally, RF commands embed I2C commands in their payloads.
[0238] As shown above (refer to the reference) Figures 7 to 11 As described, RF commands are decoded and executed by tags.
[0239] The marker physically acts as the I2C master (from a system perspective, the reader is the master), and the microcontroller MD acts as the I2C slave in bootloader mode.
[0240] The flag will send the I2C commands received via the RF interface to the microcontroller.
[0241] Those commands specifically contain firmware instructions.
[0242] As mentioned above, the I2C slave address and memory address used to interact with the bootloader are specific to each microcontroller.
[0243] For example, on STMicroelectronics' microcontrollers with the reference numeral STM32, the I2C bootloader command consists of a start condition, a slave address (marker) sent by the master, an acknowledgment (ack) condition from the slave (microcontroller), a specific command code (1 or 2 bytes) sent by the master, an acknowledgment condition from the slave depending on whether the command is sent or received in either of the two possible directions, and ends with a stop condition.
[0244] Figure 16 and Figure 17 The illustration shows an example of a complete sequence of sending bootloader commands from the reader to the microcontroller's bootloader.
[0245] like Figure 16 As illustrated, the reader RD sends an RF write command 1600 to the tag.
[0246] RF command 1600 is a write command, similar to... Figure 8 The write command shown in the diagram.
[0247] The RF command payload is embedded with the first bootloader command, including all bytes of the I2C command to the microcontroller bootloader.
[0248] Specifically, the payload is embedded in the I2C slave address of the microcontroller MD, and I2C byte 1 is a specific bootloader command code BLDCCD.
[0249] The other bytes are firmware instructions to be stored in the flash memory MF of the microcontroller MD.
[0250] Of course, downloading the entire firmware may require multiple write commands.
[0251] The processing of the RF command 1600 is similar to that for... Figure 8 The write command 800 describes the processing.
[0252] like Figure 17 As illustrated, the TG tag then sends the I2C command received from the NFC / RFID reader to the microcontroller on the I2C bus (here, an I2C write frame).
[0253] The processing of this I2C write command is similar to that for... Figure 9 The write command describes the processing.
[0254] Specifically, the I2C pass-through state machine SM2 reads I2C bytes from buffer BF and sends them to the corresponding slave module via the I2C bus, thereby adding signaling conditions (start and stop conditions). This forms a second bootloader command consistent with the I2C protocol. State machine SM2 has thus transformed the first bootloader command embedded in RF command 1600 into the second bootloader command consistent with the I2C protocol.
[0255] The I2C pass-through state machine SM2 reads the acknowledgment bit Ack sent by the I2C slave module from the I2C bus and stores the value 0 in the "Ack" register bit RGK.
[0256] The reader then polls the markers using RF commands to check the status of I2C command execution.
[0257] This polling is as follows: Figure 10 As explained.
[0258] Specifically, the reader RD sends an RF read command to the tag to check whether the I2C operation has been terminated (polling).
[0259] When the RF read command is received, the RF state machine SM1 reads the "I2C command in buffer" bit contained in the register RGC.
[0260] The value of this bit is transmitted via RF response 1601, which has a standard structure conforming to the RF protocol used. Figure 16 The result is sent to the reader RD.
[0261] If the value of this bit is 0, the I2C write operation ends.
[0262] Then, as referenced Figure 11 To explain, the reader RD sends an RF read command to the marker to read the acknowledgment bit value contained in the register RGK to check if the I2C write operation was successful. If the acknowledgment bit value is 0, the write operation (i.e., the download of firmware instructions) is successful.
[0263] Figure 12 and Figure 13 The illustrated examples of RF pass-through state machine SM1 and I2C pass-through state machine SM2 both allow for specific implementations. Figures 14 to 17 The steps of the method disclosed herein, particularly the processing of the first bootloader command and the second bootloader command.
[0264] When the microcontroller's flash memory programming is complete, the NFC / RFID reader can control the levels of the microcontroller's terminals GPCO1 to GPC03 to disable the bootloader, so that the microcontroller's next boot will only occur on the flash memory MF.
[0265] This invention is not limited to the above examples, but can be extended to other RFID technologies: UHF (ISO18000-6, ISO18000-63, EPC Gen2).
[0266] Furthermore, this invention can be extended to other bus protocols.
[0267] Another example of a possible protocol is SPI (Serial Peripheral Interface) (half-duplex or full-duplex transmission).
[0268] As explained in more detail in the PCT application mentioned above.
[0269] Specifically, an example of the TG1 tag compatible with the use of the SPI protocol is in Figure 18 It is publicly available in China.
[0270] The dual-interface transponder (or marker) TG1 integrates: a contactless interface INT10, an SPI master interface INT20, a first volatile memory including a transmit (Tx) buffer (FIFO) BFT for storing SPI bytes to be transmitted and a receive (Rx) buffer (FIFO) BFR for storing received SPI bytes; and a second volatile memory including multiple registers. For example, the multiple registers may include: register RGCF for storing SPI configuration (clock phase / polarity, clock speed, bit order, full / half-duplex transmission mode); register (counter) DCNT for storing the total number of SPI bytes to be transmitted and received; register (counter) TXCNT for storing the number of bytes transmitted in half-duplex transmission mode; shift register SR for storing transmitted and received data in full-duplex mode; register RGRT for storing bits to signal SPI readiness for transmission (Tx buffer has been filled); and register RGTC for storing bits to signal SPI transmission / reception completion (Tx buffer BFT has been cleared and Rx buffer BFR has been filled). The TG1 integrates: a first state machine SM10 for contactless (RF) pass-through control; and a second state machine SM20 for SPI pass-through control.
[0271] The SPI protocol is well known to those skilled in the art.
[0272] Some features of the SPI protocol subsequently... Figures 19 to 21 remind.
[0273] like Figure 19 As illustrated, the master unit is connected to one or more slave units via four (in full-duplex transmission mode) or more lines:
[0274] SCLK: Clock
[0275] MOSI: Master output / slave input used to transfer data to the slave device.
[0276] MISO: Master input for receiving data from the slave device, slave output.
[0277] SS: Slave Select Line (Activate low level to select slave).
[0278] In half-duplex transmission mode (so-called 3-wire mode), data is transmitted and received on the same line (MOSI = MISO).
[0279] As mentioned above, SPI can be configured to operate with a single master and a single slave, and it can be configured with multiple slaves controlled by a single master. There are two ways to connect multiple slaves to the master. If the master has multiple slave select pins, the slaves can be wired in parallel. If only one slave select pin is available, the slaves can be daisy-chained.
[0280] The clock signal SCLK synchronizes the output of data bits from the master with the bit sampling performed by the slave. One bit of data is transmitted in each clock cycle, so the data transmission rate is determined by the frequency of the clock signal. SPI communication is always initiated by the master, as the master configures and generates the clock signal.
[0281] The master can select which slave it wants to communicate with by setting the slave's SS line to a low voltage level. In idle, non-transmission mode, the slave select line is kept at a high voltage level.
[0282] The master transmits data to the slave bit by bit serially via the MOSI lines. The slave receives the data transmitted from the master at the MOSI pin. Data sent from the master to the slave is typically (but not mandatory) transmitted first with the most significant (MSB) bit.
[0283] The slave device can also serially send data back to the master device via the MISO line. Data sent back to the master device from the slave device is usually sent first with the least significant (LSB) bits.
[0284] The data is only valid during the period when SS is low.
[0285] like Figure 20 As illustrated, the SPI bus is full-duplex, based on data exchange in the shift register.
[0286] Bits from the master shift register are pushed into the slave shift register.
[0287] Bits from the slave shift register are simultaneously pushed into the master shift register.
[0288] like Figure 21 As illustrated, the data is sampled on SCLK, which has configurable phase CPHA and polarity CPOL.
[0289] More precisely, the clock signal SCLK in SPI can be modified using the characteristics of clock polarity and clock phase. These two characteristics work together to define when a bit is output and when it is sampled. Clock polarity can be set by the master to allow bits to be output and sampled on the rising or falling edge of the clock cycle. Clock phase can be set for output and sampling to occur on the first or second edge of the clock cycle, whether it is rising or falling.
[0290] The steps for SPI data transmission are as follows:
[0291] The master outputs a clock signal; the master switches the SS pin to a low voltage state, thereby activating the slave; the master sends data to the slave one bit at a time along the MOSI line. The slave reads these bits when they are received; if a response is needed, the slave returns data to the master one bit at a time along the MISO line. The master reads these bits when they are received.
[0292] Registers RGCF, RGRT, RGTC, DCNT, and TXCNT contain control (also known as configuration) data (one or more bits) that allow, for example, determining the SPI configuration or indicating the status "ready to transmit" or the operational status (such as terminated) or the number of bytes to be transmitted.
[0293] When an RF command (request) is received from the reader or the SPI state machine SM20, these control registers are read and / or written by the RF state machine SM10.
[0294] More precisely, registers RGCF, RGRT, DCNT, TXCNT, and RGTC are written by the RF state machine SM10.
[0295] For example, if the RGRT register contains a value of 0, it means that there is no SPI command to be executed by the SPI state machine SM20.
[0296] If the RGRT register contains a value of 1, it indicates that there is an SPI command to be executed by the SPI state machine SM20.
[0297] The number of bytes to be transferred on the SPI bus is determined by the contents of register DCNT and the final TXCNT.
[0298] In this respect, registers DCNT and TXCNT are also read by state machine SM20.
[0299] The register RGRT is also read by the state machine SM20 to know whether a command should be executed on the bus, and is also written to the state machine SM20 when the execution of a command is terminated.
[0300] The register RGTC is written by the SPI state machine SM20 when the execution of a command is terminated, and is read by the state machine SM10 when a reader requests it to know whether the execution of the requested command has been terminated.
[0301] The RGTC register is also reset by state machine SM10.
[0302] Among these control data, the data contained in registers RGCF, DCNT, and TXCNT are primarily control data sent or deduced within the data payload of commands sent by the reader.
[0303] Figure 22 An example of the RF pass-through state machine SM10 is described in detail, and Figure 23 An example of the SPI pass-through state machine SM20 is described in detail, both of which allow for the specific implementation of steps for storing firmware instructions using the SPI protocol, particularly the processing of the first bootloader command and the second bootloader command.
Claims
1. A system for wireless communication, comprising: Non-contact reader; as well as The device includes: A contactless transponder includes a contactless interface and a wired transponder interface, and is configured to communicate with a contactless reader via the contactless interface according to a contactless protocol. The bus is coupled to the wired interface of the transponder, and At least one module, coupled to the bus, includes processing circuitry, memory, a bootloader, and a controller. The contactless reader is configured to transmit instructions of a software program executable by the processing circuitry to the at least one module via the contactless transponder. In bootloader mode, the bootloader is configured to store the instructions in the memory. Terminals of the module are dedicated to activation of the bootloader mode and are coupled to terminals of the contactless transponder. The controller is configured to set the terminals of the contactless transponder to a voltage level in response to a bootloader mode activation command received from the contactless reader via the contactless interface.
2. The system of claim 1, wherein the contactless reader and the contactless transponder are configured such that the contactless reader is the host on the bus during the transmission of the instruction.
3. The system of claim 1, wherein the contactless reader is further configured to activate the bootloader mode via the contactless transponder.
4. The system of claim 3, wherein the contactless transponder includes a pass-through circuit configured to implement a pass-through function for message exchange between the contactless reader and the at least one module during the transmission of the instructions of the software program.
5. The system of claim 4, wherein the contactless reader is configured to initiate at least one first bootloader command within at least one frame consistent with the contactless protocol, the at least one first bootloader command comprising a first data payload including the instructions of the software program, and the pass-through circuit is configured to transform the at least one first bootloader command into at least one second bootloader command on the bus consistent with the protocol used on the bus.
6. The system of claim 5, wherein the pass-through circuit further comprises a second volatile memory configured to store control data, the pass-through circuit being configured to implement the pass-through function for message exchange between the reader and the at least one module based on the control data.
7. The system of claim 6, wherein the pass-through circuit includes a first volatile memory configured to buffer the first data payload and a second data payload of a response intended to be sent to the reader via the contactless interface.
8. The system of claim 7, wherein the through circuit further comprises: A first state machine is configured to cooperate with the reader via the contactless interface and is configured to write to / read a portion of the first volatile memory and the second volatile memory based on commands received from the reader. as well as The second state machine is configured to cooperate with the bus via the wired interface based on the contents of a portion of the second volatile memory, and is configured to write to / read from both the first volatile memory and a portion of the second volatile memory.
9. The system of claim 8, wherein the second state machine is configured to read the first data payload from the first volatile memory and execute the first data payload on the bus to manage the clock and all bus protocol signaling information.
10. The system of claim 9, wherein the second state machine is configured to read an acknowledgment on the bus and store the acknowledgment in the first volatile memory such that the acknowledgment is read by the first state machine.
11. The system of claim 5, wherein the bus is an I2C bus, and wherein the at least one first bootloader command initiated by the reader includes at least one request for a write operation to the at least one module.
12. The system of claim 11, wherein the at least one request for a write operation to the at least one module includes the address of the at least one module, a specific command code, and at least some of the instructions to be written to the memory.
13. The system of claim 5, wherein the bus is an SPI bus, and wherein the at least one first bootloader command initiated by the reader includes at least one write command.
14. The system of claim 1, wherein the bus is an I2C bus.
15. The system of claim 1, wherein the bus is an SPI bus.
16. The system of claim 1, wherein the transponder includes a controllable energy harvesting circuit configured to power the at least one module, and the reader is configured to send a specific command to the transponder to activate the energy harvesting circuit.
17. An apparatus for wireless communication, comprising: A contactless transponder includes a contactless interface and a transponder wired interface, and is configured to communicate with a contactless reader via the contactless interface according to a contactless protocol. The bus is coupled to the transponder's wired interface; as well as At least one module, coupled to the bus, includes processing circuitry, memory, a bootloader, and a controller. The at least one module is configured to receive instructions from a software program executable by the processing circuitry via the contactless transponder. In bootloader mode, the bootloader is configured to store the instructions in the memory. Terminals of the module are dedicated to activation of the bootloader mode and are coupled to terminals of the contactless transponder. The controller is configured to set the terminals of the contactless transponder to a voltage level in response to a bootloader mode activation command received from the contactless reader via the contactless interface.
18. The apparatus of claim 17, wherein the at least one module includes a memory, a bootloader, and a bootloader mode, wherein in the bootloader mode the bootloader is configured to store the instructions into the memory.
19. The apparatus of claim 18, wherein the contactless reader is further configured to activate the bootloader mode via the contactless transponder.
20. A method for storing software program instructions in a memory having at least one module of processing circuitry, the method comprising: Provides transponders including contactless interfaces and wired transponder interfaces; A bus is coupled between the transponder's wired interface and the at least one module; The reader transmits the software program instructions to the transponder through the contactless interface according to the contactless protocol; The transponder transmits the software program instructions to the at least one module on the bus; The reader initiates at least one first bootloader command within at least one frame consistent with the contactless protocol, the at least one first bootloader command containing a first data payload, the first data payload including the instructions of the software program; as well as The pass-through function transforms the at least one first bootloader command into at least one second bootloader command on the bus that conforms to the protocol used on the bus, and the pass-through function is used to exchange messages between the reader and the at least one module.
21. The method of claim 20, further comprising: The reader is made to act as a host on the bus during the transmission of the software program instructions.
22. The method of claim 20, further comprising: Provide memory and a bootloader for the at least one module; Place the at least one module in bootloader mode; as well as The bootloader stores the software program instructions into the memory.
23. The method of claim 22, further comprising: The reader activates the bootloader mode via the transponder.
24. The method of claim 23, further comprising: Provide at least one module terminal for the at least one module, the at least one module terminal being dedicated to the activation of the bootloader mode; The transponder is provided with at least one transponder terminal, which is coupled to the at least one module terminal; The reader sends a bootloader mode activation command to the transponder via the contactless interface; as well as The transponder is set to a voltage level in response to the bootloader mode activation command.
25. The method of claim 20, further comprising: By the transponder, Store control data; as well as During the transmission of the instructions in the software program, a pass-through function is implemented based on the control data.
26. The method of claim 25, further comprising: Provide memory and a bootloader for the at least one module; Place the at least one module in bootloader mode; as well as The bootloader stores the software program instructions into the memory.
27. The method of claim 20, wherein the bus is an I2C bus or an SPI bus.
28. The method of claim 20, further comprising a controllable energy harvesting circuit for the transponder, the controllable energy harvesting circuit being configured to power the at least one module and to cause the reader to send a specific command to the transponder to activate the energy harvesting circuit.
Citation Information
Patent Citations
FR2008956A1
Near field communication bootloader for configuration and programming of electronic devices
US20180260209A1