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ả.
95 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2515 | Lượt tải: 0
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:
- 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.pdf