Luận văn nhằm xây dựng mô hình giao tiếp các thiết bị dùng mạng CAN. Các thiết bị được đặt ở xa nhau và tương tác với nhau. Mỗi thiết bị đọc các thông số về môi trường như: nhiệt độ, độ sáng, … Đồng thời cũng có khả năng tự giải quyết vấn đề khi xảy ra trường hợp khẩn cấp như rò rỉ gas bằng cách nhắn tin và gọi điện khẩn cấp cho số điện thoại đặt sẵn, thiết bị này cũng thông báo cho các thiết bị khác để giải quyết vấn đề cục bộ như: nháy đèn báo hiệu có sự cố, bật quạt thông gió, …
Chương 1: Tổng quan về đề tài 1.1 Tình hình nghiên cứu trong và ngoài nước 1.1.1 Về tình hình trong nước Giám sát và điều khiển thiết bị từ xa là ý tưởng không mới, đã có rất nhiều công ty hay nhóm kỹ sư áp dụng các công nghệ về mạng như: PLC (Power Line Communication), X10, Zigbee, Ethernet TCP/IP, … để giám sát và điều khiển từ xa các thiết bị trong nhà. Mà lớn hơn bao quát hơn đó là hệ thống nhà thông mình có sự tương tác giữa các thiết bị trong nhà và có thể theo dõi điều khiển từ xa, đồng thời các thiết bị có thể tự cảnh báo cho người dùng trong các trường hợp khẩn cấp. Điển hình xin nêu ra hệ thống nhà thông minh HomeOn của nhóm kỹ sư dự thi Giải thưởng nhân tài đất Việt năm 2011. Là một hệ thống hoàn thiện về các chức năng giám sát điều khiển tự cảnh báo, … Về chức năng xin trích dẫn lời bài viết từ báo báo Dân Trí khi giới thiệu hệ thống: - An toàn: HomeOn có thể cảnh báo các mối nguy hiểm như: cháy, đột nhập trái phép, kính vỡ, rò gas, cửa mở. Các cảnh báo được đưa ra chuông báo động, hoặc tự động gọi điện, gửi SMS tới các số điện thoại đặt trước. Hệ thống được thiết kế với mưc độ bảo vệ cao, ngay cả khi điện lưới AC hoặc đường điện thoại bị cắt thì hệ thống với chức năng báo động vẫn hoạt động bình thường.Với camera IP tích hợp, nội dung được lưu trữ tại Server từ xa không lo bị mất hoặc phá hủy. Việc giám sát ngôi nhà được thực hiện tại chỗ hay từ xa bằng PC, Tablet, smart phone thông qua mạng internet, 3G. - Điều khiển các thiết bị điện tại chỗ hoặc từ xa, điều khiển đơn chiếc hoặc nhiều thiết bị cùng lúc với hàng trăm kịch bản. Được trang bị các công nghệ điều khiển không dây như ZigBee, Wifi, việc lắp đặt điều khiển các thiết bị điện rất dễ dàng. Có thể điều khiển tức thì hay tự động theo chương trình, ví dụ tưới cây tự động, tự động làm mát ngôi nhà bằng cách tưới nước mái khi nhiệt độ cao, hạn chế việc sử dụng máy điều hòa. Các thiết bị có thể điều khiển theo kịch bản như: nghe nhạc ( bật một số đèn, đóng rèm cửa ), xem phim, của mở ( tự động bật đèn ) cũng có thể điều khiển từ xa qua mạng Internet, 3G nếu được phép. Các thiệt bị sử dụng nhiều điện năng như điều hòa, bình nóng lạnh sẽ được giám sát và tự động điều chỉnh về chế độ tiết kiệm nhất, sẽ được tắt khi chủ nhà quên không tắt. - Quản lý tiết kiệm năng lượng: việc sử dụng điện, nước, gas được hiển thị tức thời giúp chủ nhân biết được tình hình sử dụng năng lượng hiện tại. Các sự cố như rò điện, rò gas, rò nước hoặc các hành vi sử dụng năng lượng vượt mức cho phép cũng sẽ được cảnh báo kịp thời bằng cách gửi ra các thông điệp trên máy tính hoặc điện thoại giúp chủ nhân kịp thời thay đổi các hành vi sử dụng năng lượng. - Các tính năng cao cấp: chăm sóc sức khỏe từ xa, quản lý trẻ em, dịch vụ quảng cáo. Mô hình thành phố thông minh: quản lý hành chính tự động, quản lý năng lượng, điện, nước tập trung giúp giảm rất nhiều chi phí nhân công - Đặc biệt hệ thống giúp ngôi nhà tiết kiệm năng lượng hơn, theo tính toán sơ bộ, điện tiêu thụ sẽ tiết kiệm khoảng 15% đến 35% hàng tháng. Một số hình ảnh về trang web điều khiển từ xa được HomeOn cho phép chạy demo: Hình 1.1: Hình ảnh trang chủ đăng nhập Hình 1.2: Trang quản lý chung Hình 1.3: Trang quản lý một phòng (phòng khách) Hệ thống được xây dựng hoàn chỉnh, quy mô lớn nên web server của hệ thống có nhiều nhiệm vụ bao gồm việc lưu trữ, giám sát, điều khiển, … là một máy chủ. Còn đề tài đang thực hiện ở quy mô nhỏ, web server chỉ có chức năng lưu trữ giới hạn, và điều khiển nên được tích hợp chạy trên vi điều khiển. Về mặt chức năng hạn chế, độ ổn định thì không cao nhưng rõ ràng về mặt giá thành đảm bảo. Hệ thống mà đề tài nhắm đến chỉ thực hiện ở quy mô một căn phòng. 1.1.2 Về tình hình ngoài nước - Có khá nhiều demo về embedded web server được nhúng lên các dòng chip 8 bit, 16 bit (thông qua module chuyển đổi Ethernet sang truyền thông cơ bản khác như SPI, UART, …) hoặc vi xử lý 32 bit mà điển hình là PIC32 và ARM thực hiện việc giám sát điều khiển từ xa một thiết bị. Đề tài giới thiệu 2 demo mà đề tài có tham khảo trong lúc thực hiện Application note của hãng Atmel sử dụng vi xử lý AVR 8 bit + CS8900 (10Base- T Embedded Ethernet Controller) thực hiện việc điều khiển các LED từ xa thông qua trang web được lập trình trên vi xử lý AVR 8 bit và CS8900 làm nhiệm vụ chuyển đổi Ethernet 10 Mbps sang dạng bus dữ liệu song song. Hình 1.4: Phần giới thiệu về demo cua hãng Atmel Hình 1.5: Phần cứng của demo hãng Atmel Hình 1.6: Mô hình của demo hãng Atmel Demo: “Web Controlled Arduino LED” được chia sẻ trên trang web của cộng đồng Arduino sử dụng board Arduino Duemilanove (vi xử lý Atmega – 8 bit) và board Ethernet shield (dạng board chuyển đổi Ethernet sang chuẩn giao tiếp khác mà người sử dụng Arduino hay dùng). Demo thực hiện việc điều khiển LED RGB theo sự cài đặt trên trang web của người truy cập. Một số hình ảnh về demo này: Hình 1.7: Giao diện truy cập điều khiển LED RGB. Hình 1.8: Cách làm việc của demo web control dựa trên nền tảng Arduino 1.2 Phân tích nhiệm vụ luận văn Luận văn nhằm xây dựng mô hình giao tiếp các thiết bị dùng mạng CAN. Các thiết bị được đặt ở xa nhau và tương tác với nhau. Mỗi thiết bị đọc các thông số về môi trường như: nhiệt độ, độ sáng, … Đồng thời cũng có khả năng tự giải quyết vấn đề khi xảy ra trường hợp khẩn cấp như rò rỉ gas bằng cách nhắn tin và gọi điện khẩn cấp cho số điện thoại đặt sẵn, thiết bị này cũng thông báo cho các thiết bị khác để giải quyết vấn đề cục bộ như: nháy đèn báo hiệu có sự cố, bật quạt thông gió, … Các thiết bị trong mạng được giám sát cục bộ bằng thiết bị giao tiếp người dùng. Thiết bị có menu trực quan, dễ điều khiển cung cấp tất cả các thông tin về các thiết bị trong mạng, đồng thời cũng cho phép điều khiển các tải nếu đăng nhập đúng bằng thẻ (tag) RFID. Các chức năng giao tiếp với máy tính, quản lý người dùng, thay đổi số điện thoại khẩn cấp cũng được trang bị để tiện lợi hơn cho người sử dụng Mạng CAN có thể hoạt động độc lập với web server, thiết bị cho phép người dùng giám sát trạng thái, điều khiển từ xa các thiết bị thông qua Internet. Với giao diện đơn giản, trực quan không khó để người dùng có thể thao tác và sử dụng. Trang web cũng được thiết kế để biểu diễn các thông tin trên đồ thị thời gian thực vừa sinh động vừa dễ theo dõi. Mô hình tổng quát của đề tài: Internet Main Web server LAN-PC Smart phone Wifi router Ethernet TCP/IP CAN Device 1 CAN Device 3 CAN Device 5 CAN Access Point CAN Device 2 CAN Device 4 ADSL Home CAN Device 5 Internet-PC Hình 1.10: Mô hình tổng quát của đề tài 1.2.1 Các vấn đề cần giải quyết trong đề tài - Xây dựng mô hình mạng CAN về phần cứng - Xây dựng giải thuật giao tiếp trong mạng CAN giữa các thiết bị với nhau. - Xây dựng giải thuật giao tiếp giữa mạng CAN với web server. - Xây dựng giải thuật HTTP cho web server - Lập trình một trang web có khả năng truy vấn dữ liệu liên tục, đồng thời cũng cập nhật các thông tin từ dữ liệu đó lên. - Thực hiện phần cứng các module cảm biến: nhiệt độ, độ sáng, cảm biến gas báo động. Module rờ le đóng ngắt các tải AC. Module LCD 20x4 hiển thị menu. Module RFID để đăng nhập hệ thống. - Thực hiện phần cứng các thiết bị bao gồm: các thiết bị đọc cảm biến và điều khiển đóng ngắt tải, thiết bị lưu trữ và truy cập, thiết bị nhúng embedded web server. - Viết phần mềm giao diện người dùng bằng LabView 2010 giao tiếp với thiết bị giao tiếp người dùng (UI Device). 1.2.2 Hướng giải quyết vấn đề - Về mạng CAN: tham khảo thông tin, tài liệu về CAN Network trên trang web của CiA, Wikipedia, … Tài liệu về SCADA, mạng công nghiệp của thầy Trương Đình Châu để đưa ra mô hình phần cứng thỏa các điều kiện. Mô hình mạng sau đó được kiểm tra tính đúng đắn so với lý thuyết. Giải thuật giao tiếp được viết trên nền vi điều khiển LM3S8962 có hỗ trợ CAN 2.0 A/B, giải thuật được tạo ra nhờ tham khảo mô hình mạng có sử dụng CAN là OBD II. - Về giải thuật HTTP cho web server, đề tài áp dụng một TCP/IP stack (một bộ giao thức TCP/IP viết trên nền C) là lwIP. Stack này hỗ trợ rất mạnh các giao thức TCP, UDP và các giao thức trên nền của TCP và UDP trong đó có HTTP. - Các phần cứng được thực hiện trên phần mềm vẽ mạch Altium, sơ đồ mạch có tham khảo từ thiết kế đề nghị của nhà sản xuất vi điều khiển Texas Instrument. Các module cảm biến và rờ le được thiết kế lại để phù hợp hơn. - Giao diện phần mềm viết trên PC với LabView 2010, các tài liệu tham khảo được lấy từ trang web chính hãng tạo ra LabView là National Instrument. 1.2.3 Phạm vi của luận văn Nghiên cứu đưa ra mô hình mạng phần cứng của mạng CAN giao tiếp các thiết bị. Nghiên cứu và đưa ra giải thuật giao tiếp các thiết bị trong mạng CAN, giữa mạng CAN với web server và giữa web server với trình duyệt web. Thực hiện mô hình đã nghiên cứu với các thiết bị: 4 thiết bị đọc cảm biến nhiệt độ, độ sáng và đóng ngắt tải bằng rờ le; 1 thiết bị báo động sự cố xì gas hoặc khói có trang bị module GSM SIM908; 1 thiết bị giao tiếp người dùng có màn hình LCD 20x4 để hiển thị và module RFID để đăng nhập; 1 thiết bị nhúng web server. Tất cả các phần trên nếu sử dụng vi xử lý đều dùng ARM Cortex M3 LM3S8962 của hãng Texas Instrument. Lập trình một trang web đơn giản ứng dụng AJAX. Thực hiện phần mềm lập trình trên LabView 2010 của hãng National Instrument. Chương 2. Tổng quan về kiến trúc lõi ARM Cortex M và dòng vi xử lý Stellaris ARM Cortex M3 của hãng Texas Instrument 2.1 Giới thiệu chung Dòng ARM Cortex là một bộ xử lí thế hệ mới đưa ra một kiến trúc chuẩn cho nhu cầu đa dạng về công nghệ. Không giống nhu các chip ARM khác, dòng Cortex là một lõi xử lí hoàn thiện, đưa ra một chuẩn CPU và kiến trúc hệ thống chung. Dòng Cortex gồm có 3 phân nhánh chính: dòng A dành cho các ứng dụng cao cấp, dòng R dành cho các ứng dụng thời gian thực nhu các đầu đọc và dòng M dành cho các ứng dụng vi điều khiển và chi phí thấp. Cortex-M3 đưa ra một lõi vi điều khiển chuẩn nhằm cung cấp phần tổng quát, quan trọng nhất của một vi điều khiển bao gồm: hệ thống ngắt (interrupt system), SysTick timer (đuợc thiết kế cho hệ điều hành thời gian thực), hệ thống kiểm lỗi (debug system) và memory map. Không gian địa chỉ 4Gbyte của Cortex-M3 đuợc chia thành các vùng cho mã chương trình, SRAM, ngoại vi và ngoại vi hệ thống. Cortex-M3 đuợc thiết kế dựa theo kiến trúc Harvard (bộ nhớ chuong trình và bộ nhớ dữ liệu tách biệt với nhau), và có nhiều bus cho phép thực hiện các thao tác song song với nhau, do đó làm tăng hiệu suất của chip. Dòng Cortex duợc thiết kế hỗ trợ tập lệnh ARM Thumb-2, tập lệnh này duợc pha trộn giữa tập lệnh 16 và 32bit, nhằm dạt duợc hiệu suất cao của của tập lệnh ARM 32-bit với mật dộ mã chuong trình tối uu của tập lệnh Thumb 16-bit. Tập lệnh Thumb-2 duợc thiết kế dặc biệt dành cho trình biên dịch C/C++, tức là các ứng dụng dựa trên nền Cortex hoàn toàn có thể duợc viết bằng ngôn ngữ C mà không cần dến chuong trình khởi dộng viết bằng assembler nhu ARM7 và ARM9. Hình 2.1: Kiến trúc vi xử lý dùng lõi ARM Cortex M3 2.2 Một số ưu điểm nổi trội Hiệu suất cao: hỗ trợ kiến trúc tập lệnh Thumb-2, giúp nó hoạt động hiệu quả hơn 70% cho mỗi MHz so với một bộ vi xử lý ARM7TDMI-S thực thi với tập lệnh Thumb, và hiệu quả hơn 35% so với bộ xử lý ARM7TDMI-S thực thi với tập lệnh ARM. Dễ sử dụng, phát triển ứng dụng nhanh chóng, hiệu quả: Bộ vi xử lý có mô hình lập trình dựa trên ngăn xếp đã được đơn giản hoá để tương thích với kiến trúc ARM truyền thống nhưng tương tự với hệ thống đã được triển khai trên kiến trúc 8 và 16-bit, giúp việc chuyển tiếp đến kiến trúc 32-bit dễ dàng hơn. Ngoài ra tập lệnh ARM Thumb-2 được thiết kế đặc biệt dành cho trình biên dịch C/C++ nên ứng dụng được viết không cần thông qua bất cứ chương trình assembler nào (chương trình startup). Hoạt động và sử dụng năng lượng hiệu quả hơn: Bảng 2.1: So sánh giữa dòng ARM7 cũ và lõi Cortex M3 mới Đơn vị bảo vệ bộ nhớ (MPU): MPU là một thành phần tùy chọn của bộ vi xử lý Cortex-M3, có thể nâng cao độ tin cậy của hệ thống nhúng bằng cách bảo vệ các dữ liệu quan trọng được hệ điều hành sử dụng khỏi các ứng dụng khác, tách biệt độc lập các tác vụ đang thực thi bằng cách không cho phép truy cập vào dữ liệu của nhau, vô hiệu hoá quyền truy cập vào một số vùng nhớ, cho phép các vùng nhớ được định nghĩa là chỉ đọc (read only) và phát hiện các truy cập bộ nhớ có thể phá vỡ hệ thống. Hỗ trợ lập trình Gỡ lỗi (Debug) và theo vết (Trace): Debug hệ thống dựa trên bộ vi xử lý Cortex-M3 được thực hiện thông qua DAP (Debug Access Port), SWD (Serial Wire Debug) sử dụng 2 đường tín hiệu hoặc SWJ-D (Serial Wire JTAG Debug) sử dụng giao thức JTAG. 2.3 Dòng vi xử lý Stellaris ARM Cortex M3 của hãng Texas Instrument (TI) và LM3S8962 2.3.1 Vi xử lý Stellaris ARM Cortex M3 – TI - Các dòng vi điều khiển Stellaris – ARM ® ™ Cortex-M3 đầu tiên - mang lại những ứng dụng vi điều khiển nhúng hiệu suất cao 32-bit nhưng với chi phí tương đương với các vi điều khiển kế thừa 8 bit và 16bit. [...]... thay thế cho Ethernet trong nhiều cấu hình mạng Hình 3.24: Sơ đồ ý tưởng hình thành Ethernet 3.3.2 So sánh mô hình OSI và mô hình TCP/IP Mô hình OSI: Mô hình OSI cung cấp một phương thức chuẩn hay mô hình tham khảo dựa trên đó mà ta có thể xây dựng phương thức truyền giữa 2 mạng bất kỳ trong mạng Hình 3.25: Mô hình OSI và TCP/IP Mô hình TCP/IP : gồm có 4 lớp - Lớp mạng (network) Là sự cộng gộp của... lĩnh trong ngành công nghiệp Ô tô Hình 3.5: Ứng dụng mạng CAN trong điều khiển xe - CAN High speed dùng điều khiển động cơ và thắng CAN Lowspeed dùng điều khiển những thiết bị khác như kiếng hậu, light… 3.2.2 Tổng quan về giao thức CAN Hình 3.6: Sơ đồ mạng CAN CAN sử dụng cáp truyền đơn giản, sự truyền dữ liệu được thực hiện nhờ cặp dây truyền tín hiệu vi sai( CANH và CANL) Đường dây bus kết thúc bằng... 120 ohm (108 ohm – 132 ohm) Mạng CAN được tạo thành bởi một nhóm các node Mỗi node có thể giao tiếp với bất kỳ node nào khác trong mạng Việc giao tiếp được thực hiện bằng việc truyền và nhận cá gói dữ liệu – message Mỗi message trong mạng CAN được gán một ID quy định mức độ ưu tiên của message đó Hình 3.7: Một nút mạng CAN Sự truyền nhận dữ liệu trong mạng CAN: - Truyền, nhận các gói dữ liệu - message... message Điều này cho phép phân tích response time của từng message (quan trọng trong việc thiết kế hệ thống nhúng thời gian thực) 3.2.3 Tiêu chuẩn ISO11898 Mô hình OSI (Open System Interconnection) : Đây là mô hình được dùng trong các giao thức mạng, mô hình OSI bao gồm 7 lớp, được định nghĩa như hình sau: Hình 3.8: Mô hình OSI Tiêu chuẩn ISO11898 định nghĩa 2 lớp Data link và Physical như sau: Data Link... bus 2 dạng truyền: Truyền CAN low speed :125 kb/s Truyền CAN high speed :125 kb/s tới 1Mb/s CAN low speed CAN high speed Tốc độ 125kb/s 125kb/s đến 1Mb/s Số node trên bus 2 đến 20 2 đến 30 Dominant CAN H = 4V, CAN L = 1V CAN H = 3.25, CAN L = 1.5V Recessive CAN H = 1.75, CAN L = 3.75 CAN H = 2.5, CAN L = 2.5 Điện áp cấp 5V Bảng 3.1: So sáng 2 dạng truyền của CAN 5V Hình 3.14: Mức điện áp bit -... bộ tín hiêu bit PMA và MDI không được định nghĩa trong giao thức CAN, người thiết kế có thể chọn lựa tùy ý các driver/receiver sao cho thỏa các yêu cầu từ PS 2 lớp PMA và MDI thường không có trong ngoại vi CAN của vi điều khiển, nó phụ thuộc vào thiết bị transceiver ( ở đồ án này xài CAN transceiver SN65HVD251 của TI) Hình 3.9: Các lớp layer giao tiếp Lớp vật lý( Physical layer): - None-return-to-zero... Hỗ trợ tất cả các tính năng cơ bản của vi xử lý, cũng như các module truyền thông cơ bản: SSI, I2C, UART Dòng LM3S8xxx còn được TI trang bị module giao tiếp CAN và Ethernet Controller Area Network (CAN) - CAN giao thức phiên bản 2.0 A/B - Tốc độ bit lên đến 1 Mbps - 32 bản tin với nhận dạng mask cá nhân - Ngắt mask - Vô hiệu hoá chế độ tự động gửi lại cho ứng dụng Time-Triggered CAN (TTCAN) - Lập trình... Overload frame: dùng khi frame bị tràn bộ đệm 3.2.5 Truyền nhận message Hình 3.22: Sơ đồ khối truyền CAN message Hình 3.23: Sơ đồi khối nhận CAN message 3.2.6 Xử lí lỗi Khi truyền một frame trên bus, lỗi truyền có thể ảnh hưởng đến hoạt động của các nút trên bus Lỗi có thể đến từ một nút, làm cho mạng không còn hoạt động chính xác Vì vậy, nhiều cách phát hiện lỗi được sử dụng trong CAN Bit Error:... cơ bản đã nêu ra ở trên, người sử dụng có thể tìm các thông tin cụ thể được hỗ trợ tại trang web chính thức của FreeRTOS là: freertos.org Các hàm kể trên đều có đường link đến thẻ API Reference trên trang chủ của FreeRTOS 3.2 Giao thức CAN (Control Network Area) 3.2.1 Giới thiệu Controller Area Network (CAN) là giao tiếp nối tiếp hỗ trợ mạnh cho các cho các hệ thống điều khiển thời gian thực phân bố (distributed... hơn sẽ mất sự cạnh tranh với nút ưu tiên cao hơn Hình 3.16: Giải quyết tranh chấp trên bus 3.2.4 CAN Frame Hình 3.17: Khung truyền Bốn loại Frame: Data frame: dùng khi node muốn truyền dữ liệu tới các node khác Remote frame : dùng để yêu cầu truyền data frame Error frame và overload frame: dùng trong việc xử lý lỗi Standard frame: Hình 3.18: CAN standard frame 1 bit start . server LAN-PC Smart phone Wifi router Ethernet TCP/IP CAN Device 1 CAN Device 3 CAN Device 5 CAN Access Point CAN Device 2 CAN Device 4 ADSL Home CAN Device 5 Internet-PC Hình 1.10: Mô hình tổng. văn Nghiên cứu đưa ra mô hình mạng phần cứng của mạng CAN giao tiếp các thiết bị. Nghiên cứu và đưa ra giải thuật giao tiếp các thiết bị trong mạng CAN, giữa mạng CAN với web server và giữa web. đề tài - Xây dựng mô hình mạng CAN về phần cứng - Xây dựng giải thuật giao tiếp trong mạng CAN giữa các thiết bị với nhau. - Xây dựng giải thuật giao tiếp giữa mạng CAN với web server. - Xây