Tuesday, April 13, 2010

Ready made computer boards: Embedded

PC/104 and PC/104+ are examples of standards for ready made computer boards intended for small, low-volume embedded and ruggedized systems, mostly x86-based. These often use DOS, Linux, NetBSD, or an embedded real-time operating system such as MicroC/OS-II, QNX or VxWorks. Sometimes these boards use non-x86 processors.
In certain applications, where small size or power efficiency are not primary concerns, the components used may be compatible with those used in general purpose x86 personal computers. Boards such as the VIA EPIA range help to bridge the gap by being PC-compatible but highly integrated, physically smaller or have other attributes making them attractive to embedded engineers. The advantage of this approach is that low-cost commodity components may be used along with the same software development tools used for general software development. Systems built in this way are still regarded as embedded since they are integrated into larger devices and fulfill a single role. Examples of devices that may adopt this approach are ATMs and arcade machines, which contain code specific to the application.
However, most ready-made embedded systems boards are not PC-centered and do not use the ISA or PCI busses. When a System-on-a-chip processor is involved, there may be little benefit to having a standarized bus connecting discrete compontents, and the environment for both hardware and software tools may be very different.
One common design style uses a small system module, perhaps the size of a business card, holding high density BGA chips such as an ARM-based System-on-a-chip processor and peripherals, external flash memory for storage, and DRAM for runtime memory. The module vendor will usually provide boot software and make sure there is a selection of operating systems, usually including Linux and some real time choices. These modules can be manufactured in high volume, by organizations familiar with their specialized testing issues, and combined with much lower volume custom mainboards with application-specific external peripherals. Gumstix product lines are a Linux-centric example of this model.



http://en.wikipedia.org/wiki/Embedded_system
http://www.bogotobogo.com
http://www.epicmath.com

History: Embedded

In the earliest years of computers in the 1930–40s, computers were sometimes dedicated to a single task, but were far too large and expensive for most kinds of tasks performed by embedded computers of today. Over time however, the concept of programmable controllers evolved from traditional electromechanical sequencers, via solid state devices, to the use of computer technology.
One of the first recognizably modern embedded systems was the Apollo Guidance Computer, developed by Charles Stark Draper at the MIT Instrumentation Laboratory. At the project's inception, the Apollo guidance computer was considered the riskiest item in the Apollo project as it employed the then newly developed monolithic integrated circuits to reduce the size and weight. An early mass-produced embedded system was the Autonetics D-17 guidance computer for the Minuteman missile, released in 1961. It was built from transistor logic and had a hard disk for main memory. When the Minuteman II went into production in 1966, the D-17 was replaced with a new computer that was the first high-volume use of integrated circuits. This program alone reduced prices on quad nand gate ICs from $1000/each to $3/each[citation needed], permitting their use in commercial products.
Since these early applications in the 1960s, embedded systems have come down in price and there has been a dramatic rise in processing power and functionality. The first microprocessor for example, the Intel 4004, was designed for calculators and other small systems but still required many external memory and support chips. In 1978 National Engineering Manufacturers Association released a "standard" for programmable microcontrollers, including almost any computer-based controllers, such as single board computers, numerical, and event-based controllers.
As the cost of microprocessors and microcontrollers fell it became feasible to replace expensive knob-based analog components such as potentiometers and variable capacitors with up/down buttons or knobs read out by a microprocessor even in some consumer products. By the mid-1980s, most of the common previously external system components had been integrated into the same chip as the processor and this modern form of the microcontroller allowed an even more widespread use, which by the end of the decade were the norm rather than the exception for almost all electronics devices.
The integration of microcontrollers has further increased the applications for which embedded systems are used into areas where traditionally a computer would not have been considered. A general purpose and comparatively low-cost microcontroller may often be programmed to fulfill the same role as a large number of separate components. Although in this context an embedded system is usually more complex than a traditional solution, most of the complexity is contained within the microcontroller itself. Very few additional components may be needed and most of the design effort is in the software. The intangible nature of software makes it much easier to prototype and test new revisions compared with the design and construction of a new circuit not using an embedded processor.

http://en.wikipedia.org/wiki/Embedded_system
http://www.bogotobogo.com
http://www.epicmath.com

Embedded systems span all aspects of modern life

