FreeCalypso > hg > freecalypso-citrine
annotate doc/TCH-special-feature @ 49:908742e46a7f default tip
README: FC Selenite updates
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 14 Apr 2020 21:55:22 +0000 | 
| parents | 3362a76ab432 | 
| children | 
| rev | line source | 
|---|---|
| 28 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 FreeCalypso Citrine firmware implements an optional special feature (needs to be | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 explicitly enabled at compile time) which we call TCH rerouting. When this | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 feature is enabled, it applies the following special handling to GSM voice | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 traffic channels (TCH): | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 * All downlink TCH bits passing from the channel decoder to the vocoder block | 
| 36 
3362a76ab432
doc/TCH-special-feature: outdated info removed, added referral to
 Mychaela Falconia <falcon@freecalypso.org> parents: 
28diff
changeset | 7 (260 bits every 20 ms; only FR and EFR codecs are supported) can be non- | 
| 
3362a76ab432
doc/TCH-special-feature: outdated info removed, added referral to
 Mychaela Falconia <falcon@freecalypso.org> parents: 
28diff
changeset | 8 invasively intercepted and forwarded to the external host connected to the | 
| 
3362a76ab432
doc/TCH-special-feature: outdated info removed, added referral to
 Mychaela Falconia <falcon@freecalypso.org> parents: 
28diff
changeset | 9 RVTMUX serial interface; | 
| 28 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 * Using the same serial interface, the external host can supply substitute | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 uplink TCH bits which will be transmitted in the place of the built-in | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 vocoder output, i.e., the latter can be effectively suppressed. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 In order to use this feature, you need to compile our firmware in the voice+SMS | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 pseudo-modem configuration, i.e., the configuration in which the fw expects to | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 be controlled via AT commands wrapped in the RVTMUX binary packet serial | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 interface. You can use a target GSM device that has just one accessible serial | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 port (Mot C1xx and Pirelli DP-L10) or one that has two Calypso UARTs (Openmoko | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 GTA02 or our future FCDEV3B), but in the latter case you will be using only one | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 UART - whichever one you have configured to be RVTMUX. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 Whatever system you are building that will act as the source and sink for TCH | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 bits will need to interface to the FreeCalypso GSM device via a serial port in | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 the RVTMUX binary packet format. Your system will need to send RVTMUX packets | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 with AT commands inside them in order to command the FC GSM device to register | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 with the network and to dial and/or answer calls, and you will need to send | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 RVTMUX packets of a different kind in order to supply the uplink TCH bits | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 during calls. In the other direction, your system will receive responses to | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 the AT commands you send, asynchronous notifications of incoming calls and SMS, | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 downlink TCH bits and various debug trace output from our FreeCalypso firmware. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 The last part (debug trace output) can be simply ignored and discarded if you | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 wish, but we strongly recommend that you provide a way to view and/or log it | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 for debugging purposes. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 Please see the RVTMUX document in the FreeCalypso host tools package for general | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 background information regarding the RVTMUX binary packet interface; this | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 document should be considered required reading for anyone interested in working | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 with the TCH rerouting special feature. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 All packets transferred over the RVTMUX interface begin and end with 0x02. If | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 a payload byte within a packet equals 0x02 or 0x10, it needs to be prepended | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 with 0x10 as a transparency escape; all other payload bytes are sent literally. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 The first byte within each RVTMUX packet after the opening 0x02 is the packet | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 type; the two packet types you will need to handle (both generate and receive) | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 are 0x1A for AT commands and 0x1C for TCH configuration commands. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 To send an AT command to the FreeCalypso GSM device, prepend the 0x1A packet | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 type in front of the "AT" characters, wrap the packet with 0x02 bytes on both | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 ends, and send it to the modem. Responses to AT commands and asynchronous | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 notification messages such as "RING" for incoming calls will be sent to the | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 host as RVTMUX packets also beginning with the 0x1A packet type; they will be | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 interspersed among other packet types, mostly debug trace output. Your system | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 will need to receive the RVTMUX serial byte stream continuously, parsing the | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 packet structure and looking at the type of each packet (the first byte after | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 the opening 0x02) in order to detect if the modem has sent something you may be | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 interested in. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 If you wish to receive a copy of all downlink TCH bits on the serial channel, | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 you will need to send the following 5-byte command packet to the modem: | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 0x02: opening flag | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 0x1C: RVTMUX packet type for TCH | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 0x11: TCH_CONFIG_REQ command opcode | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 0x01: payload byte indicating that the "forward downlink" state should be | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 set to enabled | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 0x02: closing flag | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 The modem will respond with a TCH_CONFIG_CONF confirmation message (opcode | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 0x12), and then during all voice calls your external host will receive the | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 following packet every 20 ms: | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 0x02: opening flag | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 0x1C: RVTMUX packet type for TCH | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 0x15: TCH_DLBITS_IND opcode | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 - 40 (decimal) bytes of payload - | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 0x02: closing flag | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 The 40 bytes of payload sent in every TCH_DLBITS_IND packet directly correspond | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 to the 20 16-bit words provided by the Calypso DSP in its a_dd_0 buffer. The | 
| 36 
3362a76ab432
doc/TCH-special-feature: outdated info removed, added referral to
 Mychaela Falconia <falcon@freecalypso.org> parents: 
