Truyền thông nối tiếp của 8051

17 1.1K 9
Truyền thông nối tiếp của 8051

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Các máy tính truyền dữ liệu theo hai cách: Song song và nối tiếp. Trong truyền dữ liệu song song thường cần 8 hoặc nhiều đường dây dẫn để truyền dữ liệu đến một thiết bị chỉ cách xa vài bước.

Chơng 10Truyền thông nối tiếp của 8051Các máy tính truyền dữ liệu theo hai cách: Song song và nối tiếp. Trong truyền dữ liệu song song thờng cần 8 hoặc nhiều đờng dây dẫn để truyền dữ liệu đến một thiết bị chỉ cách xa vài bớc. Ví dụ của truyền dữ liệu song song là các máy in và các ổ cứng, mỗi thiết bị sử dụng một đờng cáp với nhiều dây dẫn. Mặc dù trong các trờng hợp nh vậy thì nhiều dữ liệu đợc truyền đi trong một khoảng thời gian ngắn bằng cách dùng nhiều dây dẫn song song nhng khoảng cách thì không thể lớn đợc. Để truyền d-dx liệu đi xa thì phải sử dụng phơng pháp truyền nối tiếp. Trong truyền thông nối tiếp dữ liệu đợc gửi đi từng bít một so với truyền song song thì một hoặc nhiều byte đợc truyền đi cùng một lúc. Truyền thông nối tiếp của 8051 là chủ đề của chơng này. 8051 đã đợc cài sẵn khả năng truyền thông nối tiếp, do vậy có thể truyền nhánh dữ liệu với chỉ một số ít dây dẫn.10.1 Các cơ sở của truyền thông nối tiếp.Khi một bộ vi xử lý truyền thông với thế giới bên ngoài thì nó cấp dữ liệu d ới dạng từng khúc 8 bít (byte) một. Trong một số trờng hợp chẳng hạn nh các máy in thì thông tin đơn giản đợc lấy từ đờng bus dữ liệu 8 bít và đợc gửi đi tới bus dữ liệu 8 bít của máy in. Điều này có thể làm việc chỉ khi đờng cáp bus không quá dài vì các đờng cáp dài làm suy giảm thậm chí làm méo tín hiệu. Ngoài ra, đờng dữ liệu 8 bít giá th-ờng đắt. Vì những lý do này, việc truyền thông nối tiếp đợc dùng để truyền dữ liệu giữa hai hệ thống ở cách xa nhau hàng trăm đến hàng triệu dặm. Hình 10.1 là sơ đồ truyền nối tiếp so với sơ đồ truyền song song.Hình 10.1: Sơ đồ truyền dữ liệu nối tiếp so với sơ đồ truyền song song.Thực tế là trong truyền thông nối tiếp là một đờng dữ liệu duy nhất đợc dùng thay cho một đờng dữ liệu 8 bít của truyền thông song song làm cho nó không chỉ rẻ hơn rất nhiều mà nó còn mở ra khả năng để hai máy tính ở cách xa nhau có truyền thông qua đờng thoại.Đối với truyền thông nối tiếp thì để làm đợc các byte dữ liệu phải đợc chuyển đổ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ó thể đợc truyền quan một đờng dữ liệu đơn. Điều này cũng có nghĩa là ở đầu thu cũng phải có một thanh ghi vào - nối tiếp - ra - song song để nhận dữ liệu nối tiếp và sau đó gói chúng thành từng byte một. Tất nhiên, nếu dữ liệu đợc truyền qua đờng thoại thì nó phải đợc chuyển đổi từ các số 0 và 1 sang âm thanh ở dạng sóng hình sin. Việc chuyển đổi này thực thi bởi một thiết bị có tên gọi là Modem là chữ viết tắt của Modulator/ demodulator (điều chế/ giải điều chế). Serial Transfer Parallen Transfer Sender Receiver Sender Receiver D7 D0 Khi cự ly truyền ngắn thì tín hiệu số có thể đợc truyền nh nói ở trên, một dây dẫn đơn giản và không cần điều chế. Đây là cách các bàn PC và IBM truyền dữ liệu đến bo mạch mẹ. Tuy nhiên, để truyền dữ liệu đi xa dùng các đờng truyền chẳng hạn nh đờng thoại thì việc truyền thông dữ liệu nối tiếp yêu cầu một modem để điều chế (chuyển các số 0 và 1 về tín hiệu âm thanh) và sau đó giải điều chế (chuyển tín hiệu âm thanh về các số 0 và 1).Truyền thông dữ liệu nối tiếp sử dụng hai phơng pháp đồng bộ và dị bộ. Phơng pháp đồng bộ truyền một khối dữ liệu (các ký tự) tại cùng thời điểm trong khi đó truyền dị bộ chỉ truyền từng byte một. Có thể viết phần mềm để sử dụng một trong hai phơng pháp này, những chơng trình có thể rất dài và buồn tẻ. Vì lý do này mà nhiều nhà sản xuất đã cho ra thị trờng nhiều loại IC chuyên dụng phục vụ cho truyền thông dữ liệu nối tiếp. Những IC này phục vụ nh các bộ thu - phát dị bộ tổng hợp VART (Universal Asynchronous Receiver Transmitter) và các bộ thu - phát đồng - dị bộ tổng hợp UBART (Universal Asynchronous Receiver Transmitter). Bộ vi điều khiển 8051 có một cài sẵn một UART mà nó sẽ đợc bàn kỳ ở mục 10.3.Hình 10.2: Truyền dữ liệu đơn công, bán công và song công.10.1.1 Truyền dữ liệu bán công và song công.Trong truyền dữ liệu nếu dữ liệu có thể đợc vừa phát và vừa đợc thu thì gọi là truyền song công. Điều này tơng phản với truyền đơn công chẳng hạn nh các máy in chỉ nhận dữ liệu từ máy tính. Truyền song công có thể có hai loại là bán song công và song công hoàn toàn phụ thuộc vào truyền dữ liệu có thể xảy ra đồng thời không? Nếu dữ liệu đợc truyền theo một đờng tại một thời điểm thì đợc gọi là truyền bán song công. Nếu dữ liệu có thể đi theo cả hai đờng cùng một lúc thì gọi là song công toàn phần. Tất nhiên, truyền song công đòi hỏi hai đờng dữ liệu (ngoài đờng âm của tín hiệu), một để phát và một để thu dữ liệu cùng một lúc.10.1.2 Truyền thông nối tiếp dị bộ và đóng khung dữ liệu.Dữ liệu đi vào ở đầu thu của đờng dữ liệu trong truyền dữ liệu nói tiếp toàn là các số 0 và 1, nó thật là khó làm cho dữ liệu ấy có nghĩa là nếu bên phát và bên thu không cùng thống nhất về một tệp các luật, một thủ tục, về cách dữ liệu đợc đóng gói, bao nhiêu bít tạo nên một ký tự và khi nào dữ liệu bắt đầu và kết thúc.10.1.3 Các bít bắt đầu và dừng.Truyền thông dữ liệu nối tiếp dị bộ đợc sử dụng rộng rãi cho các phép truyền hớng kỹ tự, còn các bộ truyền dữ liệu theo khối thì sử dụng phơng phát đồng bộ. Trong phơng pháp dị bộ, mỗi ký tự đợc bố trí giữa các bít bắt đầu (start) và bít dừng Bộ phát Bộ thu Bộ phátBộ thuBộ thuBộ phátBộ phátBộ thu Bộ thuBộ phátBán đơn côngSong côngĐơn công (stop). Công việc này gọi là đóng gói dữ liệu. Trong đóng gói dữ liệu đối với truyền thông dị bộ thì dữ liệu chẳng hạn là các ký tự mã ASCII đợc đóng gói giữa một bít bắt đầu và một bít dừng. Bít bắt đầu luôn luôn chỉ là một bít, còn bít dừng có thể là một hoặc hai bít. Bít bắt đầu luôn là bít thấp (0) và các bít dừng luôn là các bít cao (bít 1). Ví dụ, hãy xét ví dụ trên hình 10.3 trong đó ký tự A của mã ASCII (8 bít nhị phân là 0100 0001) đóng gói khung giữa một bít bắt đầu và một bít dừng. Lu ý rằng bít thấp nhất LSB đợc gửi ra đầu tiên.Hình 10.3: Đóng khung một ký tự A của mã ASCII (41H) có tín hiệu là 1 (cao) đợc coi nh là một dấu (mark), còn không có tín hiệu tức là 0 (thấp) thì đợc coi là khoảng trống (space). Lu ý rằng phép truyền bắt đầu với start sau đó bít D0, bít thấp nhất LSB, sau các bít còn lại cho đến bít D7, bít cao nhất MSB và cuối cùng là bít dừng stop để báo kết thúc ký tự A.Trong truyền thông nối tiếp dị bộ thì các chíp IC ngoại vi và các modem có thể đợc lập trình cho dữ liệu với kích thớc theo 7 bít hoặc 8 bít. Đây là cha kể các bít dừng stop có thể là 1 hoặc 2 bít. Trong khi các hệ ASCII cũ hơn (trớc đây) thì các ký tự là 7 bít thì ngay nay do việc mở rộng các ký tự ASCII nên dữ liệu nhìn chung là 8 bít. Trong các hệ cũ hơn do tốc độ chậm của các thiết bị thu thì phải sử dụng hai bít dừng để đảm bảo thời gian tổ chức truyền byte kế tiếp. Tuy nhiên, trong các máy tính PC hiện tại chỉ sử dụng 1 bít stop nh là chuẩn.Giả sử rằng chúng ta đang truyền một tệp văn bản các ký tự ASCII sử dụng 1 bít stop thì ta có tổng cộng là 10 bít cho mỗi ký tự gồm: 8 bít cho ký tự ASCII chuẩn và 1 bít start cùng 1 bít stop. Do vậy, đối với mỗi ký tự 8 bít thì cần thêm 2 bí vị chi là mất 25% tổng phí.Trong một số hệ thống để nhằm duy trì tính toàn vẹn của dữ liệu thì ngời ta còn thêm một bít lẻ (parity bít). Điều này có nghĩa là đối với mỗi ký tự (7 hoặc 8 bít tuỳ từng hệ) ta có thêm một bít ngoài các bít start và stop. Bít chẵn lẻ là bít chẵn hoặc bít lẻ. Nếu là bít lẻ là số bít của dữ liệu bao gồm cả bít chẵn lẻ sẽ là một số lẻ các sô 1. Tơng tự nh vậy đối với trờng hợp bít chẵn thì số bít của dữ liệu bao gồm cả bít chẵn - lẻ sẽ là một số chẵn của các số 1. Ví dụ, ký tự A của mã ASCII ở dạng nhị phân là 0100 0001, có bít 0 là bít chẵn. Các chíp UART đều cho phép việc lập trình bít chẵn - lẻ về chẵn, lẻ hoặc không phân biệt chẵn lẻ.10.1.4 Tốc độ truyền dữ liệu.Tốc độ truyền dữ liệu trong truyền thông dữ liệu nối tiếp đợc gọi là bít trong giây bps (bít per second). Ngoài ra, còn đợc sử dụng một thuật ngữ rộng rãi nữa là tốc độ baud. Tuy nhiên, các tốc baud và bps là hoàn toàn không bằng nhau. Điều này là do tốc baud là thuật ngữ của modem và đợc định nghĩa nh là sô lần thay đổi của tín hiệu trong một giây. Trong các modem có những trờng hợp khi một sự thay đổi của tín hiệu thì nó truyền vài bít dữ liệu. Nhng đối với một dây dẫn thì tốc độ baud và bps là nh nhau nên trong cuốn sách này chúng ta có thể dùng thay đổi các thuật ngữ này cho nhau.d711StartbítSpaceStopbítMarkd0Goes out last Goes out first Tốc độ truyền dữ liệu của một hệ máy tính đã cho phụ thuộc vào các cổng truyền thông kết nối vào trong hệ thống đo. Ví dụ, các máy tính PC/XT trớc đây của IBM có thể truyền dữ liệu với tốc độ 100 đến 9600 bps. Tuy nhiên, trong những năm gần đây thì các máy tính PC dựa trên Pentium truyền dữ liệu với tốc độ lên tới 56kbps. Cần phải nói thêm rằng trong truyền thông dữ liệu nối tiếp dị bộ thì tốc độ baud nhìn chung là bị giới hạn ở 100.000 bps.10.1.5 Các chuẩn RS232.Để cho phép tơng thích giữa các thiết bị truyền thông dữ liệu đợc sản xuất bởi các hãng khác nhau thì một chuẩn giao diện đợc gọi là RS232 đã đợc thiết lập bởi hiệp hội công nghiệp điện tử EIA vào năm 19960. Năm 1963 nó đợc sửa chỉnh và đợc gọi là RS232A và vào các năm 1965 và 1969 thì đợc đổi thành RS232B và RS232C. ở đây chúng ta đơn giản chỉ nói đến RS232. Ngày nay RS232 là chuẩn giao diện I/O vào - ra nối tiếp đợc sử dụng rộng rãi nhất. Chuẩn này đợc sử dụng trong máy tính PC và hàng loạt các thiết bị khác nhau. Tuy nhiên, vì nó đợc thiết lập trớc họ lô-gíc TTL rất lâu do vậy điện áp đầu vào và đầu ra của nó không tơng thích với mức TTL. Trong RS232 thì mức 1 đợc biểu diển bởi - 3v đến 25v trong khi đó mức 0 thì ứng với điện áp + 3v đến +25v làm cho điện áp - 3v đến + 3v là không xác định. Vì lý do này để kết nối một RS232 bất kỳ đến một hệ vi điều khiển thì ta phải sử dụng các bộ biến đổi điện áp nh MAX232 để chuyển đổi các mức lô-gíc TTL về mức điện áp RS232 và ng-ợc lại. Các chíp IC MAX232 nhìn chung đợc coi nh cá bộ điều khiển đờng truyền. Kết nối RS232 đến MAX232 đợc thoả thuận ở phần 10.2.10.1.6 Các chân của RS232.Bảng 10.1 cung cấp sơ đồ chân của cáp RSE232 và các tên gọi của chúng th-ờng đợc gọi là đầu nối DB - 25. Trong lý hiệu thì đầu nối cắm vào (đầu đực) gọi là DB - 25p và đầu nối cái đợc gọi là DB - 25s.Hình 10.4: Đầu nối DB - 25 của RS232.Vì không phải tất cả mọi chân đều đợc sử dụng trong cáp cảu máy tính PC, nên IBM đa ra phiên bản của chuẩn vào/ra nối tiếp chỉ sử dụng có 9 chân gọi là DB - 9 nh trình bày ở bảng 10:2 và hình 10.5.Bảng 10.1: Các chân của RS232, 25 chân (DB - 25).Số chân Mô tả123456789/10Đất cách ly (Protective Cround)Dữ liệu đợc truyền TxD (TráNsmitted data)Dữ liệu đợc phân RxD (Received data)Yêu cầu gửi RTS (Request To Send)Xoá để gửi CIS (Clear To Send)Dữ liệu sẵn sàng DSR (Data Set Ready)Đất của tín hiệu GND (Signal Cround)Tách tín hiệu mạng dữ liệu DCD (Data Carrier Detect)Nhận để kiểm tra dữ liệu (Received for data testing)1425131 111213141516171819202122232425Cha dùngTách tín hiệu mạng dữ liệu thứ cấp (Secondary data carrier detect)Xoá đẻ nhận dữ liệu thứ cấp (Secondary Clear to Send)Dữ liệu đợc truyền thứ cấp (Secondary Transmit Signal Element Timing)Truyền phân chia thời gian phần tử tín hiệu (Transmit Signal Element Timing)Dữ liệu đợc nhận thứ cấp (Secondary Received data)Nhận phân chia thời gian phần tử tín hiệu (Receiveo Signal Element Timing)Cha dùngYêu cầu để nhận thứ cấp (Secondary Request to Send)Đầu dữ liệu sẵn sàng (Data Terminal Ready)Phát hiện chất lợng tín hiệu (Signal Qualyty Detector)Báo chuông (Ring Indicator)Chọn tốc độ tín hiệu dữ liệu (Data Signal Rate Select)Truyền phân chia thời gian tín hiệu (Transmit Signal Element Timing)Cha dùng10.1.7 Phân loại truyền thông dữ liệu.Thuật ngữ hiện nay phân chia thiết bị truyền thông dữ liệu thành một thiết bị đầu cuối dữ liệu DTE (Data Terminal Equipment) hoặc thiết bị truyền thông dữ liệu DCE (Data Communication Equipment). DTE chủ yếu là các máy tính và các thiết bị đầu cuối gửi và nhận dữ liệu, còn DCE là thiết bị truyền thông chẳng hạn nh các modem chịu trách nhiệm về truyền dữ liệu. Lu ý rằng tất cả mọi định nghĩa về chức năng các chân RS232 trong các bảng 10.1 và 10.2 đều xuất phát từ gốc độ của DTE.Kết nối đơn giản nhất giữa một PC và bộ vi điều khiển yêu cầu tối thiểu là những chân sau: TxD, RxD và đất nh chỉ ra ở hình 10.6. Để ý rằng trên hình này thì các chân TxD và RxD đợc đổi cho nhau.Hình 10.5: Sơ đồ đầu nối DB - 9 của RS232.Bảng 10.2: Các tín hiệu của các chân đầu nối DB - 9 trên máy tính IBM PC.Mô tả Số chân123456789Da ta 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 hiệu mạng dữ liệuDữ liệu đợc nhậnDữ liệu đợc gửiĐầu dữ liệu sẵn sàngĐất của tín hiệuDữ liệu sẵn sàngYêu cầu gửiXoá để gửiBáo chuông6951 Hình 10.6: Nối kết không modem.10.1.8 Kiểm tra các tín hiệu bắt tay của RS232.Để bảo đảm truyền dữ liệu nhanh và tin cậy giữa hai thiết bị thì việc truyền dữ liệu phải đợc phối hợp tốt. Chẳng hạn nh trong trờng hợp của máy in, do một thực tế là trong truyền thông dữ liệu nối tiếp thiết bị thu có thể không có chỗ để chứa dữ liệu, do đó phải có cách để báo cho bên phát dừng gửi dữ liệu. Rất nhiều chân của RS232 đợc dùng cho các tín hiệu bắt tay. Dới đây là mô tả về chúng nh là một tham khảo và chúng có thể đợc bỏ qua vì chúng không đợc hỗ trợ bởi chíp UART của 8051.1. Đầu dữ liệu sẵn sàng DTR: Khi thiết bị đầu cuối (hoặc một cổng COM của PC) đợc bật thì sau khi tự kiểm tra nó gửi một tín hiệu DTR báo rằng nó sẵn sàng cho truyền thông. Nếu có một cái gì đó trục trặc với cổng COM thì tín hiệu này không đợc kích hoạt. Đây là tín hiệu tích cực mức thấp và có thể đợc dùng để báo cho modem biết rằng máy tính đang hoạt động và đang sẵn sàng. Đây là chân đầu ra từ DTC (cổng COM của PC) và chân đầu ra của modem.2. Dữ liệu sẵn sàng QSR: Khi DCE (chẳng hạn modem) đợc bật lên và đã chạy xong chơng trình tự kiểm tra thì nó đòi hỏi DSR để báo rằng có đã sẵn sàng cho truyền thông. Do vậy, nó là đầu ra của modem (DCE) và đầu vào của PC (DTE). Đây là tín hiệu tích cực mức thấp. Nếu vì lý do nào đó mà modem không kích hoạt báo cho PC biết (hoặc thiết bị đầu cuối) rằng nó không thể nhận hoặc gửi dữ liệu.3. Yêu cầu gửi RTS: Khi thiết bị DTE (chẳng hạn một PC) có một byte dữ liệu cần gửi thì nó yêu cầu RTS để báo cho modem biết rằng nó có một byte cần phải gửi đi. RTS là một đầu ra tích cực mức thấp từ DTE và một đầu vào tới modem.4. Tín hiệu xáo để gửi CTS: Để đáp lại RTS thì khi modem có để chứa dữ liệu mà nó cần nhận thì nó gửi một tín hiệu CTS tới DTE (PC) để báo rằng bây giờ nó có thể nhận dữ liệu. Tín hiệu đầu vào này tới DTE dùng để khởi động việc truyền dữ liệu.5. Tách tín hiệu mang dữ liệu DCD: Modem yêu cầu tín hiệu DCD báo cho DTE biết rằng đã tách đợc một tín hiệu mang dữ liệu hợp lệ và rằng kết nối giữa nó và modem khác đã đợc thiết lập. Do vậy, DCD là một đầu ra của modem và đầu vào của PC (DTE).6. Báo chuông RI: Một đầu ra từ modem (DCE) và một đầu vào tới máy tính PC (DTE) báo rằng điện thoại đang báo chuông. Nó tắt và bật đồng bộ với âm thanh đang đổ chuông. Trong 6 tín hiệu bắt tay thì tín hiệu này là ít đợc dùng nhất do một thực tế là các modem đã chịu trách nhiệm về trả lời điện thoại. Tuy nhiên, nếu trong một hệ thống đã cho mà PC phải chịu trách nhiệm trả lời điện thoại thì tín hiệu này có thể đợc dùng.TxDRxDTxDRxDDTE DTEground Từ mô tả trên thì việc truyền thông PC và modem có thể đợc tóm tắt nh sau: Trong khi các tín hiệu DTR và DSR đợc dùng bởi PC và modem để báo rằng chúng đang hoạt động tốt thì các tín hiệu RTS và CTS thực tế đang kiểm tra luồng dữ liệu. Khi PC muốn gửi dữ liệu thì nó yêu cầu RTS và đáp lại, nếu modem sẵn sàng (có chỗ chứa dữ liệu) để nhận dữ liệu thì nó gửi lại tín hiệu CTS. Còn nếu không có chỗ cho dữ liệu thì modem không kích hoạt CTS và PC thôi không yêu cầu DTR và thử lại. Các tín hiệu RTS và CTS cũng đợc cọi nh tín hiệu luồng điều khiển phần cứng.Đến đây kết thúc sự mô tảt 9 chân quan trọng nhất của các tín hiệu bắt tay RS232 và các tín hiệu TxD, RxD và đất (Ground). Tín hiệu Ground này cũng đợc coi nh là tín hiệu SG - đất của tín hiệu.10.1.9 Các cổng COM của IBM PC và tơng thích.Các máy tính IBM PC và tơng thích dựa trên các bộ vi xử lý ì 86 (8086, 286, 384, 486 và Pentium) thờng có hai cổng COM. Cả hai cổng COM đều có các đầu nối kiểu RS232. Nhiều máy tính PC sử dụng mỗi đầu nối một kiểu ổ cắm DB - 25 và DB - 9. Trong những năm gần đây, cổng COM1 đợc dùng cho chuột và COM2 đợc dùng cho các thiết bị chẳng hạn nh Modem. Chúng ta có thể nối cổng nối tiếp của 8051 đến cổng COM2 của một máy tính PC cho các thí nghiệm về truyền thông nối tiếp.Với nền kiến thức về truyền thông nối tiếp này chúng ta đã sẵn sàng làm việc với 8051.10.2 Nối ghép 8051 tới RS232.Nh đã nói ở phần 10.1, chuẩn RS232 không tơng thích với mức lô-gíc TTL, do vậy nó yêu cầu một bộ điều khiển đờng truyền chẳng hạn nh chíp MAX232 để chuyển đổi các mức điện áp RS232 về các mức TTL và ngợc lại. Nội dung chính của phần này là bàn về nối ghép 8051 với các đầu nối RS232 thông qua chíp MAX232.10.2.1 Các chân RxD và TxD trong 8051.8051 có hai chân đợc dùng chuyên cho truyền và nhận dữ liệu nối tiếp. Hai chân này đợc gọi là TxD và RxD và là một phần của cổng P3 (đó là P3.0 và P3.1). chân 11 của 8051 là P3.1 đợc gán cho TxD và chân 10 (P3.0) đợc dùng cho RxD. Các chân này tơng thích với mức lô-gích TTL. Do vậy chúng đòi hỏi một bộ điều khiển đ-ờng truyền để chúng tơng thích với RS232. Một bộ điều khiển nh vậy là chíp MAX232.10.2.2 Bộ điều khiển đờng truyền MAX232.Vì RS232 không tơng thích với các bộ vi xử lý và vi điều khiển hiện nay nên ta cần một bộ điều khiển đờng truyền (bộ chuyển đổi điện áp) để chuyển đổi các tín hiệu RS232 về các mức điện áp TTL sẽ đợc chấp nhận bởi các chân TxD và RxD của 8051. Một ví dụ của một bộ chuyển đổi nh vậy là chíp MAX232 từ hàng Maxim địa chỉ Website của hãng www.maxim-ic.com. Bộ MAX232 chuyển đổi từ các mức điện áp RS232 sẽ về mức điện áp TTL và ngợc lại. Một điểm mạnh của chíp MAX232 là nó dùng điện áp nguồng +5v cùng với điện áp nguồn của 8051. Hay nóic cách khác với nguồn điện áp nuối +5 chúng ta mà có thể nuôi 8051 và MAX232 mà không phải dùng hai nguồn nuôi khác nhau nh phổ biến trong các hệ thống trớc đây.Bộ điều khiển MAX232 có hai bộ điều khiển thờng để nhận và truyền dữ liệu nh trình bày trên hình 10.7. Các bộ điều khiển đờng đợc dùng cho TxD đợc gọi là T1 và T2. Trong nhiều ứng dụng thì chỉ có một cặp đợc dùng. Ví dụ T1 và R1 đợc dùng với nhau đối với TxD và RxD của 8051, còn cặp R2 và T2 thì cha dùng đến. Để ý rằng trong MAX232 bộ điều khiển T1 có gán T1in và T1out trên các chân số 11 và 1 t-ơng ứng. Chân T1in là ở phía TTL và đợc nối tới chân RxD của bộ vi điều khiển, còn T1out là ở phía RS232 đợc nối tới chân RxD của đầu nối DB của RS232. Bộ điều khiển đờng R1 cũng có gán R1in và R1out trên các chân số 13 và 12 tơng ứng. Chân R1in (chân số 13) là ở phía RS232 đợc nối tới chân TxD của đầu nối DB của RS232 và chân R1out (chân số 12) là ở phía TTL mà nó đợc nối tới chân RxD của bộ vi điều khiển, xem hình 10.7. Để ý rằng nối ghép modem không là nối ghép mà chân TxD bên phát đợc nối với RxD của bên thu và ngợc lại.Hình 10.7: a) Sơ đồ bên trong của MAX232 b) Sơ đồ nối ghép của MAX232 với 8051 theo moden không.Bộ MAX232 đòi hỏi 4 tụ điện giá trị từ 1 đến 22àF. giá trị phổ biến nhất cho các tụ này là 22àF.10.2.3 Bộ điều khiển MAX232.Để tiết kiệm không gian trên bảng mạch, nhiều nhà thiết kế sử dụng chíp MAX232 từ hãng Maxim. Bộ điều khiển MAX232 thực hiện cùng những công việc nh MAX232 lại không cần đến các tụ điện. Tuy nhiên, chíp MAX232 lại đắt hơn rất nhiều so với MAX233 không có sơ đồ chân giống nhau (không tơng thích). Chúng ta không thể lấy một chíp MAX232 ra khỏi một bảng mạch và thay vào đó RS233. Hãy xem hình 10.8 để thấy MAX233 không cần đến tụ.Hình 10.8: a) Sơ đồ bên trong của MAX233. b) Sờ đồ nối ghép của MAX233 với 8051 theo modem không.10.3 Lập trình truyền thông nối tiếp cho 8051.P3.1TxDP3.0RxDMax2328051Vcc1314141217111516101819201110325422523154T1OUTT1IINT1IINR1IINR1OUTT2IINR2OUTT2OUTR2IINRs232 sideTTL side6 97DB - 9 P3.1TxDP3.0RxDMax2328051Vcc26789111054112101413T1OUTT1IINR1IINR1OUTT2IINR2OUTT2OUTR2IINRs232 sideTTL side1516DB - 9122C3+C4+22523+C1+C2 Trong phần này chúng ta sẽ nghiên cứu về các thanh ghi truyền thông nối tiếp của 8051 và cách lập trình chúng để truyền và nhận dữ liệu nối tiếp. Vì các máy tính IBM PC và tơng thích đợc sử dụng rất rộng rãi để truyền thông với các hệ dựa trên 8051, do vậy ta chủ yếu tập trung vào truyền thông nối tiếp của 8051 với cổng COM của PC. Để cho phép truyền dữ liệu giữa máy tín PC và hệ thống 8051 mà không có bất kỳ lỗi nào thì chúng ta phải biết chắc rằng tốc độ baud của hệ 8051 phải phù hợp với tốc độ baud của công COM máy tính PC đợc cho trong bảng 10.3. Chúng ta có thể kiểm tra các tốc độ baud này bằng cách vào chơng trình Windows Terminal và bấm chuột lên tuỳ chọn Communication Settings. Chơng trình Terminal.exe của Window3.1 cũng làm việc tốt trên Windows95 và Window98. Trong Window95 và cao hơn ta có thể sử dụng chức năng Hyperterrminal. Hàm Hyperterminal hỗ trợ các tốc độ Baud cao hơn nhiều so với các tốc độ cho trong bảng 10.3.Bảng 10.3: Các tốc độ Baud của máy tính PC486 và Pentium cho trong BIOS.Ví dụ 10.1:Với tần số XTAL là 11.0592MHz. Hãy tìm giá trị TH1 cần thiết để có tốc độ baud sau:a) 9600 b) 2400 c) 1200Lời giải:Với tần số XTAL là 11.0592MHz thì ta có tần số chu trình máy của 8051 là 11.0592MHz : 12 = 921.6kHz và sau đó lấy 921.6kHz/32 = 28.800Hz là tần số đợc cấp bởi UART tới bộ định thời Timer1 để thiết lập tốc độ.a) 28.800/3 = 9600 trong đó - 3 = FD đợc nạp vào TH1b) 28.800/12 = 2400 trong đó - 12 = F4 đợc nạp vào TH1c) 28.800/24 = 1200 trong đó - 24 = F8 đợc nạp vào TH1Lu ý rằng việc chia 1/12 của tần số thạch anh cho 32 là giá trị mặc định khi kích hoạt chân RESET của 8051. Chúng ta có thể thay đổi giá trị cài đặt mặc định này. Điều này sẽ đợc giải thích ở cuối chơng.10.3.1 Tốc độ baud trong 8051.8051 truyền và nhận dữ liệu nối tiếp theo nhiều tốc độ khác nhau. Tốc độ truyền của nó có thể lập trình đợc. Điều ày thực hiện nhờ sự trợ giúp của bộ định thời Timer1. Trớc khi ta đi vào bàn cách làm điều đó nh thế nào thì ta sẽ xét quan hệ giữa tần số thạch anh và tốc độ baud trong 8051.Nh ta đã nói ở chơng trớc đây thì 8051 chia sóo thạch anh cho 12 để lấy tần số chu trình máy. Trong trờng hợp XTAL = 11.0592MHz thì tần số chu trình là 921.6kHz (11.0592MHz : 12 = 921.6kHz). Mạch điện UART truyền thông nối tiếp của 8051 lại chia tần số chu trình máy cho 32 một lần nữa trớc khi nó đợc dùng bởi bộ định thời gian Timer1 để tạo ra tốc độ baud. Do vậy, 921.6kHz : 32 = 28.800Hz. Đây là số ta sẽ dùng trong cả phần này để tìm giá trị của Timer1 để đặt tốc độ baud. Muốn Timer1 đặt tốc độ baud thì nó phải đợc lập trình về chế độ làm việc mode2, đó là chế độ thanh ghi 8 bít tự động nạp lại. Để có tốc độ baud tơng thích với PC ta phải nạp 100 150 300 600 1200 2400 4800 9600 19200XTALoscillatorữ 12ữ 32by UART28800Hz921.6kHz TH1 theo các giá trị cho trong bảng 10.3. Ví dụ 10.1 trình bày cách kiểm tra giá trị dữ liệu cho trong bảng 10.3.Bảng 10.3: Các giá trị của thanh ghi TH1 trong Timer1 cho các tốc độ baud khác nhau.Tốc độ baud TH1 (thập phân) TH1 (số Hex)9600480024001200- 3- 6- 12- 24FDFAF4F810.3.2 Thanh ghi SBUF.SBUF là thanh ghi 8 bít đợc dùng riêng cho truyền thông nối tiếp trong 8051. Đối với một byte dữ liệu cần phải đợc truyền qua đờng TxD thì nó phải đợc đặt trong thanh ghi SBUF. Tơng tự nh vậy SBUF giữ một byte dữ liệu khi nó đợc nhận bở đờng RxD của 8051. SBUF có thể đợc truy cập bởi mọi thanh ghi bất kỳ trong 8051. Xét một ví dụ dới đây để thấy SBUF đợc truy cập nh thế nào?MOV SBUF, # D ; Nạp vào SBUF giá trị 44H m ACSII của ký tự D.ãMOV SBUF, A ; Sao thanh ghi A vào SBUF.MOV A, SBUF ; Sao SBUF vào thanh ghi A.Khi một byte đợc ghi vào thanh ghi SBUF nó đợc đóng khung với các bít Start và Stop và đờng truyền nối tiếp quan chân TxD. Tơng tự nh vậy, khi các bít đợc nhận nối tiếp từ RxD thì 8051 mở khung nó để loại trừ các bít Start và Stop để lấy ra một byte từ dữ liệu nhận đợc và đặt nó vào thanh ghi SBUF.10.3.3 Thanh ghi điều khiển nối tiếp SCON.Thanh ghi SCON là thanh ghi 8 bít đợc dùng để lập trình việc đóng khung bít bắt đầu Start, bít dừng Stop và các bít dữ liệu cùng với việc khác.Dới đây là mô tả các bít khác nhau của SCON:Hình 10.2: Thanh ghi điều khiển cổng nối tiếp SCON.10.3.3.1 Các bít SM0, SM1.Đây là các bít D7 và D6 của thanh ghi SCON. Chúng đợc dùng để xác định chế độ đóng khung dữ liệu bằng cách xác định số bít của một ký tự và các bít Start và Stop. Các tổ hợp của chúng là:SM0 SCON.7 Số xác định chế độ làm việc cổng nối tiếpSM1 SCON.6 Số xác định chế độ làm việc cổng nối tiếpSM2 SCON.5 Dùng cho truyền thông giữa các bộ vi xử lý (SM2 = 0)REN SCON.4 Bật/xoá bằng phần mềm để cho phép/ không cho thuTB8 SCON.3 Không sử dụng rộng rãiRB8 SCON.2 Không sử dụng rộng rãiT1 SCON.1 Cờ ngắt truyền đặt bằng phần cứng khi bắt đầu bít Stop ở chế độ 1. R1 SCON.0 Cờ ngắt thu Xoá bằng phần mềm. Chú ý: Các bít TM2, TB8 và RB8 đặt về 0. SM0 SM1 SM2 REN TB8 RB8 T1 R1 . thể nối cổng nối tiếp của 8051 đến cổng COM2 của một máy tính PC cho các thí nghiệm về truyền thông nối tiếp. Với nền kiến thức về truyền thông nối tiếp. cùng một lúc. Truyền thông nối tiếp của 8051 là chủ đề của chơng này. 8051 đã đợc cài sẵn khả năng truyền thông nối tiếp, do vậy có thể truyền nhánh dữ

