automatic pressure canning system system software design by: michael drysdale
DESCRIPTION
State Diagram ENTRY STAGE 1 PREHEAT STAGE 2 PRESSURIZED STAGE 3 DEPRESSURIZING Enter Cancel Target PSI Count down complete Cancel Up Down Shift CancelTRANSCRIPT
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?