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: View/Query Call Log Edit Call Log Download/Archive Call LogDesign Idea - Details
Used on a Home/Business LAN Broadband - Always Connected Size: Dimensions: 500500200 Weight: Less than 2 lbs. 5V AC/DC Power AdapterSystem Block Diagram
Atmel AVR AT90S8515
Caller ID Microcontroller
Holtek HT9032D
Calling Line Identification Receiver + Supporting Hardware
Microchip 24FC515
512Kb EEPROM 00Caller ID Data
Packet Whacker/ Realtek RTL8019AS
Full Duplex Ethernet Controller
Atmel AVR AT90S8515
HTTP + TCP/IP Microcontroller
UART
1200bps
I2C Protocol
I2C Protocol
Proprietary Protocol
LAN
Telephone Network
Microchip 24FC515
512Kb EEPROM 00Web Pages
I2C Protocol
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 requestsCaller 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 verificationCaller Identification - Hardware
Holtek HT9032 - Decodes Caller ID data Atmel AVR AT90S9515 00Reads + Parses Data From HT9032 and sends to EEPROM Microchip 512Kb EEPROM - Stores Caller ID DataCaller 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 0030 bytes 0000100bit pattern Type of message 001 byte 00For Caller ID is always 04h Length of message 001 byte Month/Day/Hour/Minute 002 bytes for each field Phone number 0010 bytes Line Owner00 Name 00Up to 15 bytes Check sum 001 byteHoltek 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 00ooked00data (w/o initialization string) Ring + Carrier Detection pins HT9032D 8 pin Requires micro-controller to detect ringMicro-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 SRAMEEPROM
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 008 bytes total Phone number 0010 bytes Line Owner00 Name 00Up 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
Caller ID Problems Encountered
Holtek HT9032C device not operating as expected Device clock issues Read UART/Write EEPROM conflictNext Steps
Caller ID Design manageable storage scheme Validation Indexing ReliabilitySystem Block Diagram
Atmel AVR AT90S8515
Caller ID Microcontroller
Holtek HT9032D
Calling Line Identification Receiver + Supporting Hardware
Microchip 24FC515
512Kb EEPROM 00Caller ID Data
Packet Whacker/ Realtek RTL8019AS
Full Duplex Ethernet Controller
Atmel AVR AT90S8515
HTTP + TCP/IP Microcontroller
UART
1200bps
I2C Protocol
I2C Protocol
Proprietary Protocol
LAN
Telephone Network
Microchip 24FC515
512Kb EEPROM 00Web Pages
I2C Protocol
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 PCHow 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 addressEthernet 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-assemblyTCP/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 TypePacket 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)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 transmittedIP 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.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 + ChecksumsIP Packet Handling 00UDP/TCP
UDP Used for implementing DHCP 00onnectionless00 00No acknowledgement sent TCP Used for receiving HTTP (Web Server) RequestsEthernet Controller Problems
Realtek RTL8019AS could not be reset in software. Unable to configure Unable to debugDebugging
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 2000TDebugging
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 forumsNext 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 DocumentedQuestions?
download Senior Design Project 2004/2005 Web-Enabled Caller Identification
