KT truyền bất đồng bộ
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ộ. - Máy phát đổi dữ liệu song song thành nối tiếp và tự động thêm ...
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ộ.
- 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.
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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "DRRST"}} } {} : Data Received Reset : Reset thanh ghi thu
ROE¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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
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
CR 4 CR 3 | Chọn chiều dài ký tựCharacter Length SelectCLS1CLS0 | 00 = 5 bit01 = 6 bit10 = 7 bit11 = 8 bit |
CR 2 | Có Kiểm Tra chẵn lẻ ?PI (Parity Inhibit) | 1 = không kiểm tra chẵn lẻ và PE = 00 = có kiểm tra chẵn lẻ |
CR 1 | Chọn Kiểm Tra chẵn EPE (Even Parity Enable) | 1 = kiểm tra chẵn0 = kiểm tra lẻ |
CR 0 | Chọn số bit stopSBSStop Bit Select | 0 = 1 bit stop 1 = 1,5 (ký tự 5 bit)1 = 2 (ký tự 6, 7, 8 bit) |
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¯ size 12{ {overline { bold "TBRL"}} } {} lên cao để nạp data vào thanh ghi đệm.
- Tín hiệu phát đi khi TBRL¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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.
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
(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
Đặ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. Mô hình và sơ đồ khối (H 4.6)
(H 4.6)
* Ý nghĩa các chân :
- , 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¯ size 12{ {overline {W}} } {} : Read/Write
- IRQ¯ size 12{ {overline { bold "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
- CTR¯ size 12{ {overline { bold "CTR"}} } {} : Clear To Send
- RTS¯ size 12{ {overline { bold "RTS"}} } {} : Request To Send
- CD¯ size 12{ {overline { bold "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 thuC7 | 1 = IRQ¯ size 12{ {overline { bold "IRQ"}} } {} ở thấp khi thanh ghi đệm thu đầy0 = Không cho phép ngắt thu |
D6 | Điều khiển ngắt phát - phátC6 | 00 = RTS¯ size 12{ {overline { bold "RTS"}} } {} low. Không cho phép ngắt phát01 = RTS¯ size 12{ {overline { bold "RTS"}} } {} low. Cho phép ngắt phát |
D5 | C5 | 10 = RTS¯ size 12{ {overline { bold "RTS"}} } {} high. Không cho phép ngắt phát11 = RTS¯ size 12{ {overline { bold "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 stopC4 | 000 = 7 bit + Chẵn + 2 Stop001 = 7 bit + Lẻ + 2 Stop010 = 7 bit + Chẵn + 1 Stop |
D3 | C3 | 011 = 7 bit + Lẻ + 1 Stop100 = 8 bit + 2 Stop 101 = 8 bit + 1 Stop |
D2 | C2 | 110 = 8 bit + Chẵn + 1 Stop111 = 8 bit + Lẻ + 1 Stop |
D1 | Chon hệ số chia tần xung CKC1 | 00 = : 101 = : 16 |
D0 | C0 | 10 = : 6411 = 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¯ size 12{ {overline { bold "RTS"}} } {} và IRQ¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "CD"}} } {} (modem không dò ra sóng mang)
Bảng 4 .3 6850 Status Register Bits
D7 | Trạng thái pin IRQ¯ size 12{ {overline { bold "IRQ"}} } {} IRQ | 1 = IRQ¯ size 12{ {overline { bold "IRQ"}} } {} lowReset 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 = 1Set/Reset khi chuyển dữ liệu thu |
D4 | Lỗi khungFE | 1 = Có lỗi khungSet/Reset khi chuyển dữ liệu thu |
D3 | Xóa để phát CTS | Tùy trạng thái chân CTS¯ size 12{ {overline { bold "CTS"}} } {} Chân CTS¯ size 12{ {overline { bold "CTS"}} } {} ở mức cao sẽ vô hiệu hóa bit TDRE |
D2 | Dò sóng mangCD | 1 = chân CD¯ size 12{ {overline { bold "CD"}} } {} ở mức cao (no carrier)( xem ghi chú) |
D1 | Thanh ghi phát trốngTDRE | 1= Phần phát chờ nhận ký tự.Reset bởi việc ghi vào thanh ghi phát |
D0 | Thanh ghi thu đầyRDRF | 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¯ size 12{ {overline { bold "IRQ"}} } {} xuống thấp khi bit C7 set = 1. Bit CD vẫn giữ 1 sau khi pin CD¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "IRQ"}} } {} tới CPU
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¯ size 12{ {overline { bold "RTS"}} } {} và IRQ¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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.
- Thu một ký tự
Có 3 bước cần thiết để thu một ký tự
- Chân CD¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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.
Bảng 4 .5 Từ chọn chế độ và điều khiển vận hành (Mode Control and Command word bits)
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)
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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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.
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¯ size 12{ {overline {T rSub { size 8{X} } C}} } {} 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¯ size 12{ {overline {R rSub { size 8{X} } C}} } {}/ TXC¯ size 12{ {overline {T rSub { size 8{X} } C}} } {} 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¯ size 12{ {overline {R rSub { size 8{X} } C}} } {}.
- 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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "DTR"}} } {} của modem .
RTS¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "RTS"}} } {} xuống thấp). Có thể được dùng để test chân RTS¯ size 12{ {overline { bold "RTS"}} } {} của modem.
CTS¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "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¯ size 12{ {overline {T rSub { size 8{X} } D}} } {} khi có cạnh xuống của xung Clock phát TXC¯ size 12{ {overline {T rSub { size 8{X} } C}} } {}.
- 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¯ size 12{ {overline { bold "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¯ size 12{ {overline {T rSub { size 8{X} } C}} } {} : 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¯ size 12{ {overline {T rSub { size 8{X} } C}} } {} = 110 Hz khi ở chế độ x1 (B1B0 = 01)
- TXC¯ size 12{ {overline {T rSub { size 8{X} } C}} } {} = 1,72 KHz khi ở chế độ x1 (B1B0 = 10)
- TXC¯ size 12{ {overline {T rSub { size 8{X} } C}} } {} = 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¯ size 12{ {overline {R rSub { size 8{X} } C}} } {}.
- Receiver Control :
Quản lý tất cả hoạt động thu của IC
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¯ size 12{ {overline {R rSub { size 8{X} } C}} } {} : 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¯ size 12{ {overline {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.
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.
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)
(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¯ size 12{ {overline { bold "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¯ size 12{ {overline { bold "CTS"}} } {} và CD¯ size 12{ {overline { bold "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 CSs¯ size 12{ {overline { bold "CS" rSub { size 8{s} } }} } {}
- 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¯ size 12{ {overline { bold "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)