Các đặc điểm chính của VDK CC1010:
- Thu phát không dây 300-1000 MHz.
- Dòng tiêu thụ rất thấp (9,1 mA trong chế độ nhận).
- Độ nhạy cao (-107 dBm).
- Có thể lập trình cho công suất đầu ra tới +10 dBm.
- Tốc độ truyền RF có thể đạt 76.8 kbit/s.
- Đo đƣợc cƣờng độ RF (RSSI).
- Tƣơng thích họ VĐK 8051, tốc độ xử lý bằng 2,5 lần vi điều khiển 8051 chuẩn.
- 32 kB Flash, 2048 + 128 Byte SRAM.
- 3 kênh ADC 10 bit, 4 bộ định thời / 2PWMs, 2 UARTs, RTC, Watchdog, SPI, mã hoá DES, 26 chân I/O.
- Có khả năng gỡ lỗi sử dụng chƣơng trình dịch Keil μVision2.0/3.0 IDE qua cổng nối tiếp.
- Điện áp nguồn cung cấp 2.7 - 3.6 VDC.
Hình 3.1: Sơ đồ khối của CC1010.
3.1.1.1. Bộ thu phát không dây (RF Transceiver):
Bộ thu phát CC1010 UHF (Ultra High Frequency) RF (Radio Frequency) đƣợc thiết kế cho những ứng dụng tiêu thụ năng lƣợng thấp và điện áp thấp. Mạch thu phát đƣợc dành cho công nghiệp, khoa học và y học ISM (Industrial Scientific Medical) và các thiết bị nhỏ SRD (Short Range Device) trên các dải tần 315, 433, 868 và 915 MHz, nhƣng cũng có thể dễ dàng lập trình để hoạt động trên dải tần 300 – 1000 MHz. Các thông số chính của CC1010 có thể lập trình thông qua các thanh ghi chức năng đặc biệt (SFRs – Special Function Registers ), làm cho CC1010 rất linh hoạt và dễ dàng sử
dụng bộ thu phát vô tuyến. Hoạt động của bộ thu phát RF đòi hỏi rất ít các thành phần tích cực.
Hình 3.2: Sơ đồ khối của bộ thu phát RF.
Trong chế độ nhận: tín hiệu vào RF đƣợc khuếch đại bởi bộ LNA (Low-Noise Amplifier) và đƣợc chuyển thành trung tần IF (Intermediate Frequency) bởi bộ trộn (MIXER). Trong IF STAGE tín hiệu đƣợc khuếch đại và lọc trƣớc khi đƣa tới bộ giải điều chế DEMOD. Khi có một tùy chọn, một tín hiệu RSSI hay IF sau khi trộn đƣợc đƣa vào AD2. Sau khi giải điều chế, tín hiệu số đƣợc đƣa tới thanh ghi RFBUF. Các ngắt có thể đƣợc sinh ra cho mỗi bit hay mỗi byte nhận đƣợc (EXIF.RFIF).
Trong chế độ truyền: tín hiệu ra từ bộ tạo dao động điều khiển bởi điện áp VCO (Voltage Controlled Oscillator) đƣợc đƣa trực tiếp tới khuếch đại công suất PA (Power Amplifier). Đầu ra RF là khoá dịch chuyển tần số FSK (Frequency Shift Keyed) bởi luồng bit đƣợc đƣa tới thanh ghi RFBUF. Ngắt có thể đƣợc sinh ra cho mỗi bit hay byte đƣợc truyền (EXIF.RFIF). Mạch chuyển bên trong T/R làm giao tiếp với antenna dễ dàng bằng cách sử dụng một ít thành phần thụ động.
Bộ tổ hợp tần số tạo ra dao động bên trong đƣợc đƣa tới bộ MIXER trong chế độ nhận và đƣa tới bộ PA trong chế độ truyền. Bộ tổ hợp tần số bao gồm một dao động thạch anh XOSC (Crystal Oscillator), bộ nhận biết pha PD (phase detector), bơm nạp (CHARGE PUMP), bộ lọc LFP (Internal Loop Filter), VCO, và các bộ chia tần (/R và /N). Một tinh thể ngoài có thể đƣợc nối vào XOSC. VCO chỉ cần một cuộn cảm ngoài.
Thanh ghi RFMAIN điều khiển chế độ hoạt động: nhận (RX) hay truyền (TX), sử dụng hai thanh ghi tần số và các chế độ tiết kiệm năng lƣợng (power down). Theo cách này CC1010 có đƣợc sự linh hoạt để quản lý công suất RF để đạt đƣợc chính xác năng lƣợng tiêu thụ cần thiết trong các ứng dụng chỉ sử dụng pin. Các chế độ tiết kiệm năng lƣợng khác nhau đƣợc điều khiển thông qua các bit riêng biệt trong thanh ghi RFMAIN. Có sự phân công các bit để điều khiển phần RX, TX, bộ tổ hợp tần số và dao động thạch anh. Sự điều khiển riêng biệt này có thể đƣợc dùng để tối ƣu hoá dòng tiêu thụ thấp nhất có thể trong các ứng dụng nào đó. Một thứ tự bật nguồn điển hình để đạt đƣợc dòng tiêu thụ thấp nhất đƣợc thể hiện ở hình 3.19. Hình vẽ giả thiết rằng tần số A dùng cho RX và tần số B dùng cho TX. Nếu không gặp trƣờng hợp này, đảo lại thiết lập F_REG.
(2) Truyền và nhận dữ liệu:
Trong các chế độ Transparent hay UART (Universal Asynchronous Receiver/Transmitter), dữ liệu vào/ra đƣợc định tuyến trực tiếp đến bộ điều chế trong chế độ truyền và định tuyến trực tiếp từ bộ giải điều chế trong chế độ nhận. Trong các chế độ mã hóa NRZ và Manchester, dữ liệu đƣợc lƣu lại tại bộ đệm RFBUF. Việc lƣu vào bộ đệm sẽ có những ảnh hƣởng cần đƣợc xem xét trong quá trình truyền và nhận dữ liệu, nhất là trong chế độ bytemode.
Hình 3.4: Bộ đệm dữ liệu RF. Đƣờng đứt nét biễu diễn bitmode.
a. Quá trình truyền dữ liệu:
Khi truyền dữ liệu trong bytemode (RFCON.BYTEMODE = 1), bộ đệm dịch các bit đến thanh ghi 8 bit (bit cao trƣớc) đến bộ điều chế với tốc độ baud. Khi thanh ghi dịch trống nó sẽ tải thêm một byte mới từ bộ đệm và tiếp tục dịch các bit ra ngoài. Nội dung của RFBUF không thay đổi sau mỗi lần tải. Với mỗi ngắt yêu cầu đƣợc sinh ra thì RFBUF có thể đƣợc tải byte dữ liệu mới. Nếu một byte mới không đƣợc ghi với các chu kỳ 8 bit thì tại thời điểm kế tiếp, thanh ghi dịch rỗng sẽ tải lại dữ liệu cũ từ RFBUF.
Trong chế độ bitmode (RFCON.BYTEMODE = 0), quá trình đệm cũng xảy ra tƣơng tự, nhƣng mỗi lần chỉ lƣu một bit. Do đó, sau mỗi lần truyền một bit, một ngắt RF đƣợc tạo ra và thanh ghi dịch sẽ tải thêm một bit mới từ RFBUF.0. Để có thể ghi bit kế tiếp theo một chu kỳ, với tốc độ baud cao, cần phải sử dụng một vòng quét nhanh thăm dò chặt chẽ (thay vì sử dụng thủ tục truyền dựa trên mỗi ngắt).
Để có thể bắt đầu truyền dữ liệu một cách nhanh nhất thì bit/byte truyền đầu tiên sẽ đƣợc ghi vào RFBUF trƣớc khi bộ điều chế hoạt động (RFMAIN.TX_PD = 0). Ngay sau đó tải bit/byte đầu tiên này vào thanh ghi dịch và một yêu cầu ngắt đƣợc tạo ra cho quá trình truyền các bit/byte thứ hai.
Việc tính toán lịch đệm tại điểm cuối của một quá trình truyền là rất quan trọng. Khi byte cuối cùng của một khung hay gói đƣợc nạp vào thanh ghi dịch thì nó vẫn không đƣợc truyền đi. Điều đó có nghĩa là, một yêu cầu ngắt đƣợc tạo ra đồng thời với việc dừng quá trình truyền tƣơng tự/số. Khi bit cuối vừa đƣợc dịch và truyền qua chuỗi truyền đến anten, quá trình truyền sẽ không kết thúc an toàn cho đến khi bắt đầu các chu kì bit thứ 9 kế đó (trong bytemode) và các chu kì bit thứ 2 kế đó (trong bitmode). Giải pháp đơn giản để giải quyết vấn đề này là luôn truyền thêm byte/bit cuối tại cuối nội dung dữ liệu thực.
b. Quá trình nhận dữ liệu:
Khi nhận dữ liệu, lƣợc đồ đệm hoạt động ngƣợc lại với quá trình truyền. Từng bit từ bộ giải điều chế đƣợc dịch vào thanh ghi dịch 8 bit (bit cao trƣớc). Khi thanh ghi dịch đầy nó nạp vào RFBUF và một yêu cầu ngắt đƣợc sinh ra (EICON.RFIF). Byte dữ liệu cần đƣợc đọc trong chu kỳ một byte. Nếu không, nó sẽ bị ghi đè bởi byte nhận tiếp theo và dữ liệu sẽ bị mất.
Trong chế độ bitmode, quá trình đệm cũng xảy ra tƣơng tự, nhƣng chỉ đệm một bit tại một thời điểm. Tiếp đó, khi một bit mới đến từ bộ giải điều chế, thanh ghi dịch sẽ lƣu nó và bit cuối cùng vào RFBUF.0, yêu cầu ngắt RF đƣợc tạo ra để có thể đọc các bit mới. Để có thể đọc bit tiếp theo từ RFBUF.0, trong chu kỳ một bit ở tốc độ cao nên sử dụng vòng quét nhanh thăm dò chặt chẽ thay vì dựa vào ngắt. Không có sự cân nhắc đặc biệt nào đối với thời điểm bắt đầu hay kết thúc quá trình nhận.
3.1.1.2. Đầu ra RSSI:
CC1010 có tích hợp sẵn RSSI cho tín hiệu ra tƣơng tự tại chân AD2. RSSI đƣợc hiển thị khi cài đặt FREND.RSSI. Dòng ra của chân này sau đó đảo ngƣợc tƣơng ứng với mức tín hiệu đầu vào. Đầu ra đƣợc nối với một điện trở để chuyển dòng ra thành điện áp. Một tụ đƣợc sử dụng để lọc thông thấp tín hiệu.
Điện áp tại RSSI khoảng từ 0 – 1,2 V khi sử dụng điện trở 27k tƣơng đƣơng với 50dB/V. Điện áp tại RSSI có thể đƣợc đo bởi bộ chuyển đồi A/D tích hợp sẵn trên chip sử dụng tín hiệu đầu vào AD2. Chú ý rằng, điện áp cao đồng nghĩa với tín hiệu đầu vào thấp. RSSI đo công suất tƣơng ứng với chân RF_IN. Công suất vào có thể đƣợc tính toán bằng các công thức sau:
P = -48.8 VRSSI– 57.2 [dBm] ở tần số 433 MHz P = -46.9 VRSSI– 53.9 [dBm] ở tần số 868 MHz
3.1.1.3. Công suất phát khả trình:
Công suất phát RF là có thể lập trình đƣợc và điều khiển bởi thanh ghi PA_POW. Bảng sau sẽ chỉ cho chúng ta thấy rõ giá trị khả trình cho công suất ra từng 1dB. Dòng tiêu thụ tiêu biểu đƣợc chỉ ra cho máy phát giao động tần số 14.7456 MHz. Dòng tiêu thụ là cho toàn bộ CC1010, với cả bộ thu nhận RF và kích hoạt MCU. Trong chế độ nghỉ PA_POW đƣợc thiết đặt là 0x00 cho dòng tiêu thụ ra là nhỏ nhất.
Hình 3.6: Bảng thiết đặt công suất phát và dòng tiêu thụ tiêu biểu.