Embedded Systems in Aerospace and Defence Applications

Embedded aerospace system

An embedded control system is a sophisticated technique to Control the desired section in Aerospace application. It finds its way almost in all sub-systems and min systems including Engine control, Temperature control, Speed control etc. The beauty of the control system model is it takes all inputs from all the Sensors, does all the math to acquire desired gain out of the equation.

How embedded system is working in aerospace:

By “embedded system” we normally (but not necessarily) mean “digital computer system.”

First, it is very important to know about a common misunderstanding of the term “embedded system.” There is the literal meaning, and the typical meaning, of “embedded (computing) system.” The distinction between them has a major impact on the practice of embedded computing, as we will see in this answer, so we need a very brief tutorial.

The literal meaning is exactly what the term says: a computing system that is embedded in an application system. An “embedded” system is essentially an invisible black box that performs some functionality for the application system. The users of the application system might be aware of the embedded computing system, but they have no direct visibility or control of it—as far as they know, the embedded computer’s functionality could theoretically be performed by relays or trained monkeys or even by magic. The users of the application system see and use the human interface provided for them by the application system. The literal meaning is the general case.

Most often, an embedded system’s functionality includes both computation and reaction. Generically, the functionality can be thought of as performing some mix of closed loop and open loop control of devices that are part of or exogenous to the application system. For closed loops, the embedded computer receives data and signals from the application system and the application system’s environment, performs some computations, and outputs data and signals to the application system and the application system’s environment. The operation of open loops follows self-evidently. This is similar to the familiar interaction between a regular desktop or laptop PC and devices inside it (e.g., drives) and external to it (e.g., scanner, camera). Clearly, in some cases, the PC user is involved in some reactive behavior, and in other cases the user is not. However, standalone computers are ordinarily considered as primarily computational or transformational instead of reactive.

It has been asked on Quora how embedded systems relate to real-time systems. My reply is posted elsewhere, but here suffice it to say that “real-time system” is not as “all-or-nothing” or “hard” vs. “soft” as popularly imagined—systems are real-time in various ways and degrees—cf. Many application systems include functionality and devices that are considered to be real-time in the usual sense that correctness requires satisfaction of constraints on the timeliness and predictability of the application and hence on the reactive interactions by the embedded system. Other application systems with embedded systems have the different objective of maximal performance (e.g., throughput, non-starvation).

A major distinction between an embedded system and a non-embedded one is that the developers of embedded systems hardware and software usually need (potentially quite a lot of) understanding about the application system functionality and design, and of the devices therein that it is interacting with. Indeed, often that embedded system hardware and software must be co-designed at a low level of detail (ordinarily the application system’s hardware and software are a given), calling for the education and experience of computer engineering as well as of computer science.

All of that having been said, what is the widespread misunderstanding about embedded systems? It is what was not said.

The typical meaning of “embedded system” is a special case of the literal meaning. It adds a lot of explicit and even implicit assumptions—about the embedded computer, and about the application system, and about the application system’s devices. Most notably, the use of the term “embedded system” almost always incorrectly assumes that the embedded computer is very small scale in size/weight/power, that the embedded computer software is small size, and that the application system is also relatively small scale and simple. Those assumptions are often correct, and everyone can immediately think of many examples.

(As a partial digression: it can be (and is) argued that a smartphone is an application system that has an embedded system—and conversely, that it is not but instead a handheld computer like a desktop or laptop PC. I leave that as a Quorum discussion if it has not already been adequately covered.)

The typical meaning of “embedded system” overlooks the fact that they may be, and are, not just only small scale, but of various scales in capabilities and size/weight/power consumption—all the way up to real-time supercomputers and distributed real-time systems having nodes of various complexities. They are embedded in application systems of various scales, including very large complex ones—e.g., aircraft carriers, military jumbo jets. Such application systems almost always include multiple embedded systems of different scales. Most embedded system developers have not been exposed to, or even heard of, large complex real-time embedded systems and application systems.

That background was needed for me to give my answer to the question, because my experience and expertise in embedded systems is mostly in the literal sense, especially including large, complex, dynamic real-time ones. Those are primarily for military application systems, which are the most wickedly challenging ones due to being engaged in combat and to the “fog of war.” In addition, such systems are unlikely to be mentioned in other replies (which will use the typical meaning of embedded system) to the question.

