Tìm hiểu và xây dựng một Web Server

Lời mở đầu Ngày nay, Công nghệ thông tin ngày càng lớn mạnh và các ứng dụng của nó đã có mặt hầu hết cuộc sống. Trong đó các ứng dụng Web đang ngày càng phát triển và đặc biệt hữu ích trong việc chia sẻ dữ liệu và cập nhật tin tức. Tuy nhiên việc ứng dụng Web cho việc điều khiển các thiết bị ngoại vi vẫn còn khá mới mẻ, và điển hình là trong các modem ADSL, việc sử dụng Web cấu hình thay cho telnet cổ điển đã được phát triển, lợi ích từ điều này là làm cho việc cấu hình phần cứng trở nên dễ dàng hơn, trực quan hơn, mà không cần phải nhớ những câu lệnh như trong telnet Từ ý tưởng trên, mô hình điều khiển thiết bị qua mạng máy tính sẽ được xây dựng trong đề tài này. Vì được xây dựng trên nền web nên đứng tại bất cứ một máy tính nào có nối mạng, truy cập vào trang web là có thể điều khiển được thiết bị. Mô hình gồm bốn phần: Client là một máy tính có cài trình duyệt Web và được nối với Server.Server là một Web Server, các client có thể truy cập vào đây để điều khiển các thiết bị.Card giao tiếp là một card có thể kết nối với máy tính. Nhận lệnh từ máy tính để điền khiển các thiết bị, và theo dõi trạng thái các thiết bị gửi thông tin trở lại máy tính.Tải là các thiết bị cần điều khiển. Như phân tích sơ lược ở trên, đề tài gồm hai phần chính: Tìm hiểu và xây dụng một WebServer.Xây dựng phần cứng gồm Card giao tiếp và tải. Mục lục Lời mở đầu 4 Phần 1: Tìm hiểu và xây dựng một Web Server 6 CHƯƠNG 1: WEB SERVER 1.1. Lịch Sử Của World Wide Web: 7 1.2. Web Server: 7 1.3. Tìm Hiểu IIS (Internet Information Server) 8 1.3.1. Giới thiệu : 8 1.3.2. Tìm hiểu về Internet Information Server: 1.3.2.1. Internet Information Server (IIS) là gì ? 10 1.3.2.2. Có thể làm gì với IIS: 12 1.3.2.3. Bảo mật IIS: 12 CHƯƠNG 2: MÔ HÌNH THAM CHIẾU OSI 2.1. Tổng Quan 13 2.2. Mô Hình Tham Chiếu OSI: 13 2.2.1. Mục đích mô hình tham chiếu OSI: 13 2.2.2. Tên của 7 lớp trong mô hình tham chiếu OSI: 14 2.2.3. Mô tả 7 lớp của mô hình tham chiếu OSI 15 2.2.4. Sự đóng gói: 17 2.2.5. Tên của dữ liệu tại mỗi lớp của mô hình OSI: 18 CHƯƠNG 3: GIAO THỨC TCP/IP 3.1. Các Giao Thức TCP/IP Của Internet Và Mô Hình OSI 20 3.2. Chồng Giao Thức TCP/IP Và Lớp Ứng Dụng : 22 3.3. Chồng Giao Thức TCP/IP Và Lớp Vận Chuyển 24 3.4. Khuôn Dạng Của Segment Tcp Và Udp 25 3.5. Sự Kết Nối Theo 3 Bước Của Tcp: 27 3.6. Hoạt Động Cửa Sổ Và Báo Nhận Đơn Giản Của Tcp: 28 3.7. Các Khái Niệm Lớp 3 31 3.7.1. TCP/IP và lớp Internet: 31 3.7.2. Khuôn dạng của IP datagram: 32 3.7.3. ICMP (Internet Control Message Protocol): 34 3.7.4. ARP (Address Resolution Protocol): 35 CHƯƠNG 4: XÂY DỰNG MỘT WEB SERVER 4.1. Nhiệm Vụ: 36 4.2. Xây Dựng: 36 4.2.1. Cài đặt IIS: 36 4.2.2. Sơ đồ thuật giải và thiết kế Website: 37 Phân tích: 37 Sơ đồ thuật giải thuật: 38 Phần 2: Xây dựng và thi công phần cứng 43 CHƯƠNG 1: TÌM HIỂU CHUẨN KẾT NỐI NỐI TIẾP 1.1. Thanh ghi điều khiển đường truyền (Line Control Register) 45 1.2. Thanh ghi điều khiển MODEM 46 1.3. Thanh ghi trạng thái đường dây (Line Status Register) 47 1.4. Giao thức RS-232 48 1.5. Chuẩn RS-449, RS-423A. 50 1.6. Chuẩn RS-422A 51 1.7. RS-485 52 CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG CARD GIAO TIẾP 2.1. Card Giao Tiếp: 54 2.2. Phân Tích Và Sơ Đồ Khối 54 2.3 Tính toán thiết kế và lựa chọn linh kiện 55 2.3.1. Khối giao tiếp: 55 2.3.2. Khối cách ly 56 2.3.3. Sơ đồ nguyên lý: 58 2.4. Sơ đồ giải thuật cho MCU 60 CHƯƠNG 3: THI CÔNG MẠCH TẢI 61 3.1. Mạch Điều Khiển Tải: 61 3.2. Mạch Cảm Biến Trạng Thái Tải: 62 3.3. Sơ Đồ Nguyên Lý: 62 Nguyên lý hoạt động: 63 Phần 3:Phát triển đề tài CHƯƠNG 1: XÂY DỰNG MỘT MÔ HÌNH ĐIỀU KHIỂN MỘT LƯỢNG LỚN CÁC THIẾT BỊ THEO HƯỚNG MỞ 1.1. Đặt vấn đề: 66 1.2. Xây dựng mô hình 66 CHƯƠNG 2: VẤN ĐỀ BẢO MẬT MẠNG 2.1. Các Kiểu Tấn Công Thường Thấy: 69 2.2. Giải Pháp Cho Những Vấn Đề Bảo Mật: 69 2.3. Tìm Hiểu Phương Thức SSL 71 2.3.1. Secure Socket Layer (SSL) 71 2.3.2. Sơ lược về SSL 71 2.3.3. Giao thức SSL 73 2.3.4. Giao thức thay đổi chỉ định mật mã 76 2.3.5. Giao thức bắt tay trong SSL 76 KẾT LUẬN 80 Tài liệu tham khảo 81 Phần 4:Phụ lục 82

