Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Senior Design Project 2004/2005 Web-Enabled Caller Identification 12/09/2004 Barron Shurn Daniel St. Clair Professor Soules."— Presentation transcript:

1 Senior Design Project 2004/2005 Web-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 View/Query Call Log Edit Call Log Edit Call Log Download/Archive Call Log Download/Archive Call Log

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

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

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 Decoded data from phone line Stored data to EEPROM Stored data to EEPROM Read data on EEPROM and displayed using UART + PC Terminal Software for verification 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 Data transmitted between first & second rings Uses Frequency Shift Keying 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 sent at 1200 bps using standard ASCII codes Data Transmission Scheme Data Transmission Scheme Initiation String – 30 bytes – ’01’ bit pattern Initiation String – 30 bytes – ’01’ bit pattern Type of message – 1 byte – For Caller ID is always 04h Type of message – 1 byte – For Caller ID is always 04h Length of message – 1 byte Length of message – 1 byte Month/Day/Hour/Minute – 2 bytes for each field Month/Day/Hour/Minute – 2 bytes for each field Phone number – 10 bytes Phone number – 10 bytes Line Owner’s Name – Up to 15 bytes Line Owner’s Name – Up to 15 bytes Check sum – 1 byte 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 HT9032C 16 pin outputs both raw data and “cooked” data (w/o initialization string) Ring + Carrier Detection pins HT9032D HT9032D 8 pin Requires micro-controller to detect ring

10 Micro-Controller Atmel AT90S8515 Crystal Frequency: 4MHz (up to 16MHz) Crystal Frequency: 4MHz (up to 16MHz) Robust Instruction Set (130 Instructions) Robust Instruction Set (130 Instructions) AVR GCC C Complier (freeware) AVR GCC C Complier (freeware) Hardware UART Hardware UART Low Power Sleep Mode Low Power Sleep Mode 512 byte EEPROM + 512 byte SRAM 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) 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 Design manageable storage schemeValidationIndexingReliability

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

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 Hard Reset Perform Soft Reset by reading/writing a value to the NIC Perform Soft Reset by reading/writing a value to the NIC Write to NIC configuration registers 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 Used to store NIC configuration data 9346 is a 16 bit x 1k serial EEPROM 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 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 EEDO, EEDI, EESK Time sensitive code written in inline-assembly 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 Checks NIC for a packet by polling the NIC interrupt pin Packet Processing Examine Packet Header (first four bytes) Examine Packet Header (first four bytes) Determines Packet Length Read entire packet to microcontroller SRAM Read entire packet to microcontroller SRAM Determine Packet Type Determine Packet Type

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

20 ARP Packet Handling ARP Response Packet Contents Source MAC Address Source MAC Address Source IP Address Source IP Address Destination MAC Address Destination MAC Address Destination IP Address Destination IP Address Padding characters to meet minimum packet size requirements (64 bytes) Padding characters to meet minimum packet size requirements (64 bytes) Number of bytes to be transmitted 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) Packet Type (ICMP = 0x00) Destination IP Address Destination IP Address Source IP Address Source IP Address Destination MAC Address Destination MAC Address Source MAC Address Source MAC Address IP Header Checksum IP Header Checksum Original Packet Data + Checksums Original Packet Data + Checksums

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

24 Ethernet Controller Problems Realtek RTL8019AS could not be reset in software. Unable to configure Unable to configure Unable to debug 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 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 Microchip PIC 16F877 and Rabbit 2000T

26 Debugging Simulated code in software environment Monitored Registers and I/O Monitored Registers and I/O Quadruple Checked Wiring / Hardware Setup Power Supply, Clock 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 Contact makers of the Ethernet Controller for more documentation Worst Case Scenario: Obtain new Ethernet controller Obtain new Ethernet controller Crystal Semiconductor CS8900A Popular + Well Documented Popular + Well Documented

28 Questions?


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

Similar presentations


Ads by Google