1 / 28

Senior Design Project 2004/2005 Web-Enabled Caller Identification

Senior Design Project 2004/2005 Web-Enabled Caller Identification 12/09/2004 Barron Shurn Daniel St. Clair Professor Soules Design Idea - Function Caller Identification device accessible via the Web All functions Web based, no physical interface to device Web Page Function:

Audrey
Download Presentation

Senior Design Project 2004/2005 Web-Enabled Caller Identification

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Senior Design Project 2004/2005Web-Enabled Caller Identification 12/09/2004 Barron Shurn Daniel St. Clair Professor Soules

  2. Design Idea - Function • Caller Identification device accessible via the Web • All functions Web based, no physical interface to device • Web Page Function: • View/Query Call Log • Edit Call Log • Download/Archive Call Log

  3. Design Idea - Details • Used on a Home/Business LAN • Broadband - Always Connected • Size: • Dimensions: 5”X5”X2” • Weight: Less than 2 lbs. • 5V AC/DC Power Adapter

  4. System Block Diagram Telephone Network Holtek HT9032D Calling Line Identification Receiver + Supporting Hardware Atmel AVR AT90S8515 Caller ID Microcontroller UART 1200bps I2C Protocol Microchip 24FC515 512Kb EEPROM – Caller ID Data I2C Protocol Packet Whacker/ Realtek RTL8019AS Full Duplex Ethernet Controller Atmel AVR AT90S8515 HTTP + TCP/IP Microcontroller LAN I2C Protocol Proprietary Protocol Microchip 24FC515 512Kb EEPROM – Web Pages

  5. MDR Specification • A functioning Caller ID data decoder. The Caller ID data will be decoded and stored in a semiconductor memory device.  This  data will be verifiable using a Personal Computer running microcontroller development software • A microcontroller with a minimally functional TCP/IP stack implemented so that it can respond to ping requests

  6. Caller Identification • MDR Specification was Successful! • Decoded data from phone line • Stored data to EEPROM • Read data on EEPROM and displayed using UART + PC Terminal Software for verification

  7. Caller Identification - Hardware • Holtek HT9032 - Decodes Caller ID data • Atmel AVR AT90S9515 – Reads + Parses Data From HT9032 and sends to EEPROM • Microchip 512Kb EEPROM - Stores Caller ID Data

  8. Caller ID Data • Theory of operation • Data transmitted between first & second rings • Uses Frequency Shift Keying • Logic 1 sent as 1200 Hz signal • Logic 0 sent as 2200 Hz signal • Data sent at 1200 bps using standard ASCII codes • Data Transmission Scheme • Initiation String – 30 bytes – ’01’ bit pattern • Type of message – 1 byte – For Caller ID is always 04h • Length of message – 1 byte • Month/Day/Hour/Minute – 2 bytes for each field • Phone number – 10 bytes • Line Owner’s Name – Up to 15 bytes • Check sum – 1 byte

  9. Holtek Device • Two devices available: HT9032C / HT9032D • Both devices decode Caller ID data from Frequency Shift Keying to ASCII codes which are sent out of the chip at 1200bps • Difference between two devices • HT9032C • 16 pin • outputs both raw data and “cooked” data (w/o initialization string) • Ring + Carrier Detection pins • HT9032D • 8 pin • Requires micro-controller to detect ring

  10. Micro-Controller • Atmel AT90S8515 • Crystal Frequency: 4MHz (up to 16MHz) • Robust Instruction Set (130 Instructions) • AVR GCC C Complier (freeware) • Hardware UART • Low Power Sleep Mode • 512 byte EEPROM + 512 byte SRAM

  11. EEPROM • 512 Kbit EEPROM (64Kbyte) • I2C Compliant • Protocol that allows EEPROM access using two lines (Serial Data Line, Serial Clock Line) • Allows for 1400 logged calls • Month/Day/Hour/Minute – 8 bytes total • Phone number – 10 bytes • Line Owner’s Name – Up to 25 bytes (8+10+25 bytes)*8 bits= 344 bits/call 512000 bit EEPROM/264 bits = 1400 calls stored *Plan to limit call log size to 500 calls

  12. Caller ID Problems Encountered • Holtek HT9032C device not operating as expected • Device clock issues • Read UART/Write EEPROM conflict

  13. Next Steps • Caller ID • Design manageable storage scheme • Validation • Indexing • Reliability

  14. System Block Diagram Telephone Network Holtek HT9032D Calling Line Identification Receiver + Supporting Hardware Atmel AVR AT90S8515 Caller ID Microcontroller UART 1200bps I2C Protocol Microchip 24FC515 512Kb EEPROM – Caller ID Data I2C Protocol Packet Whacker/ Realtek RTL8019AS Full Duplex Ethernet Controller Atmel AVR AT90S8515 HTTP + TCP/IP Microcontroller LAN I2C Protocol Proprietary Protocol Microchip 24FC515 512Kb EEPROM – Web Pages

  15. What is the Ethernet Controller • Allows device to directly connect to a network • Handles all hardware complexities • Delivers raw packets to the application • Very similar to the network interface card (NIC) in your typical Desktop PC

  16. How to interface the Ethernet Controller • Setup microcontroller ports for I/O • NIC Initialization: • Perform Hard Reset • Perform Soft Reset by reading/writing a value to the NIC • Write to NIC configuration registers • Set MAC Address • Accept only broadcast packets (ARP + DHCP Requests) + packets intended for set MAC address

  17. Ethernet Controller Interface • Software Emulation of 9346 EEPROM • Used to store NIC configuration data • 9346 is a 16 bit x 1k serial EEPROM • Only need 3 bytes of data from the EEPROM for using the NIC in 8-bit mode • Emulate by using 3 pins on the microcontroller • EEDO, EEDI, EESK • Time sensitive code written in inline-assembly

  18. TCP/IP Implementation • Written in C • Main Loop • Checks NIC for a packet by polling the NIC interrupt pin • Packet Processing • Examine Packet Header (first four bytes) • Determines Packet Length • Read entire packet to microcontroller SRAM • Determine Packet Type

  19. Packet Types • Address Resolution Protocol (ARP) • Bind IP Address to MAC Address • Internet Protocol (IP) • Internet Control Message Protocol (ICMP) • User Datagram Protocol (UDP) • Transmission Control Protocol (TCP)

  20. ARP Packet Handling • ARP Response Packet Contents • Source MAC Address • Source IP Address • Destination MAC Address • Destination IP Address • Padding characters to meet minimum packet size requirements (64 bytes) • Number of bytes to be transmitted

  21. IP Packet Handling - ICMP • ICMP is the protocol used for the ping function • Response packet is essentially an echoed packet with source and destination fields swapped.

  22. ICMP Packet Handling • ICMP Packet Contents • Packet Type (ICMP = 0x00) • Destination IP Address • Source IP Address • Destination MAC Address • Source MAC Address • IP Header Checksum • Original Packet Data + Checksums

  23. IP Packet Handling – UDP/TCP • UDP • Used for implementing DHCP • ‘Connectionless’ – No acknowledgement sent • TCP • Used for receiving HTTP (Web Server) Requests

  24. Ethernet Controller Problems • Realtek RTL8019AS could not be reset in software. • Unable to configure • Unable to debug

  25. Debugging • Connected HTTP + TCP/IP Microcontroller to UART + PC Terminal Software • Wrote software to perform a register dump of the NIC • NIC was unreadable • Examined NIC drivers for other processors including: • Microchip PIC 16F877 and Rabbit 2000T

  26. Debugging • Simulated code in software environment • Monitored Registers and I/O • Quadruple Checked Wiring / Hardware Setup • Power Supply, Clock • Replaced Realtek RTL8019AS • Posted Messages on support forums

  27. Next Step • Exhausted all of our current resources • Contact makers of the Ethernet Controller for more documentation • Worst Case Scenario: • Obtain new Ethernet controller • Crystal Semiconductor CS8900A • Popular + Well Documented

  28. Questions?

More Related