automatic pressure canning system system software design by: michael drysdale

15
Automatic Automatic Pressure Canning Pressure Canning System System System Software Design System Software Design By: Michael Drysdale By: Michael Drysdale

Upload: brianne-payne

Post on 19-Jan-2018

212 views

Category:

Documents


0 download

DESCRIPTION

State Diagram ENTRY STAGE 1 PREHEAT STAGE 2 PRESSURIZED STAGE 3 DEPRESSURIZING Enter Cancel Target PSI Count down complete Cancel Up Down Shift Cancel

TRANSCRIPT

Page 1: Automatic Pressure Canning System System Software Design By: Michael Drysdale

Automatic Automatic Pressure Pressure

Canning SystemCanning SystemSystem Software Design System Software Design

By: Michael DrysdaleBy: Michael Drysdale

Page 2: Automatic Pressure Canning System System Software Design By: Michael Drysdale

General System DesignGeneral System Design MCU: MC9S12C32MCU: MC9S12C32

Bus frequency 24 MHzBus frequency 24 MHz 32Kb Flash, 2Kb RAM32Kb Flash, 2Kb RAM

System Memory RequirementsSystem Memory Requirements 4K bytes Flash4K bytes Flash 1k RAM1k RAM

Kernel ChoiceKernel Choice Time slice with 10ms periodTime slice with 10ms period

Page 3: Automatic Pressure Canning System System Software Design By: Michael Drysdale

State DiagramState Diagram

ENTRY

STAGE 1PREHEAT

STAGE 2PRESSURIZED

STAGE 3DEPRESSURIZING

Enter

Cancel

Cancel

Target PSI

Count down complete

Cancel

UpDownShiftCancel

Page 4: Automatic Pressure Canning System System Software Design By: Michael Drysdale

Priority of TasksPriority of Tasks

1)1) Wait for Slice TaskWait for Slice Task2)2) Timer TaskTimer Task3)3) PsiSample Task PsiSample Task 4)4) Key Task Key Task 5)5) User Interface TaskUser Interface Task

Page 5: Automatic Pressure Canning System System Software Design By: Michael Drysdale

InitializationInitialization• System InitializationSystem Initialization

• ATDATD• OCDlyOCDly• Enable_INTEnable_INT• LCDLCD• RFIDRFID• KeypadKeypad

• PeriodPeriod• Only run one timeOnly run one time

• Execution TimeExecution Time• ~ 100 ms~ 100 ms

Page 6: Automatic Pressure Canning System System Software Design By: Michael Drysdale

Timer TaskTimer Task

Description: Description: Decrements the time enteredDecrements the time entered Period: 10ms (Periodic)Period: 10ms (Periodic) Execution time ~ 1.5 us (max)Execution time ~ 1.5 us (max)

Page 7: Automatic Pressure Canning System System Software Design By: Michael Drysdale

PsiSample TaskPsiSample Task

Description: Description: Reads Pressure SensorReads Pressure Sensor Makes A/D conversionsMakes A/D conversions Updates the psi buffer Updates the psi buffer Period: 10 ms (Periodic)Period: 10 ms (Periodic) Execution time ~ 1ms (max)Execution time ~ 1ms (max)

Page 8: Automatic Pressure Canning System System Software Design By: Michael Drysdale

Key TaskKey Task

Description: Description: Reads the keypad and updates the Reads the keypad and updates the

bufferbuffer Period: 10 ms (Periodic)Period: 10 ms (Periodic) Execution time ~ 2.2us (max)Execution time ~ 2.2us (max)

Page 9: Automatic Pressure Canning System System Software Design By: Michael Drysdale

User Interface TaskUser Interface Task

Description: Description: • Updates LCDUpdates LCD• Handles User inputsHandles User inputs• Gets pressure and timer values.Gets pressure and timer values.• Controls output for hotplateControls output for hotplate• Period: 500ms (Periodic)Period: 500ms (Periodic)• Execution time ~ 2.5 ms (max)Execution time ~ 2.5 ms (max)

Page 10: Automatic Pressure Canning System System Software Design By: Michael Drysdale

CPU loadCPU load

L max= (1.5us) + (2.2us) + (2.5ms) + (1ms)

(10ms) ( 10ms) (500ms) (10ms)

L max= 10.5%

L average =10.2 %

Page 11: Automatic Pressure Canning System System Software Design By: Michael Drysdale

ModulesModulesModule Module TasksTasks Public Functions and Public Functions and

DataDatamain.cmain.c WaitForSliceTask()WaitForSliceTask()

UITask()UITask()ControlTask()ControlTask()

Timer.cTimer.c TimerTask()TimerTask() TimeSet()TimeSet()TimeGet()TimeGet()

Lcd4Bit.c Lcd4Bit.c

Todd Morton, Andrew Todd Morton, Andrew Hall, modifiedHall, modified

Lcd4BitInit()Lcd4BitInit()LcdClrDisp()LcdClrDisp()LcdClrLine()LcdClrLine()LcdDispDecByte()LcdDispDecByte()LcdDispStrg()LcdDispStrg()LcdMoveCursor()LcdMoveCursor()

Key.cKey.cTodd Morton, modifiedTodd Morton, modified

KeyTask()KeyTask() KeyInit()KeyInit()GetKey()GetKey()

OCDly.cOCDly.cTodd Morton, modifiedTodd Morton, modified

Getmscnt()Getmscnt()

9S12C32Start.c9S12C32Start.cTodd MortonTodd MortonATD.cATD.c PsiSampleTask()PsiSampleTask() ATDInit()ATDInit()

GetPsi()GetPsi()

Page 12: Automatic Pressure Canning System System Software Design By: Michael Drysdale

Keypad Data Flow Keypad Data Flow DiagramDiagram

Keypad Keypad I/O

KeyTask()

key

KeyFlag

Keypad Driver Module

Application

KeyInit()

GetKey()

Page 13: Automatic Pressure Canning System System Software Design By: Michael Drysdale

LCD Data FlowLCD Data Flow

UITask

Initialization

Psi Sample

Timer

LCD I/OLCD Module

LcdInit()

GetPsi()

TimeGet ()TimeSet ()

Page 14: Automatic Pressure Canning System System Software Design By: Michael Drysdale

A-To-D Data FlowA-To-D Data Flow

A to D

A-to–D I/O

PAD07

Ts =1ms

A\D ConverterATD.c

PsiSensorTask()

ATDDR7

ATDCTL5

AN0-7

Page 15: Automatic Pressure Canning System System Software Design By: Michael Drysdale

Questions?Questions?