Đề tài Thiết bị báo cháy tự động và điều khiển chống cháy thông qua mạng internet với giá thành thấp phù hợp với hầu hết các kiến trúc mạng máy tính chạy theo giao thức TCP /IP trên nền hệ điều hành Windows

Tài liệu Đề tài Thiết bị báo cháy tự động và điều khiển chống cháy thông qua mạng internet với giá thành thấp phù hợp với hầu hết các kiến trúc mạng máy tính chạy theo giao thức TCP /IP trên nền hệ điều hành Windows: Xin chân thành cảm ơn Các Thầy Cô Giáo trong nhà trường, Nhất là quý thầy cô trong Khoa Công Nghệ Thông Tin Trường Đại Học Bách Khoa Hà Nội, Đại Học Thuỷ Sản đã tận tình dạy dỗ em trong suốt 5 năm qua. Xin bày tỏ lòng biết ơn sâu sắc Thầy Đỗ Văn Uy, Người đã nhiệt tình hướng dẫn, tạo mọi điều kiện thuận lợi để em hồn thành quyển luận văn này. Xin cảm ơn tất cả các bạn cùng công ty TQC đã có ý kiến đóng góp, giúp đỡ em trong lúc thực hiện luận văn này. MỤC LỤC Phần 1 : Giới thiệu về đề tài Chương I:Giới thiệu sơ lược về hệ thống báo cháy thông qua mạng internet dựa vào giao thức TCP/IP I.Mục đích yêu cầu của đề tài. II.Giới hạn của đề tài. III.Các phương án thực hiện đề tài. Chương II:Quy trình hoạt động của một hệ thống báo cháy I.Nguyên tắc báo cháy. II.Cấu trúc thuần tuý của một hệ thống báo cháy. 1.Cảm biến a.Cảm biến nhiệt. b.Cảmbiến lửa. c.Cảm biến khói. Phần 2:Kiến trúc hệ thống báo cháy điều khiển từ máy tính Chương I.Lý thuyết về giao...

doc53 trang | Chia sẻ: hunglv | Lượt xem: 1326 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Thiết bị báo cháy tự động và điều khiển chống cháy thông qua mạng internet với giá thành thấp phù hợp với hầu hết các kiến trúc mạng máy tính chạy theo giao thức TCP /IP trên nền hệ điều hành Windows, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Xin chân thành cảm ơn Các Thầy Cô Giáo trong nhà trường, Nhất là quý thầy cô trong Khoa Công Nghệ Thông Tin Trường Đại Học Bách Khoa Hà Nội, Đại Học Thuỷ Sản đã tận tình dạy dỗ em trong suốt 5 năm qua. Xin bày tỏ lòng biết ơn sâu sắc Thầy Đỗ Văn Uy, Người đã nhiệt tình hướng dẫn, tạo mọi điều kiện thuận lợi để em hồn thành quyển luận văn này. Xin cảm ơn tất cả các bạn cùng công ty TQC đã có ý kiến đóng góp, giúp đỡ em trong lúc thực hiện luận văn này. MỤC LỤC Phần 1 : Giới thiệu về đề tài Chương I:Giới thiệu sơ lược về hệ thống báo cháy thông qua mạng internet dựa vào giao thức TCP/IP I.Mục đích yêu cầu của đề tài. II.Giới hạn của đề tài. III.Các phương án thực hiện đề tài. Chương II:Quy trình hoạt động của một hệ thống báo cháy I.Nguyên tắc báo cháy. II.Cấu trúc thuần tuý của một hệ thống báo cháy. 1.Cảm biến a.Cảm biến nhiệt. b.Cảmbiến lửa. c.Cảm biến khói. Phần 2:Kiến trúc hệ thống báo cháy điều khiển từ máy tính Chương I.Lý thuyết về giao tiếp máy tính với thiết bị ngoại vi. I.Các phương pháp điều khiển vào ra. 1.Vào ra điều khiển bằng chương trình. 2.Vào ra điều khiển bằng ngắt. II.Các phương pháp giao tiếp với thiết bị ngoại vi. 1.Giao tiếp với máy tính thông qua slot card. 2. Giao tiếp với máy tính thông qua slot serial port. 3.Giao tiếp với máy tính thông qua printer port. Chương II.Tìm hiểu về RS232C. I.Đặc điểm kĩ thuật về điện của RS232C. II.Các đường dữ liệu và điều khiển của RS232C. III. Modem rổng của RS232C. IV.Các IC kích phát thu của RS232C. V.Minh hoạ thông tin nối tiếp bất đồng. 1.Lựa chọn cổng COM. 2.Hoạt động của cổng nối tiếp. Chương 3.Lập trình điều khiển qua cổng COM viết bằng ngôn ngữ Visual Basic 6.0 I.Tại sao chọn ngôn ngữ Visual Basic 6.0. II.Thư viện liên kết động Port.dll III.Gọi hàm trong thư viện Port.dll từ Visual basic 6.0 Phần 3.Cơ sở lý thuyết về mạng và giao thức TCP/IP Chương I.Các khái niệm cơ bản về mạng. I.Mô hình mạng OSI, mô hình mạng TCP/IP. 1.Khái niệm mô hình mạng. 2.Mô hình mạng OSI. 3.Mô hình mạng TCP. 4.Giao thức TCP. 5.Địa chỉ IP. a.Giới thiệu địa chỉ IP. Chương II.Mạng Internet. I. Internet bắt nguồn từ đâu. II.Giao thức mà internet sử dụng. III.Các dịch vụ kết nối đến internet. Chương III.Một số hàm socket. I.Khái niệm về socket. II.Lập trình winsock. Phần 4.Giớiù thiệu về chương trình minh hoạ báo cháy. LỜI NÓI ĐẦU Trong cuộc sống của chúng ta luôn tồn tại những khu vực dễ cháy, nên việc lắp đặt hệ thống báo cháy có tầm quan trọng hết sức lớn lao. Nó giúp chúng ta phát hiện nhanh chóng, chữa cháy kịp thời kỳ đầu của vụ cháy đem lại sự bình yên cho mọi người, bảo vệ tài sản cho nhân dân, nhà máy xưởng sản xuất… Ngày nay, việc phòng cháy chữa cháy trở thành mối quan tâm hàng đầu của nước ta cũng như nhiều nước trên thế giới. Nó trở thành nghiã vụ của mỗi người dân. Trên các phương tiện thông tin đại chúng luôn tuyên truyền giáo dục cho mỗi người dân ý thức phòng cháy chữa cháy, nhằm mục đích hạn chế những vụ cháy đáng tiếc xảy ra. Cùng với sự phát triển nhanh chóng của hệ thống thông tin internet thì việc báo cháy qua mạng internet ngày càng có khả năng áp dụng vào thực tiễn, nó giúp ta báo kịp thời những thông tin về vụ cháy đến các cơ quan chức năng. Xuất phát từ những ý tưởng trên, em chọn đề tài “Thiết bị báo cháy tự động và điều khiển chống cháy thông qua mạng internet với giá thành thấp phù hợp với hầu hết các kiến trúc mạng máy tính chạy theo giao thức TCP /IP trên nền hệ điều hành Windows” cho luận án tốt nghiệp. Do thời gian và sự hiểu biết có hạn, chắùc chắn trong quá trình làm em cũng có nhiều thiếu sót, mong các thầy cô và các bạn chân thành góp ý. Phần 1 :Giới Thiệu về đề tài Chương 1: Giới thiệu sơ lược về hệ thống báo cháy thông qua mang internet dựa vào giao thức TCP/IP. Ngành công nghệ thông tin liên lạc đã phát triển nhanh chóng cùng với các ngành công nghệ khác, nhằm đáp ứng nhu cầu ngày càng cao của xã hội. Công nghệ thông tin đóng vai trò cốt lõi trong việc cập nhật thông tin cho mọi người. Với những nhu cầu về mạng internet cũng như LAN hay WAN ngày càng thâm nhập sâu vào đời sống hàng ngày của chúng ta với rất nhiều ứng dụng thực tiễn như email , chat , điện thoại IP , web, ... vì vậy với suy nghĩ là ứng dụng kiến thức đã học ở trường và tìm hiểu thêm ở sách vở, em quyết định chọn đề tài “Thiết bị báo cháy tự động qua mạng internet ” với mong muốn sau khi thực hiện xong đề tài có thể đem ra ứng dụng trong thực tế. I. Mục Đích Yêu Cầu Cuả Đề Tài: Nhằm phục vụ cho việc báo cháy tự động qua mạng máy tính hiện có tại các cơ quan xí nghiệp, đặt tại các nhà cao tầng, những nơi cần thiết khác vv… Từ mục đích trên nên thiết bị báo cháy phải đảm bảo các yêu cầu: Sử dụng tiện lợi và sử dụng trên khắp cả nước mà không cần thay đổi phần cứng. Báo động kịp thời các vụ cháy nhằm giảm nhẹ thiệt hại do cháy gây ra. Có thể điều khiển từ xa qua mạng tắt điện hoăïc phun nước khi có cháy. II. Giới Hạn Đề Tài: Báo Cháy và Chống Cháy có rất nhiều vấn đề cần bàn tới ví dụ như : Khi kho xăng dầu cháy thì đặc tính chữa cháy khác so với hố chất cháy. Hiện tại vấn đề phát hiện khói báo cháy còn phụ thuộc nhiều vào đầu dò khói ...Vì vậy có rất nhiều khó khăn trong lúc thực hiện đề tài. Với thời gian ngắn nhưng lại có nhiều vấn đề cần giải quyết, hơn nữa kiến thức người tìm hiểu đề tài có hạn, sinh viên thực hiện đề tài chỉ tập trung giải quyết vấn đề sau: -Báo động có cháy thông qua mạng khi có sự cố. -Thực hiện đươc 2 chức năng là: Tắt nguồn điện từ xa thông qua mạng . Khởi động nguồn cho thiết bị chống cháy. III. Chọn Phương Aùn Thực Hiện Đề Tài: Với những yêu cầu đặt ra ở trên, em đã xem xét và đưa ra 3 phương án như sau: Sử dụng kỹ thuật số. Sử dụng kỹ thuật vi xử lý. Sử dụng kỹ thuật vi điều khiển. Với những đòi hỏi của máy ta có thể đơn giản những hoạt động bằng kỹ thuật số. Nhưng tốn kém linh kiện và kích thước cồng kềnh, hơn nữa khó thay đổi phần mềm và không có khả năng mở rộng cho các hoạt động khác. Với kỹ thuật vi xử lý, có thể khắc phục những yếu điểm của mạch số nhưng lại phức tạp trong việc thiết kế phần cứng. . Nếu sử dụng kỹ thuật vi điều khiển,giao tiếp theo xung với mạch thiết kế thuần chất điện tử thì giá thành hạ và chất lượng của thiết bị phụ thuộc nhiều vào phần mềm. Vì vậy em quyết định đi theo hướng này. CHƯƠNG 2: Quy trình hoạt động từ một hệ thống báo cháy I. Nguyên tắc báo cháy : Khi một đám cháy xảy ra, ở những vùng cháy thường có những dấu hiệu sau: Lửa, khói, vật liệu chỗ cháy bị phá hủy. Nhiệt độ vùng cháy tăng lên cao. Không khí bị Oxy hóa mạnh. Có mùi cháy, mùi khét. Để đề phòng cháy chúng ta có thể dựa vào những dấu hiệu trên để đặt các hệ thống cảm biến làm các thiết bị báo cháy. Kịp thời khống chế đám cháy ở giai đoạn đầu. Thiết bị báo cháy điện tử giúp chúng ta liên tục theo dõi để hạn chế các vụ cháy tai hại, tăng cường độ an tồn, bình yên cho mọi người. II. Cấu trúc thuần tuý của một hệ thống báo cháy: 1. Cảm biến: Cảm biến là bộ phận hết sức quan trọng, nó quyết định độ nhạy và sự chính xác của hệ thống. Cảm biến hoạt động dựa vào các đặt tính vật lý của vật liệu cấu tạo nên chúng. Cảm biến được dùng để chuyển đổi các tín hiệu vật lý sang tín hiệu điện. Các đặc tính của cảm biến: độ nhạy, độ ổn định, độ tuyến tính. a. Cảm biến nhiệt: Là loại cảm biến dùng để chuyển tín hiệu vật lý (nhiệt độ) thành tín hiệu điện, đây là loại cảm biến có độ nhạy tương đối cao và tuyến tính. Nguyên tắc làm việc của nó là dòng điện hay điện áp thay đổi khi nhiệt độ tại nơi đặt nó thay đổi. Tuy nhiên nó cũng dễ báo động nhầm khi nguồn điện bên ngồi tác động không theo ý muốn. Các loại cảm biến nhiệt: IC cảm biến: Là loại cảm biến bán dẫn được chế tạo thành các IC chuyên dụng với độ nhạy cao, điện áp ra thay đổi tỉ lệ thuận với nhiệt độ, một số loại IC được bán bên ngồi thị trường là: LM355, LM334, … Thermistor: Thermistor là loại điện trở có độ nhạy nhiệt rất cao nhưng không tuyến tính và với hệ số nhiệt âm. Điện trở giảm phi tuyến với sự tăng của nhiệt độ. Vì bản thân là điện trở nên trong quá trình hoạt động Thermistor tạo ra nhiệt độ vì vậy gây sai số lớn. Thermo Couples: Thermo Couple biến đổi đại lượng nhiệt độ thành dòng điện hay điện áp DC nhỏ. Nó gồm hai dây kim loại khác nhau nối với nhau tại hai mối nối. Khi các dây nối đặc ở các vị trí khác nhau, trong dây xuất hiện suất điện động. Suất điện động tỉ lệ thuận với sự chênh lệch nhiệt độ giữa hai mối nối. Thermo couple có hệ số nhiệt dương. b. Cảm biến lửa: Khi lửa cháy thì phát ra ánh sáng hồng ngoại, do đó ta sử dụng các linh kiện phát hiện tia hồng ngoại để phát hiện lửa. Nguyên lý hoạt động là điện trở của các linh kiện thu sóng hồng ngoại tăng, nó chuyển tín hiệu ánh sáng thu được thành tín hiệu điện để báo động. Loại này rất nhạy đối với lửa. Tuy nhiên cũng dễ báo động nhầm nếu ta để cảm biến ngồi trời hoặc gần ánh sáng bóng đèn tròn. c. Cảm biến khói: Thường cảm biến khói là bộ phân riêng biệt chạy bằng PIN được thiết kế để lắp đặt trên trần nhà, trên tường. Ngồi yêu cầu kỹ thuật (chính xác, an tồn) còn đòi hỏi phải đảm bảo về mặt thẩm mỹ. Có hai cách cơ bản để thiết kế bộ cảm biến khói. Cách thứ nhất sử dụng nguyên tắc Ion hóa. Người ta sử dụng một lượng nhỏ chất phóng xạ để Ion hóa trong bộ cảm biến. Không khí bị Ion hóa sẽ dẫn điện và tạo thành một dòng điện chạy giữa chạy giữa hai cực đã đợc nạp điệän. Khi các phần tử khói lọt vào khu vực cảm nhận được Ion hóa sẽ làm tăng điện trở trong buồng cảm nhận và làm giảm luồng điện giữa hai cực. Khi luồng điện giảm xuống tới một giá trị nào đó thì bộ cảm biến sẽ phát hiện và phát tín hiệu báo động. Cách thứ hai sử dụng các linh kiện thu phát quang. Người ta dùng linh kiện phát quang (Led, Led hồng ngoại…) chiếu một tia ánh sáng qua vùng bảo vệ vào một linh kiện thu quang (photo diode, photo transistor, quang trở…). Khi có cháy, khói đi ngang qua vùng bảo vệ sẽ che chắn hoặc làm giảm cường độ ánh sáng chiếu vào linh kiện thu. Khi cường độ giảm xuống tới một giá trị nào đó thì bộ cảm biến sẽ phát hiện và phát tín hiệu báo động. Trong hai cách này thì phương pháp thứ nhất nhạy hơn và hiệu quả hơn phương pháp thứ hai, nhưng khó thực thi, khó lắp đặt. Còn cách thứ hai tuy ít nhạy hơn nhưng linh kiện dễ kiếm và dễ thực thi cũng như dễ lắp đặt. Một nhược điểm của các loại cảm biến này là: mạch báo động có thể sai nếu vùng bảo vệ bị xâm nhập bởi các lớp bụi… PhầN 2: Kiến trúc phần cứng về hệ thống báo cháy thông qua máy tính Chương 1. Lý thuyết về giao tiếp máy tính với thiết bị ngoại vi I. Các phương pháp điều khiển vào ra: 1.Vào ra điều khiển bằng chương trình: Thiết bị ngoai vi điều ghép với Bus hệ thống vi xử lý thông qua các phần thích ứng về công nghệ chế tạo và logic. Thích ứng về công nghệ chế tạo là điều chỉnh mức công nghệ sản xuất thiết bị ngoại vi và công nghệ sản xuất của mạch trong hệ vi xử lý. Thích ứng về Logic là nhiệm vụ tạo tín hiệu điều khiển ngoại vi tín hiệu trên bus hệ thống. Trong hệ vi xử lý một vùng nhớ dùng làm nơi chứa địa chỉ cổng vào ra và CPU xuất hoặc nhập dữ liệu từ các cổng vào ra này các lệnh xuất nhập In/Out Lúc này cổng vào ra được xem như thanh ghi ngồi, chúng được viết vào hoặc đọc ra như ô nhớ Ram qua hai lệnh trên. Để phân biệt hướng xuất hoặc nhập dữ liệu từ cổng vào ra CPU phát ra tín hiệu điều khiển đọc hoặc viết. Để phân biệt vùng nhớ với thiết bị vào ra CPU phát ra tín hiệu điều khiển IO/M. Khi có các lệnh này thì các lệnh In/Out mới có tác dụng. Ngồi các lệnh qui chiếu bộ nhớ, cũng như khả năng trao đổi dữ liệu giữa thiết bị ngoại vi và hệ vi xử lý. Lúc đó vào ra được gán như một địa chỉ ô nhớ của bộ nhớ. Các thanh ghi liên quan tới cổng vào ra được xem như ngăn nhớ. Khi bộ vi xử lý gọi địa chỉ và xung điều khiển đọc hay viết bộ nhớ không cần xác định nơi gởi là bộ nhớ hay thiết bị vào ra. Nó chỉ hỏi nơi gởi dữ liệu vào trong khoảng thời gian cho phép. Bộ logic bên ngồi sẽ giải mã địa chỉ kết hợp với xung MR, MW, để chọn thiết bị mà không phân biệt ngăn nhớ hay thiết bị vào ra. 2.Vào ra điều khiển bằng ngắt: Với phương pháp điều khiển vào ra bằng chương trình, CPU phải liên tục kiểm tra trạng thái của thiết bị ngoại vi đến khi sẵn sàng, đó là sự lãng phí thời gian của CPU và chương trình dài và phức tạp. Khi bộ vi xử lý có nhiều thiết bị ngoại vi CPU không đáp ứng yêu cầu của chúng. Có thể đáp ứng yêu cầu ngoại vi nhanh chóng và không theo trình tự như định trước nhờ cơ cấu ngắt CPU. Nhờ tính chất đáp ứng tức thời của vi xử lý khi có yêu cầu ngắt từ thiết bị ngoại vi do đó các ngắt thường được dùng ở những trường hợp yêu cầu đap ứng nhanh, thời gian trả lời ngắn, thực hiện ở bất kỳ thời điểm nào. Khi đó CPU phải chuyển đến chương trình con, yêu cầu ngắt ở cuối bất kỳ lệnh nào trong chương trình chính. Các chương trình con phục vụ ngắt có thể lưu trữ nội dung các thanh ghi và khôi phục lại khi thực hiện xong chương trình phục vụ ngắt và trước khi trở lại chương trình chính. Giao tiếp với maý tính là trao đổi dữ kiện giữa một máy tính với một hay nhiều thiết bị ngoại vi. Theo tiêu chuẩn sản xuất, máy tính giao tiếp với người sử dụng bằng hai thiết bị: Bàn phím để nhập dữ liệu Màn hình để hiển thị Ngồi ra nhà sản xuất cho ta nhiều cách giao tiếp khác thông qua các port như là các ngõ giao tiếp: Giao tiếp qua port com (nối tiếp) Giao tiếp qua port Parallel(song song) Tùy theo trường hợp ứng dụng cụ thể mà chọn cách giao tiếp thích hợp. II.Các phương pháp giao tiếp với thiết bị ngoại vi: 1.Giao tiếp với máy tính thông qua slot card: Bên trong máy tính, ngồi những khe cắm dùng cho card vào - ra, card màn hình, vẫn còn những rãnh cắm để trống. Để giao tiếp với máy tính, ta có thể thiết kế card mở rộng để gắn vào khe cắm mở rộng này. Ở máy tính PC/XT rãnh cắm chỉ có 1 loại với độ rộng 8 bit và tuân theo tiêu chuẩn ISA (Industry Standard Architecture). Rãnh cắm theo tiêu chuẩn IS có 62 đường tín hiệu, qua các đường tín hiệu này máy tính có thể giao tiếp dễ dàng với thiết bị bên ngồi thông qua card mở rộng. Trên rãnh cắm mở rộng, ngồi 20 đường địa chỉ, 8 đường dữ liệu, còn có một số đường điều khiển như: , , IOW, AEN, CLK, ... Do đó card giao tiếp với máy tính qua slot card đơn giản, số bit có thể tăng dễ dàng, giảm được nhiều linh kiện, tốc độ truyền dữ liệu nhanh (truyền song song). Tuy nhiên, do khe cắm nằm bên trong máy tính nên khi muốn gắn card giao tiếp vào thì phải mở nắp ra, điều này gây bất tiện cho người sử dụng. 2.Giao tiếp qua Serial Port (Port COM) : IBM PC cung cấp 2 cổng nối tiếp: COM1 và COM2. Các cổng này giao tiếp theo tiêu chuẩn RS232. Chúng có thể được nối với một Modem để dùng cho mạng điện thoại, hay nối trực tiếp với một máy tính khác. Dữ liệu được truyền qua cổng này theo cách nối tiếp, nghĩa là dữ liệu được gởi đi nối tiếp nhau trên 1 đường dây. Do các dữ liệu được truyền đi từng bit một nên tốc độ truyền chậm, các tốc độ truyền có thể là 300, 600, 1200, 2400, 4800bps, 9600bps, chiều dài dữ liệu có thể là 5, 6, 7 hoặc 8 bit và kết hợp với các bit Start, Stop, Parity tạo thành một khung (frame). Ngồi ra cổng này còn có các điều khiển thu (Receive), phát (Trans), kiểm tra. Cách giao tiếp này cho phép khoảng cách truyền dữ liệu xa, tuy nhiên tốc độ truyền rất chậm tốc độ tối đa là 20kbps. 3.Giao tiếp qua cổng PRINT (Cổng máy in): IBM PC cho phép sử dụng đến 3 cổng song song có tên là LP1, LP2 và LP3. Kiểu giao tiếp song song được dùng để truyền dữ liệu giữa máy tính và máy in. Khác với cách giao tiếp qua Port Com, ở cách giao tiếp này dữ liệu được truyền song song cùng một lúc 8 bit. Vì thế nó có thể đạt tốc độ cao. Connector của Port này có 25 chân bao gồm 8 chân dữ liệu và các đường tín hiệu bắt tay (Handshaking ). Tất cả các đường Data và tín hiệu điều khiển đều ở mức logic hồn tồn tương thích với mức TTL. Hơn nữa, người lập trình có thể điều khiển cho phép hoặc không cho phép các tín hiệu tạo Interrupt từ ngõ vào nên việc giao tiếp đơn giản và dễ dàng. Tuy nhiên, giao tiếp với mức logic TTL nên khoảng cách truyền bị hạn chế so với cách truyền qua Port Com, đồng thời cáp truyền cũng phức tạp hơn. Đó là nhược điểm của cách giao tiếp này. Chương 2. Tìm hiểu về RS232. Vào năm 1960, cùng với sự phát triển mạnh của các thiết bị đầu cuối máy tính chia sẻ thời gian, các Modem đã được tung ra ngày càng nhiều nhằm đảm bảo cho các thiết bị đầu cuối có thể dùng các đường điện thoại để thông tin giữa các máy tính với nhau ở những khoảng cách xa. Modem và các thiêt bị được dùng để gửi số liệu nối tiếp thường được gọi là thiết bị thông tin số liệu DCE (Datommunication Equipment). Các thiết bị đầu cuối hoặc máy tính đang gửi hay nhận số liệu được gọi là các thiết bị đầu số liệu DTE (Data Terminal Equipment). Nhằm đáp ứng với nhu cầu về tín hiệu và các chuẩn bắt tay (handshake standards) giữa DTE và DCE, hiệp hội kỹ thuật điện tử EIA đã đưa ra chuẩn RS-232C. Chuẩn này mô tả chức năng 25 chân tín hiệu và bắt tay cho việc chuyển dữ liệu nối tiếp. Nó cũng mô tả các mức điện áp, trở kháng, tốc độ truyền cực đại và điện dung cực đại cho các đường tín hiệu này. RS-232 ấn định 25 chân tín hiệu, và quy định các đầu nối DTE phải là male (đực) và các đầu nối DCE phải là female (cái). Một loại đầu nối đặc biệt không được cho, nhưng thường dùng nhiều nhất là đầu nối mele DB-25P (hình 2-2). Ngồi ra, đối với nhiều hệ thống còn dùng loại 9 chân như loại DE-9P mele (hình 2-1). Hình 2-1 Hình 2-2 Được EIA đưa vào năm 1969 để truyền dữ liệu nối tiếp và tín hiệu điều khiển giữa Modem và thiết bị đầu cuối (hoặc máy tính) với tốc độ truyền tối đa là 20kbps ở cự ly khoảng 15m. đây là một dạng giao tiếp loại TTL + bộ kích đường dây không cân bằng. Việc mô tả chuẩn này được chia làm ba phần: Các đặc điểm kỹ thuật về điện, mô tả các đường dữ liệu điều khiển và sử dụng bộ kết nối chân ra. I.Đặc điểm kĩ thuật về điện của RS232: Sơ đồ chân của serial port (COM) IN NUMBERS FOR 9 PINS PIN NUMBERS FOR 25 PINS COMMON NAME RS232C NAME SIGNAL DIRECTION ON DCE 3 2 7 8 1 2 3 4 5 TxD RxD RTS CTS AA BA BB CA CB - IN OUT IN OUT 6 5 1 6 7 8 9 10 DSR GND CD CC AB CF - - OUT - OUT - - 11 12 13 14 15 SCF SCB SBA ĐB - OUT OUT IN OUT 4 16 17 18 19 20 SBB SCA CD OUT OUT - IN IN 9 21 22 23 24 25 CG CE CH/CI DA OUT OUT IN/OUT IN - Hình 1. Qui định về chân của RS232C Mức điện áp logic của RS-232C là khoảng điện áp giữa +15V và –15V. Các đường dữ liệu sử dụng mức logic âm: logic 1 có điện thế giữa –5V và-15V, logic 0 có điện thế giữa +5V và +15V. tuy nhiên các đường điền khiển (ngoại trừ đường TDATA và RDATA) sử dụng logic dương: gía trị TRUE = +5V đến +15V và FALSE =-5V đến –15. Ở chuẩn giao tiếp này, giữa ngõ ra bộ kích phát và ngõ vào bộ thu có mức nhiễu được giới hạn là 2V. Do vậy ngưỡng lớn nhất của ngõ vào là ±3V trái lại mức ± 5V là ngưỡng nhỏ nhất với ngõ ra. Ngõ ra bộ kích phát khi không tải có điện áp là ± 25V. Các đặc điểm về điện khác bao gồm RL (điện trở tải) được nhìn từ bộ kích phát có giá trị từ 3 ÷ 7k. CL (điện dung tải) được nhìn từ bộ kích phát không được vượt quá 2500pF. Để ngăn cản sự dao động quá mức, tốc độ thay đổi (Slew rate ) của điện áp không được vượt qúa 30V/µs. Đối với các đường điều khiển, thời gian chuyển của tín hiệu (từ TRUE sang FALSE, hoặc từ FALSE sang TRUE ) không được vượt qúa 1ms. Đối với các đường dữ liệu, thời gian chuyển (từ 1 sang 0 hoặc từ 0 sang 1) phải không vượt qúa 4% thời gian của 1 bit hoặc 1ms. II.Các đường dữ liệu và điều khiển của Serial Port (Com): TxD: Dữ liệu được truyền đi từ Modem trên mạng điện thoại. RxD: Dữ liệu được thu bởi Modem trên mạng điện thoại. Các đường báo thiết bị sẵn sàng: DSR : Để báo rằng Modem đã sẵn sàng. DTR : Để báo rằng thiết bị đầu cuối đã sẵn sàng Các đường bắt tay bán song công. RTS : Để báo rằng thiết bị đầu cuối yêu cầu phát dữ liệu. CTS : Modem đáp ứng nhu cầu cần gửi dữ liệu của thiết bị đầu cuối cho thiết bị đầu cuối có thể sử dụng kênh truyền dữ liệu. Các đường trạng thái sóng mang và tín hiệu điện thoại: CD : Modem báo cho thiết bị đầu cuối biết rằng đã nhận được một sóng mang hợp lệ từ mạng điện thoại. RI : Các Modem tự động trả lời báo rằng đã phát hiện chuông từ mạng điện thoạïi địa chỉ đầu tiên có thể tới được của cổng nối tiếp được gọi là địa chỉ cơ bản (Basic Address). Các địa chỉ ghi tiếp theo được đặt tới bằng việc cộng thêm số thanh ghi đã gặp của bộ UART vào địa chỉ cơ bản. 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 thường nằm trong khoảng –12 đến +12. Các bit dữ liệu được gửi đảo ngược lại. Mức điện áp đối với mức High nằm giữa –3V và –12V và mức Low nằm giữa +3V và +12V. Trên hình 2-4 mô tả một dòng dữ liệu điển hình của một byte dữ liệu trên cổng nối tiếp RS-232C. Ở trạng thái tĩnh trên đường dẫn có điện áp –12V. Một bit khởi động (Starbit) sẽ mở đầu việc truyền dữ liệu. Tiếp đó là các bit dữ liệu riêng lẻ sẽ đến, trong đó các bit giá trị thấp sẽ được gửi trước tiên. Còn số của các bit thay đổi giữa 5 và 8. Ở cuối của dòng dữ liệu còn có một bit dừng (Stopbit) để đặt trở lại trạng thái ngõ ra (-12V). D0 D1 D4 D5 D3 D5 D6 D5 D7 D5 Stopbit Starbit +12V LOW 1 1 0 1 0 0 1 0 -12V HIGHT T =1/fBaud 10 4µS 1.04ms Hình 2: Dòng dữ liệu trên cổng RS 232 với tốc độ 9.600 baud Địa chỉ cơ bản của cổng nối tiếp của máy tính PC có thể tóm tắt trong bảng các địa chỉ sau: COM 1 (cổng nối tiếp thứ nhất) Địa chỉ cơ bản = 3F8(Hex) COM 2 (cổng nối tiếp thứ hai) Địa chỉ cơ bản = 2F8(Hex) COM 3 (cổng nối tiếp thứ ba) Địa chỉ cơ bản = 3E8(Hex) COM 4 (cổng nối tiếp thứ tư) Địa chỉ cơ bản = 2E8(Hex) Cũng như ở cổng máy in, các đường dẫn tín hiệu riêng biệt cũng cho phép trao đổi qua các địa chỉ trong máy tính PC. Trong trường hợp này, người ta thường sử dụng những vi mạch có mức độ tích hợp cao để có thể hợp nhất nhiều chức năng trên một chip. Ở máy tính PC thường có một bộ phát/nhận không đồng bộ vạn năng (gọi tắt là UART: Universal Asnchronous Receiver/ Transmitter) để điều khiển sự trao đổi thông tin giữa máy tính và các thiết bị ngoại vi. Phổ biến nhất là vi mạch 8250 của hãng NSC hoặc các thế hệ tiếp theo. Thông thường với các yêu cầu ứng dụng tốc độ thấp người ta giao tiếp qua ngõ nối tiếp, nó giao tiếp theo tiêu chuẩn RS232C và dùng để giao tiếp giữa máy tính với Modem hoặc Mouse. Ngồi ra cũng có thể dùng giao tiếp với printer hay plotter nhưng không thông dụng lắm bởi tốc độ truyền quá chậm. Đối với máy AT cho ta hai ngõ giao tiếp COM1 và COM2. Trong một số card I/O ta có thể có đến 4 cổng COM. Để giao tiếp nối tiếp với 2 ngõ COM này Bus hệ thống của CPU (Data Bus và Address Bus) hãng IBM sử dụng hai Chip lập trình của Intel là 8250 UART (Universal Asynchronus Receiver Transmitter). Địa chỉ theo bộ nhớ của hai Chip này là 0040:0000 cho UART của ngõ COM1 và 0040:0002 cho UART của ngõ COM2 (Địa chỉ logic do hệ điều hành chỉ định) và địa chỉ theo Port để truy xuất khi sử dụng là 3F8-3FF cho COM1 và 2F8-2FF cho COM2. Dữ liệu truyền qua cho Port COM dưới dạng nối tiếp từng Bit một, đơn vị dữ liệu có thể là 5 Bit, 6 Bit hay 1 byte tùy theo sự cài đặt lúc khởi tạo Port COM. Ngồi ra để truyền dữ liệu qua Port COM còn cần những tham số sau: Bit mở đầu cho một đơn vị dữ liệu START Bit. STOP Bit (Bit kết thúc). Parity (Kiểm tra chẵn lẻ). Baud Rate (Tốc độ truyền) tạo thành một Frame (Khung truyền). Port COM là một thể khởi tạo bằng BIOS thông qua chức năng 0 của Interrupt 14, nạp vào thanh ghi DX1 chỉ số chọn kênh (COM1 = 0, COM2 = 1). Thanh ghi AL được nạp vào các tham số của việc truyền dữ liệu. A L D7 D6 D5 D4 D3 D2 D1 D0 Bit D0 D1 : Cho biết độ rộng của dữ liệu 0 0 : Dữ liệu có độ rộng 5 Bit 0 1 : Dữ liệu có độ rộng 6 Bit 1 0 : Dữ liệu có độ rộng 7 Bit 1 1 : Dữ liệu có độ rộng 8 Bit. Bit D2 : Cho biết số Stop Bit. 0 : Sử dụng một bit Stop 1 : Sử dụng hai bit Stop Bit D3 D4 : Các Bit parity (chẵn lẻ) 0 0 : Không kiểm tra tính Parity 1 1 : Không kiểm tra tính Parity 0 1 : Odd (lẻ) 1 0 : Even (chẵn) Bit D5D6D7 : Cho biết tốc độ truyền (Baud Rate) 0 0 0 : Tốc độ truyền 110bps (bit per second) 0 0 1 : Tốc độ truyền 150bps (bit per second) 0 1 0 : Tốc độ truyền 300bps (bit per second) 0 1 1 : Tốc độ truyền 600bps (bit per second) 1 0 0 : Tốc độ truyền 1200bps (bit per second) 1 0 1 : Tốc độ truyền 2400bps (bit per second) 1 1 0 : Tốc độ truyền 4800bps (bit per second) 1 1 1 : Tốc độ truyền 9600bps (bit per second) III.Modem rỗng của RS232C Mặc dù chuẩn RS_232C của EIA được dành riêng để áp dụng kết nối giữa Modem với thiết bị đầu cuối, nhưng một thuê bao của RS_232C cũng thường được sử dụng khi hai thiết bị đầu cuối được nối với nhau, hoặc một máy tính và một máy in mà không sử dụng các Modem. Trong những trường hợp như vậy, các đường TxD và RxD phải được đặt chéo nhau và các đường điều khiển cần thiết phải được đặt ở TRUE hoặc phải được tráo đổi thích hợp bên trong cáp kết nối. Sự nối lắp cáp của RS232C mà có sự tráo đổi đường dây được gọi là Modem rỗng (null Modem). Cáp như vậy thích hợp để nối trực tiếp 2 thiết bị DTE qua các port RS232C. Hai sơ đồ có thể kết nối lẫn nhau được trình bày trong hính 2-5 và hình 2-6 chú ý rằng trong trường hợp đơn giản nhất chỉ cần kết nối 4 dây lẫn nhau, trong thực tế 2 đường dây đất (SIG GND 0 và CHAS GND) thường được kết hợp lại, mặc dù điều này không được đề cập tới. IV.Các IC kích phát và kích thu của RS232C: Nhờ tính phổ biến của giao tiếp, người ta đã chế tạo các IC kích phát và thu. Hai vi mạch như vậy được Motorola sản xuất là IC kích phát MC 1488 có dạng vỏ vuông. Và MC 1489.Mỗi IC kích phát 1488 nhận một tín hiệu mức TTL và chuyển thành tín hiệu ở ngõ ra tương thích với mức điện áp của RS232C. IC 1489 phát hiện các mức vào của RS232C và chuyển chúng thành các ngõ ra có mức TTL. V.Minh hoạ thông tin nối tiếp bất đồng: Đối với các máy PC, các cổng liên lạc nối tiếp (serial port) còn được gọi là các cổng COM. Hồn tồn có thể sử dụng các cổng này để kết nối máy PC với các máy tính khác, với các Modem, các máy in, máy vẽ, các thiết bị điều khiển, mouse, mạng … Tất cả các máy tính PC có khả năng làm việc tối đa là 4 cổng nối tiếp khi sử dụng các card giao tiếp I/O chuẩn. Các cổng nối tiếp thường được thiết kế theo các qui định RS-232 theo các yêu cầu về điện và về tín hiệu. BIOS chỉ hỗ trợ các cổng nối tiếp RS-232C. Còn các chuẩn khác như: RS-422, BiSync, SDLC, IEEE-488 (GPIB),… cần phải có các trình điều khiển thiết bị bổ sung để hỗ trợ. Tốc độ tối độ của cổng nối tiếp tùy thuộc vào bộ phát tốc độ Baud trong card giao tiếp cổng nối tiếp, phần mềm BIOS, và hệ thống có thể thực hiện chương trình BIOS nối tiếp nhanh đến mức nào. Ngồi ra, nếu hệ thống đang xử lý chương trình khác có độ ưu tiên cao hơn thì tốc độ tin cậy có thể bị suy giảm đáng kể. Hoạt động của cổng nối tiếp chủ yếu cũng được xử lý bởi 1 chip UART. Các thiết kế ban đầu đã sử dụng một chip NS-8250. Các thiết bị sau này chuyển sang một phiên bản CMOS, chip 1650, có chức năng hoạt động giống như 8250. Một số thiết bị mới sử dụng chip 16550 hay các biến thể khác nhằm bổ sung thêm việc đệm dữ liệu để giảm bớt gánh nặng cho CPU. Một phần của BIOS hệ thống (ngắt 14 h) cung cấp các dịch vụ để liên lạc với các card giao tiếp nối tiếp. Giống như các cổng song song, POST (Power on Self Test- chương trình của BIOS tự kiểm tra cấu hình hệ thống khi bật máy) kiểm tra xem liệu một cổng nối tiếp có được gắn vào hệ thống không, và ghi lại các địa chỉ I/O của các cổng hoạt động trong vùng dữ liệu của BIOS. Tất cả các hệ thống đến 4 cổng nối tiếp, BIOS không hỗ trợ các cổng bổ sung thêm khác. Để truy suất phần cứng của một cổng nối tiếp, cần đọc một trong 4 từ (word) trong vùng dữ liệu BIOS chứa địa chỉ I/O cơ sở đối với 4 cổng nối tiếp có thể có. Ví dụ: Để truy suất cổng nối tiếp số 2, trước tiên phải đọc địa chỉ cổng I/O cơ sở từ vùng dữ liệu BIOS. Điều này có nghĩa là một cởng nối tiếp không có địa chỉ cổng I/O cố định. 1. Lưạ chọn cổng COM: Mỗi cổng nối tiếp sử dụng 8 byte của bộ nhớ máy PC và một ngắt phần cứng đặc biệt. Việc sử dụng các địa chỉ bộ nhớ và ngăùt phần cứng này là điều quan trọng đối với người lập các chương trình liên lạc và các chương trình điều khiển thiết bị đối với các thiết bị nối tiếp. Bảng sau mô tả các địa chỉ bộ nhớ và các ngắt phần cứng đối với 4 cổng nối tiếp chuẩn cho các máy tính tương thích với máy tính PC. Thông tin quan trọng nhất ở đây là địa chỉ cơ sở, là địa chỉ bộ nhớ đầu tiên trong mỗi cổng COM (vùng đệm phát/thu – Transmit/ Receive Buffer) địa chỉ của đường yêu cầu ngắt (IRQ) đối với mỗi cổng. Một thiết bị nối tiếp chỉ có thể sử dụng một địa chỉ cổng COM. Khi cài đặt một Modem nội trong máy PC, hay bất kỳ thiết bị nào khác sử dụng cổng nối tiếp cho giao diện của nó, trước tiên phải đảm bảo rằng đã xác lập nó đối với một cổng COM (bao gồm địa chỉ và số IRQ). COM1 COM2 COM3 COM4 Mô tả IRQ4 3F8 3F9 3FA 3FB 3FC 3FD 3FE IRQ3 2F8 2F9 2FA 2FB 2FC 2FD 2FE IRQ4 3E8 3E9 3EA 3EB 3EC 3ED 3EE IRQ3 2E8 2E9 2EA 2EB 2EC 2ED 2EE Interrupt Request Line Transmit/Receive Buffer và LSB of the Divisor Latch Interrupt Enable Register và MSB of the Divisor Latch Interrupt Identification Registers Line Control Register Modem Control Register Line Status Register Modem Status Register 2. Hoạt động của cổng nối tiếp: Sự khởi động của BIOS. Sau khi bật máy (hay Reset máy), chương trình POST kiểm tra xem liệu có bất kỳ cổng nối tiếp nào được cài đặt hay không. POST khảo sát nhóm cổng I/O: 3F8 ¸3FEh. Để phát hiện một cổng hoạt động, thanh ghi IIR (Interrupt Identification Register) được đọc từ cổng 3FAh hay 2FAh. Nếu tất cả các bit từ 3¸7 của thanh ghi IIR đều là 0, thì POST xem như cổng nối tiếp có hoạt động. Một khi đã xác định được nhóm cổng I/O nối tiếp có hoạt động, địa chỉ cổng I/O cơ sở được lưu trữ trong vị trí BIOS RAM cổng nối tiếp chưa sử dụng thấp nhất. Có 4 từ được dành trong RAM bắt đầu tại địa chỉ 40:0h để chứa địa chỉ I/O của cổng nối tiếp có hoạt động. Nhiều POST của các hãng cung cấp máy sẽ không bao giờ kiểm tra các cổng COM3 và COM4, vì IPM không định nghĩa một địa chỉ cổng chuẩn cho các cổng này. Nói chung, hầu hết các hệ thống chỉ kiểm tra có 2 cổng. Tuy nhiên, các hệ thống cùng họ mới hơn thường kiểm tra 4 địa chỉ cổng có thể có. Các hệ thống MCA kiểm tra 8 địa chỉ cổng nối tiếp khác nhau có thể có trong một lần thử để tìm ra 4 cổng nối tiếp có hoạt động. Thứ tự kiểm tra Hầu hết hệ thống Một số hệ thống AT và EISA Các hệ thống MCA Thứ 1 Thứ 2 Thứ 3 Thứ 4 Thứ 5 Thứ 6 Thứ 7 Thứ 8 3F8 2F8 Không Không Không Không Không Không 3F8 2F8 Không Không Không Không Không Không 3F8 2F8 3220h 3228h 4220h 4228h 5220h 5228h Bảng trên mô tả thứ tự theo đó các BIOS sẽ tìm kiếm các cổng hoạt động. Chỉ cổng I/O cơ sở đối với mỗi nhóm được hiển thị trong bảng này. Trên hệ thống MCA, một khi 4 cổng đã được tìm thấy, các cổng khác không được kiểm tra nữa. Khi hồn tất các công việc kiểm tra POST nối tiếp, các địa chỉ cổng nối tiếp được cất giữ. Điều này thường tạo ra một trong 4 trường hợp được mô tả trong bảng sau: Địa chỉ RAM Cổng nối tiếp Trường hợp 1 Địa chỉ I/O Trường hợp 2 Địa chỉ I/O Trường hợp 3 Địa chỉ I/O Trường hợp 4 Địa chỉ I/O 40:0h 40:2h 40:4h 40:6h 1 2 3 4 3F8 2F8 0 0 3F8 0 0 0 2F8 0 0 0 0 0 0 0 Các kết quả POST có thể có về việc phát hiện cổng nối tiếp. Trường hợp 1 : Mô tả POST phát hiện 2 cổng nối tiếp. Trường hợp 2 và 3 : Cho thấy chỉ có một cổng nối tiếp được phát hiện. Trường hợp 4 : Cho thấy không phát hiện được cổng nối tiếp nào. Các phép thử này không khẳng định liệu có một thiết bị nối tiếp thực sự được nối với cổng I/O hay không. Phép thử chỉ kiểm tra xem liệu phần cứng cổng nối tiếp có tồn tại hay không tại một địa chỉ I/O cụ thể. Tổng số cổng nối tiếp hoạt động được phát hiện thấy (0 ¸ 4) được cất giữ trong byte thiết bị tại địa chỉ BIOS RAM 40:10h từ các bit 9 ¸ 11. Quá trình phát nối tiếp Để phát một byte trên đường dây kết nối nối tiếp, cổng được giả định là đã được khởi sự với tốc độ baud và các phần chọn khung (Frame) nối tiếp thích hợp. Chúng ta cũng giả định rằng các byte sẽ được phát đi trên cổng nối tiếp số 1 (COM1). Trước tiên, xác định địa chỉ cơ sở cổng I/O bằng cách đọc một từ (Word) từ vùng dữ lệu BIOS tại 40:OH đối với cổng nối tiếp COM1. Nếu trị = 0: Không có cổng nối tiếp hoạt động nào được gắn ở đây và dĩ nhiên không có dữ liệu nào được gửi đi. Hai đường điều khiển MODEM là DTR (DATA Terminal Ready) và RTS (Request to Send) được xác lập lên mức cao (DTR = 1, RTS = 1). DTR thông báo cho thiết bị kết nối biết rằng máy tính đang hoạt động và sẵn sàng để liên lạc. RTS báo cho thiết bị kết nối biết rằng máy tính muốn gửi dữ liệu. Hai đường này được kích khởi bằng cách ghi trị 3 thanh ghi MCR (MODEM control Regester) của UART. Kế đó, kiểm tra hai đường trạng thái CTS (Clear To Send). Những đường này nằm trong các bit 4 và 5 của thanh ghi MSR (MODEM Status Regester). DSR báo cho máy tính biết thiết bị kết nối đã được bật lên và sẵn sàng. CTS báo cho máy tính biết rằng thiết bị kết nối đã sẵn sàng đối với dữ liệu. Các đường trạng thái này nên được kiểm tra trong 2ms hay cho đến khi cả hai đều chuyển sang mức cao. Khi cả hai đường này đều ở mức cao, thiết bị được kết nối với cổng nối tiếp đã báo hiệu cho biết nó đã sẵn sàng cho một byte. Một lỗi đáo hạn (timeout error) được báo hiệu bởi phần mềm nếu một trong hai đường dẫn còn ở mức thấp lâu hơn khoảng 2ms. Đến đây thiết bị kết nối đã sẵn sàng tiếp nhận một byte, UART phải được kiểm tra xem liệu thanh ghi chứa dữ liệu phát THR (Transmit Holding Regester) đã sẵn sàng có một byte chưa. Thanh ghi LSR (Line Status Regester), bit 5, được xác lập lên mức cao khi thanh ghi chứa dữ liệu này trống rỗng và sẵn sàng cho một byte. Một lần nữa, giống ở bước 3 nếu thanh ghi THR không thể trở nên hữu dụng trong 2ms, thì phần mềm sẽ báo một lỗi đáo hạn, và bỏ qua việc phát đi. Nếu cho đến bây giờ chưa xảy ra việc đáo hạn, byte có thể được gửi đến thanh ghi chứa dữ liệu phát của UART. Sau đó, UART phát byte từ thanh ghi chứa dữ liệu phát vào thanh ghi dịch TSR (từ đây các bit dữ liệu được dịch ra và gửi đi), và tạo dạng khung nối tiếp. Quá trình nhạân nối tiếp. Để nhận 1 byte từ đường dây kết nối nối tiếp, cổng được giả định như trên (cho cổng COM3): Trước tiên, xác định địa chỉ cơ sở cổng I/O bằng cách đọc một từ (Word) từ vùng dữ liệu BIOS tại 40:4H đối với cổng nối tiếp COM3. Nếu trị = 0: Không có cổng nối tiếp hoạt động nào được gắn ở đây và dĩ nhiên không có dữ liệu nào được gửi đi. Hai đường điều khiển MODEM là DTR (DATA Terminal Ready) và RTS (Request to Send) được xác lập lên mức cao (DTR = 1, RTS = 1). Điều này thông báo cho thiết bị kết nối biết rằng máy tính đang hoạt động và sẵn sàng liên lạc. Điều này được thực hiện bằng cách ghi trị 1 các thanh ghi MMC của UART. Kế đó kiểm tra tín hiệu trên đường trạng thái DSR. Tín hiệu này xuất hiện trong bit 5 của thanh ghi MSR. DSR báo cho máy tính biết rằng thiết bị kết nối đã được bật lên và sẵn sàng. DSR sẽ được kiểm tra cho đến khi nó lên mức cao hay cho đến khi hết 2ms trước khi một lỗi đáo hạn được báo hiệu. Kế đó, vùng đêïm nhận được kiểm tra để xem dữ liệu đã nhận được dữ liệu nào chưa. Bit 0 của thanh ghi LSR chứa một cờ hiệu báo dữ liệu đã sẵn sàng. Nó được xét lên 1 khi vùng đệm có dữ liệu. Nếu cờ báo dữ liệu sẵn sàng không được xét sau 2ms, thì phần mềm sẽ khai báo một lỗi đáo hạn, và tác vụ bị bỏ qua. Nếu cho đến bây giờ chưa xảy ra việc đáo hạn, byte có thể được đọc từ vùng đệm nhận của UART. Trong chế độ bất đồng bộ, 8251 A dịch số liệu trên dây RxD từ bit một. Sau mỗi bit, thanh ghi thu được so sánh với thanh ghi chứa ký tự SYN. Nếu hai thanh ghi chưa bằng nhau thì 8251 A dịch bit khác và tiếp tục so sánh cho đến khi hai thanh ghi bằng nhau. 8251 A kết thúc chế độ bất đồng bộ và đưa tín hiệu SYNDET (Synch Detect) để báo đồng bộ đã hồn tất. Nếu USART được nạp từ điều khiển để làm việc với hai ký tự SYNC, quá trình bất đồng bộ cũng như trên. Nhưng hai ký tự kế tiếp nhau sẽ được so sánh với hai ký tự SYNC trước khi đạt được sự đồng bộ. Ở chế độ bất đồng bộ bit chẵn/lẻ sẽ không phải kiểm tra. USART ở chế độ đuổi bắt đồng bộ với hai điều kiện: USART được khởi động ở chế độ đồng bộ. USART đã nhận lệnh ở chế độ bất đồng bộ. Khối phát Khối này nhận số liệu song song từ đơn vị trung tâm, chèn thêm các thông tin rồi chuyển sang nối tiếp và gửi ra thân TxD (Transmiter DATA). Ở chế độ bất đồng bộ, khối phát chèn thêm bit START, bit kiểm tra chẵn lẻ paraty và một hay hai bit STOP. Trong chế độ đồng bộ, khối phát chèn thêm các ký tự SYNC. Những ký tự đồng bộ này phải được phát trước khi bản tin bắt đầu. Nếu trong khi phát có khoảng trống giữa hai ký tự thì USART tự động chèn các ký tự đồng bộ vào. Trong cả hai chế độ đồng bộ và bất đồng bộ, quá trình phát chỉ được cho phép khi tín hiệu TxE (Transmiter Enable) và tín hiệu CTS, ở trạng thái tích cực. Nếu USART được đặt ở chế độ đồng bộ từ ngồi, chân SYNDET sẽ là cửa vào và nhận tín hiệu để đồng bộ khi thu. Khối phát có thể gửi tín hiệu cắt (BREAK). Đó là một chu kỳ liên tục các bit SPACE trên đường dây liên tục và đưọc dùng ở chế độ truyền song công để cắt quá trình gửi thông tin ở đầu cuối. USART sẽ gửi tín hiệu cắt liên tục nếu bit D3 của byte lệnh được thiết lập Khối điều khiển Modem Khối này tạo và nhận tín hiệu RTS (Request to Send). Ngồi ra, còn có các tín hiệu ra DTR (Data Terminel Ready) và tín hiệu vào DSR (Data Set Ready). Đó là những tín hiệu vạn năng. Tín hiệu DTR điều khiển bởi bit D2 bởi byte lệnh. Tín hiệu DSR thể hiện ở bit D7 của thanh ghi trạng thái. USART không định nghĩa các tín hiệu này một cách cứng ngắc. Thông thường: Tín hiệu DTR qua Modem để chỉ rằng thiết bị đầu cuối sẵn sàng truyền. DSR là tín hiệu từ Modem để chỉ trạng thái sẵn sàng liên lạc. Khối điều khiển vào/ra Logic điều khiển đọc/ghi giải mã các tín hiệu điều khiển từ Bus điều khiển của đơn vị trung tâm thành những tín hiệu đều khiển các cổng dẫn số liệu đến Bus nội của USART. Bảng sau cho biết sự liên quan giữ các tín hiệu CE, C/D\ RD\ CE C/D\ RD\ WR\ Ý Nghĩa 0 0 0 0 1 0 1 0 1 x 0 0 1 1 x 1 1 0 0 x CPU đọc số liệu từ USART CPU đọc trạng thái từ USART CPU ghi số liệu vào USART CPU ghi lệnh vào USART Bus của USART ở trạng thái trở kháng cao Khối thu Khối thu nhận dữ liệu nối tiếp ở chân RxD và chuyển thành số liệu song song (P/PC). Trước khi bộ thu làm việc, bit D2 trong Command world của byte lệnh phải ở trạng thái cho phép. Nếu bit này không được lập, bộ thu sẽ không tạo ra tín hiệu RxRDI. Trong chế độ bất đồng bộ, 8251 A kiểm tra mức điện áp của đầu vào RxD. Khi có thay đổi mức logic từ 1 xuống 0, 8251 A khởi động bộ đếm thời gian trong khối thu khi đặt thời gian ½ bit, 8251 A kích mẫu đầu vào RxD. Tại thời điểm này có 2 trường hợp xảy ra: Nếu đầu vào RxD có mức logic cao thì sự thay đổi từ 1 xuống 0 ở RxD trước lúc kích mẫu là do nhiễu hay khối thu đã khởi động bộ đếm trong khi nhận bit số liệu. Như vậy có sai 8251 bỏ lệnh đang thực hiện và chuẩn bị ký tự mới. Nếu đầu vào RxD có mức logic thấp trong thời điểm kích mẫu. 8251 tiếp tục kích mẫu để nhận giá trị của các bit số liệu, bit kiểm tra chẵn lẻ và các bit dừng. Sau đó, 8251 tách các bit khung và chuyển số liệu qua Bus trong đến thanh ghi đệm số liệu thu. Tín hiệu RxRDI được tạo ra để báo cho trung tâm biết số liệu thu đã sẵn sàng. Trong chế độ đồng bộ, khối thu kích mẫu các bit số liệu của ký tự rồi đưa đến đệm số liệu thu và lập cờ RxRDI. Vì bộ thu nhóm một số bit thành ký tự nên được xác định bit số liệu đầu tiên là cần thiết. Để đồng bộ giữa bộ thu và bộ phát, nếu có trống trong dãy ký tự thì 8251 tự động chèn ký tự SYNC vào. Quá trình đồng bộ được thực hiện trong quá trình bất đồng bộ. Khối đệm vào ra Khối đệm vào ra chứa: Thanh ghi trạng thái, thanh ghi số liệu thu (thanh ghi đệm số liệu thu), thanh ghi số liệu phát và lệnh (thanh ghi đệm số liệu phát và lệnh). Như vậy, chỉ có một thanh ghi chứa thông tin chuyển từ đơn vị trung tâm vào USART. Thông tin này bao gồm số liệu và lệnh, do vậy phải có sự phân chia thời gian giữa lệnh và số liệu. Lệnh phải được gửi trước số liệu. Trước khi gửi số liệu vào USART. Đơn vị trung tâm phải kiểm tra tín hiệu sẵn sàng phát TxRDI. Nếu gửi thông tin khi TxRDI ở trạng thái chưa sẵn sàng số liệu chuyển đi có thể sai. CHƯơng 3 . Lập trình điều khiển qua cổng com VIẾT BẰNG v b6.0 I.Tại sao chọn ngôn ngữ lập trình Visual Basic 6.0: Do quá trình thiết kế thuần chất rất ít kiến thức về vi xử lý nên em quyết định chọn ngôn ngữ thực hiện là VB 6.0 với thư viện Port.dll thiết kế riêng dùng giao tiếp qua COM theo tiêu chuẩn RS 232. Đồng thời quá trình điều khiển qua mạng từ VB có thể dễ dàng sử dụng kĩ thuật lập trình Winsock với thư viện liên kết động là winsock32.dll sử dụng giao thức TCP / IP phổ biến hiện nay để điều khiển. II.Thư viện liên kết động port.dll: Thư viện liên kết động port.dll được viết bằng ngôn ngữ delphi với tên quy ước là PORT.DLL để chỉ rõ đối tượng ứng dụng là các cổng. Tập tin port.dll thực hiện chức năng mở rông ngôn ngữ để dùng chung cho các ngôn ngữ khác nhau. Các chức năng được thiết kế sẵn trong port.dll : Mở các giao diện. Truyền dữ liệu theo cách nối tiếp. Tiếp cận đến những đường dẫn ở giao diện. Nhập vào và xuất ra ở các cổng. Phát khoảng thời gian để có thời lượng chính xác đến từng mili giây. Phát khỏang thời gian để có thời lượng quét đến từng micro giây. Truy nhập tới card âm thanh. Truy nhập qua cổng trò chơi. III. Gọi hàm trong thư viện liên kết động port.dll từ Visual Basic 6.0: Phần lệnh được gọi khi chương trình chạy trong môi trường windows: Declare Function OPENCOM Lib "Port" (ByVal A$) As Integer Declare Sub CLOSECOM Lib "Port" () Declare Sub SENDBYTE Lib "Port" (ByVal b%) Declare Function READBYTE Lib "Port" () As Integer Declare Sub DTR Lib "Port" (ByVal b%) Declare Sub RTS Lib "Port" (ByVal b%) Declare Sub TXD Lib "Port" (ByVal b%) Declare Function CTS Lib "Port" () As Integer Declare Function DSR Lib "Port" () As Integer Declare Function RI Lib "Port" () As Integer Declare Function DCD Lib "Port" () As Integer Declare Sub DELAY Lib "Port" (ByVal b%) Declare Sub TIMEINIT Lib "Port" () Declare Sub TIMEINITUS Lib "Port" () Declare Function TIMEREAD Lib "Port" () As Long Declare Function TIMEREADUS Lib "Port" () As Long Declare Sub DELAYUS Lib "Port" (ByVal l As Long) Declare Sub REALTIME Lib "Port" (ByVal i As Boolean) PHẦn 3 CƠ Sở Lý Thuyết về MẠNG và Giao thức TCP/IP Chương I: Các Khái Niệm Cơ Bản Về Hệ Thống Mạng I. Mô hình mạng, mô hình OSI, mô hình TCP: 1 .Mô Hình Mạng: Trước tiên chúng ta cần tìm hiểu vấn đề: tại sao có sự phân tầng của các protocol, ích lợi của việc phân tầng. Để có thể chuyển một thông điệp (message) từ máy này sang máy khác (các máy phải trong cùng hệ thống mạng) nó phải trải qua nhiều giai đoạn khác nhau, các giai đoạn này rất phức tạp như là: chia nhỏ thông điệp (message) ra thành nhiều gói nhỏ (package), mã hóa các gói này ra dạng bit, các bit này được chuyển qua đường truyền vật lý đến máy nhận. Sau đó quá trình nhận sẽ thực hiện ngược lại như bên gởi, nếu quá trình lắp ghép gặp phải lỗi thì phải thông báo để truyền lại vv… Các giai đọan này rất phức tạp đòi hỏi người lập trình ứng dụng phải hiểu rõ tất cả các cơ chế hoạt động bên dưới của hệ thống. Vì vậy người ta đưa ra ý tưởng phân tầng, mỗi tầng sẽ chịu trách nhiệm cung cấp dịch vụ cho tầng bên trên và đồng thời nó cũng sử dụng dịch vụ của tầng bên dưới cung cấp cho nó. Như thế một người làm việc ở tầng nào họ chỉ quan tâm đến các tầng có quan hệ trực tiếp với mình. Layer N Layer N Layer N - 1 Layer N - 1 Host A Host B Protocol layer N Protocol layer N - 1 Layer 2 Layer 2 Layer 1 Layer 1 Protocol layer 2 Protocol layer 1 Hình 9 Trong mô hình này mỗi lớp n + 1 sử dụng dịch vụ của lớp n, cả hai host A và host B phải có cùng chồng giao thức(protocol stack). 2. Mô hình OSI: Application Layer Presentation Layer Datalink Layer Session Layer Transport Layer Network Layer Physical Layer Application Layer Presentation Layer Datalink Layer Session Layer Transport Layer Network Layer Physical Layer Host A Host B Hình 10: Mô hình OSI Ý nghĩa các tầng : Physical Layer Ở lớp này thông tin được truyền dưới dạng bit thông qua kênh truyền. Và nhận các bit chuyển lên cho lớp datalink. Datalink Layer Lớp này có nhiệm vụ chia nhỏ dữ liệu từ lớp network đưa xuống thành các frame, mỗi frame có dung lượng từ vài trăm byte đến vài ngàn byte. Các frame được truyền đi bằng cách chuyển xuống cho lớp physical. Nhiệm vụ thứ hai là tổ chức nhận các frame sao cho đúng thứ tự, cung cấp khả năng truyền không lỗi trên đường truyền vật lý cho các lớp cao hơn. Vấn đề đặt ra ở đây là phải xác định cơ chế để xác nhận một frame có truyền thành công hay không (Acknowladge Framje), xử lý nhiểu (truyền lại). Network layer Lớp này định hướng cho gói dữ liệu (package) đi từ máy gởi đến máy nhận. Phải giải quyết vấn đề định tuyến (routing), vấn đề địa chỉ (addressing), lượng giá chi phí (accouting), và giải quyết đụng độ (collision). Transport layer Lớp này có nhiệm vụ chia nhỏ gói dữ liệu được đưa xuống từ lớp bên trên thành những đơn vị nhỏ hơn để truyền qua mạng, với sự đảm bảo là dữ liệu đến nơi một cách chính xác. Lớp này cung cấp cho các lớp bên trên phương tiện để truyền các message độc lập với các lớp bên dưới. Session player Session layer điều khiển quá trình giao tiếp giữa hai tiến trình trên hai máy, tạo và kết thúc kết nối giữa các quá trình trên các máy khác nhau. Presentation layer Lớp này biểu diễn những thông tin được truyền (được hiểu là cú pháp và ngữ nghĩa), nó đồng nhất các thông tin giữa các các hệ thống khác nhau. Ngồi ra có còn cung cấp dịch vụ thao tác trên dữ liệu như nén, mã hóa(compression & cryptography). Application layer Đây là lớp cung vấp dịch vụ cho người sử dụng (end user), ứng với mỗi dịch vụ (còn được gọi là ứng dụng) có 1 protocol khác nhau. Ví dụ: FTP(truyền nhận file), HTTP, E-mai, v.v.. 3. Mô hìnhTCP/IP : Chúng ta đã khảo sát mô hình OSI 7 lớp, mô hình này chỉ là mô hình tham khảo, việc áp dụng mô hình này vào thực tế là khó có thể thực hiện (hiệu suất kém vì dữ liệu khi truyền từ máy này sang máy kia trong mạng thì phải trải qua tất cả các lớp của mô hình OSI ở cả 2 máy), nó chỉ là tiêu chuẩn để các nhà phát triển dựa theo đó mà phát triển các mô hình khác tối ưu hơn. Có rất nhiều các mô hình khác nhau, hiện nay mô hình TCP/IP được sử dụng phổ biến nhất. Application Presentation Physical Datalink Network Sesstion Transport OSI 7 6 3 4 2 5 1 Application Transport Internet Host-to-network TCP/IP Hình 11: Mô hình TCP/IP Bộ protocol TCP/IP bao gồm: TCP(Transmission Control Protocol): đây là loại protocol có cầu nối (connection oriented) cung cấp khả năng truyền dòng dữ liệu không lỗi, 2 chiều (full duplex)cho các quá trình cho người sử dụng. UDP(User Datagram Protocol): loại protocol không thiết lập cầu nối (connectionless) cho các quá trình của user. Không giống như TCP, nó không đảm bảo dữ liệu khi truyền đi có đến nơi chính xác hay không. ICMP (Internet Control Message Protocol): protocol xử lý lỗi và điều khiển thông tin giữa các gateway và các host. IP(Internet Protocol): IP là protocol cung cấp dịch vụ phân phối các package cho TCP, UDP và ICMP. ARP (Address Resolution Protocol): Protocol ánh xạ 1 địa chỉ internet thành địa chỉ phần cứng(MAC address). RAPR(Address Resolution Protocol): Protocol ánh xạ một địa chỉ phần cứng thành địa chỉ IP. Mô hình TCP/IP được phân ra thành 4 lớp, trong đó 2 lớp dưới (1 và 2)của mô hình OSI được gộp lại thành 1 lớp gọi là Host-to-network; 2 lớp Session và Presentation của OSI không có trong mô hình giao thức TCP/IP. Tương tự như mô hình OSI, trong mô hình TCP/IP, dữ liệu từ 1 máy cũng đi từ lớp Application xuống Transport, rồi xuống tiếp lớp Internet, sau cùng đi tới lớp Host-to-network, thông qua đường dây vật lý đến 1 máy khác trong mạng : dữ liệu ở đây sẽ đi ngược từ dưới lên. Cũng giống như mô hình OSI, ở đây, giữa các lớp của 2 máy giao tiếp với nhau thông qua một protocol; giữa lớp này với lớp khác trong cùng một máy gọi là Interface. Lớp bên dưới cung cấp các dịch vụ cho lớp trên. Host-to-network Kết nối host với network sao cho chúng có thể chuyển các message tới các địa chỉ đích, lớp này gần giống với lớp physical trong mô hình OSI. Internet layer Đây là lớp thực hiện một hệ thống mạng có khả năng chuyển mạch các gói dữ liệu dựa trên một lớp mạng Connectionless(không cầu nối) hay Connection – Oriented (có cầu nối) tùy vào loại dịch vụ mà người ta dùng một trong 2 cách trên. Nhiệm vụ của lớp này là đảm bảo cho các host chuyển các package vào bất kì hệ thống mạng nào và chuyển chúng đến đích mà không phụ thuộc vào vị trí của đích đến. Trong mô hình TCP/IP người ta đưa ra khái niệm địa chỉ IP để định địa chỉ cho các host trên mạng(xem phần địa chỉ IP). Transport layer Lớp transport được thiết kế để cho các phần tử ngang cấp ở lớp host có thể đối thoại với nhau. Hai protocol chính là : TCP: là một Connection Oriented Protocol, cho phép chuyển một chuỗi byte từ host này sang host kia mà không có lỗi (dùng cơ chế phân chia dữ liệu ra thành các gói nhỏ(package) ở máy nguồn và gom lại ở máy đích). UDP: là một connectionless Protocol được xây dựng cho các ứng dụng không muốn sử dụng cách truyền theo một thứ tự của TCP mà muốn tự mình thực hiện điều đó (tùy theo mục đích của ứng dụng mà người ta dùng UDP hay không). Khái niệm về port: Một máy có thể liên lạc với một máy khác trong mạng qua địa chỉ IP. Tuy nhiên, với địa chỉ như vậy không đủ cho một process của máy liên lạc với một process của máy khác. Và vì vậy TCP/UDP đã dùng số nguyên (16 bit) để đặt tả nên số hiệu port. Như vậy, để hai process của hai máy bất kỳ trong mạng có thể giao tiếp được với nhau thì mỗi frame ở cấp Network có IP gồm : + Protocol (TCP/UDP). + Địa chỉ IP của máy gởi. + Số hiệu port của máy gởi. + Địa chỉ IP của máy đích + Số hiệu port của process ở máy đích. Ví dụ:{TCP,127.28.11.83,6000,127.28.11.241,7000}; Application layer(process layer) Chứa các dịch vụ như trong các lớp Session, Presentaion, Application của mô hình OSI, ví dụ: Telnet(Terminel Acesss) cho phép user thâm nhập vào một host ở xa và làm việc ở đó như đang làm việc trên máy local(cục bộ), FPT (File Transfer Protocol) là công cụ giúp cho chúng ta chuyển các file cho nhau, SMTP(Simple Mail Transfer Protocol) cũng là một dạng của FTP nhưng nó đặc điểm riêng, DNS(Domain Name Service) dùng để ánh xạ tên host thành địa chỉ IP và ngược lại. 2. Giao Thức TCP và UDP 2.1 Giao Thức UDP UDP là phương thức truyền dữ liệu theo phương pháp không hướng kết nối (connectionless). Khi truyền nó không cần thiết lập cầu nối giữa máy gởi và máy nhận, sử dụng cơ chế UDP người ta giả định rằng ở máy nhận luôn sẳn sàn đón nhận dữ liệu gởi đến. Nếu dữ liệu gởi đến bị lỗi trong quá trình truyền hay không nhận được đầy đủ, UDP cũng không có thông tin phản hồi lại cho máy gởi. Tuy nhiên UDP không đòi hòi nhiều tài nguyên của hệ thống và thiết kế chương trình ứng dụng đơn giản. UDP thường được dùng trong những ứng dụng không đòi hỏi độ chính xác cao ví dụ: dịch vụ thông báo giờ, tỉ giá, hay dịch vụ nhắn tin và dùng cho việc truyền tải những file có kích thước lớn như hình ảnh, âm thanh, vv. Chính vì những ưu điểm đó những nhà lập trình vẫn sử dụng UDP cho ứng dụng của họ, khi đó người ta dùng nhiều cách để xác nhận cho gói dữ liệu đi đến đích chính xác và trọn vẹn. Một ví dụ minh họa cơ chế xác nhận: Client gởi một gói dữ liệu(package) cho server và chờ đợi xác nhận từ server. Server nhận được gói dữ liệu sẽ trả về thông điệp phản hồi cho client xác nhận gói dữ liệu đã nhận được. Nếu client chờ đợi hơn một khoảng thời gian cho phép(time out) mà không nhận được phản hồi từ server thì nó cho là gói dữ liệu không đi đến đích và truyển lại, nếu sau nhiều lần không nhận được phản hồi từ server nó giả định rằng mối kết nối bị đứt hay server bị hỏng hóc. Start App Server Create datagram socket Create datagram socket Send data to server Client data Receive data Send data to client Server data Receive data Exit? Close Socket yes Exit? Close Socket yes Exit App no no Mô Hình Kết Nối Theo Giao Thức UDP Client Hình 12: Mô hình kết nối theo giao thức UDP 4. Giao thức TCP: TCP cung cấp khả năng truyền không lỗi từng gói dữ liệu gởi đi đến máy nhận theo giao thức giao thức này phải có trách nhiệm thông báo và kiểm tra xem dữ liệu có đến đủ hay chưa, có lỗi hay không có lỗi. Trước khi chuyển dữ liệu bao giờ cũng có việc thiết lập kênh truyền giữa hay máy. Do phải duy trì mối kết nối và kiểm tra dữ liệu nên sử dụng TCP phải đòi hỏi chiếm thêm một số tài nguyên và cách lập trình cho giao thức này hơi khó (phải thực hiện các bước kiểm tra dữ liệu theo yêu cầu của TCP). Truyền dữ liệu theo giao thức TCP thường áp dụng cho các dịch vụ như truyền tập tin, các dịch vụ trực tuyến trên Internet đòi hỏi có độ chính xác cao. Start App Server Client Create the socket Create the server socket Accept New Connection Acquire Stream and Conduct Conversation Acquire Stream and Conduct Conversation Close Stream and Socket Close Stream and Socket Start App Continue? yes no Disconnect Connect attempt Exchange data Mô Hình Kết Nối Theo Giao Thức TCP Hình 13: Mô hình kết nối theo giao thức TCP 5. Địa Chỉ IP: a. Giới thiệu địa chỉ IP: Tất cả các máy trong hệ thống mạng(LAN, WAN, Internet) đều có ít nhất 2 địa chỉ: địa chỉ vật lý(Mac Address) và địa chỉ Internet. Địa chỉ vật lý còn được gọi là Ethernet address là một dãy bit gồm 48 bit được gán bởi các nhà sản xuất, địa chỉ này được biểu diễn dưới dạng số thập lục phân (hecxa). Ví dụ : 3A : 9D : 10 : 60 : 7C : 1F Như thế mỗi card mạng(interface card) có một địa chỉ duy nhất địa chỉ này được quy định từ nhà sản xuất card mạng, tuy nhiên địa chỉ vật lý không thể hiện khả năng xác định vị trí của hệ thống trên mạng. Để giải quyết vấn đề đó người ta đưa ra địa chỉ IP(IP Address). Địa chỉ IP phải là duy nhất trên mạng và có một dạng thống nhất, mỗi địa chỉ IP gồm có 4 byte và có 2 thành phần: địa chỉ đường mạng (Network ID) và địa chỉ host(Host ID). Network ID Host ID 32 bits(4 byte) Địa chỉ IP Class ID Nếu máy tính được nối mạng với Internet thì địa chỉ IP phải do NIC(Network Information Center) cấp. 3.2 Phân Loại Địa Chỉ IP Có tất cả 5 lớp địa chỉ IP nhưng hiện nay có 3 lớp được sử dụng là lớp A, B, và C. wLớp A: 0 Network ID Host ID 31 30 24 23 0 Dùng cho hệ thống mạng có số lượng địa chỉ host rất lớn, số lượng này có thể lên đến 16 triệu địa chỉ host. Để có thể nhận biết địa chỉ thuộc lớp nào người ta căn cứ vào bit đầu tiên trong phần network ID, trong trường hợp lớp A: bit đầu tiên trong phần ID network bằng 0. 8 bits đầu dùng cho phần Network ID còn lại 24 bits dành cho phần Host ID. Như vậy có 126(27) địa chỉ đường mạng và 16.777.214 (224)địa chỉ Host ID. wLớp B: Dùng cho hệ thống mạng trung bình số lượng Host ID lên đến khoảng 65 ngàn. 1 0 Network ID Host ID 31 30 29 1615 0 Địa chỉ lớp B được nhận biết qua bit đầu tiên trong phần Network ID bit đầu tiên có giá trị 1. Phần Network ID có 16 bit(2 byte) và phần Host ID có 16 bit như vậy số địa chỉ đường mạng trong lớp B này là 16.382(214 -2)và số địa chỉ host 65.534(216 -2). wLớp C: Địa chỉ lớp C dùng cho mạng nhỏ có số lượng máy không vược quá 254 máy. 1 1 0 Network ID Host ID 31 30 29 28 8 7 0 Có thể nhận biết địa chỉ lớp C thông qua 2 bit đầu tiên trong phần Network ID, hai bit này được bật lên 1. Phần NetWork ID có 2,097,150(221-2) địa chỉ đường mạng và phần Host ID có 254(28-2) địa chỉ host. Chúng ta có thể xem số địa chỉ Host ID và Network ID qua bảng sau Lớp Mạng Số địa chỉ đường mạng Số host trên một địa chỉ mạng A 126 16,777,214 B 16,382 65,534 C 2,097,150 254 b. Subnet Mask(mặt nạ con): Subnet mask là một dãy 32 bit giống như địa chỉ IP được dùng kèm với địa chỉ IP để xác định mạng con. Khi có một địa chỉ IP và kèm theo là một subnet mask chúng ta có thể xác định địa chỉ đường mạng con của địa chỉ IP đó bằng cách thực hiện tốn tữ AND giữa IP và subnet đây là cách mà router xác định cho gói dữ liệu đi theo đường mạng nào để để đến máy nhận. Ví dụ : địa chỉ IP:192.125.125.3 Subnet mask :255.255.255.0 CHƯƠNG 2: MẠNG INTERNET Internet là công nghệ thông tin liên lạc mới, và hiện đại, nó tác động sâu sắc vào xã hội cuộc sống chúng ta, là một phương tiện cần thiết như điện thoại hay tivi, nhưng ở mức độ bao quát hơn. Chẳng hạn điện thoại chỉ cho phép trao đổi thông tin qua âm thanh, giọng nói. Với Tivi, thông tin nhận được trực quan hơn. Còn Internet đưa chúng ta vào thế giới có tầm nhìn rộng hơn và bạn có thể làm mọi thứ: viết thư, đọc báo, xem bản tin, giải trí, tra cứu và thậm chí còn thực hiện những phi vụ làm ăn, ….Vì Internet là mạng của các mạng, tức bao gồm nhiều mạng máy tính kết nối lại với nhau, Số lượng máy tính nối mạng và số lượng người truy cập vào mạng Internet trên tồn thế giới đang ngày càng tăng lên nhanh chóng. Đặc biệt từ năm 1993 trở đi, mạng Internet không chỉ cho phép chuyển tải thông tin nhanh chóng mà còn giúp cung cấp thông tin, nó cũng là diễn đàn và là thư viện tồn cầu đầu tiên. Các thông tin được đặt rải rác trên tồn cầu có thể truyền thông được với nhau như một thiết bị Modem và đường dây điện thoại. Hệ điều hành UNIX là hệ phát triển mạnh với rất nhiều công cụ hổ trợ và đảm bảo các phần mềm ứng dụng có thể chuyển qua lại trên các họ máy khác nhau (máy mini, máy tính lớn và hiện nay là máy vi tính). Bên cạnh đã hệ điều hành UNIX BSD còn cung cấp nhiều thủ tục Internet cơ bản, đưa ra khái niệm Socket và cho phép chương trình ứng dụng thâm nhập vào Internet một cách dễ dàng. Internet có thể tạm hiểu là liên mạng gồm các máy tính nối với nhau theo một nghi thức và một số thủ tục chung gọi là TCP/IP (Transmission Control Protocol/Internet Protocol).Thủ tục và nghi thức này trước kia đã được thiết lập và phát triển là cho một đề án nghiên cứu của Bộ Quốc Phòng Mỹ với mục đích liên lạc giữa các máy tính nối đơn lẻ và các mạng máy tính với nhau mà không phụ thuộc vào các hãng cung cấp máy tính. Sự liên lạc này vẫn được bảo đảm liên tục ngay cả trong trường hợp có nút trong mạng không hoạt động. Ngày nay, Internet là một mạng máy tính có phạm vi tồn cầu bao gồm nhiều mạng nhỏ cũng như các máy tính riêng lẻ được kết nối với nhau để có thể liên lạc và trao đổi thông tin. Trên quan điểm Client / Server thì có thể xem Internet như là mạng của các mạng của các Server, có thể truy xuất bởi hàng triệu Client. Việc chuyển và nhận thông tin trên Internet được thực hiện bằng nghi thức TCP/IP. Nghi thức này gồm hai thành phần là Internet protocol (IP) và transmission control protocol (TCP) (được nguyên cứu ở những phần sau). IP cắt nhỏ và đóng gói thông tin chuyển qua mạng, khi đến máy nhận, thì thông tin đó sẽ được ráp nối lại. TCP bảo đảm cho sự chính xác của thông tin được chuyền đi cũng như của thông tin được ráp nối lại đồng thời TCP cũng sẽ yêu cầu truyền lại tin thất lạc hay hư hỏng .Tùy theo thông tin lưu trữ và mục đích phục vụ mà các server trên Internet sẽ được phân chia thành các loại khác nhau như Web Server, email Server hay FTP Server. Mỗi loại server sẽ được tối ưu hóa theo mục đích sử dụng. Từ quan điểm người sử dụng, Internet trông như là bao gồm một tập hợp các chương trình ứng dụng sử dụng những cơ sở hạ tầng của mạng để truyền tải những công việc thông tin liên lạc. Chúng ta dùng thuật ngữ "interoperability" để chỉ khả năng những hệ máy tính nhiều chủng loại hợp tác lại với nhau để giải quuyết vấn đề. Hầu hết người sử dụng truy cập Internet thực hiện công việc đơn giản là chạy các chương trình ứng dụng trên một máy tính nào đó gọi là máy client mà không cần hiểu loại máy tính(Server) đang được truy xuất, kỷ thuật TCP/IP, cấu trúc hạ tầng mạng hay Internet ngay cả con đường truyền dữ liệu đi qua để đến được đích của nó.Chỉ có những người lập trình mạng cần xem TCP/IP như là một mạng và cần hiểu một vài chi tiết kỹ thuật. Hình 3 : Liên lạc trên Internet 1. Internet bắt nguồn từ đâu? Internet bắt đầu từ đầu năm 1969 dưới cái tên là ARPANET(Advanced Research Projects Agency) còn gọi là ARPA. Nó thuộc bộ quốc phòng Mỹ (DoD). Đầu tiên nó chỉ có 4 máy được thiết kế để minh hoạ khả năng xây dựng mạng bằng cách dùng máy tính nằm rải rác trong một vùng rộng. Vào năm 1972, khi ARPANET được trình bày công khai, đã được 50 trường đại học và các viện nghiên cứu nối kết vào. Mục tiêu của ARPANET là nghiên cứu hệ thống máy tính cho các mục đích quân sự. chính phủ và quân đội tìm kiếm những phương cách để làm cho mạng tránh được các lỗi, mạng này thiết kế chỉ cho phép các văn thư lưu hành từ máy tính này đến máy tính khác, đối với chính phủ và quân đội, máy tính đã có những công dụng rõ ràng và sâu rộng. tuy nhiên, một trong những mối bận tâm chính yếu là tính đáng tin cậy vì nó có liên quan đến vấn đề sinh tử. Kế hoạch ARPANET đã đưa ra nhiều đường nối giữa các máy tính. Điều quan trọng nhất là các máy tính bạn có thể gởi các văn thư bởi bất kỳ con đường khả dụng nào, thay vì chỉ qua một con đường cố định. Đây chính là nơi mà vấn đề về giao thức đã xuất hiện. 2. Giao thức mà internet sử dụng là gì? - Giao thức hay còn gọi là nghi thức là các phương tiện để làm cho sự thông tin trở nên khả hữu. Một (lọai) quyết định phải được thực hiện khi hai hay nhiều máy tính muốn gởi và nhận dữ liệu. Đầu tiên ARPANET đã đưa ra giao thức Host-to-Host Protocol, nhưng giao thức này không đáng tin cậy và nó chỉ giới hạn trong một số các máy. Vào cuối năm 1970 các mạng khác cũng bung ra trong thực tế, mạng UUCP gồm một nhóm rôì cũng đã nối được hàng trăm máy rồi hàng máy. Vào cuối năm 1980 mạng NSFNET mạng của National Science Foundation được phát triển để nối 5 trung tâm siêu máy tính của nó, nó là mạng hấp dẫn cho tất cả các nhà nghiên cứu và các viện đại học cũng như các viện nghiên cứu. Năm 1972, bắt đầu thế hệ thứ hai của giao thức mạng, đã làm phát sinh ra một nhóm giao thức được gọi là Transmission Control Protocol/ Internet Protocol viết tắt là TCP/IP. Năm 1983, TCP/IP là bộ giao thức cho ARPANET, TCP/IP đã trở thành một trong những giao thức mạng được dùng rộng rãi nhất. Sau cùng tất cả các mạng được tài trợ bởi cá nhân hay xã hội -mạng ARPANET, MILNET, UUCP, BITNET, CSNET và NASA Science Internet đã liên kết trong một mạng khu vực NSFNET và ARPANET giải tán và ngày càng có nhiều mạng khác thêm vào... - Ngày nay để thực hiện việc truyền thông qua mạng thông qua trình duyệt Web, và ta cũng cần một giao thức để thực hiện công việc này. Mặc dù hiện nay cũng đang có rất nhiều giao thức để truyền thông tin nhưng nhìn chung có hai giao thức thường được các lập trình viên sử dụng đó là: TCP/IP(IP: là giao thức Internet, TCP: giao thức truyền tải) và giao thức UDP(giao thức gói dữ liệu người dùng). Vì chương trình của em sử dụng giao thức TCP/IP nên sau đây em sẽ trình bày chi tiết giao thức này. 3. Các dịch vụ kết nối đến Internet: Muốn truy nhập Internet, bạn phải đăng ký kết nối. Có nhiều phương pháp để có thể đăng ký kết nối, và luôn có phương pháp mới trong quá trình thiết kế. ba phương pháp phổ biến nhất hiện nay là: Dịch vụ trực tuyến, nhà cung cấp dịch vụ Internet(ISP), và truy cập trực tuyến. - Dịch vụ trực tuyến(online service) là một doanh nghiệp: như AOL, CompuServe, Microsoft Network(MSN),...cung cấp nhiều dịch vụ truyền thông, trong đó có truy cập Internet. Khi sử dụng dịch vụ trực tuyến, bạn chạy chương trình kết nối của họ để đăng nhập dịch vụ cung do họ cung cấp, đến lúc kết nối để chạy Internet Explorer. Dịch vụ trực tuyến thu cước phí hàng tháng(Không áp dụng cho người ở Việt Nam). - Nhà cung cấp dịch vụ Internet(ISP): là một công ty nhỏ hơn, chuyên dụng hơn, cung cấp tùy chọn không nhiều bằng dịch vụ trực tuyến. ISP cho phép truy nhập Internet theo giờ với cước phí thấp, hoặc truy cập không giới hạn với cước phí cao hơn. Họ còn cấp cho khách một tài khoản E-mail. Ở Việt Nam hiện có ba dịch vụ ISP đang hoạt động: VNN, FPT, và NetNam. - Truy nhập trực tuyến(direct access) khả dụng ở nhiều học viện giáo dục hoặc công ty lớn. Thay vì sử dụng Modem, những tổ chức này thuê bao một đường truyền chuyên dụng để cung cấp truy nhập Internet 24/24 giờ. Chương IIi: Một số hàm socket I. Khái niệm về socket: Trong mô hình mạng để hai máy tính có thể trao đổi thông tin cho nhau thì cần phải tạo ra kết nối giữa chúng. Trong quá trình làm việc người ta nhận thấy rằng những nhà lập trình ứng dụng rất khó khăn trong việc thiết lập kết nối và truyền tải dữ liệu giữa các máy tính với nhau. Vì thế người ta xây dựng khái niệm socket, khái niệm này được đưa ra đầu những năm 80 bởi các nhà khoa học máy tính ở California tại Berkeley. Khái niệm này được đưa ra từ ý tưởng phân tầng, trong đó Windows sockets Application Programming Interface(Winsock API) là thư viện các hàm do hãng Berkeley Software Distribution of UNIX đưa ra. Nhằm làm đơn giản hóa quá trình thiết lập kết nối và chuyển dữ liệu. socket dựa trên giao thức TCP/IP tạo môi trường trung gian cho các ứng dụng và giao thức bên dưới. Server socket Client socket Hình 14: minh họa cơ chế socket Socket được xem là một cấu trúc dữ liệu trừu tượng(asbtraction data structure) dùng tạo ra một kênh truyền(channel) để gởi và nhận dữ liệu giữa các process trong cùng chương trình hay các giữa các máy trong cùng môi trường mạng với nhau. Hay nói một cách đơn giản hơn chúng ta xem socket như là “cơ chế ổ cắm”. Khi kết nối giữa client và Server tương tự như việc cắm phích điện vào ổ cắm điện. client thường được xem như là phích cắm điện, còn server được xem như là ổ cắm điện, một ổ cắm có thể cắm vào đó nhiều phích điện khác nhau cũng như một server có thể phục vụ cho nhiều client khác nhau. Trong quá trình truyền, nhận dữ liệu cần có một máy đóng vai trò là server và một máy đóng vai trò client, đầu tiên server phải tạo ra một socket và chờ đợi các yêu cầu kết nối từ client. client tạo ra socket cho riêng nó xác định vị trí server (dựa vào tên của server hay địa chỉ của server trong mạng) và tiến hành việc kết nối với server, sau khi kết nối được thiết lập client và server có thể tiến hành việc trao đổi dữ liệu với nhau. Tóm lại Socket là đầu (endpoint) trao đổi dữ liệu giữa các quá trình, qua đó các ứng dụng WinSock gởi / nhận dữ liệu qua mạng. Có hai loại Socket : Stream Socket : Dựa trên nghi thức TCP ( Tranmission Control Protocol ), việc truyền dữ liệu chỉ thực hiện giữa hai quá trình đã thiết lập kết nối. Dữ liệu được truyền tin cậy, đúng trình tự và không lập lại. Dữ liệu được truyền như dòng liên tục các byte không phân biệt ranh giới các record Datagram Socket : Dựa trên nghi thức UDP ( User Datagram Protocol ), việc truyền dữ liệu không yêu cầu có sự thiết lập kết nối giữa hai quá trình. Dữ liệu truyền không tin cậy, có thể không đúng trình tự hoặc lập lại. Dữ liệu được truyền như dòng các record. II.Lập trình Winsock: WinSock API (Windows Sockets Application Programming Interface) là thư viện các hàm giao diện lập trình mạng cho Microsoft Windows. WinSock tương thích với họ nghi thức mạng TCP/IP. a.Khái niệm Port :Port xác định duy nhất một quá trình trên một máy trong mạng. Một TCP/IP Socket gồm một địa chỉ IP kết hợp với một port ? xác định duy nhất một quá trình trên mạng. Một số port dành riêng : UDP Ports : 0 Reversed 7 Echo 37 Time 42 Name Server 53 Domain Name Server 69 Trivial File Transfer Program ( TFTP ) 514 System Log . . . . . . . . . . TCP Ports : 0 Reversed 1 TCP Multiplexor 20 FTP_ Data Connection 21 FTP_ Command Connection 23 TELNET 25 SMTP 42 Name Server 53 Domain Name Server 79 Finger_ find a active user . . . . . . . . . . . . . . . . . . . . . Các file cần thiết : WINSOCK.DLL hay WSOCK32.DLL ( tuỳ version 16 hay 32 bit của Windows ). WINSOCK.LIB hay WSOCK32.LIB. WINSOCK.H. Giới thiệu một số hàm của WinSock: Dưới đây chỉ giới thiệu chức năng của một số hàm WinSock, không trình bày prototype của các hàm Các hàm khởi động WinSock : Dùng để khởi đầu và kết thúc quá trình sử dụng WinSock. WSAStartup() : Khởi động WinSock. WSACleanup() : Kết htúc WinSock. WSAGetLastError() : Lấy mã sai vừa xảy ra. Các hàm Socket : Dùng để thiết lập quá trình trao đổi dữ liệu trên mạng. socket() : tạo socket truyền dữ liệu. bind() : định danh cho socket vừa tạo (gán port cho socket). listen() : lắng nghe kết nối. accept() : chấp nhận kết nối từ client. connect() : kết nối với server. send(), recv() : gởi, nhận dữ liệu với stream socket. sendto(), recvfrom() : gởi, nhận dữ liệu với datagram socket. . . . . . . . . Các hàm khác : inet_addr() : chuyển từ địa chỉ IP dạng số thập phân có chấm sang địa chỉ internet. inet_ntoa() : ngược lại. gethostname() : cho tên máy hiện hành. gethostbyname(),WSAAsyncGetHostByName() : cho địa chỉ IP ứng với tên máy. gethostbyaddr(),WSAAsyncGetHostByAddr() : cho tên máy ứng với địa chỉ IP. . . . . . . . . WinSock error: Lỗi khi send data WSANOTINITIALISED A successful AfxSocketInit must occur before using this API. WSAENETDOWN The Windows Sockets implementation detected that the networ k subsystem failed. WSAEACCES The requested address is a broadcast address, but the appropriate flag was not set. WSAEINPROGRESS A blocking Windows Sockets operation is in progress. WSAEFAULT The lpBuf or lpSockAddr parameters are not part of the user address space, or the lpSockAddr argument is too small (less than the size of a SOCKADDR structure). WSAENETRESET The connection must be reset because the Windows Sockets implementation dropped it. WSAENOBUFS The Windows Sockets implementation reports a buffer deadlock. WSAENOTCONN The socket is not connected (SOCK_STREAM only). WSAENOTSOCK The descriptor is not a socket. WSAEOPNOTSUPP MSG_OOB was specified, but the socket is not of type SOCK_STREAM. WSAESHUTDOWN The socket has been shut down; it is not possible to call SendTo on a socket after ShutDown has been invoked with nHow set to 1 or 2. WSAEWOULDBLOCK The socket is marked as nonblocking and the requested operation would block. WSAEMSGSIZE The socket is of type SOCK_DGRAM, and the datagram is larger than the maximum supported by the Windows Sockets implementation. WSAECONNABORTED The virtual circuit was aborted due to timeout or other failure. WSAECONNRESET The virtual circuit was reset by the remote side. WSAEADDRNOTAVAIL The specified address is not available from the local machine. WSAEAFNOSUPPORT Addresses in the specified family cannot be used with this socket. WSAEDESTADDRREQ A destination address is required. WSAENETUNREACH The network cannot be reached from this host at this time. Lỗi khi receive data WSANOTINITIALISED A successful AfxSocketInit must occur before using this API. WSAENETDOWN The Windows Sockets implementation detected that the network subsystem failed. WSAENOTCONN The socket is not connected. WSAEINPROGRESS A blocking Windows Sockets operation is in progress. WSAENOTSOCK The descriptor is not a socket. WSAEOPNOTSUPP MSG_OOB was specified, but the socket is not of type SOCK_STREAM. WSAESHUTDOWN The socket has been shut down; it is not possible to call Receive on a socket after ShutDown has been invoked with nHow set to 0 or 2. WSAEWOULDBLOCK The socket is marked as nonblocking and the Receive operation would block. WSAEMSGSIZE The datagram was too large to fit into the specified buffer and was truncated. WSAEINVAL The socket has not been bound with Bind. WSAECONNABORTED The virtual circuit was aborted due to timeout or other failure. WSAECONNRESET The virtual circuit was reset by the remote side. Stream Socket : Dùng Datagram Socket : Mô hình minh hoạ hoạt động của 2 dạng Socket PHầN IV GIỚI THIệu chương trình minh họa báo cháy Chương trình bao gồm 2 thành phần: Một chạy ở các máy chủ gọi tắt là server program, một chạy ở các máy trạm gọi là client program. Giao diện chạy ở server bao gồm các thành phần I.Chat 1.Host name (Tên máy chủ) 2.Serverlimit ( Số máy con tối đa có thể kết nối măc định là 16) 3.Host button ( Sau khi xác lập các thông số trên bấm vào host button máy này sẽ trở thành máy chủ). 4.Phần còn lại dành cho chat . II.Phần này bao gồm các phím điều khiển các máy con như : Gọi chữa cháy (Call 115),Tắt Màn Hình(Power Off), Phun nước (Water), Tắt máy (Shutdown). Phần chạy tại máy client: I.Chat 1.Đánh vào địa chỉ IP hoặc tên máy chủ. 2.Đánh vào tên máy con. 3.Sau đó click connect. Máy tính sẽ bắt đầu giám sát quá trình xảy ra cháy nổ của hệ thống. II. Monitor : Bao gồm các thành phần giám sát như trạng thái COM, Hệ thống shutdown. Tài Liệu Tham Khảo.

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

  • docdta-pcc.doc