© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Networks zExample: elevator controller.
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Terminology zElevator car: holds passengers. zHoistway: elevator shaft. zCar control panel: buttons in each car. zFloor control panel: elevator request, etc. per floor.
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Elevator system floor Hoistway 1Hoistway 2
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Theory of operation zEach floor has control panel, display. zEach car has control panel: yone button per floor; yemergency stop. zControlled by a single controller.
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Elevator position sensing coarse sensor fine
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Elevator control zElevator control has up and down. yTo stop, disable both. zMaster controller: yreads elevator positions; yreads requests; yschedules elevators; ycontrols movement; ycontrols doors.
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Elevator system requirements
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Elevator system class diagram Car Floor Master-control-panel* Controller Motor* Coarse-sensor* Fine-sensor* Car-control-panel* Floor-control-panel* N 1 F 1 1 N
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Physical interfaces Sensor* hit: boolean Coarse-sensor*Fine-sensor* Motor* speed: {o,s,f} Floor-control-panel* up, down: boolean Car-control-panel* Floors[1..F]: boolean emergency-stop: boolean open-door, close-door: boolean Master-control-panel...
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Car and Floor classes Car request-lights[1..F]: boolean current-floor: integer Floor up-light, down-light: boolean
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Controller class Controller car-floor[1..H]: integer emergency-stop[1..H]: integer scan-cars() scan-floors() scan-master-panel() operate()
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Architecture zComputation and I/O occur at: yfloor control panels/displays; yelevator cars; ysystem controller.
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Panels and cab controller zPanels are straightforward---no real-time requirements. zCab controller: yread buttons and send events to system controller; yread sensor inputs and send to system controller.
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. System controller zMust take inputs from many sources: ycar controllers; yfloors. zMust control cars to hard real-time deadlines. zUser interface, scheduling are soft deadlines.
© 2008 Wayne Wolf Overheads for Computers as Components 2 nd ed. Testing zBuild an elevator simulator using an FPGA: ysimulate multiple elevators; ysimulate real-time control demands.