multi-access lock andrew hall. general system requirements mcu: mc9s12c128 bus frequency: 24mhz...

Post on 18-Jan-2018

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Task Priorities 4)Start Task 5)Mag. Reader Task 6)User Interface Task 7)Keypad Task

TRANSCRIPT

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?

top related