Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Bob Perrin is active.

Publication


Featured researches published by Bob Perrin.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Interfacing to the External World

Kamal Hyder; Bob Perrin

This chapter discusses the practicalities of attaching sensors and actuators to digital controllers. The example of RCM3400 prototyping board is used for all the examples in this chapter, the concepts covered are applicable to most embedded systems. Transistor–transistor logic (TTL)-based digital systems were designed to operate on 5-volt rails. As new complementary metal–oxide semiconductor (CMOS) logic technologies have become mature and robust, there has been a natural migration to lower voltage systems. As digital states change, these parasitic capacitors must be charged and discharged. The resistive paths through which this charge is moved dissipate power. The more capacitive nodes involved in a system level state change mean more energy that must be moved and power dissipated. The faster the state changes occur means more power is dissipated over a given time interval. In this age of laptop computers, personal digital assistant (PDAs) and cell-phones, energy storage directly translates to weight (and volume). Ultimately, the push for smaller, lighter, portable, energy efficient devices has pushed the digital world to lower supply rails. Some core modules from Rabbit Semiconductor have provided low noise data acquisition (DAQ) channels.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Chapter 10 – Softools—The Third Party Tool

Kamal Hyder; Bob Perrin

Softools, Inc., an embedded tools developer, was founded in 1989 with the goal of making better tools for the ZiLOG Z280 than were available at the time. The tools were expanded to support the 8085, Z80, and Z 180 microprocessors. Softools improved on the compiler techniques of the day, allowing Z80 and Z 180 programs to be written as if the processor had a linear address space for code while an advanced linker laid out the program, adding banking support without source code changes. In 1991, Softools released its ANSI C compiler for the Z80, Z180, Z280, and 8085 processors. These tools utilized the same advanced memory management techniques, which allowed programs limited in size only by the amount of EPROM or flash memory available in the target. In 1994, Softools released the lowest cost in-circuit emulator (ICE) available for the Z180 and a standalone DOS-based source debugger. In 1995, Softools added far pointer and data support to the Z180 C compiler. With this, programmers could access the full 20-bit (1MB) address space with code and data. Softools expertise has been strictly focused on the Z80 derivative processors for over a decade (almost two decades counting its founders previous experience). They have perpetually improved their tool set. Over the years, users have suggested features and enhancements that have found their way into the tool-chain. The current Rabbit WinIDE tools benefit from this experience and have inherited the elegant features and clever optimizations Softools has developed over the last 15 years.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Chapter 4 – Debugging

Kamal Hyder; Bob Perrin

Publisher Summary When developing a software application, bugs are invariably introduced in the code. Dynamic C has several resources that can assist a developer in locating, isolating, and eliminating bugs. This chapter explores Dynamic Cs debugging features and discusses some genetic debugging techniques. While developing an embedded system, an engineer wears three distinct hats. Wearing the developer hat implies a responsibility to find or create a cost effective solution to the control problem at hand. An engineer dons the finder hat when a malfunction or bug is observed. The responsibility of the finder is to delve deeply into the bug and determine the root cause of the malfunction. Once a bug is identified, the engineer slips on the fixer hat. The fixer, much like the developer, must find a cost effective solution to a problem. However, unlike a developer, a fixer is usually constrained to an existing design and seldom has the leeway a developer does.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Chapter 2 – The Basics

Kamal Hyder; Bob Perrin

Publisher Summary This chapter discusses the basics of embedded system design. Embedded system design boils down to monitoring sensors and actuating devices. Depending on the complexity of the desired behavior, an embedded controller may not be required. In some cases, a sensor may be adequate to control the actuator. In these situations, controllers are redundant. Some systems require control logic, but not necessarily a microprocessor or microcontroller. If the systems desired behavior can be implemented with simple combinatorial logic, then the system is not considered an embedded system. If the controller requires sequential logic then the application may rightfully be called an embedded system. Many factors bear on the selection of a controller. Performance, cost and availability are the most often bandied factors. Development tools, time-to-market and product sustainability must also be considered.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Chapter 8 – Multitasking Overview

Kamal Hyder; Bob Perrin

