Luận văn Thiết kế chế tạo khối chuyển đổi và xử lý thông tin từ đầu đo phục vụ điểm đo cảm nhận môi trường

MỞ ĐẦU Mạng cảm nhận không dây nhằm đo thông số môi trường hiện nay đang được nghiên cứu và có xu hướng phát triển rộng khắp, bởi nó mang lại lợi ích về nhiều phương diện cho con người. Nghiên cứu thiết kế, chế tạo các mạng cảm nhận không dây để đo thông số môi trường ở những nơi như: nhà kho, hầm mỏ, phân xưởng, viện bảo tàng, bệnh viện , phục vụ trong các lĩnh vực nông nghiệp, công nghiệp, y tế , mang lại hiệu quả cao và mở ra những ý nghĩa mới trong đo đạc giám sát và cảnh báo. Đề tài luận văn đi vào nghiên cứu: “Thiết kế chế tạo khối chuyển đổi và xử lý thông tin từ đầu đo phục vụ điểm đo cảm nhận môi trường”. Mục tiêu cụ thể của đề tài là: - Nghiên cứu một loại đầu đo. - Thiết kế và chế tạo khối chuyển đổi và xử lý dữ liệu cho đầu đo. - Truyền nhận dữ liệu không dây và hiển thị trên máy tính. Đây là bước cơ bản tiến tới xây dựng nút mạng cảm nhận môi trường nói riêng và có thể có ích cho nhiều ứng dụng khác nói chung. Kết cấu luận văn bao gồm năm chương. Chương 1: Tổng quan về đề tài. Chương 2 : Chức năng và hoạt động của các modul. Chương 3 : Thiết kế và chế tạo hệ thống. Chương 4 : Thiết kế phần mềm. Chương 5 : Thử nghiệm hệ thống và đánh giá kết quả.

