Ngày nay công nghệkhông dây phát triển rất mạnh. Vì các thiết bịkhông
dây ngày càng hiện đại cho phép người sửdụng thõa mản trong giải trí cũng như
trong điều khiển sản xuất mà không cần dây nối. Nó thật sựtiện ít và tạo cảm giác
thoải mái cho người sửdụng. Truyền tín hiệu không dây là một đềtài có nhiều
ứng dụng thực tế, nhất là trong lĩnh vực điều khiển từxa và truyền sốliệu.
Bên cạnh đó những ứng dụng của vi điều khiển đã đi sâu vào đời sống sinh
hoạt và sản xuất của con người. Thực tếhiện nay là hầu hết các thiết bị điện dân
dụng đều có sựgóp mặt của vi điều khiển và vi xửlí. Trên thịtrường có rất nhiều
họvi điều khiển: họ8051 của Intel, 68HC11 của Motorola, PIC của hãng
Microchip, H8 của Hitachi, AVR của hãng Atmel. Ứng dụng vi điều khiển trong
thiết kếhệthống làm giảm chi phí thiết kếvà giá thành sản phẩm, đồng thời nâng
cao tính ổn định của thiết bịvà hệthống.
90 trang |
Chia sẻ: ngtr9097 | Lượt xem: 2492 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đồ án Truyền dữ liệu lưu lượng và áp lực nước qua tin nhắn SMS, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC LẠC HỒNG
KHOA ĐIỆN – ĐIỆN TỬ
-----X W -----
BÁO CÁO
NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:
TRUYỀN DỮ LIỆU LƯU LƯỢNG VÀ
ÁP LỰC NƯỚC QUA TIN NHẮN SMS
HUỲNH THỊ KIM THOA
BIÊN HÒA, THÁNG 10/2009
LỜI CẢM ƠN
Sau thời gian thực tập 4 tháng tại Xí nghiệp Cấp nước Dĩ An thuộc Công Ty
Cấp Thoát Nước Bình Dương, nhờ sự hướng dẫn tận tình của các cô chú, các anh
chị, em đã một phần nào tiếp thu được một số kiến thức về quy trình cung cấp
nước sạch tại nhà máy.
Qua đó, em đã hoàn thành đề tài “ Truyền dữ liệu lưu lượng và áp lực nước
qua tin nhắn SMS”.
Em xin chân thành cảm ơn quý Ban giám đốc Xí nghiệp cấp nước Dĩ An,
nhân viên các phòng ban và nhất là các anh chị cán bộ kỹ thuật tại phòng SCADA,
những người đã trực tiếp hướng dẫn cho em thật chi tiết cho đến khi em hoàn
thành kỳ thực tập.
Đồng thời em cũng xin cảm ơn thầy Lê Hoàng Anh và thầy Cao Bá Vinh đã
hướng dẫn em trong suốt thời gian thực tập và các thầy cô trường Đại Học Lạc
Hồng đã truyền đạt những kiến thức và giúp đỡ em trong suốt thời gian học tập tại
trường.
MỤC LỤC
Lời mở đầu...................................................................................................Trang 1
Chương 1: CƠ SỞ LÝ THUYẾT ..............................................................Trang 2
1.1 Giới thiệu sơ lược về vi điều khiển AVR . .....................................Trang 2
1.1.1 Giới thiệu ...............................................................................Trang 2
1.1.2 ATmega32..............................................................................Trang 3
1.1.3 Đặc tính của ATmega32 ......................................................Trang 4
1.1.3.1 Cổng vào ra ......................................................................Trang 7
1.1.3.2 Cấu trúc bộ nhớ ...................................................................... Trang 10
1.2 Ngôn ngữ lập trình cho AVR........................................................Trang 13
1.3 Giới thiệu BasCom AVR...............................................................Trang 14
1.4 Giới thiệu sơ lược về Visual Basic ...............................................Trang 15
1.2.1 Giới thiệu .................................................................................Trang 15
1.2.2 Các bước xây dựng một chương trình .....................................Trang 23
1.5 Cảm biến áp lực .............................................................................Trang 24
1.6 Giới thiệu GPRS Modem G2403R...............................................Trang 26
Chương 2: THỰC TRẠNG TẠI CÔNG TY ..........................................Trang 29
Chương 3: GIẢI PHÁP VÀ HOÀN THIỆN...........................................Trang 30
3.1 Bộ phận phát ..................................................................................Trang 31
3.1.1 Nguyên lý hoạt động................................................................. Tang 31
3.1.2 Thiết kế phần cứng...................................................................Trang 31
3.1.2.1 Mạch nguồn ổn áp ...........................................................Trang 31
3.1.2.2 Mạch RCV420 chuyển đổi dòng sang áp........................Trang 36
3.1.2.3 Mạch nạp AVR................................................................Trang 37
3.1.2.4 Mạch ứng dụng AVR ATmega32 ...................................Trang 38
3.1.3 Thiết kế phần mềm ..................................................................Trang 42
3.2 Bộ phận thu....................................................................................Trang 59
3.2.1 Nguyên lý hoạt động................................................................Trang 59
3.2.2 Giao diện với máy tính ............................................................Trang 60
PHẦN KẾT LUẬN VÀ KIẾN NGHỊ VỀ NỘI DUNG NGHIÊN CỨU TIẾP
THEO .........................................................................................................Trang 75
Ý NGHĨA KHOA HỌC............................................................................Trang 76
ỨNG DỤNG THỰC TIỄN.......................................................................Trang 77
DANH MỤC TÀI LIỆU THAM KHẢO.................................................Trang 78
PHỤ LỤC...................................................................................................Trang 79
DANH MỤC HÌNH ẢNH, BẢNG GIÁ TRỊ ….
Trang
Hình 1.1 Các dòng AVR: tiny, AVR và ATmega...............................................3
Hình 1.2 Cấu trúc bên trong AVR......................................................................4
Hình 1. 3 Cấu trúc chân của AVR.......................................................................8
Hình 1. 4 Sơ đồ một cổng vào ra.........................................................................9
Hình 1. 5 Bộ nhớ chương trình có và không có sử dụng boot loader ...............11
Hình 1. 6 Giao diện chương trình Bascom AVR. .............................................14
Hình 1.7 Giao diện Visual Basic. ......................................................................16
Hình 1.8 Menu Bar ............................................................................................16
Hình 1.9 Add –ins manager...............................................................................17
Hình 1.10 Toolbars ...........................................................................................17
Hình 1.11 Toolbox.............................................................................................18
Hình 1.12 Properties..........................................................................................19
Hình 1.13 Form layout .....................................................................................20
Hình 1.14 Designer ..........................................................................................20
Hình 1.15 Giao diện viết code...........................................................................21
Hình 1.16 Properties Window và Form Layout ................................................22
Hình1.17 Cảm biến áp lực................................................................................24
Hình 1.18 Sơ đồ Kết nối điện ......................................................................................25
Hình1.19 GPRS Modem G2403R....................................................................26
Hình 3.1: Sơ đồ khối hệ thống........................................................................30
Hình 3.2 Mạch nguồn 5V ...............................................................................31
Hình 3.3 Mạch nguồn ± 15V..........................................................................32
Hình 3.4 Sơ đồ chỉnh lưu................................................................................34
Hình 3.5 Dạng điện áp sau khi qua bộ lọc......................................................35
Hình 3.6 LM78xx ...........................................................................................35
Hình 3.7 Sơ đồ nguyên lý mạch RCV420 ................................................................36
Hình 3.8 Mạch RCV420.................................................................................36
Hình 3.9 Sơ đồ nguyên lý mạch nạp AVR....................................................37
Hình 3.10 Mạch nạp AVR.............................................................................38
Hình 3.11 Sơ đồ nguyên lý mạch ứng dụng AVR .........................................38
Hình 3.12 Mạch AVR....................................................................................39
Hình 3.12 Giao diện với máy tính 1 ...............................................................60
Hình 3.13 Giao diện với máy tính 2 ...............................................................74
Bảng 1.1 Bảng so sánh những đặc tính giữa ATmega32 với họ AT89C51.....6
Bảng1.2 Cấu hình cho các chân cổng...............................................................8
Bảng 1.3 Địa chỉ của tất cả các port ...............................................................12
LỜI MỞ ĐẦU
Ngày nay công nghệ không dây phát triển rất mạnh. Vì các thiết bị không
dây ngày càng hiện đại cho phép người sử dụng thõa mản trong giải trí cũng như
trong điều khiển sản xuất mà không cần dây nối. Nó thật sự tiện ít và tạo cảm giác
thoải mái cho người sử dụng. Truyền tín hiệu không dây là một đề tài có nhiều
ứng dụng thực tế, nhất là trong lĩnh vực điều khiển từ xa và truyền số liệu.
Bên cạnh đó những ứng dụng của vi điều khiển đã đi sâu vào đời sống sinh
hoạt và sản xuất của con người. Thực tế hiện nay là hầu hết các thiết bị điện dân
dụng đều có sự góp mặt của vi điều khiển và vi xử lí. Trên thị trường có rất nhiều
họ vi điều khiển: họ 8051 của Intel, 68HC11 của Motorola, PIC của hãng
Microchip, H8 của Hitachi, AVR của hãng Atmel... Ứng dụng vi điều khiển trong
thiết kế hệ thống làm giảm chi phí thiết kế và giá thành sản phẩm, đồng thời nâng
cao tính ổn định của thiết bị và hệ thống.
Chương 1: CƠ SỞ LÝ THUYẾT
1.1. Giới thiệu sơ lược về vi điều khiển AVR .
1.1.1. Giới thiệu:
AVR là họ Vi điều khiển khá mới trên thị trường cũng như đối với người sử
dụng. Đây là họ vi điều khiển được chế tạo theo kiến trúc RISC (Reduced
Instruction Set Computer) có cấu trúc khá phức tạp. Ngoài các tính năng như các
họ vi điều khiển khác, nó còn tích hợp nhiều tính năng mới rất tiện lợi cho người
thiết kế và lập trình.
Sự ra đời của AVR bắt nguồn từ yêu cầu thực tế là hầu hết khi cần lập trình
cho vi điều khiển, chúng ta thường dùng những ngôn ngữ bậc cao HLL (Hight
Level Language) để lập trình ngay cả với loại chip xử lí 8 bit. Tuy nhiên khi biên
dịch thì kích thước đọan mã sẽ tăng nhiều so với dùng ngôn ngữ Assembly. Hãng
Atmel nhận thấy rằng cần phải phát triển một cấu trúc đặc biệt để giãm thiểu sự
chênh lệch kích thước mã đã nói trên. Và kết quả là họ vi điều khiển AVR ra đời
với việc làm giãm kích thước đoạn mã khi biên dịch và thêm vào đó là thực hiện
lệnh đúng chu kỳ máy với 32 thanh ghi tích lũy và đạt tốc độ nhanh hơn các họ vi
điều khiển khác từ 4 đến 12 lần. Vì thế nghiên cứu AVR là một đề tài khá lý thú
và giúp cho sinh viên biết thêm một họ vi điều khiển vào loại mạnh nhất hiện nay.
Vi điều khiển AVR do hãng Atmel ( Hoa Kì ) sản xuất được gới thiệu lần đầu
năm 1996.
Họ vi điều khiển AVR là một họ vi điều khiển có cấu trúc hiện đại (so với
8051).
Có ba loại trong họ này đó là :
* Tinyavr.
* AVR(loại AVR).
* MegaAVR.
Hình 1.1 Các dòng AVR: tiny, AVR và AT mega.
Tất cả các thiết bị trong họ AVR đều có chung một tập lệnh, và tổ chức bộ
nhớ giống nhau. Nhưng khi chúng ta chuyển nghiên cứu từ một vi điều khiển
AVR này sang loại khác thì thật là đơn giản. Cấu tạo AVR bao gồm: SRAM,
EEPROM và giao tiếp SRAM mở rộng, bộ chuyển đổi tương tự số (ADC), cấu
trúc nhiều tuyến, UART, USART…
1.1.2. ATmega32:
ATmega 32 là bộ vi điều khiển CMOS 8 bit tiêu thụ điện năng thấp dựa trên
kiến trúc RISC. Với công nghệ này cho phép các lệnh thực thi chỉ trong một chu kì
nhịp xung, vì thế tốc độ xử lý dữ liệu có thể đạt đến 1 triệu lệnh trên giây ở tần số
1 Mhz. Vi điều khiển này cho phép người thiết kế có thể tối ưu hoá mức độ tiêu
thụ năng lượng mà vẫn đảm bảo tốc độ xử lí.
Phần cốt lõi của AVR kết hợp tập lệnh phong phú về số lượng với 32 thanh
ghi làm việc đa năng. Toàn bộ 32 thanh ghi đều được nối trực tiếp với ALU
(Arithmetic Logic Unit), cho phép truy cập 2 thanh ghi độc lập bằng một chu kì
xung nhịp. Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi điều khiển dạng
CISC thông thường.
Hình 1.2 Cấu trúc bên trong AVR.
1.1.3. Đặc tính của ATmega32:
• Được chế tạo theo kiến trúc RISC.
• Bộ lệnh gồm 118 lệnh, hầu hết đều thực thi chỉ trong một chu kì xung
nhịp
• 32x8 thanh ghi làm việc đa dụng.
• 32 KB Flash ROM lập trình được ngay trên hệ thống.
• Giao diện nối tiếp SPI cho phép lập trình ngay trên hệ thống.
• Cho phép 1000 lần ghi / xoá.
• Bộ EEPROM 1024 byte .
• Cho phép 100.000 ghi / xoá.
• Bộ nhớ SRAM 2 Kbyte.
• Bộ biến đổi ADC 8 kênh, 10 bit .
• 32 ngõ I/O lập trình được.
• Bộ truyền nối tiếp bất đồng bộ vạn năng UART.
• Vcc = 2.7V đến 6V.
• Tốc độ làm việc: 0 đến 16 Mhz.
• Tốc độ xử lí lệnh 16 MIPS ở 16 MHz ( 16 triệu lệnh trên giây).
• Bộ đếm thời gian thực (RTC) với bộ dao động và chế độ đếm tách
biệt.
• 2 bộ Timer 8 bit và 2 bộ Timer 16 bit với chế độ so sánh và chia tần số
tách biệt và chế độ bắt mẫu.
• Bốn kênh điều chế độ rộng xung PWM.
• Bộ định thời Watchdog lập trình được. Tự động reset khi treo máy.
• Bộ so sánh tương tự.
• Sáu chế độ ngủ : chế độ rỗi (Idle), tiết kiệm điện ( Power save), chế độ
Power Down, chế độ ADC Noise Reduction, chế độ Standby và chế
độ Extended Standby.
Bảng 1.1 Bảng so sánh những đặc tính giữa ATmega32 với họ AT89C51.
Đặc tính Atmega 32 AT89C51
Flash ROM 32KB 4 KB
EEPROM 1024 byte Không
RAM nội - 2 Kbyte SRAM 128 byte RAM
Bộ Timer
- 2 bộ timer 8 bit
- 2 bộ timer 16 bit
- 1 bộ watchdog timer
- 2 bộ timer 16 bit
Bộ ADC - 1 bộ ADC 8 kênh 10 bit không
Giao thức truyền nối
tiếp chủ/tớ
có có
Bộ PWM có không
Bộ truyền nối tiếp
UART
- Có 2 chế độ - Có 4 chế độ
Bộ so sánh tương tự Có không
Tần số hoạt động 0 ÷16 Mhz 0 ÷2 Mhz
Điện áp tiêu thụ
Thạch anh 4 Mhz ,
VCC=3V:
- Trạng thái tích cực:1.1mA
- Trạng thái rỗi :0.35 mA
- Trạng Power Down : < 1
uA
Thạch anh 12Mhz,
VCC=3V:
-Trạng thái tích cực : 20 mA
-Trạng thái rỗi : 5 mA
-Trạng Power Down : < 40
uA
Giá thành ( tại thị 60.000đ 17.000đ
trường Việt Nam)
Qua bảng so sánh có thể thấy rằng ATmega32 không những thừa kế những
ưu điểm của AT89C51 mà còn có những đặc tính mới khá hoàn thiện, hiệu suất và
tốc độ xử lí cao hơn.
1.1.3.1. Cổng vào ra:
Cổng vào ra là một trong số các phương tiện để vi điều khiển giao tiếp với
các thiết bị ngoại vi. Atmega32 có 4 cổng ( port ) vào ra 8 bit là : PortA, PortB,
PortC, PortD tương ứng với 32 đường vào ra. Các cổng vào ra của AVR là cổng
vào ra hai chiều có thể định hướng, tức có thể chọn hướng của cổng là hướng vào
(input ) hay hướng ra (output ). Tất các các cổng vào ra của AVR điều có tính
năng Đọc – Chỉnh sửa – Ghi ( Read – Modify – write ) khi sử dụng chúng như là
các cổng vào ra số thông thường. Điều này có nghĩa là khi ta thay đổi hướng của
một chân nào đó thì nó không làm ảnh hưởng tới hướng của các chân khác. Tất cả
các chân của các cổng ( port ) điều có điện trở kéo lên ( pull-up ) riêng, ta có thể
cho phép hay không cho phép điện trở kéo lên này hoạt động.
• Cách hoạt động :
Khi khảo sát các cổng như là các cổng vào ra số thông thường thì tính chất
của các cổng ( PortA, PortB, PortC, PortD ) là tương tự nhau, nên ta chỉ cần khảo
sát một cổng nào đó trong số 4 cổng của vi điều khiển là đủ.
Mỗi một cổng vào ra của vi điều khiển được liên kết với 3 thanh ghi:
PORTx, DDRx, PINx. ( ở đây x là để thay thế cho A, B, C, D ). Ba thanh ghi này
sẽ được phối hợp với nhau để điều khiển hoạt động của cổng, chẳn hạn thiết lập
cổng thành lối vào có sử dụng điện trở pull-up, ..v.v..
Hình 1. 3 Cấu trúc chân của AVR
Cấu trúc chân của AVR có thể phân biệt rõ chức năng (vào ra) trạng thái (0
1) từ đó ta có 4 kiểu vào ra cho một chân của AVR. Khác với AT89C51 là chỉ có 2
trạng thái duy nhất (0 1)
Để điều khiển các chân này chúng ta có 2 thanh ghi
Æ PORTx: giá trị tại từng chân (0 – 1) có thể truy cập tới từng bit PORTx.n
Æ DDRx: thanh ghi chỉ trạng thái của từng chân , vào hoặc là ra .
Bảng1.2 Cấu hình cho các chân cổng
DDRxn PORTxn PUD(trong
thanh ghi SFIOR)
I/O Pull - up Ghi Chú
0 0 x Input không Cao trở
0 1 0 Input có Như 1 nguồn
dòng
0 1 1 Input không Cao trở
1 0 x Output không Ngõ ra thấp
1 1 x Output không Ngõ ra cao
DDRxn là bit thứ n của thanh ghi DDRx
PORTxn là bit thứ n của thanh ghi PORTx
Dấu “x” ở cột thứ 3 để chỉ giá trị logic là tùy ý.
Hình 1. 4 Sơ đồ một cổng vào ra
Ở sơ đồ trên ta thấy ngoài 2 bit của các thanh ghi DDRx và PORTx tham
gia điều khiển điện trở treo (pull-up resistor ), còn có một tín hiệu nữa điều khiển
điện trở treo, đó là tín hiệu PUD, đây là bit nằm trong thanh ghi SFIOR, khi set bit
này thành 1 thì điện trở kéo lên sẽ không được cho phép bất kể các thiết lập của
các thanh ghi DDRx và PORTx. Khi bit này là 0 thì điện trở kéo lên được cho
phép nếu {DDRxn, PORTxn } = { 0, 1 }
1.1.3.2. Cấu trúc bộ nhớ:
Cũng như mọi vi điều khiển khác AVR có cấu trúc Harvard tức là có bộ nhớ
và đường bus riêng cho bộ nhớ chương trình và bộ nhớ dữ liệu.
• Bộ Nhớ Chương Trình : Bộ nhớ chương trình của AVR là bộ nhớ
Flash có dung lượng 32 Kbytes. Bộ nhớ chương trình có độ rộng bus là 16 bit. Ở
vi điều khiển ATmega32 bộ nhớ chương trình còn có thể được chia làm 2 phần:
phần boot loader (Boot loader program section ) và phần ứng dụng (Application
program section ).
- Phần boot loader : chứa chương trình boot loader.
- Phần ứng dụng (Application program section ): là vùng nhớ chứa chương
trình ứng dụng của người dùng. Kích thước của phần boot loader và phần ứng
dụng có thể tùy chọn.
Hình 1.5 thể hiện cấu trúc bộ nhớ chương trình có sử dụng và không sử dụng
boot loader, khi sử dụng phần boot loader ta thấy 4 word đầu tiên thay vì chỉ thị
cho CPU chuyển tới chương trình ứng dụng của người dùng (là chương trình có
nhãn start ) thì chỉ thị CPU nhảy tới phần chương trình boot loader để thực hiện
trước, rồi mới quay trở lại thực hiện chương trình ứng dụng.
Hình 1. 5 Bộ nhớ chương trình có và không có sử dụng boot loader
• Bộ Nhớ Dữ Liệu: Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là
bộ nhớ SRAM và bộ nhớ EEPROM. Tuy cùng là bộ nhớ dữ liệu nhưng hai bộ nhớ
này lại tách biệt nhau và được đánh địa chỉ riêng.
- Bộ nhớ SRAM: có dụng lượng 2 Kbytes.
Bảng 1. 3 Địa chỉ của tất cả các port
- Bộ nhớ EEPROM : bộ nhớ EEPROM có kích thước là 1024 bytes.
EEPROM được xem như là một bộ nhớ vào ra được đánh địa chỉ độc lập với
SRAM, điều này có nghĩa là ta cần sử dụng các lệnh in, out … khi muốn truy xuất
tới EEPROM.
Để ghi vào EEPROM ta cần thực hiện các bước sau:
- Chờ cho bit EEWE về 0.
- Cấm tất cả các ngắt.
- Ghi địa chỉ vào thanh ghi EEAR.
- Ghi dữ liệu mà ta cần ghi vào EEPROM vào thanh ghi EEDR.
- Set bit EEMWE thành 1.
- Set bit EEWE thành 1 .
- Cho phép các ngắt trở lại.
Đọc dữ liệu từ EEPROM: Việc đọc dữ liệu từ EEPROM đơn giản hơn ghi
dữ liệu vào EEPROM, để đọc dữ liệu từ EEPROM ta thực hiện các bước sau:
- Chờ cho bit EEWE về 0.
- Ghi địa chỉ vào thanh ghi EEAR.
- Set bit EERE lên 1.
1.2. Ngôn ngữ lập trình cho AVR
PonyPro2000: là phần mềm đọc vi điều khiển chuyên dụng và đa năng, nó
có thể làm việc với AVR, 8951, ….
CodeVisionAVR: Đây là phần mềm biên dịch C cho MCU AVR có tích
hợp sẵn bộ nạp. Các bạn có thể viết chương trình bằng ngôn ngữ C, biên dịch và
nạp cho AVR bằng CodeVisionAVR mà không cần một chương trình nào khác.
Assembly: làm việc trên file chương trình nguồn và một file nguồn bao
gồm: các lệnh, các nhãn và các chỉ dẫn. Chúng được xếp tuần tự trong file nguồn.
Một dòng lệnh có chiều dài cực đại là 120 kí tự. Mọi dòng lệnh đều có thể
đặt trước bởi một nhãn, nó là một chuỗi kí tự và kết thúc bằng dấu 2 chấm.
Bascom-AVR: là trình biên dịch cho AVR. Được thiết kế để chạy trên
W95 / W98 / NT/ W2000 / XP. Câu lệnh đơn giản, câu lệnh gần giống trong
visual basic.
1.3. Giới thiệu BasCom AVR
Phần mềm Bascom AVR được phát triển cho họ vi xử lý Atmel như:
AT89xxxx; AVR90S8535; AVR ATmega32….
Với giao diện thân thiện và hỗ trợ tối đa ngôn ngữ cấp cao ( tương tự Visual
Basic) giúp cho việc lập trình trở nên đơn giản và nhanh chóng hơn bao giờ hết.
Hỗ trợ nhiều thư viện lập trình cũng như các
Các file đính kèm theo tài liệu này:
- bao_cao_NCKH.pdf
- bai_bao.pdf