Académique Documents
Professionnel Documents
Culture Documents
India, as a country, has been very lucky with regard to the introduction of
telecom products. The first telegraph link was commissioned between
Calcutta and Diamond Harbor in the year 1852, which was invented in 1837.
First telephone exchange came up in 1882 following invention in 1876. First
wireless communication equipment were introduced Indian Army in the year
1909 with the discovery of Radio waves in 1887 by Hertz and demonstration
of first wireless link in the year 1905 by Marconi and Vacuum tube in 1906.
Setting up their radio station for the broadcast and other telecom facilities
almost immediately after their commercial introduction abroad followed this.
Each unit has its own R&D Division to bring out new products to the
production lines. Central Research Laboratory (CRL) at Bangalore and
Ghaziabad works as independent agency to undertake contemporary design
work on state-of-art and futuristic technologies. About 70% of BEL's
products are of in-house design. BEL was among the first Indian companies
to manufacture computer parts and peripherals under arrangement with
International Computers India Limited (ICIL) in 1970s.Most of its software
requirements are in real time. EMCCA, software intensive naval ships control
and command system is probably one of the first projects of its nature in
India and Asia.
PRODUCTION UNITS
BEL has production units established at different parts of the country.
Bangalore (Karnataka):
BEL started its production activities in Bangalore in 1954. Since then
this unit has grown to specialize in communication and Radar/Sonar Systems
for the Army, Navy & the Air Force. As an aid to electorate the unit has
developed Electronic Voting Machines that are produced at its Mass
Manufacturing Facility (MMF).
Ghaziabad (U.P.):
The second largest unit at Ghaziabad was set up in 1974 to manufacture
special types of RADARS for the Air Defense Ground Environment Systems
(Plan ADGES). The units production range includes Static and mobile RADARS,
professional grade Antennae and microwave components.
Pune (Maharashtra):
This unit was started in 1979 to manufacture Image Converter Tubes. At
present the unit manufactures Laser Subunit for tank fire control systems and
Laser Range Finders for the Defense Services.
Machilipatnam (Andhra Pradesh):
The Andhra Scientific Co. at Machilipatnam, manufacturing
optics/Optoelectronic equipments was integrated with BEL in 1983. The unit
has successfully diversified to making the Surgical Microscope with zoom
facilities.
Chennai (Tamil Nadu):
In 1985, BEL started another unit at Chennai to facilitate manufacture
of Gun Control Equipment required for the integration and installation in the
Vijayantra tanks. It is now manufacturing Stabilizer Systems for T72 tanks.
Taloja (Maharashtra):
This unit is fully mobilized to manufacture 20’’ glass bulbs.
Hyderabad (Andhra Pradesh):
This unit was established in 1986 to coordinate with major defense R&D
Laboratories located in Hyderabad.
BEL, GHAZIABAD UNIT
In the mid 60's, while reviewing the Defense requirement of the country, the
government focused its attention to strengthen the air Defense system, in
particular the ground electronics system support, for the air Defense
network.
At about the same time, Public attention was focused on the report of
the Bhabha Committee on the development and production of electronic
equipment. The ministry of Defense immediately realized the need to
establish production capacity for meeting the electronic equipment
requirements for its Plan ADGES.
In December 1970 the Govt. sanctioned an additional unit for BEL. In
1971, the industrial license for manufacture of radar and microwave
equipment was obtained; 1972 saw the commencement of construction
activities and production was launched in 1974.
Over the years, the Unit has successfully manufactured a wide variety
of equipment needed for Defense and civil use. It has also installed and
commissioned a large number of systems on turnkey basis the operations at
BEL Ghaziabad are headed by General Manager with Additional / Deputy
General Manager heading various divisions - Design & Engineering Divisions,
Development and Engineering-R, Development and Engineering-C and
Development and Engineering-Antenna.
ROTATION
THE FIRST TWO WEEKS IN THE COMPANY WAS THE PERIOD OF ORIENTATION.
IN THIS PERIOD WE WERE TOLD ABOUT VARIOUS DEPARTMENT OF THE
COMPANY.
Types of PCB’s:
Single Sided: Having circuit pattern only on one side of the board.
Double Sided: Having circuit pattern on both sides of the board
The fabrication inspection checks all the fabricated parts and ensures
that these are made as per the part drawing. Plating, Painting and
stenciling etc are done and checked as per the BEL standards.
A process card is attached to each PCB under inspection. Any error in the
PCB is entered into the process card by certain codes specified for each
error or defect.
The PCB’s are than send to testing department for testing according
to the product. Test procedure issued by the D&E department. After
testing PCB’s are lacquered and send to the planning store for storage.
MAGNETICS DEPARTMENT
In the magnetics department different types of transformers and coils are
manufactured, which are used in the various defense equipments i.e. radar,
communication equipments. This department basically consists of three
sections.
PRODUCTION CONTROL
Basic function of production control is to plan the production of
transformer and coils as per the requirement of respective division (Radar &
Communication). This department is divided into two groups-
(a)Planning
(b)Planning store
WORKS (PRODUCTION)
Production of transformers and coils are being carried out by the works
departments. Following process are required for the manufacturing of
transformer / coils-
(a) Preparation of former
(b) Winding
(c) Insulation
(d) Tape
(e) Sleeve
(f) Impregnation
(g) Mechanical Assembly
(h) Enveloping
(i) Moulding
(j) Oil filling
(k) Painting
(l) Stencilling
Types of Transformer:-
Following types of transformers are being manufactured in this
department-
1. Air and Oil cool transformers
2. Pulse transformers
3. Air core type
4. Moulding type transformers
5. P.C.B. Mounting transformers
QUALITY CONTROL
After manufacturing the transformer /coils the otem is offered to the
inspection department to check the electrical parameters (DCR,No load
current, full load current, dielectric strength, inductance, insulation
resistance and mechanical dimension) as mention in the GA Drawing of the
product.
MICRO WAVE LABORATARY
This section undertakes:
1. Manufacturing of films and microwave components to meet
internal requirements.
2. Testing of low power antenna for which test-site is about 100 Km
from the factory at sohna.
The main component testing in this department is:
• Oscillators
• Amplifiers
• Mixers
• Radiation elements (e.g. Feeders)
• Microwave components (e.g. Isolators, circulators,
waveguides etc.)
• Filters (e.g. LPF, BPF, Uniplexers, and Multiplexers etc.)
Functioning of component is listed below:
• Frequency response
• Noise figure
• VSWR
• Directivity and coupling
• Power measurements
Various instruments in the lab are:
• Adaptor
• Attenuator
• Coupler
• Mixer
• Detector
DEVELOPMENT AND ENGINEERING
(D & E) DEPARTMENT
As the name suggests D&E dept. performs the function of development and
engineering of the requirements of the company’s customers which are mainly
national defense organizations. There are five sections in this dept. – Radar1,
Radar2, Communication, Antennae and Data Handling. The five sections work
in coordination with each other and give an aggregate result as output of D&E
dept. and this output is send as an report to the CRL (Central Research
Laboratory) where the requirements of the customers framed by D & E are
considered and a software is developed fulfilling all the requirements.
Design facilities are also constantly being modernized and substantial
computeraided design facilities are being introduced including installation of
mini and microcomputers and dedicated design application. About 170
graduate and postgraduate engineers are working on research and
development and indication of the importance R&D has in Bel's growth.
PROJECT
INTEGRATED AIR COMMAND AND
CONTROL SYSTEM (IACCS)
The IACCS system for Air Defence (AD) is required to automate the AD
Command and Control structure of the IAF. The system shall be capable of
automating three levels of the AD Command and Control echelon – the
‘Tactical level’ at Air Defence Direction Centers (ADDC), the ‘Operational
Level’ at Command HQ and the ‘Strategic Level’ at Air HQ. The IACCS would
be configured around a wide area Network, spanning across all the levels of
AD Command and Control Structure of the IAF. The implementation of IACCS
would involve generation of a composite, recognised Air Situation Picture
(ASP) by integrating all sensors and systems available in the network. At the
tactical level, five Command and Control Centres (ADDCs) would be
automated. Activities at the Tactical Level would involve generation of ASP
by integrating all available sensors and systems at each ADDC’s Area of
Responsibility (AOR), exchange of various data between each ADDC’s and
various AD elements within its AOR for conduct of operations. All elements,
including the airbases, weapon control centres, Command and Air HQ, would
be integrated into the IACCS Network as unique entities.
CLIENT SUB-MODULE
In this sub-module client query the server for time and date after a short
period of 10 seconds. Thus in this sub-module I need to set a timer of 10
seconds to query the server. To query the server client send datagrams of
request to the server socket and receive the datagrams of time and date on
it’s socket.
In this sub module server get the time from system and send the datagrams
of time and date to the client socket after receiving a request on it’s socket
from client.
SOCKETS
A socket is a communication mechanism that allows client/server systems to
be developed either locally, on a single machine, or across networks. Sockets
make a clear distinction between client and server. The socket mechanism
can implement multiple clients attached to a single server.
SOCKET CONNECTIONS
Next, the server process gives the socket a name. Local sockets are
given a filename in the Linux file system, often to be found in /tmp or
/usr/tmp. A socket is named using the system call bind.
SOCKET ATTRIBUTES
Socket domains
The domain AF_UNIX, which is the UNIX file system domain can be
used by sockets based on a single computer that perhaps isn’t networked.
When this is so, the underlying protocol is file input/output and the addresses
are absolute filenames.
Other domains that might be used include AF_ISO for networks based
on ISO standard protocols and AF_XNS for the Xerox Network System.
Socket Types
Stream Sockets
Datagram Sockets
Socket Protocols
Where the underlying transport mechanism allows for more than one
protocol to provide the requested socket type, we can select a specific
protocol for a socket.
Creating a Socket
The socket system call creates a socket and returns a descriptor that
can be used for accessing the socket.
#include <sys/types.h>
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
Socket Addresses
Each socket domain requires its own address format. In the AF_INET
domain, the address is specified using a structure called sockaddr_in,
defined in netinet/in.h, which contains at least these members:
struct sockaddr_in {
short int sin_family; /* AF_INET */
unsigned short int sin_port; /* Port number */
struct in_addr sin_addr; /* Internet address */
};
Naming a Socket
#include <sys/socket.h>
int bind(int socket, const struct sockaddr *address, size_t address_len);
The bind system call assigns the address specified in the parameter,
address, to the unnamed socket associated with the file descriptor socket.
The length of the address structure is passed as address_len.
Closing a Socket
SOCKET COMMUNICATIONS
#include <netinet/in.h>
unsigned long int htonl(unsigned long int hostlong);
unsigned short int htons(unsigned short int hostshort);
These functions convert 16-bit and 32-bit integers between native host
format and the standard network ordering. Their names are abbreviations for
conversions—for example, “host to network, long” (htonl) and “host to
network, short” (htons).
DATAGRAM COMMUNICATION
Since UDP is not a guaranteed service, however, you may find that
your datagram or your response goes missing. So if the data is important to
you, you would need to code your UDP clients carefully to check for errors
and retry if necessary. In practice, on a local area network, UDP datagrams
are very reliable. two datagram-specific system calls, sendto
and recvfrom.
In normal use, the flags parameter can be kept zero in both the cases.
MULTIPLE CLIENTS
The fork system call duplicates the current process, creating a new
entry in the process table with many of the same attributes as the current
process.
The call to fork in the parent returns the Process ID (PID) of the new
child process. The new process continues to execute just like the original,
with the exception that in the child process the call to fork returns 0.
Signals
#include <signal.h>
int sigaction(int sig, const struct sigaction *act, struct sigaction *oact);
SETTING TIMER
As we want our client to query the server after a time interval again
and again thus we need to set an interval timer which can be done with the
help of function setitimer(). This function sets the value of interval timer, I’ts
syntax is
struct itimerval {
struct timeval it_interval; /* next value*/
struct timeval it_value; /*current value*/
};
struct timeval {
long tv_sec; /*seconds*/
long tv_usec /*microseconds*/
};
The function setitimer sets the indicated timer to the value in value. If
ovalue is non zero, the old value of the timer is stored there.
Both the tv_sec and and tv_usec are significant in determining the
duration of a timer.
CODING
SOFTWARE USED
• TURBO C
• LINUX ENTERPRISING EDITION
CLIENT PAGE
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<string.h>
#include<time.h>
#include<sys/time.h>
#include<signal.h>
struct mytime
{
struct timeval tv;
struct timezone tz;
};
struct mytime mytimevarc;
struct tm *tmvar;
void querytheserver()
{
int sockfd,status;
struct sockaddr_in address;
int result,len;
sockfd=socket(AF_INET,SOCK_DGRAM,0);
address.sin_family=AF_INET;
address.sin_addr.s_addr=htonl(INADDR_ANY);
address.sin_port=htons(9734);
len=sizeof(address);
if(status==0)
{ printf("\nDate/Time succesfully set\n");
}
printf("%d/%d/%d\n",tmvar->tm_mday,tmvar-
>tm_mon+1,tmvar->tm_year+1900);
printf("%d:%d:%d\n",tmvar->tm_hour,tmvar->tm_min,tmvar-
>tm_sec);
close(sockfd);
}
int main()
{
struct sigaction act2;
struct itimerval timer;
querytheserver();
}
SERVER PAGE
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<string.h>
#include<time.h>
#include<sys/time.h>
#include<signal.h>
struct mytime
{
struct timeval tv;
struct timezone tz;
};
struct mytime mytimevars;
struct tm *tmvar;
void whatisthedate()
{
//To get the time of day in sec elapsed from Jan 1, 1970 00:00hrs
gettimeofday(&mytimevars.tv,&mytimevars.tz);
//Convert the seconds into fields viz: hour, min, sec, etc
tmvar=localtime(&mytimevars.tv.tv_sec);
}
int main()
{ int server_sockfd, client_sockfd;
int server_len, client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
server_sockfd=socket(AF_INET,SOCK_DGRAM,0);
server_address.sin_family=AF_INET;
server_address.sin_addr.s_addr=htonl(INADDR_ANY);
server_address.sin_port=htons(9734);
server_len=sizeof(server_address);
bind(server_sockfd,(struct sockaddr*)
&server_address,server_len);
client_len=sizeof(client_address);
signal(SIGCHLD, SIG_IGN);
while(1)
{
printf("\nServer Waiting\n");
recvfrom(server_sockfd,&mytimevars,sizeof(struct mytime),0,
(struct sockaddr*)&client_address,&client_len);
printf("\nSending %d/%d/%d::%d:%d:%d\n",tmvar-
>tm_mday,tmvar->tm_mon+1,tmvar->tm_year+1900,tmvar-
>tm_hour,tmvar->tm_min,tmvar->tm_sec);
//Send the filled packet back to the client after filling it with the
correct date and time.
sendto(server_sockfd,&mytimevars,sizeof(struct mytime),0,
(struct sockaddr*)&client_address,client_len);
close(client_sockfd);
exit(0);
}
else
{
close(client_sockfd);
}
}
}
OUTPUT SNAPSHOTS
SERVER IS WAITING FOR CLIENTS TO SEND DATAGRAMS
TIME SYNCHRONIZATION IN A CLIENT AND SERVER
TIME SYNCHRONIZATION IN A SERVER AND MULTIPLE CLIENTS
PROVISION FOR INCLUSION OF GPS SUPPORT
IN THE PROJECT
Till now we have seen that server sends the system time to the client, but
there is also provision for inclusion of GPS support for time synchronization.
Time and date can be received from a GPS receiver on a serial port of a
server in a pre defined message format and can be sent to the client. Now
we should know about GPS, in which format message is received at serial
port and then how to read the messege from serial port. First have a look on
a brief description of GPS.
$IDMSG,D1,D2,D3,D4,.......,Dn*CS[CR][LF]
Dn Each message contains multiple data fields (Dn) which are delimited
by
commas.
[CR][LF] The carriage return [CR] and line feed [LF] combination terminate
the message.
The Lassen SK II GPS outputs two messages: GGA (NMEA Version 2.1) and
VTG.
$GP GGA,hhmmss,llll.lll,a,nnnnn.nnn,b,t,uu,v.v,w.w,M,x.x,M,y.y,zzzz*hh
<CR><LF>
Field Description
1 UTC of Position
2,3 Latitude, (North) or S (South)
4,5 Longitude, E (East) or W (West)
6 GPS Quality Indicator: 0 = No GPS, 1 = GPS, 2 = DGPS
7 Number of Satellites in Use
8 Horizontal Dilution of Precision (HDOP)
9 ,10 Antenna Altitude in Meters, M = Meters
11,12 Geoidal Separation in Meters, M=Meters. Geoidal separation is the
difference between the WGS-84 earth ellipsoid and mean-sea-level.
13 Age of Differential GPS Data. Time in seconds since the last Type 1 or
9 Update
14 Differential Reference Station ID (0000 to 1023)
hh Checksum
SERIAL PORT COMMUNICATION
Computers transfer information (data) one or more bits at a time.
Serial refers to the transfer of data one bit at a time. Serial communications
include most network devices, keyboards, mice, MODEMs, and terminals.
Asynchronous Communications
In asynchronous mode the serial data line stays in the mark (1) state
until a character is transmitted. A start bit preceeds each character and is
followed immediately by each bit in the character, an optional parity bit, and
one or more stop bits. The start bit is always a space (0)
The optional parity bit is a simple sum of the data bits indicating
whether or not the data contains an even or odd number of 1 bits. With even
parity, the parity bit is 0 if there is an even number of 1's in the character.
With odd parity, the parity bit is 0 if there is an odd number of 1's in the data
Space parity means that the parity bit is always 0, while mark parity means
the bit is always
Flow Control
The first method is often called "software" flow control and uses
special characters to start (XON or DC1, 021 octal) or stop (XOFF or DC3,
023 octal) the flow of data.
The second method is called "hardware" flow control and uses the RS-
232 CTS and RTS signals instead of special characters
Synchronous Communications
LINUX provides access to serial ports via device files To access a serial
port you simply open the corresponding device file.
Each serial port on a UNIX system has one or more device files (files in the
/dev directory) associated with it. For LINUX these are
Port 1 – /dev/ttyS0
Port 2 - /dev/ttyS1
Since a serial port is a file, the open(2) function is used to access it.
Necesarry files to include are:
Open options:
fd is file descriptor for the port It returns -1 if port could not be opened
The O_NOCTTY flag tells UNIX that this program doesn't want to be
the "controlling terminal" for that port
The O_NDELAY flag tells UNIX that this program doesn't care what
state the DCD signal line is in - whether the other end of the port is up
and running.
Writing data to the port is easy - just use the write(2) system call to
send data it:
Reading data from a port is a little trickier. The read function can be
made to return immediately by doing the following:
This is also used after opening a serial port with the O_NDELAY option.
To close the serial port, just use the close system call
close(fd);
Control Options
The c_cflag member controls the baud rate, number of data bits,
parity, stop bits, and hardware flow control. The c_cflag member contains
two options that should always be enabled, CLOCAL and CREAD. These
will ensure that your program does not become the 'owner' of the port
subject to sporatic job control and hangup signals, and also that the serial
interface driver will read incoming data bytes.
The baud rate constants (CBAUD, B9600, etc.) are used for older
interfaces that lack the c_ispeed and c_ospeed members.
The tcgetattr(3) function fills the termios structure you provide with
the current serial port configuration. After we set the baud rates and
enable local mode and serial data receipt, we select the new configuration
using tcsetattr(3). The TCSANOW constant specifies that all changes
should occur immediately without waiting for output data to finish sending
or input data to finish receiving.
Like the character size you must manually set the parity enable and
parity type bits. UNIX serial drivers support even, odd, and no parity bit
generation. Space parity can be simulated with clever coding.
• No parity (8N1):
• options.c_cflag &= ~PARENB
• options.c_cflag &= ~CSTOPB
• options.c_cflag &= ~CSIZE;
• options.c_cflag |= CS8;
Some versions of UNIX support hardware flow control using the CTS
(Clear To Send) and RTS (Request To Send) signal lines. If the
CNEW_RTSCTS or CRTSCTS constants are defined on your system then
hardware flow control is probably supported. Do the following to enable
hardware flow control:
Local Options
The local modes member c_lflag controls how input characters are
managed by the serial driver. In general you will configure the c_lflag
member for canonical or raw input.
Choosing Canonical Input
When selecting this mode you normally select the ICANON option:
options.c_lflag |= (ICANON);
Input Options
The input modes member c_iflag controls any input processing that
is done to characters received on the port.
Software flow control is enabled using the IXON, IXOFF, and IXANY
constants:
Output Options
The c_oflag member contains output filtering options Like the input
modes, you can select processed or raw data output.
options.c_oflag |= OPOST;
Of all the different options, you will only probably use the ONLCR
option which maps newlines into CR-LF pairs. The rest of the output
options are primarily historic and date back to the time when line printers
and terminals could not keep up with the serial data stream!
When the OPOST option is disabled, all other option bits in c_oflag are
ignored.
RS-574 Connector
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<errno.h>
#include<termios.h>
int open_port()
int fd;
char buff[60];
fd=open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY);
if(fd==-1)
perror("Couldn't open\n");
return(1);
else
printf("\nPort opened\n");
if(write(fd,"ABC\n",4)<0)
{ printf("Write failed\n");
else
tcgetattr(fd,&options);
options.c_cflag|=(CLOCAL|CREAD);
options.c_cflag |= CS8;
//options.c_oflag |= ONLCR;
cfsetispeed(&options,B19200);
cfsetospeed(&options,B19200);
fcntl(fd,F_SETFL,0);
tcsetattr(fd,TCSANOW,&options);
while(1)
{
bzero(buff,60);
scanf("%s",buff);
write(fd,buff,60);
return(fd);
int main()
{ open_port();
Receive
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<errno.h>
#include<termios.h>
int open_port()
int fd;
char buff[60];
fd=open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY);
if(fd==-1)
perror("Couldn't open\n");
return(1);
else
printf("\nPort opened\n");
if(write(fd,"ABC\n",4)<0)
{ printf("Write failed\n");
else
options.c_cflag |= CS8;
//options.c_iflag |= IGNCR;
cfsetospeed(&options,B19200);
while(1)
bzero(buff,60);
read(fd,buff,60);
printf("\n%s\n",buff);
return(fd);
int main()
{ open_port();