Truyền nối tiếp bất đồng bộ

Như đã biết, trong các hệ thống truyền dữ liệu có hai cách đưa tín hiệu lên đường truyền: nối tiếp và song song. Cách truyền song song thường được truyền trên một khoảng cách ngắn, ví dụ giữa các thiết bị trong cùng một phòng như từ máy tính sang máy in. Cách truyền nối tiếp thường được thực hiện khi khoảng cách truyền khá xa. Ngoài ra, trong cách truyền nối tiếp, dựa vào cách thực hiện sự đồng bộ giữa nơi phát và thu ta có hai chế độ hoạt động: đồng bộ và bất đồng bộ. Trong chế độ bất đồng bộ, xung đồng hồ được tạo ra một cách riêng rẻ ở máy phát và máy thu dựa vào tần số danh định tương ứng với vận tốc truyền (bit rate hoặc baud rate). Trong chế độ đồng bộ, nơi phát có thể gửi xung đồng hồ tới nơi thu theo một kênh truyền song song với kênh truyền dữ liệu hoặc nơi thu tự tạo ra xung đồng hồ bằng cách tách tín hiệu thời gian từ dòng dữ liệu. Chương này bàn đến chế độ truyền nối tiếp bất đồng bộ. Chúng ta sẽ lần lượt giới thiệu tính chất chung của hệ thống truyền dữ liệu, các giao thức của hệ thống truyền bất đồng bộ. Chúng ta cũng sẽ khảo sát vài IC thực hiện chức năng biến đổi song song ↔ nối tiếp trong các thiết bị thu phát .

