Tổng quan về mạng cảm nhận không dây sử dụng CC1010

60 301 0
Tổng quan về mạng cảm nhận không dây sử dụng CC1010

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án tốt nghiệp Tổng quan mạng cảm nhận không dây sử dụng CC1010 Đồ án tốt nghiệp đại học CHƯƠNG I TỔNG QUAN VỀ MẠNG CẢM NHẬN KHÔNG DÂY SỬ DỤNG CC1010 1.1 Giới thiệu mạng cảm nhận không dây Với phát triển công nghệ chế tạo linh kiện điện tử, đặc biệt công nghệ bán dẫn, vi điều khiển ngày có mật độ tích hợp cao, khả xử lý mạnh, kích thước nhỏ, tiêu thụ lượng ít, giá thành ngày hạ Khi cài đặt phần mềm nhúng, vi điều khiển có khả hoạt động độc lập môi trường có vị trí địa lý khác Nếu kết hợp vi điều khiển với phát sóng vô tuyến cảm biến chúng trở thành nút mạng mạng cảm nhận không dây (Wireless Sensor Network - WSN) WSN tạo cách tập hợp nhiều nút cấu tạo Tại nút mạng, chúng hoạt động độc lập để tiến hành đo thông số khác môi trường như: nhiệt độ, độ ẩm, ánh sáng, áp suất, nồng độ bụi, WSN dường trở thành giải pháp hấp dẫn mang đến tiện lợi nhiều phương diện, đặc biệt, nhiều trường hợp chí hạn chế nguy hiểm cho người môi trường làm việc khắc nghiệt ( nút mạng thay cho làm việc trực tiếp người môi trường có độc tính hay nhiệt độ cao, áp suất cao, ) Mạng cảm nhận không dây đời đáp ứng cho nhu cầu thu thập thông tin môi trường tập hợp điểm xác định khoảng thời gian định nhằm phát xu hướng quy luật vận động môi trường Bài toán đặc trưng số lớn nút mạng, thường xuyên cung cấp thông số môi trường gửi một Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học tập trạm gốc có kết nối với trung tâm xử lý (thường hệ thống máy tính ) để phân tích, xử lý, đưa phương án phù hợp cảnh báo hay đơn lưu trữ số liệu 1.2 Các tiêu hệ thống mạng cảm nhận không dây Các tiêu chủ yếu mạng cảm nhận không dây là: thời gian sống, độ bao phủ, chi phí dễ triển khai, thời gian đáp ứng, độ xác thời gian, bảo mật, tốc độ lấy mẫu hiệu Thông thường, tăng hiệu tiêu lại làm giảm hiệu tiêu khác Ví dụ: tăng tốc độ lấy mẫu lại làm giảm thời gian sống Mục đích phần hiểu rõ cân tiêu với khả hệ thống 1.2.1 Thời gian sống Có giới hạn mạng cảm nhận không dây thời gian sống Trong ứng dụng, nút mạng thường đặt môi trường, người giám sát theo hàng tháng hay hàng năm Yếu tố chủ yếu giới hạn thời gian sống mạng cảm nhận lượng cung cấp Mỗi nút cần thiết kế chế quản lý lượng nội để tối đa thời gian sống mạng Đặc biệt, trường hợp mạng an ninh, nút phải sống nhiều năm Một nút bị lỗi làm tổn thương hệ thống an ninh Trong vài tình dùng nguồn lượng Tuy nhiên, ưu điểm mạng không dây tính linh hoạt dễ triển khai Yêu cầu nguồn lượng cho tất nút mạng lại mâu thuẫn với ưu điểm Một giải pháp đưa cho nhóm nút đặc biệt cấp nguồn Trong hầu hết ứng dụng, đặc điểm nút tự cấp nguồn Chúng có đủ lượng cho nhiều năm lấy lượng từ môi trường thông qua thiết bị khác lượng mặt trời, Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học nguồn áp điện Cả hai lựa chọn yêu cầu lượng tiêu thụ trung bình nút tốt Yếu tố quan trọng định thời gian sống lượng tiêu thụ radio Một nút cảm nhận không dây truyền nhận tín hiệu radio tiêu thụ lượng lớn Năng lượng tiêu thụ giảm cách giảm lượng truyền, tức giảm chu trình làm việc radio 1.2.2 Độ bao phủ Bên cạnh thời gian sống, độ bao phủ là tham số đánh giá cho mạng không dây Nó có thuận lợi khả triển khai mạng vùng rộng lớn Điều làm tăng giá trị hệ thống người dùng cuối Điều quan trọng độ bao phủ mạng không tương đương với khoảng cách kết nối không dây sử dụng Kỹ thuật truyền multi-hop mở rộng độ bao phủ mạng Về mặt lý thuyết chúng có khả mở rộng vô hạn Tuy nhiên, khoảng cách truyền xác định, giao thức mạng multi-hop làm tăng lượng tiêu thụ nút, làm giảm thời gian sống mạng Hơn nữa, chúng đòi hỏi mật độ tối thiểu, làm tăng chi phí triển khai Ràng buộc khoảng cách dẫn đến việc mở rộng số lượng lớn nút Giá trị chủ yếu mạng cảm nhận khả mở rộng Một người dùng triển khai mạng nhỏ ban đầu sau tiếp tục thêm nút Tăng số lượng nút hệ thống ảnh hưởng tới thời gian sống Càng nhiều điểm cảm nhận có nhiều liệu truyền làm tăng lượng tiêu thụ mạng 1.2.3 Chi phí dễ triển khai Ưu điểm mấu chốt mạng cảm nhận không dây dễ triển khai Người sử dụng không cần phải hiểu mạng chế truyền thông Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học làm việc với WSN Để triển khai hệ thống thành công, WSN cần phải tự cấu hình Các nút đặt vào môi trường hoạt động Thêm vào đó, hệ thống cần thích nghi thay đổi điều kiện môi trường Trong suốt thời gian sống, thay đổi vị trí hay đối tượng lớn gây nhiễu tới truyền thông hai nút Mạng cần có khả tự cấu hình lại để khắc phục điều Trong thực tế, phần lượng dành cho kiểm tra bảo trì hệ thống Việc tạo thông tin chẩn đoán tái cấu hình làm giảm thời gian sống mạng, đồng thời làm giảm tốc độ lấy mẫu 1.2.4 Thời gian đáp ứng Trong ứng dụng cảnh báo, thời gian đáp ứng hệ thống thông số quan trọng để đánh giá hệ thống Một cảnh báo cần tạo nhận thấy có vi phạm Dù hoạt động lượng thấp, nút cần có khả truyền tức thời thông điệp qua mạng nhanh tốt Trong kiện không thường xuyên, chúng xảy thời điểm mà không báo trước Thời gian đáp ứng quan trọng điều khiển máy móc nhà máy Những hệ thống thành thực đảm bảo thời gian đáp ứng Khả có thời gian đáp ứng ngắn xung đột với kỹ thuật làm tăng thời gian sống mạng Thời gian sống mạng tăng cách để nút hoạt động radio thời gian ngắn Thời gian đáp ứng cải thiện cách cấp nguồn cho số nút toàn thời gian Những nút nghe thông điệp cảnh báo chuyển tiếp chúng theo đường cần Tuy nhiên điều làm giảm tính dễ triển khai hệ thống 1.2.5 Độ xác thời gian Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học Trong ứng dụng theo dõi đối tượng giám sát môi trường mẫu từ nhiều nút có liên quan theo thời gian để xác định tượng khác thường theo dõi Tính xác chế tương quan phụ thuộc vào tốc độ lan truyền tượng đo Trong trường hợp xác định nhiệt độ trung bình nhà, mẫu liên quan với vòng cỡ hàng giây Tuy nhiên, để xác định cách phản ứng nhà trận động đất đòi hỏi độ xác cỡ mili giây Để đạt độ xác theo thời gian, mạng cần xây dựng trì thời gian sở toàn cục sử dụng để xếp mẫu kiện theo thời gian Trong hệ phân tán, lượng cần mở rộng để trì phân phát đồng hồ Thông tin đồng thời gian cần liên tục truyền nút Tần số thông điệp đồng phụ thuộc vào yêu cầu độ xác đồng hồ thời gian 1.2.6 Bảo mật Các thông tin nhiệt độ ứng dụng giám sát môi trường dường vô hại việc giữ bí mật thông tin quan trọng Các hoạt động nhà thu thập dễ dàng cách lấy thông tin nhiệt độ ánh sáng nhà Những thông tin sử dụng để xếp kế hoạch công vào công ty Do đó, WSN cần có khả giữ bí mật thông tin thu thập Trong ứng dụng an ninh, liệu bảo mật trở nên quan trọng Không trì tính bí mật, phải có khả xác thực liệu truyền Sự kết hợp tính bí mật xác thực yêu cầu cần thiết ba dạng ứng dụng Việc sử dụng mã hoá giải mã làm tăng chi phí lượng băng thông Dữ liệu mã hoá giải mã cần truyền với gói tin Điều ảnh hưởng tới hiệu suất ứng dụng giảm số lượng liệu lấy từ mạng thời gian sống mong đợi Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học 1.2.7 Tốc độ lấy mẫu hiệu Trong mạng thu thập liệu Tốc độ thu thập thông tin hiệu tham số đánh giá hiệu suất hệ thống Tốc độ thu thập thông tin hiệu số mẫu lấy từ nút riêng lẻ truyền điểm thu thập trung tâm Thông thường, ứng dụng thu thập liệu có tốc độ lấy mẫu 1-2 mẫu phút Trong thu thập liệu, nút cần điều khiển liệu tất cháu Nếu nút truyền liệu nút có 60 nút cháu, phải truyền 60 lần Thêm vào phải nhận 60 lần chu kỳ lấy mẫu Tốc độ kích thước mạng ảnh hưởng tới tốc độ lấy mẫu hiệu Một chế để tăng tốc độ lấy thông tin truyền liệu thô xử lý liệu nội mạng (innetwork processing) Các dạng nén không gian thời gian sử dụng để giảm yêu cầu băng thông trì tốc độ lấy mẫu hiệu Dữ liệu sau truyền qua mạng multi-hop băng thông cho phép 1.3 Các yêu cầu cho nút mạng Sau tiêu để đánh giá nút mạng WSN Mục đích qua tiêu đánh giá tạo sở để lựa chọn loại VĐK thích hợp xây dựng hệ thống mạng hiệu 1.3.1 Năng lượng Để đạt yêu cầu trì lượng hoạt động nhiều năm, nút mạng cần phải tiêu thụ lượng thấp Việc tiêu thụ lượng thấp đạt cách kết hợp thành phần phần cứng lượng thấp chu trình hoạt động ngắn Trong thời gian hoạt động, truyền thông radio tiêu thụ phần lượng đáng kể tổng mức tiêu thụ lượng nút mạng Các thuật toán giao thức cần Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học phát triển để giảm hoạt động truyền nhận radio Điều đạt cách sử dụng tính toán cục để giảm luồng liệu nhận từ cảm biến Ví dụ, kiện từ nhiều nút cảm biến kết hợp thành nhóm nút trước truyền kết đơn lẻ qua mạng cảm nhận 1.3.2 Tính mềm dẻo Các nút mạng phải có khả thích nghi cao để thích hợp với ngữ cảnh khác Mỗi ứng dụng yêu cầu thời gian sống, tốc độ lấy mẫu, thời gian đáp ứng xử lý nội mạng khác Một kiến trúc WSN cần phải đủ mềm dẻo để cung cấp dải rộng ứng dụng Thêm vào đó, lý chi phí thiết bị có phần cứng phần mềm cho ứng dụng cụ thể Kiến trúc cần đơn giản để kết hợp phần cứng phần mềm Vì vậy, thiết bị đòi hỏi mức độ cao tính modul phần cứng phần mềm giữ tính hiệu 1.3.3 Sức mạnh Để hỗ trợ cho yêu cầu thời gian sống, nút cần phải mạnh tốt Trong thực tế, hàng trăm nút mạng hoạt động nhiều năm Để đạt điều này, hệ thống cần xây dựng để hoạt động nút bị lỗi Modul hoá hệ thống công cụ mạnh để phát triển hệ thống Bằng cách chia chức hệ thống thành thành phần độc lập, chức kiểm tra đầy đủ trước kết hợp chúng thành ứng dụng hoàn chỉnh Để làm điều này, thành phần hệ thống phải độc lập đến mức có giao tiếp chặt chẽ, để ngăn chặn tương tác không mong đợi Để tăng sức mạnh hệ thống nút bị lỗi, WSN cần có khả đối phó với nhiễu Các mạng thường tồn với hệ thống không dây khác, chúng cần có khả để thích nghi theo hành động khác Nó phải có khả hoạt động môi trường có thiết bị không dây khác Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học hoạt động với hay nhiều tần số Khả tránh tắc nghẽn tần số điều cốt yếu để đảm bảo triển khai thành công 1.3.4 Bảo mật Để đạt mức độ bảo mật mà ứng dụng yêu cầu, nút riêng lẻ cần có khả thực mã hoá phức tạp thuật toán xác thực Truyền liệu không dây dễ bị chặn Chỉ có cách bảo mật liệu mã hoá toàn liệu truyền CPU cần có khả tự thực thao tác mật mã Để bảo mật toàn liệu truyền, nút cần tự bảo mật liệu chúng Trong chúng lượng lớn liệu lưu bên trong, chúng phải lưu khoá mã hoá sử dụng mạng Nếu khoá bị lộ, tính bảo mật mạng Để có tính bảo mật tốt, cần phải khó để lấy khoá mã hóa từ nút 1.3.5 Truyền thông Một tiêu đánh giá cho WSN tốc độ truyền, lượng tiêu thụ khoảng cách Trong độ bao phủ mạng không bị giới hạn khoảng cách truyền nút riêng biệt, khoảng cách truyền có ảnh hưởng quan trọng tới mật độ tối thiểu chấp nhận Nếu nút đặt xa tạo kết nối với mạng liên kết với nút dự trữ để có độ tin cậy cao Nếu khoảng cách truyền radio thoả mãn mật độ nút cao, nút thêm vào làm tăng mật độ hệ thống tới mức độ cho phép Tốc độ truyền có ảnh hưởng lớn đến hiệu suất nút mạng Tốc độ truyền cao làm cho khả lấy mẫu hiệu lượng tiêu thụ mạng Khi tốc độ tăng, việc truyền thời gian đòi hỏi lượng Tuy nhiên, tăng tốc độ thường làm tăng lượng tiêu thụ radio Mọi thứ trở nên nhau, tốc độ cao tăng hiệu suất hệ thống Tuy nhiên, tăng tốc độ có ảnh hưởng lớn tới lượng tiêu thụ yêu cầu tính Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học toán nút Tổng thể, lợi ích việc tăng tốc độ bù lại yếu tố khác 1.3.6 Tính toán Hai việc tính toán cho nút mạng tập trung chủ yếu vào xử lý liệu nội mạng quản lý giao thức truyền thông không dây mức thấp Có yêu cầu giới hạn mặt thời gian thực truyền thông cảm biến Khi liệu tới mạng, CPU cần điều khiển đồng thời radio ghi lại/giải mã (record/decode) liệu tới Tốc độ truyền cao đòi hỏi tính toán nhanh Điều tương tự xử lý liệu cảm biến Các cảm biến tương tự phát hàng ngàn mẫu giây Các thao tác xử lý cảm biến nói chung bao gồm lọc số, trung bình hoá, nhận biết ngưỡng, phân tích phổ, … Để tăng khả xử lý cục bộ, nút láng giềng kết hợp liệu với trước truyền mạng Các kết từ nhiều nút mạng tổng hợp Xử lý nội mạng đòi hỏi thêm tài nguyên tính toán Ngoài ra, ứng dụng xử lý liệu tiêu thụ lượng tính toán phụ thuộc vào phép toán thực 1.3.7 Đồng thời gian Để hỗ trợ tương quan thời gian đọc cảm biến chu trình hoạt động ngắn ứng dụng thu thập thông tin, nút cần trì đồng thời gian xác với thành viên khác mạng Các nút cần ngủ thức dậy để chúng định kỳ truyền thông cho Các lỗi chế tính thời gian tạo nên không hiệu dẫn đến làm tăng chu trình làm việc làm giảm tuổi thọ hệ thống mạng 1.3.8 Kích thước chi phí Kích thước vật lý giá thành nút riêng lẻ có ảnh hưởng tới dễ dàng chi phí triển khai Việc giảm giá thành nút Ngành Công Nghệ Thông Tin Đồ án tốt nghiệp đại học [2] “Cấu trúc liệu giải thuật” – Đinh Mạnh Tường – Nhà xuất khoa học kỹ thuật – Năm 2002 [3] “Mạng thông tin máy tính” – Vũ Duy Lợi – Nhà xuất Thế giới – Năm 2002 [4] “Power and Control in Networked Sensors” – E Jason Riedy, Robert Szewczyk – Năm 2000 [5] Chipcon, CC1010_Data_Sheet, www.chipcon.com [6] Chipcon, CC1010IDE_ User_Manual, www.chipcon.com [7] Chipcon, CC1010_Examples_Readme, www.chipcon.com [8]”Application Note AN017” – K.H.Torvmarrk – www.chipcon.com PHỤ LỤC Chương trình thử nghiệm vấn đề tiết kiệm lượng Viết cho nút mạng cảm nhận với chức cảm nhận truyền liệu #include Ngành Công Nghệ Thông Tin 45 Đồ án tốt nghiệp đại học #include #include #include #include #include #include #include #include // Temperature packet: #define TBC_NODE_ID_LENGTH // word #define TBC_NODE_NAME_LENGTH //20 #define TBC_TEMP_OFFSET (TBC_NODE_ID_LENGTH + TBC_NODE_NAME_LENGTH) #define TBC_TEMP_LENGTH #define TBC_TEMP_OFFSET1 (TBC_NODE_ID_LENGTH + TBC_NODE_NAME_LENGTH + TBC_TEMP_LENGTH) #define TBC_TEMP_LENGTH1 #define TBC_TEMP_OFFSET2 (TBC_TEMP_OFFSET1 + TBC_TEMP_LENGTH1) #define TBC_TEMP_LENGTH2 #define TBC_TEMP_OFFSET3 (TBC_TEMP_OFFSET2 + TBC_TEMP_LENGTH2) #define TBC_TEMP_LENGTH3 #define TBC_TEMP_OFFSET4 (TBC_TEMP_OFFSET3 + TBC_TEMP_LENGTH3) #define TBC_TEMP_LENGTH4 #define TBC_TEMP_OFFSET5 (TBC_TEMP_OFFSET4 + TBC_TEMP_LENGTH4) Ngành Công Nghệ Thông Tin 46 Đồ án tốt nghiệp đại học #define TBC_TEMP_LENGTH5 #define TBC_DATA_LEN (TBC_TEMP_OFFSET5 + TBC_TEMP_LENGTH5) #define PREAMBLE_BYTE_COUNT 18 // Radio related: #define TBC_MY_SPP_ADDRESS #define TBC_RX_INTERVAL 50 // Node registration #define TBC_INVALID_NODE_INDEX 255 #define TBC_UNUSED_NODE_ID #define MAJOR_PERIOD 0x0000 1500//30000:5minutes, 360000:1 hour, 1500: 15sec #define MINOR_PERIOD 100 #define AVG_COUNT 10 // Calibration data RF_RXTXPAIR_CALDATA xdata RF_CALDATA; // Speed related byte xdata waitMultiplier; // The temperature "table": #define TBC_MAX_NODE_COUNT 16 word xdata nodeIDs[TBC_MAX_NODE_COUNT]; byte xdata nodeNames[TBC_MAX_NODE_COUNT][TBC_NODE_NAME_LENGT H]; word xdata nodeLastT[TBC_MAX_NODE_COUNT]; Ngành Công Nghệ Thông Tin 47 Đồ án tốt nghiệp đại học bit initrunflag = 1; unsigned long xdata TMajorPeriod; byte xdata rxDataBuffer[TBC_DATA_LEN]; byte xdata txDataBuffer[TBC_DATA_LEN]; byte xdata avgcnt; bool xdata bSample; // Function prototypes void tbcWait1sec (void); void GetParameters (void); void setupTimer0(); void RFSetupTransmit (void); void SelectClockMode(char iMode); // Unit name, stored in Flash byte code flashUnitName[TBC_NODE_NAME_LENGTH]; // RAM buffer for Flash copy byte xdata ramBufNonAligned[128]; byte xdata received_byte; word xdata counter,counter2; // -// MAIN PROGRAM // -void main (void) { byte xdata n; #ifdef FREQ868 Ngành Công Nghệ Thông Tin 48 Đồ án tốt nghiệp đại học // X-tal frequency: 14.745600 MHz // RF frequency A: 868.277200 MHz Rx // RF frequency B: 868.277200 MHz Tx // RF output power: dBm RF_RXTXPAIR_SETTINGS code RF_SETTINGS = { 0xA3, 0x2F, 0x15, // Modem 0, and 0x75, 0xA0, 0x00, // Freq A 0x58, 0x32, 0x8D, // Freq B 0x01, 0xAB, // FSEP and 0x40, // PLL_RX 0x30, // PLL_TX 0x6C, // CURRENT_RX 0xF3, // CURRENT_TX 0x32, // FREND 0xFF, // PA_POW 0x00, // MATCH 0x00, // PRESCALER }; #endif #ifdef FREQ915 // X-tal frequency: 14.745600 MHz // RF frequency A: 915.027455 MHz Rx // RF frequency B: 915.027455 MHz Tx Ngành Công Nghệ Thông Tin 49 Đồ án tốt nghiệp đại học // RF output power: dBm RF_RXTXPAIR_SETTINGS code RF_SETTINGS = { 0xA3, 0x2F, 0x15, // Modem 0, and 0xAA, 0x80, 0x00, // Freq A 0x5C, 0xF4, 0x02, // Freq B 0x01, 0xAB, // FSEP and 0x58, // PLL_RX 0x30, // PLL_TX 0x6C, // CURRENT_RX 0xF3, // CURRENT_TX 0x32, // FREND 0xFF, // PA_POW 0x00, // MATCH 0x00, // PRESCALER }; #endif #ifdef FREQ433 // X-tal frequency: 14.745600 MHz // RF frequency A: 433.302000 MHz Rx // RF frequency B: 433.302000 MHz Tx // RF output power: dBm RF_RXTXPAIR_SETTINGS code RF_SETTINGS = { 0xA3, 0x2F, 0x0E, // Modem 0, and 0x58, 0x00, 0x00, // Freq A 0x41, 0xFC, 0x9C, // Freq B Ngành Công Nghệ Thông Tin 50 Đồ án tốt nghiệp đại học 0x02, 0x80, // FSEP and 0x60, // PLL_RX 0x48, // PLL_TX 0x44, // CURRENT_RX 0x81, // CURRENT_TX 0x0A, // FREND 0xFF, // PA_POW 0xC0, // MATCH 0x00, // PRESCALER }; #endif //================================================ // Initialize peripherals WDT_ENABLE(FALSE); RLED_OE(TRUE); YLED_OE(TRUE); GLED_OE(TRUE); BLED_OE(TRUE); // Startup macros for speed and low power consumption MEM_NO_WAIT_STATES(); FLASH_SET_POWER_MODE(FLASH_STANDBY_BETWEEN_RE ADS); // ADC setup halConfigADC(ADC_MODE_SINGLE | ADC_REFERENCE_INTERNAL_1_25, CC1010EB_CLKFREQ, 0); RFSetupTransmit(); Ngành Công Nghệ Thông Tin 51 Đồ án tốt nghiệp đại học // Reset the node IDs for (n = 0; n < TBC_MAX_NODE_COUNT; n++) { nodeIDs[n] = TBC_UNUSED_NODE_ID; } // Reset our name buffer for (n = 0; n < TBC_NODE_NAME_LENGTH; n++) { nodeNames[0][n] = 0x00; } // Load name from Flash memcpy(&nodeNames[0][0],flashUnitName,TBC_NODE_NAME_LE NGTH); nodeIDs[0] = TBC_MY_SPP_ADDRESS; // Prepare the id+name part of the packet txDataBuffer[0] = (nodeIDs[0] >> 8) & 0xFF; txDataBuffer[1] = nodeIDs[0] & 0xFF; for (n = 0; n < TBC_NODE_NAME_LENGTH; n++) { txDataBuffer[n + TBC_NODE_ID_LENGTH] = nodeNames[0][n]; } // Configure realtime clock to support wake-up from IDLE Ngành Công Nghệ Thông Tin 52 Đồ án tốt nghiệp đại học halConfigRealTimeClock(15); // Enable realtime clock (implicit: interrupt enable) RTC_RUN(TRUE); SelectClockMode(1); // Loop forever while (TRUE) { if(bSample) { SelectClockMode(0); BLED = LED_ON; GetParameters(); halRFSetRxTxOff(RF_TX, &RF_SETTINGS, &RF_CALDATA); halRFSendPacket(PREAMBLE_BYTE_COUNT, txDataBuffer, TBC_DATA_LEN); halRFSetRxTxOff(RF_OFF, &RF_SETTINGS, &RF_CALDATA); GLED = !GLED; tbcWait1sec(); halRFSetRxTxOff(RF_TX, &RF_SETTINGS, &RF_CALDATA); halRFSendPacket(PREAMBLE_BYTE_COUNT, txDataBuffer, TBC_DATA_LEN); halRFSetRxTxOff(RF_OFF, &RF_SETTINGS, &RF_CALDATA); GLED = !GLED; bSample = 0; BLED = LED_OFF; Ngành Công Nghệ Thông Tin 53 Đồ án tốt nghiệp đại học SelectClockMode(1); } } }//main void tbcWait1sec (void) { halWait (250, CC1010EB_CLKFREQ); halWait (250, CC1010EB_CLKFREQ); halWait (250, CC1010EB_CLKFREQ); halWait (250, CC1010EB_CLKFREQ); } // tbcWait1sec void GetParameters(void) { word xdata temp, temp1, temp2, temp3, temp4, p, i; temp = 0;temp1 = 0; temp2 = 0; temp3 = 0; temp4 = 0; // Indicate transmission for(i=0;i> 8) & 0xFF; txDataBuffer[TBC_TEMP_OFFSET + 1] = temp & 0xFF; txDataBuffer[TBC_TEMP_OFFSET1] = (temp1 >> 8) & 0xFF; txDataBuffer[TBC_TEMP_OFFSET1 + 1] = temp1 & 0xFF; txDataBuffer[TBC_TEMP_OFFSET2] = (temp2 >> 8) & 0xFF; txDataBuffer[TBC_TEMP_OFFSET2 + 1] = temp2 & 0xFF; txDataBuffer[TBC_TEMP_OFFSET3] = (temp3 >> 8) & 0xFF; txDataBuffer[TBC_TEMP_OFFSET3 + 1] = temp3 & 0xFF; } // GetParameters Ngành Công Nghệ Thông Tin 55 Đồ án tốt nghiệp đại học void setupTimer0() { TMajorPeriod = 0; bSample = 0; TH0 = 100; TL0 = 100; TMOD = TMOD | 0x1; //timer0 mode1-16 bit timer INT_ENABLE(INUM_TIMER0, INT_ON); INT_GLOBAL_ENABLE (INT_ON); CKCON = CKCON & 0xf7; IE = IE|0x80; TF0 = 1; } void FlashIntrHandler(void) interrupt INUM_FLASH { INT_SETFLAG(INUM_FLASH, INT_CLR); return; } //timer 10ms void TIMER0_ISR() interrupt INUM_TIMER0 { TF0 = 0; TH0 = 0xd0; TL0 = 0; TR0 = 1; Ngành Công Nghệ Thông Tin 56 Đồ án tốt nghiệp đại học if(TMajorPeriod==0) { bSample = 1; TMajorPeriod = MAJOR_PERIOD+1; } TMajorPeriod ; } // Setup RF for RX void RFSetupTransmit (void) { halRFCalib(&RF_SETTINGS, &RF_CALDATA); // Turn on RF for TX halRFSetRxTxOff(RF_TX, &RF_SETTINGS, &RF_CALDATA); INT_ENABLE(INUM_RF, INT_OFF); // Select RF bytemode RFCON |= 0x01; // Enable RF interrupt based on bytemode RF_SET_BYTEMODE(); // Setup preamble configuration RF_SET_PREAMBLE_COUNT(16); RF_SET_SYNC_BYTE(RF_SUITABLE_SYNC_BYTE); // Make sure avg filter is free-running + 22 baud settling time Ngành Công Nghệ Thông Tin 57 Đồ án tốt nghiệp đại học MODEM1=(MODEM1&0x03)|0x24; // Reset preamble detection PDET &= ~0x80; PDET |= 0x80; } //==================================================== void SelectClockMode(char iMode) { if(iMode==0) { // Enable high speed XOSC, switch clock source, then disable 32kHz XOSC XOSC_ENABLE(TRUE); MAIN_CLOCK_SET_SOURCE(CLOCK_XOSC); X32_ENABLE(FALSE); PCON = PCON & 0xfe; //disable idle mode } else if(iMode==1) { // Enable 32kHz oscillator, wait 0.5s to stabilize, // then switch clock source, then disable high-speed XOSC X32_INPUT_SOURCE(X32_USING_CRYSTAL); X32_ENABLE(TRUE); halWait(250, CC1010EB_CLKFREQ); halWait(250, CC1010EB_CLKFREQ); MAIN_CLOCK_SET_SOURCE(CLOCK_X32); XOSC_ENABLE(FALSE); Ngành Công Nghệ Thông Tin 58 Đồ án tốt nghiệp đại học PCON = PCON | 0x01; //enable idle mode } } // ISR (interrupt service routine) for RTC, // The interrupt must be cleared by software void isr_rtc()// interrupt INUM_RTC { bSample = 1; INT_SETFLAG(INUM_RTC, INT_CLR); RLED = !RLED; } Ngành Công Nghệ Thông Tin 59

Ngày đăng: 06/11/2016, 20:52

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan