Tốc độ baud

Một phần của tài liệu tổng quan kiến trúc arm cortex m3 (Trang 82 - 89)

Bộ chia tốc độ buad là 1 số 22 bit gồm 16 bit nguyên và 6 bit phân số. Các số được hình thành bởi 2 giá trị được sử dụng bởi bộ phát tốc đọ baud để xác định bit giới hạn. Việc có bộ chia tốc độ baud phân số cho phép UART phát tất cả các tốc độ buad tiêu chuẩn.

16 bit nguyên được tải qua thanh ghi UART integer Baud-Rate Divisor (UARRTIBRD). Bộ chia tốc độ baud có mối quan hệ tới hệ thống clock (nơi BRDI là nguyên của BRD và NRDF là phân số).

BRD=BRDI+BRDF=UARTSysClk/(16*baud rate) UARTSusClk là hệ thống clock được nối với UART.

6 bit phân số có thể được tính toán bằng việc mang phân số bộ chia tốc độ baud nhân với 64 và cộng 0.5 tới phép tính cho lỗi rounding

UARTFBRD[DIVFRAC]=integer (BRDF*64+0.5)

Cùng thanh ghi UART line control, high byte (UARTLCRH), dạng thanh ghi UARTIBRD và UARTFBRD 1 thanh ghi 30 bit nội. Thanh ghi nội này chỉ được cập nhật khi 1 sự vận hành write được thực hiện, vì vậy bất kỳ thay đổi nào tới bộ chia tốc độ baud phải write tới thanh ghi UARTLCRH để thay đổi các ảnh hưởng.

Thanh ghi cập nhật tốc độ baud, có 4 trình tự có thể:

- UARTIBRD write, UARTFBRD write, và UARTLCRH write - UARTFBRD write, UARTIBRD write, và UARTLCRH write - UARTIBRD write, và UARTLCRH write

- UARTFBRD write và UARTLCRH write

8.2.3 Dữ liệu bộ phát.

Các dữ liệu nhận hoặc phát được lưu trữ trong 2 FIFOs 16 byte, qua nhận FIFO có 4 bit trên 1 ký tự cho các trạng thái thông tin. Để phát, các dữ liệu được viết trên FIFO.Nếu UART cho phép, các khung dữ liệu bắt đầu phát với các thông

số ở thanh ghi UARTLCRH. Các dữ liệu tiếp tục được phát cho đến khi không còn dữ liệu trên FIFO. Bit BUZY của thanh ghi UART Flags được xác nhận ngay khi các dữ liệu được ghi trên FIFO. Và được duy trì trong khi các dữ liệu được phát. Bit BUSY về 0 khi FIFO trống và các ký tự cuối cùng được phát từ thanh ghi dịch bao gồm cả bit stop. UART có thể chi ra rằng nó rất bận mặc dù UART không còn được cho phép

Khi bộ nhận không làm gì và các dữ liệu vào ở LOW, các bộ đếm nhận bắt đầu chạy và các dữ liệu được lấy mẫu trong chu ky thứ 8 của Baud16

Bit start được bật và nhận dạng nếu UnRx vẫn ở LOW trong chu kỳ 8 baud16, nếu không nó được bỏ qua. Sau khi bit start được bật các bit dữ liệu liên tiếp được lấy mẫu trong mỗi 16th cycle của baud 16 theo chiều dài lập trình của các ký tự dữ liệu. Bit parity sẽ được kiểm tra nếu bit parity được bật. chiều dài của các bit dữ liệu và parity được xác định trên thanh ghi UARTLCRH.

- Bit stop sẽ được xác nhận UnRx ở mức cao nếu không có khung lỗi xảy ra. Khi tất cả word được nhận các dữ liệu được lưu trữ bộ nhận FIFO với bất kỳ lỗi nào liên quan tới từ đó.

8.2.4 SIR

Thiết bị ngoại vi UART bao gồm 1 khối giải mã và mã hóa IrDA SIR, Khối này cung cấp chức năng chuyển đổi 1 dòng UART không đồng bộ và giao diện bán song công SIR. Không có tin tín hiệu tương tự được xử lý trong chip. Vai trò của khối này là cung cấp đầu ra mã hóa số và đầu vào giải mã tới UART. Chân tín hiệu UART có thể được kết nối 1 bộ thu phát hồng ngoại để thi hành 1 Link vật lý IrDA SIR.

Khối này có hai chế độ hoạt động:

- Chế độ bình thường IrDA : mức logic 0 được phát High trong 3/16th của bit tốc độ buad được chọn trên đầu ra. Trong khi một logic được phát như tín hiệu thấp “Low”.. Các mẫu điều khiện sẽ điều khiển các bộ phát hồng ngoại gửi do 1 xung của mẫu zero. …………

- Chế độ low-power IrDA: với độ rộng của xung hồng ngoại được phát được 3 lần trong giới hạn của tín hiệu phát nội IrLPBaud16 bằng cách thay đổi các bit phù hợp trong thanh ghi UARTCR.

+ Trong suốt quá trình gửi, bit UART được sử dụng căn bản cho mã hóa . + Trong quá trình nhận, bit mã hóa hóa được chuyển tới logic nhận của UART.

8.2.5 Hoạt động FIFO.

UART có 16 FIFO trống. 1 cho phát và 1 cho nhận. Tất cả các FIFO này được truy cao thông qua thanh ghi dữ liệu UART.

Khi nhấn reset tất cả FIFO đều bị ngắt kết nối và thực hiện như 1 thanh ghi giữ 1 byte-deep. FIFO được cho phép bằng việc set bit FEN của UARTLCRH.

