This applicant claims priority from International Patent Application Serial No. PCT/JP2019/034383, filed on Sep. 2, 2019 which claims priority to Japanese Patent Application No. 2018-238133, filed on Dec. 20, 2018, both of which are included herein in their entireties by reference thereto.
This disclosure relates to a method for updating program data for an electronic component of a module included in an information processing device.
As described in a chapter of “overview” on page 6 of Non-Patent Literature 1, data in Motorola (registered trademark) S-record format (hereinafter referred to as the S-record format) is used for writing program data from an external host computer into a non-volatile memory inside a microprocessor. Specifications of the S-record format is described in APPENDIX C of Non-Patent Literature 2 by Motorola (registered trademark). The microprocessor refers to record types from S0 to S9 included in the S-record format data to recover program data on the memory based on information on an address included in the S1, S2 or S3 record.
An optical module installed in an optical transmission device has a function to download program data using data in the S-record format from a host device coupled via communicating means and update it, as means to update a control program of a microprocessor included in the module during an operation.
However, the updating means of this program data aims for updating the program data of the control program of the microprocessor coupled to the host device via the communicating means, and an update of program data of a control program of another programmable electronic component included in the optical module has not been considered. Accordingly, in order to update the program data of the control program of the programmable electronic component not coupled to the host device, it is necessary to perform it from other communicating means individually prepared for these electronic components, thereby causing a problem that the update is difficult during the operation of the optical transmission device.
An objective of this disclosure is to ensure making program data of a control program of a programmable electronic component included in an optical module updatable as well while a control program of a microprocessor included in the optical module is in operation.
A module of this disclosure is a module that functions by causing an electronic component to operate, the module including
Specifically, a method for updating program data according to this disclosure is a method for updating program data to update control programs of a microprocessor that controls an operation of an electronic component and the electronic component in a module that functions by causing the electronic component to operate, the method for updating program data including
Specifically, a module according to this disclosure is a module that functions by causing an electronic component to operate, the module including
Specifically, an information processing device according to this disclosure includes:
This disclosure ensures making the program data of the control program of the programmable electronic component included in the optical module updatable as well while the control program of the microprocessor included in the optical module is in operation.
The following describes embodiments of this disclosure in detail with reference to the drawings. Note that this disclosure is not limited to the embodiments described below. These working examples are merely examples, and this disclosure can be executed in configurations in which various changes and improvements are performed based on knowledge of those skilled in the art. Note that components with the same reference numeral in the specification and the drawings should mutually indicate the same component.
A host device and an optical module are disposed in an optical transmission device, and the host device and a microprocessor #1 mounted in the optical module are coupled via the communicating means. Besides the microprocessor #1, a plurality of optical devices #1 and #2, driving circuits #1 and #2 that drive them, and programmable electronic components #1 and #2 that control the driving circuits #1 and #2, respectively, are mounted in the optical module.
The programmable electronic components #1 and #2 and the microprocessor #1 are coupled via the communicating means. When program data of the optical module is updated, new program data is transmitted in the S-record format from the host device to the microprocessor #1 in the optical module. Only the program data of the above-described microprocessor #1 is included in the data in the S-record format, and by recovering and executing the program data on a memory, the microprocessor #1 ensures switching it to the program data of the new control program.
Record types referred in S-record format data are as follows.
S0 record: a header record indicative of a start of an S-record.
S1 to S3 records: data records specifying respective write positions of data, S1 specifies it with a 2-byte address, S2 specifies it with a 3-byte address, and S3 specifies it with a 4-byte address.
S7 to S9 records: end records indicative of respective terminating ends of the S-records, S7 indicates the end of the 4-byte addressing, S8 indicates the end of the 3-byte addressing, and S9 indicates the end of the 2-byte addressing.
A combination of S0, S1, and S9, a combination of S0, S2, and S8, or a combination of S0, S3, and S7 is used. In this embodiment, a description is made by using the combination of S0, S1, and S9, which specifies it with the 2-byte address, as one example.
However, in this method for updating program data, program data necessary for the programmable electronic components other than the microprocessor #1 are downloaded from electronic devices other than the optical transmission device via other communication paths disposed for the respective programmable electronic components #1 and #2 at a phase before the optical module is installed in the optical transmission device. Accordingly, this method for updating program data has had a problem that the program data of control programs of the programmable electronic components #1 and #2 that do not have communicating means with the host device cannot be updated during the operation of the optical transmission device.
(Exemplary Configuration according to this Disclosure)
The module 112 is a module that achieves any function by causing the device 124 to operate in the following sequence of operations, and corresponds to an optical module 12 illustrated in and after
The communication unit 113 obtains update information and any other information from an outside of the information processing device 100. The host device 111 has a function to control the module 112, such as execution and stop of the module 112, and corresponds to a host device 11 illustrated in and after
The device 124 is an optional device included in the module 112, and corresponds to an optical device 24 illustrated in and after
As the module 112, for example, an optical transmission module, an optical reception module, an optical amplification module, and an optical switch module can be exemplified. When the module 112 is the optical transmission module, the device 124 is, for example, a light source or a light modulator. When the module 112 is the optical reception module, the device 124 is, for example, an optical receiver or an amplifier. When the module 112 is the optical amplification module, the device 124 is, for example, an optical amplifier. When the module 112 is the optical switch module, the device 124 is, for example, an optical switch.
In this disclosure, by applying S-record format data, the microprocessor 121 executes an update of the electronic component 122 as well. In view of this, this disclosure ensures making the program data and any other data of the electronic component 122 included in the module 112 updatable as well while the control program of the microprocessor 121 included in the module 112 is in operation.
(First Technique of this Disclosure)
When control programs of the microprocessor 21#1 and the programmable electronic components 22#1 and 22#2, which are disposed in the optical module 12, are updated with program data obtained by a communication unit 113 from the outside, a host device 11 downloads data in the S-record format that includes program data for updating the microprocessor 21#1, the programmable electronic component 22#1, and the programmable electronic component 22#2 to the microprocessor 21#1 as update information. Next, after recovering these program data on a memory 25, the microprocessor 21#1 updates the program data of itself, and for the control program data corresponding to the programmable electronic component 22#1 and the programmable electronic component 22#2, this is also updated by downloading program data D#1 and D#2 for update to the respective programmable electronic components 22#1 and #2 through the paths of the thick arrows. Here, D#1 is program data for the programmable electronic component 22#1, and D#2 is program data for the programmable electronic component 22#2. The detail of this updating method will be described using an exemplary configuration of data in the S-record format below.
In the method for updating program data according to this disclosure, only one piece of identification information on an update target is written in the S0 record of each block in the data in the S-record format, and identification codes unique to the microprocessor 21 and the programmable electronic component 22 to which the program data of the block including the identification information is applied are written in the identification information on the update target. As the identification codes of the microprocessor 21 and the programmable electronic component 22, for example, serial numbers and model numbers provided without overlapping for the microprocessor 21 and the programmable electronic component 22 in the optical module 12 can be exemplified.
Besides the above-described identification codes, it is preferred that information such as a parameter that is needed when the microprocessor 21#1 downloads the program data to the programmable electronic component 22 is written in the identification information written in the S0 record of each block. As this parameter that is needed, for example, a type (such as a CPU, a programmable system on chip (PSoC), and a field-programmable gate array (FPGA)) of the programmable electronic component 22 and a version of the program data can be exemplified.
In this disclosure, it is possible to employ a configuration in which a part or all of the information such as the parameter that is needed when the download is performed is not written in the S0 record except for the above-described identification codes among the information included in the above-described identification information. For example, a correspondence table of specifications of interfaces between the microprocessor 21 and the programmable electronic components 22 may be stored in the microprocessor 21 or the memory, and a reference may be made to this. For this correspondence table, one preliminarily held, one generated at the time of activating the optical module 12, or one stored at the time of updating the program data of the microprocessor 21 can be used. Note that the specifications of the interfaces between the microprocessor 21 and the programmable electronic components 22 include any specification of program data updating means of the programmable electronic component 22. For example, the program data updating means is not limited to hardware, but also includes a specification of software, such as a control program.
As a method for writing identification information, a function with which any character string can be entered as a specification of the S0 record in the S-record format is used. For example, according to aforementioned Non-Patent Literature 2, an S0 record is constituted of the following ASCII string.
S00600004844521B
Here, S0 at the head indicates that this character string is an S0 record, subsequent 06 indicates that the number of bytes of the further subsequent is 6 bytes, 0000 indicates a load address, and 484452 indicates a character string “HDR” by ASCII codes. 1B at the last is a checksum of the character string of the above. A region of the character string “HDR” may use up to maximum of 252 bytes depending on the specification of the S-record. Therefore, in this disclosure, the identification information on the update target is written in the portion of the character string “HDR” in this example.
For example, when the identification codes of the microprocessor 21 and the programmable electronic components 22#1 and 22#2 are defined in order by serial numbers of 01 to 03, and a program version is Rev. 1.0.3, an S0 record can be expressed as in
“3033” in (4-1) indicates that the identification code is “03,” that is, the update target is the programmable electronic component 22#2.
“313033” in (4-2) indicates that the program version is Rev. 1.0.3. “00” in (5) indicates a checksum of a range from (2) to (4).
The microprocessor 21#1 that has received the data in the S-record format described above recovers the program data of the respective blocks in regions on the memory (for example, the memory 25 in
In the S-record format data illustrated in
Since the microprocessor 21 of the optical module 12 thus recognizes the programmable electronic components 22 under its control, selects ones that conform from the program data included in the respective blocks of the S-record, and downloads the ones to the programmable electronic components 22 under the control, the host device 11 ensures downloading only the blocks for the programmable electronic components 22 that need an update of the program data to the optical module 12 including the programmable electronic component 22. It is also possible to download the block for the programmable electronic component 22 not included in the optical module 12 to the optical module 12. In the latter case, it is possible to download the same S-record format data that includes the blocks of the program data for these different programmable electronic components 22 together, to a plurality of the optical modules 12 constituted of the different programmable electronic components 22.
As a specific example of when the host device 11 downloads only a block for a programmable electronic component 22 that needs the update of the program data to the optical module 12 including that programmable electronic component 22, there is a case where the communication unit 113 of the information processing device receives only program data for a programmable electronic component 22 subjected to a change in program data among the plurality of programmable electronic components 22 mounted in the optical module 12 included in the information processing device. At this time, the host device 11 may read out the program data for the programmable electronic component 22 without change in program data from the past program data recorded in the memory 114 and recreate an S-record that includes the program data for all the programmable electronic components 22 mounted in the optical module 12, however, since the microprocessor 21 of the optical module 12 can select a target programmable electronic component 22 from the S0 record included in the block downloaded from the host device 11, the host device 11 ensures downloading only the block for the programmable electronic component 22 subjected to a change in program data received by the communication unit 113 directly to the optical module 12.
Since the microprocessor 21#1 selects the programmable electronic component 22 whose program data is to be updated among the programmable electronic components 22 included in the optical module 12 according to the information written in the S0 record located at the head of each block, the microprocessor 21#1 downloads the program data of the block B2 to the programmable electronic component 22#1. Meanwhile, no download is performed to the programmable electronic component 22#2 since no corresponding block is included. This causes the program data of the programmable electronic component 22#1 that needs an update to be updated, but no data is updated in a program of the programmable electronic component 22#2 that does not need the update. With this method, since only the program data for the programmable electronic component 22#1 that needs an update is downloaded from the host device 11 and updated, a size of the data in the S-record format can be reduced, thereby providing an advantage of shortening a period of communication occupying the communicating means.
As a specific example where the host device 11 downloads the block for the programmable electronic component 22#3 not included in the optical module 12 to the optical module 12, there is a case where the program data is downloaded to the optical module 12 including an insertable/removable submodule in the optical module configuration in
When the programmable electronic component 22#2, the driving circuit 23#2, and the optical device 24#2 are included in the insertable/removable submodule, and replacing it with another submodule including the programmable electronic component 22#3, a driving circuit 23#3, and an optical device 24#3 during the operation causes the other submodule to be newly placed under the control of the microprocessor 21#1, and therefore, the microprocessor 21#1 selects an appropriate program code from the same S-record and downloads the program code to the programmable electronic component 22#3.
An alternative case is where an optical module 12#1 in which the programmable electronic component 22#2, the driving circuit 23#2, and the optical device 24#2 are always mounted; and an optical module 12#2 in which the programmable electronic component 22#3, the driving circuit 23#3, and the optical device 24#3 are always mounted are included in an optical transmission device 10 (
The common S-record format data illustrated in
As described above, the first technique of this disclosure provides the means in which, in the optical module 12 including the plurality of programmable electronic components 22, the microprocessor 21 located in the optical module 12 and coupled to the host device 11 via the communicating means uses the same update information in the S-record format downloaded from the host device 11 using the communicating means to update the control programs of the plurality of programmable electronic components 22 included in the above-described optical module 12.
With this disclosure, the above-described S-record format update information is constituted of the joined blocks of the plurality of program data, each block is constituted of a sequence of S-record starting with the S0 record to be terminated with any record of the S7 record, the S8 record, or the S9 record, and an attribute of the programmable electronic component 22 to which the block that includes the S0 record is applicable and a parameter and the like necessary for updating the program data of the programmable electronic component 22 are described in the S0 record.
Furthermore, in each block included in the S-record format update information according to this disclosure, the program data applicable to the programmable electronic component 22 not included in the optical module 12 when the program data is updated may be included in addition to the program data applicable to the programmable electronic component 22 included in the optical module 12.
With the above-mentioned method for updating program data, the microprocessor 21 that has received the S-record format update information from the host device 11 uses the information described in the S0 records of the respective blocks included in the data to select only the program data applicable to the programmable electronic components 22 included in the optical module 12 from the blocks of the respective program data and download the program data according to the specifications of the respective programmable electronic components 22 to the programmable electronic components 22 as the update targets in the optical module 12. Therefore, the host device 11 has a feature that using one piece of S-record data ensures updating the program data of the optical module by which the configuration of the programmable electronic components 22 varies and the optical module 12 in which the combination of the mounted programmable electronic components 22 may be changed because the optical module 12 employs the removable programmable electronic components 22, as well as updating the program data of the programmable electronic components 22 in the optical module 12 during the operation of the optical transmission device 10.
(Second Technique of this Disclosure)
In
As the identification information on the update target in the S0 record of the block B2, for example, product model numbers unique to the programmable electronic component 22#1 and the programmable electronic component 22#2 can be exemplified. When the optical module 12 is activated, the microprocessor 21 reads identification codes (the product model numbers) of the programmable electronic components from the programmable electronic components 22 coupled thereto via communicating means, and records the identification codes (the product model numbers) and a correspondence table of the communicating means corresponding to the product model numbers for coupling to the programmable electronic components 22 in the memory.
While the program data of the programmable electronic component 22 is updated, upon receiving the S-record from the host device 11, the microprocessor 21 identifies which programmable electronic component 22 the program data recovered on the memory from the received S-record corresponds to, based on the information read from the S0 records, and selects the blocks of the S-record that should be downloaded to the respective programmable electronic components 22 and the communicating means corresponding to the product model numbers based on the correspondence table recorded in the memory and updates the program data of the programmable electronic components 22 as the update targets. To the programmable electronic components 22 with the same identification code (the product model number), the same block of the S-record is downloaded via the same communicating means.
As described above, with the method for updating program data of this disclosure, the microprocessor 21 coupled to the host device 11 via the communicating means ensures selecting types of the programmable electronic components 22 to which the program data are applicable from the information written in the S0 records at the head of the respective blocks. Therefore, when a common identification code is included in the identification information written in each of the S0 records, the microprocessor 21 can uniformly download the program data included in the blocks to the plurality of programmable electronic components 22 having the same identification code in the optical module 12 and update them.
With this method, compared with the method that prepares the block of the program data for each of the programmable electronic components 22 included in the optical module 12, the number of the program data included in the S-record format update information is reduced, thereby ensuring the reduced size of the S-record format data necessary for communication and the time period during which the communicating means is occupied.
(Third Technique of this Disclosure)
In this case also, similarly to the first technique, after receiving program data in the S-record format and deploying it in a memory 25, a microprocessor 21#1 coupled to a host device 11 via the communicating means identifies whether the program data is for the FPGA or for the PSoC based on the information of S0 records therein, downloads the program data to the programmable electronic component, such as the FPGA or the PSoC, in the optical module 12, and updates it.
At this time, the downloading of the program data to the programmable electronic component from the microprocessor 21#1 and the updating of it comply with specifications of an interface and the like of the programmable electronic component. Specifically, specifications of serial communications with three signal lines, such as a Universal Asynchronous Receiver/Transmitter (UART) and four communication lines added with a clock, such as a Joint Test Action Group (JTAG), and specifications of transmission data format and the like, such as ASCII codes and binary codes, are listed. Additionally, in case of update of an application program, interfaces that fit to a communication port, such as an Inter-Integrated Circuit (I2C) and a Universal Serial Bus (USB) are also listed.
For example, configuration data is transferred to the FPGA 221 by serial communication means and, for example, data in Intel (registered trademark) Hex format is transferred to the PSoC 222 according to the specifications of the component via serial communication means. That is, the transferring procedure is selected according to the specifications of the programmable electronic component of the update target to which download and update are performed.
For example, in the S0 record located at the start of each block, an identification code, a version of the program data, and the number of bytes of the program data for the programmable electronic component, to which the program data included in the block is downloaded, are written. In the third technique, using the identification code of the programmable electronic component, the program data according to the respective programmable electronic components and downloading means of the program data are selected based on a correspondence table recorded in the memory 25, and it is identified whether they are for the FPGA 221 or for the PSoC 222, the microprocessor 21#1 uses an interface for serial communication coupled to another programmable electronic component in the optical module 12 to ensure transferring the program data to the respective programmable electronic components by the downloading means according to the respective programmable electronic components as well as updating its own program data.
As described above, the third technique of this disclosure has a feature that the programmable electronic component in the optical module 12 is the microprocessor 21, the FPGA 221, or the PSoC 222 in the above-described method for updating program data.
With this technique, after recovering the transmitted S-record as binary data or text data in the memory 25 in the optical module 12, the microprocessor 21 that has communicating means with the host device 11 can select and execute the downloading means for the program data according to the respective programmable electronic component based on the identification information on the update targets and the information necessary for updating the program data written in the S0 records located at the head of the respective blocks.
(Fourth Technique of this Disclosure)
In a case where a problem caused by the program data of any of the programmable electronic components occurs by an operation after the update, the microprocessor 21#1 can download program data of an old version saved in a region of the non-volatile memory 26 to itself or a corresponding programmable electronic component and update it, thereby ensuring recovering to a normal operation without downloading the S-record format data including the old version from the host device 11. Note that a PSoC 222#2, a driving circuit 23#3, and an optical device 24#3, which are indicated by the dashed line in the drawing and are not mounted, are, for example, included in an insertable and removable module, and are possibly added during the operation.
According to this drawing, when program data (version 2) of a new version of the PSoC 222 is included in an S-record downloaded from the host device 11 through the communicating means, the microprocessor 21 records the program data in a region different from that of program data (version 1) normally operating in the PSoC 222 on the non-volatile memory 26 (S101). Next, the microprocessor 21 downloads the program data (version 2) of the new version to the PSoC 222 and starts an operation (S102). Afterwards, the microprocessor 21 periodically reads an error message generated during the operation from a memory incorporated in the PSoC 222 using the communicating means (S103).
At this time, when an operational failure caused by the newly downloaded program is detected (S104), for example, when the PSoC 222 detects an error that a current monitor of the driving circuit 23 indicates an output outside an allowable range even though the microprocessor 21 has transmitted a command to set 100 mA as an output of the driving circuit #2 to the PSoC 222, the microprocessor 21 reads the program data (version 1) that had normally operated in the PSoC 222 before the update from the non-volatile memory 26 and downloads it to the PSoC 222 again (S105) to recover the operation of the optical module 12 to normal.
Note that in the memory map in
As described above, the fourth technique of this disclosure has, in the above-described method for updating program data, a feature of recording the program data included in the S-record downloaded from the host device 11 through the communicating means on the non-volatile memory 26 by each block, and recording the information such as the address on the memory where the above-described program data is placed, the versions of the program data written in the S0 records of the respective blocks, and the types of the programmable electronic components to which it is applicable, and the information such as the combination of the versions of the program data applied currently and in the past to the programmable electronic component in the optical module 12 in the different region from that of the program data on the same non-volatile memory 26.
With the updating method of this disclosure, by recording the program data of different versions on the non-volatile memory 26, when a problem occurs in the program data of the plurality of programmable electronic components included in the optical module 12, the operation can be recovered by downloading the program data of the version that had normally operated from the non-volatile memory 26.
It is also possible to record the program data to be applied to the programmable electronic component not coupled to the optical module 12 at the timing when the download is made from the host device 11 on the non-volatile memory 26, thereby providing an advantage that the program data can be updated as necessary even for the programmable electronic component newly coupled during the operation.
This disclosure is applicable to an information communication industry.
Number | Date | Country | Kind |
---|---|---|---|
2018-238133 | Dec 2018 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2019/034383 | 9/2/2019 | WO |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2020/129324 | 6/5/2020 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5168442 | Ikeda | Dec 1992 | A |
5206572 | Farag | Apr 1993 | A |
8429643 | Venkatachalam | Apr 2013 | B2 |
20030083929 | Springer | May 2003 | A1 |
20060164257 | Giubbini | Jul 2006 | A1 |
20060200812 | Mizutani | Sep 2006 | A1 |
20120297211 | Lee | Nov 2012 | A1 |
20130132935 | Kuroki | May 2013 | A1 |
20160356643 | Foucal | Dec 2016 | A1 |
20220035619 | Nanaumi et al. | Feb 2022 | A1 |
Number | Date | Country |
---|---|---|
3901765 | Oct 2021 | EP |
2005-032014 | Feb 2005 | JP |
2006-201878 | Aug 2006 | JP |
2008-257564 | Oct 2008 | JP |
2009-014858 | Jan 2009 | JP |
2010-195111 | Sep 2010 | JP |
2012-093961 | May 2012 | JP |
20200129234 | Jun 2020 | WO |
Entry |
---|
Japanese Office Action (with English translation) dated Nov. 15, 2022 for Japanese Appl. No. 2018-238133. |
Extended European Search Report dated Aug. 2, 2022 for European Appl. No. 19900098.5. |
Canadian Office Action dated Aug. 18, 2022 for Canadian Appl. No. 3,123,795. |
“Renesas SynergyTM Cases of updating applications in built-in flash memory,” Renesas Electronics Corporation, Rev. 1.01, 2017 with computer generated English abstract thereof. |
“S-Record Output Format,” “Motorola M68000 Family Programmer's Reference Manual” Appendix C, Motorola, 1992. |
International Search Report dated Nov. 19, 2019 in corresponding PCT International Patent Application No. PCT/JP2019/034383, 2 pgs. |
Number | Date | Country | |
---|---|---|---|
20220035619 A1 | Feb 2022 | US |