Thiết kế và xây dựng mạch điều khiển vi kẹp có gắn cảm biến

MỤC LỤC Chương 1 1 Giới thiệu 1 1.1 Vi kẹp có gắn cảm biến 1 1.1.1 Giới thiệu 1 1.1.2 Chế tạo 1 1.1.3 Vi chấp hành điện nhiệt polymer-silicon 1 1.1.4 Thông số kỹ thuật của vi kẹp có gắn cảm biến 3 1.2 Bài toán xây dựng hệ thống điều khiển. 7 1.3 Yêu cầu thiết kế hệ thống điều khiển 7 Chương 2 8 GIỚI THIỆU HỌ VI ĐIỀU KHIỂN MSP430x1xx 8 2.1 Giới thiệu 8 2.2 Không gian địa chỉ 8 2.2.1 Flash/ROM 9 2.2.2 RAM 9 2.2.3 Những khối ngoại vi 9 2.2.4 Những thanh ghi chức năng đặc biệt ( SFR ) 10 2.2.5 Truy cập bộ nhớ 10 2.3 Cổng vào/ra số 11 2.3.1 Giới thiệu vào/ra số 11 2.3.2 Hoạt động vào/ra số 11 2.3.3 Thanh ghi đầu vào PxIN 11 2.3.4 Thanh ghi ra PxOUT 11 2.3.5 Thanh ghi điều khiển PxDIR 11 11 2.3.6 Thanh ghi lựa chọn chức năng PxSEL 12 2.4 USART giao tiếp ngoại vi, chế độ UART 12 2.4.1 Chế độ hoạt động của UART 12 2.4.2 Khởi tạo và xác lập lại chế độ hoạt động USART 13 2.4.3 Dạng kí tự khung truyền 14 2.4.4 Định dạng truyền không đồng bộ 15 2.4.5 USART cho phép nhận 17 2.4.6 USART cho phép truyền 17 2.5 Bộ chuyển đổi tương tự số 12 bit ADC12 18 2.5.1 Giới thiệu ADC12 18 2.5.2 Hoạt động của ADC12 20 2.5.2.1 Nhân 12 bit của ADC12 20 2.5.2.2 Các đầu vào của ADC12 và bộ hợp kênh 20 2.5.2.3 Điện áp tham chiếu 20 2.5.3 Các chế độ chuyển đổi ADC12: 23 2.5.3.1 Chế độ kênh-đơn chuyển đổi-đơn 24 2.5.3.2 Chế độ trình tự-của-các kênh 25 2.5.3.3 Chế độ đa hợp 26 2.5.3.4 Chế độ lặp lại kênh tuần tự 27 2.6 Bộ chuyển đổi số-tương tự DAC12 28 2.6.1 Giới thiệu về DAC12 28 2.6.2 Hoạt động DAC12 30 2.6.2.1 Nhân của DAC12 30 2.6.2.2 Lựa chọn cổng cho DAC12 31 2.6.2.3 Điện áp tham chiếu DAC12 31 2.6.2.4 Cập nhật đầu ra điện áp DAC12 31 Chương 3 32 THIẾT KẾ MẠCH 32 Phần 1 32 3.1 THIẾT KẾ PHẦN CỨNG 32 3.1.1 Đặt vấn đề 32 3.1.2 Đặc điểm kĩ thuật 32 3.1.3 Sơ đồ khối mạch thiết kế 32 3.1.4 Chức năng và sơ đồ nguyên lý từng khối 33 3.1.4.1 Khối khuếch đại tín hiệu từ sensor 33 3.1.4.2 Khối xử lý trung tâm. 35 3.1.4.3 Khối ghép nối máy tính. 35 3.1.4.4 Khối điều khiển vi kẹp. 35 3.1.5 Thiết kế mạch bằng Protel 99SE 37 3.1.5.1 Mạch nguyên lý 37 3.1.5.2 Mạch in 37 3.1.6 Kết luận 37 Phần 2 38 3.2 LẬP TRÌNH NHÚNG CHO KHỐI ĐIỀU KHIỂN TRUNG TÂM 38 3.2.1 Công cụ phần mềm lập trình 38 3.2.2 Lập cấu hình hoạt động cho khối điều khiển trung tâm 38 3.2.2.1 Cấu hình cho khối ADC12 38 3.2.2.2 Cấu hình cho khối DAC12 42 3.2.2.3 Cấu hình cho khối UART 45 3.2.3 Kết luận 48 Chương 4 49 Kết luận 49 Phụ lục A 50 Mã nguồn chương trình điều khiển vi kẹp có gắn cảm biến từ PC 50 Phụ lục B 53 Tài liệu tham khảo 53

