Communication apparatus, communication method, and computer program product

According to one embodiment, a communication apparatus includes one or more processors. The one or more processors select any schedule from among a plurality of schedules having processing units of data different from each other that are to be used for communication using a time-division multiplex method, based on an attribute of data. The one or more processors control transmission and reception of data according to the selected schedule.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2018-035724, filed on Feb. 28, 2018; the entire contents of which are incorporated herein by reference.

FIELD

Embodiments described herein relate generally to a communication apparatus, a communication method, and a computer program product.

BACKGROUND

The IEEE 802.15.4-2015 defines a transmission and reception method of Time-Slotted Channel Hopping (TSCH). In the TSCH, communication with high reliability can be performed by matching communication timings in advance between communication nodes. By using a 6top Protocol being formulated by IETF 6TiSCH WG, communication timings of TSCH can be dynamically matched between neighbor nodes.

Nevertheless, in the conventional technology, a communication efficiency declines in some cases. For example, in the TSCH, a time slot being a time division unit in a time-division multiplex method is set. The length of the time slot (slot length) affects a communication efficiency. In a case where a data length of data to be transmitted or received is small, if a slot length is small, a communication efficiency can be enhanced. On the other hand, if a slot length is large with respect to a data length of data to be transmitted or received, a communication efficiency can possibly decline.

DETAILED DESCRIPTION

According to one embodiment, a communication apparatus includes one or more processors. The one or more processors select any schedule from among a plurality of schedules having processing units of data different from each other that are to be used for communication using a time-division multiplex method, based on an attribute of data. The one or more processors control transmission and reception of data according to the selected schedule.

A preferred embodiment of a communication apparatus according to the present invention will be described in detail below with reference to the appended drawings.

In the TSCH, a transmission node and a reception node of data perform transmission and reception processing at predetermined time and frequency. In the TSCH, for keeping a clock synchronized state between nodes, control data are transmitted and received at a predetermined frequency even in a case where the transmission node does not have data to be transmitted. In addition, a channel (frequency) to be used is changed each time data transmission and reception are performed. These types of communication control realize communication with high data reliability.

In the TSCH, a data length of data that can be transmitted and received at one time depends on a length of a time slot (link or cell) (slot length). The time slot is an example of a processing unit of data. For example, if a slot length is small, a data length of data that can be transmitted and received at one time becomes small, and if a slot length is long, a data length of data that can be transmitted and received at one time becomes large. Because data that is too large with respect to a slot length cannot be transmitted at one time, fragment processing and the like become necessary in a higher layer of the TSCH, and a communication efficiency declines. For example, in addition to communication overhead, processing overhead and mounting overhead (increase in memory requirement) are involved.

On the other hand, as described above, the length of the time slot affects a communication efficiency. Thus, in the communication of the time-division multiplex method such as the TSCH, it is desired to deal with data having various data lengths, without decreasing a communication efficiency.

A communication apparatus according to the present embodiment can avoid a decline in communication efficiency by the following functions, for example. First of all, the communication apparatus sets, as communication schedules of TSCH, a schedule with a small slot length, and a schedule with a large slot length. At this time, the schedules are set so as to start at the same time. For example, a slot length of a long time slot becomes multiples of a slot length of a short time slot. In addition, the same setting is applied to transmission start timings and reception timings of the both time slots.

A transmission node selects a time slot to be applied (short time slot or long time slot), according to a data length to be transmitted, and controls the transmission in accordance with the setting of the time slot. A reception node holds reception assuming a short time slot, and after the reception of data is started, determines whether to switch a time slot to be applied during the reception of data, to a long time slot.

FIG. 1is a block diagram illustrating an example of a configuration of a communication system according to the present embodiment. As illustrated inFIG. 1, the communication system includes nodes100aand100beach serving as a communication apparatus. In addition, because the nodes100aand100bhave similar configurations, they are simply referred to as nodes100in a case where there is no need to distinguish. The number of nodes100is not limited to two, and may be three or more. A plurality of nodes100are connected by a wireless network such as IEEE 802.15.4-2015, for example. The plurality of nodes100may be connected by any other connection forms, and may be connected by a wired network, for example.

