Understanding IsoPod What is IsoPod? Real Time Controller IsoMax for Multitasking DSP Core for speed, 40 MIPs Motion Control features: PWM, Quadrature, Timers, A/D, GPIO, 2 SCI, 1 SPI, etc. Networking features: CAN Bus V2.0A/B Size: 1.2 x 3.3 Price: $99 single qty. IsoPod Overview Hardware Connectors Software Applications Packages
Select a link to the left to skip ahead to a topic or continue to the next page to see them all IsoPod Overview Here is a larger view of the graphic. 1. Hardware Feature: LEDs Three On Board LEDs
Red Yellow Green 2. Hardware Feature: GPIO 16 General Purpose Input Output lines PA0 - 7 PB0 7 Programmable edge sensitive inputs 3. Hardware Feature: SCI Serial Communication Interface (SCI) fullduplex serial channel One RS-232 One RS422/485 Programmable Baud Rates,
38,400 19,200 9600 4800 1200 4. Hardware Feature: SPI Serial Peripheral Interface (SPI) Full-duplex synchronous operation on fourwire interface Master or Slave Programmable # of bits 5. Hardware Feature: A/D 8-ch 12-bit AD Continuous Conversions
1.2us (6 ADC cycles) Single ended or differential inputs ADC can be syncd with PWM 6. Hardware Feature: PWM 12-channel PWM module 15-bit counter with programmable resolutions down to 25ns Twelve independent outputs, or Six complementary pairs of outputs, or combinations 8 Fault Inputs 6 Current Status inputs 7. Hardware Feature: Timers Sixteen Timers (eight may be used in quadrature)
16-bit timers Count up/down, Cascadable Pair for simple quadrature Pair for step and direction Programmable as input capture or output compare Input capture trigger rising edge, falling edge, or any edge Output capture action Set, reset or toggle External sync input 8. Hardware Feature: Quad.
Two Quadrature Decoder (uses eight timers) 32-bit position counter 16-bit position difference register 16-bit revolution counter 40MHz count frequency (up to) Logic to decoder quadrature signals Configurable digital filter for inputs Watchdog timer to detect stalled shaft
9. Hardware Feature: CAN CAN 2.0 A/B module for networking Programmable bit rate up to 1Mbit: Multiple boards can be networked (MSCAN) Ideal for harsh or noisy environments, like automotive applications CAN is a serial bus system especially suited to interconnect smart devices to build smart systems or sub-systems. Ref:http://www.can-cia.org/can/ 10. Hardware Feature: JTAG JTAG port for CPU debugging Examine registers, memory, peripherals Set breakpoints Step or trace instructions 11. Hardware Feature: COP
Watch Dog Timer COP module Low Voltage Detector for Reset S80728HN 12. Hardware Feature: PWR Processor has special operating modes: Low Voltage Mode Stop Mode Wait Mode 13. Hardware Feature: DRV On Board level translation for RS232: MAX3221 RS422: MAX3483 CAN: TJA1050 CAN Transceiver 14. Hardware Feature: REG
On Board Voltage Regulation LM2937 5V LM3940 3.3V Connector Overview J1 Ser., Power, General Purpose I/O Serial, Power, Ports PA0 PA7, PB0 PB7 J2 JTAG connector CPU Port
J3 SPI SCLK, MISO, MOSI, SS, PD0, PD1, PD2, PD3 J4 RS-422/485 Serial Port -RCV, +RCV, -XMT, +XMT J5 CAN BUS Network Port
CANL, CANH J6 Servo Motor Outputs x 12 PWM, +V, GND J7 Motor Encoder x 2 Quadrature, Fault0, Fault1, Fault2, IS0, IS1, IS2 J8 A/D Various A/D0 A/D7, Various
Connector J1 Ser., Power, General Purpose I/O +VIN 24 1 SOUT GND 23 2 SIN RST 22 3
IsoPod comes with IsoMax Other Languages The IsoPod can be programmed in languages other than IsoMax. Metrowerks sells Code Warrior, a professional level C language IDE Max-FORTH is available now from NMI. Small C is under development Assembler is under development BASIC is planned for the future
Real Time Programming A real time program is one that waits. Any program that does not wait on something is not a real time program. Any program that waits on something, other than the program itself, is a real time program. Conventional Language In an ordinary high level language, such as C, BASIC, FORTH or JAVA, programs are written flowing from top to bottom. Flow charts are the preferred diagramming tools. A program that must wait on something, simply loops in place. Most conventional languages follow the
structured procedural programming paradigm. Structured programming enforces this style of waiting. Program Counter Capture (PCC) The Program Counter Capture, is when the program branches backwards on itself to wait. In Structured Programming, the Program Counter Capture is used to implicitly hold state (wait) information. This information is better kept elsewhere (explicitly). Conventional Multitasking In a conventional
language getting several things done at the same time is tricky. Most programmers must use a Real Time Operating System. A Multitasking Operating System adds much overhead and complexity for switching tasks/contexts. Concept of Isostructure The word, Isostructure, has two roots: Iso, meaning equal or on the same level, and structure, from the current usage in the Computer Science. Isostructure is structure with no backwards branches, and an enhanced way to branch in multiple
forward directions (called polyfurcation) similar to a case statement. Multitasking vs. Isostructure s ta rt to o c o ld ? s ta r t no tu r n o n h e a te r to o h o t? tu r n o ff h e a te r
no h e a te r a o ff? yes ro o m a t o o c o ld ? yes ro o m a to o h o t? yes tu rn o n
h e a te r a tu r n o ff h e a te r a If Program Counter Capture (PCC) Loops can be avoided, compatible thread-like programs can be interwoven. Isostructure and Flow Charts A simple structured flow chart can sometimes be replaced by alternatively styled Isostructured flow charts as shown above. Complex flow charts are too difficult. Structured program was intended to end spaghetti code. Non Isostructure can lead to unruly intertwines of if-then
statements. A different programming paradigm is needed. Finite State Machines A better way to represent a real time program is with a Finite State Machine. IsoMax is a programming language based on Finite State Machine (FSM) concepts applied to software, with a procedural language (derived from Forth) underneath it. The closest description to the FSM construction type in IsoMax is a One-Hot Mealy type of Timer-Augmented Finite State Machines. New Paradigm IsoMax is a new language. Why learn a new language? Because the old languages cannot do
what IsoMax can. Old languages are based on, and reinforce, structured programming. IsoMax is based on Isostructured programming. No other language has fully interactive, high-level, real time programming. IsoMax has a new programming paradigm, simply not available any where else. IsoMax Language The breakthrough in IsoMax is the language is inherently multitasking without the overhead or complexity of a multitasking operating system (no PCCs allowed). In IsoMax anyone can write simple machines and string them together so they work. IsoMax Programming You can draw state diagrams instead of
flow charts, and then translate the diagrams directly into their state machine equivalents. To program in IsoMax you use text to create state machines. The state machines machines can then run in the Virtually Parallel Machine Architecture (VPMA). IsoMax Machines Each machine in the program is like a hardware component in a mechanical solution. When satisfied with its performance, you install the new machine in a chain of machines. The machine becomes a background feature of the IsoPod until you remove it. All tasks are handled on the same level within the machine chain, each running like its own separate little machine.
Create the machine There are five steps to creating a machine in IsoMax text: Name the machine Identify the machine Append states to the machine Describe transitions between states Test and install Name the machine The first program line, tells IsoMax to add a new virtual machine. (Any group of characters without a space or a backspace or return will do for a name. Use up to 32 characters. Here the syntax is MACHINE followed by the chosen name.) MACHINE
State Flowchart Identify the machine Second program line, identify as the machine to append to. The syntax to do this is to say ON-MACHINE and the name of the machine to work on, which looks like this: ON-MACHINE State Flowchart Append states to the machine States are the fundamental parts of our virtual machine. A state is a place where the computers outputs are stable, or static. Said another way, a state is place where the computer waits. Add states to the machine with a name. The syntax is
APPEND-STATE followed by another made-up name. APPEND-STATE APPEND-STATE etc. State Flowchart States Are Waits A real time program is one that waits. A state machine has states, which are explicit places where machines wait. States are static. States are not where the processor does something, they are where the processor doesnt do anything, but wait except to see if it is time to stop waiting.
Describe transitions between states The rule for changing states along with the action to do, if the rule is met, is called a Transition. A transition contains: - the name of the State the rule applies to. - the rule, which is called the Condition; this is the when to stop waiting - the action; the what to do thenState Flowchart - the name of the State to go to is where to wait after that. Transition syntax as normally used IN-STATE CONDITION
CAUSES THEN-STATE TO-HAPPEN Transition syntax with extra comments IN-STATE ( the State the rule applies to ) CONDITION ( when to stop waiting ) CAUSES ( what action to do )
THEN-STATE ( where to wait after that ) TO-HAPPEN ( ends this Transition definition ) Transitions Details A transition has four components;. 1) which state it starts in 2) the condition necessary to leave 3) the action to take when the condition becomes true 4) the state to go to. ;. Why are transitions so verbose? The structure makes the transitions easy to read in human language. ;. The constructs IN-STATE,CONDITION,CAUSES, THEN-STATE, and TO-HAPPEN are like the five
brackets around a table of four things. Test and install IsoMax is interactive. The machine can be defined and tested in the foreground, and once performance is assured, it can be installed in the machine chain to run with all other machines in the background scheduled machine list. To truly understand IsoPod requires understanding how interactivity speeds development. Test the code as it runs, where it runs, while it runs, in real time. Sample Machine: Thermostat A thermostat makes a convenient example. The machine is named, Thermostat1.
MACHINE Thermostat1 The machine is identified, ON-MACHINE Thermostat1 The states added, APPEND-STATE Wait-on-low-temp APPEND-STATE Wait-on-high-temp Sample Transitions: Thermostat IN-STATE wait-on-low-temp CONDITION too-cold? CAUSES heater-on THEN-STATE
wait-on-high-temp TO-HAPPEN IN-STATE wait-on-high-temp CONDITION too-hot? CAUSES heater-off THEN-STATE wait-on-low-temp TO-HAPPEN The State Diagram State Machine program execution can easily be made to be multitasking. State diagrams contain more information with less confusion.
State Flowchart Equivalent State Diagram for Thermostat to o _ c o ld ? h e a rte r_ o n w a it_ o n lo w _ te m p w a it_ o n h ig h _ te m p to o _ w a rm ? h e a r te r _ o ff Sample Comparison Elements in all 3 Chart 1. 2.
3. 4. 5. 6. 7. 8. Wait until too cold Action when too cold (heater on) Where to go next Wait until too hot Action when too hot (heater off) Where to go next Condition for leaving (too cold) Condition for leaving (too hot) Sample Comparison 1 of 3 State Machine vs. Flow Chart
1 to o _ c o ld ? 3 h e a r te r _ o n 2 7 w a it_ o n w a it _ o n lo w _ te m p h ig h _ te m p 4
to o _ w a rm ? 6 h e a r te r _ o ff 5 8 Sample Comparison 2 of 3 Isostructured Flow Chart s ta rt 1 h e a te r ye s
ro o m a a o ff? 8 ye s 2 3 tu rn o n to o c o ld ? h e a te r a
7 4 ro o m a to o h o t? ye s 5 6 tu rn o ff h e a te r a Sample Comparison 3 of 3 Structured Flow Chart start 1
too cold? no 7 2 turn on heater 3 4 too hot? no 8 5
turn off heater 6 Sample Comparison of Elements State Machine vs. Flow Chart start 1 too_cold? 3 hearter_on 7 2
1 room a too cold? yes no 2 turn on heater 3 turn on heater a
3 4 too hot? no 8 4 room a too hot? yes 5 turn off
heater a 6 5 turn off heater 6 Typical IsoPod Applications
Real Time control Embedded DSP Instrumentation Process Control Network Control SCADA Motion Control Robotics! Typical Mobile Robot 1: Hexapod: 6 legged walker Locomotion: 18 RC Servos 12 Hardware PWM 4 Timer PWM Ranging: 2 RC Servos Pan and Tilt 2 Timer PWM
1 Timer pulse measurement Foot sensors 6 A/D channels: Pressure Typical Mobile Robot 2: Roller: RC Servo Locomotion: 2 RC Servos 2 Hardware PWM Ranging and Sensing up to 10 sensors on RC Servos 13 Timers for pulse measurement 8 A/D channels Typical Mobile Robot 3: Roller: DC Servo Locomotion: 2 DC Servos
8 Hardware PWM 2 Quadrature feedback (4 Timer lines) Ranging: up to 4 sensors on RC Servos 5 Timers for pulse measurement 8 A/D channels T.B.D. Simple connection Hook up for development and programming. IsoMax Communications Programming and interaction with Isomax software is text based via the serial channel. A simple terminal program on PC makes efficient development system. Text can be hand entered via terminal, copied from a text editor, or
downloaded from a file (*.txt). Its easy! MaxTerm program available for download, from NewMicros. Sample of Maxterm Screen Sample of Words on Maxterm Screen Sample of Programming on Maxterm Screen Sample of Maxterm Help Screen IsoPod Board by itself
w/IsoMax installed. (without cable or transformer) Price $99 Order Page Quick Kit Quick Kit provides IsoPod, custom made serial cable and DC wall transformer with special connector. Price: $114 Order Page Development Kit Development Kit
provides IsoPod, Controller interface board with 2.4" x 3.6" breakable prototype area, serial cable and wall transformer Price: $149 Order Page END One Hot "One Hot" is a description of an optimization of a state machine in hardware that has an output per state. So rather than the state number being a combination of bits, like a counter, which points to a state, there is one
unique output per state. more on web more on web BACK One Hot continued IsoMaxs software equivalent is the state number. IsoMax uses precomputed GOTOs. When the scheduler executes a machine, it doesn't have to test the state number to find which state it is in, but vectors directly to it. It is the only hot state. BACK George H. Mealy "Mealy" was a pioneer in state machine descriptions (1955). Usually a machine is described as either Mealy or Moore
machine, depending on how outputs are done. Moore thought the states themselves do the output (more suitable to a hardware implementation). Mealy thought the transitions do the output (more appropriate for software). BACK Mealy continued 1 For IsoMax the Mealy machine design is preferred on principle. If a state is a wait, and static as its name implies, it shouldn't be doing anything active (no outputs). Doing something active (making or changing outputs) should be limited to the transition between states (Mealy, not Moore). BACK
Mealy continued 2 In a Mealy machine, the transitions do the output. So the state number wasn't necessarily the output. Consequently, a Mealy machine can have two states with identical outputs, but a different state number. A Moore machine cannot. more on web BACK Timer-Augmented Rodney Brooks of MIT AI Lab fame prefers Finite State Machines for modeling robot behavior. But he likes to augment the FSMs with timers. He calls these Timer-Augmented Finite
State Machines. Timers in the IsoPod and LOOPVARs in IsoMax can be used to augment the FSMs in this way. BACK
Fig. 13.14 Genomes & The Tree of Life Archaea - small circular genome Prokarya - small to very small (e.g., Mycobacterium) circular genomes Eukarya - 3 genomes Mitochondrial - small to micro-sized, linear and circular, prokaryotic origin Chloroplast - small,...
Disclaimer. These slides are provided for the ece150 Fundamentals of Programmingcourse taught at the University of Waterloo.The material in it reflects the authors' best judgment in light of the information available to them at the time of preparation.
Parties are free to define the applicable law to the substance within the arbitration agreement. In the absence of choice of applicable law: Assessment by the arbitral tribunal for each case in light of international conventions, national arbitration legislation and...
Chaparral. Savanna. Rainforest. Alpine. biotic. Organisms living or that had once lived in the environment. ... large food web with lots of animals. Bison distribute seed in their waste. Deep grass roots hold the soil. abiotic- wildfire is needed to...
Marking in general. Definition: An element instantiates Marking, i.e. is a Marker, if and only if that element occurs when two syntactic elements are combined, but makes no overt contribution to the resulting utterance meaning, and is not the result...
Types of Genetic Disorders Nondisjunction: the addition or deletion of a whole chromosome During anaphase I chromosomes do NOT separate The cell with an additional chromosome is called trisomy once fertilization occurs The cell with a deletion of a chromosome...
The MVA helps improve your IT skill set and advance your career with a free, easy to access training portal that allows you to learn at your own pace, focusing on Microsoft technologies. What Do I . get for enrolment?...
Ready to download the document? Go ahead and hit continue!