A real but simplified example from personal experience is modern AESA multi-mission multimode radars on large surveillance airplanes and large warships. Such radars can be expected to have embedded multiprocessor/multicore computers in the multi-million US$ price range, running multi-million lines of software to control the radar and perform the kill chain (tracking, engagement, etc.), and consume vast amounts of power. The radar (on-board and ground-based) users certainly know there is an embedded computer in their radar system, but they do not directly see or control it—they see the application system (radar) user interfaces.

Another example I am very knowledgeable about is application systems for the cruise and ballistic missile defense. Some of these have real-time embedded systems that are supercomputers, that the users do not directly interface with.

You probably will be surprised to hear that some of the companies that make large-scale real-time embedded computers are familiar only in the non-real-time non-embedded contexts (e.g., HP, IBM). Probably you have not heard of most others (e.g., Mercury).

Embedded Systems in Aerospace and Defence Applications :

Aerospace and defence has always been at the forefront of technological excellence and many spin-off technologies have resulted. In fact over $5.2bn worth over the years. Structures, engines, mechanics and all have a vital role to play in these great industries. However arguably its electronics that makes the magic happen. Technology has moved at a Phenomenal pace over the last 20 years Especially in A&D. think Civil Aircraft Inflight entertainment systems. Audio Visual on Demand (AVOD) is now commonplace on long-haul airline fleets around the Globe with touch screens. Even aircraft lavatories are becoming automated with touchless flush buttons. As for the military we will never truly know or understand the level of detail that embedded systems are present in these complex systems so we have to look at what the market currently offers. Still after 20 years Of service PCMCIA, ATA Flash And SRAM cards, which are legacy memory Tech ,are still in operation with plethora airlines. Why? They have far fewer components, are robust and Draw little power. A the time these cards for the only ones available on the market suited to the aircrafts requirements, be it Flight Data recorders, flight deck or avionics. 10 years ago there were around 50 Manufacturers For these cards, today There are are less than 5 as there is a shrinking market. Or is there? Until Aircraft and helicopters are retired or scrapped airline fleets And helicopter operators upgrade to newer aircraft there will still be a demand for these cards. Upgrading flight decks in fixed and rotary wing aircraft is a costly and time consuming job. The more the aircraft is on the ground the less it is earning and with margins tight especially for Airlines they can ill afford to be unnecessarily grounded. Its only recently we heard that the American B52 bomber will continue flying. That will be nearly 100 years of service which seems incredible but it comes down to the points made earlier. Structure engines, mechanical and electrics all will have had to go through strategic upgrades and maintenance at some point. Looking at even Older technology 3.5” floppy disks in particular there is still a healthy demand but getting hold Of them is a different matter. Why are these still around? They don’t break, they work every time and there is a minuscule change of cyber-Attack as the memory is not sufficient enough to host a bug. And for that reason the US Air Force still use these for their nuclear missile silos. Tried and tested works. On the other end of the scale And turning our attention to the latest technology we seeing some Incredible advancements in NAND Flash which if according to Manufacturers and early reports, Will be the staple of memory for years to come. But what about capacity? Only 11 years ago we saw 128MB micro SD cards, now 128GB is the norm.

Embedded application in the military :

A new generation of experts in the embedded computing industry is making yet another attempt to craft industry standards to reduce costs and ease upgrades and life cycle support of military embedded systems.

The HOST program seeks to decompose military embedded systems into functional blocks to ease system design and reuse of embedded computing hardware and software. It’s intended to open systems for several different vendors and avoid locking single vendors into large system designs, Collier told ETT attendees.

The SOSA project, meanwhile, focuses on single-board computers and how they can be integrated into sensor platforms, Collier says. It involves a standardized approach to how embedded systems interrogate sensor data to distill actionable information.

The HOST and SOSA projects are relatively new, yet Navy leaders are starting to push HOST standards on Navy programs, as well as on Navy vendors, Collier says.

Creating embedded computing architecture standards and encouraging industry to use them is a commendable endeavor. It does hold the promise of reducing complexity, cutting system costs, and easing systems upgrades and life cycle support over the long term.

Historically, however, a big problem with military-imposed design standards has been enforcement. The military talks about the need for cutting costs through standard design approaches, yet military program managers want unique capabilities, while military suppliers want value-added designs. A commodity approach rarely achieves these ends.

Military design standards, moreover, have been tried time and again, going back decades to Navy efforts in the early 1990s involving the Next-Generation Computer Resources Program (NGCR), the Army’s Standard Army Vetronics Architecture (SAVA), and the Air Force’s Joint Integrated Avionics Working Group (JIAWG).