Data are transmitted and received between the node100aand the node100b. For the sake of convenience, in the following description, the node100ais treated as a transmission node of data, and the node100bis treated as a reception node of data.

The node100aand the node100bare synchronized in time, and transmit and receive data at predetermined timings. Typically, the node100aand the node100bperform communication control using TSCH, but may use a time-division multiplex communication method other than the TSCH.

FIG. 2is a block diagram illustrating an example of a configuration of the node100according to the present embodiment. As illustrated inFIG. 2, the node100includes a communication unit101, a selection unit111, a communication control unit112, a switching unit113, and storage121.

The communication unit101is an interface for performing communication with an external device such as another node100(the node100binFIG. 2). Under the control of the communication control unit112, the communication unit101performs communication using a time-division multiplex method such as TSCH.

The selection unit111selects one schedule to be applied, from among a plurality of schedules to be used for communication using the time-division multiplex method. For example, the selection unit111selects any schedule from among a plurality of schedules having time slot lengths different from each other, based on an attribute of data. The attribute of data is a data length of data to be transmitted or received, for example. Nevertheless, the attribute is not limited to this. For example, in cases such as a case where a data length can be distinguished according to the type of data, the type of data can be used as an attribute of data. For example, in such a situation that a data length of control data is short, and a data length of application data is long, the type of data indicating whether the data is control data or application data can be used as an attribute of data. In addition, for example, priority of data may be used as an attribute of data.

In addition, the node100may include only a function as a transmission node, or may include only a function as a reception node. In other words, the node100functions as at least either one of a transmission node and a reception node. In the case of functioning as a transmission node, the node100is only required to include at least functions related to the transmission of data. In the case of functioning as a reception node, the node100is only required to include at least functions related to the reception of data.

In the reception node, in some cases, an attribute of data cannot be determined until the data is received. In such a case, the selection unit111of the reception node may select a predefined schedule (first schedule), for example. As the predefined schedule, for example, a schedule having the smallest slot length can be used. After that, the switching unit113to be described later switches the schedule to another schedule as necessary with reference to an attribute of the received data.

The communication control unit112controls communication processing that uses time-division multiplex. For example, the communication control unit112controls communication that uses the communication unit101and the like, so as to transmit and receive a message according to the schedule selected by the selection unit111. In the case of a communication method involving frequency hopping, such as TSCH, the communication control unit112also controls a radio channel to be used in communication in addition to a communication timing, to perform communication using the communication unit101and the like.

The switching unit113further switches the selected schedule to another schedule based on an attribute of data. For example, based on the attribute of data, the switching unit113switches the schedule (first schedule) selected by the selection unit111, to another schedule (second schedule). The attribute of data such as a data length can be identified from header information of data to be transmitted or received data, for example.

Each of the above-described units (the selection unit111, the communication control unit112, and the switching unit113) is implemented by one or a plurality of processors, for example. For example, each of the above-described units may be implemented by causing a processor such as a central processing unit (CPU) to execute a program, that is to say, may be implemented by software. Each of the above-described units may be implemented by a processor such as a dedicated integrated circuit (IC), that is to say, may be implemented by hardware. Each of the above-described units may be implemented by using both software and hardware. In the case of using a plurality of processors, each processor may implement one of the units, or may implement two or more of the units.

Next, communication using the time-division multiplex method will be described.FIG. 3is a diagram illustrating an example of a time division unit in the time-division multiplex method. As illustrated inFIG. 3, in the time-division multiplex method, a time is divided into certain periods. The minimum unit of divided periods is referred to as a time slot, and one or more time slots are collectively referred to as a slot frame. In the example inFIG. 3, five time slots are included in one slot frame.