Embedded systems span all aspects of modern life and there are many examples of their use.
Telecommunications systems employ numerous embedded systems from telephone switches for the network to mobile phones at the end-user. Computer networking uses dedicated routers and network bridges to route data.
Consumer electronics include personal digital assistants (PDAs), mp3 players, mobile phones, videogame consoles, digital cameras, DVD players, GPS receivers, and printers. Many household appliances, such as microwave ovens, washing machines and dishwashers, are including embedded systems to provide flexibility, efficiency and features. Advanced HVAC systems use networked thermostats to more accurately and efficiently control temperature that can change by time of day and season. Home automation uses wired- and wireless-networking that can be used to control lights, climate, security, audio/visual, surveillance, etc., all of which use embedded devices for sensing and controlling.
Transportation systems from flight to automobiles increasingly use embedded systems. New airplanes contain advanced avionics such as inertial guidance systems and GPS receivers that also have considerable safety requirements. Various electric motors — brushless DC motors, induction motors and DC motors — are using electric/electronic motor controllers. Automobiles, electric vehicles, and hybrid vehicles are increasingly using embedded systems to maximize efficiency and reduce pollution. Other automotive safety systems include anti-lock braking system (ABS), Electronic Stability Control (ESC/ESP), traction control (TCS) and automatic four-wheel drive.
Medical equipment is continuing to advance with more embedded systems for vital signs monitoring, electronic stethoscopes for amplifying sounds, and various medical imaging (PET, SPECT, CT, MRI) for non-invasive internal inspections.
In addition to commonly described embedded systems based on small computers, a new class of miniature wireless devices called motes are quickly gaining popularity as the field of wireless sensor networking rises. Wireless sensor networking, WSN, makes use of miniaturization made possible by advanced IC design to couple full wireless subsystems to sophisticated sensors, enabling people and companies to measure a myriad of things in the physical world and act on this information through IT monitoring and control systems. These motes are completely self contained, and will typically run off a battery source for many years before the batteries need to be changed or charged.

http://en.wikipedia.org/wiki/Embedded_system
http://www.bogotobogo.com
http://www.epicmath.com

embedded system

An embedded system is a computer system designed to perform one or a few dedicated functions[1][2] often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer (PC), is designed to be flexible and to meet a wide range of end-user needs. Embedded systems control many devices in common use today.[3]
Embedded systems are controlled by one or more main processing cores that are typically either microcontrollers or digital signal processors (DSP).[4] The key characteristic, however, is being dedicated to handle a particular task, which may require very powerful processors. For example, air traffic control systems may usefully be viewed as embedded, even though they involve mainframe computers and dedicated regional and national networks between airports and radar sites. (Each radar probably includes one or more embedded systems of its own.)
Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product and increase the reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale.
Physically, embedded systems range from portable devices such as digital watches and MP3 players, to large stationary installations like traffic lights, factory controllers, or the systems controlling nuclear power plants. Complexity varies from low, with a single microcontroller chip, to very high with multiple units, peripherals and networks mounted inside a large chassis or enclosure.
In general, "embedded system" is not a strictly definable term, as most systems have some element of extensibility or programmability. For example, handheld computers share some elements with embedded systems such as the operating systems and microprocessors which power them, but they allow different applications to be loaded and peripherals to be connected. Moreover, even systems which don't expose programmability as a primary feature generally need to support software updates. On a continuum from "general purpose" to "embedded", large application systems will have subcomponents at most points even if the system as a whole is "designed to perform one or a few dedicated functions", and is thus appropriate to call "embedded".

http://en.wikipedia.org/wiki/Embedded_system
http://www.bogotobogo.com
http://www.epicmath.com

Monday, April 12, 2010

software development kit (SDK)

