Đề tài Báo cháy và chống cháy qua mạng Internet

Tài liệu Đề tài Báo cháy và chống cháy qua mạng Internet: 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 hoà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...

doc58 trang | Chia sẻ: hunglv | Lượt xem: 994 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Báo cháy và chống cháy qua mạng Internet, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Xin chaân thaønh caûm ôn Caùc Thaày Coâ Giaùo trong nhaø tröôøng, Nhaát laø quyù thaày coâ trong Khoa Coâng Ngheä Thoâng Tin Tröôøng Ñaïi Hoïc Baùch Khoa Haø Noäi, Ñaïi Hoïc Thuyû Saûn ñaõ taän tình daïy doã em trong suoát 5 naêm qua. Xin baøy toû loøng bieát ôn saâu saéc Thaày Ñoã Vaên Uy, Ngöôøi ñaõ nhieät tình höôùng daãn, taïo moïi ñieàu kieän thuaän lôïi ñeå em hoaøn thaønh quyeån luaän vaên naøy. Xin caûm ôn taát caû caùc baïn cuøng coâng ty TQC ñaõ coù yù kieán ñoùng goùp, giuùp ñôõ em trong luùc thöïc hieän luaän vaên naøy. MUÏC LUÏC Phaàn 1 : Giôùi thieäu veà ñeà taøi Chöông I:Giôùi thieäu sô löôïc veà heä thoáng baùo chaùy thoâng qua maïng internet döïa vaøo giao thöùc TCP/IP I.Muïc ñích yeâu caàu cuûa ñeà taøi. II.Giôùi haïn cuûa ñeà taøi. III.Caùc phöông aùn thöïc hieän ñeà taøi. Chöông II:Quy trình hoaït ñoäng cuûa moät heä thoáng baùo chaùy I.Nguyeân taéc baùo chaùy. II.Caáu truùc thuaàn tuyù cuûa moät heä thoáng baùo chaùy. 1.Caûm bieán a.Caûm bieán nhieät. b.Caûmbieán löûa. c.Caûm bieán khoùi. Phaàn 2:Kieán truùc heä thoáng baùo chaùy ñieàu khieån töø maùy tính Chöông I.Lyù thuyeát veà giao tieáp maùy tính vôùi thieát bò ngoaïi vi. I.Caùc phöông phaùp ñieàu khieån vaøo ra. 1.Vaøo ra ñieàu khieån baèng chöông trình. 2.Vaøo ra ñieàu khieån baèng ngaét. II.Caùc phöông phaùp giao tieáp vôùi thieát bò ngoaïi vi. 1.Giao tieáp vôùi maùy tính thoâng qua slot card. 2. Giao tieáp vôùi maùy tính thoâng qua slot serial port. 3.Giao tieáp vôùi maùy tính thoâng qua printer port. Chöông II.Tìm hieåu veà RS232C. I.Ñaëc ñieåm kó thuaät veà ñieän cuûa RS232C. II.Caùc ñöôøng döõ lieäu vaø ñieàu khieån cuûa RS232C. III. Modem roång cuûa RS232C. IV.Caùc IC kích phaùt thu cuûa RS232C. V.Minh hoaï thoâng tin noái tieáp baát ñoàng. 1.Löïa choïn coång COM. 2.Hoaït ñoäng cuûa coång noái tieáp. Chöông 3.Laäp trình ñieàu khieån qua coång COM vieát baèng ngoân ngöõ Visual Basic 6.0 I.Taïi sao choïn ngoân ngöõ Visual Basic 6.0. II.Thö vieän lieân keát ñoäng Port.dll III.Goïi haøm trong thö vieän Port.dll töø Visual basic 6.0 Phaàn 3.Cô sôû lyù thuyeát veà maïng vaø giao thöùc TCP/IP Chöông I.Caùc khaùi nieäm cô baûn veà maïng. I.Moâ hình maïng OSI, moâ hình maïng TCP/IP. 1.Khaùi nieäm moâ hình maïng. 2.Moâ hình maïng OSI. 3.Moâ hình maïng TCP. 4.Giao thöùc TCP. 5.Ñòa chæ IP. a.Giôùi thieäu ñòa chæ IP. Chöông II.Maïng Internet. I. Internet baét nguoàn töø ñaâu. II.Giao thöùc maø internet söû duïng. III.Caùc dòch vuï keát noái ñeán internet. Chöông III.Moät soá haøm socket. I.Khaùi nieäm veà socket. II.Laäp trình winsock. Phaàn 4.Giôùiù thieäu veà chöông trình minh hoaï baùo chaùy. LÔØI NOÙI ÑAÀU Trong cuoäc soáng cuûa chuùng ta luoân toàn taïi nhöõng khu vöïc deã chaùy, neân vieäc laép ñaët heä thoáng baùo chaùy coù taàm quan troïng heát söùc lôùn lao. Noù giuùp chuùng ta phaùt hieän nhanh choùng, chöõa chaùy kòp thôøi kyø ñaàu cuûa vuï chaùy ñem laïi söï bình yeân cho moïi ngöôøi, baûo veä taøi saûn cho nhaân daân, nhaø maùy xöôûng saûn xuaát… Ngaøy nay, vieäc phoøng chaùy chöõa chaùy trôû thaønh moái quan taâm haøng ñaàu cuûa nöôùc ta cuõng nhö nhieàu nöôùc treân theá giôùi. Noù trôû thaønh nghiaõ vuï cuûa moãi ngöôøi daân. Treân caùc phöông tieän thoâng tin ñaïi chuùng luoân tuyeân truyeàn giaùo duïc cho moãi ngöôøi daân yù thöùc phoøng chaùy chöõa chaùy, nhaèm muïc ñích haïn cheá nhöõng vuï chaùy ñaùng tieác xaûy ra. Cuøng vôùi söï phaùt trieån nhanh choùng cuûa heä thoáng thoâng tin internet thì vieäc baùo chaùy qua maïng internet ngaøy caøng coù khaû naêng aùp duïng vaøo thöïc tieãn, noù giuùp ta baùo kòp thôøi nhöõng thoâng tin veà vuï chaùy ñeán caùc cô quan chöùc naêng. Xuaát phaùt töø nhöõng yù töôûng treân, em choïn ñeà taøi “Thieát bò baùo chaùy töï ñoäng vaø ñieàu khieån choáng chaùy thoâng qua maïng internet vôùi giaù thaønh thaáp phuø hôïp vôùi haàu heát caùc kieán truùc maïng maùy tính chaïy theo giao thöùc TCP /IP treân neàn heä ñieàu haønh Windows” cho luaän aùn toát nghieäp. Do thôøi gian vaø söï hieåu bieát coù haïn, chaéùc chaén trong quaù trình laøm em cuõng coù nhieàu thieáu soùt, mong caùc thaày coâ vaø caùc baïn chaân thaønh goùp yù. Phaàn 1 :Giôùi Thieäu veà ñeà taøi Chöông 1: Giôùi thieäu sô löôïc veà heä thoáng baùo chaùy thoâng qua mang internet döïa vaøo giao thöùc TCP/IP. Ngaønh coâng ngheä thoâng tin lieân laïc ñaõ phaùt trieån nhanh choùng cuøng vôùi caùc ngaønh coâng ngheä khaùc, nhaèm ñaùp öùng nhu caàu ngaøy caøng cao cuûa xaõ hoäi. Coâng ngheä thoâng tin ñoùng vai troø coát loõi trong vieäc caäp nhaät thoâng tin cho moïi ngöôøi. Vôùi nhöõng nhu caàu veà maïng internet cuõng nhö LAN hay WAN ngaøy caøng thaâm nhaäp saâu vaøo ñôøi soáng haøng ngaøy cuûa chuùng ta vôùi raát nhieàu öùng duïng thöïc tieãn nhö email , chat , ñieän thoaïi IP , web, ... vì vaäy vôùi suy nghó laø öùng duïng kieán thöùc ñaõ hoïc ôû tröôøng vaø tìm hieåu theâm ôû saùch vôû, em quyeát ñònh choïn ñeà taøi “Thieát bò baùo chaùy töï ñoäng qua maïng internet ” vôùi mong muoán sau khi thöïc hieän xong ñeà taøi coù theå ñem ra öùng duïng trong thöïc teá. I. Muïc Ñích Yeâu Caàu Cuaû Ñeà Taøi: Nhaèm phuïc vuï cho vieäc baùo chaùy töï ñoäng qua maïng maùy tính hieän coù taïi caùc cô quan xí nghieäp, ñaët taïi caùc nhaø cao taàng, nhöõng nôi caàn thieát khaùc vv… Töø muïc ñích treân neân thieát bò baùo chaùy phaûi ñaûm baûo caùc yeâu caàu: Söû duïng tieän lôïi vaø söû duïng treân khaép caû nöôùc maø khoâng caàn thay ñoåi phaàn cöùng. Baùo ñoäng kòp thôøi caùc vuï chaùy nhaèm giaûm nheï thieät haïi do chaùy gaây ra. Coù theå ñieàu khieån töø xa qua maïng taét ñieän hoaêïc phun nöôùc khi coù chaùy. II. Giôùi Haïn Ñeà Taøi: Baùo Chaùy vaø Choáng Chaùy coù raát nhieàu vaán ñeà caàn baøn tôùi ví duï nhö : Khi kho xaêng daàu chaùy thì ñaëc tính chöõa chaùy khaùc so vôùi hoaù chaát chaùy. Hieän taïi vaán ñeà phaùt hieän khoùi baùo chaùy coøn phuï thuoäc nhieàu vaøo ñaàu doø khoùi ...Vì vaäy coù raát nhieàu khoù khaên trong luùc thöïc hieän ñeà taøi. Vôùi thôøi gian ngaén nhöng laïi coù nhieàu vaán ñeà caàn giaûi quyeát, hôn nöõa kieán thöùc ngöôøi tìm hieåu ñeà taøi coù haïn, sinh vieân thöïc hieän ñeà taøi chæ taäp trung giaûi quyeát vaán ñeà sau: -Baùo ñoäng coù chaùy thoâng qua maïng khi coù söï coá. -Thöïc hieän ñöôc 2 chöùc naêng laø: Taét nguoàn ñieän töø xa thoâng qua maïng . Khôûi ñoäng nguoàn cho thieát bò choáng chaùy. III. Choïn Phöông Aùn Thöïc Hieän Ñeà Taøi: Vôùi nhöõng yeâu caàu ñaët ra ôû treân, em ñaõ xem xeùt vaø ñöa ra 3 phöông aùn nhö sau: Söû duïng kyõ thuaät soá. Söû duïng kyõ thuaät vi xöû lyù. Söû duïng kyõ thuaät vi ñieàu khieån. Vôùi nhöõng ñoøi hoûi cuûa maùy ta coù theå ñôn giaûn nhöõng hoaït ñoäng baèng kyõ thuaät soá. Nhöng toán keùm linh kieän vaø kích thöôùc coàng keành, hôn nöõa khoù thay ñoåi phaàn meàm vaø khoâng coù khaû naêng môû roäng cho caùc hoaït ñoäng khaùc. Vôùi kyõ thuaät vi xöû lyù, coù theå khaéc phuïc nhöõng yeáu ñieåm cuûa maïch soá nhöng laïi phöùc taïp trong vieäc thieát keá phaàn cöùng. . Neáu söû duïng kyõ thuaät vi ñieàu khieån,giao tieáp theo xung vôùi maïch thieát keá thuaàn chaát ñieän töû thì giaù thaønh haï vaø chaát löôïng cuûa thieát bò phuï thuoäc nhieàu vaøo phaàn meàm. Vì vaäy em quyeát ñònh ñi theo höôùng naøy. CHÖÔNG 2: Quy trình hoaït ñoäng töø moät heä thoáng baùo chaùy I. Nguyeân taéc baùo chaùy : Khi moät ñaùm chaùy xaûy ra, ôû nhöõng vuøng chaùy thöôøng coù nhöõng daáu hieäu sau: Löûa, khoùi, vaät lieäu choã chaùy bò phaù huûy. Nhieät ñoä vuøng chaùy taêng leân cao. Khoâng khí bò Oxy hoùa maïnh. Coù muøi chaùy, muøi kheùt. Ñeå ñeà phoøng chaùy chuùng ta coù theå döïa vaøo nhöõng daáu hieäu treân ñeå ñaët caùc heä thoáng caûm bieán laøm caùc thieát bò baùo chaùy. Kòp thôøi khoáng cheá ñaùm chaùy ôû giai ñoaïn ñaàu. Thieát bò baùo chaùy ñieän töû giuùp chuùng ta lieân tuïc theo doõi ñeå haïn cheá caùc vuï chaùy tai haïi, taêng cöôøng ñoä an toaøn, bình yeân cho moïi ngöôøi. II. Caáu truùc thuaàn tuyù cuûa moät heä thoáng baùo chaùy: 1. Caûm bieán: Caûm bieán laø boä phaän heát söùc quan troïng, noù quyeát ñònh ñoä nhaïy vaø söï chính xaùc cuûa heä thoáng. Caûm bieán hoaït ñoäng döïa vaøo caùc ñaët tính vaät lyù cuûa vaät lieäu caáu taïo neân chuùng. Caûm bieán ñöôïc duøng ñeå chuyeån ñoåi caùc tín hieäu vaät lyù sang tín hieäu ñieän. Caùc ñaëc tính cuûa caûm bieán: ñoä nhaïy, ñoä oån ñònh, ñoä tuyeán tính. a. Caûm bieán nhieät: Laø loaïi caûm bieán duøng ñeå chuyeån tín hieäu vaät lyù (nhieät ñoä) thaønh tín hieäu ñieän, ñaây laø loaïi caûm bieán coù ñoä nhaïy töông ñoái cao vaø tuyeán tính. Nguyeân taéc laøm vieäc cuûa noù laø doøng ñieän hay ñieän aùp thay ñoåi khi nhieät ñoä taïi nôi ñaët noù thay ñoåi. Tuy nhieân noù cuõng deã baùo ñoäng nhaàm khi nguoàn ñieän beân ngoaøi taùc ñoäng khoâng theo yù muoán. Caùc loaïi caûm bieán nhieät: IC caûm bieán: Laø loaïi caûm bieán baùn daãn ñöôïc cheá taïo thaønh caùc IC chuyeân duïng vôùi ñoä nhaïy cao, ñieän aùp ra thay ñoåi tæ leä thuaän vôùi nhieät ñoä, moät soá loaïi IC ñöôïc baùn beân ngoaøi thò tröôøng laø: LM355, LM334, … Thermistor: Thermistor laø loaïi ñieän trôû coù ñoä nhaïy nhieät raát cao nhöng khoâng tuyeán tính vaø vôùi heä soá nhieät aâm. Ñieän trôû giaûm phi tuyeán vôùi söï taêng cuûa nhieät ñoä. Vì baûn thaân laø ñieän trôû neân trong quaù trình hoaït ñoäng Thermistor taïo ra nhieät ñoä vì vaäy gaây sai soá lôùn. Thermo Couples: Thermo Couple bieán ñoåi ñaïi löôïng nhieät ñoä thaønh doøng ñieän hay ñieän aùp DC nhoû. Noù goàm hai daây kim loaïi khaùc nhau noái vôùi nhau taïi hai moái noái. Khi caùc daây noái ñaëc ôû caùc vò trí khaùc nhau, trong daây xuaát hieän suaát ñieän ñoäng. Suaát ñieän ñoäng tæ leä thuaän vôùi söï cheânh leäch nhieät ñoä giöõa hai moái noái. Thermo couple coù heä soá nhieät döông. b. Caûm bieán löûa: Khi löûa chaùy thì phaùt ra aùnh saùng hoàng ngoaïi, do ñoù ta söû duïng caùc linh kieän phaùt hieän tia hoàng ngoaïi ñeå phaùt hieän löûa. Nguyeân lyù hoaït ñoäng laø ñieän trôû cuûa caùc linh kieän thu soùng hoàng ngoaïi taêng, noù chuyeån tín hieäu aùnh saùng thu ñöôïc thaønh tín hieäu ñieän ñeå baùo ñoäng. Loaïi naøy raát nhaïy ñoái vôùi löûa. Tuy nhieân cuõng deã baùo ñoäng nhaàm neáu ta ñeå caûm bieán ngoaøi trôøi hoaëc gaàn aùnh saùng boùng ñeøn troøn. c. Caûm bieán khoùi: Thöôøng caûm bieán khoùi laø boä phaân rieâng bieät chaïy baèng PIN ñöôïc thieát keá ñeå laép ñaët treân traàn nhaø, treân töôøng. Ngoaøi yeâu caàu kyõ thuaät (chính xaùc, an toaøn) coøn ñoøi hoûi phaûi ñaûm baûo veà maët thaåm myõ. Coù hai caùch cô baûn ñeå thieát keá boä caûm bieán khoùi. Caùch thöù nhaát söû duïng nguyeân taéc Ion hoùa. Ngöôøi ta söû duïng moät löôïng nhoû chaát phoùng xaï ñeå Ion hoùa trong boä caûm bieán. Khoâng khí bò Ion hoùa seõ daãn ñieän vaø taïo thaønh moät doøng ñieän chaïy giöõa chaïy giöõa hai cöïc ñaõ ñôïc naïp ñieään. Khi caùc phaàn töû khoùi loït vaøo khu vöïc caûm nhaän ñöôïc Ion hoùa seõ laøm taêng ñieän trôû trong buoàng caûm nhaän vaø laøm giaûm luoàng ñieän giöõa hai cöïc. Khi luoàng ñieän giaûm xuoáng tôùi moät giaù trò naøo ñoù thì boä caûm bieán seõ phaùt hieän vaø phaùt tín hieäu baùo ñoäng. Caùch thöù hai söû duïng caùc linh kieän thu phaùt quang. Ngöôøi ta duøng linh kieän phaùt quang (Led, Led hoàng ngoaïi…) chieáu moät tia aùnh saùng qua vuøng baûo veä vaøo moät linh kieän thu quang (photo diode, photo transistor, quang trôû…). Khi coù chaùy, khoùi ñi ngang qua vuøng baûo veä seõ che chaén hoaëc laøm giaûm cöôøng ñoä aùnh saùng chieáu vaøo linh kieän thu. Khi cöôøng ñoä giaûm xuoáng tôùi moät giaù trò naøo ñoù thì boä caûm bieán seõ phaùt hieän vaø phaùt tín hieäu baùo ñoäng. Trong hai caùch naøy thì phöông phaùp thöù nhaát nhaïy hôn vaø hieäu quaû hôn phöông phaùp thöù hai, nhöng khoù thöïc thi, khoù laép ñaët. Coøn caùch thöù hai tuy ít nhaïy hôn nhöng linh kieän deã kieám vaø deã thöïc thi cuõng nhö deã laép ñaët. Moät nhöôïc ñieåm cuûa caùc loaïi caûm bieán naøy laø: maïch baùo ñoäng coù theå sai neáu vuøng baûo veä bò xaâm nhaäp bôûi caùc lôùp buïi… PhaàN 2: Kieán truùc phaàn cöùng veà heä thoáng baùo chaùy thoâng qua maùy tính Chöông 1. Lyù thuyeát veà giao tieáp maùy tính vôùi thieát bò ngoaïi vi I. Caùc phöông phaùp ñieàu khieån vaøo ra: 1.Vaøo ra ñieàu khieån baèng chöông trình: Thieát bò ngoai vi ñieàu gheùp vôùi Bus heä thoáng vi xöû lyù thoâng qua caùc phaàn thích öùng veà coâng ngheä cheá taïo vaø logic. Thích öùng veà coâng ngheä cheá taïo laø ñieàu chænh möùc coâng ngheä saûn xuaát thieát bò ngoaïi vi vaø coâng ngheä saûn xuaát cuûa maïch trong heä vi xöû lyù. Thích öùng veà Logic laø nhieäm vuï taïo tín hieäu ñieàu khieån ngoaïi vi tín hieäu treân bus heä thoáng. Trong heä vi xöû lyù moät vuøng nhôù duøng laøm nôi chöùa ñòa chæ coång vaøo ra vaø CPU xuaát hoaëc nhaäp döõ lieäu töø caùc coång vaøo ra naøy caùc leänh xuaát nhaäp In/Out Luùc naøy coång vaøo ra ñöôïc xem nhö thanh ghi ngoaøi, chuùng ñöôïc vieát vaøo hoaëc ñoïc ra nhö oâ nhôù Ram qua hai leänh treân. Ñeå phaân bieät höôùng xuaát hoaëc nhaäp döõ lieäu töø coång vaøo ra CPU phaùt ra tín hieäu ñieàu khieån ñoïc hoaëc vieát. Ñeå phaân bieät vuøng nhôù vôùi thieát bò vaøo ra CPU phaùt ra tín hieäu ñieàu khieån IO/M. Khi coù caùc leänh naøy thì caùc leänh In/Out môùi coù taùc duïng. Ngoaøi caùc leänh qui chieáu boä nhôù, cuõng nhö khaû naêng trao ñoåi döõ lieäu giöõa thieát bò ngoaïi vi vaø heä vi xöû lyù. Luùc ñoù vaøo ra ñöôïc gaùn nhö moät ñòa chæ oâ nhôù cuûa boä nhôù. Caùc thanh ghi lieân quan tôùi coång vaøo ra ñöôïc xem nhö ngaên nhôù. Khi boä vi xöû lyù goïi ñòa chæ vaø xung ñieàu khieån ñoïc hay vieát boä nhôù khoâng caàn xaùc ñònh nôi gôûi laø boä nhôù hay thieát bò vaøo ra. Noù chæ hoûi nôi gôûi döõ lieäu vaøo trong khoaûng thôøi gian cho pheùp. Boä logic beân ngoaøi seõ giaûi maõ ñòa chæ keát hôïp vôùi xung MR, MW, ñeå choïn thieát bò maø khoâng phaân bieät ngaên nhôù hay thieát bò vaøo ra. 2.Vaøo ra ñieàu khieån baèng ngaét: Vôùi phöông phaùp ñieàu khieån vaøo ra baèng chöông trình, CPU phaûi lieân tuïc kieåm tra traïng thaùi cuûa thieát bò ngoaïi vi ñeán khi saün saøng, ñoù laø söï laõng phí thôøi gian cuûa CPU vaø chöông trình daøi vaø phöùc taïp. Khi boä vi xöû lyù coù nhieàu thieát bò ngoaïi vi CPU khoâng ñaùp öùng yeâu caàu cuûa chuùng. Coù theå ñaùp öùng yeâu caàu ngoaïi vi nhanh choùng vaø khoâng theo trình töï nhö ñònh tröôùc nhôø cô caáu ngaét CPU. Nhôø tính chaát ñaùp öùng töùc thôøi cuûa vi xöû lyù khi coù yeâu caàu ngaét töø thieát bò ngoaïi vi do ñoù caùc ngaét thöôøng ñöôïc duøng ôû nhöõng tröôøng hôïp yeâu caàu ñap öùng nhanh, thôøi gian traû lôøi ngaén, thöïc hieän ôû baát kyø thôøi ñieåm naøo. Khi ñoù CPU phaûi chuyeån ñeán chöông trình con, yeâu caàu ngaét ôû cuoái baát kyø leänh naøo trong chöông trình chính. Caùc chöông trình con phuïc vuï ngaét coù theå löu tröõ noäi dung caùc thanh ghi vaø khoâi phuïc laïi khi thöïc hieän xong chöông trình phuïc vuï ngaét vaø tröôùc khi trôû laïi chöông trình chính. Giao tieáp vôùi mayù tính laø trao ñoåi döõ kieän giöõa moät maùy tính vôùi moät hay nhieàu thieát bò ngoaïi vi. Theo tieâu chuaån saûn xuaát, maùy tính giao tieáp vôùi ngöôøi söû duïng baèng hai thieát bò: Baøn phím ñeå nhaäp döõ lieäu Maøn hình ñeå hieån thò Ngoaøi ra nhaø saûn xuaát cho ta nhieàu caùch giao tieáp khaùc thoâng qua caùc port nhö laø caùc ngoõ giao tieáp: Giao tieáp qua port com (noái tieáp) Giao tieáp qua port Parallel(song song) Tuøy theo tröôøng hôïp öùng duïng cuï theå maø choïn caùch giao tieáp thích hôïp. II.Caùc phöông phaùp giao tieáp vôùi thieát bò ngoaïi vi: 1.Giao tieáp vôùi maùy tính thoâng qua slot card: Beân trong maùy tính, ngoaøi nhöõng khe caém duøng cho card vaøo - ra, card maøn hình, vaãn coøn nhöõng raõnh caém ñeå troáng. Ñeå giao tieáp vôùi maùy tính, ta coù theå thieát keá card môû roäng ñeå gaén vaøo khe caém môû roäng naøy. ÔÛ maùy tính PC/XT raõnh caém chæ coù 1 loaïi vôùi ñoä roäng 8 bit vaø tuaân theo tieâu chuaån ISA (Industry Standard Architecture). Raõnh caém theo tieâu chuaån IS coù 62 ñöôøng tín hieäu, qua caùc ñöôøng tín hieäu naøy maùy tính coù theå giao tieáp deã daøng vôùi thieát bò beân ngoaøi thoâng qua card môû roäng. Treân raõnh caém môû roäng, ngoaøi 20 ñöôøng ñòa chæ, 8 ñöôøng döõ lieäu, coøn coù moät soá ñöôøng ñieàu khieån nhö: , , IOW, AEN, CLK, ... Do ñoù card giao tieáp vôùi maùy tính qua slot card ñôn giaûn, soá bit coù theå taêng deã daøng, giaûm ñöôïc nhieàu linh kieän, toác ñoä truyeàn döõ lieäu nhanh (truyeàn song song). Tuy nhieân, do khe caém naèm beân trong maùy tính neân khi muoán gaén card giao tieáp vaøo thì phaûi môû naép ra, ñieàu naøy gaây baát tieän cho ngöôøi söû duïng. 2.Giao tieáp qua Serial Port (Port COM) : IBM PC cung caáp 2 coång noái tieáp: COM1 vaø COM2. Caùc coång naøy giao tieáp theo tieâu chuaån RS232. Chuùng coù theå ñöôïc noái vôùi moät Modem ñeå duøng cho maïng ñieän thoaïi, hay noái tröïc tieáp vôùi moät maùy tính khaùc. Döõ lieäu ñöôïc truyeàn qua coång naøy theo caùch noái tieáp, nghóa laø döõ lieäu ñöôïc gôûi ñi noái tieáp nhau treân 1 ñöôøng daây. Do caùc döõ lieäu ñöôïc truyeàn ñi töøng bit moät neân toác ñoä truyeàn chaäm, caùc toác ñoä truyeàn coù theå laø 300, 600, 1200, 2400, 4800bps, 9600bps, chieàu daøi döõ lieäu coù theå laø 5, 6, 7 hoaëc 8 bit vaø keát hôïp vôùi caùc bit Start, Stop, Parity taïo thaønh moät khung (frame). Ngoaøi ra coång naøy coøn coù caùc ñieàu khieån thu (Receive), phaùt (Trans), kieåm tra. Caùch giao tieáp naøy cho pheùp khoaûng caùch truyeàn döõ lieäu xa, tuy nhieân toác ñoä truyeàn raát chaäm toác ñoä toái ña laø 20kbps. 3.Giao tieáp qua coång PRINT (Coång maùy in): IBM PC cho pheùp söû duïng ñeán 3 coång song song coù teân laø LP1, LP2 vaø LP3. Kieåu giao tieáp song song ñöôïc duøng ñeå truyeàn döõ lieäu giöõa maùy tính vaø maùy in. Khaùc vôùi caùch giao tieáp qua Port Com, ôû caùch giao tieáp naøy döõ lieäu ñöôïc truyeàn song song cuøng moät luùc 8 bit. Vì theá noù coù theå ñaït toác ñoä cao. Connector cuûa Port naøy coù 25 chaân bao goàm 8 chaân döõ lieäu vaø caùc ñöôøng tín hieäu baét tay (Handshaking ). Taát caû caùc ñöôøng Data vaø tín hieäu ñieàu khieån ñeàu ôû möùc logic hoaøn toaøn töông thích vôùi möùc TTL. Hôn nöõa, ngöôøi laäp trình coù theå ñieàu khieån cho pheùp hoaëc khoâng cho pheùp caùc tín hieäu taïo Interrupt töø ngoõ vaøo neân vieäc giao tieáp ñôn giaûn vaø deã daøng. Tuy nhieân, giao tieáp vôùi möùc logic TTL neân khoaûng caùch truyeàn bò haïn cheá so vôùi caùch truyeàn qua Port Com, ñoàng thôøi caùp truyeàn cuõng phöùc taïp hôn. Ñoù laø nhöôïc ñieåm cuûa caùch giao tieáp naøy. Chöông 2. Tìm hieåu veà RS232. Vaøo naêm 1960, cuøng vôùi söï phaùt trieån maïnh cuûa caùc thieát bò ñaàu cuoái maùy tính chia seû thôøi gian, caùc Modem ñaõ ñöôïc tung ra ngaøy caøng nhieàu nhaèm ñaûm baûo cho caùc thieát bò ñaàu cuoái coù theå duøng caùc ñöôøng ñieän thoaïi ñeå thoâng tin giöõa caùc maùy tính vôùi nhau ôû nhöõng khoaûng caùch xa. Modem vaø caùc thieât bò ñöôïc duøng ñeå göûi soá lieäu noái tieáp thöôøng ñöôïc goïi laø thieát bò thoâng tin soá lieäu DCE (Datommunication Equipment). Caùc thieát bò ñaàu cuoái hoaëc maùy tính ñang göûi hay nhaän soá lieäu ñöôïc goïi laø caùc thieát bò ñaàu soá lieäu DTE (Data Terminal Equipment). Nhaèm ñaùp öùng vôùi nhu caàu veà tín hieäu vaø caùc chuaån baét tay (handshake standards) giöõa DTE vaø DCE, hieäp hoäi kyõ thuaät ñieän töû EIA ñaõ ñöa ra chuaån RS-232C. Chuaån naøy moâ taû chöùc naêng 25 chaân tín hieäu vaø baét tay cho vieäc chuyeån döõ lieäu noái tieáp. Noù cuõng moâ taû caùc möùc ñieän aùp, trôû khaùng, toác ñoä truyeàn cöïc ñaïi vaø ñieän dung cöïc ñaïi cho caùc ñöôøng tín hieäu naøy. RS-232 aán ñònh 25 chaân tín hieäu, vaø quy ñònh caùc ñaàu noái DTE phaûi laø male (ñöïc) vaø caùc ñaàu noái DCE phaûi laø female (caùi). Moät loaïi ñaàu noái ñaëc bieät khoâng ñöôïc cho, nhöng thöôøng duøng nhieàu nhaát laø ñaàu noái mele DB-25P (hình 2-2). Ngoaøi ra, ñoái vôùi nhieàu heä thoáng coøn duøng loaïi 9 chaân nhö loaïi DE-9P mele (hình 2-1). Hình 2-1 Hình 2-2 Ñöôïc EIA ñöa vaøo naêm 1969 ñeå truyeàn döõ lieäu noái tieáp vaø tín hieäu ñieàu khieån giöõa Modem vaø thieát bò ñaàu cuoái (hoaëc maùy tính) vôùi toác ñoä truyeàn toái ña laø 20kbps ôû cöï ly khoaûng 15m. ñaây laø moät daïng giao tieáp loaïi TTL + boä kích ñöôøng daây khoâng caân baèng. Vieäc moâ taû chuaån naøy ñöôïc chia laøm ba phaàn: Caùc ñaëc ñieåm kyõ thuaät veà ñieän, moâ taû caùc ñöôøng döõ lieäu ñieàu khieån vaø söû duïng boä keát noái chaân ra. I.Ñaëc ñieåm kó thuaät veà ñieän cuûa RS232: Sô ñoà chaân cuû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 veà chaân cuûa RS232C Möùc ñieän aùp logic cuûa RS-232C laø khoaûng ñieän aùp giöõa +15V vaø –15V. Caùc ñöôøng döõ lieäu söû duïng möùc logic aâm: logic 1 coù ñieän theá giöõa –5V vaø-15V, logic 0 coù ñieän theá giöõa +5V vaø +15V. tuy nhieân caùc ñöôøng ñieàn khieån (ngoaïi tröø ñöôøng TDATA vaø RDATA) söû duïng logic döông: gía trò TRUE = +5V ñeán +15V vaø FALSE =-5V ñeán –15. ÔÛ chuaån giao tieáp naøy, giöõa ngoõ ra boä kích phaùt vaø ngoõ vaøo boä thu coù möùc nhieãu ñöôïc giôùi haïn laø 2V. Do vaäy ngöôõng lôùn nhaát cuûa ngoõ vaøo laø ±3V traùi laïi möùc ± 5V laø ngöôõng nhoû nhaát vôùi ngoõ ra. Ngoõ ra boä kích phaùt khi khoâng taûi coù ñieän aùp laø ± 25V. Caùc ñaëc ñieåm veà ñieän khaùc bao goàm RL (ñieän trôû taûi) ñöôïc nhìn töø boä kích phaùt coù giaù trò töø 3 ÷ 7k. CL (ñieän dung taûi) ñöôïc nhìn töø boä kích phaùt khoâng ñöôïc vöôït quaù 2500pF. Ñeå ngaên caûn söï dao ñoäng quaù möùc, toác ñoä thay ñoåi (Slew rate ) cuûa ñieän aùp khoâng ñöôïc vöôït quùa 30V/µs. Ñoái vôùi caùc ñöôøng ñieàu khieån, thôøi gian chuyeån cuûa tín hieäu (töø TRUE sang FALSE, hoaëc töø FALSE sang TRUE ) khoâng ñöôïc vöôït quùa 1ms. Ñoái vôùi caùc ñöôøng döõ lieäu, thôøi gian chuyeån (töø 1 sang 0 hoaëc töø 0 sang 1) phaûi khoâng vöôït quùa 4% thôøi gian cuûa 1 bit hoaëc 1ms. II.Caùc ñöôøng döõ lieäu vaø ñieàu khieån cuûa Serial Port (Com): TxD: Döõ lieäu ñöôïc truyeàn ñi töø Modem treân maïng ñieän thoaïi. RxD: Döõ lieäu ñöôïc thu bôûi Modem treân maïng ñieän thoaïi. Caùc ñöôøng baùo thieát bò saün saøng: DSR : Ñeå baùo raèng Modem ñaõ saün saøng. DTR : Ñeå baùo raèng thieát bò ñaàu cuoái ñaõ saün saøng Caùc ñöôøng baét tay baùn song coâng. RTS : Ñeå baùo raèng thieát bò ñaàu cuoái yeâu caàu phaùt döõ lieäu. CTS : Modem ñaùp öùng nhu caàu caàn göûi döõ lieäu cuûa thieát bò ñaàu cuoái cho thieát bò ñaàu cuoái coù theå söû duïng keânh truyeàn döõ lieäu. Caùc ñöôøng traïng thaùi soùng mang vaø tín hieäu ñieän thoaïi: CD : Modem baùo cho thieát bò ñaàu cuoái bieát raèng ñaõ nhaän ñöôïc moät soùng mang hôïp leä töø maïng ñieän thoaïi. RI : Caùc Modem töï ñoäng traû lôøi baùo raèng ñaõ phaùt hieän chuoâng töø maïng ñieän thoaïïi ñòa chæ ñaàu tieân coù theå tôùi ñöôïc cuûa coång noái tieáp ñöôïc goïi laø ñòa chæ cô baûn (Basic Address). Caùc ñòa chæ ghi tieáp theo ñöôïc ñaët tôùi baèng vieäc coäng theâm soá thanh ghi ñaõ gaëp cuûa boä UART vaøo ñòa chæ cô baûn. Möùc tín hieäu treân chaân ra RxD tuøy thuoäc vaøo ñöôøng daãn TxD vaø thoâng thöôøng naèm trong khoaûng –12 ñeán +12. Caùc bit döõ lieäu ñöôïc göûi ñaûo ngöôïc laïi. Möùc ñieän aùp ñoái vôùi möùc High naèm giöõa –3V vaø –12V vaø möùc Low naèm giöõa +3V vaø +12V. Treân hình 2-4 moâ taû moät doøng döõ lieäu ñieån hình cuûa moät byte döõ lieäu treân coång noái tieáp RS-232C. ÔÛ traïng thaùi tónh treân ñöôøng daãn coù ñieän aùp –12V. Moät bit khôûi ñoäng (Starbit) seõ môû ñaàu vieäc truyeàn döõ lieäu. Tieáp ñoù laø caùc bit döõ lieäu rieâng leû seõ ñeán, trong ñoù caùc bit giaù trò thaáp seõ ñöôïc göûi tröôùc tieân. Coøn soá cuûa caùc bit thay ñoåi giöõa 5 vaø 8. ÔÛ cuoái cuûa doøng döõ lieäu coøn coù moät bit döøng (Stopbit) ñeå ñaët trôû laïi traïng thaùi ngoõ 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: Doøng döõ lieäu treân coång RS 232 vôùi toác ñoä 9.600 baud Ñòa chæ cô baûn cuûa coång noái tieáp cuûa maùy tính PC coù theå toùm taét trong baûng caùc ñòa chæ sau: COM 1 (coång noái tieáp thöù nhaát) Ñòa chæ cô baûn = 3F8(Hex) COM 2 (coång noái tieáp thöù hai) Ñòa chæ cô baûn = 2F8(Hex) COM 3 (coång noái tieáp thöù ba) Ñòa chæ cô baûn = 3E8(Hex) COM 4 (coång noái tieáp thöù tö) Ñòa chæ cô baûn = 2E8(Hex) Cuõng nhö ôû coång maùy in, caùc ñöôøng daãn tín hieäu rieâng bieät cuõng cho pheùp trao ñoåi qua caùc ñòa chæ trong maùy tính PC. Trong tröôøng hôïp naøy, ngöôøi ta thöôøng söû duïng nhöõng vi maïch coù möùc ñoä tích hôïp cao ñeå coù theå hôïp nhaát nhieàu chöùc naêng treân moät chip. ÔÛ maùy tính PC thöôøng coù moät boä phaùt/nhaän khoâng ñoàng boä vaïn naêng (goïi taét laø UART: Universal Asnchronous Receiver/ Transmitter) ñeå ñieàu khieån söï trao ñoåi thoâng tin giöõa maùy tính vaø caùc thieát bò ngoaïi vi. Phoå bieán nhaát laø vi maïch 8250 cuûa haõng NSC hoaëc caùc theá heä tieáp theo. Thoâng thöôøng vôùi caùc yeâu caàu öùng duïng toác ñoä thaáp ngöôøi ta giao tieáp qua ngoõ noái tieáp, noù giao tieáp theo tieâu chuaån RS232C vaø duøng ñeå giao tieáp giöõa maùy tính vôùi Modem hoaëc Mouse. Ngoaøi ra cuõng coù theå duøng giao tieáp vôùi printer hay plotter nhöng khoâng thoâng duïng laém bôûi toác ñoä truyeàn quaù chaäm. Ñoái vôùi maùy AT cho ta hai ngoõ giao tieáp COM1 vaø COM2. Trong moät soá card I/O ta coù theå coù ñeán 4 coång COM. Ñeå giao tieáp noái tieáp vôùi 2 ngoõ COM naøy Bus heä thoáng cuûa CPU (Data Bus vaø Address Bus) haõng IBM söû duïng hai Chip laäp trình cuûa Intel laø 8250 UART (Universal Asynchronus Receiver Transmitter). Ñòa chæ theo boä nhôù cuûa hai Chip naøy laø 0040:0000 cho UART cuûa ngoõ COM1 vaø 0040:0002 cho UART cuûa ngoõ COM2 (Ñòa chæ logic do heä ñieàu haønh chæ ñònh) vaø ñòa chæ theo Port ñeå truy xuaát khi söû duïng laø 3F8-3FF cho COM1 vaø 2F8-2FF cho COM2. Döõ lieäu truyeàn qua cho Port COM döôùi daïng noái tieáp töøng Bit moät, ñôn vò döõ lieäu coù theå laø 5 Bit, 6 Bit hay 1 byte tuøy theo söï caøi ñaët luùc khôûi taïo Port COM. Ngoaøi ra ñeå truyeàn döõ lieäu qua Port COM coøn caàn nhöõng tham soá sau: Bit môû ñaàu cho moät ñôn vò döõ lieäu START Bit. STOP Bit (Bit keát thuùc). Parity (Kieåm tra chaün leû). Baud Rate (Toác ñoä truyeàn) taïo thaønh moät Frame (Khung truyeàn). Port COM laø moät theå khôûi taïo baèng BIOS thoâng qua chöùc naêng 0 cuûa Interrupt 14, naïp vaøo thanh ghi DX1 chæ soá choïn keânh (COM1 = 0, COM2 = 1). Thanh ghi AL ñöôïc naïp vaøo caùc tham soá cuûa vieäc truyeàn döõ lieäu. A L D7 D6 D5 D4 D3 D2 D1 D0 Bit D0 D1 : Cho bieát ñoä roäng cuûa döõ lieäu 0 0 : Döõ lieäu coù ñoä roäng 5 Bit 0 1 : Döõ lieäu coù ñoä roäng 6 Bit 1 0 : Döõ lieäu coù ñoä roäng 7 Bit 1 1 : Döõ lieäu coù ñoä roäng 8 Bit. Bit D2 : Cho bieát soá Stop Bit. 0 : Söû duïng moät bit Stop 1 : Söû duïng hai bit Stop Bit D3 D4 : Caùc Bit parity (chaün leû) 0 0 : Khoâng kieåm tra tính Parity 1 1 : Khoâng kieåm tra tính Parity 0 1 : Odd (leû) 1 0 : Even (chaün) Bit D5D6D7 : Cho bieát toác ñoä truyeàn (Baud Rate) 0 0 0 : Toác ñoä truyeàn 110bps (bit per second) 0 0 1 : Toác ñoä truyeàn 150bps (bit per second) 0 1 0 : Toác ñoä truyeàn 300bps (bit per second) 0 1 1 : Toác ñoä truyeàn 600bps (bit per second) 1 0 0 : Toác ñoä truyeàn 1200bps (bit per second) 1 0 1 : Toác ñoä truyeàn 2400bps (bit per second) 1 1 0 : Toác ñoä truyeàn 4800bps (bit per second) 1 1 1 : Toác ñoä truyeàn 9600bps (bit per second) III.Modem roãng cuûa RS232C Maëc duø chuaån RS_232C cuûa EIA ñöôïc daønh rieâng ñeå aùp duïng keát noái giöõa Modem vôùi thieát bò ñaàu cuoái, nhöng moät thueâ bao cuûa RS_232C cuõng thöôøng ñöôïc söû duïng khi hai thieát bò ñaàu cuoái ñöôïc noái vôùi nhau, hoaëc moät maùy tính vaø moät maùy in maø khoâng söû duïng caùc Modem. Trong nhöõng tröôøng hôïp nhö vaäy, caùc ñöôøng TxD vaø RxD phaûi ñöôïc ñaët cheùo nhau vaø caùc ñöôøng ñieàu khieån caàn thieát phaûi ñöôïc ñaët ôû TRUE hoaëc phaûi ñöôïc traùo ñoåi thích hôïp beân trong caùp keát noái. Söï noái laép caùp cuûa RS232C maø coù söï traùo ñoåi ñöôøng daây ñöôïc goïi laø Modem roãng (null Modem). Caùp nhö vaäy thích hôïp ñeå noái tröïc tieáp 2 thieát bò DTE qua caùc port RS232C. Hai sô ñoà coù theå keát noái laãn nhau ñöôïc trình baøy trong hính 2-5 vaø hình 2-6 chuù yù raèng trong tröôøng hôïp ñôn giaûn nhaát chæ caàn keát noái 4 daây laãn nhau, trong thöïc teá 2 ñöôøng daây ñaát (SIG GND 0 vaø CHAS GND) thöôøng ñöôïc keát hôïp laïi, maëc duø ñieàu naøy khoâng ñöôïc ñeà caäp tôùi. IV.Caùc IC kích phaùt vaø kích thu cuûa RS232C: Nhôø tính phoå bieán cuûa giao tieáp, ngöôøi ta ñaõ cheá taïo caùc IC kích phaùt vaø thu. Hai vi maïch nhö vaäy ñöôïc Motorola saûn xuaát laø IC kích phaùt MC 1488 coù daïng voû vuoâng. Vaø MC 1489.Moãi IC kích phaùt 1488 nhaän moät tín hieäu möùc TTL vaø chuyeån thaønh tín hieäu ôû ngoõ ra töông thích vôùi möùc ñieän aùp cuûa RS232C. IC 1489 phaùt hieän caùc möùc vaøo cuûa RS232C vaø chuyeån chuùng thaønh caùc ngoõ ra coù möùc TTL. V.Minh hoaï thoâng tin noái tieáp baát ñoàng: Ñoái vôùi caùc maùy PC, caùc coång lieân laïc noái tieáp (serial port) coøn ñöôïc goïi laø caùc coång COM. Hoaøn toaøn coù theå söû duïng caùc coång naøy ñeå keát noái maùy PC vôùi caùc maùy tính khaùc, vôùi caùc Modem, caùc maùy in, maùy veõ, caùc thieát bò ñieàu khieån, mouse, maïng … Taát caû caùc maùy tính PC coù khaû naêng laøm vieäc toái ña laø 4 coång noái tieáp khi söû duïng caùc card giao tieáp I/O chuaån. Caùc coång noái tieáp thöôøng ñöôïc thieát keá theo caùc qui ñònh RS-232 theo caùc yeâu caàu veà ñieän vaø veà tín hieäu. BIOS chæ hoã trôï caùc coång noái tieáp RS-232C. Coøn caùc chuaån khaùc nhö: RS-422, BiSync, SDLC, IEEE-488 (GPIB),… caàn phaûi coù caùc trình ñieàu khieån thieát bò boå sung ñeå hoã trôï. Toác ñoä toái ñoä cuûa coång noái tieáp tuøy thuoäc vaøo boä phaùt toác ñoä Baud trong card giao tieáp coång noái tieáp, phaàn meàm BIOS, vaø heä thoáng coù theå thöïc hieän chöông trình BIOS noái tieáp nhanh ñeán möùc naøo. Ngoaøi ra, neáu heä thoáng ñang xöû lyù chöông trình khaùc coù ñoä öu tieân cao hôn thì toác ñoä tin caäy coù theå bò suy giaûm ñaùng keå. Hoaït ñoäng cuûa coång noái tieáp chuû yeáu cuõng ñöôïc xöû lyù bôûi 1 chip UART. Caùc thieát keá ban ñaàu ñaõ söû duïng moät chip NS-8250. Caùc thieát bò sau naøy chuyeån sang moät phieân baûn CMOS, chip 1650, coù chöùc naêng hoaït ñoäng gioáng nhö 8250. Moät soá thieát bò môùi söû duïng chip 16550 hay caùc bieán theå khaùc nhaèm boå sung theâm vieäc ñeäm döõ lieäu ñeå giaûm bôùt gaùnh naëng cho CPU. Moät phaàn cuûa BIOS heä thoáng (ngaét 14 h) cung caáp caùc dòch vuï ñeå lieân laïc vôùi caùc card giao tieáp noái tieáp. Gioáng nhö caùc coång song song, POST (Power on Self Test- chöông trình cuûa BIOS töï kieåm tra caáu hình heä thoáng khi baät maùy) kieåm tra xem lieäu moät coång noái tieáp coù ñöôïc gaén vaøo heä thoáng khoâng, vaø ghi laïi caùc ñòa chæ I/O cuûa caùc coång hoaït ñoäng trong vuøng döõ lieäu cuûa BIOS. Taát caû caùc heä thoáng ñeán 4 coång noái tieáp, BIOS khoâng hoã trôï caùc coång boå sung theâm khaùc. Ñeå truy suaát phaàn cöùng cuûa moät coång noái tieáp, caàn ñoïc moät trong 4 töø (word) trong vuøng döõ lieäu BIOS chöùa ñòa chæ I/O cô sôû ñoái vôùi 4 coång noái tieáp coù theå coù. Ví duï: Ñeå truy suaát coång noái tieáp soá 2, tröôùc tieân phaûi ñoïc ñòa chæ coång I/O cô sôû töø vuøng döõ lieäu BIOS. Ñieàu naøy coù nghóa laø moät coâûng noái tieáp khoâng coù ñòa chæ coång I/O coá ñònh. 1. Löaï choïn coång COM: Moãi coång noái tieáp söû duïng 8 byte cuûa boä nhôù maùy PC vaø moät ngaét phaàn cöùng ñaëc bieät. Vieäc söû duïng caùc ñòa chæ boä nhôù vaø ngaêùt phaàn cöùng naøy laø ñieàu quan troïng ñoái vôùi ngöôøi laäp caùc chöông trình lieân laïc vaø caùc chöông trình ñieàu khieån thieát bò ñoái vôùi caùc thieát bò noái tieáp. Baûng sau moâ taû caùc ñòa chæ boä nhôù vaø caùc ngaét phaàn cöùng ñoái vôùi 4 coång noái tieáp chuaån cho caùc maùy tính töông thích vôùi maùy tính PC. Thoâng tin quan troïng nhaát ôû ñaây laø ñòa chæ cô sôû, laø ñòa chæ boä nhôù ñaàu tieân trong moãi coång COM (vuøng ñeäm phaùt/thu – Transmit/ Receive Buffer) ñòa chæ cuûa ñöôøng yeâu caàu ngaét (IRQ) ñoái vôùi moãi coång. Moät thieát bò noái tieáp chæ coù theå söû duïng moät ñòa chæ coång COM. Khi caøi ñaët moät Modem noäi trong maùy PC, hay baát kyø thieát bò naøo khaùc söû duïng coång noái tieáp cho giao dieän cuûa noù, tröôùc tieân phaûi ñaûm baûo raèng ñaõ xaùc laäp noù ñoái vôùi moät coång COM (bao goàm ñòa chæ vaø soá IRQ). COM1 COM2 COM3 COM4 Moâ taû 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 vaø LSB of the Divisor Latch Interrupt Enable Register vaø MSB of the Divisor Latch Interrupt Identification Registers Line Control Register Modem Control Register Line Status Register Modem Status Register 2. Hoaït ñoäng cuûa coång noái tieáp: Söï khôûi ñoäng cuûa BIOS. Sau khi baät maùy (hay Reset maùy), chöông trình POST kieåm tra xem lieäu coù baát kyø coång noái tieáp naøo ñöôïc caøi ñaët hay khoâng. POST khaûo saùt nhoùm coång I/O: 3F8 ¸3FEh. Ñeå phaùt hieän moät coång hoaït ñoäng, thanh ghi IIR (Interrupt Identification Register) ñöôïc ñoïc töø coång 3FAh hay 2FAh. Neáu taát caû caùc bit töø 3¸7 cuûa thanh ghi IIR ñeàu laø 0, thì POST xem nhö coång noái tieáp coù hoaït ñoäng. Moät khi ñaõ xaùc ñònh ñöôïc nhoùm coång I/O noái tieáp coù hoaït ñoäng, ñòa chæ coång I/O cô sôû ñöôïc löu tröõ trong vò trí BIOS RAM coång noái tieáp chöa söû duïng thaáp nhaát. Coù 4 töø ñöôïc daønh trong RAM baét ñaàu taïi ñòa chæ 40:0h ñeå chöùa ñòa chæ I/O cuûa coång noái tieáp coù hoaït ñoäng. Nhieàu POST cuûa caùc haõng cung caáp maùy seõ khoâng bao giôø kieåm tra caùc coång COM3 vaø COM4, vì IPM khoâng ñònh nghóa moät ñòa chæ coång chuaån cho caùc coång naøy. Noùi chung, haàu heát caùc heä thoáng chæ kieåm tra coù 2 coång. Tuy nhieân, caùc heä thoáng cuøng hoï môùi hôn thöôøng kieåm tra 4 ñòa chæ coång coù theå coù. Caùc heä thoáng MCA kieåm tra 8 ñòa chæ coång noái tieáp khaùc nhau coù theå coù trong moät laàn thöû ñeå tìm ra 4 coång noái tieáp coù hoaït ñoäng. Thöù töï kieåm tra Haàu heát heä thoáng Moät soá heä thoáng AT vaø EISA Caùc heä thoáng MCA Thöù 1 Thöù 2 Thöù 3 Thöù 4 Thöù 5 Thöù 6 Thöù 7 Thöù 8 3F8 2F8 Khoâng Khoâng Khoâng Khoâng Khoâng Khoâng 3F8 2F8 Khoâng Khoâng Khoâng Khoâng Khoâng Khoâng 3F8 2F8 3220h 3228h 4220h 4228h 5220h 5228h Baûng treân moâ taû thöù töï theo ñoù caùc BIOS seõ tìm kieám caùc coång hoaït ñoäng. Chæ coång I/O cô sôû ñoái vôùi moãi nhoùm ñöôïc hieån thò trong baûng naøy. Treân heä thoáng MCA, moät khi 4 coång ñaõ ñöôïc tìm thaáy, caùc coång khaùc khoâng ñöôïc kieåm tra nöõa. Khi hoaøn taát caùc coâng vieäc kieåm tra POST noái tieáp, caùc ñòa chæ coång noái tieáp ñöôïc caát giöõ. Ñieàu naøy thöôøng taïo ra moät trong 4 tröôøng hôïp ñöôïc moâ taû trong baûng sau: Ñòa chæ RAM Coång noái tieá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 Caùc keát quaû POST coù theå coù veà vieäc phaùt hieän coång noái tieáp. Tröôøng hôïp 1 : Moâ taû POST phaùt hieän 2 coång noái tieáp. Tröôøng hôïp 2 vaø 3 : Cho thaáy chæ coù moät coång noái tieáp ñöôïc phaùt hieän. Tröôøng hôïp 4 : Cho thaáy khoâng phaùt hieän ñöôïc coång noái tieáp naøo. Caùc pheùp thöû naøy khoâng khaúng ñònh lieäu coù moät thieát bò noái tieáp thöïc söï ñöôïc noái vôùi coång I/O hay khoâng. Pheùp thöû chæ kieåm tra xem lieäu phaàn cöùng coång noái tieáp coù toàn taïi hay khoâng taïi moät ñòa chæ I/O cuï theå. Toång soá coång noái tieáp hoaït ñoäng ñöôïc phaùt hieän thaáy (0 ¸ 4) ñöôïc caát giöõ trong byte thieát bò taïi ñòa chæ BIOS RAM 40:10h töø caùc bit 9 ¸ 11. Quaù trình phaùt noái tieáp Ñeå phaùt moät byte treân ñöôøng daây keát noái noái tieáp, coång ñöôïc giaû ñònh laø ñaõ ñöôïc khôûi söï vôùi toác ñoä baud vaø caùc phaàn choïn khung (Frame) noái tieáp thích hôïp. Chuùng ta cuõng giaû ñònh raèng caùc byte seõ ñöôïc phaùt ñi treân coång noái tieáp soá 1 (COM1). Tröôùc tieân, xaùc ñònh ñòa chæ cô sôû coång I/O baèng caùch ñoïc moät töø (Word) töø vuøng döõ leäu BIOS taïi 40:OH ñoái vôùi coång noái tieáp COM1. Neáu trò = 0: Khoâng coù coång noái tieáp hoaït ñoäng naøo ñöôïc gaén ôû ñaây vaø dó nhieân khoâng coù döõ lieäu naøo ñöôïc göûi ñi. Hai ñöôøng ñieàu khieån MODEM laø DTR (DATA Terminal Ready) vaø RTS (Request to Send) ñöôïc xaùc laäp leân möùc cao (DTR = 1, RTS = 1). DTR thoâng baùo cho thieát bò keát noái bieát raèng maùy tính ñang hoaït ñoäng vaø saün saøng ñeå lieân laïc. RTS baùo cho thieát bò keát noái bieát raèng maùy tính muoán göûi döõ lieäu. Hai ñöôøng naøy ñöôïc kích khôûi baèng caùch ghi trò 3 thanh ghi MCR (MODEM control Regester) cuûa UART. Keá ñoù, kieåm tra hai ñöôøng traïng thaùi CTS (Clear To Send). Nhöõng ñöôøng naøy naèm trong caùc bit 4 vaø 5 cuûa thanh ghi MSR (MODEM Status Regester). DSR baùo cho maùy tính bieát thieát bò keát noái ñaõ ñöôïc baät leân vaø saün saøng. CTS baùo cho maùy tính bieát raèng thieát bò keát noái ñaõ saün saøng ñoái vôùi döõ lieäu. Caùc ñöôøng traïng thaùi naøy neân ñöôïc kieåm tra trong 2ms hay cho ñeán khi caû hai ñeàu chuyeån sang möùc cao. Khi caû hai ñöôøng naøy ñeàu ôû möùc cao, thieát bò ñöôïc keát noái vôùi coång noái tieáp ñaõ baùo hieäu cho bieát noù ñaõ saün saøng cho moät byte. Moät loãi ñaùo haïn (timeout error) ñöôïc baùo hieäu bôûi phaàn meàm neáu moät trong hai ñöôøng daãn coøn ôû möùc thaáp laâu hôn khoaûng 2ms. Ñeán ñaây thieát bò keát noái ñaõ saün saøng tieáp nhaän moät byte, UART phaûi ñöôïc kieåm tra xem lieäu thanh ghi chöùa döõ lieäu phaùt THR (Transmit Holding Regester) ñaõ saün saøng coù moät byte chöa. Thanh ghi LSR (Line Status Regester), bit 5, ñöôïc xaùc laäp leân möùc cao khi thanh ghi chöùa döõ lieäu naøy troáng roãng vaø saün saøng cho moät byte. Moät laàn nöõa, gioáng ôû böôùc 3 neáu thanh ghi THR khoâng theå trôû neân höõu duïng trong 2ms, thì phaàn meàm seõ baùo moät loãi ñaùo haïn, vaø boû qua vieäc phaùt ñi. Neáu cho ñeán baây giôø chöa xaûy ra vieäc ñaùo haïn, byte coù theå ñöôïc göûi ñeán thanh ghi chöùa döõ lieäu phaùt cuûa UART. Sau ñoù, UART phaùt byte töø thanh ghi chöùa döõ lieäu phaùt vaøo thanh ghi dòch TSR (töø ñaây caùc bit döõ lieäu ñöôïc dòch ra vaø göûi ñi), vaø taïo daïng khung noái tieáp. Quaù trình nhaïân noái tieáp. Ñeå nhaän 1 byte töø ñöôøng daây keát noái noái tieáp, coång ñöôïc giaû ñònh nhö treân (cho coång COM3): Tröôùc tieân, xaùc ñònh ñòa chæ cô sôû coång I/O baèng caùch ñoïc moät töø (Word) töø vuøng döõ lieäu BIOS taïi 40:4H ñoái vôùi coång noái tieáp COM3. Neáu trò = 0: Khoâng coù coång noái tieáp hoaït ñoäng naøo ñöôïc gaén ôû ñaây vaø dó nhieân khoâng coù döõ lieäu naøo ñöôïc göûi ñi. Hai ñöôøng ñieàu khieån MODEM laø DTR (DATA Terminal Ready) vaø RTS (Request to Send) ñöôïc xaùc laäp leân möùc cao (DTR = 1, RTS = 1). Ñieàu naøy thoâng baùo cho thieát bò keát noái bieát raèng maùy tính ñang hoaït ñoäng vaø saün saøng lieân laïc. Ñieàu naøy ñöôïc thöïc hieän baèng caùch ghi trò 1 caùc thanh ghi MMC cuûa UART. Keá ñoù kieåm tra tín hieäu treân ñöôøng traïng thaùi DSR. Tín hieäu naøy xuaát hieän trong bit 5 cuûa thanh ghi MSR. DSR baùo cho maùy tính bieát raèng thieát bò keát noái ñaõ ñöôïc baät leân vaø saün saøng. DSR seõ ñöôïc kieåm tra cho ñeán khi noù leân möùc cao hay cho ñeán khi heát 2ms tröôùc khi moät loãi ñaùo haïn ñöôïc baùo hieäu. Keá ñoù, vuøng ñeâïm nhaän ñöôïc kieåm tra ñeå xem döõ lieäu ñaõ nhaän ñöôïc döõ lieäu naøo chöa. Bit 0 cuûa thanh ghi LSR chöùa moät côø hieäu baùo döõ lieäu ñaõ saün saøng. Noù ñöôïc xeùt leân 1 khi vuøng ñeäm coù döõ lieäu. Neáu côø baùo döõ lieäu saün saøng khoâng ñöôïc xeùt sau 2ms, thì phaàn meàm seõ khai baùo moät loãi ñaùo haïn, vaø taùc vuï bò boû qua. Neáu cho ñeán baây giôø chöa xaûy ra vieäc ñaùo haïn, byte coù theå ñöôïc ñoïc töø vuøng ñeäm nhaän cuûa UART. Trong cheá ñoä baát ñoàng boä, 8251 A dòch soá lieäu treân daây RxD töø bit moät. Sau moãi bit, thanh ghi thu ñöôïc so saùnh vôùi thanh ghi chöùa kyù töï SYN. Neáu hai thanh ghi chöa baèng nhau thì 8251 A dòch bit khaùc vaø tieáp tuïc so saùnh cho ñeán khi hai thanh ghi baèng nhau. 8251 A keát thuùc cheá ñoä baát ñoàng boä vaø ñöa tín hieäu SYNDET (Synch Detect) ñeå baùo ñoàng boä ñaõ hoaøn taát. Neáu USART ñöôïc naïp töø ñieàu khieån ñeå laøm vieäc vôùi hai kyù töï SYNC, quaù trình baát ñoàng boä cuõng nhö treân. Nhöng hai kyù töï keá tieáp nhau seõ ñöôïc so saùnh vôùi hai kyù töï SYNC tröôùc khi ñaït ñöôïc söï ñoàng boä. ÔÛ cheá ñoä baát ñoàng boä bit chaün/leû seõ khoâng phaûi kieåm tra. USART ôû cheá ñoä ñuoåi baét ñoàng boä vôùi hai ñieàu kieän: USART ñöôïc khôûi ñoäng ôû cheá ñoä ñoàng boä. USART ñaõ nhaän leänh ôû cheá ñoä baát ñoàng boä. Khoái phaùt Khoái naøy nhaän soá lieäu song song töø ñôn vò trung taâm, cheøn theâm caùc thoâng tin roài chuyeån sang noái tieáp vaø göûi ra thaân TxD (Transmiter DATA). ÔÛ cheá ñoä baát ñoàng boä, khoái phaùt cheøn theâm bit START, bit kieåm tra chaün leû paraty vaø moät hay hai bit STOP. Trong cheá ñoä ñoàng boä, khoái phaùt cheøn theâm caùc kyù töï SYNC. Nhöõng kyù töï ñoàng boä naøy phaûi ñöôïc phaùt tröôùc khi baûn tin baét ñaàu. Neáu trong khi phaùt coù khoaûng troáng giöõa hai kyù töï thì USART töï ñoäng cheøn caùc kyù töï ñoàng boä vaøo. Trong caû hai cheá ñoä ñoàng boä vaø baát ñoàng boä, quaù trình phaùt chæ ñöôïc cho pheùp khi tín hieäu TxE (Transmiter Enable) vaø tín hieäu CTS, ôû traïng thaùi tích cöïc. Neáu USART ñöôïc ñaët ôû cheá ñoä ñoàng boä töø ngoaøi, chaân SYNDET seõ laø cöûa vaøo vaø nhaän tín hieäu ñeå ñoàng boä khi thu. Khoái phaùt coù theå göûi tín hieäu caét (BREAK). Ñoù laø moät chu kyø lieân tuïc caùc bit SPACE treân ñöôøng daây lieân tuïc vaø ñöoïc duøng ôû cheá ñoä truyeàn song coâng ñeå caét quaù trình göûi thoâng tin ôû ñaàu cuoái. USART seõ göûi tín hieäu caét lieân tuïc neáu bit D3 cuûa byte leänh ñöôïc thieát laäp Khoái ñieàu khieån Modem Khoái naøy taïo vaø nhaän tín hieäu RTS (Request to Send). Ngoaøi ra, coøn coù caùc tín hieäu ra DTR (Data Terminel Ready) vaø tín hieäu vaøo DSR (Data Set Ready). Ñoù laø nhöõng tín hieäu vaïn naêng. Tín hieäu DTR ñieàu khieån bôûi bit D2 bôûi byte leänh. Tín hieäu DSR theå hieän ôû bit D7 cuûa thanh ghi traïng thaùi. USART khoâng ñònh nghóa caùc tín hieäu naøy moät caùch cöùng ngaéc. Thoâng thöôøng: Tín hieäu DTR qua Modem ñeå chæ raèng thieát bò ñaàu cuoái saün saøng truyeàn. DSR laø tín hieäu töø Modem ñeå chæ traïng thaùi saün saøng lieân laïc. Khoái ñieàu khieån vaøo/ra Logic ñieàu khieån ñoïc/ghi giaûi maõ caùc tín hieäu ñieàu khieån töø Bus ñieàu khieån cuûa ñôn vò trung taâm thaønh nhöõng tín hieäu ñeàu khieån caùc coång daãn soá lieäu ñeán Bus noäi cuûa USART. Baûng sau cho bieát söï lieân quan giöõ caùc tín hieäu CE, C/D\ RD\ CE C/D\ RD\ WR\ YÙ Nghóa 0 0 0 0 1 0 1 0 1 x 0 0 1 1 x 1 1 0 0 x CPU ñoïc soá lieäu töø USART CPU ñoïc traïng thaùi töø USART CPU ghi soá lieäu vaøo USART CPU ghi leänh vaøo USART Bus cuûa USART ôû traïng thaùi trôû khaùng cao Khoái thu Khoái thu nhaän döõ lieäu noái tieáp ôû chaân RxD vaø chuyeån thaønh soá lieäu song song (P/PC). Tröôùc khi boä thu laøm vieäc, bit D2 trong Command world cuûa byte leänh phaûi ôû traïng thaùi cho pheùp. Neáu bit naøy khoâng ñöôïc laäp, boä thu seõ khoâng taïo ra tín hieäu RxRDI. Trong cheá ñoä baát ñoàng boä, 8251 A kieåm tra möùc ñieän aùp cuûa ñaàu vaøo RxD. Khi coù thay ñoåi möùc logic töø 1 xuoáng 0, 8251 A khôûi ñoäng boä ñeám thôøi gian trong khoái thu khi ñaët thôøi gian ½ bit, 8251 A kích maãu ñaàu vaøo RxD. Taïi thôøi ñieåm naøy coù 2 tröôøng hôïp xaûy ra: Neáu ñaàu vaøo RxD coù möùc logic cao thì söï thay ñoåi töø 1 xuoáng 0 ôû RxD tröôùc luùc kích maãu laø do nhieãu hay khoái thu ñaõ khôûi ñoäng boä ñeám trong khi nhaän bit soá lieäu. Nhö vaäy coù sai 8251 boû leänh ñang thöïc hieän vaø chuaån bò kyù töï môùi. Neáu ñaàu vaøo RxD coù möùc logic thaáp trong thôøi ñieåm kích maãu. 8251 tieáp tuïc kích maãu ñeå nhaän giaù trò cuûa caùc bit soá lieäu, bit kieåm tra chaün leû vaø caùc bit döøng. Sau ñoù, 8251 taùch caùc bit khung vaø chuyeån soá lieäu qua Bus trong ñeán thanh ghi ñeäm soá lieäu thu. Tín hieäu RxRDI ñöôïc taïo ra ñeå baùo cho trung taâm bieát soá lieäu thu ñaõ saün saøng. Trong cheá ñoä ñoàng boä, khoái thu kích maãu caùc bit soá lieäu cuûa kyù töï roài ñöa ñeán ñeäm soá lieäu thu vaø laäp côø RxRDI. Vì boä thu nhoùm moät soá bit thaønh kyù töï neân ñöôïc xaùc ñònh bit soá lieäu ñaàu tieân laø caàn thieát. Ñeå ñoàng boä giöõa boä thu vaø boä phaùt, neáu coù troáng trong daõy kyù töï thì 8251 töï ñoäng cheøn kyù töï SYNC vaøo. Quaù trình ñoàng boä ñöôïc thöïc hieän trong quaù trình baát ñoàng boä. Khoái ñeäm vaøo ra Khoái ñeäm vaøo ra chöùa: Thanh ghi traïng thaùi, thanh ghi soá lieäu thu (thanh ghi ñeäm soá lieäu thu), thanh ghi soá lieäu phaùt vaø leänh (thanh ghi ñeäm soá lieäu phaùt vaø leänh). Nhö vaäy, chæ coù moät thanh ghi chöùa thoâng tin chuyeån töø ñôn vò trung taâm vaøo USART. Thoâng tin naøy bao goàm soá lieäu vaø leänh, do vaäy phaûi coù söï phaân chia thôøi gian giöõa leänh vaø soá lieäu. Leänh phaûi ñöôïc göûi tröôùc soá lieäu. Tröôùc khi göûi soá lieäu vaøo USART. Ñôn vò trung taâm phaûi kieåm tra tín hieäu saün saøng phaùt TxRDI. Neáu göûi thoâng tin khi TxRDI ôû traïng thaùi chöa saün saøng soá lieäu chuyeån ñi coù theå sai. CHÖông 3 . Laäp trình ñieàu khieån qua coång com VIEÁT BAÈNG v b6.0 I.Taïi sao choïn ngoân ngöõ laäp trình Visual Basic 6.0: Do quaù trình thieát keá thuaàn chaát raát ít kieán thöùc veà vi xöû lyù neân em quyeát ñònh choïn ngoân ngöõ thöïc hieän laø VB 6.0 vôùi thö vieän Port.dll thieát keá rieâng duøng giao tieáp qua COM theo tieâu chuaån RS 232. Ñoàng thôøi quaù trình ñieàu khieån qua maïng töø VB coù theå deã daøng söû duïng kó thuaät laäp trình Winsock vôùi thö vieän lieân keát ñoäng laø winsock32.dll söû duïng giao thöùc TCP / IP phoå bieán hieän nay ñeå ñieàu khieån. II.Thö vieän lieân keát ñoäng port.dll: Thö vieän lieân keát ñoäng port.dll ñöôïc vieát baèng ngoân ngöõ delphi vôùi teân quy öôùc laø PORT.DLL ñeå chæ roõ ñoái töôïng öùng duïng laø caùc coång. Taäp tin port.dll thöïc hieän chöùc naêng môû roâng ngoân ngöõ ñeå duøng chung cho caùc ngoân ngöõ khaùc nhau. Caùc chöùc naêng ñöôïc thieát keá saün trong port.dll : Môû caùc giao dieän. Truyeàn döõ lieäu theo caùch noái tieáp. Tieáp caän ñeán nhöõng ñöôøng daãn ôû giao dieän. Nhaäp vaøo vaø xuaát ra ôû caùc coång. Phaùt khoaûng thôøi gian ñeå coù thôøi löôïng chính xaùc ñeán töøng mili giaây. Phaùt khoûang thôøi gian ñeå coù thôøi löôïng queùt ñeán töøng micro giaây. Truy nhaäp tôùi card aâm thanh. Truy nhaäp qua coång troø chôi. III. Goïi haøm trong thö vieän lieân keát ñoäng port.dll töø Visual Basic 6.0: Phaàn leänh ñöôïc goïi khi chöông trình chaïy trong moâ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) PHAÀn 3 CÔ Sôû Lyù Thuyeát veà MAÏNG vaø Giao thöùc TCP/IP Chöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng I. Moâ hình maïng, moâ hình OSI, moâ hình TCP: 1 .Moâ Hình Maïng: Tröôùc tieân chuùng ta caàn tìm hieåu vaán ñeà: taïi sao coù söï phaân taàng cuûa caùc protocol, ích lôïi cuûa vieäc phaân taàng. Ñeå coù theå chuyeån moät thoâng ñieäp (message) töø maùy naøy sang maùy khaùc (caùc maùy phaûi trong cuøng heä thoáng maïng) noù phaûi traûi qua nhieàu giai ñoaïn khaùc nhau, caùc giai ñoaïn naøy raát phöùc taïp nhö laø: chia nhoû thoâng ñieäp (message) ra thaønh nhieàu goùi nhoû (package), maõ hoùa caùc goùi naøy ra daïng bit, caùc bit naøy ñöôïc chuyeån qua ñöôøng truyeàn vaät lyù ñeán maùy nhaän. Sau ñoù quaù trình nhaän seõ thöïc hieän ngöôïc laïi nhö beân gôûi, neáu quaù trình laép gheùp gaëp phaûi loãi thì phaûi thoâng baùo ñeå truyeàn laïi vv… Caùc giai ñoïan naøy raát phöùc taïp ñoøi hoûi ngöôøi laäp trình öùng duïng phaûi hieåu roõ taát caû caùc cô cheá hoaït ñoäng beân döôùi cuûa heä thoáng. Vì vaäy ngöôøi ta ñöa ra yù töôûng phaân taàng, moãi taàng seõ chòu traùch nhieäm cung caáp dòch vuï cho taàng beân treân vaø ñoàng thôøi noù cuõng söû duïng dòch vuï cuûa taàng beân döôùi cung caáp cho noù. Nhö theá moät ngöôøi laøm vieäc ôû taàng naøo hoï chæ quan taâm ñeán caùc taàng coù quan heä tröïc tieá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 moâ hình naøy moãi lôùp n + 1 söû duïng dòch vuï cuûa lôùp n, caû hai host A vaø host B phaûi coù cuøng choàng giao thöùc(protocol stack). 2. Moâ 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: Moâ hình OSI YÙ nghóa caùc taàng : Physical Layer ÔÛ lôùp naøy thoâng tin ñöôïc truyeàn döôùi daïng bit thoâng qua keânh truyeàn. Vaø nhaän caùc bit chuyeån leân cho lôùp datalink. Datalink Layer Lôùp naøy coù nhieäm vuï chia nhoû döõ lieäu töø lôùp network ñöa xuoáng thaønh caùc frame, moãi frame coù dung löôïng töø vaøi traêm byte ñeán vaøi ngaøn byte. Caùc frame ñöôïc truyeàn ñi baèng caùch chuyeån xuoáng cho lôùp physical. Nhieäm vuï thöù hai laø toå chöùc nhaän caùc frame sao cho ñuùng thöù töï, cung caáp khaû naêng truyeàn khoâng loãi treân ñöôøng truyeàn vaät lyù cho caùc lôùp cao hôn. Vaán ñeà ñaët ra ôû ñaây laø phaûi xaùc ñònh cô cheá ñeå xaùc nhaän moät frame coù truyeàn thaønh coâng hay khoâng (Acknowladge Framje), xöû lyù nhieåu (truyeàn laïi). Network layer Lôùp naøy ñònh höôùng cho goùi döõ lieäu (package) ñi töø maùy gôûi ñeán maùy nhaän. Phaûi giaûi quyeát vaán ñeà ñònh tuyeán (routing), vaán ñeà ñòa chæ (addressing), löôïng giaù chi phí (accouting), vaø giaûi quyeát ñuïng ñoä (collision). Transport layer Lôùp naøy coù nhieäm vuï chia nhoû goùi döõ lieäu ñöôïc ñöa xuoáng töø lôùp beân treân thaønh nhöõng ñôn vò nhoû hôn ñeå truyeàn qua maïng, vôùi söï ñaûm baûo laø döõ lieäu ñeán nôi moät caùch chính xaùc. Lôùp naøy cung caáp cho caùc lôùp beân treân phöông tieän ñeå truyeàn caùc message ñoäc laäp vôùi caùc lôùp beân döôùi. Session player Session layer ñieàu khieån quaù trình giao tieáp giöõa hai tieán trình treân hai maùy, taïo vaø keát thuùc keát noái giöõa caùc quaù trình treân caùc maùy khaùc nhau. Presentation layer Lôùp naøy bieåu dieãn nhöõng thoâng tin ñöôïc truyeàn (ñöôïc hieåu laø cuù phaùp vaø ngöõ nghóa), noù ñoàng nhaát caùc thoâng tin giöõa caùc caùc heä thoáng khaùc nhau. Ngoaøi ra coù coøn cung caáp dòch vuï thao taùc treân döõ lieäu nhö neùn, maõ hoùa(compression & cryptography). Application layer Ñaây laø lôùp cung vaáp dòch vuï cho ngöôøi söû duïng (end user), öùng vôùi moãi dòch vuï (coøn ñöôïc goïi laø öùng duïng) coù 1 protocol khaùc nhau. Ví duï: FTP(truyeàn nhaän file), HTTP, E-mai, v.v.. 3. Moâ hìnhTCP/IP : Chuùng ta ñaõ khaûo saùt moâ hình OSI 7 lôùp, moâ hình naøy chæ laø moâ hình tham khaûo, vieäc aùp duïng moâ hình naøy vaøo thöïc teá laø khoù coù theå thöïc hieän (hieäu suaát keùm vì döõ lieäu khi truyeàn töø maùy naøy sang maùy kia trong maïng thì phaûi traûi qua taát caû caùc lôùp cuûa moâ hình OSI ôû caû 2 maùy), noù chæ laø tieâu chuaån ñeå caùc nhaø phaùt trieån döïa theo ñoù maø phaùt trieån caùc moâ hình khaùc toái öu hôn. Coù raát nhieàu caùc moâ hình khaùc nhau, hieän nay moâ hình TCP/IP ñöôïc söû duïng phoå bieán nhaá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: Moâ hình TCP/IP Boä protocol TCP/IP bao goàm: TCP(Transmission Control Protocol): ñaây laø loaïi protocol coù caàu noái (connection oriented) cung caáp khaû naêng truyeàn doøng döõ lieäu khoâng loãi, 2 chieàu (full duplex)cho caùc quaù trình cho ngöôøi söû duïng. UDP(User Datagram Protocol): loaïi protocol khoâng thieát laäp caàu noái (connectionless) cho caùc quaù trình cuûa user. Khoâng gioáng nhö TCP, noù khoâng ñaûm baûo döõ lieäu khi truyeàn ñi coù ñeán nôi chính xaùc hay khoâng. ICMP (Internet Control Message Protocol): protocol xöû lyù loãi vaø ñieàu khieån thoâng tin giöõa caùc gateway vaø caùc host. IP(Internet Protocol): IP laø protocol cung caáp dòch vuï phaân phoái caùc package cho TCP, UDP vaø ICMP. ARP (Address Resolution Protocol): Protocol aùnh xaï 1 ñòa chæ internet thaønh ñòa chæ phaàn cöùng(MAC address). RAPR(Address Resolution Protocol): Protocol aùnh xaï moät ñòa chæ phaàn cöùng thaønh ñòa chæ IP. Moâ hình TCP/IP ñöôïc phaân ra thaønh 4 lôùp, trong ñoù 2 lôùp döôùi (1 vaø 2)cuûa moâ hình OSI ñöôïc goäp laïi thaønh 1 lôùp goïi laø Host-to-network; 2 lôùp Session vaø Presentation cuûa OSI khoâng coù trong moâ hình giao thöùc TCP/IP. Töông töï nhö moâ hình OSI, trong moâ hình TCP/IP, döõ lieäu töø 1 maùy cuõng ñi töø lôùp Application xuoáng Transport, roài xuoáng tieáp lôùp Internet, sau cuøng ñi tôùi lôùp Host-to-network, thoâng qua ñöôøng daây vaät lyù ñeán 1 maùy khaùc trong maïng : döõ lieäu ôû ñaây seõ ñi ngöôïc töø döôùi leân. Cuõng gioáng nhö moâ hình OSI, ôû ñaây, giöõa caùc lôùp cuûa 2 maùy giao tieáp vôùi nhau thoâng qua moät protocol; giöõa lôùp naøy vôùi lôùp khaùc trong cuøng moät maùy goïi laø Interface. Lôùp beân döôùi cung caáp caùc dòch vuï cho lôùp treân. Host-to-network Keát noái host vôùi network sao cho chuùng coù theå chuyeån caùc message tôùi caùc ñòa chæ ñích, lôùp naøy gaàn gioáng vôùi lôùp physical trong moâ hình OSI. Internet layer Ñaây laø lôùp thöïc hieän moät heä thoáng maïng coù khaû naêng chuyeån maïch caùc goùi döõ lieäu döïa treân moät lôùp maïng Connectionless(khoâng caàu noái) hay Connection – Oriented (coù caàu noái) tuøy vaøo loaïi dòch vuï maø ngöôøi ta duøng moät trong 2 caùch treân. Nhieäm vuï cuûa lôùp naøy laø ñaûm baûo cho caùc host chuyeån caùc package vaøo baát kì heä thoáng maïng naøo vaø chuyeån chuùng ñeán ñích maø khoâng phuï thuoäc vaøo vò trí cuûa ñích ñeán. Trong moâ hình TCP/IP ngöôøi ta ñöa ra khaùi nieäm ñòa chæ IP ñeå ñònh ñòa chæ cho caùc host treân maïng(xem phaàn ñòa chæ IP). Transport layer Lôùp transport ñöôïc thieát keá ñeå cho caùc phaàn töû ngang caáp ôû lôùp host coù theå ñoái thoaïi vôùi nhau. Hai protocol chính laø : TCP: laø moät Connection Oriented Protocol, cho pheùp chuyeån moät chuoãi byte töø host naøy sang host kia maø khoâng coù loãi (duøng cô cheá phaân chia döõ lieäu ra thaønh caùc goùi nhoû(package) ôû maùy nguoàn vaø gom laïi ôû maùy ñích). UDP: laø moät connectionless Protocol ñöôïc xaây döïng cho caùc öùng duïng khoâng muoán söû duïng caùch truyeàn theo moät thöù töï cuûa TCP maø muoán töï mình thöïc hieän ñieàu ñoù (tuøy theo muïc ñích cuûa öùng duïng maø ngöôøi ta duøng UDP hay khoâng). Khaùi nieäm veà port: Moät maùy coù theå lieân laïc vôùi moät maùy khaùc trong maïng qua ñòa chæ IP. Tuy nhieân, vôùi ñòa chæ nhö vaäy khoâng ñuû cho moät process cuûa maùy lieân laïc vôùi moät process cuûa maùy khaùc. Vaø vì vaäy TCP/UDP ñaõ duøng soá nguyeân (16 bit) ñeå ñaët taû neân soá hieäu port. Nhö vaäy, ñeå hai process cuûa hai maùy baát kyø trong maïng coù theå giao tieáp ñöôïc vôùi nhau thì moãi frame ôû caáp Network coù IP goàm : + Protocol (TCP/UDP). + Ñòa chæ IP cuûa maùy gôûi. + Soá hieäu port cuûa maùy gôûi. + Ñòa chæ IP cuûa maùy ñích + Soá hieäu port cuûa process ôû maùy ñích. Ví duï:{TCP,127.28.11.83,6000,127.28.11.241,7000}; Application layer(process layer) Chöùa caùc dòch vuï nhö trong caùc lôùp Session, Presentaion, Application cuûa moâ hình OSI, ví duï: Telnet(Terminel Acesss) cho pheùp user thaâm nhaäp vaøo moät host ôû xa vaø laøm vieäc ôû ñoù nhö ñang laøm vieäc treân maùy local(cuïc boä), FPT (File Transfer Protocol) laø coâng cuï giuùp cho chuùng ta chuyeån caùc file cho nhau, SMTP(Simple Mail Transfer Protocol) cuõng laø moät daïng cuûa FTP nhöng noù ñaëc ñieåm rieâng, DNS(Domain Name Service) duøng ñeå aùnh xaï teân host thaønh ñòa chæ IP vaø ngöôïc laïi. 2. Giao Thöùc TCP vaø UDP 2.1 Giao Thöùc UDP UDP laø phöông thöùc truyeàn döõ lieäu theo phöông phaùp khoâng höôùng keát noái (connectionless). Khi truyeàn noù khoâng caàn thieát laäp caàu noái giöõa maùy gôûi vaø maùy nhaän, söû duïng cô cheá UDP ngöôøi ta giaû ñònh raèng ôû maùy nhaän luoân saún saøn ñoùn nhaän döõ lieäu gôûi ñeán. Neáu döõ lieäu gôûi ñeán bò loãi trong quaù trình truyeàn hay khoâng nhaän ñöôïc ñaày ñuû, UDP cuõng khoâng coù thoâng tin phaûn hoài laïi cho maùy gôûi. Tuy nhieân UDP khoâng ñoøi hoøi nhieàu taøi nguyeân cuûa heä thoáng vaø thieát keá chöông trình öùng duïng ñôn giaûn. UDP thöôøng ñöôïc duøng trong nhöõng öùng duïng khoâng ñoøi hoûi ñoä chính xaùc cao ví duï: dòch vuï thoâng baùo giôø, tæ giaù, hay dòch vuï nhaén tin vaø duøng cho vieäc truyeàn taûi nhöõng file coù kích thöôùc lôùn nhö hình aûnh, aâm thanh, vv. Chính vì nhöõng öu ñieåm ñoù nhöõng nhaø laäp trình vaãn söû duïng UDP cho öùng duïng cuûa hoï, khi ñoù ngöôøi ta duøng nhieàu caùch ñeå xaùc nhaän cho goùi döõ lieäu ñi ñeán ñích chính xaùc vaø troïn veïn. Moät ví duï minh hoïa cô cheá xaùc nhaän: Client gôûi moät goùi döõ lieäu(package) cho server vaø chôø ñôïi xaùc nhaän töø server. Server nhaän ñöôïc goùi döõ lieäu seõ traû veà thoâng ñieäp phaûn hoài cho client xaùc nhaän goùi döõ lieäu ñaõ nhaän ñöôïc. Neáu client chôø ñôïi hôn moät khoaûng thôøi gian cho pheùp(time out) maø khoâng nhaän ñöôïc phaûn hoài töø server thì noù cho laø goùi döõ lieäu khoâng ñi ñeán ñích vaø truyeån laïi, neáu sau nhieàu laàn khoâng nhaän ñöôïc phaûn hoài töø server noù giaû ñònh raèng moái keát noái bò ñöùt hay server bò hoûng hoù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 Moâ Hình Keát Noái Theo Giao Thöùc UDP Client Hình 12: Moâ hình keát noái theo giao thöùc UDP 4. Giao thöùc TCP: TCP cung caáp khaû naêng truyeàn khoâng loãi töøng goùi döõ lieäu gôûi ñi ñeán maùy nhaän theo giao thöùc giao thöùc naøy phaûi coù traùch nhieäm thoâng baùo vaø kieåm tra xem döõ lieäu coù ñeán ñuû hay chöa, coù loãi hay khoâng coù loãi. Tröôùc khi chuyeån döõ lieäu bao giôø cuõng coù vieäc thieát laäp keânh truyeàn giöõa hay maùy. Do phaûi duy trì moái keát noái vaø kieåm tra döõ lieäu neân söû duïng TCP phaûi ñoøi hoûi chieám theâm moät soá taøi nguyeân vaø caùch laäp trình cho giao thöùc naøy hôi khoù (phaûi thöïc hieän caùc böôùc kieåm tra döõ lieäu theo yeâu caàu cuûa TCP). Truyeàn döõ lieäu theo giao thöùc TCP thöôøng aùp duïng cho caùc dòch vuï nhö truyeàn taäp tin, caùc dòch vuï tröïc tuyeán treân Internet ñoøi hoûi coù ñoä chính xaù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 Moâ Hình Keát Noái Theo Giao Thöùc TCP Hình 13: Moâ hình keát noái theo giao thöùc TCP 5. Ñòa Chæ IP: a. Giôùi thieäu ñòa chæ IP: Taát caû caùc maùy trong heä thoáng maïng(LAN, WAN, Internet) ñeàu coù ít nhaát 2 ñòa chæ: ñòa chæ vaät lyù(Mac Address) vaø ñòa chæ Internet. Ñòa chæ vaät lyù coøn ñöôïc goïi laø Ethernet address laø moät daõy bit goàm 48 bit ñöôïc gaùn bôûi caùc nhaø saûn xuaát, ñòa chæ naøy ñöôïc bieåu dieãn döôùi daïng soá thaäp luïc phaân (hecxa). Ví duï : 3A : 9D : 10 : 60 : 7C : 1F Nhö theá moãi card maïng(interface card) coù moät ñòa chæ duy nhaát ñòa chæ naøy ñöôïc quy ñònh töø nhaø saûn xuaát card maïng, tuy nhieân ñòa chæ vaät lyù khoâng theå hieän khaû naêng xaùc ñònh vò trí cuûa heä thoáng treân maïng. Ñeå giaûi quyeát vaán ñeà ñoù ngöôøi ta ñöa ra ñòa chæ IP(IP Address). Ñòa chæ IP phaûi laø duy nhaát treân maïng vaø coù moät daïng thoáng nhaát, moãi ñòa chæ IP goàm coù 4 byte vaø coù 2 thaønh phaàn: ñòa chæ ñöôøng maïng (Network ID) vaø ñòa chæ host(Host ID). Network ID Host ID 32 bits(4 byte) Ñòa chæ IP Class ID Neáu maùy tính ñöôïc noái maïng vôùi Internet thì ñòa chæ IP phaûi do NIC(Network Information Center) caáp. 3.2 Phaân Loaïi Ñòa Chæ IP Coù taát caû 5 lôùp ñòa chæ IP nhöng hieän nay coù 3 lôùp ñöôïc söû duïng laø lôùp A, B, vaø C. wLôùp A: 0 Network ID Host ID 31 30 24 23 0 Duøng cho heä thoáng maïng coù soá löôïng ñòa chæ host raát lôùn, soá löôïng naøy coù theå leân ñeán 16 trieäu ñòa chæ host. Ñeå coù theå nhaän bieát ñòa chæ thuoäc lôùp naøo ngöôøi ta caên cöù vaøo bit ñaàu tieân trong phaàn network ID, trong tröôøng hôïp lôùp A: bit ñaàu tieân trong phaàn ID network baèng 0. 8 bits ñaàu duøng cho phaàn Network ID coøn laïi 24 bits daønh cho phaàn Host ID. Nhö vaäy coù 126(27) ñòa chæ ñöôøng maïng vaø 16.777.214 (224)ñòa chæ Host ID. wLôùp B: Duøng cho heä thoáng maïng trung bình soá löôïng Host ID leân ñeán khoaûng 65 ngaøn. 1 0 Network ID Host ID 31 30 29 1615 0 Ñòa chæ lôùp B ñöôïc nhaän bieát qua bit ñaàu tieân trong phaàn Network ID bit ñaàu tieân coù giaù trò 1. Phaàn Network ID coù 16 bit(2 byte) vaø phaàn Host ID coù 16 bit nhö vaäy soá ñòa chæ ñöôøng maïng trong lôùp B naøy laø 16.382(214 -2)vaø soá ñòa chæ host 65.534(216 -2). wLôùp C: Ñòa chæ lôùp C duøng cho maïng nhoû coù soá löôïng maùy khoâng vöôïc quaù 254 maùy. 1 1 0 Network ID Host ID 31 30 29 28 8 7 0 Coù theå nhaän bieát ñòa chæ lôùp C thoâng qua 2 bit ñaàu tieân trong phaàn Network ID, hai bit naøy ñöôïc baät leân 1. Phaàn NetWork ID coù 2,097,150(221-2) ñòa chæ ñöôøng maïng vaø phaàn Host ID coù 254(28-2) ñòa chæ host. Chuùng ta coù theå xem soá ñòa chæ Host ID vaø Network ID qua baûng sau Lôùp Maïng Soá ñòa chæ ñöôøng maïng Soá host treân moät ñòa chæ maïng A 126 16,777,214 B 16,382 65,534 C 2,097,150 254 b. Subnet Mask(maët naï con): Subnet mask laø moät daõy 32 bit gioáng nhö ñòa chæ IP ñöôïc duøng keøm vôùi ñòa chæ IP ñeå xaùc ñònh maïng con. Khi coù moät ñòa chæ IP vaø keøm theo laø moät subnet mask chuùng ta coù theå xaùc ñònh ñòa chæ ñöôøng maïng con cuûa ñòa chæ IP ñoù baèng caùch thöïc hieän toaùn töõ AND giöõa IP vaø subnet ñaây laø caùch maø router xaùc ñònh cho goùi döõ lieäu ñi theo ñöôøng maïng naøo ñeå ñeå ñeán maùy nhaän. Ví duï : ñòa chæ IP:192.125.125.3 Subnet mask :255.255.255.0 CHÖÔNG 2: MAÏNG INTERNET Internet laø coâng ngheä thoâng tin lieân laïc môùi, vaø hieän ñaïi, noù taùc ñoäng saâu saéc vaøo xaõ hoäi cuoäc soáng chuùng ta, laø moät phöông tieän caàn thieát nhö ñieän thoaïi hay tivi, nhöng ôû möùc ñoä bao quaùt hôn. Chaúng haïn ñieän thoaïi chæ cho pheùp trao ñoåi thoâng tin qua aâm thanh, gioïng noùi. Vôùi Tivi, thoâng tin nhaän ñöôïc tröïc quan hôn. Coøn Internet ñöa chuùng ta vaøo theá giôùi coù taàm nhìn roäng hôn vaø baïn coù theå laøm moïi thöù: vieát thö, ñoïc baùo, xem baûn tin, giaûi trí, tra cöùu vaø thaäm chí coøn thöïc hieän nhöõng phi vuï laøm aên, ….Vì Internet laø maïng cuûa caùc maïng, töùc bao goàm nhieàu maïng maùy tính keát noái laïi vôùi nhau, Soá löôïng maùy tính noái maïng vaø soá löôïng ngöôøi truy caäp vaøo maïng Internet treân toaøn theá giôùi ñang ngaøy caøng taêng leân nhanh choùng. Ñaëc bieät töø naêm 1993 trôû ñi, maïng Internet khoâng chæ cho pheùp chuyeån taûi thoâng tin nhanh choùng maø coøn giuùp cung caáp thoâng tin, noù cuõng laø dieãn ñaøn vaø laø thö vieän toaøn caàu ñaàu tieân. Caùc thoâng tin ñöôïc ñaët raûi raùc treân toaøn caàu coù theå truyeàn thoâng ñöôïc vôùi nhau nhö moät thieát bò Modem vaø ñöôøng daây ñieän thoaïi. Heä ñieàu haønh UNIX laø heä phaùt trieån maïnh vôùi raát nhieàu coâng cuï hoå trôï vaø ñaûm baûo caùc phaàn meàm öùng duïng coù theå chuyeån qua laïi treân caùc hoï maùy khaùc nhau (maùy mini, maùy tính lôùn vaø hieän nay laø maùy vi tính). Beân caïnh ñaõ heä ñieàu haønh UNIX BSD coøn cung caáp nhieàu thuû tuïc Internet cô baûn, ñöa ra khaùi nieäm Socket vaø cho pheùp chöông trình öùng duïng thaâm nhaäp vaøo Internet moät caùch deã daøng. Internet coù theå taïm hieåu laø lieân maïng goàm caùc maùy tính noái vôùi nhau theo moät nghi thöùc vaø moät soá thuû tuïc chung goïi laø TCP/IP (Transmission Control Protocol/Internet Protocol).Thuû tuïc vaø nghi thöùc naøy tröôùc kia ñaõ ñöôïc thieát laäp vaø phaùt trieån laø cho moät ñeà aùn nghieân cöùu cuûa Boä Quoác Phoøng Myõ vôùi muïc ñích lieân laïc giöõa caùc maùy tính noái ñôn leû vaø caùc maïng maùy tính vôùi nhau maø khoâng phuï thuoäc vaøo caùc haõng cung caáp maùy tính. Söï lieân laïc naøy vaãn ñöôïc baûo ñaûm lieân tuïc ngay caû trong tröôøng hôïp coù nuùt trong maïng khoâng hoaït ñoäng. Ngaøy nay, Internet laø moät maïng maùy tính coù phaïm vi toaøn caàu bao goàm nhieàu maïng nhoû cuõng nhö caùc maùy tính rieâng leû ñöôïc keát noái vôùi nhau ñeå coù theå lieân laïc vaø trao ñoåi thoâng tin. Treân quan ñieåm Client / Server thì coù theå xem Internet nhö laø maïng cuûa caùc maïng cuûa caùc Server, coù theå truy xuaát bôûi haøng trieäu Client. Vieäc chuyeån vaø nhaän thoâng tin treân Internet ñöôïc thöïc hieän baèng nghi thöùc TCP/IP. Nghi thöùc naøy goàm hai thaønh phaàn laø Internet protocol (IP) vaø transmission control protocol (TCP) (ñöôïc nguyeân cöùu ôû nhöõng phaàn sau). IP caét nhoû vaø ñoùng goùi thoâng tin chuyeån qua maïng, khi ñeán maùy nhaän, thì thoâng tin ñoù seõ ñöôïc raùp noái laïi. TCP baûo ñaûm cho söï chính xaùc cuûa thoâng tin ñöôïc chuyeàn ñi cuõng nhö cuûa thoâng tin ñöôïc raùp noái laïi ñoàng thôøi TCP cuõng seõ yeâu caàu truyeàn laïi tin thaát laïc hay hö hoûng .Tuøy theo thoâng tin löu tröõ vaø muïc ñích phuïc vuï maø caùc server treân Internet seõ ñöôïc phaân chia thaønh caùc loaïi khaùc nhau nhö Web Server, email Server hay FTP Server. Moãi loaïi server seõ ñöôïc toái öu hoùa theo muïc ñích söû duïng. Töø quan ñieåm ngöôøi söû duïng, Internet troâng nhö laø bao goàm moät taäp hôïp caùc chöông trình öùng duïng söû duïng nhöõng cô sôû haï taàng cuûa maïng ñeå truyeàn taûi nhöõng coâng vieäc thoâng tin lieân laïc. Chuùng ta duøng thuaät ngöõ "interoperability" ñeå chæ khaû naêng nhöõng heä maùy tính nhieàu chuûng loaïi hôïp taùc laïi vôùi nhau ñeå giaûi quuyeát vaán ñeà. Haàu heát ngöôøi söû duïng truy caäp Internet thöïc hieän coâng vieäc ñôn giaûn laø chaïy caùc chöông trình öùng duïng treân moät maùy tính naøo ñoù goïi laø maùy client maø khoâng caàn hieåu loaïi maùy tính(Server) ñang ñöôïc truy xuaát, kyû thuaät TCP/IP, caáu truùc haï taàng maïng hay Internet ngay caû con ñöôøng truyeàn döõ lieäu ñi qua ñeå ñeán ñöôïc ñích cuûa noù.Chæ coù nhöõng ngöôøi laäp trình maïng caàn xem TCP/IP nhö laø moät maïng vaø caàn hieåu moät vaøi chi tieát kyõ thuaät. Hình 3 : Lieân laïc treân Internet 1. Internet baét nguoàn töø ñaâu? Internet baét ñaàu töø ñaàu naêm 1969 döôùi caùi teân laø ARPANET(Advanced Research Projects Agency) coøn goïi laø ARPA. Noù thuoäc boä quoác phoøng Myõ (DoD). Ñaàu tieân noù chæ coù 4 maùy ñöôïc thieát keá ñeå minh hoaï khaû naêng xaây döïng maïng baèng caùch duøng maùy tính naèm raûi raùc trong moät vuøng roäng. Vaøo naêm 1972, khi ARPANET ñöôïc trình baøy coâng khai, ñaõ ñöôïc 50 tröôøng ñaïi hoïc vaø caùc vieän nghieân cöùu noái keát vaøo. Muïc tieâu cuûa ARPANET laø nghieân cöùu heä thoáng maùy tính cho caùc muïc ñích quaân söï. chính phuû vaø quaân ñoäi tìm kieám nhöõng phöông caùch ñeå laøm cho maïng traùnh ñöôïc caùc loãi, maïng naøy thieát keá chæ cho pheùp caùc vaên thö löu haønh töø maùy tính naøy ñeán maùy tính khaùc, ñoái vôùi chính phuû vaø quaân ñoäi, maùy tính ñaõ coù nhöõng coâng duïng roõ raøng vaø saâu roäng. tuy nhieân, moät trong nhöõng moái baän taâm chính yeáu laø tính ñaùng tin caäy vì noù coù lieân quan ñeán vaán ñeà sinh töû. Keá hoaïch ARPANET ñaõ ñöa ra nhieàu ñöôøng noái giöõa caùc maùy tính. Ñieàu quan troïng nhaát laø caùc maùy tính baïn coù theå gôûi caùc vaên thö bôûi baát kyø con ñöôøng khaû duïng naøo, thay vì chæ qua moät con ñöôøng coá ñònh. Ñaây chính laø nôi maø vaán ñeà veà giao thöùc ñaõ xuaát hieän. 2. Giao thöùc maø internet söû duïng laø gì? - Giao thöùc hay coøn goïi laø nghi thöùc laø caùc phöông tieän ñeå laøm cho söï thoâng tin trôû neân khaû höõu. Moät (loïai) quyeát ñònh phaûi ñöôïc thöïc hieän khi hai hay nhieàu maùy tính muoán gôûi vaø nhaän döõ lieäu. Ñaàu tieân ARPANET ñaõ ñöa ra giao thöùc Host-to-Host Protocol, nhöng giao thöùc naøy khoâng ñaùng tin caäy vaø noù chæ giôùi haïn trong moät soá caùc maùy. Vaøo cuoái naêm 1970 caùc maïng khaùc cuõng bung ra trong thöïc teá, maïng UUCP goàm moät nhoùm roâì cuõng ñaõ noái ñöôïc haøng traêm maùy roài haøng maùy. Vaøo cuoái naêm 1980 maïng NSFNET maïng cuûa National Science Foundation ñöôïc phaùt trieån ñeå noái 5 trung taâm sieâu maùy tính cuûa noù, noù laø maïng haáp daãn cho taát caû caùc nhaø nghieân cöùu vaø caùc vieän ñaïi hoïc cuõng nhö caùc vieän nghieân cöùu. Naêm 1972, baét ñaàu theá heä thöù hai cuûa giao thöùc maïng, ñaõ laøm phaùt sinh ra moät nhoùm giao thöùc ñöôïc goïi laø Transmission Control Protocol/ Internet Protocol vieát taét laø TCP/IP. Naêm 1983, TCP/IP laø boä giao thöùc cho ARPANET, TCP/IP ñaõ trôû thaønh moät trong nhöõng giao thöùc maïng ñöôïc duøng roäng raõi nhaát. Sau cuøng taát caû caùc maïng ñöôïc taøi trôï bôûi caù nhaân hay xaõ hoäi -maïng ARPANET, MILNET, UUCP, BITNET, CSNET vaø NASA Science Internet ñaõ lieân keát trong moät maïng khu vöïc NSFNET vaø ARPANET giaûi taùn vaø ngaøy caøng coù nhieàu maïng khaùc theâm vaøo... - Ngaøy nay ñeå thöïc hieän vieäc truyeàn thoâng qua maïng thoâng qua trình duyeät Web, vaø ta cuõng caàn moät giao thöùc ñeå thöïc hieän coâng vieäc naøy. Maëc duø hieän nay cuõng ñang coù raát nhieàu giao thöùc ñeå truyeàn thoâng tin nhöng nhìn chung coù hai giao thöùc thöôøng ñöôïc caùc laäp trình vieân söû duïng ñoù laø: TCP/IP(IP: laø giao thöùc Internet, TCP: giao thöùc truyeàn taûi) vaø giao thöùc UDP(giao thöùc goùi döõ lieäu ngöôøi duøng). Vì chöông trình cuûa em söû duïng giao thöùc TCP/IP neân sau ñaây em seõ trình baøy chi tieát giao thöùc naøy. 3. Caùc dòch vuï keát noái ñeán Internet: Muoán truy nhaäp Internet, baïn phaûi ñaêng kyù keát noái. Coù nhieàu phöông phaùp ñeå coù theå ñaêng kyù keát noái, vaø luoân coù phöông phaùp môùi trong quaù trình thieát keá. ba phöông phaùp phoå bieán nhaát hieän nay laø: Dòch vuï tröïc tuyeán, nhaø cung caáp dòch vuï Internet(ISP), vaø truy caäp tröïc tuyeán. - Dòch vuï tröïc tuyeán(online service) laø moät doanh nghieäp: nhö AOL, CompuServe, Microsoft Network(MSN),...cung caáp nhieàu dòch vuï truyeàn thoâng, trong ñoù coù truy caäp Internet. Khi söû duïng dòch vuï tröïc tuyeán, baïn chaïy chöông trình keát noái cuûa hoï ñeå ñaêng nhaäp dòch vuï cung do hoï cung caáp, ñeán luùc keát noái ñeå chaïy Internet Explorer. Dòch vuï tröïc tuyeán thu cöôùc phí haøng thaùng(Khoâng aùp duïng cho ngöôøi ôû Vieät Nam). - Nhaø cung caáp dòch vuï Internet(ISP): laø moät coâng ty nhoû hôn, chuyeân duïng hôn, cung caáp tuøy choïn khoâng nhieàu baèng dòch vuï tröïc tuyeán. ISP cho pheùp truy nhaäp Internet theo giôø vôùi cöôùc phí thaáp, hoaëc truy caäp khoâng giôùi haïn vôùi cöôùc phí cao hôn. Hoï coøn caáp cho khaùch moät taøi khoaûn E-mail. ÔÛ Vieät Nam hieän coù ba dòch vuï ISP ñang hoaït ñoäng: VNN, FPT, vaø NetNam. - Truy nhaäp tröïc tuyeán(direct access) khaû duïng ôû nhieàu hoïc vieän giaùo duïc hoaëc coâng ty lôùn. Thay vì söû duïng Modem, nhöõng toå chöùc naøy thueâ bao moät ñöôøng truyeàn chuyeân duïng ñeå cung caáp truy nhaäp Internet 24/24 giôø. Chöông IIi: Moät soá haøm socket I. Khaùi nieäm veà socket: Trong moâ hình maïng ñeå hai maùy tính coù theå trao ñoåi thoâng tin cho nhau thì caàn phaûi taïo ra keát noái giöõa chuùng. Trong quaù trình laøm vieäc ngöôøi ta nhaän thaáy raèng nhöõng nhaø laäp trình öùng duïng raát khoù khaên trong vieäc thieát laäp keát noái vaø truyeàn taûi döõ lieäu giöõa caùc maùy tính vôùi nhau. Vì theá ngöôøi ta xaây döïng khaùi nieäm socket, khaùi nieäm naøy ñöôïc ñöa ra ñaàu nhöõng naêm 80 bôûi caùc nhaø khoa hoïc maùy tính ôû California taïi Berkeley. Khaùi nieäm naøy ñöôïc ñöa ra töø yù töôûng phaân taàng, trong ñoù Windows sockets Application Programming Interface(Winsock API) laø thö vieän caùc haøm do haõng Berkeley Software Distribution of UNIX ñöa ra. Nhaèm laøm ñôn giaûn hoùa quaù trình thieát laäp keát noái vaø chuyeån döõ lieäu. socket döïa treân giao thöùc TCP/IP taïo moâi tröôøng trung gian cho caùc öùng duïng vaø giao thöùc beân döôùi. Server socket Client socket Hình 14: minh hoïa cô cheá socket Socket ñöôïc xem laø moät caáu truùc döõ lieäu tröøu töôïng(asbtraction data structure) duøng taïo ra moät keânh truyeàn(channel) ñeå gôûi vaø nhaän döõ lieäu giöõa caùc process trong cuøng chöông trình hay caùc giöõa caùc maùy trong cuøng moâi tröôøng maïng vôùi nhau. Hay noùi moät caùch ñôn giaûn hôn chuùng ta xem socket nhö laø “cô cheá oå caém”. Khi keát noái giöõa client vaø Server töông töï nhö vieäc caém phích ñieän vaøo oå caém ñieän. client thöôøng ñöôïc xem nhö laø phích caém ñieän, coøn server ñöôïc xem nhö laø oå caém ñieän, moät oå caém coù theå caém vaøo ñoù nhieàu phích ñieän khaùc nhau cuõng nhö moät server coù theå phuïc vuï cho nhieàu client khaùc nhau. Trong quaù trình truyeàn, nhaän döõ lieäu caàn coù moät maùy ñoùng vai troø laø server vaø moät maùy ñoùng vai troø client, ñaàu tieân server phaûi taïo ra moät socket vaø chôø ñôïi caùc yeâu caàu keát noái töø client. client taïo ra socket cho rieâng noù xaùc ñònh vò trí server (döïa vaøo teân cuûa server hay ñòa chæ cuûa server trong maïng) vaø tieán haønh vieäc keát noái vôùi server, sau khi keát noái ñöôïc thieát laäp client vaø server coù theå tieán haønh vieäc trao ñoåi döõ lieäu vôùi nhau. Toùm laïi Socket laø ñaàu (endpoint) trao ñoåi döõ lieäu giöõa caùc quaù trình, qua ñoù caùc öùng duïng WinSock gôûi / nhaän döõ lieäu qua maïng. Coù hai loaïi Socket : Stream Socket : Döïa treân nghi thöùc TCP ( Tranmission Control Protocol ), vieäc truyeàn döõ lieäu chæ thöïc hieän giöõa hai quaù trình ñaõ thieát laäp keát noái. Döõ lieäu ñöôïc truyeàn tin caäy, ñuùng trình töï vaø khoâng laäp laïi. Döõ lieäu ñöôïc truyeàn nhö doøng lieân tuïc caùc byte khoâng phaân bieät ranh giôùi caùc record Datagram Socket : Döïa treân nghi thöùc UDP ( User Datagram Protocol ), vieäc truyeàn döõ lieäu khoâng yeâu caàu coù söï thieát laäp keát noái giöõa hai quaù trình. Döõ lieäu truyeàn khoâng tin caäy, coù theå khoâng ñuùng trình töï hoaëc laäp laïi. Döõ lieäu ñöôïc truyeàn nhö doøng caùc record. II.Laäp trình Winsock: WinSock API (Windows Sockets Application Programming Interface) laø thö vieän caùc haøm giao dieän laäp trình maïng cho Microsoft Windows. WinSock töông thích vôùi hoï nghi thöùc maïng TCP/IP. a.Khaùi nieäm Port :Port xaùc ñònh duy nhaát moät quaù trình treân moät maùy trong maïng. Moät TCP/IP Socket goàm moät ñòa chæ IP keát hôïp vôùi moät port ? xaùc ñònh duy nhaát moät quaù trình treân maïng. Moät soá port daønh rieâ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 . . . . . . . . . . . . . . . . . . . . . Caùc file caàn thieát : WINSOCK.DLL hay WSOCK32.DLL ( tuyø version 16 hay 32 bit cuûa Windows ). WINSOCK.LIB hay WSOCK32.LIB. WINSOCK.H. Giôùi thieäu moät soá haøm cuûa WinSock: Döôùi ñaây chæ giôùi thieäu chöùc naêng cuûa moät soá haøm WinSock, khoâng trình baøy prototype cuûa caùc haøm Caùc haøm khôûi ñoäng WinSock : Duøng ñeå khôûi ñaàu vaø keát thuùc quaù trình söû duïng WinSock. WSAStartup() : Khôûi ñoäng WinSock. WSACleanup() : Keát htuùc WinSock. WSAGetLastError() : Laáy maõ sai vöøa xaûy ra. Caùc haøm Socket : Duøng ñeå thieát laäp quaù trình trao ñoåi döõ lieäu treân maïng. socket() : taïo socket truyeàn döõ lieäu. bind() : ñònh danh cho socket vöøa taïo (gaùn port cho socket). listen() : laéng nghe keát noái. accept() : chaáp nhaän keát noái töø client. connect() : keát noái vôùi server. send(), recv() : gôûi, nhaän döõ lieäu vôùi stream socket. sendto(), recvfrom() : gôûi, nhaän döõ lieäu vôùi datagram socket. . . . . . . . . Caùc haøm khaùc : inet_addr() : chuyeån töø ñòa chæ IP daïng soá thaäp phaân coù chaám sang ñòa chæ internet. inet_ntoa() : ngöôïc laïi. gethostname() : cho teân maùy hieän haønh. gethostbyname(),WSAAsyncGetHostByName() : cho ñòa chæ IP öùng vôùi teân maùy. gethostbyaddr(),WSAAsyncGetHostByAddr() : cho teân maùy öùng vôùi ñòa chæ IP. . . . . . . . . WinSock error: Loã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. Loã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 : Duøng Datagram Socket : Moâ hình minh hoaï hoaït ñoäng cuûa 2 daïng Socket PHaàN IV GIÔÙI THIeäu chöông trình minh hoïa baùo chaùy Chöông trình bao goàm 2 thaønh phaàn: Moät chaïy ôû caùc maùy chuû goïi taét laø server program, moät chaïy ôû caùc maùy traïm goïi laø client program. Giao dieän chaïy ôû server bao goàm caùc thaønh phaàn I.Chat 1.Host name (Teân maùy chuû) 2.Serverlimit ( Soá maùy con toái ña coù theå keát noái maêc ñònh laø 16) 3.Host button ( Sau khi xaùc laäp caùc thoâng soá treân baám vaøo host button maùy naøy seõ trôû thaønh maùy chuû). 4.Phaàn coøn laïi daønh cho chat . II.Phaàn naøy bao goàm caùc phím ñieàu khieån caùc maùy con nhö : Goïi chöõa chaùy (Call 115),Taét Maøn Hình(Power Off), Phun nöôùc (Water), Taét maùy (Shutdown). Phaàn chaïy taïi maùy client: I.Chat 1.Ñaùnh vaøo ñòa chæ IP hoaëc teân maùy chuû. 2.Ñaùnh vaøo teân maùy con. 3.Sau ñoù click connect. Maùy tính seõ baét ñaàu giaùm saùt quaù trình xaûy ra chaùy noå cuûa heä thoáng. II. Monitor : Bao goàm caùc thaønh phaàn giaùm saùt nhö traïng thaùi COM, Heä thoáng shutdown. Taøi Lieäu Tham Khaûo.

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

  • docLUANVAN.DOC