Giới thiệu về vi điều khiển CC1010

Một phần của tài liệu Ghép nối đầu đo áp suất cho nút mạng cảm nhận không dây với phần mềm nhúng (Trang 36)

2.2.2.1. Các đặc điểm chính.

- 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 Kbps.

- Cần thêm rất ít thành phần ngoài.

- Đo được cường độ RF (RSSI).

- Tương thích họ VĐK 8051.

- 32kB Flash, 2048 + 128Byte SRAM.

- 3 kênh ADC 10bít, 4 timers / 2PWMs, 2UARTs, RTC, watchdog, SPI, mã hoá

DES, 26 cổng I/O.

- Có khả năng gỡ lỗi sử dụng chương trình dịch Keil uVision2 IDE qua cổng nối

tiếp.

- Điện áp 2.7 – 3.6 V.

- 64-lead TQFP (Thin Quad Flat Pack).

2.2.2.2. Cổng.

CC1010 có 4 cổng I/O là P0, P1, P2, P3 với 26 chân cổng. Mỗi cổng có hai thanh ghi tương ứng: thanh ghi cổng P0, P1, P2, P3 và các thanh ghi hướng P0DIR, P1DIR, P2DIR, P3DIR. Mỗi bít trong thanh ghi Px có một bít hướng tương ứng trong thanh ghi PxDIR.y.

Đặt PxDIR.y = 1 sẽ làm cho Px.y là cổng nhận dữ liệu (input). Đặt PxDIR.y = 0 sẽ làm cho Px.y là cổng xuất dữ liệu (output).

2.2.2.3. Ngắt.

CC1010 có tổng cộng 15 nguồn ngắt, chia sẻ 12 đường ngắt. Mỗi ngắt có một mức ưu tiên, vector ngắt, cờ cho phép ngắt và cờ báo ngắt. Các tham số cụ thể được chỉ rõ trong bảng 2.1. Ngắt Mức ưu tiên tự nhiên Điều khiển mức ưu tiên Vectơ ngắt Cờ cho phép ngắt Cờ ngắt

Ngắt Flash/debug 0 - 0x33 EICON.PDIE EICON.PDIF

Ngắt ngoài 0 1 IP.PX0 0x03 IE.EX0 TCON.IE0

Ngắt Timer 0 2 IP.PT0 0x0B IE.ET0 TCON.TF0

Ngắt ngoài 1 3 IP.PX1 0x13 IE.EX1 TCON.IE1

Ngắt Timer 1 4 IP.PT1 0x1B IE.ET1 TCON.TF1

Ngắt truyền nối tiếp 0

Ngắt nhận nối tiếp 0

5 IP.PS0 0x23 IE.ES0 SCON0.TI 0

SCON0.RI 0

Ngắt truyền nối tiếp 1

Ngắt nhận nối tiếp 1

6 IP.PS1 0x3B IE.ES1 SCON1.TI 1

SCON1.RI 1

Ngắt truyền/nhận RF

7 EIP.PRF 0x43 EIE.RFIE EXIF.RFIF

Ngắt ADC Ngắt mã hoá/giải mã DES 9 EIP.PAD 0x53 EIE.ADIE Và ADCON2. ADCIE EXIF.ADIF và ADCON2. ADCIF EIE.ADIE và CRPCON. CRPIE EXIF.ADIF và CRPCON. CRPIF

Ngắt Timer 3 10 EIP.PT3 0x5B EIE.ET3 EXIF.TF3

Ngắt thời gian thực 11 EIP.PRTC 0x63 EIE.RTCIE EICON.RTCIF

Bảng 2.1: Các tham số ngắt

Mặt nạ ngắt:

IE.EA là cờ cho phép toàn bộ các ngắt, ngoại trừ ngắt Flash/Debug. Khi IE.EA được thiết lập, mỗi ngắt được che bởi cờ cho phép ngắt được liệt kê trong bảng 2.1. Khi cờ IE.EA bị xoá, tất cả các ngắt bị che, ngoại trừ ngắt Flash/Debug có bít che ngắt riêng EICON.FDIE.

Xử lý ngắt:

