Phân tích các đặc trƣng của vi điều khiển CC1010

Một phần của tài liệu Giải pháp tiết kiệm năng lượng cho mạng cảm nhận không dây và thử nghiệm với vi điều khiển CC1010 (Trang 47)

Hình 2.1. Vi điều khiển CC1010

Phần lõi MCU:

- Vi xử lý 8051 có tốc độ bằng 2,5 lần vi xử lý 8051 tiêu chuẩn - Hỗ trợ các chế độ tiết kiệm năng lƣợng

- 32 KB bộ nhớ Flash, 2048 + 128 byte bộ nhớ trong SRAM

- 3 kênh ADC 10 bit, 4 bộ định thời, 2 cổng UART, RTC, Watchdog, SPI, mã hoá DES, 26 chân vào ra chung

- Nguồn nuôi 2,7 – 3,6 V

- Tích hợp bộ gỡ rối hỗ trợ môi trƣờng phát triển Keil µVision2 IDE qua giao diện cổng nối tiếp.

- Tần số 300 – 1000 MHz

- Tiêu thụ dòng rất thấp (9.1 mA trong chế độ thu)

- Công suất phát có thể lập trình đƣợc (lên đến +10dBm) - Tốc độ thu phát dữ liệu lên đến 76,8 kbps

Ngoài ra CC1010 đã có sẵn các thƣ viện hỗ trợ lập trình do hãng Chipcon cung cấp, CC1010IDE, do đó việc viết chƣơng trình cho CC1010 trở nên dễ dàng và thuận tiện hơn.

Các đặc tính tiêu thụ năng lƣợng thấp của CC1010

Sử dụng CC1010 sẽ thuận lợi trong việc tiêu thụ dòng điện thấp bởi vì bộ truyền nhận không dây tiêu thụ năng lƣợng rất ít. Lõi MCU của CC1010 cũng có nhiều đặc tính tiết kiệm điện năng do có nhiều chế độ hoạt động. Chế độ đồng hồ trong CC1010 cũng rất quan trọng cho tiết kiệm tiêu thụ năng lƣợng. Dƣới đây sẽ xét các đặc tính tiêu thụ năng lƣợng của vi điều khiển này để tìm ra các yếu tố có thể khai thác viết chƣơng trình.

Các chế độ đồng hồ

CC1010 có hai bộ tạo dao động tinh thể, một tạo dao động tần số cao từ 3 MHz đến 24 MHz và một tạo dao động tần số thấp 32 KHz. CC1010 có thể chuyển đổi giữa 2 chế độ đồng hồ nguồn bằng cách ghi vào bit CMOS trên thanh ghi X32CON. X32CON (32.768 kHz Crystal Oscillator Control Register) có địa chỉ 0xD1, chi tiết về thanh ghi này trình bày bảng dƣới đây.

Bit 7 6 5 4 3 2 1 0

Giá trị - - - X32_BYPASS X32_PD CMODE

Bit Tên bit R/W Reset Ý nghĩa 7 - R0 0 Không dùng, mặc định đọc giá trị 0 6 - R0 0 Không dùng, mặc định đọc giá trị 0 5 - R0 0 Không dùng, mặc định đọc giá trị 0 4 - R0 0 Không dùng, mặc định đọc giá trị 0 3 - R0 0 Không dùng, mặc định đọc giá trị 0 2 X32_BYPASS R/W 0

Tín hiệu điều khiển bỏ qua dao động 32.768 KHz

0: Bộ dao động trong 32.768 KHz đƣợc sử dụng để tạo đồng hồ 32.768 KHz

1: Bộ dao động 32.768 KHz bị bỏ qua, tín hiệu đồng hồ bên ngoài có thể đƣa vào chân XOSC32_Q1

