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

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

CHƯƠNG V THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN

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

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

- Hỗ trợ giao tiếp USART, SPI, I2C.

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)

Hình 5.22. Sơ đồ khối của Atmega16

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

Hình 5.23. Cấu trúc chân của AVR

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.

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).

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

Tải bản đầy đủ (PDF)

(134 trang)