Modem Code for Group 3 FAX

Software Overview 

ILLICO is offering assembly language and 'C' language Digital Signal Processing software modules that implement the CCITT modem standards for Group 3 FAX: V.21, V.27ter, V.29, and V.17. These software modems can replace conventional FAX modem chip sets in applications where a general purpose DSP is available on a dedicated or shared basis. Digital sample interpolation permits direct "all digital" interface with 64 Kb/s PCM data streams and avoids conversion to an analog signal. For analog environments, a simple Mu or A-law codec provides the analog interface. Addressing of variables is organized for easy implementation of multiple independent modems in one processor. 

The target applications for these software modems are FAX relay, store-and-forward FAX servers, and multi-channel FAX cards. All available code was created by ILLICO's staff and can be customized to support special interfaces and special signal processing requirements. 

The 'C' language version is implemented with fixed-point math. Assembly language packages are available for the Texas Instruments fixed and floating point families, the Motorola 5600x/563x  fixed point processors, and the NEC770xx fixed point processor.
 
Features and Benefits: 

  • Modem code callable with C-language or assembly language conventions. 
  • HDLC coding for both V.21 and image frames (option). 
  • Receiver interpolation to support fixed sampling rates. 
  • Detection of V.21 signals in QAM receiver mode. 
  • Transmit speed tracking by sample interpolation (option). 
  • Zero overhead context switching for multiple modems in one processor. 
  • Detection of start and end of echo protection tone. 
  • Block oriented I/O to facilitate processor sharing with other applications. 
  • Diagnostic mean-square-error calculation and eye pattern support. 
  • Upgrade to V.32bis capability with 3.5K word software plug-in (option). 
  • Forty page Interface Specification to aid installation and application creation. 
  • Available in fixed-point 'C' or in 'hand generated' assembly language versions.

1. ANSI 'C' FAX modem

This ANSI 'C' compliant FAX modem software uses only fixed-point math and requires no external custom math library. The source code is immediately executable on any platform supported with a 'C' compiler. The following resource usage figures apply to the T.I. TMS320C54x family and assume execution from internal memory. For this example, compilation was performed on the Code Composer Studio 2.x development platform.

---- Data Ram per channel----
450 words if channel is V.29 receiver
800 words if channel is V.17 receiver
---- Program memory----
13  K words  total for V.21, V.27ter, V.29.
20  K words  total for V.21, V.27ter, V.29, and V.17.
---- Per channel MIPs loading ----
20 MIPs maximum for V.29 receiver.
30 MIPs maximum for V.17 receiver.

2. Texas Instruments TMS320C54x Processor Family (assembly language). 

This software is optimized for the C54x resources and is ideal for FAX handling on compressed voice systems. 

---- Data Ram per channel----
342 words  (data variable block and equalizer taps).
328 words  (additional for V.17).
---- Program memory----
5.5 K  total for V.21, V.27ter, V.29.
8.5 K  total for V.21, V.27ter, V.29, and V.17.
---- Per channel MIPs loading ----
5.3 MIPs maximum for V.29/V.27ter/V.21 receivers.
8.6 MIPs for V.17 receiver using 6 pages of internal data RAM
9.5 MIPs for V.17 receiver using 3 pages of internal data RAM


3. Texas Instruments TMS320C55x Processor Family (assembly language). 

FAX modem software for the new TMS320C5510 processor is written entirely in C55x assembly language to take full advantage of the processor's features. This software supports either 24 or 30 channels on a single processor.

---- Data Ram per channel----
512 words  if channel is V.29 receiver
768 words  if channel is V.17 receiver
---- Program memory----
5.5 K words  total for V.21, V.27ter, V.29.
8.7 K words  total for V.21, V.27ter, V.29, and V.17.
---- Per channel MIPs loading ----
3.5 MIPs maximum for V.29/V.27ter/V.21 receivers.
5.7 MIPs maximum for V.17 receivers.

				

			

4. Texas Instruments TMS320C5x Processors (assembly language). 

Versions of this FAX modem software are available for the TMS320C5x family and for the TMS320C25/2xx devices.

---- Data Ram per channel----
256 words internal (data variable block).
84  words internal or external (equalizer tap block).
328 words external (V.17 only; trellis decoder block).
---- Program memory----
5 K total for V.21, V.27ter, V.29.
8 K total for V.21, V.27ter, V.29, and V.17. 
---- Per channel MIPs loading ----
5.3 MIPs maximum for  V.29/V.27ter/V.21 receivers.
9.5 MIPs for V.17 receiver.

			

5. Texas Instruments Floating Point Processor (assembly language). 

ILLICO FAX modem software for the TMS320C3x/4x  family uses indirect variable addressing for fast context switching in multi-channel environments. All transmitters and V.21 receiver execution times are highly optimized to support FAX broadcast applications. 

---- Data Ram per channel----
256 words internal (data variable block).
84  words internal (equalizer tap block).
200 words external (V.17 only; trellis decoder block).
----  Program memory----
5 K total for V.21, V.27ter, V.29.
8 K total for V.21, V.27ter, V.29, and V.17.
----  Per channel MIPs loading ----
4.0 MIPs maximum for  V.29/V.27ter/V.21 receivers.
6.5 MIPs for V.17 receiver.

			

6 . Texas Instruments TMS320C6000 Family (assembly language). 

V.29, V.27ter, and V.21 FAX modem software is available. The software is hand-crafted assembly code optimized for maximum channel count.

---- Per channel data RAM ----
512 Half Words (2 bytes/half word)  
---- Program memory----
14.0 K  bytes total for V.21, V.27ter, V.29.
---- Per channel MCPs loading ----
2.1 MCPs maximum for V.29 receiver

Processing loading example: For a device rated at 200 Million Instruction Cycles per Second (MCPs), 24 V.29 receiver channels would claim about 25% of the processing power.

7. Motorola 24 bit Fixed Point Processor: 5600x/563xx.  (assembly language)

All software is written in DSP56002 assembly language and is qualified for operation on the 5630x family. 

---- Internal Data Ram ----
192 words saved variable context.
128 words scratchpad (not saved as context).
----  External Program memory ----
5 K total for V.21, V.27ter, V.29.
9 K total for V.21, V.27ter, V.29, and V.17.
----  External Data Memory ----
640 locations per channel.
---- Internal Program Memory RAM ----
512 words for full speed operation.
---- 56002 per channel MIPs loading ----
3.5 MIPs maximum for  V.29/V.27ter/V.21 receivers.
6.8 MIPs for V.17 receivers. 

			

8. NEC770xx Fixed Point Processor Family (assembly language). 

This software is optimized for NEC770xx internal resources.

---- Data Ram per channel----
342 words  (data variable block and equalizer taps).
328 words  (V.17 only; trellis decoder block).
---- Program memory----
5.9 K  total for V.21, V.27ter, V.29.
8.9 K  total for V.21, V.27ter, V.29, and V.17.
---- Per channel MIPs loading ----
5.3 MIPs maximum for V.29/V.27ter/V.21 receivers.
9.2 MIPs for V.17 receiver.
 
 

* * * 

 
 

Home | Contact us | About us | One Page Summary | Custom Projects

 
 

Fax Modem | Fax / Data Relay | V.32bis | V.22bis | Multi-Tone | Cellular Text Modem | HDLC | V.21/V.23

 
 

ILLICO Copyright 1995-2009. All Rights Reserved.

ILLICO : 765-82 San Antonio Avenue - Palo Alto, California 94303 USA
Phone: (650) 493-5678