Publisher Summary This chapter describes various aspects of multitasking. It highlights the key elements of a real-time operating system (RTOS), and discusses how multitasking is achieved with Dynamic C. In this context, it illustrates a real-world example—a program used to schedule events for a finite state machine. Another technique in vogue in the late 1980s was a rigid top-down design methodology. Nassi Schneiderman flow-charting was a highly praised practice. Code segments only had one way in and one way out. Code was designed as a huge shell containing little shells, where each shell only had one entry and one exit point. There are purists who still design systems using this technique. An FSA is an excellent way to implement the systems main loop. Each device is polled sequentially and serviced if needed. Thus, the practice of using FSA allows a fairly free form approach while also providing a rigid framework.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Chapter 7 – Interrupts Overview

Kamal Hyder; Bob Perrin

Publisher Summary The power of an embedded system is its ability to respond to real-world events; a system that is disconnected from the rest of the world is often not doing anything useful. Everyday applications such as a microwave oven or a DVD player are systems where an embedded system is deployed: in the former case, the smell of burning popcorn will prompt the user to hit the “stop” button, which should be able to turn off the microwave element. In the latter case, heating the phone ring may prompt the user to use a remote control to pause the DVD player. Regardless of how busy the DVD player is in decoding images and audio from the disc, it has to be able to respond to user demands and take the appropriate action. Based on these two examples, the devices are not much use if they cannot respond to real-time stimuli and take appropriate action, regardless of what they were doing at the time they received the input. In industrial applications, an embedded system may monitor a machine and make appropriate decisions. However, in case of user input from a serial port or a critical condition identified by a sensor, the system may pause what it is currently doing, respond to the external event, make appropriate decisions, and then continue doing what it was doing earlier.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Chapter 9 – Networking

Kamal Hyder; Bob Perrin

Publisher Summary Networks are ubiquitous, and now exist in places where they did not exist five years ago. Credit card transactions, email, online banking, e-Commerce, online delivery tracking, and online movie rentals are just a few examples of commonplace services that did not exist a decade ago. Broadband home networks and public WiFi networks are being deployed globally at a great pace. The Internet is the most identifiable form for networking for the lay person—Internet can now be found accessible in large and small offices, homes, hotel rooms, restaurants, airports, coffee shops, cruise ships, and commercial airplanes. Industry analysts are predicting the use of embedded devices in the near future that converge media, entertainment, and productivity. Networking is one of the key enablers to that vision. This chapter takes a look at networking from the perspective of Rabbit core modules. It discusses common networking protocols at a high level, examining how they can be used on Rabbit core modules. Networking is a very broad field, including local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), and wireless technologies.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Chapter 3 – Starting Out

Kamal Hyder; Bob Perrin

Publisher Summary A processor does not mean a lot by itself. The designer has to select the fight support components, such as memory, external peripherals, and interface components. The designer has to interface these components to the central processing unit (CPU), and design the timing and the glue logic to make them all work together. There are design risks involved in undertaking such a task, not to mention the time in designing, prototyping, and testing such a system. Using a core module solves most of these issues. This chapter presents a brief description of the RCM3200 Rabbit core and discusses the Rabbit development environment. It outlines the development and debugging aspects of Dynamic C and illustrates the first Rabbit program. The chapter also highlights some of the differences between Dynamic C and ANSI C. These differences determine the understanding of program with Dynamic C.


Embedded Systems Design using the Rabbit 3000 Microprocessor#R##N#Interfacing, Networking and Application Development | 2005

Introduction to Rabbit Assembly Language

Kamal Hyder; Bob Perrin

Assembly language has long been a favorite of programmers, for many reasons. Looking back into history, some of the early computers (such as the MITS Altair 8080) could only be programmed in assembly language. Even some industrial machines, which were considered “powerful” for their period, had primitive programming technologies by present day standards. For example, in 1974, the Raytheon RDS 500 was originally designed to track missile trajectories but had to be programmed one assembly instruction at a time, using bit switches on the front panel. Soon after personal computers began to get popular, compilers for higher-level languages began to appear for them, and programmers could program these machines in BASIC, C, FORTRAN, Pascal, and even Forth. In some cases, high-level languages did not give programmers the level of control they desired to manipulate machine internals, while in other cases, given the central processing unit (CPU) clock speeds of that time, certain things happened too slowly unless they were done in assembly language.


Archive | 2005

Embedded Systems Design using the Rabbit 3000 Microprocessor: Interfacing, Networking, and Application Development

Kamal Hyder; Bob Perrin

Collaboration


Dive into the Bob Perrin's collaboration.

Researchain Logo
Decentralizing Knowledge