90 likes | 426 Views
High-level Software Design. Context Diagram Connections between major components Synchronization with external events Polling or interrupts Major software structures Device drivers Bridge between HW and SW. Data Control. Context Diagram. Show software connections between components
E N D
High-level Software Design • Context Diagram • Connections between major components • Synchronization with external events • Polling or interrupts • Major software structures • Device drivers • Bridge between HW and SW
DataControl Context Diagram • Show software connections between components • Indicate which drivers are needed • Indicate where interrupt handlers are needed Example for logging meter(Interrupt Driven) Buttons RS232 MCU I/H Driver Send Data toPC RTC Change Mode Set Clock LCD Driver Driver I/H Display Data Read Data A/D Driver EEROM Store Data Driver Reset(To all Drivers) Main Loop(Do nothing)
External Synchronization • External events may be discovered in two ways • Polling • Check for new data on a regular basis • Main program has to integrate polls into the main loop • Interrupts • External events announce themselves • Must carefully write interrupt handlers • Main program doesn’t have to be aware of what is going on with interrupts • Choices • If your product is driven mostly by external events, use interrupt-driven • If your produce systematically goes through processes, use polling
Device Drivers • Interface between hardware and software • Provide a package of easy-to-use subroutines to control and transfer data to external device • Main software never “touches” I/O ports – instead uses device driver subroutines • Benefits • If hardware changes, only the device driver changes, not the main software • Programmers don’t have to understand the details of all of the hardware • Consistent methods of accessing and controlling external devices
Software Architecture Document • Introduction • Explain the role of software in your product • Context diagram • Draw a diagram showing how the major hardware components of your system are connected with software • Indicate where device drivers and interrupt handlers will be used • Software structure overview • Describe major control flow • Interrupt-driven, polling, hybrid, etc… • Include rationale for your choice
Software Architecture Document • Main software routines • Describe main software routines • Purpose, inputs, outputs and effects • Include diagrams when useful • Device drivers (separate document, due later) • Describe software interface to each device driver • List all driver subroutines including parameters • Describe data structures needed • Indicate which MCU port pins/busses will be used for each hardware component