Tài liệu tham khảo ngành viễn thông: Nghiên cứu ứng dụng chip điều khiển ethernet w5100
Trang 1Lời mở đầu 1
Chương 1: Tổng Quan Về TCP/IP 2
1.1 Giới Thiệu 2
1.2 Tổng quát 2
1.2.1 Tầng Giao Diện Mạng (Network Interface Layer) 2
1.2.2 Tầng Liên Mạng (Internet Layer) 3
1.2.3 Tầng Giao Vận (Transport Layer) 3
Chương 2: Vi Điều Khiển 21
2.1 Tìm hiểu về vi điều khiển AVR-Micro Atmega64L 21
2.1.1 Mô tả chung về AVR 21
2.1.2 Tính năng của Atmega64L 21
2.1.3 Sơ đồ chân 23
2.1.4 Các khối của Atmega64L 25
2.1.4.1.Lõi CPU của Atmega64L 25
2.1.4.2 Bộ nhớ của Atmega64L 29
2.1.4.3 Nguồn xung hệ thống 31
2.1.4.4 Ngắt phần cứng của Atmega64L 31
2.1.4.5.Bộ đếm/định thời của Atmega64L: 32
2.1.4.5.Bộ biến đổi tương tự sang số ADC 33
2.1.4.6.Bộ truyền nhận nối tiếp USART 35
Trang 2Lời mở đầu
Trong thời đại ngày nay, sự bùng nổ của cuộc cách mạng công nghệ thông tinđang diễn ra nhanh chóng trên phạm vi toàn cầu Công nghệ thông tin đã làm thay đổimọi mặt của đời sống con người, biến thế giới thành ngôi nhà chung Tất cả các nướcvà các vùng lãnh thổ trên thế giới liên kết với nhau thông qua mạng Internet Internetphát triển nhanh chóng và trở thành phương tiện giao tiếp với tốc độ nhanh, hiệu quảvới giá thành rẻ Internet đã làm cuộc sống của con người được cải thiện rất nhiều,nhanh hơn và thuận tiện hơn.
Hiện nay, Internet không chỉ đáp ứng nhu cầu tìm kiếm thông tin, giải trí… màcòn thực sự trở thành phương tiện giúp con người trao đổi, mua bán Điều này thực sựcó ý nghĩa, nó giúp giảm bớt các chi phí trong kinh doanh như giảm chi phí vậnchuyển trung gian, chi phí giao dịch… và đặt biệt giúp là giúp tiết kiệm thời gian đểcon người đầu tư vào các hoạt động khác Do đó, con người có thể ngồi ở nhà để tìmkiếm thông tin theo ý muốn.
Nắm bắt được những ứng dụng to lớn về Internet mà ngày nay các nhà sản xuấtchíp đã thiết kế ra nhiều loại chíp tích hợp nhiều ứng dụng liên quan tới mạng.
Do vậy, trong khóa luận này, tôi chọn đề tài “Nghiên cứu ứng dụng chíp điều khiển ethernet W5100”, tìm hiểu về một số ứng dụng của chíp liên quan tới mạng.
Qua đây, tôi xin gửi lời cảm ơn chân thành đến TS.Nguyễn Thăng Long là
những người đã hướng dẫn, chỉ bảo nhiệt tình giúp tôi hoàn thành khóa luận này.Hà nội, ngày 24 tháng 5 năm 2008
Sinh viênNguyễn Thanh Hiệp
Trang 3Chương 1: Tổng Quan Về TCP/IP
1.1 Giới Thiệu
Để các máy máy tính có thể liên lạc với nhau qua mạng, chúng phải sử dụngcùng 1 ngôn ngữ hay còn gọi là 1 giao thức (Protocol) Giao thức là 1 hệ luật và chuẩncho phép các máy tính trong mạng liên lạc với nhau
TCP/IP là viết tắt của Transmission Control Protocol (Giao thức Điều KhiểnTruyền Thông) / Internet Protocol (Giao thức Internet)
TCP/IP không chỉ gồm 2 giao thức mà thực tế nó là tập hợp của nhiều giaothức Chúng ta gọi đó là 1 Hệ Giao Thức hay Bộ Giao Thức (Suite Of Protocols)
1.2 Tổng quát
Để cho các máy tính trao đổi dữ liệu với nhau TCP/IP sử dụng mô hình truyềnthông 4 tầng hay còn gọi là Mô Hình DoD (Mô hình của Bộ Quốc Phòng Mỹ) Cáctầng trong mô hình này là (Theo thứ tự từ trên xuống):
+ Tầng Ứng Dụng (Application Layer)+ Tầng Giao Vận (Transport Layer)+ Tầng Liên Mạng (Internet Layer)
+ Tầng Giao Diện Mạng (Network Interface Layer)
Mỗi giao thức của Họ TCP/IP đều thuộc 1 trong các tầng này Ta sẽ tìm hiểutừng tầng
1.2.1.Tầng Giao Diện Mạng (Network Interface Layer)
Tầng Giao Diện Mạng có trách nhiệm đưa dữ liệu tới và nhận dữ liệu từphương tiện truyền dẫn Tầng này gồm các thiết bị phần cứng vật lí chẳng hạn nhưCard Mạng và Cáp Mạng
1 Card Mạng chẳng hạn card Ethernet chứa 1 số HEX 12 kí tự C0-F4) được gọi là Địa Chỉ MAC (Media Access Control) hay Địa Chỉ Truy NhậpPhương Tiện MAC đóng vai trò quan trọng trong việc gán địa chỉ và truyền dữ liệu
Trang 4(00-18-37-03- 1 số giao thức tiêu biểu thuộc tầng này gồm : + ATM (Asynchronous Transfer Mode) + Ethernet
+ Token Ring
+ FDDI (Fiber Distributed Data Interface) + Frame Relay
1.2.1.Tầng Liên Mạng (Internet Layer)
Nằm bên trên tầng giao diện mạng Tầng này có chức năng gán địa chỉ, đóng
gói và định tuyến (Route) dữ liệu 4 giao thức quan trọng nhất trong tầng này gồm: + IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu trước khitruyền và định tuyến chúng tới đích.
+ ARP (Address Resolution Protocol): Có chức năng biên dịch địa chỉ IPcủa máy đích thành địa chỉ MAC.
+ ICMP (Internet Control Message Protocol): Có chức năng thông báolỗi trong trường hợp truyền dữ liệu bị hỏng.
+ IGMP (Internet Group Management Protocol): Có chức năng điềukhiển truyền đa hướng (Multicast)
1.2.2.Tầng Giao Vận (Transport Layer)
Có trách nhiệm thiết lập phiên truyền thông giữa các máy tính và quy định cáchtruyền dữ liệu 2 giao thức chính trong tầng này gồm:
+ UDP (User Datagram Protocol): Còn gọi là Giao Thức Gói NgườiDùng UDP cung cấp các kênh truyền thông phi kết nối nên nó không đảm bảo truyềndữ liệu 1 cách tin cậy Các ứng dụng dùng UDP thường chỉ truyền những gói có kíchthước nhỏ, độ tin cậy dữ liệu phụ thuộc vào từng ứng dụng
+ TCP (Transmission Control Protocol): Ngược lại với UDP, TCP cungcấp các kênh truyền thông hướng kết nối và đảm bảo truyền dữ liệu 1 cách tin cậy.TCP thường truyền các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về cácgói tin đã nhận
Trang 51.2.4.Tầngứng dụng (Application Layer)
Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng Được sử dụng để
định dạng và trao đổi thông tin người dùng 1 số giao thức thông dụng trong tầng nàylà:
+ DHCP (Dynamic Host Configuration Protocol): Giao Thức Cấu HìnhTrạm Động.
+ DNS (Domain Name System): Hệ Thống Tên Miền.
+ SNMP (Simple Network Management Protocol): Giao Thức Quản LýMạng Đơn Giản.
+ FTP (File Transfer Protocol): Giao Thức Truyền Tập Tin
+ TFTP (Trivial File Transfer Protocol): Giao Thức Truyền Tập TinBình Thường
+ SMTP (Simple Mail Transfer Protocol): Giao Thức Truyền Thư ĐơnGiản
Trang 6Hình1:Bảng sau mô tả khái quát về Bộ Giao Thức TCP/IP
chỉ IP
Mỗi máy trên mạng TCP/IP hay còn gọi là trạm TCP/IP được nhận dạng bằng1 địa chỉ IP logic Mỗi trạm hay mỗi thiết bị mạng sử dụng TCP/IP để truyền thôngcần có 1 địa chỉ IP duy nhất
Địa chỉ IP cho biết vị trí của 1 hệ thống trong 1 mạng giống như địa chỉ xácđịnh ngôi nhà trên 1 con đường nào đó Tương tự như 1 khu dân cư Địa chỉ IP phải làduy nhất trên toàn cầu và phải được viết dưới 1 định dạng chuẩn.
Mỗi địa chỉ IP được chia thành 2 phần : Phần địa chỉ mạng (Net ID) và Phầnđịa chỉ trạm (Host ID)
+ Net ID: Dùng để nhận dạng những hệ thống trong cùng 1 khu vực vậtlý còn được gọi là Phân Đoạn (Segment) Mọi hệ thống trong cùng 1 Phân Đoạn phảicó cùng Địa Chỉ Mạng và Phần địa chỉ này phải là duy nhất trong số các mạng hiện có.+ Host ID: Dùng để nhận dạng 1 trạm làm việc, 1 máy chủ, 1 Routerhoặc 1 trạm TCP/IP trong 1 phân đoạn Phần địa chỉ trạm cũng phải là duy nhất trong1 mạng.
ĐƯỜNG Địa chỉ IP cũng gồm 2 phần: NET ID – HOST ID
+ Phần đầu tiên, NET ID nhận dạng mạng mà máy tính nối tới, tất cảmáy tính trong cùng mạng phải có cùng NET ID giống như mọi nhà trong cùng quậnphải có cùng MÃ BƯU ĐIỆN.
Trang 7+ Phần thứ hai, HOST ID xác định máy tính, router hoặc thiết bị mạngkhác trong mạng HOST ID phải là duy nhất trong 1 mạng giống như SỐ NHÀ, TÊNĐƯỜNG phải là duy nhất trong 1 quận Hai máy tính có thể có cùng HOST ID nếuNET ID của chúng khác nhau, giống như hai ĐƯỜNG có thể cùng tên nếu như chúngthuộc 2 quận khác nhau
Sự kết hợp giữa NET ID và HOST ID phải cho phép nhận dạng duy nhất mỗimáy tính riêng biệt
Các địa chỉ IP có chiều dài 32bit được chia thành 4 dãy Mỗi dãy gồm 8bit (1Byte), mỗi Byte được phân cách = 1 dấu “.”, 1 Byte là 1 giá trị nằm trong khoảng từ 0-255 Cách biểu diễn như vậy gọi là “Kí hiệu thập phân dấu chấm” (Dotted-Decimal Notation) để cho mọi người sử dụng nhớ địa chỉ 1 cách dễ dàng.
Tuy nhiên khi xử lý thông tin máy tính lại sử dụng Hệ Nhị Phân (Binary) vì tín hiệu chúng sử dụng để truyền thông chỉ có 2 trạng thái là Bật (1) và Tắt (0).
Trang 8Trong 1 Byte , mỗi bit được gán một giá trị Nếu Bit được đặt là 0 thì nó đượcgán giá trị 0, nếu Bit được đặt là 1 thì có thể chuyển đổi thành 1 giá trị thập phân Bitthấp nhất trong Byte tương ứng với 1, Bit cao nhất tương ứng với 128 Vậy giá trị lớnnhất của 1 Byte là 255 tương ứng với trường hợp cả 8 Bit đều được đặt là 1.
Ví dụ: Ta sẽ đổi địa chỉ sau: 10101100 00010000 00000101 01111101 sang dạng KíHiệu Thập Phân Dấu Chấm.
1.2.6 Địa chỉ IP Public và Địa chỉ IP Private
1.2.6.1 IP Public
Mỗi 1 địa chỉ IP ngoài Internet là duy nhất Để các Network có những địa chỉduy nhất ngoài Internet, thì Internet Assigned Numbers Authority (IANA) sẽ chianhững khoảng địa chỉ không dự trữ thành những phần nhỏ và ủy thác trách nhiệm phân
Trang 9phối địa chỉ cho các tổ chức Đăng Kí Miền khắp thế giới Những tổ chức đó là Pacific Network Information Center (APNIC), American Registry for InternetNumbers (ARIN), and Réseaux IP Européens (RIPE NCC) Những tổ chức này sẽphân phối những khối địa chỉ đến 1 số nhà các Internet Service Provider (ISP) lớn vàcác ISP lớn này sau đó sẽ gán những khối nhỏ hơn cho các đại lý và các ISP nhỏ hơn.
Asia- ISP sẽ cấp 1 IP Public cho mỗi máy tính của bạn để các máy tính này có thểkết nối trực tiếp đến ISP Các địa chỉ này được cấp 1 cách tự động dến mỗi máy tínhkhi máy tính kết nối và có thể là địa chỉ tĩnh nếu đường line của bạn thuê riêng hay cáctài khoàn Dial-up.
1.2.6.2 IP Private
IANA đã dự trữ một ít địa chỉ IP mà các địa chỉ này không bao giờ được sửdụng trên Internet Những địa chỉ IP Private này được sử dụng cho những Host yêucầu có IP để kết nối nhưng không cần được thấy trên các mạng Public Ví dụ, 1 userkết nối những máy tính trong mạng TCP/IP ở nhà thì ko cần cấp 1 địa chỉ IP Publiccho mỗi Host User có thể lấy những khoảng IP ở bảng dưới đây để cung cấp địa chỉcho các Host trong mạng.
Những host có địa chỉ IP Private có thể kết nối đến Internet bằng cách sửdụng 1 Proxy Server hay 1 máy tính chạy Windows Server 2003 đã cấu hình như là 1Network Address Translation (NAT) Server Windows Server 2003 cũng tích hợpchức năng Internet Connection Sharing (ICS) để cung cấp dịch vụ NAT đơn giản chocác Client trong mạng Private.
Trang 10 Các lớp này có chiều dài phần NET ID và HOST ID khác nhau nên số lượngMạng và số lượng Trạm trên mỗi mạng cũng khác nhau.
+ Lớp A: Được gán cho các Mạng có kích thước cực lớn Trong lớp địachỉ này Byte đầu tiên xác định NET ID, Bit cao nhất của Byte này luôn được đặt là 0.3 Byte còn lại xác định Host ID Do đó lớp A có thể cấp cho 126 Mạng với 16.777.214Trạm trên mỗi Mạng
+ Lớp B: Được gán cho các Mạng có kích thước vừa và lớn Trong lớpđịa chỉ này 2 Byte đầu tiên xác định NET ID, 2 Bit cao nhất của Byte đầu tiên luônđược đặt là 1 0 2 Byte còn lại xác định Host ID Do đó lớp B có thể cấp cho 16.384Mạng với 65.534 Trạm trên mỗi Mạng.
+ Lớp C: Được gán cho các Mạng có kích thước nhỏ Trong lớp địa chỉnày 3 Byte đầu tiên xác định NET ID, 3 Bit cao nhất của Byte đầu tiên luôn được đặtlà 1 1 0 Byte cuối cùng xác định Host ID Do đó lớp C có thể cấp cho 2.097.152Mạng với 254 Trạm trên mỗi Mạng.
+ Lớp D: Các địa chỉ lớp này sử dụng cho Truyền Đa Hướng(Multicast) 1 nhóm Multicast có thể chứa 1 hoặc nhiều Trạm Trong lớp này 4 Bit caonhất của Byte đầu tiên luôn được đặt là 1 1 1 0, các Bit còn lại định nghĩa nhómMulticast Địa chỉ lớp D không được chia thành Net ID và Host ID Các gói(Packets)Multicast được truyền tới 1 nhóm Trạm cụ thể và chỉ có các Trạm đăng kí vào nhómnày mới nhận được gói.
+ Lớp E: Là lớp địa chỉ thực nghiệm, nó không được thiết kế cho mụcđích sử dụng chung Lớp E được dự phòng cho các ứng dụng tương lai Các Bit caonhất của Byte đầu tiên luôn được đặt là 1 1 1 1.
Tổng số IP có thể sử dụng là : 3.720.314.628
Trang 11Hình 2:Bảng sau đây sẽ mô tả khái quát về các lớp địa chỉ IP
Trang 12Hình 3:Bảng mô tả sự khác nhau giữa 3 Lớp địa chỉ A, B và C:1.2.8 Subnet Mask
Để biết Trạm đích thuộc Mạng cục bộ hay ở xa Trạm nguồn cần 1 thông tinkhác Thông tin này chính là Subnet Mask.
Subnet Mask là 1 địa chỉ 32 bit được sử dụng để che 1 phần của địa chỉ IP.Bằng cách này các máy tính có thể xác định đâu là Net ID và đâu là Host ID trong 1địa chỉ IP
Mỗi Trạm trong mạng TCP/IP yêu cầu có 1 Subnet Mask Nó được gọi làSubnet Mask mặc định, nếu nó chưa được chia Subnet (vì vậy nó chỉ có 1 SubnetĐơn), và được gọi là Subnet Mask tùy ý nếu nó được chia thành nhiều Subnet Ví dụ : 1 số 32bit tiêu biểu cho 1 Subnet Mask mặc định được dùng bởi nhữngTrạm đã cấu hình với 1 địa chỉ lớp C (ví dụ 192.168.20.50) là :11111111 11111111
Trang 1311111111 00000000 (255.255.255.0) Khi 1 trạm có địa chỉ 192.168.20.50 gởi gói tinđến địa chỉ 192.168.50.20 Đầu tiên, Trạm sẽ thực hiện phép tính AND giữa Địa Chỉcục bộ với Subnet Mask mặc định cục bộ Bởi vì khi thực hiện phép tính AND 2 số,bất kì số nào AND với 0 sẽ là 0, và AND với 1 sẽ là chính nó => khi AND192.168.20.50 với 255.255.255.0 kết quả là 192.168.20.0 Máy trạm sau đó sẽ thựchiện phép tính AND giữa Địa chỉ Đích với Subnet Mask giống trên TCP/IP sau đó sẽso sánh kết quả những giá trị từ 2 phép tính AND Nếu 2 giá trị đồng nhất thì TrạmTCP/IP kết luận đích kia là trên Subnet cục bộ Nếu 2 giá trị khác nhau thì Trạm xácđịnh đích kia là ở xa
Có 1 cách viết khác để xác định Subnet Mask là: Địa chỉ IP / Tiền tố Mạng.Tiền tố Mạng được xác định bằng cách cộng tất cả các bit 1 trong dãy 32bit của SubnetMask.
Ví dụ : 192.168.5.10 có Subnet Mask mặc định là 255.255.255.0 Đổi qua sốnhị phân sẽ là 11111111 11111111 11111111 00000000.
Tổng cộng có 24 bit 1 Vậy ta có thể viết dưới dạng 192.168.5.10 / 24
1.2.9 Default Gateway
Khi 1 trạm trong TCP/IP cần truyền thông tin với 1 Trạm trên Mạng khác thìnó phải thông qua 1 Router Router được gắn nhiều Interface (ví dụ Card Mạng) kếtnối đến các Mạng riêng biệt, Routing là quá trình nhận những gói IP tại 1 Interface vàgởi những gói này ra 1 Interface khác hướng về 1 đích cuối cùng Với 1 host được cấp
Trang 14trên Mạng TCP/IP thì Default Gateway là địa chỉ của Router, nằm trong 1 phạm viBroadcast, nó được cấu hình để đưa những luồng IP đến Mạng khác
Khi 1 máy tính cố gắng truyền đạt thông tin đến 1 trạm khác trên Mạng IP,máy tính sẽ dùng SUBNET MASK để xác định Trạm đích là Cục Bộ (Local) hay ở Xa(Remote) Nếu đích là 1 trạm trên 1 phân đoạn Mạng Cục Bộ, máy tính sẽ đơn giảngởi 1 gói tin đến Mạng Cục Bộ bằng cách truyền cho tất cả (Broadcast) Nếu đích là 1Trạm ở xa, máy tính sẽ đưa gói tin đến Default Gateway đã được xác định trongTCP/IP Properties Router được ghi rõ tại địa chỉ Default Gateway sau đó sẽ chịu tráchnhiệm đưa gói tin đến Mạng 1 cách chính xác
1.3 TCP/IP cho vi điều khiển
Hơn nữa, có cảm giác như rất nhiều lớp TCP/IP nó không chỉ hoạt động khi đượcyêu cầu mà cả những lúc không được yêu cầu Một hệ thống có nhiều bộ nhớ dữ liệuvà bộ nhớ chương trình có thể dể dàng kết hợp chặt chẽ thực hiện những nhu cầu Mộthệ thống điều khiển có thể cung cấp rất nhiều thuận lợi và do đó nó có thể thực hiệntheo các phần khác nhau Nhưng nó cũng trở nên khó khăn khi hệ thống chỉ có 8bitđiều khiển, với vài trăm byte RAM và giới hạn bộ nhớ chương trình sử dụng Thêmvào đó là truy cập hệ thống điều khiển, người dùng phải đặc biệt chú ý ứng dụngchính Một TCP/IP Stack nó kết hợp chặt chẽ với ứng dụng chính là tương đối dễ dàngvà có thể nó rất có hiệu quả.
Phần lớn các chương trình được viết bằng ngôn ngữ “C” Nó phụ thuộc vàochương trình biên dịch để nó tự động thay đổi các file nguồn Giả sử TCP/IP Stackđược thiết kế cho họ vi điều khiển PIC 18 thì nó có thể dễ dàng chạy trong các thiết bịphần cứng của vi điều khiển PIC 18
Trang 15Cũng giống như TCP/IP chuẩn, TCP/IP Stack cho vi điều khiển cũng chia thànhnhiều lớp TCP/IP Stack Các mã ở mỗi lớp được tách ra từ dữ liệu ban đầu, trong khicác APIs(Application Programming Interfaces) được định nghĩa thông qua các thưviện có sẵn Không giống như TCP/IP chuẩn thì nhiều lớp TCP/IP Stack của vi điềukhiển trực tiếp truy cập một hoặc nhiều lớp mà không cần theo thứ tự từ trên xuống
Thêm vào đó TCP/IP Stack có thêm 2 module mới là “Stack Task” và“ARPTask” StackTask dùng để điều khiển tất cả các module trong khi ARPTask quảnlý các lớp ARP(Address Resolution Protocol).
Như đã đề cập phía trên thì TCP/IP stack là một ngăn xếp hoạt đông liên tục cóvài lớp TCP/IP thì hoạt động ở chế độ không đồng bộ.
TCP/IP Stack cho vi điều khiển được thiết kế một cách động lập đối với một hệthống và do đó có thể thực thi hệ thống một cách đa nhiệm Kết quả là nó có thể sửdụng được một vài hệ thống và thường được sử dụng để điều khiển hệ thống đa nhiệmhoặc là không.
Hình 4 : Biểu diễn sở đồ TCP/IP stack cho vi điều khiển
Trang 161.3.2.Hardwired TCP/IP
1.3.2.1 Giới thiệu về chip Ethernet W5100
Cung cấp bộ giao thức TCP/IP trong phần cứng: TCP, UDP, IPv4ARP,IGMP, PPPoE, Ethernet.
10BaseT/100BaseTX được tích hợp trong phần cứng. Tự động cung cấp MDI/MDIX.
Kết nối ADSL(sử dụng giao thức PPPoE với PAP/CHAP ). 4 sockets độc lập đồng thời xảy ra cùng 1 lúc.
16Kbyte cho bộ nhớ trong dùng cho truyền nhận. Công nghệ CMOS 0.18um.
Điện áp làm việc 3.3v-5v.
Trang 17 Được đóng gói trong 80 chân vào ra.
Chuẩn giao tiếp cho phép truyền dữ liệu đồng bộ(SPI mode 0,3). Có LED ở lối ra (truyền, nhận, tốc độ, xung đột, kết nối).
1.3.2.1.1 Sơ đồ chân
Hình 5: Sơ đồ cấu hình chân của W5100
1.3.2.1.2 Miêu tả một số thanh ghi
MR (Mode Register) [R/W] [0x0000] [0x00]: Là thanh ghi dùng để S/Wreset,kiểm tra mode bộ nhớ, mode ngắt kết nối, mode PPPoE và bus I/F.
Trang 18 GWR (Gateway IP Address Register) [R/W] [0x0001 – 0x0004] [0x00]: Làthanh ghi để cài đặt địa chỉ Gateway.
SUBR (Subnet Mask Register) [R/W] [0x0005 – 0x0008] [0x00]: Là thanhghi để cài đặt địa chỉ Subnet Mask
SHAR (Source Hardware Address Register) [R/W] [0x0009 – 0x000E][0x00]: Là thanh ghi để cài đặt địa chỉ Source Hardware
SIPR (Source IP Address Register) [R/W] [0x000F – 0x0012] [0x00]: Làthanh ghi để cài đặt địa chỉ IP.
IR (Interrupt Register) [R] [0x0015] [0x00]: Là thanh ghi dùng để xử lý nhiềutrường hợp còn gọi là ngắt
IMR (Interrupt Mask Register) [R/W] [0x0016] [0x00]: Thanh ghi mặt nạngắt.
1.3.2.1.3.Miêu tả các chức năng a Cài đặt thông tin ban đầu
Để điều khiển được W5100 thì phải lựa chọn và sử dụng các thanh ghi thíchhợp như sau:
o Thanh ghi cách thức (MR)o Thanh ghi mặt nạ ngắt (IMR)o Thanh ghi khởi tạo thời gian (RTR)
b Cài đặt về thông tin mạng
Thanh ghi dưới đây là cấu hình của một mạng cơ bản và tùy thuộc vào môitrường mạng
o Thanh ghi địa chỉ Gateway (GAR)o Thanh ghi địa chỉ phần cứng (SHAR)
Trang 19o Thanh ghi Subnet Mask (SUBR)o Thanh ghi địa chỉ IP (SIPR)
1.3.2.1.4.Truyền thông dữ liệu
Việc kết nối dữ liệu được thông qua TCP,UDP,IP-Raw và MAC-Raw.Đúngra việc lựa chọn kết nối là một dải các giao thức của các khe cắm kết nối.(W5100 cungcấp cho 4 khe cắm ).
a TCP
TCP là một phương pháp kết nối cơ bản trong đó nó cho phép thiết lập kếtnối trong một yêu cầu nhất định và việc chuyển giao dữ liệu kết nối bằng địa chỉ IP vàsố cổng của hệ thống.
Có 2 phương pháp để thiết lập kết nối:
Server đợi đến khi có yêu cầu kết nối Client gửi yêu cầu kết nối tới Server
Trang 20Hình 6: Phương pháp kết nối TCP
b UDP
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của giao
thức TCP/IP Dùng UDP, chương trình trên máy tính có thể gởi những dữ liệu ngắnđược gọi là datagram tới máy khác UDP không cung cấp sự tin cậy và thứ tự truyềnnhận mà TCP làm, các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà khôngcó thông báo Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kíchthước nhỏ và yêu cầu khắt khe về thời gian Do bản chất không trạng thái của nó nênnó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu.
Những ứng dụng phổ biến sử dụng UDP như DNS (Domain Name System),ứng dụng streaming media, Voice over IP, Trivial File Transfer Protocol (TFTP) vàgame trực tuyến.
1.3.2.1.5.Thông tin ứng dụng
Trang 21 Việc truyền thông giữa vi điều khiển với chíp ethernet W5100 cung cấphướng kết nối sau: Theo phương pháp trực tiếp, phương pháp gián tiếp và SPI phươngpháp.
Truyền thông dùng Ethernet PHY(MAC).
a Dùng các phương pháp kết nối trực tiếp
Dùng 15bit địa chỉ và 8bit dữ liệu: /CS, /RD, /WR, /INT.
b Dùng các phương pháp kết nối gián tiếp
Dùng 2bit địa chỉ và 8bit dữ liệu: /CS, /RD, /WR, /INT.
c Dùng phương pháp kết nối SPI (Serial Peripheral Interface)
Trang 22 SPI chỉ dùng 4 chân để truyền dữ liệu: /SCLK, /SS, /MOSI, /MISO. Ở W5100, SPI_EN là chân dùng để điều khiển SPI.
1.3.2.1.6.Một số ứng dụng W5100
Thiết bị mạng gia đình: Hộp nối, PVRs, chuyển đổi nguồn số.
Bộ nối tiếp tới ethernet: Bộ điều khiển truy cập, LED hiện thị, Rơle AT khônggiây…
Bộ song song tới ethernet: Máy in, máy photocopy. USB ethernet: Thiết bị lưu trữ, máy in mạng. GPIO ethernet: Các cảm biến mạng gia đình.
Hệ thống bảo vệ: DVRs, camera giám sát thông qua mạng. Sản xuất và chế tạo tự động.
Các thiết bị điều khiển ứng dụng trong y tế. Các hệ thống cố định.
Trang 23Chương 2: Vi Điều Khiển
2.1 Tìm hiểu về vi điều khiển AVR-Micro Atmega64L
Hãng Atmel đã từ lâu nổi tiếng với chíp vi điềukhiển họ 89Cxx phù hợp với các ứng dụng đơn giản Chuyểnsang họ AVR, Atmel đã thêm vào chip vi điều khiển nàynhiều tính năng mà chíp họ 8051 không có như là ADC,PWM, BUS I2C, 2 Wire v.v , để giúp cho người sử dụng cóthêm nhiều tính năng để sử dụng.
AVR là vi điều khiển được thiết kế cho rất nhiều ứng dụng Từ các ứng dụngđiều khiển, đo lường
Trang 24 Vi điều khiển AVR có thể coi như là một máy vi tính được tích hợp trên mộtchíp đơn AVR là vi điều khiển 8 bit ( không thuộc họ vi điều khiển xử lý số DSP )thiết kế hướng vào mục đích điều khiển Được tích hợp các bộ nhớ EEPROM và bộnhớ Flash (có thể lập trình được trong hệ thống- In system programmable).
AVR có các trình dịch hộ trợ để lập trình từ mức thấp assembly (AVRStudio), đến ngôn ngữ bậc cao như là C ( ICC, AVR CodeVision ) AVR có thể thựchiện được hàng triệu lệnh đơn trong một giây.
2.1.2 Tính năng của Atmega64L
Hiệu suât cao Là dòng AVR 8 bit tiêu thụ điện năng thấp (Low power AVR). Sử dụng cấu trúc RISC
o 133 chỉ lệnh Một lệnh trong 1 chu kỳ máy.
o 32x8 thanh ghi chung + thanh ghi điều khiển ngoại vi.o Lên đến 16 triệu lệnh/s với tấn số 16 MHz.
Bộ nhớ chương trình và bộ nhớ dữ liệu:
o 64K Byte bộ nhớ Flash lập trình lại trong hệ thống.
o Lựa chọn Boot code với các bit lock độc lập Lập trình trong hệ thôngbằng chương trình Boot.
o 4KB EEPROM và 4KB SRAM ( có thể mở rộng 64K RAM ngoài).o Lập trình trong hệ thống (ISP) qua giao diện SPI.
Giao diện JTAG (chuẩn IEEE std 1149.1)o Hỗ trợ chức năng gỡ rối trên chíp.o Lập trình thông qua JTAG.
Các tính năng ngoại vi:
o Hai timer 8 bit và hai timer 16 bit.
o Đồng hồ thời gian thực với bộ chia tần số.o Hai kênh PWM 8bit 6 kênh PWM 2-16bit.o Bộ so sánh tương tự.
Trang 25o ADC 8 kênh 10 bit 7 kênh ADC vi phân, 2 kênh ADC có bộ khếch đại1x, 10x, 200x.
o Giao diện nối tiếp Two-wire Hai UASRT.o Giao diện nối tiếp Chủ/Tớ SPI.
o Timer watch dog. Các tính năng đặc biệt:
o Reset khi cấp nguồn Bộ phát hiện xụt nguồn (Brown-outdetection) khả trình.
o Bộ giao động RC tích hợp sẵn bên trong.o Ngắt trong và ngắt ngoài.
o Sáu chế độ ngủ ( Sleep) để tiết kiệm năng lượng.o Tần số làm việc có thể xác định bằng phần mềm. Điện áp làm việc:
o 2,7 – 5,5V cho Atmega64L o 4,5 – 5,5V cho Atmega64 Tốc độ:
o 0 - 8 MHz cho Atmega64Lo 0 - 16 MHz cho Atmega64
2.1.3 Sơ đồ chân
Sơ đồ cấu hình chân của Atmega64L
Trang 26Hình 7: Sơ đồ phần cứng
Sơ đồ khối:
Trang 27Hình 8: Sơ đồ khối vi điều khiển AVR: Atmega64L
Trang 282.1.4 Các khối của Atmega64L
Do các khối chức năng của Atmega64L rất nhiều lên em chỉ đề cập đến cáckhối chức năng sử dụng trong luận văn này.
2.1.4.1.Lõi CPU của Atmega64L
Trong mục này sẽ mô tả tổng quát về cấu trúc lõi CPU của AVR Chức năngchính của lõi CPU là đảm bảo cho chương trình hoạt động CPU phải có khả năng truycập vào bộ nhớ, thực hiện tính toán, điều khiển ngoại vi và quản lý ngắt.
Sơ đồ khối của CPU:
Hình 9: Sơ đồ khối CPU
Trang 29 Các bộ xử lý AVR có kiến trúc Harvard, nghĩa là có bộ nhớ dữ liệu và bộnhớ chương trình tách biệt nhau Hình trên minh họa sơ đồ khối CPU của AVR Busdữliệu dùng cho bộ nhớ dữ liệu là 1 bus 8 bit, cho phép nối hầu hết các bộ phận ngoạivi với tệp thanh ghi ( register file) Bus dữ liệu dùng cho bộ nhớ chương trình có độrộng 16 bit và chỉ nối với thanh ghi lệnh.
a Khối số học logic ALU
Khối số học (ALU) thực hiện các thao tác như thao tác bit, phép tính số học vàlôgic trên nội dung của các thanh ghi và ghi ngược kết quả vào tệp thanh ghi trên thanhghi đã được chỉ định Các thao tác này được thực hiện trong một chu kỳ đồng hồ đơnlẻ Mỗi một thao tác ALU đều làm ảnh hưởng đến các cờ trong thanh ghi trạng thái(STATUS), tùy thuộc vào lệnh.
b Thanh ghi trạng thái SREG
Thanh ghi triạng thái có chứa 8bit cờ, đóng vai trò báo hiệu trạng thái hiện tạicủa bộ xử lý Tất cả các bit đó dược xóa bởi chương trình Các địa chỉ I/O của thanhghi trang thái là $3F( địa chỉ bộ nhớ là $57).
Thanh ghi trạng thái không được lưu trữ bằng máy (machine) trong thời gian diễnra một thao tác ngắt Lệnh trong một đoạn chương trình ngắt có thể xủa đổi bít cờtrạng thái, và vì thế chương trình của người dùng phải lưu trữ và khôi phục thanh ghitrạng thái trong thời gian có một ngắt.
c Tập thanh ghi đa năng
Tất cả các bộ điều khiển AVRđều có 32 thanh ghi đa năng Một số trong cácthanh ghi này còn có các chức năng riêng, bổ sung Các thanh ghi dược đặt tên từ R0đến R31 Tệp thanh ghi được tách thành 2 phần, mỗi phần có 16 thanh ghi, đánh số từR0 đến R15 và R16 đến R31 Tất cả truy nhập trong chu trình đơn đến tất cả các thanhghi
Trang 30d Thanh ghi con trỏ ngăn xếp SP
Thanh ghi này có độ rộng bằng 1 byte đối với các bộ xử lý có đến 256 byte bộnhớ SRAM và bằng 2byte (được gọi là SPH và SPL) đối với các bộ xử lý có bộ nhớ Thanh ghi này sử dụng để chỉ đến vùng trong bộ nhớ SRAM ở đỉnh của ngăn xếp.Ngăn xếp được sử dụng để lưu trữ địa chỉ mà bộ xử lý trả trở lại trong thời gian mộtngắt và gọi thủ tục Bởi vì SP được khởi tạo về $0000 khi rết, nên chương trình ngườidùng cần phải khởi tạo SP cho thích hợp, bởi vì địa chỉ bắt đầu của bộ nhắ SRAMkhông phải là $0000 mà là $60 Ngăn xếp sắp xếp theo thứ tự từ trên xuống dưới trongđịa chỉ bộ nhớ, nghĩa là, việc đẩy một giá trị lên trên ngăn xếp sẽ làm cho SP giảm đimột giá trị Khi kéo một giá trị khỏi ngăn xếp sẽ làm tăng SP thêm một giá trị.
e Việc thực thi lệnh
Bộ xử lý AVR được điều khiển bởi đồng hồ hệ thống, đồng hồ này có thể ở bênngoài hoặc, nếu có tồn tại và được phép, một đồng hồ RC bên trong có thể được sửdụng Đồng hồ hệ thống này không qua bất kỳ bộ chia nào và được sử dụng trục tiếpcho tất cả các thao tác truy nhập bên trong bộ xử lý Bộ xử lý có một đường ống(pipeline) 2 tầng, và lệnh tìm nạp giải mã được thực hiện đồng thời vời việc thực thilệnh
Trang 31Hình 10: Tìm nạp/ giải mã lệnh và việc thực thi lệnh.
Cứ mỗi lần lệnh được tìm nạp, nếu đây là một lệnh liên quan đến ALU, nó có thểđược thực thi bởi khối ALU như được minh họa tren hình 3-5 cho một chu trình đơnlẻ.
Hình 11: Việc thực thi của ALU bao gồm tìm/nạp thực thi, và ghi ngược lại vào thanhghi.
Mặt khác, việc truy nhập bộ nhớ SRAM chiếm mất 2 chu kỳ, như dược minh họaở hình dưới Nguyên nhân là việc truy nhập bộ nhớ SRAM sử dụng một thanh ghi contrỏ dùng cho địa chỉ bộ nhớ SRAM Thanh ghi con trỏ này chỉ là một trong các thanhghi con trỏ (các cặp thanh ghi X, Y hoặc Z) có trên chip Chu trình đồng hồ thứ nhấtđược cần đến để truy nhập tệp thanh ghi và để thao tác trên thanh ghi con trỏ (các lệnhtruy nhập bộ nhớ SRAM cho phếp tăng địa chỉ trước/ sau thao tác trên thanh ghi contrỏ) Ở thời điểm kết thúc của chu kỳ đồng hồ thứ nhất, khối ALU thực hiện phép tínhnày, và sau đó địa chỉ này được sử dụng để truy nhập ô nhớ SRAM và để ghi vào ônhớ này ( hoặc đọc ra rừ đó vòa thanh ghi đích), như được minh họa hình dưới.
Trang 32Hình 12: Các chu trình truy nhập dữ liệu lên thanh ghi SRAM trên chip.
2.1.4.2 Bộ nhớ của Atmega64L
Bộ nhớ của Atmega64L được chia làm 2 phần: bộ nhớ chương trình và bộ nhớdữ liệu Trong trường hợp đặc biệt bộ nhớ EEPROM được mô tả như là bộ nhớ dữliệu.
Atmega có 64k Byte bộ nhớ Flash lập trình lại được trong hệ thống (ISP- Insystem progammable) cho bộ nhớ chương trình Bây giờ họ vi điều khiển AVR đề làchip 16 hoặc 32 bit thì Flash được tổ chức là 32k x 6 Để vi điều khiển hoạt độngchương trình phải được nạp vào bộ nhớ Flash
Giới thiệu bộ nạp AVR-doper:
Trang 35Hình 14: bảng véc tơ ngắt của Atmega64L
2.1.4.5.Bộ đếm/định thời của Atmega64L:
Atmega64L có 4 timer/counter gồm 2 timer 8bit (timer0 và timer2) và 2 timer16bít (timer1 và timer2).
Sơ đồ khối của timer1:
Hình 15: Sơ đồ khối của timer/counter.