pdf17 trang | Chia sẻ: aloso | Lượt xem: 3505 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Truyền nối tiếp bất đồng bộ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 1 ☯ CHƯƠNG 4 TRUYỀN NỐI TIẾP BẤT ĐỒNG BỘ ♣ HỆ THỐNG TRUYỀN Dữ LIỆU ™ Vận hành ™ Dung lượng kênh truyền ♣ MẪU TÍN HIỆU TRONG TRUYỀN BẤT ĐỒNG BỘ ♣ VÀI IC THỰC HIỆN GIAO THỨC BẤT ĐỒNG BỘ ™ 6402 của INTERSIL ™ 6850 của MOTOROLA ™ 8251 của INTEL __________________________________________________________________________________________ ____ Như đã biết, trong các hệ thống truyền dữ liệu có hai cách đưa tín hiệu lên đường truyền: nối tiếp và song song. Cách truyền song song thường được truyền trên một khoảng cách ngắn, ví dụ giữa các thiết bị trong cùng một phòng như từ máy tính sang máy in. Cách truyền nối tiếp thường được thực hiện khi khoảng cách truyền khá xa. Ngoài ra, trong cách truyền nối tiếp, dựa vào cách thực hiện sự đồng bộ giữa nơi phát và thu ta có hai chế độ hoạt động: đồng bộ và bất đồng bộ. Trong chế độ bất đồng bộ, xung đồng hồ được tạo ra một cách riêng rẻ ở máy phát và máy thu dựa vào tần số danh định tương ứng với vận tốc truyền (bit rate hoặc baud rate). Trong chế độ đồng bộ, nơi phát có thể gửi xung đồng hồ tới nơi thu theo một kênh truyền song song với kênh truyền dữ liệu hoặc nơi thu tự tạo ra xung đồng hồ bằng cách tách tín hiệu thời gian từ dòng dữ liệu. Chương này bàn đến chế độ truyền nối tiếp bất đồng bộ. Chúng ta sẽ lần lượt giới thiệu tính chất chung của hệ thống truyền dữ liệu, các giao thức của hệ thống truyền bất đồng bộ. Chúng ta cũng sẽ khảo sát vài IC thực hiện chức năng biến đổi song song ↔ nối tiếp trong các thiết bị thu phát . 4.1 HỆ THỐNG TRUYỀN DỮ LIỆU 4.1.1 Vận hành Một mẫu hệ thống truyền dữ liệu gồm 3 bộ phận chính (H 4.1) - Một cặp thiết bị xử lý tín hiệu (Terminal, vd máy tính), một của máy phát (chuyển thông tin thành tín hiệu số) và một của máy thu (chuyển dữ liệu số thành thông tin). - Một cặp giao diện nối tiếp, được gọi là thiết bị đầu cuối (Data Terminal Equipment, DTE) mà nhiệm vụ chính là biến đổi chuỗi dữ liệu song song thành nối tiếp ở máy phát và nối tiếp thành song song ở máy thu, đồng thời thực hiện một số chức năng khác theo yêu cầu của người sử dụng. - Một cặp giao diện truyền dữ liệu, được gọi là thiết bị truyền dữ liệu (Data Communication Equipment, DCE), thực hiện sự giao tiếp giữa DTE và môi trường truyền. _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 2 ⎯→ ⏐ Máy tính hay Terminal phát Bản tin ⎯→ Giao diện nối tiếp DTE ⎯→ Giao diện truyền dữ liệu DCE ⎯⎯ ⏐ ⏐ ⏐Báo nhận ⏐ ⏐ Kênh truyền ⏐ ⏐ ⏐ ⎯⎯ Máy tính hay Terminal thu Bản tin ←⎯ Giao diện nối tiếp DTE ←⎯ Giao diện truyền dữ liệu DCE ⏐ ←⎯ (H 4.1) Vận hành của hệ thống như sau : Máy tính gửi bản tin dưới dạng một chuỗi ký tự song song tới DTE. Ở đây bản tin được chuyển sang dạng nối tiếp để phát đi từng bit ở từng thời điểm . Đối với các hệ thống bất đồng bộ, thiết bị DTE sẽ thêm vào các bit Start và Stop ở mỗi ký tự nối tiếp này và nếu có yêu cầu, bit kiểm tra chẵn lẻ cũng được thêm vào ở đây . Đây là một dòng nối tiếp các tín hiệu nhị phân tương thích với các chuẩn về điện của EIA như RS- 232C (D), RS-422A hoặc 423A. DCE là bộ phận chuyển tín hiệu ra kênh truyền. Dạng chính xác của DCE tùy thuộc vào kênh truyền, ví dụ, các DCE được dùng thúc đường dây hiện nay là RS-422A hoặc 423A có thể thích hợp để truyền tín hiệu dải nền với khoảng cách tối đa là 1200m còn nếu dùng đường dây điện thoại để truyền thì DCE tương thích phải là các Modem. Ở máy thu bộ phận giao tiếp biến đổi chuỗi ký tự nối tiếp thành song song được đọc bởi máy tính hay thiết bị truyền tin đầu cuối khác. Một bản tin báo nhận được phản hồi tới máy phát để báo nhận đồng thời báo lỗi, nếu có lỗi bản tin sẽ được phát lại sau khi sửa lỗi. Trong trường hợp này máy thu đã trở thành máy phát. 4.1.2 Dung lượng của kênh truyền Khả năng và phẩm chất của một kênh truyền xác định bởi dung lượng của nó. Nhắc lại, một tín hiệu tần số x , tín hiệu lấy mẫu phải có tần số tối thiểu là 2x, yêu cầu một băng thông tối thiểu là x để truyền , nếu dùng n bit để mã hóa tín hiệu này thì vận tốc truyền sẽ là 2nx, ta gọi C = 2nx là dung lượng của kênh truyền. Ví dụ, trong điện thoại tần số tín hiệu là 2,7kHz nếu dùng 1 bit (n = 1) để mã hóa tín hiệu thì dung lượng kênh truyền C = 5,4kbps, nếu dùng số 2 bit ( n = 2) thì C = 10,8kbps ..... Như vậy dung lượng của kênh truyền tỉ lệ với số bit dùng mã hóa tín hiệu và băng thông của nó. Nhưng khi băng thông của kênh truyền càng lớn thì tính miễn nhiễu của hệ thống càng kém nên để gia tăng dung lượng kênh truyền người ta thường tăng số bit dùng mã hóa tín hiệu và dùng phương pháp điều chế đa pha. 4.2 Mẫu tín hiệu trong chế độ truyền bất đồng bộ Trong chế độ truyền bất đồng bộ thông tin được truyền đi dưới dạng từng ký tự và khoảng cách các ký tự là ngẫu nhiên. Tuy nhiên để tạo sự đồng bộ giữa máy phát và thu, giao thức tầng 2 (Data link protocol) có qui định cụ thể về mẫu tín hiệu trong hệ thống truyền bất đồng bộ như sau : - Mỗi ký tự gồm một số bit gọi là ký tự dữ liệu, số này có thể là 5 đối với mã Baudot, 7 nếu là mã ASCII (American Standard Code for Information Interchange) và 8 nếu là mã EBCDIC (Extended Binary-Coded Decimal Information Code, mã BCD mở rộng) _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 3 - Ngoài ra, để tạo sự đồng bộ, kèm theo các bit mã ký tự còn có các bit Start ở trước mỗi ký tự và các bit Stop ở sau mỗi ký tự. . Các bit Start là các bit 0 và các bit Stop là bit 1. Số bit Start luôn luôn là 1 bit còn số bit Stop có thể là 1, 1,5 hoặc 2 bit. - Nếu có thêm bit kiểm soát chẵn lẻ (parity bit) thì bit này nằm trước bit Stop. - Ở trạng thái nghỉ máy phát luôn phát đi bit 1 gọi là bit nghỉ (idle bit), như vậy máy thu dò ra bit Start khi có sự biến đổi từ 1 xuống 0, sau đó là một chuỗi bit có số lượng theo qui định của giao thức. Lưu ý là trong truyền dữ liệu, bit LSB của ký tự luôn được truyền đi trước và có hai cách viết (và đọc) một bản tin: theo chiều mũi tên hướng về bên phải và theo chiều hướng về bên trái - Viết theo chiều mũi tên hướng về bên phải : bit LSB của ký tự đầu tiên sẽ nằm bên phải của bản tin. Thí dụ bản tin dùng mã ASCII gồm 3 ký tự ABC có mã lần lượt là 41H (1000001), 42H (1000010) và 43H (1000011), bit LSB của ký tự đầu tiên (A) được phát đi trước và phải nằm bên phải của bản tin nên chuỗi dữ liệu được phát đi có dạng: ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯→ C B A p1000011 p1000010 p1000001. Với cách viết này, mỗi mẫu mã hóa của mỗi ký tự được giữ nguyên chiều của nó nhưng thứ tự các ký tự trong bản tin đã bị đảo. - Viết theo chiều mũi tên hướng về bên trái : bit LSB của ký tự đầu tiên sẽ nằm bên trái của bản tin. Với thí dụ trên, bit LSB của ký tự đầu tiên (A) được phát đi trước và phải nằm bên trái của bản tin nên chuỗi dữ liệu được phát đi có dạng: ←⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ A B C 1000001p 0100001p 1100001p. Với cách viết này, thứ tự các ký tự trong bản tin được giữ nguyên nhưng các bit trong mỗi ký tự đã bị đảo chiều. Bit kiểm tra chẵn lẻ (parity bit), nếu có, sẽ được thêm vào sau mỗi ký tự (bit p trong các thí dụ trên) Ở máy phát thanh ghi dịch biến đổi tín hiệu song song thành nối tiếp, được điều khiển bởi tín hiệu Load/Shift, các bit Start và Stop được tự động thêm vào khi mạch hoạt động . Ở máy thu khi bộ phận dò phát hiện bit Start bởi sự thay đổi từ 1 xuống 0, sẽ tạo ra tín hiệu điều khiển thanh ghi dịch, sau khi dịch đủ số bit qui định của tín hiệu kể cả bit parity và bit Stop, ký tự dữ liệu được đọc ra dưới dạng song song từ thanh ghi dịch. (H 4.2) (H 4.2) mô tả dạng của tín hiệu trên đường truyền bất đồng bộ (tín hiệu là mẫu chữ C với parity chẵn và một bit Stop) và bộ phận biến đổi song song ↔ nối tiếp trong máy phát và thu. Bộ phận này chính là các thanh ghi dịch. _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 4 Sự đồng bộ ở các thanh ghi dịch phát và thu được tạo bởi xung đồng hồ ở máy phát và xung đồng hồ ở máy thu. Dĩ nhiên các xung đồng hồ này phải có cùng tần số, đó là tần số tương ứng với vận tốc truyền bit của hệ thống. Nếu xung đồng hồ ở nơi thu không phù hợp với xung đồng hồ ở nơi phát, lỗi do độ lệch thời gian có thể xảy ra. Có hai loại lỗi : Lỗi khi đọc bit và lỗi do sai khung. Lỗi do sai khung được tạo ra bởi sự tích lũy các độ lệch thời gian, bit cuối cùng bị sai đưa tới sai khung. (H 4.3) (H 4.3) là một ví dụ, giả sử thời gian cho một bit là 0,1 s (T = 0,1s =100ms) và sự sai lệch là 7% sớm hơn ở máy thu, như vậy máy thu đọc bit đầu tiên ở thời điểm 93 ms thay vì 100ms, bit thứ hai ở 186ms ..... cho đến thời điểm 744ms máy thu đang đọc bit thứ 7 nhưng nhầm là bit thứ 8, như vậy bit cuối cùng của tín hiệu đã bị đọc sai, nếu bit thứ 8 là bit 1 thì máy thu nhầm là bit Stop và kết quả là có sự sai khung. Bit Stop là bit kiểm tra độ lệch thời gian tương đối chính xác, nếu máy phát hiện bit Stop không phải là bit 1 thì sẽ báo lỗi khung ta nói bit Stop là khoảng bảo vệ tối thiểu giữa các khung ký tự. Ngoài ra bit parity cũng giới hạn được sai sót này và các sai sót do nhiễu, tuy nhiên phương pháp phát hiện lỗi này không đạt độ tin cậy 100% vì nếu số bit sai là số chẵn thì máy thu không phát hiện được. 4.3 Vài IC thực hiện TRUYỀN nối tiếp bất đồng bộ Trước đây việc thu phát bất đồng bộ được thiết kế dựa trên các IC loại SSI và MSI. Ví dụ, để tạo và kiểm tra chẵn lẻ, người ta có thể dùng các cổng EX-OR . Hiện nay sự phát triển của công nghệ chế tạo IC cho phép sử dụng các vi mạch LSI để thực hiện các chức năng thu phát thỏa mãn giao thức truyền bất đồng bộ. Chúng ta giới thiệu dưới đây vài IC thu phát bất đồng bộ (Universal Asynchronous Receiver,Transmitter, UART) hoặc IC điều hợp giao tiếp thông tin bất đồng bộ (Asynchronous Communication Interface Adapter, ACIA), đó là các IC : - UART 6402 của Intersil - ACIA 6850 của Motorola - USART 8251A của Intel 4.3.1. UART 6402 của Intersil 4.3.1.1 - Tính năng kỹ thuật tổng quát 6402 là UART loại IC CMOS/LSI dùng để giao tiếp với máy tính hoặc µP qua kênh dữ liệu nối tiếp bất đồng bộ. _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 5 - Máy phát đổi dữ liệu song song thành nối tiếp và tự động thêm vào các bit Start và Stop. - Máy thu chuyển đổi các bit Start, ký tự dữ liệu, bit parity và bit Stop thành dữ liệu song song, kiểm tra lỗi. Chiều dài của các ký tự dữ liệu có thể là 5, 6, 7 hoặc 8 bit. Parity có thể là chẵn hay lẻ, việc kiểm tra và tạo bit parity có thể bỏ qua, nếu không có yêu cầu. Có thể dùng 1, 1,5 hoặc 2 bit Stop. 4.3.1.2 - Mô hình (H 4.4) (H 4.4) - Ý nghĩa các chân của IC : TRE : Transmit Reg. Empty : Ngã ra, báo thanh ghi phát trống. TBRL : Trans. Buf. Reg. Load : Ngã vào, nạp dữ liệu vào thanh ghi đệm phát & phát TBRE : Trans. Buf. Reg. Empty : Ngã ra, mức cao báo thanh ghi đệm phát trống, sẵn sàng nhận dữ liệu TBR7 - TBR0 : Trans. Buf. Reg. Data : Dữ liệu để nạp vào thanh ghi đệm phát DR : Data Received : Ngã ra, lên cao báo đã thu được một ký tự dữ liệu DRRST : Data Received Reset : Reset thanh ghi thu ROE : Receive Buffer Output Enable : Cho phép thu tín hiệu từ thanh ghi đệm thu RBR7 - RBR0 : Receive Buf.Reg. Data : Dữ liệu thu từ thanh ghi đệm thu CRL : Control Reg. Load : Ngã vào, mức cao cho phép nạp từ điều khiển vào thanh ghi điều khiển CR4 - CR0 : Control Reg. Data : Tổ hợp 5 bit tạo thành một từ điều khiển PE,FE,OVE : Parity, Framing, Overflow flags : Cờ báo lỗi chẵn lẻ, lỗi khung, lỗi tràn SOE : Status O/P Enable : Cho phép ngã ra trạng thái MRST : Master Reset : Đặt lại IC RC,TC : Receive Clock, Trans. Clock : Xung đồng hồ Thu, Phát _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 6 RxD, TxD : Receive Data, Trans. Data : Dữ liệu thu phát. Việc chọn các chuẩn trong giao thức theo qui định của bảng 4.1 dưới đây Bảng 4.1 : 6402 control word CR4 CR3 Chọn chiều dài ký tự Character Length Select CLS1 CLS0 00 = 5 bit 01 = 6 bit 10 = 7 bit 11 = 8 bit CR2 Có Kiểm Tra chẵn lẻ ? PI (Parity Inhibit) 1 = không kiểm tra chẵn lẻ và PE = 0 0 = có kiểm tra chẵn lẻ CR1 Chọn Kiểm Tra chẵn EPE (Even Parity Enable) 1 = kiểm tra chẵn 0 = kiểm tra lẻ CR0 Chọn số bit stop SBS Stop Bit Select 0 = 1 bit stop 1 = 1,5 (ký tự 5 bit) 1 = 2 (ký tự 6, 7, 8 bit) 4.3.1.3 - Vận hành - Vận hành của IC được thực hiện qua các thao tác sau đây : - Khởi động : Để khởi động 6402, lần lượt thực hiện 3 bước : - Đặt từ điều khiển vào các chân CR4 - CR0 để chọn giao thức truyền. - Đưa chân CRL lên cao để nạp từ điều khiển vào thanh ghi điều khiển. - Đưa chân MRST lên cao để reset máy thu và máy phát. - Phát một ký tự : Để nạp một ký tự vào thanh ghi phát và phát đi, lần lượt thực hiện các bước : - Chân TBRE lên cao báo thanh ghi đệm phát trống. - Các bít của ký tự được nạp vào chân TBR7 - TBR0. - Đưa TBRL lên cao để nạp data vào thanh ghi đệm. - Tín hiệu phát đi khi TBRL xuống thấp. - Thu một ký tự : Để thu một ký tự, lần lượt thực hiện các bước sau : - Chân DR lên cao báo đã thu một ký tự mới - Đưa ROE xuống thấp để đọc ký tự từ ngã ra của bộ đệm vào CPU - Đọc các trạng thái lỗi ở các ngã PE, FE và OVE (Các chân này cho phép bởi SOE ở trạng thái thấp). Mức cao của các chân này cho biết đã phát hiện lỗi. PE cho biết lỗi chẵn lẻ, FE cho biết lỗi khung và OVE cho biết lỗi tràn (Overrun) là lỗi do tốc độ thu ký tự lớn hơn tốc độ đọc ký tự. - Reset thanh ghi thu bằng cách đưa chân DRRST xuống mức thấp Tốc độ phát và thu bit tùy thuộc vào xung đồng hồ trên hai chân TC và RC. 6402 có mạch chia 16 cố định để tần số xung clock vào phải bằng 16 lần tốc độ baud mong muốn. Tốc độ có thể lên tới 250 kbps. 4.3.1.4 Giao tiếp của 6402 với vi xử lý Giao tiếp giữa 6402 và bộ vi xử lý có phần phức tạp (H 4.5), nhưng ít sử dụng phần mềm khi thực hiện các chức năng thu phát _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 7 (H 4.5) - Việc thực hiện giao thức bất đồng bộ (tức tạo từ điều khiển) nhờ vào khóa chuyển mạch điện tử. - Việc báo lỗi thực hiện nhờ một led. - Mạch được Reset bởi cả phần cứng và phần mềm. - Mạch đơn ổn thực hiện chức năng Reset thanh ghi thu tự động sau khi thu đủ ký tự. - Việc đọc ký tự thu tác động bởi tín hiệu RD ở CPU và tín hiệu select UART từ mạch giải mã địa chỉ. - Tương tự cho việc nạp dữ liệu vào thanh ghi đệm phát để phát : tác động bởi tín hiệu WR của CPU và tín hiệu select UART. - Các ngắt riêng biệt của µP được tạo ra bởi tín hiệu DR và TBRE 4.3.2 . ACIA 6850 của Motorola 4.3.2.1 - Đặc tính tổng quát Về tính chất vật lý, 6850 thuộc loại NMOS có 24 chân, được thiết kế để giao tiếp với bus của họ µP 6800 của Motorola. 6850 có thể lập trình phần mềm và chỉ có một thanh ghi điều khiển Ngoài ra, với 6850 ta có thể thiết lập các giao thức sau đây : - Có thể truyền 8 hoặc 9 bit - Có thể chọn parity chẵn hoặc lẻ - Kiểm tra lỗi parity, overrun, và framing - Có thể chọn các mode hoạt động với tần số xung đồng hồ chia cho hệ số 1, 16 hoặc 64 - Tốc độ truyền dữ liệu lên tới 500 kbps - Có các chức năng điều khiển ngoại vi/modem - Có 1 hoặc 2 bit Stop - Có thanh ghi dữ liệu đôi. _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 8 4.3..2.2 - Mô hình và sơ đồ khối (H 4.6) (H 4.6) * Ý nghĩa các chân : - 2CS , CS1, CS0 : Chip slect : chọn chip - RS : Reg. Select : Chọn thanh ghi (1: Dữ liệu; 0: Điều khiển) - R/W : Read/Write - IRQ : Interrupt request : Yêu cầu ngắt - D7-D0 : Data Bus I/O : Bus dữ liệu vào/ra - E : Data I/O Enable and Clkng (Điều khiển xuất nhập dữ liệu vào/ra bus) - RxCLK, TxCLK : Ngã vào xung đồng hồ thu, phát - CTS : Clear To Send _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 9 - RTS : Request To Send - CD : Carrier Detect : Dò sóng mang - RxD, TxD : Dữ liệu thu, phát - VSS : Mass nguồn (GND) - VDD : Nguồn dương (+5 V) Các chi tiết của giao thức được chọn bằng cách ghi 1 byte vào thanh ghi điều khiển dựa theo bảng 4.2. Trạng thái thu phát và trạng thái lỗi được đọc từ thanh ghi trạng thái, dựa vào bảng 4.3 Thanh ghi điều khiển hoặc thanh ghi trạng thái được chọn khi chân RS xuống thấp và thanh ghi dữ liệu thu hoặc phát được chọn khi RS lên cao. Thanh ghi dữ liệu phát và điều khiển chỉ có thể ghi (write). Thanh ghi dữ liệu thu và trạng thái chỉ có thể đọc (read) Bảng 4.2 6850 Control Register Word Bits D7 Cho phép ngắt thu C7 1 = IRQ ở thấp khi thanh ghi đệm thu đầy 0 = Không cho phép ngắt thu D6 Điều khiển ngắt phát - phát C6 00 = RTS low. Không cho phép ngắt phát 01 = RTS low. Cho phép ngắt phát D5 C5 10 = RTS high. Không cho phép ngắt phát 11 = RTS low. Không cho phép ngắt phát & Phát bit 0 (break level) D4 Chọn chiều dài ký tự, KTchẵn lẻ, Số bit stop C4 000 = 7 bit + Chẵn + 2 Stop 001 = 7 bit + Lẻ + 2 Stop 010 = 7 bit + Chẵn + 1 Stop D3 C3 011 = 7 bit + Lẻ + 1 Stop 100 = 8 bit + 2 Stop 101 = 8 bit + 1 Stop D2 C2 110 = 8 bit + Chẵn + 1 Stop 111 = 8 bit + Lẻ + 1 Stop D1 Chon hệ số chia tần xung CK C1 00 = : 1 01 = : 16 D0 C0 10 = : 64 11 = Master Reset Ghi chú : * Master reset, thanh ghi điều khiển có bít C1 C0 = 11, Reset tất cả các bít của thanh ghi trạng thái và đưa chân RTS và IRQ lên cao * Bít C7 = 1, CPU bị ngắt nếu: - Thanh ghi dữ liệu thu đầy - Bị tràn - Có một biến đổi từ thấp lên cao ở chân CD (modem không dò ra sóng mang) Bảng 4 .3 6850 Status Register Bits D7 Trạng thái pin IRQ IRQ 1 = IRQ low Reset bởi việc đọc thanh ghi đệm thu hay viết vào thanh ghi phát D6 Lỗi chẵn lẻ PE 1 = Có lỗi chẵn lẻ Set/Reset khi chuyển dữ liệu thu D5 Lỗi tràn (Overrun) OVRN 1 = Báo lỗi tràn và giữ bit RDRF = 1 Set/Reset khi chuyển dữ liệu thu D4 Lỗi khung FE 1 = Có lỗi khung Set/Reset khi chuyển dữ liệu thu D3 Xóa để phát CTS Tùy trạng thái chân CTS Chân CTS ở mức cao sẽ vô hiệu hóa bit TDRE D2 Dò sóng mang CD 1 = chân CD ở mức cao (no carrier) ( xem ghi chú) D1 Thanh ghi phát trống TDRE 1= Phần phát chờ nhận ký tự. Reset bởi việc ghi vào thanh ghi phát _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 10 D0 Thanh ghi thu đầy RDRF 1 = Phần thu chờ đọc ký tự. Reset bởi việc đọc thanh ghi đệm thu Ghi chú : bit CD lên 1 làm cho chân IRQ xuống thấp khi bit C7 set = 1. Bit CD vẫn giữ 1 sau khi pin CD xuống thấp và bị xóa sau khi đọc thanh ghi trạng thái, và thanh ghi dữ liệu thu, hoặc cho đến khi MRST xảy ra. Thông tin trong thanh ghi trạng thái được đọc bởi CPU và cho biết trạng thái hiện hành của 6850 Bit D0 : (RDRF) Bít này set 1 sau khi data nhận được đã truyền từ thanh ghi dịch thu tới thanh đệm thu và nó được xóa sau khi CPU đã đọc data Bit D1 : (TDRE) Bít này được set khi data đã chuyển từ thanh ghi đệm phát đến thanh ghi dịch phát, nó được xóa khi CPU viết từ mới vào thanh ghi đệm phát Bit D2 : (CD) Bít này được set nếu Modem không dò ra sóng mang Bit D3 : (CTS) Bít này được reset ( =0) nếu có tín hiệu tác động xóa để gửi Bit D4 : (FE) Bít này set nếu máy thu không dò ra bít stop ( sai khung) Bit D5 : (OVRN) Bít này set nếu 6850 chuyển data thu được từ thanh ghi dịch thu vào thanh ghi đệm thu trước khi CPU đọc nội dung trong thanh ghi này, nó chỉ rằng có một phần bản tin bị mất. Bít này được reset khi CPU đọc thanh ghi đệm thu Bit D6 : (PE) Bít này set khi máy thu dò ra lỗi parity Bit D7 : (IRQ) Bít này set khi có tín hiệu tác động trên ngã ra IRQ tới CPU 4.3.2.3 Vận hành Vận hành 6850 được mô tả qua các bước : Khởi động, phát một ký tự và thu một ký tự - Khởi động : Chú ý rằng 6850 không có reset phần cứng. Việc reset chip được điều khiển bằng cách ghi byte điều khiển vào thanh ghi điều khiển (lập các bit C0 = C1 = 1) - Reset chip: các bit trong thanh ghi trạng thái về 0 và hai chân RTS và IRQ lên cao - Lập trình từ điều khiển để chọn giao thức hoạt động. - Phát một ký tự Khi đã khởi động chip ta chỉ cần 2 bước để phát một ký tự - Chân CTS phải ở mức thấp - Đợi cho đến khi bít TDRE = 1 (trong thanh ghi trạng thái) - Ghi ký tự cần phát vào thanh ghi dữ liệu phát Một ví dụ để thấy hoạt động phát của 6850. Từ điều khiển ghi vào thanh ghi có dạng 10101101. Do bit D6 và D5 là 0 và 1, một tín hiệu mức thấp tác động cho bởi chân RTS gửi tới modem, sau một thời gian trễ xác định, modem gửi tín hiệu tác động mức thấp tới chân CTS , báo dữ liệu sẵn sàng để gửi đi. CPU đọc thanh ghi trạng thái và nếu bit D1 (TDRE) lên 1 nó sẽ gửi từ kế tiếp đến thanh ghi đệm phát, từ này được chốt vào thanh ghi khi chân E chuyển từ mức cao xuống thấp, điều này khiến cho bit TDRE reset xuống 0. Mạch logic bên trong tạo bit kiểm tra lẻ theo yêu cầu và chuyển dữ liệu cùng với bit start, bit parity và bit stop vào thanh ghi dịch phát. Dữ liệu được chuyển ra ngoài trên đường TxD với bit rate bằng 1/16 tần số xung đồng hồ ở chân TxCLK . Khi dữ liệu đã chuyển vào thanh ghi dịch phát bit TDRE của thanh ghi trạng thái lên 1, một lần nữa vì bit D6 và D5 của thanh ghi điều khiển là 0 và 1 nên khi TDRE lên 1 một tín hiệu ngắt tự động gửi đến CPU ở ngã ra IRQ . CPU trả lời bằng cách gửi từ thứ 2 tới thanh ghi đệm phát mặc dù từ thứ nhất có thể chưa hoàn toàn chuyển ra ngoài. Sở dĩ được như vậy vì 6850 dùng thanh ghi đôi và việc này làm gia tăng vận tốc truyền. _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 11 - Thu một ký tự Có 3 bước cần thiết để thu một ký tự - Chân CD phải ở mức thấp - Đợi cho đến khi bit RDRF = 1 - Đọc trạng thái lỗi từ thanh ghi trạng thái - Đọc ký tự thu từ thanh ghi dữ liệu thu Các ngắt phát và/hoặc thu có thể được cho phép bởi từ điều khiển (xem bảng 4.2) Chân IRQ sẽ ở mức thấp bất cứ khi nào các bit trạng thái TDRE và/hoặc RDRF là 1. Trong khi chân IRQ ở thấp bit trạng thái IRQ là 1. Dưới đây là quá trình thu một ký tự Tín hiệu nối tiếp tới chân RxD của ACIA. Thông thường chân này ở mức cao khi không có tín hiệu vào. Khi có tín hiệu tới bit đầu tiên là bit start (bit D0) làm chân RxD chuyển từ cao xuống thấp. Giả sử tần số xung đồng hồ thu bằng 16 lần vận tốc bit, thì sau 8 chu kỳ đồng hồ kể từ khi chân RxD chuyển từ cao xuống thấp, ngã vào này được kiểm tra một lần nữa và nếu nó vẫn còn ở mức thấp, bit start mới có giá trị, nếu không ACIA xem tín hiệu nhận được là nhiễu và tiếp tục giám sát sự thay đổi ở chân này để tìm ra bit start. Dùng 8 chu kỳ đồng hồ sau khi có sự thay đổi trạng thái của chân RxD khiến cho data được lấy mẫu đúng ngay điểm giữa và được chuyển vào thanh ghi dịch thu sau mỗi 16 xung đồng hồ. Viêc kiểm tra lỗi được thực hiện và khi có lỗi xảy ra các bit báo lỗi tương ứng trong thanh ghi trạng thái sẽ được set. Sau khi số bit dữ liệu mong muốn đã nhận được, bản tin được chuyển song song từ thanh ghi dịch thu tới thanh ghi đệm thu và bit 0 (RDRF) của thanh ghi trạng thái được set lên 1. Nếu bit 7 của thanh ghi điều khiển được set (đưa lên 1) trong suốt thời gian khởi động, một ngắt tới CPU được tự động tạo ra do chân IRQ xuống thấp. CPU thực hiện chương trình phục vụ ngắt và đọc thanh ghi trạng thái để biết nguyên nhân ngắt. Nếu CPU tìm thấy bit RDRF đã set nó sẽ đọc dữ liệu trong thanh ghi đệm thu. Hành động này xóa bit RDRF của thanh ghi trạng thái. Phần thu của 6850 cũng dùng thanh ghi đôi cho phép từ kế tiếp chuyển vào thanh ghi dịch trong khi từ trước đó chưa hoàn toàn được đọc vào CPU nhằm tăng vận tốc truyền như nói trên. 4 .3.2.4 Giao tiếp của 6850 với vi xử lý ACIA 6850 có thể giao tiếp với họ vi xử lý 6800 hoặc 6502 (H 4.7) _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 12 (H 4 .7) Ghi chú: Trong mạch (H 4.7) - Φ2 là tín hiệu xung đồng hồ chuẩn cho tất cả thiết bị ngoại vi của 6800. - VMA : Valid memory address, ngã ra chỉ báo cho các thiết bị ngoại vi của 6800 biết có một địa chỉ có hiệu lực trên bus địa chỉ. - Mạch giao tiếp trên không truyền qua modem (các chân CTS và CD nối mass) - Việc giải mã địa chỉ được thực hiện từ bên ngoài cho ngã vào 2CS - Chân CS1 và CS0 phải nối lên mức cao - Các ngắt được báo cho CPU từ chân IRQ để báo cho CPU biết các thanh ghi thu hoặc phát đã sẵn sàng. Các thao tác này cũng có thể chọn lựa bởi việc lập trình thích hợp cho các bit cho phép ngắt trong thanh ghi điều khiển. 4.3.3. USART 8251A của Intel : 4 .3.3.1 - Tính năng tổng quát : 8251A là một chuẩn công nghiệp USART, được chế tạo từ kỹ thuật NMOS, có 28 chân, được thiết kế để truyền dữ liệu tốc độ lên đến 64 kbps tương thích với họ µP của Intel như MCS-48, 80, 85 và iAPX-86, 88.....8251A được dùng như một thiết bị ngoại vi và được lập trình bởi CPU để truyền dữ liệu nối tiếp. USART nhận các ký tự dữ liệu từ µP ở dạng song song, sau đó đổi chúng thành dạng nối tiếp để phát đi. Đồng thời, 8251A có thể thu dòng dữ liệu nối tiếp và đổi chúng thành các ký tự dữ liệu song song gửi đến µP. USART sẽ báo cho µP biết khi nào có thể nhận một ký tự từ µP để phát, hoặc khi nào đã thu được một ký tự để cho µP đọc. µP có thể đọc trạng thái của USART bất cứ lúc nào. Những trạng thái này bao gồm các lỗi truyền dữ liệu và các tín hiệu điều khiển như là RxRDY (Receiver Ready) và TxRDY (Transmitter Ready) 4.3.3.2 - Mô hình và sơ đồ khối (H 4.8) _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 13 (H 4.8) 8251A có thanh ghi dữ liệu đôi và các thanh ghi điều khiển và trạng thái riêng biệt, điều này làm đơn giản việc lập trình và tăng hiệu quả sử dụng thời gian của CPU (tăng vận tốc thu, phát). - Ở chế độ truyền bất đồng bộ máy thu dò và ngưng hoạt động tự động mà không cần sự điều khiển của CPU - Kết thúc một cuộc liên lạc, TxD line luôn trở về trạng thái nghỉ (mark state), tức phát tín hiệu 1, trừ khi bit D3 (SBRK) trong thanh ghi điều khiển được set = 1 - Trạng thái logic của bit D0 (Tx Enable) cho phép máy truyền xong các ký tự đã nạp vào thanh ghi mặc dù có lệnh dừng. 8251A có khả năng thực hiện giao thức truyền đồng bộ và bất đồng bộ. Ở đây ta chỉ bàn đến khả năng truyền bất đồng bộ. - Trong chế độ truyền bất đồng bộ, chiều dài ký tự có thể từ 5 đến 8 bit với tần số xung clock bằng 1, 16, 64 lần giá trị baud - Có khả năng phát ký tự Break và 1, 1,5 hoặc 2 bit Stop - Dò được các lỗi chẵn lẻ, sai khung và lỗi tràn - Ngã vào và ra tương thích TTL. - Chức năng các khối và ý nghĩa các chân IC : - Data Bus Buffer : Là bộ đệm 8 bit, hai chiều, 3 trạng thái được dùng để giao tiếp 8251A với Bus dữ liệu của hệ thống. Dữ liệu được phát hay thu tùy thuộc lệnh Input hay Output của CPU. Từ điều khiển, từ lệnh và thông tin trạng thái cũng được truyền qua Data Bus. Khối chức năng này nhận tín hiệu từ Bus điều khiển của hệ thống và phát tín hiệu điều khiển hoạt động của cả IC, nó chứa thanh ghi từ điều khiển chế độ hoạt động (control word), thanh ghi từ điều khiển vận hành (command word) là các thanh ghi xác định những chức năng của IC Khối này gồm các chân : D0 - D7 : Data bus I/O : bus dữ liệu vào/ra RST : Reset : Đặt lại : mức cao của ngã vào này đưa 8251A vào trạng thái nghỉ cho tới khi có một từ control mới được viết vào để xác đinh chế độ vận hành của nó. CLK : System Clock : Xung đồng hồ hệ thống : ngã vào dùng định thời bên trong IC, tần số xung Clock phải lớn hơn 30 lần tốc độ thu phát bit WR : Write : CPU ghi dữ liệu hay từ control vào 8251A, đây là ngã vào tác động mức thấp. RD : Read : CPU đọc dữ liệu hay thông tin về trạng thái từ 8251A CS : Chip select : chọn chip C/D : Control/Data : Điều khiển/Dữ liệu. Đây là ngã vào, liên kết với WR và RD để báo cho 8251A biết từ đang ở Data bus là ký tự dữ liệu, từ control hay thông tin về trạng thái. Bảng 4.4 dưới đây cho thấy kết quả của sự phối hợp các ngã vào nói trên : Bảng 4 .4 C/D RD WR CS _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 14 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 x 1 1 0 x x x 1 8251A DATA → DATA BUS DATA BUS → 8251A DATA STATUS → DATA BUS DATA BUS → CONTROL DATA BUS → 3-STATE DATA BUS → 3-STATE - Modem Control : 8251A có một tập hợp ngã vào/ra điều khiển được dùng để đơn giản sự giao tiếp với hầu hết các Modem, gồm các chân : DSR : Data Set Ready : Ngã vào điều khiển bởi bit D7 của thanh ghi trạng thái (D7 = 1 chân DSR xuống thấp). Trạng thái của nó có thể được test bởi CPU nhờ tác vụ đọc trạng thái. DTR : Data Terminal Ready : Ngã ra điều khiển bởi bit D1 của thanh ghi điều khiển vận hành (command; D1 = 1 chân DTR xuống thấp). Trạng thái của nó có thể được kiểm soát bởi từ command. Có thể dùng test chân DTR của modem . RTS : Request To Send : Ngã ra điều khiển bởi bit D5 trong thanh ghi điều khiển (D5 = 1 chân RTS xuống thấp). Có thể được dùng để test chân RTS của modem. CTS : Clear To Send : Ngã vào, mức thấp cho phép 8251A phát dữ liệu nối tiếp nếu bit Tx Enable trong thanh ghi từ command (D0 ở mức 1). Khi phần phát Tx đang phát nếu bit TxEnable = 0 hoặc chân CTS lên cao, Tx sẽ phát tất cả Data trong USART trước khi nghỉ. - Transmitter buffer : Nhận Data song song từ Data bus buffer, đổi sang nối tiếp, thêm các bit đặc biệt và xuất tín hiệu hỗn hợp ra ngã TxD khi có cạnh xuống của xung Clock phát TxC . - Transmitter Control : TxC quản lý tất cả hoạt động liên quan đến việc phát tín hiệu TxRDY : Trans. Ready, ngã ra này báo cho CPU biết máy phát sẵn sàng nhận dữ liệu. Chân TxRDY có thể dùng như là một ngắt cho hệ thống, vì nó được che bởi Tx Enable, hoặc đối với tác vụ hỏi vòng (polling), CPU có thể kiểm soát TxRDY bằng tác vụ đọc trạng thái (bit D0 trong thanh ghi trạng thái). TxRDY tự động reset bởi cạnh xuống (leading edge) của WR khi ký tự dữ liệu được nạp từ CPU TxE : Trans. Reg. Empty : thanh ghi phát trống : Khi 8251A không có gì để phát, ngã ra TxE lên cao. TxE có thể được dùng để chỉ lúc chấm dứt phát sao cho CPU biết lúc phải đổi sang đường dây khác trong cách truyền bán song công (HDM) TxC : Transmitter Clock : Xung đồng hồ phát có tần số là một bội của vận tốc điều chế (Baud rate), tùy theo lập trình, bội này có thể là 1, 16, 64 (chỉ dùng cho chế độ bất đồng bộ). Thí dụ: Vận tốc điều chế là 110 baud thì: - TxC = 110 Hz khi ở chế độ x1 (B1B0 = 01) - TxC = 1,72 KHz khi ở chế độ x1 (B1B0 = 10) - TxC = 7,04 KHz khi ở chế độ x1 (B1B0 = 11) - Receiver Buffer : Nhận dữ liệu nối tiếp đổi thành song song, kiểm tra lỗi và gửi ký tự tới CPU. Dữ liệu nối tiếp vào ngã vào RxD bởi cạnh lên của tín hiệu RxC . - Receiver Control : Quản lý tất cả hoạt động thu của IC _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 15 RxRDY : Ngã ra này báo 8251A chứa một ký tự sẵn sàng đọc vào CPU. RxRDY có thể nối vào cấu trúc ngắt của CPU hay đối với tác vụ hỏi vòng, CPU có thể kiểm soát trạng thái của RxRDY bằng cách dùng tác vụ đọc trạng thái (bit D1). Bit RxE (Receive Enable, D2) trong thanh ghi điều khiển vận hành (command) có tác dụng điều khiển chân RxRDY, khi RxE = 0 thì RxRDY ở điều kiện không được phép. RxC : Receiver Clock : Xung đồng hồ thu có tần số là bội của vận tốc điều chế: x1, x16 và x64 SYN/BRK : Sync detect/Break detect : Dò đồng bộ/ Ngưng: - Khi hoạt động ở chế độ truyền đồng bộ chân này có thể là ngã vào hoặc ngã ra tùy vào từ control đã lập trình * Khi là ngã ra (ở chế độ đồng bộ bên trong) chân này lên cao khi phần thu dò ra từ đồng bộ. * Khi là ngã vào (ở chế độ đồng bộ bên ngoài) tín hiệu mức cao tới khiến 8251A bắt dầu thu dữ liệu khi có cạnh lên của xung đồng hồ kế tiếp. - Khi hoạt động ở chế độ truyền bất đồng bộ chân này là ngã ra và lên cao khi máy thu ngưng nhận tín hiệu trong khoảng thời gian tương đương 2 ký tự. Chân này đươc reset bởi tín hiệu MRST hay chân RxD lên cao. Break Detect cũng có thể được đọc như một bit trạng thái. Khác với 6402, ở 8251A tất cả dữ liệu đến và từ µP đều đi qua bus dữ liệu (data bus) nối với các chân D0-D7. Địa chỉ thanh ghi được định bởi chân C/D (Control/Data). Khi chân này lên cao cho phép chọn nhóm thanh ghi điều khiển (mode, command, status). Khi chân này xuống thấp cho phép chọn các thanh ghi dữ liệu (là các bộ đệm thu và phát). Bộ đệm phát và thanh ghi điều khiển chỉ có thể ghi(write), trái lại bộ đệm thu và thanh ghi trạng thái chỉ có thể đọc (read). Thanh ghi chọn chế độ (mode) chỉ có thể được truy xuất sau khi chip được reset. Bảng 4 .5 Từ chọn chế độ và điều khiển vận hành (Mode Control and Command word bits) D7 Chọn số bit stop S1 00 = không 01 = 1 bit Stop Vào chế độ tìm từ SYNC. EH 1 = Cho phép tìm từ SYN. D6 S0 10 = 1,5 bit Stop 11 = 2 bit Stop Reset nội IR 1 = Reset D5 Chọn KT chẵn EP 1 = Chẵn 0 = lẻ Yêu cầu phát RTS 1 = Chân RTS thấp 0 = Cao D4 Cho phép KT chẵn lẻ PEN 1 = Có bit chẵn lẻ 0 = Không Reset lỗi ER 1 = Reset cờ lỗi PE,OE,FE về 0 D3 Chọn chiều dài ký tự L1 00 = 5 Bits 01 = 6 Bits Phát ký tự Break SBRK 1 = Chân TxD thấp 0 = Vận hành bình thường D2 L0 10 = 7 Bits 11 = 8 Bit Cho phép thu RxEN 1 = Enable 0 = Disable D1 Chọn hệ số chia xung CK B1 00 = Sync. Mode 01 = : 1 DTE sẵn sàng DTR 1 = Chân DTR thấp 0 = Cao D0 B0 10 = : 16 11 = : 64 Cho phép phát TxEN 1 = Cho phép 0 = Không Từ chọn chế độ (mode control) Từ điều khiển vận hành (command) Sử dụng 8251A đòi hỏi các đoạn chương trình ngắn để nạp từ chọn mode (mode control word) và từ điều khiển (command word) cho các thanh ghi điều khiển, cũng như để đọc định kỳ thanh ghi trạng thái (status). Chi tiết của 3 thanh ghi này được cho trong bảng 4.5 và 4.6 Bảng 4 .6 Thanh ghi trạng thái 8251A (Status Register) _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 16 D7 DCE sẵn sàng DSR 1 = Chân DSR thấp 0 = Cao D6 Dò từ SYN SYNDET 1 = Dò ra từ SYN (Synchronous only) D5 Lỗi khung FE 1 = Có lỗi khung, reset bằng cách ghi ER = 1 (Asynchronous only) D4 Lỗi tràn OE 1 = Có lỗi tràn D3 Lỗi chẵn lẻ PE 1 = Có lỗi chẵn lẻ D2 Thanh ghi phát trống TxEmpty 1 = Trống 0 = Bận D1 Phần thu sẵn sàng RxD 1 = Sẵn sàng thu ký tự mới D0 Phần phát sẵn sàng TxD 1 = Sẵn sàng ghi ký tự mới để phát Ghi chú: bit TxD có nghĩa hơi khác với chân TxRDY. Bít TxD không kèm theo điều kiện của chân CTS và TxEN trong lúc chân TxRDY kèm theo cả 2 điều kiện này 4.3.3.3 - Vận hành Toàn bộ hoạt động của 8251A được lập trình bởi phần mềm hệ thống. Một tập từ điều khiển được phát ra từ CPU để khởi động 8251A, các từ điều khiển này sẽ qui định các giá trị vận tốc thu phát, chiều dài ký tự, số bit stop, chọn parity, đồng bộ hay bất đồng bộ (bit parity không được xem là bit dữ liệu khi lập trình chiều dài từ). Trong trường hợp chiều dài từ < 8 bit, những bit thấp (từ LSB) là dữ liệu, những bit không dùng (bit cao) thì không cần quan tâm (don't care) khi viết dữ liệu vào 8251A và là 0 khi đọc dữ liệu từ 8251A). Vận hành của USART 8251A được mô tả qua các bước : khởi động, phát một ký tự và thu một ký tự. - Khởi động 8251A - Reset chip - Ghi vào thanh ghi chọn chế độ một byte (từ CPU) để chọn giao thức mong muốn (bảng 4.5) Sau khi thiết lập chế độ hoạt động, việc phát và thu được điều khiển bằng cách ghi định kỳ từ điều khiển vào thanh ghi điều khiển bao gồm các bước sau : - Reset chip - Ghi từ chọn chế độ vào thanh ghi mode (mode register) - Ghi từ điều khiển vào thanh ghi command (command register). Đối với 8251A, từ đi sau từ mode luôn luôn là từ command và từ command có thể ghi vào thanh ghi bất cứ lúc nào trong khối dữ liệu trong lúc 8251A đang hoạt động. Để trở lại với từ chọn chế độ, bit master reset (D6) trong từ command có thể được set để khởi động reset nội và đưa 8251A trở về trạng thái khởi động, và từ điều khiển ghi vào lúc này phải là từ mode. - Phát một ký tự Để phát một ký tự, bit TxEN trong thanh ghi điều khiển phải ở logic 1 và chân CTS phải ở mức thấp : - Đợi cho đến khi chân TxRDY lên cao hoặc cho đến khi bit TxRDY trong thanh ghi trạng thái là 1. - Ghi ký tự cần phát vào thanh ghi đệm phát. _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu ___________________________________________Chương 4 Truyền nối tiếp bất đồng bộ IV - 17 USART tự động thêm các bit start, stop, kiểm tra chẵn lẻ. Ký tự được phát đi nối tiếp trên đường TxD với bit LSB được phát trước, các bit được dời ra ngòai mỗi khi có cạnh xuống của xung đồng hồ TxC với vận tốc bằng 1, 1/16, 1/64 tần số xung đồng hồ. - Thu một ký tự Để thu một ký tự đồng thời kiểm tra lỗi của ký tự này, cần thực hiện các bước sau : - Đợi cho đến khi chân RxRDY lên cao hoặc cho đến khi bit RxRDY trong thanh ghi trạng thái là 1 - Đọc trạng thái lỗi từ thanh ghi trạng thái - Đọc ký tự từ thanh ghi đệm thu - Reset trạng thái lỗi bằng cách ghi bit ER = 1 (D4) trong thanh ghi command. Tốc độ phát và thu bit được quyết định bởi tần số của xung clock đưa vào chân RxC /TxC chia theo hệ số 1, 16 hoặc 64 đã chọn trong từ chọn mode. Hoạt động thu của 8251A giống như 6850 của Motorola, bắt đầu sau khi hiệu lực hóa bit start, dữ liệu được lấy mẫu khi có cạnh lên của xung đồng hồ RxC . 4..3.3.4 Giao tiếp với CPU của 8251A (H 4.9) mô tả kết nối giữa 8251A và CPU Giao tiếp giữa 8251A và CPU sử dụng đặc tính xuất nhập của bộ tích lũy (accumulator I/O) của Intel 8085 (H 4.9) - Thu một ký tự Việc thu một ký tự thực hiện khi chân RxRDY hoặc bit RxRDY trong thanh ghi trạng thái lên mức cao để tạo ngắt đưa tới µP báo sẵn sàng để thu. - Phát một ký tự Quyết định bởi bit TxRDY trong thanh ghi trạng thái, trong trường hợp này CPU phải thực hiện việc hỏi vòng (chứ không tạo ngắt), khi nhận được mức cao của bit TxRDY (hoặc chân TxRDY lên cao), CPU ghi ký tự cần phát vào thanh ghi đệm phát. _________________________________________________________________________________ Nguyễn Trung Lập Truyền dữ liệu

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

  • pdfTruyền nối tiếp bất đồng bộ.pdf