Ngày đăng: 15/10/2012, 14:53

Hình ảnh liên quan

Hình 10.1: Sơ đồ truyền dữ liệu nối tiếp so với sơ đồ truyền song song. - Truyền thông nối tiếp của 8051

Hình 10.1.

Sơ đồ truyền dữ liệu nối tiếp so với sơ đồ truyền song song Xem tại trang 1 của tài liệu.
Hình 10.2: Truyền dữ liệu đơn công, bán công và song công. - Truyền thông nối tiếp của 8051

Hình 10.2.

Truyền dữ liệu đơn công, bán công và song công Xem tại trang 2 của tài liệu.
Hình 10.3: Đóng khung một ký tự “A” của mã ASCII (41H) có tín hiệu là 1 (cao) đợc coi nh là một dấu (mark), còn không có tín hiệu tức là 0 (thấp) thì đợc coi là  khoảng trống (space) - Truyền thông nối tiếp của 8051

Hình 10.3.

Đóng khung một ký tự “A” của mã ASCII (41H) có tín hiệu là 1 (cao) đợc coi nh là một dấu (mark), còn không có tín hiệu tức là 0 (thấp) thì đợc coi là khoảng trống (space) Xem tại trang 3 của tài liệu.
Bảng 10.1 cung cấp sơ đồ chân của cáp RSE232 và các tên gọi của chúng th- th-ờng đợc gọi là đầu nối DB - 25 - Truyền thông nối tiếp của 8051

