Tài liệu Đề tài Hệ đo áp dụng cho cảm biến áp suất MPX2300D do công ty Motorola cung cấp: ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn
Tóm tắt
Bản khóa luận tốt nghiệp gồm có ba phần riêng biệt trong đó phần một là lý thuyết
bộ khuyếch đại lock-in tiếp theo là tổng quan chung cấu trúc vi điều khiển dsPic30F4011
và cuối cùng là phần thực nghiệm. Chương 1 về lý thuyết bộ khuyếch đại lock-in trước
tiên ta sẽ tìm hiểu tại sao lại phải dùng bộ khuyếch đại lock-in trong đo lường tín hiệu nhỏ
và khái niệm bộ khuyếch lock-in, tiếp theo là sơ đồ cấu tạo chung của một bộ khuyếch đại
lock-in cổ điển. Cuối cùng là phần tìm hiểu cấu tạo và nguyên tắc hoạt động của bộ
khuyếch đại lock-in số và tương tự. Trong chương 2 về tổng quan cấu trúc của vi điều
khiển dsPic30F4011 chúng ta sẽ tìm hiểu chung về họ vi điều khiển DsPic30F tiếp đó là
đặc điểm chung của họ vi điều khiển dsPic30F4011. Cuối cùng ta sẽ tìm hiểu sâu hơn về
cấu trúc của vi điều khiển dsPic30F4011. Phần còn lại của bản khóa luận sẽ là phần thực
nghiệm, ở đây trình b...
72 trang |
Chia sẻ: hunglv | Lượt xem: 1189 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Hệ đo áp dụng cho cảm biến áp suất MPX2300D do công ty Motorola cung cấp, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn
Tóm tắt
Bản khóa luận tốt nghiệp gồm có ba phần riêng biệt trong đó phần một là lý thuyết
bộ khuyếch đại lock-in tiếp theo là tổng quan chung cấu trúc vi điều khiển dsPic30F4011
và cuối cùng là phần thực nghiệm. Chương 1 về lý thuyết bộ khuyếch đại lock-in trước
tiên ta sẽ tìm hiểu tại sao lại phải dùng bộ khuyếch đại lock-in trong đo lường tín hiệu nhỏ
và khái niệm bộ khuyếch lock-in, tiếp theo là sơ đồ cấu tạo chung của một bộ khuyếch đại
lock-in cổ điển. Cuối cùng là phần tìm hiểu cấu tạo và nguyên tắc hoạt động của bộ
khuyếch đại lock-in số và tương tự. Trong chương 2 về tổng quan cấu trúc của vi điều
khiển dsPic30F4011 chúng ta sẽ tìm hiểu chung về họ vi điều khiển DsPic30F tiếp đó là
đặc điểm chung của họ vi điều khiển dsPic30F4011. Cuối cùng ta sẽ tìm hiểu sâu hơn về
cấu trúc của vi điều khiển dsPic30F4011. Phần còn lại của bản khóa luận sẽ là phần thực
nghiệm, ở đây trình bày toàn bộ quá trình thiết kế bộ khuyếch đại lock-in gồm có phần
cứng, phần mềm và kết quả thực nghiệm. Phần cứng có các khối riêng biệt, với mỗi khối
có trình bày lý thuyết và cơ sở thiết kế. Còn phần mềm được trình bày dưới dạng sơ đồ
khối của cấu trúc chương trình với các modul riêng biệt. Sau khi thiết kế được bộ khuyếch
đại lock-in số, ta sẽ thử nghiệm một hệ đo cho cảm biến có nhân là bộ khuyếch đại lock-
in vừa chế tạo. Cụ thể trong bản khóa luận sẽ thử nghiệm một hệ đo áp dụng cho cảm biến
áp suất MPX2300D do công ty Motorola cung cấp.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn
MỤC LỤC
Mở Đầu ............................................................................................................................ 1
Chương 1. Bộ Khuếch Đại Lock In ................................................................................ 2
1.1. Tổng quan về bộ khuyếch đại lock in ..................................................................... 2
1.1.1. Giới thiệu ......................................................................................................... 2
1.1.2. Khái niệm “lock in amplifier” .......................................................................... 6
1.1.3. Cấu trúc chung của bộ khuyếch đại lock in ...................................................... 6
1.2. Bộ khuyếch đại lock in tương tự (Analog Lock-In Amplifiers) .............................. 7
1.3. Bộ khuyếch đại lock in số (Digital Lock-In Amplifiers) ........................................ 9
Chương 2. Vi Điều Khiển DsPic30F4011 ..................................................................... 11
2.1. Giới thiệu chung về họ vi điều khiển Dspic .......................................................... 11
2.2. Đặc điểm chung của vi điều khiển dsPic30F4011 ................................................. 11
2.2.1. Khối xử lý trung tâm CPU ............................................................................. 11
2.2.2. Bộ chuyển đổi tương tự số ADC .................................................................... 12
2.2.3. Các cổng vào ra I/O Port và các ngoại vi ....................................................... 12
2.2.4. Bộ xử lý tín hiệu số ........................................................................................ 12
2.2.5. Một số đặc điểm khác .................................................................................... 13
2.3. Cấu trúc của vi điều khiển dsPic30F4011 ............................................................. 13
2.3.1. Khối xử lý trung tâm CPU ............................................................................. 13
2.3.2. Khối tạo địa chỉ AGU .................................................................................... 17
2.3.2.1. Chế độ địa chỉ lệnh .................................................................................. 17
2.3.2.2. Chế độ đảo bit địa chỉ .............................................................................. 19
2.3.3. Tổ chức bộ nhớ và bộ nhớ chương trình ......................................................... 20
2.3.3.1. Không gian địa chỉ chương trình.............................................................. 20
2.3.3.2. Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng các lệnh bảng ............. 21
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn
2.3.3.3. Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng không gian chương
trình ..................................................................................................................... 21
2.3.4. Các cổng vào ra I/O Port ................................................................................ 23
2.3.5. Ngắt và cơ chế ngắt ........................................................................................ 25
2.3.6. Các bộ định thời ............................................................................................. 27
2.3.7. Bộ chuyển đổi tương tự số ADC .................................................................... 30
2.3.7.1. Bộ đệm kết quả biến đổi A/D .................................................................. 30
2.3.7.2. Các bước thực hiện biến đổi A/D ............................................................. 30
Chương 3. Thực Nghiệm .............................................................................................. 33
3.1. Phần Cứng ............................................................................................................ 33
3.1.1. Các khối nguồn .............................................................................................. 34
3.1.2. Khối các bộ lọc thông thấp ............................................................................. 35
3.1.3. Khối biến đổi DAC ........................................................................................ 36
3.1.3.1. Hoạt động của DAC và tính chất của nó .................................................. 36
3.1.3.2. Các tham số của bộ chuyển đổi DA ......................................................... 38
3.1.3.3. Các mạch DAC điển hình ........................................................................ 39
3.1.3.4. Ghép nối ADC với vi điều khiển ............................................................. 41
3.1.3.5. Bộ biến đổi DAC sử dụng trong khóa luận .............................................. 41
3.1.4. Khối khuyếch đại tín hiệu vào ........................................................................ 43
3.1.4.1. Tìm hiểu về một số mạch khuyếch đại thuật toán và tính chất của nó ...... 43
3.1.4.2. Bộ khuyếch đại sử dụng trong khóa luận (AD620) .................................. 47
3.1.5. Khối LCD ...................................................................................................... 48
3.1.6. Khối xử lý trung tâm ...................................................................................... 49
3.2. Phần Mềm ............................................................................................................ 49
3.3. Các kết quả thực nghiệm ...................................................................................... 51
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn
3.3.1. Mạch khuyếch đại lock-in đã chế tạo và tín hiệu vào ra lock in ...................... 51
3.3.2.Thử nghiệm bộ khuyếch đại lock-in với cảm biến áp suất MPX2300D ........... 55
3.3.2.1. Cảm biến áp suất MPX2300D ................................................................. 55
3.3.2.2. Kết quả thí nghiệm .................................................................................. 56
Kết Luận ....................................................................................................................... 59
Phụ Lục ......................................................................................................................... 60
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn
Bảng các ký hiệu, chữ viết tắt
VĐK : Vi điều khiển
ADC : Chuyển đổi tương tự số (Analog digital convert)
DAC : Chuyển đổi số tương tự (Digital analog convert)
KĐTT : Khuyếch đại thuật toán
AC : Dòng điện xoay chiều
DC : Dòng điện một chiều
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 1
Mở Đầu
Với sự phát triến mạnh hiện nay của việc ứng dụng các cảm biến thì việc thiết kế
những hệ đo và khảo sát cảm biến là rất cần thiết, nó là một thiết bị không thể thiếu cho
bất kỳ một phòng thí nghiệm nào. Một hệ đo nhạy và có chính xác cao còn được ứng
dụng trong y học, đó chính là những máy xét nghiệm y sinh. Ngoài ra nó còn có ý nghĩa
quan trọng tới nhiều ứng dụng cần độ chính xác cao trong khoa học kỹ thuật (ví dụ như:
đo lường chính xác, robotic, ....)
Nhiều cảm biến được thiết kế có lối ra điện áp rất nhỏ, chính vì vậy việc để phát
hiện sự sai lệch và đo điện áp ra là rất khó khăn. Do đó ý tưởng thiết kế một hệ đo lường
có độ nhạy cao cho những cảm biến này là rất quan trọng, và một trong những ý tưởng đó
là hệ đo có sử dụng bộ khuyếch đại lock-in. Với nhân là một bộ khuyếch đại lock-in
chúng ta sẽ có được một hệ đo sensor khá lý tưởng, nó có thể cung cấp những phép đo độ
phân giải cao những tín hiệu một cách tương đối sạch với độ lớn và tần số riêng biệt. Việc
thiết kế một hệ đo mà có nhân là bộ khuyếch đại lock-in cổ điển cũng khá phức tạp vì
trong bộ khuyếch đại cần có các bộ trộn kênh và bộ lọc có độ chính xác cao. Ngoài ra
trong bộ khuyếch đại lock-in tương tự thì ảnh hưởng từ việc trôi nhiệt và già hóa của các
linh kiện sẽ gây ra sự sai số lớn cho hệ đo. Nhưng nếu ta thiết kế một bộ khuyếch đại
lock-in số thì khả thi hơn nhiều. Với công nghệ số, một vi điều khiển có thể đảm nhiệm
tốt vai trò là bộ bộ lọc và bộ trộn kênh có độ chính xác cao. Vì được số hóa nên sẽ không
có hiện tượng trôi nhiệt và già hóa linh kiện gây sai số ảnh hưởng tới hệ đo.Chính vì vậy
một bộ khuyếch đại lock-in số là lựa chọn thông minh nhất của người sử dụng.
Và Trong khóa luận này em sẽ tìm hiểu thiết kế một bộ khuyếch đại lock-in số dựa
trên vi điều khiển DsPic. Và từ đó hình thành nên một hệ đo đơn giản với nhân là bộ
khuyếch đại lock-in số và sẽ thử nghiệm hệ đo với cảm biến áp suất MPX2300D của
Motorola.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 2
Chương 1. Bộ Khuếch Đại Lock In
1.1. Tổng quan về bộ khuyếch đại lock in
1.1.1. Giới thiệu
Trong rất nhiều ứng dụng để đo những tín hiệu AC rất bé có thể bé tới vài nanovolts
người ta không thể sử dụng phép đo thông thường (sử dụng các máy đo vạn năng chẳng
hạn). Đó chính là nguyên nhân ra đời của bộ khuyếch đại lock in (lock-in amplifier).
Vậy tại sao ta lại không dễ dàng đo được những tín hiệu AC nhỏ (vài nanovolts)? Ta
xét các ví dụ sau.[8]
Ví dụ 1: Cho một tín hiệu sóng sine 10nV tần số 10kHz. Rõ ràng là sự khuyếch đại
cần phải cho ra tín hiệu lớn hơn ồn. Một bộ khuếch đại tốt (low-noise) sẽ có mật độ ồn lối
vào khoảng 5nV/sqrt(Hz). Nếu băng thông của bộ khuyếch đại là 100kHz và hệ số
khuyếch đại là 1000 lần, chúng ta thu được ở lối ra:
Tín hiệu lối ra: (10nV x 1000) = 10uV
Tín hiệu nhiễu dải rộng: (5nV x KHz100 x 1000)=1,6mV
Như vậy chúng ta không có nhiều cơ hội để đo tín hiệu này nếu chúng ta không chọn ra
tần số chúng ta mong muốn.(Xem minh họa trên Hình 1.1)
Ví dụ 2: Nếu ta lắp thêm một bộ lọc dải thông vào bộ khuyếch đại với Q=100 (một
bộ lọc cực kỳ tốt – Q ở đây được xem là hệ số phẩm chất của bộ lọc) tâm thông là 10kHz,
bất kỳ tín hiệu nào trong vùng 100Hz (10kHz/Q) xung quanh tâm cũng sẽ được phát hiện.
Nhiễu trong trường hợp này sẽ là (5nV x Hz100 x 1000) = 50uV, và tín hiệu sẽ vẫn là
10uV. Nhiễu ở lối ra vẫn lớn hơn nhiều lần tín hiệu, và không thể tạo ra được một phép
đo chính xác. Như vậy tăng hệ số khuếch đại không thể nào giúp tăng tỉ số tín hiệu trên
ồn (S/N).(Xem minh họa trên Hình 1.2)
Vậy muốn đo được tín hiệu, ta phải thiết kế một bộ lọc có hệ số Q lớn, nhưng việc
này là rất khó và không khả thi.Tuy nhiên một bộ dò nhạy pha (Phase Sensitive Detector)
có thể có Q lớn cỡ 10000. Nên ồn trong tín hiệu đã nêu ở 2 ví dụ trên chỉ còn là 10u.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 3
Hình 1.1. Nhiễu và tín hiệu[2]
Hình 1.2. Ồn bị triệt tiêu sau khi qua bộ lọc thông thấp[2]
Kỹ thuật dò nhạy pha (Phase-Sensitive Detection) :
Có thể nói “Bộ dò nhạy pha - Phase Sensitive Detection (PSD)” là trái tim của bộ
khuyếch đại lock in, nó được xem như là một bộ hoàn điệu hay bộ trộn. Máy dò tìm được
vận hành bởi việc nhân lên hai tín hiệu cùng nhau. Phân tích sau đây chỉ ra tại sao nó cho
ta những tín hiệu mong muốn.
Hình 1.3 chỉ ra vị trí ở đầu bộ khuyếch đại lock in phát hiện ra một đường tín hiệu
không tạp nhiễu (noise-free) hình sin. Xác định trong sơ đồ như “Signal In”. Thiết bị
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 4
được nuôi với nguồn tín hiệu tham chiếu (hay còn gọi là tín hiệu reference là dạng tín
hiệu hình sin, được cài đặt sẵn).
Hình 1.3.Tín hiệu, tín hiệu tham chiếu và tích của hai tín hiệu[15]
Bộ dò nhạy pha được vận hành bởi việc nhân hai tín hiệu này và kết qủa là ta thu
được tín hiệu Demodulator Output như trên hình. Từ đó ta thấy không có sự khác pha
giữa tín hiệu vào và tín hiệu reference. Demodulator output giữ dạng hình sin, nhưng tần
số thì gấp 2 lần tần số của tín hiệu reference, mức trung bình là dương.
Hình 1.4 cũng như hình 1.3 nhưng có sự dịch pha 900 của tín hiệu reference. Bây giờ
Demodulator output vẫn là một sóng sin có tần số bằng hai lần tần số tín hiệu reference,
nhưng mức trung bình thì bằng 0.
Hình 1.4. Tín hiệu, tín hiệu tham chiếu dịch 90o và tích của hai tín hiệu[15]
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 5
Từ đây ta có thể nhìn thấy mức trung bình là:
- Tỉ lệ với tích số của tần số biên độ của tín hiệu vào và tín hiệu reference.
- Liên quan tới góc pha giữa tín hiệu vào và tín hiệu reference.
Nó sẽ được đánh giá nếu biên độ tín hiệu reference được giữ tại một giá trị cố định
và pha của tín hiệu reference được điều chỉnh để đảm bảo một chuyển dịch pha tương đối
bằng zero. Sau đó có thể đo xác định được mức trung bình biên độ tín hiệu đầu vào.
Mức trung bình tất nhiên là thành phần DC của lối ra được giải biến điệu
(demodulator output). Để lấy được thành phân một chiều này rất đơn giản, ta chỉ cần cho
tín hiệu qua bộ lọc thông thấp. Sau khi được lọc, tín hiệu DC được đo bằng phương pháp
truyền thống (dùng vôn kế).
Ở trên ta xét đến trường hợp tín hiệu vào là một tín hiệu sạch không có ồn. Nhưng
trong những ứng dụng thực tế tín hiệu vào luôn đi kèm với ồn nhiễu. Ồn nhiễu này không
có tần số cố định hoặc không có mối quan hệ pha cố định. Ồn này cũng được nhân lên với
tín hiệu reference, nhưng không đưa ra bất kỳ mức thay đổi DC nào.
Xét một tín hiệu vào có dạng hình sin, tín hiệu này không có ồn: Vin=Acos(ωt), ở
đây ω=2πF, F là tần số tín hiệu vào. Trong bộ khuyếch đại lock in được cung cấp một tín
hiệu reference có cùng tần số với tín hiệu vào có dạng sau: Vref = Bcos(ωt + θ), θ là độ
lệch pha giữa 2 tín hiệu.
Nếu ta nhân 2 tín hiệu này với nhau ta được :
Vout = A cos (ωt) . B cos (ωt + θ)
= AB cosωt (cos ωt cos θ - sin ωt sin θ)
= AB(cos2ωt cos θ - cos ωt sin ωt sin θ)
= AB((½ + ½cos 2ωt)cos θ - ½sin 2ωt sin θ)
= ½AB((1+ cos 2ωt)cos θ - sin 2ωt sin θ)
= ½AB(cos θ + cos 2ωt cos θ - sin 2ωt sin θ)
= ½ABcos θ + ½AB(cos 2ωt cos θ - sin 2ωt sin θ)
= ½ABcos θ + ½ABcos(2ωt + θ)
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 6
Bây giờ nếu ta cho tín hiệu ra Vout qua bộ lọc thông thấp thì điều hiển nhiên là thành
phần 2ωt sẽ bị loại bỏ. Vậy kết quả là ta chỉ còn lại tín hiệu DC (một chiều). Và điều đó
dẫn tới Vout =½ABcosθ tỉ lệ với biên độ tín hiệu vào Vin. Thuật toán này cho ta một ý
tưởng về việc biến một tín hiệu AC thành DC có giá trị bằng biên độ của AC ban đầu
nhân với N lần.
Trong những hoàn cảnh thực tế, tín hiệu đầu vào thường đi kèm với nhiễu ồn, nhưng
nếu chúng ta cài đặt một bộ lọc thông thấp phù hợp ở đầu ra của tín hiệu thì mọi tín hiệu
nhiễu với mối quan hệ pha khác nhau và vậy thì bất kỳ tần số khác nhau nào có thể bị loại
bỏ ở tín hiệu cuối cùng.
1.1.2. Khái niệm “lock in amplifier”
Bộ khuyếch đại lock in căn bản là thiết bị với khả năng kép. Nó có thể khôi phục
những tín hiệu trong sự có mặt của nhiễu ồn. Nói một cách khác, nó có thể cung cấp
những phép đo độ phân giải cao những tín hiệu một cách tương đối sạch với độ lớn và tần
số riêng biệt.
Tuy nhiên, những thiết bị hiện đại đưa ra nhiều hơn hai chức năng cơ bản trên. Ví dụ
một bộ khuyếch đại lock in hiện đại có thể có những chức năng sau:
- Thiết bị khôi phục tín hiệu AC
- Đo pha
- Đo tiếng ồn, nhiễu.
- Vôn kế vector
- Bộ phân tích phổ
-..v.v.........
Chính vì tính linh hoạt này mà nó có ý nghĩa rất quan trọng trong bất kỳ một phòng
thí nghiệm nào.
1.1.3. Cấu trúc chung của bộ khuyếch đại lock in
Bộ khuyếch đại lock-in gồm có các thành phần chính là : bộ khuyếch đại tín hiệu vào
và ra, bộ lọc thông dải (bandpass filter), bộ trộn (mixer), bộ lọc thông thấp (lowpass filter)
và bộ phát tín hiệu reference.(Hình 1.5)
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 7
Hình 1.5. Sơ đồ bộ khuyếch đại lock in [15]
Có hai cách thực thi sơ đồ trên. Trong phương pháp cổ điển tất cả các chức năng của
bộ lock-in đều được thực hiện bằng kỹ thuật analog (tương tự). Nhưng cũng có một
phương pháp khác có thể thực thi sơ đồ trên, đó là phương pháp dựa trên kỹ thuật số
(digital). Chính vì vậy có hai cách chế tạo bộ khuyếch đại lock-in : bộ khuyếch đại lock-in
tương tự và bộ khuyếch đại lock-in số sẽ được trình bày dưới đây.
1.2. Bộ khuyếch đại lock in tương tự (Analog Lock-In Amplifiers)
Sơ đồ khối của một bộ khuyếch đại lock in cổ điển hay bộ khuyếch đại lock-in
tương tự được chỉ ra trên Hình 1.6.
Hệ thống gồm có một máy khuyếch đại để tăng tín hiệu đầu vào cần đo đến một
mức thích hợp cho các thao tác sau. Một bộ lọc thông dải được dùng để loại bỏ bất kỳ
thành phần tín hiệu nào hoặc tại mức DC hoặc tại những hòa âm của tín hiệu được đo.
Tiếp đến là một máy dò nhạy pha (Phase Sensitive Detector), còn được gọi là một
bộ hoàn điệu(giải biến điệu) đồng bộ (synchronous demodulator ) hoặc bộ trộn (mixer).
Mạch này có thể có nhiều dạng, từ bộ khuyếch đại logarit đến các bộ nhân four –
quadrant. Tín hiệu vào được nhân với một tín hiệu reference được đưa ra từ hệ thống đang
được đo. Tín hiệu reference cần có một một tương quan pha cố định với tín hiệu vào. Vì
vậy bộ khuyếch đại lock-in phát ra một sóng sin reference nội tại của chính nó nhờ một
vòng khóa pha (phase-locked-loop) khóa vào tín hiệu reference của tín hiệu.
Trong quá trình xử lý tín hiệu tiếp theo ta, thường dùng chức năng kênh kép. Trong
trường hợp này tín hiệu vào được trộn đều với tín hiệu reference, và ngoài ra tín hiệu này
cũng được trộn với tín hiệu reference sau khi đã được dịch pha 900.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 8
Hình 1.6. Sơ đồ khối bộ khuyếch đại lock-in tương tự[8]
Chức năng kênh kép này có tác dụng lớn tới sự tính toán độ lớn của tín hiệu vào và
mối tương quan pha của nó với tín hiệu reference. Hai kênh riêng biệt này thường được
gọi là thành phần cùng pha (In-Phase component) và thành phần vuông pha (Quadrature
component) hoặc tương ứng là I và Q.
Cuối cùng, đầu ra từ những bộ trộn (mixer) được đưa vào bộ lọc thông thấp có khả
năng loại bỏ mọi tín hiệu không đồng bộ (non-coherent), để lại một tín hiệu DC cuối cùng
tỷ lệ với biên độ và pha của tín hiệu vào.
Có một số vấn đề với bộ khuyếch đại lock-in tương tự. Để có một sự chính xác cao,
tín hiệu reference phải có hàm lượng sóng hài rất thấp. Nó phải là một sóng hình sin thuần
khiết, bất kỳ hàm lượng sóng hài nào sẽ gây ra sự biến dạng tại đầu ra. Những máy phát
sóng hình sin tương tự có thể cũng chịu từ những biến đổi biên độ gây bởi sự biến đổi của
nhiệt độ.
Sự trôi nhiệt độ và sai số của các linh kiện trong hệ thống cũng có thể gây ra những
vấn đề khác nữa cho hệ thống tương tự.
Cuối cùng, cần nói thêm rằng bất kỳ một độ phi tuyến nào trong hệ số khuyếch đại
và pha cũng có thể dẫn đến các sai số trong tín hiệu ra. Việc khắc phục các vấn đề này
khiến cho bộ khuyếch đại lock-in tương tự trở nên một thiết bị rất đắt đỏ và được sử dụng
khi đòi hỏi các băng thông lối vào cao.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 9
1.3. Bộ khuyếch đại lock in số (Digital Lock-In Amplifiers)
Sơ đồ khối của một bộ khuyếch đại lock in số được chỉ ra trên Hình 1.7
Hình 1.7. Bộ khuyếch đại lock in số[8]
Trong một bộ khuyếch đại lock in số, phần lớn các quá trình xử lý được thực hiện
trong miền số sử dụng phần mềm và dùng phần cứng là bộ xử lý tín hiệu số (DSP). Hình
1.7 là một bộ khuyếch đại số điển hình, hệ thống này cũng có một bộ khuyếch đại
fron-end nhưng nó được nối bởi một bộ lọc Anti-alias Filter dùng để lọc bất kỳ tín hiệu
nào có tần số lớn hơn nửa tần số lấy mẫu.
Bộ điều khiển tín hiệu số (Digital signal controller) ở đây có thể sử dụng nhiều loại
chip xử lý số chuyên dụng, ví dụ như dsPic chẳng hạn (dsPic là một chip xử lý số tương
đối mạnh, tốc độ cao).
Tín hiệu reference trong bộ khuyếch đại lock in số có thể được tạo ra bên trong hoặc
bên ngoài. Trong trường hợp tín hiệu được phát sinh nội tại, những điểm mẫu riêng lẻ của
tín hiệu reference có thể tính toán tới một mức độ chính xác cao, và bởi vậy không có
những sai số thường gặp khi dùng tín hiệu reference như trong các máy lock-in tương tự.
Tín hiệu reference trong bộ khuyếch đại lock-in số được dịch pha 900 rất đơn giản bằng
cách tra cứu bảng hoặc bằng những phép toán đơn giản. Tiếp theo tín hiệu reference và tín
hiệu dịch pha reference được nhân với tín hiệu vào bởi DSP và sinh ra ra 2 kênh tín hiệu,
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 10
một kênh tín hiệu đồng pha I và một kênh tín hiệu vuông pha Q. Cuối cùng những kênh
tín hiệu này được cho qua một bộ lọc thông thấp số (cụ thể ở đây là bộ lọc số FIR) để thu
được những kết qủa cuối cùng.
Do tín hiệu vào được số hóa bởi bộ chuyển đổi ADC nên sẽ không bị mất mát. Hơn
nữa, vì tín hiệu tham chiếu (reference) được tính bằng phương pháp số nên có lượng hòa
âm rất thấp.
Điều quan trọng nữa là sự lệch gây bởi tính phi tuyến của hệ số khuyếch đại và pha
của các linh kiện tương tự sẽ bị triệt tiêu trong bộ khuyếch đại lock-in số và sẽ không có
các sai lệch gây bởi sự trôi nhiệt hoặc sự già hóa của các linh kiện.
Cuối cùng bộ vi xử lý sẽ tính toán độ lớn vector của tín hiệu ra và độ lệch pha của
tín hiệu lối vào so với tín hiệu reference qua công thức sau :
22 QIMagnitude
)/(tan 1 IQPhase
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 11
Chương 2. Vi Điều Khiển DsPic30F4011
Trong bản khóa luận này bộ xử lý số của mạch khuyếch đại lock-in số dùng một vi
điều khiển DsPic với nhãn hiệu thương mại là DsPic30F4011 của hãng Microchip. Toàn
bộ nội dung chương 2 này được lấy từ tài liệu [6].
2.1. Giới thiệu chung về họ vi điều khiển Dspic
Họ vi điều khiển 16 bit dsPic do công ty công nghệ Microchip Technology Inc. sản
xuất, được phát triển trên nền họ vi điều khiển 8 bit Pic.
Vi điều khiển dsPic là một chip xử lý mạnh với bộ xử lý 16 bit (có khả năng xử lý
dữ liệu có độ dài 16 bit). Với tốc độ tính toán cao dựa trên kiến trúc RISC, kết hợp các
chức năng điều khiển tiện ích của một bộ vi điều khiển hiệu năng cao 16-bit (high-
performance 16-bit microcontroller), có thể thực hiện chức năng của một bộ xử lý tín hiệu
số (DSP) nên dsPIC còn có thể được xem là một bộ điều khiển tín hiệu số (Digital Signal
Controller – DSC).
Họ vi điều khiển dsPic có thể đạt tới tốc độ xử lý 40 MIPS (Mega Instruction Per
Second - triệu lệnh trên một giây). Ngoài ra dsPic còn được trang bị bộ nhớ Flash, bộ nhớ
dữ liệu EEPROM và các ngoại vi hiệu năng cao và rất đa dạng các thư viện phần mềm
cho phép thực hiện các giải thuật nhúng với hiệu suất cao một cách dễ dàng trong một
khoảng thời gian ngắn. Chính vì vậy dsPic được ứng dụng rất rộng rãi trong các ứng dụng
xử lý tín hiệu số, đo lường và điều khiển tự động, .v..v...
Họ vi điều khiển dsPic được chia ra làm ba loại tùy theo mục đích của người sử
dụng :
- Bộ điều khiển số cho điều khiển motor và biến đổi nguồn (DSC Motor Control &
Power Conversion Family)
- Bộ điều khiển số cho sensor (DSC Sensor Family)
- Bộ điều khiển số đa mục đích (DSC General Purpose Family)
2.2. Đặc điểm chung của vi điều khiển dsPic30F4011
2.2.1. Khối xử lý trung tâm CPU
- Tập lệnh cơ bản gồm 84 lệnh
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 12
- Chế độ định địa chỉ linh hoạt
- Độ dài lệnh 24-bit, độ dài dữ liệu 16-bit
- Bộ nhớ chương trình Flash 24 Kbytes
- Bộ nhớ RAM độ lớn 1Kbytes
- Bộ nhớ EEPROM
- Mảng 16 thanh ghi làm việc 16-bit
- Tốc độ làm việc lên tới 40 MIPS
2.2.2. Bộ chuyển đổi tương tự số ADC
- Bộ chuyển đổi tương tự - số (ADC) 10-bit
+ Tốc độ lấy mẫu tối đa 1 Msps (Mega samples per second)
+ Tối đa 10 kênh lối vào ADC
+ Thực hiện biến đổi cả trong chế độ Sleep và Idle
- Chế độ nhận biết điện thế thấp khả lập trình
- Tạo Reset bằng nhận diện điện áp khả lập trình
2.2.3. Các cổng vào ra I/O Port và các ngoại vi
- Dòng ra, vào ở các chân I/O lớn: 25 mA
- 3 Timer 16-bit, có thể ghép 2 Timer 16-bit thành Timer 32-bit
- Chức năng Capture 16-bit
- Các bộ so sánh/PWM 16-bit
- Module SPI 3 dây (hỗ trợ chế độ Frame)
- Module I2C, hỗ trợ chế độ đa chủ tớ, địa chỉ từ 7-bit đến 10-bit
- UART có khả năng địa chỉ hoá, hỗ trợ bộ đệm FIFO
2.2.4. Bộ xử lý tín hiệu số
- Nạp dữ liệu song song
- Hai thanh chứa 40-bit có hỗ trợ bão hoà logic
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 13
- Thực hiện phép nhân 2 số 17-bit trong một chu kì máy
- Tất cả các lệnh DSP đều thực hiện trong một chu kì máy
- Dịch trái hoặc phải 16 bit trong một chu kì máy
2.2.5. Một số đặc điểm khác
- Bộ nhớ Flash: ghi/xoá lên tới 10.000 lần (điều kiện công nghiệp) và trên dưới
100.000 lần (thông thường)
- Bộ nhớ EEPROM: ghi/xoá lên tới 100.000 lần (điều kiện công nghiệp) và trên dưới
1.000.000 lần (thông thường)
- Khả năng tự nạp trình dưới điều khiển của software
- Watch Dog Timer mềm dẻo với bộ dao động RC nguồn thấp trên chip.
- Chế độ bảo vệ firmware khả lập trình
- Khả năng tự lập trình nối tiếp trên mạch điện (In Circuit Serial Programming –
ICSP)
- Có thể lựa chọn các chế độ quản lí nguồn: Sleep hoặc Idle
2.3. Cấu trúc của vi điều khiển dsPic30F4011
2.3.1. Khối xử lý trung tâm CPU
CPU của dsPic30F4011 được thiết kế trên kiến trúc RISC, nhân của CPU có một bộ
xử lí lệnh 24-bit và bộ đếm chương trình – Program Counter (PC) độ rộng 23-bit với bit ý
nghĩa thấp nhất luôn bằng 0, còn bít ý nghĩa cao nhất thì được bỏ qua trong suốt quá trình
thực hiện chương trình bình thường, chỉ trừ khi thực hiện các lệnh đặc biệt. Do đó, bộ
đếm chương trình có thể định địa chỉ lên tới 4 triệu từ lệnh của không gian bộ nhớ chương
trình được sử dụng.
Thiết bị dsPIC30F chứa 16 thanh ghi làm việc 16-bit. Mỗi thanh ghi làm việc có thể
có thể làm việc với vai trò như dữ liệu, địa chỉ hoặc thanh ghi địa chỉ offset. Thanh ghi
thứ 16 (W15) hoạt động như là con trỏ ngăn xếp mềm cho hoạt động ngắt và gọi ngắt.
Các chỉ lệnh của dsPIC30F gồm 2 lớp: Lớp MCU và Lớp DSP của lệnh. Hai lớp này
được kết hợp đồng nhất với nhau trong kiến trúc và thực hiện từ một khối thực hiện đơn.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 14
Các chỉ lệnh bao gồm nhiều chế độ địa chỉ và được chế tạo nhằm tương thích với trình
biên dịch ngôn ngữ C.
Không gian dữ liệu có thể được địa chỉ hoá thành 32K words hoặc 64 Kbytes và
được chia làm hai khối, được gọi là bộ nhớ dữ liệu X và bộ nhớ dữ liệu Y. Mỗi khối đều
có khối tạo địa chỉ - AGU (Adress Generator Unit) riêng biệt của nó. Tất cả các lệnh hoạt
động đơn độc chỉ qua bộ nhớ X, và khối AGU – quy định sự xuất hiện của một vùng dữ
liệu thống nhất. Lớp thanh chứa phép nhân (Multiply-Accumulate) – MAC của lệnh DSP
hoạt động thông qua cả hai khối AGU của bộ nhớ X và Y, nó chia địa chỉ dữ liệu thành
hai phần. Mỗi từ dữ liệu gồm 2-bytes, và tất cả các lệnh có thể định địa chỉ dữ liệu theo
bytes hoặc words (từ).
Có hai cách để truy xuất dữ liệu trong bộ nhớ chương trình đó là:
- 32 Kbytes cao của vùng nhớ dữ liệu có thể được sắp xếp trong nửa thấp của
không gian chương trình tại biên của 16K từ chương trình bất kỳ, được định nghĩa
bởi thanh ghi PSVPAG 8-bit (Program Space Visibility Page). Do đó các lệnh có thể
truy cập không gian chương trình như không gian dữ liệu, nhưng có một giới hạn là
nó cần thêm một chu kỳ lệnh nữa. Chỉ có 16 bít thấp của mỗi từ lệnh có thể sử dụng
phương thức truy cập này.
- Truy cập trực tiếp không tuyến tính của các trang 32K từ nằm trong không gian
chương trình cũng có thể sử dụng các thanh ghi làm việc, thông qua bảng lệnh đọc
và ghi. Bảng lệnh đọc và ghi có thể được sử dụng để truy cập cả 24 bit của một từ
lệnh.
Khối X AGU (khối AGU của bộ nhớ X) cũng hỗ trợ việc đảo bit địa chỉ trên địa chỉ
đích kết quả nhằm đơn giản hoá tối đa dữ liệu vào hoặc ra để chúng thích hợp cho thuật
toán FFT cơ số 2.
Với tất cả các lệnh, nhân của dsPIC30F có khả năng thực hiện việc đọc bộ nhớ dữ
liệu hoặc bộ nhớ chương trình, đọc thanh ghi làm việc, ghi vào thanh ghi làm việc và đọc
bộ nhớ chương trình mỗi chu kì lệnh. Như vậy, lệnh 3 toán hạng được hỗ trợ, cho phép
thực hiện phép tính C = A + B trong một chu kì lệnh.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 15
Hình 2.1. Sơ đồ khối DsPic30F4011
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 16
Hình 2.2. Các thanh ghi của khối xử lý trung tâm
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 17
Công cụ DSP được tích hợp vào vi xử lý làm tăng ý nghĩa của một CPU mạnh về
thuật toán. Đặc điểm của nó là thực hiện ở tốc độ cao một phép nhân hai số 17-bit, một
khối số học và logic (ALU) 40-bit, hai thanh chứa có khả năng bão hoà 40-bit và một bộ
dịch hai hướng 40-bit. Dữ liệu trong thanh chứa hoặc bất kỳ một thanh ghi làm việc nào
có thể được dịch trái 15 bit hay dịch trái 16 bit chỉ trong một chu kỳ lệnh. Các lệnh DSP
hoạt động thống nhất với tất cả các lệnh khác và được thiết kế nhằm thích hợp với việc xử
lý thời gian thực.
Lớp MAC của lệnh có thể đồng thời nạp hai toán hạng dữ liệu từ bộ nhớ trong khi
đang nhân hai thanh ghi W. Để kích hoạt chế độ nạp đồng thời của toán hạng, không gian
dữ liệu được chia nhỏ cho các lệnh này và tuyến đối với các lệnh khác. Việc này được
thực hiện rõ ràng và rất linh hoạt bằng cách dành một vài thanh ghi làm việc cho mỗi
không gian địa chỉ cho lớp MAC của lệnh.
Nhân của vi xử lý không hỗ trợ đường ống đa tầng lệnh, nhưng một lệnh đơn tầng sẽ
sử dụng kĩ thuật tiền nạp, truy cập và giải mã từng phần lệnh nhằm mục tiêu một lệnh chỉ
thực hiện trong một chu kỳ.
2.3.2. Khối tạo địa chỉ AGU
Nhân của vi xử lý dsPIC chứa hai khối tạo địa chỉ độc lập là X AGU và Y AGU.
Khối Y AGU hỗ trợ đọc dữ liệu 16-bit cho lớp MAC của lệnh DSP. Các khối AGU trong
dsPIC hỗ trợ 3 kiểu địa chỉ dữ liệu:
- Địa chỉ tuyến tính.
- Địa chỉ vòng.
- Địa chỉ đảo bit.
Chế độ địa chỉ tuyến tính và địa chỉ vòng có thể áp dụng cho không gian dữ liệu
hoặc không gian chương trình. Chế độ đảo bit địa chỉ áp dụng cho các địa chỉ không gian
dữ liệu
2.3.2.1. Chế độ địa chỉ lệnh
Các chế độ địa chỉ được cung cấp trong lớp MAC của các lệnh thì có khác nhau đôi chút ở
các lệnh khác nhau.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 18
Bảng 2.1. Các chế độ định địa chỉ cơ bản đựơc hỗ trợ
Lệnh thanh ghi tệp
Tất cả các lệnh thanh ghi đều sử dụng trường địa chỉ 13-bit để trực tiếp định địa chỉ
dữ liệu ở 8192 bytes đầu của bộ nhớ dữ liệu (gần không gian dữ liệu). Tất cả các lệnh
thanh ghi tệp đều tận dụng thanh ghi làm việc W0, thanh ghi làm việc trong các lệnh này.
Lệnh MCU
Các lệnh MCU 3 toán hạng có dạng như sau:
Toán hạng 3 = Toán hạng 1 Toán hạng 2
Trong đó Toán hạng 1 luôn là thanh ghi làm việc (ví dụ: chế độ địa chỉ chỉ có thể là
thanh ghi trực tiếp). Toán hạng 2 có thể là thanh ghi W, lấy dữ liệu từ bộ nhớ dữ liệu,
hoặc 5 bit thông thường. Kết quả được đặt trong có thể là thanh ghi W hoặc một địa chỉ
cố định.
Lệnh di chuyển và tích luỹ
Lệnh di chuyển và các lớp DSP tích luỹ của lệnh làm cho sự mềm dẻo của địa chỉ
cao hơn các lệnh khác. Tất cả các lệnh MCU, lệnh di chuyển và tích luỹ đều hỗ trợ chế độ
địa chỉ, và cũng hỗ trợ chế độ thanh ghi gián tiếp và thanh ghi địa chỉ offset.
Chú ý: đối với lệnh MOV, chế độ địa chỉ được chỉ rõ trong lệnh có thể khác nhau
giữa nguồn và đích. Tuy nhiên trường của 4-bit offset của thanh ghi Wb được chia sẻ giữa
nguồn và đích.
Các lệnh MAC
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 19
Cả hai toán hạng nguồn của các lệnh DSP (CLR, ED, EDAC, MAC, MPY.N,
MOVSAC và MSC) được xem như các lệnh MAC, tận dụng các lệnh được đơn giản hoá
của chế độ địa chỉ nhằm cho phép người sử dụng có thể điều khiển con trỏ dữ liệu thông
qua các bảng thanh ghi gián tiếp.
Hai thanh ghi tiền nạp toán hạng nguồn phải là một trong các thanh ghi sau: {W8,
W9, W10, W11}. Với đọc dữ liệu, W8 và W9 luôn tương tác trực tiếp với X AGU, W10
và W11 luôn tương tác trực tiếp với Y AGU. Do đó địa chỉ hiệu dụng được tạo (trước và
sau khi hiệu chỉnh) phải hợp lệ với địa chỉ trong không gian dữ liệu X cho W8, W9 và
trong không gian dữ liệu Y cho W10, W11.
Các lệnh khác
Bên cạnh các chế độ địa chỉ biến đổi, một vài lệnh sử dụng các hằng số có định
dạng thay đổi. Ví dụ: lệnh BRA (branch – phân nhánh) sử dụng dữ liệu 16-bit có dấu để
chỉ ra đích rẽ nhánh trực tiếp, trong khi lênh DISI sử dụng trường số 14-bit không dấu.
Trong một vài lệnh như ADD hay ACC, nguồn của một toán hạng hoặc kết quả được đưa
ra bởi chính mã lệnh của nó. Tuy nhiên, một vài lệnh như NOR, lại không có toán hạng
nào.
2.3.2.2. Chế độ đảo bit địa chỉ
Địa chỉ được đảo bit nhằm làm đơn giản hoá dữ liệu cho thuật toán FFT cơ số 2. Nó
được hỗ trợ bởi khối AGU của X chỉ cho việc ghi dữ liệu.
Thực hiện đảo bit địa chỉ
Đảo bít địa chỉ được bật khi các điều kiện sau được thoả mãn:
- Các bit BWM (lựa chọn thanh ghi W) trong thanh ghi MODCON ở giá trị lớn hơn 15
(không thể truy cập ngăn xếp khi đang sử dụng chế độ đảo bit địa chỉ)
- Bit BREN được đặt trong thanh ghi XBREV
- Chế độ địa chỉ được sử dụng là chế độ thanh ghi gián tiếp
Nếu độ dài bộ đệm của các bit được đảo là M = 2N bytes, N bit cuối cùng của bộ
đệm dữ liệu bắt đầu được định địa chỉ bằng không.
Các bit XB là địa chỉ bit được đảo, hay còn
gọi là “điểm xoay” (pivot point) thường là hằng số.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 20
Hình 2.3. Một ví dụ về đảo bit địa chỉ
2.3.3. Tổ chức bộ nhớ và bộ nhớ chương trình
2.3.3.1. Không gian địa chỉ chương trình
Không gian địa chỉ chương trình có độ lớn
4M từ lệnh. Bản đồ không gian bộ nhớ chương
của dsPic30F4011 được chỉ ra trong Hình 2.4.
Bộ nhớ chương trình có thể được địa chỉ
hoá bởi một giá trị 24-bit bởi bộ đếm chương
trình (PC), hoặc bảng lệnh địa chỉ hiệu dụng
(EA), hoặc không gian dữ liệu EA khi không gian
chương trình được sắp xếp và địa chỉ hoá. Chú ý
rằng, địa chỉ không gian chương trình được tăng
lên với bước là 2 giữa các từ chương trình để tạo
ra sự tương thích với việc địa chỉ hoá không gian
dữ liệu.
Truy cập không gian chương trình người sử
dụng bị giới hạn trong dải 4M địa chỉ của từ lệnh
(từ 0x000000 tới 0x7FFFFE) với tất cả các lệnh
truy cập, trừ hai lệnh TBLRD/TBLWT - sử dụng
bit 7 của thanh ghi TBLPAG để xác định người
sử dụng hoặc thiết lập cấu hình truy cập bộ nhớ.
Hình 2.4. Bản đồ không gian bộ nhớ chương trình
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 21
2.3.3.2. Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng các lệnh bảng
Kiến trúc của dsPIC cho phép nạp dữ liệu rộng 24-bit tới bộ nhớ chương trình, do
đó các lệnh luôn luôn được xếp hàng tuy nhiên kiến trúc của nó có cải tiến so với kiến
trúc máy tính Hadvard nên dữ liệu cũng có thể được đưa ra ở trong không gian chương
trình.
Có hai phương pháp truy cập không gian chương trình, đó là:(xem hình 2.5)
- Thông qua các lệnh đặc biệt về bảng hoặc thông qua việc định địa chỉ và sắp xếp
lại 16K trang từ không gian chương trình trong nửa cao của không gian dữ liệu. Các lệnh
TBLRDL và TBLWTL cung cấp phương pháp đọc và ghi trực tiếp từ ít ý nghĩa nhất (LS
Word) tại một địa chỉ bất kỳ trong không gian chương trình mà không cần thông qua
không gian dữ liệu. Hai lệnh TBLRDH và TBLWTH chỉ là phương thức mà 8 bít cao của
từ không gian chương trình có thể được truy xuất như dữ liệu.
- Bộ đếm chương trình (PC) được tăng lên hai với mỗi từ chương trình 24-bit. Điều
này cho phép các địa chỉ bộ nhớ chương trình ánh xạ trực tiếp tới địa chỉ không gian dữ
liệu. Do đó bộ nhớ chương trình có thể được xem như hai không gian từ địa chỉ độ rộng
16-bit. Các lệnh TBLRDL và TBLWTL truy cập không gian chứa từ dữ liệu ít ý nghĩa
nhất (LS Data Word) và các lệnh TBLRDH, TBLWTH truy cập không gian chứa Byte dữ
liệu nhiều ý nghĩa nhất (MS Data Byte).
Sơ đồ trên chỉ ra cách EA được tạo cho hoạt động bảng và truy cập không gian dữ
liệu (PSV = 1). Tại đây P (từ bit 23 tới bit 0) chỉ thị từ không gian chương trình, còn D (từ
bit 15 tới bit 0) chỉ thị từ không gian dữ liệu.
2.3.3.3. Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng không gian chương trình
32 Kbytes cao của không gian dữ liệu có thể được bản đồ hoá trong bất kỳ trang
16K từ bộ nhớ chương trình nào. Nó cho phép truy cập vào hằng số dữ liệu được lưu trữ
từ không gian dữ liệu X mà không cần các lệnh đặc biệt (như TBLRDL/H, TBLWTL/H).
Truy xuất không gian chương trình thông qua không gian dữ liệu được thực hiện
nếu bít ý nghĩa thấp nhất của không gian dữ liệu EA được đặt và chế độ hiển thị không
gian chương trình được bật bằng cách đặt bit PSV trong thanh ghi điều khiển nhân của vi
xử lý CORCON.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 22
Hình 2.5 Truy cập dữ liệu từ không gian chương trình
Truy xuất dữ liệu ở vùng này sẽ thêm vào một chu kỳ lệnh để lệnh được thực hiện,
do đó nạp dữ liệu vào hai bộ nhớ chương trình là cần thiết.
Chú ý rằng chỉ phần cao của không gian dữ liệu có khả năng định địa chỉ thi luôn
là một phần của không gian dữ liệu X. Do đó, khi một thao tác DSP sử dụng việc bản đồ
hoá không gian chương trình để truy cập bộ nhớ thi không gian dữ liệu Y thông thường sẽ
lưu trữ trạng thái dữ liệu cho thao tác DSP, còn không gian dữ liệu X thường sẽ lưu giữ
hệ số của dữ liệu.
Tuy nhiên mỗi địa chỉ không gian dữ liệu , từ 0x8000 trở lên, bản đồ hoá trực tiếp
vào địa chỉ của bộ nhớ chương trình đáp ứng (Hình 2.6) chỉ có 16 bit thấp của từ chương
trình 24 bit được sử dụng để lưu dữ liệu. 8 bit cao được lập trình để loại bỏ các lệnh
không hợp lệ nhằm giữ nguyên sức mạnh của bộ vi xử lý.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 23
Hình 2.6. Ánh xạ không gian dữ liệu vào không gian chương trình
2.3.4. Các cổng vào ra I/O Port
Các cổng vào ra của dspic40f4011 đều có thiết kế có đầu vào là mạch Trigger
Schmitt nhằm cải tiến khả năng chống nhiễu.
Tất cả các cổng vào ra đều có ba thanh ghi kết hợp với nhau điều khiển trực tiếp hoạt
động của các cổng.
- Thanh ghi dữ liệu trực tiếp (TRISx) xác định cổng đó là Input hay Output. Nếu bit
dữ liệu trực tiếp là ‘1’, thì cổng đó là Input và ngược lại. Các cổng được định nghĩa là
Input sau khi Reset.
- Thanh ghi cổng (PORT registers): dữ liệu ở một cổng I/O được truy xuất thông qua
thanh ghi PORTx. Đọc giá trị của thanh ghi PORT cổng nào sẽ có được giá trị của cổng
đó. Ghi vào thanh ghi PORT của cổng tương đương việc xuất dữ liệu ra cổng đó.
- Thanh ghi LAT, kết hợp với một cổng I/O sẽ loại bỏ được các vấn đề có thể xuất
hiện khi đọc-thay đổi-ghi vào cổng đó. Đọc giá trị thanh ghi LAT sẽ trả về giá trị được
giữ ở đầu ra của bộ chốt cổng đó, thay cho giá trị ở cổng I/O. Việc ghi vào thanh ghi
LATx cũng tạo ra hiệu quả như ghi vào thanh ghi PORTx.
Cấu hình tương tự cho cổng: khi sử dụng bộ ADC thì cổng được cấu hình là lối
vào tương tự. Điều này sẽ được nói kĩ hơn ở phần miêu tả ADC.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 24
Hình 2.7. Các cổng I/O của dsPic30F4011
Hình 2.8. Sơ đồ khối của một cổng I/O dùng chung với ngoại vi khác
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 25
2.3.5. Ngắt và cơ chế ngắt
Vi điều khiển dsPic30F4011 có
tới 30 nguồn ngắt và 4 bộ xử lý loại trừ
(bẫy lỗi), bộ xử lý này sẽ cho phép các
ngắt theo mức ưu tiên được sắp đặt
trước.
CPU có thể đọc bảng vector ngắt
và truyền địa chỉ được chứa trong
vector ngắt tới bộ đếm chương trình.
Vector ngắt được truyền từ bus dữ liệu
chương trình vào trong bộ đếm chương
trình thông qua bộ hợp kênh 24-bit, lối
vào của bộ đếm chương trình.
Bảng vector ngắt (Interrupt
Vector Table - IVT) và bảng vector
ngắt thay thế (Alternate Interrupt
Vector Table - AIVT) được đặt gần
điểm bắt đầu bộ nhớ chương trình
(0x000004). IVT và AIVT được chỉ ra
trong Bảng 2.2. Các thanh ghi điều
khiển ngắt và ưu tiên ngắt:
- Các thanh ghi 16-bit IFS0,
IFS1, IFS2
Tất cả các cờ ngắt được lưu trong
3 thanh ghi này. Các cờ được đặt tương
ứng bởi của ngoại vi hoặc tín hiệu bên
ngoài và có thể xoá bằng phần mềm.
Bảng 2.2. Bảng vector ngắt của dsPIC30F3012
INT
Number
Vector
Number Interrupt Source
Highest Natural Order Priority
0 8 INT0 – External Interrupt 0
1 9 IC1 – Input Capture 1
2 10 OC1 – Output Compare 1
3 11 T1 – Timer 1
4 12 IC2 – Input Capture 2
5 13 OC2 – Output Compare 2
6 14 T2 – Timer 2
7 15 T3 – Timer 3
8 16 SPI1
9 17 U1RX – UART1 Receiver
10 18 U1TX – UART1 Transmitter
11 19 ADC – ADC Convert Done
12 20 NVM – NVM Write Complete
13 21 SI2C - I2C Slave Interrupt
14 22 MI2C – I2C Master Interrupt
15 23 Input Change Interrupt
16 24 INT1 – External Interrupt 1
17 25 IC7 – Input Capture 7
18 26 IC8 – Input Capture 8
19 27 OC3 – Output Compare 3
20 28 OC4 – Output Compare 4
21 29 T4 – Timer4
22 30 T5 – Timer5
23 31 INT2 – External Interrupt 2
24 32 U2RX – UART2 Receiver
25 33 U2TX – UART2 Transmitter
26 34 Reserved
27 35 C1 – Combined IRQ for CAN1
28 - 38 36 - 46 Reserved
39 47 PWM – PWM Period Match
40 48 QEI – QEI Interrupt
41 49 Reserved
42 50 Reserved
43 51 FLTA – PWM Fault A
44 52 Reserved
45 - 53 53 - 61 Reserved
Lowest Natural Order Priority
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 26
- Các thanh ghi 16-bit: IEC0, IEC1, IEC2: Tất cả các bit điều
khiển cho phép ngắt đều nằm trong 3 thanh ghi này. Các bit này được sử dụng để cho
phép ngắt độc lập ngoại vi và tín hiệu ngoài
- Các thanh ghi ưu tiên ngắt: IPC0 ... IPC10: Người sử dụng có thể chuyển
đổi mức ưu tiên ngắt kết hợp với mỗi ngắt được giữ trong các thanh ghi này
- Nhóm bit IPL: Mức độ ưu tiên của CPU hiện hành được lưu rõ ràng trong các
bit này. Bit IPL nằm trong thanh ghi CORCON, trong khi đó các bit IPL nằm
trong thanh ghi trạng thái (SR)
- Hai thanh ghi 16-bit INTCON1, INTCON2: Chức năng điều khiển ngắt
toàn cục được xuất phát từ hai thanh ghi này. INTCON1 chứa các cờ điều khiển và trạng
thái của bộ xử lý loại trừ. INTCON2 điều khiển tín hiệu yêu cầu ngắt và việc bảng vector
ngắt thay thế.
Các nguồn ngắt có thể được người sử dụng sắp xếp mức ưu tiên từ 1 đến 7 thông
qua thanh ghi IPCx. Mỗi nguồn ngắt được kết hợp với một vector ngắt (bảng 2.2)
Hình 2.9. Các vector bẫy lỗi
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 27
2.3.6. Các bộ định thời
Trong vi xử lý dsPIC40F4011 có tới năm bộ định thời (Timer) 16-bit. Trong đó các
Timer có thể hoạt động riêng biệt, riêng hai Timer 2, 3 và hai Timer 4, 5 có thể kết hợp
với nhau để trở thành một Timer 32 bit.
Về cấu trúc các Timer này khác nhau vì hai Timer 2 và 3 và hai Timer 4 và 5 có thể
kết hợp còn Timer 1 thì không. Timer 1 có cấu trúc kiểu A (Hình 2.10), Timer 2,4 kiểu B
và Timer 3,5 kiểu C. Về hoạt động các Timer có hoạt động gần giống nhau do đó ta sẽ tìm
hiểu về Timer 1, các Timer còn lại là tương tự.
Timer 1 có thể hoạt động với nguồn tạo dao động tần số thấp 32KHz, và chế độ
không đồng bộ với nguồn tạo dao động ngoài. Đặc điểm riêng biệt của Timer 1 đó là có
thể dùng trong các ứng dụng thời gian thực.
Phần tiếp theo sẽ mô tả chi tiết cách thiết lập và sử dụng Timer 1 với ba chế độ:
- Timer 16-bit: trong chế độ này, timer sẽ tăng sau mỗi chu kỳ lệnh đến khi giá trị của
timer bằng giá trị của thanh ghi chu kỳ PR1 (Period Register) thì sẽ reset về ‘0’ và tiếp tục
đếm.
- Counter đồng bộ 16-bit: trong chế độ này, timer sẽ tăng ở mỗi sườn lên của của xung
nhịp ngoài mà được đồng bộ với pha của các xung nhịp trong. Timer tăng đến giá trị nằm
trong thanh ghi PR1 thì dừng và reset timer về ‘0’ rồi tiếp tục đếm lên.
- Counter không đồng bộ 16-bit: khi hoạt động trong chế độ này, timer sẽ tăng dần sau
mỗi sườn lên của xung nhịp bên ngoài tác động vào. Timer sẽ tăng dần đến khi giá trị của
nó bằng thanh ghi PR1 thì bị reset về ‘0’ rồi lại tiếp tục đếm lên.
Hệ số chia tần của bộ định thời
Xung nhịp đầu vào (Fosc/4 hoặc xung nhịp ngoài) đưa vào Timer 16-bit và có thể
được chia tần số theo các tỉ lệ sau: 1:1, 1:8, 1:64, 1:256 được xác định bởi các bit
TCKPS của thanh ghi TxCON. Hệ số chia tần này (prescaler) có thể bị xoá khi xảy
ra một trong các điều kiện sau:
- Ghi vào TMR
- Ghi vào thanh ghi TxCON (trừ việc ghi vào bit TxCON)
Reset thiết bị, như POR và BOR
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 28
DsPic30F4011 có 5 thanh ghi điều khiển Timer T1CON..T5CON. Các thanh ghi này
được chia ra làm 2 kiều. T1CON thuộc kiểu A, T2CON và T4CON thuộc kiểu B, T3CON
và T5CON thuộc kiểu C.
Hình 2.10. Sơ đồ khối của Timer 1
Hình 2.11. Sơ đồ khối Timer 2
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 29
Hình 2.12. Sơ đồ khối Timer 3
Hình 2.13. Sơ đồ khối Timer 2/3 - 32bit
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 30
(Sơ đồ khối Timer 4/5 32 bit và Timer 4,5 16 bit giống như Timer 2/3 32 bit và Timer 2,3
16 bit)
2.3.7. Bộ chuyển đổi tương tự số ADC
Vi điều khiển dsPic30F4011 cung cấp bộ chuyển đổi tương tự số 10-bit cho phép
biến đổi tín hiệu tương tự đầu vào sang số độ dài 10-bit. Module này dựa trên thanh ghi
SAR (Successive Approximation Register – thanh ghi xấp xỉ) và cung cấp tốc độ lấy mẫu
tối đa lên tới 100 ksps. ADC của dsPic30F4011 có tới 10 kênh tương tự lối vào được kết
hợp cả lấy mẫu và giữ mẫu. Lối ra của bộ lấy và giữ mẫu là lối vào của bộ chuyển đổi -
tạo ra kết quả biến đổi. Điện thế tương tự chuẩn có thể là điện thế nguồn cung cấp (AV-
DD/AVSS) hoặc mức điện thế của các chân VREF+/VREF-.
Bộ biến đổi ADC của dsPIC bao gồm 6 thanh ghi:
- Ba thanh ghi điều khiển A/D: ADCON1, ADCON2, ADCON3
Chức năng điều khiển hoạt động của ADC.
- Thanh ghi lựa chọn lối vào: ADCHS
Lựa chọn kênh vào để biến đổi.
- Thanh ghi cấu hình cổng ADPCFG
Cấu hình cổng trở thành lối vào tương tự hoặc vào ra số.
- Thanh ghi lựa chọn quét
2.3.7.1. Bộ đệm kết quả biến đổi A/D
Module ADC sử dụng RAM để làm bộ đệm lưu kết quả biến đổi A/D. Có tất cả 16
vị trí trong RAM được sử dụng để làm việc này, đó là: ADCBUF0, ADCBUF1,
ADCBUF2, ..., ADCBUFE, ADCBUFF. RAM chỉ có độ rộng 12-bit nhưng dữ liệu chứa
trong nó lại là một trong bốn dạng số 16-bit đó là: nguyên, nguyên có dấu, phân số, và
phân số có dấu.
2.3.7.2. Các bước thực hiện biến đổi A/D
a) Thiết lập cấu hình cho module A/D
- Cấu hình các chân là lối vào tương tự, điện thế chuẩn và vào ra số.
- Chọn các kênh lối vào cần biến đổi.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 31
- Chọn xung nhịp cho biến đổi.
- Cho phép module ADC có thể hoạt động.
b) Cấu hình cho ngắt ADC nếu cần
- Xóa cờ ngắt ADIF
- Lựa chọn mức ưu tiên ngắt cho biến đổi A/D
c) Bắt đầu lấy mẫu
d) Đợi đủ thời gian cần thiết để hoàn thành
e) Kết thúc lấy mẫu, bắt đầu biến đổi
f) Đợi biến đổi kết thúc bởi một trong hai điều kiện sau:
- Đợi ngắt từ ADC
- Đợi bit DONE được set
Đọc kết quả từ bộ đệm biến đổi A/D và xóa bit ADIF nếu cần
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 32
Hình 2.14. Sơ đồ khối cơ bản của ADC 10-bit
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 33
Chương 3. Thực Nghiệm
3.1. Phần Cứng
Phần cứng được em thiết kế dựa trên sơ đồ khối của một bộ khuyếch đại lock in số
(Digital Lock-In Amplifiers). Phần cứng thiết kế có những khối chính sau đây:(Hình 3.0)
- Khối nguồn
- Khối các bộ lọc thông thấp (lowpass filter, LP Sallen key filter)
- Khối biến đổi DAC
- Khối khuyếch đại tín hiệu vào
- Khối LCD
- Khối xử lý số trung tâm
Hình 3.1. Sơ Đồ Khối Phần Cứng
Salenkey
Filter
Khuyếch
Đại
Lowpass
Filter
Màn Hình Hiển Thị LCD
DAC
R/2R
Khối Xử Lý
Số
Trung Tâm
dsPic30F4011
(DSP)
Sensor
Nguồn 5 V
Nguồn +12V, -12V
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 34
3.1.1. Các khối nguồn
Các khối nguồn cần thiết kế để cung cấp nguồn cho toàn bộ các khối thành phần của
bộ khuyếch đại lock in. Cụ thể ở đây ta cần có nguồn +5V để cấp cho khối xử lý số trung
tâm (Vi điều khiển dsPic30F4011) và màn hình hiển thị LCD, nguồn +12V,-12V để cung
cấp cho khối bộ lọc số và khối khuyếch đại tín hiệu vào. Sơ đồ của các khối nguồn này
được trình bày trên Hình 3.2.
Hình 3.2. Các khối nguồn
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 35
3.1.2. Khối các bộ lọc thông thấp
Trong khóa luận này, cần sử dụng 2 bộ lọc thông thấp. Một bộ lọc thông thấp cơ bản
và một bộ lọc thông thấp Sallen Key Filter để thỏa mãn yêu cầu cắt tần số tại 10kHz.
Sơ đồ bộ lọc thông thấp Sellen Key cơ bản được trình bày trên hình 3.3
Hình 3.3. Sơ đồ bộ lọc Sallen Key cơ bản
Sơ đồ bộ lọc Sallen Key dùng trong khóa luận được trình bày trên hình 3.4
Hình 3.4. Sơ dồ bộ lọc Sallen Key được sử dụng trong khóa luận
Để thỏa mãn tần số cắt là 10kHz trong khóa luận này em sử dụng tụ C2 = 1000pF
=> C1 = 2C2 = 1000pF
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 36
=> R1 = R2 = 0.707 / (2 · π · fo · C2) = 0.707 / (2 · π · 10kHz · 1000pF) = 11.2 K
Bộ lọc thông thấp còn lại được thiết kế để làm trơn tín hiệu sau khi qua bộ khuyếch
đại analog.(xem hình 3.5)
Hình 3.5. Bộ lọc thông thấp low pass
3.1.3. Khối biến đổi DAC
3.1.3.1. Hoạt động của DAC và tính chất của nó
Hình 3.6. Ví dụ về bộ biến đổi DA 4 bít
Mục đích của bộ biến đổi DA, như đã nêu, là biến đổi tín hiệu nhị phân n bít thành
dòng hay áp tương ứng. Hình 3.6 là một ví dụ về một bộ biến đổi DA 4 bít đơn giản.
Về nguyên tắc bộ chuyển đổi số-tương tự tiếp nhận một mã số n bít song song hoặc
nối tiếp ở lối vào và biến đổi ra dòng điện hoặc điện áp tương ứng ở lối ra. Dòng điện hay
điện áp ở lối ra là hàm biến thiên phù hợp theo mã số ở lối vào.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 37
Một bộ DAC hoàn chỉnh bao gồm ba phần tử cơ bản:
Ðiện áp tham chiếu ổn định bên ngoài (Vref)
DAC cơ sở
Khuếch đại thuật toán
Sơ đồ khối của bộ DAC được trình bày trên Hình 3.7
Hình 3.7. Sơ đồ khối DAC
Như vậy điện áp đầu ra của bộ biến đổi V0 sẽ phụ thuộc vào mã nhị phân đầu vào
theo công thức sau:
)2B ... 2B 2(B V V nn
1
1
0
0ref0
Trong đó B0 là bít thấp nhất và Bn là bít cao nhất của mã nhị phân đầu vào, Vref là
điện áp tham chiếu.
DAC cơ sở cấu tạo bằng những chuyển mạch tương tự được điều khiển bởi mã số
đầu vào và các điện trở chính xác. Các chuyển mạch tương tự điều chỉnh dòng điện hay
điện áp trích ra từ điện áp tham chiếu và tạo nên dòng điện hay điện áp ở đầu ra tương
ứng với mã số đầu vào.
Mạch khuếch đại thuật toán dùng ở đây để chuyển đổi dòng thành áp đồng thời có
chức năng tầng đệm.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 38
Bộ biến đổi DAC có đặc điểm là đại lượng ra tương tự không liên tục, độ rời rạc của
đầu ra phụ thuộc vào số bít của bộ biến đổi, những DAC có số bít đầu vào lớn thì tổng số
nấc điện áp ra càng lớn và khoảng cách giữa các nấc càng nhỏ.
3.1.3.2. Các tham số của bộ chuyển đổi DA
- Ðộ phân giải (Solution): Liên quan đến số bít của một DAC. Nếu số bít là n thì số
trạng thái của tín hiệu nhị phân là 2n nghĩa là sẽ có 2n mức điện thế (hoặc dòng điện) khác
nhau, do đó có độ phân giải là 1/2n. Ðộ phân giải càng bé thì điện thế (hoặc dòng điện đầu
ra) càng có dạng liên tục, càng gần với thực tế và ngược lại.
- Ðộ chính xác (Accuracy): Có thể đánh giá chất lượng của một DAC bằng sai số
của nó. Ðại lượng biểu diễn sai số là độ lệch tối đa giữa đại lượng ra và một đường thẳng
nối điểm 0 với điểm FS (Full Scale) trên đặc tuyến chuyển đổi DA.
- Ðộ tuyến tính (Linearity): Ðộ tuyến tính của DAC cho biết độ lệch điện áp so với
một đường thẳng đi qua những điểm nút của đặc tuyến chuyển đổi. Ðó là đặc tính thường
gặp nhất với DAC. Ðường cong đặc tuyến là đơn điệu nếu sự thay đổi độ lệch trên là
không đổi dấu. Ðể có một DAC đơn điệu, độ lệch này phải lớn hơn 0 cho mỗi nấc thang.
Ngoài ra mức độ tuyến tính của DAC phải nhỏ hơn hoặc bằng 1/2 LSB để nó trở nên đơn
điệu. Như vậy 1/2 LSB là đặc trưng về giới hạn đơn điệu của một DAC.
- Phi tuyến vi sai: là đại lượng cho biết độ lệch giữa giá trị thực tế và lý tưởng cho
một nấc điện áp ra ứng với mỗi thay đổi của mã số vào. Ðại lượng này cho biết về độ
nhẵn của đường cong đặc tuyến đối với DAC.
- Thời gian thiết lập: đối với một DAC là thời gian cần thiết để điện áp ra đạt tới giá
trị tới hạn sai số xung quanh giá trị ổn định. Giới hạn này thường là =½ LSB hoặc biểu
diễn bằng giá trị % FS.
Thời gian thiết lập trước hết phụ thuộc vào kiểu chuyển mạch, kiểu điện trở và kiểu
khuếch đại dùng để xây dựng bộ DAC. Thông thường nó được định nghĩa bằng thời gian
từ khi điện áp bắt đầu thay đổi cho tới khi đạt tới vùng giới hạn sai số cho trước. Nó
không bao gồm thời gian trễ tính từ khi có sự thay đổi mã số ở đầu vào cho tới khi điện áp
ra bắt đầu đáp ứng.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 39
3.1.3.3. Các mạch DAC điển hình
Các DAC có thể được xây dựng theo một trong những kiểu mạch sau:
Chuyển đổi DA theo kiểu điện trở trọng lượng
Chuyển đổi DA theo kiểu mạch R-2R
3.1.3.3.1. Bộ chuyển đổi DA theo kiểu điện trở trọng lượng (Weighted resistor DAC)
Mạch gồm một nguồn điện áp chuẩn Uch, các chuyển mạch, các điện trở có giá trị
lần lượt là R, R/2, R/4, ... , R/2n-1 và các mạch khuếch đại thuật toán.(Xem hình 3.7)
Với mạch như trên, khi một khoá điện nào được nối với nguồn điện thế chuẩn thì sẽ
cung cấp cho bộ khuếch đại thuật toán (KÐTT) dòng điện.
Dòng điện này độc lập với các khoá còn lại. Như vậy có thể thấy ngay rằng biên độ
điện áp ra phụ thuộc vào các vị trí được đóng hay mở khoá nghĩa là được nối với điện áp
chuẩn Uch hay nói cách khác phụ thuộc vào giá trị các bít tương ứng trong tín hiệu số đưa
vào mạch chuyển đổi.
Hình 3.8. DAC theo phương pháp điện trở trọng lượng
Một cách tổng quát, với một DAC có n bít thì tín hiệu ra được tính theo công thức:
Ura = R
RU ch
1. (2n-1.Bn-1 + 2n-2.Bn-2 + ... + 21.B1 + 20.B0)
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 40
Trong đó B0 < Bn-1 có giá trị "0" hoặc "1".
Mạch có ưu điểm là đơn giản, nhưng nhược điểm là độ chính xác và tính ổn định
của kết quả phụ thuộc nhiều vào trị số tuyệt đối của các điện trở và sự ổn định của chúng
trong các môi trường khác nhau. Ngoài ra còn phụ thuộc vào tính ổn định và độ chính xác
của nguồn điện áp chuẩn.
3.1.3.3.2. Bộ chuyển đổi DA theo kiểu thang điện trở R-2R (R-2R ladder)
Hình 3.9. DAC theo phương pháp mạch R-2R
DAC với thang điện trở R-2R khắc phục được một số nhược điểm của DAC điện trở
trọng lượng.
Mạch chỉ gồm hai điện trở R và 2R mắc theo hình thang với nhiều khoá điện (mỗi
khoá điện cho một bít) và một nguồn điện áp chuẩn Uch.(Xem Hình 3.9)
Ðại lượng cần tìm là dòng Ith chảy vào mạch KÐTT khi có một số khoá điện được
nối với Uch. Theo mạch điện ta có:
Ura = -Ith.Rf
Xét tại chuyển mạch tương ứng với bít thứ i, nút tương ứng trên mạch hình thang là
2i . Sử dụng định lý Thevenin, khi đóng chuyển mạch vào Uch thì điện thế tương đương
Thevenin tại nút 2i sẽ là Uch/2 và nguồn tương có nội trở là R, như vậy tại nút 2i+1 (tiến về
phía mạch KÐTT) ta có nguồn tương đương Thevenin có trị số là Uch/4 và nội trở là R.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 41
Từ những kết quả trên suy ra rằng khi di chuyển về phía mạch KÐTT thì trị số điện
thế Thevenin tại mỗi nút bằng một nửa trị số tại nút kề cận bên trái nó, và tại nút 2n-1 do
đặc tính của bộ KÐTT điện thế được coi bằng 0V.
Một cách tổng quát, ta có công thức để tính điện áp ra của một DAC n bít với điện
trở hình thang R-2R như sau:
00112211 22...22
.2
BBBB
R
R
UU nnnnn
t
chra
Trong đó B0 < Bn-1 có giá trị "0" hoặc "1".
Các DAC theo thang điện trở phải dùng số điện trở khá lớn, ví dụ nếu một DAC n
bít thì cần dùng 2(n-1) điện trở trong khi phương pháp điện trở trọng lượng chỉ phải dùng
n thôi. Nhưng bù lại độ chính xác và tính ổn định của tín hiệu ra được đảm bảo tốt hơn.
3.1.3.4. Ghép nối ADC với vi điều khiển
Về nguyên tắc một bộ DAC có thể ghép nối tương thích với hầu hết các bộ VĐK.
Ðối với các bộ DAC 8 bít, công việc thậm chí còn rất đơn giản khi ghép nối với các
VĐK, lý do là các VĐK đều có BUS dữ liệu là bội của 8. Ðối với các bộ DAC 12 hay 16
bít ta phải sử dụng các đệm trung gian có số bít tương ứng sau đó tiến hành trao đổi số
liệu nhiều lần.
3.1.3.5. Bộ biến đổi DAC sử dụng trong khóa luận
Trong khóa luận, em sử dụng kiểu biến đổi DAC mạng R/2R 4 bít ghép nối với vi
xử lý.
Sơ đồ của bộ biến đổi được trình bày trên Hình 3.10
Hình 3.10. Bộ biến đổi DAC 4 bit
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 42
4 bít được ghép nối với 4 đầu ra RE0...RE3 của vi điều khiển dsPic30F4011. Để
điều khiển bộ biến đổi DAC 4 bit này em viết chương trình cho VĐK để tạo sóng sin,
theo bảng được thiết lập như sau:
sinTable[] = {5,6,7,8,9,9,10,10,10,10,10,9,9,8,7,6,5,4,3,2,1,1,0,0,0,0,0,1,1,2,3,4}
Sau khi đã được chương trình hóa trên VĐK tín hiệu ra có dạng (xem hình 3.11)
Hình 3.11. Tín hiệu ra bộ biến đổi DAC 4 bít
Tín hiệu ra sẽ không mịn như mong muốn, muốn được mịn hơn ta cần cho tín hiệu qua
một bộ lọc thông thấp (cụ thể ở đây là bộ lọc salenkey), Sau khi qua bộ lọc salenkey tín
hiệu ra sẽ có dạng như hình 3.12
Hình 3.12. Tín hiệu ra bộ biến đổi DAC 4 bít khi qua bộ lọc
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 43
3.1.4. Khối khuyếch đại tín hiệu vào
3.1.4.1. Tìm hiểu về một số mạch khuyếch đại thuật toán và tính chất của nó
Khuếch đại thuật toán là một trong số những linh kiện điện tử thường gặp nhất trong
kỹ thuật tương tự, vì thế trong kỹ thuật đo lường và điều khiển công nghiệp, khuếch đại
thuật toán cũng có mặt trong rất nhiều thiết bị và hệ thống. Khả năng sử dụng của các bộ
khuếch đại thuật toán là rất vạn năng, chúng được áp dụng trong nhiều lĩnh vực như các
bộ khuếch đại một chiều, các bộ khuếch đại xoay chiều, bộ lọc tích cực, bộ dao động, bộ
biến đổi trở kháng, bộ vi phân, bộ tích phân...
Ðể làm nổi bật tính chất của một bộ khuếch đại thuật toán, hãy xét tính năng của
một bộ khuếch đại thuật toán lý tưởng:
Hệ số khuếch đại khi không có phản hồi âm lớn vô cùng.
Ðiện trở lối vào lớn vô cùng.
Ðộ rộng dải thông lớn vô cùng.
Hệ số nén đồng pha CMRR lớn vô cùng.
Ðiện trở lối ra bằng không
Thời gian đáp ứng bằng không.
Trên thực tế, không có bộ khuếch đại thuật toán lý tưởng mà chỉ tồn tại những
khuếch đại thuật toán thực có tính chất gần với những tiêu chuẩn đã nêu.
Các tham số và các mạch ứng dụng của bộ khuếch đại thuật toán rất nhiều, không
thể nêu hết trong bản khóa luận này mà đây dưới đây chỉ nêu lên những tham số cơ bản,
cách tính toán và các mạch đã được áp dụng trong hệ thống điều khiển.
3.1.4.1.1. Các tham số cơ bản của mạch khuếch đại thuật toán
Sơ đồ nguyên tắc của bộ KĐTT được trình bày trên hình 3.13
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 44
Hình 3.13. Bộ khuếch đại thuật toán.
Trên hình 3.13 ta có các ký hiệu sau:
Ud điện áp vào hiệu
UP , IP điện áp vào và dòng điện vào cửa thuận.
UN , IN điện áp vào và dòng điện vào cửa đảo.
Ur , Ir điện áp ra và dòng điện ra.
Bộ khuếch đại thuật toán khuếch đại hiệu điện áp Ud = UP - UN với hệ số khuếch đại
K0 > 0. Do đó điện áp ra:
Ur = K0. Ud = K0(UP - UN) (*)
i) Hệ số khuếch đại hiệu K0
Khi không tải hệ số khuyếch đại hiệu Ko được xác định theo biểu thức sau
np
r
d
r
UU
U
U
UK
0
j) Hệ số khuếch đại đồng pha KCM
Nếu đặt vào cửa thuận và cửa đảo của bộ khuếch đại thuật toán các điện áp bằng
nhau, nghĩa là:
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 45
UP = UN = UCM = 0
thì Ud = 0. Gọi UCM là điện áp vào đồng pha. Theo biểu thức (*) ta có Ur=0. Tuy nhiên,
thực tế không phải như vậy, giữa điện áp ra và điện áp vào đồng pha có quan hệ tỷ lệ là hệ
số khuếch đại đồng pha KCM :
CM
r
CM U
UK
KCM nói chung phụ thuộc vào mức điện áp vào đồng pha.
k) Hệ số nén đồng pha CMRR
Dùng để đánh giá khả năng làm việc của bộ khuếch đại thực so với bộ khuếch đại lý
tưởng (KCM=0)
CMK
K
CMRR 0
l) Dòng vào tĩnh
Là trị trung bình của dòng vào cửa thuận và dòng vào cửa đảo:
2
NP
t
II
I
với UP = UN = 0
Dòng vào lệch không là hiệu các dòng vào tĩnh ở hai cửa của bộ khuếch đại thuật
toán
I0 = IP - IN với UP = UN = 0
Thông thường I0 = 0,1IP. Trị số của dòng vào lệch không thay đổi theo nhiệt độ.
Hiện tượng này gọi là hiện tượng trôi dòng lệch không.
3.1.4.1.2. Các sơ đồ cơ bản của bộ khuếch đại thuật toán
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 46
i) Sơ đồ khuếch đại không đảo
Hình 3.14. Sơ đồ khuếch đại không đảo
Hệ số khuếch đại của mạch là
CMRRRR
R
K
K
111
1
21
2
0
j) Mạch đệm
Ðây là trường hợp đặc biệt của mạch khuếch đại không đảo
Hình 3.15. Sơ đồ mạch đệm
Mạch có hệ số khuếch đại bằng 1 và dùng để phối hợp trở kháng.
k) Mạch khuếch đại đảo
Mạch khuyếch đại đảo được trình bày trên hình 3.16.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 47
Hình 3.16. Sơ đồ mạch khuếch đại đảo
Hệ số khuếch đại của mạch:
1
2
R
R
K
l) Sơ đồ biến đổi dòng điện - điện áp: Được trình bày trên hình 3.17
Hình 3.17. Sơ đồ biến đổi dòng điện - điện áp
Ðiện áp ra được tính theo biểu thức:
UR = - R.IV
3.1.4.2. Bộ khuyếch đại sử dụng trong khóa luận (AD620)
Trong khóa luận này bộ khuyếch đại đã xây dựng có sử dụng vi mạch AD620, sơ đồ
cụ thể được trình bày như hình 3.18
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 48
Hình 3.18. Bộ khuyếch đại thuật toán sử dụng IC AD620
AD620 là loại IC khuyếch đại thuật toán khá tốt, nó có khả năng khuyếch đại tín
hiệu tới 1000 lần, tùy thuộc vào điện trở phối ghép. Mật độ ồn lối vào 9nV/ Hz , băng
thông của bộ khuyếch đại là 120KHz
Độ khuyếch đại được tính theo công thức:
1
4,4914,49
G
kR
R
kG G
G
Trong khóa luận RG chính là R7.
3.1.5. Khối LCD
Trong khóa luận này em sử dụng LCD hiển thị 16 ký tự 2 dòng. Giao tiếp 8 bit.
LCD có tác dụng hiển thị kết quả cuối cùng của bài toán. Các chân điều khiển của
LCD được kết nối với các chân I/O của vi điều khiển dsPic30F4011. LCD được hoạt
động thông qua sự điều khiển của vi điều khiển (VĐK) dsPic30F4011.
Hình 3.19 trình bày sơ đồ mạch LCD sử dụng trong khóa luận.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 49
Hình 3.19. LCD 16 ký tự 2 dòng
3.1.6. Khối xử lý trung tâm
Khối xử lý trung tâm trong khóa luận sử dụng vi điều khiển DsPic30F4011. Khối xử
lý trung tâm có nhiệm vụ biến đổi tín hiệu vào thành tín hiệu số sau đó nó sẽ dùng bộ dsp
để xử lý tín hiệu để cho ta kết quả cuối cùng đưa ra LCD(gồm có thực hiện các phép nhân
và sử dụng bộ lọc số FIR )..
Thật thú vị trong VĐK DsPic30F4011 có tích hợp bộ chuyển đổi AD như đã trình
bày ở phần 2.3.7 trong chương 2. Công việc của người sử dụng là chương trình hóa cho
VĐK để thực hiện việc chuyển đổi AD.
Bộ xử lý số dsp được tích hợp sẵn trong VĐK DsPic30F4011 làm cho việc thiết kế
cũng đơn giản hơn, với những hàm thư viện có sẵn do Microchip cung cấp.
3.2. Phần Mềm
Trong khóa luận này em sử dụng phần mềm MPLab của công ty Microchip
Technology để thực hiện viết chương trình cho khối xử lý trung tâm (cụ thể ở đây là vi
điều khiển dsPic30F4011). Và em dùng ngôn ngữ C (C30) để viết chương trình. Trong
chương trình có sử dụng thư viện chuẩn của Microchip cung cấp (như p30fxxx.h,
p30f4011.h, dsp.h, ...). Sơ đồ khối chương trình nguồn được trình bày trên hình 3.20.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 50
Modul chương trình :
Hình 3.20. Sơ đồ khối chương trình
Khởi tạo
LCD
Khởi Tạo
Timer
Khởi Tạo
ADC
Khởi Tạo
Reference
signal
ref_signal x input_signal = I
ref_signal_90 x input_signal=Q
FIR Filter
I,Q Final
22 QIMagnitude
)/(tan 1 IQPhase
Display LCD
MAIN
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 51
3.3. Các kết quả thực nghiệm:
3.3.1. Mạch khuyếch đại lock-in đã chế tạo và tín hiệu vào ra lock in:
Mạch điện được thiết kế trên phần mềm portel (xem hình 3.21), sơ đồ mạch nguyên
lý trình bày chi tiết ở phần phụ lục
Hình 3.21. Mạch khuyếch đại lock in
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 52
Tín hiệu reference thu được sau khi sử dụng bộ chuyển đổi DA 4bit theo kiểu mạng
R/2R được biểu diễn các hình 3.22 và 3.23.
Tín hiệu reference khi chưa qua bộ lọc sallen-key
Hình 3.22. Tín hiệu reference khi chưa qua bộ lọc sallen-key
Tín hiệu reference khi qua bộ lọc sallen-key
Hình 3.23. Tín hiệu reference khi qua bộ lọc sallen-key
Tín hiệu refrence này sẽ cung cấp cho cảm biến cần khảo sát. Tần số của tín hiệu
reference này có thể thay đổi được bằng cách lập trình cho vi điều khiển.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 53
Tích của tín hiệu vào và tín hiệu reference được trình bày trên các hình 3.24 và 3.25.
Hình 3.24. Tích hai tín hiệu cùng pha và độ lệch trung bình DC của tín hiệu thu
được khi qua bộ lọc thông thấp
Sự mô phỏng trên hình 3.24(sử dụng phần mềm Micro-Cap Evaluation) cho ta thấy
một phép nhân giữa hai tín hiệu cùng pha (tín hiệu vào và tín hiệu tham chiếu(reference)).
Phép nhân này cho kết qủa là một tín hiệu có tần số bằng hai lần tần số reference và
có mức trung bình trên mức 0(dương).
Khi tín hiệu này qua bộ lọc thông thấp chúng ta sẽ thu được 1 mức DC tỷ lệ với tín
hiệu vào.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 54
Hình 3.25. Tích hai tín hiệu lệch pha 900 và độ lệch trung bình DC của tín hiệu thu
được khi qua bộ lọc thông thấp
Hình 3.25. cho thấy tích giữa hai tín hiệu (tín hiệu vào và tín hiệu tham chiếu
(reference)) khi chúng khác pha nhau 900.
Với phép nhân ta thu được một tín hiệu có tần số bằng hai lần tần số reference
nhưng mức trung bình là bằng 0.
Vậy khi tín hiệu này qua bộ lọc thông thấp chúng ta sẽ thu được 1 mức DC bằng 0.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 55
Hình 3.26 chỉ ra kết quả phép nhân của tín hiệu reference và tín hiệu vào trong thực
tế khi tín hiệu vào có pha tạp ồn nhiễu.
Hình 3.26.
a) Tín hiệu đầu vào và tín hiệu tham chiếu b)Tích của chúng
3.3.2.Thử nghiệm bộ khuyếch đại lock-in với cảm biến áp suất MPX2300D:
Để đánh giá và khả năng đo đạc của bộ khuyếch đại lock-in đã xây dựng em thực
hiện thiết kế một hệ đo cho sensor áp suất MPX2300D.
3.3.2.1. Cảm biến áp suất MPX2300D:
- Cảm biến áp suất MPX2300D là một sản phẩm thương mại của công ty Motorola.
- MPX2300D chịu đựng được áp lực từ 0mmHg đến 300mmHg và với mỗi áp
lực1mmHg MPX2300D cho ta một điện thế ra 1uV (1uV/mmHg).
- Sơ đồ chân cảm biến MPX2300D (xem bảng 3.1) cùng với hình dáng bên ngoài
Bảng 3.1. Sơ đồ chân cảm biến MPX2300D
Sơ đồ chân của cảm biến MPX2300D
1 2 3 4
Vs S+ S- GND
a)
b)
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 56
Hình dáng bên ngoài và bên trong cảm biến được biểu diễn trên hình 3.27a và 3.27b
a) b)
Hình 3.27. a)Hình dáng bên ngoài MPX2300D b)Hình dáng bên trong MPX2300D
3.3.2.2. Kết quả thí nghiệm:
Sơ đồ hệ đo thử nghiệm lock-in số sử dụng cảm biến áp suất được trình bày như
hình 3.28.
Hình 3.28. Sơ đồ hệ đo cảm biến MPX2300
Hình 3.29. chỉ ra cách mắc cho hệ đo
Hình 3.29. Cách mắc hệ đo thử nghiệm
Bộ Khuyếch Đại Lock-In
Sensor MPX2300D
Reference signal
Signal Input
Kết qủa (hiển thị
trên LCD)
Tác dụng áp suất
Đầu vào bộ khuyếch
đại lock-in
Lock-in Amlifier
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 57
Hệ đo thực tế được trình bày trên hình 3.30
Hình 3.30. Hệ đo thực tế
Kết qủa đo thử của bộ lock-in số dùng cảm biến áp suất MPX2300D để thử nghiệm
được trình bày trên bảng 3.2
Áp suất vào Kết quả
10mmHg 9,8uV
15mmHg 14,6uV
20mmHg 21,3uV
25mmHg 24,3uV
30mmHg 32,1uV
40mmHg 40,3uV
50mmHg 53,8uV
Bảng 3.2. Kết quả đo
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 58
Kết qủa đo được biểu diễn trên các hình 3.31 và 3.32
Hình 3.31. Mối quan hệ giữa tín hiệu ra theo thời gian
Hình 3.32. Mối quan hệ giữa áp suất đưa vào và tín hiệu ra
V(uV)
t(ms)
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 59
Kết Luận
Kết quả thu được sau khi khóa luận được thực hiện:
- Tìm hiểu về cấu tạo và nguyên tắc hoạt động của bộ khuyếch đại lock-in
- Nắm vững cấu trúc và lập trình tốt cho vi xử lý dsPic30F4011.
- Biết cách sử dụng Matlab để thiết kế một bộ lọc.
- Sử dùng thành thạo phần mềm vẽ mạch in protel và orcad
- Hiểu rõ về những phương pháp biến đổi ADC và DAC.
- Xây dựng được cho bản thân cách làm việc khoa học, cách tư duy có hệ thống khi
thực hiện một khóa luận.
- Chế tạo một bộ khuyếch đại lock-in và đã thử nghiệm với một sensor áp suất.
Đánh giá kết quả thu được và hướng phát triển của khóa luận:
- Có thể sử dụng bộ khuyếch đại lock-in số đã chế tạo cho nhiều thí nghiệm với nhiều
loại sensor khác nhau.
- Bộ khuyếch đại lock-in đang còn sai số và độ ổn định vẫn chưa cao.
- Mạch vẫn chưa được gọn gàng
- Vì thời gian thực hiện đề tài là khá ngắn nên hệ đo chưa được thử nghiệm nhiều, do đó
đánh giá chưa thật khách quan.
- Hướng phát triển tiếp của đề tài là rút gọn mạch điện, tăng độ chính xác cho hệ đo qua
đó có thể thương mại hóa hệ đo.(Có thể sử dụng hệ đo có nhân là bộ khuyếch đại lock-
in cho những cảm biến y sinh học – Bio Sensor).
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 60
Phụ Lục
Mã nguồn chương trình:
//---Main---
#include
#include
#include "common.h"
#include "dsp.h"
#include "lcd8bit.h"
#include "delay.h"
#include "string.h"
_FOSC(CSW_FSCM_OFF & XT_PLL16);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN);
_FGS(CODE_PROT_OFF);
extern FIRStruct lowpassexample_psvFilter; /*Contains filter structures for FIR-LPF*/
extern FIRStruct fir_oneFilter;
extern FIRStruct fir_baFilter;
extern FIRStruct fir_cuoiFilter;
fractional i_Ptr_sig[NUMSAMP];
fractional input_I_signal[NUMSAMP];
fractional input_Q_signal[NUMSAMP];
fractional output_I_signal[NUMSAMP];
fractional output_Q_signal[NUMSAMP];
fractional* i_Ptr;
unsigned int ref_input_s90;
unsigned int ref_input;
unsigned int doFilterFlag;
int main(void)
{
float nhan1,nhan2,kq1,kq2,adc;
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 61
float fI,fQ;
float mag,phi;
char sBuff[40];
TRISE = 0xFFF0;
FIRDelayInit(&lowpassexample_psvFilter);
FIRDelayInit(&fir_oneFilter);
FIRDelayInit(&fir_baFilter);
// Uart_Init();
Init_Timers();
Init_ADC();
TMR1 = 0;
TMR2 = 0;
TMR3 = 0;
T1CONbits.TON = 1;
T2CONbits.TON = 1;
T3CONbits.TON = 1;
while(!doFilterFlag);
while (1)
{
if (doFilterFlag)
{
i_Ptr =& i_Ptr_sig[0];
adc = Fract2Float(i_Ptr_sig[0]);
nhan1=Fract2Float(i_Ptr_sig[0])*ref_input;
nhan2=Fract2Float(i_Ptr_sig[0])*ref_input_s90;
input_I_signal[0] = Float2Fract(nhan1);
input_Q_signal[0] = Float2Fract(nhan2);
FIR(NUMSAMP,&output_I_signal[0],&input_I_signal[0],&fir_oneFilter);
FIRDecimate(NUMSAMP,&output_I_signal[10],&input_I_signal[10],&fir_oneFilter,10);
FIR(NUMSAMP,&output_Q_signal[0],&input_Q_signal[0],&fir_oneFilter);
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 62
FIRDecimate(NUMSAMP,&output_Q_signal[10],&input_Q_signal[10],&fir_oneFilter,1
0);
FIR(NUMSAMP,&output_I_signal[0],&input_I_signal[0],&lowpassexample_psvFilter);
FIRDecimate(NUMSAMP,&output_I_signal[8],&input_I_signal[8],&lowpassexample_p
svFilter,8);
FIR(NUMSAMP,&output_Q_signal[0],&input_Q_signal[0],&lowpassexample_psvFilter
);
FIRDecimate(NUMSAMP,&output_Q_signal[8],&input_Q_signal[8],&lowpassexample_
psvFilter,8);
FIRDecimate(NUMSAMP,&output_I_signal[0],&input_I_signal[0],&fir_baFilter,2);
FIRDecimate(NUMSAMP,&output_Q_signal[0],&input_Q_signal[0],&fir_baFilter,2);
FIR(NUMSAMP,&output_I_signal[0],&input_I_signal[0],&fir_cuoiFilter);
FIR(NUMSAMP,&output_Q_signal[0],&input_Q_signal[0],&fir_cuoiFilter);
fI = Fract2Float(output_I_signal[0]);
fQ = Fract2Float(output_Q_signal[0]);
....................................
Init_LCD();
// lcd_cmd(lcd_homeL1);
print_lcd(0x80,"TIN HIEU DO DUOC");
// sprintf(sBuff," PHI = %8.4f ",phi);
puts_lcd(sBuff,strlen(sBuff));
lcd_cmd(lcd_homeL2);
sprintf(sBuff," MAG = %8.5f ",mag);
puts_lcd(sBuff,strlen(sBuff));
// RS232XMT(sBuff);
doFilterFlag = 0;
}
}
return 0;
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 63
}
//---Isr_Timers---
#include
#include "common.h"
#include "dsp.h"
volatile unsigned char _sinTableIndex;
extern unsigned int ref_input_s90;
extern unsigned int ref_input;
static unsigned char sinTable[] = {5,6,7,8,9,9,10,10,10,10,10,9,9,8,7,6,5,4,3,2,1,1,0,0
,0,0,0,1,1,2,3,4};
static unsigned char sinTable_s90[] = {10,10,10,9,9,8,7,6,5,4,3,2,1,1,0,0,0,0,0,1,1,2,3
,4,5,6,7,8,9,9,10,10};
void __attribute__((__interrupt__,no_auto_psv)) _T2Interrupt( void )
{
_sinTableIndex++;
_sinTableIndex &= 0b00011111;
LATE = (sinTable[_sinTableIndex]);
ref_input = (sinTable[_sinTableIndex]);
ref_input_s90 = (sinTable_s90[_sinTableIndex]);
IFS0bits.T2IF = 0; // Xoa co ngat
}
//--lcd--
#include "p30f4011.h"
#include "delay.h"
#include "lcd8bit.h"
void print_LCD(char a,char *s);
void Init_LCD( void );
void lcd_cmd( char cmd );
void lcd_data( char data ) ;
void puts_lcd( unsigned char *data, unsigned char count );
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 64
// cai dat lcd
void Init_LCD( void )
{
TRISB &= 0xFF00; // cai dat 8 bit (RB0...RB7) la out con lai la in
RW_TRIS = 0; // cai dat RW la out
RS_TRIS = 0; // cai dat RS la out
E_TRIS = 0; // cai dat E la out
LATB &= 0xFF00;
RW = 0; // RW = low
RS = 0; // RS = low
E = 0; // E = low
lcd_cmd( lcd_8bit ); // che do giao tiep 8 bit
lcd_cmd( lcd_normal ); // che do nhap du lieu binh thuong
lcd_cmd( lcd_on_crsr ); // bat mam hinh va con tro
Delay_ms(1);
}
//Chuong trinh con xuat lenh o che do 8 bit
void lcd_cmd( char cmd )
{
DATA &= 0xFF00; // chuan bi RB0 - RB7
DATA |= cmd; // gui lenh toi lcd
RW = 0; // RW = low
RS = 0;
E = 1; // E = hight
Nop();
Nop();
Nop();
E = 0;
RS = 0;
Delay_ms(10);
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 65
}
//Chuong trinh con xuat du lieu o che do 8 bit
void lcd_data( char data )
{
RW = 0; //
RS = 1; //
DATA &= 0xFF00; // chuan bi RE0 - RE7
DATA |= data; // gui du lieu toi lcd
E = 1;
Nop();
Nop();
Nop();
E = 0; //
RS = 0; //
Delay_ms(10); // 200uS delay
}
void print_lcd(char a,char *s) // ham in ky tu tren LCD, in ky tu truc tiep
{
lcd_cmd(a);
while(*s != 0)
lcd_data(*s++);
}
void puts_lcd( unsigned char *data, unsigned char count )
{
while ( count )
{
lcd_data( *data++ );
count--;
} }
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn 66
Mạch Nguyên Lý
ĐH Công Nghệ - ĐHQG Hà Nội Khóa Luận Tốt Nghiệp
Sinh Viên : Lê Trần Triệu Tuấn
Tài Liệu Tham Khảo
[1] “Chip pak high volume presure sensor for disposable, backside pressure applications
MPX2300D” –
[2] Bentham – “Lockin amplifers” –
[3] “dsPIC Language Tool Libraries” –
[4] “dsPIC30F Family Reference Manual” –
[5] “dsPIC30F’s Programmer Reference Manual” –
[6] “dsPic30F4011/4012” –
[7] “FilterPro MFB and Sallen– Key Low-Pass Filter Design Program” – John Bishop,
Bruce Trump, R. Mark Stitt. –
[8] “Implementing Digital Lock-In Amplifiers Using the dsPIC DSC” –
[9] Jerry Seams – “R/2R LADDER NETWORKS” –
[10] “Low Cost, Low Power Instrumentation Amplifier” –
[11] Microchip Inc website –
[12] “Sallen-Key Low-Pass Filter” –
[13] “The Analog Lock-in Amplifier” –
[14] “The Digital Lock-in Amplifier” –
[15] “What is a Lock-in Amplifier?” –
[16] “Wide Bandwidth Dual JFET Input Operational Amplifier” – www.national.com
[17] www.docu-track.com
[18] “Tutorial 04.01, Tutorial 05.01, Tutorial 06.01” –
Các file đính kèm theo tài liệu này:
- vi_dieu_khien_dspic30f4011_494.pdf