Đăng ký Đăng nhập
Trang chủ Truyền dữ liệu lưu lượng và áp lực nước qua tin nhắn sms...

Tài liệu Truyền dữ liệu lưu lượng và áp lực nước qua tin nhắn sms

.PDF
90
66
95

Mô tả:

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 32KB 4 KB EEPROM 1024 byte Không RAM nội - 2 Kbyte SRAM 128 byte RAM Flash ROM - 2 bộ timer 8 bit Bộ Timer - 2 bộ timer 16 bit - 2 bộ timer 16 bit - 1 bộ watchdog timer Bộ ADC Giao thức truyền nối tiếp chủ/tớ Bộ PWM Bộ truyền nối tiếp UART Bộ so sánh tương tự Tần số hoạt động Điện áp tiêu thụ Giá thành ( tại thị - 1 bộ ADC 8 kênh 10 bit không có có có không - Có 2 chế độ - Có 4 chế độ Có không 0 ÷16 Mhz 0 ÷2 Mhz Thạch anh 4 Mhz , Thạch anh 12Mhz, VCC=3V: VCC=3V: - Trạng thái tích cực:1.1mA -Trạng thái tích cực : 20 mA - Trạng thái rỗi :0.35 mA -Trạng thái rỗi : 5 mA - Trạng Power Down : < 1 -Trạng Power Down : < 40 uA uA 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 I/O Pull - up Ghi Chú thanh ghi SFIOR) 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 ví dụ mẫu sẽ giúp cho người mới vào nghề tiếp cận và làm chủ vi xử lý một các nhanh chóng. Hình 1.6 Giao diện chương trình Bascom AVR.
- Xem thêm -

Tài liệu liên quan