Sơ đồ khối của IC ổn áp nguồn LM7805

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu, thiết kế, chế tạo hệ thống điều khiển thiết bị điện từ xa bằng tin nhắn SMS và ứng dụng trong lĩnh vực cơ điện tử (Trang 52)

Khối điều khiển trung tâm làm nhiệm vụ nhận các tin nhắn điều khiển để xử lý nội dung tin nhắn, sau đó thực hiện lệnh điều khiển theo tin nhắn nhận đƣợc để đƣa ra các lệnh điều khiển tƣơng ứng tới các trạm điều khiển tầng qua mạng RS485 Modbus- RTU, đồng thời nhận tín hiệu phản hồi trạng thái thiết bị từ các trạm điều khiển tầng để gửi tin nhắn báo cáo trạng thái thiết bị điện đến thuê bao điều khiển thông qua khối giao tiếp GSM sử dụng mô-đun SIM900.

Hình 2. 9 : M ạch ng uyê n lý kh ối đ iề u khi ển tru ng tâm

Hình 2.10: Khối điều khiển trung tâm sau khi lắp ráp linh kiện

2.3.3. Khối điều khiển tầng

2.3.3.1. Vi điều khiển PIC-16F887

Vi điều khiển PIC16F887 sử dụng công nghệ CMOS, nano-Watt có bộ nhớ Flash 8 bit. Chi tiết kỹ thuật của chip đƣợc cho trong các tài liệu có sẵn của hãng MicroChip. Dƣới đây chỉ liệt kê một số đặc điểm chính của chip.

- PIC16F887 là vi xử lý RISC chất lƣợng cao, do đó tất cả các lệnh (trừ lệnh rẽ nhánh) trong số 35 lệnh đƣợc thực hiện chỉ trong 1 chu kỳ nhịp đồng hồ.

- Tốc độ hoạt động DC 20 MHz, chu kỳ nhịp từ DC 200 ns.

- Vi điều khiển có những đặc điểm ghép nối ngoại vi đáng chú ý sau: - Có nguồn dòng cao cho phép ghép nối trực tiếp các đèn LED. - Có 2 bộ so sánh tƣơng tự.

- Có bộ biến đổi A/D 10 bit, 11/14 kênh.

- Có Timer0 là bộ đếm 8-bit khả trình, Timer1 là bộ đếm 16-bit, Timer2 là bộ đếm 8-bit.

- Có mô-đun điều chế độ rộng xung PWM 10-bit, tần số cực đại 20 kHz.

- Có mô-đun giao tiếp nối tiếp EUSART hỗ trợ các chuẩn RS232, RS485 và LIN 2.0.

Hình 2.11: Sơ đồ chân vi điều khiển PIC16F887

Hình 2.12: Sơ đồ khối PIC16F887

2.3.3.2. Thiết kế và thi công khối điều khiển tầng

suất. Các bộ điều khiển tầng đƣợc đặt tại hiện trƣờng nơi mà các thiết bị điện đƣợc lắp đặt (các phòng ở, phòng họp, nhà kho, tầng hầm...). Mạch điều khiển sử dụng vi điều khiển PIC16F887 làm trung tâm. Một màn hiển thị số liệu bằng tinh thể lỏng LCD cho phép hiện các giá trị trạng thái của thiết bị đƣợc điều khiển. Chƣơng trình phần mềm xử lý lệnh điều khiển đƣợc nhúng vào bộ nhớ vi điều khiển cho phép bộ điều khiển thực hiện đủ các chức năng điều khiển do khối trung tâm yêu cầu. Các bộ điều khiển này thông tin với bộ điều khiển trung tâm qua các kênh thông tin có dây dẫn với chuẩn RS485 (cho phép truyền nhận thông tin bán song công với khoảng cách tối đa lên tới 1.200 m) và giao thức hỏi vòng Modbus–RTU. Công nghệ này cho phép thỏa mãn yêu cầu truyền thông trong tòa nhà với tốc độ thông tin cao và số nút mạng tham gia có thể lên tới vài trăm địa chỉ nếu sử dụng thêm bộ lặp (Repater).

Chức năng của bộ điều khiển tầng