Don’t feel bad if you’ve never heard of these initiatives. They were sort-lived, and had little long-term influence on military systems designs. Technology and industry-backed standards overtook them and quickly made them irrelevant. Today essentially they’re forgotten.

The speed of technology presents a formidable challenge to the creation of military and industry design standards. People often criticize how the long duration of military program development often fields obsolete technologies. Standards authorities have to be wary of the same thing: what good is it to standardize on obsolete technology?

It’s easy to be cynical about continuing generations of military electronic design standards. Might the HOST and SOSA projects go anywhere? Says Collier himself, “only time will tell.”

If we choose to be optimistic, then perhaps the HOST and SOSA projects will have some influence. “There are design intersections where working together will work,” Collier says, and I can’t disagree. Most likely these programs on their own will have little influence, but perhaps their legacies will help evolve industry attitudes toward working together as a military establishment and its supplier base.

“People want to work together to make technology stronger for everyone,” Collier says. History has shown that companies will work together only so far as competition will allow. People can voice support for standards, but ultimately each company wants to win the contract, sell the most boards, and promote the best solutions.

We have to consider if competition, not collaboration, is actually what creates the best technologies. Maybe this true, but it comes at a price. Competition generally bubbles the best solutions to the top, but it’s expensive. U.S. military technology can be the best in the world, but it costs hundreds of billions of dollars every year. Is that sustainable in the long term? Probably not in today’s environment.

So that brings us back to cooperation and industry standards. Is this the full answer? Probably not, but maybe it’s a start. There’s a chance that the culture of the military and the embedded computing industry could be changing, albeit slowly.

When it comes to industry associations and standards bodies, “there is more participation than I’ve ever seen before,” says Jerry Gipper, executive director of the VITA Open Standards and Open Markets embedded industry trade group, which puts the ETT conference together.

“Technology changes, and so do business models,” Gipper says. “It may just work this time. I do think we are going in the right direction.”

Of course, there are different grades and specifications of memory and storage, the Commercial of the Shelf (COTS) that you can buy in any good high street or web store to the premium end of the market – the industrial grade. IT is here the aerospace and defence industries where industrial grade memory and storage sits. There is a requirement to store large amounts of data; securely, in harsh temperature environments ranging from -40°C to 85°C often for long periods of time. The difference is often underneath the casing (although rugged metal casing is not uncommon) and the difference can vary dramatically depending on the manufacturer. Power protection, SMART Monitoring, AES 256 bit encryption, conformal coating, hardware and firmware alterations and more importantly NAND FLASH all vary differently as do the Capacities Of Storage devices. The holy grail of achieving 1TB storage in an industrial grade SSD has been achieved by many who are now starting to push the boundaries even further by introducing 2TB and in some cases 4TB. Interestingly a Korean company, Novachips is Slowly introducing an 8TB SSD which is Primarily for the military market. Early indications from a selection of clients show that the SSD has ‘groundbreaking performance’. So just how good is it? For the military Key Characteristics of any type of storage technology should have;

  • 2.5”7mm height
  • MIL-STD-810F/G compliant
  • Military Secure Erase protocol supported
  • 256-BIT AES Encryption, Secure Erase and Write protect supported
  • Adaptive thermal control
  • Fixed BOM (Controller, NAND, and Firmware)
  • Constant write performance.
  • On-board Capacitor Sudden Power off Protection,
  • End-to-End data protection
  • An ultra-rugged robust metal casing
  • Wide operating temperature-40°C to 85°C

What is BSP in Embedded System?

EMBEDDED BSP :

In embedded system Board support package(BSP) is a layer of software containing hardware specific drivers and routines which allows real-time operating system to work under particular hardware system that may be computer or CPU card. The hardware system is integrated with RTOS itself.

BSP supports standard interface between hardware and operating system.

The operation performed by BSP are

  • Interrupt controller initialization.
  • The Processor initialization.
  • Segment configuration.
  • The Bus initialization.
  • Clock initialization.
  • Initialization of RAM setting.
  • It will load and run bootloader from FLash.

A Board Support Package (BSP) is used to start up and run the embedded target processor and is fundamental software for use with the evaluation board and its OOBE. The BSP does not include much more than what is needed to support a minimum number of peripherals on an eval board; only enough so that the user can at least demonstrate that the SoC peripherals work and that the SoC can be easily programmed to carry out the main features that the vendor advertises.

A board support package is one of the first software packages that is developed for use with a particular chip or its evaluation board.

The BSP has a boot-up program called the “boot loader” or a boot manager, and there’s a different BSP for different operating systems since the BSP contains drivers that enable the peripherals to communicate with the operating system.

