Embodiment
Below in conjunction with the drawings and specific embodiments, the present invention is further elaborated.
Intelligent terminal based on audio interface and the data transmission method between control handle, the data transmission system that the intelligent terminal based on audio interface, game control handle and audio signal wire form realizes.
The structured flowchart of data transmission system as shown in Figure 1, comprise the intelligent terminal and the control handle for assisting intelligent terminal games to complete that are provided with audio interface, between the audio interface of intelligent terminal and control handle, by audio signal wire, carry out transfer of data.
Control handle comprises shell, is provided with master control borad in shell, is provided with the audio signal line jack and the one group of handle button that are connected with master control borad on shell; On master control borad, be provided with push button signalling processing module, main control module, power module and Difference Manchester change-over circuit; Handle button is connected with the input of push button signalling processing module by wire, the output of push button signalling processing module connects main control module, main control module is communicated by letter mutually with Difference Manchester change-over circuit, and power module is connected with push button signalling processing module, main control module and Difference Manchester change-over circuit respectively.
Power module possesses charging/discharging function, gives whole circuit supply, and power module is selected rechargeable lithium battary in the present embodiment, and the circuit diagram of power module as shown in Figure 5.
The action command that push button signalling processing module is sent for the treatment of handle button, is transferred to main control module after changing the key assignments signal that main control module can identify into.
Difference Manchester change-over circuit is converted to according to particular serial communications protocol the Difference Manchester analog signal that audio signal wire can transmit for the digitlization serial signal that main control module is sent; And the Difference Manchester analog signal receiving from intelligent terminal is converted to the digitlization serial signal that main control module can be identified.The circuit diagram of Difference Manchester change-over circuit as shown in Figure 4.
Main control module carries out the digitized processing of encoding and decoding to two-way signaling: the key assignments information that 1) main control module imports push button signalling processing module into is through key assignments coding, by particular serial communications protocol, be packaged into communication data packet, again by IO mouth output packet, the serial data of IO output is encoded to Difference Manchester analog signal through Difference Manchester change-over circuit, is sent to passing through on audio signal wire of connection intelligent terminal audio interface; 2) main control module, by the analog signal receiving through the decoding of Difference Manchester change-over circuit, is decoded into digitized protocol package by the rule of Differential Manchester Encoding, then obtains by protocol-decoding the effective communication data signal that intelligent terminal sends.In the present embodiment, main control module is selected the microcontroller LPC1111 based on ARM Cortex-M0 of low-power consumption, and the circuit diagram of main control module as shown in Figure 3.
Described particular serial communications protocol normative reference synchronous serial communication agreement, adopts Differential Manchester Encoding, and in communication signal, one of every transmission has individual saltus step at least, to adapt to, can only transmit the voice band line transmitting data of interchange; And in the middle of adopting, the saltus step in the moment represents 0 or 1 of transmission.
For example: set positive transition and represent 1, negative saltus step represents 0, and when first saltus step is positive transition, difference is carried out in saltus step afterwards and previous saltus step so, by the result of comparing, determine it is 1 or 0; If present bit saltus step direction is identical with the saltus step direction of last position, is expressed as 0, otherwise is expressed as 1.Adopt Differential Manchester Encoding, the synchronous tolerance of communicating pair is half bit time, and the data that receive in synchronization discrepancy half bit time are unaffected.
According to particular serial communications protocol, before sending data, should make audio signal wire in idle condition, prompting recipient carries out data receiver and prepares; The idle preparation of bus can adopt more than 80 of continuous transmission to represent.
While sending data, adopt frame beginning flag to carry out synchronously; Frame is initial can be from any one, and the frame beginning flag of described serial communication adopts and sign the same in standard serial port communication synchronization, sends continuously 61, sends character 0x7e and represents to have sent frame beginning flag.
When transmission data complete, adopt frame end mark to represent that data send end, and make audio signal wire in idle condition.Frame end mark adopts continuously and sends 71, sends character 0x7f and represents to have sent frame end.
Adopting particular serial communications protocol to carry out in the process of data transmission, the unit that audio signal circuit is uploaded defeated data is position, while sending byte, first sends highest order, finally sends lowest order, while sending data, between byte, there is no interval.
Yet when sending data, be likely also continuous 61 in data, this is identical with frame beginning flag and frame end mark, can cause communication ambiguity.For disambiguation, in particular serial communications protocol, stipulate, in sending the process of data, after sending 51 continuously, must send one invalid 0, more then send other data; And receive after continuous 51, need to delete then receive 0.These continuous 51 not one fix in a byte, for example, two byte 0x0f and 0xc0, each byte does not have continuous 51, but first sends while sending 0xc0 after 0x0f, has just had continuous 51, need to dynamically insert, delete one 0.
It is as follows that audio signal circuit is uploaded defeated data format:
Send byte |
0 |
1 |
2~(n-3) |
n-2 |
n-1 |
n |
Implication |
Initial mark |
0x04 |
Data |
CRC1 |
CRC2 |
End mark |
The data format of audio signal wire transmission is used CRC1 and CRC2 to carry out verification.The CRC algorithm adopting is as follows:
const unsigned short GusFcsTab[256] = {
0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78,
};
/*******************************************************************
** Function name: crc16Cal
* Descriptions: calculate crc16, expression formula is x^16+x^12+x^5+x^0
* input parameters:usFcs: initial crcr value, one's complement representation, is generally 0xffff.
* pucData: data
* iLen: data length
** output parameters: none
* Returned value: result of calculation, one's complement representation
***************************************************************/
unsigned short crc16Cal(unsigned short usFcs,const unsigned char *pucData,int iLen)
{
while (iLen--) {
usFcs=(unsigned short)((usFcs >>8)^GusFcsTab[(usFcs^*pucData++) & 0xff]);
}
return (usFcs);
}
The code that calculates CRC1 and CRC2 is as follows:
usCrc16 = crc16Cal(0xffff, pucData, uiLen);
CRC1 = usCrc16 / 0x100;
CRC2 = usCrc16 % 0x100。
Intelligent terminal adopts three threads to realize the reception of voice data, send and carry out, and three threads comprise watcher thread, main thread and business procedure, and its flow chart as shown in Figure 2, specifically comprises:
First, in main thread, set up audible communication receiving or sending thread, for coordinating reception and the transmission of voice data; Secondly, whether the audio interface that creates a monitoring intelligent terminal has the thread of data input, for to the audio signal collecting from audio interface, carries out Difference Manchester decoding, and the data of decoding output receive the buffer memory of data; When watcher thread is received after valid data frame, by triggering the call back function in external business program, notice external business program is obtained the data of importing into, and carries out; Meanwhile, main thread circular wait data deposit event in, when external business program is when having data to send, when the data that will send are put into shared transmission data buffer, have data to deposit event in and occur; Main thread is got the data that will send, and carries out Differential Manchester Encoding, then calls audio frequency control interface function and the Differential Manchester Encoding that deposits event in is sent to audio interface to control handle, export.
The data transmission method of the present embodiment is: when user presses game while controlling the handle button on shell, the push button signalling processing module of master control borad receives action command, and is converted into the key assignments signal that main control module can identify and is transferred to main control module; Main control module is by the key assignments signal the receiving processing of encoding, key assignments signal after coding being processed according to above-mentioned particular serial communications protocol is packaged into protocol data frame and is transferred to Difference Manchester change-over circuit, Difference Manchester change-over circuit converts Frame to Difference Manchester analog signal, by audio signal wire, send to intelligent terminal, for intelligent terminal decoding, read.Intelligent terminal converts the Difference Manchester analog signal receiving to digital signal by decoding program, finally obtains the key assignments data message of game paddle; The application software designing by intelligent terminal is again connected with game interface, realizes game paddle controlling game.
When intelligent terminal need to send instruction to control handle, first to the transmission event the receiving processing of encoding, be converted to Difference Manchester analog signal, through audio signal wire, be transferred to the Difference Manchester change-over circuit of control handle, Difference Manchester change-over circuit is converted to by the Difference Manchester analog signal of reception the Frame that main control module can be identified, and main control module receives after the Frame that intelligent terminal sends and decodes and obtain the effective instruction of intelligent terminal.
When the present invention not only can be applied on smart mobile phone, but also can be applied in panel computer, box, intelligent television etc., all have on the intelligent terminal of audio interface, by audio interface, realize the transfer of data between intelligent terminal and control handle.