- Nhận lệnh điều khiển từ khối trung tâm, xử lý và đƣa ra tín hiệu điều khiển đóng/ngắt các thiết bị điện, đồng thời cũng có khả năng hiển thị trạng thái các thiết bị lên lên màn hình hiển thị LCD.

- Kiểm tra trạng thái các thiết bị điện, gửi thông tin về khối trung tâm qua đƣờng dẫn truyền thông RS485 Modbus-RTU để khối trung tâm gửi tin nhắn tới ngƣời sử dụng khi có nhu cầu truy vấn kiểm tra trạng thái các thiết bị hiện tại.

Bộ chuyển đổi UART-232/RS-485 dùng chip MAX485

Giao diện chuyển đổi thông tin giữa các chuẩn ghép nối trong hệ thống đóng một vai trò rất quan trọng. Trong quá trình thực hiện luận văn, tác giả đã quyết định sử dụng kênh thông tin chủ yếu là RS485 với giao thức truyền thông Modbus–RTU trong khi vi điều khiển chỉ có sẵn các đầu ra ghép nối theo chuẩn RS232. Vì vậy, một nhiệm vụ quan trọng là phải tự thiết kế, chế tạo các bộ chuyển đổi tín hiệu từ RS232 sang RS485 và ngƣợc lại.

Qua nghiên cứu, tác giả đã sử dụng chip ghép nối MAX485 của hang Maxim để thực hiện công việc này. Vi mạch MAX485 có chức năng nhƣ một bộ thu–phát (Tranceiver) có đƣờng truyền nhận vi sai dùng cho thông tin song công (hai chiều). Nó đƣợc thiết kế cho các đƣờng truyền cân bằng và đáp ứng các chuẩn ANSI TIA/EIA- 422-B và 485-A.

Hình 2. 15 : M ạch n guy ên lý b ộ đi ều khi ển t ầng

Hình 2.16: Bộ điều khiển tầng sau khi chế tạo

2.3.4. Khối công suất

Sau khi xử lý dữ liệu, các bộ điều khiển tầng sẽ xuất ra các lệnh điều khiển tới các bộ chấp hành đóng/ngắt thiết bị. Một bộ chấp hành nhƣ vậy cần đƣợc thiết kế theo các yêu cầu sau:

- Mỗi lối ra phải đảm bảo điều khiển đóng/ngắt một rơle có dòng cực đại 10A, hoạt động với thế xoay chiều một pha 220 VAC.

- Mỗi bộ chấp hành có 8 cổng ra (có thể điều khiển 8 thiết bị).

- Có các đèn LED hiển thị trạng thái của các thiết bị điện đƣợc điều khiển. Mạch công suất sử dụng IC đệm dòng ULN2803 để điều khiển các rơle đóng/ngắt các thiết bị điện. ULN2803 gồm 8 cặp Transistor mắc theo kiểu Darlington cho phép tải đƣợc dòng lên đến 500mA. Đầu ra của ULN2803 có khả năng chịu đƣợc điện áp cao lên đến 50V và bên trong IC đã có các Diode bảo vệ vi điều khiển. Vì vậy, chúng ta có thể sử dụng để điều khiển động cơ, rơle, bóng đèn, quạt, điều hoà và nhiều thiết bị khác mà không sợ dòng điện cảm ứng gây nhiễu và hƣ hỏng vi điều khiển.

Hình 2. 18 : M ạch n guy ên lý kh ối c ông su ất

Chƣơng 3. THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN

3.1. Giới thiệu phần mềm lập trình PIC C Complier

Chƣơng trình nhúng điều khiển đƣợc viết với trình dịch PIC C Complier. PIC C Compiler là ngôn ngữ lập trình bậc cao đƣợc sử dụng để lập trình cho PIC và đƣợc viết trên nền C. Chƣơng trình viết trên PIC C tuân thủ theo cấu trúc của ngôn ngữ lập trình C. Trình biên dịch của PIC C Compiler sẽ chuyển chƣơng trình C sang dạng mã Hexa (*.hex) để nạp vào bộ nhớ của PIC. Quá trình chuyển đổi đƣợc minh hoạ nhƣ sau:

File.c

(Chƣơng trình điều khiển viết cho Vi điều khiển PIC sử dụng ngôn ngữ lập trình C) File.hex (Chƣơng trình dƣới dạng mã Hex nạp cho Vi điều khiển PIC) Biên dịch Thiết bị nạp chƣơng trình Vi điều khiển PIC

