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
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
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
72 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1618 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Khóa luận Đo với cảm biến áp suất MPX2300D của Motorola, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hĩ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
Các file đính kèm theo tài liệu này:
- vi_dieu_khien_dspic30f4011_494.pdf