Đặ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/ : Read/Write
- : 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
- : Clear To Send
- : Request To Send
- : 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 = ở 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 = low. Không cho phép ngắt phát01 = low. Cho phép ngắt phát |
D5 | C5 | 10 = high. Không cho phép ngắt phát11 = 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 và 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 (modem không dò ra sóng mang)
Bảng 4 .3 6850 Status Register Bits
D7 | Trạng thái pin IRQ | 1 = 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 Chân ở mức cao sẽ vô hiệu hóa bit TDRE |
D2 | Dò sóng mangCD | 1 = chân ở 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 xuống thấp khi bit C7 set = 1. Bit CD vẫn giữ 1 sau khi pin 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 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 và 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 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 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 , 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 . 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 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 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 ở 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 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 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 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ồ 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 / 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ồ .
- 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 :
: 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 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.
: 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 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 của modem .
: Request To Send : Ngã ra điều khiển bởi bit D5 trong thanh ghi điều khiển (D5 = 1 chân xuống thấp). Có thể được dùng đN 7e66 75; test chân của modem.
: 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 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ã khi có cạnh xuống của xung Clock phát .
- 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 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)
: 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ì:
- = 110 Hz khi ở chế độ x1 (B1B0 = 01)
- = 1,72 KHz khi ở chế độ x1 (B1B0 = 10)
- = 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 .
- 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.
: 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/ (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.