multi-access lock andrew hall. general system requirements mcu: mc9s12c128 bus frequency: 24mhz...
DESCRIPTION
Task Priorities 4)Start Task 5)Mag. Reader Task 6)User Interface Task 7)Keypad TaskTRANSCRIPT
Multi-Access Lock
Andrew Hall
General System Requirements
• MCU: MC9S12C128• Bus Frequency: 24MHz• Memory Requirements:
• 11k bytes Flash EEPROM• 3k bytes RAM
• Kernel: MicroC/OS-II• Tick Period: 1ms
Task Priorities
4) Start Task5) Mag. Reader Task 6) User Interface Task7) Keypad Task
Start Task
• Initializes the system• Creates the other tasks• Priority: 4• Period: once (at start-up) • Execution Time: ~ 1 sec
Mag. Reader Task
• Reads the card data • Priority: 5• Period: 200 ms (sporadic)• Execution Time: 2ms (max)
User Interface Task
• Displays user prompt• Receives and tests user
inputs • Saves user name and pin#• Controls locking mechanism • Priority: 6• Period: 20ms(sporadic)• Execution Time: 2ms(max)
Keypad
• Scans keypad• Priority: 7• Period: 10ms(sporadic) • Execution Time:~2.2us(max)
CPU Load
Lmax = 2ms + 2ms + 2.2us 200ms 20ms 10msLmax = .11Lavg = .017
Modules
Tasks Public Functions
MultiAccessLock.cOriginal
Start TaskUser Interface
Task
OSTickInit(), KeyInit(), LcdInit4Bit(), sci_open(), LcdClrDisp(), LcdMoveCursor(), LcdDispStrg(), getstrg(), OSTimeDly(), LcdBSpace(), OSTaskResume(), OSTaskSuspend(), OSTaskDel(), OSTaskCreate(), MagReadPend(), EESectErase(), EESectModify(), ConfigECLKDIV()
MagReader.cOriginal
Mag. Reader Task OSTaskCreate(), OSTimeDly(), OSSemPost(), getstrg()
KeyUcos.cWritten by:Todd Morton, modified
Keypad Task OSSemPend() OSTaskCreate(), OSSemPost(), OSTimeDly()
Data Flow Diagrams
MultiAccessLock.c
LCD4Bit I/O
User prompts
Unlock door
Store Memory(user name & pin)
Test data
User inputProgEeprom.c
EE
WordW
rite()
Data Flow Diagrams
Magnetic Strip Reader ModuleMultiAccessLock
MagReadInit()
MagReadPost()
MagReader I/O
MagReadTask()
MagKey
MagFlag
Data Flow Diagrams
Keypad Driver ModuleMultiAccessLock
KeyInit()
KeyPend()
Keypad I/O
KeyTask()
key
KeyFlag
Questions or
Comments?