1 X32_PD R/W 1 Tín hiệu tắt bộ dao động 32.768 KHZ 0: bộ dao động bật 1: bộ dao động tắt (mặc định sau reset) 0 CMODE R/W 0 Chọn các chế độ đồng hồ (mode) khác nhau cho 8051 và ngoại vi 0: Mode 0 đƣợc chọn (mặc định sau reset

1: Mode 1 đƣợc chọn

Bảng 2.2. Ý nghĩa các bit trong thanh ghi X32CON

Hoạt động trên bộ tạo dao động 32 KHz gọi là chế độ đồng hồ 1 (mode 1), hoạt động trên bộ dao động tạo tần số cao gọi là chế độ 0 (mode 0). Cần quan tâm đến bit 0 – CMODE của thanh ghi này. Khi chạy trên dao động 32 KHz sẽ gọi tới mode 1 (CMODE = 1), chạy ở tốc độ dao động cao sẽ gọi tới mode 0 (CMODE = 0).

Cả hai bộ tạo dao động phải đƣợc bật và ổn định trƣớc khi có sự chuyển đổi giữa chúng. Khi reset, CC1010 sẽ mặc định hoạt động trên bộ tạo dao động tần số cao. Tuy có hai bộ tạo xung nhịp đồng hồ nhƣng CC1010 không cho phép một phần hoạt động trên đồng hồ này còn một phần hoạt động trên đồng hồ kia, mà khi chuyển xung nhịp đồng hồ thì tất cả các thành phần trên CC1010 phải dùng nhịp đồng hồ giống nhau. Duy có một ngoại lệ là RTC (đồng hồ thời gian thực) luôn luôn hoạt động trên bộ tạo dao động 32KHz. Tuy nhiên RTC không thể đánh thức CC1010 từ chế độ tắt nguồn, chế độ tắt nguồn sẽ đƣợc giải thích ở phần sau.

Trong chế độ tích cực, dòng điện tiêu thụ tỷ lệ thuận và tuyến tính với tần số, thể hiện trên hình 2.2.

Hình 2.2. Mối quan hệ tuyến tính giữa dòng tiêu thụ và tần số.

Tốc độ dữ liệu thu phát RF có thể là 600, 1200, 2400 … 76800 Baud, tốc độ 76800 Baud chỉ đạt đƣợc khi sử dụng ở tần số 14,7456 MHz.

Từ đồ thị trên hình 2.2 ta thấy khi tần số làm việc tăng, dòng tiêu thụ cũng sẽ tăng theo một cách tuyến tính. Do vậy, muốn tiết kiệm năng lƣợng cần phải chọn tần số hợp lý lúc nút mạng làm việc và không làm việc tƣơng

Dòng đi ện ti êu th ụ (mA) Tần số (MHz) (adsbygoogle = window.adsbygoogle || []).push({});

ứng. Việc chọn tần số làm việc hợp lý tức là chuyển đổi về tần số làm việc thấp khi nút mạng nghỉ hay làm việc ở tần số cao khi nút mạng cần truyền nhận thông tin để tránh trình trạng nút mạng làm việc ở tần số cao trong những khoảng thời gian không cần thiết.

Các chế độ làm việc của CC1010

Mạch tổ hợp có thể chuyển đổi giữa chế độ tích cực và chế độ tiết kiệm năng lƣợng. Dòng tiêu thụ trung bình phụ thuộc vào tỷ lệ giữa thời gian hoạt động trong chế độ tích cực và thời gian hoạt động trong chế độ tiết kiệm năng lƣợng.

Các thành phần trong CC1010 nhƣ CPU, bộ biến đổi ADC, bộ truyền nhận RF,… trong đa số trƣờng hợp không làm việc đồng thời. Nghĩa là chu kỳ nghỉ và chu kỳ hoạt động đƣợc thể hiện bởi tần số nhịp khác nhau. Quản trị chặt chẽ quá trình này sẽ tiết kiệm đƣợc năng lƣợng tiêu thụ của hệ thống.

CC1010 có ba chế độ làm việc cho vi điều khiển, đó là chế độ tích cực, chế độ nghỉ và chế độ tắt nguồn. Việc thay đổi chế độ làm việc đƣợc quyết định bởi thanh ghi PCON (Power Control Rigister). Tìm hiểu về thanh ghi PCON trong tài liệu tham khảo [11].

PCON có địa chỉ là 0x87 và ta có thể biểu diễn thanh ghi này nhƣ trên bảng 2.3 và 2.4 sau đây:

Bit 7 6 5 4 3 2 1 0

Giá trị SMOD0 - - - GF1 GF0 STOP IDLE

Bit Tên bit Giá trị Ý nghĩa

7 SMOD0 0

Giá trị sau khi reset là 0, tốc độ baud giữ nguyên giá trị

1 Tốc độ baud đƣợc nhân đôi

6 - 0 Bit dự trữ. Giá trị sau khi reset là 0

1

5 - 0 Bit dự trữ. Giá trị sau khi reset là 1

1

4 - 0 Bit dự trữ. Giá trị sau khi reset là 1

1

3 GF1

0 Giá trị sau khi reset là 0. Dùng cho điều khiển

phần mềm, bit này đƣợc gọi là cờ mục đích chung 1.

1

2 GF0 0 Giá trị sau khi reset là 0. Dùng cho điều khiển

phần mềm. 1

1 STOP 0

Giá trị sau khi reset là 0, nút mạng không ở chế độ tắt nguồn.

1 Nút mạng ở chế độ tắt nguồn.

0 IDLE

0 Giá trị sau khi reset là 0, nút mạng ở chế độ tích

cực. (adsbygoogle = window.adsbygoogle || []).push({});

1 Nút mạng ở chế độ nghỉ, lõi MCU dừng nhƣng

các ngoại vi vẫn hoạt động

Bảng 2.4. Ý nghĩa các bit trong thanh ghi PCON

Với những đặc điểm của thanh ghi PCON, ta cần nắm bắt cơ chế hoạt động và tiến hành vận dụng đƣợc thanh ghi PCON vào việc thiết lập chế độ. Một số giá trị ban đầu của thanh ghi PCON đƣợc đƣa ra trong thƣ viện Hal.h do hãng Chipcon cung cấp.

Cụ thể về các chế độ làm việc và điều kiện chuyển đổi giữa các chế độ nhƣ sau:

- Chế độ tích cực

Ở chế độ này lõi 8051 và ngoại vi hoạt động bình thƣờng với tần số cao của xung clock và thực hiện các lệnh từ bộ nhớ Flash. Xung Clock là tần số dao động của tinh thể thạch anh chính. Dòng tiêu thụ phụ thuộc vào tần số thực tế đƣợc sử dụng nằm trong khoảng 3 MHz đến 24 MHz. Chƣơng trình có thể viết để chuyển từ chế độ này sang các chế độ khác bằng điều khiển thanh ghi PCON.

- Chế độ nghỉ

Chế độ nghỉ sẽ đƣợc bắt đầu sau khi thực hiện xong lệnh thiêt lập bít PCON.IDLE. Trong chế độ này lõi 8051 dừng các quá trình xử lý và các thanh ghi sẽ lƣu lại dữ liệu hiện tại, còn tất cả các thiết bị ngoại vi khác vẫn hoạt động bình thƣờng. Có 3 cách để thoát khỏi chế độ này:

Kích hoạt ngắt:

Việc này có nghĩa là xoá bít IDLE, kết thúc chế độ IDLE và thi hành ngắt.

Thiết lập lại (reset):

Tất cả các thanh ghi đƣợc nạp lại và chƣơng trình sẽ lại tiếp tục từ địa chỉ 0x0000.

Tắt, bật nguồn:

Ấn nút nguồn bằng tay.

- Chế độ tắt nguồn (chế độ ngủ)

Sau khi thực hiện xong lệnh đặt bit PCON.STOP vi điều khiển và các thiết bị ngoại vi sẽ ngừng hoạt động. Trong chế độ này, các

thành phần ngoại vi và nhóm các đồng hồ của vi điều khiển 8051 sẽ bị vô hiệu hóa, chỉ có đồng hồ của bộ biến đổi ADC là vẫn hoạt động. Ðiều này sẽ cho phép bộ ADC có thể sinh ra đƣợc tín hiệu reset. Đây là chế độ tiết kiệm năng lƣợng nhất.

Có hai cách để kết thúc chế độ tắt nguồn:

Thiết lập lại (reset):

Tất cả các thanh ghi sẽ đƣợc thiết lập lại và chƣơng trình sẽ tiếp tục. Chƣơng trình sẽ bắt đầu lại từ địa chỉ 0x0000.

Tắt/ bật nguồn:

Ấn nút nguồn bằng tay.

Năng lƣợng tiêu thụ trong mỗi chế độ ở các mức tần số khác nhau và điều kiện thoát thể hiện trên bảng 2.5.

Chế độ Lõi MCU Ngoại vi Dòng tiêu thụ Điều kiện thoát

Kích hoạt Đồng hồ chính Đồng hồ chính 10 mA tại 11 MHz Viết SFR RTC (32KHz) RTC (32KHz) 1.1 mA Viết SFR Nghỉ Dừng Đồng hồ chính 8.5 mA tại 11 MHz Ngắt Reset Bật/tắt nguồn Dừng RTC (32KHz) ADC tắt 26 μA Tắt nguồn Dừng ADC bật (32 KHz) 200 μA Giá trị ADC vƣợt ngƣỡng Reset Bật/tắt nguồn Dừng Dừng 0.2 μA Reset Bật/tắt nguồn Bảng 2.5. Các chế độ hoạt động của CC1010

Kết luận

Nhƣ vậy qua phân tích ở trên, ta thấy một số đặc điểm quan trọng của vi điều khiển CC1010 nhƣ sau:

- Hoạt động trên hai bộ tạo dao động, một tần số cao (3 – 24 MHz) và một tần số thấp (32 KHz). CC1010 khi hoạt động ở tần số khác nhau thì sẽ tiêu thụ năng lƣợng khác nhau, năng lƣợng tiêu thụ tỷ lệ thuận tuyến tính với tần số. Việc chuyển tần số đồng hồ thực hiện bằng cách tác động vào thanh ghi điều khiển X32CON.

- CC1010 có thể hoạt động ở nhiều chế độ khác nhau trong đó có hai chế độ tiết kiệm năng lƣợng là chế độ nghỉ và chế độ tắt nguồn. Việc chuyển chế độ làm việc cho vi điều khiển thực hiện bằng cách thay đổi các giá trị trong thanh ghi điều khiển PCON. (adsbygoogle = window.adsbygoogle || []).push({});

Từ những đặc điểm trên, để tiết kiệm năng lƣợng cho nút mạng sử dụng vi điều khiển CC1010 ta cần phải lập trình cho vi điều khiển hoạt động ở tần số thấp và có khả năng chuyển đổi giữa các trạng thái tiêu thụ năng lƣợng cao và năng lƣợng thấp, cụ thể sẽ tác động vào các thanh ghi X32CON và PCON. Phần dƣới đây sẽ trình bày cụ thể về các giải pháp tiết kiệm năng lƣợng cho vi điều khiển CC1010.

Một phần của tài liệu Giải pháp tiết kiệm năng lượng cho mạng cảm nhận không dây và thử nghiệm với vi điều khiển CC1010 (Trang 47)