Bộ định thời (Timer)

Một phần của tài liệu đồ án : Thiết kế bộ điều khiển PID SỐ TRÊN NỀN VI ĐIỀU KHIỂN PIC (Trang 40 - 58)

Timer0 Module

Modle này được coi cĩ những đặc điểm sau:

• Cĩ thể lựa chon phần mềm như một bộ định thời hoặc bộ đếm cĩ thể là 8 bit hoặc 16 bit.

• Cĩ khả năng như thanh ghi đọc viết

• Riêng loại 8 bit cĩ thẻ coi là bộ đếm lập trình bằng phần mềm • Khả năng lựa chon xung nguồn(cả bên trong và bên ngồi) • Lự chon giới hạn cho xung từ bên ngồi

• Ngắt - mở - tràn

Đặc trưng cho Timer0 là thanh ghi T0CON

bit 7(TMR0ON): bit điều khiển đĩng mỏ Timer0

− Giá trị 1:cho phép hoạt động

− Giá trị 0: dừng hoạt động bit 6 (T08BIT): bit điều khiển Timer0 8-Bit/16-Bit

− Giá trị 1:Timer0 cấu hình như 8-bit timer/counter

− Giá trị 0: Timer0 cấu hình như 16-bit timer/counter bit 5 (T0CS): bit lựa chọn nguồn xung cho Timer0

− Giá trị 1:truyền trên chân T0CKI

− Giá trị 0: chu kỳ xung lệnh bên trong (CLKO) bit 4 (T0SE): bit lựa chon giới hạn nguồn choTimer0

bit 3 (PSA): bit thiết lập bộ đếm gộp trước choTimer0

− Giá trị 1: khơng thiết lập bộ đệm gộp trước Timer0. Xung dầu vào Timer0 được chuyển hướng bởi bộ đệm gộp trước..

− Giá trị 0: thiết lập bộ đệm gộp trước Timer0. Xung dầu vào Timer0 trở thành dầu ra bộ đệm gộp trước..

bit 2-0 (T0PS<2:0>): bit lựa chon bộ đệm gộp trước cho Timer0 111 = 1:256 giá trị bộ đệm gộp trước 110 = 1:128 giá trị bộ đệm gộp trước 101 = 1:64 giá trị bộ đệm gộp trước 100 = 1:32 giá trị bộ đệm gộp trước 011 = 1:16 giá trị bộ đệm gộp trước 010 = 1:8 giá trị bộ đệm gộp trước 001 = 1:4 giá trị bộ đệm gộp trước 000 = 1:2 giá trị bộ đệm gộp trước Timer1 module

Đặc trưng cơ bản của bộ định thời này gồm:

• Khả năng lựa chon bằng phần mềm giống như bộ định thời 16bit hoặc bộ dếm. • Khả năng như thanh ghi đọc viết được 8bit(TMR1H, TMR1L).

• Khả năng lựa chon nguồn xung bên trong qua bọ dao động Oscillator. • Ngắt-Tràn

• Reset nhờ bộ tạo sự kiện dặc biệt CCP • Cờ báo trạng thái xung thiết bị

Thanh ghi T1CON sử dụng điều khiển Timer1

bit 7 (RD16): bit cho phép lựa chọn các chế độ đọc/viết 16-Bit

− Giá tri 1: cho phép thanh ghi đọc/viết của Timer1 trong hoạt động như một số 16 bit.

− Giá tri 0: cho phép thanh ghi đọc/viết của Timer1 trong hoạt động như một

số 8 bit.

bit 6 (T1RUN): Bit trạng thái hệ thống xung Timer1

− Giá tri 1: xung thiết bị là dẫn xuất từ bộ dao động Timer1.

bit 5-4 (T1CKPS<1:0>): bit lựa chọn xung đầu vào bộ đếm gộp trước cho Timer1

11 = 1:8 Giá trị bộ đếm gộp trước 10 = 1:4 Giá trị bộ đếm gộp trước 01 = 1:2 Giá trị bộ đếm gộp trước (adsbygoogle = window.adsbygoogle || []).push({});

00 = 1:1 Giá trị bộ đếm gộp trước bit 3 (T1OSCEN): bit cho phép bộ dao động Timer1

− Giá tri 1: Cho phép

− Giá tri 0: Dừng bộ dao động Timer1 .

bit 2 (T1SYNC): bit lựa chọn xung đồng bộ đầu vào bên ngồi cho Timer1 • Khi TMR1CS = 1:

− Giá tri 1: khơng phải xung đồng bộ đầu vào bên ngồi