The BSP provides a file structure and will initialize several systems, including the processor, any communication buses, clocks, and memory, as well as start up the boot loader. The BSP may also initialize peripherals and set some environmental parameters for working with the embedded operating system (OS).

 

A Board Support Package (BSP) provides a standardized interface between hardware and the operating system. A BSP does not directly access hardware. Although a BSP does provide an interface to device drivers which in turn allows the kernel to communicate with the hardware’s assets such as device controllers, the microprocessor (CPU), memory, internal and external busses. .

The BSP provides a common application programming interface (API) and a stable environment for the real-time operating system. The standard interface defines both BSP conventions and validation procedures.

Wind River provides a standardized BSP validation procedure for engineers who are developing their own BSP’s. Validation is very efficient with a BSP designed for VxWorks because the BSP testing can be performed without having to test the operating system at the same time.

Unlike Wind River’s real-time operating systems, most operating systems can not separate the testing of the BSP from the testing of the operating system itself making code coverage during testing a much larger and more inaccurate process.

The BSP validation test suite provided by Wind River is repeatable and as such can be performed by the company developing a BSP as well as by others because of this standard. Wind River’s partners can request that the WindLink partner program grant “Tornado Certified” status to a new BSP after passing the validation procedure as part of an overall certification process.

The validation procedures include tests for:

  • Package validation
  • Installation tests
  • Functional test Code review process including certification from the WindLink partner program The Tornado BSP standard includes conventions to be used by developers that fall into four main categories:
  • Coding Conventions
  • Documentation guidelines
  • BSP Packaging

Driver guidelines One strength of VxWorks is that it provides a high degree of architectural and hardware independence for application code because of this API. Application code and VxWorks can both migrate from one architecture to another because the BSP and related device drivers offer a consistent interface and modular design.

To further illustrate the BSP’s ability to interface hardware to software: Those construction workers that lay carpet for our floors use another example of this type of API in the home and office.

The carpet layer uses two-sided sticky tape to quickly attach just about any style carpet to any architectural floor plan beneath it. The BSP acts like this two-sided sticky tape attaching the embedded hardware to the operating system that uses it.

Description of BSP technical features :

There is a file named target.nr defined in the BSP documentation standards containing a list of technical features supported and unsupported for a particular COTS or reference board.

The list of features describes what a BSP is expected to do during hardware initialization when the CPU executes its first instructions as well as what hardware assets should be presented to the operating system. This information is summarized here. Boot Monitor

  • Describe the methods and devices available for booting RTOS on this board. (sm, SCSI, Ethernet, vendor-bug ROMs, open firmware, visionWARE, etc).
  • Describe the network support available for booting; bootp, proxy-arp, etc… Default Ram size Additional supported memory options Cache support Flash and ROM memory • How are ROMs made and installed. (How do they split.) Can FLASH ROMs be burned on board. If so, how. Timer support in addition to the system clock
  • Describe routines that are associated with the speed of CPU and Timers Devices supported:
  • The chip drivers included are:

templateSio.c – template serial driver .

templateTimer.c – template timer driver

templateVme.c – template VMEbus driver

templateNvram.c – template non-volatile RAM driver

What are the Advantages of Assembly Language ?

Advantage of assembly language:

1. The symbolic programming of Assembly Language is easier to understand and saves a lot of time and effort of the programmer.

2.it is easier to correct errors and modify program instructions.

3. Assembly Language has the same efficiency of execution as the machine level language. Because this is a one-to-one translator between assembly language program and its corresponding machine language program.

All of the advantages and disadvantages can be summarized in one bullet each.

  • You directly control the exact instruction sequences the processor executes.

An application has as much control as the system allows over what instructions and features are used.

This permits one to locally optimize code to a great degree (or at least to the extent of the knowledge and ability of the coders involved). There are many tricks that someone intimately familiar with the task that a program implements would utilize that general code optimizers cannot. Additionally, having knowledge of the structure of the data provides other avenues of attack. Furthermore, one had direct access to system-level features without the need for going through other interfaces.

In this vein, one firm I worked at was able to provide their customers with an (assembler-coded) program that directly interfaced to system character set code pages (and was tailored to their needs) without their having to purchase an expensive vendor-supplied package for doing so. And, of course, it was faster too.

