You are on page 1of 39

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 worlds 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"

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

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

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 groundbased and airborne systems. NeST capabilities include development of software and hardware,
7

verification and validation, simulation, continuous engineering, and reengineering. NeSTs 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.

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. NeSTs 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. NeSTs 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 NeSTs 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-SWIPPD-SS). The certifications, along with NeSTs 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. NeSTs 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

IDEs 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 IDEs 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, CortexR, 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 InSystem 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 32bit 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 otheronchip 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.
28

NRZ coding/decoding with bit stuffing.

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.

29

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 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 I2C 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.
30

TIMERS 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.44s. 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

You might also like