− Giá tri 0: xung đồng bộ đầu vào bên ngồi

• Khi TMR1CS = 0: bit này khơng sử dụng và lúc này Timer1 sử dụng nguồn xung từ bên trong

bit 1 (TMR1CS): bit lựa chọn nguồn xung cho Timer1

− Giá tri 1: nguồn xung từ bên ngồi qua chân RC0/T1OSO/T13CKI

− Giá tri 0: nguồn xung từ bên trong (Fosc/4) bit 0 (TMR1ON): bit hoạt động Timer1

− Giá tri 1: Cho phép −

Giá tri 0: Dừng Timer1 .

Timer1 cĩ thể hoạt động ở một trong 3 chế độ •Bộ định thời (Timer)

• Bộ đếm đồng bộ (Synchronous Counter)

• Bộ đếm khơng đồng bộ(Asynchronous Counter)

Việc sử dụng Timer1 phụ thuộc vào việc sử dụng thanh thạo thanh ghi T1CON. Timer2 Module

Đặc điểm nổi bật Timer2 gồm:

• Bộ định thời 8bit(TMR2) và thanh ghi ghi Period(PR2) • Khả năng đọc và viết được.

• Lập trình phần mềm • Ngắt trên TMR2 nhờ PR2

• Cài đặt khối xung cho modul MSSP

bit 7 (Unimplemented): mang giá trị „0‟ bit 6-3 (T2OUTPS<3:0>): bit lựa chọn đầu ra Timer2 sau khi dừng. 0000 = 1:1 sau khi dừng

0001 = 1:2 sau khi dừng •

1111 = 1:16 sau khi dừng bit 2 (TMR2ON): Bit hoạt dộng Timer2

− Giá tri 1: Cho phép

− Giá tri 0: Dừng Timer1 . bit 1-0 (T2CKPS<1:0>): bit chọn xung bộ đếm gộp trước cho Timer2

00 = bộ đếm gộp trước 1 01 = bộ đếm gộp trước 4

1x = bộ đếm gộp trước 16 Timer 3 Module

Đặc điểm Timer3 bao gồm:

• Lựa chon được hoạt động bằng phàn mềm giống như bộ đếm thời gian 16 bit. • Khả năng đọc và viết được giống thanh ghi 8 bit(TMR3H-TMR3L).

• Lựa chọn các nguồn xung cả bên trong và ngồi nhờ bộ dao động • Ngắt- Tràn (adsbygoogle = window.adsbygoogle || []).push({});

• Modul Reset trên CCP (đặc biệt với kết quả Trigger) Timer 3 điều chỉnh nhờ thanh ghi T3CON

bit 7(RD16): (RD16): bit cho phép lựa chọn các chế độ đọc/viết 16-Bit

− Giá tri 1: cho phép thanh ghi đọc/viết của Timer1 trong hoạt động như một số 16 bit.

− Giá tri 0: cho phép thanh ghi đọc/viết của Timer1 trong hoạt động như một số 8 bit.

− Giá tri 1x : Timer3 là cấu hình nguồn xung capture/compare cho CCP modules

− Giá tri 01: Timer3 là cấu hình nguồn xung capture/compare cho CCP2 modules, Timer1 là cấu hình nguồn xung capture/compare cho CCP1 modules

− Giá tri 00 : Timer1 là cấu hình nguồn xung capture/compare cho CCP

modules