On October 17, 2007, in an open letter posted to Apple's "Hot News" weblog, Steve Jobs announced that a software development kit (SDK) would be made available to third-party developers in February 2008.[16] The SDK was released on March 6, 2008, and allows developers to make applications for the iPhone and iPod Touch, as well as test them in an "iPhone simulator". However, loading an application onto the devices is only possible after paying an iPhone Developer Program fee. Since the release of Xcode 3.1, Xcode is the development environment for the iPhone SDK. iPhone applications, like iPhone OS and Mac OS X, are written in Objective-C.[17]
Developers are able to set any price above a set minimum for their applications to be distributed through the App Store, of which they will receive a 70% share. Alternately, they may opt to release the application for free and need not pay any costs to release or distribute the application except for the membership fee.[18]
Since its release, there has been some controversy regarding the refund policy in the fine print of the Developer Agreement with Apple. According to the agreement that developers must agree to, if someone purchases an app from the app store, 30% of the price goes to Apple, and 70% to the developer. If a refund is granted to the customer (at Apple's discretion), the 30% is returned to the customer from Apple, and 70% from the developer; however, Apple can then take another 30% of the cost from the developer to make up for Apple's loss.[19]


http://en.wikipedia.org/wiki/IPhone_OS
http://www.bogotobogo.com
http://www.epicmath.com

Application support

The central processing unit (CPU) used in the iPhone and iPod Touch is an ARM-based processor instead of the x86 (and previous PowerPC or MC680x0) processors used in Apple's Macintosh computers, and it uses OpenGL ES 1.1[8] rendering by the PowerVR 3D graphics hardware accelerator co-processor.[9] Mac OS X applications cannot be copied to and run on an iPhone OS device. The applications must be written and compiled specifically for the iPhone OS and the ARM architecture. The Safari web browser supports Web applications as with other web browsers. Authorized third-party native applications are available for devices running iPhone OS 2.0 and later through Apple's App Store.
[edit] Included applications
In version 3.0, the iPhone home screen contains these default applications: Messages (Text messaging, MMS), Calendar, Photos (with video viewer on 3GS), Camera (Video recording and auto-focus enabled in iPhone 3GS), YouTube, Stocks (Yahoo! Finance), Maps (Google Maps, with Assisted GPS on iPhone 3G and 3GS), Weather (Yahoo! Weather), Clock (with stopwatch, alarm clock and timer), Calculator (with scientific version), Voice Memos, Notes, Settings, iTunes (with access to the iTunes Music Store and iTunes Podcast Directory), App Store, Compass (iPhone 3GS), Contacts (with landscape support), and the Nike + iPod app (iPhone 3GS and iPod Touch 2nd generation) that interfaces with the optional Nike + iPod sensor. Four other applications delineate the iPhone's main purposes: Phone, Mail, Safari, and iPod.[10][11]
The iPod Touch retains many of the same applications that are present by default on the iPhone, with the exception of the Phone, Messages, Compass and Camera apps. The "iPod" App present on the iPhone is split into two apps on the iPod Touch: Music, and Videos. The bottom row of applications is also used to delineate the iPod Touch's main purposes: Music, Videos, Safari, and App Store (Dock Layout was changed in 3.1 Update).
[edit] Web applications
At the 2007 Apple Worldwide Developers Conference Apple announced that the iPhone and iPod Touch would support Web applications created by third-party developers using technologies such as Ajax through the Safari web browser.[12] Apple Inc. considers that web applications capable of providing a sufficient user experience obviate any need for jailbreaking. Additionally, they determined that making native applications other than their own were unnecessary. However, the aforementioned web applications were unsuccessful,[citation needed] because the JavaScript engine running in Mobile Safari was not powerful enough to run applications satisfactorily.[citation needed]
[edit] Unsupported third-party native applications
The iPhone and iPod Touch can only officially install full programs through the App Store.[13] However, from version 1.0 unauthorized third-party native applications are available.[14] Such applications face the possibility of being broken by any iPhone OS update, though Apple has stated it will not design software updates specifically to break native applications (other than applications that perform SIM unlocking).[15] The main distribution methods for these applications are the Cydia, Icy, Rock, and Installer utilities, which can be installed on the iPhone after jailbreaking.

http://en.wikipedia.org/wiki/IPhone_OS
http://www.bogotobogo.com
http://www.epicmath.com

User interface of iPhone OS

The user interface of iPhone OS is based on the concept of direct manipulation, using multi-touch gestures. Interface control elements consist of sliders, switches, and buttons. The response to user input is supposed to be immediate to provide a fluid interface. Interaction with the OS includes gestures such as swiping, tapping, pinching, and reverse pinching. Internal accelerometers are used by some applications to respond to shaking the device (one common result is the undo command) or rotating it in three dimensions (one common result is switching from portrait to landscape mode).
A home screen (rendered by "SpringBoard") with application icons, and a dock at the bottom of the screen, showing icons for the applications the user accesses the most, is presented when the device is turned on or whenever the home button is pressed. The screen has a status bar across the top to display data, such as time, battery level, and signal strength. The rest of the screen is devoted to the current application. There is no concept of starting or quitting applications, only opening an application from the home screen, and leaving the application to return to the home screen. It is possible to force an application to quit by holding down the power button until the "slide to power off" slider appears, and then holding the home button down, however. While some multitasking is permitted it is not obtrusive or obvious. However, it is limited to Apple's own applications, a limitation that will be lifted with the introduction of OS 4.0. Third-party applications are quit when left, but from the 3.0 software update, notifications can be pushed from Apple's servers to the iPhone or iPod Touch. Many of the included applications were designed to work together; allowing for the sharing or cross-propagation of data from one application to another (e.g., a phone number can be selected from an email and saved as a contact or dialed for a phone call.) The iPad includes a similar interface, except that the dock is "3D" and the background is interchangeable.

http://en.wikipedia.org/wiki/IPhone_OS
http://www.bogotobogo.com
http://www.epicmath.com