Each time slot is managed so as to be uniquely identified in a slot frame. Each time slot periodically appears in accordance with the lapse of time. InFIG. 3, time slots are identified by indices 0 to 4. For each slot frame, a time slot having the same index appears. In addition, each slot frame is managed so as to be uniquely identified in a sufficiently-long period. In the example inFIG. 3, an index “n” or “n+1” is granted to a slot frame. In addition, each time slot may be managed by granting an absolute identifier. In this case, each time slot can be similarly considered as a slot frame having an infinitely-long period having an infinite number of time slots.

For the node100aand the node100bcommunicating, which node100transmits data and which node100receives data in which time slot, or that both of the nodes100can transmit and receive data (“common use” to be described later) need to be defined. Deciding, for a time slot, processing to be performed in the time slot is referred to as scheduling, and a result of the scheduling is referred to as a schedule.FIG. 4is a diagram illustrating an example of a schedule in an initial state. In addition, in the example inFIG. 4, six time slots are included in one slot frame.

In the schedule inFIG. 4, a leading time slot (time slot0) of each slot frame is defined as “common use”. In the time slot of “common use”, the node100amay transmit data, and the node100bmay transmit data. In other words, when having data desired to be transmitted to a counterparty, the node100aand the node100bcan transmit the data using a leading time slot of each slot frame. In the case of not having data desired to be transmitted, each of the nodes100waits for reception of data in a leading time slot of each slot frame, and prepares for a case where data is transmitted.

Here, newly performing scheduling and granting an opportunity of data transmission to the node100awill be considered.FIG. 5is a diagram illustrating an example of a schedule set in this case.

In a case where scheduling is not manually performed for the node100aand the node100b, a schedule is adjusted between the plurality of nodes100using a control protocol such as a 6top Protocol (6P). In addition, for example, the node100band the node100acan share the schedule inFIG. 5by the node100brequesting a reception time slot dedicated for the node100b, from the node100a.

In the case of performing frequency hopping (frequency switching) between the node100aand the node100b, not only timings of transmission and reception between the nodes, but also a channel or channel offset to be used are set. In the following description, for ease of description, the setting of the channel offset and the channel will be omitted.

Here, a case in which the node100atransmits data to the node100bwill be considered. The schedule inFIG. 5is set in the node100a. Thus, a length of data to be transmitted needs to be smaller than a data length that can be transmitted within a time of a time slot having an index of 2. According to defined values in Table 8-86 of IEEE 802.15.4-2015—IEEE Standard for Low-Rate Wireless Networks, the longest transmission time per time slot is 4256 microseconds in a case where a frequency band to be used is 2450 MHz, and is 103040 microseconds in a case where the frequency band is 915 MHz. The maximum data length that can be transmitted in one time slot becomes 133 octets (bytes) when a data rate is 250 kbps in a 2450 MHz-band.

In the present embodiment, in a case where data transmission exceeding 133 octets is required, schedules as illustrated inFIG. 6are set in the node100aand the node100b. InFIG. 6, the schedule illustrated inFIG. 5is represented as a slot frame1, and an additional schedule is represented as a slot frame2. As illustrated inFIG. 6, a slot length of each time slot in the slot frame2is twice as long as a slot length of each time slot in the slot frame1. In this manner, a slot length of a time slot of each of a plurality of slot frames is set so as to be multiples of the smallest slot length. In addition, the slot frame1and the slot frame2correspond to a plurality of schedules having processing units of data different from each other.

The node100aand the node100btransmit and receive data having a data length that can be transmitted in one time slot of the slot frame1, using the schedule of the slot frame1. The node100aand the node100btransmit and receive data having a data length that cannot be transmitted in one time slot of the slot frame1, and can be transmitted in a time slot of the slot frame2, using the schedule of the slot frame2.

In the present embodiment, for enabling longer data transmission using a plurality of slot frames, time slots starting at the same time are allocated to the respective slot frames of the plurality of nodes100having a possibility of transmitting and receiving long data. In the example inFIG. 6, the start times of two communication opportunities in which “100a→100b” is allocated to the slot frame1and the slot frame2are the same.

Here, an example of a schedule to which the method of the present embodiment cannot be applied will be described.FIGS. 7 and 8are diagrams illustrating examples of schedules to which the method of the present embodiment cannot be applied.