Trạng thái của FIFOs có thể được giám sát thông qua thanh ghi UART flag và thanh ghi UART recive status. giám sát phần cứng trống, đầy, tràn. Thanh ghi UARTFR bao gồm các cờ trống và full(TXFE,TXFF,RXFE,RXFF) và thanh ghi UARTSRS cho biết trạng thái tràn thông qua bit OE.

Điểm kích hoạt tải nối FIFO hoạt động ngắt được điều khiển thông qua thanh ghi UART interrupt FIFO level select UARTIFLS. Tất cả các UART đều được kích hoạt 1 cách riêng lẻ để kích hoạt ngắt ở những mục khác nhau.

8.2.6 Ngắt

UART ngắt trong các điều kiện sau:

Tất cả các sự kiện ngắt đều Ored trước khi gửi đến bộ điều khiển ngắt vì vậy UART chỉ có thể thực hiện ngắt 1 yêu cầu ngắt đơn lẻ tới bộ điều khiển tại bất kỳ thời gian nào. Phần mềm có thể cung cấp dịch vụ đa ngắt trong 1 chương trình con ngắt bằng việc đọc thanh ghi (UARTIMS).

Các sự kiện ngắt có thể kích hoạt mức bộ điều khiển ngắt được xác định bằng thanh ghi UARTIM bằng việc set bit IM tương ứng =1.

Nếu như ngắt không được sử dụng trạng thái ngắt thô luôn luôn đươc hiện lên thông qua thanh ghi UART raw interrupt status.

Ngắt luôn luôn được xóa bởi việc set bit tương ứng trong thanh ghi UART interrupt lear(UARTIC)

8.2.7 Hoạt động kiểm tra ngược

UART có thể được chuyển tới chế độ lookback nội để chuẩn đoán và gỡ rối. Bằng việc set bit LBE trong thanh ghi UARTCTL. ở chế độ này các dữ liệu được truyền trong UnTx sẽ được nhận ở UnRx

8.2.8 Khối IrDA sir

Bao gồm giao thức mã hóa/giải mã IrDA serial IR. Khi được kích hoạt SIR sử dụng chân UnTx và UnRx cho giáo thức SIR nên được kết nối tới 1 bộ phát IR.

Khối SIR có thể nhận và phát nhưng chỉ bán song công vi vậy không thể thực hiện cả 2 trong cùng 1 thời gian.Việc phát bắt buộc phải dừng trước khi nhận dữ liệu. Tối thiểu trễ 10ms giữa nhận và phát.

8.3 Khởi tạo và cấu hình.

Để sử dụng UARTs các xung ngoài phải được kích hoạt bằng việc set bit UART0 và UART 1 trong thanh ghi RCGC1.

Ví dụ xung UART được giả định tới 20Mhz và cấu hình UART là: - Tốc độ baud: 115200.

- Dữ liệu: 8bit. - 1 bit stop.

- Không kiểm tra chẵn lẻ. - FIFOs không được phép. - Không ngắt.

Việc đầu tiên cần xem xét là khi lập trình UART là baud rate divisor(BRD), thanh ghi UARTIBRD và UARTFBRD phải được ghi trước thanh ghi UARRTLCRH.

BRD có thể được tính theo công thức sau: BRD = 20 000 000/(16*115200)

Điều này có nghĩa rằng DIVINT của thanh ghi UARTIBRD nên set =10. Giá trị của nó được tại tới thanh ghi UARTFBRD được tính theo công thức sau:

UARTFBRD[DIVFRAC]=integer(0.8507*64+0.5)

Với giá trị BRD bằng tay UART cấu hình được ghi tới module theo các yêu cầu:

o Viết phần nguyên của BRD vào thanh ghi UARTIBRD

o Viết phần thập phân của BRD vào thanh ghi UARTFBRD

o Viết các thông số mong muốn vào thanh ghi UARTLCRH

o Cho phép UART bằng việc set bit UARTEN của thanh ghi UARTCTL.

Chương IV: Một số hình ảnh LM3S8962

Kết luận

Nghiên cứu này ban đầu đã cho thấy được kết quả khả quan, tạo tiền đề cho phát triển các ứng dụng với ARM Cortex M3. Để phát triển đề tài này, chúng tôi xin đưa ra một số ưu nhược điểm như sau:

Ưu, nhược điểm:

Ưu điểm

Giá thành chip rẻ so với các dòng chip khác với cùng số tài nguyện như ARM.

Tốc độ xử lý cao, ổn định. Tiết kiệm năng lượng

Số lượng tài nguyên lớn, phù hợp với nhiều ứng dụng khác nhau  Nhược điểm

Nhiều thanh ghi, câu lệnh khá dài, gây khó nhớ cho người dùng, dễ nhầm lẫn.

Thị trường ARM ở Việt Nam chưa rộng, gây khó trong việc tìm kiếm tài liệu và khó khăn trong việc đặt mua chip, do vậy việc nghiên cứu chưa được sâu

Hướng phát triển:

Đặt mua KIT từ TI tạo điều kiện nghiên cứu thực tế trên module.

Tạo các module thực tế để tạo điều kiện thuận lợi cho sinh viên nghiên cứu, thực hành với các ứng dụng thực tế, dễ hình dung.

Tài liệu tham khảo

1. Datasheet Stellaris® LM3S8962 Microcontroller - Copyright © 2007-2011 Texas Instruments Incorporated

Một phần của tài liệu tổng quan kiến trúc arm cortex m3 (Trang 82 - 89)

Tải bản đầy đủ (DOC)

(92 trang)
w