pdf95 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2369 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Thiết kế chế tạo khối chuyển đổi và xử lý thông tin từ đầu đo phục vụ điểm đo cảm nhận môi trường, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
B8 B7 B6 B5 B4 B3 B2 B1 B0 B11 10 B9 B8 B7 B6 Word3 C3 (10 bít) C5/II (6 bít) B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 B5 B4 B3 B2 B1 B0 Word4 C4 (9 bít) C6 (7 bít) B8 B7 B6 B5 B4 B3 B2 B1 B0 B6 B5 B4 B3 B2 B1 B0 Hình 8: Dữ liệu định cỡ WORD1, WORD2, WORD3, WORD4. Để đo áp suất vi điều khiển phải đọc giá trị 16 bít thông tin áp suất (D1) và 16 bít thông tin nhiệt độ (D2) cùng một giao diện nối tiếp. Sau đó giá trị áp suất được tính ra từ D1, D2 và C1 đến C6 theo công thức như trong hình 7. Tất cả các tính toán có thể được thay đổi với 16 bít. Kết quả lúc đó có thể dài 32 bít nhưng chỉ có 16 bít cao là đáng kể. kết quả phép chia có thể được đưa về số nguyên [5]. ♦ Nguyên lý đo áp suất và nhiệt độ Đo áp suất và nhiệt độ sử dụng chung một ADC. Để đo áp suất, điện áp khác nhau từ sensor áp suất được chuyển đổi. Để đo nhiệt độ, điện áp từ cầu điện trở sensor được chuyển đổi. Trong suốt thời gian đo sensor sẽ bật tắt trong một thời gian ngắn để giảm tiêu thụ của nguồn. ADC được đánh giá là tuyến tính (giá trị số trong dải từ 5000 đến 37000) cho tất cả các biến đổi của sensor như trong lý thuyết của nhiệt độ và áp suất. ♦ Giao diện nối tiếp MS5535 truyền thông với vi sử lý và các hệ thống số khác thông qua giao diện nối tiếp 3 dây. Chân SCLK (serial clock) dùng để làm hiệu lệnh cho Luận văn thạc sĩ Phùng Công Phi Khanh 19 DIN DOUT SCLK Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 9 Bit 10 Bit 11 Bit 12 Bit 13 Bit 14 Bit 15 Hình 9a: Chuỗi xung reset 21 bít cả việc truyền và nhận dữ liệu trên các chân DIN và DOUT. Khi truyền dữ liệu mỗi bít truyền rơi vào sườn lên của xung SCLK. Khi nhận dữ liệu thi ngược lại với mỗi bít nhận rơi vào sườn xuống của xung SCLK. Tín hiệu SCLK phát ra từ hệ thống vi xử lý. Tín hiệu DOUT (Data Out) dùng làm hiệu lệnh cho tình trạng truyền dữ liệu và chuyển đổi dữ liệu. Dữ liệu số cung cấp bởi chân DOUT là kết quả của sự chuyển đổi, và dữ liệu phần mềm bù cho nhưng sai số của sensor. Lựa chọn dữ liệu ra phụ thuộc dữ liệu định dạng của tín hiệu DIN. Đây là cấu trúc dữ liệu ra: - Chuỗi xung reset. (hình 9a) - Bắt đầu chuyển đổi đo áp suất và dữ liệu ADC ra D1. (hình 9b) - Bắt đầu chuyển đổi đo nhiệt độ và dữ liệu ADC out D2. (hình 9c) - Chuỗi đọc giá trị định cỡ cho WORD1 và WORD3. (hình 9d) - Chuỗi đọc giá trị định cỡ cho WORD2 và WORD4. (hình 9e) Bắt đầu truyền thông với một cấu trúc chuỗi ở chân DIN. Các hình 9a, 9b, 9c, 9d, 9e chỉ ra sơ đồ thời gian cho MS5535. Thiết bị không cần tín hiệu chip select (chọn vỏ). Có một start-sequence (chuỗi bắt đầu) 3 bít cao và một stop-sequence (chuỗi kết thúc) 3 bít thấp cho mỗi lần đọc. Luận văn thạc sĩ Phùng Công Phi Khanh 20 Theo sau start-sequence là 4 cấu trúc bít để lựa chọn đọc giá trị áp suất, nhiệt độ hay các giá trị bù. MS5535 chấp nhận bắt đầu chuyển đổi bằng một mức thấp chuyển đến mức cao ở chân DOUT trong thời gian bít cuối cùng của stop-sequence. Sau khi có tín hiệu chấp nhận chuyển đổi ở chân DOUT thì chân DIN cần thêm tối thiểu là 2 xung SCLK đưa vào. Kết thúc chuyển đổi chỉ ra bởi mức cao chuyển xuống mức thấp của chân DOUT. Tín hiệu này có thể được dùng để tạo ra một ngắt cho vi điều khiển.Vi điều khiển có thể đọc word 16 bít bằng cách đưa ra 16 xung trên DIN DOUT SCLK Conversion (33ms) Sequence: P measurement Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 9 Start-bit Setup-bit Stop-bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Bit 0 ADC - data out MSB ADC - data out LSB Hình 9b: Chuyển đổi đo áp suất và dữ liệu ADC ra D1 DIN DOUT SCLK Conversion (33ms) Sequence: T measurement Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 9 Start-bit Setup-bit Stop-bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Bit 0 ADC - data out MSB ADC - data out LSB Hình 9c: Chuyển đổi đo nhiệt độ và dữ liệu ADC ra D2 Luận văn thạc sĩ Phùng Công Phi Khanh 21 chân SCLK. Dữ liệu là đúng ở sườn xuống của xung SCLK. Một điều quan trọng là phải luôn luôn đọc kết quả chuyển đổi trước khi một chuyển đổi mới. Nên dùng reset-sequence trước chuỗi thu nhận để tránh treo. Một thuận tiện là có thể ngắt chuỗi đọc dữ liệu bằng cách dữ tín hiệu SCLK. Reset-squence thiết lập logic điều khiển bên ngoài về tình trạng bắt đầu của MS5535, chuỗi này dài 21 bít. Tín hiệu DOUT có thể thay đổi trong thời gian của chuỗi reset cho bởi hình 9a. DIN DOUT SCLK Sequence: coefficient Bit 0 Bit 1 Bit 2 Bit 9 Start-bit Setup-bit Stop-bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Bit 0 Coefficient data MSB Coefficient data LSB Bit 10 Bit 11 Bit 4 Bit 5 Bit 3 Bit 6 Bit 7 Bit 8 Address word1 Address word3 Hình 9d: Chuỗi đọc giá trị chuẩn hoá word1 và word3 DIN DOUT SCLK Sequence: coefficient Bit 0 Bit 1 Bit 2 Bit 9 Start-bit Setup-bit Stop-bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Bit 0 Coefficient data MSB Coefficient data LSB Bit 10 Bit 11 Bit 4 Bit 5 Bit 3 Bit 6 Bit 7 Bit 8 Address word2 Address word4 Hình 9e: Chuỗi đọc giá trị chuẩn hoá word2 và word4 Luận văn thạc sĩ Phùng Công Phi Khanh 22 2.2 Modul TX2 và RX2 ♦ Modul phát tín hiệu TX2 TX2 làm việc với nguồn cung cấp thấp từ 2,2V đến 6V phát tín hiệu cao tần trong dải UHF với tần số là 433,92MHz. TX2 được sản suất theo chuẩn châu Âu EN 300 220-3, sử dụng và phát ra +9 dBm từ nguồn cung cấp 5 V với dòng 12 mA. TX2 cho phép truyền với tốc độ lên tới 160 kbít/giây với khoảng cách lên tới 75m trong nhà và 300m ngoài trời. TX2 có kích thước nhỏ gọn 33x12x3,8 mm [6]. Cấu tạo TX2 có sơ đồ khối như hình 10 và kích thước vật lý của TX2 như hình 11. TX2-433-160-5V bao gồm một lối vào dữ liệu số đưa đến một bộ lọc thông thấp 100KHz. Một bộ dao động nội ổn định và bộ điều chế SAW. Tín hiệu đưa ra qua một bộ đệm và cuối cùng là bộ lọc thông dải 433 MHz trước khi đưa ra anten. Chức năng các chân: - Chân RF GND (Chân 1) Chân nối đất của RF. Bên trong nối với một màn chắn và chân 4 (0V). Chân này sẽ nối với RF đường về. Hình 10: Sơ đồ khối cấu tạo của TX2 Luận văn thạc sĩ Phùng Công Phi Khanh 23 - Chân RF out (Chân 2): Với đặc điểm 50Ω RF lối ra antenna. - VCC (Chân 3) Chân nguồn cung cấp. Modul sẽ phát ra RF khi có nguồn cung cấp. Nguồn không gợn sóng quá 0,1 Vpp. Một tụ 100 nF sử dụng cho nguồn. - 0V (Chân 4) Cung cấp nối đất. Nối với chân 1 và màn chắn. - TXD (Chân 5) DC nối với lối vào điều biên sẽ được nối với chuỗi dữ liệu số nối tiếp (0V tới mức VCC ). Trở kháng lối vào là 100 kΩ. ♦ Modul thu tín hiệu RX2 Modul RX2 modul thu FM đổi tần hai lần có khả năng thu tín hiệu lên tới 160kbps. Modul thu RX2 có kích thước 48x17,5x4,5 mm. Nó vận hành ở nguồn cung cấp từ 3V đến 6V tiêu thụ dòng điện 14mA khi nhận dữ liệu. RX2 tìm sóng mang nhanh (1ms). Cho phép tiết kiệm nguồn bằng cách sử dụng nguồn ngắt mở. RX2 có độ nhạy là 107dBm, Kết hợp với bộ lọc đầu và cuối SAW kết quả thực thi ở RF tốt . Hình 11: Kích thước vật lý Luận văn thạc sĩ Phùng Công Phi Khanh 24 Đặc điểm về điện của TX2 được trình bầy trong bảng 6: Chỉ số Điều kiện Chú thích chân Cực tiểu Trung bình cực đại Đơn vị Nguồn cung cấp 3 4.0 5.0 6.0 V Dòng cung cấp VCC=5V 3 4 6 10 mA Công suất RF VCC=5V(1) 2 +6 +9 +12 dBm Hài (1) -65 -54 dBc Hài > 1GHz VCC=5V(1) 2 -50 -40 dBc Chính xác tần số ban đầu (1) -30 0 +30 KHz Chính xác tần số toàn bộ -70 +70 kHz Lệch FM 20 25 30 kHz Độ rộng băng biến điệu -3dB dBc 20 kHz Đô rộng băng biến điệu -3dB (2) 5 100 kHz Méo điều biên 10 % Thời gian cấp nguồn cho đến khi RF đủ 100 µs Bảng 6: Đặc điểm về điện của TX2 Chú thích : 1. Đo ở 50Ω. 2. Cho loại 160kbps. Luận văn thạc sĩ Phùng Công Phi Khanh 25 Modul thu RX2 có sơ đồ khối cấu tạo như hình 12: Cấu tạo bao gồm một lối vào RF, qua một bộ lọc thông dải 433 MHz đưa đến một bộ khuếch đại tín hiệu. Tín hiệu sau khi được khuếch đại sẽ qua bộ lọc băng thông SAW và đưa đến bộ trộn thứ nhất để ra tín hiệu trung tần IF qua bộ trộn thứ hai được tín hiệu AF tín hiệu này được qua bộ lọc thông thấp rồi đưa ra ngoài. Một đường tín hiệu đưa qua bộ tạo dữ liệu thích nghi đưa ra dữ liệu số nơi phát. Kích thước vật lý RX2 được chỉ ra ở hình 13. Hình 12: Sơ đồ khối của RX2 Hình 13: Kích thước vật lý của RX2 Luận văn thạc sĩ Phùng Công Phi Khanh 26 Chức năng các chân: - RF in (Chân1). 50Ω RF lối vào từ antenna. Đây là DC đơn bên trong. - RF GND (Chân 2). Chân nối đất của RF, bên trong nối với màn chắn modul và chân 4 (0V). Chân này nối với tín hiệu RF đường về. - CD (chân 3) Dùng để dò sóng mang có thể được sử dụng với tranzitor PNP bên ngoài để đạt được mức logic tín hiệu dò sóng mang, nếu không đòi hỏi nó được nối với chân 5(VCC). - VCC (Chân 5). Chân nguồn cung cấp từ 3,0 V đến 6,0 V dòng nhỏ hơn 17 mA. Nguồn cung cấp phải nhỏ hơn 2 mVpp gợn sóng. Một tụ 10 µFvà một điện trở 10 Ω nối tiếp được khuyến nghị sử dụng, nếu nguồn tốt mà không sử dụng được. - AF (Chân 6) Đây là bộ đệm và lọc tương tự lối ra của giải điều chế. Có một thế DC 1,2 V và 400 mVpp tín hiệu băng cơ bản. Nó có tác dụng để kiểm tra chỉ số hoặc để điều khiển giải mã tuyến tính. Lối ra yêu cầu trở khán lớn hơn 1 kΩ và dung kháng nhỏ hơn 100 pF. - RXD (Chân 7). Lối ra số từ dữ liệu bên trong là chân 7 (AF). Nó có thể được sử dụng để điều khiển giải mã bên ngoài. Dữ liệu là dữ liệu đúng. Lối ra yêu cầu trở kháng lớn hơn 1kΩ và dung kháng nhỏ hơn 1nF. ♦ Các giá trị giới hạn. Nhiệt độ vận hành từ -100C đến +550C. Nhiệt độ bảo quản từ -400C đến +1000C. Với TX2 : VCC chân 3 giá trị từ -0,1 V đến +10 V Luận văn thạc sĩ Phùng Công Phi Khanh 27 Dữ liệu chân 5 giá trị từ -0,1 đến +10 V. RF out chân 2 là ±50 V 10 MHz. Với RX2 : VCC chân 5 giá trị từ -0,1 đến +10.0V. Dữ liệu, DC và AF (chân 7,3,6) giá trị từ -0,1V đến +VCC. RF lối vào (Chân 1) ±50V10MHz. Không nên vận hành TX2 ở điện áp lớn hơn 6V bởi vì modul có thể bị vượt quá mức nguồn cho phép. Đặc điểm về điện của RX2 cho bởi bảng 7. Chỉ số Điều kiện Chân Cực tiểu Trung bình Cực đại Đơn vị Nguồn cung cấp 5 4 V 5 V 6 V V Dòng tiêu thụ 5 11 13 17 MA Gợn sóng của nguồn 5 12 MVpp Dữ liệu ra mức cao 100µA nguồn 7 VCC -- --0,6V V Dữ liệu ra thấp 100µA đáy 7 0,4 100 pF Độ nhạy RF cho 10dB (S+N)/N 1,6 -96 dBm Độ nhạy RF cho 1ppm BER 1,6 -90 dBm Bẳt đầu của CD 1,3 -104 dBm Độ rộng băng IF 250 kHz Lệch tần số lúc đầu 1 -30 0 +30 kHz Bảng 7: Đặc điểm về điện của RX2 Luận văn thạc sĩ Phùng Công Phi Khanh 28 Hình 15 : Một số antenna Modul TX2 hoặc RX2 có thể đặt nằm ngang hay thẳng đứng (hình 14). Phần nối đất gần anten và phần nối dữ liệu tới anten ngắn . Phần thu nhận và antenna của nó cần để xa nguồn nhiễu. Có 3 loại anten được khuyến nghị sử dụng với module (hình 15). Chú thích: - helical antenna là loại antenna xoắn ốc, được tráng một lớp đồng 0,5mm mặt cắt của nó là 3,2mm. Hình 14: Cách đặt module Luận văn thạc sĩ Phùng Công Phi Khanh 29 - Loop antenna là loại antenna cuộn, Diện tích bên trong từ 4 đến 10 cm2. - Whip antenna là antenna roi. Mạch điện lắp ráp của module thu và phát được chỉ ra trên hình 16 [6]. Hình 16a: Mạch điện của module phát TX2 Hình 16b: Mạch điện của module thu RX2 Luận văn thạc sĩ Phùng Công Phi Khanh 30 2.3 Vi điều khiển 89C52 ♦ Khái quát chung Vi điều khiển 89C52 thuộc họ vi điều khiển 8051 của intel. Các nhà sản suất khác như simens, Advanced micro Devices, philips … Được cấp phép làm các nhà cung cấp thứ hai cho các chíp của họ 8051. Vi mạch 89C52 có các đặc trưng sau : - 8KB ROM. - 256 byte RAM. - 4 port xuất nhập 8-bít. - 3 Bộ định thời 16-bít. - Mạch giao tiếp nối tiếp. - Bộ xử lý bít. - Không gian nhớ dữ liệu ngoài 64k. - Không gian nhớ chương trình ngoài 64k [1]. Hình 17 cho ta sơ đồ chân của chíp 89C52. Mô tả tóm tắt chức năng của từng chân như sau: 32 trong số 40 chân của 89C52 có công dụng xuất hoặc nhập, tuy nhiên 26 trong 32 đường này có mục đích khác. Mỗi một đường có thể hoạt động xuất /nhập hoặc hoạt động như một đường điều khiển hoặc hoạt động như một đường địa chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp. Các đặc trưng đã đề cập ở trên được trình bày trong sơ đồ khối ở hình 18. 32 chân nêu trên hình thành 4 port 8-bit. Như vậy các thiết kế chỉ yêu cầu một mức tối thiểu bộ nhớ ngoài hoặc các thành phần bên ngoài khác. Hình 17: Sơ đồ chân của 89C52 Luận văn thạc sĩ Phùng Công Phi Khanh 31 Ta có thể sử dụng các port này làm nhiệm vụ xuất/nhập, 8 đường cho mỗi port có thể được xử lý như một đơn vị giao tiếp với các thiết bị song song như máy in, bộ biến đổi D-A …hoặc mỗi đường có thể hoạt động độc lập giao tiếp với một thiết bị đơn bit như chuyển mạch, LED, BJT, FET cuộn dây, động cơ, loa … Hình 18: Sơ đồ khối của 89C52 Luận văn thạc sĩ Phùng Công Phi Khanh 32 ♦ Port 0 Port 0 (các chân từ 32 đến 39 trên 89C52) có 2 công dụng. Trong các thiết kế có tối thiểu thành phần, port 0 được sử dụng làm nhiệm vụ xuất/nhập. Trong các thiết kế lớn hơn có bộ nhớ ngoài, port 0 được trở thành bus địa chỉ và bus dữ liệu đa hợp (byte thấp của bus địa chỉ nếu là địa chỉ) ♦ Port 1 Port 1 có một công dụng xuất/nhập (các chân từ 1 đên 8 trên 89C52). Các chân của port 1 được ký hiệu là P1.0, P1.1,…., P1.7 và được dùng để giao tiếp với thiết bị bên ngoài khi có yêu cầu. Chúng được dùng để giao tiếp với các thiết bị ngoại vi. Ta có thể sử dụng P1.0 và P1.1 hoặc làm các đường xuất/nhập hoặc làm các lối vào cho mạch định thời thứ ba. ♦ Port 2 Port 2 (các chân từ 21 đén 28 trên 89C52) có 2 công dụng, hoặc làm nhiệm vụ xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16-bit cho các thiết kế có bộ nhớ chương trình ngoài hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài. ♦ Port 3 Port 3 (các chân từ 10 đến 17 trên 89C52) có 2 công dụng. Khi không hoạt động xuất/nhập, các chân của port 3 có nhiều chức năng riêng (mỗi chân có chức năng riêng liên quan đến các đặc trưng cụ thể của 89C52). Dưới đây là chức năng của các chân của port 3 và chân P1.0, P1.1 của port 1. Chân Tên Chức năng. P3.0 RxD Chân nhận dữ liệu của port nối tiếp. P3.1 TxD Chân phát dữ liệu của port nối tiếp. P3.2 0INT Ngõ vào ngắt ngoài 0. P3.3 1INT Ngõ vào ngắt ngoài 1. P3.4 T0 Ngõ vào bộ định thời/đếm 0. Luận văn thạc sĩ Phùng Công Phi Khanh 33 P3.5 T1 Ngõ vào bộ định thời/đếm 1. P3.6 WR Điều khiển ghi bộ nhớ dữ liệu ngoài. P3.7 RD Điều khiển đọc bộ nhớ dữ liệu ngoài. P1.0 T2 Ngõ vào bộ định thời/đếm 2. P1.1 T2EX Nạp lại/thu nhận của bộ định thời 2. ♦ Chân cho phép bộ nhớ chương trình PSEN 89C52 cung cấp cho ta 4 tín hiệu điều khiển bus. Tín hiệu cho phép bộ nhớ chương trình PSEN (program store enable) là tín hiệu xuất trên chân 29. Đây là tín hiệu điều khiển cho phép ta truy xuất bộ nhớ chương trình ngoài. Chân này thường nối với chân cho phép xuất OE (output enable) của EPROM (hoặc ROM) để cho phép đọc các byte lệnh. Tín hiệu PSEN ở logic 0 trong suốt thời gian tìm-nạp lệnh. Các mã nhị phân của chương trình hay opcode (mã thao tác) đọc được từ EPROM, qua bus dữ liệu và được chốt vào thanh ghi lệnh IR của 89C52 để được giải mã. Khi thực thi một chương trình chứa ở ROM nội, PSEN được duy trì ở logic không tích cực (logic 1). ♦ Chân cho phép chốt địa chỉ ALE 89C52 sử dụng chân 30 chân xuất tín hiệu cho phép chốt địa chỉ ALE (address latch enable) để phân chia (demultiplexing) bus dữ liệu và bus địa chỉ. Khi port 0 được sử dụng làm bus địa chỉ/dữ liệu đa hợp, chân ALE xuất tín hiệu để chốt địa chỉ (byte thấp của địa chỉ 16-bit) vào một thanh ghi ngoài trong suốt nửa đầu của chu kỳ bộ nhớ (memory cycle). Sau khi thực hiện, các chân của port 0 sẽ xuất/nhập dữ liệu hợp lệ trong suốt nửa thứ 2 của chu kì bộ nhớ. Tín hiệu ALE có tấn số bằng 1/6 tần số của mạch dao động bên trong chíp vi điều khiển và có thể được dùng làm xung clock cho phần còn lại của hệ thống. Nếu mạch dao động có tần số 12 MHz, tín hiệu ALE có tần số 2 MHz. Luận văn thạc sĩ Phùng Công Phi Khanh 34 Ngoại lệ duy nhất là trong thời gian thưc thi lệnh MOVX, một xung ALE sẽ bị bỏ qua (xem hình 2.10). Chân ALE còn được dùng để nhận xung ngõ vào lập trình cho EPROM trên chip đối với các phiên bản của 8051 có EPROM này. ♦ chân truy xuất ngoài EA Lối vào này (chân 31) có thể được nối với 5V (logic 1) hoặc với GND (logic 0). Nếu chân này nối lên 5 V, 89C52 thực thi chương trình này trong ROM nội (chương trình nhỏ hơn 8k). Nếu chân này nối với GND (và chân PSEN cũng ở logic 0), chương trình cần thực thi chứa ở bộ nhớ ngoài. Nếu chân EA ở logic 0, ROM nội bên trong chip được vô hiệu hoá và chương trình cần thực thi chứa ở EPROM bên ngoài. Các phiên bản EPROM của 89C52 còn sử dụng chân EA làm chân nhận điện áp cấp điện 21V (Vpp) cho việc lập trình EPROM nội (nạp EPROM). ♦ Chân RESET (RST) Lối vào RST (chân 9) là lối vào xoá chính (master reset) của 89C52 dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống. Khi ngõ vào này được treo ở logic 1 tối thiểu hai chu kỳ máy, các thanh ghi bên trong của 8051 được nạp các giá trị thích hợp cho việc khởi động lại hệ thống . ♦ Các chân XTAL1 và XTAL2 Mạch dao động bên trong chip 89C52 được ghép với thạch anh bên ngoài ở chân XTAL1 và XTAL2 (chân 18 và 19). Các tụ ổn định cũng được yêu cầu. Tần số danh định của thạch anh là 12 MHz cho hầu hết các chip cùng họ, mạch dao động trong chip không cần thạch anh bên ngoài ở hình 19, một nguồn xung clock TTL có thể được nối với các chân XTAL1 và XTAL1. Hình 19 89C52 XTAL2 XTAL1 TTL 18 19 Luận văn thạc sĩ Phùng Công Phi Khanh 35 ♦ Cấu trúc của port xuất/nhập Sơ đồ mạch bên trong cho các chân của port xuất/nhập được vẽ đơn giản như hình 20. Hình 20: Mạch các chân của port xuất/nhập. Chú thích: - 8051 internal bus : bus nội của 8051. - Read latch : đọc bộ chốt. - Internal pull up : Kéo lên bên trong. - Read pin : đọc chân cổng. - Port pin : chân cổng. - Port latch : bộ chốt của port. - Write to latch : ghi vào bộ chốt. Việc ghi đến 1 chân của port sẽ nạp dữ liệu vào bộ chốt của port, lối ra Q của bộ chốt điều khiển một transistor trường và transistor này nối với chân của port. Khả năng fanout của các port 1, 2 và 3 là 4 tải vi mạch TTL loại Schottky công suất thấp (LS) còn của port 0 là 8 tải loại LS [1]. Điện trở kéo lên (pull up) sẽ không có ở port 0 (trừ khi port này làm nhiệm vụ của bus địa chỉ/dữ liệu đa hợp), do vậy một điện trở kéo lên bên ngoài phải được cần đến, điều này rất thuận lợi khi ghép nối với các mạch số sử dụng điện áp khác. 89C52 internal bus D Q Port latch Port pin Write To lacth Internal Pull-up VccRead lacth Read pin Luận văn thạc sĩ Phùng Công Phi Khanh 36 nhau. Giá trị của điện trở này phụ thuộc vào đặc tính lối vào của của thành phần ghép nối với chân của port. Ở đây ta thấy có cả 2 khả năng : “đọc bộ chốt” và “đọc chân port”. Các lệnh yêu cầu thao tác đọc-sửa-ghi (như lệnh CPL P1) đọc bộ chốt để tránh sự hiểu nhầm mức điện áp do sự kiện dòng tải tăng. Các lệnh nhập một bit của port (như MOV C, P1.5) đọc chân port. Trong trường hợp này bộ chốt của port phải chứa 1 nếu không FET sẽ được kích bão hoà và điều này kéo lối ra xuống mức thấp. Việc reset hệ thống sẽ set tất cả các bộ chốt port, do vậy các chân port có thể được dùng làm các lối vào mà không cần phải set các bộ chốt port một cách tường minh. Tuy nhiên nếu bộ chốt port bị xoá (như CLR P1.5), chân port không thể làm nhiệm vụ tiếp theo là lối vào trừ khi trước tiên ta phải set bộ chốt (như SETB P1.5). Hình 18 không trình bày mạch cho các chức năng khác của các port 0 , 2 và 3. Khi các chức năng khác được sử dụng, các mạch kích ngõ ra được chuyển đến một địa chỉ nội (port 2), địa chỉ/dữ liệu (port 0) hoặc tín hiệu điều khiển (port 3) tương ứng. ♦ Tổ chức bộ nhớ Hầu hết các bộ vi xử lý (CPU) đều có không gian nhớ chung cho dữ liệu và chương trình. Điều này cũng hợp lý vì các chương trình thường được lưu trên đĩa và được nạp vào RAM để thực thi, vậy thí cả hai dữ liệu và chương trình, đều lưu trú trong Ram. Các chip vi điều khiển hiếm khi được sử dụng giống như các CPU trong các hệ máy tính, thay vào đó chúng được dùng làm thành phần trung tâm trong các thiết kế hướng điều khiển, trong đó bộ nhớ có dung lượng giới hạn, không có ổ đĩa và hệ điều hành. Chương trình điều khiển phải thường trú trong ROM. Luận văn thạc sĩ Phùng Công Phi Khanh 37 Vi điều khiển 89C52 có không gian bộ nhớ riêng cho chương trình và dữ liệu. Cả hai bộ nhớ chương trình và dữ liệu đều đặt bên trong chip, tuy nhiên ta có thể mở rộng bộ nhớ chương trình và bộ nhớ dữ liệu bằng cách sử dụng các chíp nhớ bên ngoài với dung lượng tối đa là 64K cho bộ nhớ chương trình (hay bộ nhớ mã) và 64 K cho bộ nhớ dữ liệu. Bộ nhớ nội trong chip bao gồm ROM và RAM. RAM trên chíp bao gồm vùng RAM đa chức năng (nhiều công dụng), vùng RAM với từng bit được định địa chỉ (gọi tắt là vùng RAM định địa chỉ bit), các dãy (bank) thanh ghi và các thanh ghi chức năng đặc biệt SFR (special function register). Hai đặc tính đáng lưu ý là : (a) các thanh ghi và port xuất/nhập được định địa chỉ theo kiểu ánh xạ bộ nhớ (memory mapped) và được truy xuất như một vị trí nhớ trong nội bộ nhớ. (b)Vùng stack thường trú trong RAM trên chip (RAM nội) thay vì ở trong RAM ngoài như đối với các bộ vi xử lý. Bộ nhớ dữ liệu trên chíp được chia thành : các dãy thanh ghi, các vùng RAM và các dãy thanh ghi đặc biệt. Trên đây là những tóm tắt phần cứng của 89C52 để hiểu chi tiết về nó và sử dụng được nó ta có thể nghiên cứu tài liệu tham khảo [1] [4]. Luận văn thạc sĩ Phùng Công Phi Khanh 38 Chương 3: THIẾT KẾ VÀ CHẾ TẠO HỆ THỐNG Để thực hiện đề tài chúng tôi thiết kế phần cứng thành hai modul gọi là modul 1 và modul 2. Modul 1 bao gồm khối cảm nhận, khối xử lý, khối nguồn và khối phát thông tin. Modul 2 bao gồm khối thu thông tin, nguồn nuôi, và thiết bị ghép nối với máy vi tính. 3.1 Thiết kế chế tạo modul 1 Modul 1 có sơ đồ như hình 23. Hình 23: Sơ đồ modul 1. Ở đây MS5535 sử dụng nguồn 3 V còn vi điều khiển sử dụng nguồn 5V. Như vậy có hai giá trị điện áp nguồn khác nhau. Để đơn giản và phù hợp với ý tưởng mạng cảm nhận không dây, chúng tôi dùng nguồn pin 9 V và sử dụng hai bộ ổn áp 5 V và 3 V tạo ra giá trị nguồn 5 V cho vi điều khiển 89C52 và TX2 và 3 V cho modul MS5535 như chỉ ra ở hình 24. Hình 24: Sơ đồ phần nguồn. Pin 9V Lọc ổn áp 5V Lọc ổn áp 3V Lọc Khối nguồn Modul MS 5535 Vi điều khiển 89C52 Modul TX2-433-160-5V Anten Luận văn thạc sĩ Phùng Công Phi Khanh 39 Ghép nối giữa khối cảm nhận MS5535 và khối xử lý (vi điều khiển 89C52). Vi điều khiển 89C52 hoạt động với các mức logic vào ra với mức cao là từ 2,8 V đến 5 V, và mức thấp là từ 0 V đến 2,4 V [4]. Với MS5535 như trên thì làm việc với mức cao là 2,4 V đến 3 V (từ 80%Vcc đến 100%Vcc) và mức thấp là từ 0 V đến 0,6 V (từ 0 đến 20%Vcc). Với mức thấp thì việc ghép nối giữa vi điều khiển với MS5535 không có khó khăn, nhưng với mức cao thì không phù hợp. Có thể khắc phục bằng cách đưa vào một bộ đệm, khi đó mạch điện sẽ lớn hơn và tiêu thụ nguồn nhiều hơn. Vi điều khiển 89C52 có port 0 không có điện trở treo lên nguồn nên có thể sử dụng port này với trở bên ngoài 5K1 treo lên nguồn 3V. Để dễ dàng cho việc lắp mạch chúng tôi chọn chân 2, 3, 4, 5 của MS5535 tương ứng với P0.2, P0.3, P0.4, P0.5 của vi điều khiển (còn chân 1 nối mát và chân 6 nối với nguồn 3V). Với vi điều khiển 89C52 chúng tôi sử dụng dao động thạch anh 11,0592 MHz sự lựa chọn này sẽ thuận lợi cho việc chuyền thông qua port nối tiếp. Chú thích: R1=5k1Ω, R2=10kΩ, R3=100Ω, C1=10µF, C2=C3=33PF, y=11,0592MHz. MS 5535 89C52 TX2 5V 3V 5V R2 R3 4 R1 6 5 4 3 2 1 P0.5 P0.4 P0.3 P0.2 9 18 19 40 31 11 20 5 2 4 1 3 C1 C2 C3 y Reset Hình 25: Sơ đồ mạch điện modul 1 Luận văn thạc sĩ Phùng Công Phi Khanh 40 Ghép nối giữa khối xử lý và khối phát thông tin. Ở đây khá thuận lợi vì chúng sử dụng chung nguồn 5V. Modul TX2-433-160-5V là dạng modul tương thích với vi điều khiển. Sơ đồ ghép nối của vi điều khiển 89C52 với MS5535 và TX2 trên hình 25. 3.2 Thiết kế chế tạo modul 2 Tín hiệu được thu từ anten vào RX2, sau đó đưa ra dữ liệu số ở chân 6. Để giao tiếp với máy tính qua cổng COM chúng tôi sử dụng IC MAX232 [3]. RX2 và MAX232 sử dụng nguồn 5V nên chúng tôi sử dụng nguồn 5V tạo ra bằng cách ổn áp 5V từ pin 9V. Mạch điện modul 2 được vẽ trên hình 26 . Từ mạch điện modul 1 và modul 2 chúng tôi thiết kế lắp ráp được 2 bo mạch như hình 27. Bo mạch modul 1 sử dụng hai tập hợp dây cắm, một cho Hình 26: Sơ đồ mạch điện modul 2 Chú thích: T =A564, C1=C2=C=C4=1µF, R=10k Pin 9V Lọc ổn áp 5V Lọc RX2 MAX232 PC 1 2 4 6 5 3 T R C1 C2 C3 C4 1 3 4 5 10 16 15 6 7 2 5V Luận văn thạc sĩ Phùng Công Phi Khanh 41 MS5535 và một cho nguồn pin với mạch. Bo mạch modul 2 sử dụng hai tập hợp dây cắm, một cho nguồn pin và một cho chuyền dữ liệu đến cổng COM. Hình27b: Bo mạch modul 2 Hình 27a: Bo mạch modul 1 Luận văn thạc sĩ Phùng Công Phi Khanh 42 Chương 4: THIẾT KẾT PHẦN MỀM 4.1 Khái quát các phần mềm cho hệ thống. Từ mục đích đề tài và thiết kế phần cứng, ta có hai phần mềm cần thiết kế để mạch điện làm việc là: - Lập trình phần mềm nhúng cho vi điều khiển 89C52 Phần mềm để 89C52 giao tiếp với MS5535 điều khiển và thu dữ liệu từ MS5535, xử lý dữ liệu và truyền đến TX2 qua port nối tiếp. Phần mềm này cho phép modul 1 làm việc độc lập tự động và tự trị. - Phần mềm lập trình trên máy vi tính để đọc dữ liệu từ cổng COM xử lý dữ liệu và hiển thị kết quả ra màn hình. Để thu được giá trị áp suất và nhiệt độ cần phải sử dụng biểu đồ thu áp suất, nhiệt độ hình 7. Các giá trị WORD1, WORD2, WORD3, WORT4 mang thông tin về các hệ số bù được chuẩn hoá của nhà máy, nên không thay đổi giá trị, chỉ có D1, D2 là thay đổi theo nhiệt độ và áp suất. Khi đó chỉ cần đọc một lần các giá trị WORD1, WORD2, WORD3, WORD4 còn các giá trị D1, D2 thì đọc liên tục trước mỗi lần hiển thị. Để thuận tiện, cần đọc giá trị WORD1, WORD2, WORD3, WORD4 rồi tính các hệ số C1, C2, C3, C4, C5, C6 sau đó lưu vào máy tính (mạch điện và phần mềm này trình bày trong phần phụ lục 1). Máy tính đọc các giá trị D1, D2 từ modul 2 qua cổng com, tính toán D1, D2 với 6 hệ số C1, C2, C3, C4, C5, C6 để thu các giá trị nhiệt độ và áp suất và hiển thị kết quả lên màn hình. Vi điều khiển làm nhiệm vụ đọc giá trị D1, D2 đưa ra port nối tiếp. Do dữ liệu được truyền không dây, để thu được thông tin chính xác (không nhầm với nhiễu) phải gửi dữ liệu theo từng khung (frame). Giao thức truyền nhận dữ liệu theo khung được định dạng như sau: Start Data End Luận văn thạc sĩ Phùng Công Phi Khanh 43 Trong đó : Tên nhóm byte Số lượng (byte) Chú thích Start 1 Nhóm byte bắt đầu của frame Data 4 Nhóm byte dữ liệu D1 và D2 End 1 Nhóm byte kết thúc của frame 4.2 Phần mềm nhúng cho vi điều khiển. Trong phần cứng cho thấy chân 2, 3, 4, 5 của MS5535 nối với P0.2, P0.3, P0.4, P0.5 nên phần mềm lập trình cho vi điều khiển có các nhiệm vụ sau: - Tạo ra tần số MCLK ổn định cho MS5535, tần số này đưa ra trên chân P0.5. Tần số MCLK của MS5535 nằm trong dải từ 30 KHz đến 35 KHz. Mạch vi điều khiển 89C52 làn việc với dao động thạch anh là 11,0592 MHz nên chọn tần số 32,914 KHz có được bằng cách dùng bộ định thời 0 ở chế độ tự nạp lại 8 bít với giá trị nạp cho bộ định thời là –14. - Khởi động port nối tiếp của vi điều khiển 89C52 với tốc độ 9600 baund, tốc độ này có được bằng cách đặt bộ định thời 1 ở chế độ nạp lại 8 bít với giá trị nạp là –3. - Tạo chuỗi xung reset P0.4 để reset MS5535, xung reset được dùng đến trước mỗi lần điều khiển MS5535 để đọc dữ liệu. Chuỗi xung này được thiết lập theo sơ đồ xung ở hình 9a. - Tạo ra chuỗi xung trên chân P0.4 để điều khiển MS5535 và thu giá trị D1 trên chân P0.3 (nối với chân DOUT của MS5535). Thiết lập chuỗi xung này theo sơ đồ xung ở hình 9b. Tạo chuỗi xung trên chân P0.4 để điều khiển MS5535 và thu giá trị D2 trên chân P0.3.Thiết lập chuỗi xung này theo sơ đồ hình 9c. - Truyền các gói tin ra port nối tiếp theo định dạng đã thiết kế. Luận văn thạc sĩ Phùng Công Phi Khanh 44 Từ mục đích của phần mềm nhúng ta có sơ đồ thuật toán của nó như hình 28. Phần mềm nhúng cho vi điều khiển được viết bằng hợp ngữ trình bầy trong phụ lục 2. Hình 28 Sơ đồ thuật toán phần mềm nhúng cho vi điều khiển. 4.3 Lập trình cho máy vi tính Ở máy vi tính có nhiệm vụ thu nhận các gói tin từ cổng COM rồi tính ra các giá trị nhiệt độ áp suất hiển thị ra màn hình. Phần mềm được viết bằng khởi tạo - Tạo tần số MCLK cho MS5535 - Khởi động port tốc độ 9600 baund - Gọi xung Reset MS5535 - Tạo xung SCLK thu giá trị D1 - Đọc giá trị D1 vào vi điều khiển - Gọi xung reset MS5535 - Tạo xung SCLK thu giá trị D2 - Đọc giá trị D2 vào vi điều khiển Truyền giá trị D1 và D2 ra port nối tiếp theo khung đã được định dạng Luận văn thạc sĩ Phùng Công Phi Khanh 45 ngôn ngữ Visual Basic đây là ngôn ngữ khá mạnh và thông dụng ngày nay. Chúng tôi chọn ngôn ngữ này để đơn giản trong thiết kế. Ta có thể tìm hiểu ngôn ngữ này qua tài liệu [2]. Phần mềm phải thực hiện được những mục đích sau: - Điều khiển thu nhận dữ liệu từ cổng COM máy vi tính - Đọc gói tin và kiểm tra gói tin. - Tách thông tin từ gói tin và thực hiện tính toán các giá trị D1, D2 với các hệ số để thu được giá trị nhiệt độ và áp suất. - Hiển thị giá trị nhiệt độ và áp suất ra màn hình. Phần mềm cho máy vi tính thực hiện các mục đích trên có sơ đồ thuật toán như hình 29 và giao diện trên máy vi tính trên hình 30. Hình 29: Sơ đồ thuật toán phần mềm nhận và xử lí dữ liệu trên máy tính Khởi tạo Khởi động port nối tiếp ở chế độ nhận với tốc độ 9600 baund - Đọc giá trị của port theo các khung truyền - Kiểm tra lỗi của khung truyền - Tách tín hiệu D1 và D2 ra khỏi khung Tính toán D1 và D2 với các hệ số C1, C2, C3, C4, C5, C6 để thu được giá trị áp suất và nhiệt độ. Hiển thị giá trị áp suất và nhiệt độ. Luận văn thạc sĩ Phùng Công Phi Khanh 46 Chương trình nhỏ gọn được đóng gói thành bộ cài để có thể cài đặt trên các máy tính khác nhau. Toàn bộ mã nguồn được trình bầy trong phần phụ lục 3. Hình 30: Giao diện hiển thị kết quả trên máy tính của hệ thống. Luận văn thạc sĩ Phùng Công Phi Khanh 47 Chương 5. THỬ NGHIỆM HỆ THỐNG VÀ ĐÁNH GIÁ KẾT QUẢ 5.1 Tổ chức thử nghiệm Để thử nghiệm hệ thống có nhiều cách. Do không có điều kiện thử nghiệm với các thiết bị chính xác cao nên chúng tôi đã thử nghiện với thí nghiệm như hình 31. Thử nghiệm bao gồm modul MS5535 đặt trong một bình không khí cách li với bên ngoài. MS5535 nối ra modul 1 bên ngoài. Bình không khí được nối ra ngoài với một ống nước và thông với khí trời. Lúc này áp suất trong bình không khí nơi đặt modul MS5535 sẽ bằng áp suất tại mặt nước trong bình không khí và tỉ lệ với áp suất của cột nước h. Khi chiều cao h của cột nước thay đổi thì áp suất trong ống nơi đặt MS5535 cũng thay đổi theo. Nhờ vậy ta có thể có được các giá trị áp suất khác nhau. Thử nghiệm việc thay đổi chiều cao của cột nước h thực hiện bằng việc đưa ống nước lên cao hay hạ thấp xuống trong khi bình không khí vẫn để cố định. 5.2 Cách tính toán thông số áp suất. Từ sơ đồ này ta thấy áp suất nơi đặt MS5535 sẽ là: Pss ± 2α/R = Pkq + Pn± 2α/R0 Pss là áp suất trong bình không khí nơi đặt modul sensor MS5535. R0 là bán kính của ống bên ngoài. R là bán kính của bình không khí. Pkq là áp suất khí quyển bên ngoài. Modul 1 h MS5535 Pkq Pss Hình 31: Sơ đồ thử nghiệm Luận văn thạc sĩ Phùng Công Phi Khanh 48 Pn là áp suất của cột nước. α = 0,073 là hệ số căng mặt ngoài của nước. Giá trị 2α/R và 2α/R0 là sức căng mặt ngoài của nước trong bình không khí và trong ống bên ngoài, vì α rất nhỏ và R,R0 lớn nên ta bỏ qua tác động này. Khi đó ta có: Pss = Pkq + Pn Áp suất Pkq là áp suất đo được bên ngoài của bình không khí (áp suất khí quyển) tại thời điểm thử nghiệm và coi như không đổi trong suốt quá trình thử nghiệm. Pn là áp suất của cột nước: Pn = D.g.h D = 1000kg/m3 là khối lượng riêng của nước. g = 10m/s2 Là gia tốc rơi tự do. h là chiều cao cột nước. Nếu h lấy đơn vị là m thì áp suất Pn sẽ là: Pn = D.g.h (N/m2) = 104.h (N/m2) = 100.h (mbar) Nếu h lấy đơn vị là mm thì ta có Pss = h/10 + Pkq (mbar). 5.3 Kết quả của thử nghiệm. Với những giả thiết và tính toán trên. Chúng tôi đã tiến hành đo và thu được những kết quả sau. những kết quả này một số là kết quả chính xác, nhưng một số kết quả là trung bình của vài phép đo. Pkq = 1018 mbar (áp suất không khí lý thuyết là 1013 mbar tại mức mặt biển). Plt = Áp suất theo tính toán lý thuyết: Plt = h/10 +1018 (mbar) Ptn = Áp suất theo thực nghiệm đo được. STT Chiều cao h (mm) Plt (mbar) Ptn (mbar) Sai số (Ptn- Plt) 1 250 1043 1046 +3 Luận văn thạc sĩ Phùng Công Phi Khanh 49 2 350 1053 1055 +2 3 450 1063 1064 +1 4 550 1073 1074 +1 5 650 1083 1083 0 6 750 1093 1092 -1 7 850 1103 1102 -1 8 950 1113 1112 -1 9 1050 1123 1122 -1 10 1150 1133 1134 +1 11 1250 1143 1141 -2 12 1350 1153 1150 -3 13 1450 1163 1158 -5 14 1550 1173 1168 -5 15 1650 1183 1179 -4 16 1750 1193 1189 -4 17 1850 1203 1197 -4 18 1950 1213 1208 -5 19 2050 1223 1218 -5 20 2150 1233 1225 -8 21 2250 1243 1236 -7 22 2350 1253 1245 -8 23 2450 1263 1256 -7 24 2550 1273 1265 -8 Từ những kết quả trên ta nhận thấy sai số lớn nhất là 8 (mbar) và sai số nhỏ nhất là 0 (mbar). Những kết quả này mới là bước đầu chưa thể hiện hết Luận văn thạc sĩ Phùng Công Phi Khanh 50 toàn dải đo của MS5535. Nhưng những kết quả đó rất khả quan để đánh giá độ chính xác của MS5535 đúng như nhà sản xuất đưa ra và tin cậy được. Có thể vẽ biểu đồ của áp suất Plt và Ptn theo chiều cao cột nước h. Trên biểu đồ hình 32 cho thấy đường Ptn bám rất sát đường Plt điều này cho thấy MS5535 đánh giá khá chính xác giá trị áp suất. Giá trị này phù hợp với những tài liệu gốc do nhà sản xuất cung cấp về MS5535. 1000 1050 1100 1150 1200 1250 1300 0 400 800 1200 1600 2000 2400 2800 h (mm) P (m ba r) Plt (mbar) Ptn (mbar) Hình 32: biểu đồ áp suất theo cột nước. Luận văn thạc sĩ Phùng Công Phi Khanh 51 KẾT LUẬN Luận văn đã khai thác sử dụng nhiều ứng dụng của các công nghệ hiện đại mang tính thời sự như công nghệ MEMS, cộng nghệ vi điện tử, công nghệ tin học… cụ thể là: • Đã nghiên cứu thử nghiệm đầu đo MS5535, đây là một dạng đầu đo MESM đang có xu hướng phát triển mạnh. • Nghiên cứu khai thác vi điều khiển 89C52 và ứng dụng vi điều khiển 89C52 vào điểm đo cảm nhận môi trường . • Nghiên cứu sử dụng vi mạch truyền dữ liệu không dây TX2 và RX2 Và xử lý dữ liệu thu được trên máy tính. Đề tài sẽ thực sự có ý nghĩa hơn, khi tiếp tục nghiên cứu bổ sung cả về ý tưởng khoa học và các thiết kế cụ thể, đó là bổ sung chức năng mạng và làm phần mềm nhúng thực hiện chức năng này cho vi điều khiển. Cuối cùng chúng tôi mong muốn được sự đóng góp ý kiến, giúp đỡ và cộng tác nghiên cứu để đề tài có ý nghĩa hơn và áp dụng vào đời sống xã hội. Luận văn thạc sĩ Phùng Công Phi Khanh 52 TÀI LIỆU THAM KHẢO [1] Tống Văn On, Hoàng Đức Hải - Họ vi điều khiển 8051. Nhà xuất bản lao động và xã hội (2001). [2] Nguyễn Tiến, Đặng Xuân Hường, Nguyễn văn Hào, Trương Ngọc Vân. Kĩ năng lập trình Visual basic 5. Nhà xuất bản giáo dục (1997), tr 293 - 321. [3] Trần Quang Vinh - Cấu trúc máy vi tính. Nhà xuất bản giáo dục (1999) tr 156 - 168. [4] Ashutosh Ahluwlia, Sencer yeralan. Programming And Interfacing the 8051 Microcontroller. Addison-Weslay publicshing company. [5] [6] Luận văn thạc sĩ Phùng Công Phi Khanh 53 PHỤ LỤC 1 Sơ đồ mạch điện thu các giá trị WORD1, WORD2, WORD3, WORD4. Chú thích : R = 330Ω, R1 = 5k1, R2 = 10k, R3 = 100Ω. C1= 10µF, C2 = C3 = 33pF. Y=11,0592MHz. Vi điều khiển có nhiệm vụ giao tiếp với MS5535 để thu và sau đó sẽ đưa ra port 1 các giá trị WORD1, WORD2, WORD3, WORD4. Port 1 được nối với các LED chỉ thị khi một giá trị nào của lối ra bằng 0 đèn sáng và bằng 1 đèn sẽ tắt. vì có 4 WORD nên cần đọc 8 byte, các byte này được đọc và đưa ra port 1 lần lượt, sau mỗi lần đưa ra được trễ đi 2 giây để ta ghi kết quả. Để nhận biết byte thứ nhất ta đưa ra port 1 đầu tiên giá trị 00h lúc này các LED đều sáng. việc tách bít và thu các giá trị C1, C2, C3, C4, C5, C6 thực hiện bằng tay theo hình 8 sau khi ghi giá trị các WORD . Với modul MS5535 chúng tôi thử nghiệm thu được như sau: WORD1: 01010111 00011101 WORD2: 01001100 11011101 WORD3: 01100011 01101101 MS5535 5V R2 R3 C2 C3 y Reset R1 R 1 6 5 4 3 2 38 37 36 35 40 31 20 19 18 9 1 2 3 4 5 6 7 8 5V 5V R R R R R R R 89C52 C1 R1R1 R1 3V Luận văn thạc sĩ Phùng Công Phi Khanh 54 WORD4: 01101111 00110101 Từ các WORD tính ra được các hệ số theo sơ đồ hình 8 như sau: C1 = ( 0101011100011)2 = 2787 C2 = (1010100110011)2 = 5427 C3 = (0110001101)2 = 397 C4 = (011011110)2 = 222 C5 = (011101101101)2 = 1901 C6 = (0110101)2 = 53 Phần mềm cho vi điều khiển đọc các giá trị này như sau: ;======================================================= ;Doc cac word cua MS5535. ;MS5535 co 6 chan nhu sau : GND(1)=0v - VDD(6)=3v ; SCLK(2)=P0.2 - DOUT(3)=P0.3 - DIN(4)=P2.4 - MCLK(5)=P0.5 ; Su dung thanh anh 11,0592M. ;======================================================= mod$52 org 00h ljmp start org 0bh ljmp mclk org 30h start: mov ie,#10000010b ;Ngat toan cuc,dinh thoi 0 mov ip,#00000010b ;Uu tien ngat cho bo dinh thoi 0 mov tmod,#00100010b ;dinh thoi 0 che do nap lai 8 bit mov th0,#high(-14) ; Tao tan so 33KHz setb tr0 ;Bat dau dinh thoi 0 main: mov a,#00h Luận văn thạc sĩ Phùng Công Phi Khanh 55 call delay2 mov p1,a lcall reset lcall word1 mov p1,b lcall delay2 mov p1,a lcall delay2 lcall reset lcall word2 mov p1,b lcall delay2 mov p1,a lcall delay2 lcall reset lcall word3 mov p1,b lcall delay2 mov p1,a lcall delay2 lcall reset lcall word4 mov p1,b lcall delay2 mov p1,a lcall delay2 ljmp main Luận văn thạc sĩ Phùng Công Phi Khanh 56 ;===================Tao xung MCLK =33KHz ================ mclk: cpl p0.5 reti ;====================Tao xung reset======================== reset: clr p0.2 mov r0,#8 loopreset1: setb p0.4 setb P0.2 clr p0.2 clr p0.4 setb p0.2 clr p0.2 djnz r0,loopreset1 mov r0,#5 loopreset2: setb p0.2 clr p0.2 djnz r0,loopreset2 ret ;======================Doc gia tri WORD1================== word1: clr p0.2 setb p0.4 setb p0.2 ;bit 0 cao clr p0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 57 setb p0.2 ;bit 1 cao clr p0.2 setb p0.2 ;bit 2 cao clr p0.2 clr p0.4 ;bit 3 thap setb p0.2 clr p0.2 setb p0.4 ;bit 4 cao setb p0.2 clr p0.2 clr p0.4 ;bit 5 thap setb p0.2 clr p0.2 setb p0.4 ;bit 6 cao setb p0.2 clr p0.2 clr p0.4 ;bit 7 thap setb p0.2 clr p0.2 setb p0.4 ;bit 8 cao setb p0.2 clr p0.2 clr P0.4 ;bit 9 thap setb P0.2 clr P0.2 setb P0.2 ;bit 10 thap clr P0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 58 setb P0.2 ;bit 11 thap clr P0.2 setb p0.2 jnb P0.3,$ clr p0.2 setb p0.2 mov r0,#8 loopword1msb: clr p0.2 ;Thu MSB cua WORD1 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopword1msb mov b,a mov r0,#8 loopword1lsb: clr p0.2 ;Thu LSB cua WORD1 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopword1lsb ret ;====================Doc gia tri WORD2==================== word2: clr p0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 59 setb p0.4 setb p0.2 ;bit 0 cao clr p0.2 setb p0.2 ;bit 1 cao clr p0.2 setb p0.2 ;bit 2 cao clr p0.2 clr p0.4 ;bit 3 thap setb p0.2 clr p0.2 setb p0.4 ;bit 4 cao setb p0.2 clr p0.2 clr p0.4 ;bit 5 thap setb p0.2 clr p0.2 setb p0.4 ;bit 6 cao setb p0.2 clr p0.2 setb p0.4 ;bit 7 cao setb p0.2 clr p0.2 clr p0.4 ;bit 8 thap setb p0.2 clr p0.2 clr P0.4 ;bit 9 thap setb P0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 60 clr P0.2 setb P0.2 ;bit 10 thap clr P0.2 setb P0.2 ;bit 11 thap jnb p0.3,$ clr P0.2 setb p0.2 clr p0.2 setb p0.2 mov r0,#8 loopword2msb: clr p0.2 ;Thu MSB cua WORD2 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopword2msb mov b,a mov r0,#8 loopword2lsb: clr p0.2 ;Thu LSB cua WORD2 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopword2lsb ret Luận văn thạc sĩ Phùng Công Phi Khanh 61 ;=====================Doc gia tri WORD3=================== word3: clr p0.2 setb p0.4 setb p0.2 ;bit 0 cao clr p0.2 setb p0.2 ;bit 1 cao clr p0.2 setb p0.2 ;bit 2 cao clr p0.2 clr p0.4 ;bit 3 thap setb p0.2 clr p0.2 setb p0.4 ;bit 4 cao setb p0.2 clr p0.2 setb p0.4 ;bit 5 cao setb p0.2 clr p0.2 clr p0.4 ;bit 6 thap setb p0.2 clr p0.2 clr p0.4 ;bit 7 thap setb p0.2 clr p0.2 setb p0.4 ;bit 8 cao setb p0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 62 clr p0.2 clr P0.4 ;bit 9 thap setb P0.2 clr P0.2 setb P0.2 ;bit 10 thap clr P0.2 setb P0.2 ;bit 11 thap clr P0.2 setb p0.2 jnb P0.3,$ clr p0.2 setb p0.2 mov r0,#8 loopword3msb: clr p0.2 ;Thu MSB cua WORD3 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopword3msb mov b,a mov r0,#8 loopword3lsb: clr p0.2 ;Thu LSB cua WORD3 mov c,p0.3 crl a mov acc.0,c Luận văn thạc sĩ Phùng Công Phi Khanh 63 setb p0.2 djnz r0,loopword3lsb ret ;======================Doc gia tri WORD4================== word4: clr p0.2 setb p0.4 setb p0.2 ;bit 0 cao clr p0.2 setb p0.2 ;bit 1 cao clr p0.2 setb p0.2 ;bit 2 cao clr p0.2 clr p0.4 ;bit 3 thap setb p0.2 clr p0.2 setb p0.4 ;bit 4 cao setb p0.2 clr p0.2 setb p0.4 ;bit 5 cao setb p0.2 clr p0.2 clr p0.4 ;bit 6 thap setb p0.2 clr p0.2 setb p0.4 ;bit 7 cao setb p0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 64 clr p0.2 clr p0.4 ;bit 8 thap setb p0.2 clr p0.2 clr P0.4 ;bit 9 thap setb P0.2 clr P0.2 setb P0.2 ;bit 10 thap clr P0.2 setb P0.2 ;bit 11 thap jnb p0.3,$ clr P0.2 setb p0.2 clr p0.2 setb p0.2 mov r0,#8 loopword4msb: clr p0.2 ;Thu MSB cua WORD4 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopword4msb mov b,a mov r0,#8 loopword4lsb: clr p0.2 ;Thu LSB cua WORD4 Luận văn thạc sĩ Phùng Công Phi Khanh 65 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopword4lsb ret ;=======================Tre 2 giay======================== delay2: mov t2con,#00h ;Time 2 hoat dong o che do dinh thoi mov r6,#200 ;Nap gia tri 100 cho r6 loop2: mov th2,#high(-10000) ;By cao cua -10000 mov tl2,#low(-10000) ;By thap cua -10000 setb tr2 ;Time 2 bat dau dinh thoi wait2: jnb tf2,wait2 clr tr2 ;Time 2 ngung hoat dong clr tf2 ;Xoa co tran tf2 djnz r6,loop2 ret ;======================================================= end Luận văn thạc sĩ Phùng Công Phi Khanh 66 PHỤ LỤC 2 Phần mềm lập trình cho vi điều khiển 89C52 ;======================================================= ;Doc gia tri D1,D2 cua MS5535 va dua ra port noi tiep. ;MS5535 co 6 chan nhu sau : GND(1)=0v - VDD(6)=3v ; SCLK(2)=P0.2 - DOUT(3)=P0.3 - DIN(4)=P2.4 - MCLK(5)=P0.5 ;Su dung thanh anh 11,0592 MHz ;======================================================= $mod52 org 00h ljmp start org 0bh ljmp mclk org 30h start: mov ie,#10000010b ;Ngat toan cuc, dinh thoi 0 mov scon,#01000010b ;Uart 8 bit khong dong bo che do 1 va ti=1 mov ip,#00000010b ;Uu tien ngat cho bo dinh thoi 0 mov tmod,#00100010b ;dinh thoi 0 va 1 che do nap lai 8 bit mov th0,# -14 ;Tao tan so 33KHz mov th1,#-3 ;Toc do baud 9600 setb tr0 ;Bat dau dinh thoi 0 setb tr1 ;Bat dau dinh thoi 1 main: lcall reset lcall datad1 ;Doc gia tri ap suat lcall reset lcall datad2 ;Doc gia tri nhiet do Luận văn thạc sĩ Phùng Công Phi Khanh 67 mov a,#00000000b again0: jnb ti,again0 clr ti mov sbuf,a ;Truyen BYTE bat dau again1: jnb ti,again1 clr ti mov sbuf,r1 ;Truyen MSB cua D1 again2: jnb ti,again2 clr ti mov sbuf,r2 ;Truyen LSB cua D1 again3: jnb ti,again3 clr ti mov sbuf,r3 ;Truyen MSB cua D2 again4: jnb ti,again4 clr ti mov sbuf,r4 ;Truyen LSB cua D2 mov a,#11111111b again5: jnb ti,again5 clr ti mov sbuf,a ;Truyen BYTE ket thuc ljmp main ;====================Tao xung mclk = 33KHz ================ mclk: cpl p0.5 reti ;========================Tao xung reset==================== reset: clr p0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 68 mov r0,#8 loopreset1: setb p0.4 setb P0.2 clr p0.2 clr p0.4 setb p0.2 clr p0.2 djnz r0,loopreset1 mov r0,#5 loopreset2: setb p0.2 clr p0.2 djnz r0,loopreset2 ret ;=======================Doc gia tri D1=================== datad1: clr p0.2 setb p0.4 setb p0.2 ;bit 0 cao clr p0.2 setb p0.2 ;bit 1 cao clr p0.2 setb p0.2 ;bit 2 cao clr p0.2 setb p0.2 ;bit 3 cao clr p0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 69 clr p0.4 ;bit 4 thap setb p0.2 clr p0.2 setb p0.4 ;bit 5 cao setb p0.2 clr p0.2 clr p0.4 ;bit 6 thap setb p0.2 clr p0.2 clr p0.4 ;bit 7 thap setb p0.2 clr p0.2 clr p0.4 ;bit 8 thap setb p0.2 clr p0.2 clr p0.4 ;bit 9 thap setb p0.2 jnb p0.3,$ ;Cho khi p0.3 len 1 clr p0.2 setb p0.2 clr p0.2 setb p0.2 clr p0.2 jb p0.3,$ ;Cho khi p0.3 ve 0 setb p0.2 mov r0,#8 loopdatad1msb: Luận văn thạc sĩ Phùng Công Phi Khanh 70 clr p0.2 ; Thu MSB cua D1 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopdatad1msb mov r1,a mov r0,#8 loopdatad1lsb: clr p0.2 ;Thu LSB cua D1 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopdatad1lsb mov r2,a ret ;========================Doc gia tri D2================== datad2: clr p0.2 setb p0.4 setb p0.2 ;bit 0 cao clr p0.2 setb p0.2 ;bit 1 cao clr p0.2 setb p0.2 ;bit 2 cao clr p0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 71 setb p0.2 ;bit 3 cao clr p0.2 clr p0.4 ;bit 4 thap setb p0.2 clr p0.2 clr p0.4 ;bit 5 thap setb p0.2 clr p0.2 setb p0.4 ;bit 6 cao setb p0.2 clr p0.2 clr p0.4 ;bit 7 thap setb p0.2 clr p0.2 clr p0.4 ;bit 8 thap setb p0.2 clr p0.2 clr p0.4 ;bit 9 thap setb p0.2 clr p0.2 setb p0.2 jnb p0.3,$ ;cho khi p0.3 len 1 clr p0.2 setb p0.2 clr p0.2 jb p0.3,$ ;Cho khi p0.3 ve 0 setb p0.2 Luận văn thạc sĩ Phùng Công Phi Khanh 72 mov r0,#8 loopdatad2msb: clr p0.2 ;Thu MSB cua D2 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopdatad2msb mov r3,a mov r0,#8 loopdatad2lsb: clr p0.2 ;Thu LSB cua D2 mov c,p0.3 crl a mov acc.0,c setb p0.2 djnz r0,loopdatad2lsb mov r4,a ret ;======================================================= end Luận văn thạc sĩ Phùng Công Phi Khanh 73 PHỤ LỤC 3 Mã nguồn lập trình VISUAL BASIC cho giao diện máy tính. '====================================================== Dim DataRecei() As Byte Dim dT, OFF, SENS As Double Dim Apsuat As Double Dim Nhietdo As Double Dim D1, D2 As Double Private Sub Command1_Click() End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 MSComm1.PortOpen = True End Sub Private Sub MSComm1_OnComm() ' Branch according to the CommEvent property. Select Case MSComm1.CommEvent ' Event messages. Case comEvReceive DataRecei = MSComm1.Input If DataRecei(0) = 0 and DataRecei(5) = 255 Then Luận văn thạc sĩ Phùng Công Phi Khanh 74 D1 = 256 * DataRecei(1) + DataRecei(2) D2 = 256 * DataRecei(3) + DataRecei(4) dT = D2 - (8 * C5.Text + 10000) OFF = C2.Text + (C4.Text - 250) * dT / 4096 + 10000 SENS = C1.Text / 2 + (C3.Text + 200) * dT / 8192 + 3000 Apsuat = SENS * (D1 - OFF) / 4096 + 1000 Nhietdo = (200 + dT * (C6.Text + 100) / 2048) / 10 T1.Text = Format$(Apsuat, "00") T2.Text = Format$(Nhietdo, "0.00") Else MSComm1.PortOpen = False MSComm1.InBufferCount = 0 MSComm1.InputLen = 0 MSComm1.PortOpen = True End If End Select '======================================================= End Sub

Các file đính kèm theo tài liệu này:

  • pdfThiết kế chế tạo khối chuyển đổi và xử lý thông tin từ đầu đo phục vụ điểm đo cảm nhận môi trường.pdf
Luận văn liên quan