automatic pressure canning system system software design by: michael drysdale

Post on 19-Jan-2018

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

Automatic Automatic Pressure Pressure

Canning SystemCanning SystemSystem Software Design System Software Design

By: Michael DrysdaleBy: 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

State DiagramState Diagram

ENTRY

STAGE 1PREHEAT

STAGE 2PRESSURIZED

STAGE 3DEPRESSURIZING

Enter

Cancel

Cancel

Target PSI

Count down complete

Cancel

UpDownShiftCancel

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

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

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)

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)

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)

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)

CPU loadCPU load

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

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

L max= 10.5%

L average =10.2 %

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()

Keypad Data Flow Keypad Data Flow DiagramDiagram

Keypad Keypad I/O

KeyTask()

key

KeyFlag

Keypad Driver Module

Application

KeyInit()

GetKey()

LCD Data FlowLCD Data Flow

UITask

Initialization

Psi Sample

Timer

LCD I/OLCD Module

LcdInit()

GetPsi()

TimeGet ()TimeSet ()

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

Questions?Questions?

top related