Hình 3.1: Quy trình viết và nạp chƣơng trình cho Vi điều khiển

PIC C Compiler gồm có 3 phần riêng biệt là PCB, PCM và PCH. PCB dùng cho họ MCU với bộ lệnh 12-bit, PCM dùng cho họ MCU với bộ lệnh 14-bit và PCH dùng cho họ MCU với bộ lệnh 16 và 18-bit. Mỗi phần khác nhau trong PIC C Compiler chỉ dùng đƣợc cho họ MCU tƣơng ứng mà không cho phép dùng chung (ví dụ không thể dùng PCM hoặc PCH cho họ MCU 12-bit đƣợc mà chỉ có thể dùng PCB cho MCU 12- bit).

Chƣơng trình đƣợc viết trên PIC C Compiler gồm bốn phần chính. Trong mỗi phần sẽ bao gồm nhiều chi tiết để tạo nên chƣơng trình một chƣơng trình hoàn chỉnh. Cấu trúc chƣơng trình nhƣ sau:

- Phần ghi chú: Ở phần ghi chú, ngƣời lập trình sẽ ghi những chú thích cần thiết

cho chƣơng trình. Phần chú thích đƣợc bắt đầu từ dấu // (dung cho chú thích có chiều dài một dòng) hoặc cặp ký tự /* và */ (dùng cho một khối chú thích gồm nhiều dòng). Khi biên dịch, trình biên dịch sẽ bỏ qua phần ghi chú. Phần ghi chú có thể xuất hiện bất cứ chỗ nào trong chƣơng trình thậm chí có thể đặt ngay sau hàng mã lệnh để chú thích cho hàng lệnh.

- Chỉ định các tiền xử lý: Phần này sẽ chỉ định các tiền xử lý đƣợc sử dụng khi

biên dịch. Các tiền xử lý đƣợc bắt đầu bằng dấu #.

- Khai báo biến dữ liệu: Đây là phần khai báo hằng, khai báo biến và kiểu dữ

- Định nghĩa các hàm: Định nghĩa các hàm (Function) đƣợc dùng để thực hiện

giải thuật của chƣơng trình.

3.2. Tập lệnh AT và tin nhắn với định dạng PDU

3.2.1. Tập lệnh AT cơ bản

Để gửi nhận SMS, cần kết nối thiết bị mô-đun GSM vào cổng giao tiếp theo chuẩn RS232 của thiết bị điều khiển. Các thiết bị này trao đổi dữ liệu với nhau thông qua tập lệnh AT (Attention Commands) chuẩn. Tuy nhiên, tuỳ vào thiết bị của nhà sản xuất mà mỗi mô-đun có một tập lệnh AT mở rộng khác nhau nhằm tối ƣu và nâng cao khả năng kết nối của thiết bị GSM với các thiết bị điều khiển.

Bảng 3.1: Một số lệnh AT cơ bản

Lệnh AT Chú thích

AT Kiểm tra kết nối GSM

+CMGF Chọn chế độ làm việc (TEXT hoặc PDU Mode)

+CPMS Chọn lƣu trữ

+CSMP Thiết đặt thông số trong chế độ văn bản +CMGR Đọc SMS xác định từ thiết bị

+CMGL Đọc tất cả SMS

+CMGS Gửi SMS

+CMGW Ghi SMS vào bộ nhớ

+CMSS Gửi SMS đã lƣu trong bộ nhớ

+CMGD Xóa bộ nhớ

Trong chƣơng trình điều khiển trƣớc tiên chúng ta cần khởi tạo một kết nối RS232 cho mô-đem, sau đó gửi những lệnh AT điều khiển tƣơng ứng. Cần kiểm tra kết nối với mô-đem bằng cách sử dụng nhóm lệnh: AT, +CPIN, +CSCA, +CGMI, +CGMM, +CMEE, +CSMS, +CSQ, +CBC trƣớc mỗi phiên làm việc.

