2. Thiết kế trạm khớ tượng tự động
2.3.3. Thiết kế phần cứng transmitter đo hướng giú và nhiệt độ đất
Wind sensor GPIO DAC 12 bit Ref. Voltage SPI Isolated SPI U I U I uC Reset Switching power 5v_iso 5V 12V-24V 4-20mA Over Voltage Protect sine wave square wave Excitation Voltage Ref. Current RTD sensor ADC input
Hỡnh 43 - Thiết kế phần cứng Transmitter đo hướng giú và nhiệt độ đất
Cỏc sensor đo hướng giú và tốc độ giú cú cỏc tớn hiệu ra là tớn hiệu tương tự
dạng điện ỏp. Mặt khỏc sensor đo nhiệt độđất là sensor loại TC. Do vậy đểđảm bảo độ chớnh xỏc và tăng tớnh tớch hợp ởđõy chỳng tụi sử dụng vi điều khiển
MSC1212 là bộ xử lý trung tõm. Đõy là vi điều khiển phỏt triển dựa trờn cấu trỳc vi
điều khiển 8051. Ngoài ra vi điều khiển này cũn cú tỏc đặc tớnh kỹ thuật nổi trội khỏc như:
ắ Cỏc đầu vào tương tự
- 8 đầu vào tương tự, độ phõn giải 24 bớt
- Cú thể lập trỡnh được hệ số khuếch đại tớn hiệu - Điện ỏp chuẩn trờn chớp
- 2 đầu ra tớn hiệu tương tự, dũng và ỏp
ắ Cỏc đặc điểm ngoại vi:
- Cổng truyền thụng SPI - Kiểm soỏt nguồn nuụi
- Cho phộp chếđộ lập trỡnh reset khi nguồn dao động ngoài ngưỡng cho phộp - Chếđộ watchdog lập trỡnh được
Với cỏc đặc điểm như trờn việc sử dụng vi điều khiển này vào bài toỏn ởđõy cho phộp giảm được việc thiết kế phần cứng đồng thời đảm bảo yờu cầu chớnh xỏc của tớn hiệu đầu ra.
Khối đầu ra 4-20mA được thiết kế tương tự như phần thiết kế cho Transmitter
đo độẩm và nhiệt độ khụng khớ.
2.3.4. Thiết kế khối nguồn
Nguồn cấp cho trạm khớ tượng bao gồm Data Logger và cỏc Transmitter. Nguồn được lấy từẮc qui 12V. Năng lượng cấp cho việc nạp ắc qui được lấy từ 2 nguồn: pin mặt trời hoặc điện lưới 220VAC.
Bộ sạc Ắc qui Pin mặt trời Điện lưới 220VAC 220VAC 12VDC Ắc qui 12V Switching regulator 12V 5V Transmitter đo độ ẩm, nhiệt độ kk Switching regulator 12V 5V Transmitter đo tốc độ giú, nhiệt độđất Switching regulator 12V 5V Data Logger 5V 3.3V 3.3V
Hỡnh 44 - Sơ đồ nguồn cấp cho trạm khớ tượng
Theo sơđồ trờn cú thể thấy rằng mạch phần cứng Transmitter và Data Logger
đều sử dụng cỏc nguồn 12V và 5V. Để chuyển đổi từ nguồn 12V sang nguồn 5V, ở đõy chỳng tụi thiết kế mạch theo nguyờn lý nguồn switching sử dụng IC LM2575 và LM2576. Về cơ bản 2 IC này cú cỏc tớnh chất tương đối giống nhau chỉ khỏc ở
chỗ LM2575 cho phộp dũng tải tối đa là 1A trong khi LM2576 cho phộp dũng tải
Hỡnh 45 - Sơ đồ cấu trỳc của IC nguồn LM2575 & LM2576
Nguồn cung cấp cho Data Logger bao gồm nguồn cấp cho vi điều khiển, thẻ
nhớ, cỏc IC truyền thụng, ADC, màn hỡnh hiển thị LCD, modem truyền thụng
GSM, ... Do vậy cụng suất phải lớn nờn ởđõy nhúm thực hiện đề tải đó sử dụng IC
nguồn LM2576-5V. Một sốđặc điểm của LM2576-5V
- IC nguồn switching cho phộp dũng tải tới 3A. - Điện ỏp đầu ra 5V
- Điện ỏp đầu vào 8-37V
- Chỉ cần thờm 4 phần tử ngoài để tạo thành bộ nguồn cung cấp điện ỏp cho mạch
- Tần số dao động bờn trong là 52 kHz
- Cú thểđiều khiển shutdown thụng qua tớn hiệu mức TTL, tại chếđộ stanby cụng suất tiờu thụ thấp
- Hiệu suất cao
- Tựđộng shutdown khi quỏ nhiệt - Bảo vệ quỏ dũng GND R15 L2 Green D5 + C13 IN 1 Co m m o n 3 OUT 2 FB 4 ON/OFF 5 U6 LM2576T-5V A 1K 2 D8 L1 VCC C14 C16 GND Vin
2.4. Xõy dựng phần mềm cho data logger
2.4.1. Lựa chọn cụng cụ phần mềm cho Data logger
Data logger được xõy dựng trờn cơ sở vi điều khiển Atmega128, đõy là một vi
điều khiển 8 bit, cú tốc độ và bộ nhớở mức trung bỡnh nếu so với cỏc loại vi điều khiển hiện đại hiện nay như cỏc dũng vi điều khiển 16, hay 32 bit hoặc cỏc dũng vi xử lý tớn hiệu như DSPic, ... Tuy nhiờn với những tớnh năng hiện cú, vi điều khiển Atmega128 hoàn toàn phự hợp với yờu cầu đặt ra của bài toỏn.
Để thực hiện phỏt triển phần mềm cho vi điều khiển chỳng tụi lựa chọn bộ
cụng cụ phần mềm của IAR cho dũng vi điều khiển họ AVR bao gồm:
- IAR C/C++ Compiler for AVR
- IAR Library Builder
- IAR XLIB
- IAR XLINK
- IAR Build Utility
- IAR Embedded Workbench IDE
- IAR C-SPY JTAGICE Driver for AVR
- IAR Workbench Target Descriptor for AVR
- IAR Workbench Target Descriptor, JTAGICE, for AVR, …
Với bộ cụng cụ phần mềm này cho phộp cú thể lập trỡnh, gỡ rối, quan sỏt cỏc tham số, cỏc thanh ghi, cỏc vựng nhớ của vi điều khiển, … giỳp cho người sử dụng nhanh chúng tỡm ra cỏc lỗi trong quỏ trỡnh phỏt triển hệ thống.
2.4.2. Thiết kế cỏc chức năng phần mềm cho Data Logger
Trạm khớ tượng xõy dựng nhằm đỏp ứng hai yờu cầu đú là:
- Cho phộp cỏc cỏn bộ tại chỗ cú thể theo dừi được cỏc thụng số liờn quan
đến thời tiết, cũng như số liệu cỏc thụng số này trong mụt khoảng thời gian nhất định
- Cho phộp cú thể truyền thụng với cỏc trung tõm giỏm sỏt cấp trờn để phục vụ theo dừi, tổng hợp, đưa ra cỏc dự bỏo, cảnh bỏo về cỏc hiện tượng thời tiết
Xõy dựng phần mềm cho trạm khớ tượng tự động phải đảm bảo được cỏc yờu cầu đó nờu. Trờn cơ sởđú chỳng tụi đó lựa chọn cỏc chức năng phần mềm cho khối Data Logger của trạm khớ tượng như sau:
Hỡnh 47 - Cỏc chức năng của Data logger
ắ Chức năng đọc giỏ trị số liệu cỏc kờnh đo từ cỏc transmitter/ đầu vào, xử lý số liệu thu được, bao gồm cỏc bước:
- Đọc cỏc giỏ trịđầu vào dạng tớn hiệu tương tự, dạng xung, dạng số, … - Thực hiện cỏc thuật toỏn lọc cần thiết đểđảm bảo số liệu ra là tin cậy
- Calib cỏc số liệu theo cỏc điểm calib được đưa vào từ bàn phớm và màn hỡnh hiển thịứng với từng thụng số
- Lưu cỏc tham số này vào cỏc vựng nhớ RAM để phục vụ cỏc mục đớch tiếp theo
ắ Chức năng giao tiếp với bàn phớm và màn hỡnh hiển thị
- Lựa chọn hiển thị và hiển thị cỏc thụng sốđo
- Cài đặt cỏc thụng số như: giỏ trị calib cỏc thụng số đo, cài đặt địa chỉ
modbus, cài đặt tần số lấy mẫu tớn hiệu, chu kỳ lưu trữ dữ liệu, cài đặt và hiển thị thời gian
ắ Chức năng truyền thụng modbus thụng qua cổng truyền thụng RS485 với
mỏy tớnh PC: cho phộp truyền giỏ trị cỏc thụng số lờn mỏy tớnh PC theo
chuẩn truyền thụng RS485, giao thức modbus.
ắ Chức năng giao tiếp với thẻ nhớ MMC/SD card, thực hiện lưu trữ dữ liệu: - Thực hiện giao tiếp với thẻ nhớ MMC/SD thụng qua cổng truyền thụng nối
- Cho phộp lưu trữ dữ liệu dưới dạng file *.csv thành cỏc hàng, cột thuận tiện cho việc đọc dữ liệu từ phần mềm Microsoft Office/Excel trờn mỏy tớnh PC
ắ Chức năng giao tiếp với modem truyền thụng khụng dõy Maestro 100: - Thực hiện truyền dữ liệu theo chuẩn GSM, cho phộp truyền dữ liệu từ trạm
khớ tượng đến trung tõm
- Cú thể thực hiện gửi dữ liệu tựđộng hoặc theo cơ chế hỏi/đỏp.
Để thực hiện được cỏc chức năng ở trờn thỡ chương trỡnh phần mềm khụng chỉ
cần nhiều tài nguyờn về bộ nhớ dữ liệu và bộ nhớ chương trỡnh mà cũn cần cú sự tổ
chức chương trỡnh rừ ràng để thực hiện điều khiển cỏc tiến trỡnh đảm bảo hoạt động thiết bị. Do đú phần mềm ởđõy được xõy dựng trờn hệ điều hành thời gian thực cho phộp việc thực hiện cỏc nhiệm vụ một cỏch hiệu quả bao gồm giao tiếp với ngoại vi: truyền thụng SPI (với thẻ nhớ, AD7794); thực hiện cỏc ngắt thời gian
timer 0 và timer 1; điều khiển truyền thụng RS232 kết nối với modem GSM,
truyền thụng modbus; cập nhật cỏc đầu vào ra số điều khiển nguồn và ngoại vi khỏc;…. Thực thi cỏc tỏc vụ, việc phõn định thời gian thực hiện cho cỏc tỏc vụ căn cứ vào yờu cầu về tần suất xuất hiện, mức độưu tiờn của cỏc tỏc vụ, căn cứ vào tốc
độđỏp ứng của vi điều khiển về thời xử lý lệnh và tốc độ:
- ButtonScanTask, tỏc vụ xử lý bàn phớm
- ClearWatchdogTask, tỏc vụ thực hiện reset lại thanh ghi watchdog - AnalogReadValueTask, tỏc vụđọc giỏ trị cỏc kờnh đo tớn hiệu tương tự
- PC_communicationTask, tỏc vụđiều khiển truyền thụng với mỏy tớnh PC - Mmc_sdTask, tỏc vụ cấp nhật cỏc thụng số lờn thẻ nhớ
- LcdDisplayTask, tỏc vụ hiển thị số liệu ra màn hỡnh LCD
- Wind2sTask, tỏc vụđọc giỏ trị hướng giú và tốc độ giú trong thời trong 2s - Rainin1minusTask, tỏc vụđọc giỏ trị lưu lượng mưa theo từng phỳt
- GSMtransmitTask, tỏc vụđiều khiển truyền thụng qua GSM
- RTCTask, tỏc vụ cập nhật đồng hồ thời gian thực
- ControlSurfaceTask, tỏc vụ thực hiện lựa chọn chế độ hoạt động thụng qua việc bấm phớm lựa chọn của người sử dụng. Trong đú phõn ra thành cỏc chế độ họat động: chế độ hiển thị thụng thường; chế độ cài đặt tham số ngày, giờ,…, mó bảo vệ, địa chỉ truyền thụng modbus; chế độ calib thụng số: calib
cỏc thụng số tốc độ giú, hướng giú, nhiệt độ mặt đất, nhiệt độ khụng khớ, độẩm khụng khớ, lượng mưa.
Ngoài việc thực hiện điều khiển chương trỡnh hoạt động theo chu trỡnh của cỏc tỏc vụ vi điều khiển cũn thực hiện cỏc ngắt định thời gian, ngắt đếm xung đầu vào thụng sốđo tốc độ giú, lượng mưa.
Với việc xõy dựng phần mềm dựa trờn hệ điều hành thời gian thực cho phộp việc thờm cỏc tỏc vụ cú thểđược tiến hành dễ dàng đồng thời việc quản lý chương trỡnh cũng trở nờn sỏng sủa hơn.
Hỡnh 48 - Sơ đồ tổ chức chương trỡnh
Cỏc chức năng cài đặt và hiển thị trờn màn hỡnh hiển thị LED
- Display mode: chếđộ hiển thị cỏc thụng số
- Setmode: cài đặt cỏc thụng số thụng qua bàn phớm màn hành hiển thị
- Calib mode: thực hiện calib cỏc thụng số
Việc lựa chọn chế độ và chuyển cỏc thụng số được hiển thị thụng qua 8 phớm trờn bàn phớm. Riờng đối với chế độ calib và cài đặt cỏc thụng số để trỏnh xảy ra cỏc trường hợp người sử dụng khụng đỳng thẩm quyền thao tỏc làm thay đổi cỏc giỏ trị khụng mong muốn, chương trỡnh phần mềm yờu cầu cú một mó bảo vệ chỉ
Hỡnh 50 - Giao diện cài đặt ngày giờ hệ thống và khoảng thời gian lưu trữ
Hoạt động của thiết bịđược chia thành 3 chếđộ:
- Chế độ Display: Dữ liệu cỏc thụng số đo được hiển thị trờn cỏc màn hỡnh riờng rẽ bao gồm giỏ trị thụng sốđo và tờn đơn vị nếu cú.
- Chế độ Setup: Chế độ này cho phộp cài đặt cỏc thụng số như: mó cho phộp
truy nhập chế độ calib dữ liệu, cài đặt lại thời gian ngày/thỏng/năm-giờ/phỳt/giõy, chu kỳ lưu trữ dữ liệu vào thẻ nhớ, đặt địa chỉ modbus, ...
- Chế độ Calib dữ liệu: khi muốn thực hiện calib số liệu, trước tiờn người sử
dụng cần nhập vào mó truy nhập chế độ Calib thụng qua giỏ trị cài đặt ở chế độ
Setup, mó này sẽ tựđộng bị xúa đi sau khi calib xong và chuyển về chếđộ Display. Khi thực hiện calib so liệu cỏc thụng số đo, vi điều khiển sẽ thực hiện cỏc cụng việc sau:
+ Xỏc định thụng số cần được calib thụng qua yờu cầu từ bàn phớm
+ Thực hiện lưu giỏ trị thụng số hiện thời cần calib tương ứng với giỏ trị đọc
được từ ADC sau khi đó thực hiện cỏc phương phỏp lọc cần thiết và giỏ trị nhập vào thực hiện calib từ bàn phớm vào bộ nhớ EEPROM.
+ Mỗi thụng số cần được calib tại 2 điểm trong dải số liệu yờu cầu yờu cầu.
2.4.3. Giao tiếp với thẻ nhớ
Hiện nay cỏc loại thiết bị lưu trữ như thẻ nhớ USB, cỏc loại ổ cỳng mini được sử khỏ rộng rói. Đối với cỏc thiết bị lưu trữ dữ liệu như Data Logger việc lưu trữ số
liệu cú thểđược tiến hành với cỏc thiết bị nhớ như RAM, EEPROM, FLASH,... Ưu
điểm của thẻ nhớ so với bộ nhớ RAM, EEPROM là cho phộp ta cú thể dễ dàng thỏo rời và đọc dữ liệu trực tiếp từ mỏy tớnh mà khụng phải thực hiện cỏc phương phỏp đọc dữ liệu thụng qua cỏc chuẩn truyền thụng như RS232, modem, ...
Việc sử dụng thẻ nhớ tiện lợi trong việc lưu trữ dữ liệu như vậy, tuy nhiờn việc viết cỏc driver định dạng FAT16 hay FAT32 cho cỏc thẻ nhớ đối với cỏc loại vi
điều khiển khụng hề dễ dàng và mất nhiều thời gian.
Để cú thể thực hiện được giao tiếp với thẻ nhớ định dạng FAT16 hay FAT32 trước tiờn ta tỡm hiểu một số thụng tin về bản FAT16:
ắ Thẻ nhớđược định dạng giống như một ổđĩa mỏy tớnh với một partition duy
Hỡnh 52: Định dạng FAT16 đối với thẻ nhớ
Sector đầu tiờn của thẻ nhớ bao gồm Master boot record (MBR), sau đú là
FAT partition. Partition bắt đầu với một số sector dự phũng (sector đầu tiờn là boot sector khụng nhầm với MBR), một hoặc nhiều FAT và một bảng thư mục gốc (root directory). Vựng dữ liệu theo sau thư mục gốc, nú được tổ chức bao gồm nhiều nhúm của cỏc sector (được gọi là cluster).
Chỳ ý rằng MBR bao gồm một chương trỡnh khởi động nhỏ (bootstrap loader program) và một bảng partition, tuy nhiờn đối với thẻ nhớ thỡ chỉ quan tõm đến thụng tin ve bảng partition.
ắ Cơ chếđọc một file từ thẻ nhớ như sau:
- Xỏc định vị trớ tờn file trong bảng thư mục gốc. Bảng thư mục gốc được tổ
chức như sau: Số byte 0-7 8-10 11-25 26-27 28-31 Thuộc tớnh file 1 tờn file phần mở rộng thuộc tớnh/thời gian thay đổi cluster đầu tiờn kớch thước Thuộc tớnh file 2 tờn file phần mở rộng thuộc tớnh/thời gian thay đổi cluster đầu tiờn kớch thước ... ... ... ... ... ... Thuộc tớnh file 3 tờn file phần mở rộng thuộc tớnh/thời gian thay đổi cluster đầu tiờn kớch thước Hỡnh 53 - Bảng thư mục gốc
- Đểđọc một file từ thẻ nhớ ta kiểm tra tờn và phần mở rộng của file trong thư
mục gốc và tỡm kiếm bằng cỏch đọc từng sector. Sector đầu tiờn trong FAT
partition là bản ghi khởi động (boot record), nú bao gồm cỏc thụng số cho chỳng ta biết chỗ nào thư mục gốc bắt đầu.
- Số lượng sector trờn một cluster phụ thuộc vào định dạng của thẻ nhớ. Nếu kớch thước cluster càng lớn thỡ kớch thước bảng FAT càng nhỏ lại. Vựng dữ liệu bắt
đầu ngay sau thư mục gốc, do đú chỳng ta cú thể xỏc định được sector đầu tiờn của cluster đầu tiờn.
- Để ghi một file vào trong thẻ nhớ trước tiờn ta cần tỡm một hàng cú thể dựng
được trong thư mục gốc để tạo một đường dẫn mới. Cú thể thực hiện điều này bằng cỏch kiểm tra xem tờn file đó cú trong thẻ nhớ hay chưa. Nếu file chưa được tạo ta sẽ ghi tờn file với phần mở rộng, thời gian khởi tạo và thuộc tớnh của file vào bảng thư mục gốc
- Khi sử dụng thẻ nhớ ta cũn cần cú cỏc hàm liờn tục cập nhật bộ nhớđể giải