28diff
changeset | 81 first 3 words (6 bytes) contain the DSP's own status information (not fully | 
| 28 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 understood by us yet, but we let you see what the DSP tells us without redacting | 
| 36 
3362a76ab432
doc/TCH-special-feature: outdated info removed, added referral to
 Mychaela Falconia <falcon@freecalypso.org> parents: 
28diff
changeset | 83 anything out), and the remaining 17 words (34 bytes) contain the TCH bits | 
| 
3362a76ab432
doc/TCH-special-feature: outdated info removed, added referral to
 Mychaela Falconia <falcon@freecalypso.org> parents: 
28diff
changeset | 84 received from the GSM network in the GSM 05.03 bit order - see TCH-bit-access | 
| 
3362a76ab432
doc/TCH-special-feature: outdated info removed, added referral to
 Mychaela Falconia <falcon@freecalypso.org> parents: 
28diff
changeset | 85 write-up in the FreeCalypso host tools package for more information. Each DSP | 
| 28 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 API word is sent in the big-endian byte order, i.e., the most significant byte | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 followed by the least significant byte. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 If you wish to send your own TCH uplink bits, replacing the output of the | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 built-in vocoder with your own alternate uplink data, you will need to send | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 your uplink TCH bits to the modem in packets of the following format: | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 0x02: opening flag | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 0x1C: RVTMUX packet type for TCH | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 0x13: TCH_ULBITS_REQ opcode | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 - 33 or 34 (decimal) bytes of payload - | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 0x02: closing flag | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 Sending 260 bits requires only 33 bytes, but the DSP operates in terms of | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 16-bit words, hence 17 of those words are used. The least significant byte of | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 the last word (i.e., the very last byte with our big-endian transmission order) | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 is not expected to be used, but if you send 34 bytes rather than 33, you will | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 have control over every bit going into the DSP API RAM in this case. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 There is a queue inside the firmware in which these TCH uplink data blocks are | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 stored; this queue is filled by the serial packet receiving handler and drained | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 by the L1S (synchronous) code that executes at the right times in the GSM TDMA | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 multiplex when uplink TCH transmission is expected. Up to 4 blocks can be | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 queued up; as each queued-up block is transmitted on the air (more precisely, | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 as it is passed to the DSP for channel encoding and transmission), a | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 TCH_ULBITS_CONF short packet (consisting of just the opcode and nothing more) | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 is sent to the host. These confirmation packets can be used to pace the sending | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 of further TCH_ULBITS_REQs. | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 Testing | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 ======= | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 | 
| 36 
3362a76ab432
doc/TCH-special-feature: outdated info removed, added referral to
 Mychaela Falconia <falcon@freecalypso.org> parents: 
28diff
changeset | 118 See TCH-bit-access write-up in the freecalypso-tools Hg repository. | 
| 28 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 Host side reference implementation | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 ================================== | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 If you are going to implement your own system for talking to FreeCalypso GSM | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 pseudo-modems via the RVTMUX binary packet interface, we strongly recommend | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 that you use our rvinterf and fc-shell Unix/Linux host utilities as your | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 starting point. You can find their source code in the freecalypso-tools Hg | 
| 
cb00b90edaff
documentation write-ups imported from freecalypso-sw and updated for Citrine
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 repository on Bitbucket. | 