doc82 trang | Chia sẻ: banmai | Lượt xem: 2256 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Tìm hiểu và xây dựng một Web Server, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
yền các thông điệp, nhưng không có phần mềm nào kiểm tra việc phân phối dữ liệu tại lớp này. Ưu điểm của UDP là nhanh. Vì UDP không có báo nhận nên lượng tải gửi xuyên qua mạng giảm xuống, làm cho việc truyền diễn ra nhanh hơn. Application Transport Internet Network Acccess Tổng quan về lớp vận chuyển Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Hình 3.4 3.4. KHUÔN DẠNG CỦA SEGMENT TCP VÀ UDP Đơn vị dữ liệu của lớp vận chuyển thường được gọi là Segment. TCP Segment chứa các file như sau: Source port: Chỉ số port gọi. Destination port: Chỉ số port được gọi. Sequence number: Là chỉ số được dùng để đảm bảo tuần tự chính xác của dữ liệu đến. Acknowledgment number : TCP octet tiếp theo được mong đợi. HLEN: Số lượng các từ 32 bit trong header. Reserved: Set về 0. Code bits: Các chức năng điều khiển (ví dụ thiết lập và kết thúc một phiên). Window: Số lượng Octet mà máy truyền sẵn sàng chấp nhận. Checksum: Kiểm tra kiểu tổng được tính cho phần Header và phần dữ liệu. Urgen pointer: Chỉ điểm kết thúc của dữ liệu khẩn. Option: Hiện được định nghĩa là kích thước tối đa của TCP Segment. Data: Phần chứa dữ liệu của giao thức lớp trên. Khuôn dạng một segment của TCP #Bits 16 16 32 32 4 6 6 Source Port Dest. Port Seq Number ACK Number HLEN Reserved Code Bits 16 16 16 0 or 32 Window Checksum Urgent Pointer Option Data.. Khuôn dạng một segment của UDP #Bits 16 16 16 16 Source Port Destination Port Length Checksum Data.. Các giao thức lớp ứng dụng phải chịu trách nhiệm khi cần. UDP không dùng cửa sổ hay báo nhận. Nó được thiết kế cho các ứng dụng không cần đặt các Segment theo tuần tự. Các giao thức dùng UDP gồm có: TFTP. SNMP. NFS (Network file system). DNS (Domain name system). 3.5. SỰ KẾT NỐI THEO 3 BƯỚC CỦA TCP: Để một cầu nối được thiết lập, hai đầu cuối phải đồng bộ nhau theo mỗi chỉ số tuần tự khởi động TCP, chỉ số này viết tắt là ISN (Initial TCP Sequence Number). Các chỉ số tuần tự được dùng để bám theo thứ tự của các gói và để đảm bảo không có gói nào bị mất trong khi truyền. ISN là số bắt đầu được dùng khi một cầu nối TCP được thiết lập. Trao đổi các chữ số khởi động trong tuần tự nối đảm bảo rằng dữ liệu bị mất có thể được phục hồi. Sự đồng bộ được thiết lập bằng cách trao đổi các segment có mang các ISN và một bit điều khiển được gọi là bit SYN (Synchronize), các segment mang bit SYN cũng được gọi là các SYN. Cầu nối khả thi yêu cầu một cơ cấu thích hợp nhằm chọn một tuần tự khởi động và bắt tay nhẹ nhàng để trao đổi các ISN. Sự đồng bộ yêu cầu mỗi phía gửi ISN của nó, tiếp nhận một xác thực và ISN từ bên kia của cầu nối. Mỗi phía phải nhận ISN của phía kia và gửi một báo nhận ACK nhằm xác thực việc nhận theo một thứ tự chỉ định, quá trình có thể được mô tả theo các bước sau: A à B SYN : My sequence is “X” A ß B ACK: Your sequence is “X” A ß B SYN: My sequence is “Y” A à B ACK: Your sequence is “Y” : : Host A Host B Send SYN (seq = x) Receive SYN (seq = y, ACK = x+1) Send ACK (ack = y+1) Receive SYN (seq = x) Send SYN (seq = y, ACK = x+1) Receive ACK (ack = y+1) Hình 3.5: Ba bước bắt tay của TCP / Mở một cầu nối Bởi vì bước thứ hai và thứ ba có thể được kết hợp với nhau trong một thông điệp, nên hoạt động trao đổi này được gọi là sự kết nối bắy tay theo 3 bước. Như mô tả trên hình hai đầu cuối của cầu nối được đồng bộ thông qua tuần tự 3 bước. Một hành động bắt tay theo 3 bước là cần thiết vì các TCP có thể dùng các cơ cấu khác nhau để lấy ISN. Máy thu nhận SYN đầu tiên không thể biết segment này có phải là segment cũ bị trễ lại hay không trừ khi nó nhớ chỉ số tuần tự sau cùng được dùng trên cầu nối, điều này không phải là luôn luôn có thể, nên nó phải hỏi máy truyền xác thực SYN này. Sau khi đồng bộ hai phía của cầu nối có thể bắt đầu truyền tin, và cả hai phía đều có khả năng cắt cầu nối bởi vì TCP là một phương pháp thông tin ngang hàng. 3.6. HOẠT ĐỘNG CỬA SỔ VÀ BÁO NHẬN ĐƠN GIẢN CỦA TCP: Để khống chế luồng dữ liệu giữa hai thiết bị, TCP dùng một cơ cấu điều khiển luồng ngang hàng (peer-to-peer). Lớp TCP của host thu thông báo cho lớp TCP của host truyền một kích thước cửa sổ. Kích thước cửa sổ này chỉ ra số byte, tính từ chỉ số báo nhận, mà lớp TCP của host thu đang chuẩn bị nhận. Kích thước cửa sổ liên hệ đến số lượng byte được truyền trước khi nhận một báo nhận. Sau khi một host truyền số lượng byte theo cửa sổ, nó phải nhận một báo nhận trước khi truyền bất cứ một dữ liệu nào tiếp theo. Kích thước cửa sổ xác định bao nhiêu dữ liệu mà máy thu có thể chấp nhận vào một thời điểm. Với cửa sổ bằng 1 thì mỗi segment chỉ được mang 1 byte dữ liệu và phải được báo nhận trước khi truyền một segment khác. Kết quả là host sử dụng băng thông kém hiệu quả. Mục tiêu của hoạt động cửa sổ là để cải thiện điều khiển luồng và tính tin cậy. Tuy nhiên, với kích thước cửa sổ là 1 thì việc sử dụng băng thông là kém hiệu quả. Như hình minh họa dưới đây: Receive 1 Receive 2 Receive 3 Send ACK 4 Receive ACK 4 Send 4 Send 5 Send 6 Máy phát Máy thu Send 1 Send 2 Send 3 Receive ACK 7 Hình 3.7: Cửa sổ trượt TCP Window size = 3 Receive 4 Receive 5 Receive 6 Send ACK 7 Receive ACK 2 Send 2 Máy phát Máy thu Send 1 Receive ACK 3 Send 3 Receive ACK 4 Receive 3 Send ACK 4 Receive 2 Send ACK 3 Receive 1 Send ACK 2 Hình 3.6: Báo nhận TCP đơn giản Window size = 1 Để việc sử dụng băng thông trong truyền nhận dữ liệu giữa hai host đầu cuối diễn ra hiệu quả hơn thì cần phải tăng kích thước cửa sổ. Tuy nhiên nếu tăng kích thước của sổ quá lớn sẽ làm cho dữ liệu dễ bị sai. Việc sử dụng kích thước cửa sổ bao nhiêu cho phù hợp sẽ do 2 host quyết định tùy thuộc vào môi trường truyền tốt hay xấu. Chỉ với window size là 3 như hình trên ta đã thấy việc sử dụng băng thông hiệu đường truyền quả hơn rất nhiều. Các chỉ số tuần tự và chỉ số báo nhận của TCP/IP Source Port Destination Port Sequence Number Acknowledgment Number … TCP tạo ra tuần tự của các segment với một báo nhận tham chiếu theo chiều tiến (forward). Mỗi datagram được đánh số trước khi truyền. Tại trạm thu, TCP tái thiết lập các segment thành ra một thông điệp hoàn chỉnh. Nếu thiếu một chỉ số tuần tự trong dãy, thì segment tương ứng được truyền lại. Nếu segment không được báo nhận trong một khoảng thời gian định trước thì họat động truyền lại cũng sẽ diễn ra cho segment này. Chỉ số tuần tự và báo nhận là có hướng, có nghĩa là họat động truyền nhận diễn ra theo hai hướng. Mỗi host đều có thể truyền dữ liệu và báo nhận trong phiên kết nối. 3.7. CÁC KHÁI NIỆM LỚP 3 Application Transport Internet Network Interface Tổng quan về lớp mạng Internet Protocol (IP) Internet Control Message Protocol (ICMP) Address Resolution Protocol (ARP) Revese Address Resolution Protocol (RARP) 3.7.1.TCP/IP và lớp Internet: Lớp Internet của chồng giao thức TCP/IP tương ứng với lớp mạng của mô hình OSI. Mỗi lớp chịu trách nhiệm lấy gói dữ liệu xuyên qua mạng sử dụng địa chỉ luận lý. Như hình trên, có vài giao thức hoạt động tại lớp Internet tương ứng với lớp mạng của mô hình OSI IP: Không cầu nối, định tuyến các datagram để phân phối theo hướng tổng lực (best-effort). Không đề cập đến nội dung của các datagram, tìm kiếm con đường để chuyển các datagram đến đích càng sớm càng tốt. ICMP: Cung cấp khả năng điều khiển và thông báo. ARP: Xác định địa chỉ lớp liên kêt dữ liệu cho các địa chỉ IP đã biết. RARP: Xác định địa chỉ mạng khi đã biết địa chỉ lớp liên kết dữ liệu. 3.7.2. Khuôn dạng của IP datagram: #Bits 4 4 8 16 16 3 13 8 VERS HLEN Type of service Total length Identification Flags Frag offset TTL 8 16 32 32 Var Protocol Header checksum Source IP address Destination IP address IP options Data… Khuôn dạng IP Datagram VERS: Chỉ số phiên bản của IP. HLEN: Chiều dài của vùng header, tính theo từ 32 bit. Type of service: Datagram được kiểm soát như thế nào? Total length: Tổng chiều dài header và data. Identication, flags, frag offset: Giúp phân mảnh các datagram nhằm cho phép sự bất tương đồng với các MTU trên liên mạng. TTL: Thời gian sống. Protocol: Chỉ ra giao thức lớp kế trên gửi datagram. Header checksum: Kiểm tra trên phần header. Source IP address and Destination IP address: Các địa chỉ IP 32 bit. IP options: Kiểm thử mạng, debug, bảo mật và các tùy chọn khác. Field giao thức xác định giao thức lớp 4 được tải trong một IP datagram. Mặc dù hầu hết lưu lượng cuat IP dùng cho TCP, nhưng cũng có thể có các giao thức khác dùng IP. Mỗi IP header phải nhận dạng giao thức lớp 4 ở đích cho datagram. Các giao thức lớp vận chuyển được đánh số, tương tự như chỉ số port. IP chứa chỉ số giao thức trong field giao thức. Hình 3.9 TCP IP UDP 6 17 Internet Layer Transport Layer Protocol Number Vùng giao thức 3.7.3. ICMP (Internet Control Message Protocol): Application Transport Internet Network Interface Internet Control Message Protocol ICMP Destination Unreachable Echo (Ping) Other Hình 3.10 Tất cả các host TCP/IP đều thực hiện ICMP. Các thông điệp ICMP được tải trong các IP Datagram và được dùng để gửi các thông báo lỗi và điều khiển. ICMP dùng các loại thông điệp đã được định nghĩa như bên dưới, ngoài ra còn có một số thông điệp khác nữa… Destination Unreachable. Time to live exceeded. Parameter problem. Source quench. Redirect. Echo. Echo reply. Timestamp. Timestamp reply. Information request. Information reply. Address request. Address reply. Nếu một Router nhận một gói dữ liệu và không thể phân phối tới đích, Router sẽ gửi một thông điệp Destination Unreachable đến nguồn, thông điệp này sẽ báo cho nguồn biết là không thể phân phối được vì không biết tuyến nào dẫn tới đích hoặc đích không tồn tại, và sau đó gói dữ liệu sẽ bị loại bỏ để tránh tràn ngập mạng với các thông điệp không có đích. 3.7.4. ARP (Address Resolution Protocol): ARP dùng để phân giải hay ánh xạ một địa chỉ IP đã biết sang địa chỉ lớp MAC để cho phép hoat động truyền diễn ra trên môi trường đa truy xuất như môi trường Ethenet. Để xác định địa chỉ đích cho một Datagram, một bảng được gọi là ARP Cache được kiểm tra. Nếu địa chỉ không có trong bảng, ARP gửi một thông điệp quảng bá, thông điệp này sẽ được tất cả các nơi trong mạng nhận để tìm kiếm đích. Thuật ngữ “local ARP” được dùng để mô tả việc tìm kiếm một địa chỉ khi mà host yêu cầu và host đích chia sẻ cùng đường truyền hay dây dẫn. Do đó trước khi phát đi ARP, subnet mask phải được xem xét để xác định host nhận có cùng một mạng con không. CHƯƠNG 4: XÂY DỰNG MỘT WEB SERVER 4.1. NHIỆM VỤ: Như mục đích của đề tài, một user có thể đứng từ bất cứ một máy tính nào có trình duyệt Web (Internet Explorer, hoặc các trình duyệt khác) và được nối mạng khi kết nối với Web Server sẽ được Web Server cũng trả về một trang web, từ trang web, User có thể kiểm tra tình trạng của thiết bị đồng thời cho phép điều khiển ON/OFF các thết bị đó, các thiết bị này được nối với card giao tiếp tại Server. Tuy nhiên để user có thể vào được trang web thì user đó phải là một thành viên thuộc user group được quản lý bởi window và có được username và password của trang web. Như vậy khi xây dựng Web Server thì những yêu cầu trên phải được thỏa mãn. 4.2. XÂY DỰNG: 4.2.1. Cài đặt IIS: Để một máy tính có thể trở thành Web Server, máy tính phải được cài đặt trình phục vụ tại Server, và có source của trang web. Đề tài này sử dụng công nghệ của Microsoft nên IIS được chọn dùng làm trình điều khiển Web. Mặt khác, nếu sử dụng ngôn ngữ HTML thông thường để thiết kế web cho việc điều khiển phần cứng là rất khó khăn vì mặc định HTML không hỗ trợ phần cứng. Sự phát triển cuả ASP đem lại sự dễ dàng và bảo mật hơn cho người lập trình vì nó được liên thông với các ngôn ngữ lập trình khác như VB, C++, C#, …, đặc biệt là ASP.NET. Tuy nhiên vì là hoạt động trên nền web nên nó cũng bị hạn chế phần nào so với các ứng dụng thuần. IIS là một công nghệ của Microsoft, nó được tích hợp trên đĩa cài đặt hệ điều hành. Do đó để cài đặt IIS ta cần có đĩa hệ điều hành. Và vì trang web được xây dựng trên cơ sở .NET nên cần cài ASP.NET mới có thể chạy được. Cài đặt: Menu Start à Control Panel à Add or Remove Programs Click Add/Remove Window Components à Application Server Click Detail à Chọn ASP.NET, Internet Information Services (IIS) à OK Bỏ đĩa cài đặt hệ điều hành vào khi được yêu cầu. 4.2.2. Sơ đồ thuật giải và thiết kế Website: Phân tích: Vì là một trang web cho phép điều khiển các thiết bị ngoại vi nên phải hết sức thận trọng khi cho phép các user được quyền truy cập vào trang web. Do đó vấn đề an toàn phải được đặt nên cao hơn hết. Để vào được trang web user phải qua được hai bước kiểm tra: Thứ nhất: sử dụng tính bảo mật được xây dựng sẵn trên IIS, đó là chỉ cấp quyền truy cập cho những user nào được quyền truy cập và user đó phải tồn tại trên Server. Do đó khi truy cập vào trang web sẽ nhận được thông báo yêu cầu xác nhận là user thuộc Server. Thứ hai: Thực hiện bảo mật khi tạo trang web. Khi tạo trang web, một username và password mặc định được tạo ra và không có mối quan hệ nào với các user thuộc Server, chỉ những user nào có được username và password này mới thực sự vào được trang web và có quyền điều khiển. Username và password này có thể được thay đổi khác mặc định sau khi truy cập được vào web. Sơ đồ thuật giải: Login USER? Permit? Update Data Display ON/OFF Y Y N N Start Khi một user đánh địa chỉ vào trình duyệt web và bắt đầu truy cập, một của sổ yêu cầu xác nhận user đó có nằm trong user group được quản lý bởi window không? Như hình dưới đây: Sau khi điền đúng tên và password, user được đưa đến một trang web, tại đây, user một lần nữa phải điền username và password lần nữa, tuy nhiên username và password lần này không hề có mối quan hệ nào với username và password do window quản lý. Username và password này được tạo ra khi viết web để một lần nữa gây khó khăn cho hacker. Giao diện của trang Web sau khi user hai lần điền vào username và password Trang web gồm hai trang, trang main cho phép user điều khiển được các thiết bị bằng hệ thống các nút nhấn. Trạng thái của các thiết bị sẽ được hiển thị bên cạnh. Trang change password cho phép người dùng thay đổi được mật khẩu mặc định ban đầu để dễ nhớ hơn: Phần 2: Xây dựng và thi công phần cứng CHƯƠNG 1: TÌM HIỂU CHUẨN KẾT NỐI NỐI TIẾP Truyền dữ liệu từ máy tính đến vi xử lý là theo những chuẩn khác nhau. Vì trong luận văn này có sử dụng nhiều đến việc thu phát dữ liệu theo kiểu nối tiếp nên cần phải khái quát vài nét về các chuẩn truyền thông. Truyền thông nối tiếp là việc thu phát dữ liệu ở dạng chuỗi các xung điện – gọi là các bit. Hiệp hội điện tử công nghiệp (EIA) đưa ra các chuẩn truyền thông khác nhau như : RS 232-C, RS-422, RS-423, RS-485, RS-449,…… Ký hiệu RS là viết tắt của Recommended Standard, nghĩa là tiêu chuẩn khuyến cáo. Việc truyền dữ liệu nối tiếp theo chuẩn RS-232 có ưu điểm hơn truyền song song là mức điện áp hoạt động là +12V và –12V, khoảng cách truyền xa hơn, ít nhiễu hơn. Việc trao đổi dữ liệu diễn ra trên hai đường dẫn TxD và RxD, mức tín hiệu trên chân ra RxD tùy thuộc vào đường dẫn TxD và thường nằm trong khoảng –12V đến +12V, các bit dữ liệu được đảo ngược lại. Mức cao nằm giữa –3V và –12V, mức thấp nằm giữa +3V và +12V. Ở trạng thái tĩnh, trên đường dây có điện áp là –12V. Một chuỗi dữ liệu truyền đi được bắt đầu bằng một bit khởi đầu, tiếp theo đó là các bit dữ liệu, bit thấp đi trước. Số bit dữ liệu nằm trong khoảng 5 đến 8 bit, tiếp đó là bit kiểm tra chẳn lẻ và cuối cùng là bit kết thúc (stop bit). Tốc độ truyền được thiết lập bằng tham số Baudrate, là số bit truyền đi trong 1 giây, thông thường là 300, 600, 1500, 2400, 4800, 9600 và 19200. Việc thiết lập các thông số truyền nối tiếp được thực hiện bằng cách thay đổi các giá trị trong các thanh ghi phục vụ truyền nối tiếp. Bản đồ thanh ghi nội của bộ thu phát nối tiếp 8250 (không đồng bộ). Register name Code COM1 COM2 COM3 COM4 Function Transmitter holding register THR 3F8H 2F8H 3E8H 2E8H OUTPUT Receiver data register RDR 3F8H 2F8H 3E8H 2E8H INPUT Baud rate divisor (LSB) BRDL 3F8H 2F8H 3E8H 2E8H OUTPUT Baud rate divisor (MSB) BRDH 3F9H 2F9H 3E9H 2E9H OUTPUT Interrupt enable register IER 3F9H 2F9H 3E9H 2E9H OUTPUT Interrupt ID register IID 3FAH 2FAH 3EAH 2EAH INPUT Line control register LCR 3FBH 2FBH 3EBH 2EBH OUTPUT Modem control register MDC 3FCH 2FCH 3ECH 2ECH OUTPUT Line status register LST 3FDH 2FDH 3EDH 2EDH INPUT Modem status register MSR 3FEH 2FEH 3EEH 2EEH INPUT 1.1. Thanh ghi điều khiển đường truyền (Line Control Register) Bit cao của thanh ghi này gọi là bit chốt truy xuất hệ số chia. Nếu bit này được đặt lên 1 thì giá trị ở thanh ghi cơ sở được truy xuất làm byte thấp của thanh ghi hệ số chia chọn tốc độ truyền, và giá trị ở thanh ghi cơ sở +1 sẽ được truy xuất làm byte cao của thanh ghi hệ số chia chọn tốc độ truyền. Nếu bit này được xóa về 0 thì thanh ghi cơ sở sẽ thành thanh ghi đệm thu phát. 7 6 5 4 3 2 1 0 Bit Nội dung Bit 0 Bit 1 00 : 5 bit data ; 01 : 6 bit data 10 : 7 bit data ; 11 : 8 bit data Bit 2 0 : 1 bit stop 1 : 1,5 hay 2 bit stop Bit 3 0 : không kiểm tra parity 1 : kiểm tra parity Bit 4 1 : kiểm tra parity chẵn 0 : kiểm tra parity lẻ Bit 5 1 : nếu bit 4 = 1; 0 : nếu bit 4 = 0 Bit 6 Cho phép cấm đường truyền nối tiếp 1 : ngõ ra bị xoá trắng ; 0 : cấm Bit 7 1 : chọn hệ số chia; 0 : bộ đệm thu, phát 1.2. Thanh ghi điều khiển MODEM Thanh ghi điều khiển MODEM dùng để đặt giao thức bắt tay khi sự truyền thông sử dụng MODEM. 7 6 5 4 3 2 1 0 Bit Nội dung Bit 0 Data terminal ready 1 : DTR active; 0 : DTR inactive Bit 1 Request to send; 1 : RTS active; 0 : RTS inactive Bit 2 Output 1 (spare signal) 1 : OUT 1 : active; 0 : OUT 1 inactive Bit 3 Output 2 (interrupt enable signal) 1 : Communication interrupt active 0 : Communication interrupt inactive Bit 4 Loopback feature 1 : Transmitter output looped back to receiver register 0 : Normal operation Bit 5,6,7 000 1.3. Thanh ghi trạng thái đường dây (Line Status Register) Báo cho máy tính biết thông tin, trạng thái của dữ liệu truyền đi. 7 6 5 4 3 2 1 0 Bit Nội dung Bit 0 1 : Có dữ liệu trong bộ đệm nhận Bit 1 1 : Overrun error : dữ liệu bị chồng Bit 2 1 : sai parity Bit 3 1 : Framing error ( bit stop không hợp lệ) Bit 4 1 : Báo ngắt (đường truyền trống ) Bit 5 1 : Thanh ghi phát trống Bit 6 1 : Thanh ghi dịch và thanh ghi phát trống 0 : Thanh ghi dịch còn chứa dữ liệu Bit 7 0 1.4. Giao thức RS-232 Chuẩn RS-232 lần đầu tiên được giới thiệu vào năm 1962 do hiệp hội kỹ thuật điện tử EIA (Electronics Industries Association) như là chuẩn giao tiếp truyền thông giữa máy tính và một thiết bị ngoại vi (modem, máy vẽ, mouse, máy tính khác,…). Cổng giao tiếp RS-232 là giao diện phổ biến rộng rãi nhất. Người dùng máy tính PC còn gọi cổng này là COM1, còn COM2 để tự do cho các ứng dụng khác. Giống như cổng máy in, cổng nối tiếp RS-232 được sử dụng một cách rất thuận tiện cho mục đích đo lường và điều khiển. Việc truyền dữ liệu qua RS-232 được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gửi đi nối tiếp nhau trên một đường truyền dẫn. Trước hết, loại truyền này có thể dùng cho những khoảng cách lớn hơn, bởi vì các khả năng gây nhiễu nhỏ đáng kể hơn là dùng cổng song song. Việc dùng cổng song song có một nhược điểm đáng kể là cáp truyền dùng quá nhiều sợi, và vì vậy rất đắt tiền. Hơn nữa tín hiệu nằm trong khoảng 0 - 5V tỏ ra không thích ứng với khoảng cách lớn. Cổng nối tiếp RS không phải là một hệ thống Bus, nó cho phép dễ dàng tạo ra liên kết dưới hình thức điểm nối điểm giữa hai máy cần trao đổi thông tin với nhau. Một thành phần thứ ba không thể tham gia vào cuộc trao đổi thông tin này. Hình 1.1: dạng cổng RS-232 loại DB 9 chân 9 chân 25 chân Chức năng 1 2 3 4 5 6 7 8 9 8 3 2 20 7 6 4 5 22 DCD _ Data Carrier Detect (Lối vào) RxD _ Receive Data (Lối vào) TxD _ Transmit Data (Lối ra) DTR _ Data Terminal Ready (Lối ra) GND _ Ground (Nối đất) DSR _ Data Set Ready (Lối vào) RTS _ Request to Send (Lối ra) CTS _ Clear to Send (Lối vào) RI _ Ring Indicator (Lối ra) Bảng sắp xếp chân của cổng nối tiếp ở máy tính Việc truyền dữ liệu xảy ra trên hai đường dẫn. Qua chân cắm ra TxD, máy tính gởi dữ liệu của nó đến các thiết bị khác. Trong khi đó dữ liệu mà máy tính nhận được, lại được dẫn đến chân nối RxD. Các tín hiệu khác đóng vai trò như là tín hiệu hỗ trợ khi trao đổi thông tin và vì vậy không phải trong mọi ứng dụng đều dùng đến. Các bit dữ liệu được gởi đi theo kiểu đảo ngược, nghĩa là các bit có giá trị “1” sẽ có mức điện áp LOW, các bit có giá trị “0” sẽ có mức điện áp HIGH. Mức tín hiệu nhận và truyền qua chân RxD và TxD thông thường nằm trong khoảng –12V đến +12V. Mức điện áp đối với mức HIGH nằm giữa +3V đến +12V. Ở trạng thái tĩnh trên đường dây vẫn có điện áp –12V. Một bit khởi động (Start bit) sẽ mở đầu việc truyền dữ liệu. Tiếp sau đó là các bit riêng lẻ đến, trong đó các bit có giá trị thấp được gửi trước tiên. Con số của các bit dữ liệu thay đổi giữa năm và tám. Ở cuối dòng dữ liệu còn có một bit dừng (Stop bit) để đặt lại trạng thái lối ra (-12V). Tốc độ Baud có giá trị thông thường là : 300; 600; 1200; 4800; 9600; 19200 Baud. Ký hiệu Baud tương ứng với số bit truyền trong 1 giây (bit per second _ bps). Chẳng hạn như khi tốc độ Baud bằng 9600 có nghĩa là có 9600 bit dữ liệu được truyền trong 1 giây. Vì mỗi byte dữ liệu có một bit bắt đầu và một bit được dùng gởi kèm theo, do đó khi truyền một byte dữ liệu đã có 10 bit được gửi đi. Với tốc độ Baud thông thường, mỗi giây cho phép truyền nhiều nhất từ 30 đến 1920 byte dữ liệu, vì vậy nhược điểm lớn nhất của cổng truyền nối tiếp là tốc độ truyền dữ liệu bị hạn chế. So sánh giữa TTL và RS-232, ta thấy TTL sử dụng mức logic dương và 0,4V chống nhiễu. Trong khi đó RS-232 sử dụng mức điện áp 612V để đảm bảo truyền được trên đường dây dài. Với khoảng chống nhiễu 12V cho phép tín hiệu đi qua môi trường nhiễu mạnh mà đối với TTL không thể có được. Một trong những yêu cầu quan trọng của RS-232 là thời gian chuyển từ một mức logic này tới một mức logic khác không vượt quá 4% thời gian một bit. Vì thế ở tốc độ 19200 Baud thời gian mức logic phải nhỏ hơn 0,04/19200s. Vấn đề này làm giới hạn chiều dài đường truyền. Với tốc độ truyền 19200 Baud, ta có thể truyền xa nhất là 50 feet (15,24 m). Một trong những vấn đề quan trọng cần chú ý khi sử dụng RS-232 là mạch thu phát không cân bằng (đơn cực). Điều này có ý nghĩa là tín hiệu vào ra được so với đất. Vì vậy nếu điện thế tại hai điểm đất của hai mạch thu phát không bằng nhau thi sẽ có dòng điện chạy trên dây nối đất. Kết quả sẽ có áp rơi trên dây nối đất (V=I.R) sẽ làm suy yếu tín hiệu logic. Nếu truyền tín hiệu đi xa, R sẽ tăng dần đến áp rơi trên đất sẽ lớn dần đến lúc tín hiệu logic sẽ rơi vào vùng không xác định và mạch thu sẽ không nhận đúng dữ liệu được truyền từ mạch phát. Chính sự không cân bằng trên mạch thu phát là một trong những nguyên nhân giới hạn đường truyền. 1.1. Chuẩn RS-449, RS-423A. Do chuẩn thông dụng RS-232 có hạn chế như : RS-232 bị hạn chế tốc độ tín hiệu, lớn nhất là 20Kbps và chỉ truyền được tối đa là 20m. Khi các mạch RS-232 là không cân bằng, sự loại trừ nhiễu nhỏ hơn mức tối ưu. Các điện áp RS-232 quá cao đối với mật độ của dòng điện của IC hiện nay. Trong nhiều ứng dụng, cần thiết phải có thêm các đường dây nối giữa các modem với các DTE để kiểm tra từ xa… Do vậy vào năm 1978-1979, EIA đưa ra hai chuẩn giao tiếp mới để khắc phục các nhược điểm trên của RS-232 là RS-449 (cân bằng ) và RS-423 (không cân bằng). Sự lựa chọn giữa truyền cân bằng và không cân bằng được quyết định bởi tốc độ truyền tín hiệu. Khi tốc độ truyền vượt quá 20 Kbps thì hầu hết các mạch sử dụng giao tiếp cân bằng. Với chuẩn RS-423A, tốc độ truyền có thể lên đến trên 20Kbps. Khi tốc độ truyền lớn hơn 20 Kbps thì người ta thường sử dụng đường truyền cân bằng. Ngược lại, ta sẽ được cho phép truyền không cân bằng. Với chuẩn RS-449, tốc độ truyền có thể lên đến 100Kbps và khoảng cách đường truyền có thể lên đến 1Km. Tiêu chuẩn này sử dụng cho các IC kích phát và thu MC3488 và MC3486. 1.6. Chuẩn RS-422A Một cải tiến nữa của chuẩn RS-232 là chuẩn RS-422A. Với chuẩn này, độ lợi được gia tăng và sử dụng việc truyền dữ liệu sai biệt (differential data) trên những đường truyền cân bằng. Một dữ liệu sai biệt yêu cầu hai dây, một cho dữ liệu không đảo (noninverted) và một cho dữ liệu đảo (inverted). Dữ liệu được truyền trên đường dây cân bằng, thường là cặp dây xoắn với một trở ở đầu cuối. Một IC lái (driver) biến đổi các mức logic thông thường thành một cặp tín hiệu sai biệt để truyền. Một bộ phận biến đổi tín hiệu sai biệt ngược lại thành các mức logic. Dữ liệu nhận là phần khác nhau giữa dữ liệu không đảo và dữ liệu đảo. Chú ý rằng không yêu cầu nối đất giữa thiết bị thu và thiết bị phát. Các IC lái RS-422A hầu hết hoạt động với nguồn cung cấp +5V như các chip logic. Với chuẩn này, tốc độ truyền, khoảng cách truyền được cải thiện rất nhiều. Hai hình trên biểu diễn vùng điện áp cho mức logic của hai chuẩn RS-422A và RS-423A. Nhờ tính vi sai, RS-422A có thể cho phép vùng chuyển tiếp nhỏ hơn so với RS-232 là chỉ 6200mV. Điều này cho phép tốc độ truyền cao hơn và khoảng cách truyền tăng lên. Cụ thể là 100 Kbps với khoảng cách truyền là 4000 feet(1.2Km). 1.7. RS-485 RS-485 là một thế hệ cải tiến của RS-422 và mở rộng số lượng ngoại vi giao tiếp. Nó cho phép kết nối truyền thông nhiều thiết bị theo cả hai hướng. RS-422 và RS-232 thì thích hợp cho truyền đơn giản, trong khi đó RS-485 cho phép nhiều đầu thu trên một đường truyền half-duplex. Tốc độ truyền thì không giới hạn và được xác định bởi thời gian lên của xung, thường giới hạn ở 10Mbps. Một mạng sử dụng tiêu chuẩn RS-485 cho phép 32 transmitter/receiver với khoảng cách tối đa là 1.2 Km. Bảng so sánh đặc tính giữa các chuẩn truyền EIA Thông số RS-232 RS-422 RS-423A RS-485 Cable length 15 m 1.2 km 1.2 km 1.2 km Baudrate 20 Kbps 10 Mbps/12m 1 Mbps/120m 100 Kbps/1.2km 100 Kbps/9m 10 Kbps/90m 1 Kbps/1.2km 10 Mbps/12m 1 Mbps/120m 100 Kbps/1.2km Mode Không cân bằng Cân bằng Vi sai Không cân bằng Vi sai Cân bằng Vi sai Drive no. 1 1 1 32 Receive no. 1 10 10 32 Logic 0 +5V..+15V +2V..+5V +3.6 V..+6V +1.5V..+5V Logic 1 -5V..-15V -2V..-5V -3.6V..-6V -1.5V..-5V Community 2V 1.8V 3.4V 1.3V Cable/signal 1 2 2 2 Methode Simplex Half-duplex Full-duplex Simplex Half-duplex Full-duplex Simplex Half-duplex Full-duplex Simplex Half-duplex Full-duplex Short circuit current 500 mA 150 mA 150 mA 150mA Chuẩn RS-232 chỉ cho phép nối hai thiết bị với nhau, muốn nối nhiều thiết bị hơn ta dùng chuẩn RS-485. Muốn vậy ta phải có mạch chuyển đổi từ RS-232 sang RS-485. Nguyên tắc cơ bản là chuyển mức điện áp và kiểu không cân bằng của RS-232 sang mức điện áp và kiểu cân bằng của RS-485. Mức điện áp : RS-232 : -9 V ³ logic 1 ; +9 V ³ logic 0. RS-485 : Va-Vb = -5 .. –1.5 V ³ logic 1; Va-Vb = +1.5..+5 V ³ logic 0. Kiểu không cân bằng : điện áp so với đất. Kiểu cân bằng : điện áp vi sai giữa hai dây. Có sự khác biệt cơ bản giữa hai chuẩn trên là : RS-232 có phương pháp truyền thông là Full-duplex. RS-485 có phương pháp truyền thông là Half-duplex, nghĩa là tại một thời điểm chỉ có một trạm là phát và các trạm còn lại là thu. Như vậy ở một trạm khi phát thì phải cấm thu và ngược lại. Có hai phương pháp điều khiển việc thu phát : Dùng tín hiệu RTS để cho phép thu-phát. Dùng mạch phát hiện : Bình thường khi chưa có tín hiệu phát TXD có mức là 1, lúc này cho phép phát. Khi có startbit TXD xuống mức 0, một mạch đơn ổn phát hiện sự biến đổi này sẽ tạo ra một xung có độ dài tối thiểu là thời gian phát một ký tự. Giả sử ứng với tốc độ 9600 Baud (1 startbit, 8 ký tự, 1 bitstop) thì T=1.04 ms. Phương pháp này đơn giản phần mềm nhưng có hạn chế là sau khi phát, muốn thu thì có thể đợi tới 1.04 ms. CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG CARD GIAO TIẾP 2.1. CARD GIAO TIẾP: Card giao tiếp là thiết bị cho phép kết nối máy tính với vi điều khiển. Card giao tiếp có nhiệm vụ đảm bảo kết nối giữa máy tính và các thiết bị cần điều khiển. Nó tiếp nhận mệnh lệnh điều khiển từ máy tính gửi xuống và thực thi các mệnh lệnh đó, đồng thời nó giám sát hoạt động của tải để gửi các thông tin liên quan đến tải lên máy tính, từ đó người điều khiển sẽ biết trạng thái của tải thông qua máy tính. Giao tiếp MCU Nguồn nuôi Cách ly : 2.2. PHÂN TÍCH VÀ SƠ ĐỒ KHỐI Card giao tiếp kết nối với máy tính qua truyền thông nối tiếp, khoảng cách giữa máy tính và Card không xa, nên chuẩn RS-232 có thể đáp ứng. Khối giao tiếp có nhiệm vụ chuyển đổi mức logic của máy tính sang mức logic của vi điều khiển thuộc họ TTL. Để đảm bảo khi có sự cố xảy ra ở card giao tiếp hay ngược lại thì sẽ không gây ảnh hưởng tới bên kia, sự cách ly giữa hai tầng được yêu cầu. Một vi điều khiển (MCU) được lập trình tiếp nhận dữ liệu trên máy tính gửi xuống và xử lý đồng thời gửi ngược dữ liệu trở lại máy tính. Nguồn nuôi cung cấp điện năng cho vi điều khiển và khối cách ly. 2.3. Tính toán thiết kế và lựa chọn linh kiện 2.3.1. Khối giao tiếp: Khoảng cách giữa card và giao tiếp và máy tính là không xa nên sử dụng chuẩn giao tiếp RS-232. Do đó MAX232 được chọn làm linh kiện trung gian giao tiếp giữa máy tính và MCU đồng thời làm nhiệm vụ chuyển mức logic của máy tính sang mức logic TTL. Lợi dụng đặc tính chân số 7(RTS) của cổng COM, khi được Enable, điện áp tại chân số 7 sẽ là +12V, lợi dụng đặc tính này ta sẽ dùng nó cấp nguồn cho MAX232 để nó được cách ly hoàn toàn cả về tín hiệu lẫn nguồn cung cấp điện năng. Tuy nhiên MAX232 sử dụng điện áp là +5V do đó để hạ điện áp tại chân số 7 xuống ta dùng một diode Zener 5,1V phân cực nghịch. Ngõ ra tại chân số 11 và 12 được đưa đến khối cách ly tín hiệu sau đó mới tới vi điều khiển. 2.3.2. Khối cách ly Khối cách ly thực hiện nhiệm vụ cách ly tín hiệu giữa máy tính và vi điều khiển để tránh sự hỏng hóc kéo theo khi một bên bị hỏng. Opto 4N35 có thể đảm nhiệm được nhiệm vụ trên. Khi tín hiệu được đưa vào ngõ vào In (giả sử logic 1), led opto được phân cực thuận và phát sáng, transistor của opto được phân cực và dẫn bão hòa, điện áp nguồn +5V chủ yếu rớt trên R2, do đó tại ngõ ra Out ta lấy được mức logic 1. Tương tự nếu ngõ vào là mức logic 0, led opto tắt, transistor không dẫn nên tại ngõ ra Out không có điện áp và ta thu được mức logic 0. IFmax = 60mA (phụ lục) VCC = 5V RFmin = VCC/ IFmax = 5/60*103 = 83,333 Chọn RF = R1 = 100 ICmax = 50mA (phụ lục) VCC = 5V RCmin = VCC/ICmax = 5/50*103 = 100 Tại ngõ ra ta cần điện áp nên chọn RC = R2 = 1K 2.3.3. Sơ đồ nguyên lý: Nguyên lý hoạt động Khi máy tính truyền bit “1” từ chân số 3 DB9 tới chân số 13 (R1IN) của MAX232 thì tại ngõ ra chân số 12 (R1OUT) sẽ có mức điện áp 5V, điều này làm cho led Opto1 phát sáng, kéo theo transistor Opto1 dẫn, dòng điện chạy qua làm rớt áp hầu hết trên điện trở R4 cung cấp cho RxD của MCU là mức “1”. Ngược lại, khi máy tính truyền bit “0” thì tại ngõ ra chân số 12 (R1OUT) sẽ có mức điện áp 0V, điều này làm cho led Opto1 tắt, transistor Opto1 ngưng dẫn, điện áp rớt trên điện trở R4 là 0V, cung cấp cho RxD của MCU là mức “0”. Khi MCU truyền bit “1” từ TxD, không có sự chênh lệch điện áp giữa nguồn 5V và chân TxD nên led opto 2 tắt, Transistor của Opto 2 ngưng dẫn làm cho T1IN của MAX232 coi như nối nguồn và được bit “1” truyền lên máy tính. Khi MCU truyền bit “0” từ TxD, dòng điện chảy qua led opto 2 làm led opto 2 sáng, Transistor của Opto 2 dẫn. T1IN của MAX232 coi như nối đất và được bit “0” truyền lên máy tính. 2.4. Sơ đồ giải thuật cho MCU TI = 1? Update Control Control Error Send data ON/OFF ON/OFF Y/C Resend Init Serial TI = 0 RI = 0 Receive data RI = 1? Y Y N N Start CHƯƠNG 3: THI CÔNG MẠCH TẢI 3.1. MẠCH ĐIỀU KHIỂN TẢI: Tải là một thiết bị tiêu thụ điện 220v xoay chiều, như vậy ta không thể dùng các linh kiện điện tử bình thường như transistor, việc điều khiển tải sẽ thông qua một thiết bị trung gian là rơle, lựa chọn rơle phải phù hợp với công suất của tải. Giả sử với một bóng đèn quả nhót, công suất tiêu thụ của nó là 10W, sử dụng điện xoay chiều 220V. Tại giá trị đỉnh của điện thế là 220V. p = u * i i = 10/220 = 0.045A Như vậy ta sẽ chọn rơle sao cho hiệu điện thế là 220V và dòng điện chịu đựng được phải lớn hơn 0.1A nếu tính luôn cả mức an toàn. Nội trở trở trong cuộn dây của rơle khoảng 300 IC = 12/300 = 0.04A < ICmax = 0.15A Như vậy không cần mắc thêm điện trở hạn dòng cho transistor R1 để tạo một điện áp phân cực cho cực B của transistor và bảo vệ mối nối BE IB = 5/1000 = 0.005 < IBMax = 50mA Do đó chọn R1 = 1K 3.2. MẠCH CẢM BIẾN TRẠNG THÁI TẢI: Led Opto được mắc song song với tải qua điện trở hạn dòng R17 điện trở này phả có giá trị đủ lớn để không ảnh hưởng tới tải và không quá lớn vì nếu quá lớn sẽ làm cho dòng qua nhỏ quá led không thể sáng được. IF = 220/100 = 2.2mA < IFMax = 60mA (phụ lục) Thử nghiệm thực tế với điện trở 100K opto hoạt động bình thường. Tụ C6 làm phẳng dòng điện ngõ ra 3.3. SƠ ĐỒ NGUYÊN LÝ: Nguyên lý hoạt động: Nguồn điện 220V được cấp cho tải thông qua một rơle, do đó khi rơle chưa đóng, tải sẽ không có nguồn và không họat động. Việc đóng ngắt rơle phụ thuộc vào sự đóng mở của transistor Q1. khi Q1 dẫn dòng điện từ nguồn 12V đổ qua cuộn dây của rơle làm cho khóa K1 thay đổi trạng thái từ NC sang NO, lúc này tải được cấp nguồn và hoạt động. Việc chọn lựa rơle phải phụ thuộc vào công suất của tải, vì nếu công suất tải quá lớn, dòng tiêu thụ sẽ lớn theo, nếu rơle không chịu được dòng điện lớn sẽ làm hỏng mối nối. Diode D1 dùng để bảo vệ cuộn dây của rơle tránh dòng điện phản hồi khi đóng mở rơle. Opto dùng để cách ly nguồn điện 220V. R1 để bảo vệ led trong Opto không bị quá dòng. Phải chọn giá trị R1 đủ lớn để không gây ảnh hưởng tới tải đồng thời cho dòng điện qua led opto đủ lớn để có thể phát sáng. Khi mối nối B-E của Transistor Q1 được phân cực thuận, Q1 sẽ dẫn bão hòa, dòng điện chảy qua role làm cho công tắc trong role đổi trạng thái từ NC sang NO. khi đó dòng điện 220V chảy qua tải làm tải hoạt động, cùng lúc đó, mạch cảm biến tải cũng được cấp điện qua điện trở hạn dòng R1, Led opto phát sáng làm transistor opto dẫn, tại ngõ ra sẽ có điện áp. Tụ 10uF tại ngõ ra để làm phẳng điện áp trước khi đưa vào vi điều khiển để cảm biến trạng thái tải. Phần 3: Phát triển đề tài CHƯƠNG 1: XÂY DỰNG MỘT MÔ HÌNH ĐIỀU KHIỂN MỘT LƯỢNG LỚN CÁC THIẾT BỊ THEO HƯỚNG MỞ 1.1. Đặt vấn đề: Giả sử trong một trường học, mỗi một trường học gồm nhiều phòng học, mỗi một phòng học gồm nhiều thiết bị điện như: đèn, quạt, … Theo cách mắc điện thông thường thì không thể quản lý tập trung được các thiết bị điện, điều đó làm khó khăn cho việc quản lý, ví dụ khi vào học, thì các phòng phải mở đèn, quạt,… nhưng khi học xong, đèn quạt có thể không được tắt gây tốn điện vô ích. Việc đi đến từng phòng để kiểm tra sẽ gây khó khăn nếu như trường quá rộng. Do đó việc điều khiển tập trung là cần thiết. 1.2. Xây dựng mô hình Đối với một số lượng lớn các thiết bị điện cần điều khiển thì không thể sử dụng một Vi điều khiển và mở rộng port là không thích hợp và không kinh tế, hơn nữa nó sẽ không có tính linh động, giả sử khi muốn lắp thêm một số thiết bị nữa thì ta sẽ phải lập trình lại cho Vi điều khiển và thay đổi phần cứng. Để giải quyết vấn đề trên ta xây dựng từng module. Mỗi module sẽ điều khiển một nhóm các thiết bị. Các module này được nối với nhau và nối với module master. Module master có nhiệm vụ thu thập thông tin từ các module slaver gửi lên máy tính, nhận lệnh điều khiển từ máy tính đưa xuống cho các module slaver. Mỗi module slaver có thể hoạt động độc lập mà không cần sự can thiệp của master, tuy nhiên Slaver chỉ có thể điều khiển được thiết bị khi có sự cho phép từ Master (Slaver điều khiển bằng hệ thống nút nhấn được thiết kế trên module cho mỗi thiết bị điện), ngược lại nếu master không cho phép điều khiển từ Slaver thì hệ thống điều khiển trên Module Slaver bị vô hiệu hóa, và lúc này chỉ có thể điều khiển được thiết bị thông qua Master. Mỗi một module sẽ được gán một địa chỉ, địa chỉ này được quản lý bởi Master, do đó khi thêm mới một module slaver thì master sẽ tự nhận ra và cho phép điều khiển, địa chỉ của module mới phải nằm trong dãy địa chỉ mà Master quản lý. Mô hình kết nối các Module RxD TxD : MCU Master MCU Slaver MCU Slaver MCU Slaver MCU Slaver TxD RxD RxD TxD TxD TxD TxD TxD RxD RxD RxD RxD Việc kết nối nhiều vi điều khiển vào cùng một Bus dẫn đến sự tranh chấp trên đường truyền xảy ra. Điều này làm cho dữ liệu không chuẩn xác. Do đó cần phải có cơ chế quản lý Bus. Nếu MCU nào muốn gửi dữ liệu thì phải kiểm tra Bus rảnh mới được phép gửi. Một vấn đề nữa, vì quản lý một khối lượng lớn các thiết bị ở khoảng cách xa, chuẩn RS232 không thể đáp ứng. Lúc này ta có thể sử dụng chuẩn RS485 mà theo lý thuyết nó có thể truyền xa hơn 1KM và có thể cung cấp cho nhiều slave cùng nối vào một Bus. Để có thể truyền xa hơn nữa ta có thể dùng các IC chuyên dụng cho Bus như IC75176, nó có thể đáp ứng tối đa cho 32 MCU slaver theo hai chiều và chiều dài có thể lên đến 1KM. CHƯƠNG 2: VẤN ĐỀ BẢO MẬT MẠNG 2.1. CÁC KIỂU TẤN CÔNG THƯỜNG THẤY: Mặt trái của Internet là nó là môi trường rất tốt để những kẻ xấu lợi dụng khai thác nhằm lấy cắp hoặc phá hủy thông tin… Có nhiều cách để tấn công: • Tapping the wire: To get access to cleartext data and passwords • Impersonation: To get unauthorized access to data or to create unauthorized e-mails, orders, etc. • Denial-of-service: To render network resources non-functional • Replay of messages: To get access to information and change it in transit • Guessing of passwords: To get access to information and services that would normally be denied (dictionary attack) • Guessing of keys: To get access to encrypted data and passwords (brute-force attack) • Viruses: To destroy data Các kiểu tấn công này không loại trừ môi trường nào, kể cả mạng TCP/IP. TCP/IP là một giao thức mở, chính vì vậy, Haker càng dễ dàng tìm con mồi. 2.2. GIẢI PHÁP CHO NHỮNG VẤN ĐỀ BẢO MẬT: Người sử dụng mạng nên tự trang bị cho mình một phương thức bảo vệ thích hợp. Một vài giải pháp được nêu ra ở dưới đây: Encryption: To protect data and passwords Authentication by digital signatures and certificates: To verify who is sending data over the network Authorization: To prevent improper access Integrity checking and message authentication codes: To protect against improper alteration of messages Non-repudiation: To make sure that an action cannot be denied by the person who performed it One-time passwords and two-way random number handshakes: To mutually authenticate parties of a conversation Frequent key refresh, strong keys and prevention of deriving future keys: To protect against breaking of keys (cryptanalysis) Address concealment: To protect against denial-of-service attacks Những phương thức và hệ thống sau đây thường được dùng để cung cấp các dịch vụ bảo mật cho các máy tính mạng: • IP filtering • Network Address Translation (NAT) • IP Security Architecture (IPsec) • SOCKS • Secure Shell (SSH) • Secure Sockets Layer (SSL) • Application proxies • Firewalls • Kerberos and other authentication systems (AAA servers) • Secure Electronic Transactions (SET) Hình: Nơi diễn ra các hoạt động của các phương thức bảo mật trong TCP/IP Hiện nay, hầu hết các WebServer trên mạng sử dụng phương thức SSL (Secure Socket Layer) để thực hiện mã hóa thông tin. Ví dụ: www.mail.yahoo.com, www.gmail.com và ngay cả các trang web thương mại điện tử cũng sử dụng giao thức trên vì tính an toàn và dễ dùng của nó, ví dụ: www.ebay.com . Do đó, đồ án này sẽ nghiên cứu về phương thức SSL (SSL protocol) để bảo mật và mã hóa thông tin trên Webserver. 2.3. TÌM HIỂU PHƯƠNG THỨC SSL 2.3.1. Secure Socket Layer (SSL) SSL là một phương thức bảo mật được phát triển bởi Netscape Communications Corporation, nó kết hợp với phương thức bảo mật dữ liệu RSA. Mục tiêu chủ yếu của SSL là cung cấp một kênh riêng tư giữa các ứng dụng mà chắc chắn rằng dữ liệu đảm bảo, người dùng được chứng thực và toàn vẹn. 2.3.2. Sơ lược về SSL SSL cung cấp một sự thay thế cho phương thức bảo mật Socket API được tích hợp sẵn bên trong TCP/IP chuẩn. Vì vậy, theo lý thuyết thì nó có thể chạy trên bất cứ ứng dụng nào dùng TCP/TP theo phương thức bảo mật mà không cần thay đổi chương trình. Tuy nhiên trong thực tế SSL chỉ được sử dụng rộng rãi trong các kết nối HTTP. Netscape Communications Corporation đã bắt đầu có ý định phát triển SSL cho các loại ứng dụng khác ví dụ như: NNTP, telnet… SSL bao gồm có 2 lớp: Tại lớp dưới, một giao thức phục vụ cho sự vận chuyển dữ liệu bằng cách dùng các mật mã được định nghĩa lại một cách đa dạng và chứng thực các kết nối. điều này được gọi là SSL Record Protocol. Tại lớp trên, một giao thức dùng cho chứng thực ban đầu và vận chuyển các khóa được mã hóa. Nó được gọi là SSL Handshake Protocol Một phiên làm việc ban đầu của SSL được mô tả như sau: Tại trình duyệt của client, user yêu cầu một tài liệu có một địa chỉ đặc biệt bắt đầu bằng https: thay vì http: bằng cách gõ nó vào ô Address hoặc click lên một kết nối. Trình duyệt của client sẽ nhận ra đó là yêu cầu bảo mật dùng SSL và thiết lập một kết nối TCP dùng port 443 tới SSL trên server Sau đó, client thiết lập chế độ bắt tay, sử dụng SSL Record Protocol. Lúc này, chưa có sự mã hóa và kiểm tra tính toàn vẹn (integrity) đối với kết nối. Giao thức SSL Privacy Sau khi khóa đối xứng được thiết lập trong tiến trình bắt tay ban đầu, thông điệp được mã hóa sử dụng khóa này. Integrity Thông điệp (messages) chứa mã chứng thực (message authentication code - MAC). Authentication trong quá trình bắt tay, client chứng thực (authenticates) với Server sử dụng khóa bất đối xứng (asymmetric key) hay còn gọi là khóa công khai (public key). Nó cũng có thể dựa trên “giấy” chứng thực (certificates) SSL đòi hỏi mỗi thông điệp đều phải mã hóa và giải mã do đó máy tính cấu hình mạnh là cần thiết. 2.3.3. Giao thức SSL Giao thức SSL hoạt động tại tầng cao nhất của lớp Transport. Chính nó cũng tạo nên một lớp trong mô hình TCP/IP. Nó nhận dữ liệu từ lớp Application, định dạng lại và chuyển xuống lớp transport SSL xử lý thông điệp theo các bước sau: Nơi gửi: Lấy thông điệp từ lớp trên Sắp xếp dữ liệu thành những khối (blocks) có thể quản lý Nén dữ liệu nếu cần Đưa mã chứng thực (MAC) vào Mã hóa dữ liệu Đưa kết quả xuống lớp dưới  Nơi nhận: Lấy dữ liệu từ lớp dưới Giải mã Kiểm tra lại dữ liệu với mã MAC đã thỏa thuận Giải nén nếu như dữ liệu được nén trước đó Sắp xếp lại thông điệp Đẩy thông điệp lên tầng trên Một phiên (session) làm việc của SSL có những trạng thái (states) khác nhau. Những trạng thái này là trạng thái phiên (session state) và trạng thái kết nối (connection state). SSL handshake protocol phối hợp những trạng thái này giữa client và server. Thêm vào đó còn có các trạng thái đọc (read state) và ghi (write state) để chỉ rõ sự phối hợp mã hóa theo “the change cipher spec mesages” tạm dịch là “những mẩu tin chứa đựng sự thay đổi của mật mã”. Khi một người gửi một mẩu tin chứa đựng sự thay đổi của mật mã, nó thay đổi trạng thái chờ ghi sang trạng thái đang được ghi. Ngược lại, khi một người nhận được một mẩu tin chứa đựng sự thay đổi của mật mã, nó thay đổi trạng thái chờ đọc sang trạng thái đọc hiện tại Trạng thái phiên (session state) bao gồm những thành phần dưới đây: Session Identifier Một chuỗi byte độc nhất được chọn bởi server để nhận biết một trạng thái đang hoạt động hay trạng thái khôi phục lại (resumable). Peer certificate Certificate of the peer, trường này không bắt buộc, nó có thể được bỏ trống. Compression method Thuật toán mã hóa. Cipher spec Thuật toán mã hóa đặc biệt và một thuật toán MAC Master secret gồm 48 byte được bí mật chia sẻ giữa client và server Is resumable Một cái cờ chỉ ra nơi mà phiên làm việc có thể được dùng cho một kết nối mới Trạng thái kết nối (connection state) gồm những thành phần dưới đây: Server and client random Một chuỗi byte độc nhất được chọn bởi client và server dùng cho mỗi kết nối. Server write MAC secret Sự bí mật được dùng cho qúa trình hoạt động mã MAC bởi server. Client write MAC secret Sự bí mật được dùng cho qúa trình hoạt động mã MAC bởi client. Server write key Khóa mật mã cho server để mã hóa thông tin và cho client để giải mã thông tin. Client write key Khóa mật mã cho client để mã hóa thông tin và cho server để giải mã thông tin. Initialization vectors Vector khởi tạo chứa đựng các thông tin mã hóa Sequence numbers Số tuần tự chỉ ra số thứ tự của thông điệp gửi tính từ lần cuối cùng thay đổi thông điệp chứa đựng mật mã. Cả server và client đều duy trì chỉ số tuần tự. 2.3.4. Giao thức thay đổi chỉ định mật mã (Change cipher spec protocol) Giao thức thay đổi chỉ định mật mã dùng cho việc gửi các thông điệp chứa đựng sự thay đổi mật mã. Tại bất cứ thời điểm nào, client có thể yêu cầu thay đổi tham số mật mã hiện tại ví dụ như: khóa trao đổi trong quá trình bắt tay. Theo sau yêu cầu đổi chỉ định mật mã, client gửi khóa trao đổi bắt tay (handshake key exchange), và nếu có thể client gửi thông diệp kiểm tra chứng thực (certification veify mesages). Sau đó Server sẽ gửi thông điệp chứa đựng sự thay đổi mật mã sau quá trình xử lý thông điệp trao đổi khóa. Sau những điều trên khóa mới sẽ được dùng cho tới lần yêu cầu thay đổi tham số mật mã kế tiếp. Thông điệp chứa đựng sự thay đổi mật mã được gửi sau thông điệp hello trong suốt quá trình đàm phán. 2.3.5. Giao thức bắt tay trong SSL Giao thức bắt tay trong SSL cho phép client và server xác định các thông số cần thiết cho một kết nối SSL, ví dụ như phiên bản kết nối, thuật toán mã hóa, chọn lựa cách chứng thực của server và client, và phương thức mã hóa khóa công khai (public key) để tạo ra môi trường bí mật dùng chung. Trong suốt quá trình này, nhưng thông điệp bắt tay được gửi qua SSL record layer để đóng gói thành những thông điệp SSL đặc biệt. Hình: Chi tiết quá trình bắt tay của SSL Quá trình bắt tay của SSL diễn ra trong 5 bước: Bước 1: Client gửi một yêu cầu kết nối với một thông điệp hello, thông điệp này bao gồm: Phiên bản SSL mong muốn Thông tin về thời gian (thời gian và ngày tháng hiện tại) Sesion-ID. Nếu ID này không đặc biệt, server sẽ kết nối với các phiên làm việc trước đó hoặc trả về một thông báo lỗi Danh sách mã hóa (cipher suite). (là một danh sách để lựa chọn phương thức mã hóa mà client hỗ trợ. Nó bao gồm, phương thức chứng thực(authentication modes), phương thức trao đổi khóa (key exchange modes), cách mã hóa (encryptions) và thuật toán MAC (MAC algorithms)). Cách thức nén dữ liệu được client hỗ trợ Một giá trị ngẫu nhiên. Bước 2: Server đánh giá các thông số được gửi bởi thông điệp hello của client và trả về một thông điệp hello của server bao gồm những thông số được chọn bởi server để dùng cho một phiên làm việc SSL Phiên bản SSL mong muốn. Thông tin về thời gian (thời gian và ngày tháng hiện tại). Sesion-ID. Cipher suite Cách thức nén dữ liệu được client hỗ trợ Một giá trị ngẫu nhiên. Sau thông điệp hello của server, server gửi các thông điệp sau: Bản chứng thực của server (server cettificate) nếu server yêu cầu phải được chứng thực (authenticate). Một thông điệp về cách trao đổi khóa của server (server key exchange message) nếu không tồn tại bản chứng thực hoặc bẳng chứng thực chỉ để tượng trưng Một bảng chứng thực yêu cầu client phải được chứng thực Cuối cùng server gửi thông điệp hello done và bắt đầu chờ hồi âm của cliẹnt Bước 3: Client gửi những thông điệp sau đây: Nếu Server yêu cầu một bản chứng thực, client phải gửi bản chứng thực hoặc thông báo không co bản chứng thực. Nếu server gửi thông điệp cách trao đổi khóa, client phải gửi thông điệp cách trao đổi khóa dựa trên thuật toán khóa công khai (public key algorithm) đã được xác định trong thông điệp hello. Nếu client gửi bản chứng thực, client sẽ kiểm tra bản chứng thực của server và gửi thông điệp chỉ ra kết quả sau khi kiểm tra bản chứng thực Client gửi thông điệp hoàn tất chỉ ra phần đàm phán thành công. Client cung gửi thông điệp chứa đựng sự thay đổi mật mã để tạ ra sự bảo mật chung (shared secrets). Chú ý rằng, điều này không thuộc sự quản lý của giao thức bắt tay SSL mà nó thuộc sự hoạt động của giao thức thay đổi chỉ định mật mã. Bước 4: Server gửi thông điệp hoàn tất chỉ ra phần thỏa thuận thành công. Server gửi thông điệp chứa đựng sự thay đổi mật mã. Bước 5: Cuối cùng, sau khi đã thỏa thuận xong và mỗi bên đã có đuợc khóa dùng để mã hóa thì giao thức bắt tay chuyển sang trạng thái kết nối. Tấn cả dữ liệu lấy từ lớp ứng dụng được chuyển đổi sang một thông điệp đặc biệt gửi sang đầu bên kia. KẾT LUẬN Sau khi thiết kế và thi công, kiểm nghiệm lại kết quả, mạch đã chạy khá ổn định, một người có thể đứng từ bất cứ đâu, nếu có được username và password là có thể điều khiển được thiết bị. Ứng dụng của đề tài mở ra rất lớn ví dụ như phần phát triển đề tài và đặc biệt hữu ích cho việc điều khiển các thiết bị “nhạy cảm” như camera quan sát, báo trộm, báo cháy… Nhược điểm lớn nhất của đề tài là không thể hoạt động độc lập mà phải đi kèm theo một máy tính làm webserver luôn luôn hoạt động, do đó mô hình này phù hợp hơn đối với mô hình các công ty. Việc giải quyết nhược điểm này có thể làm theo mô hình của huớng phát triển, khi đó, tự chúng có thể hoạt động thông qua sự điều khiển của MCU Master. Qua đề tài em đã học hỏi được nhiều khinh nghiệm, về vi điều khiển, lập trình web và hiểu rõ hơn về hoạt động của mạng máy tính. Tài liệu tham khảo Vi xử lý Hồ Trung Mỹ Giáo trình hệ thống mạng máy tính CCNA Nguyễn Hồng Sơn Giáo trình lập trình web bằng ASP 3.0 Phạm Hữu Khang Tự học TCP/IP trong 14 ngày Quang Huy Tín Dũng TCPIP Tutorial and Technical Overview E_Book Phần 4: Phụ lục Vi điều khiển 89C51 Max232 Opto 4N35

Các file đính kèm theo tài liệu này:

  • doc1. Mai Phuong Thao_103101101.doc
  • pdf3. MAX232.PDF
  • pdf4. 4N35(Opto).pdf
  • doc2. Vi Dieu Khien.doc
Tài liệu liên quan