# Presentation: 820486

## An Overview of Support of Small Embedded Systems with Some Recommendations

- Controls Working Group
- April 14, 2004
- T. Meyer, D. Peterson

## Examples

- PALs and PLAs – Small programmable logic, usually not field programmable.
- PLCs – Specialized industrial controllers, often networked and remotely programmable. These typically use special programming software.
- Microcontrollers – Many varieties, some are field programmable and some are now remotely programmable.
- FPGAs and CPLDs – Many varieties, some are field programmable and some are now remotely programmable.
- PC-104 and other small modular processor systems.
- Distributed VME Front-ends running MOOC.

- Small Embedded Sytems

## What we have here now

- Development Systems
- Software – Coding in various forms
- Text based such as C or ABEL, VxWorks and GNU C++ compiler. Files supplied to a compiler.
- Text or Graphics within a development environment such as Altera or PLC tools.
- Getting the code into the device
- Some systems require a hardware specific Programming Module.
- Some systems use In Circuit Programming through special connection.
- Some use a standard Memory Device for configuration.
- JTAG ( Joint Test Action Group,  IEEE Standard 1149.1 ) addresses some of the device and platform compatibility problems.
- Download from standard port or network.

- Small Embedded Sytems

## What we have here now (cont’d)

- Parts and Programming Tools
- On some of the small systems it is difficult to decouple the hardware and software.  The hardware vendor might be the only source of software tools.
- Some departments keep a general inventory and are willing to share.  In some cases different departments are using the same models of hardware and can share development tools and experience.
- System Maintenance
- Some common ways of storing documentation:
- Web pages with PDF or other universally readable files. (The _[Controls Department page ](http://www-ad.fnal.gov/controls/controls.html)__has some good examples.)_
- Three-ring binders. (I have some not-so-good examples.)
- Accelerator Division Document Database.
- Code Storage
- On office machines (usually connected to the Z: drive).
- On a department shared server.
- On CVS.
- Personnel
- Usually one software expert and one hardware expert. Sometimes they are the same person.
- Generally one other person who knows where the parts are.

- Small Embedded Sytems

## General Questions

- What can CVS store?  (It resides on a Unix machine and may not be able to store all specialized files without destroying them.)
- Should we use the Division Document Database?  (We already do...)

- Small Embedded Sytems

## Recommendations

- Development on VME and Compact PCI systems
- Need for better development tools.
- Need for any good debugging tools.
- Need for documentation of MOOC system.
- Need for movement from VME to Compact PCI.
- We need some guidelines for Web documentation
- All graphics should have a PDF version.
- Project files should have clear hierarchy and links.
- Where should they reside and who should be the keeper.
- A good documentation package could follow typical commercial technical product examples:
- Clear and simple User’s Guide with statement of functionality.
- Block diagrams, flow charts, schematics and parts lists.
- Code listings are useful if they are well commented and reproducible, or if they cannot be stored on CVS.
- Service instructions with test procedures.
- Keep in mind that technology advances
- There is some finite lifetime of the device package format, the programming adapters and the ability to run the programming software. (On the order of 5 years.)
- A modular system allows for upgrading parts without too much disruption.
- Essential systems should have working spares and regular upgrades.
- Personnel
- Cross training is helpful.
- Good documentation can help fill in knowledge gaps.
- Communication among departments can reduce duplication of effort, provide resources for robustness and uniformity of procedures, but how do we foster this communication?

- Small Embedded Sytems