MỤC LỤC
LỜI MỞ ĐẦU 1
MỞ ĐẦU 2
Chương I GIỚI THIỆU MẠNG CẢM NHẬN KHÔNG DÂY 4
I. Mạng cảm nhận không dây 4
1.1 Thu thập dữ liệu môi trường 4
1.2 Giám sát an ninh 5
1.3 Theo dõi đối tượng 5
1.4 Giới thiệu Vi điều khiển CC1010 7
1.5 Bộ thu phát không dây (RF Transceiver) 12
1.6 Mạng cảm nhận không dây dựa trên vi điều khiển CC1010 14
1.7 Mô hình mạng: 15
Chương II GHÉP NỐI VI ĐIỀU KHIỂN AVR VỚI CẢM BIẾN 17
II. Những nét cơ bản của vi điều khiển AVR-Micro Atmega64L 17
2.1 Đặc điểm cấu tạo của AVR 17
2.1.1. Tính năng của Atmega64L 17
2.1.2 Khối của Atmega64L 20
2.1.3 Các chu trình truy nhập dữ liệu lên thanh ghi SRAM trên chip 5 của Atmega64L 25
2.1.4 Bộ truyền nhận nối tiếp USART 30
2.1.5 Cảm biến đầu ra tín hiệu số và cách ghép nối 31
2.1.6 Ghép nối đầu đo với vi điều khiển AVR 41
2.1.7 Phần mền nhúng cho VAR 41
Chương III PHẦN MỀM NHÚNG 48
III. Phần mềm nhúng 48
3.1 Tổng quan về phần mềm nhúng 48
3.2 Các bước cơ bản xây dựng một phần mềm nhúng 49
3.3 Phần mềm nhúng viết cho CC1010 49
TÀI LIỆU THAM KHẢO 55
56 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2623 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Khóa luận Đo tự động và truyền nhiệt độ và độ ẩm về nút gốc Nhận và hiển thị nhiệt độ và độ ẩm qua LCD, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
quency - IF) bởi bộ trộn (MIXER). Trong giai đoạn trung tần (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). Như một lựa 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. Ngắt có thể được sinh ra theo mỗi bit hay mỗi byte nhận được (EXIF.RFIF).
Trong chế độ truyền, dao động được điều khiển bởi điện áp (VCO) được đưa trực tiếp tới khuếch đại công suất (PA). Đầu ra RF là khoá dịch chuyển tần số (frequency shift keyed - FSK) 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 cho giao tiếp với antenna dễ dàng và sử dụng rất ít thành phần ngoại vi.
Bộ tổ hợp tần số tạo ra dao động bên trong được đưa tới MIXER trong chế độ nhận và PA trong chế độ truyền. Bộ tổ hợp tần số bao gồm một dao động thạch anh (XOSC), bộ nhận biết pha (phase detector - PD), bơm nạp (CHARGE PUMP), bộ lọc (internal loop filter - LPF), 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.
Mạch ứng dụng RF
Bộ thu phát RF đòi hỏi rất ít các 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ủa các thành phần này xin xem thêm phần Tài liệu tham khảo [6].
Tương ứng vào/ra
Cặp C31/L32 là đầu vào cho nơi nhận của bộ nhận, và nội trở của L32 có tác dụng định thiên (bias) một chiều. C41, L41 và C42 được sử dụng để tương ứng với bộ truyền có trở kháng 50 Ohm. Một bộ chuyển mạch trong T/R làm cho nó có khả năng cùng nối với đầu vào và đầu ra và thích hợp với bộ thu phát 50Ω trong cả hai chế độ RX và TX. VCO được tích hợp hoàn toàn trừ cuộn cảm L101.
Lọc
Các thành phần bên ngoài (ví dụ RF LC hay lọc răng cưa) có thể được sử dụng để cải tiến hiệu năng cho các ứng dụng riêng biệt. Nếu lọc răng cưa được sử dụng, nó chỉ có tác dụng cho RX (phải sử dụng chuyển mạch ngoài RX/TX).
Nguồn cung cấp
Các tụ tách và lọc nguồn cần được sử dụng (không chỉ ra trong mạch ứng dụng). Các tụ này càng 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 là rất quan trọng để đạt được độ nhạy tốt nhất.
Chú ý rằng các giá trị hợp thành cho 868 và 915 MHz có thể là như nhau. Tuy nhiên, rất quan trọng là cách bố trí được tối ưu hoá để lựa chọn cuộn cảm VCO để làm cho tần số hoạt động được chính xác. Cuộn cảm VCO phải được đặt rất sát và đối xứng với các chân tương ứng (L1 và L2). Chipcon cung cấp cách bố trí tham khảo để đạt được hiệu năng cao nhất.
1.6 Mạng cảm nhận không dây dựa trên vi điều khiển CC1010
CC1010 với các đặc điểm,cấu tạo và đặc tính tiêu thụ điện năng thấp và có chức năng xử lý như một máy vi tính có thêm các bộ thu phát RF,bộ mã hóa DES,bộ biến đổi ADC,…phù hợp để ghép các cảm biển dể trở thành một nút mạng trong mạng cảm nhận không dây .Mạch ứng dụng tương đối đơn giản CC1010 ,thuận tiện để tạo ra các nút WSN hoạt động như một thiết bị độc lập.Việc lập trình cho CC1010 được sử dụng các thư viện của 8051 và các bộ dịch cho 8051. có thể sử dụng assemble hoặc c để lập trình cho CC101.Trong CC1010 có tích hợp một bộ gỡ rối,hỗ trợ mô trường phát triển KilVision2 qua cổng giao tiếp.
1.7 Mô hình mạng:
WSN gồm nhiều nút mạng CC1010 giao tiếp với nhau qua song vô tuyến tần số 300-1000MHz.có ba loại nút mạng:Trạm gốc,nút cảm nhận,va nút chuyển tiếp.
Các nút cảm nhận có gắn đầu đo vừa trực tiếp đo số liệu và truyền về trạm gốc vừa chuyển tiếp dữ liệu nhận được từ các nút con trong topolopy dạng cây, gửi về cho nút cha
Vi điều khiển CC1010 với những ưu điểm đã được phân tích ở trên tỏ ra khá thích hợp với mô hình mạng cảm nhận không dây.Dùng vi điều khiển CC101 có thể xây dựng được nhiều ứng dụng hấp dẫn với sơ đồ thiết kế không quá phức tạp.Phần mềm nhúng có thể đi theo hướng hệ điều hành hoặc đơn giản hơn là các phương trình nhỏ có thể viết bằng các ngôn ngữ lập trình thông dụng như ASM,C … và nạp cho vi điều khiển
Kết luận: Trong chương này chúng ta đã trình bày sơ lược về mạng cảm nhận không dây và vi điều khiển CC101,cách dùng CC1010 vào mạng không dây
Chương II GHÉP NỐI VI ĐIỀU KHIỂN AVR VỚI CẢM BIẾN
II. Những nét cơ bản của vi điều khiển AVR-Micro Atmega64L
-Hãng Atmel đã từ lâu nổi tiếng với chíp vi điều khiển họ 89Cxx phù hợp với các ứng dụng đơn giản. Chuyển sang họ AVR, Atmel đã thêm vào chip vi điều khiển này nhiều tính năng mà chíp họ 8051 không có như là ADC, PWM, BUS I2C, 2 Wire v.v..., để giúp cho người sử dụng có thêm nhiều tính năng để sử dụng.
2.1 Đặc điểm cấu tạo của AVR
-AVR là vi điều khiển được thiết kế cho rất nhiều ứng dụng. Từ các ứng dụng điều khiển, đo lường...
-Vi điều khiển AVR có thể coi như là một máy vi tính được tích hợp trên một chíp đơn. AVR là vi điều khiển 8 bit ( không thuộc họ vi điều khiển xử lý số DSP ) thiết kế hướng vào mục đích điều khiển. Được tích hợp các bộ nhớ EEPROM và bộ nhớ Flash (có thể lập trình được trong hệ thống- In system programmable)
-AVR có các trình dịch hộ trợ để lập trình từ mức thấp assembly (AVR Studio), đến ngôn ngữ bậc cao như là C ( ICC, AVR CodeVision ). AVR có thể thực hiện được hàng triệu lệnh đơn trong một giây.
2.1.1. Tính năng của Atmega64L
-Hiệu suât cao. Là dòng AVR 8 bit tiêu thụ điện năng thấp (Low power AVR).
-Sử dụng cấu trúc RISC
133 chỉ lệnh. Một lệnh trong 1 chu kỳ máy.
32x8 thanh ghi chung + thanh ghi điều khiển ngoại vi.
Lên đến 16 triệu lệnh/s với tấn số 16 MHz.
-Bộ nhớ chương trình và bộ nhớ dữ liệu:
64K Byte bộ nhớ Flash lập trình lại trong hệ thống.
Lựa chọn Boot code với các bit lock độc lập. Lập trình trong hệ thông bằng chương trình Boot.
4KB EEPROM và 4KB SRAM. ( có thể mở rộng 64K RAM ngoài).
Lập trình trong hệ thống (ISP) qua giao diện SPI.
-Giao diện JTAG (chuẩn IEEE std. 1149.1)
Hỗ trợ chức năng gỡ rối trên chíp.
Lập trình thông qua JTAG.
-Các tính năng ngoại vi:
Hai timer 8 bit và hai timer 16 bit.
Đồng hồ thời gian thực với bộ chia tần số.
Hai kênh PWM 8bit. 6 kênh PWM 2-16bit.
Bộ so sánh tương tự.
ADC 8 kênh 10 bit. 7 kênh ADC vi phân, 2 kênh ADC có bộ khếch đại 1x, 10x, 200x.
Giao diện nối tiếp Two-wire. Hai UASRT.
Giao diện nối tiếp Chủ/Tớ SPI.
Timer watch dog.
-Các tính năng đặc biệt:
Reset khi cấp nguồn. Bộ phát hiện xụt nguồn (Brown-out detection) khả trình.
Bộ giao động RC tích hợp sẵn bên trong.
Ngắt trong và ngắt ngoài.
Sáu chế độ ngủ ( Sleep) để tiết kiệm năng lượng.
Tần số làm việc có thể xác định bằng phần mềm.
-Điện áp làm việc:
2,7 – 5,5V cho Atmega64L
4,5 – 5,5V cho Atmega64
-Tốc độ:
0 - 8 MHz cho Atmega64L
0 - 16 MHz cho Atmega64
Chân
- Sơ đồ cấu hình chân của Atmega64L
Hình 19: Sơ đồ phần cứng
- Sơ đồ khối:
Hình 20: Sơ đồ khối vi điều khiển AVR: Atmega64L
2.1.2 Khối của Atmega64L
-Do các khối chức năng của Atmega64L rất nhiều lên em chỉ đề cập đến các khối chức năng sử dụng trong luận văn này.
Lõi CPU của Atmega64L
-Trong mục này sẽ mô tả tổng quát về cấu trúc lõi CPU của AVR. Chức năng chính của lõi CPU là đảm bảo cho chương trình hoạt động. CPU phải có khả năng truy cập vào bộ nhớ, thực hiện tính toán, điều khiển ngoại vi và quản lý ngắt.
- Sơ đồ khối của CPU:
Hình 21: Sơ đồ khối CPU.
-Các bộ xử lý AVR có kiến trúc Harvard, nghĩa là có bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt nhau. Hình trên minh họa sơ đồ khối CPU của AVR. Bus dữliệu dùng cho bộ nhớ dữ liệu là 1 bus 8 bit, cho phép nối hầu hết các bộ phận ngoại vi với tệp thanh ghi ( register file). Bus dữ liệu dùng cho bộ nhớ chương trình có độ rộng 16 bit và chỉ nối với thanh ghi lệnh.
Khối số học logic ALU
Khối số học (ALU) thực hiện các thao tác như thao tác bit, phép tính số học và lôgic trên nội dung của các thanh ghi và ghi ngược kết quả vào tệp thanh ghi trên thanh ghi đã được chỉ định. Các thao tác này được thực hiện trong một chu kỳ đồng hồ đơn lẻ. Mỗi một thao tác ALU đều làm ảnh hưởng đến các cờ trong thanh ghi trạng thái (STATUS), tùy thuộc vào lệnh.
Thanh ghi trạng thái SREG
Thanh ghi triạng thái có chứa 8bit cờ, đóng vai trò báo hiệu trạng thái hiện tại của bộ xử lý. Tất cả các bit đó dược xóa bởi chương trình. Các địa chỉ I/O của thanh ghi trang thái là $3F( địa chỉ bộ nhớ là $57).
Thanh ghi trạng thái không được lưu trữ bằng máy (machine) trong thời gian diễn ra một thao tác ngắt. Lệnh trong một đoạn chương trình ngắt có thể xủa đổi bít cờ trạng thái, và vì thế chương trình của người dùng phải lưu trữ và khôi phục thanh ghi trạng thái trong thời gian có một ngắt.
Tập thanh ghi đa năng
Tất cả các bộ điều khiển AVRđều có 32 thanh ghi đa năng. Một số trong các thanh ghi này còn có các chức năng riêng, bổ sung. Các thanh ghi dược đặt tên từ R0 đến R31. Tệp thanh ghi được tách thành 2 phần, mỗi phần có 16 thanh ghi, đánh số từ R0 đến R15 và R16 đến R31. Tất cả truy nhập trong chu trình đơn đến tất cả các thanh ghi.
Thanh ghi con trỏ ngăn xếp SP
Thanh ghi này có độ rộng bằng 1 byte đối với các bộ xử lý có đến 256 byte bộ nhớ SRAM và bằng 2byte (được gọi là SPH và SPL) đối với các bộ xử lý có bộ nhớ . Thanh ghi này sử dụng để chỉ đến vùng trong bộ nhớ SRAM ở đỉnh của ngăn xếp. Ngăn xếp được sử dụng để lưu trữ địa chỉ mà bộ xử lý trả trở lại trong thời gian một ngắt và gọi thủ tục . Bởi vì SP được khởi tạo về $0000 khi rết, nên chương trình người dùng cần phải khởi tạo SP cho thích hợp, bởi vì địa chỉ bắt đầu của bộ nhắ SRAM không phải là $0000 mà là $60. Ngăn xếp sắp xếp theo thứ tự từ trên xuống dưới trong địa chỉ bộ nhớ, nghĩa là, việc đẩy một giá trị lên trên ngăn xếp sẽ làm cho SP giảm đi một giá trị. Khi kéo một giá trị khỏi ngăn xếp sẽ làm tăng SP thêm một giá trị.
Việc thực thi lệnh
Bộ xử lý AVR được điều khiển bởi đồng hồ hệ thống, đồng hồ này có thể ở bên ngoài hoặc, nếu có tồn tại và được phép, một đồng hồ RC bên trong có thể được sử dụng. Đồng hồ hệ thống này không qua bất kỳ bộ chia nào và được sử dụng trục tiếp cho tất cả các thao tác truy nhập bên trong bộ xử lý. Bộ xử lý có một đường ống (pipeline) 2 tầng, và lệnh tìm nạp/ giải mã được thực hiện đồng thời vời việc thực thi lệnh.
Hình 22: Tìm nạp/ giải mã lệnh và việc thực thi lệnh.
Cứ mỗi lần lệnh được tìm nạp, nếu đây là một lệnh liên quan đến ALU, nó có thể được thực thi bởi khối ALU như được minh họa tren hình 3-5 cho một chu trình đơn lẻ.
Hình 23: Việc thực thi của ALU bao gồm tim/nạp. thực thi, và ghi ngược lại vào thanh ghi
Mặt khác, việc truy nhập bộ nhớ SRAM chiếm mất 2 chu kỳ, như dược minh họa ở hình dưới. Nguyên nhân là việc truy nhập bộ nhớ SRAM sử dụng một thanh ghi con trỏ dùng cho địa chỉ bộ nhớ SRAM. Thanh ghi con trỏ này chỉ là một trong các thanh ghi con trỏ (các cặp thanh ghi X, Y hoặc Z) có trên chip. Chu trình đồng hồ thứ nhất được cần đến để truy nhập tệp thanh ghi và để thao tác trên thanh ghi con trỏ (các lệnh truy nhập bộ nhớ SRAM cho phếp tăng địa chỉ trước/ sau thao tác trên thanh ghi con trỏ). Ở thời điểm kết thúc của chu kỳ đồng hồ thứ nhất, khối ALU thực hiện phép tính này, và sau đó địa chỉ này được sử dụng để truy nhập ô nhớ SRAM và để ghi vào ô nhớ này (hoặc đọc ra rừ đó vòa thanh ghi đích), như được minh họa hình dưới.
Hình 24: Các chu trình truy nhập dữ liệu lên thanh ghi SRAM trên chip.
2.1.3 Các chu trình truy nhập dữ liệu lên thanh ghi SRAM trên chip 5 của Atmega64L
- Bộ nhớ của Atmega64L được chia làm 2 phần : bộ nhớ chương trình và bộ nhớ dữ liệu. Trong trường hợp đặc biệt bộ nhớ EEPROM được mô tả như là bộ nhớ dữ liệu.
- Atmega có 64k Byte bộ nhớ Flash lập trình lại được trong hệ thống (ISP- In system progammable) cho bộ nhớ chương trình. Bây giờ họ vi điều khiển AVR đề là chip 16 hoặc 32 bit thì Flash được tổ chức là 32k x 6. Để vi điều khiển hoạt động chương trình phải được nạp vào bộ nhớ Flash. Trong luận văn này Atmega64L được lập trình qua mode ISP: Serial downloading sử dụng giao diện SPI. Bộ nạp là AVR-doper:
Hình 25: Bộ nạp AVR-doper
- Bộ nạp này có ưu điểm là sử dụng giao diện USB với PC, và hoạt động được với điện áp 3,3V.
- Atmega64L có bộ nhớ SRAM là 4k byte.
Nguồn xung hệ thống:
- Atmega có thể dùng các nguồn xung clock: RC ngoài, thạch anh ngoài, nguồn xung ngoài hoặc bộ dao động RC tích hợp bên trong.
- Trong luận văn, vi điều khiển Atmega64L dùng bộ cộng hưởng thạch anh ngoài 8 MHz ( CKSEL3..0 = 1111, SUT1..0 = 11 ).
Ngắt phần cứng của Atmega64L
-Atmega64L có tổng cộng 36 ngắt phần cứng : ngắt cho timer, ngắt USART, ngắt ADC, PWM v.v...
Hình 25: bảng véc tơ ngắt của Atmega64L
Bộ đếm/định thời của Atmega64L:
-Atmega64L có 4 timer/counter gồm 2 timer 8bit (timer0 và timer2) và 2 timer 16bít (timer1 và timer2).
-Sơ đồ khối của timer1:
Hình 26: Sơ đồ khối của timer/counter.
-- Timer/counter1, 16 bit cho phép lập trình các thời gian điều khiển chính xác ( đếm các sự kiện), tạo xung, đo độ rộng thời gian của tín hiệu. Các tính năng:
Là timer 16 bit cho phép tạo PWM 16bit.
Ba lối ra so sánh độc lập.
Một bộ capture đầu vào.
Chế độ Auto Reload.
Triệt nhiễu đầu vào Capture.
Hiệu chỉnh pha PWM.
Chu kỳ PWM thay đổi được.
Bộ tạo tần số.
Đếm sự kiện ngoài.
10 nguyên nhân gây ngắt timer độc lập(TOV1, OCF1A, OCF1B, OCF1C, ICF1, TOV3, OCF3A, OCF3B, OCF3C, and ICF3)
Bộ biến đổi tương tự sang số ADC
Tính năng:
- Trả về kết quả ADC 10 bit.
- 0.75 đơn vị không tuyến tính.
- Độ chính xác tuyệt đối là ± 1.5 LSB.
- Thời gian biến đổi là từ 13- 260 μs.
- 8 lối vào đơn hợp kênh ADC.
- 7 lối vào vi phân ADC.
- 2 lối vào vi phân có bộ khếch đại đầu vào.
- Điều chỉnh lệch trái ở kết quả ADC.
- Điện áp vào ADC từ 0 – Vcc hoặc 2,7 – Vcc đối với ADC vi phân.
- Có khả năng lựa chọn 2,56V làm điện áp chuẩn cho ADC.
- ADC tự động bắt đầu biến đổi bời Auto Trigger của nguồn ngắt.
- Ngắt khi biến đổi hoàn thành.
- Có mode loại trừ nhiễu.
Hình27: Sơ đồ khối bộ biến đổi ADC.
-
2.1.4 Bộ truyền nhận nối tiếp USART
- Atmega64L có 2 khối USART: USART0 và USART1. Tính năng:
Hoạt động song công ( Thanh ghi truyền và nhận độc lập )
Hoạt động ở chế độ đồng bộ hoặc không đồng bộ.
Bộ tạo tốc độ Baud.
Khung truyền 5,6,7,8 hoặc 9 bit dữ liệu và 1 hoặc 2 bit stop.
Tạo và kiểm tra chẵn lẻ bằng phần cứng.
Phát hiện tràn dữ liệu.
Phát hiện lỗi khung truyền.
Lọc nhiễu bao gồm phát hiện lỗi bit start và lọc số thông thấp.
Ba ngắt : truyền hoàn tất, thanh ghi dữ liệu TX trống, nhận hoàn tất.
Truyền thông đa vi xử lý.
Gấp đôi tốc độ với mode truyền không đồng bộ.
Hình 28: Sơ đồ khối USART.
-Mode thường được sử dụng là mode: truyền không đồng bộ, tốc độ baud 9600, 8 bit dữ liệu, 1 bit stop, không kiểm chẵn lẻ, không bắt tay.
2.1.5 Cảm biến đầu ra tín hiệu số và cách ghép nối
A.Tổng quan về kỹ thuật bus I2C
Bus I2C (liên mạch tích hợp) là bus truyền thông (đường truyền tín hiệu điện tử) 2 dây, có1tốc độ từ thấp đến trung bình của Philips Semiconductors vào nửa đầu thập niên 80. I2C được tạo ra nhằm giảm chi phí sản xuất của các sản phẩm điện tử. Nó cung cấp liên kết truyền thông giá rẻ nhưng hiệu quả giữa các chip trong các sản phẩm này. Ứng dụng ban đầu của I2C gồm có điều khiển dung tích và độ tương phản trong radio và vô tuyến. Trong thập kỷ vừa qua. I2C đã mở rộng vai trò truyền thông sang một dải ứng dụng rộng.
Ngày nay, I2C có thể thấy trong rất nhiều ứng dụng điện tử với khả năng phát triển gần như không hạn chế.
- Chuẩn công nghiệp
Quyển “I2C Bus Specification” của Philips Semiconductors cung cấp định nghĩa giao thức truyền thông của các hoạt động báo hiệu của bus I2C. Các đặc tính thông số này giúp chỉ dẫn cho các nhà sản xuất thiết bị bán dẫn và các nhà phát triển sản phẩm điện tử theo đúng công nghệ. Đặc tính thông số được phát hành miễn phí trên Internet. (www.semiconductors.philips.com/buses/i2c)
-Giá rẻ
Trước I2C, truyền thông giữa các chip dung nhiều dây với giao diện song song, thường yêu cầu các IC (mạch tích hợp) có 24, 28 hay nhiều chân hơn. Nhiều chân được dùng để đánh địa chỉ liên chip, chọn, điều khiển và truyền dữ liệu. Trong giao diện song song, 8 bit dữ liệu thường được truyền từ một IC gửi vào một IC nhận bằng một thao tác đơn.
I2C thực hiện truyền thông giữa các chip chỉ dung 2 dây trong giao diện song song, cho phép I2C truyền thông bằng ít chân hơn. 2 dây trong bus I2C được gọi là Xung (SCL) và Dữ liệu (SDA). 2 dây này mang địa chỉ, chọn, điều khiển và dữ liệu, mỗi bit tại một thời điểm. Dây SDA mang dữ liệu còn dây SCL đồng bộ bộ gửi và bộ nhận qua quá trình truyền. Các IC dùng I2C có thể thực hiện các chức năng tương tự như trong giao diện song song cồng kềnh hơn nhưng với ít chân hơn nhiều. Điều này giảm đáng kể kích thước và giá thành IC dựa trên bus I2C.
Khoản tiết kiệm thứ hai từ thiết kế bus I2C 2 dây là kích thước và giá thành bản mạch in (PCB). Với IC dựa trên bus I2C, chỉ cần ít dây hơn nhiều (dây đồng) cho truyền thông liên chip, các bản mạch dung IC trên I2C giảm đáng kể về kích thước, độ phức tạp và giá thành.
- Công suất lớn hơn
Dù chỉ giảm chi phí đã đủ làm nên thành công cho bus I2C, các nhà phát triển cũng được đánh giá cao khi tạo ra liên kết truyền thông hiệu quả. I2C giải quyết được khó khăn bằng việc cung cấp nhiều đặc tính hiệu quả.
B.Cấu trúc Master-Slave
Thiết bị I2C được phân loại là master hoặc slave. Thiết bị khởi tạo một thông điệp được gọi là master còn thiết bị phản hồi thông điệp gọi là slave. Thiết bị có thể chỉ là master, chỉ là slave hay chuyển đổi giữa master và slave tuỳ theo ứng dụng yêu cầu.
Đa thiết bị
I2C có thể kết nối nhiều IC chỉ bằng 2 dây. Mỗi thiết bị I2C slave có một địa chỉ slave duy nhất. Khi một master gửi một thông điệp, nó gửi kèm địa chỉ slave khi bắt đầu thông điệp. Tất cả các thiết bị trên bus lắng nghe thông điệp nhưng chỉ slave nhận ra địa chỉ của nó tham gia vào quá trình truyền.
Hỗ trợ nhiều master
I2C cũng hỗ trợ nhiều thiết bị master trên bus cùng lúc, một đặc tính hữu hiệu là giám sát việc sử dụng bus nhờ giữ các luồng thông điệp bus ở mức tổi thiểu. Để hỗ trợ nhiều master, I2C phải giải quyết các xung đột tín hiệu, khi mà có hai hay nhiều thiết bị master hơn cố gắng truyền qua bus tại cúng một thời điểm. Đặc tính này, gọi là phát hiện mất phân phối bus, cho phép một master phát hiện ra khi tín hiệu bus của nó xung đột với tín hiệu của master khác. Một master phát hiện ra mất phân phối sẽ kết thúc việc sử dụng bus, cho phép thông điệp từ master khác truyền qua bus mà không bị ảnh
C. Đặc điểm của SHT71
-Tổng quát về sản phẩm SHT1X/SHT7X
SHTXX là module sensor đo độ ẩm và nhiệt độ tương đối một chip đơn gồm một đầu ra số chuẩn hóa. Ứng dụng trong quá trình CMOS công nghiệp với cơ chế siêu nhỏ được cấp sáng chế (công nghệ CMOSens) đảm bảo độ tin cậy cao nhất và độ ổn định dài hạn tốt. Thiết bị gồm một thành phần cảm nhận điện dung bằng polymer dùng làm sensor đo độ ẩm và dải nhiệt độ tương đối. Cả hai đều được nối với một bộ chuyển đổi tương tự - số 14 bit và một mạch giao tiếp nối tiếp trên cùng một chip. Như vậy sẽ thu được chất lượng tín hiệu tốt, thời gian phản hồi nhanh và khả năng chống nhiễu từ bên ngoài tốt mà giá thành rẻ. Mỗi SHTXX được chuẩn hóa riêng với một dải độ ẩm chính xác với ẩm kế đã được thử nghiệm làm tham chiếu. Các hệ số chuẩn hóa được lập trình trong bộ nhớ OTP. Các hệ số này được dùng trong khi đo để chuẩn hóa tín hiệu từ sensor.
Giao diện nối tiếp 2-wire và việc điều chỉnh điện thế trong cho phép ghép nối hệ thống nhanh chóng và dễ dàng. Kích thước rất nhỏ và tiêu tốn ít năng lượng tạo thuận lợi cho hầu hết các ứng dụng cần thiết.
Thiết bị có giao diện LCC (Sóng mang chip không định hướng) cắm hay thành phần cắm nóng 4 chân đơn đường. Các tùy chọn về gói sử dụng của khách hàng có thể làm theo yêu cầu.
Đầu đo nhiệt độ và độ ẩm
-Đặc tính kĩ thuật
+ Sensor đo độ ẩm và nhiệt độ tương đối
+Điểm sương
+Đầu ra số chuẩn hóa toàn phần
+Độ ổn định dài hạn cao
+Không yêu cầu thành phần gắn ngoài
+Tiêu thụ rất ít năng lượng
+Giao diện cắm hay nối toàn phần 4 chân
+Kích thước nhỏ
+Tự động ngắt nguồn
- Các thông số kết nối
Các chân nối nguồn
SHTXX yêu cầu điện thế từ 2.4V đến 5.5V. Sau khi bật nguồn, thiết bị cần 11ms để thoát khỏi trạng thái "sleep". Trước thời gian này, các lệnh không được gửi đi. Các chân nguồn (VDD, GND) có thể được nối với tụ điện 100nF.
Giao diện kết nối (2-wire hai chiều trực tiếp)
Giao diện nối tiếp của SHTXX đánh giá số liệu đầu ra sensor và năng lượng tiêu thụ và không
tương thích với giao diện PC
SCK được dùng để đồng bộ hóa truyền thông giữa vi điều khiển và SHT1X/SHT7X. Do giao diện gồm các logic tĩnh đầy đủ nên không có tần số SCK tối thiểu
Dữ liệu nối tiếp (DATA)
Chân ba trạng thái DATA dùng để truyền dữ liệu vào ra thiết bị. DATA chuyển sau sườn xung xuống và hoạt động ở sườn xung lên của xung nối tiếp SCK. Trong quá trình truyền thông, đường DATA phải được giữ ổn định với mức SCK cao. Để tránh nhiễn tín hiệu, vi điều khiển nên giữ DATA ở mức thấp. Cần một điện trở lớn gắn ngoài (ví dụ 10kOhm) để giữ cho tín hiệu ở mức cao. (Xem hình 2) Điện trở lớn thường gắn trong các kênh vào/ra của vi điều khiển. Xem bảng 5 để rõ hơn về đặc tính vào/ra.
Truyền lệnh
Để khởi tạo một đợt truyền, chuỗi "Bắt đầu truyền" được sinh ra. Nó là thành phần xung xuống của DATA khi SCK ở mức cao, theo sau là một xung thấp trên SCK và tăng DATA trở lại khi SCK ở mức cao.
Lệnh tiếp đó gồm 3 bit địa chỉ (hiện tại chỉ có "000") và 5 bit lệnh. SHT1X/SHTX chỉ định việc thu chính xác một lệnh bằng việc chuyển chân DATA xuống mức thấp (bit ACK) sau sườn xung xuống của xung SCK thứ 8. Đường DATA hoạt động (và lên mức cao) sau sườn xung xuống của xung SCK thứ 9.
- Chuỗi đo (RH và T)
Sau khi phát sinh lệnh đo ('00000101' cho độ ẩm tương đối, '00000011' cho nhiệt độ), vi điều khiển phải đợi đến khi đo xong. Mất khoảng 11/55/210 ms cho một phép đo 8/12/14 bit. Thời gian chính xác biến thiên lên đến +(-) 15% với tốc độ bộ tạo dao động. Để báo hiệu đã đo xong, SHT1X hạ đường dữ liệu xuống. Vi điều khiển phải đợi báo hiệu "dữ liệu sẵn sàng" này trước khi bắt đầu thay đổi xung SCK tiếp.
2 byte dữ liệu đo và một byte mã kiểm tra tổng CRC sẽ được truyền đi sau đó. uC phải nhận biết mỗi byte bằng cách hạ đường DATA xuống thấp. Tất cả các giá trị đều là MSB bên phải tính trước (ví dụ xung SCK thứ 5 là MSB với giá trị 12 bit, với 8 bit thì byte đầu tiên không được sử dụng).
Việc truyền thông kết thúc sau bit nhận biết dữ liệu CRC. Nếu chuỗi CRC không sử dụng thì vi điều khiển sẽ kết thúc việc truyền thông sau LSB dữ liệu đo bằng cách giữ ack ở mức cao.
Thiết bị tự động trở lại chế độ sleep sau khi quá trình đo và truyền thông kết thúc.
Chú ý: Để giữ độ ổn định nhiệt độ là 0.1 độ C, SHTXX không nên hoạt động hơn 15% thời gian (ví dụ tối đa 3 lần đo/giây cho độ chính xác 12 bit).
- Chuỗi khởi tạo lại kết nối
Nếu truyền thông với thiết bị bị mất, chuỗi tín hiệu sau sẽ khởi tạo lại giao diện nối tiếp của nó:
Khi để DATA ở mức cao, thay đổi SCK từ 9 lần trở lên. Sau đó phải là một chuỗi "bắt đầu khởi tạo" trước khi thực hiện lệnh tiếp theo. Chuỗi này chỉ khởi tạo lại giao diện. Thanh ghi trạng thái giữ nguyên nội dung của nó.
- Tính chuỗi kiểm tra tổng CRC
Việc truyền thông số được đảm bảo bởi chuỗi kiểm tra tổng 8 bit. Nó đảm bảo rằng dữ liệu sai được tìm ra và loại bỏ.
Hãy đọc thêm chú ý ứng dụng "Tính toán chuỗi kiểm tra tổng CRC" để xem thông tin về cách tính CRC.
- Thanh ghi trạng thái
Một số chức năng tiên tiến của SHTXX có sẵn trong thanh ghi trạng thái. Phần sau nêu tổng quan ngắn gọn về các đặc tính. Bản mô tả chi tiết hơn có trong chú ý ứng dụng "Thanh ghi trạng thái".
- Độ chính xác đo
Độ chính xác đo mặc định với 14 bit (nhiệt độ) và 12 bit (độ ẩm) có thể giảm xuống 12 hay 8 bit. Như vậy đặc biệt hữu dụng với các ứng dụng tốc độ cao hay có năng lượng tiêu thụ thấp.
- Hết pin
Chức năng hết pin thông báo điện thế VDD dưới 2.47V. Độ chính xác là +(-) 0.05V.
- Tăng nhiệt độ
Một thành phần tăng nhiệt gắn trên chip có thể được bật lên. Nó sẽ tăng nhiệt độ sensor lên xấp xỉ 5 độ C (9 độ F). Năng lượng tiêu thụ cũng tăng cỡ 8mA/5V.
D. Ứng dụng:
Nhờ so sánh các giá trị nhiệt độ và độ ẩm trước và sau khi bật bộ tăng nhiệt, tính chính xác của cả hai sensor có thể thay đổi.
Với môi trường có độ ẩm tương đối cao (hơn 95%) thì việc làm nóng sensor sẽ ngăn sự đọng nước làm thay đổi thời gian phản hồi và độ chính xác.
Chú ý: Khi được làm nóng, SHTXX sẽ có nhiệt độ cao hơn và độ ẩm tương đối thấp hơn so với khi chưa làm nóng.
Các đặc tính điện
VDD = 5V, nhiệt độ = 25 độ C trừ khi có khuyến cáo khác.
3 Chuyển đổi đầu ra thành các giá trị vật lý
Độ ẩm tương đối
Để bù cho sự không tuyến tính của sensor độ ẩm và để đạt được độ chính xác hoàn toàn, nên chuyển đổi các giá trị đầu ra theo công thức sau:
RHtuyến tính = C1 + C2 * SORH + C3 * SORH(2)
Để đơn giản, đỡ phải tính toán hãy xem các công thức chuyển đổi trong chú ý ứng dụng "Bù không tuyến tính độ ẩm tương đối và nhiệt độ".
Sensor đo độ ẩm không phụ thuộc nhiều vào điện thế.
Bù độ phụ thuộc độ ẩm tương đối/nhiệt độ
Với nhiệt độ, đặc biệt khác nhau từ 25 độ C (khoảng 77 độ F), hệ số nhiệt độ của sensor đo độ ẩm tương đối được tính theo:
RH thực = (T độ C - 25)* (t1 + t2*SORH) + RH tuyến tính
Công thức trên ứng với độ ẩm tương đối cỡ 0.12%/độ C/độ ẩm tương đối
Các file đính kèm theo tài liệu này:
- ccccc.DOC