3.2.4.1. Giới thieơu chung
Đeơ có theơ tiên hành đieău khieơn hoaịc giám sát các quá trình thực baỉng máy tính, trước hêt phại có được môi lieđn heơ caăn thiêt giữa máy tính và thê giới beđn ngoài. Moơt chương trình đieău hành heơ thông ghép nôi phại có đụ khạ naíng đạm nhaơn vieơc thu thaơp thođng tin từ beđn ngoài và đieău khieơn các thiêt bị ghép nôi với máy tính. Coơng giao lưu với thê giới beđn ngoài được mở baỉng giao dieơn. Đôi với các máy tính PC tuađn theo chuaơn cođng nghieơp có theơ thực hieơn các khạ naíng ghép nôi sau:
• Sử dúng card mở roơng được caĩm vào máy tính, theo cách này cho phép đát được tôc đoơ truy caơp lớn nhât, tuy vaơy cũng đòi hỏi chi phí cao.
• Các giao dieơn đã được tieđu chuaơn hóa đóng vai trò ghép nôi máy tính PC với các mách đieơn beđn ngoài. Cách ghép nôi qua coơng nôi tiêp thường được lựa chĩn vì có theơ cho phép tiêt kieơm chi phí.
• Ghép nôi với moơt boơ xử lý rieđng đeơ thực hieơn những bài toán khác mà khođng caăn trao đoơi dữ lieơu với máy tính PC. Khi đó người sử dúng phại phađn định rõ bài toán laơp trình đôi với heơ thông này.
• Các giao dieơn có tređn máy tính PC như giao dieơn nôi tiêp, giao dieơn song song, giao dieơn coơng USB... cho phép sử dúng trực tiêp làm giao dieơn. Nhờ vaơy đôi với rât nhieău ứng dúng khođng caăn phaăn cứng boơ sung.
3.2.4.2. Truyeăn thođng nôi tiêp và coơng rs232
Truyeăn thođng nôi tiêp
Các máy tính có theơ truyeăn dữ lieơu theo hai cách : truyeăn song song và truyeăn nôi tiêp. Trong truyeăn dữ lieơu song song thường caăn 8 hoaịc nhieău đường dađy dăn đeơ truyeăn dữ lieơu đên moơt thiêt bị cách xa khoạng vài bước.
Moơt ví dú cụa truyeăn dữ lieơu song song là các thiêt bị như máy in và các oơ cứng đeău sử dúng phương thức truyeăn dữ lieơu song song đên máy tính. Moêi thiêt bị này sử dúng moơt đường cáp goăm nhieău dađy dăn ghép song song với nhau. Maịc dù ưu đieơm cụa truyeăn dữ lieơu song song là tôc đoơ truyeăn rât nhanh, các dữ lieơu được truyeăn cùng lúc trong moơt thời gian ngaĩn, nhưng hán chê lớn nhât là khoạng cách truyeăn đi khođng được xa. Muôn truyeăn được xa thì đường dađy cáp phại dài và đường kính dađy phại lớn hơn rât nhieău, dăn đên rât tôn kém. Hơn nữa nêu đường truyeăn quá dài, các dữ lieơu lái được truyeăn đoăng thời dăn đên vieơc dữ lieơu deê bị mât tređn đường truyeăn. Chính vì những hán chê này mà các thiêt bị được sử dúng trong y tê đòi hỏi đoơ chính xác cao thường khođng dùng phương pháp truyeăn dữ lieơu song song, thay vào đó là phương pháp truyeăn dữ lieơu nôi tiêp. Các coơng truyeăn nôi tiêp thường được sử dúng phoơ biên hieơn nay như coơng RS232, coơng USB và coơng RS482. Tuy nhieđn, các tài lieơu hieơn nay lieđn quan đên vân đeă sử dúng coơng USB còn rât ít và coơng RS482 lái còn rât mới neđn vieơc sử dúng coơng RS232 văn được ưa chuoơng hơn cạ. Phám vi cụa đeă tài này sẽ nghieđn cứu kỹ thuaơt ghép nôi máy tính qua coơng RS232.
Các cơ sở cụa truyeăn thođng nôi tiêp
Khi moơt boơ vi xử lí truyeăn thođng với thê giới beđn ngoài thì nó câp dữ lieơu dưới dáng từng đốn 8 bit moơt. Trong moơt sô trường hợp, chẳng hán như các máy in thì thođng tin đơn giạn được lây từ đường bus dữ lieơu 8 bít và được gởi đi tới đường bus dữ lieơu 8 bít cụa máy in. Đieău này có theơ làm vieơc chư khi đường cáp bus khođng quá dài vì các đường cáp dài làm suy giạm thaơm chí làm méo tín hieơu. Ngoài ra, đường dữ lieơu 8 bít giá thường đaĩt. Vì những lí do này, vieơc truyeăn thođng nôi tiêp được dùng đeơ truyeăn dữ lieơu giữa hai heơ thông ở cách xa nhau hàng traím đên hàng trieơu daịm. Hình 10.1 là sơ đoă truyeăn nôi tiêp so với sơ đoă truyeăn song song.
Hình 3.39. Sơ đoă truyeăn dữ lieơu nôi tiêp so với sơ đoă truyeăn song song
Thực tê là trong truyeăn nôi tiêp là moơt đường dữ lieơu duy nhât được dùng thay cho moơt đường dữ lieơu 8 bít cụa truyeăn thođng song song làm cho nó khođng chư rẹ hơn rât nhieău mà nó còn mở ra khạ naíng đeơ hai máy tính ở cách xa nhau có truyeăn thođng qua đường thối.
Đôi với truyeăn thođng nôi tiêp thì đeơ làm được các bít dữ lieơu phại được chuyeơn đoơi thành các bít nôi tiêp sử dúng thanh ghi giao dịch vào song song – ra nôi tiêp. Sau đó nó có theơ được truyeăn qua moơt đường dữ lieơu đơn. Đieău này có nghĩa là ở đaău thu cũng phại có moơt thanh vào nôi tiêp – ra song song đeơ nhaơn dữ lieơu nôi tiêp và sau đó gói chúng thành từng bít moơt.
Truyeăn thođng dữ lieơu nôi tiêp đoăng boơ và dị boơ
Truyeăn thođng dữ lieơu nôi tiêp sử dúng hai phương pháp đoăng boơ và dị boơ. Phương pháp đoăng boơ là phương pháp truyeăn moơt khôi dữ lieơu (các kí tự chẳng hán ) tái cùng thời đieơm trong khi đó truyeăn dị boơ chư truyeăn từng bít moơt.
Múc đích đeă ra lúc ban đaău khi xađy dựng tieđu chuaơn RS-232 cho máy tính, là truyeăn dữ lieơu khođng đoăng boơ qua các đường dăn TxD và RxD. Vì vaơy nêu muôn thực hieơn được vieơc truyeăn đoăng boơ thì ta caăn phại có moơt thanh ghi dịch. Trong khi moơt cuoơc truyeăn đoăng boơ được giữ nhịp tới moơt thanh ghi dịch hoàn toàn khođng theơ giại quyêt baỉng moơt
tôc đoơ truyeăn cô định, thì vieơc truyeăn dữ lieơu dị boơ lái được thực hieơn với moơt tôc đoơ bit/giađy (tôc đoơ baud) đã được quy ước chính xác.
Ví dú ta có theơ truyeăn với tôc đoơ đúng baỉng 1200 bit moêi giađy (1200 baud). Moêi byte dữ lieơu được mở đaău baỉng moơt bit baĩt đaău (bit start) và kêt thúc baỉng moơt bit dừng (bit stop). Vieơc truyeăn dữ lieơu ở đeă tài nghieđn cứu này được phép baĩt đaău theo cách dị boơ, ở moơt thời đieơm bât kì, bởi vì bit baĩt đaău đã đóng vai trò đoăng boơ với boơ nhaơn nôi tiêp. Những hieơu biêt xung quanh vân đeă truyeăn dữ lieơu nôi tiêp dị boơ có theơ tìm thây trong rât nhieău tài lieơu tham khạo, thuaơn lợi cho vieơc nghieđn cứu ở đeă tài này. [6]
Có theơ viêt phaăn meăm đeơ sử dúng moơt trong hai phương pháp truyeăn dữ lieơu nôi tiêp đoăng boơ và dị boơ, những chương trình có theơ rât dài và buoăn tẹ. Vì lí do này mà nhieău nhà sạn xuât đã cho ra thị trường nhieău lối IC chuyeđn dúng phúc vú cho truyeăn thođng dữ lieơu nôi tiêp. Những IC này phúc vú như các boơ thu – phát dị boơ toơng hợp VART (Universal Asynchronous Receiver Transmitter) và các boơ thu – phát đoăng – dị boơ toơng hợp UBART (Universal Asynchronous Receiver Transmitter). Boơ vi đieău khieơn 8051 có cài sẵn moơt UART mà nó sẽ được bàn kĩ ở phaăn sau.
Truyeăn dữ lieơu đơn cođng, bán đơn cođng và song cođng
Trong truyeăn dữ lieơu, nêu dữ lieơu có theơ vừa được phát và vừa được thu thì gĩi là truyeăn song cođng. Đieău này tương phạn với truyeăn đơn cođng, chẳng hán như các máy in chư nhaơn dữ lieơu từ máy tính. Truyeăn song cođng có theơ có hai lối là bán song cođng và song cođng hoàn toàn, phú thuoơc vào truyeăn dữ lieơu có xạy ra đoăng thời khođng. Nêu dữ lieơu được truyeăn theo moơt đường tái moơt thời đieơm thì được gĩi là truyeăn bán song cođng. Nêu dữ lieơu có theơ đi theo cạ hai đường cùng moơt lúc thì gĩi là song cođng toàn phaăn. Tât nhieđn, truyeăn song cođng đòi hỏi phại có hai đường dữ lieơu, moơt đeơ phát và moơt đeơ thu dữ lieơu cùng moơt lúc.
Hình 3.40. Truyeăn dữ lieơu đơn cođng, bán cođng và song cođng
Truyeăn thođng nôi tiêp dị boơ và đóng khung dữ lieơu
Dữ lieơu đi vào ở đaău thu trong truyeăn dữ lieơu nôi tiêp chư là các sô 0 và 1, khó khaín ở choê làm sao cho các dữ lieơu ây có nghĩa khi beđn phát và beđn thu khođng cùng thông nhât veă moơt teơp các luaơt, moơt thụ túc, veă cách dữ lieơu được đóng gói, bao nhieđu bít táo neđn moơt kí tự và khi nào dữ lieơu baĩt đaău và kêt thúc. Đieău quan trĩng ở đađy là boơ truyeăn và boơ nhaơn phại được thiêt laơp với các thođng sô truyeăn như nhau.
Các bít baĩt đaău và dừng
Truyeăn thođng dữ lieơu nôi tiêp dị boơ được sử dúng roơng rãi cho các phép truyeăn hướng kí tự, còn các boơ truyeăn dữ lieơu theo khôi thì sử dúng phương pháp đoăng boơ. Trong phương pháp dị boơ, moêi kí tự được bô trí giữa các bít baĩt đaău (start) và các bít dừng (stop). Cođng vieơc này gĩi là đóng gói dữ lieơu. Trong đóng gói dữ lieơu đôi với truyeăn thođng dị boơ thì dữ lieơu, chẳng hán là các kí tự mã ASCII được đóng gói giữa moơt bít baĩt đaău và moơt bít dừng. Bít baĩt đaău luođn luođn chư là moơt bít, còn bít dừng có theơ là moơt hoaịc hai bít. Bít baĩt đaău luođn là bít thâp (0) và các bít dừng luođn là bít cao (1). Ví dú, hãy xét ví dú tređn
hình 10.3 trong đó kí tự « A » cụa mã ASCII (8 bít nhị phađn là 0100 0001) đóng gói khung giữa moơt bít baĩt đaău và moơt bít dừng. Lưu ý raỉng bít thâp nhât LSB được gửi ra đaău tieđn.
Hình 3.41. Đóng khung moơt kí tự “A”
Vieơc đóng khung moơt ký tự “A” cụa mã ASCII (41H) có tín hieơu là 1 (cao) được coi như là moơt dâu (mark), còn khođng có tín hieơu tức là 0 (thâp) thì được coi là khoạng trông (space). Lưu ý raỉng phép truyeăn baĩt đaău với bit start sau đó bít D0 (bít có trĩng sô thâp nhât LSB) được truyeăn, kê đên là các bít D1, D2, … cho đên bit D7 (bit có trĩng sô cao nhât MSB) được truyeăn và cuôi cùng là truyeăn bit dừng (stop) đeơ báo kêt thúc vieơc truyeăn moơt kí tự « A ».
a. Tôc đoơ truyeăn dữ lieơu
Tôc đoơ truyeăn dữ lieơu trong truyeăn thođng dữ lieơu nôi tiêp lá tôc đoơ bit tređn giađy (bps – bit per second) hay còn gĩi baỉng thuaơt ngữ thođng dúng là tôc đoơ baud. Tuy nhieđn, tôc đoơ baud và tôc đoơ bit/giađy khođng hoàn toàn là moơt. Đieău này xuât phát từ vieơc tôc đoơ baud là thuaơt ngữ cụa modem và được định nghĩa như sô laăn thay đoơi cụa tín hieơu trong moơt giađy. Trong các modem có những trường hợp khi xuât hieơn moơt sự thay đoơi cụa tín hieơu thì vài bit dữ lieơu được truyeăn. Nhưng đôi với moơt dađy dăn thì tôc đoơ baud và tôc đoơ bit/giađy là như nhau.
Tôc đoơ truyeăn dữ lieơu cụa moơt heơ thông máy tính phú thuoơc nhieău vào các coơng truyeăn thođng kêt nôi vào trong heơ thông đó. Chẳng hán như các máy PC/XT trước đađy cụa IBM, dữ lieơu có theơ được truyeăn với tôc đoơ100 đên 9600 bps. Tuy nhieđn, trong những
naím gaăn đađy thì các máy tính dựa tređn Pentium truyeăn dữ lieơu với tôc đoơ leđn tới 56 Kbps. Nhưng ta caăn lưu ý moơt đieău là trong truyeăn thođng nôi tiêp dị boơ thì tôc đoơ baud nhìn chung bị giới hán ở khoạng 100.000 bps do đoơ dài cụa dađy bị hán chê.
b. Câu trúc coơng nôi tiêp
Coơng nôi tiêp RS-232 được sử dúng đeơ truyeăn dữ lieơu hai chieău giữa máy tính và thiêt bị ngối vi, có các ưu đieơm sau:
• Khoạng cách truyeăn xa hơn truyeăn song song
• Sô dađy kêt nôi ít
• Có theơ truyeăn khođng dađy dùng hoăng ngối.
• Có theơ ghép nôi với vi đieău khieơn hay PLC (Programmable Logic Device).
• Cho phép nôi máng.
• Có theơ tháo laĩp thiêt bị trong lúc máy tính đang làm vieơc.
• Có theơ cung caĩp nguoăn cho các mách đieơn đơn giạn. Các đaịc tính kỹ thuaơt cụa chuaơn RS-232 như sau:
• Chieău dài cable cực đái : 15m.
• Tôc đoơ truyeăn dữ lieơu cực đái : 20 Kbps
• Đieơn áp ngõ ra cực đái : ± 25V.
• Đieơn áp ngõ ra có tại ± 5V đên ± 15V.
• Trở kháng tại và trở kháng ngõ vào : 3K đên 7K.
• Đieơn áp ngõ vào ± 15V.
• Đoơ nháy cụa ngõ vào ± 3V.
Coơng RS-232 hay coơng COM có hai dáng DB25 (25 chađn) và DB9 (9 chađn) được mođ tạ như hình sau :
Hình 3.42. Coơng RS-232 lối DB25.
Hình 3.43. Coơng RS-232 lối DB9.
Tuy nhieđn, ở đeă tài này chư nghieđn cứu vieơc truyeăn dữ lieơu dị boơ baỉng coơng DB9, do lối coơng này haău như bât kỳ máy vi tính nào cũng đeău được trang bị, vì vaơy có theơ nghieđn cứu thiêt bị này ở các nơi khác nhau mà khođng phại mang theo máy tính naịng neă, táo đieău kieơn thuaơn lợi cho người nghieđn cứu.
Coơng RS-232
Các chađn cụa coơng RS-232 lối DB9 như sau :
Sô chađn Mođ tạ
1 2 3 4 5 6 7 8 9
Data carrier detect (DCD) Received data (RxD) Transmitted data (TxD) Data terminal ready (DTR)
Signal ground (GND) Data set ready (DSR) Request to send (RTS)
Clear to send (CTS) Ring indicator (RL)
Tránh tín hieơu thuoơc máng dữ lieơu Dữ lieơu được nhaơn
Dữ lieơu được gửi Đaău dữ lieơu sẵng sàng
Đât cụa tín hieơu Dữ lieơu sẵn sàng
Yeđu caău gửi Xóa đeơ gửi Báo chuođng
Bạng 1: Bạng mođ tạ chức naíng các chađn cụa coơng DB9
Vieơc trao đoơi tín hieơu thođng thường qua 2 chađn RxD (nhaơn) và TxD (truyeăn) cụa coơng nôi tiêp RS-232. Các chađn còn lái có chức naíng hoê trợ đeơ thiêt laơp và đieău khieơn quá trình truyeăn, được gĩi là tín hieơu baĩt tay (handshake). Tín hieơu truyeăn theo chuaơn RS-232 cụa EIA (Electronics Industry Associations) quy ước mức logic 1 tương ứng với mức đieơn áp từ –3V đên –25V, còn mức logic 0 tương ứng với mức đieơn áp từ 3V đên 25V và có khạ naíng cung câp dòng từ 10mA đên 20mA. Ngoài ra tât cạ các ngõ ra đeău có đaịc tính chông chaơp mách.
Chuaơn RS-232 cho phép truyeăn tín hieơu với tôc đoơ tôi đa leđn đên 20.000 bps, nhưng nêu truyeăn ngaĩn thì tôc đoơ này có theơ leđn đên 115.200 bps.
Khi khođng truyeăn dữ lieơu, đường truyeăn sẽ ở tráng thái đieơn áp –10V. Khi baĩt đaău truyeăn, DTE sẽ đưa ra xung Start (10V) và sau đó truyeăn từ D0 đên D7 và bit kieơm tra chẵn lẽ, và cuôi cùng là xung Stop (-10V) đeơ khođi phúc tráng thái đường truyeăn.
Hieơn nay người ta phađn chia thiêt bị truyeăn thođng dữ lieơu thành moơt thiêt bị đaău cuôi dữ lieơu DTE (Data Terminal Equipment) hoaịc thiêt bị truyeăn thođng dữ lieơu DCE (Data Communication Equipment) chẳng hán như các modem. Moơt đieău lưu ý ở đađy là mĩi mođ tạ veă chưc21 naíng cụa các chađn RS-232 cho trong bạng 1 đeău xuât phát từ gôc đoơ cụa DTE.
Đeơ kêt nôi đơn giạn nhât giữa moơt thiêt bị ngối vi và máy tính qua coơng RS-232 được thực hieơn baỉng boơ vi đieău khieơn giao tiêp với máy tính. Yeđu caău tôi thieơu cụa vieơc kêt nôi là các chađn TxD và RxD cụa chip vi đieău khieơn phại được nôi với các chađn RxD và TXD cụa coơng DB9 được mođ tạ như hình sau.
Hình 3.45. Các kêt nôi đơn giạn trong truyeăn thođng nôi tiêp
Khi thực hieơn vieơc kêt nôi như tređn quá trình truyeăn phại đạm bạo tôc đoơ ở đaău phát và đaău thu giông nhau. Khi có dữ lieơu đên DTE, dữ lieơu này sẽ được đưa vào boơ đeơm và táo ngaĩt.
Các coơng COM cụa máy tính IBM PC và sự tương thích cụa chúng
Các máy tính IBM với sự tương thích dựa tređn các boơ vi xử lý hĩ X86 như 8086, 286, 386, 486 và Pentium, và các máy này đeău có tôi thieơu là hai coơng COM. Cạ hai coơng COM đeău có các đaău nôi kieơu RS-232 lối DB9 và DB25. Trong những naím gaăn đađy, coơng
COM1 và COM2 sử dúng cho chuoơt (Mouse) và bàn phím, do đó các coơng còn lái cho phép ta thực hieơn vieơc kêt nôi với các thiêt bị ngối vi.
3.2.4.3.Giới thieơu veă vi đieău khieơn 8051
Boơ vi đieău khieơn viêt taĩt là Micro-controller, là các mách tích hợp tređn moơt chip có theơ cho phép người sử dúng laơp trình được, dùng đeơ đieău khieơn hốt đoơng cụa moơt heơ thông. Dựa theo các taơp leơnh do người laơp trình viêt ra và náp vào boơ vi đieău khieơn, boơ vi đieău khieơn sẽ tiên hành đĩc dữ lieơu, lưu trữ thođng tin, xử lý thođng tin, đo thời gian và tiên