In the schedule inFIG. 7, start times of communication opportunities indicated by “100a→100b” allocated to two slot frames do not match. Thus, for example, the schedule cannot be switched during transmission and reception of data.

The schedule as illustrated inFIG. 8cannot deal with transmission of data longer than a slot length. In this schedule, a transmission opportunity from the node100ato the node100bis granted to a time slot with an index2and a time slot with an index3. The schedule is similar in appearance to the schedule of a time slot with an index1in the slot frame2inFIG. 6. Nevertheless, in the example inFIG. 8, data transmission and reception need to be stopped at the boundary between the time slot with the index2and the time slot with the index3. In addition, data respectively transmitted in the time slot with the index2and the time slot with the index3are treated as separate data, and a header for communication control also becomes necessary for each piece of data.

According to the present embodiment, for example, as illustrated inFIG. 6, even data that cannot be transmitted in one time slot in the slot frame1can be transmitted from the node100ato the node100bwithout interruption, by using the time slot with the index1in the slot frame2.

Next, data transmission processing performed by the node100according to the present embodiment will be described. The data transmission processing is processing executed when a transmission node transmits data.FIG. 9is a flowchart illustrating an example of data transmission processing in the present embodiment.

The selection unit111of the transmission node acquires a data length of data to be transmitted (transmission data length) (Step S101). Based on the transmission data length, the selection unit111selects a slot frame to be applied, from among a plurality of slot frames (schedules) (Step S102). The communication control unit112transmits data using the selected slot frame (Step S103).

In the case of selecting a slot frame to be applied, from the transmission data length, the selection unit111selects a slot frame in which data transmission can be completed at least in one time slot. For example, for data having a sufficiently-small data length, the selection unit111may select the slot frame1inFIG. 6, or may select the slot frame2. On the other hand, for data having a large data length of which the transmission cannot be completed in one time slot in the slot frame1, the selection unit111selects the slot frame2. The selection unit111may select a slot frame having the smallest slot length, among slot frames in which data transmission can be completed in one time slot. For example, in the case of data having a sufficiently-small data length, the selection unit111may select not the slot frame2but the slot frame1.

FIG. 10is a flowchart illustrating another example of data transmission processing in the present embodiment.FIG. 10illustrates an example of initially selecting a predefined slot frame (first schedule), and during the data transmission by the selected slot frame, switching a slot frame to be applied, to another slot frame (second schedule), according to an attribute of data (data length, etc.).

The selection unit111selects a slot frame having a slot length smaller than other frames, from among a plurality of slot frames (Step S201). For example, the selection unit111selects a slot frame having the smallest slot length. In addition, in a case where there are three slot frames or more, the selection unit111may select a slot frame having a slot length that is neither the largest nor the smallest.

The communication control unit112transmits data using the selected slot frame (Step S202).

The switching unit113determines whether data transmission has been completed within a time slot (Step S203). In the standards of the time-division multiplex method such as TSCH, a start time of data transmission, a transmission completion time, a reception start time of acknowledgment (ACK) of transmission data, a reception completion time of the acknowledgment, and the like are defined for each time slot. According to such definitions, the switching unit113can determine whether data transmission has been completed by the transmission completion time, within the time of each time slot, for example.

In a case where the transmission has been completed (Step S203: Yes), the data transmission processing ends. In a case where the transmission has not been completed (Step S203: No), the switching unit113switches the slot frame to a slot frame having a slot length larger than the currently-selected slot frame (Step S204). For example, the switching unit113switches the slot frame to a slot frame having a larger slot length after the currently-selected slot frame. After that, the processing returns to Step S203, and the processing is repeated.

In this manner, a slot frame to be applied is appropriately switched during the data transmission, and a slot frame having a slot length in which data transmission can be completed is finally selected, and data transmission processing ends. In other words, the selection unit111selects a slot frame having a slot length smaller than other slot frames, and the switching unit113switches the slot frame to a slot frame having a large slot length, according to an attribute of data (data length, etc.).