Để đọc các trạng thái thiết lập hiện tại, chúng ta có thể dùng lệnh AT có thêm ký tự „?‟. Để xem những giá trị nào có thể thiết lập, dùng lệnh AT có thêm ký tự „=?‟. Để thiết lập giá trị thông số mới, dùng lệnh AT có thêm ký tự „=‟ và theo sau đó là những giá trị thông số mới. Để gửi một nội dung đến địa chỉ một ngƣời dùng, sử dụng lệnh +CMGS là tối ƣu nhất. Tuy nhiên, có những nội dung cần gửi đến nhiều thuê bao khác nhau. Trong trƣờng hợp này nên dùng lệnh +CMGW ghi SMS lên bộ nhớ của mô- đem, sau đó dùng lệnh +CMSS để gửi SMS đó đến địa chỉ các thuê bao khác nhau. Cách này cho phép nâng cao tốc độ làm việc của mô-đem nhờ giảm thiểu trao đổi thông tin giữa mô-đem và chƣơng trình.

Có thể gửi SMS theo 2 chế độ là chế độ văn bản (Text Mode, +CMGF = 1) và chế độ mặc định PDU (Protocol Data Unit, +CMGF = 0). Các giá trị thiết lập thông số cho Text Mode và PDU Mode có thể khác nhau ở một số lệnh AT. Chẳng hạn, với

lệnh đọc tất cả các tin nhắn +CMGL tiếp nhận các thông số "REC UNREAD", "REC READ", "STO UNSENT", "STO SENT" và "ALL" trong chế độ Text Mode; trong khi đó, trong chế độ PDU sẽ là các giá trị từ 0 tới 4. Ngoài ra, không phải tất cả các mô- đem GSM cũng đều hỗ trợ định dạng Text Mode. Thử nghiệm cho thấy không chỉ những điện thoại lạc hậu, mà một số điện thoại hiện đại hiện nay nhƣ W580, cũng không hỗ trợ định dạng Text Mode khi làm việc với các thiết bị điều khiển. Trong khi đó, PDU Mode thì tất cả các mô-đem đều hỗ trợ và chế độ này cho phép gửi các tin nhắn dạng hình ảnh và nhạc chuông. Vì vậy, khi xây dựng một chƣơng trình làm việc với các mô-đem GSM, cần phải nghiên cứu tài liệu kỹ thuật của từng loại mô-đem để có thể thiết lập đúng những thông số mà mô-đem đó hỗ trợ, và mô-đun làm việc với các mô-đem, cần xác định loại và mô-đen, sau đó sử dụng những thông số mà mô-đem đó hỗ trợ; hoặc dùng lệnh AT có thêm „=?‟ để kiểm tra, những giá trị nào các thông số tƣơng ứng của một lệnh AT cho một mô-đem cụ thể có thể tiếp nhận. Tất cả các mô- đem đều hỗ trợ tập lệnh AT chuẩn. Nếu mô-đun sử dụng tập lệnh AT chuẩn để làm việc với các mô-đem, thì hệ thống sẽ không bị phụ thuộc vào thiết bị đƣợc sử dụng.

3.2.2. Mã hoá và giải mã tin nhắn theo chế độ PDU

Thông thƣờng mỗi SMS có độ dài tối da 160 ký tự với mã hoá 7-bit. Các SMS với mã hoá 8-bit có độ dài tối đa 140 ký tự và thƣờng là những SMS thông minh chứa hình ảnh và nhạc chuông hoặc là các thiết lập WAP. Các SMS chứa thông điệp gồm các ký tự Unicode 16-bit (UCS2) có độ dài tối đa 70 ký tự. Các SMS có độ dài lớn hơn độ dài tối đa vẫn có thể đƣợc truyền tải dƣới dạng ghép nối nhiều SMS phân đoạn với độ dài chuẩn. SMS có thể phân chia thành các loại sau: SMS-SUBMIT, SMS- DELIVERY, SMS-STATUS-REPORT, SMS-SUBMIT-REPORT, SMS-DELIVERY- REPORT, SMS-COMMAND. Cấu trúc của một SMS đƣợc mô tả chi tiết theo từng loại. Có thể biết đƣợc lý do gửi nhận SMS không thành công thông qua hai loại SMS sau cùng.