Advantages:

  1. Debugging and verifying. Looking at compiler-generated assembly code or the disassembly window in a debugger is useful for finding errors and for checking how well a compiler optimizes a particular piece of code.
  2. Makingcompilers.Understanding assembly coding techniques are necessary for making compilers, debuggers and other development tools.
  3. Embedded systems. Small embedded systems have fewer resources than PCs and mainframes. Assembly programming can be necessary for optimizing code for speed or size in small embedded systems.
  4. Hardware drivers and system code. Accessing hardware, system control registers etc. may sometimes be difficult or impossible with high-level code.
  5. Accessing instructions that are not accessible from a high-level language. Certain assembly instructions have no high-level language equivalent.
  6. Self-modifying code. Self-modifying code is generally not profitable because it interferes with efficient code caching. It may, however, be advantageous, for example, to include a small compiler in math programs where a user-defined function has to be calculated many times.
  7. Optimizing code for size. Storage, space, and memory are so cheap nowadays that it is not worth the effort to use assembly language for reducing code size. However, cache size is still such a critical resource that it may be useful in some cases to optimize a critical piece of code for size in order to make it fit into the code cache.
  1. Optimizing code for speed. Modern C++ compilers generally optimize code quite well in most cases. But there are still cases where compilers perform poorly and where dramatic increases in speed can be achieved by careful assembly programming.
  2. Function libraries. The total benefit of optimizing code is higher in function libraries that are used by many programmers.
  3. Making function libraries compatible with multiple compilers and operating systems. It is possible to make library functions with multiple entries that are compatible with different compilers and different operating systems. This requires assembly programming.

What is Embedded Systems & Career in Embedded Systems

Embedded system is the combination of hardware and software, it is designed for specific functions within in the larger system.
Embedded system consists of 3 things:
1. Input Device
2. Microcontroller (The Brain)
3. Output Device
Input device collects input from the user. It can be done via a sensor or a remote control. A microcontroller can be called as the brain, it is the processing unit. It collects information from an input device and performs the output as per the logic defined inside it.
Output device collects the instructions from the microcontroller and perform accordingly
Embedded systems have accentuated technology’s growth by manifold With growth and advancements in the field of electronics, wireless communications, networking, cognitive and affective computing and robotics, devices around you communicate in more ways than you ever imagined.
Apart from that most companies inventing automation products so in the Embedded field gives good growth based on their performance. Apart from that most companies inventing automation products so in the Embedded field gives good growth based on their performance.
After some years, Embedded systems are going to be everywhere – On every floor, every wall, public transports, cars, homes, offices, airplanes. Looking at the numerous possible applications it has and the awesome projects that are already in pipeline, it is safe to say that Embedded Systems will be one of the most sought-after fields of study and hence would require a lot of talented minds. And it is also important to note that as an Embedded systems Engineer, one would be dealing with some of the most advanced and complicated technologies while working on systems that would revolutionize the way we look and feel this world. So, choosing this field as a career option now would be a smart option for people who always were interested in Electronics and Electrical Engineering.
From smart clothing to smart banking, embedded systems have accentuated technology’s growth by manifold With growth and advancements in the field of

  • Electronics,
  • Wireless communications,
  • Networking
  • Robotics
  • Medical Electronics
  • Aerospace
  • Food industry
  • Defence
  • Automobiles
  • Toys
  • Agriculture
  • Consumer Electronics
  • Industrial machines
  • Telecommunication
  • Space
  • Construction

We can in all most all fields embedded system is used.
The devices around you communicate in more ways than you ever imagined. Those times are not very distant when every object around us will have a small processor/sensor embedded within itself, invisible to us but still communicating with all other devices around, making our lives more connected and accessible than ever before.

Many career opportunities are available in embedded systems. Some of them are listed below :

  • Embedded Software Engineer (firmware)
  • Application Software Engineer (device drivers)
  • System Software Engineer (kernel & RTOS)
  • Software Test Engineer.
  • Embedded System Trainer.
  • Embedded Hardware Engineer.
  • Marketing & Sales Executive.

The experienced embedded system developers have very high demand in India. To have a good carrier in Embedded system the skills required are

  1. Software Skills
  • Embedded C Programming on Microcontrollers (AVR, PIC, ARM)
  • Device Drivers
  • Real-Time Operating Systems (RTOS)
  • interfacing microcontrollers with different sensors and peripherals
  • Kernel Programming
  • Innovative Thinking
  1. Hardware Skills
  • Electronic Circuit Designing
  • Power Supply Circuit Designing
  • PCB Designing
  • Troubleshooting Skills
  1. Other Skills
  • Learning new microcontroller interfacing yourself
  • Learning new hardware yourself
  • Reading Datasheets
  • Documentation as per company norms
  • Following SDLC
  • Working in a Team
  • Completing Work in Deadlines
  • Making Reports as per the Company Requirement

Grab all above skills if you want to achieve high level in your career.

Dynamic Memory Allocation in Embedded C

Embedded C Dynamic Memory Allocation:

The high cost of RAM ensures that most embedded systems will carry on with to experience a scarcity of memory, The software you use to gadget these systems will use queues, linked lists, task-control blocks, messages, I/O buffers, and other structures that require memory only for a short time and that may return it to work for other functions. This is known as dynamic memory allocation. If you’re programming in C, this may be using the memory allocation and release functions, malloc() and free().

Dynamic memory allocation

 

 

 

 

 

Dynamic memory allocation and the structures that utensil, it in C are so universal that they’re customarily treated as a black box. In the real world of embedded systems, however, that may not always be sensible or even feasible. Not all vendors of C compilers for embedded systems provide the memory allocation and release functions. We recently confront a compiler that especially falsely to have them but didn’t document their interfaces. Because we needed tight control over the memory allocation process, Unfortunately, the functions presented in that inestimable resource are meant to interface to an operating system that will supply large blocks of memory on request. The code works for two-byte address pointers but can easily be modified to handle any size. Dynamic memory allocation and the structures that utensil, it in C are so universal that they’re customarily treated as a black box. In the real world of embedded systems, however, that may not always be sensible or even feasible. Not all vendors of C compilers for embedded systems provide the memory allocation and release functions. We recently confront a compiler that especially falsely to have them but didn’t document their interfaces. Because we needed tight control over the memory allocation process, Unfortunately, the functions presented in that inestimable resource are meant to interface to an operating system that will supply large blocks of memory on request. The code works for two-byte address pointers but can easily be modified to handle any size.

A dynamic memory allocator should meet certain minimum requirements:

  •  All internal structures and linkage must be hidden from the call-only the number of bytes required should have to state.
  •  The order of calls to malloc() and free() shouldn’t matter (the order of calls to free() need not be the reverse of the order of calls to malloc()).
  •  free() must prevent fragmentation of freed memory; all small, freed blocks must be combined into larger, contiguous blocks where possible.
  • Aloft in memory and execution time must be minimized.
  • An error condition must be returned if no memory is available.

What is Logic Gates

LOGIC GATES:

The main Objectives is to understand the operation of logic gates.

Logic Gates are used to build digital systems. The basic gates are AND, OR, NOT, NOR, NAND, EXOR and EXNOR gates. NAND and NOR gates are called universal gates as these gates can implement any Boolean function without any use of other gates. The basic operations of gates are explained below with truth table and gate symbol.

AND GATE:  

The AND Gate is an electronic circuit which gives high output only when all of its inputs are high, in all other cases output is low. The logical equation for AND gate is

Y=A.B where Y is output and A and B are inputs.The dot (.) symbol is used to indicate AND operation.

Logical symbol of AND Gate

                                 Truth Table of AND Gate

Pin configuration of AND Gate                                         AND Gate IC

Pin Configuration of AND gate

OR GATE:

The OR gate is an electronic circuit, that gives output high when any one or more inputs are high, in all other cases output is low. The logical equation for OR gate is X= A+ B.Where X is output and A and B are inputs.The plus (+) symbol is used to indicate OR operation.

Logical Symbol of OR Gate                                             Truth Table of OR gate

                                    OR gate ic

Pin configuration of OR gate

NOT GATE:

The NOT gate is an electronic circuit, that produces output which is inverted version of input. It is also called as inverter. The logical equation for NOT gate is X= ~X.

Logical Symbol of NOT gate                                          Truth Table of NOT gate

Pin Configuration of NOT gate                                                    NOT gate IC

Pin Configuration of NOT gate

NAND GATE:

The NAND gate is electronic circuit, that gives output low when all of its inputs are high, in all other cases output is high. The logical equation for NAND gate is X= ~ (AB).

Symbol of NAND Gate                                              Truth table of NAND gate

Pin Configuration of NAND Gate                                             NAND Gate IC

Pin configuration of NAND gate.

NOR GATE:

The NOR gate is electronic circuit, which gives output high when all of its inputs are low, in all other cases output is low. The logical equation for NOR gate is Q= ~ (A+B). Where Q is output and A and B are inputs.

Logical Symbol of NOR gate                                         Truth Table of NOR gate

Pin Configuration of NOR gate

                                                               Pin Configuration of NOR Gate

XOR GATE:

The XOR gate is electronic circuit, which gives output high only when any one of its input is high, in all other cases output is low. The logical equation for XOR gate is X= A⊕BWhere x is output and A and B are inputs.

The  symbol is used to indicate XOR operation.

Logical Symbol of XOR Gate                                        Truth Table of XOR Gate

Pin Configuration of XOR gate                                                                             Pin Configuration of XOR gate

XNOR GATE:

The XNOR gate is electronic circuit, which gives output high only when all of its inputs are identical, in all other cases output is low. The logical equation for XNOR gate is Y= ~(AxorB)Where Y is output and A and B are inputs.

Logical Symbol of XNOR Gate                                                         Truth Table of XNOR gate

Logical Symbol of XNOR Gate:

 Pin Configuration of XNOR gate

Pin Configuration of XNOR gate:

Logic Gate Implementation

 

 

555 Timer IC Tutorial : Specification and Pin Diagram

What is 555 timer and how will it works ?

So, today we will discuss about the 555 IC. What is 555 timer and how will it works.            555 Timer IC

What is 555 timer IC?

555 timer is introduced in 1972 by signatics corporation.it is usually described as a highly stabled device for generation of accurate delay and oscillation. This is very cheap and popular timing device.
Let’s start a discussion about 555 timer. This is normally an IC (integrated circuit) and also a type of timer. Have you thought about why it’s named as 555 time? The answer is, it made up with THREE 5k ohm RESISTOR in series connection. Let we see how it is working, construction and application.

555 Timer Pin Diagram

555 Timer PIN DIAGRAM

Construction of 555 timer:
Once you start studying about IC you don’t go with an IC. First you learn internal diagram of IC. It will helpful for you know where will get an output in which condition and input? Let starts discuss about internal connection.
In introduction itself, I told, 555 timer made of THREE 5k ohm RESISTOR in series connection. Why they would connected in series connection? Because in series connection voltage should be divided.
Based on this three resistors has been connected in series, so voltage divided into 3 parts. The 1st part is VCC/3, 2nd part is 2VCC/3 and last part is 3VCC/3 (refer Fig 1).

Fig:1

Then this two voltages (2VCC/3 and VCC/3 ) is connected to the two separate comparator. One is called as a lower comparator and another one is upper comparator. This two comparators will have two terminals are inverting (-) and non- inverting (+). The VCC/3 is connected to non-inverting terminal which in lower comparator. 2VCC/3 is connected to inverting terminal in upper comparator (refer fig 1.1).

Next the lower comparator inverted pin goes outside which is the trigger pin 2 of the IC. Upper comparator non-inverting terminal is connected to the Threshold pin 6 of the IC.(refer Fig 1.2)

The output of two comparators is giving to the flip flop which is SR FLIP FLOP. On that flip flop have 4 terminals, which are the S,R,Q,Q’. Here we consider Q is an output of SR flip flop and Q’ is an output of 555 timer. So Q’ is connected to the output of IC pin 3. Then Q is connected through the resistor to the PN transistor, the transistor’s VCC pin is a discharge pin.(refer fig 1.3).

The reset pin is connected to the SR flip flop. In 2VCC/3 through that control pin has to be connected. (ref Fig 1.4)

Working of 555 timer IC:

The 555 timer shown above is configured as an astable circuit. This means that the output voltage is a periodic pulse that alternates between the VCC value and 0 volts.

The frequency is the number of pulses per second. The formula to calculate the frequency of the output voltage is:

f=1.44(R1+2R2)C

The period is the time covered for one pulse. This is just the reciprocal of the frequency:

T=1f=0.694(R1+2R2)C

The high time (T1) and low time (T0) can be calculated using the formulas below. Note that the period is the sum of the high time and the low time.

T1=0.694(R1+R2)C

T0=0.694R2C

The mark space ratio is the ratio between the high time and the low time or:

Mark Space Ratio=T1T0

The duty cycle is more commonly used than the mark space ratio. The formula for the duty cycle is:

Duty Cycle=T1T x 100

A 50% duty cycle means the high time is equal to the low time. If an LED is placed at the output of this astable circuit, it will turn on at the same span of time as it is turned off. Note that getting an exact 50% duty cycle is impossible with this circuit.

Notes:

  • Increase C to increase the period (reduce the frequency).
  • Increase R1 to increase High Time (T1), without affecting the Low Time (T0).
  • Increase R2 to increase High Time (T1), increase Low Time (T0) and decrease the duty cycle.

Final result:

Light dimmer using NE555:

Light Dimmer

 