In contrast, the selection unit111may select a slot frame having a slot length larger than other slot frames, and the switching unit113may switch the slot frame to a slot frame having a small slot length, according to an attribute of data (data length, etc.). For example, the switching unit113switches the slot frame to another slot frame in a case where it can be determined that processing by the selected slot frame ends within one time slot, and processing ends also within a time slot of another slot frame.

In the examples inFIGS. 9 and 10, the description of abnormal processing has been omitted for ease of description, but data transmission fails in a case where there is no slot frame that can deal with a data length to be transmitted. In addition, in a case where processing of switching a slot frame is not performed during data transmission (e.g.FIG. 10), the node100serving as a transmission node needs not include the switching unit113.

Similarly to the node100a, the node100bserving as a reception node selects a slot frame to be applied, according to a data length of data to be received.FIG. 11is a flowchart illustrating an example of data reception processing in the present embodiment.

The selection unit111of a reception node selects a predefined slot frame from among a plurality of slot frames (Step S301). For example, the selection unit111selects a slot frame having a slot length smaller than other frames, or a slot frame having the smallest slot length.

The communication control unit112starts data reception using the selected slot frame (Step S302).

The switching unit113identifies a data length of the entire data to be received (reception data length), from header information of data or the like, for example (Step S303). The switching unit113determines whether switching of the slot frame is necessary, based on the reception data length (Step S304). For example, the switching unit113identifies whether the reception of data having the reception data length can be completed in one time slot of the currently-selected slot frame.

In a case where switching is determined to be necessary (Step S304: Yes), the switching unit113switches a slot frame to be applied, to a slot frame in which reception of data having the reception data length can be completed (Step S305). In a case where the reception cannot be completed in the current slot frame because the reception data length is large, for example, the switching unit113switches the slot frame to a slot frame in which the reception can be completed. In addition, in a case where the reception can be completed even in a slot frame having a slot length smaller than the current slot frame because the reception data length is small, for example, the switching unit113may switch the slot frame to a slot frame having a smaller slot length.

After the switching of the slot frame, or in a case where the switching is determined to be unnecessary (Step S304: No), the communication control unit112continues the processing until data reception is completed (Step S306).

FIG. 12is a flowchart illustrating another example of data reception processing in the present embodiment.FIG. 12illustrates an example of initially selecting any slot frame, and switching a slot frame to be applied, according to whether data reception can be completed by the selected slot frame.

The selection unit111of a reception node selects a slot frame having a slot length smaller than other frames, from among a plurality of slot frames (Step S401). For example, the selection unit111selects a slot frame having the smallest slot length.

The communication control unit112starts data reception using the selected slot frame (Step S402). The switching unit113determines whether data reception has been completed within a time slot (Step S403).

In a case where the reception has been completed (Step S403: Yes), the data reception processing ends. In a case where the reception has not been completed (Step S403: No), the switching unit113switches the slot frame to a slot frame having a slot length larger than the currently-selected slot frame (Step S404). For example, the switching unit113switches the slot frame to a slot frame having a larger slot length after the currently-selected slot frame. After that, the processing returns to Step S403, and the processing is repeated.

Similarly to the data transmission processing (transmission node), a slot frame having a large slot length may be switched to a slot frame having a small slot length.

The transmission node may employ both types of data transmission processing inFIGS. 9 and 10. The reception node may employ both types of data reception processing inFIGS. 11 and 12. Thus, in the case of the above example, four-pattern configurations which is a combination of two-pattern transmission nodes (FIG. 9 or 10) and two-pattern reception nodes (FIG. 11 or 12) can be employed.

Modified Example 1

The example of selecting either of two slot frames has been mainly described so far. The number of slot frames may be three or more.FIG. 13is a diagram illustrating an example of using three slot frames.

In the example inFIG. 13, start times of a time slot with an index4in a slot frame1, a time slot with an index2in a slot frame2, and a time slot with an index1in a slot frame3match. A slot length of the time slot with the index2in the slot frame2is twice as long as a slot length of the time slot with the index4in the slot frame1. A slot length of the time slot with the index1in the slot frame3is twice as long as the slot length of the time slot with the index2in the slot frame2. These three time slots can be switched with each other.

