report
-
Upload
nishiya-vijayan -
Category
Documents
-
view
37 -
download
5
Transcript of report
CHAPTER-1
INTRODUCTION
NeST Software (Network Systems & Technologies (P) Ltd) is a technology company
which offers customized software and hardware development services for engineering
applications and product development services for customers worldwide. NeST Software, is the
Software division of SFO Technologies and part of the NeST Group of companies.
The NeST software Division is certified at ISO 9001 and ISO 27001.NeST is one of the
pioneers in the Software Industry to be assessed at CMMI V1.1 (IPPD/SE/SW/SS) Maturity
level 5 in early 2003 . With some of the world’s leading corporations as customers, NeST has
business operations in the United States, Canada, India, Japan, Europe, UK, UAE, Qatar &
Australia.
In addition to NeST group strengths in hardware manufacturing, electronics R&D & fiber
Optics, NeST specialize in offering customized services and solutions in
Embedded System Development including hardware design, product development, and
System & Application software for embedded devices.
System software and applications
Industrial and Process Automation
Consumer Electronics & Multimedia solutions
Medical Instrumentation
Broadband Network Management Solutions
Security Solutions
Client-server and Groupware applications
Global Award from GEHC- Competitiveness/Globalization in 2004
VISION
"To be a leader in technology led software and product engineering services for global
customers"
1
CHAPTER-2
ORGANIZATION STUDY
2.1 INDUSTRY FOCUS
2.1.1 HEALTHCARE
NeST is a technology partner to leading medical players for well over a decade and has
been developing critical systems for their various solutions. Meeting stringent processes and
R&D innovations is the key to success with most of the clientele. NeST also partner in
developing customized solutions, thereby taking less time-to-market.
Medical Domain Standards
DICOM
IHE
HL 7
HIPAA
Image Processing
Medical image processing capability includes multi-modality image registration, image
re-construction (MPR, OSEM, FBP) for nuclear medicine, noise reduction, brain volume
calculationand statistical analysisof medical images, model search using AFDM.
Performance Tuning
NeST has undertaken performance optimization challenges for different customers. NeST
engineers are experienced in identifying and fixing “hot spots” in applications and libraries using
different tools (Intel VTune, Rational Purifyplus and Microsoft code profiler). NeST also offer
code optimization as a service across all verticals. NeST has extensive experience in medical
domain provides value in terms of efficiency of optimizations carried out. The trend in the
industry to enable the applications for using multi-core architecture has led to the development of
expertise in parallel programming using GPU and Muti-core for performance optimizations &
improvement.
2
Algorithms
NeST work closely with R&D divisions of major equipment manufacturers, to conduct
feasibility and prototyping of new image analyzing algorithms. NeST support algorithm
development, in collaboration with universities and academic institutes. One sought after
services by medical imaging solution providers is “Algorithm Development (from idea to
algorithm design and implementation)”.
Consultancy Services
NeST offers Consultancy services for application porting to Windows Vista and .NET
platform. NeST provides guidance and support for porting healthcare applications to new
windows platform. NeST also offers comprehensive design and implementation support for
DICOM gateways and for 64 bit porting.
Skill set of Healthcare Business Unit
Tools: Clearcase, Crystal reports, CVS,DVT , Eclipse , Erwin , Qt, MESA , Rational Pure
overage , Rational Purify ,Rational Rose ,Share Point, Team Foundation Server , VC 6.0,
Visio Visual test ,VS 2005 , VS 2008 ,VSS ,VTune, Websphere.
Technologies : .NET 2.0 ,.NET 3.0, .NET 3.5, ADO.NET , AJAX ,ASP.NET , COM\DCOM ,
DirectX, EJB , Install Shield ,Intel Threading Blocks, J2EE , LINQ , Managed DirectX , MFC ,
ODBC Open GL, Open MP Servlet , CUDA, RAPIDMIND, Silverlight , SSE,SSE2 ,WCF ,
Webservice ,Win32 ,Windows Forms, WP,F WWF, XML, XSLT, X-Windows .
Languages: Assembly, C, C#, C++ , HTML,IDL , Java, JScript, JSP, ATLAB , Perl, PL-SQL,
VB.NET, VBScript .
Database: MS SQL, MySQL, Orcale, Pointbase .
2.1.2 AUTOMATION
NeST has developed Automation solutions which is easy to integrate and with adherence
to global Automation standards for leading players of Power Generation, Transmission &
Distribution , Semiconductor Manufacturing, Enterprise Wide monitoring solutions,Agro
3
Processing and Pharma Industries from US, Europe and Japan. The intelligence built in the
solutions NeST provide for manufacturing industries reduces the time to market, and increases
throughput. NeST solutions are highly user-friendly, flexible, scalable and built on latest
hardware and software platforms & technologies for seamless integration. Combining the
domain expertise and the engineering skills, NeST aimed to be a true value partner for the full
spectrum of Automation , ranging from plant floor to the interface to enterprise business systems.
Semiconductor Automation
NeST solutions help us in automating, testing, and integrating your equipment with
connectivity to semiconductor wafer fabs and MES. NeST products, frameworks and expertise in
semiconductor domain provide end-to-end solutions in the shortest time possible..
Photovoltaic
Leveraging 13 years of product development and fab-deployment experience, NeST is
now offering solutions and services to Photo-Voltaic industry.
Power Industry
With extensive experience and knowledge in Power Industry, NeST has the entire
spectrum of capabilities to provide services to control and monitor all the elements involved -
right from power generation to final distribution at the consumer end.
Enterprise "Wide Monitoring Systems"
NeST, with its extensive experience and knowledge in the Automation domain,puts into
use its entire spectrum of capabilities to provide integrated enterprise-wide solutions and services
for enhanced data acquisition, visualization, validation, presentation and distribution.
2.1.3 AUTOMOTIVE
NeST has been working with various OEMs and Tier-1 suppliers of the Automotive
Industry for more than a decade. With its extensive experience in automotive industry, NeST
helps its customers to provide a wide range of cost effective solutions and services. The
4
NeSTAutomotive group comprises a dedicated team of engineers who are proficient in
automotive protocols and various automotive technologies.
Technology Spectrum
Automotive Standards
MISRA
MISRA C
OSEK/VDX
Tools
CANoe, CANalyzer, pCAN, MOST Optolyzer, CATC Bluetooth Analyzer
DOORS
QAC
Reference Designs
TI Davinci - Stop Signal detection
Blackfin - for Infotainment
Renesas SH7770 - for Telematics
5
2.1.4 COMMUNICATIONS
Broadband and Networking
NeST offers a range of services in Broadband and Networking with a suite of software and
hardware solutions. NeST leverages its domain expertise and partners technology leaders in
offering a range of expertise aimed at helping customers in new-product development, product
enhancement and maintaining their products to compete successfully in a progressive
marketplace.For years NeST has been offering its customers these services, reducing product
development cycle times resulting in faster time to market. NeST specialize in providing
integrated solutions to customers.
Element Management Value added Applications
Protocols
Operation Support Systems
Technology expertise
Embedded systems
Data communications and networking
Wireless LAN
2.1.5 COMMUNICATIONS & CE
NeST helps its customers shrink the development cycle time and the cost of developing
Consumer Electronics Products by providing:
End to end solutions on the latest technologies
Re-usable components
Salient features of our development service offerings:
Familiarity with industry standards- both existing and emerging
Fast prototyping for technology validation
Technical consultancy
Entire spectrum of product development support from concept to implementation and
maintenance
6
The strong competencies and skill-sets of NeST in Embedded Systems, Multimedia and A/V
Streaming, Wireless Applications complement and support competencies in the Consumer
Electronics domain.
Hybrid Set Top Box Solutions
NeST Software is providing complete turnkey solutions in the development of Hybrid Set
Top Boxes. By leveraging its technology partners in the electronics domain, NeST is able to
offer
A Single window of contact
Quick turnaround time - shortest timeframe
Hardware Reference Design and Customization
Middleware Porting and Integration
Value Added Services - Sports, Education, Health & Lifestyle, YouTube etc
Video IP Cores
NeST has developed its own portfolio of IP cores by leveraging its vast experience in
embedded - FPGA domain. NeST IP repository includes Video Scaler, Video Sharpness
Enhancer, Gamma Correction, Brightness Enhancer, Color Enhancer and Contrast Enhancement
IP cores.
Digital Home Services
NeST is offering focused services to manufacturers and solution providers operating in the
Digital Home market. NeST offerings in the Digital Home market specifically tailored to meet
the requirements of
Chip/Silicon Manufacturers
Device Manufacturers
Middleware and software Solution Providers
2.1.6 AEROSPACE
NeST provides a wide range of services to the aerospace industry to develop both ground-
based and airborne systems. NeST capabilities include development of software and hardware,
7
verification and validation, simulation, continuous engineering, and reengineering. NeST’s
knowledge and experience in hardware engineering, software engineering, DSP and military
standards enables to offer a lower total cost of ownership over the complete product development
lifecycle, thus delivering higher value to the NeST clients. The NeST Avionics Team includes
experienced aeronautical engineers and software specialists with many man-years of experience
in the field of Black Box Decoding and Analysis. NeST is the market leader when it comes to
developing and customizing solutions for avionics domain. Some of the major software products
NeST provide are
FliSAFE - A FOQA tool that increases the effectiveness of any flight safety monitoring
program.
PMT - Performance Monitoring Tool (PMT) effectively monitors aircraft performance
and fuel consumption to enable airlines to control their cost thus providing an added edge
in a fiercely competitive market.
FlightViz - A state-of-the-art Aircraft and Simulator data visualization tool developed by
SimAuthor. We are authorized dealers for FlightViz.
2.2 SERVICES
NeST provide reliable quality services to our customers in Healthcare, Automation,
Automotive, Consumer Electronics and Aerospace in accomplishing their business goals in a
cost-effective manner.
2.2.1 PRODUCT ENGINEERING SERVICES
NeST is an Original Design & Manufacture service provider specializing in the design,
development and prototyping of high-technology engineering products. NeST is uniquely placed
in being able to cater to both software and hardware product development requirements of our
customers, making us an ideal partner for companies looking at an accelerated time-to-market for
their products. NesT has the ability and expertise to work along the entire spectrum of product
development, right from conceptualization to design to implementation, roll-out and support.
8
Safety Critical Systems Development
NeST has capability in developing Safety Critical Systems and has executed
projects/products for various sectors including Power, Consumer and Defence. These products
have passed conformance to IEC 61508 SIL3 and automotive standard ISO /DIS 26262. The
skills include arriving at a Product specification, Hardware and Software development in
conformance with safety critical standards, FMEA, Testing and Mechanical enclosures
complying with the safety needs.
Services to Device Manufacturers
Total Concept to Product Development
Product Re-engineering and customizations
Product integration and testing
Development of specific hardware/ software
Support to end customers
Services to Silicon Manufacturers
VLSI design and Testing services
Reference designs/ prototypes
Porting stacks/applications to the platform
Test systems
Support for end customers for building products around your systems
Middleware Software Solution providers
Licensing of IP
Developing stacks/codecs for specific DSPs/Processors
Platform specific porting and Optimization
Frameworks for automated Nest Quality Centre
Integration of middleware with end customer products
Hardware Design & Development
Schematics
High-speed digital design
9
Low signal analog design
Component selection
BOM optimization
Gerber release
Board assembly
Board bring-up and testing
Test fixture design
Re-engineering
Reverse engineering
Software Design & Development
BSP customization
Device driver development & porting
Middleware and protocol stack porting & integration
Applications development & porting
Re-engineering
Reverse engineering
QA & Testing
Functional testing
Usability/ UI testing
Performance testing
Compliance testing
2.2.2 VLSI DESIGN SERVICES
NeST testifies Quality & Reliability by assuring us with first-time-right VLSI products.
Reduced time-to-market without driving up the cost factor is yet another reason for being a
priority option to the customers. NeST’s design professionals with experience of scores of silicon
proven tape-outs can help us to achieve this.
10
Value to Customer
One stop solution for product design and reengineering with support for hardware &
software development and manufacturing.
Works as an extended design center for customers
Skilled talent pool with hands on experience in various development and testing tools
Ability to ramp up engineering resources as per client needs
Service Offerings
New product design & development or reengineering existing product
Proof-of-concept / demonstration system for emerging technologies and standards
Analog, Digital & Hybrid ASIC/ SoC Design, Verification and Testing
FPGA prototyping of ASIC designs
Retargeting Services: FPGA-to-FPGA, ASIC-to-FPGA
2.2.3 ALGORITHM R&D SERVICES
NeST provides complete services - concept development, analysis, algorithm design,
mathematical modeling, performance evaluation and prototyping - for a wide range of problems
in scientific computing, computer vision, image processing and signal processing. Concrete
problems in real life situations often cannot be solved with standard algorithms in their pure
form. This is because the standard algorithms do not take into account the custom factors
associated with a particular application. To create a solution that meets the customer needs, the
existing algorithms should be adopted or even new algorithm should be developed. One also
needs to analyze all the premises on which an algorithm is based before using it in a context.
NeST provides high quality services in these domains at very affordable rates.
11
Services offered
Mathematical modeling and algorithm design
Survey and analysis of the art techniques and algorithms
Critical evolution of available algorithms and solution suggestions
Development of new algorithm tuned to specific customer needs
Adaptation and customization of existing algorithms
Environment modeling, statistical performance modeling and testing
Model-based design
Algorithm design and modeling using MATLAB/Simulink
Translation of MATLAB/Fortran/Cinto Simulink models
Creating generic custom tool boxes
Integrating of legacy C-Code into Simulink blocks
Automatic code generation using RTW/RTW Embedded coder
Verification and Validation
Implementations
Proof of concepts and Demo implementations
Algorithm prototyping for Real Time Embedded Platforms
Selection and optimization of algorithms for FPGA and GPU
Integrated development in MATLAB, Simulink and C/C++
NeST Value proposition
NeST has vast expertise in industrial and healthcare domains. Available expertise ranges
over the whole spectrum of product development cycle. The algorithm R&D team has access to
the large pool of expertise especially in Embedded Design, Analog and Digital Hardware Design
and GPU Computing. The synergy between the R&D team and the other design groups has
helped in bringing out highly realistic and innovative solutions.
12
2.2.4 ENGINEERING APPLICATIONS
Engineering Application Software, unlike their business application counter parts, are
characterized by high degree of hardware integration, performance and efficiency considerations
and domain knowledge in the respective engineering discipline. Engineering Applications
Software Services provided by NeST help Engineering Companies to address the growing
demand of Application Software in their product portfolio. NeST has been a leading provider of
Engineering Applications solutions since its inception. We have proven domain knowledge and
development expertise in diverse verticals and horizontals.
Horizontals
User Experience (UX)
Windows-7-Software-Services
Middleware
Multicore & HPC
Image Processing
Graphics
Information Security
Verticals
Point Of Service (POS) Terminals
Plant Automation Systems
Analytical Instruments
Automated Test and Measurement Systems
Life Science and Scientific Research
Security & Surveillance Systems
2.2.5 MULTICORE SOFTWARE SERVICES
A multi-core era has dawn on the mainstream microprocessor hardware industry. As the
number of cores increases exponentially, there is a motivation to integrate data parallel (SIMD:
Single Instruction Multiple Data) computational units onto a single die, resulting in
13
heterogeneous processor architectures. These trends in the underlying processor hardware have
profound implications in product design, as well as in mainstream software development.
As a product company, NeST wants to focus more on the features that would delight its
customers, than on the petty details of implementation. This is why NeST offers Multicore
Software Services, first in the industry to do so. The strong skills of NeST teams in Image
Processing, Computer Graphics and Media Processing ensures successful implementation of
compute intensive problems in these fields on modern hardware platforms reporting significant
speedups.
NeST’s skill sets include:
GPGPU (General Purpose GPU)
CUDA(NVIDIA GPU), DirectX HLSL, OpenGL GLSL (NVIDIA, ATI GPUs),
RapidMind (GPU, Cell BE), IBM Cell SDK (GPU, Cell BE)
Streaming Extensions
Intel SSE, SSE3, SSE4 (x86), PowerPC Altivec (POWER)
Parallel Environments
OpenMP, Intel Threading Building Blocks (TBB), MPI, POSIX pthreads, Win32 threads,
Microsoft ParallelFX (.NET), Stream Programming
Domain Skills
Image Processing, 3D Graphics, HD Video Processing, Medical Imaging
NeST Multicore services include:
Computer Vision and Visualization
Interactive 3D Graphics realized in desktops through commodity graphics cards
for Gaming industry is now finding applications in more serious fields such as medical
diagnosis. As an early adopter of GPGPU, NeST is perfectly placed to cater to our
application development needs in 2D and 3D Graphics. Computer Vision is another area
that can benefit from GPGPU. Whether it is industrial inspection, medical imaging, video
surveillance or consumer electronics, NeST is a ideal partner in implementing image
processing algorithms.
14
HPC Applications Development
High Performance Computing (HPC) is now getting more pervasive, rather than
being confined to pure scientific pursuits. Applications range from simulations that
replace physical testing to modeling of complex phenomena, in verticals such as life
sciences, manufacturing, energy, intelligence, defense, and earth sciences. NeST can
work with us in creating suitable models and then implement it in the chosen data parallel
hardware.
PerformanceOptimization
The advent of multi-core has signaled a return of performance and efficiency as
key considerations in software design. Condensing years of experience into a scientific
approach towards optimization, NeST has a track record in finding parallelization
opportunities that may not be obvious in the first place. Depending on the code snippet
being optimized and the target platform, we can expect speedups from anything between
2x to 200x, compared to original serial implementations.
R & D Consultancy
NeST invests in research and development in-house to constantly acquire new
software skills demanded by emerging hardware platforms. As a valued customer, we
benefit by getting recommendations on technology choices - be it the hardware platform
for our next product, the libraries to use for software development, or the parallelization
potential of our application.
2.3 NEST QUALITY CENTRE
A decade & more of untiring effort has transformed NeST Quality Center (NQC), the
V&V Service Group at NeST, to a formidable Testing Service Provider catering to various
Fortune 500 companies. NQC has the ability and expertise to perform Quality Control along the
entire spectrum of product development. NeST provide reliable quality services to its customers
enabling them to achieve their business goals in a cost-effective manner.
15
NeST expertise in validating products from multiple Engineering verticals has earned
long term customers across many domains.
2.3.1 QUALITY CONSULTANCY
NeST is committed to excellence in quality deliverance and NeST’s Quality and
Information Security certifications bear testimony to this fact. NeST have been certified for the
ISO 27001:2005 Information Security Management System, ISO 9001:2008 standards by Bureau
Veritas, Automotive SPICE under the PATHFINDER certification scheme, NeST becomes the
4th company in the world to be ASPICE -L5 assessed for evaluating the quality and process
competences as well as the organizational maturity of software service providers for automotive
manufacturers and also have been assessed successfully for SEI CMMIv1.1 Level 5 (SE-SW-
IPPD-SS). The certifications, along with NeST’s corporate work culture that is aligned closely
with them, have helped it carve a niche area of excellence in the software industry.
While the ISO 27001 certification endorses NeST's commitment to managing client
information at the highest levels of security, the CMMI v1.1 Level 5 assessment reflects its focus
on building organizational process maturity to enable the delivery of best-in-class solutions to
clients. The ISO 9001, CMMI level5 , ISO 27001 and ASPICE-L5 certifications imply that
NeST follows clear procedures and practices that blend well with the customer's specific
requirements. With over a decade of hands-on experience in implementing globally acclaimed
quality systems, NeST offers consultancy services to help clients enhance process improvement
through the implementation of effective Quality and Information Security Management Systems.
Sony (Japan), NeST Group of Companies (US, Dubai and India), M/s Dimensions,
Technopark, India and M/s Gemini Software, Technopark, India, are among several global
companies that have availed NeST's consultancy services for CMM and ISO certification.
NeST offer consultancy services in three modes:
Onsite : Executed on customer's premises
Onsite-Offshore: Executed both on NeST's offshore premises and the customer's
premises - brings significant cost benefits to the customer.
Offshore : Executed on NeST's offshore premises
16
2.3.2 TESTING SERVICES
NeST has an established Testing Services Business unit, focusing on Independent
Verification and Validation of products. The Independent Testing Team of NeST works closely
with the customer and ensures that the systems achieve the quality levels demanded by the
customers. The team associates from the initial stages of development to define a customized
workflow that facilitate a critical and objective evaluation of the product.
Testing consultants at NeST has extensive experience in testing methodologies, full lifecycle
testing and test automation which helps the team to deliver quality software, with less risk, at
lower costs. As a specialist provider of testing services, Independent Testing Team at NeST
continually strives to innovate, improve and expand the services to our clients. The team
challenges the assumptions, risks, and uncertainty inherent in the development of the work
product and addresses these concerns during the evaluation of the product. The team certifies the
product after successful completion of testing, based on the acceptance criteria set by the
customer.
Domains & Technologies
Specialized Testing
Test Automation
Multilevel Testing
Product Certifications
Execution Model
2.3.3 TRAINING
Trainings are given to professionals and students on various Quality related topics.
Trainings include Model Based trainings, specialized trainings, In-house Certification Programs
and Finishing courses.
17
ISTQB accreditation
NeST has state-of-the-art facilities to provide training to professionals and students on
various Quality-related topics. NeST’s Training bouquet includes Model-based and specialized
training, In-house Certification Programs, and Finishing courses. NeST has International
Software Testing Qualifications Board (ISTQB) accreditation and is an authorized trainer for
ISTQB certification.
ISTQB is based in Belgium and is the world's only non-profit organization dedicated
solely to providing practical, globally-accepted software testing certification.
Model Based trainings include
ISO 9001 Model
ISO 27001 Model
CMMI - An Introduction
Specialized trainings include
Internal Auditing
Risk Management
Configuration Management
Metrics
Statistical Process Control
In-house certification programs related to Quality and Testing
NeST Certified Quality Analyst
NeST Certified Testing Professional
NeST Certified Internal Auditor
Finishing courses include
Introduction to Software Engineering
Fundamentals of Software Development Life Cycles
18
CHAPTER-3
EMBEDDED TRAINING
Trainings are given to professionals and students on various Quality related topics.
Trainings include Model Based trainings, specialized trainings, In-house Certification Programs
and Finishing courses.
3.1 INTRODUCTION
An embedded system is a special purpose computer designed to perform one or a few
dedicated functions, sometimes with real-time computing constrains. An embedded system is a
special purpose computer system which resides inside the device or equipment it manages or
controls. An embedded system has certain predefined tasks and specific constrains thus differing
from the general purpose PC computer. Embedded systems are found in a variety of common
electronic devices, such as: (a) consumer electronics -- cell phones, pagers, digital cameras,
camcorders, videocassette recorders, portable video games, calculators, and personal digital
assistants; (b) home appliances -- microwave ovens, answering machines, thermostat, home
security, washing machines, and lighting systems; (c) office automation -- fax machines, copiers,
printers, and scanners; (d) business equipment -- cash registers, curbside check-in, alarm
systems, card readers, product scanners, and automated teller machines; (e) automobiles --
transmission control, cruise control, fuel injection, anti-lock brakes, and active suspension.
REAL TIME EMBEDDED SYSTEMS
The embedded devices should interact with the environment as effectively as possible. A
real-time operating system (RTOS) is an operating system (OS) intended to serve real-time
application requests.
Two categories
Hard real-time system
Soft real-time system
A Hard Real Time System is one in which the response time is critical and which can be
considered to have failed if response is delayed beyond the specified time.
19
Examples are automotive and aerospace applications, industrial control applications etc .
A soft real time system is one that can tolerate some delays especially in peak load conditions
and still produce a useful output.
A typical example is an online reservation system
3.1.1 THE EMBEDDED SYSTEM DEVELOPMENT PROCESS
The embedded system development process covers both the design of the hardware as
well as the software. Embedded building blocks
Hardware
Microprocessors/ Microcontrollers
Memory
Logic circuits
Analog and mixed signal circuits
Power supply circuits
Software
Real Time Operating Systems (RTOS)
Application Software
3.2 ARM
ARM is a reduced instruction set computer (RISC) instruction set architecture (ISA)
developed by ARM Holdings. It was named the Advanced RISC Machine and, before that, the
Acorn RISC Machine. The ARM architecture is the most widely used 32-bit instruction set
architecture in numbers produced. ARM offers several microprocessor core designs, including
the ARM7, ARM9, ARM11, Cortex-A8, Cortex-A9, and Cortex-A15. Companies often license
these designs from ARM to manufacture and integrate into their own system on a chip (SoC)
with other components like RAM, GPUs, or radio basebands (for mobile phones).
The ARM9TDMI is a member of the ARM family of general-purpose microprocessors.
The ARM9TDMI is targeted at embedded control applications where high performance, low die
size and low power are all important. This 32 bit microprocessor, offers high performance and
very low power consumption. The ARM architecture is based on Reduced Instruction Set
20
Computer (RISC) principles, and the instruction set and relateddecode mechanism are much
simpler than those of microprogrammed Complex Instruction Set Computers. This simplicity
results in a high instruction throughput and impressive real-time interrupt response from a small
and cost-effective processor core.
The ARM9TDMI supports both the 32-bit ARM and 16-bit Thumb instruction sets,
allowing the user to trade-off between high performance and high code density. The
ARM9TDMI supports both bidirectional and unidirectional connection to external memory
systems.The device has Harvard architecture, and the simple bus interface eases connection to
either a cached or SRAM-based memory system.
Pipeline techniques are employed so that all parts of the processing and memory systems
can operate continuously. While one instruction is being executed, its successor is being
decoded, and a third instruction is being fetched from memory. The ARM7TDMI-S processor
also employs a unique architectural strategy known as THUMB, which makes it ideally suited to
high-volume applications with memoryrestrictions, or applications where code density is an
issue.The key idea behind THUMB is that of a super-reduced instruction set. ARM processor
consists of two types of instruction sets
The 32-bit ARM Instruction Set.
The 16-bit Thumb Instruction Set.
Two execution states to select which instruction set to execute
THUMB code is able to provide up to 65% of the code size of ARM Instruction Set.
Some Microcontrollers used for the development are
8051
PIC
LPC 2129 (ARM 7TDMI)(256KB Flash)
LPC 2368 (ARM 7TDMI)(512KB Flash)
STR912FW44 (ARM 966E-S)
RCM3700 (Rabbit 3000)
21
3.2.1 IDE (INTEGRATED DEVELOPMENT ENVIRONMENT)
An integrated development environment (IDE) is a software application that provides
comprehensive facilities to computer programmers for software development. An IDE normally
consists of:
a source code editor
build automation tools
a debugger
IDE’s typically present a single program in which all development is done. This program
typically provides many features for authoring, modifying, compiling, deploying and debugging
software. The aim is to abstract the configuration necessary to piece together command line
utilities in a cohesive unit, which theoretically reduces the time to learn a language, and increases
developer productivity. It is also thought that the tight integration of development tasks can
further increase productivity. Some of the IDE’s are
Swift X
Code Warrior Development Studio
MULTI
Visual Lynux
KEIL
KEIL
The Keil™ products from ARM include C/C++ compilers, debuggers, integrated
environments, RTOS, simulation models, and evaluation boards for ARM®, Cortex™-M, Cortex-
R, 8051, C166, and 251 processor families.
Features
Complete support for Cortex-M, Cortex-R4, ARM7, and ARM9 devices
Industry-leading ARM C/C++ Compilation Toolchain
µVision4 IDE, debugger, and simulation environment
KeilRTX deterministic, small footprint real-time operating system (with source code)
TCP/IP Networking Suite offers multiple protocols and various applications
USB Device and USB Host stacks are provided with standard driver classes
Complete GUI Library for embedded systems with graphical user interfaces
22
ULINKpro enables on-the-fly analysis of running applications and records every
executed Cortex-M instruction
Complete Code Coverage information about your program's execution
Execution Profiler and Performance Analyzer enable program optimization
Numerous example projects help you quickly become familiar with MDK-ARM's
powerful, built-in features
CMSIS Cortex Microcontoller Software Interface Standard compliant
3.2.2 MCB2300 EVALUATION BOARD
The Keil MCB2300 Evaluation Board introduces us to the NXP (founded by Philips)
LPC2300 ARM family and allows us to create and test working programs for this advanced
architecture.Two serial interfaces, a speaker, analog input (via potentiometer), two CAN
interfaces, LCD, USB, Ethernet, and eight LEDs make this board a great starting point for your
next ARM project.
The MCB2300 Evaluation Board is available in two different configurations:
The MCB2370 Evaluation Board is based on the NXP LPC2370 family and comes
populated with an LPC2378.
The MCB2388 Evaluation Board is based on the NXP LPC2380 family and comes
populated with an LPC2388.
3.3 NXP (founded by Philips) LPC2368
The NXP (founded by Philips) LPC2368 is an ARM7TDMI-S based high-performance
32-bit RISC Microcontroller with Thumb extensions, 512KB on-chip Flash ROM with In-
System Programming (ISP) and In-Application Programming (IAP), 58KB RAM, CPU clock up
to 72 MHz, On-chip crystal oscillator, On-chip 4MHz RC oscillator, On-chip PLL Enhanced
Vectored Interrupt Controller, Ethernet 10/100 MAC with DMA, USB 2.0 Full Speed Device
Controller, CAN 2.0B with two channels, General purpose DMA controller, Four UARTs, one
with full modem interface, Three I2C serial interfaces, Three SPI/SSP serial interfaces, I2S
interface, SD/MMC memory-card interface, 10-bit ADC with 6 channels, 10-bit DAC, Four 32-
bit timers with capture/compare, Watchdog Timer, PWM unit for three-phase motor control,
23
Real Time Clock with optional battery backup, Brown-out detect circuit, General purpose I/O
pins.
Features
ARM7TDMI-S processor, running at up to 72 MHz.
Up to 512 KB on-chip Flash Program Memory with In-System Programming (ISP) and
In-Application Programming (IAP) capabilities.
16 KB Static RAM for Ethernet interface.
8 KB Static RAM for USB interface.
External memory controller that supports static devices such as Flash and SRAM.
Four UARTs with fractional baud rate generation.
Two CAN channels on the APB bus.
Three I2C Interfaces reside on the APB bus.
Four general purpose Timers.
Real Time Clock with separate power pin, clock source can be the RTC oscillator.
On-chip Power On Reset.
3.3.1 ARCHITECTURAL OVERVIEW
LPC2364/6/8/78 is an ARM-based microcontroller for applications requiring serial
communications for a variety of purposes. These microcontrollers incorporate a 10/100Ethernet
MAC, USB 2.0 Full Speed interface, four UARTs, two CAN channels, an SPI interface, two
Synchronous Serial Ports (SSP), three I2C interfaces, an I2S interface, anda MiniBus (LPC2378
only: 8-bit data/16-bit address parallel bus). ARM processors have a single 4 GB address space.
In LPC23xx the debugging is supported via the JTAG interface.
The LPC2300 consists of an ARM7TDMI-S CPU with emulation support, the ARM7
LocalBus for closely coupled, high speed access to the majority of on-chip memory, the AMBA
Advanced High-performance Bus (AHB) interfacing to high speed on-chip peripherals
andexternal memory, and the AMBA Advanced Peripheral Bus (APB) for connection to otheron-
chip peripheral functions.
The microcontroller implements two AHB buses in order to allow the Ethernet block
tooperate without interference caused by other system activity. The primary AHB, referredto as
AHB1, includes the Vectored Interrupt Controller, General Purpose DMA Controller,External
24
Memory Controller, USB interface, and a 8 KB SRAM primarily intended for useby the
USB.The second AHB, referred to as AHB2, includes only the Ethernet block and anassociated
16 kB SRAM. In addition, a bus bridge is provided that allows the secondaryAHB to be a bus
master on AHB1, allowing expansion of Ethernet buffer space intooff-chip memory or unused
space in memory residing on AHB1.
3.3.2 BLOCK DIAGRAM
Fig : Block diagram of LPC 23xx
25
ON-CHIP FLASH MEMORY SYSTEM
The LPC2300 includes a Flash memory system with up to 512 kB. This memory may be
used for both code and data storage. Programming of the Flash memory may beaccomplished in
several ways. It may be programmed In System via the serial port. Theapplication program may
also erase and/or program the Flash while the application is running, allowing a great degree of
flexibility for data storage field firmware upgrades, etc.The Flash is 128 bits wide and includes
pre-fetching and buffering techniques to allow it tooperate at SRAM speeds.
ON-CHIP STATIC RAM
The LPC2300 includes a static RAM memory up to 32 kB in size, that may be used
forcode and/or data storage.The SRAM controller incorporates a write-back buffer in order to
prevent CPU stallsduring back-to-back writes. The write-back buffer always holds the last data
sent bysoftware to the SRAM. The data is only written to the SRAM when software does
anotherwrite. After a "warm" chip reset, the SRAM does not reflect the last write operation.
Twoidentical writes to a location guarantee that the data will be present after a
Reset.Alternatively, a dummy write operation before entering idle or power-down mode
willsimilarly guarantee that the last data written will be present after a subsequent Reset.
EXTERNAL MEMORY CONTROLLER (EMC)
The LPC23xx External Memory Controller (EMC) is an ARM Prime Cell Multiport
Memory Controller peripheral offering support for asynchronous static memory devices such as
RAM, ROM ,and Flash. The EMC is an Advanced Microcontroller Bus Architecture (AMBA)
compliant peripheral.
Features
• Asynchronous static memory device support including RAM, ROM and Flash with or
without asynchronous page mode.
• Low transaction latency.
• Read/Write buffers to reduce latency and to improve performance.
• 8-bit bit wide static memory support
• CAN can be used as an interface to some external I/O devices.
• Two chip selects for chip selects for static memory devices.
26
VECTORED INTERRUPT CONTROLLER (VIC)
The LPC23xx has two interrupt inputs called Interrupt request(IRQ) and Fast Interrupt
Request(FIQ). The VIC takes 32 interrupt request inputs and assigns them as FIQ or Vectored
IRQ types. FIQ requests the highest priority. If more than one request is assigned to FIQ, the
VIC ORs the requests to produce the FIQ signal to the processor.
Vector IRQ's with include all interrupt requests that are not classified as FIQs, have a
programmable interrupt priority. When more than one interrupt is assigned same priority and
occurs simultaneously, the one connected to the lowest numbered VIC channel will be serviced
first.
GENERAL PURPOSE INPUT/OUTPUT (GPIO)
LPC 23xx has upto five general purpose IO ports which each contain 32 IO lines giving a
maximum of 160 pins. PORT0 and PORT1 have a set of control registers on the APB bus. The
LPC23xx family has another set of GPIO control registers located on the local bus called the Fast
GPIO control registers. PORT0 and PORT2 can generate an interrupt when there is a rising or
falling edge on an individual pin.
Fast IO Registers
It is a set of fast GPIO registers located on the ARM 7 local bus. These registers allow a
port pin to be toggled in just two cycles or at a rate of 30MHz. Also, Fast GPIO registers
introduce a mask register that improves the bit manipulation of each port. Here, the GPIO pins
are controlled by four registers.
Important GPIO functions are:
GPIO registers are relocated to the ARM local bus so that the fastest possible I/O
timing can be achieved.
Mask registers allow treating sets of port bits as a group, leaving other bits
unchanged.
All GPIO registers are byte and half-word addressable.
Entire port value can be written in one instruction.
Bit-level set and clear registers allow a single instruction set or clear of any number of
bits in one port.
27
ETHERNET MAC
The LPC23xx includes three complex communication peripherals: an Ethernet MAC,
universal serial bus controller and a controller area network interphase. The Ethernet
MAC(media access controller) is used along with an external PHY chip(physical layer) to
provide a nod capable of sending and receiving data over an Ethernet network. The most
common application for such and is to communicate with other computers using the TCP/IP
communications protocol. The TCP/IP protocol is designed to support local and wide area
networking. The most dominant network protocol used for local area networks is Ethernet or
Ethernet II.
The LPC23xx includes an Ethernet mac sub-layer. The Ethernet mac is designed to
interphase to an external Ethernet physical layer (PHY) to make a complete Ethernet controller
which is similar to the IEEE 802.3 standards and supports 10-100 mbps full-duplex
communication. The Ethernet mac is located on its own AHB bus along with 16k of SRAM and
its own dedicated BMA unit. The Ethernet mac has independent transmit and receive paths.
CAN CONTROLLER
The LPC23xx is available with two independent can controllers on-chip. The CAN
controllers are one of the most complicated peripherals on LPC23xx system. The can protocols
can be used as a general purpose embedded networking protocol and is used for distributed
control system. The CAN network is a high performance communication protocol for serial data
communication. Microcontrollers with on-chip can controllers are used to build powerful local
networks by distributed real-time control with a high level of security.
The applications are automotive industrial environments and high speed networks as well
as low cost multiplex wiring. It reduces wiring harness and enhanced diagnostic and supervisory
capabilities. The can module consists of two elements; the controller and the Acceptance Filter.
All registers and the RAM are accessed as 32 bit words.
Features
• Multimaster architecture with non-destructive bit wise arbitration
• Programmable transfer rates up to one M bits per second.
• Powerful error handling capabilities.
• NRZ coding/decoding with bit stuffing.
28
UNIVERSAL SERIAL BUS
The Universal Serial Bus (USB) is a four-wire bus that supports communication between
a host and one or more (up to 127) peripherals. The host controller allocates the USB band width
to attach devices to a token based protocol. the best supports hot plugging and dynamic
configuration of the devices. All transactions are initiated by the host controller.
The LPC23xx consist of a USB peripheral located on the VLSI peripheral bus. The USB
peripheral incorporates the physical layer interphase so that it can be connected directly to the
USB network.
The USB controller requires an accurate 48 MHz clock and this cannot be derived from
the CPU clock or the peripheral clock as this would limit the maximum speed of the LPC23xx to
48MHz instead the USB controller clock is derived directly from output of the PLL, which is
divided down by a dedicated USB prescaler register.
The USB peripheral has two operating modes; Slave mode and DMA mode. In slave mode every
USB transaction will generate an interrupt. In the DMA mode, the DMA descriptors may be
located anywhere in the USB RAM. The parameters stored in the DMA descriptors include the
start address of the end point DMA buffer in the USB AM, the size of the buffer, the start
address of the next DMA buffer and control information for the DMA peripheral. In this mode
several discrete buffer are concatenated together and transferred over a USB pipe and
automatically reconstructed with in the USB RAM.
UNIVERSAL AYNCHRONOUS RECEIVER TRANSMITTER (UART)
Serial transmission can be classified into two types- Synchronous and Asynchronous. In
synchronous transmission, the sender and receiver share a common clock with one another or the
sender provide a strobe or other timing signal so that the receiver knows when to read the next
bit of data.
In asynchronous transmission, no clock signal is needed. Instead, the sender and receiver
must agree on timing parameters in advance and special bits are added to each word which are
used to synchronize the sending and receiving units.
The LPC 23xx has four on-chip UARTs. They are all identicalto use except UART1 has
additional modem support and UART3 has IrDA support. All UARTs have a built-in Baud rate
29
generator with auto baud capability and 16 byte transmit and receive FIFOs. These are suitable
for RS232 wired communication. UART3 can be configured to work with the IrDA standard for
infra-red communication.
The baud rate generator is a 16 bit prescalar which divides down the Pclkto generate the
UART clock which must run at 16 times the baud rate.
Divisor = Pclk/16 *baud.
The divisor value is stored in two registers. Divisor latch MSB(DLM) and divisor latch
LSB(DLL). The first eight bits of both register holds each half of the divisor. Finally, the DLAB
bit in the LCR register ustbe set to zero to protect the contents of the DLL register.
SPI INTERFACE
This is a simple peripheral engine which can read and write data to the SPI bus. The SPI
peripherals has four external pins – Serial clock pin, Slave select pin and two data pins. The SPI
bus is purely a serial data connection for high-speed data transfer and it does not have any
addressing scheme built into the serial transfer. The SPI clock and data lines can be configured to
operate in different configurations.
I2C INTERFACE
LPC23xx is equipped with a fully featured I2C interface. There are three fully
independent I2C interfaces. Each I2C interface can operate in master or slave mode upto 400K
bits per second and in master mode, it will automatically arbitrate in a multi-master system. The
Serial Clock (SCL) and Data (SDA) lines must be converted from GPIO pins to I 2C pins via the
pin connect block.
The I2C peripheral interface is composed of seven registers. The control registers has two
separate registers to set and clear bits in the control register. The bit rate is also determined by
two registers. The bit rate is obtained by the equation
Bit Rate = Pclk / (I2SCLH + I2CSLL)
The commonly used bit rate is 937500.
TIMERS
30
The LPC23xx has four general purpose timers. All of the general purpose timers are
identical in structure and use. The timers are based around a 32-bit timer-counter with a 32-bit
prescaler. The default clock source for all of the timers is the APB peripheral clock Pclk. The
tick rate of timer is controlled by the value stored in the prescaler register. The prescaler register
will increment on each tick of Pclk until it reaches the value stored in prescaler register. When it
reaches the prescale value, the timer-counter is incremented by one and the prescale counter
resets to zero, and starts counting again.
Capture Mode : Each timer has upto four capture channels. The capture channels allows to
capture the value of the timer-counter when an input signal makes a transition.
Counter Mode : The count control register allows to select between each timer as a counter
or a pure timer.
Match Mode : Each timer has upto four match channels. Each match channel has a match
register which stores a 32-bit number. The current value of timer-counter is compared against the
match register. When the values match, an event is triggered.
WATCHDOG TIMER
The LPC23xx family has a watchdog system to provide a method of recovering control of
a program that has crashed. The watchdog may be clocked from either the internal RC oscillator,
the RTC oscillator or Pclk.
The watchdog has four registers namely, Mode, Timer constant, Feed, Current value. The
watchdog timeout period is set by a value programmed into the Watchdog Constant
Register(WDTCR). The timeout period is determined by
Wdperiod = Twdck *WDTC * 4
The minimum value for WDTC is 256 and the maximum value is 2^32.
PWM MODULATOR
The PWM modu;ator is an extra general purpose timer with some additional hardware. It
is capeable of producing six channels of single edge controlled PWM or three channels of dual
edge controlled PWM. The PWM modulator has an additional shadow latch mechanism which
31
allows the PWM values to be updated on the fly but, the new values will only take effect
simultaneusly at the beginning of a new cycle.
The second hardware addition to the PWM modulator over the basic timers is in the
output to the device pins. In place of match channels, there are a set of SR flip flops. This
arrangement allows the PWM modulator to produce either single edge or dual edge controlled
PWM channels.
ANALOG TO DIGITAL CONVERTER
The A / D converter in LPC23xx is a 10-bit successive approximation converter with a
conversion time of 2.44µs. The A/D converter has either 6 or 8 multiplexed inputs. The A/D
clock is derived from the Pclk. The Pclk must be divided down to 4.5MHz.
CLKDIV = (Pclk / Adclk) – 1
The A/D has the ability to fully power down. This reduces the overall power
consumption and the on-chip noise created by the A/D. The A/D has the resolution of 10 bits.
The A/D has two conversion modes; hardware and software.
At the end of each conversion, the result is available in the A/D global data register
ADDR0-ADDR7. At the end of a conversion the Done bit is set and an interrupt may also be
generated if the global enable and channel interrupt enable bits are set in the A/D interrupt enable
register.
DIGITAL TO ANALOG CONVERTER
The LPC23xx has a ten bit D/A converter. It has only a single register. The DAC is
enabled by writing two bits 20 and 21 of PINSEL 1 and converting pin 0.26 from GPIO to the A
OUT function.
Once enabled, a conversion can be started by writing to the VALUE bits in the controlled
register. The conversion time is depended on the value of the BIAS bits.
REAL TIME CLOCK
The LPC23xx Real Time Clock (RTC) is a clock calendar accurate upto year 2099. The
RTC has the option to run from an external 32KHz watch crystal or from the internal Pclk. The
32
RTC also has an associated 2K of low power SRAM called the battery RAM. The RTC and
battery SRAM have a separate power domain so by supplying 3.3V to the Vbat pin, the RTC can
be kept running and the contents of the battery ram may be preserved when the LPC23xx is
powered down. Both the RTC and the battery ram are designed to consume minimum power and
can be run from a battery. Therefore, the RTC may be used to provide a perpetual clock calendar
or it can be used to provide a time reference and periodic interrupts without the need for an
additional external oscillator.
Two time references are available for the RTC, either the external 32KHz oscillator or
the internal Pclk. The RTC clock runs on a standard 32.7KHz clock crystal frequency. Inorder to
derive the 32.76KHz frequency, the Pclk is connected to the reference clock divider. The output
of this divider is then passed to the RTC. ie, this is a prescalar which can accurately divide any
Pclk frequency to produce the required 32KHz frequency.
To ensure that the RTC clock can be accurately derived from any Pclk, the prescalar is
programmed by two registers called PREINT and PREFRAC. These registers hold integer and
fractional divisor values.
PREINT=(int) (pclk / 32768) – 1
PREFRAC= pclk – ( (PREINT + 1) * 32768)
By giving values to Pclk, different RTC values can be obtained.
RTC can also generate alarm events as interrupts. There are two interrupt mechanisms.
The RTC can be programmed to generate an interrupt when any time-count register is
incremented. The second method for generating an RTC interrupt is with the alarm registers.
Each time-counter register has a matching alarm register. If that register is unmasked, it is
compared to the time-counter register. If a match occurs between the time-counter register and
the alarm register, an interrupt is generated.
Applications
Industrial control
Medical systems
33
CHAPTER-4
PROGRAMS
4.1GPIO PROGRAM TO BLINK LED
#include<lpc23xx.h>
void main()
{
int i,j=1,k;
IODIR1=0X0000ffFF;
IOCLR1=0X000000ff;
while(1)
{
for(i=0;i<16;i++)
{
IOSET1= j<<i;
for(k=1;k<=0xffff;k++);
IOCLR1=0X0000ffFF;
}}}
4.2 UART PROGRAM TO TRANSMIT CHARACTERS
#include<lpc23xx.h>
inti,n;
main()
{
char c[] = "ciby";
PINSEL0=0X00000010;
34
U0LCR=0X83;
U0DLL=78;
U0LCR=0X03;
n=strlen(c);
for(i=0;i<n;i++)
{
while(!(U0LSR&0x20));
U0THR=c[i];
}}
4.3 ADC PROGRAM
#include<lpc23xx.h>
void main()
{
PINSEL1=0X00004000;
PCONP =0x1000;
AD0CR=0X01200201;
while(1);
}
4.4 RTC PROGRAM
#include<lpc21xx.h>
void main()
{
PREINT=0x0010;
PREFRAC=0x015;
SEC=4;
35
MIN=0;
HOUR=0;
CCR=0x01;
}
4.5 TIMER PROGRAM
#include <LPC23xx.H>
void T0_MAT(void)__irq
{
T0EMR|=0x82; //set EMC1,CHANEL1
T0IR=2;
VICVectAddr=0X0000;
}
int main()
{
PINSEL3=0X0B000000; //TIMER0 CHANNEL1
T0PR=0X0;
T0TCR=0X02;//RESET TIMER1
T0MCR=0X18; //INTERRUPT ON MR1,RESET ON MR1
T0MR1=11;
T0TCR=1;//START TIMERO
VICVectPriority4=0;//TIMER 0 PRIORITY 4
VICVectAddr4=(unsigned)T0_MAT;
VICIntEnable=0X00000010;
while(1);
}
36
4.6 INTERRUPT REQUEST PROGRAM
#include<lpc23xx.h>
void vectored_irq_1(void)__irq;
void vectored_irq_2(void)__irq;
void main()
{
PINSEL4=0X00500000;
IODIR0=0XFFFFFFF;
VICVectPriority14=0x0;
VICVectAddr14=(unsigned)vectored_irq_1;
VICIntEnable=0X00004000;
VICVectPriority15=0x000;
VICVectAddr15=(unsigned)vectored_irq_2;
VICIntEnable=0X00008000;
while(1);
}
void vectored_irq_1(void)__irq
{
IOSET0=0XFF;
IOCLR0=0XF;
EXTINT=0X01;
VICVectAddr=0X00000000;
}
void vectored_irq_2(void)__irq
{
IOSET0=0XFF00;
IOCLR0=0XF00;
37
EXTINT=0X02;
VICVectAddr=0X00000000;
}
4.7 LCD PROGRAM
#include<lpc23xx.h>
#include"lcd.h"
void main()
{
lcd_init();
lcd_clear();
set_cursor(4,1);
lcd_print("how");
while(1);
}
38
39