These are the final image of 555 timer circuit astable circuit connection and graphical representation of frequency. From this we learned about 555 timer working, construction, and how to calculate the 50% of frequency.

C Program to Create function pointer

Write a C Program to Create Function Pointer ?

In this ongoing C programming tutorial series, we learned many C programming language.In this tutorial, we will learn how to declare a function pointer and what is a function pointer.
A pointer is the backbone of c language, without the pointers, we cannot imagine the C Language. A good cognizance of pointers enables the programmer to indite the optimize and robust code.

In the C language, a pointer is like a variable but only there is one distinction between the pointers and variables. A variable store value but pointer store address of the variable or other pointers.

C programming code to create function pointer:

#include<stdio.h>
int add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div(int a,int b);
int mode(int a,int b);

struct foo
{
//int a;
int (*ope9r)(int b,int c);

};

int main()
{
int ans,i,j,a,b;
struct foo foo1[5];
printf(“enter where u want add”);
scanf(“%d”,&i);
foo1[i].ope9r=add;
printf(“enter where u want sub”);
scanf(“%d”,&i);
foo1[i].ope9r=sub;
printf(“enter where u want mul”);
scanf(“%d”,&i);
foo1[i].ope9r=mul;
printf(“enter where u want div”);
scanf(“%d”,&i);
foo1[i].ope9r=div;
printf(“enter where u want mod”);
scanf(“%d”,&i);
foo1[i].ope9r=mode;

printf(“enter the value of a,b”);
scanf(“%d%d”,&a,&b);
printf(“enter the key what u want to perform”);
scanf(“%d”,&j);
//for(j=0;j<5;j++)
ans=foo1[j].ope9r(a,b);

printf(“%d\n”,ans);

return 0;
}

int add(int a,int b)
{
return(a+b);
}
int sub(int a,int b)
{
return(a-b);
}
int mul(int a,int b)
{
return(a*b);
}
int div(int a,int b)
{
return(a/b);
}
int mode(int a,int b)
{
return(a%b);
}

Leave a comment if you have any problem,we will try our best to solve your problem.

C Program to Generate Multiplication Table

Write a C Program to Create Multiplication Table ?

If you are looking for a C program to generate multiplication table.So, In this blog, we will help you to learn and how to write a program for multiplication table in C, and also the logic to print multiplication table of any given number in C program.Just go through this C programming tutorial to learn about multiplication table in C.

Enter any integer number as an input of which you want multiplication table. After that, we use for loop from one to ten to generate multiplication of that number.Inside for loop just multiply numbers and print result in each iteration.Now let’s have a look in a programmatic way

C Programming Code to print multiplication table:

#include<stdio.h>
int table( int num )
{
int i,sum=0;
for(num=1;num<=10;num++)
{
for(i=1;i<=10;i++)
{
sum=num*i;
printf(“sum=%d\n”,sum);
}
}
}
int main()
{
int n,table1;

table1=table(n);
return 0;
}

Let us know if you are stuck somewhere and need help.Send us your problem and we will publish the solution,We will try our best to provide you a solution to your problem. You are also free to request some other problem using our comments section.See our more C Programming Language.

C Program to Print Pyramid

Write a C Program to print pyramid ?

Hello friends, we are back with another simple and most interesting C Program.In our last blog we saw you how to write  c program to check whether the number is palindrome or not.In this program we will make a pyramid with the help of C programming Language.This kind of problems is useful for beginners to understands the fundamentals of loops and spaces.
A pattern of numbers, star or characters is a way of arranging these in some logical manner or they may form a sequence. Some of these patterns are triangles which have special importance in mathematics.Let’s see the programming part of this program.

C Programming Code to print pyramid:

#include<stdio.h>
int pyramid(int row )
{
int i,j,space=4,c=0;
for ( i=1;i<=row;i++)
{
for (j=1;j<=space;j–)
{
printf(” “);
}

for( j=1;j<=i;j++)
{
printf(“%d”,j);

}
printf(“\n”);
}
return ( row );
}
int main()
{
int line;
printf(“enter the number of lines”);
scanf(“%d”,&line);
pyramid ( line );
return 0;
}

Logic behind this program:

We first take the number of rows in the pattern as input from user using scanf function.
One iteration of outer for loop will print a row of pyramid.
Inner for loop prints the initial spaces for every line and nested while loop prints (2*r – 1) space separated stars for rth row of pyramid.

Stay connected with us for more C Programming Language.Leave a comment for any question.

 

En-Query

Your Name*
Subject*
Phone Number*
Email Address*

Message*