MDR powerpoint

Download Report

Transcript MDR powerpoint

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 Log
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
System Block Diagram
Telephone
Network
Holtek HT9032D
UART
Atmel AVR AT90S8515
Calling Line Identification
Receiver + Supporting
Hardware
1200bps
Caller ID Microcontroller
I2C Protocol
Microchip 24FC515
512Kb EEPROM – Caller ID Data
LAN
Packet Whacker/ Realtek
RTL8019AS
Full Duplex Ethernet
Controller
I2C Protocol
Atmel AVR AT90S8515
HTTP + TCP/IP Microcontroller
Proprietary
Protocol
I2C Protocol
Microchip 24FC515
512Kb EEPROM – Web Pages
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
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
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
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
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
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
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
Caller ID Problems
Encountered
Holtek HT9032C device not operating as
expected
Device clock issues
Read UART/Write EEPROM conflict
Next Steps
Caller ID

Design manageable storage scheme
Validation
Indexing
Reliability
System Block Diagram
Telephone
Network
Holtek HT9032D
UART
Atmel AVR AT90S8515
Calling Line Identification
Receiver + Supporting
Hardware
1200bps
Caller ID Microcontroller
I2C Protocol
Microchip 24FC515
512Kb EEPROM – Caller ID Data
LAN
Packet Whacker/ Realtek
RTL8019AS
Full Duplex Ethernet
Controller
I2C Protocol
Atmel AVR AT90S8515
HTTP + TCP/IP Microcontroller
Proprietary
Protocol
I2C Protocol
Microchip 24FC515
512Kb EEPROM – Web Pages
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
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
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
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
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)
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
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.
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
IP Packet Handling – UDP/TCP
UDP


Used for implementing DHCP
‘Connectionless’ – No acknowledgement sent
TCP

Used for receiving HTTP (Web Server)
Requests
Ethernet Controller Problems
Realtek RTL8019AS could not be reset in
software.


Unable to configure
Unable to debug
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
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
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
Questions?