home enhancement suite presenter: allen humphreys william bouchonnet, daniel sabo, nathan irvin
TRANSCRIPT
Home Enhancement Suite
Presenter: Allen Humphreys
William Bouchonnet, Daniel Sabo, Nathan Irvin
Summary• Module specific design considerations
and status
• Major software component descriptions
• Hierarchical code organization diagram and descriptions
Updated PSSCs1. An ability to detect a user based on RFID and determine
which user has priority, displaying the user's identity on an LCD.
2. An ability to adjust the light intensity to match a user’s settings through X10 protocol.
3. An ability to adjust a television set or other HDMI device using CEC-HDMI protocol, to a user's preferred settings. (ON/OFF, Channel, Volume)
4. An ability to unlock a door when an acceptable RFID is present.
5. An ability to select/set preferred settings through an embedded web server and the ability to save the "light settings" with the press of a button.
micro
PLIX
RJ-11 PL 513Transmitter
ACOutlet
X10Light ControlPower
Supply+5
RFIDReaders
spi
+3.3
Ambient Light Sensor
ethernetport
ADC
HDMIPortI/O
electricstrike
(door lock)
I/O
LCD
uart
user saveI/O
ethernet
XBeeModule uart
XBeeModule Ext. PHY
National DP8384Q
Updated Block Diagram
Software Design Considerations
• Xbee• UART1
• Receive• Tech considerations• Pseudo-code
• PLIX Chip• SPI1
• Transmit• Researched, pseudo-code
Software Design Considerations
• LCD• UART2
• Transmit only• One wire communication• Simple interface
• RFID Reader• UART5
• Receive Only• One wire communication
Major Software Componenets
• Web Interface• Ethernet
• RMII• Ported from Microchip
• Porting started, not tested
• Consumer Electronics Control (CEC)• Port E – Pin 4
• Tristate register for input/output operation• Network mapping• Conceptualized
CEC Timing
CEC Message Framing
Software Design Narrative
• Organization of Code - Polling• Application requires little user interaction• Simpler to code/debug• Minimal service time requirement
• Overall Progress• Microchip HTTP server setup/porting started• Other modules to be tested individually then
wrapped in
main()
InitializeBoard() InitAppConfig() StackInit() Polling Loop
StackTask() StackApplictions() ReceiveUser()
UpdateDoor() UpdateLights() UpdateTV() UpdateLCD()
InstantSave()
Software Design Narrative
Software Design Narrative
• InitializeBoard()
• UART1
• UART2
• UART5
• SPI1
Software Design Narrative
• InitAppConfig()• Application specific data structure setup
• StackInit()• MAC, TCP, UDP, HTTP initializations
main()
InitializeBoard() InitAppConfig() StackInit() Polling Loop
StackTask() StackApplictions() ReceiveUser()
UpdateDoor() UpdateLights() UpdateTV() UpdateLCD()
InstantSave()
Software Design Narrative
Software Design Narrative
• Polling Loop
• StackTask()• Checks for new incoming packets• Performs timed stack operations
• StackApplications()• HTTPServer() – possibly others
• Acts like an RTOS task• Main application must call this function
repeatedly
Software Design Narrative
• Polling Loop (cont’d)
• ReceiveUser()• UpdateDoor()
• Signal door to switch states
• UpdateLights()• Signal PLIX to adjust lighting
Software Design Narrative
• Polling Loop (cont’d)
• ReceiveUser()• UpdateTV()
• Use CEC functions to set channel/volume
• UpdateLCD()• Display the new current user
Software Design Narrative
• Polling Loop (cont’d)
• InstantSave()• Checks for button press• Saves the current ATD light sensor value
Software Design Narrative
• Other/Misc
• Lights• First use and on command• Set lights to each level, record ATD
value
Questions?