WO2018179110A1 - Remote controller, remote control method, and program - Google Patents
Remote controller, remote control method, and program Download PDFInfo
- Publication number
- WO2018179110A1 WO2018179110A1 PCT/JP2017/012744 JP2017012744W WO2018179110A1 WO 2018179110 A1 WO2018179110 A1 WO 2018179110A1 JP 2017012744 W JP2017012744 W JP 2017012744W WO 2018179110 A1 WO2018179110 A1 WO 2018179110A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- core
- data
- storage area
- remote controller
- processing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 94
- 238000012545 processing Methods 0.000 claims abstract description 52
- 230000008569 process Effects 0.000 claims description 86
- 230000005856 abnormality Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 18
- 238000001994 activation Methods 0.000 description 17
- 230000004913 activation Effects 0.000 description 13
- 238000004378 air conditioning Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007664 blowing Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012535 impurity Substances 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000009423 ventilation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q9/00—Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
Definitions
- the present invention relates to a remote controller, a remote control method, and a program.
- Patent Document 1 discloses a centralized remote controller in which a server function and a JAVA (registered trademark) function are mounted on a platform in which an RTOS (Real Time Operating System) is mounted as a technology that meets such a demand.
- a server function and a JAVA (registered trademark) function are mounted on a platform in which an RTOS (Real Time Operating System) is mounted as a technology that meets such a demand.
- RTOS Real Time Operating System
- the centralized remote controller disclosed in Patent Document 1 has a real-time property because it is equipped with an RTOS. Further, the central remote controller disclosed in Patent Document 1 has a server function and a JAVA (registered trademark) function.
- the present invention has been made in view of the above problems, and an object thereof is to provide a remote controller, a remote control method, and a program that have real-time properties, are multifunctional, and are low in cost.
- a remote controller for remotely controlling a device, Comprising a multi-core processor comprising a first core, a second core and a non-volatile memory;
- the first core includes a process of storing the first data in a first storage area included in the nonvolatile memory among processes related to the device, and executes a first process that does not require real-time performance.
- the second core includes a process of storing the second data in a second storage area included in the nonvolatile memory, and a second process requiring real-time performance, among the processes related to the device. .
- a first process that does not require real-time property is executed by the first core, and a second process that requires real-time property is executed by the second core. Therefore, according to the present invention, it is possible to provide a remote controller that has real-time properties, is multifunctional, and is low in cost.
- Configuration diagram of a remote controller according to an embodiment of the present invention
- the remote controller 100 is a device for operating the device from a distance from the device.
- the remote controller 100 has a function of monitoring the state of the device in addition to the function of controlling the state of the device.
- the remote controller 100 executes processing that does not require real-time property and processing that requires real-time property.
- Processing that does not require real-time processing is processing that does not require immediate response, is processing that does not require low latency, and is processing that allows processing delay.
- Processing that requires real-time processing is processing that requires quick response, is processing that should ensure low latency, and does not allow processing delay.
- processing that does not require real-time processing is referred to as first processing
- processing that requires real-time processing is referred to as second processing.
- the remote controller 100 includes a multi-core processor 200 including a first core 210 suitable for execution of the first process and a second core 220 suitable for execution of the second process. The first core 210 is caused to execute the first process, and the second core 220 is caused to execute the second process.
- the first core 210 is stored in the second storage area 260 in which data related to the second processing (hereinafter referred to as “second data” as appropriate) is stored. Cannot be accessed, and the second core 220 cannot access the first storage area 250 in which data related to the first processing (hereinafter referred to as “first data” as appropriate) is stored.
- first data data related to the first processing
- the remote controller 100 when the remote controller 100 detects that the first core 210 does not operate normally, the remote controller 100 allows the second core 220 to access the first storage area 250, and When it is detected that the core 220 does not operate normally, access to the second storage area 260 by the first core 210 is permitted.
- the reason why the first core 210 does not operate normally, that is, the reason why the first process is not executed normally is, for example, a hardware failure of the first core 210, an abnormality of the first operating system 251 (for example, , Bug), an abnormality (for example, bug) of the first application program 252.
- the reason why the second core 220 does not operate normally, that is, the reason why the second process is not normally executed is, for example, a hardware failure of the second core 220 or an abnormality of the second operating system 261 ( For example, a bug) and an abnormality (for example, a bug) of the second application program 262.
- the devices controlled or monitored by the remote controller 100 are two devices, that is, the air conditioner 400 and the watt-hour meter 500.
- the device controlled or monitored by the remote controller 100 may be other devices or may be three or more devices.
- the remote controller 100 may be a centralized remote controller that remotely controls a large number of devices at once.
- the air conditioner 400 includes an outdoor unit 410 and an indoor unit 420, and is a device that adjusts the air in the space where the indoor unit 420 is installed. Adjusting air means, for example, adjusting temperature, adjusting humidity, blowing air, or removing impurities.
- the air conditioner 400 is controlled and monitored by the remote controller 100. That is, the state of the outdoor unit 410 and the state of the indoor unit 420 are controlled and monitored by the remote controller 100. Therefore, the outdoor unit 410 and the indoor unit 420 have a function of communicating with the remote controller 100.
- the outdoor unit 410 and the indoor unit 420 are appropriately referred to as an air conditioner 400.
- the air conditioner 400 includes one indoor unit 420, but the air conditioner 400 may include two or more indoor units 420.
- the air conditioner 400 may include a ventilation fan (not shown), a transport fan (not shown), a lighting device (not shown), and the like.
- the watt-hour meter 500 measures the amount of power consumed by the air conditioner 400.
- the watt-hour meter 500 includes, for example, a current transformer that measures the magnitude and phase of the current supplied to the air conditioner 400.
- the watt-hour meter 500 has a function of transmitting a power pulse corresponding to the measured power amount. For example, the watt-hour meter 500 transmits one pulse every 1 kWh, every 10 kWh, or every 100 kW.
- the watt-hour meter 500 transmits a power pulse by wireless communication, for example. The power pulse transmitted from the watt-hour meter 500 is received by the remote controller 100.
- the storage device 600 is a device that stores data.
- the storage device 600 stores data read from the remote controller 100 when an abnormality occurs in the remote controller 100.
- the storage device 600 stores data to be written in the remote controller 100 in advance.
- the storage device 600 is, for example, a USB (Universal Serial Bus) flash drive, an SD (Secure Digital) memory card, or a hard disk drive.
- the remote controller 100 includes a multi-core processor 200, a display unit 310, an operation receiving unit 320, a communication unit 330, a power pulse receiving unit 340, and a data input / output unit 350.
- the multi-core processor 200 is a microprocessor in which a plurality of core processors are integrated in one package, and includes a first core 210, a second core 220, and a nonvolatile memory 230.
- the first core 210, the second core 220, and the nonvolatile memory 230 are connected to each other via a bus 270.
- the multi-core processor 200 is asymmetric and has an operating system mounted thereon.
- the multi-core processor 200 may be a symmetric type and may not have an operating system mounted thereon.
- the multi-core processor 200 may include three or more processor cores.
- the first core 210 is a processor core including a logic circuit (not shown) and a cache memory (not shown) for executing arithmetic processing.
- the 1st core 210 performs the 1st processing (processing which does not require real-time nature) among processing about air harmony machine 400 and watt-hour meter 500.
- a first operating system 251 that is an operating system suitable for the first processing is mounted on the first core 210.
- the first process is realized by executing the first application program 252 on the first operating system 251.
- the first process is a process that requires parallel processing or batch processing. For example, display control processing for the display unit 310, operation input detection processing using the operation receiving unit 320, air conditioner via the communication unit 330 400 control processes.
- the second core 220 is a processor core including a logic circuit (not shown) and a cache memory (not shown) for executing arithmetic processing.
- the 2nd core 220 performs the 2nd processing (processing which requires real-time nature) among the processing about air harmony machine 400 and watt-hour meter 500.
- a second operating system 261 that is an operating system suitable for the second processing is mounted on the second core 220.
- the second process is realized by executing the second application program 262 on the second operating system 261.
- the second process is, for example, an acquisition process of communication log data 263 that is log data related to communication between the remote controller 100 and the air conditioner 400, or power that is log data related to a power pulse received from the watt-hour meter 500. This is an acquisition process of the pulse log data 264.
- the first core 210 and the second core 220 can transmit and receive a control signal and a small amount of data by transmitting and receiving an interrupt signal, for example.
- the non-volatile memory 230 is a memory capable of holding data even when power is not supplied.
- the nonvolatile memory 230 is, for example, a flash memory.
- the nonvolatile memory 230 includes a management area 240, a first storage area 250, and a second storage area 260.
- the management area 240 is a storage area in which programs and data related to management of operations of the first core 210 and the second core 220 are stored.
- the first storage area 250 is a storage area in which programs and data related to the first core 210 are stored.
- the second storage area 260 is a storage area in which programs and data related to the second core 220 are stored.
- the management area 240, the first storage area 250, and the second storage area 260 are set to predetermined address ranges, respectively.
- data stored in the nonvolatile memory 230 will be described with reference to FIG.
- an activation program 241 In the management area 240, an activation program 241, an access management program 242, an error notification program 243, a data input / output program 244, a first error flag 245, and a second error flag 246 are stored.
- the startup program 241 is a program that is called and executed first after the multi-core processor 200 is powered on.
- the start program 241 is a program for calling the first operating system 251 and the second operating system 261.
- the activation program 241 is executed by the first core 210 or the second core 220.
- the activation program 241 corresponds to, for example, a boot loader.
- the access management program 242 is a program for managing a storage area accessible by the first core 210 and a storage area accessible by the second core 220.
- the access management program 242 prohibits the access to the second storage area 260 by the first core 210 and causes the second core 220 to Access to the first storage area 250 is prohibited.
- the access management program 242 allows the second core 220 to access the first storage area 250 when the first core 210 does not operate normally.
- the access management program 242 allows the first core 210 to access the second storage area 260 when the second core 220 does not operate normally.
- the access management program 242 is executed by the first core 210 or the second core 220.
- the access management program 242 corresponds to, for example, a device driver.
- the error notification program 243 is a program for notifying an error when the first core 210 and the second core 220 do not operate normally.
- the data input / output program 244 reads or writes data related to the one core. It is a program for.
- the error notification program 243 and the data input / output program 244 are executed by the first core 210 or the second core 220.
- the first error flag 245 is a flag that is set when the first core 210 does not operate normally.
- the case where the first core 210 does not operate normally refers to the case where the first core 210 does not operate in hardware, the case where the first core 210 cannot properly start the first operating system 251, and the first operating system 251. This is a case where the first application program 252 is not correctly called from the system 251.
- the second error flag 246 is a flag that is set when the second core 220 does not operate normally.
- the case where the second core 220 does not operate normally means that the second core 220 does not operate in hardware, the second core 220 cannot properly start the second operating system 261, and the second operating system 261 This is a case where the second application program 262 is not correctly called from the system 261.
- the first error flag 245 and the second error flag 246 are set when the first core 210 or the second core 220 executes the start program 241.
- the first storage area 250 stores a first operating system 251, a first application program 252, air conditioning management data 253, and power rate data 254.
- the first operating system 251 is basic software that is activated by the first core 210 and is suitable for executing the first process.
- the first application program 252 is application software for executing a first process that is called from the first operating system 251. In FIG. 1 and FIG. 2, for ease of understanding, only one first application program 252 is clearly shown. However, the number of first application programs 252 is as many as the number of first processes.
- the air conditioning management data 253 is data related to the management of the air conditioner 400, and is data indicating a history of the operating state of the air conditioner 400.
- the power rate data 254 is data indicating an electricity rate calculated from the amount of power consumed by the operation of the air conditioner 400.
- the air conditioning management data 253 and the power charge data 254 are stored in a predetermined storage area of the first storage area 250 when the first core 210 executes the first application program 252.
- the second storage area 260 stores a second operating system 261, a second application program 262, communication log data 263, and power pulse log data 264.
- the second operating system 261 is basic software that is activated by the second core 220 and suitable for executing the second process.
- the second application program 262 is application software for executing the second process that is called from the second operating system 261. In FIG. 1 and FIG. 2, only one second application program 262 is clearly shown for easy understanding, but the number of second application programs 262 is as many as the number of second processes.
- the communication log data 263 is log data indicating a history of communication contents transmitted / received between the remote controller 100 and the air conditioner 400.
- the communication log data 263 includes, for example, a record including communication contents and communication time.
- the power pulse log data 264 is log data indicating a history of power pulses received from the watt-hour meter 500.
- the power pulse log data 264 includes, for example, a record including the reception time of the power pulse.
- the communication log data 263 and the power pulse log data 264 are stored in a predetermined storage area of the second storage area 260 when the second core 220 executes the second application program 262.
- the display unit 310 displays a screen including various types of information in accordance with control by the first core 210 or the second core 220.
- the information displayed by the display unit 310 includes, for example, information indicating the operation status of the air conditioner 400, information indicating the setting status of the air conditioner 400, and the first core 210 and the second core 220 operating normally. This is information for notifying that it is not performed, and information for prompting reading and writing of the first data and the second data.
- the display unit 310 includes, for example, a liquid crystal display and a 7 segment LED (Liquid Emitting Diode).
- the operation accepting unit 320 is an interface that accepts an operation by a user.
- the operation accepting unit 320 instructs, for example, an operation for instructing control of the state of the air conditioner 400, an operation for instructing display of the state of the air conditioner 400, and reading and writing of first data and second data. It is an operation.
- the operation reception unit 320 includes, for example, a push button and a keyboard. Note that a touch screen in which the display unit 310 and the operation receiving unit 320 are integrated may be employed.
- the communication unit 330 is a communication interface for enabling the remote controller 100 to communicate with the air conditioner 400.
- the information transmitted and received by the communication unit 330 is, for example, information that instructs control of the state of the air conditioner 400 and information that indicates the state of the air conditioner 400.
- the communication unit 330 is, for example, an infrared communication interface that communicates with the air conditioner 400 by wireless communication, and includes a dedicated IC (Integrated Circuit) that executes communication processing.
- the power pulse receiving unit 340 receives the power pulse transmitted from the watt hour meter 500. When receiving the power pulse, the power pulse receiving unit 340 notifies the first core 210 and the second core 220 that the power pulse has been received by an interrupt signal, for example.
- the power pulse receiver 340 is an interface that receives a radio signal, for example.
- the data input / output unit 350 sends the first data or the second data read from the nonvolatile memory 230 to the storage device 600 when the first core 210 or the second core 220 does not operate normally. This is an interface for writing the first data or the second data received from the storage device 600 into the nonvolatile memory 230.
- the data input / output unit 350 is, for example, a USB port or an SD card slot.
- the activation process is a process executed by the first core 210 or the second core 220 when the remote controller 100 is powered on.
- the startup process is basically realized by the master core executing the startup program 241.
- the master core is the first activated core among the first core 210 and the second core 220.
- a core that is not a master core is a slave core.
- the first core 210 and the second core 220 may identify which core has been activated first by transmitting an interrupt signal informing that the other core has been activated at the time of activation. it can.
- the first core 210 is a master core
- the second core 220 is a slave core.
- the first core 210 activates the first operating system 251 (step S101). For example, the first core 210 starts booting the first operating system 251 with a thread different from the thread that executes the boot program 241.
- the first core 210 activates the first application when the process of step S101 is completed (step S102).
- step S102 it is assumed that when the first operating system 251 has been activated, the first application is automatically activated. Note that when the first application program 252 is started by the first core 210, the first application is started.
- the first core 210 determines whether or not the first application has been successfully activated (step S103).
- Successful activation of the first application means that the activation of the first application is completed and the first application is ready to be executed. For example, if the first core 210 has no hardware abnormality, the first operating system 251 has no abnormality, and the first application program 252 has no abnormality, the first application starts successfully. . On the other hand, if the first core 210 has a hardware abnormality, the first operating system 251 has an abnormality, or the first application program 252 has an abnormality, the first application fails to start. .
- the method for determining whether or not the first application has been successfully activated can be adjusted as appropriate. For example, it is assumed that an interrupt signal for notifying that the start of the first application is completed is generated when the start of the first application is completed.
- the first core 210 can determine whether or not the first application has been successfully started by determining whether or not the interrupt signal is generated within a predetermined setting period. it can. That is, when the first core 210 detects that this interrupt has occurred within this set period, the first core 210 determines that the first application has been successfully activated, and determines that this interrupt has occurred within this set period. If not detected (timeout), it is determined that the first application has failed to start.
- the setting period is estimated to be required for starting the first application and the time estimated to start the first operating system 251 after starting the first operating system 251. This is a period until a time sufficiently longer than the sum of the time to be passed.
- the first core 210 can determine whether or not the first application has been successfully started by determining whether or not the device file is mounted. For example, when the first core 210 detects that the device file is mounted after the set period has elapsed, the first core 210 determines that the first application has been successfully activated, and after the set period has elapsed, If it is detected that the file is not mounted, it is determined that activation of the first application has failed.
- the first core 210 determines that the first application has not been successfully activated (step S103: NO)
- the first core 210 sets the first error flag 245 (step S104). Note that the first error flag 245 is not set at the start of the activation process.
- the first core 210 activates the second operating system 261 (step S105). ). For example, the first core 210 causes the second core 220 to start booting the second operating system 261.
- the first core 210 activates the second application when the process of step S105 is completed (step S106).
- step S106 it is assumed that the startup of the second application is automatically started when the startup of the second operating system 261 is completed. Note that when the second application program 262 is started to be executed by the second core 220, activation of the second application is started.
- the first core 210 determines whether or not the second application has been successfully activated (step S107).
- Successful activation of the second application means that the activation of the second application is completed and the second application is ready to be executed. For example, if the second core 220 has no hardware abnormality, the second operating system 261 has no abnormality, and the second application program 262 has no abnormality, the second application starts successfully. .
- the second core 220 has a hardware abnormality
- the second operating system 261 has an abnormality
- the second application program 262 has an abnormality
- the method for determining whether or not the second application has been successfully started is the same as the method for determining whether or not the first application has been successfully started. That is, the first core 210 determines whether or not an interrupt signal for notifying that the activation of the second application has been completed is generated within a predetermined setting period. It can be determined whether or not the activation is successful. Alternatively, the first core 210 succeeded in starting the second application by determining whether or not a device file that is mounted when the second application is started is mounted after the setting period has elapsed. It can be determined whether or not.
- step S107: NO When the first core 210 determines that the second application has not been successfully activated (step S107: NO), the first core 210 sets the second error flag 246 (step S108). Note that the second error flag 246 is not set at the start of the activation process.
- step S109 When it is determined that the second application has been successfully activated (step S107: YES), or when the process of step S108 is completed, the first core 210 executes an abnormality determination process (step S109). The abnormality determination process will be described in detail with reference to FIG.
- the first core 210 determines whether or not all error flags are set (step S201). That is, the first core 210 determines whether or not both the first error flag 245 and the second error flag 246 are set. When determining that all error flags are set (step S201: YES), the first core 210 executes an error notification process (step S202).
- the first core 210 causes the display unit 310 to display a message or an image for notifying that neither the first application nor the second application can be normally started.
- the error notification process is executed when the first core 210 (or the second core 220) executes the error notification program 243.
- the first core 210 ends the abnormality determination process and the activation process.
- the first core 210 determines whether the first error flag 245 is set (step S203). If the first core 210 determines that the first error flag 245 is set (step S203: YES), the first core 210 permits access from the second core 220 to the first storage area 250 (step S204). .
- the first core 210 executes the access management program 242 to permit access from the second core 220 to the first storage area 250.
- step S205 When the first core 210 completes the process of step S204, the first core 210 executes a data input / output process (step S205).
- the data input / output process is realized, for example, when the first core 210 (or the second core 220) executes the data input / output program 244.
- the data input / output process will be described in detail with reference to FIG.
- the first core 210 displays a user operation request screen (step S301). Specifically, the first core 210 causes the display unit 310 to display a user operation request screen that is a screen for requesting a user operation.
- the user operation request screen is, for example, a screen that requests the user to perform any of an operation for instructing data reading, an operation for instructing data writing, or an operation for instructing the end of data input / output.
- the first core 210 determines whether or not there is a data read instruction (step S302). For example, the first core 210 determines whether or not a data read instruction has been received by the operation receiving unit 320. If it is determined that there is an instruction to read data (step S302: YES), the first core 210 reads the first data (step S303). Specifically, the first core 210 instructs the second core 220 to read the first data. On the other hand, the second core 220 reads the first data stored in the first storage area 250 and supplies it to the data input / output unit 350. The data input / output unit 350 transmits the supplied first data to the storage device 600 and causes the storage device 600 to store the data.
- the second core 220 reads the first data in a file format corresponding to the file system. Can do.
- the second core 220 accesses the first storage area 250 by referring to the address, thereby Data can be read as binary data.
- the first data to be read is designated by the user.
- binary data may be read by designating an address.
- the first data read in the file format is stored in the storage device 600 in the file format.
- the first data read in the binary format is stored in the storage device 600 together with the address information on the nonvolatile memory 230 in the binary format.
- the first core 210 determines whether there is a data write instruction (step S304). ). For example, the first core 210 determines whether or not a data write instruction has been received by the operation receiving unit 320. When it is determined that there is an instruction to write data (step S304: YES), the first core 210 writes the first data (step S305). Specifically, the first core 210 instructs the second core 220 to write the first data. On the other hand, the second core 220 stores the data received by the data input / output unit 350 from the storage device 600 in the first storage area 250 as the first data.
- the second core 220 when the file system is the same in the first storage area 250 and the second storage area 260, the second core 220 writes the first data in a file format corresponding to this file system. Can do.
- the second core 220 accesses the first storage area 250 by referring to the address, thereby Data can be written as binary data.
- the first data to be written is designated by the user. Further, binary data may be written by designating an address.
- step S304 determines whether there is no data write instruction (step S304: NO), or when the process of step S305 is completed.
- the first core 210 determines whether there is a data input / output end instruction. (Step S306). If the first core 210 determines that there is no data input / output end instruction (step S306: NO), the first core 210 returns the process to step S302. On the other hand, if the first core 210 determines that there is an instruction to end data input / output (step S306: YES), the data input / output processing is completed. When completing the process of step S205, the first core 210 ends the abnormality determination process and the activation process.
- the first core 210 determines whether the second error flag 246 is set (step S206). If the first core 210 determines that the second error flag 246 is set (step S206: YES), the first core 210 permits access from the first core 210 to the second storage area 260 (step S207). .
- the first core 210 executes the access management program 242 to permit access from the first core 210 to the second storage area 260.
- the first core 210 executes a data input / output process (step S208).
- the data to be read or written is not the first data but the second data, and the main body of data reading or writing is not the second core 220 but the second data.
- the data input / output process is the same as the data input / output process executed in step S205 except that the core 210 is one core 210.
- the first core 210 ends the abnormality determination process and the activation process.
- step S109 the abnormality determination process is completed.
- step S110 the first core 210 executes a normal process.
- the first core 210 executes the first application to execute the first process
- the second core 220 executes the second application to execute the second process. It is.
- the first core 210 completes the activation process when completing the process of step S110.
- the first core 210 executes a first process that does not require real-time property
- the second core 220 executes a second process that requires real-time property.
- the cost required for developing the application program for realizing the first process is often lower than the cost required for developing the application program for realizing the second process. Therefore, according to the present embodiment, it is possible to provide a remote controller that has real-time properties, is multifunctional, and is low in cost.
- the first data when the first core 210 does not operate normally, the first data can be accessed by the second core 220.
- the second core 220 does not operate normally, the first data The second data can be accessed by the core 210. That is, in this embodiment, when one core does not operate normally, the other core can read data stored by one core. For this reason, according to this embodiment, the risk that important data such as electricity bill data (billing data), communication log data when an abnormality occurs, and air conditioning management data when an abnormality occurs cannot be accessed is reduced.
- billing data electricity bill data
- communication log data when an abnormality occurs
- air conditioning management data when an abnormality occurs cannot be accessed is reduced.
- the present invention can be applied to a remote controller for remotely controlling a device.
- 100 remote controller 200 multi-core processor, 210 first core, 220 second core, 230 non-volatile memory, 240 management area, 241 startup program, 242 access management program, 243 error notification program, 244 data input / output program, 245 First error flag, 246, second error flag, 250, first storage area, 251, first operating system, 252, first application program, 253, air conditioning management data, 254, power charge data, 260, second storage area 261, second operating system, 262 second application program, 263 communication log data, 264 power pulse log data, 270 bus, 310 display unit, 320 Operation receiving unit, 330 communication unit, 340 power pulse receiver, 350 data input-output unit, 400 air conditioner, 410 outdoor unit, 420 indoor unit, 500 watt hour meter, 600 storage device
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Selective Calling Equipment (AREA)
- Stored Programmes (AREA)
Abstract
A remote controller (100) is provided with a multicore processor (200) provided with a first core (210), a second core (220) and a nonvolatile memory (230). The first core (210) executes, among processing related to an air conditioner (400), first processing which includes processing of storing first data in a first storage area (250) provided in the nonvolatile memory (230) and which has no real-time requirement. The second core (220) executes, among processing related to the air conditioner (400), second processing which includes processing of storing second data in a second storage area (260) provided in the nonvolatile memory (230) and which has a real-time requirement.
Description
本発明は、リモートコントローラ、遠隔制御方法、及び、プログラムに関する。
The present invention relates to a remote controller, a remote control method, and a program.
現在、機器を遠隔操作するリモートコントローラに、リアルタイム性を維持しつつ多くの機能を持たせたいという要望がある。特許文献1には、このような要望に応える技術として、RTOS(Real Time Operating System)を搭載したプラットフォームに、サーバ機能やJAVA(登録商標)機能を実装した集中リモコンが開示されている。
Currently, there is a demand for a remote controller that remotely controls devices to have many functions while maintaining real-time performance. Patent Document 1 discloses a centralized remote controller in which a server function and a JAVA (registered trademark) function are mounted on a platform in which an RTOS (Real Time Operating System) is mounted as a technology that meets such a demand.
特許文献1に開示された集中リモコンは、RTOSを搭載しているため、リアルタイム性を有する。また、特許文献1に開示された集中リモコンは、サーバ機能やJAVA(登録商標)機能が搭載されているため、多機能といえる。
The centralized remote controller disclosed in Patent Document 1 has a real-time property because it is equipped with an RTOS. Further, the central remote controller disclosed in Patent Document 1 has a server function and a JAVA (registered trademark) function.
しかしながら、一般的に、RTOS用に用意されている機能はそれ程多くない。そして、RTOS用に用意されていない機能を利用したい場合、利用したい機能を実現するためのソフトウェアを独自に開発する必要があり、コストがかかる。特許文献1に開示された集中リモコンにおいても、サーバ機能やJAVA(登録商標)機能を実現するためのソフトウェアの開発コストは大きいと考えられる。このため、リアルタイム性を有し、多機能であり、低コストであるリモートコントローラが望まれている。
However, in general, there are not so many functions prepared for RTOS. When it is desired to use a function that is not prepared for RTOS, it is necessary to independently develop software for realizing the function to be used, which is expensive. Even in the centralized remote controller disclosed in Patent Document 1, it is considered that the development cost of software for realizing the server function and JAVA (registered trademark) function is large. Therefore, a remote controller that has real-time properties, is multifunctional, and is low in cost is desired.
本発明は、上記問題に鑑みてなされたものであり、リアルタイム性を有し、多機能であり、低コストであるリモートコントローラ、遠隔制御方法、及び、プログラムを提供することを目的とする。
The present invention has been made in view of the above problems, and an object thereof is to provide a remote controller, a remote control method, and a program that have real-time properties, are multifunctional, and are low in cost.
上記目的を達成するために、本発明に係るリモートコントローラは、
機器を遠隔制御するためのリモートコントローラであって、
第1のコアと第2のコアと不揮発性メモリとを備えるマルチコアプロセッサを備え、
前記第1のコアは、前記機器に関する処理のうち、前記不揮発性メモリが備える第1の記憶領域に第1のデータを記憶する処理を含むとともにリアルタイム性が要求されない第1の処理を実行し、
前記第2のコアは、前記機器に関する処理のうち、前記不揮発性メモリが備える第2の記憶領域に第2のデータを記憶する処理を含むとともにリアルタイム性が要求される第2の処理を実行する。 In order to achieve the above object, a remote controller according to the present invention provides:
A remote controller for remotely controlling a device,
Comprising a multi-core processor comprising a first core, a second core and a non-volatile memory;
The first core includes a process of storing the first data in a first storage area included in the nonvolatile memory among processes related to the device, and executes a first process that does not require real-time performance.
The second core includes a process of storing the second data in a second storage area included in the nonvolatile memory, and a second process requiring real-time performance, among the processes related to the device. .
機器を遠隔制御するためのリモートコントローラであって、
第1のコアと第2のコアと不揮発性メモリとを備えるマルチコアプロセッサを備え、
前記第1のコアは、前記機器に関する処理のうち、前記不揮発性メモリが備える第1の記憶領域に第1のデータを記憶する処理を含むとともにリアルタイム性が要求されない第1の処理を実行し、
前記第2のコアは、前記機器に関する処理のうち、前記不揮発性メモリが備える第2の記憶領域に第2のデータを記憶する処理を含むとともにリアルタイム性が要求される第2の処理を実行する。 In order to achieve the above object, a remote controller according to the present invention provides:
A remote controller for remotely controlling a device,
Comprising a multi-core processor comprising a first core, a second core and a non-volatile memory;
The first core includes a process of storing the first data in a first storage area included in the nonvolatile memory among processes related to the device, and executes a first process that does not require real-time performance.
The second core includes a process of storing the second data in a second storage area included in the nonvolatile memory, and a second process requiring real-time performance, among the processes related to the device. .
本発明では、第1のコアによりリアルタイム性を要しない第1の処理が実行され、第2のコアによりリアルタイム性を要する第2の処理が実行される。従って、本発明によれば、リアルタイム性を有し、多機能であり、低コストであるリモートコントローラを提供することができる。
In the present invention, a first process that does not require real-time property is executed by the first core, and a second process that requires real-time property is executed by the second core. Therefore, according to the present invention, it is possible to provide a remote controller that has real-time properties, is multifunctional, and is low in cost.
(実施形態)
まず、図1を参照して、本発明の実施形態に係るリモートコントローラ100の構成について説明する。リモートコントローラ100は、機器から離れたところから機器を操作するための装置である。本実施形態では、リモートコントローラ100は、機器の状態を制御する機能に加え、機器の状態を監視する機能も有するものとする。 (Embodiment)
First, the configuration of theremote controller 100 according to the embodiment of the present invention will be described with reference to FIG. The remote controller 100 is a device for operating the device from a distance from the device. In this embodiment, it is assumed that the remote controller 100 has a function of monitoring the state of the device in addition to the function of controlling the state of the device.
まず、図1を参照して、本発明の実施形態に係るリモートコントローラ100の構成について説明する。リモートコントローラ100は、機器から離れたところから機器を操作するための装置である。本実施形態では、リモートコントローラ100は、機器の状態を制御する機能に加え、機器の状態を監視する機能も有するものとする。 (Embodiment)
First, the configuration of the
リモートコントローラ100は、リアルタイム性を要しない処理と、リアルタイム性を要する処理とを実行する。リアルタイム性を要しない処理は、即応性が求められない処理であり、低レイテンシが保証されなくてもよい処理であり、処理遅延が許容される処理である。リアルタイム性を要する処理は、即応性が求められる処理であり、低レイテンシが保証されるべき処理であり、処理遅延が許容されない処理である。以下、適宜、リアルタイム性を要しない処理を第1の処理と呼び、リアルタイム性を要する処理を第2の処理と呼ぶ。後述するように、リモートコントローラ100は、第1の処理の実行に適した第1のコア210と第2の処理の実行に適した第2のコア220とを備えるマルチコアプロセッサ200を備え、第1のコア210に第1の処理を実行させ、第2のコア220に第2の処理を実行させる。
The remote controller 100 executes processing that does not require real-time property and processing that requires real-time property. Processing that does not require real-time processing is processing that does not require immediate response, is processing that does not require low latency, and is processing that allows processing delay. Processing that requires real-time processing is processing that requires quick response, is processing that should ensure low latency, and does not allow processing delay. In the following, processing that does not require real-time processing is referred to as first processing, and processing that requires real-time processing is referred to as second processing. As will be described later, the remote controller 100 includes a multi-core processor 200 including a first core 210 suitable for execution of the first process and a second core 220 suitable for execution of the second process. The first core 210 is caused to execute the first process, and the second core 220 is caused to execute the second process.
また、後述するように、基本的には、第1のコア210は、第2の処理に関わるデータ(以下、適宜「第2のデータ」という。)が記憶される第2の記憶領域260にはアクセスできず、第2のコア220は、第1の処理に関わるデータ(以下、適宜「第1のデータ」という。)が記憶される第1の記憶領域250にはアクセスできない。かかる構成では、何らかの原因により第1のコア210が正常に動作しなくなると、第1の記憶領域250に記憶された第1のデータを読み出すことがなくなる。同様に、何らかの原因により第2のコア220が正常に動作しなくなると、第2の記憶領域260に記憶された第2のデータを読み出すことがなくなる。そこで、本実施形態では、リモートコントローラ100は、第1のコア210が正常に動作しないことを検知した場合、第2のコア220による第1の記憶領域250へのアクセスを許容し、第2のコア220が正常に動作しないことを検知した場合、第1のコア210による第2の記憶領域260へのアクセスを許容する。
As will be described later, basically, the first core 210 is stored in the second storage area 260 in which data related to the second processing (hereinafter referred to as “second data” as appropriate) is stored. Cannot be accessed, and the second core 220 cannot access the first storage area 250 in which data related to the first processing (hereinafter referred to as “first data” as appropriate) is stored. In such a configuration, when the first core 210 does not operate normally due to some cause, the first data stored in the first storage area 250 is not read out. Similarly, when the second core 220 does not operate normally for some reason, the second data stored in the second storage area 260 is not read. Therefore, in the present embodiment, when the remote controller 100 detects that the first core 210 does not operate normally, the remote controller 100 allows the second core 220 to access the first storage area 250, and When it is detected that the core 220 does not operate normally, access to the second storage area 260 by the first core 210 is permitted.
第1のコア210が正常に動作しない原因、つまり、第1の処理が正常に実行されない原因は、例えば、第1のコア210のハードウェア的な故障、第1のオペレーティングシステム251の異常(例えば、バグ)、第1のアプリケーションプログラム252の異常(例えば、バグ)である。第2のコア220が正常に動作しない原因は、つまり、第2の処理が正常に実行されない原因は、例えば、第2のコア220のハードウェア的な故障、第2のオペレーティングシステム261の異常(例えば、バグ)、第2のアプリケーションプログラム262の異常(例えば、バグ)である。
The reason why the first core 210 does not operate normally, that is, the reason why the first process is not executed normally is, for example, a hardware failure of the first core 210, an abnormality of the first operating system 251 (for example, , Bug), an abnormality (for example, bug) of the first application program 252. The reason why the second core 220 does not operate normally, that is, the reason why the second process is not normally executed, is, for example, a hardware failure of the second core 220 or an abnormality of the second operating system 261 ( For example, a bug) and an abnormality (for example, a bug) of the second application program 262.
本実施形態では、リモートコントローラ100により制御又は監視される機器は、空気調和機400と電力量計500との2つの機器であるものとする。ただし、リモートコントローラ100により制御又は監視される機器は、他の機器であってもよく、3つ以上の機器であってもよいことは勿論である。リモートコントローラ100は、多数の機器を一括して遠隔制御する集中リモコンであってもよい。
In this embodiment, the devices controlled or monitored by the remote controller 100 are two devices, that is, the air conditioner 400 and the watt-hour meter 500. However, the device controlled or monitored by the remote controller 100 may be other devices or may be three or more devices. The remote controller 100 may be a centralized remote controller that remotely controls a large number of devices at once.
空気調和機400は、室外機410と室内機420とを備え、室内機420が設置された空間の空気を調整する機器である。空気を調整するとは、例えば、温度を調整したり、湿度を調整したり、送風したり、不純物を除去したりすることである。空気調和機400は、リモートコントローラ100により制御及び監視される。つまり、室外機410の状態及び室内機420の状態は、リモートコントローラ100により制御及び監視される。従って、室外機410と室内機420とは、リモートコントローラ100と通信する機能を有する。以下、適宜、室外機410や室内機420のことを空気調和機400と呼ぶ。本実施形態では、空気調和機400が1つの室内機420を備えるものとするが、空気調和機400が2つ以上の室内機420を備えていてもよい。また、空気調和機400は、換気扇(図示せず)、搬送ファン(図示せず)、照明機器(図示せず)などを備えていてもよい。
The air conditioner 400 includes an outdoor unit 410 and an indoor unit 420, and is a device that adjusts the air in the space where the indoor unit 420 is installed. Adjusting air means, for example, adjusting temperature, adjusting humidity, blowing air, or removing impurities. The air conditioner 400 is controlled and monitored by the remote controller 100. That is, the state of the outdoor unit 410 and the state of the indoor unit 420 are controlled and monitored by the remote controller 100. Therefore, the outdoor unit 410 and the indoor unit 420 have a function of communicating with the remote controller 100. Hereinafter, the outdoor unit 410 and the indoor unit 420 are appropriately referred to as an air conditioner 400. In this embodiment, the air conditioner 400 includes one indoor unit 420, but the air conditioner 400 may include two or more indoor units 420. The air conditioner 400 may include a ventilation fan (not shown), a transport fan (not shown), a lighting device (not shown), and the like.
電力量計500は、空気調和機400により消費された電力量を計測する。電力量計500は、例えば、空気調和機400に供給される電流の大きさや位相を計測するカレントトランスを備える。電力量計500は、計測された電力量に応じた電力パルスを発信する機能を有する。例えば、電力量計500は、1kWh毎、10kWh毎、或いは、100kW毎に、1パルス発信する。電力量計500は、例えば、無線通信により、電力パルスを発信する。電力量計500から発信された電力パルスは、リモートコントローラ100により受信される。
The watt-hour meter 500 measures the amount of power consumed by the air conditioner 400. The watt-hour meter 500 includes, for example, a current transformer that measures the magnitude and phase of the current supplied to the air conditioner 400. The watt-hour meter 500 has a function of transmitting a power pulse corresponding to the measured power amount. For example, the watt-hour meter 500 transmits one pulse every 1 kWh, every 10 kWh, or every 100 kW. The watt-hour meter 500 transmits a power pulse by wireless communication, for example. The power pulse transmitted from the watt-hour meter 500 is received by the remote controller 100.
記憶装置600は、データを記憶する装置である。記憶装置600には、リモートコントローラ100に異常が発生したときにリモートコントローラ100から読み出されたデータが記憶される。また、記憶装置600には、リモートコントローラ100に書き込まれるデータが予め記憶される。記憶装置600は、例えば、USB(Universal Serial Bus)フラッシュドライブ、SD(Secure Digital)メモリーカード、ハードディスクドライブである。
The storage device 600 is a device that stores data. The storage device 600 stores data read from the remote controller 100 when an abnormality occurs in the remote controller 100. The storage device 600 stores data to be written in the remote controller 100 in advance. The storage device 600 is, for example, a USB (Universal Serial Bus) flash drive, an SD (Secure Digital) memory card, or a hard disk drive.
図1に示すように、リモートコントローラ100は、マルチコアプロセッサ200と、表示部310と、操作受付部320と、通信部330と、電力パルス受信部340と、データ入出力部350とを備える。
As shown in FIG. 1, the remote controller 100 includes a multi-core processor 200, a display unit 310, an operation receiving unit 320, a communication unit 330, a power pulse receiving unit 340, and a data input / output unit 350.
マルチコアプロセッサ200は、複数のコアプロセッサを1つのパッケージに集積したマイクロプロセッサであり、第1のコア210と、第2のコア220と、不揮発性メモリ230とを備える。第1のコア210と第2のコア220と不揮発性メモリ230とは、バス270を介して相互に接続される。本実施形態では、マルチコアプロセッサ200は、非対称型であり、オペレーティングシステムが実装されているものとする。ただし、マルチコアプロセッサ200は、対称型であってもよく、オペレーティングシステムが実装されていなくてもよい。また、マルチコアプロセッサ200は、3つ以上のプロセッサコアを備えていてもよい。
The multi-core processor 200 is a microprocessor in which a plurality of core processors are integrated in one package, and includes a first core 210, a second core 220, and a nonvolatile memory 230. The first core 210, the second core 220, and the nonvolatile memory 230 are connected to each other via a bus 270. In the present embodiment, it is assumed that the multi-core processor 200 is asymmetric and has an operating system mounted thereon. However, the multi-core processor 200 may be a symmetric type and may not have an operating system mounted thereon. The multi-core processor 200 may include three or more processor cores.
第1のコア210は、演算処理を実行するための論理回路(図示せず)やキャッシュメモリ(図示せず)を備えるプロセッサコアである。第1のコア210は、空気調和機400と電力量計500とに関する処理のうち、第1の処理(リアルタイム性を要しない処理)を実行する。第1のコア210には、第1の処理に適したオペレーティングシステムである第1のオペレーティングシステム251が実装される。第1の処理は、第1のオペレーティングシステム251上で第1のアプリケーションプログラム252が実行されることにより実現される。第1の処理は、並列処理やバッチ処理が要求される処理であり、例えば、表示部310に対する表示制御処理、操作受付部320を用いた操作入力検出処理、通信部330を介した空気調和機400の制御処理である。
The first core 210 is a processor core including a logic circuit (not shown) and a cache memory (not shown) for executing arithmetic processing. The 1st core 210 performs the 1st processing (processing which does not require real-time nature) among processing about air harmony machine 400 and watt-hour meter 500. A first operating system 251 that is an operating system suitable for the first processing is mounted on the first core 210. The first process is realized by executing the first application program 252 on the first operating system 251. The first process is a process that requires parallel processing or batch processing. For example, display control processing for the display unit 310, operation input detection processing using the operation receiving unit 320, air conditioner via the communication unit 330 400 control processes.
第2のコア220は、演算処理を実行するための論理回路(図示せず)やキャッシュメモリ(図示せず)を備えるプロセッサコアである。第2のコア220は、空気調和機400と電力量計500とに関する処理のうち、第2の処理(リアルタイム性を要する処理)を実行する。第2のコア220には、第2の処理に適したオペレーティングシステムである第2のオペレーティングシステム261が実装される。第2の処理は、第2のオペレーティングシステム261上で第2のアプリケーションプログラム262が実行されることにより実現される。第2の処理は、例えば、リモートコントローラ100と空気調和機400との通信に関わるログデータである通信ログデータ263の取得処理や、電力量計500から受信した電力パルスに関わるログデータである電力パルスログデータ264の取得処理である。なお、第1のコア210と第2のコア220とは、例えば、割り込み信号の送受信により、制御信号や少量のデータの送受信が可能である。
The second core 220 is a processor core including a logic circuit (not shown) and a cache memory (not shown) for executing arithmetic processing. The 2nd core 220 performs the 2nd processing (processing which requires real-time nature) among the processing about air harmony machine 400 and watt-hour meter 500. A second operating system 261 that is an operating system suitable for the second processing is mounted on the second core 220. The second process is realized by executing the second application program 262 on the second operating system 261. The second process is, for example, an acquisition process of communication log data 263 that is log data related to communication between the remote controller 100 and the air conditioner 400, or power that is log data related to a power pulse received from the watt-hour meter 500. This is an acquisition process of the pulse log data 264. The first core 210 and the second core 220 can transmit and receive a control signal and a small amount of data by transmitting and receiving an interrupt signal, for example.
不揮発性メモリ230は、電源が供給されなくてもデータを保持することが可能なメモリである。不揮発性メモリ230は、例えば、フラッシュメモリである。不揮発性メモリ230は、管理領域240と、第1の記憶領域250と、第2の記憶領域260とを備える。管理領域240は、第1のコア210や第2のコア220の動作の管理に関わるプログラムやデータが記憶される記憶領域である。第1の記憶領域250は、第1のコア210に関わるプログラムやデータが記憶される記憶領域である。第2の記憶領域260は、第2のコア220に関わるプログラムやデータが記憶される記憶領域である。本実施形態では、管理領域240と第1の記憶領域250と第2の記憶領域260とは、それぞれ、予め定められたアドレス範囲に設定されているものとする。以下、図2を参照して、不揮発性メモリ230に記憶されるデータについて説明する。
The non-volatile memory 230 is a memory capable of holding data even when power is not supplied. The nonvolatile memory 230 is, for example, a flash memory. The nonvolatile memory 230 includes a management area 240, a first storage area 250, and a second storage area 260. The management area 240 is a storage area in which programs and data related to management of operations of the first core 210 and the second core 220 are stored. The first storage area 250 is a storage area in which programs and data related to the first core 210 are stored. The second storage area 260 is a storage area in which programs and data related to the second core 220 are stored. In the present embodiment, it is assumed that the management area 240, the first storage area 250, and the second storage area 260 are set to predetermined address ranges, respectively. Hereinafter, data stored in the nonvolatile memory 230 will be described with reference to FIG.
管理領域240には、起動プログラム241と、アクセス管理プログラム242と、エラー通知プログラム243と、データ入出力プログラム244と、第1のエラーフラグ245と、第2のエラーフラグ246とが記憶される。
In the management area 240, an activation program 241, an access management program 242, an error notification program 243, a data input / output program 244, a first error flag 245, and a second error flag 246 are stored.
起動プログラム241は、マルチコアプロセッサ200の電源投入後、最初に呼び出されて実行されるプログラムである。起動プログラム241は、第1のオペレーティングシステム251や第2のオペレーティングシステム261を呼び出すためのプログラムである。起動プログラム241は、第1のコア210又は第2のコア220により実行される。起動プログラム241は、例えば、ブートローダに対応する。
The startup program 241 is a program that is called and executed first after the multi-core processor 200 is powered on. The start program 241 is a program for calling the first operating system 251 and the second operating system 261. The activation program 241 is executed by the first core 210 or the second core 220. The activation program 241 corresponds to, for example, a boot loader.
アクセス管理プログラム242は、第1のコア210がアクセス可能な記憶領域と第2のコア220がアクセス可能な記憶領域とを管理するためのプログラムである。アクセス管理プログラム242は、第1のコア210と第2のコア220とが正常に動作する場合、第1のコア210による第2の記憶領域260へのアクセスを禁止し、第2のコア220による第1の記憶領域250へのアクセスを禁止する。また、アクセス管理プログラム242は、第1のコア210が正常に動作しない場合、第2のコア220による第1の記憶領域250へのアクセスを許容する。そして、アクセス管理プログラム242は、第2のコア220が正常に動作しない場合、第1のコア210による第2の記憶領域260へのアクセスを許容する。アクセス管理プログラム242は、第1のコア210又は第2のコア220により実行される。アクセス管理プログラム242は、例えば、デバイスドライバに対応する。
The access management program 242 is a program for managing a storage area accessible by the first core 210 and a storage area accessible by the second core 220. When the first core 210 and the second core 220 operate normally, the access management program 242 prohibits the access to the second storage area 260 by the first core 210 and causes the second core 220 to Access to the first storage area 250 is prohibited. Further, the access management program 242 allows the second core 220 to access the first storage area 250 when the first core 210 does not operate normally. Then, the access management program 242 allows the first core 210 to access the second storage area 260 when the second core 220 does not operate normally. The access management program 242 is executed by the first core 210 or the second core 220. The access management program 242 corresponds to, for example, a device driver.
エラー通知プログラム243は、第1のコア210と第2のコア220とが正常に動作しない場合に、エラーを通知するためのプログラムである。データ入出力プログラム244は、第1のコア210と第2のコア220とのうちの一方のコアが正常に動作しない場合に、他方のコアが上記一方のコアに関わるデータを読み出したり書き込んだりするためのプログラムである。エラー通知プログラム243とデータ入出力プログラム244とは、第1のコア210又は第2のコア220により実行される。
The error notification program 243 is a program for notifying an error when the first core 210 and the second core 220 do not operate normally. When one of the first core 210 and the second core 220 does not operate normally, the data input / output program 244 reads or writes data related to the one core. It is a program for. The error notification program 243 and the data input / output program 244 are executed by the first core 210 or the second core 220.
第1のエラーフラグ245は、第1のコア210が正常に動作しない場合に、セットされるフラグである。第1のコア210が正常に動作しない場合とは、第1のコア210がハードウェア的に動作しない場合、第1のコア210が第1のオペレーティングシステム251を正しく起動できない場合、第1のオペレーティングシステム251から第1のアプリケーションプログラム252が正しく呼び出されない場合である。第2のエラーフラグ246は、第2のコア220が正常に動作しない場合に、セットされるフラグである。第2のコア220が正常に動作しない場合とは、第2のコア220がハードウェア的に動作しない場合、第2のコア220が第2のオペレーティングシステム261を正しく起動できない場合、第2のオペレーティングシステム261から第2のアプリケーションプログラム262が正しく呼び出されない場合である。第1のエラーフラグ245や第2のエラーフラグ246は、第1のコア210又は第2のコア220が起動プログラム241を実行することによりセットされる。
The first error flag 245 is a flag that is set when the first core 210 does not operate normally. The case where the first core 210 does not operate normally refers to the case where the first core 210 does not operate in hardware, the case where the first core 210 cannot properly start the first operating system 251, and the first operating system 251. This is a case where the first application program 252 is not correctly called from the system 251. The second error flag 246 is a flag that is set when the second core 220 does not operate normally. The case where the second core 220 does not operate normally means that the second core 220 does not operate in hardware, the second core 220 cannot properly start the second operating system 261, and the second operating system 261 This is a case where the second application program 262 is not correctly called from the system 261. The first error flag 245 and the second error flag 246 are set when the first core 210 or the second core 220 executes the start program 241.
第1の記憶領域250には、第1のオペレーティングシステム251と、第1のアプリケーションプログラム252と、空調管理データ253と、電力料金データ254とが記憶される。第1のオペレーティングシステム251は、第1のコア210が起動する、第1の処理の実行に適した基本ソフトウェアである。第1のアプリケーションプログラム252は、第1のオペレーティングシステム251から呼び出される、第1の処理を実行するためのアプリケーションソフトウェアである。図1及び図2では、理解を容易にするため、第1のアプリケーションプログラム252を1つだけ明示しているが、第1のアプリケーションプログラム252の個数は、第1の処理の個数分だけ用意される。
The first storage area 250 stores a first operating system 251, a first application program 252, air conditioning management data 253, and power rate data 254. The first operating system 251 is basic software that is activated by the first core 210 and is suitable for executing the first process. The first application program 252 is application software for executing a first process that is called from the first operating system 251. In FIG. 1 and FIG. 2, for ease of understanding, only one first application program 252 is clearly shown. However, the number of first application programs 252 is as many as the number of first processes. The
空調管理データ253は、空気調和機400の管理に関するデータであり、空気調和機400の運転状態の履歴を示すデータである。電力料金データ254は、空気調和機400の稼働により消費された電力量から算出された電気料金を示すデータである。空調管理データ253と電力料金データ254とは、第1のコア210が第1のアプリケーションプログラム252を実行することにより、第1の記憶領域250の予め定められた記憶領域に記憶される。
The air conditioning management data 253 is data related to the management of the air conditioner 400, and is data indicating a history of the operating state of the air conditioner 400. The power rate data 254 is data indicating an electricity rate calculated from the amount of power consumed by the operation of the air conditioner 400. The air conditioning management data 253 and the power charge data 254 are stored in a predetermined storage area of the first storage area 250 when the first core 210 executes the first application program 252.
第2の記憶領域260には、第2のオペレーティングシステム261と、第2のアプリケーションプログラム262と、通信ログデータ263と、電力パルスログデータ264とが記憶される。第2のオペレーティングシステム261は、第2のコア220が起動する、第2の処理の実行に適した基本ソフトウェアである。第2のアプリケーションプログラム262は、第2のオペレーティングシステム261から呼び出される、第2の処理を実行するためのアプリケーションソフトウェアである。図1及び図2では、理解を容易にするため、第2のアプリケーションプログラム262を1つだけ明示しているが、第2のアプリケーションプログラム262の個数は、第2の処理の個数分だけ用意される。
The second storage area 260 stores a second operating system 261, a second application program 262, communication log data 263, and power pulse log data 264. The second operating system 261 is basic software that is activated by the second core 220 and suitable for executing the second process. The second application program 262 is application software for executing the second process that is called from the second operating system 261. In FIG. 1 and FIG. 2, only one second application program 262 is clearly shown for easy understanding, but the number of second application programs 262 is as many as the number of second processes. The
通信ログデータ263は、リモートコントローラ100と空気調和機400との間で送受信された通信内容の履歴を示すログデータである。通信ログデータ263は、例えば、通信内容と通信時刻とを含むレコードを備える。電力パルスログデータ264は、電力量計500から受信された電力パルスの履歴を示すログデータである。電力パルスログデータ264は、例えば、電力パルスの受信時刻を含むレコードを備える。通信ログデータ263と電力パルスログデータ264とは、第2のコア220が第2のアプリケーションプログラム262を実行することにより、第2の記憶領域260の予め定められた記憶領域に記憶される。
The communication log data 263 is log data indicating a history of communication contents transmitted / received between the remote controller 100 and the air conditioner 400. The communication log data 263 includes, for example, a record including communication contents and communication time. The power pulse log data 264 is log data indicating a history of power pulses received from the watt-hour meter 500. The power pulse log data 264 includes, for example, a record including the reception time of the power pulse. The communication log data 263 and the power pulse log data 264 are stored in a predetermined storage area of the second storage area 260 when the second core 220 executes the second application program 262.
表示部310は、第1のコア210又は第2のコア220による制御に従って、各種の情報を含む画面を表示する。表示部310により表示される情報は、例えば、空気調和機400の運転状況を示す情報、空気調和機400の設定状況を示す情報、第1のコア210と第2のコア220とが正常に動作しない旨を報知する情報、第1のデータや第2のデータの読み込みや書き込みを促す情報である。表示部310は、例えば、液晶ディスプレイ、7セグメントLED(Liquid Emitting Diode)を備える。
The display unit 310 displays a screen including various types of information in accordance with control by the first core 210 or the second core 220. The information displayed by the display unit 310 includes, for example, information indicating the operation status of the air conditioner 400, information indicating the setting status of the air conditioner 400, and the first core 210 and the second core 220 operating normally. This is information for notifying that it is not performed, and information for prompting reading and writing of the first data and the second data. The display unit 310 includes, for example, a liquid crystal display and a 7 segment LED (Liquid Emitting Diode).
操作受付部320は、ユーザによる操作を受け付けるインターフェースである。操作受付部320は、例えば、空気調和機400の状態の制御を指示する操作、空気調和機400の状態の表示を指示する操作、第1のデータや第2のデータの読み込みや書き込みを指示する操作である。操作受付部320は、例えば、押しボタン、キーボードなどを備える。なお、表示部310と操作受付部320とが統合されたタッチスクリーンが採用されてもよい。
The operation accepting unit 320 is an interface that accepts an operation by a user. The operation accepting unit 320 instructs, for example, an operation for instructing control of the state of the air conditioner 400, an operation for instructing display of the state of the air conditioner 400, and reading and writing of first data and second data. It is an operation. The operation reception unit 320 includes, for example, a push button and a keyboard. Note that a touch screen in which the display unit 310 and the operation receiving unit 320 are integrated may be employed.
通信部330は、リモートコントローラ100を空気調和機400と通信できるようにするための通信インターフェースである。通信部330により送受信される情報は、例えば、空気調和機400の状態の制御を指示する情報、空気調和機400の状態を示す情報である。通信部330は、例えば、無線通信により空気調和機400と通信する赤外線通信インターフェースであり、通信処理を実行する専用IC(Integrated Circuit)を備える。
The communication unit 330 is a communication interface for enabling the remote controller 100 to communicate with the air conditioner 400. The information transmitted and received by the communication unit 330 is, for example, information that instructs control of the state of the air conditioner 400 and information that indicates the state of the air conditioner 400. The communication unit 330 is, for example, an infrared communication interface that communicates with the air conditioner 400 by wireless communication, and includes a dedicated IC (Integrated Circuit) that executes communication processing.
電力パルス受信部340は、電力量計500から発信された電力パルスを受信する。電力パルス受信部340は、電力パルスを受信した場合、例えば、割り込み信号により第1のコア210や第2のコア220に電力パルスを受信した旨を通知する。電力パルス受信部340は、例えば、無線信号を受信するインターフェースである。
The power pulse receiving unit 340 receives the power pulse transmitted from the watt hour meter 500. When receiving the power pulse, the power pulse receiving unit 340 notifies the first core 210 and the second core 220 that the power pulse has been received by an interrupt signal, for example. The power pulse receiver 340 is an interface that receives a radio signal, for example.
データ入出力部350は、第1のコア210又は第2のコア220が正常に動作しない場合に、不揮発性メモリ230から読み出した第1のデータ又は第2のデータを記憶装置600に送信したり、記憶装置600から受信した第1のデータ又は第2のデータを不揮発性メモリ230に書き込んだりするインターフェースである。データ入出力部350は、例えば、USBポート、SDカード用スロットである。
The data input / output unit 350 sends the first data or the second data read from the nonvolatile memory 230 to the storage device 600 when the first core 210 or the second core 220 does not operate normally. This is an interface for writing the first data or the second data received from the storage device 600 into the nonvolatile memory 230. The data input / output unit 350 is, for example, a USB port or an SD card slot.
次に、図3を参照して、リモートコントローラ100が実行する起動処理について説明する。起動処理は、リモートコントローラ100の電源が投入されたときに、第1のコア210又は第2のコア220が実行する処理である。起動処理は、基本的に、マスターコアが、起動プログラム241を実行することにより実現される。マスターコアは、第1のコア210と第2のコア220とのうち、最初に起動したコアである。マスターコアでないコアは、スレーブコアとなる。例えば、第1のコア210と第2のコア220とは、起動時に、他のコアに起動した旨を知らせる割り込み信号を送信することにより、いずれのコアが先に起動したのかを特定することができる。本実施形態では、第1のコア210がマスターコアであり、第2のコア220がスレーブコアであるものとする。
Next, the startup process executed by the remote controller 100 will be described with reference to FIG. The activation process is a process executed by the first core 210 or the second core 220 when the remote controller 100 is powered on. The startup process is basically realized by the master core executing the startup program 241. The master core is the first activated core among the first core 210 and the second core 220. A core that is not a master core is a slave core. For example, the first core 210 and the second core 220 may identify which core has been activated first by transmitting an interrupt signal informing that the other core has been activated at the time of activation. it can. In the present embodiment, the first core 210 is a master core, and the second core 220 is a slave core.
まず、第1のコア210は、第1のオペレーティングシステム251を起動する(ステップS101)。例えば、第1のコア210は、起動プログラム241を実行するスレッドとは別のスレッドで、第1のオペレーティングシステム251の起動を開始する。
First, the first core 210 activates the first operating system 251 (step S101). For example, the first core 210 starts booting the first operating system 251 with a thread different from the thread that executes the boot program 241.
第1のコア210は、ステップS101の処理が完了すると、第1のアプリケーションを起動する(ステップS102)。本実施形態では、第1のオペレーティングシステム251の起動が完了すると、自動的に、第1のアプリケーションの起動が開始されるものとする。なお、第1のコア210により第1のアプリケーションプログラム252の実行が開始されると、第1のアプリケーションの起動が開始される。
The first core 210 activates the first application when the process of step S101 is completed (step S102). In the present embodiment, it is assumed that when the first operating system 251 has been activated, the first application is automatically activated. Note that when the first application program 252 is started by the first core 210, the first application is started.
第1のコア210は、ステップS102の処理が完了すると、第1のアプリケーションの起動が成功したか否かを判別する(ステップS103)。第1のアプリケーションの起動が成功することは、第1のアプリケーションの起動が完了し、第1のアプリケーションが実行可能な状態になることを意味する。例えば、第1のコア210にハードウェア的に異常がなく、第1のオペレーティングシステム251に異常がなく、且つ、第1のアプリケーションプログラム252に異常がない場合、第1のアプリケーションの起動が成功する。一方、第1のコア210にハードウェア的に異常があり、第1のオペレーティングシステム251に異常があり、又は、第1のアプリケーションプログラム252に異常がある場合、第1のアプリケーションの起動が失敗する。
When the processing of step S102 is completed, the first core 210 determines whether or not the first application has been successfully activated (step S103). Successful activation of the first application means that the activation of the first application is completed and the first application is ready to be executed. For example, if the first core 210 has no hardware abnormality, the first operating system 251 has no abnormality, and the first application program 252 has no abnormality, the first application starts successfully. . On the other hand, if the first core 210 has a hardware abnormality, the first operating system 251 has an abnormality, or the first application program 252 has an abnormality, the first application fails to start. .
第1のアプリケーションの起動が成功したか否かを判別する手法は、適宜、調整することができる。例えば、第1のアプリケーションの起動が完了した場合に、第1のアプリケーションの起動が完了したことを通知する割り込み信号が発生するように設計されているものとする。この場合、第1のコア210は、予め定められた設定期間内にこの割り込み信号が発生したか否かを判別することにより、第1のアプリケーションの起動が成功したか否かを判別することができる。つまり、第1のコア210は、この設定期間内にこの割り込みが発生したことを検知した場合、第1のアプリケーションの起動が成功したと判別し、この設定期間内にこの割り込みが発生したことを検知しなかった場合(タイムアウトした場合)、第1のアプリケーションの起動が失敗したと判別する。なお、この設定期間は、例えば、第1のオペレーティングシステム251の起動を開始してから、第1のオペレーティングシステム251の起動に要すると推定される時間と第1のアプリケーションの起動に要すると推定される時間との和よりも十分に長い時間が経過するまでの期間である。
The method for determining whether or not the first application has been successfully activated can be adjusted as appropriate. For example, it is assumed that an interrupt signal for notifying that the start of the first application is completed is generated when the start of the first application is completed. In this case, the first core 210 can determine whether or not the first application has been successfully started by determining whether or not the interrupt signal is generated within a predetermined setting period. it can. That is, when the first core 210 detects that this interrupt has occurred within this set period, the first core 210 determines that the first application has been successfully activated, and determines that this interrupt has occurred within this set period. If not detected (timeout), it is determined that the first application has failed to start. Note that, for example, the setting period is estimated to be required for starting the first application and the time estimated to start the first operating system 251 after starting the first operating system 251. This is a period until a time sufficiently longer than the sum of the time to be passed.
或いは、例えば、第1のアプリケーションの起動時に、予め定められたデバイスファイルがマウントされるものとする。この場合、第1のコア210は、このデバイスファイルがマウントされているか否かを判別することにより、第1のアプリケーションの起動が成功したか否かを判別することができる。例えば、第1のコア210は、上記設定期間の経過後にこのデバイスファイルがマウントされていることを検知した場合、第1のアプリケーションの起動が成功したと判別し、上記設定期間の経過後にこのデバイスファイルがマウントされていないことを検知した場合、第1のアプリケーションの起動が失敗したと判別する。
Alternatively, for example, it is assumed that a predetermined device file is mounted when the first application is started. In this case, the first core 210 can determine whether or not the first application has been successfully started by determining whether or not the device file is mounted. For example, when the first core 210 detects that the device file is mounted after the set period has elapsed, the first core 210 determines that the first application has been successfully activated, and after the set period has elapsed, If it is detected that the file is not mounted, it is determined that activation of the first application has failed.
第1のコア210は、第1のアプリケーションの起動が成功しなかったと判別した場合(ステップS103:NO)、第1のエラーフラグ245をセットする(ステップS104)。なお、第1のエラーフラグ245は、起動処理の開始時には、セットされていないものとする。第1のコア210は、第1のアプリケーションの起動が成功したと判別した場合(ステップS103:YES)、又は、ステップS104の処理を完了した場合、第2のオペレーティングシステム261を起動する(ステップS105)。例えば、第1のコア210は、第2のコア220に、第2のオペレーティングシステム261の起動を開始させる。
When the first core 210 determines that the first application has not been successfully activated (step S103: NO), the first core 210 sets the first error flag 245 (step S104). Note that the first error flag 245 is not set at the start of the activation process. When it is determined that the first application has been successfully activated (step S103: YES), or when the process of step S104 is completed, the first core 210 activates the second operating system 261 (step S105). ). For example, the first core 210 causes the second core 220 to start booting the second operating system 261.
第1のコア210は、ステップS105の処理が完了すると、第2のアプリケーションを起動する(ステップS106)。本実施形態では、第2のオペレーティングシステム261の起動が完了すると、自動的に、第2のアプリケーションの起動が開始されるものとする。なお、第2のコア220により第2のアプリケーションプログラム262の実行が開始されると、第2のアプリケーションの起動が開始される。
The first core 210 activates the second application when the process of step S105 is completed (step S106). In the present embodiment, it is assumed that the startup of the second application is automatically started when the startup of the second operating system 261 is completed. Note that when the second application program 262 is started to be executed by the second core 220, activation of the second application is started.
第1のコア210は、ステップS106の処理が完了すると、第2のアプリケーションの起動が成功したか否かを判別する(ステップS107)。第2のアプリケーションの起動が成功することは、第2のアプリケーションの起動が完了し、第2のアプリケーションが実行可能な状態になることを意味する。例えば、第2のコア220にハードウェア的に異常がなく、第2のオペレーティングシステム261に異常がなく、且つ、第2のアプリケーションプログラム262に異常がない場合、第2のアプリケーションの起動が成功する。一方、第2のコア220にハードウェア的に異常があり、第2のオペレーティングシステム261に異常があり、又は、第2のアプリケーションプログラム262に異常がある場合、第2のアプリケーションの起動が失敗する。
When the processing of step S106 is completed, the first core 210 determines whether or not the second application has been successfully activated (step S107). Successful activation of the second application means that the activation of the second application is completed and the second application is ready to be executed. For example, if the second core 220 has no hardware abnormality, the second operating system 261 has no abnormality, and the second application program 262 has no abnormality, the second application starts successfully. . On the other hand, when the second core 220 has a hardware abnormality, the second operating system 261 has an abnormality, or the second application program 262 has an abnormality, the activation of the second application fails. .
第2のアプリケーションの起動が成功したか否かを判別する手法は、第1のアプリケーションの起動が成功したか否かを判別する手法と同様である。つまり、第1のコア210は、予め定められた設定期間内に、第2のアプリケーションの起動が完了したことを通知する割り込み信号が発生したか否かを判別することにより、第2のアプリケーションの起動が成功したか否かを判別することができる。或いは、第1のコア210は、上記設定期間の経過後に、第2のアプリケーションの起動時にマウントされるデバイスファイルがマウントされているか否かを判別することにより、第2のアプリケーションの起動が成功したか否かを判別することができる。
The method for determining whether or not the second application has been successfully started is the same as the method for determining whether or not the first application has been successfully started. That is, the first core 210 determines whether or not an interrupt signal for notifying that the activation of the second application has been completed is generated within a predetermined setting period. It can be determined whether or not the activation is successful. Alternatively, the first core 210 succeeded in starting the second application by determining whether or not a device file that is mounted when the second application is started is mounted after the setting period has elapsed. It can be determined whether or not.
第1のコア210は、第2のアプリケーションの起動が成功しなかったと判別した場合(ステップS107:NO)、第2のエラーフラグ246をセットする(ステップS108)。なお、第2のエラーフラグ246は、起動処理の開始時には、セットされていないものとする。第1のコア210は、第2のアプリケーションの起動が成功したと判別した場合(ステップS107:YES)、又は、ステップS108の処理を完了した場合、異常判定処理を実行する(ステップS109)。異常判定処理については、図4を参照して、詳細に説明する。
When the first core 210 determines that the second application has not been successfully activated (step S107: NO), the first core 210 sets the second error flag 246 (step S108). Note that the second error flag 246 is not set at the start of the activation process. When it is determined that the second application has been successfully activated (step S107: YES), or when the process of step S108 is completed, the first core 210 executes an abnormality determination process (step S109). The abnormality determination process will be described in detail with reference to FIG.
まず、第1のコア210は、全エラーフラグがセットされているか否かを判別する(ステップS201)。つまり、第1のコア210は、第1のエラーフラグ245と第2のエラーフラグ246とのいずれもがセットされているか否かを判別する。第1のコア210は、全エラーフラグがセットされていると判別すると(ステップS201:YES)、エラー通知処理を実行する(ステップS202)。
First, the first core 210 determines whether or not all error flags are set (step S201). That is, the first core 210 determines whether or not both the first error flag 245 and the second error flag 246 are set. When determining that all error flags are set (step S201: YES), the first core 210 executes an error notification process (step S202).
エラー通知処理では、第1のコア210は、第1のアプリケーションと第2のアプリケーションとのいずれもが正常に起動できないことを報知するメッセージや画像を表示部310に表示させる。エラー通知処理は、第1のコア210(又は、第2のコア220)がエラー通知プログラム243を実行することにより実行される。第1のコア210は、ステップS202の処理を完了すると、異常判定処理及び起動処理を終了する。
In the error notification process, the first core 210 causes the display unit 310 to display a message or an image for notifying that neither the first application nor the second application can be normally started. The error notification process is executed when the first core 210 (or the second core 220) executes the error notification program 243. When completing the process of step S202, the first core 210 ends the abnormality determination process and the activation process.
一方、第1のコア210は、いずれかのエラーフラグがセットされていないと判別すると(ステップS201:NO)、第1のエラーフラグ245がセットされているか否かを判別する(ステップS203)。第1のコア210は、第1のエラーフラグ245がセットされていると判別すると(ステップS203:YES)、第2のコア220から第1の記憶領域250へのアクセスを許可する(ステップS204)。例えば、第1のコア210は、アクセス管理プログラム242を実行して、第2のコア220から第1の記憶領域250へのアクセスを許可する。
On the other hand, if the first core 210 determines that any one of the error flags is not set (step S201: NO), the first core 210 determines whether the first error flag 245 is set (step S203). If the first core 210 determines that the first error flag 245 is set (step S203: YES), the first core 210 permits access from the second core 220 to the first storage area 250 (step S204). . For example, the first core 210 executes the access management program 242 to permit access from the second core 220 to the first storage area 250.
第1のコア210は、ステップS204の処理を完了すると、データ入出力処理を実行する(ステップS205)。データ入出力処理は、例えば、第1のコア210(又は、第2のコア220)が、データ入出力プログラム244を実行することにより実現される。データ入出力処理については、図5を参照して、詳細に説明する。
When the first core 210 completes the process of step S204, the first core 210 executes a data input / output process (step S205). The data input / output process is realized, for example, when the first core 210 (or the second core 220) executes the data input / output program 244. The data input / output process will be described in detail with reference to FIG.
まず、第1のコア210は、ユーザ操作要求画面を表示する(ステップS301)。具体的には、第1のコア210は、表示部310にユーザ操作を要求する画面であるユーザ操作要求画面を表示させる。ユーザ操作要求画面は、例えば、データの読み出しを指示する操作、データの書き込みを指示する操作、データ入出力の終了を指示する操作のいずれかをユーザに要求する画面である。
First, the first core 210 displays a user operation request screen (step S301). Specifically, the first core 210 causes the display unit 310 to display a user operation request screen that is a screen for requesting a user operation. The user operation request screen is, for example, a screen that requests the user to perform any of an operation for instructing data reading, an operation for instructing data writing, or an operation for instructing the end of data input / output.
第1のコア210は、ステップS301の処理を完了すると、データの読み出し指示があるか否かを判別する(ステップS302)。例えば、第1のコア210は、操作受付部320によりデータの読み出し指示が受け付けられたか否かを判別する。第1のコア210は、データの読み出し指示があると判別すると(ステップS302:YES)、第1のデータを読み出す(ステップS303)。具体的には、第1のコア210は、第2のコア220に、第1のデータの読み出しを指示する。一方、第2のコア220は、第1の記憶領域250に記憶された第1のデータを読み出し、データ入出力部350に供給する。なお、データ入出力部350は、供給された第1のデータを、記憶装置600に送信し、記憶装置600に記憶させる。
When the first core 210 completes the process of step S301, the first core 210 determines whether or not there is a data read instruction (step S302). For example, the first core 210 determines whether or not a data read instruction has been received by the operation receiving unit 320. If it is determined that there is an instruction to read data (step S302: YES), the first core 210 reads the first data (step S303). Specifically, the first core 210 instructs the second core 220 to read the first data. On the other hand, the second core 220 reads the first data stored in the first storage area 250 and supplies it to the data input / output unit 350. The data input / output unit 350 transmits the supplied first data to the storage device 600 and causes the storage device 600 to store the data.
ここで、例えば、第1の記憶領域250と第2の記憶領域260とでファイルシステムが同じ場合、第2のコア220は、第1のデータを、このファイルシステムに応じたファイル形式で読み出すことができる。一方、例えば、第1の記憶領域250と第2の記憶領域260とでファイルシステムが異なる場合、第2のコア220は、アドレス参照で第1の記憶領域250にアクセスすることにより、第1のデータをバイナリデータとして読み出すことができる。なお、読み出される第1のデータは、ユーザにより指定される。また、アドレスの指定によりバイナリデータが読み出されてもよい。ファイル形式で読み出された第1のデータは、ファイル形式で記憶装置600に記憶される。一方、バイナリ形式で読み出された第1のデータは、バイナリ形式で、不揮発性メモリ230上のアドレス情報とともに記憶装置600に記憶される。
Here, for example, when the first storage area 250 and the second storage area 260 have the same file system, the second core 220 reads the first data in a file format corresponding to the file system. Can do. On the other hand, for example, when the file system is different between the first storage area 250 and the second storage area 260, the second core 220 accesses the first storage area 250 by referring to the address, thereby Data can be read as binary data. Note that the first data to be read is designated by the user. Further, binary data may be read by designating an address. The first data read in the file format is stored in the storage device 600 in the file format. On the other hand, the first data read in the binary format is stored in the storage device 600 together with the address information on the nonvolatile memory 230 in the binary format.
第1のコア210は、データの読み出し指示がないと判別した場合(ステップS302:NO)、又は、ステップS303の処理を完了した場合、データの書き込み指示があるか否かを判別する(ステップS304)。例えば、第1のコア210は、操作受付部320によりデータの書き込み指示が受け付けられたか否かを判別する。第1のコア210は、データの書き込み指示があると判別すると(ステップS304:YES)、第1のデータを書き込む(ステップS305)。具体的には、第1のコア210は、第2のコア220に、第1のデータの書き込みを指示する。一方、第2のコア220は、データ入出力部350が記憶装置600から受信したデータを、第1のデータとして第1の記憶領域250に記憶させる。
When it is determined that there is no data read instruction (step S302: NO), or when the process of step S303 is completed, the first core 210 determines whether there is a data write instruction (step S304). ). For example, the first core 210 determines whether or not a data write instruction has been received by the operation receiving unit 320. When it is determined that there is an instruction to write data (step S304: YES), the first core 210 writes the first data (step S305). Specifically, the first core 210 instructs the second core 220 to write the first data. On the other hand, the second core 220 stores the data received by the data input / output unit 350 from the storage device 600 in the first storage area 250 as the first data.
ここで、例えば、第1の記憶領域250と第2の記憶領域260とでファイルシステムが同じ場合、第2のコア220は、第1のデータを、このファイルシステムに応じたファイル形式で書き込むことができる。一方、例えば、第1の記憶領域250と第2の記憶領域260とでファイルシステムが異なる場合、第2のコア220は、アドレス参照で第1の記憶領域250にアクセスすることにより、第1のデータをバイナリデータとして書き込むことができる。なお、書き込まれる第1のデータは、ユーザにより指定される。また、アドレスの指定によりバイナリデータが書き込まれてもよい。
Here, for example, when the file system is the same in the first storage area 250 and the second storage area 260, the second core 220 writes the first data in a file format corresponding to this file system. Can do. On the other hand, for example, when the file system is different between the first storage area 250 and the second storage area 260, the second core 220 accesses the first storage area 250 by referring to the address, thereby Data can be written as binary data. The first data to be written is designated by the user. Further, binary data may be written by designating an address.
第1のコア210は、データの書き込み指示がないと判別した場合(ステップS304:NO)、又は、ステップS305の処理を完了した場合、データの入出力の終了指示があるか否かを判別する(ステップS306)。第1のコア210は、データの入出力の終了指示がないと判別すると(ステップS306:NO)、ステップS302に処理を戻す。一方、第1のコア210は、データの入出力の終了指示があると判別すると(ステップS306:YES)、データ入出力処理を完了する。第1のコア210は、ステップS205の処理を完了すると、異常判定処理及び起動処理を終了する。
When it is determined that there is no data write instruction (step S304: NO), or when the process of step S305 is completed, the first core 210 determines whether there is a data input / output end instruction. (Step S306). If the first core 210 determines that there is no data input / output end instruction (step S306: NO), the first core 210 returns the process to step S302. On the other hand, if the first core 210 determines that there is an instruction to end data input / output (step S306: YES), the data input / output processing is completed. When completing the process of step S205, the first core 210 ends the abnormality determination process and the activation process.
第1のコア210は、第1のエラーフラグ245がセットされていないと判別すると(ステップS203:NO)、第2のエラーフラグ246がセットされているか否かを判別する(ステップS206)。第1のコア210は、第2のエラーフラグ246がセットされていると判別すると(ステップS206:YES)、第1のコア210から第2の記憶領域260へのアクセスを許可する(ステップS207)。例えば、第1のコア210は、アクセス管理プログラム242を実行して、第1のコア210から第2の記憶領域260へのアクセスを許可する。
If the first core 210 determines that the first error flag 245 is not set (step S203: NO), the first core 210 determines whether the second error flag 246 is set (step S206). If the first core 210 determines that the second error flag 246 is set (step S206: YES), the first core 210 permits access from the first core 210 to the second storage area 260 (step S207). . For example, the first core 210 executes the access management program 242 to permit access from the first core 210 to the second storage area 260.
第1のコア210は、ステップS207の処理を完了すると、データ入出力処理を実行する(ステップS208)。ステップS208において実行されるデータ入出力処理は、読み出される又は書き込まれるデータが第1のデータではなく第2のデータである点と、データの読み出し又は書き込みの主体が第2のコア220ではなく第1のコア210である点を除き、ステップS205において実行されるデータ入出力処理と同様である。第1のコア210は、ステップS208の処理を完了すると、異常判定処理及び起動処理を終了する。
When the first core 210 completes the process in step S207, the first core 210 executes a data input / output process (step S208). In the data input / output processing executed in step S208, the data to be read or written is not the first data but the second data, and the main body of data reading or writing is not the second core 220 but the second data. The data input / output process is the same as the data input / output process executed in step S205 except that the core 210 is one core 210. When completing the process of step S208, the first core 210 ends the abnormality determination process and the activation process.
第1のコア210は、第2のエラーフラグ246がセットされていないと判別すると(ステップS206:NO)、異常判定処理を完了する。第1のコア210は、ステップS109の処理を完了すると、通常処理を実行する(ステップS110)。なお、通常処理は、第1のコア210が第1のアプリケーションを実行して第1の処理を実行し、第2のコア220が第2のアプリケーションを実行して第2の処理を実行する処理である。第1のコア210は、ステップS110の処理を完了すると、起動処理を完了する。
If the first core 210 determines that the second error flag 246 is not set (step S206: NO), the abnormality determination process is completed. When completing the process of step S109, the first core 210 executes a normal process (step S110). In the normal process, the first core 210 executes the first application to execute the first process, and the second core 220 executes the second application to execute the second process. It is. The first core 210 completes the activation process when completing the process of step S110.
本実施形態では、第1のコア210によりリアルタイム性を要しない第1の処理が実行され、第2のコア220によりリアルタイム性を要する第2の処理が実行される。ここで、第1の処理を実現するためのアプリケーションプログラムの開発に要するコストは、第2の処理を実現するためのアプリケーションプログラムの開発に要するコストよりも低い場合が多い。従って、本実施形態によれば、リアルタイム性を有し、多機能であり、低コストであるリモートコントローラを提供することができる。
In the present embodiment, the first core 210 executes a first process that does not require real-time property, and the second core 220 executes a second process that requires real-time property. Here, the cost required for developing the application program for realizing the first process is often lower than the cost required for developing the application program for realizing the second process. Therefore, according to the present embodiment, it is possible to provide a remote controller that has real-time properties, is multifunctional, and is low in cost.
また、本実施形態では、第1のコア210が正常に動作しない場合、第2のコア220による第1のデータのアクセスが可能となり、第2のコア220が正常に動作しない場合、第1のコア210による第2のデータのアクセスが可能となる。つまり、本実施形態では、一方のコアが正常に動作しない場合、他方のコアが、一方のコアにより保存されたデータを読み出すことができる。このため、本実施形態によれば、電気料金データ(課金データ)、異常発生時における通信ログデータ、異常発生時における空調管理データなど、重要なデータにアクセスできなくなるリスクが低下する。
In the present embodiment, when the first core 210 does not operate normally, the first data can be accessed by the second core 220. When the second core 220 does not operate normally, the first data The second data can be accessed by the core 210. That is, in this embodiment, when one core does not operate normally, the other core can read data stored by one core. For this reason, according to this embodiment, the risk that important data such as electricity bill data (billing data), communication log data when an abnormality occurs, and air conditioning management data when an abnormality occurs cannot be accessed is reduced.
(変形例)
以上、本発明の実施形態を説明したが、本発明を実施するにあたっては、種々の形態による変形及び応用が可能である。 (Modification)
As mentioned above, although embodiment of this invention was described, when implementing this invention, a deformation | transformation and application with a various form are possible.
以上、本発明の実施形態を説明したが、本発明を実施するにあたっては、種々の形態による変形及び応用が可能である。 (Modification)
As mentioned above, although embodiment of this invention was described, when implementing this invention, a deformation | transformation and application with a various form are possible.
本発明において、上記実施形態において説明した構成、機能、動作のどの部分を採用するのかは任意である。また、本発明において、上述した構成、機能、動作のほか、更なる構成、機能、動作が採用されてもよい。また、上記実施形態において説明した構成、機能、動作は、自由に組み合わせることができる。
In the present invention, which part of the configuration, function, and operation described in the above embodiment is adopted is arbitrary. Further, in the present invention, in addition to the configuration, function, and operation described above, further configuration, function, and operation may be employed. Moreover, the structure, function, and operation | movement demonstrated in the said embodiment can be combined freely.
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
The present invention is capable of various embodiments and modifications without departing from the broad spirit and scope of the present invention. Further, the above-described embodiment is for explaining the present invention, and does not limit the scope of the present invention. That is, the scope of the present invention is shown not by the embodiments but by the claims. Various modifications within the scope of the claims and within the scope of the equivalent invention are considered to be within the scope of the present invention.
本発明は、機器を遠隔制御するためのリモートコントローラに適用可能である。
The present invention can be applied to a remote controller for remotely controlling a device.
100 リモートコントローラ、200 マルチコアプロセッサ、210 第1のコア、220 第2のコア、230 不揮発性メモリ、240 管理領域、241 起動プログラム、242 アクセス管理プログラム、243 エラー通知プログラム、244 データ入出力プログラム、245 第1のエラーフラグ、246 第2のエラーフラグ、250 第1の記憶領域、251 第1のオペレーティングシステム、252 第1のアプリケーションプログラム、253 空調管理データ、254 電力料金データ、260 第2の記憶領域、261 第2のオペレーティングシステム、262 第2のアプリケーションプログラム、263 通信ログデータ、264 電力パルスログデータ、270 バス、310 表示部、320 操作受付部、330 通信部、340 電力パルス受信部、350 データ入出力部、400 空気調和機、410 室外機、420 室内機、500 電力量計、600 記憶装置
100 remote controller, 200 multi-core processor, 210 first core, 220 second core, 230 non-volatile memory, 240 management area, 241 startup program, 242 access management program, 243 error notification program, 244 data input / output program, 245 First error flag, 246, second error flag, 250, first storage area, 251, first operating system, 252, first application program, 253, air conditioning management data, 254, power charge data, 260, second storage area 261, second operating system, 262 second application program, 263 communication log data, 264 power pulse log data, 270 bus, 310 display unit, 320 Operation receiving unit, 330 communication unit, 340 power pulse receiver, 350 data input-output unit, 400 air conditioner, 410 outdoor unit, 420 indoor unit, 500 watt hour meter, 600 storage device
Claims (5)
- 機器を遠隔制御するためのリモートコントローラであって、
第1のコアと第2のコアと不揮発性メモリとを備えるマルチコアプロセッサを備え、
前記第1のコアは、前記機器に関する処理のうち、前記不揮発性メモリが備える第1の記憶領域に第1のデータを記憶する処理を含むとともにリアルタイム性が要求されない第1の処理を実行し、
前記第2のコアは、前記機器に関する処理のうち、前記不揮発性メモリが備える第2の記憶領域に第2のデータを記憶する処理を含むとともにリアルタイム性が要求される第2の処理を実行する、
リモートコントローラ。 A remote controller for remotely controlling a device,
Comprising a multi-core processor comprising a first core, a second core and a non-volatile memory;
The first core includes a process of storing the first data in a first storage area included in the nonvolatile memory among processes related to the device, and executes a first process that does not require real-time performance.
The second core includes a process of storing the second data in a second storage area included in the nonvolatile memory, and a second process requiring real-time performance, among the processes related to the device. ,
Remote controller. - 前記第1のコアと前記第2のコアとのうちの少なくとも一方のコアは、前記第1の処理と前記第2の処理とが正常に実行される場合、前記第1のコアによる前記第2の記憶領域へのアクセスを禁止するとともに前記第2のコアによる前記第1の記憶領域へのアクセスを禁止し、前記第1の処理が正常に実行されない場合、前記第2のコアによる前記第1の記憶領域へのアクセスを許可し、前記第2の処理が正常に実行されない場合、前記第1のコアによる前記第2の記憶領域へのアクセスを許可する、アクセス管理処理を実行する、
請求項1に記載のリモートコントローラ。 When at least one of the first core and the second core executes the first process and the second process normally, the second core by the first core When the first process is not executed normally when the access to the first storage area is prohibited and access to the first storage area by the second core is prohibited, the first core by the second core is prohibited. An access management process for permitting access to the second storage area by permitting access to the second storage area by the first core when the second process is not normally executed.
The remote controller according to claim 1. - 前記第1のデータと前記第2のデータとのうちの少なくとも一方のデータを出力するデータ出力手段を更に備え、
前記第1のコアは、前記第2の処理が正常に実行されない場合、前記第2の記憶領域から前記第2のデータを読み出して前記データ出力手段から出力させ、
前記第2のコアは、前記第1の処理が正常に実行されない場合、前記第1の記憶領域から前記第1のデータを読み出して前記データ出力手段から出力させる、
請求項2に記載リモートコントローラ。 Data output means for outputting at least one of the first data and the second data;
The first core reads the second data from the second storage area and outputs the second data from the data output means when the second processing is not executed normally,
The second core reads the first data from the first storage area and outputs the first data from the data output means when the first processing is not normally executed.
The remote controller according to claim 2. - 第1のコアと第2のコアとを備えるマルチコアプロセッサを備えるリモートコントローラが実行する遠隔制御方法であって、
前記第1のコアが、リアルタイム性が要求されない第1の処理を実行し、
前記第2のコアが、リアルタイム性が要求される第2の処理を実行する、
遠隔制御方法。 A remote control method executed by a remote controller comprising a multi-core processor comprising a first core and a second core,
The first core executes a first process that does not require real-time performance;
The second core executes a second process that requires real-time performance.
Remote control method. - 第1のコアと第2のコアとを備えるマルチコアプロセッサを備えるリモートコントローラに搭載されたコンピュータに、
リアルタイム性が要求されない第1の処理と、
リアルタイム性が要求される第2の処理と、を実行させるプログラムであって、
前記第1の処理は、前記第1のコアが実行し、
前記第2の処理は、前記第2のコアが実行する、
プログラム。 In a computer mounted on a remote controller having a multi-core processor having a first core and a second core,
A first process that does not require real-time performance;
A program for executing a second process that requires real-time processing,
The first processing is executed by the first core;
The second processing is executed by the second core.
program.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019508403A JP6701440B2 (en) | 2017-03-28 | 2017-03-28 | Remote controller, remote control method, and program |
PCT/JP2017/012744 WO2018179110A1 (en) | 2017-03-28 | 2017-03-28 | Remote controller, remote control method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/012744 WO2018179110A1 (en) | 2017-03-28 | 2017-03-28 | Remote controller, remote control method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018179110A1 true WO2018179110A1 (en) | 2018-10-04 |
Family
ID=63677709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/012744 WO2018179110A1 (en) | 2017-03-28 | 2017-03-28 | Remote controller, remote control method, and program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6701440B2 (en) |
WO (1) | WO2018179110A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021162996A (en) * | 2020-03-31 | 2021-10-11 | 三菱電機株式会社 | Air conditioner controller, control system, and control method |
JP7607594B2 (en) | 2019-05-31 | 2024-12-27 | ランディス・ギア イノベーションズ インコーポレイテッド | Multiprocessor utility meter featuring a measurement processor connected to an application processor |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004332995A (en) * | 2003-05-06 | 2004-11-25 | Mitsubishi Electric Corp | Air conditioning system and concentrated remote controller |
JP2010226283A (en) * | 2009-03-23 | 2010-10-07 | Konica Minolta Business Technologies Inc | Information processing apparatus |
JP2011259130A (en) * | 2010-06-08 | 2011-12-22 | Hitachi Kokusai Electric Inc | Operation terminal |
JP2015159441A (en) * | 2014-02-24 | 2015-09-03 | エコナビスタ株式会社 | Converter, information processing system and conversion method |
JP2016063407A (en) * | 2014-09-18 | 2016-04-25 | コニカミノルタ株式会社 | Image forming device, parallel processing control method, and control program |
JP2016187129A (en) * | 2015-03-27 | 2016-10-27 | キヤノン株式会社 | Imaging apparatus, control method of the same, and program |
-
2017
- 2017-03-28 WO PCT/JP2017/012744 patent/WO2018179110A1/en active Application Filing
- 2017-03-28 JP JP2019508403A patent/JP6701440B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004332995A (en) * | 2003-05-06 | 2004-11-25 | Mitsubishi Electric Corp | Air conditioning system and concentrated remote controller |
JP2010226283A (en) * | 2009-03-23 | 2010-10-07 | Konica Minolta Business Technologies Inc | Information processing apparatus |
JP2011259130A (en) * | 2010-06-08 | 2011-12-22 | Hitachi Kokusai Electric Inc | Operation terminal |
JP2015159441A (en) * | 2014-02-24 | 2015-09-03 | エコナビスタ株式会社 | Converter, information processing system and conversion method |
JP2016063407A (en) * | 2014-09-18 | 2016-04-25 | コニカミノルタ株式会社 | Image forming device, parallel processing control method, and control program |
JP2016187129A (en) * | 2015-03-27 | 2016-10-27 | キヤノン株式会社 | Imaging apparatus, control method of the same, and program |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7607594B2 (en) | 2019-05-31 | 2024-12-27 | ランディス・ギア イノベーションズ インコーポレイテッド | Multiprocessor utility meter featuring a measurement processor connected to an application processor |
JP2021162996A (en) * | 2020-03-31 | 2021-10-11 | 三菱電機株式会社 | Air conditioner controller, control system, and control method |
JP7378336B2 (en) | 2020-03-31 | 2023-11-13 | 三菱電機株式会社 | Air conditioner controller, control system, and control method |
Also Published As
Publication number | Publication date |
---|---|
JPWO2018179110A1 (en) | 2019-11-07 |
JP6701440B2 (en) | 2020-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI506559B (en) | Dynamic and selective deactivation of cores and resetting of multiple core microprocessors and methods thereof | |
EP3274788B1 (en) | Technologies for improved hybrid sleep power management | |
WO2013109640A1 (en) | Techniques for command validation for access to a storage device by a remote client | |
CN103384863B (en) | Virtual machine controls device and virtual computer control method | |
US9529410B2 (en) | Service processor (SP) initiated data transaction with BIOS utilizing power off commands | |
CN103942061A (en) | Battery firmware updating method, portable electronic device and rechargeable battery module | |
JP2008287505A (en) | Information processor and legacy emulation processing stop control method | |
TW201911054A (en) | Manage input and output to virtualize functional level resets in storage devices | |
JP2012123673A (en) | Power supply switching device, power supply switching device control method, and power supply control program | |
US11860718B2 (en) | Register reading method and apparatus, device, and medium | |
US8250354B2 (en) | Method and apparatus for making a processor sideband interface adhere to secure mode restrictions | |
US9304789B2 (en) | Virtual machine control device, virtual machine control method, computer-readable recording medium, and integrated circuit | |
JP2018116648A (en) | Information processor, control method thereof and program | |
US7996580B2 (en) | System and method for notifying a host of a service required by a slave storage device | |
WO2018179110A1 (en) | Remote controller, remote control method, and program | |
US7814254B2 (en) | Mode setting method and system in hot plug of PCI device | |
JP2002027027A (en) | Computer system, computer managing system and system managing method | |
JP2015215684A (en) | Information processing apparatus and information processing program | |
KR20190105808A (en) | Electronic device for performing a booting and method of operating the same | |
JP5951123B2 (en) | Control device | |
JP2015191606A (en) | Information processing apparatus, information processing apparatus control method, and information processing apparatus control program | |
US11467990B2 (en) | Programmable logic controller, external apparatus, method, and recording medium | |
US11843612B2 (en) | Communication device management device, system, method, and non-transitory computer-readable recording medium | |
JP6099736B2 (en) | Control device, remote controller, and drawing control method | |
JP3977694B2 (en) | Reset device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17903968 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019508403 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17903968 Country of ref document: EP Kind code of ref document: A1 |