doc59 trang | Chia sẻ: banmai | Lượt xem: 1726 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Thiết kế và xây dựng mạch điều khiển vi kẹp có gắn cảm biến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hoạt, cánh tay của vi kẹp và thanh cảm biến cantilever bị uốn cong. Nó tạo ra một ứng xuất dọc theo chiều dài trên hai cạnh đối diện của thanh cantilever làm thay đổi giá trị điện trở của cảm biến áp trở trên thanh cantilever. Khoảng cách giữa hai hàm vi kẹp được giám sát bởi thế ra của cầu Wheatstone. Lực tiếp xúc giữa vi kẹp và vật được xác định dựa trên độ dịch chuyển và độ cứng của cánh tay vi kẹp. Hình 1.2 biểu diễn mặt cắt ngang và biểu diễn bề mặt chế tạo của cảm biến có gắn vi kẹp. 1.1.3 Vi chấp hành điện nhiệt polymer-silicon Cảm biến có gắn vi kẹp được thiết kế ở trạng thái thường mở. Cấu trúc của vi kẹp dựa trên silicon kết hợp với polymer, mỗi bộ chấp hành bao gồm 41 răng lược silicon với những lớp polymer SU8 ở giữa. Mỗi răng silicon có chiều rộng là 6 µm, chiều dài là 75 µm, và bề dày là 30 µm. Lớp polymer SU8 có chiều rộng là 3 µm. Hình 1.1: Hình vẽ nguyên lý của vi kẹp có gắn cảm biến Hình 1.2: Biểu diễn mặt cắt ngang cánh tay của vi kẹp có gắn cảm biến với kí hiệu hình học và các thông số. Biểu diễn cấu hình của cầu Wheatstone. 1.1.4 Thông số kỹ thuật của vi kẹp có gắn cảm biến Hình 1.3 biểu diễn một vài trạng thái khác nhau của miệng vi kẹp. Hình 1.3(a) là trạng thái không hoạt động của vi kẹp với độ mở là 40 µm. Khoảng cách giữa hai miệng có thể được đóng tới 8 µm khi áp dụng một điện thế khoảng 4.5 V tới các cánh tay (hình 1.3 b). Trong hình 1.3 (c) và (d) minh họa cho thao tác kẹp dây kim loại 23 µm. Hình 1.3: Hoạt động của thiết bị:(a) vị trí ban đầu miệng của vi kẹp có gắn cảm biến; (b) khi có áp đặt một điện thế 4.5 V tới cả những cánh tay; (c) trước khi kẹp vật; (d) khi kẹp vật ( dây kim loại ). Hình 1.4 biểu diễn độ dịch chuyển tương ứng của miệng vi kẹp trong không khí khi có thế dc áp dụng tới chấp hành điện nhiệt. Độ dịch chuyển này là tổng số dịch chuyển của hai miệng vi kẹp khi cả hai cánh tay hoạt động. Sai số của phép đo được ước lượng là 1.5 µm. Sự di chuyển cực đại 32 µm được đo tại điện áp ứng dụng 4.5 V. Do vậy, những vi kẹp này có khả năng thao tác với các vật có đường kính giữa 8 và 40 µm. Hình 1.4: Sự dịch chuyển miệng của vi kẹp có gắn cảm biến tương ứng với điện áp cung cấp. Đo được độ dịch chuyển tối đa là 32 µm tại 4.5 V Công suất tiêu thụ của nguồn được tính dựa trên điện áp và dòng tương ứng trên vi chấp hành điện nhiệt. Hình 1.5 biểu diễn độ dịch chuyển miệng vi kẹp khi tương ứng với công suất tiêu thụ. Trung bình thiết bị cần 5 mW cho 1 µm dịch chuyển của miệng vi kẹp. Hình 1.5: Sự dịch chuyển của miệng vi kẹp tương ứng với công suất nguồn tiêu thụ. Hình 1.6 biểu diễn tín hiệu đầu ra của cầu Wheatstone tương ứng với điện áp đặt trên vi chấp hành điện nhiệt. Giá trị điện trở ban đầu của áp điện trở tại nhiệt độ phòng là 39 kOhm. Điện áp nuôi cho cầu là 1 V dc. Điện áp ra lớn nhất là 49 mV tại điện áp đặt lên vi kẹp là 4.5 V. Mối quan hệ giữa điện áp ra và độ dịch chuyển miệng của vi kẹp có gắn cảm biến được biểu diễn trong hình 1.7. Độ nhạy của vi kẹp có gắn cảm biến là 1.5 kV/m. Đường cong tuyến tính này trong phạm vi 2 %. Hơn nữa, hình 1.6 biểu diễn thế đầu ra của cảm biến lực áp trở cantilever khi vi kẹp kẹp một dây kim loại có đường kính 23 µm. Hai miệng của vi kẹp có gắn cảm biến đóng từ từ cho tới khi nó kẹp được vật. Lực tiếp xúc giữa miệng của vi kẹp và vật được kẹp có thể được ước lượng thông qua sự dịch chuyển của vi kẹp trong hình 1.6. Hình 1.6: Biểu diễn mối liên hệ giữa điện áp ra của cầu Wheatstone và điện áp ứng dụng. Hình 1.7: Đầu ra của cảm biến lực cantilever tương ứng với độ dịch chuyển miệng của vi kẹp có gắn cảm biến. Hình 1.8 biểu diễn lực tiếp xúc giữa hai miệng của vi kẹp và vật được kẹp tương ứng với giá trị điện áp đặt lên vi kẹp. Lực tiếp xúc bằng không cho tới khi hai miệng kẹp vào vật tại điện áp khoảng 3.75 V. Sau đó lực tiếp xúc được tăng tới 135 mN tại điện áp ứng dụng là 4.5 V. Hình 1.8: Biểu diễn lực tiếp xúc giữa hai miệng của vi kẹp và những vật được giữ tương ứng với giá trị điện áp ứng dụng. 1.2 Bài toán xây dựng hệ thống điều khiển. Hoạt động của vi kẹp sẽ được cải thiện bằng việc sử dụng một hệ thống điều khiển vòng kín. Một hệ thống điều khiển vòng kín sử dụng độ dịch chuyển và tín hiệu lực phản hồi để điều khiển trạng thái của vi kẹp. Nó tận dụng toàn bộ sự thuận lợi của hệ thống vòng lặp: tăng độ chính xác và cải thiện tốc độ của thao tác, và sự ổn định của quá trình thao tác. Khóa luận này trình bày thiết kế, chế tạo và kết quả của mạch điện tử điều khiển vòng kín. Hình 1.9 biểu diễn sơ đồ khối mạch điện của hệ thống điều khiển vòng kín. Trong cấu hình này, vi kẹp có gắn cảm biến được kết nối tới máy tính (PC) thông qua một bo mạch điều khiển. Điều khiển sẽ được thực hiện từ PC bằng phần mềm. Tín hiệu lực phản hồi có được từ cảm biến thông qua một bộ khuếch đại sau đó được chuyển thành tín hiệu số (ADC). Dựa trên giá trị so sánh giữa lực tham chiếu và lực phản hồi, bộ chấp hành được điều khiển bởi một vi điều khiển thông qua mạch chuyển đổi số tương tự (DAC). Để đảm bảo cho việc điều khiển đủ công suất, sau mạch DAC có thiết kế thêm một tầng khuếch đại công suất phù hợp với vi kẹp. Đặc biệt trong bo mạch điều khiển có sử dụng vi điều khiển MSP430F167. Vi điều khiển này tích hợp bộ ADC, DAC 12 bit để xử lý tín hiệu phản hồi và truyền tới PC, đồng thời nhận tín hiệu từ PC để thực hiện thao tác điều khiển vi kẹp. Hình 1.9: Sơ đồ mạch nguyên lý của hệ thống điều khiển 1.3 Yêu cầu thiết kế hệ thống điều khiển Điều kiện tiên quyết của hệ thống điều khiển là phải đảm bảo tính ổn định, nhận và xử lý tín hiệu điều khiển phải chính xác, công suất đủ lớn để cung cấp cho vi kẹp. Việc xử lý tín hiệu lực phản hồi và tín hiệu điều khiển từ PC đủ nhanh, giảm thiểu tối đa trễ trong quá trình điều khiển. Bo mạch điều khiển đáp ứng được những thông số kĩ thuật như đã được trình bày trong phần trên. Chương 2 GIỚI THIỆU HỌ VI ĐIỀU KHIỂN MSP430x1xx 2.1 Giới thiệu MSP430 là một sự kết hợp chặt chẽ của một CPU RISC 16 bit, những khối ngoại vi, và hệ thống xung linh hoạt. Những đặc tính của hộ vi điều khiển MSP430x1xx gồm: - Kiến trúc nguồn điện cực thấp để mở rộng tuổi thọ của Pin + 0.1-A duy trì RAM + 0.8-A chế độ xung thời gian thực + 250-A/MIPS tích cực - Xử lý tín hiệu tương tự với hiệu xuất cao : + 12-bit hoặc 10-bit ADC – 200Ksps, cảm biến nhiệt, V(Ref). + 12-bit kép DAC. Hình 2.1: Cấu trúc vi điều khiển MSP430 2.2 Không gian địa chỉ Cấu trúc vi điều khiển MSP430 có một địa chỉ không gian nhớ được chia sẻ với các thanh ghi chức năng đặc biệt (SFRs), các bộ ngoại vi, RAM, và bộ nhớ Flash/ROM được biểu diễn trên hình vẽ. Việc truy cập mã chương trình luôn luôn được thực hiện trên một địa chỉ chẵn. Dữ liệu có thể được truy cập như là những byte hay những từ. Không gian địa chỉ nhớ là 64 KB có thể mở rộng hơn nữa cho những kế hoạch khác. Hình 2.2: Sơ đồ bộ nhớ 2.2.1 Flash/ROM Địa chỉ bắt đầu của Flash/ROM phụ thuộc vào số lượng Flash/ROM hiện có và thay đổi tùy theo loại chip. Địa chỉ kết thúc cho Flash/ROM là 0FFFFh. Flash có thể được sử dụng cho cả mã và chương trình. Những bảng từ hay byte có thể được cất và sử dụng trong Flash/ROM mà không cần bảng sao chép tới RAM trước khi sử dụng chúng. 2.2.2 RAM RAM có địa chỉ bắt đầu tại 0200h. Địa chỉ kết thúc của RAM phụ thuộc vào số lượng RAM có và thay đổi tùy thuộc vào từng dòng vi điều khiển. RAM có thể được sử dụng cho cả mã và dữ liệu. 2.2.3 Những khối ngoại vi Những module giao tiếp ngoại vi được xắp xếp vào không gian địa chỉ. Không gian địa chỉ từ 0100h tới 01FFh được dành riêng cho module ngoại vi 16 bit. Những module này có thể được truy cập với những từ chỉ dẫn(lệnh). Không gian địa chỉ từ 010h tới 0FFh được dành riêng cho module ngoại vi 8 bit. 2.2.4 Những thanh ghi chức năng đặc biệt ( SFR ) Một vài chức năng ngoại vi được cấu hình trong thanh ghi chức năng đặc biệt. Những thanh ghi chức năng đặc biệt được nằm trong 16 byte thấp của không gian địa chỉ. Những SFR phải được truy cập bằng việc sử dụng câu lệnh byte. 2.2.5 Truy cập bộ nhớ Những byte được nằm tại những địa chỉ chẵn hay lẻ. Những từ chỉ nằm tại địa chỉ chẵn được biểu diễn trong hình 1-3. Khi sử dụng từ chỉ dẫn, chỉ những địa chỉ chẵn có thể được sử dụng. Những byte thấp của một từ luôn luôn là một địa chỉ chẵn. Byte cao ở tại địa chỉ lẻ tiếp theo. Ví dụ, nếu một từ dữ liệu nằm tại địa chỉ xxx4h, kết thúc byte thấp của từ dữ liệu nằm tại địa chỉ xxx4h, và byte cao của từ đó nằm tại địa chỉ xxx5h. Hình 2.3: Những bit, những byte, và những từ trong một trật tự byte bộ nhớ 2.3 Cổng vào/ra số Trong phần này chúng ta mô tả hoạt động của các cổng vào ra số. Những cổng P1-P2 được bổ xung trong những vi điều khiển MSP430x11xx. Những cổng P1-P3 được bổ xung trong những vi điều khiển MSP430x12xx. Những cổng P1-P6 được bổ xung trong những vi điều khiển MSP430x13xx, MSP430x14xx, MSP430x15xx, và trong những vi điều khiển MSP430x16xx. 2.3.1 Giới thiệu vào/ra số Họ vi điều khiển MSP430 có tới 6 cổng vào/ ra số, P1-P6. Mỗi cổng có 8 chân vào/ra. Bất kì một chân vào/ra số nào đều có thể được cấu hình cho việc điều khiển riêng rẽ đầu vào hay đầu ra, và mỗi đương vào/ra có thể đọc hay viết riêng rẽ. Những cổng P1 và P2 có khả năng ngắt. Mỗi đường ngắt cho P1 và P2 vào/ra có thể được cho phép riêng rẽ và được cấu hình để cung cấp một ngắt trên một sườn lên hay xuống cả một tín hiệu ngắt. 2.3.2 Hoạt động vào/ra số Vào/ra số được cấu hình bằng phần mềm. Việc cài đặt và hoạt động của vào/ra số được thảo luận trong những phần dưới đây. 2.3.3 Thanh ghi đầu vào PxIN Mỗi bít trong mỗi thanh ghi đầu vào PxIN nhắc tới giá trị tín hiệu đầu vào tại chân vào/ra tương ứng khi chân đó được cấu hình như chức năng vào/ra. Bit = 0: Đầu vào là mức thấp Bit = 1: Đầu vào là mức cao 2.3.4 Thanh ghi ra PxOUT Mỗi bit trong trong mỗi thanh ghi PxOUT là giá trị đầu ra trên chân vào/ra tương ứng được cấu hình là chức năng vào/ra và điều khiển đầu ra. Bit = 0 : Đầu ra là mức thấp Bit = 1: Đầu ra là mức cao 2.3.5 Thanh ghi điều khiển PxDIR Mỗi bit trong môi thanh ghi PxDIR lựa chọn sự điều khiển tương ứng chân vào/ra của chức năng được lựa chọn cho chân đó. Những bit PxDIR cho những chân vào/ra khi được đặt cho những chức năng đặc biệt ngoài chức năng vào/ra thông thường phải được đặt cùng với một thanh ghi chức năng khác nữa. Bit = 0: Chân của cổng được điều khiển là đầu vào Bit=1:Chân của cổng được điều khiển là đầu ra 2.3.6 Thanh ghi lựa chọn chức năng PxSEL Những chân của các cổng thường được kết hợp với những module ngoại vi khác. Một bit của PxSEL được sử dụng để lựa chọn chức năng cho chân-cổng vào/ra hay module chức năng ngoại vi Bit = 0: Chức năng vào/ra được lựa chọn cho chân Bit = 1: Module chức năng ngoại vi được lựa chọn cho chân 2.4 USART giao tiếp ngoại vi, chế độ UART Chương này sẽ bàn về hoạt động của chế độ không đồng bộ UART. USART0 được thực hiện trên các vi điều khiển MSP430x12xx, MSP430x13xx, và MSP430x15xx. Trong sự bổ sung USART0, vi điều khiển MSP430x14xx và MSP430x16xx thực hiện một modul đồng nhất USART thứ hai, USART1. 2.4.1 Chế độ hoạt động của UART Trong chế độ không đồng bộ, USART kết nối MSP430 tới một hệ thống bên ngoài qua 2 pin bên ngoài, URXD và UTXD. Chế độ UART được lựa chọn khi bit SYNC được xoá. Tính năng chế độ UART bao gồm: 7-hoặc-8 bit dữ liệu là lẻ, chẵn, hoặc không-chẵn lẻ. Thanh ghi đệm nhận và truyền riêng biệt. LSB-đầu tiên truyền và nhận dữ liệu. Chương trình hoá tốc độ baud với sự điều biến cho phân đoạn hỗ trợ tốc độ baud. Trạng thái các cờ cho dò tìm lỗi và sự triệt và dò tìm địa chỉ. Khả năng ngắt độc lập cho nhận và truyền. Hình 2.4 Sơ đồ của chế độ hoạt động USART 2.4.2 Khởi tạo và xác lập lại chế độ hoạt động USART USART được khởi động lại bởi một tín hiệu PUC hoặc bằng việc thiết lập bit SWRST. Sau một PUC, bit SWRST được tự động thiết lập, giữ USART trong một điều kiện reset. Khi thiết lập, bit SWRST xác lập lại bit Ex, UTXIEx, URXIFGx, RXWAKE, TXEPT. Làm cho các cờ có thể truyền và nhận, URXEx và UTXEx, không được thay đổi bởi SWRST. Xoá SWRT làm giảm USART cho hoạt động. Xem thêm chương modul USART, chế độ 12C cho USART0 khi lại định hình từ chế độ IC tới chế độ UART. Chú ý: Khởi tạo hoặc định hình lại modul USART. Sự khởi tạo/định hình lại USART yêu cầu những quá trình sau: Thiết lập SWRST (BIS.B #RST, &UxCTL). Khởi tạo tất cả thanh ghi USART với SWRST = 1 (bao gồm UxCTL). Làm cho modul USART có thể qua MExSFRs (URXEx và/hoặc UTXEx). Xoá SWRST qua phần mềm (BIC.B #SWRST, &UxCTL). Làm cho các ngắt (tuỳ chọn) có thể qua IExSFRs (URXIEx và/hoặc UTXIEx). 2.4.3 Dạng kí tự khung truyền Đặc tính định dạng UART, cho thấy trong hình 2.5, gồm có một bit start, 7 hoặc 8 bit dữ liệu, một bit /lẻ/không chẵn lẻ, một bit địa chỉ (chế độ địa chỉ-bit), và một hoặc hai bit stop. Bit chẵn lẻ được định nghĩa bởi lựa chọn nguồn xung và cài đặt của tốc độ baud các thanh ghi. Hình 2.5: Dạng kí tự khung truyền 2.4.4 Định dạng truyền không đồng bộ Khi hai thiết bị truyền thông không đồng bộ, định dạng đường-không dùng đến được sử dụng cho giao thức. Khi 3 hoặc nhiều hơn thiết bị truyền thông, USART hỗ trợ đường-không dùng đến và bit-địa chỉ định dạng truyền thông đa xử lý. Khi MM = 0, định dạng đa xử lý đường-không dùng đến được lựa chọn. Những khối dữ liệu được phân ra bằng một thời gian không dùng đến trên các đường truyền hoặc nhận như được thấy trong hình 13-3. Một đường nhận không dùng đến được tạo ra khi 10 hoặc nhiều hơn tiếp tục những con số một (những đánh dấu) được nhận sau khi bit stop đầu tiên của một đặc tính. Khi 2 bit stop được sử dụng cho đường không dùng đến thì bit stop thứ hai được đếm như bit đánh dấu đầu tiên của giai đoạn không dùng đến. Đặc tính đầu tiên nhận sau khi một giai đoạn không dùng đến là một đặc tính địa chỉ. Bit RXWAKE được sử dụng như một thẻ địa chỉ cho mỗi khối của đặc tính. Trong định dạng đa xử lý đường-không dùng đến, bit này được thiết lập khi một đặc tính nhận được một địa chỉ và được chuyển tới UxRXBUF. Hình 2.6: Định dạng Idle-Line Bit URXWIE được sử dụng để điều khiển sự thu nhận dữ liệu trong định dạng đa xử lý đường-không dùng đến. Khi bit URXWIE được thiết lập, tất cả các đặc tính không-địa chỉ được tập hợp nhưng chưa được chuyển vào trong UxRXBUF, và các ngắt không được tạo ra. Khi một đặc tính địa chỉ được nhận, nhận được khi được kích hoạt tạm thời để chuyển đặc tính tói UxRXBUF và các thiêt lập cờ ngắt URXIFGx. Bất kỳ cờ lỗi nào có thể ứng dụng được cũng được thiết lập. Có thể sử dụng sau khi nhận địa chỉ thích hợp. Nếu một địa chỉ được nhận, việc sử dụng phần mềm có thể là thích hợp và phải xác lập lại URXWIE để tiếp tục nhận dữ liệu. Nếu URXWIE còn lại thiết lập, chỉ đặc tính địa chỉ sẽ được nhận. bit URXWIE không được sử đổi bằng USART phần cứng tự động. Cho truyền địa chỉ trong định dạng đa xử lý đường-không dùng đến, một giai đoạn không dùng đến đặc biệt có thể tạo ra bởi USART để tạo ra những định dạng đặc tính địa chỉ trên UTXDx. Tạm thời đánh thức cờ (WUT) là một cờ bên trong bộ đệm-kép với việc sử dụng-truy nhập bit TXWAKE. Khi máy phát tải từ UxTXBUF, WUT cũng được tải từ TXWAKE khởi động lại bit TXWAKE. Quy trình sau khi gửi ra ngoài một khung không dùng đến để cho biết một đặc tính địa chỉ sẽ đi theo: Thiết lập TXWAKE, sau khi viết bất kỳ đặc tính nào tới UxTXBUF. UxTXBUF phải được đọc cho dữ liệu mới (UTXIF = 1). Giá trị TXWAKE được chuyển tới WUT và những nội dung của UxTXBUF được chuyển để truyền vào thanh ghi khi chuyển thanh ghi được đọc cho dữ liệu mới. Những thiết lập này, mà bộ triệt bắt đầu, dữ liệu, và bit chẵn lẻ của một truyền thông thông thường, sau khi truyền một giai đoạn không dùng đến của chính xác 11 bit. Khi 2 bit stop được sử dụng cho đường không dùng đến, bit stop thứ hai được đếm như bit đánh dấu đầu tiên của giai đoạn không dùng đến. TXWAKE được tự động xác lập lại. Viết đặc tính địa chỉ đích tới UxTXBUF. UxTXBUF cần phải được sẵn sàng cho dữ liệu mới (UTXIFGx = 1). Miêu tả đặc tính mới của lý thuyết địa chỉ được chuyển ra ngoài sau đó nhận dạng-địa chỉ giai đoạn không dùng đến trên UTXDx. Đầu tiên viết đặc tính “không bảo dưỡng” tới UxTXBUF được cần thiết trong thứ tự chuyển bit TXWAKE tới WUT và tạo ra một điều kiện đường-không dùng đến. Dữ liệu này được loại bỏ và không xuất hiện trên UTXDx. 2.4.5 USART cho phép nhận Bit cho phép nhận, URXEx, cho phép hoặc vô hiệu hoá sự tiếp nhận dữ liều trên URXDx như được cho thấy trong hình 13-5. Việc vô hiệu hoá dừng nhận USART nhận thao tác sau khi hoàn thành của bất kỳ ký tự hiện tại nào được nhận hoặc ngay lập tức nếu thao tác không nhận thì hoạt động. Bộ đệm dữ liệu-nhận, UxRXBUF, chứa đựng ký tự di chuyển từ thanh ghi RX chuyển sau khi ký tự được nhận. Hình 2.7: Sơ đồ khối của quá trình nhận Chú ý: làm cho có thể-lại nhận (thiết lập URXEx): chế độ UART. Khi quá trình nhận được vo hiệu hoá (URXEx = 0), việc cho phép-lại nhận (URXEx = 1) là không đồng bộ với bất kỳ dòng dữ liệu nào đó có thể có mặt trên URXDx vào thời gian. Không đồng bộ có thể thực hiện bởi việc kiểm tra điều kiện cho một đường rỗi trước khi việc nhận một ký tự hợp lệ (Xem URXWIE). 2.4.6 USART cho phép truyền Khi UTXEx được thiêt lập, truyền UART là có thể. Sự truyền được bắt đầu bởi việc viết dữ liều vào UxTXBUF. Dữ liệu sau khi di chuyển để truyền vị trí thanh ghi trên BITCLK tiếp theo sau khi vị trí thanh ghi TX trống rỗng, và sự truyền bắt đầu. Quá trình này được cho thấy trong hình 13-6. Khi bit UTXEx được reset máy phát được dừng. Mọi dữ liệu di chuyển tới UxTXBUF và mọi hoạt động truyền của dòng dữ liệu trong truyền thanh ghi trước khi được xoá UTXEx sẽ tiếp tục cho đến khi tất cả dữ liệu truyển được hoàn thành. Hình 2.8: Sơ đồ trạng thái của khả năng truyền . Khi máy phát được cho phép (UTXEx = 1), dữ liệu không thể viết vào UxTXBUF trừ khi nó được đọc cho biết dữ liệu mới bởi UTXIFGx = 1. Sự xâm phạm có thể kết quả trong một sự truyền không đúng nếu dữ liệu trong UxTXBUF được sửa đổi như nó được bắt đầu di chuyển vào trong vị trí thanh ghi TX. Khuyến cáo truyền đó được vô hiệu hoá (UTXEx = 0) chỉ sau khi mọi hoạt động truyền hoàn thành. Điều này cho biết bởi một thiết lập truyền bit (TXEPT = 1) trống rỗng. Mọi dữ liệu viết vào UxTXBUF trong khi máy phát được vô hiệu hoá sẽ được giữa trong bộ đệm nhưng sẽ không di chuyển để truyền tới vị trí thanh ghi hoặc truyền. UTXEx được thiết lập một lần, dữ liệu trong bộ đệm truyền được tải ngay lập tức vào trong truyền vị trí thanh ghi và lại tiếp tục truyền ký tự. 2.5 Bộ chuyển đổi tương tự số 12 bit ADC12 2.5.1 Giới thiệu ADC12 Modul ADC12 là khối chuyển đổi tương tự- số 12 bit, điều khiển lựa chọn mẫu, và một bộ đệm 16 chuyển đổi-và-điều khiển. Bộ đệm chuyển đổi số cho phép lên tới 16 mẫu ADC độc lập để chuyển đổi và lưu trữ mà không có bất kỳ có sự can thiệp nào của CPU. Tính năng của ADC bao gồm: Tốc độ chuyển đổi cực đại lớn hơn 200 Ksps. Bộ chuyển đổi 12-bit. Lấy mẫu-và-giữ mẫu với chương trình hoá giai đoạn lấy mẫu được điều khiển bởi phần mềm hoặc các bộ định thời. Sự bắt đầu chuyển đổi bởi phần mềm, Timer_A, hoặc Timer_B. Lựa chọn phần mềm trên-chip tham chiếu điện thể tạo ra (1.5V hoặc 2.5 V). 8 kênh riêng lẻ được định hình đầu vào bên ngoài. Lựa chọn kênh độc lập cho các nguồn tham chiếu cho cả tham chiếu dương và âm. Lựa chọn chuyển đổi nguồn xung cho việc chuyển đổi. Các chế độ chuyển đổi kênh-đơn, lặp lại-đơn-kênh, nối tiếp, và lặp lại-nối tiếp. 16 Thanh ghi lưu trữ kết quả chuyển đổi. Hình 2.11: Sơ khối chuyển đổi ADC12 2.5.2 Hoạt động của ADC12 Modul ADC12 được cấu hình bởi phần mềm. Cài đặt và hoạt động của ADC12 được bàn luận trong những phần sau. 2.5.2.1 Nhân 12 bit của ADC12 Sự mô tả nhân ADC chuyển đổi đầu vào tương tự tới số 12 bit và kết quả lưu trữ chuyển tới bộ nhớ. Nhân sử dụng hai mức điện thế chương trình hoá/có thể lựa chọn (V và V) để định nghĩa giới hạn cao hơn và thấp hơn của chuyển đổi.Kênh đầu vào và các mức thông số điện áp (V và V) được định nghĩa trong bộ nhớ chuyển đổi-điều khiển. Công thức chuyển đổi ADC kết quả N là : N = 4095 x Nhân ADC12 được định hình bằng hai thanh ghi điều khiển, ADC12CTL0 và ADC12CTL1. Nhân có thể cùng với bit ADC12ON. ADC12 có thể được tắt khi không sử dụng nguồn lưu trữ. Với ít ngoại lệ của ADC12 bit điều khiển có thể chỉ sửa đổi khi ENC = 0. ENC phải được thiết lập tới 1 trước khi có bất kỳ sự chuyển đổi nào có thể xảy ra. Lựa chọn chuyển đổi xung: ADC12CLK được sử dụng cả hai như xung chuyển đổi và để tạo ra giai đoạn lấy mẫu khi chế độ xung lấy mẫu được lựa chọn. Nguồn xung ADC12 được lựa chọn sử dụng bit ADC12SSELx và có thể tách ra từ việc sử dụng 1-8 bit ADC12DIVx. Nguồn ADC12CLK có thể là SMCLK, MCLK, ACLK, và một bộ dao động ADC12OSC bên trong. ADC12OSC, phát sinh nội tại, trong phạm vi 5-MHz, nhưng các vi điều khiển riêng lẻ là khác nhau, cung cấp điện áp, và nhiệt độ. Xem bảng dữ liệu vi điều khiển-riêng biệt cho chi tiết kỹ thuật ADC12OSC. Người dùng phải bảo đảm rằng chọn xung cho ADC12CLK còn lại hoạt động cho đến khi kết thúc một chuyển đổi. Nếu đồng hộ được gỡ bỏ trong một chuyển đổi, hoạt động sẽ không hoàn thành và bất kỳ kết quả nào cũng sẽ không hợp lệ. 2.5.2.2 Các đầu vào của ADC12 và bộ hợp kênh Các đầu vào là bộ hợp kênh với cổng pin P6. Các bit P6SELx cung cấp khả năng để vô hiệu hoá cổng đầu vào pin và đầu ra bộ đệm. ; P6.0 và P6.1 định hình cho đầu vào tương tự BIS.B #3h, &P6SEL ; P6.1 và P6.0 chức năng ADC12. 2.5.2.3 Điện áp tham chiếu Modul ADC12 chứa đựng một tham chiếu điện áp xây dựng-trong với hai mức điện áp có thể chọn được, 1.5 V và 2.5 V. Một trong hai tham chiếu điện áp này có thể sử dụng bên trong và bên ngoài trên pin V. Thiết lập REFON = 1 cho phép tham chiếu bên trong. Khi REF2_5V = 1, tham chiếu bên trong là 2.5 V, tham chiếu là 1.5 V khi REF2_5V = 0. tham chiếu có thể tắt để lưu trữ nguồn khi không sử dụng. Chế độ lấy mẫu mở rộng: Chế độ lấy mẫu mở rộng được lựa chọn khi SHP = 0. Tín hiều trự tiếp SHI điều khiển SAMPCON và định nghĩa độ dài của thời kỳ lấy mẫu t. Khi SAMPCON là cao, sự lấy mẫu hoạt động. chuyển tiếp từ cao-xuống-thấp SAMPCON bắt đầu chuyển đổi sau khi không đồng bộ với ADC12CLK. Xem hình 17-3. Hình 2.13: Chế độ lấy mẫu mở rộng Chế độ lấy mẫu xung: Chế độ lấy mẫu xung được lựa chọn khi SHP = 1. Tín hiệu SHI được sử dụng để trigger bấm giờ lấy mẫu. Bit SHT0x và SHT1x trong ADC12CTL0 điều khiển bên trong của bấm giờ lấy mẫu đó định nghĩa SAMPCON thời kỳ lấy mẫu t. Tổng thời gian lấy mẫu là tcộng với t. Xem hình 17-4. Bit SHTx lựa chọn thời gian lấy mẫu trong bội 4x của ADC12CLK. SHT0x lựa chọn thời gian lấy mẫu cho ADC12CTL0 đến 7 và SHT1x lựa chọn thời gian lấy mẫu cho ADC12MCTL8 đến 15. Hình 2.14: Chế độ lấy mẫu xung Bộ nhớ chuyển đổi: Có 16 thanh ghi ADC12MEMx bộ nhớ chuyển đổi để lưu trữ những kết quả chuyển đổi. Mỗi ADC12MEMx được định hình với một thanh ghi điều khiển ADC12MCTLx kết hợp. Các bit SREFx định nghĩa tham chiếu điện áp và các bit INCHx lựa chọn kênh đầu vào. Bit EOS định nghĩa sự kết thúc của nối tiếp khi một chế độ chuyển đổi liên tục được sử dụng. Một vòng nối tiếp qua từ ADC12MEM15 tới ADC12MEM0 khi bit EOS trong ADC12MCTL15 không được thiết lập. Các bit CSTARTADDx được định nghĩa ADC12MCTLx đầu tiên được sử dụng cho bất kỳ chuyển đổi nào. Nếu chế độ chuyển đổi được kênh-đơn hoặc lặp lại-đơn-kênh CSTARTADDx trỏ vào ADC12MCTLx đơn sẽ được sử dụng. Nếu chế độ chuyển đổi được lựa chọn là mọi sự nối tiếp-của-các kênh hoặc lặp lại-trình tự-của-các kênh, CSTARTADDx trỏ vào ADC12MCTLx đầu tiên vị trí sẽ được sử dụng trong một trình tự. Một con trỏ, không hiện rõ tới phần mềm, được tự động tăng lên để ADC12MCTLx tiếp theo trong một trình tự khi mỗi chuyển đổi hoàn thành. Trình tự tiếp tục cho đến khi một bit EOS trong ADC12MCTLx được xử lý-điều này được byte điều khiển cuối cùng xử lý. Khi các kết quả chuyển đổi được viết vào một lựa chọn ADC12MEMx, cờ tương ứng trong thanh ghi ADC12IFGx được thiết lập. 2.5.3 Các chế độ chuyển đổi ADC12: ADC12 có 4 chế độ hoạt động lựa chọn bởi các bit CONSEQx như mô tả trong bảng sau: CONSEQx Mode Operation 00 Kênh đơn chuyển đổi-đơn Một kênh đơn được chuyển đổi một lần 01 Trình tự-của-kênh Một trình tự của kênh được chuyển một lần 10 lặp lại-đơn-kênh Một kênh đơn được chuyển đổi nhiều lần 11 lặp lại-trình tự-của-các kênh Một trình tự của các kênh được chuyển đổi nhiều lần 2.5.3.1 Chế độ kênh-đơn chuyển đổi-đơn Một kênh đơn được lấy mẫu và chuyển đổi một lần. Kết quả ADC được viết vào ADC12MEMx định nghĩa bởi bit CSTARTADDx. Hình 2.16 cho thấy chảy tràn của kênh-đơn, chế độ chuyển đổi-đơn. Khi ADC12SC bắt đầu một chuyển đổi, những chuyển đổi liên tiếp có thể bắt đầu bởi bit ADC12SC. Khi mọi nguồn triggơ được sử dụng, ENC phải được chốt giữa mỗi chuyển đổi. X = trỏ tới ADC12MCTLx T kết quả chuyển đổi là không ổn định. Hình 2.16: Chế độ chuyển đổi đơn kênh 2.5.3.2 Chế độ trình tự-của-các kênh Một trình tự của các kênh được lấy mẫu và chuyển đổi một lần. Các kết quả ADC được viết vào bộ nhớ chuyển đổi bắt đầu với ADCMEMx định nghĩa bởi các bit CSTARTADDx. Trình tự dừng sau phép đo của kênh với một bit EOS được thiết lập. Hình 2.17 cho thấy chế độ trình tự-của-các kênh. Khi ADC12SC bắt đầu một trình tự, các trình tự liên tiếp có thể khởi sự bởi bit ADC12SC. Khi mọi nguồn trigơ khác được sử dụng, ENC phải được then chốt bởi mỗi trình tự. Hình 2.17: Chế độ chuyển đổi kênh tuần tự 2.5.3.3 Chế độ đa hợp Một kênh đơn được lấy mẫu và liên tục chuyển đổi. Các kết quả ADC được viết vào ADC12MEMx định nghĩa bởi các bit CSTARTADDx. Nó cần thiết đọc kết quả sau khi hoàn thành chuyển đổi bởi vì một bộ nhớ ADC12MEMx chỉ được sử dụng bởi chuyển đổi tiếp theo. Hình 2.18 cho thấy chế độ nhiều-đơn-kênh. Hình 2.18: Chế độ đa hợp 2.5.3.4 Chế độ lặp lại kênh tuần tự Một trình tự của các kênh được lấy mẫu và chuyển đổi nhiều lần. Các kết quả ADC được viết vào bộ nhớ chuyển đổi bắt đầu với ADC12MEMx định nghĩa bởi các bit CSTARTADDx. Kết thúc trình tự sau khi phép đo của kênh với một bit EOS được thiết lập và tín hiệu trigơ tiếp theo của trình tự. Hình 2.19 cho thấy chế độ lặp lại-trình tự-của-các kênh. Hình 2.19: Chế độ lặp lại kênh tuần tự 2.6 Bộ chuyển đổi số-tương tự DAC12 Modul DAC12 là 12-bit, chuyển đổi điện áp đầu ra số-tương tự. Chương này mô tả DAC12. Hai modul DAC12 được thự hiện trong các vi điều khiển MSP430x15x và MSP430x16x. 2.6.1 Giới thiệu về DAC12 Modul DAC12 là 12-bit, đầu ra điện áp DAC. DAC12 có thể định hình trong chế độ 8-hoặc-12-bit và có thể sử dụng trong sự phối hợp với điều khiển DMA. Khi có nhiều modul DAC12 xuất hiện, chúng có thể nhóm lại với nhau cho hoạt động cập nhật trùng hợp. Các tính năng cảu DAC12 bao gồm: 12-bit đầu ra đồng đều. 8- hoặc 12-bit điện áp quyết định đầu ra. Lựa chọn điện áp tham chiếu bên trong hoặc bên ngoài. Đồng bộ hoá khả năng cập nhật cho nhiều DAC12s. chú ý: Một vài vi điều khiển có thể tích hợp nhiều hơn 1 modul DAC12. Trong trường hợp trên một thiết bị có mặt nhiều hơn 1 DAC12, nhiều modul DAC12 hoạt động giống hệt nhau. Suốt chương này, cách đặt tên như DAC12_xDAT hoặc DAC12_xCTL để mô tả các tên thanh ghi. Khi điều này xuất hiện, x được sử dụng để chỉ báo rằng modul DAC12 được bàn luận. Trong nhiều trường hợp ở nơi hoạt động được chỉ báo, thanh ghi ví dụ quy cho DAC12_xCTL. Sơ đồ khối của hai modul DAC12 trong các vi điều khiển MSP430F15x/16x được cho thấy trong hình 2.20: Hình 2.20: Sơ đồ khối của bộ chuyển đổi DAC12 2.6.2 Hoạt động DAC12 Modul DAC12 được định hình với việc sử dụng phần mềm. Cài đặt và hoạt động của DAC12 được bàn luận trong những phần sau. 2.6.2.1 Nhân của DAC12 DAC12 có thể định hình để trong chế độ 8-hoặc 12-bit sử dụng bit DAC12RES. Không bị giảm bớt về kích thước đầu ra được chương trình hoá để 1x hoặc 3x lựa chọn tham chiếu điện áp quả bit DAC12IR. Tính năng này cho phép sử dụng điều khiển dải rộng của DAC12. bit DAC12DF cho phép sử dụng lựa chọn giữa dữ liệu nhị phân thẳng và 2’s có dữ liệu rất tốt cho DAC. Khi sử dụng định dạng dữ liệu nhị phân thẳng, công thức cho đầu ra điện áp được cho trong bảng sau: 2.6.2.2 Lựa chọn cổng cho DAC12 Các đầu ra DAC12 là đa thành phần với pin cổng P6 và ADC12 các đầu ra tương tự. Khi DAC12AMPx > 0, chức năng DAC12 là tự động lựa chọn cho pin, bất chấp trạng thái kết hợp các bit P6SELx và P6DIRx. 2.6.2.3 Điện áp tham chiếu DAC12 Tham chiếu cho DAC12 được định hình để sử dụng một điện áp tham chiếu bên ngoài hoặc tham chiếu bên trong 1.5-V/2.5-V từ modul ADC12 với các bit DAC12SEFx. Khi DAC12SREFx = {0,1} tín hiệu V được sử dụng như điện áp tham chiếu và khi DAC12SEFx = {2,3} tín hiệu V được sử dụng như điện áp tham chiếu. Để sử dụng tham chiếu bên trong ADC12 phải được cho phép và định hình qua các bit điều khiển ADC12 thích hợp (xem chương ADC12). Một tham chiếu ADC12 được định hình, tham chiếu điện áp xuất hiện trên tín hiệu V. 2.6.2.4 Cập nhật đầu ra điện áp DAC12 Thanh ghi DAC12_xDAT có thể kết nối trực tiếpt tới nhân DAC12 hoặc bộ đệm kép. Trigơ cho việc cập nhật đầu ra điện áp DAC12 được lựa chọn với các bit DAC12LSELx. Khi DAC12LSELx = 0 then chốt dữ liệu được trong suốt và thanh ghi DAC12_xDAT được ứng dụng ngay lập tức tới nhân DAC12. đầu ra DAC12 cập nhật ngay lập tức khi dữ liệu mới DAC12 được viết vào thanh ghi DAC12_xDAT, bất chấp trạng thái của bit DAC12ENC. Khi DAC12LSELx = 1, dữ liệu DAC12 được chốt và ứng dụng để nhận DAC12 sau khi dữ liệu mới được viết vào DAC12_xDAT. Khi DAC12LSELx = 2 hoặc 3, dữ liệu được them chốt trên viền vòng từ Timer_A CCR1 đầu ra hoặc Timer_B CCR2 đầu ra tương ứng. DAC12ENC phải được thiết lập để then chốt dữ liệu mới khi DAC12LSELx > 0. Chương 3 THIẾT KẾ MẠCH Phần 1 3.1 THIẾT KẾ PHẦN CỨNG 3.1.1 Đặt vấn đề Phần này trình bày thiết kế mạch điện điều khiển cho vi kẹp có gắn cảm biến. Mạch này được chia ra thành ba khối: khối điều khiển trung tâm dựa trên vi điều khiển MSP430; khối khuếch đại tín hiệu điều khiển vi kẹp; khối khuếch đại tín hiệu từ cảm biến lực. Để hỗ trợ cho điều khiển từ máy tính, mạch điện cũng được thiết kế khối giao tiếp với máy tính thông qua chuẩn kết nối RS232. 3.1.2 Đặc điểm kĩ thuật Nguồn nuôi cho khối khuếch đại tín hiệu và khối điều khiển vi kẹp ±10 V…±12 V Nguồn nuôi cho khối xử lý trung tâm +3.5 V Nguồn nuôi cho khối ghép nối máy tính +5 V Khối khuếch đại tín hiệu vi sai sử dụng bộ khuếch đại công cụ AD620 với hệ số có thể điều chỉnh được từ 1 đến 1000 lần Khối điều khiển vi kẹp cung cấp thế 0 V….10 V và cung cấp dòng lên tới 150 mA Khối ghép nối máy tính giao tiếp không đồng bộ qua chuẩn RS232 với tốc baud từ 9600 đến 115200, lập trình được Khối xử lý trung tâm có chip MSP430F167 có tích hợp cả bộ ADC và DAC 12 bit, 32 K +256 B bộ nhớ flash, 1K RAM Có thể điều chỉnh thế offset của tín hiệu 3.1.3 Sơ đồ khối mạch thiết kế Hình 3.1: Sơ đồ khối mạch thiết kế 3.1.4 Chức năng và sơ đồ nguyên lý từng khối 3.1.4.1 Khối khuếch đại tín hiệu từ sensor Chức năng Khối này có chức năng khuếch đại tín hiệu vi sai từ sensor của vi kẹp sau đó đưa vào khối xử lý trung tâm để thực hiện biến đổi ADC, mức điện áp khuếch đại yêu cầu của khối trước khi đưa vào biến đổi ADC là 0 V (min)….2.5 V (max). Sensor của vi kẹp được chế tạo ở dạng cầu trở: Hình 3.2: Dạng cầu trở của sensor Sơ đồ nguyên lý Hình 3.3: Mạch nguyên lý khối khuếch đại tín hiệu từ sensor Nguyên lý hoạt động Tín hiệu đầu vào của khối là tín hiệu điện áp vi sai từ sensor của vi kẹp và từ yêu cầu đầu vào của khối xử lý trung tâm nên khối này được thiết kế thành ba phần chính: Phần 1: Khuếch đại tín hiệu visai. Phần này sử dụng IC khuếch đại công cụ chuyên dụng AD620 (phụ lục) với hệ số khuếch đại được điều chỉnh bằng một biến trở 1 kW nối giữa chân 1 và 8 của IC. Hệ số khuếch đại tín hiệu được cho bởi công thức G = (49.4 kW/RG) + 1 (3.1) Trong đó RG là điện trở điều chỉnh hệ số khuếch. Bởi vậy RG được cho bởi RG = 49.4 kW/(G -1) (3.2) Với RG=1 kW thì hệ số khuếch đại visai từ 50 lần…1000 lần. Để tránh hiện tượng tự kích gây ảnh hưởng lớn đến tín hiệu nên điều chỉnh hệ số khuếch đại trong khoảng từ 50 lần đến 150 lần. Hai đầu vào của tín hiệu sensor được nối với hai điện trở 100 kW tương ứng nhằm quy chiếu tín hiệu một chiều xuống đất khi không có tín hiệu từ sensor, do vậy mà tránh được hiện tượng khuếch đại tín hiệu một chiều khi không có tín hiệu thực từ sensor. Để đảm bảo được sự khuếch đại tín hiệu của AD620 tin cậy và tránh hiện tượng tự kích, trong phần khuếch đại tín hiệu vi sai có dùng một tầng khuếch đại đảo kế tiếp sử dụng một bộ khuếch đại thuật toán trong IC LM358 (IC này tích hợp hai bộ khuếch đại thuật toán) với hệ số khuếch cho bởi K’ = RV4/RB1 (3.3) Như vậy hệ số khuếch đại của khối vi sai được cho bởi K=G*K’ (3.4) Phần 2: Khuếch đại và điều chỉnh thế offset tín hiệu visai Do yêu cầu điện áp tín hiệu đầu vào biến đổi ADC của khối xử lý trung tâm từ 0 V...2,5 V nên thiết kế tầng khuếch đại đảo và dịch thế offset sau tầng khuếch đại vi sai, điện áp ra của tầng này được cho bởi Vout=(RV5/RB2)*Vvisai out+(RV5/RB3)*Voffset (3.5) Để tránh hiện tượng tăng hệ số khuếch đại làm cho tín hiệu Vout của khối vượt quá mức cho phép, tín hiệu Vout được nối với một diode zenner 3.3 V để ổn định tín hiệu vào tránh làm hỏng bộ biến đổi ADC của khối xử lý tín hiệu trung tâm. Trong khi thiết kế các khối khuếch đại tín hiệu vi sai có sử dụng tụ gốm 100 pF để lọc nhiễu. 3.1.4.2 Khối xử lý trung tâm. Khối xử lý tín hiệu trung tâm thực chất là IC MSP430F167 (chương 2) Chức năng Khối này có nhiệm vụ nhận tín hiệu từ khối khuếch đại tín hiệu sensor và tín hiệu từ PC, sau đó xử lý tín hiệu tuỳ theo yêu cầu của việc điều khiển vi kẹp và xuất ra khối điều khiển vi kẹp để thực hiện tác vụ điều khiển. Nguyên lý hoạt động Nguồn nuôi cho vi điều khiển này là 3.5 V được cung cấp bởi IC ổn áp LM317. Có hai bộ dao động: bộ dao động 32.768 Hz và bộ dao động 8 MHz cung cấp xung đồng hồ chính cho hệ thống. Vi điều khiển này tích hợp bộ biển đổi ADC 12 bit và bộ biến đổi DAC 12 bit và bộ truyền dữ liệu nối tiếp USART. Trường hợp 1: Tín hiệu từ khối khuếch đại tín hiệu từ sensor được đưa vào chân ADC0 của vi điều khiển (Port 6.0) kết quả của quá trình chuyển đổi tương tự-số được lưu trong thanh ghi ADC12_0DAT. Dữ liệu được xử lý tuỳ theo yêu cầu của bài toán điều khiển, kết quả của quá trình xử lý này được đưa tới bộ biến đổi DAC12 để thực hiện quá trình biến đổi số tương tự-số, tín hiệu xuất ra trên chân DAC0 (Port 6.6) được đưa tới khối điều khiển vi kẹp để thực hiện tác vụ điều khiển vi kẹp. Trường hợp 2: Dữ liệu số được truyền từ máy tính thông qua khối ghép nối máy tính của mạch điện (với tốc độ baud có thể lập trình được từ 9600 đên 115200). Dữ liệu này được lưu giữ trong thanh ghi của bộ truyền nối tiếp không đồng bộ tích hợp trong vi điều khiển và sau đó được đưa tới tới bộ chuyển đổi số-tương tự DAC12 và thực hiện tác vụ như trong trường hợp 1. Việc cấu hình cho vi điều khiển thực hiện tác vụ biến đổi tương tự-số ADC, bộ biến đổi số-tương tự DAC, truyền nối tiếp không đồng bộ (UART) được trình bày trong phần 2 (lập trình phần mềm nhúng cho khối xử lý trung tâm). 3.1.4.3 Khối ghép nối máy tính. Chức năng Khối này có chức năng đảm bảo sự tương thích và độ an toàn dữ liệu trong quá trình truyền thông giữa vi điều khiển và máy tính. 3.1.4.4 Khối điều khiển vi kẹp. Chức năng Nhận tín hiệu điều khiển xuất ra từ khối xử lý trung tâm, khối này sẽ đảm nhiệm vai trò là một tầng khuếch đại công xuất với điện áp ra nằm trong khoảng -12 V…+12 V và dòng điện cung cấp lên tới 150 mA để điều khiển tay kẹp. Sơ đồ nguyên lý Hình 3.4: Mạch nguyên lý khối điều khiển vi kẹp Nguyên lý hoạt động Thiết kế khối này có sử dụng IC LM324, IC có tích hợp 4 bộ khuếch đại thuật toán với mục đích nhằm thu nhỏ diện tích của mạch, tối ưu hoá thiết kế. Trước khi khuếch đại để đưa ra điều khiển, tín hiệu được được đưa vào bộ lặp lại điện thế. Phần này sử dụng bộ khuếch đại không đảo với hệ số khuếch đại bằng 1. Mục đích của việc thiết kế này nhằm hạn chế sự ảnh hưởng về mặt tín hiệu của khối điều khiển vi kẹp đến khối xử lý trung tâm. Hai tầng tiếp theo là tầng khuếch đại tín hiệu và tầng dịch thế offset của tín hiệu. Về mặt nguyên lý hoạt động và hệ số khuếch đại tín hiệu được tính tương tự trong như hai tầng trong khối khuếch đại tín hiệu vi sai. Tầng khuếch đại công xuất có nhiệm vụ khuếch đại dòng để điều khiển vi kẹp. Do yêu cầu về mặt công xuất của vi kẹp không cao nên trong mạch dùng một bộ khuếch đại đẩy kéo sử dụng hai transistor C1815 (loại pnp) và A1015 (loại npn). Với mạch này có thể cung cấp dòng đến 150 mA cho việc điều khiển vi kẹp. 3.1.5 Thiết kế mạch bằng Protel 99SE 3.1.5.1 Mạch nguyên lý Trang in đính kèm 3.1.5.2 Mạch in Trang in đính kèm 3.1.6 Kết luận Khối khuếch đại vi sai với hệ số khuếch đại điện áp có thể điều chỉnh được. Đặc biệt trong khối có sử dụng bộ khuếch đại công cụ IC AD620 với hệ số khuếch đại được điều chỉnh từ 50 lần…1000 lần. Khối xử lý trung tâm sử dụng vi điều khiển MSP430F167 với bộ biển đổi tương tự-số ADC12 12 bit và bộ biến đổi số-tương tự DAC12 12 bit. Vi điều khiển được ghép nối với máy tính thông qua khối ghép nối máy tính với tốc độ truyền dữ liệu baud 9600…115200. Khối điều khiển vi kẹp với điện áp từ -12 V…12 V và dòng cung cấp lên tới 150 mA. Phần 2 3.2 LẬP TRÌNH NHÚNG CHO KHỐI ĐIỀU KHIỂN TRUNG TÂM 3.2.1 Công cụ phần mềm lập trình Lập trình cho khối điều khiển trung tâm sử dụng phần mềm Imagecraft C for MSP430. Có thể download phiên bản demo 45 ngày tại trang web: Công cụ lập trình này với giao diện thân thiện, sử dụng trình biên dịch C. Có thể nạp cho vi điều khiển trực tiếp thông qua JTAG mà không cần sử dụng phần mềm nạp hỗ trợ. 3.2.2 Lập cấu hình hoạt động cho khối điều khiển trung tâm Sơ đồ khối và nguyên lý hoạt động của các khối được trình bày trong chương 2.Trong phần này chúng ta chỉ trình bày cách cấu hình bằng phần mềm cho các khối hoạt động. Việc cấu hình cho các khối dựa vào việc đặt các bit trong thanh ghi điều khiển của từng khối, mỗi bit hay nhóm bit trong thanh ghi điều khiển này sẽ quy định tác vụ tương ứng của mỗi khối. Ví dụ, muốn bật chức năng biến đổi tương tự-số của bộ biến đổi ADC12 chỉ cần bật bit ADC12ON trong thanh ghi điều khiển ADC12CTL0 (ADC12 Control Register 0) của bộ biến đổi ADC12. 3.2.2.1 Cấu hình cho khối ADC12 Thanh ghi điều khiển ADC12 ADC12CTL0, ADC12 Control Register SHT1x Bits 15-12 Thời gian lầy và giữ mẫu. Các bit này định nghĩa số chu kỳ xung ADC12CLK trong khoảng thời gian lấy mẫu cho các thanh ghi ADC12MEM8 tới ADC12MEM15 SHT0x Bits 11-8 Thời gian lấy và giữ mẫu. Các bit này định nghĩa số chu kỳ xung ADC12CLK trong thời gian lấy mẫu cho các thanh ghi ADC12MEM0 tới ADC12MEM7 MSC Bit 7 Lấy mẫu và chuyển đổi đa hợp. 0 Khoảng thời gian lấy mẫu yêu cầu tín hiệu SHI. 1 Sườn lên đầu tiên của tín hiệu SHI kích hoạt thời gian lấy mẫu REF2_5V Bit 6 Điện thế quy chiếu. Bít REFON phải được bật. 1.5V 2.5V ADC12ON Bit 4 ADC12ON ADC12 off ADC12 on ADC12OVIE Bit 3 ADC12MEMS cho phép ngắt tràn Không cho phép ngắt tràn Cho phép ngắt tràn ENC Bit 1 Cho phép biến đổi Không cho phép ADC12 Cho phép ADC12 ADC12SC Bit 0 Bắt đầu chuyển đổi không bắt đầu lấy mẫu và chuyển đổi bắt đầu lấy mẫu và chuyển đổi Thanh ghi điều khiển ADC12 ADC12CTL1, ADC12 Control Register 1 CSTART ADDx Bits 15-12 Địa chỉ bắt đầu chuyển đổi. Những bit này lựa chọn thanh ghi bộ nhớ cho lần chuyển đổi đầu tiên. Giá trị của CSTARTADDx từ 0 đến 0Fh tương ứng với ADC12MEM0 tới ADC12MEM12. SHSx Bits 11-10 Lựa chọn nguồn xung lấy và giữ mẫu ADC12SC bit Timer_A.OUT1 SHP Bit 9 Lựa chọn chế độ xung lấy và giữ mẫu Tín hiệu SAMPCON là nguồn được lấy từ tín hiệu đầu vào lấy mẫu Tin hiệu SAMPCON là nguồn được lấy từ khoảng thời gian lấy mẫu ISSH Bit 8 Đảo tín hiệu lấy và giữ mẫu tín hiệu lấy và giữ mẫu không đảo tín hiệu lấy và giữ mẫu đảo ADC13DIVx Bits 7-5 Chia xung ADC12 /1 001 /2 010 /3 011 /4 100 /5 101 /6 110 /7 111 /8 ADC12SSELx Bits 4-3 Lựa chọn nguồn xung ADC12 00 ADC120SC 01 ACLK 10 MCLK 11 SMCL CONSEQx Bits 2-1 Lựa chọn chế độ chuyển đổi 00 đơn kênh, chuyển đổi đơn 01 đa kênh 10 lặp lại đơn kênh 11 lặp lại đa kênh ADC12BUSY Bit 0 ADC12 bận 0 không hoạt động nào tích cực 1 lấy mẫu, hay chuyển đổi đang tích cực Ví dụ chương trình lấy biển đổi ADC sau đó biến đổi thành DAC #include void delay(long time){ while(time--){}; } void main(){ WDTCTL = WDTPW + WDTHOLD; P6SEL |= 0xFF; ADC12CTL0 = ADC12ON+REFON+REF2_5V+SHT0_1+MSC;// bật ADC, chọn // điện áp tham chiếu cho bộ ADC là 2.5V ADC12CTL1 = SHP+ADC12SSEL_2+CONSEQ_2; ADC12CTL0 |= ENC; ADC12CTL0 |= ADC12SC; DAC12_0CTL = DAC12IR + DAC12AMP_5 + DAC12ENC; delay(10000); while(1){ DAC12_0DAT = ADC12MEM0; }} 3.2.2.2 Cấu hình cho khối DAC12 Thanh ghi điều khiển DAC12 DAC12 SREFx Bits 14-13 Lựa chọn điện áp tham chiếu cho DAC12 00 VREF+ 01 VREF+ 10 VeREF+ 11 VeREF+ DAC12 RES Bits 12 Lựa chọn độ phân giải cho DAC12 0 độ phân giải 12 bit 1 độ phân giải 8 bit DAC12IR Bit 8 Độ rộng đầu vào DAC12. Những bit này đặt độ rộng tham chiếu đầu vào và đầu ra. 0 Mức đầu ra DAC12 = 3x điện áp quy chiếu 1 Mức đầu ra DAC12 = 1x điện áp quy chiếu DAC12 AMPx Bits 7-5 Những bit này lựa chọn việc cài đặt tốc độ cho DAC12 DAC12IE Bit 3 Cho phép ngắt DAC12 không cho phép cho phép DAC12 ENC Bit 1 Cho phép biến đổi DAC12. Những bit này cho phép module DAC12 khi bit DAC12LSELx > 0, khi DAC12LSELx = 0, DAC12ENC được bỏ qua. không cho phép DAC12 cho phép DAC12 Ví dụ chương trình tạo xung tam giác #include void delay(long time){ while(time--){}; } void main(void) { unsigned int i; WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P6DIR = 0xFF; P6SEL = 0x40; ADC12CTL0 = REF2_5V + REFON; // Internal 2.5V ref on DAC12_0CTL = DAC12IR + DAC12AMP_5 + DAC12ENC; // Internal ref gain 1 while(1){ i = 0; while(i < 4096){ DAC12_0DAT = i; // 2 i = i + 10; } while(i > 0){ DAC12_0DAT = i; // 2 i = i - 10; } }} 3.2.2.3 Cấu hình cho khối UART Thanh ghi điều khiển UART PENA Bit 7 Cho phép chẵn lẻ 0 không cho phép chẵn lẻ 1 cho phép chẵn lẻ PEV Bit 6 Lựa chọn chẵn lẻ. PEV không được sử dụng khi bit chẵn lẻ không cho phép. 0 chẵn lẻ lẻ 1 chẵn lẻ chẵn SPB Bit 5 Lựa chọn bit stop 0 một bit stop 1 hai bit stop CHAR Bit 4 Chiều dài kí tự 0 dữ liệu là 7 bit 1 dữ liệu là 8 bit LISTEN Bit 3 Cho phép lắng nghe 0 không cho phép 1 cho phép SYNC Bit 2 Cho phép chế độ đồng bộ 0 chế độ UART 1 chế độ SPI Thanh ghi UxTCTL, thanh ghi điều khiển truyền Unused Bit 7 Bit này không được sử dụng CKPL Bit 6 Lựa chọn xung chẵn lẻ 0 UCLKI = UCLK 1 UCLKI = đảo UCLK SSELx Bits 5-4 Lựa chọn nguồn xung. Những bit này lựa chọn nguồn xung BRCLK 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK URXSE Bit 3 Sườn xung bắt đầu nhận UART. 0 không cho phep 1 cho phép TXEPT Bit 0 Cờ bộ truyển trống 0 UART thực hiện truyền dữ liệu và/hay đợi trong UxTXBUF 1 thanh ghi dịch của bộ truyền và UxTXBUF rỗng hay SWRST = 1 Thanh ghi điều khiển nhận USART FE Bit 7 Cờ báo lỗi khung truyền 0 không lỗi 1 kí tự nhận được với bit stop là mức thấp PE Bit 6 Cờ báo lỗi chẵn lẻ. Khi PENA = 0, PE được đọc như là 0. 0 không báo lỗi 1 kí tự nhận được với bit chẵn lẻ lỗi Ví dụ chương trình truyền nhận USART của vi điều khiển MSP430F167 #include void UART1_init(void) { P3DIR |= BIT6; P3SEL |= 0xC0; // P3.6,7 = USART1 TXD/RXD //UCTL1 &= ~SWRST; ME2 |= UTXE1 + URXE1; // Enable USART1 TXD/RXD UCTL1 |= CHAR; // 8-bit character, No parity, 1 start bit, 1 stop bit UTCTL1 |= SSEL1; // UCLK = SMCLK = 8.00 MHz UBR01 = 139; // 8.00M/57600 -> 139 UBR11 = 0x00; // // UMCTL1 = 0x45; // Modulation = 0.375 UCTL1 &= ~SWRST; // Initialise USART1 //IE2 |= URXIE1; // Enable USART1 RX interrupt } 3.2.3 Kết luận Việc cấu hình cho các khối trong khối xử lý trung tâm không quá phức tạp. Chúng ta cần hai yếu tố: nguyên lý hoạt động từng khối và các thanh ghi điều khiển của chúng. Từ đó chúng ta cấu hình tuỳ theo mục đích yêu cầu của cấu hình là gì. Việc cấu hình bằng ngôn ngữ phần với câu lệnh đơn giản gọn nhẹ. Đây cũng là một trong những ưu điểm lớn của công cụ phần mềm này. Nó giúp chúng ta dễ tiếp cận hơn với vi điều khiển MSP430F167 cũng như họ MSP430x1xx của loại vi điều khiển này. Chương 4 Kết luận Sau một thời gian tìm hiểu lý thuyết và thực nghiệm, khóa luận đã thu được một số kết quả như sau: Về lý thuyết: Tìm hiểu tổng quan về cấu trúc của vi kẹp có gắn cảm biến. Đặc điểm của bộ chấp hành điện nhiệt, mối liên hệ giữa độ dịch chuyển miệng của vi kép với điện áp cung cấp. Độ dịch chuyển tối đa giữa hai miệng của vi kẹp là 32 µm khi cung cấp một điện thế 4.5 V và tương ứng với công suất tiêu thụ trung bình cần 5 mW cho 1 µm dịch chuyển của miệng vi kẹp. Tìm hiểu tổng quan về họ vi điều khiển MSP430x1xx với một CPU kiến trúc theo kiểu RISC 16 bit. Hệ thống giao tiếp ngoại vi, hệ thống đồng hồ linh hoạt. Bộ chuyển đổi tương tự-số (ADC12) và bộ chuyển đổi số-tương tự (DAC)12 bit. Ứng dụng vi điều khiển MSP430F167 cho mạch điều khiển vi kẹp có gắn cảm biến. Về thực nghiệm: Khóa luận đã thiết kế, chế tạo được mạch điều khiển vi kẹp có gắn cảm biến. Bo mạch này có khối khuếch đại tín hiệu vi sai từ cảm biến kiểu áp trở của vi kẹp, khối xử lý trung tâm, khối giao tiếp máy tính và khối điều khiển vi kẹp. Thí nghiệm điều khiển vi kẹp bằng bo mạch cho thấy mạch có khả năng cung cấp đủ công suất cho vi kẹp hoạt động theo như thông số kĩ thuật. Hạn chế: Tuy mạch đã điều khiển được vi kẹp chuyển động, đã có sự thay đổi giữa hai miệng của vi kẹp nhưng do khả năng hạn chế về mặt công cụ đo hỗ trợ nên trong quá trình thí nghiệm chưa khảo sát được chi tiết đặc tuyến phụ thuộc giữa điện áp cung cấp và dịch chuyển của miệng vi kẹp. Phụ lục A Mã nguồn chương trình điều khiển vi kẹp có gắn cảm biến từ PC //*********************************************************************** // MAIN PROGRAM * //*********************************************************************** #include void delay(long time){ while(time--){}; } void main(){ WDTCTL = WDTPW + WDTHOLD; P6SEL = 0x41; ADC12CTL0 = SHT0_4 + REFON + REF2_5V; ADC12CTL1 = SHP + ADC12SSEL_1 + CONSEQ_1; delay(10000); ADC12CTL0 |= ENC; ADC12CTL0 |= ADC12SC; DAC12_0CTL = DAC12IR + DAC12AMP_5 + DAC12ENC; delay(10000); while(1){ DAC12_0DAT = ADC12MEM0; } } //************************************************************************************ //Chương trình nhận và truyền tín hiệu giữa PC và vi điều khiển MSP430F167 * //************************************************************************************ #ifndef __UART169 #define __UART169 #include void UART1_init(void) { P3DIR |= BIT6; P3SEL |= 0xC0; // P3.6,7 = USART1 TXD/RXD //UCTL1 &= ~SWRST; ME2 |= UTXE1 + URXE1; // Enable USART1 TXD/RXD UCTL1 |= CHAR; // 8-bit character, No parity, 1 start bit, 1 stop bit BCSCTL2 |= SELS; // lua chon xung clock UTCTL1 |= SSEL1; // UCLK = SMCLK = 8.00 MHz UBR01 = 0x41; // 8.00M/57600 -> 139 UBR11 = 0x03; // // UMCTL1 = 0x45; // Modulation = 0.375 UCTL1 &= ~SWRST; // Initialise USART1 //IE2 |= URXIE1; // Enable USART1 RX interrupt } void send_char_1(unsigned int s) { while (!(IFG2 & UTXIFG1)); // USART1 TX buffer ready? TXBUF1 = s; // char to TXBUF0 --> send } unsigned int get_char_1(void) { while (!(IFG2 & URXIFG1)); return RXBUF1; } unsigned int get_char_0(void) { while (!(IFG1 & URXIFG0)); return RXBUF0; } void send_12bit_1(unsigned int w) { /*gui data 12 bit, thap truwoc, cao sau */ //lay 12 bit data w &= 0x0FFF ; // 0000 xxxx xxxx xxxx data 12 bit //send Low_byte send_char_1(w&0x3F); //00xx xxxx: low byte MSB = 0 // Delay(20); //send Hi_byte send_char_1((w>>6) | 0x40); //01xx xxxx Hight byte MSB = 1 } unsigned int get_12bit(void){ unsigned int low,high,nhan; low = get_char_1(); high = get_char_1(); if((low & 0xC0) == 0) { if((high & 0xC0) == 0xC0) { high &= 0x3F; return (high*64 + low); } } } void UART0_init(void) { P3DIR |= (BIT4); //Enable Tx and Rx P3SEL |= (BIT4+BIT5); //UCTL0 &= ~SWRST; ME1 |= UTXE0 + URXE0; // Enable USART1 TXD UCTL0 |= CHAR; // 8-bit char, SWRST=1 UTCTL0 |= SSEL1; // UCLK = SMCLK UBR00 = 0x8B; // 19200 from 8.00MHz = 416 UBR10 = 0x00; UMCTL0 = 0x45; // Modulation = 0.375 UCTL0 &= ~SWRST; // Initialise USART0 //IE1 |= URXIE0; // Enable USART0 RX interrupt } void send_char_0(unsigned int s) { // IE2 &= (~URXIE1); while (!(IFG1 & UTXIFG0)); // USART1 TX buffer ready? TXBUF0 = s; // char to TXBUF0 --> send // IE2 |= URXIE1; // Enable USART1 RX interrupt } void send_10bit(unsigned int w) { /*gui data 10 bit, thap truwoc, cao sau */ //lay 10 bit data w &= 0x03FF ; // 0000 00xx xxxx xxxx data 10 bit //send Low_byte send_char_0(w); //000x xxxx: low byte MSB = 0 //send Hi_byte // Delay(20); send_char_0((w>>5) | 0x20); //001x xxxx Hight byte MSB = 1 } //****************************************************************************** void send_12bit_0(unsigned int w) { // disable USART1 RX interrupt /*gui data 12 bit, thap truwoc, cao sau */ //lay 12 bit data w &= 0x0FFF ; // 0000 xxxx xxxx xxxx data 12 bit //send Low_byte send_char_0(w&0x3F); //00xx xxxx: low byte MSB = 0 //send Hi_byte // Delay(10); send_char_0((w>>6) | 0x40); //01xx xxxx Hight byte MSB = 1 } #endif /* #ifndef __UART169 */ Phụ lục B Tài liệu tham khảo [1] Ngô Diên Tập, Kĩ thuật ghép nối máy tính. NXB khoa học và kĩ thuật, 2005. [2] Chử Đức Trình, Sensing Microgripper for Microparticle Handling. Luận văn TS, 2007. [3] Trần Quang Vinh, Chử Văn An, Nguyên lý kĩ thuật điện tử. NXB ĐH QGHN, 2005. [4] AD620 Low Cost,Low Power Instrumentation Amplifier. [5] MSP430x1xx family User’s Guide(Re.F). [6] MSP430f167 datasheet. [7] William D.Stanly. Bộ khuếch đại và xử lý IC tuyến tính. NXB Khoa hoc- kĩ thuật, 1994. [8] [9] MỤC LỤC

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

  • docThiet ke va xay dung mach dieu khien.doc