WO2018003841A1 - シリアル通信方法及びセンサコントローラ - Google Patents
シリアル通信方法及びセンサコントローラ Download PDFInfo
- Publication number
- WO2018003841A1 WO2018003841A1 PCT/JP2017/023715 JP2017023715W WO2018003841A1 WO 2018003841 A1 WO2018003841 A1 WO 2018003841A1 JP 2017023715 W JP2017023715 W JP 2017023715W WO 2018003841 A1 WO2018003841 A1 WO 2018003841A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- report
- descriptor
- touch data
- host
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/04162—Control or interface arrangements specially adapted for digitisers for exchanging data with external devices, e.g. smart pens, via the digitiser sensing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03545—Pens or stylus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/044—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
- G06F3/0442—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means using active external devices, e.g. active pens, for transmitting changes in electrical potential to be received by the digitiser
Definitions
- the present invention relates to a serial communication method and a sensor controller, and more particularly to a sensor controller configured to be able to detect the position of a stylus and / or finger touch, and serial communication executed between such a sensor controller and a host processor. Regarding the method.
- a stylus called an active stylus includes a power supply unit and a signal processing circuit, and is configured to supply charges corresponding to a signal generated by the signal processing circuit to an electrode provided near the tip of the stylus.
- the electric charge supplied to the electrode generates a predetermined potential (or electric field) in the space near the stylus pointing position, and an arbitrary signal is transmitted.
- the position signal which is a burst signal for informing the position of the stylus
- the pressure signal that indicates the pressure value detected by the stylus and the operation buttons on the side and end of the stylus
- Various data such as data indicating the state and a unique ID written in advance on the stylus are included.
- the sensor controller is a device built in an electronic device such as a tablet terminal, and is connected to a touch sensor having an electrode group composed of a plurality of electrodes arranged in a matrix.
- a touch sensor having an electrode group composed of a plurality of electrodes arranged in a matrix.
- the sensor controller detects a signal transmitted by the stylus by detecting the change in the amount of charge thus induced for each electrode, and determines the position of the stylus based on the position of the electrode where the signal is detected and the level of detection. To derive.
- the data transmitted by the stylus is received by decoding the detected signal.
- the sensor controller also detects the position of the finger touch by detecting a change in capacitance caused by the finger touching the electrode group. In particular, detection of the active stylus and detection of finger touch are performed using the same electrode group.
- the sensor controller that has detected the stylus or finger touch transmits to the host processor touch data including coordinate data indicating the position of the detected stylus and finger touch and data transmitted by the stylus.
- This transmission is realized, for example, using communication by USB (Universal Serial Bus) (see Non-Patent Document 1).
- the sensor controller Prior to the transmission of touch data, the sensor controller indicates the structure of the touch data and the format of the features that the sensor controller supports (various sensor controller setting information such as the maximum number of touches that can be detected simultaneously). (Hereinafter referred to as “descriptor”) needs to be notified to the host processor. If USB is used for communication between the sensor controller and the host processor, this notification is executed by a series of processes called enumeration.
- the host processor After establishing communication by a lower layer between the host processor and the sensor controller, the host processor first issues a descriptor acquisition command (Get_Descriptor).
- Get_Descriptor indicates peripheral device setting information and the like, and the “descriptor” transmitted from the sensor controller to the host processor is one type.
- the sensor controller returns a descriptor as a response to the descriptor acquisition command. Thereby, sharing of the descriptor is realized between the host processor and the sensor controller, and the subsequent host processor interprets the touch data transmitted by the sensor controller using the shared descriptor.
- a command that can be used for notification of a descriptor in the present application may be provided in an interface other than USB.
- a descriptor acquisition command is prepared so that a host can acquire and use a descriptor from a device like USB in I 2 C. Yes.
- communication between the sensor controller and the host processor is not necessarily performed by USB or I 2 C, and a protocol that can be used for notification of a descriptor in the present application may not be provided depending on a communication standard used. Even in such a case, it is necessary to be able to notify the descriptor from the sensor controller to the host processor.
- one of the objects of the present invention is that even when the communication between the sensor controller and the host processor is performed according to a standard that does not provide a command that can be used for notification of the descriptor, It is an object of the present invention to provide a serial communication method and a sensor controller that can notify a descriptor.
- the data transmitted from the sensor controller to the host processor by the touch data differs depending on the stylus being detected by the sensor controller.
- the touch data includes only coordinate data.
- the operation buttons The number of data indicating the on / off state is different.
- the number of bits of writing pressure data and unique ID varies depending on the stylus, and in the case of a stylus having a 6-axis or 12-axis inertial sensor, the output value is included in touch data.
- most data items may be NULL values (or initial values) depending on the stylus.
- the touch data is transmitted as it is. This has been a cause of squeezing the bandwidth of communication performed between the sensor controller and the host processor, and improvement has been demanded.
- Another object of the present invention is to provide a serial communication method and a sensor controller that can reduce the capacity of touch data.
- a serial communication method is a serial communication method between a device that detects coordinates of an active stylus and reports touch data including the detected coordinates to a host, and the host communicates with the device.
- a write command issuing step for issuing a write command including data indicating a descriptor request, and an interrupt transmission for transmitting an interrupt to the host after the device executes a predetermined process for the write command.
- a touch data request step for requesting transmission of touch data to the device when the host detects the interrupt, and the device responds to the request for transmission of the touch data in response to the request for transmission of the touch data. Descriptor response sending the descriptor Tsu including and up, the.
- the descriptor may include one or more report IDs and one or more report descriptors corresponding to each of the one or more report IDs.
- a sensor controller is a sensor controller that detects the coordinates of an active stylus and reports touch data including the detected coordinates to a host, a terminal connected to a plurality of electrodes, a memory, and a memory stored in the memory
- a write command receiving step for receiving a write command including data indicating a request for a descriptor from the host according to the programmed program, and an interrupt transmitting step for transmitting an interrupt to the host in response to the reception of the write command; After transmitting the interrupt, a step of receiving a touch data transmission request from the host, a descriptor response step of transmitting the descriptor to the host in response to reception of the touch data transmission request, and following the descriptor
- the generated report containing the touch data including a processor for executing a report transmission step of transmitting to the host.
- the data indicating the descriptor request is arranged in the write command issued to the device by the host, and the device receiving the descriptor transmits the descriptor by using the touch data transmission procedure. Even when communication between the sensor controller and the host processor is performed according to a standard that does not provide a command that can be used for the notification, the sensor controller can notify the descriptor to the host processor.
- FIG. 1 is a diagram showing a serial communication system 1 according to an embodiment of the present invention. It is a figure which shows the structure of the descriptor by embodiment of this invention. It is a figure which shows the sequence (descriptor notification sequence) of the serial communication performed by the serial communication system 1 shown in FIG. It is a figure which shows the structure of the write command transmitted by step S14 shown in FIG. It is a figure which shows the data structure of the register
- FIG. 1 is a diagram showing a serial communication system 1 according to an embodiment of the present invention.
- the serial communication system 1 includes a touch sensor 10, a sensor controller 20, a host processor 30, an operating system 40, and indicators 50 and 51. .
- the touch sensor 10, the sensor controller 20, the host processor 30, and the operating system 40 are, for example, components of one tablet PC.
- a part of the host processor 30 and the operating system 40 are realized by software, and the touch sensor 10, the sensor controller 20, and the remaining part of the host processor 30 are realized by hardware.
- the operating system 40 is configured to operate on the host processor 30.
- the touch sensor 10 includes a plurality of electrodes 11 arranged in a matrix. More specifically, each of the plurality of electrodes 11 extends in the X direction, and each of the plurality of first linear electrodes arranged at equal intervals in the Y direction orthogonal to the X direction and each extends in the Y direction. And a plurality of second linear electrodes arranged at equal intervals in the X direction.
- the sensor controller 20 is an integrated circuit for controlling the touch sensor 10 and includes a terminal 21 connected to each electrode 11 of the touch sensor 10 and a memory 22.
- the sensor controller 20 corresponds to a “device” in terms of a standard such as USB or MIPI (Mobile Industry Processor Interface) which is a standard for data transmission in a portable device.
- the host processor 30 is a component equivalent to a “host” in terms of standards such as USB or MIPI, and is configured to execute a function of relaying communication between the sensor controller 20 and the operating system 40. Communication between the sensor controller 20 and the host processor 30 is realized by serial communication via a serial bus, for example, serial communication using D-DHY which is a kind of physical layer defined by MIPI.
- the operating system 40 is configured to include functions as driver software for the host processor 30 or the sensor controller 20 as well as functions such as process scheduling and memory management.
- the operating system 40 further includes software called an HID (Human Interface Device) stack and software called a device driver.
- HID Human Interface Device
- the indicator 50 is specifically a human finger.
- the indicator 51 is specifically a stylus, and is configured by, for example, an active stylus having a function of receiving a signal transmitted from the touch sensor 10 and transmitting information corresponding to the signal to the touch sensor 10.
- the touch sensor 10 and the sensor controller 20 are configured to detect the indicator 50 and the indicator 51 in a time-sharing manner.
- the sensor controller 20 sequentially sends a predetermined finger detection signal to the plurality of first linear electrodes, and the finger detection signal is transmitted to each of the plurality of second linear electrodes. Is detected.
- the coordinates of the indicator 50 on the touch sensor 10 are detected.
- the coordinates of the indicator 51 on the touch sensor 10 are detected and the data transmitted by the indicator 51 is received based on the result of signal transmission / reception with the indicator 51. To do.
- the indicator 51 is configured to receive and transmit signals in a time division manner.
- the indicator 51 receives a signal transmitted by the sensor controller 20 using the plurality of electrodes 11 as antennas. This signal includes a command for the indicator 51.
- the indicator 51 sequentially transmits a position signal that is a burst signal and a data signal modulated by data instructed to be transmitted by the received command.
- the sensor controller 20 receives these signals via the plurality of electrodes 11, thereby detecting the coordinates of the indicator 51 and receiving data transmitted by the indicator 51.
- the sensor controller 20 is configured to transmit the detected coordinates of the indicators 50 and 51 and data received from the indicator 51 to the operating system 40 via the host processor 30.
- data thus transmitted from the sensor controller 20 to the operating system 40 is referred to as “touch data”.
- the sensor controller 20 before transmitting the touch data, includes various types of setting information of the sensor controller 20 such as the structure of the touch data and the features supported by the sensor controller 20 (the maximum number of touches that can be detected simultaneously). ) (Hereinafter, referred to as “descriptor”) is notified to the operating system 40 via the host processor 30.
- the operating system 40 is configured to interpret the touch data transmitted by the sensor controller 20 using the descriptor thus notified.
- FIG. 2 is a diagram showing the structure of the descriptor 100 according to the present embodiment.
- the descriptor 100 is text data that describes the structure of touch data or the format of features for each report ID.
- the actual descriptor 100 is described in hexadecimal notation.
- report IDs # 1 and # 2 correspond to the structure of the touch data, and are associated with the various data (X coordinate, Y coordinate, Format (size, data type, etc.) is specified.
- the report IDs #k and # k + 1 correspond to the features, and the feature format (size, data type, etc.) is defined in association with each.
- the report ID corresponding to the structure of the touch data may be referred to as “input report ID”, and the report ID corresponding to the feature may be referred to as “feature report ID”.
- a descriptor portion corresponding to each of the plurality of input report IDs may be referred to as a “report descriptor”, and a descriptor portion corresponding to each of the plurality of feature report IDs may be referred to as a “feature descriptor”.
- the sensor controller 20 selects one input report ID according to the indicator being detected, and generates touch data according to the selected input report ID. Then, the touch data is transmitted to the operating system 40 in the form of a report including the selected input report ID and the generated touch data.
- an inquiry about the specific content of the feature is executed from the operating system 40 to the sensor controller 20 at an arbitrary timing after the notification of the descriptor. Thereby, the operating system 40 is notified of the specific contents of the feature.
- the operating system 40 also performs processing for setting the specific content of the feature in the sensor controller 20.
- FIG. 3 is a diagram showing a descriptor notification sequence S1 executed by the serial communication system 1.
- the sensor controller 20 determines the contents of the descriptor according to its capabilities (step S10).
- the specific contents of the descriptor thus determined are as described with reference to FIG.
- the capabilities of the sensor controller 20 include a stylus detection function, a determination function for determining whether stylus sensor information including sensor information such as an inertial sensor can be interpreted, a function set (or excluded) by firmware, and the like.
- the sensor controller 20 that has determined the contents of the descriptor subsequently acquires the size of the determined descriptor (step S11), and temporarily stores it in the memory 22 shown in FIG. 1 together with the descriptor.
- the operating system 40 starts descriptor acquisition processing at an arbitrary timing (for example, timing immediately after being connected to the sensor controller 20) (step S12). In this process, the operating system 40 transmits a descriptor acquisition instruction (Get Descriptor) to the host processor 30 (step S13).
- a descriptor acquisition instruction Get Descriptor
- the host processor 30 Upon receiving the descriptor acquisition instruction, the host processor 30 issues a write command including data indicating a descriptor request to the sensor controller 20 (step S14, write command issue step).
- the write command is used here because the communication standard used for communication between the host processor 30 and the sensor controller 20 does not have a command for reading a large amount of data such as a descriptor. There is a command (which will be described in detail later, but a command for reading a small-sized register value is prepared).
- FIG. 4 is a diagram showing the structure of the write command transmitted in step S14.
- the write command includes three fields of a write data type W1, a write data size W2, and a write data payload W3.
- the write data type W1 is a field for storing a value indicating the type of data to be written
- the write data payload W3 is a field for storing data to be written
- the write data size W2 is the data size of the write data payload W3. Is a field to set.
- the size of the write data type W1 is 1 byte (the minimum size allocated to one data), but it is not necessary to use all 1 byte as a value indicating the type of data to be written. Therefore, in the present embodiment, an unused value (for example, “7”) of 1-byte values (“0” to “255”) that can be set in the write data type W1 is used as a descriptor acquisition instruction. Used as the value shown (GET_REPORT_DESCRIPTOR). That is, the host processor 30 issues a write command including data indicating a descriptor request by storing a value (GET_REPORT_DESCRIPTOR) indicating the descriptor acquisition instruction in the write data type W1 in the write command. In step S14, the setting content of the write data payload W3 is arbitrary. Thereby, it is realized that the descriptor acquisition instruction is transmitted from the host processor 30 to the sensor controller 20 by using a write command which is originally used for writing data.
- step S14 since what is transmitted in step S14 is only a write command, there is no mechanism for transmitting a descriptor from the sensor controller 20 to the operating system 40. Therefore, the sensor controller 20 transmits a descriptor using a mechanism for transmitting touch data in steps S15 to S21 described below.
- the sensor controller 20 first executes a predetermined process for the write command received in step S14 (step S15).
- This process includes a process executed for the registers arranged in the memory 22 shown in FIG.
- FIG. 5 is a diagram showing a data structure of a register arranged in the memory 22.
- this register includes a field for storing the interrupt type (a field corresponding to 4 bits of addresses k to k + 3) and a field for storing the size of data to be transmitted following the interrupt (addresses m to m + 23). Field of 24 bits).
- the sensor controller 20 writes a value indicating “read data available (read_data_available)” (a register value indicating that the touch data can be transmitted) in the former, and writes the descriptor acquired in step S11 in the latter. Write the size.
- step S16 interrupt transmission step
- step S17 the host processor 30 executes reading from the register of the sensor controller 20 when the interrupt is detected.
- the data read by this processing is the interact type and data size shown in FIG. Therefore, as a result of the process in step S17, the interact type and the data size are transmitted from the sensor controller 20 to the host processor 30 (step S18).
- the host processor 30 that has received the interact type and data size in step S18 requests the sensor controller 20 to transmit touch data (step S19, touch data request step).
- the host processor 30 requests the touch data because a series of processes starting from the interrupt is a process prepared for transmitting the touch data.
- the host processor 30 does not confirm whether the content of touch data to be received from now on is a descriptor or touch data, and merely performs touch data relay processing.
- the sensor controller 20 transmits touch data including the descriptor determined at step S10 (step S20, descriptor response step).
- FIG. 6 is a diagram showing the structure of touch data transmitted in step S20.
- the touch data includes three fields of a touch data type T1, a touch data size T2, and a touch data payload T3.
- the touch data type T1 is a field for storing a value indicating the type of touch data to be transmitted
- the touch data payload T3 is a field for storing data to be transmitted
- the touch data size T2 is the data of the touch data payload T3. This field sets the size.
- the sensor controller 20 is configured to store the descriptor in the touch data payload T3 and store the size of the descriptor acquired in step S11 in the touch data size T2.
- the touch data type T1 stores a value (TOUCH_DATA_TYPE_REPORT_DESCRIPTOR) indicating touch data for transmitting the descriptor.
- the host processor 30 that has received the touch data in step S20 extracts the data in the touch data payload T3 according to the size stored in the touch data size T2, and checks whether or not the extracted data is a descriptor. Transfer to the operating system 40 (step S21). Thereby, the transmission of the descriptor from the sensor controller 20 to the operating system 40 is completed.
- data indicating a descriptor request is placed in a write command issued by the host processor 30 to the sensor controller 20, and the sensor controller 20 receiving the data receives the touch data. Since the descriptor is transmitted using the transmission procedure of the sensor controller, even if communication between the sensor controller 20 and the host processor 30 is performed according to a standard that does not provide a command that can be used for notification or reading of the descriptor, the sensor controller 20, the descriptor can be notified to the operating system 40 as in Non-Patent Document 1 and Non-Patent Document 2.
- FIG. 7 is a diagram showing a touch data transmission sequence S2 executed by the serial communication system 1.
- the touch data transmission sequence S2 is executed after the descriptor notification sequence S1 shown in FIG. 3 ends (that is, after the operating system 40 receives notification of the descriptor from the sensor controller 20).
- the transmission of touch data is a process that is periodically executed. Therefore, although not shown, the touch data transmission sequence S2 is repeatedly executed at predetermined time intervals.
- the sensor controller 20 detects an indicator (for example, the indicator 50 or the indicator shown in FIG. 1) from one or more input report IDs included in the descriptor notified to the operating system 40 in the descriptor notification sequence S1. 51), one input report ID is selected (step S30). Then, a report including the selected input report ID and touch data is generated according to the report descriptor corresponding to the selected input report ID (step S31).
- an indicator for example, the indicator 50 or the indicator shown in FIG. 1
- one input report ID is selected (step S30).
- a report including the selected input report ID and touch data is generated according to the report descriptor corresponding to the selected input report ID (step S31).
- the input report ID selected in step S30 may change while the detection of the same indicator continues. That is, since the sensor controller 20 does not know the type of data that the indicator supports at the beginning of detection of a certain indicator, for example, the report descriptor input report corresponding to all the possible data Select an ID. Then, after the data corresponding to the indicator is found through communication with the indicator, the input report ID of the report descriptor corresponding to only the data corresponding to the indicator can be selected. By doing in this way, it becomes possible to change the capacity
- the sensor controller 20 that generated the report writes a value indicating “read data available (read_data_available)” (a register value indicating that touch data can be transmitted) in the field for storing the interrupt type shown in FIG. At the same time, the size of the report to be transmitted is written in the field for storing the data size (step S32).
- step S33 the sensor controller 20 transmits an interrupt to the host processor 30 (step S33).
- the processing (steps S33 to S36) from step S33 to the touch data request (step S36) by the host processor 30 is the same as steps S17 to S19 shown in FIG.
- the host processor 30 that has received the interrupt reads the interact type and the data size from the register of the sensor controller 20 when the interrupt is detected (step S34).
- step S34 the interact type and the data size are transmitted from the sensor controller 20 to the host processor 30 (step S35, size designation step).
- step S35 size designation step
- the sensor controller 20 that has received the request to transmit touch data in step S36 transmits the report generated in step S31 (step S37, report transmission step).
- the report generated in step S31 is stored in the touch data payload T3 shown in FIG. 6, the size of this report is stored in the touch data size T2 shown in FIG. 6, and further includes touch data.
- Touch data is generated by storing a value (TOUCH_DATA_TYPE_HID_REPORT) indicating touch data for transmitting a report in the touch data type T1 illustrated in FIG. 6, and transmitted to the host processor 30.
- the host processor 30 that has received the touch data in step S37 extracts the data in the touch data payload T3 according to the size stored in the touch data size T2, and transfers it to the operating system 40 (step S38). As a result, a report including the input report ID and touch data is transmitted from the sensor controller 20 to the operating system 40.
- the operating system 40 reads the report descriptor corresponding to the received input report ID from the descriptors received in the descriptor notification sequence S1. Then, the received touch data is interpreted (Decompose) using the read report descriptor (step S39).
- the sensor controller 20 uses the report descriptor corresponding to the detected indicator (or the grasping status of data supported by the indicator) to generate a report. Can be generated. That is, since the report size can be changed as necessary, the capacity of the report including touch data can be reduced. Since the input report ID is transmitted together with the touch data, the operating system 40 can correctly interpret the touch data and extract individual data included therein.
- step S38 the host processor 30 extracts the data in the touch data payload T3 according to the size stored in the touch data size T2. However, the host processor 30 extracts the data in the touch data payload T3 according to the data size received in step S35. Data may be taken out. In this case, since the touch data size T2 can be omitted, the capacity of the report including touch data can be further reduced. This also applies to step S21 shown in FIG. 3 and step S50 shown in FIG.
- step S20 shown in FIG. 3 includes, as descriptors, a first report descriptor indicating the first structure of touch data and a second structure indicating a second structure of touch data different from the first structure.
- the report descriptor is sent.
- the descriptor includes a first report ID corresponding to the first report descriptor and a second report ID corresponding to the second report descriptor.
- the sensor controller 20 includes the first structure touch data and the first report ID according to the detected function type of the indicator (for example, the active stylus).
- One of the first report or the second report including the touch data of the second structure and the report ID of 21 is transmitted to the host processor 30.
- two types of report descriptors can be used properly according to the detected function type of the indicator. More specifically, at the time of detecting connection to the host processor 30 and transmitting a report descriptor to the host processor 30 (at the time of enumeration), the sensor controller 20 will be placed on the electrode 11 in the future. I don't know whether stylus # 1 or stylus # 2 will come. Therefore, the sensor controller 20 has two types of report descriptors (ie, the first report descriptor for the stylus # 1 and the second report descriptor for the stylus # 2) that may be used in the future (corresponding to all of its capabilities). Both of the report descriptors) are transmitted / notified to the host processor 30.
- the sensor controller 20 determines whether the detected stylus is the stylus # 1 or # 2, and the first and second report descriptors according to the result. Is selected, and a report including the selected report ID is transmitted. This makes it possible to use an optimal report descriptor according to the type of stylus. Although the detailed description is omitted, the same applies to the case where three or more types of report descriptors are used properly.
- FIG. 8 is a diagram showing a feature acquisition sequence S3 executed by the serial communication system 1. This feature acquisition sequence S3 is also executed after the descriptor notification sequence S1 shown in FIG. 3 ends (that is, after the operating system 40 receives a descriptor notification from the sensor controller 20). The feature acquisition sequence S3 is typically executed once for each of one or more feature report IDs included in the descriptor notified from the sensor controller 20 to the operating system 40.
- the operating system 40 determines a feature report ID for which the feature content needs to be acquired (step S40).
- the subsequent processing is basically the same as the processing after step S13 of the descriptor notification sequence S1 shown in FIG. Therefore, in the following, each process after step S41 will be described while appropriately omitting overlapping description.
- the operating system 40 transmits a feature acquisition instruction (Get Features) including the determined feature report ID to the host processor 30 (step S41). Receiving this, the host processor 30 issues a write command including data indicating a feature acquisition request to the sensor controller 20 (step S42). Specifically, a value (GET_FEATURES_DATA) indicating a feature acquisition instruction is stored in the write data type W1 in the write command, and the feature report ID included in the feature acquisition instruction from the operating system 40 is used as the write data payload W3. And a write command including data indicating a feature acquisition request is issued by storing the size of the write data payload W3 in the write data size W2. Thereby, it is realized that the feature acquisition instruction is transmitted from the host processor 30 to the sensor controller 20 by using a write command which is originally used for writing data.
- a write command which is originally used for writing data.
- the sensor controller 20 performs a predetermined process on the write command received in step S42 (steps S43 and S44). Specifically, first, a report including a feature report ID included in the write data payload W3 and a feature corresponding to the feature report ID is generated (step S43). Subsequently, the sensor controller 20 writes a value indicating “read data available (read_data_available)” in the field storing the interrupt type shown in FIG. 5 and writes the size of the report to be transmitted in the field storing the data size. (Step S44).
- step S45 the sensor controller 20 transmits an interrupt to the host processor 30 (step S45).
- the processing (steps S45 to S48) from this step S45 to the touch data request (step S48) by the host processor 30 is the same as steps S17 to S19 shown in FIG.
- the host processor 30 that has received the interrupt reads the interact type and data size from the register of the sensor controller 20 when the interrupt is detected (step S46).
- the interact type and the data size are transmitted from the sensor controller 20 to the host processor 30 (step S47). Receiving these, the host processor 30 requests the sensor controller 20 to transmit touch data (step S48).
- the sensor controller 20 that has received the request to transmit touch data in step S48 executes transmission of the report generated in step S43 (step S49).
- the report generated in step S43 is stored in the touch data payload T3 shown in FIG. 6, and the size of this report is stored in the touch data size T2 shown in FIG.
- the touch data is generated by storing the value (TOUCH_DATA_TYPE_GET_FEATURES) indicating that it is touch data for transmitting the data in the touch data type T1 illustrated in FIG. 6, and transmitted to the host processor 30.
- the host processor 30 that has received the touch data in step S49 extracts the data in the touch data payload T3 according to the size stored in the touch data size T2, and transfers it to the operating system 40 (step S50).
- the report including the feature report ID and the feature is transmitted from the sensor controller 20 to the operating system 40.
- the operating system 40 acquires and stores the feature thus received as a feature corresponding to the received feature report ID.
- data indicating a request for a feature is arranged in a write command issued by the host processor 30 to the sensor controller 20, and the sensor controller 20 receiving the data receives the touch data. Since the feature is transmitted using the transmission procedure of the sensor controller 20, even if the communication between the sensor controller 20 and the host processor 30 is performed according to a standard that does not provide a command that can be used for notification of the feature, the sensor controller 20 The feature can be transmitted to the operating system 40.
- FIG. 9 is a diagram showing a feature setting sequence S4 executed by the serial communication system 1. This feature setting sequence S4 is also executed after the descriptor notification sequence S1 shown in FIG. 3 ends (that is, after the operating system 40 receives notification of the descriptor from the sensor controller 20).
- the operating system 40 first determines a feature that needs to be set, and determines a feature report ID corresponding to the feature from one or more feature report IDs included in the descriptor (step S60). Then, a feature setting instruction (Set Features) including the determined feature report ID and the content of the feature to be set is transmitted to the host processor 30 (step S61).
- Set Features a feature setting instruction including the determined feature report ID and the content of the feature to be set is transmitted to the host processor 30 (step S61).
- the host processor 30 Upon receiving this feature setting instruction, the host processor 30 issues a write command including data indicating a feature setting request to the sensor controller 20 (step S62). Specifically, the value (SET_FEATURES_DATA) indicating the feature setting instruction is stored in the write data type W1 in the write command, and the feature report ID included in the feature setting instruction from the operating system 40 and the feature to be set are set. The contents are stored in the write data payload W3, and the size of the write data payload W3 is stored in the write data size W2, thereby issuing a write command including data indicating a feature setting request. Thereby, it is realized that the feature setting instruction is transmitted from the host processor 30 to the sensor controller 20. Since this instruction is, in essence, a feature write instruction, it can be said that the write command is used in its original usage.
- the sensor controller 20 that has received the write command in step S62 rewrites the feature corresponding to the feature report ID included therein with the received feature (step S63). Thereby, the setting of the feature of the sensor controller 20 by the operating system 40 is completed.
- the feature of the sensor controller 20 can be set from the operating system 40.
- the present invention can be widely applied to a device or a communication method for serially communicating touch data between a sensor controller that detects an indication position of an indicator such as a finger or a stylus (including an active stylus) and a host.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】ディスクリプタの通知のために使用できるコマンドを提供しない規格によりセンサコントローラとホストプロセッサの間の通信を行う場合であっても、センサコントローラからホストプロセッサに対してディスクリプタを通知できるようにする。 【解決手段】検出したアクティブスタイラスの座標を含むタッチデータをホストにレポートするデバイスと、ホストとの間のシリアル通信方法であって、ホストがデバイスに対し、ディスクリプタの要求を示すデータを含むライトコマンドを発行するステップS14と、デバイスが、ライトコマンドに対して所定の処理を実行した後、ホストに対してインタラプトを送信するステップS16と、ホストが、インタラプトを検出したことを契機に、デバイスに対してタッチデータの送信を要求するステップS19と、デバイスが、タッチデータの送信の要求に応じてディスクリプタを送信するステップS20と、を含む。
Description
本発明はシリアル通信方法及びセンサコントローラに関し、特に、スタイラス及び/又は指タッチの位置を検出可能に構成されたセンサコントローラ、並びに、そのようなセンサコントローラとホストプロセッサとの間で実行されるシリアル通信方法に関する。
近年、電子機器上で手書き入力するためのツールとして、様々な方式のスタイラスが利用可能になっている。中でもアクティブスタイラスと呼ばれるスタイラスは、電源部と信号処理回路とを備え、信号処理回路の生成する信号に応じた電荷をスタイラスの先端付近に設けられた電極に供給するように構成される。電極に供給された電荷はスタイラスの指示位置付近の空間に所定の電位(あるいは電界)を発生させ、任意の信号が送信される。こうして送信される信号には、スタイラスの位置を知らせるためのバースト信号である位置信号の他、スタイラスが検出した筆圧の値を示す筆圧データ、スタイラスの側面や末端に設けられる操作ボタンのオンオフ状態を示すデータ、スタイラスに予め書き込まれた固有IDなどの各種データが含まれる。
センサコントローラはタブレット端末などの電子機器に内蔵される装置であり、マトリクス状に配設された複数の電極からなる電極群を有するタッチセンサに接続される。スタイラスが指示位置付近の空間に所定の電位(あるいは電界)を発生させると、電極群には、その電位(あるいは電界)に応じて電荷が誘導される。センサコントローラは、こうして誘導された電荷量の変化を電極ごとに検出することによりスタイラスが送信した信号を検出し、信号が検出された電極の位置及び検出のレベルなどに基づいて、スタイラスの位置を導出する。また、検出した信号を復号することにより、スタイラスが送信したデータを受信する。
また、センサコントローラは、電極群に指が接触することで生じる静電容量の変化を検出することで、指タッチの位置検出も行う。特にアクティブスタイラスの検出と指タッチの検出とは、同じ電極群を利用して実行される。
スタイラス又は指タッチを検出したセンサコントローラは、検出したスタイラスや指タッチの位置を示す座標データやスタイラスが送信したデータを含むタッチデータを、ホストプロセッサに対して送信する。この送信は、例えばUSB(Universal Serial Bus)による通信を用いて実現される(非特許文献1を参照)。
センサコントローラは、タッチデータの送信に先立ち、タッチデータの構造と、センサコントローラが対応しているフィーチャー(同時検出可能なタッチ数の最大数などのセンサコントローラの各種設定情報)の形式とを示すデータ(以下、「ディスクリプタ」という)を、ホストプロセッサに対して通知する必要がある。センサコントローラとホストプロセッサの間の通信にUSBを用いる場合であれば、この通知は、エニュメレーションとよばれる一連のプロセスにより実行される。
エニュメレーションによるディスクリプタの通知について概略を説明すると、ホストプロセッサとセンサコントローラの間で下位層による通信を確立した後、まずホストプロセッサがディスクリプタ取得コマンド(Get_Descriptor)を発行する。なお、ここでいう「ディスクリプタ」は周辺機器の設定情報等を示すもので、センサコントローラがホストプロセッサに送信する「ディスクリプタ」はその一種である。
センサコントローラは、ディスクリプタ取得コマンドへの応答として、ディスクリプタを返信する。これにより、ホストプロセッサとセンサコントローラの間でディスクリプタの共有が実現され、その後のホストプロセッサは、共有したディスクリプタによって、センサコントローラが送信したタッチデータの解釈を行う。
Get_Descriptorのような、本願におけるディスクリプタの通知のために使用できるコマンドは、USB以外のインターフェイスにおいても提供される場合がある。例えば、非特許文献2に記載のHID over I2Cには、I2CにおいてもUSBのようにホストがデバイスからディスクリプタを取得し利用することができるように、ディスクリプタの取得コマンドが用意されている。
"HID Information"、[online]、USB・インンプリメンターズ・フォーラム・インク、[平成29年6月27日検索]、インターネット<http://www.usb.org/developers/hidpage/>
"HID over I2C"、[online]、平成29年4月20日、マイクロソフト・コーポレーション、[平成29年6月27日検索]、インターネット<https://docs.microsoft.com/en-us/windows-hardware/drivers/hid/hid-over-i2c-guide>
しかしながら、センサコントローラとホストプロセッサの間の通信は必ずしもUSB又はI2Cで行われるわけではなく、使用する通信規格によっては、本願におけるディスクリプタの通知のために使用できるプロトコルが提供されない場合がある。そのような場合においても、センサコントローラからホストプロセッサに対しディスクリプタを通知できるようにすることが必要とされている。
したがって、本発明の目的の一つは、ディスクリプタの通知のために使用できるコマンドを提供しない規格によりセンサコントローラとホストプロセッサの間の通信を行う場合であっても、センサコントローラからホストプロセッサに対してディスクリプタを通知できるシリアル通信方法及びセンサコントローラを提供することにある。
また、タッチデータによってセンサコントローラからホストプロセッサに送信されるデータは、センサコントローラが検出中のスタイラスによって異なる。例えば、上述した位置信号のみを送信するスタイラスであればタッチデータには座標データのみが含まれることとなるし、複数の操作ボタンを有するスタイラスと1つの操作ボタンのみを有するスタイラスとでは、操作ボタンのオンオフ状態を示すデータの数が異なる。また、筆圧データや固有IDのビット数はスタイラスによって異なるし、6軸又は12軸の慣性センサを有するスタイラスでは、その出力値がタッチデータに含まれることになる。
多様なスタイラスに対応するために、どのようなスタイラスにも対応できるタッチデータの構造をディスクリプタ内に予め定義しておくこととすると、スタイラスによっては、ほとんどのデータ項目がNULL値(あるいは初期値)のままでタッチデータの送信が行われることになる。これがセンサコントローラとホストプロセッサの間で行われる通信の帯域を圧迫する原因となっており、改善が求められていた。
したがって、本発明の他の目的の一つは、タッチデータの容量を低減できるシリアル通信方法及びセンサコントローラを提供することにある。
本発明によるシリアル通信方法は、アクティブスタイラスの座標を検出し、検出した座標を含むタッチデータをホストにレポートするデバイスと、前記ホストとの間のシリアル通信方法であって、前記ホストが前記デバイスに対し、ディスクリプタの要求を示すデータを含むライトコマンドを発行するライトコマンド発行ステップと、前記デバイスが、前記ライトコマンドに対して所定の処理を実行した後、前記ホストに対してインタラプトを送信するインタラプト送信ステップと、前記ホストが、前記インタラプトを検出したことを契機に、前記デバイスに対してタッチデータの送信を要求するタッチデータ要求ステップと、前記デバイスが、前記タッチデータの送信の要求に応じて前記ディスクリプタを送信するディスクリプタ応答ステップと、を含む。
上記シリアル通信方法において、前記ディスクリプタは、1以上のレポートIDと、該1以上のレポートIDのそれぞれに対応する1以上の前記レポートディスクリプタとを含む、こととしてもよい。
本発明によるセンサコントローラは、アクティブスタイラスの座標を検出し、検出した座標を含むタッチデータをホストにレポートするセンサコントローラであって、複数の電極に接続された端子と、メモリと、前記メモリに記憶されたプログラムに従い、ディスクリプタの要求を示すデータを含むライトコマンドを前記ホストから受信するライトコマンド受信ステップと、前記ライトコマンドの受信に応じて、前記ホストに対してインタラプトを送信するインタラプト送信ステップと、前記インタラプトを送信した後、タッチデータ送信要求を前記ホストから受信するステップと、前記タッチデータ送信要求の受信に応じて、前記ディスクリプタを前記ホストに対して送信するディスクリプタ応答ステップと、前記ディスクリプタに従って生成された前記タッチデータを含むレポートを前記ホストに対して送信するレポート送信ステップと、を実行するプロセッサと、を含む。
本発明によれば、ホストがデバイスに対して発行するライトコマンド内にディスクリプタの要求を示すデータを配置し、それを受けたデバイスがタッチデータの送信手続きを利用してディスクリプタを送信するので、ディスクリプタの通知のために使用できるコマンドを提供しない規格によりセンサコントローラとホストプロセッサの間の通信を行う場合であっても、センサコントローラからホストプロセッサに対してディスクリプタを通知できる。
また、本発明の一態様によれば、検出されたスタイラスに応じたレポートディスクリプタを使用することが可能になるので、タッチデータの容量を低減することが可能になる。
以下、添付図面を参照しながら、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施の形態によるシリアル通信システム1を示す図である。同図にしめすように、本実施の形態によるシリアル通信システム1は、タッチセンサ10と、センサコントローラ20と、ホストプロセッサ30と、オペレーティングシステム40と、指示体50,51とを含んで構成される。
タッチセンサ10、センサコントローラ20、ホストプロセッサ30、及びオペレーティングシステム40はそれぞれ、例えば1台のタブレットPCの構成要素である。典型的には、ホストプロセッサ30の一部及びオペレーティングシステム40はソフトウェアによって実現され、タッチセンサ10、センサコントローラ20、及びホストプロセッサ30の残りの一部はハードウェアによって実現される。この場合、オペレーティングシステム40は、ホストプロセッサ30上で動作するよう構成される。
タッチセンサ10は、マトリクス状に配置された複数の電極11を有して構成される。複数の電極11は、より具体的には、それぞれX方向に延在し、X方向と直交するY方向に等間隔で配置された複数の第1の線状電極と、それぞれY方向に延在し、X方向に等間隔で配置された複数の第2の線状電極とを含む。
センサコントローラ20はタッチセンサ10の制御を行うための集積回路であり、タッチセンサ10の各電極11に接続される端子21と、メモリ22とを有して構成される。センサコントローラ20は、携帯機器内のデータ伝送の標準規格であるUSB又はMIPI(Mobile Industry Processor Interface)等の規格でいうところの「デバイス」に相当する。
ホストプロセッサ30は、USB又はMIPI等の規格でいうところの「ホスト」に相当する構成要素であり、センサコントローラ20とオペレーティングシステム40との間の通信を中継する機能を実行可能に構成される。センサコントローラ20とホストプロセッサ30の間の通信は、シリアルバスを介するシリアル通信、例えば、MIPIで規定される物理層の一種であるD-DHYを用いるシリアル通信によって実現される。
オペレーティングシステム40は、プロセスのスケジューリングやメモリ管理などの機能とともに、ホストプロセッサ30あるいはセンサコントローラ20のドライバソフトウェアとしての機能も含んで構成される。オペレーティングシステム40にはさらに、HID(Human Interface Device)スタックと呼ばれるようなソフトウェアや、デバイスドライバと呼ばれるソフトウェアも含まれる。
指示体50は、具体的には人間の指である。また、指示体51は、具体的にはスタイラスであり、例えば、タッチセンサ10から送信される信号を受信し、それに応じた情報をタッチセンサ10に対して送信する機能を有するアクティブスタイラスによって構成される。
タッチセンサ10及びセンサコントローラ20は、指示体50と指示体51の検出を時分割で実行するよう構成される。指示体50を検出するタイミングでは、センサコントローラ20は、複数の第1の線状電極に順次所定の指検出用信号を送出し、複数の第2の線状電極のそれぞれでこの指検出用信号を検出する。そして、この指検出用信号の検出レベルに基づいて、タッチセンサ10上における指示体50の座標を検出する。一方、指示体51を検出するタイミングでは、指示体51との間での信号の送受信の結果により、タッチセンサ10上における指示体51の座標を検出するとともに、指示体51が送信したデータを受信する。
指示体51の検出について詳しく説明すると、指示体51は、信号の受信と送信を時分割で行うよう構成される。受信のタイミングでは、指示体51は、センサコントローラ20が複数の電極11をアンテナとして利用して送信した信号を受信する。この信号には、指示体51に対するコマンドが含まれる。一方、送信のタイミングでは、指示体51は、バースト信号である位置信号と、受信したコマンドによって送信を指示されたデータによって変調されてなるデータ信号とを順次送信する。センサコントローラ20は、複数の電極11を介してこれらの信号を受信することにより、指示体51の座標の検出と、指示体51が送信したデータの受信とを行う。
センサコントローラ20は、検出した指示体50,51の座標と、指示体51から受信したデータとを、ホストプロセッサ30を介してオペレーティングシステム40に送信するよう構成される。以下、こうしてセンサコントローラ20からオペレーティングシステム40に送信されるデータを「タッチデータ」と称する。
また、センサコントローラ20は、タッチデータの送信を行う前に、タッチデータの構造と、センサコントローラ20が対応しているフィーチャー(同時検出可能なタッチ数の最大数などのセンサコントローラ20の各種設定情報)の形式とを示すデータ(以下、「ディスクリプタ」という)を、ホストプロセッサ30を介してオペレーティングシステム40に通知するよう構成される。オペレーティングシステム40は、こうして通知されたディスクリプタを用いて、センサコントローラ20が送信したタッチデータの解釈を行うよう構成される。
図2は、本実施の形態によるディスクリプタ100の構造を示す図である。同図に示すように、ディスクリプタ100は、レポートIDごとにタッチデータの構造又はフィーチャーの形式を記述してなるテキストデータである。なお、実際のディスクリプタ100は16進表記で記述される。図2に例示した4つのレポートIDのうちレポートID#1,#2はタッチデータの構造に対応するもので、それぞれに対応付けて、定期的に送信される各種データ(X座標、Y座標、筆圧値など)の形式(サイズ、データ型など)が規定される。一方、レポートID#k,#k+1はフィーチャーに対応するもので、それぞれに対応付けてフィーチャーの形式(サイズ、データ型など)が規定される。以下、タッチデータの構造に対応するレポートIDを「入力レポートID」と称し、フィーチャーに対応するレポートIDを「フィーチャーレポートID」と称する場合がある。また、複数の入力レポートIDのそれぞれに対応するディスクリプタの部分を「レポートディスクリプタ」と称し、複数のフィーチャーレポートIDのそれぞれに対応するディスクリプタの部分を「フィーチャーディスクリプタ」と称する場合がある。
レポートディスクリプタに関して、センサコントローラ20は、検出中の指示体に応じて一の入力レポートIDを選択し、選択した入力レポートIDに従ってタッチデータを生成する。そして、選択した入力レポートIDと、生成したタッチデータとを含むレポートという形式で、オペレーティングシステム40に対するタッチデータの送信を行う。
一方、フィーチャーディスクリプタについては、オペレーティングシステム40からセンサコントローラ20に対し、ディスクリプタ通知後の任意のタイミングで、フィーチャーの具体的な内容の問い合わせが実行される。これにより、オペレーティングシステム40に対してフィーチャーの具体的な内容が通知される。また、オペレーティングシステム40は、フィーチャーの具体的な内容をセンサコントローラ20内に設定する処理も行う。
以下、センサコントローラ20とオペレーティングシステム40の間で実行されるこれらの処理について、シリアル通信システム1のシーケンス図を参照しながら、より詳しく説明する。
図3は、シリアル通信システム1によって実行されるディスクリプタ通知シーケンスS1を示す図である。
まず初めに、センサコントローラ20が自己のケイパビリティに応じて、ディスクリプタの内容を決定する(ステップS10)。こうして決定されるディスクリプタの具体的な内容は、図2を参照して説明したとおりである。センサコントローラ20のケイパビリティには、スタイラス検出機能、慣性センサなどのセンサ情報を含むスタイラスのセンサ情報を解釈できるか等の判定機能、ファームウェアで設定された(あるいは除外された)機能などが含まれる。
ディスクリプタの内容を決定したセンサコントローラ20は続いて、決定したディスクリプタのサイズを取得し(ステップS11)、ディスクリプタとともに、図1に示したメモリ22に一時記憶する。
オペレーティングシステム40は、任意のタイミング(例えば、センサコントローラ20と接続された直後のタイミング)でディスクリプタ取得処理を開始する(ステップS12)。この処理の中でオペレーティングシステム40は、ディスクリプタ取得指示(Get Descriptor)をホストプロセッサ30に向けて送信する(ステップS13)。
ディスクリプタ取得指示を受けたホストプロセッサ30は、センサコントローラ20に対し、ディスクリプタの要求を示すデータを含むライトコマンドを発行する(ステップS14。ライトコマンド発行ステップ)。ここでライトコマンドを使用するのは、ホストプロセッサ30とセンサコントローラ20の間での通信に使用する通信規格に、ディスクリプタのような大容量のデータをリードするためのコマンドが用意されていないためである(なお、詳しくは後述するが、小容量のレジスタ値をリードするためのコマンドは用意されている)。
図4は、ステップS14で送信されるライトコマンドの構造を示す図である。同図に示すように、ライトコマンドは、ライトデータタイプW1、ライトデータサイズW2、及びライトデータペイロードW3という3つのフィールドを含んで構成される。ライトデータタイプW1は、書き込み対象のデータの種類を示す値を格納するフィールドであり、ライトデータペイロードW3は書き込み対象のデータを格納するフィールドであり、ライトデータサイズW2はライトデータペイロードW3のデータサイズを設定するフィールドである。
ライトデータタイプW1のサイズは1バイト(1つのデータに対して割り当てられる最低サイズ)であるが、書き込み対象のデータの種類を示す値としては1バイトすべてを用いる必要はない。そこで、本実施の形態では、ライトデータタイプW1内に設定可能な1バイト分の値(「0」~「255」)のうちの未使用の値(例えば「7」)を、ディスクリプタ取得指示を示す値(GET_REPORT_DESCRIPTOR)として使用する。つまり、ホストプロセッサ30は、ライトコマンド内のライトデータタイプW1内にこのディスクリプタ取得指示を示す値(GET_REPORT_DESCRIPTOR)を格納することにより、ディスクリプタの要求を示すデータを含むライトコマンドを発行する。なお、ステップS14において、ライトデータペイロードW3の設定内容は任意である。これにより、ホストプロセッサ30からセンサコントローラ20に対し、本来はデータの書き込みに使用されるライトコマンドを用いて、ディスクリプタ取得指示を伝達することが実現される。
ただし、ステップS14で送信するものはあくまでライトコマンドであるので、センサコントローラ20からオペレーティングシステム40に対してディスクリプタを送信する仕組みが伴わない。そこでセンサコントローラ20は、以下で説明するステップS15~S21において、タッチデータを送信するための仕組みを利用してディスクリプタの送信を行う。
具体的に説明すると、センサコントローラ20はまず、ステップS14で受信したライトコマンドに対して所定の処理を実行する(ステップS15)。この処理は、図1に示したメモリ22内に配置されるレジスタに対して実行される処理を含む。
図5は、メモリ22内に配置されるレジスタのデータ構造を示す図である。同図に示すように、このレジスタは、インタラプトタイプを格納するフィールド(アドレスk~k+3の4ビット分のフィールド)と、インタラプトに続いて送信するデータのサイズを格納するフィールド(アドレスm~m+23の24ビット分のフィールド)とを含んで構成される。ステップS15においてセンサコントローラ20は、前者に「リードデータ利用可能(read_data_available)」を示す値(タッチデータが送信可能になったことを示すレジスタ値)を書き込むとともに、後者にステップS11で取得したディスクリプタのサイズを書き込む。
次に、センサコントローラ20は、ホストプロセッサ30に対してインタラプトを送信する(ステップS16。インタラプト送信ステップ)。これを受けたホストプロセッサ30は、インタラプトを検出したことを契機として、センサコントローラ20のレジスタからの読み出しを実行する(ステップS17)。この処理で読み出されるデータは、図5に示したインタラクトタイプ及びデータサイズである。したがって、ステップS17の処理の結果として、センサコントローラ20からホストプロセッサ30に対し、インタラクトタイプ及びデータサイズが送信される(ステップS18)。
ステップS18でインタラクトタイプ及びデータサイズを受信したホストプロセッサ30は、センサコントローラ20に対してタッチデータの送信を要求する(ステップS19。タッチデータ要求ステップ)。ここでホストプロセッサ30がタッチデータを要求するのは、インタラプトに始まる一連の処理がタッチデータを送信するために用意された処理だからである。別の言い方をすれば、ホストプロセッサ30は、これから受信されるタッチデータの中身がディスクリプタかタッチデータであるかを確認せず、タッチデータの中継処理をしているに過ぎない。
次にセンサコントローラ20は、ステップS19でタッチデータの送信要求を受信したことに応じて、ステップS10で決定しておいたディスクリプタを含むタッチデータを送信する(ステップS20。ディスクリプタ応答ステップ)。
図6は、ステップS20で送信されるタッチデータの構造を示す図である。同図に示すように、タッチデータは、タッチデータタイプT1、タッチデータサイズT2、及びタッチデータペイロードT3という3つのフィールドを含んで構成される。タッチデータタイプT1は、送信対象のタッチデータの種類を示す値を格納するフィールドであり、タッチデータペイロードT3は送信対象のデータを格納するフィールドであり、タッチデータサイズT2はタッチデータペイロードT3のデータサイズを設定するフィールドである。
センサコントローラ20は、タッチデータペイロードT3にディスクリプタを格納し、タッチデータサイズT2にステップS11で取得したディスクリプタのサイズを格納するよう構成される。また、タッチデータタイプT1には、ディスクリプタを送信するためのタッチデータであることを示す値(TOUCH_DATA_TYPE_REPORT_DESCRIPTOR)を格納する。
ステップS20でタッチデータを受信したホストプロセッサ30は、タッチデータサイズT2内に格納されたサイズに従ってタッチデータペイロードT3内のデータを取り出し、取り出したデータがディスクリプタであるか否かを確認することなく、オペレーティングシステム40に転送する(ステップS21)。これにより、センサコントローラ20からオペレーティングシステム40へのディスクリプタの送信が完了する。
以上説明したように、本実施の形態によれば、ホストプロセッサ30がセンサコントローラ20に対して発行するライトコマンド内にディスクリプタの要求を示すデータを配置し、それを受けたセンサコントローラ20がタッチデータの送信手続きを利用してディスクリプタを送信するので、ディスクリプタの通知あるいはリードのために使用できるコマンドを提供しない規格によりセンサコントローラ20とホストプロセッサ30の間の通信を行う場合であっても、センサコントローラ20からオペレーティングシステム40に対して、非特許文献1及び非特許文献2のようにディスクリプタを通知することが可能になる。
図7は、シリアル通信システム1によって実行されるタッチデータ送信シーケンスS2を示す図である。同図に示すように、タッチデータ送信シーケンスS2は、図3に示したディスクリプタ通知シーケンスS1の終了後(すなわち、オペレーティングシステム40がセンサコントローラ20からディスクリプタの通知を受けた後)に実行される。また、タッチデータの送信は、定期的に実行される処理である。したがって、図示していないが、タッチデータ送信シーケンスS2は所定の時間間隔で繰り返し実行される。
センサコントローラ20はまず、ディスクリプタ通知シーケンスS1でオペレーティングシステム40に通知したディスクリプタに含まれる1以上の入力レポートIDの中から、検出中の指示体(例えば、図1に示した指示体50又は指示体51)に応じて、一の入力レポートIDを選択する(ステップS30)。そして、選択した入力レポートIDに対応するレポートディスクリプタに従って、選択した入力レポートID及びタッチデータを含むレポートの生成を行う(ステップS31)。
ここで、ステップS30において選択される入力レポートIDは、同じ指示体の検出が継続している最中にも変化し得る。つまり、センサコントローラ20は、ある指示体が検出され始めた当初、その指示体が対応しているデータの種類が分からないので、例えば、可能性のあるすべてのデータに対応するレポートディスクリプタの入力レポートIDを選択する。そして、指示体との通信を通じて指示体の対応しているデータが判明した後には、指示体が対応しているデータのみに対応するレポートディスクリプタの入力レポートIDを選択することができる。このようにすることで、同一の指示体に対しても、必要に応じて柔軟にタッチデータの容量を変更することが可能になる。
図7のシーケンスに戻る。レポートを生成したセンサコントローラ20は、図5に示したインタラプトタイプを格納するフィールドに「リードデータ利用可能(read_data_available)」を示す値(タッチデータが送信可能になったことを示すレジスタ値)を書き込むとともに、データサイズを格納するフィールドに送信対象のレポートのサイズを書き込む(ステップS32)。
続いてセンサコントローラ20は、ホストプロセッサ30に対してインタラプトを送信する(ステップS33)。このステップS33からホストプロセッサ30によるタッチデータ要求(ステップS36)までの処理(ステップS33~S36)は、図3に示したステップS17~S19と同様である。簡単に説明すると、インタラプトを受けたホストプロセッサ30は、インタラプトを検出したことを契機として、センサコントローラ20のレジスタからインタラクトタイプ及びデータサイズを読み出す(ステップS34)。このステップS34の処理の結果として、センサコントローラ20からホストプロセッサ30に対し、インタラクトタイプ及びデータサイズが送信される(ステップS35。サイズ指定ステップ)。これらを受信したホストプロセッサ30は、センサコントローラ20に対してタッチデータの送信を要求する(ステップS36)。
ステップS36でタッチデータの送信の要求を受けたセンサコントローラ20は、ステップS31で生成したレポートの送信を実行する(ステップS37。レポート送信ステップ)。具体的には、ステップS31で生成したレポートを図6に示したタッチデータペイロードT3に格納するとともに、このレポートのサイズを図6に示したタッチデータサイズT2に格納し、さらに、タッチデータを含むレポートを送信するためのタッチデータであることを示す値(TOUCH_DATA_TYPE_HID_REPORT)を図6に示したタッチデータタイプT1に格納することによってタッチデータを生成し、ホストプロセッサ30に対して送信する。
ステップS37でタッチデータを受信したホストプロセッサ30は、タッチデータサイズT2内に格納されたサイズに従ってタッチデータペイロードT3内のデータを取り出し、オペレーティングシステム40に転送する(ステップS38)。これにより、センサコントローラ20からオペレーティングシステム40に対し、入力レポートID及びタッチデータを含むレポートが送信される。
オペレーティングシステム40は、受信した入力レポートIDに対応するレポートディスクリプタを、ディスクリプタ通知シーケンスS1で受信しておいたディスクリプタの中から読み出す。そして、読み出したレポートディスクリプタにより、受信したタッチデータの解釈(Decompose)を行う(ステップS39)。
以上説明したように、本実施の形態によれば、センサコントローラ20は、検出された指示体(又は、指示体が対応しているデータの把握状況)に応じたレポートディスクリプタを使用してレポートを生成できる。つまり、必要に応じてレポートサイズを変更できるので、タッチデータを含むレポートの容量を低減することが可能になる。また、タッチデータとともに入力レポートIDを送信しているので、オペレーティングシステム40は、タッチデータを正しく解釈し、その中に含まれる個々のデータを抽出することが可能になる。
なお、ステップS38では、ホストプロセッサ30は、タッチデータサイズT2内に格納されたサイズに従ってタッチデータペイロードT3内のデータを取り出すこととしたが、ステップS35で受信したデータサイズに従ってタッチデータペイロードT3内のデータを取り出すこととしてもよい。この場合、タッチデータサイズT2を省略できるので、タッチデータを含むレポートの容量をさらに低減することができる。この点は、図3に示したステップS21及び後述する図8に示すステップS50においても同様である。
ここで、センサコントローラ20が行う処理について、2種類のレポートディスクリプタが存在する場合を挙げ、別の観点から再度説明する。
この場合、図3に示したステップS20は、ディスクリプタとして、タッチデータの第1の構造を示す第1のレポートディスクリプタ、及び、第1の構造とは異なるタッチデータの第2の構造を示す第2のレポートディスクリプタを送信するものとなる。ディスクリプタには、これら第1及び第2のレポートディスクリプタの他、第1のレポートディスクリプタに対応する第1のレポートIDと、第2のレポートディスクリプタに対応する第2のレポートIDとが含まれる。
そして、図6に示したステップS37は、センサコントローラ20が、検出された指示体(例えば、アクティブスタイラス)の機能種別に応じて、第1の構造のタッチデータ及び第1のレポートIDを含む第1のレポート、又は、第2の構造のタッチデータ及び21のレポートIDを含む第2のレポートのいずれか一方をホストプロセッサ30に送信する処理となる。
このように、本実施の形態によれば、検出された指示体の機能種別に応じて、2種類のレポートディスクリプタを使い分けることが可能になる。より詳しく説明すると、ホストプロセッサ30に接続されたことを検出し、ホストプロセッサ30に対してレポートディスクリプタを送信する時点(エニュメレーションの時点)では、センサコントローラ20は、将来、電極11の上にスタイラス#1とスタイラス#2とのどちらが来るのか来ないのかわからない。そこでセンサコントローラ20は、今後使用する可能性のある(自己のケイパビリティの全部に対応した)2種類のレポートディスクリプタ(すなわち、スタイラス#1用の第1のレポートディスクリプタとスタイラス#2用の第2のレポートディスクリプタ)の両方を、ホストプロセッサ30に対して送信・通知する。その後、実際にスタイラスが検出されると、センサコントローラ20は、その検出されたスタイラスがスタイラス#1,#2のいずれであるかを判定し、その結果に応じて第1及び第2のレポートディスクリプタのいずれかを選択し、選択した方のレポートIDを含むレポートを送信する。こうすることで、スタイラスの種別に応じて最適なレポートディスクリプタを使用することが可能になる。詳しい説明は省略するが、3種類以上のレポートディスクリプタを使い分ける場合についても同様である。
図8は、シリアル通信システム1によって実行されるフィーチャー取得シーケンスS3を示す図である。このフィーチャー取得シーケンスS3も、図3に示したディスクリプタ通知シーケンスS1の終了後(すなわち、オペレーティングシステム40がセンサコントローラ20からディスクリプタの通知を受けた後)に実行される。フィーチャー取得シーケンスS3は、典型的には、センサコントローラ20からオペレーティングシステム40に通知されたディスクリプタ内に含まれる1以上のフィーチャーレポートIDのそれぞれについて、1度ずつ実行される。
初めに、オペレーティングシステム40により、フィーチャーの内容を取得する必要のあるフィーチャーレポートIDが決定される(ステップS40)。この後の処理は、図3に示したディスクリプタ通知シーケンスS1のステップS13以降の処理と基本的に同様である。そこで以下では、重複する説明は適宜省略しながら、ステップS41以降の各処理について説明する。
オペレーティングシステム40は、決定したフィーチャーレポートIDを含むフィーチャー取得指示(Get Features)をホストプロセッサ30に向けて送信する(ステップS41)。これを受けたホストプロセッサ30は、センサコントローラ20に対し、フィーチャーの取得要求を示すデータを含むライトコマンドを発行する(ステップS42)。具体的には、ライトコマンド内のライトデータタイプW1内にフィーチャー取得指示を示す値(GET_FEATURES_DATA)を格納するとともに、オペレーティングシステム40からのフィーチャー取得指示に含まれていたフィーチャーレポートIDをライトデータペイロードW3内に格納し、さらに、ライトデータペイロードW3のサイズをライトデータサイズW2内に格納することにより、フィーチャーの取得要求を示すデータを含むライトコマンドを発行する。これにより、ホストプロセッサ30からセンサコントローラ20に対し、本来はデータの書き込みに使用されるライトコマンドを用いて、フィーチャー取得指示を伝達することが実現される。
センサコントローラ20は、ステップS42で受信したライトコマンドに対して所定の処理を実行する(ステップS43,S44)。具体的には、まず、ライトデータペイロードW3内に含まれていたフィーチャーレポートIDと、そのフィーチャーレポートIDに対応するフィーチャーとを含むレポートを生成する(ステップS43)。続いてセンサコントローラ20は、図5に示したインタラプトタイプを格納するフィールドに「リードデータ利用可能(read_data_available)」を示す値を書き込むとともに、データサイズを格納するフィールドに送信対象のレポートのサイズを書き込む(ステップS44)。
その後、センサコントローラ20は、ホストプロセッサ30に対してインタラプトを送信する(ステップS45)。このステップS45からホストプロセッサ30によるタッチデータ要求(ステップS48)までの処理(ステップS45~S48)は、図3に示したステップS17~S19と同様である。簡単に説明すると、インタラプトを受けたホストプロセッサ30は、インタラプトを検出したことを契機として、センサコントローラ20のレジスタからインタラクトタイプ及びデータサイズを読み出す(ステップS46)。このステップS34の処理の結果として、センサコントローラ20からホストプロセッサ30に対し、インタラクトタイプ及びデータサイズが送信される(ステップS47)。これらを受信したホストプロセッサ30は、センサコントローラ20に対してタッチデータの送信を要求する(ステップS48)。
ステップS48でタッチデータの送信の要求を受けたセンサコントローラ20は、ステップS43で生成したレポートの送信を実行する(ステップS49)。具体的には、ステップS43で生成したレポートを図6に示したタッチデータペイロードT3に格納するとともに、このレポートのサイズを図6に示したタッチデータサイズT2に格納し、さらに、フィーチャーを含むレポートを送信するためのタッチデータであることを示す値(TOUCH_DATA_TYPE_GET_FEATURES)を図6に示したタッチデータタイプT1に格納することによってタッチデータを生成し、ホストプロセッサ30に対して送信する。
ステップS49でタッチデータを受信したホストプロセッサ30は、タッチデータサイズT2内に格納されたサイズに従ってタッチデータペイロードT3内のデータを取り出し、オペレーティングシステム40に転送する(ステップS50)。これにより、センサコントローラ20からオペレーティングシステム40に対し、フィーチャーレポートID及びフィーチャーを含むレポートが送信される。オペレーティングシステム40は、こうして受信したフィーチャーを、受信したフィーチャーレポートIDに対応するフィーチャーとして取得し、記憶する。
以上説明したように、本実施の形態によれば、ホストプロセッサ30がセンサコントローラ20に対して発行するライトコマンド内にフィーチャーの要求を示すデータを配置し、それを受けたセンサコントローラ20がタッチデータの送信手続きを利用してフィーチャーを送信するので、フィーチャーの通知のために使用できるコマンドを提供しない規格によりセンサコントローラ20とホストプロセッサ30の間の通信を行う場合であっても、センサコントローラ20からオペレーティングシステム40に対してフィーチャーを送信することが可能になる。
図9は、シリアル通信システム1によって実行されるフィーチャー設定シーケンスS4を示す図である。このフィーチャー設定シーケンスS4も、図3に示したディスクリプタ通知シーケンスS1の終了後(すなわち、オペレーティングシステム40がセンサコントローラ20からディスクリプタの通知を受けた後)に実行される。
オペレーティングシステム40はまず、設定する必要のあるフィーチャーを決定し、ディスクリプタ内に含まれる1以上のフィーチャーレポートIDの中からそのフィーチャーに対応するフィーチャーレポートIDを決定する(ステップS60)。そして、決定したフィーチャーレポートID及び設定するフィーチャーの内容を含むフィーチャー設定指示(Set Features)を、ホストプロセッサ30に向けて送信する(ステップS61)。
このフィーチャー設定指示を受けたホストプロセッサ30は、センサコントローラ20に対し、フィーチャーの設定要求を示すデータを含むライトコマンドを発行する(ステップS62)。具体的には、ライトコマンド内のライトデータタイプW1内にフィーチャー設定指示を示す値(SET_FEATURES_DATA)を格納するとともに、オペレーティングシステム40からのフィーチャー設定指示に含まれていたフィーチャーレポートID及び設定するフィーチャーの内容をライトデータペイロードW3内に格納し、さらに、ライトデータペイロードW3のサイズをライトデータサイズW2内に格納することにより、フィーチャーの設定要求を示すデータを含むライトコマンドを発行する。これにより、ホストプロセッサ30からセンサコントローラ20に対し、フィーチャー設定指示を伝達することが実現される。この指示は、要するにフィーチャーのライト指示であるので、本来の使い方でライトコマンドを使用していると言える。
ステップS62でライトコマンドを受信したセンサコントローラ20は、その中に含まれるフィーチャーレポートIDに対応するフィーチャーを、受信したフィーチャーにより書き換える(ステップS63)。これにより、オペレーティングシステム40によるセンサコントローラ20のフィーチャーの設定が完了する。
以上説明したように、本実施の形態によれば、オペレーティングシステム40からセンサコントローラ20のフィーチャーを設定することが可能になる。
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。本発明は、指またはスタイラス(アクティブスタイラスを含む)などの指示体の指示位置を検出するセンサコントローラとホストの間でタッチデータをシリアル通信するデバイスあるいは通信方法に広く適用可能である。
1 シリアル通信システム
10 タッチセンサ
11 電極
20 センサコントローラ
21 端子
22 メモリ
30 ホストプロセッサ
40 オペレーティングシステム
50,51 指示体
100 ディスクリプタ
10 タッチセンサ
11 電極
20 センサコントローラ
21 端子
22 メモリ
30 ホストプロセッサ
40 オペレーティングシステム
50,51 指示体
100 ディスクリプタ
Claims (16)
- アクティブスタイラスの座標を検出し、検出した座標を含むタッチデータをホストにレポートするデバイスと、前記ホストとの間のシリアル通信方法であって、
前記ホストが前記デバイスに対し、ディスクリプタの要求を示すデータを含むライトコマンドを発行するライトコマンド発行ステップと、
前記デバイスが、前記ライトコマンドに対して所定の処理を実行した後、前記ホストに対してインタラプトを送信するインタラプト送信ステップと、
前記ホストが、前記インタラプトを検出したことを契機に、前記デバイスに対してタッチデータの送信を要求するタッチデータ要求ステップと、
前記デバイスが、前記タッチデータの送信の要求に応じて前記ディスクリプタを送信するディスクリプタ応答ステップと、
を含むシリアル通信方法。 - 前記インタラプト送信ステップは、前記ライトコマンド発行ステップと前記ディスクリプタ応答ステップとの間に実行される、
請求項1に記載のシリアル通信方法。 - 前記ディスクリプタ応答ステップは、前記タッチデータのフィールドを利用して前記ディスクリプタを送信する、
請求項1又は2に記載のシリアル通信方法。 - 前記タッチデータ要求ステップは、前記インタラプトを検出したことを契機に、
前記ホストが、前記デバイスのレジスタから、タッチデータが送信可能になったことを示すレジスタ値をリードするステップと、
前記ホストが、タッチデータが送信可能になったことを示す前記レジスタ値がリードされたことに応じて、前記デバイスに対して前記タッチデータの送信を要求するステップと、を含む、
請求項1乃至3のいずれか一項に記載のシリアル通信方法。 - 前記ディスクリプタは、前記タッチデータの構造を示すレポートディスクリプタを含む、
請求項1乃至4のいずれか一項に記載のシリアル通信方法。 - 前記ディスクリプタは、1以上のレポートIDと、該1以上のレポートIDのそれぞれに対応する1以上の前記レポートディスクリプタとを含む、
請求項5に記載のシリアル通信方法。 - 前記ディスクリプタ応答ステップの後、
前記デバイスが、前記アクティブスタイラスを検出し、検出した前記アクティブスタイラスの座標データを含む前記タッチデータ、及び、前記1以上のレポートIDのうちの第1のレポートIDを含む第1のレポートを、前記第1のレポートIDに対応する第1のレポートディスクリプタに従って生成するステップと、
前記デバイスが、前記レポートのサイズを示すデータを前記ホストに送信するサイズ指定ステップと、
前記デバイスが、前記第1のレポートを前記ホストに送信するレポート送信ステップと、
を含む、請求項6に記載のシリアル通信方法。 - 前記ディスクリプタ応答ステップの後、前記サイズ指定ステップの前に、
前記デバイスが、前記ホストに対して再び前記インタラプトを送信するステップ、を含み、
前記サイズ指定ステップは、前記ホストが、前記デバイスのレジスタから、前記レポートのサイズを示すレジスタ値をリードすることによって実行される、
請求項7に記載のシリアル通信方法。 - 前記ディスクリプタ応答ステップは、前記ディスクリプタとして、前記タッチデータの第1の構造を示す第1のレポートディスクリプタ、及び、前記第1の構造とは異なる前記タッチデータの第2の構造を示す第2のレポートディスクリプタを送信するものであり、
前記シリアル通信方法は、
検出された前記アクティブスタイラスの機能種別に応じて、前記デバイスが、前記第1の構造のタッチデータを含む第1のレポート又は前記第2の構造のタッチデータを含む第2のレポートのいずれか一方を前記ホストに送信するレポート送信ステップ、をさらに含む、
請求項1に記載のシリアル通信方法。 - 前記ディスクリプタは、前記第1のレポートディスクリプタに対応付けて第1のレポートIDを含むとともに、前記第2のレポートディスクリプタに対応付けて第2のレポートIDを含み、
前記第1のレポートは、前記第1のレポートIDを含み、
前記第2のレポートは、前記第2のレポートIDを含む、
請求項9に記載のシリアル通信方法。 - 前記ディスクリプタは、前記デバイスのフィーチャーの形式を示すデータを含む、
請求項1乃至10のいずれか一項に記載のシリアル通信方法。 - 前記シリアル通信方法は、インタラプトを契機にタッチデータを送信する通信方法である、
請求項1乃至11のいずれか一項に記載のシリアル通信方法。 - アクティブスタイラスの座標を検出し、検出した座標を含むタッチデータをホストにレポートするセンサコントローラであって、
複数の電極に接続された端子と、
メモリと、
前記メモリに記憶されたプログラムに従い、
ディスクリプタの要求を示すデータを含むライトコマンドを前記ホストから受信するライトコマンド受信ステップと、
前記ライトコマンドの受信に応じて、前記ホストに対してインタラプトを送信するインタラプト送信ステップと、
前記インタラプトを送信した後、タッチデータ送信要求を前記ホストから受信するステップと、
前記タッチデータ送信要求の受信に応じて、前記ディスクリプタを前記ホストに対して送信するディスクリプタ応答ステップと、
前記ディスクリプタに従って生成された前記タッチデータを含むレポートを前記ホストに対して送信するレポート送信ステップと、
を実行するプロセッサと、
を含むセンサコントローラ。 - 前記レポート送信ステップは、前記レポートのサイズを示すデータを前記ホストに送信するサイズ指定ステップを含む、
請求項13に記載のセンサコントローラ。 - 前記ディスクリプタ応答ステップは、前記ディスクリプタとして、前記タッチデータの第1の構造を示す第1のレポートディスクリプタ、及び、前記第1の構造とは異なる前記タッチデータの第2の構造を示す第2のレポートディスクリプタを送信するものであり、
前記レポート送信ステップは、検出された前記アクティブスタイラスの機能種別に応じて、前記第1の構造のタッチデータを含む第1のレポート又は前記第2の構造のタッチデータを含む第2のレポートのいずれか一方を前記ホストに送信する、
請求項13又は14に記載のセンサコントローラ。 - 前記ディスクリプタは、前記第1のレポートディスクリプタに対応付けて第1のレポートIDを含むとともに、前記第2のレポートディスクリプタに対応付けて第2のレポートIDを含み、
前記第1のレポートは、前記第1のレポートIDを含み、
前記第2のレポートは、前記第2のレポートIDを含む、
請求項15に記載のセンサコントローラ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017539680A JP6216909B1 (ja) | 2016-06-28 | 2017-06-28 | シリアル通信方法及びセンサコントローラ |
EP17820195.0A EP3477440A4 (en) | 2016-06-28 | 2017-06-28 | SERIAL COMMUNICATION METHOD AND SENSOR CONTROLLER |
US16/224,402 US10691254B2 (en) | 2016-06-28 | 2018-12-18 | Serial communication method and sensor controller |
US16/908,334 US11327601B2 (en) | 2016-06-28 | 2020-06-22 | Serial communication method and sensor controller |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662355709P | 2016-06-28 | 2016-06-28 | |
US62/355709 | 2016-06-28 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/224,402 Continuation US10691254B2 (en) | 2016-06-28 | 2018-12-18 | Serial communication method and sensor controller |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018003841A1 true WO2018003841A1 (ja) | 2018-01-04 |
Family
ID=60785386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/023715 WO2018003841A1 (ja) | 2016-06-28 | 2017-06-28 | シリアル通信方法及びセンサコントローラ |
Country Status (3)
Country | Link |
---|---|
US (1) | US10691254B2 (ja) |
EP (1) | EP3477440A4 (ja) |
WO (1) | WO2018003841A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102346206B1 (ko) | 2014-01-22 | 2022-01-03 | 가부시키가이샤 와코무 | 위치 지시기, 위치 검출 장치, 위치 검출 회로 및 위치 검출 방법 |
KR20210137710A (ko) * | 2020-05-11 | 2021-11-18 | 삼성전자주식회사 | 빠른 터치 반응성을 가지는 터치 및 디스플레이 제어 장치, 이를 포함하는 디스플레이 장치 및 이의 구동 방법 |
MX2023015201A (es) * | 2021-10-22 | 2024-01-18 | Lutron Tech Co Llc | Metodo para la comunicacion entre componentes de un dispositivo electrico. |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008210219A (ja) * | 2007-02-27 | 2008-09-11 | Hagiwara Sys-Com:Kk | 記憶装置着脱式入力装置 |
JP2014534522A (ja) * | 2011-10-26 | 2014-12-18 | インテル・コーポレーション | マルチタッチインターフェース方式 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956020A (en) * | 1995-07-27 | 1999-09-21 | Microtouch Systems, Inc. | Touchscreen controller with pen and/or finger inputs |
US9329703B2 (en) * | 2011-06-22 | 2016-05-03 | Apple Inc. | Intelligent stylus |
US8884906B2 (en) * | 2012-12-21 | 2014-11-11 | Intel Corporation | Offloading touch processing to a graphics processor |
US9703946B2 (en) * | 2014-03-31 | 2017-07-11 | Stmicroelectronics Asia Pacific Pte Ltd | Secure pairing method, circuit and system for an intelligent input device and an electronic device |
US20160170548A1 (en) * | 2014-12-16 | 2016-06-16 | Nobuyuki Suzuki | Apparatus, system and method for communication of touch sensor information |
KR102649925B1 (ko) * | 2015-01-19 | 2024-03-22 | 가부시키가이샤 와코무 | 위치 지시기 |
-
2017
- 2017-06-28 WO PCT/JP2017/023715 patent/WO2018003841A1/ja unknown
- 2017-06-28 EP EP17820195.0A patent/EP3477440A4/en not_active Withdrawn
-
2018
- 2018-12-18 US US16/224,402 patent/US10691254B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008210219A (ja) * | 2007-02-27 | 2008-09-11 | Hagiwara Sys-Com:Kk | 記憶装置着脱式入力装置 |
JP2014534522A (ja) * | 2011-10-26 | 2014-12-18 | インテル・コーポレーション | マルチタッチインターフェース方式 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3477440A4 * |
Also Published As
Publication number | Publication date |
---|---|
EP3477440A1 (en) | 2019-05-01 |
US10691254B2 (en) | 2020-06-23 |
US20190121489A1 (en) | 2019-04-25 |
EP3477440A4 (en) | 2020-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12079405B2 (en) | Active stylus communication with a digitizer | |
US11449173B2 (en) | Touch controller and pen input system | |
WO2018003841A1 (ja) | シリアル通信方法及びセンサコントローラ | |
JP7371174B2 (ja) | データ通信方法 | |
EP3026530B1 (en) | Keyboard-video-mouse switch and operating method thereof | |
JP2023033457A (ja) | 位置検出装置とペアリングするために位置指示器により実行される方法、位置指示器とペアリングするために位置検出装置により実行される方法、位置指示器、位置検出装置 | |
JP7547595B2 (ja) | 情報入力装置、方法、及びプログラム | |
WO2019174307A1 (zh) | 数据传输方法、装置、终端以及存储介质 | |
JP6216909B1 (ja) | シリアル通信方法及びセンサコントローラ | |
US20060184708A1 (en) | Host controller device and method | |
US11630532B2 (en) | Touch sensitive processing apparatus and method thereof and touch system | |
CN105279110B (zh) | 一种usb设备识别主机系统的方法及usb设备 | |
CN118786408A (zh) | 基于触控笔的使用方法和装置 | |
KR20200079081A (ko) | 콘텐트 공유 방법 및 그 전자 장치 | |
CN111130678B (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
KR101260313B1 (ko) | 전자장치 및 그 데이터 송수신방법과, 슬레이브 장치 및복수의 장치 간의 통신방법 | |
KR101376603B1 (ko) | 컴퓨터에서 어플리케이션을 호출할 수 있는 컴퓨터용 키보드 장치 및 어플리케이션 호출 방법 | |
CN112181753A (zh) | 调试方法、系统及可读存储介质 | |
KR20200039053A (ko) | 클라우드 서비스를 제공하는 전자 장치 및 그 동작 방법 | |
US20240330208A1 (en) | Method and system for switching input device | |
JP2012213859A (ja) | プリンタ、プログラム、およびプリンタシステム | |
WO2023281762A1 (ja) | アクティブペン | |
US20210168245A1 (en) | Information processing apparatus, information processing system, and information processing method | |
US20140160006A1 (en) | Projection system and method for controlling the same | |
JP5569189B2 (ja) | 携帯端末と通信可能なコンピュータを動作させるプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2017539680 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17820195 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2017820195 Country of ref document: EP Effective date: 20190128 |