Khi dùng chế độ PDU, thông tin đƣợc mã hoá với 7-bit (septet) thƣờng đƣợc mã hoá thành những octet để gửi đi. Và khi nhận, cần phải giải mã nó để hiển thị nội dung SMS cho ngƣời dùng. Sau đây là ví dụ mã hoá thông điệp “hello” gồm 5 ký tự 7 bit thành các octet.

Bảng 3.2. Mã hoã chuỗi dữ liệu bộ bảy (septet) thành chuỗi bộ tám (octet)

Ký tự h e l l o Decimal 104 101 108 108 111 Hex 0x68 0x65 0x6C 0x6C 0x6F Septet 1101000 1100101 1101100 1101100 1101111 8 bit 11101000 00110010 10011011 11111101 00000110 Octet E8 32 9B FD 06

Thông điệp “hello” đƣợc mã hoá thành E8329BFD06 bằng cách chuyển số lƣợng bit cần thiết từ cuối ký tự kế sau (bôi đậm) ở dạng mã hoá septet sang đầu của ký tự kế trƣớc để có thể tạo thành một octet 8-bit. Đối với ký tự „o‟ cuối cùng do không còn ký tự nào đứng sau nữa nên đƣợc thêm 5-bit có giá trị 0 vào trƣớc để tạo thành một octet.

Để giải mã thông tin dữ liệu đƣợc mã hoá dƣới định dạng PDU chúng ta hãy xem xét thông điệp “hello” nhƣ sau: Trƣớc tiên, chúng ta sẽ chuyển 1 bit đầu octet đầu tiên sang phía sau của octet thứ hai và bỏ đi 2 bit đầu của octet thứ hai. Làm theo cách tƣơng tự và khi tới octet cuối cùng (06) sẽ đƣợc thêm 4 bit (1111) từ octet trƣớc đó vào sau và bỏ đi 5 bit (00000) đầu tiên.

Bảng 3.3. Mã hoã chuỗi dữ liệu bộ tám (octet) thành chuỗi bộ bảy (septet)

Octet E8 32 9B FD 06

8-bit 11101000 00110010 10011011 11111101 00000110 Septet 1101000 1100101 1101100 1101100 1101111

Decimal 104 101 108 108 111

Ký tự h e l l o

Để xử lý SMS đƣợc đúng, đầu tiên phải xác định đó là loại SMS nào dựa vào lệnh đọc SMS từ mục nào và 2 bit số 0, 1 của octet đầu tiên (00 – SMS-DELIVER, 00 – SMS-DELIVER-REP, 10 – SMS-STATUS-REP, 10 – SMS-COMMAND, 01 – SMS-SUBMIT, 01 – SMS-SUBMIT-REP). Tuỳ theo cấu trúc của từng loại SMS, phân tích và so sánh SMS-SUBMT/SMS-SUBMIT-REP và SMS-DELIVER/SMS- DELIVER-REP theo từng cặp để kiểm tra độ chính xác khi gửi nhận. Tƣơng tự, SMS- SUBMIT/SMS-STATUS-REP để kiểm tra SMS đã đƣợc nhận thành công hay chƣa. Đối với SMS–SUBMIT, không cần các octet chứa thông tin về Trung tâm Dịch vụ Tin nhắn (SMSC) khi gửi SMS. Thay vào đó, octet độ dài của thông tin về SMSC sẽ chứa giá trị 0x00 vì thông tin về SMSC đã đƣợc cài đặt trong mô-đem. Và octet đó sẽ không đƣợc tính vào tổng số octet khi gửi SMS đến mô-đem. Tuy nhiên, thông tin này thƣờng đƣợc kèm theo khi đọc PDU của SMS đã gửi từ mô-đem. Ví dụ, thông điệp “hello” đƣợc gửi từ số điện thoại +84974610987 trong chế độ PDU là 06 91 4819200050 21 00 0C 91 4879640189F7 00 00 05 E8329BFD06 đƣợc phân tích nhƣ

sau:

Bảng 3.4: Cấu trúc cơ bản tin nhắn PDU Mode

Thông số OCTET Chú thích

Header

SMSC Info

06

Độ dài của thông tin về SMSC

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu, thiết kế, chế tạo hệ thống điều khiển thiết bị điện từ xa bằng tin nhắn SMS và ứng dụng trong lĩnh vực cơ điện tử (Trang 52)

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

(95 trang)