Khi một ngắt được cho phép xảy ra, CPU trỏ tới địa chỉ phục vụ ngắt tương ứng với ngắt đó (ISR) như đã chỉ ra trong bảng 2.1. CC1010 thực hiện ISR để hoàn thành ngắt trừ khi xảy ra một ngắt khác có mức ưu tiên cao hơn. Mỗi ISR kết thúc với lệnh RETI (return from interrupt). Sau khi thực hiện lệnh REIT, CC1010 quay trở lại lệnh tiếp theo sau lệnh đã được thực hiện trước khi xảy ra ngắt. Nếu lệnh đang thực hiện là RETI hay đang ghi vào các thanh ghi IP, IE, EIP, EIE, thì CC1010 hoàn thành thêm một lệnh trước khi phục vụ ngắt.

Thứ tự ưu tiên:

Các ngắt có hai giai đoạn ưu tiên: mức ngắt và mức tự nhiên. Mức ngắt được ưu tiên trước mức tự nhiên.

Mức ngắt có hai mức: thấp và cao. Ngắt có mức ưu tiên cao có thể ngắt ngang chương trình phục vụ ngắt có mức ưu tiên thấp hơn. Nếu các ngắt có cùng mức ưu tiên

mà cùng xảy ra đồng thời thì ngắt nào có mức ưu tiên tự nhiên thấp nhất sẽ được phục vụ trước.

2.2.2.4. Biến đổi ADC.

Bộ biến đổi ADC của CC1010 có độ phân giải 10 bit, được điều khiển bởi các thanh ghi ADCON và ADCON2. Có ba kênh vào ADC là AD0, AD1 và AD2, các kênh này được chọn bởi thanh ghi ADCON.ADADR. Thanh ghi này cũng được sử dụng để chọn chân AD1 như là điện áp tham chiếu ngoài (khi sử dụng AD0). Khi chân AD1 được dùng như tham chiếu ngoài, chỉ có hai lối vào AD0 và AD2 của ADC được sử dụng. Đầu ra của ADC là đơn cực, nghĩa là giá trị 0 tương ứng với 0V, giá trị 1023 (tức

210) tương ứng với điện áp tham chiếu, điện áp tham chiếu có thể được chọn bằng 1.25V

hoặc VDD phụ thuộc vào bit ADCREF. Điện áp tham chiếu analog được điều khiển bởi ADCON.ADCREF. Để tiết kiệm năng lượng thì cần đặt bit ADCON.AD_PD = 1 khi không sử dụng ADC.

Biến đổi ADC được bắt đầu sau 5μs sau khi xoá bit điều khiển ADCON.ADCRUN nếu sử dụng VDD hay nguồn tham chiếu ngoài, hoặc bắt đầu sau 100μs nếu sử dụng tham chiếu trong 1.25V.

2.2.2.5. Bộ định thời.

CC1010 có bốn bộ định thời Timer 0, Timer 1, Timer 2 và Timer 3 hoạt động như là bộ định thời hoặc bộ đếm (Timer/Counter), trong đó hai bộ định thời Timer 2 và Timer 3 còn có thể hoạt động như bộ điều chế độ rộng xung PWM (Pulse Width Modulation).

Timer 0 / Timer 1:

Timer / Counter 0 và 1 có thể được lập trình và hoạt động độc lập theo bốn chế độ, được điều khiển bởi các thanh ghi TMOD và TCON. Các chế độ như sau:

- 13 bit Timer/Counter (mode 0). - 16 bit Timer/Counter (mode 1).

- 8 bit Timer/Counter tự động nạp lại (mode 2). - 2 Timer 8 bit (chỉ dùng cho Timer 0, mode 0).

Chi tiết về các chế độ, cách điều khiển sử dụng hai thanh ghi TMOD và TCON xin xem thêm phần Tài liệu tham khảo [4].

