Transceiver for communication and method for controlling communication
10484103 ยท 2019-11-19
Assignee
Inventors
Cpc classification
H04B15/02
ELECTRICITY
International classification
H04B15/02
ELECTRICITY
H04L7/00
ELECTRICITY
H04L25/49
ELECTRICITY
Abstract
An example embodiment provides a transceiver for communication includes a timing determiner that detects a fall from high level to low level of a bus signal generated by pulse width modulation of a clock signal and input from a communication bus; a transmission data signal delay adjuster that determines a second timing having a predetermined time difference from a first timing, the bus signal rising from the low level to the high level at the first timing; an encoder that extends a low level of the bus signal by changing a data signal to be output to the communication bus from high level to low level; and a timing adjustment circuit that changes the data signal to the low level at the second timing.
Claims
1. A clock extension peripheral interface (CXPI) communication system, comprising: a master circuit including a first transceiver, wherein the first transceiver is configured to generate a signal by modulating a timing signal; a communication bus; and a slave circuit including a second transceiver, wherein the second transceiver further includes; a first timing module configured to determine a first time based on a timing at which the signal received through the communication bus from the master circuit is detected to have started rising from a low level to a high level; a timing adjustment module configured to determine a second time based on the first time and a predetermined time difference value; and an encoder configured to extend a length of time of a combined signal on the communication bus is at the low level by pulling a data signal to be output to the master circuit through the communication bus from the high level to the low level at the second time.
2. The CXPI communication system of claim 1, wherein the timing adjustment module computes the predetermined time difference value based on a frequency at which a harmonic level is reduced and a natural number.
3. The CXPI communication system of claim 1, wherein the second time is generated by subtracting the predetermined time difference value from the first time.
4. The CXPI communication system of claim 1, wherein the slave circuit further comprises: a second timing module configured to determine a third time based on a timing at which the signal received through the communication bus from the master circuit is detected to have started falling from the high level to the low level.
5. The CXPI communication system of claim 4, wherein the second time is later than the third time and earlier than the first time.
6. The CXPI communication system of claim 1, wherein the slave circuit further comprises a clock rise detector configured to detect a rising edge of the signal received through the communication bus from the master circuit.
7. The CXPI communication system of claim 4, wherein the slave circuit further comprises: a first comparator configured to generate a first result based on a voltage level of the signal received through the communication bus from the master circuit and a first reference voltage; and a second comparator configured to generate a second result based on the voltage level of the signal received through the communication bus from the master circuit and a second reference voltage, wherein the high level is greater than the first reference voltage, the first reference voltage is greater than the second reference voltage, and the second reference voltage is greater than the low level.
8. The CXPI communication system of claim 7, wherein the first and second timing modules, based on the first and second results, respectively determine the first time and the third time.
9. The CXPI communication system of claim 1, wherein the signal is a Pulse Width Modulation (PWM) signal.
10. The CXPI communication system of claim 1 is disposed in an automobile electronic control system.
11. A method of operating a clock extension peripheral interface (CXPI) communication system, comprising: generating a signal by modulating a timing signal from a master circuit of the CXPI communication system; transmitting the signal to a slave circuit through a communication bus; detecting a change from a low level to a high level of the signal; generating a second time based on a first time and a predetermined time difference value, wherein the signal is detected to be changing from the low level to the high level at the first time; and extending the low level of a combined signal on the communication bus by pulling a data signal to be output, from the slave circuit to the master circuit, on the communication bus from the high level to the low level, wherein the data signal is pulled to the low level at the second time.
12. The method of claim 11, wherein the predetermined time difference is computed based on a frequency at which a harmonic level is reduced and a natural number.
13. The method of claim 11, wherein generating the second time further comprising: computing the second time by subtracting the predetermined time difference from the first time.
14. The method of claim 11, further comprising: generating a third time based on a timing at which the signal received through the communication bus from the master circuit is detected to have started falling from the high level to the low level.
15. The method of claim 14, wherein the second time is later than the third time and earlier than the first time.
16. The method of claim 11, further comprising: detecting a rising edge of the signal received through the communication bus, by a clock rise detector.
17. The method of claim 14, further comprising: generating a first result, by a first comparator, based on a voltage level of the signal received through the communication bus from the master circuit and a first reference voltage; and generating a second result, by a second comparator, based on the voltage level of the signal received through the communication bus from the master circuit and a second reference voltage, wherein the high level is greater than the first reference voltage, the first reference voltage is greater than the second reference voltage, and the second reference voltage is greater than the low level.
18. The method of claim 17, further comprising: determining the first and third times based on the first and second results.
19. The method of claim 11, wherein the signal is a Pulse Width Modulation (PWM) signal.
20. The method of claim 11, wherein the master and slave circuits are disposed in an automobile electronic control system.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) In the accompanying drawings:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
DETAILED DESCRIPTION
(25) Examples of communication protocols used between ECUs mounted in an automobile include a Local Interconnect Network (LIN), a Controller Area Network (CAN), and a Clock Extension Peripheral Interface (CXPI).
(26) As illustrated by the example in
(27) The master node 1401 is a node that controls the operation timing of each slave node 1402. The master node 1401 transmits a bus signal mBUS (see
(28)
(29) In CXPI communication, the master node 1501 transmits data by subjecting the clock signal mCLK to Pulse Width Modulation (PWM).
(30) A CXPI transceiver 1503 performs PWM on the clock signal mCLK to generate a signal exhibiting a logical value corresponding to the data signal mTXD. The bus signal mBUS generated by performing PWM on the clock signal mCLK is transmitted to the slave node 1504, thereby transmitting data from the master node 1501 to the slave node 1504. The bus signal mBUS has two voltage levels (high level and low level). The high level and the low level of the bus signal mBUS are generated by a circuit such as the one illustrated in
(31) In CXPI communication, the logical value of the bus signal mBUS output to the communication bus 1507 is determined by the length of the low level (or the high level) of the bus signal mBUS. When the duration of the low level of the bus signal mBUS is shorter than a predetermined time, for example in the intervals Z.sub.1 and Z.sub.2 in
(32) The CXPI transceiver 1503 performs PWM on the clock signal mCLK so that the bus signal mBUS exhibits a logical value of 1 when the data signal mTXD is at a high level, as shown in the intervals Z.sub.1 and Z.sub.2 in
(33) The CXPI transceiver 1503 receives a bus signal sBUS transmitted by the slave node 1504 from the communication bus 1507 and transmits a data signal obtained by decoding the bus signal sBUS to the microcontroller 1502 as a received signal mRXD.
(34) The slave node 1504 transmits data by combining the bus signal sBUS with the bus signal mBUS output by the master node 1501 to generate the bus signal BUS. At the timing at which the slave node 1504 outputs data, the master node 1501 does not transmit data but rather transmits the bus signal mBUS at a constant duty cycle and receives the bus signal sBUS transmitted by the slave node 1504 from the communication bus 1507. At the timing at which the slave node 1504 outputs data, the bus signal mBUS output by the master node 1501 is a signal with a logical value of 1. In other words, when the slave node 1504 does not output the bus signal sBUS, the bus signal BUS exhibits a logical value of 1. When outputting the bus signal sBUS, the slave node 1504 configures the bus signal sBUS so that the logical value of the combined bus signal BUS will be 0. By the slave node 1504 thus determining the logical value of the combined bus signal BUS based on the bus signal sBUS, data can be transmitted to the master node 1501 that acquires the bus signal BUS.
(35)
(36) The slave node 1504 receives the bus signal mBUS output from the master node 1501 via the communication bus 1507 and operates. The CXPI transceiver 1506 acquires the clock signal sCLK from the bus signal mBUS acquired from the communication bus 1507 and outputs the clock signal sCLK to the microcontroller 1505.
(37) When transmitting data to the communication bus 1507, the slave node 1504 notifies other nodes of the start of data transmission by driving the bus signal mBUS acquired from the master node 1501. Transmission of data by the slave node 1504 is now described. The CXPI transceiver 1506 detects a fall in the bus signal mBUS by a change (fall) in the received data signal RXD, which is generated by a circuit inside the CXPI transceiver 1506 and the logical value of which changes in accordance with behavior of the bus signal mBUS ((i) in
(38) As described above, when communication is performed between the master node 1501 and the slave node 1504, noise may be emitted from the communication bus 1507 by transmission and reception of signals. The noise emitted from the communication bus 1507 may affect other communication. For example, a smart key system is affected by noise. A smart key system is a system whereby a key that the user possesses locks and unlocks doors of the automobile by wireless communication with the automobile. For example, when using a 19.2 kHz signal as the reference clock in CXPI communication and using a 134 kHz signal in the smart key system, 134 kHz is the 7.sup.th harmonic of 19.2 kHz. Therefore, as illustrated in
(39) If an attempt is made to suppress emission of noise by performing control to reduce the slew rate of the bus signal mBUS and to make the bus signal mBUS rise and fall more gradually, then when the slave node 1504 transmits data, the fall of the bus signal sBUS input into the communication bus 1507 needs to be somewhat steeper for signal accuracy. On the other hand, if the fall of the bus signal sBUS is too steep, conduction noise is generated due to the change in the current flowing in the communication bus 1507. The conduction noise generated in the communication bus 1507 and the reason why the fall of the bus signal sBUS should not be made too gradual are now described with respect to
(40)
(41) When the bus signal sBUS from the slave node 1504 is not input to the communication bus 1507 and the bus signal mBUS from the master node 1501 is falling (interval Z.sub.4 in
(42) As described with reference to
(43) Furthermore, when the bus signal mBUS output by the master node 1501 is high level and the voltage level of the bus signal sBUS output from the slave node 1504 is maintained at low level (interval Z.sub.6 in
(44)
(45) On the other hand, upon making the fall of the bus signal sBUS output from the slave node 1504 steep, conduction noise occurs as described above, which may for example block wireless communication in a smart key system or the like.
(46) An embodiment for reducing the effect of the aforementioned conduction noise is described below with reference to the drawings.
(47) First, the principle in this embodiment behind reducing the effect of conduction noise is described with reference to
(48) As described with reference to
(49) When a time difference t.sub.diff is a predetermined length, where t.sub.diff is the difference between time t.sub.2 and time t.sub.1, then in a specific frequency band, a component of the current spectrum in section A and a component of the current spectrum in section B are canceled due to a phase relationship. In other words, in the components of the spectrum at each frequency band for section A and section B, the components of the frequency band for which the phase difference is radians (or an odd multiple of radians) cancel each other.
(50) The relationship between the time difference t.sub.diff and the frequency f.sub.notch that is cancelled is now described in detail.
(51) The phase difference in the frequency components of section A and section B at a predetermined frequency f is represented by Equation (3) below.
=2.Math.t.sub.diff.Math.f(3)
(52) In order for the components of section A and section B at frequency f.sub.notch to be canceled, it suffices for the phase difference to be an odd multiple of radians. In other words, it suffices for Equation (4) to hold, where n is a natural number.
2.Math.t.sub.diff.Math.f.sub.notch=(2n1)(4)
(53) Solving Equation (4) for f.sub.notch and t.sub.diff yields Equation (5) and Equation (6) below.
f.sub.notch=(2n1)/(2t.sub.diff)(5)
t.sub.diff=(2n1)/(2f.sub.notch)(6)
(54) Accordingly, by controlling the time difference t.sub.diff to be the value calculated by substituting the frequency f.sub.notch at which the spectrum components are cancelled into Equation (6) above, the effect of the harmonic at the frequency f.sub.notch can be reduced.
(55)
(56)
(57) The analog block 301 includes a driver 302, a receiver 303, and a clock rise start detector 304. The driver 302 inputs the transmission data signal TXD from the microcontroller 1505, acquired via the logic block 305, into the communication bus 1507. The receiver 303 acquires the bus signal mBUS input from the communication bus 1507 connected to the analog block 301 and transmits the bus signal mBUS to the logic block 305.
(58) The clock rise start detector 304 is a circuit that detects the point in time at which the clock signal starts to be displaced from the low level to the high level, i.e. the time t.sub.2. The clock rise start detector 304 is, for example, configured with a comparator. When the clock rise start detector 304 is configured with a comparator, for example the low level voltage V.sub.L of the bus signal mBUS and the bus signal mBUS are input into the clock rise start detector 304. The clock rise start detector 304 compares the voltage V.sub.L with the voltage of the bus signal mBUS that are input and outputs a signal representing the comparison result.
(59) The logic block 305 includes a decoder 306, a clock rise start determiner 307, a transmission data signal delay adjuster 308, and an encoder 309. The decoder 306 transmits the result of decoding the signal acquired from the receiver 303 to the microcontroller 1505.
(60) Based on the timing of the clock rise start acquired from the clock rise start detector 304, the clock rise start determiner 307 determines the time t.sub.2 at which the bus signal mBUS starts to be displaced from the low level. Based on the time t.sub.2 acquired from the clock rise start determiner 307 and on the target time difference t.sub.diff, the transmission data signal delay adjuster 308 determines the timing for inputting the transmission data signal TXD, i.e. the timing for lowering the bus signal sBUS from the slave node 1504.
(61) The encoder 309 converts the data signal sTXD acquired from the microcontroller 1505 to a PWM signal and inputs the transmission data signal TXD to the driver 302. At this time, the encoder 309 inputs the transmission data signal TXD to the driver 302 at a predetermined timing based on the timing for inputting the transmission data signal TXD determined by the transmission data signal delay adjuster 308.
(62) With reference to
(63) First, with the clock rise start detector 304, the CXPI transceiver 1506 detects the time t.sub.2_n-1 of the clock rise start at the (n1).sup.th cycle that is one cycle before the n.sup.th cycle. With the clock rise start determiner 307, the CXPI transceiver 1506 also determines, based on the period T.sub.per of the bus signal mBUS, the time t.sub.2_n=t.sub.2_n-1+T.sub.per of the n.sup.th clock rise start from the detected time t.sub.2_n-1. Note that the CXPI transceiver 1506 need not detect the time t.sub.2_n-1 if the time t.sub.2_n of the n.sup.th clock rise start can be calculated. For example, the CXPI transceiver 1506 may calculate the time t.sub.2_n based on the time t.sub.2_n-m of the (nm).sup.th clock rise start (where n>m).
(64) The CXPI transceiver 1506 subtracts the time difference t.sub.diff from the time t.sub.2_n with the transmission data signal delay adjuster 308, thereby calculating the time at which the logical value of the bus signal sBUS became 0, i.e. the time t.sub.1_n of the slave fall end. The CXPI transceiver 1506 modulates the bus signal sBUS with logical value 0 to a PWM signal so that the time t.sub.1_n becomes the slave fall end of the bus signal sBUS.
(65) In this way, by the CXPI transceiver 1506 controlling the timing of control of the bus signal sBUS, the harmonic level at a predetermined frequency f.sub.notch can be reduced.
(66) Next, a modification to the CXPI transceiver 1506 of this embodiment is described. The modification described here is an example that can control the timing of the below-described slave fall end and the fall end (clock fall end) of the bus signal mBUS.
(67)
(68)
(69) The analog block 601 includes a driver 602, a first comparator 603, and a second comparator 604. The driver 602 inputs the transmission data signal TXD from the microcontroller 1505, acquired via the logic block 605, into the communication bus 1507.
(70) The first comparator 603 and the second comparator 604 output a signal used in the logic block 605 to determine the time of the clock rise start and the clock fall end. The bus signal mBUS from the communication bus 1507 is input into the first comparator 603 and the second comparator 604. Furthermore, a first reference voltage V.sub.th1 is input into the first comparator 603, and a second reference voltage V.sub.th2 is input into the second comparator 604. The first reference voltage V.sub.th1 and the second reference voltage V.sub.th2 are each equal to or greater than the voltage V.sub.L of the low level and equal to or less than the voltage V.sub.H of the high level of the bus signal mBUS. It is assumed here that V.sub.th1>V.sub.th2. The first comparator 603 and the second comparator 604 respectively compare the first reference voltage V.sub.th1 and the second reference voltage V.sub.th2 with the voltage of the bus signal mBUS and output a signal representing the comparison result (comparison signal).
(71) The logic block 605 includes a clock rise start determiner 606, a clock fall end determiner 607, a transmission data signal delay adjuster 608, and an encoder 609.
(72) The comparison signals from the first comparator 603 and the second comparator 604 are input into the clock rise start determiner 606 and the clock fall end determiner 607. Based on the acquired signal, the clock rise start determiner 606 determines the time t.sub.2 at which the bus signal mBUS starts to be displaced from the low level. Based on the acquired signal, the clock fall end determiner 607 determines the time t.sub.0 at which the bus signal mBUS reaches the low level. Details on the method by which the clock rise start determiner 606 and the clock fall end determiner 607 determine the time t.sub.2 and the time t.sub.0 are provided below.
(73) Based on the time t.sub.2 acquired from the clock rise start determiner 606, the time t.sub.0 acquired from the clock fall end determiner 607, and the target time difference t.sub.diff, the transmission data signal delay adjuster 608 determines the timing for inputting the transmission data signal TXD. The transmission data signal delay adjuster 608 performs control so that the time t.sub.1 of the slave fall end is earlier than the time t.sub.2 of the clock rise start by the time difference t.sub.diff that allows the desired harmonic level to be reduced. When the time t.sub.1 is earlier than the time t.sub.0 of the clock fall end, however, conduction noise is generated for the reason described with reference to
(74) The encoder 609 converts the data signal sTXD acquired from the microcontroller 1505 to a PWM signal and inputs the transmission data signal TXD to the driver 602. The encoder 609 inputs the transmission data signal TXD acquired from the microcontroller 1505 to the driver 602 at a predetermined timing based on the timing for inputting the transmission data signal TXD determined by the transmission data signal delay adjuster 608.
(75) Details on the method by which the clock rise start determiner 606 and the clock fall end determiner 607 determine the time t.sub.2 of the clock rise start and the time t.sub.0 of the clock fall end are now described with reference to
(76) From the comparison signal Comp1 of the first comparator 603 and the comparison signal Comp2 of the second comparator 604, the clock rise start determiner 606 determines a time t.sub.r1 at which the bus signal mBUS reached the voltage V.sub.th2 and a time t.sub.r2 at which the bus signal mBUS reached the voltage V.sub.th1 while transitioning from low level to high level. Based on the voltages V.sub.th2 and V.sub.th1 of the bus signal mBUS and the times t.sub.r1 and t.sub.r2, the clock rise start determiner 606 can calculate the rate of change of the bus signal mBUS. Specifically, the rate of change is calculated as (V.sub.th1V.sub.th2)/(t.sub.r2t.sub.r1). Based on the calculated rate of change, the clock rise start determiner 606 calculates the time t.sub.2 at which the voltage of the bus signal mBUS is the low level voltage V.sub.L. Specifically, the time t.sub.2 is calculated by Equation (7) below, where V.sub.L=0 and the time t.sub.r2 is the reference time.
t.sub.2=t.sub.r2t.sub.r2t.sub.r1).Math.V.sub.th1/(V.sub.th1V.sub.th2)(7)
(77) From the comparison signal Comp1 of the first comparator 603 and the comparison signal Comp2 of the second comparator 604, the clock fall end determiner 607 determines a time t.sub.f1 at which the bus signal mBUS reached the voltage V.sub.th1 and a time t.sub.f2 at which the bus signal mBUS reached the voltage V.sub.th2 while transitioning from high level to low level. Based on the voltages V.sub.th1 and V.sub.th2 of the bus signal mBUS and the times t.sub.f1 and t.sub.f2, the clock fall end determiner 607 can calculate the rate of change of the bus signal mBUS. Specifically, the rate of change is calculated as (V.sub.th2V.sub.th1)/(t.sub.f2t.sub.f1). Based on the calculated rate of change, the clock fall end determiner 607 calculates the time t.sub.0 at which the voltage of the bus signal mBUS is the low level voltage V.sub.L. Specifically, the time t.sub.0 is calculated by Equation (8) below, where V.sub.L=0 and the time t.sub.f1 is the reference time.
t.sub.0=(t.sub.f2t.sub.f1).Math.V.sub.th1/(V.sub.th1V.sub.th2)(8)
(78) The following describes control by the CXPI transceiver 1506 described with reference to
(79) First, the CXPI transceiver 1506 determines the time t.sub.2_n of the n.sup.th clock rise start with the clock rise start determiner 606. The method for determination of the clock rise start determiner 606 is similar to the method described in
(80) Next, with the clock fall end determiner 607, the CXPI transceiver 1506 determines the time t.sub.0_n of the n.sup.th clock fall end of the bus signal mBUS. Specifically, as illustrated in
(81) The CXPI transceiver 1506 also determines the time of the delay of the transmission data signal TXD with the transmission data signal delay adjuster 608. Details on the method by which the transmission data signal delay adjuster 608 determines the delay time are provided with reference to
(82)
(83) In
(84) When the time difference t.sub.diff is equal to or less than the time between the time t.sub.2 and the time t.sub.0, i.e. when t.sub.difft.sub.2t.sub.0, the transmission data signal delay adjuster 608 determines t.sub.dly by Equation (9) below.
t.sub.dly=(t.sub.2t.sub.diff)D.sub.int(9)
(85) When the time difference t.sub.diff is longer than the time between the time t.sub.2 and the time t.sub.0, i.e. when t.sub.diff>t.sub.2t.sub.0, the transmission data signal delay adjuster 608 determines t.sub.dly to be a value satisfying Equation (10) below, where t.sub.min=t.sub.0D.sub.int.
t.sub.dly>t.sub.min(10)
In this way, when t.sub.diff>t.sub.2t.sub.0, by setting t.sub.dly to be a value larger than t.sub.min, generation of the conduction noise described with reference to
(86) With the encoder 609, the CXPI transceiver 1506 controls the transmission data signal TXD based on the calculated delay time t.sub.dly.
(87) At the delay time corresponding to t.sub.dly, the encoder 609 converts the transmission data signal TXD with logical value 0 to a PWM signal and outputs the result. At this time, with respect to the fall of the transmission data signal TXD, the encoder 609 performs control for a time delay corresponding to t.sub.dly. On the other hand, with respect to the time at which the transmission data signal TXD starts to rise (slave rise start), the encoder 609 performs control so that the length of time from the time t.sub.f1 is a constant length of time. Assuming that the fall of the bus signal mBUS is constant, the encoder 609 controls the transmission data signal to rise after a constant length of time from the time t.sub.0. In this way, the CXPI transceiver 1506 can reduce the harmonic level at a desired frequency band while maintaining the duty cycle of the bus signal BUS.
(88) If the time t.sub.1 of the slave fall end is later than the time t.sub.2 at which the clock signal starts to be displaced from the low level to the high level, then the current flowing in the communication bus 1507 suddenly changes as illustrated in
(89) Although embodiments of this disclosure have been described based on examples and on the accompanying drawings, it is to be noted that various changes and modifications will be apparent to those skilled in the art based on this disclosure. Therefore, such changes and modifications are to be understood as included within the scope of this disclosure. For example, the functions and the like included in the structural components may be reordered in any logically coherent way. Furthermore, structural components and the like may be combined into one or divided.
(90) For example, in the above-described embodiment and modification, the encoder may generate a PWM signal, and a timing adjustment circuit provided separately in the CXPI transceiver 1506 may perform control to delay the falling edge of the control signal (slave fall end). In the above-described embodiment and modification, the function of the timing adjustment circuit has been described as being included in the encoder.
(91) The above-described clock rise start determiner 307, transmission data signal delay adjuster 308, clock rise start determiner 606, clock fall end determiner 607, and transmission data signal delay adjuster 608, for example, may be configured as a logic circuit or the like in which a plurality of logic cells are combined. Specific examples include one or more of each of the following: an Application Specific Integrated Circuit (ASIC), Digital Signal Processor (DSP), Digital Signal Processing Device (DSPD), Programmable Logical Device (PLD), Field Programmable Array (FPGA), System-on-Chip (SoC), processor, controller, microcontroller, and microprocessor, or a combination thereof.
(92) Various embodiments described herein may include various operations. These operations may be performed and/or controlled by hardware components, digital hardware and/or firmware, and/or combinations thereof. As used herein, the term coupled to may mean coupled directly or indirectly through one or more intervening components. Any of the signals described herein may be time multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit components or blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be one or more single signal lines and each of the single signal lines may alternatively be buses.
(93) Certain embodiments may be implemented as a firmware or software product that may include instructions stored on a non-transitory computer-readable medium, e.g., such as volatile memory and/or non-volatile memory. These instructions may be used to program one or more devices that include one or more general-purpose or special-purpose processors (e.g., such as CPUs, ASICs, DSPs, DSPDs, PLDs, FPGAs, SoCs, etc.) or equivalents thereof (e.g., such as processing cores, processing engines, microcontrollers, and the like), so that when executed by the processor(s) or the equivalents thereof, the instructions cause the device(s) to perform the operations described herein. A non-transitory computer-readable storage medium may include, but is not limited to, electromagnetic storage medium (e.g., floppy disks, hard disks, and the like), optical storage medium (e.g., CD-ROM), magneto-optical storage medium, read-only memory (ROM), random-access memory (RAM), erasable programmable memory (e.g., EPROM and EEPROM), flash memory, or another now-known or later-developed non-transitory type of medium that is suitable for storing information. A computer-readable medium may also include one or more mechanisms for storing or transmitting information in a form (e.g., software, processing application, etc.) that is readable by a machine (e.g., such as a device or a computer).
(94) In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.