Bảng 10.1.

cung cấp sơ đồ chân của cáp RSE232 và các tên gọi của chúng th- th-ờng đợc gọi là đầu nối DB - 25 Xem tại trang 4 của tài liệu.
Hình 10.4: Đầu nối D B- 25 của RS232. - Truyền thông nối tiếp của 8051

Hình 10.4.

Đầu nối D B- 25 của RS232 Xem tại trang 4 của tài liệu.
Bảng 10.2: Các tín hiệu của các chân đầu nối DB -9 trên máy tính IBM PC. - Truyền thông nối tiếp của 8051

Bảng 10.2.

Các tín hiệu của các chân đầu nối DB -9 trên máy tính IBM PC Xem tại trang 5 của tài liệu.
Hình 10.5: Sơ đồ đầu nối DB -9 của RS232. - Truyền thông nối tiếp của 8051

Hình 10.5.

Sơ đồ đầu nối DB -9 của RS232 Xem tại trang 5 của tài liệu.
Hình 10.6: Nối kết không modem. - Truyền thông nối tiếp của 8051

Hình 10.6.

Nối kết không modem Xem tại trang 6 của tài liệu.
Hình 10.7: a) Sơ đồ bên trong của MAX232 - Truyền thông nối tiếp của 8051

Hình 10.7.

a) Sơ đồ bên trong của MAX232 Xem tại trang 8 của tài liệu.
Để tiết kiệm không gian trên bảng mạch, nhiều nhà thiết kế sử dụng chíp MAX232 từ hãng Maxim - Truyền thông nối tiếp của 8051

ti.

ết kiệm không gian trên bảng mạch, nhiều nhà thiết kế sử dụng chíp MAX232 từ hãng Maxim Xem tại trang 8 của tài liệu.
TH1 theo các giá trị cho trong bảng 10.3. Ví dụ 10.1 trình bày cách kiểm tra giá trị dữ liệu cho trong bảng 10.3. - Truyền thông nối tiếp của 8051

1.

theo các giá trị cho trong bảng 10.3. Ví dụ 10.1 trình bày cách kiểm tra giá trị dữ liệu cho trong bảng 10.3 Xem tại trang 10 của tài liệu.
byte đợc hình thành và đặt vào trong SBUF. - Truyền thông nối tiếp của 8051

byte.

đợc hình thành và đặt vào trong SBUF Xem tại trang 14 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan