Thiết kế các cụm điều khiển chính của máy cắt kính

Một phần của tài liệu Thiết kế chế tạo mô hình máy cắt kính (Trang 104)

5.3.1.1. Giới thiệu chung

IC LM629 là vi xử lý chuyên dụng của hãng điện tử National. Nó dùng để điều khiển chuyển động của các loại động cơ servo DC và các cơ cấu servo khác có tín hiệu hồi tiếp trả về lệch pha 900. Với khả năng tính toán 32 bit và tập lệnh hỗ trợ mạnh, ATMEGA 16 có thể sử dụng trong các ứng dụng phức tạp mà vẫn đảm bảo thời gian thực và độ phân giải cao. ATMEGA 16 với ngõ ra PWM 8 bit và chân điều khiển hướng quay động cơ để lái cầu H.

5.3.1.2. Các đặc tính chính

- Khả năng xử lý vị trí, vận tốc, gia tốc 32 bit - Bộ lọc PID có các tham số 16 bit lập trình được - Thời gian vi phân lập trình được

- Tín hiệu điều khiển dạng PWM 8 bit có dấu - Tự động tính toán quỹ đạo vận tốc.

- Cho phép cập nhật vận tốc, vị trí cuối và tham số bộ lọc trong lúc chuyển động. - Hoạt động ở chế dộ vị trí và vận tốc.

- Các ngắt tới vi xử lý chủ có thể lập trình được - Giao tiếp song song 8 bit với vi xử lý chủ - Giao tiếp với encoder 3 pha A, B, Z.

5.3.1.3. Nguyên lý hoạt động

a. Giới thiệu

Vi xử lý chủ giao tiếp với LM629 qua một port I/O để lập trình quỹ đạo vận tốc hình thang và bộ lọc bù số. Ngõ ra PWM 8 bit giao tiếp với mạch cầu H để cung cấp năng lượng cho động cơ hoạt động và tín hiệu hồi tiếp cho vòng điều khiển vị trí lấy từ encoder loại tương đối. Khối tạo biên dạng vận tốc hình thang sẽ tính toán quỹ đạo cần

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

thiết khi hoạt động ở kiểu vận tốc và kiểu vị trí. Khi hoạt động, LM629 sẽ tính toán sai số vị trí bằng cách lấy vị trí mong muốn trừ đi vị trí thực hiện (hiện tại), sai số này được đưa vào bộ lọc số để điều khiển.

b. Hồi tiếp vị trí

LM629 có thể giao tiếp với enconder tương đối loại 3 pha A, B, Z để kiểm soát vị trí động cơ. Mỗi khi có tín hiệu chuyển mạch của xung A hoặc B, thanh ghi vị trí của LM629 sẽ tăng giảm tương ứng. Điều này giúp nâng cao độ phân giải enconder lên 4 lần. Tín hiệu từ enconder được đồng bộ với xung clock của LM629

Hình 5.15. Tín hiệu hồi tiếp từ encoder

Tín hiệu từ xung Index dùng để nhận biết động cơ đã quay được một vòng. Khi được lập trình, LM629 sẽ ghi lại vị trí tuyệt đối của động cơ vào thanh ghi Index mỗi khi ba tín hiệu của encoder xuống mức logic thấp. Nếu encoder không có pha Index thì ngõ vào Index của LM629 vẫn có thể được dùng để ghi lại vị trí Home của động cơ. Trong trường hợp này, người ta bố trí sao cho khi động cơ đến điểm Home sẽ làm một công tắc xuống mức logic thấp và nối công tắc này vào chân Index. Khi có LM629 sẽ ghi lại vị trí động cơ vào thanh ghi Index và có thể gây ngắt vi xử lý chủ. Nếu không sử dụng, chân Index nên ở mức logic cao.

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

c. Khối tạo biên dạng vận tốc

LM629 điều khiển vị trí bằng biên dạng vận tốc khi di chuyển là hình thang. Trong điều khiển vị trí, vi xử lý chủ xác định gia tốc, vận tốc tối đa và vị trí đích. LM629 dùng thông tin này để tạo ra chuyển động bằng cách gia tốc cho đến khi đạt vận tốc tối đa và giảm dần cho về không đạt vị trí. Giá trị của gia tốc và vận tốc là bằng nhau. Trong suốt thời gian di chuyển, vận tốc cực đại và vị trí đích có thể thay đổi được và động cơ sẽ tăng hay giảm gia tốc cho phù hợp. Hình 5.16 (a) là hình thang đơn giản lý tưởng, hình 5.16 (b) là hình thang, có được khi vận tốc thay đổi trong những thời gian khác nhau trong lúc chuyển động.

Hình 5.16. Biên dạng hình thang mẫu biểu diễn biên dạng vận tốc

Khi hoạt động ở kiểu vận tốc, động cơ tăng đến vận tốc xác định ứng với gia tốc đặt trước và giữ vận tốc ổn định cho đến khi có lệnh dừng. Nếu có nhiễu trong lúc hoạt động thì vận tốc trung bình vẫn không đổi do LM629 sẽ tính toán bù trừ cần thiết. Nếu

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

động cơ không đạt được vận tốc đặt (ví dụ, động cơ bị kẹt hoặc công suất không đảm bảo) thì vị trí yêu cầu từ LM629 vẫn tiếp tục tăng dẫn đến sai lệch vị trí ngày càng lớn. Nếu ngẫu nhiên lỗi này được khắc phục thì động cơ sẽ nhanh chóng đạt vận tốc rất cao để đạt vị trí yêu cầu. Lỗi này có thể phát hiện bằng cách dùng lệnh LPEI, LPES.

Tất cả các thông số quỹ đạo có là số dạng 32 bit. Thông số vị trí là giá trị có dấu. Giá trị gia tốc và vận tốc là số dương gồm 16 bit biểu thị phần nguyên và 16 bit biểu thị phần thập phân.

d. Hoạt động đọc và ghi của LM629

Vi xử lý chủ ghi lệnh vào các chân của LM629 qua ngõ I/O port khi chân PS \=0. Mã lệnh được truyền song song qua port giao tiếp và chân WR\ tích cực, byte lệnh được chốt vào nhờ cạnh xuống của chân này. Khi ghi lệnh cần phải đọc trạng thái và kiểm tra cờ trạng thái, gọi là cờ bận (bit 0). Nếu bit báo bận ở mức logic cao thì không được ghi lệnh. Bit báo bận không bao giờ ở mức logic cao trong thời gian quá 100s, thường thì chỉ trong 15s khoảng đến 25s. Vi xử lý chủ đọc byte trạng thái theo các tương tự, cho PS \=0 và đọc dữ liệu từ cạnh xuống của chân RD, thông tin trạng thái được giữ trong thời gian RD\ ở mức logic thấp.

Ghi và đọc dữ liệu hay trạng thái của LM629 kết thúc khi chân PS \= 1. Việc đọc và ghi luôn thực hiện theo từng 2 byte và byte đầu tiên luôn là byte có trong số cao. Khi truyền dữ liệu theo từng word (2 byte), nhất thiết phải kiểm tra bit bận. Khi bit bận ở mức logic thấp thì có thể truyền tiếp. Nếu bit bận ở mức logic cao thì phải kiểm tra lại liên tục cho đến khi bit này được xóa mới tiếp tục truyền, nếu không thì lệnh sẽ bị bỏ qua và báo lỗi. Bit bận sẽ lên cao ngay lập tức sau khi ghi byte lệnh hoặc khi đọc, ghi byte thứ 2.

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

Hình 5.17. Hoạt động đọc Byte trạng thái

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

Hình 5.19. Hoạt động đọc dữ liệu (adsbygoogle = window.adsbygoogle || []).push({});

Hình 5.20. Hoạt động ghi dữ liệu

e. Ngõ ra điều khiển động cơ

LM629 cung cấp ngõ ra PWM 8 bit và chân tín hiệu điều khiển chiều quay động cơ. Tương ứng chiều dương PWM tối đa là 127/128. chiều âm là 128/128.

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

Hình 5.21. Ngõ ra PWM của LM629 với tần số hoạt động là 8MHz

5.3.2. Phƣơng án lựa chọn vi điều khiển

Trên thị trường có rất nhiều loại vi điều khiển như 8051, pic, avr nhưng ở đây e sử dụng vi điều khiển ATMEGA16 vì:

- Giá thành rẻ (cùng với chức năng tương đương thì họ 89 và họ pic đắt 1,5 lần)

- Được hỗ trợ phần mềm codevision có chức năng tự sinh code giúp dễ dàng cho việc làm quen và lập trình vi điều khiển.

- Tốc độ làm việc nhanh ( gấp 1,5 lần họ 89) Thông số kỹ thuật ATMEGA16:

- 32 ngõ vào ra 2 hướng - Hỗ trợ thạch anh 16Mhz

- 2 bộ timer/counter 8 bit, 1 bộ timer/counter 16bit, 4 kênh PWM - 8 kênh ADC độ phân giải 10bit

- Điện áp hoạt động 4,5 - 5V

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

- 16k byte bộ nhớ flash (đọc ghi 10000 lần)

- 512 Byte EEPROM (đọc ghi 100000 lần), 1K byte SRAM Chức năng vi điều khiển:

Nhận dữ liệu từ máy tính quan chuẩn RS485, truyền dữ liệu cho Atmega16, dừng động cơ khi có tín hiệu công tắc hành trình. Tôi xin chọn phương án này.

5.3.2.1 Giới thiệu chung

Atmega 16 là vi điều khiển 8 bit dựa trên kiến trúc RICS. Với khả năng thực hiện mỗi lệnh trong vòng một chu kỳ xung clock, Atmega16 có thể đạt được tốc độ 1MIPS trên mỗi MHz (1 triệu lệnh/s/MHz)

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

Atmega16 có đặc điểm sau: 16KB bộ nhớ Flash với khả năng đọc trong khi ghi, 512 byte bộ nhớ EEPROM, 1KB bộ nhớ SRAM, 32 thanh ghi chức năng chung, 32 đường vào ra chung, ba bộ định thời/bộ đếm, ngắt nội và ngắt ngoại, USART, giao tiếp nối tiếp hai dây, 8 kênh ADC 10 bit,…

Atmega16 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như: trình dịch C, Macro asemblers, chương trình mô phỏng/sửa lỗ, kit thử nghiệm …

5.3.1.2. Cấu trúc chân của AVR

a. Cấu trúc tổng quát

AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình và dữ liệu. Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chương trình được lưu trong bộ nhớ Flash

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

b. ALU

ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán được thực hiện trong một chu kỳ xung clock. Hoạt động của ALU được chia làm ba loại: đại số, logic và theo bit.

c. Thanh ghi trạng thái

Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và logic. (adsbygoogle = window.adsbygoogle || []).push({});

d. Con trỏ ngăn xếp (SP)

Là một thanh ghi 16bit nhưng cũng có thể được xem như hai thanh ghi chức năng đặc biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (trong bộ nhớ RAM là $5E). Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp.

Khi chương trình phục vụ ngắt hoặc chương trình con, con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Và con trở ngăn xếp sẽ giảm 1 khi thực hiện lệnh push. Ngược lại, khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy, con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi, hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lớn hơn hoặc bẳng 60H (0x60) vì 5FH trở lại là vùng các thanh ghi.

e. Quản lý ngắt

Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết bề tình trạng sẵn sàng trao đổi dữ liệu của mình. Ví dụ, khi bộ truyền nhận UART nhận được 1 byte nó sẽ báo cho CPU biết thông qua cờ RXC, hoặc khi nó đã truyền được 1 byte thì cờ TX được thiết lập…

Khi có tín hiệu báo ngắt, CPU sẽ tạm dừng công việc đang thực hiện lại và lưu vị trí đang thực hiện chương trình (Con trỏ PC) vào ngăn xếp sau đó trở tới vector phục vụ ngắt và thực hiện chương trình phục vụ ngắt đó cho tới khi gặp lệnh RETI (return from

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà trước khi có ngắt nó đang thực hiện. Trong trường hợp có nhiều ngắt yêu cầu một lúc, CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần lượt các ngắt theo mức ưu tiên. Trong khi đang thực hiện ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp. Trường hợp ngắt này có mức ưu tiên cao hơn, nó sẽ phục vụ. Còn nếu có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua.

Bộ nhớ ngăn xếp là vùng bất kỳ trong SRAM từ địa chỉ 0x60 trở lên. Để truy nhập vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập vào SRAM theo kiểu ngăn xếp thì ta dùng con trỏ SP. Con trỏ này là một thanh ghi 16bit và được truy nhập như hai thanh ghi 8bit chung có địa chỉ:SPL: 0 X 3D/0 X 5D ( IO/SRAM) và SPH : 0 x 3E/0 x 5E.

5.3.1.3. Cấu trúc bộ nhớ

AVR có hai không gian bộ nhớ chính là bộ nhớ dữ liệu và bộ nhớ chương trình. Ngoài ra Atmega 16 còn có thêm bộ nhớ EEPROM để lưu trữ dữ liệu.

a. Bộ nhớ chương trình (Bộ nhớ Flash)

Bộ nhớ Flash 16KB của Atmega16 dùng để lưu trữ chương trình. Do các lệnh của AVR có độ dài 16 hoặc 32 bit nên bộ nhớ Flash được sắp xếp theo kiểu 8Kx16. Bộ nhớ Flash được chia làm hai phần: phần cho chương trình boot và phần cho chương trình ứng dụng.

b. Bộ nhớ dữ liệu SRAM

1120 ô nhớ của bộ nhớ dữ liệu định địa chỉ cho file thanh ghi, bộ nhớ I/O và bộ nhớ dữ liệu SRAM nội. Trong đó, 96 ô nhớ đầu tiên định địa chỉ cho file thanh ghi và bộ nhớ I/O và 1024 ô nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội.

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn 5.3. 1.4 Các cổng vào ra

a. Thanh ghi DDRx

Đây là thanh ghi 8 bit (ta có thể đọc và ghi các bit ở thanh ghi này) có tác dụng điều khiển hướng cổng PORTx (tức là công ra hay cổng vào). Nếu như một bit trong thanh ghi này được set thì bit tương ứng đó trên PORTx được định nghĩa như một cổng ra. Ngược lại, nếu như bit đó không được set thì bit tương ứng trên PORTx được định nghĩa là cổng vào.

b. Thanh ghi PORTx

Đây cũng là thanh ghi 8 bit (các bit có thể đọc và ghi được). Nó là thanh ghi dữ liệu của cổng Px. Trong trường hợp cổng được định nghĩa là cổng ra, khi ta ghi một bit lên thanh ghi này thì chân tương ứng trên port đó cũng có cùng mức logic. Trong trường hợp cổng được định nghĩa là cổng vào, thanh ghi này lại mang dữ liệu điều khiển cổng. Cụ thể nếu bit nào đó của thanh ghi này được set (đưa lên mức 1) thì điện trở kéo lên (pull up) của chân tương ứng của port đó sẽ được kích hoạt. Ngược lại, nó sẽ ở trạng thái trở kháng cao. Sau khi khởi động vi điều khiển, thanh ghi này sẽ có giá trị là 0x00. c. Thanh ghi PINx

Đây là thanh 8 bit chứa dữ liệu vào của PORTx ( trong trường hợp PORTx được thiết lập là cổng vào).

5.3.3. Lựa chọn động cơ và encoder

Như phần thiết kế kết cấu đã tính toán lựa chọn:

- Động cơ truyền động trục X: 24V 250w, tốc độ 450 vòng/phút, số xung encoder 1000xung/vòng.

- Động cơ truyền động trục Y: 24V 250w, tốc độ 450 vòng/phút, số xung encoder 1000 xung/vòng.

- Động cơ truyền động trục C: 24V, 10w, tốc độ 200 vòng/phút, số xung 200 bước/ vòng.

Luận văn Thạc sỹ: “Thiết kế chế tạo mô hình Máy cắt kính” GVHD: Lê Thanh Sơn

- Về mặt công suất các động cơ đủ công suất để chạy cơ cấu chấp thành - Độ chính xác: Trên trục X, Y: Đường kính bánh đai sử dụng 50mm Đcxlt 1000 14 , 3 . 50  = 0,157mm/xung

Thêm các yếu tố ảnh hưởng đến độ chính xác như rung động, độ cứng vững kết cấu máy… thỏa mãn yêu cầu đặt ra của hệ thống điều khiển độ chính xác 1mm

Trên trục Z: Số bước 200 bước/vòng Đcxlt = 200 360 = 1,8o/bước (adsbygoogle = window.adsbygoogle || []).push({});

Thêm các yếu tố ảnh hưởng đến độ chính xác như rung động, độ cứng vững kết cấu máy… thỏa mãn yêu cầu đặt ra của hệ thống điều khiển với độ chính xác 2o

Một phần của tài liệu Thiết kế chế tạo mô hình máy cắt kính (Trang 104)