bit 5-4 ((T3CKPS<1:0>): bit lựa chọn xung đầu vào bộ đếm gộp trước cho Timer3

11 = 1:8 Giá trị bộ đếm gộp trước 10 = 1:4 Giá trị bộ đếm gộp trước 01 = 1:2 Giá trị bộ đếm gộp trước 00 = 1:1 Giá trị bộ đếm gộp trước

bit 2 (T3SYNC): bit điều khiển xung đồng bộ đầu vào bên ngồi cho Timer3 • Khi TMR3CS = 1:

− Giá tri 1: khơng phải xung đồng bộ đầu vào bên ngồi

− Giá tri 0: xung đồng bộ đầu vào bên ngồi

• Khi TMR3CS = 0: bit này khơng sử dụng và lúc này Timer3 sử dụng nguồn xung từ bên trong

bit 1 (TMR3CS): bit lựa chọn nguồn xung cho Timer3

− Giá tri 1: nguồn xung từ bên ngồi từ bbộ dao động Timer1 hoặc T13CKI

− Giá tri 0: nguồn xung từ bên trong (Fosc/4) bit 0 (TMR1ON): bit hoạt động Timer1

− Giá tri 1: Cho phép −

Giá tri 0: Dừng Timer1 .

1.2.6. Bộ truyền nhận dữ liệu đồng bộ (EUSART-Enhanced Universal Synchronous Asynchronous Receiver Transmitter)

Module thu phát đồng bộ và khơng đồng bộ (EUSART) là một trong hai module vào ra nối tiếp .(Nĩi chung EUSART cũng được biết đến như giao diện truyền thơng nối tiếp hoặc SCL).EUSART cĩ thể cấu hình như hệ thống khơng đồng bộ song cơng mà nĩ cĩ thể giao tiếp với thiết bị ngoại vi, như là các thiết bị đầu cuối và các máy tính cá nhân. Nĩ cũng cĩ thể được cấu hình như là chế độ bán song cơng, hệ thống đồng bộ cĩ thể giao tiếp với thiết bị ngoại vi, như là bộ A/D hoặc D/A, và các EEPROMs

Module thu phát đồng bộ và khơng đồng bộ mở rộng USART được tích hợp , bao gồm sự dị tốc độ baud tự động và hiệu chỉnh, tự động nhận biết quá trình nhận dữ liệu và 12 bit kí tự ngắt truyền. Phù hợp với việc sử dụng hệ thống Bus kết nối cục bộ.

• Chế độ dị bộ (song cơng) với:

− Tự động nhận kí tự

− Tự động hiệu chỉnh baud

− Truyền gián đoạn 12 bit

• Chế độ đồng bộ chính (song cơng tồn phần) với xung nhịp chọn. • Chế độ đồng bộ phụ (bán song cơng ) với xung nhịp chọn

Các chân của EUSART được đặt ở Port C để cấu hình cho RC6/TX/CK và RC7/RX/DT như là một EUSART.

• bit SPEN (RCSTA<7>) được đặt bằng ( = 1) • bit TRISC<7> được đặt (= 1)

• bit TRISC<6> được đặt (= 1) (adsbygoogle = window.adsbygoogle || []).push({});

Sự hoạt động cửa module EUSART mở rộng được điều khiển thơng qua ba thanh ghi sau:

• Thanh ghi điều khiển và trạng thái truyền (TXSTA) • Thanh ghi điều khiển và trạng thái nhận (RCSTA)

• Điều khiển tốc độ truyền (BAUDCON).

Thanh ghi điều khiển và trạng thái truyền

Bit 7 CSRC : bit chọn nguồn clock

− Chế độ khơng đồng bộ: Khơng dùng.

− Chế độ đồng bộ:

1= Chế độ Master (clock được phát bên trong từ BRG) 0=Chế độ Slave (clock từ nguồn bên ngồi) Bit 6 TX :Bit cho phép chế độ truyền 9 bit

1= Chọn truyền 9 bit 0= Chọn truyền 8 bit. bit 5 TXEN: Bit cho phép truyền

1 = Cho phép truyền . 0 = Khơng cho phép truyền.

bit 4 SYNC: Bit chọn chế độ EUSART 1 = Chế độ đồng bộ

0 = Chế độ khơng đồng bộ. bit 3 SENDB: Bit gửi kí tự gián đoạn

− Chế độ khơng đơng bộ:

1 = Gửi kí tự ngắt đồng bộ ở lần truyền tiếp theo (được xĩa bởi phần cứng khi hồn thành)

0 = Kí tự ngắt truyền xong.

− Chế độ đồng bộ : Khơng dùng. bit 2 BRGH: Bit chọn tốc độ cao

− Chế độ khơng đồng bộ: 1 = Tốc độ cao

0 = Tốc độ thấp.

− Chế độ đồng bộ: Khơng sử dụng trong chế độ này. bit 1 TRMT: Bit trạng thái thanh ghi dịch TSR.

1 = TSR rỗng. 0 = TSR đầy.

bit 0 TX9D: Dữ liệu của bit thứ 9 cĩ thể là địa chỉ / dữ liệu hoặc địa chỉ.

THANH GHI ĐIỀU KHIỂN VÀ TRẠNG THÁI NHẬN.

bit 7 SPEN: Bit cho phép cổng truyền nối tiếp. 1 = Cho phép hoạt động (cấu hình RX/DT và TX/CK các chân này giống các

chân cổng vào nối tiếp)

0 = Khơng cho phép (được đặt khi Reset) bit 6 RX9: Bit cho phép nhận 9 bit

1 = Chọn chế độ nhận 9 bit 0 = Chọn chế độ nhận 8 bit

bit 5 SREN: Bit cho phép nhận riêng rẽ. − Chế độ khơng đồng bộ: Khơng sử dụng − Chế độ

đồng bộ – Master:

1 = Cho phép nhận riêng rẽ. 0 = Khơng cho phép riêng rẽ.

Bit này được xĩa sau khi quá trình nhận hồn thành. (adsbygoogle = window.adsbygoogle || []).push({});

− Chế độ đồng bộ – Slave: Khơng dùng chế độ này.

1 = Cho phép nhận.

0 = Khơng cho phép nhận.

− Chế độ đồng bộ:

1 = Cho phép nhận đến khi bit , CREN, được xĩa (CREN overrides SREN) 0 = Khơng cho phép tiếp tục nhận.

bit 3 ADDEN: Cho phép đánh địa chỉ.

− Chế độ khơng đồng bộ nhận 9 bit (RX9 = 1):

1 = Cho phép đánh địa chỉ , cho phép ngắt nạp dữ liệu vào đệm khi RSR<8> được đặt.

0 = Khơng cho phép đánh địa chỉ, tất cả các byte được nhận và bit thứ 9 được được sử dụng như bit chẳn lẻ.

− Chế độ khơng đồng bộ nhận 8 bit (RX9 = 0):Khơng dùng. bit 2 FERR: Bit báo lỗi khung truyền.

1 = Cĩ lỗi(Cĩ thể được xĩa khi đọc thanh ghi RCREG và nhận giá tri byte tiếp theo)

0 = Khơng cĩ lỗi. bit 1 OERR: Bit báo tràn.

1 = Lỗi tràn (Cĩ thể được xĩa khi xĩa bit CREN) 0 = Khơng cĩ lỗi tràn.

bit 0 RX9D: Dữ liệu của bit thứ 9.

Đây cĩ thể là bit địa chỉ / dữ liệu hoặc bit chẵn lẻ và phải được tính tốn bằng phần cứng.

THANH GHI ĐIỀU KHIỂN TỐC ĐỘ TRUYỀN

bit 7 ABDOVF: Bit trạng thái tự động nhận tốc độ truyền. 1 = xảy ra tác động thanh ghi điều khiển tốc độ truyền trơng các chế độ lựa chọn phát hiện trạng thái tự động boud (phải xố bởi phần mềm)

0 = khơng xảy ra bit 6 RCIDL: Bit báo trạng thái nhận

1 = Khơng nhận

0 = Xảy ra quá trình nhận bit 5 RXDTP: Bit xác định mức tích cực dữ liệu nhận − Chế độ khơng đồng bộ:

1 = Dữ liệu nhận (RX) được đảo (mức tích cực thấp) 0 = Dữ liệu nhận (RX) khơng được đảo (mức tích cực cao) − Chế độ đồng bộ:

1 = Dữ liệu (DT) được đảo (mức tích cực thấp)

0 = Dữ liệu (DT) khơng đảo (mức tích cực cao) bit 4 TXCKP: Bit chọn trạng thái tích cực dữ liệu và xung nhịp.

− Chế độ khơng đồng bộ:

1 = Trạng thái khơng truyền (TX) là mức thấp. 0 = Trạng thái khơng truyền (TX) là mức cao.

− Chế độ đồng bộ:

1 = Trạng thái khơng hoạt động của clock (CK) là mức cao. 0 = Trạng thái khơng hoạt động của clock (CK) là mức thấp. bit 3 BRG16: Bit cho phép thanh ghi phát tốc độ baud 16 bit.

1 = Cho phép thanh ghi phát tốc độ baud 16 bit – SPBRGH và SPBRG

0 = Cho phép thanh ghi phát tốc độ baud 8 bit – chỉ thanh SPBRG hoạt động, SPBRGH khơng hoạt động.

bit 2 Khơng xác định : xem như bằng „0‟ bit 1 WUE: Bit kích hoạt. (adsbygoogle = window.adsbygoogle || []).push({});

− Chế độ khơng đồng bộ:

1 = EUSART sẽ tiếp tục lấy mẫu trên chân RX – ngắt được tạo ra khi giảm; bit này được xĩa khi phần cứng tăng lên.

0 = Chân RX khơng được theo dõi hoặc tăng lên.

− Chế độ đồng bộ: Khơng dùng cho chế độ này. bit 0 ABDEN: Bit cho phép tự động dị baud.

− Chế độ khơng đồng bộ:

1 = Cho phép đo tốc độ baud khi truyền kí tự tiếp theo. Cần nhận trường đồng bộ (55h);Được xĩa bởi phần cứng khi hồn thành.

0 = Khơng đơ tốc độ baud hoặc đã hồn thành.

− Chế độ đồng bộ: Khơng sử dụng cho chế độ này.

Bộ phát tốc độ baud (BRG)

BRG là thanh ghi phát chuyên dụng 8 bit hoặc 16 bit được cung cấp trong chế đơ đồng bộ và khơng đồng bộ của EUSART. BRG được mặc định hoạt động ở chế độ 8 bit ; đặt BRG làm việc 16 bit dùng thanh ghi (BAUDCON <3>) để chọn chế độ 16 bit.

The SPBRGH:SPBRG là hai thanh ghi điều khiển chu kì của bộ đếm thời gian chạy tự do. Trong chế độ khơng đồng bộ các bit BRGH (TXSTA<2>) và BRG16 (BAUDCON<3>) cũng điều khiển tốc độ baud.Trong chế độ đồng bộ, BRGH khơng được dùng. Bảng 18-1 chỉ ra cách tính tốn tốc độ baud cho các chế độ EUSART khác nhau mà nĩ chỉ áp dụng cho chế độ chính (tạo xung nhịp bên trong).

Từ tốc độ baud yêu cầu và tần số thạch anh Fosc , giá trị nguyên gần nhất được tính cho thanh ghi SPBRGH:SPBRG cĩ thể tính tốn dựa vào kết quả của bảng 18-1. Từ đĩ các lỗi về tốc độ baud cĩ thể xác định. Một ví dụ về tính tốc độ baud trong ví dụ 18-1. Tốc độ mặc định và lỗi giá trị trong các chế độ khơng đồng bộ khác nhau được chỉ ra

trong bảng 18-2. Đĩ cĩ thể là thuân lợi cho việc sử dụng tốc độ baud cao (BRGH = 1) hoặc 16-bit BRG để làm giảm lỗi tốc độ baud, hoặc cĩ thể đạt được tốc độ baud thấp khi sử dụng bộ dao động cĩ tần số cao. Ghi lại giá trị mới vào thanh ghi SPBRGH:SPBRG bằng cách reset BRG (hoặc xĩa). Bộ BRG đưa ra tốc độ baud mới trước thời gian tràn.

Hoạt động ở chế độ quản lí nguồn.

Bộ tạo xung được sử dụng để phát ra tốc độ baud mong muốn. Khi hoạt động ở chế độ quản lí nguồn, nguồn xung nhịp mới cĩ thể hoạt động ở các tần số khác nhau . Bằng cách thay đổi giá trị trong cặp thanh ghi SPBRG.

VÍ DỤ: Dữ liệu trên chân RX được lấy mẫu 3 lần bằng cách dị trên mạch nếu mức tích cực trên chân RX là mức cao hay thấp.

TỰ ĐỘNG DỊ TỐC ĐỘ BAUD

Module USART mở rộng hỗ trợ chế độ dị và hiệu chỉnh tốc độ baud tự động. Đây là đặc trưng hoạt động chỉ cĩ trong chế độ khơng đồng bộ và trong khi bit được xĩa.

Tốc độ baud được đo liên tục bắt đầu khi bit start được nhận và bit ABDEN được set.Kết quả tính tốn được tự lấy trung bình.

Trong chế độ tự dị tốc độ baud (ABD) , xung nhịp của BRG được đảo hơn nửa bộ đếm BRG thu thập tín hiệu RX, tín hiệu RX là thời gian BRG. Trong chế độ ABD, bộ phát tốc độ baud từ bên trong được sử dụng như bộ đếm thời gian chu kỳ bit của thu thập chuỗi byte nối tiếp.

Khi mà bit ABDEN được set, trạng thái máy sẽ xĩa BRG và chờ bit start. Tự động dị tốc độ baud phải nhân byte với giá trị 55h (ASCII “U”, nĩ cũng là kí tự đồng bộ LIN bus) để tính tốn tần số chính xác. Phép đo được lấy trên cả hai mức cao và thấp để làm giảm tính đối xứng của tín hiệu thu thập. Sau khi start bit, SPBRG bắt đầu đếm, nĩ sẽ đếm sườn lên đâu tiên đầu tiên của RX. Sau khi 8 bit trên chân RX hoặc sườn lên

Một phần của tài liệu đồ án : Thiết kế bộ điều khiển PID SỐ TRÊN NỀN VI ĐIỀU KHIỂN PIC (Trang 40 - 58)