Operation Example

Next, an example of an operation according to the present embodiment will be described while comparing with a communication apparatus not including the function of the present embodiment (comparative example).FIG. 14is a diagram illustrating an operation example of data transmission processing according to the present embodiment.

At the beginning, two communication schedules are set in each of the node100of the present embodiment and the communication apparatus of the comparative example. For example, one is set as a slot frame SF1including a time slot that can transmit and receive at one time data with 127 octets at longest, and another one is set as a slot frame SF2including a time slot that can transmit and receive at one time data with 2047 octets. A length (time) of each time slot is adjusted so that a short time slot starts at a start timing of a long time slot.

After performing the setting in this manner, a procedure of transmitting data with 2047 octets from each apparatus (the node100, the communication apparatus of the comparative example) is established. After that, each apparatus is caused to consecutively transmit data with 2047 octets, 127 octets, and 127 octets (e.g. transmit by unicast). The timing of each data transmission at this time is represented as inFIG. 14.

In the communication apparatus of the comparative example, a data transmission interval becomes constant irrespective of data length. In other words, a transmission interval A1and a transmission interval A2match. On the other hand, the node100of the present embodiment selects the slot frame SF1in a case where a data length is a length (127 octets or less) that can be transmitted in the slot frame SF1, and selects the slot frame SF2in a case where a data length is a length that cannot be transmitted in the slot frame SF1. In this manner, in the present embodiment, a data transmission interval varies depending on a data length. In other words, a transmission interval A′1corresponding to a period in which data with 2047 octets has been transmitted does not match a transmission interval A′2corresponding to a period in which data with 127 octets has been transmitted.

By studying data transmission timings in this manner, it can be determined whether the communication apparatus includes the function of the present embodiment.

Instead of determining a data transmission interval, the determination may be performed by counting the number of data transmitted in a period with a long time slot. In a case where the function of the present embodiment is not included, only one data is observed in the period with a long time slot, irrespective of a transmission data length. On the other hand, in a case where the function of the present embodiment is included, two data are observed in the period with a long time slot in a case where a transmission data length is small.

FIG. 14illustrates an example of a determination method in data transmission processing, but the same applies to a determination method for data reception processing. Also in the case of data reception processing, similarly toFIG. 14, three data are consecutively received, and transmission timings of an acknowledgment (ACK) frame are acquired. A transmission interval of acknowledgments can be used for determination.

In this manner, in the communication apparatus according to the present embodiment, any schedule is selected from among a plurality of schedules having slot lengths different from each other, based on an attribute of data, and data transmission and reception are controlled according to the selected schedule. This can suppress a decline in communication efficiency.

Next, a hardware configuration of the communication apparatus according to the present embodiment will be described usingFIG. 15.FIG. 15is an explanatory diagram illustrating a hardware configuration example of the communication apparatus according to the present embodiment.

The communication apparatus according to the present embodiment includes a control device such as a central processing unit (CPU)51, a storage device such as a read only memory (ROM)52and a random access memory (RAM)53, a communication I/F54that connects to a network and performs communication, and a bus61that connects the units.

Programs to be executed by the communication apparatus according to the present embodiment are provided with being preinstalled on the ROM52or the like.

Programs to be executed by the communication apparatus according to the present embodiment may be provided as a computer program product with being recorded on a computer-readable recording medium such as a compact disk read only memory (CD-ROM), a flexible disk (FD), a compact disk recordable (CD-R), and a digital versatile disk (DVD), in files having an installable format or an executable format.

Furthermore, programs to be executed by the communication apparatus according to the present embodiment may be stored on a computer connected to a network such as the Internet, and provided by being downloaded via the network. In addition, programs to be executed by the communication apparatus according to the present embodiment may be provided or delivered via a network such as the Internet.

Programs to be executed by the communication apparatus according to the present embodiment can cause a computer to function as each unit of the above-described communication apparatus. The computer can be executed by the CPU51loading a program from a computer-readable storage medium onto a main storage device, and executing the program.