Ngoài tính năng như bộ định thời, Timer 2 và 3 có thể được sử dụng như bộ điều chế độ rộng xung PWM. Nếu bít TCON2.M2/TCON2.M3 = 0 thì chúng sẽ là bộ định thời, nếu CON2.M2/TCON2.M3 = 1 thì sẽ là PWM. Khi đó chân P3.4 và chân P3.5 là chân phát xung đầu ra tương ứng cho Timer2/ Timer3. chu kì TnPWM đối với timer n như sau (n = 2, 3): fsystem T TnPRE nP ) 1 .( 255 WM + =

Trong đó thời gian trạng thái cao Tnh là:

fsystem Tn T TnPRE nhP ) 1 .( WM + =

Điều này có nghĩa là trong chế độ PWM, nếu Tn = 0 thì có mức thấp ở đầu ra và nếu Tn = 255 thì có mức cao.

Trong đó thanh ghi Tn và TnPRE được đặt từ trước.

2.2.2.6. Bộ thu phát không dây RF (RF transceiver).2.2.2.6.1. Miêu tả chung. 2.2.2.6.1. Miêu tả chung.

Bộ thu phát CC1010 UHF RF được thiết kế chữ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 ISM (Industrial, Scientific and Medical) và SRD (Short Range Device) dải tần 315, 433, 868 và 915 MHz, nhưng có thể dễ dàng lập trình để hoạt động trong dải tần 300 – 1000 MHz. Các thông số chính của CC1010 có thể được lập trình thông qua các thanh ghi chức năng SFRs (Special Function Registers), làm cho CC1010 rất mềm dẻo và dễ sử dụng bộ thu phát vô tuyến. Bộ thu phát RF đòi hỏi rất ít các thành phần tích cực cho hoạt động của mình.

Sơ đồ khối đã được đơn giản hoá của bộ thu phát RF mô tả trong hình 2.1. Ở đó chỉ có các chân tín hiệu tương tự được chỉ ra và bus dữ liệu SFR bên trong được dùng để thiết lập giao diện RF và để truyền/nhận dữ liệu.

Trong chế độ nhận, CC1010 được cấu hình như bộ thu đổi tần truyền thống. Tín hiệu lối vào RF được khuếh đại bởi bộ khuếch đại ồn thấp LNA (low-noise amplifier) và chuyển xuống thành trung tần (intermediate frequency – IF) bởi bộ trộn MIXER. Trong trạng thái trung tần (IF STAGE) các tín hiệu chuyển đổi này được khuếch đại và lọc trước khi đưa tới bộ giải điều chế DEMOD. Một tín hiệu RSSI hay tín hiệu trung tần IF sau khi được trộn được đưa vào chân AD2 (RSSI/IF). Sau giải điều chế, tín hiệu số được chuyển vào thanh ghi RFBUF. Các ngắt có thể được phát ứng với mỗi bit hoặc byte nhận được (EXIF.RFIF).

Trong chế độ truyền, tín hiệu ra của một bộ dao động điều khiển bằng điện áp VCO (Voltage Controlled Oscilator) được đưa trực tiếp tới bộ khuếch đại công suất PA. Lối ra RF là khoá dịch chuyển đổi tần số FSK bởi luồng bít được đưa tới thanh ghi RFBUF. Tại đây các ngắt cũng có thể được sinh ra ứng với mỗi bit hay byte.Mạch chuyển đổi nội tại T/R giúp cho việc giao tiếp với anten dễ dàng hơn mà chỉ sử dụng rất ít các thành phàn ngoại vi.

Bộ tổ hợp tần số tạo ra tín hiệu dao động bên trong và đưa tín hiệu này tới bộ MIXER ở chế độ nhận hoặc đưa tới PA ở chế độ truyền. Bộ tổ hợp tần số bao gồm một bộ dao động thạch anh XOSC, một bộ dò pha PD, bộ bơm nạp, bộ lọc, VCO và các bộ chia tần (/N và /R).

Bộ thu phát RF đòi hỏi rất ít các thiết bị ngoại vi. Một mạch ứng dụng điển hình được thể hiện ở hình 2.2. Các giá trị cụ thể của các thành phần xin xem thêm Tài liệu tham khảo [4].

Hình 2.2: Mạch ứng dụng RF điển hình.

Tương ứng vào/ra: Cặp C31/L32 là đầu vào của bộ nhận, nội trở của L32 có tác dụng định thiên một chiều. C41, L41 và C42 được dùng để tương ứng với bộ truyền có trở kháng 50Ω. Bộ chuyển T/R làm cho nó có thể nối với lối vào và ra với nhau và tương thích với bộ truyền 50Ω ở cả hai chế độ RX và TX.

VCO được tích hợp hoàn toàn trừ cuộn cảm L101.

Nguồn: các tụ tách và lọc nguồn cung cấp cần được sử dụng (trong sơ đồ mạch ứng dụng không chỉ ra phần này). Các tụ này càng đặt gần chân nguồn càng tốt. Vị trí và kích thước của tụ tách và lọc nguồn cần được chú ý để đạt được độ nhạy tốt nhất.

Thanh ghi RFMAIN điều khiển chế độ hoạt động (RX hay TX), sử dụng hai thanh ghi tần số và các chế độ tiết kiệm năng lượng. Theo cách này vi điều khiển CC1010 có được sự mềm dẻo để quản lý công suất RF nhằm đạt được chính xác năng lượng tiêu thụ đòi hỏi và các ứng dụng chỉ sử dụng pin. Các chế độ năng lượng khác nhau được điều khiển thông qua các bít riêng biệt trong thanh ghi RFMAIN. Các bít này điều khiển phần RX, TX, bộ tổ hợp tần số và bộ dao động thạch anh.. Sự điều khiển riêng biệt này có thể tối ưu hoá để làm cho 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 thể hiện ở hình 2.3. Trong hình vẽ này giả thiết tần số A dùng cho RX và tần số B dùng cho TX. Nếu không cần đến trường hợp này thì đảo lại thiết lập cho F_REG.

2.2.2.6.4. Điều chế dữ liệu và các chế độ dữ liệu.

Có bốn chế độ dữ liệu khác nhau có thể lập trình được qua MODEM0.DATA_FORMAT. Các chế độ này khác nhau ở cách mã hoá dữ liệu, cách dữ liệu đến và đi và được chấp nhận, và liệu có sự đồng bộ hóa luồng bit hay không. Định dạng dữ liệu cần được chọn trước khi bộ thu phát RF hoạt động.

RX hay TX Bật RX: RFMAIN: RXTX=0, F_REG=0 RX_PD=0, FS_PD=0 CURRENT=”RX Bật TX: PA_POW=00h RFMAIN: RXTX=1, F_REG=1 TX_PD=0, FS_PD=0 Chế độ RX Chế độ TX Tắt RX: RFMAIN: RX_PD=1, Tắt TX: RFMAIN: TX_PD=1, FS_PD=1 Tắt RF Tắt RF Hình 2.3. Tuần tự bật thu phát RF

Hai trong số các chế độ, chế độ đồng bộ NRZ và chế độ đồng bộ Manchester, truyền hay nhận dữ liệu có tốc độ baud được thiết lập trong MODEM0.BAUDRATE. Modem thực hiện đồng bộ hoá trong suốt quá trình nhận. các chế độ NRZ và Manchester chấp nhận và truyền dữ liệu theo cả hai cách một bit hay một byte trong cùng một thời điểm, có thể lập trình được qua RFCON.BYTEMOD. Dữ liệu được truyền đi hay nhận về được đặt trong thanh ghi RFBUF. Tuỳ thuộc vào ngắt RF có được cho phép hay không (EIE.RFIE) mà việc truyền/nhận dữ liệu có thể được điều khiển bởi chương trình phục vụ ngắt hay có thể được thực hiện bằng cách hỏi (polling).

Hai chế độ khác, Transparent mode và UART mode, chỉ đơn giản là truyền dữ liệu FSK và thanh ghi RFBUF và UART0, cho phép lựa chọn tốc độ và mã hoá dữ liệu.

Chipcon khuyên dùng các chế độ đồng bộ, các chế độ dữ liệu khác bỏ qua mạch quyểt định dữ liệu của bộ thu phát RF và không hỗ trợ chế độ bytemode, chế độ Transparent mode chỉ dùng để kiểm thử.

2.2.2.6.5. Tốc độ Baud.

Bit điều khiển MODEM0.BAUDRATE thiết lập tốc độ từ 0.6kBaud đến 76.8kBaud. MODEM0.XOSC_FREQ cũng phải được thiết lập tuỳ vào tinh thể thạch anh đang sử dụng.

Tốc độ baud được tính theo công thức:

kbaud f XO BAUDRATE RF BAUDRATE XO 0.6 3.6864MHz SC_FREQ 2 _ = × SC ×

Trong đó: RF_BAUDRATE là tốc độ tính theo Baud.

BAUDRATE và XOSC_FREQ là các bit điều khiển trong MODEM0. Sử dụng một trong các thạch anh chuẩn đặt trong MODEM0.XOSC_FREQ sẽ đặt ra các tốc độ chuẩn 0.6, 1.2, 2.4, 4.8, 9.6, 19.2, 38.4, hay 76.8 kbaud. Các tần số thạch anh khác nhau sẽ quy định các tốc độ khác nhau. Tốc độ nhỏ hơn 19.2kbaud có thể được tạo ra bởi bất kì tần số thạch anh nào. Tốc độ lớn hơn 19.2kbaud cần có thêm các sự kết hợp như đưa ra trong bảng 2.2.

MODEM0.

BAUDRATE /XOSC

RF_BAUDRATE (kBaud) 3.6864 7.3728 11.0592 14.7456 18.4320 22.1184 0.6 0/0 0/1 0/2 0/3 0/4 0/5 1.2 1/0 1/1 1/2 1/3 1/4 1/5 2.4 2/0 2/1 2/2 2/3 2/4 2/5 4.8 3/0 3/1 3/2 3/3 3/4 3/5 9.6 4/0 4/1 4/2 4/3 4/4 4/5 19.2 5/0 5/1 5/2 5/3 5/4 5/5 38.4 NA 5/0 NA 5/1 NA 5/2 76.8 NA NA NA 5/0 NA NA

Bảng 2.2: Tốc độ Baud theo tần số thạch anh

2.2.2.6.6. Truyền và nhận dữ liệu.

Trong chế độ Transparent hay UART dữ liệu đi hay đến được đưa trực tiếp tới bộ điều chế trong chế độ truyền và được nhận trực tiếp trong chế độ nhận.

Trong các chế độ NRZ và Manchester dữ liệu được lưu tại RFBUF như được minh hoạ ở hình 2.4.

Quá trình truyền:

Khi đặt RFCON.BYTEMODE = 1 thì dữ liệu truyền theo bytemode, một thanh ghi 8 bit sẽ dịch từng bit tời bộ điều chế theo nguyên tắc bit cao nhất MSB truyền trước tiên, chu kì phụ thuộc vào tốc độ được lựa chọn. Khi thanh ghi dịch này rỗng sẽ nạp một byte mới từ RFBUF và tiếp tục dịch bit. Nội dung của thanh ghi RFBUF không thay đổi sau khi thanh ghi dịch này lấy dữ liệu từ nó. Khi một ngắt được tạo ta (EICON.RFIF), RFBUF có thể được nạp vào byte dữ liệu mới. Nếu byte mới không được nạp trong chu kì 8 bit (chu kì 8bit trong chế độ NRZ và chu kì 16baud trong chế độ Manchester) thì thời điểm tiếp theo thanh ghi dịch rỗng sẽ lấy lại dữ liệu cũ của thanh ghi RFBUF.

Ở chế độ bitmode (khi RFCON.BYTEMODE = 0) cũng xảy ra hiện tượng tương tự như bytemode nhưng chỉ truyền một bít tại một thời điểm. Theo đó, thanh ghi dịch sẽ bạp bit mới từ RFBUF.0 sau khi truyền một bit đi, và ngắt RF được tạo ra để báo có bit

mới được nạp. Để ghi bit tiếp theo vào RFBUF.0 trong một chu kì bit ở tốc độ cao nên sử dụng vòng quét nhanh (tight polling loop) thay vị thủ tục truyền dựa trên ngắt.

Để bắt đầu truyền dữ liệu ngay khi có thể, bit/byte đầu tiên được truyền được ghi vào RFBUF trước khi bộ điều chế hoạt động (RFMAIN.TX_PD = 0). Nó sẽ ngay lập tức được nạp vào thanh ghi dịch và một yêu cầu ngắt được tạo ra cho bit/byte thứ hai được truyền. Điều này đặc biệt quan trọng khi tính đến việc lưu trữ dữ liệu tại cuối một quá trình truyền.

Khi bit/byte cuối cùng của một frame hay một packet được nạp vào thanh ghi dịch nó vẫn không được truyền đi. Như vậy yêu cầu ngắt được tạo ra tại cùng thời điểm không bị dừng đối với cả phần tương tự hay số của một quá trình truyền. Quá trình truyền không thể kết thúc một cách an toàn cho tới chu kì 9bit cuối cùng của chế độ

Một phần của tài liệu Ghép nối đầu đo áp suất cho nút mạng cảm nhận không dây với phần mềm nhúng (Trang 36)

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

(83 trang)
w