Đồ án Điều khiển động cơ dc giao tiếp máy tính

Lời đầu tiên nhóm thực hiện đề tài xin cảm ơn thầy cô giáo chuyên ngành điện tử, cảm ơn thầy Trương Ngọc Sơn đã hướng dẫn tận tình nhóm thực hiện đề tài trong quá trình thực hiện đồ án này. Trong mấy chục năm qua , khoa học máy tính và xử lý thông tin có những bước tiến vược bậc và ngày càng có những đóng góp to lớn vào cuộc cách mạng khoa học kỹ thuật hiện đại. Đặc biệt sự ra đời và phát triển nhanh chóng của kỹ thuật số làm cho ngành điện tử trở nên phong phú và đa dạng hơn Nó góp phần rất lớn trong việc đưa kỹ thuật hiện đại thâm nhập rộng rãi vào mọi lĩnh vực của hoạt động sản xuất ,kinh tế và đời sống xã hội Từ những hệ thống máy tính lớn đến nhứng hệ thống máy tính cá nhân , từ những việc điều khiển các máy công nghiệp đến các thiết bị phục vụ đời sống hằng ngày của con người. Với mong muốn tìm hiểu , ứng dụng những tiến bộ của khoa học kỹ thuật hiện đại vào phục vụ sản xuất và phục vụ đời sống con người, nhóm đã thực hiện đề tài : “ĐIỀU KHIỂN ĐỘNG CƠ DC GIAO TIẾP MÁY TÍNH”. Do trình độ hiểu biết còn hạn chế , nên dù cố gắng hết sức trong việc thực hiện đề tài nhưng cũng không tránh khỏi thiếu sót . Mong thầy cô và bạn chỉ bảo thêm để nhóm hiểu vấn đề được sâu sắc hơn

pdf62 trang | Chia sẻ: ngtr9097 | Lượt xem: 2698 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển động cơ dc giao tiếp máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Phần A GIỚI THIỆU Điều khiển động cơ dc giao tiếp máy tính Trang 2 Đồ án môn học 2 LỜI NÓI ĐẦU Lời đầu tiên nhóm thực hiện đề tài xin cảm ơn thầy cô giáo chuyên ngành điện tử, cảm ơn thầy Trương Ngọc Sơn đã hướng dẫn tận tình nhóm thực hiện đề tài trong quá trình thực hiện đồ án này. Trong mấy chục năm qua , khoa học máy tính và xử lý thông tin có những bước tiến vược bậc và ngày càng có những đóng góp to lớn vào cuộc cách mạng khoa học kỹ thuật hiện đại. Đặc biệt sự ra đời và phát triển nhanh chóng của kỹ thuật số làm cho ngành điện tử trở nên phong phú và đa dạng hơn Nó góp phần rất lớn trong việc đưa kỹ thuật hiện đại thâm nhập rộng rãi vào mọi lĩnh vực của hoạt động sản xuất ,kinh tế và đời sống xã hội Từ những hệ thống máy tính lớn đến nhứng hệ thống máy tính cá nhân , từ những việc điều khiển các máy công nghiệp đến các thiết bị phục vụ đời sống hằng ngày của con người. Với mong muốn tìm hiểu , ứng dụng những tiến bộ của khoa học kỹ thuật hiện đại vào phục vụ sản xuất và phục vụ đời sống con người, nhóm đã thực hiện đề tài : “ĐIỀU KHIỂN ĐỘNG CƠ DC GIAO TIẾP MÁY TÍNH”. Do trình độ hiểu biết còn hạn chế , nên dù cố gắng hết sức trong việc thực hiện đề tài nhưng cũng không tránh khỏi thiếu sót . Mong thầy cô và bạn chỉ bảo thêm để nhóm hiểu vấn đề được sâu sắc hơn TP.HCM, Tháng 11 năm 2011 Điều khiển động cơ dc giao tiếp máy tính Trang 3 Đồ án môn học 2 MỤC LỤC ************&&&*********** Phần A …..……………Giới Thiệu ................... … Trang Lời nói đầu ………………………………………………………………… 3 Mục lục ……………………………………………………………………...4 Liệt kê bảng………………………………………………………………….5 Liệt kê hình…………………………………………………………………..5 Phần B ………………... Nội Dung Chương 1: Cơ sở lý thuyết 1.1 Giới thiệu vi điều khiển ATMEGA32 ………………………………..8 1.2 Giới thiệu LCD………………………………………………………..27 1.3 Giới thiệu động cơ điện 1 chiều và điều khiển bẳng PWM …………..34 1.4 Giới thiệu Encoder……………………………………………………..36 Chương 2: Thiết kế và thi công mạch 2.1 Thiết kế mạch ……………………………………………..…………..39 2.1.1 Thiết kế sơ đồ nguyên lý ………………………………………40 2.1.2 Thiết kế sơ đồ mạch in ………………………………………...42 2.2 Viết chương trình cho vi điều khiển ……………………………..…….. 43 Chương 3: Thiết kế chương trình điều khiển trên máy tính 3.1 Chương trình điều khiển trên máy tính …………………………………46 Chương 4: Kết luận 4.1 Kết quả đạt được ……………………………………………………….. 49 4.2 Nhận xét sản phẩm …………………………………………………….. 49 4.3 Hướng phát triển ……………………………………………………….. 50 4.4 Phụ lục và Tài liệu tham khảo…………………………………………50 Điều khiển động cơ dc giao tiếp máy tính Trang 4 Đồ án môn học 2 Liệt kê bảng Bảng 1.1 - Chức năng các chân PORTA Bảng 1.2 - Chức năng các chân PORTB Bảng 1.3 - Chức năng các chân PORTC Bảng 1.4 - Chức năng các chân PORTD Bảng 1.5 – Lựa chọn nguồn xung Bảng 1.6 – Chức năng các chân LCD Bảng 1.7 – RS – R/W LCD Bảng 1.8 – Tập lệnh LCD Bảng 1.9 – Phạm vi hoạt động của LCD Bảng 1.10 – Miền làm việc bình thường của LCD Liệt kê hình Hình 1.1 – Sơ đồ cấu trúc bên trong Atnega32 Hình 1.2 – Sơ đồ chân của ATmega32 Hình 1.3 – Sơ đồ khối hệ thống xung nhịp Hình 1.4 – Sơ đồ khối của Timer/Counter0 Hình 1.5 - Giản đồ thời gian của chế độ PWM Hình 1.6 - Sơ đồ khối của timer/counter1 Hình 1.7 - Sơ đồ khối của timer/counter2 Hình 1.8 - Giản đồ thời gian của chế độ CTC Hình 1.9 - Sơ đồ khối USART Hình 1.10 – Hình dạng LCD Hình 1.11 – Sơ đồ chân LCD Hình 1.12 – Các khối cơ bản của LCD Hình 1.13 – Nguyên tắc hoạt động của động cơ điện 1 chiều Hình 1.14 - Điều chỉnh độ rộng xung PWM. Hình 1.15 - Dạng sóng dòng và áp trên động cơ. Hình 1.16 - Encoder Điều khiển động cơ dc giao tiếp máy tính Trang 5 Đồ án môn học 2 Hình 1.17- Cấu tạo Encoder Hình 1.18 -Tín hiệu thu được từ Encoder 2 kênh Hình 2.1-Sơ đồ nguyên lý mạch vi điều khiển Hình 2.2-Sơ đồ nguyên lý mạch động lực Hình 2.3-Sơ đồ mạch in mạch vi điều khiển Hình 2.4 - Sơ đồ mạch in động lực Hình 2.5 – Giao diện chương trình điều khiển Hình 2.6– Mạch đang hoạt động Điều khiển động cơ dc giao tiếp máy tính Trang 6 Đồ án môn học 2 Phần B NỘI DUNG Điều khiển động cơ dc giao tiếp máy tính Trang 7 Đồ án môn học 2 Chương 1: Cơ Sở Lý Thuyết 1.1. Giới thiệu về vi điều khiển ATmega32 ATmega32 là vi điều khiển chuẩn CMOS 8 bit tiết kiệm năng lượng, được chế tạo dựa trên cấu trúc AVR RISC (Reduced Instruction Set Computer), đây là cấu trúc có tốc độ xử lý cao hơn nhiều so với cấu trúc CISC (Complex Instruction Set Computer). Tần số hoạt động của vi điều khiển AVR bằng với tần số của thạch anh, trong khi với họ vi điều khiển theo cấu trúc CISC như họ 8051 thì tần số hoạt động bằng tần số thạch anh chia cho 12. Hầu hết các lệnh được thực thi trong một chu kỳ xung nhịp, do đó ATmega32 có thể đạt được tốc độ xử lý đến một triệu lệnh mỗi giây (với tần số 1MHz). Đặc điểm này cho phép người thiết kế có thể tiết kiệm tối đa mức độ tiêu thụ năng lượng mà vẫn đảm bảo tốc độ xử lý. Sau đây là các đặc tính của ATmega32: - Hiệu năng cao, tiêu thụ ít năng lượng. - Kiến trúc RISC: o 131 lệnh – hầu hết các lệnh thực thi trong một chu kỳ máy. o 32 thanh ghi 8 bit đa năng. o Tốc độ thực hiện lên tới 16 triệu lệnh trong 1 giây (tần số 16MHz). - Các bộ nhớ chương trình và bộ nhớ dữ liệu: o 32Kbyte bộ nhớ Flash có khả năng tự lập trình trong hệ thống. Có thể thực hiện được 10.000 lần ghi xóa. o Vùng mã Boot tùy chọn với những bit khóa độc lập. o Lập trình trong hệ thống bởi chương trình on-chip boot. o Thao tác đọc ghi trong khi nghỉ. o 1024 Byte EEPROM. Có thể thực hiện 100.000 lần ghi xóa. o 2Kbyte SRAM nội. o Lập trình khóa an toàn phần mềm. - Ghép nối ngoại vi: o 2 bộ định thời/bộ đếm 8 bit với bộ chia tần số độc lập và chế độ so sánh. Điều khiển động cơ dc giao tiếp máy tính Trang 8 Đồ án môn học 2 o 1 bộ định thời/bộ đếm 16 bit với bộ chia tần số, chế độ so sánh và chế độ bắt mẫu (Capture). o Bộ đếm thời gian thực với bộ dao động độc lập. o Bốn kênh PWM. o Bộ ADC 8 kênh 10 bit. o Bộ truyền dữ liệu đồng bộ/bất đồng bộ USART. o Bộ truyền dữ liệu chuẩn SPI. o Watchdog timer khả trình với bộ dao động nội riêng biệt. o Bộ so sánh Analog. - Các đặc điểm khác: o Power-on Reset và phát hiện Brown-out khả trình. o Bộ tạo dao động nội. o Nguồn ngắt nội và ngoại. o 6 chế độ ngủ: Idle, ADC noise reduction, Power-save, Power-down, Standby và Extended Standby. - Ngõ vào/ra: có 32 ngõ vào ra. - Điện áp hoạt động: o 2.7V – 5.5V đối với ATmega32L. o 4.5V – 5.5V đối với ATmega32. - Tần số hoạt động: o 0 – 8MHz đối với ATmega32L. o 0 – 16MHz đối với ATmega32. Điều khiển động cơ dc giao tiếp máy tính Trang 9 Đồ án môn học 2 1.1.1. Cấu trúc bên trong ATmega32 Hình 1.1 – Sơ đồ cấu trúc bên trong Atnega32 Điều khiển động cơ dc giao tiếp máy tính Trang 10 Đồ án môn học 2 1.1.2. Sơ đồ chân của ATmega32 Hình 1.2 – Sơ đồ chân của ATmega32 - GND: chân nối mass. - VCC: điện áp nguồn. - Port A (PA0…PA7): ngõ vào/ra Port A. Các chân Port A cũng là ngõ vào analog của bộ chuyển đổi A/D Chân Chức năng PA7 ADC7 (Ngõ vào ADC 7) PA6 ADC6 (Ngõ vào ADC 6) PA5 ADC5 (Ngõ vào ADC 5) PA4 ADC4 (Ngõ vào ADC 4) PA3 ADC3 (Ngõ vào ADC 3) PA2 ADC2 (Ngõ vào ADC 2) PA1 ADC1 (Ngõ vào ADC 1) Điều khiển động cơ dc giao tiếp máy tính Trang 11 Đồ án môn học 2 PA0 ADC0 (Ngõ vào ADC 0) Bảng 1.1 Chức năng các chân PORTA - Port B (PB0…PB7): ngõ vào/ra Port B. Các chức năng khác của Port B: Chân Chức năng PB7 SCK (Chân Clock của SPI) PB6 MISO (Master Input / Slave Output của SPI) PB5 MOSI (Master Output / Slave Input của SPI) PB4 SS (Ngõ vào chọn Slave của SPI) PB3 AIN1 (Ngõ vào Negative của bộ so sánh analog). OC0 (Ngõ ra so sánh của Timer/Counter 0). PB2 AIN0 (Ngõ vào Possitive của bộ so sánh analog). INT2 (Ngõ vào ngắt ngoài 2) PB1 T1 (Ngõ vào của bộ đếm ngoài counter 1) PB0 T0 (Ngõ vào của bộ đếm ngoài counter 0) XCK (Chân I/O Clock của USART) Bảng 1.2 Chức năng các chân PORTB - Port C (PC0…PC7): ngõ vào/ra Port C. Các chức năng khác của Port C: Chân Chức năng PC7 TOSC2 (Chân 2 bộ dao động của Timer) PC6 TOSC1 (Chân 1 bộ dao động của Timer) PC5 TDI (Chân data in Test JTAG) PC4 TDO (Chân data out Test JTAG) Điều khiển động cơ dc giao tiếp máy tính Trang 12 Đồ án môn học 2 PC3 TMS (Chân chọn Mode Test JTAG) PC2 TCK (Chân Clock Test JTAG) PC1 SDA (Chân data I/O của giao thức Two-wire) PC0 SCL (Chân clock của giao thức Two-wire) Bảng 1.3 Chức năng các chân PORTC - Port D (PD0…PD7): ngõ vào/ra Port D. Các chức năng khác của Port D: Chân Chức năng PD7 OC2 (Ngõ ra so sánh của Timer/Counter2) PD6 ICP1 (Chân bắt mẫu của Timer/Counter1) PD5 OC1A (Ngõ ra so sánh A của Timer/Counter1) PD4 OC1B (Ngõ ra so sánh B của Timer/Counter1) PD3 INT1 (Ngõ vào ngắt ngoài 1) PD2 INT0 (Ngõ vào ngắt ngoài 0) PD1 TXD (Ngõ ra USART) PD0 RXD (Ngõ vào USART) Bảng 1.4 Chức năng các chân PORTD - Reset: Chân ngõ vào. Khi đặt vào chân này điện áp mức thấp trong thời gian xác định (xem trong datasheet) thì sẽ reset chương trình. Nếu thời gian ngắn hơn thì việc reset không thành công. - XTAL1: ngõ vào khuếch đại dao động đảo và cũng là ngõ vào mạch tạo xung nội. - XTAL2: ngõ ra của mạch khuếch đại dao động đảo. - AVCC: là chân nguồn cấp cho Port A và bộ chuyển đổi A/D. Nên nối chân này với chân VCC ngay cả khi không sử dụng ADC. Nếu dùng ADC thì nên nối chân này với chân VCC qua 1 tụ lọc thông thấp. Điều khiển động cơ dc giao tiếp máy tính Trang 13 Đồ án môn học 2 - AREF: chân tham chiếu điện áp analog của bộ chuyển đổi A/D. 1.1.3. Xung nhịp của hệ thống và việc lựa chọn xung nhịp Vi điều khiển ATmega32 có nhiều lựa chọn trong việc thiết lập xung nhịp cho hệ thống. Xung nhịp có thể do mạch tạo dao động bên trong vi điều khiển, cũng có thể do mạch dao động bên ngoài. Hình 1.3 – Sơ đồ khối hệ thống xung nhịp Việc lựa chọn nguồn xung nhịp được thực hiện thông qua quá trình thiết lập các bit CKSEL3…0 (lựa chọn nguồn xung cũng như cả tần số của nguồn xung). Các nguồn xung CKSEL3…0 Extenal Crystal / Ceramic Resonator 1111 – 1010 Điều khiển động cơ dc giao tiếp máy tính Trang 14 Đồ án môn học 2 External Low-frequency Crystal 1001 External RC Oscillator 1000 – 0101 Calibrated Internal RC Oscillator 0100 – 0001 External Clock 0000 Bảng 1.5 Lựa chọn nguồn xung 1.1.4. Giới thiệu về Timer/Counter của ATmega32 1.1.4.1. Timer/Counter0 Các chức năng chính: - Kênh đếm so sánh đơn. - Xóa giá trị timer khi đạt tới giá trị so sánh (Auto Reload). - Chế độ PWM. - Đếm sự kiện bên ngoài. - Bộ chia tần số 10bit. - Ngắt khi tràn hoặc tại giá trị so sánh. Hình 1.4 – Sơ đồ khối của Timer/Counter0 Điều khiển động cơ dc giao tiếp máy tính Trang 15 Đồ án môn học 2 Các chế độ hoạt động của Timer/Counter0: - Chế độ bình thường. - Chế độ xóa giá trị Timer khi đạt tới giá trị so sánh. - Chế độ Fast PWM. - Chế độ PWM. Trong đề tài này, Timer/Counter0 được dùng để tạo xung PWM. Vì thế, phần này chỉ đề cập đến chế độ hiệu chỉnh PWM của Timer/Counter0. Chế độ hiệu chỉnh xung PWM giúp tạo ra dạng xung PWM với độ phân giải cao. Chế độ này dựa trên hoạt động dual-slope (dạng hai sườn lên xuống theo giá trị thanh ghi). Bộ đếm đếm liên tục từ giá trị BOTTOM đến MAX rồi đếm từ MAX xuống BOTTOM. Nếu chọn ngõ ra dạng không đảo (non-inverting), chân OC0 ở mức 0 tại giá trị so sánh giữa OCR0 với TCNT0 khi đếm lên, và ở mức 1 tại giá trị so sánh khi đếm xuống. Nếu chọn ngõ ra dạng đảo (inverting), chân OC0 sẽ hoạt động ngược lại. Chế độ hoạt động dual- slope có tần số thấp hơn so với chế độ single-slope. Tuy nhiên, do đặc tính đối xứng nên kiểu dual-slope thích hợp hơn cho các ứng dụng điều khiển động cơ. Độ phân giải của chế độ PWM này là 8bit. Bộ đếm sẽ tăng dần đến giá trị MAX. Khi đạt tới MAX, bộ đếm sẽ đảo chiều và đếm xuống tới BOTTOM. Như vậy, một chu kỳ của timer bằng thời gian giữa hai lần giá trị TCNT0 đạt MAX. Hình 1.5 - Giản đồ thời gian của chế độ PWM Điều khiển động cơ dc giao tiếp máy tính Trang 16 Đồ án môn học 2 Cờ tràn TOV0 được set mỗi lần bộ đếm đạt tới giá trị BOTTOM. Khi timer đạt tới giá trị này, ta có thể sử dụng để kích hoạt chương trình ngắt qua cờ báo ngắt. Xung PWM được đưa ra trên chân OC0. Việc thiết lập ngõ ra dạng đảo (inverting) hay không đảo (non-inverting) được thực hiện qua hai bit COM01 và COM00. Giá trị thực sự của OC0 chỉ có thể thấy được khi ta đặt OC0 là ngõ ra. Tần số của xung PWM được tính toán dựa vào công thức sau: Trong đó, N là giá trị của bộ chia tần số (1, 8, 64, 256,1024). Thanh ghi OCR0 sẽ đạt tới cực trị (cực đại hoặc cực tiểu) thay cho các trường hợp đặc biệt khi phát ra dạng xung PWM. Trong chế độ không đảo, nếu OCR0 được đặt giá trị BOTTOM, ngõ ra luôn ở mức thấp và nếu OCR0 được đặt giá trị MAX thì ngõ ra luôn ở mức cao. Đối với chế độ đảo thì hoạt động ngược lại. 1.1.4.2. Timer/Counter1 Các chức năng chính: - Thiết kế 16bit thực sự (cho phép tạo ra xung PWM 16bit). - 2 bộ so sánh ngõ ra độc lập. - 1 bộ bắt mẫu từ ngõ vào. - 1 bộ giảm nhiễu ngõ vào. - Chế độ xóa timer khi đạt tới giá trị so sánh. - Tạo tần số. - Tạo xung PWM có thể thay đổi giá trị. - Đếm sự kiện ngoài. - 4 nguồn ngắt độc lập (TOV1, OCF1A, OCF1B và ICF1). Điều khiển động cơ dc giao tiếp máy tính Trang 17 Đồ án môn học 2 Hình 1.6 - Sơ đồ khối của timer/counter1 Các chế độ hoạt động: - Chế độ bình thường. - Chế độ xóa timer khi đạt tới giá trị so sánh. - Chế độ Fast PWM. - Chế độ PWM (Phase Correct PWM). - Chế độ Phase and Frequency Correct PWM. - Giới thiệu về chế độ đếm sự kiện ngoài: - Chân ngõ vào T1: tác động cạnh lên hoặc xuống (tùy lựa chọn). Trong chế độ này, bộ đếm luôn đếm lên, khi đạt tới giá trị MAX (0xFFFF) thì tự động reset về BOTTOM (0x0000). 1.1.4.3. Giới thiệu timer/counter2 Các chức năng chính: Điều khiển động cơ dc giao tiếp máy tính Trang 18 Đồ án môn học 2 - Kênh đếm so sánh đơn. - Xóa timer khi đạt tới giá trị so sánh (Auto Reload). - Chế độ PWM. - Đếm sự kiện bên ngoài. - Bộ chia tần số 10bit. - Ngắt khi tràn hoặc tại giá trị so sánh. Hình 1.7 - Sơ đồ khối của timer/counter2 Các chế độ hoạt động của Timer/Counter2: - Chế độ bình thường. - Chế độ xóa timer khi đạt tới giá trị so sánh. - Chế độ Fast PWM. - Chế độ PWM. Giới thiệu chế độ xóa giá trị Timer khi đạt tới giá trị so sánh (CTC): Trong chế độ này, thanh ghi OCR2 được dùng để thiết lập độ phân giải cho bộ đếm. Khi TCNT đạt tới giá trị bằng với OCR2, bộ đếm được xóa về 0. Thanh ghi OCR2 xác định giá trị lớn nhất và cũng là độ phân giải của Timer2. Điều khiển động cơ dc giao tiếp máy tính Trang 19 Đồ án môn học 2 Hình 1.8 - Giản đồ thời gian của chế độ CTC Khi bộ đếm đạt tới giá trị TOP, cờ OCF2 kích hoạt chương trình ngắt. Khi đã được kích hoạt, chương trình ngắt có thể được sử dụng để cập nhật giá trị TOP. Chu kỳ của Timer trong chế độ CTC có thể tính như sau: Với công thức trên, ta có thể tính thời gian lấy mẫu như sau: Timer 8bit, giá trị MaxVal đặt trong OCR = 155, nguồn xung clock 16MHz, chia tần số 1024 thì thời gian lấy mẫu là 10ms. 1.1.5. Bộ truyền nhận dữ liệu USART USART (The Universal Synchronous and Asynchronous serial Receiver and Transmitter – Bộ truyền nhận nối tiếp tổng hợp đồng bộ và bất đồng bộ) Đặc điểm: - Hoạt động song công. - Cho phép làm việc ở các chế độ : đồng bộ hay bất đồng bộ. - Bộ phát tốc độ baud (BAUD RATE) với độ phân giải cao. - Hỗ trợ Format khung truyền nối tiếp : 5,6,7,8, hay 9 Data Bits và 1 hoặc 2 bit Stop. - Hỗ trợ kiểm tra bit chẵn , lẻ bằng phần cứng. - Có thể phát hiện Data bị tràn , khung truyền bị lỗi. - Có 3 cờ báo ngắt : TX complete, TX Data Register Empty và RX complete. - Có chế độ truyền thông đa xử lý. - Double speed (chỉ áp dụng cho chế độ truyền thông bất đồng bộ). Điều khiển động cơ dc giao tiếp máy tính Trang 20 Đồ án môn học 2 Hình 1.9 - Sơ đồ khối USART Trong sơ đồ trên, có ba khối nằm trong phần khung vuông là ba phần chính của USART: bộ phát xung, bộ truyền và bộ nhận. Thanh ghi điều khiển được sử dụng chung cho các thành phần. Bộ phát xung tạo ra xung nhịp cho bộ phát tốc độ baud (khi truyền nhận bất đồng bộ), hoặc điều khiển để nhận xung clock bên ngoài khi truyền nhận đồng bộ. Bộ truyền bao gồm một bộ đệm ghi đơn (single write buffer), thanh ghi dịch nối tiếp (serial Shift Register), bộ phát parity và bit điều khiển sử dụng cho nhiều khung truyền khác nhau. Bộ nhận phức tạp hơn do có phần phục hồi xung và dữ liệu (clock and data recovery). Thành phần phục hồi này sử dụng trong khi nhận dữ liệu bất đồng bộ. Ngoài hai phần phục hồi, bộ nhận còn có phần kiểm tra parity, bit điều khiển, thanh ghi dịch và bộ đệm nhận hai Điều khiển động cơ dc giao tiếp máy tính Trang 21 Đồ án môn học 2 mức thấp (UDR). Bộ nhận hỗ trợ các chuẩn khung truyền giống như bộ phát, và có thể phát hiện lỗi khung truyền, tràn dữ liệu hoặc lỗi parity. Các thanh ghi của USART: - USART I/O Data Register –UDR UDR là thanh ghi bộ đệm truyền(TXB) và nhận(RXB) (chúng có cùng 1 địa chỉ vật lý) có chức năng lưu trữ Data. o TXB: Thanh ghi bộ đệm truyền. Khi ta muốn send data đến PC thì trước hết data đó phải được nạp vào TXB. Muốn ghi DATA vào TXB thì bit UDRE trong thanh ghi UCSRA phải được set (UDRE=[1]: cho phép ghi vào TXB). Data đó được ghi vào UDR cho đến khi UDRE=[0]. Khi Data đang được vào TXB, và Transmitter được phép thì Transmitter sẽ Load Data đó vào thanh ghi dịch khi thanh ghi dịch bị trống (rỗng). Sau đó Data được truyền nối tiếp trên chân TxD (PD0) của MCU. o RXB: Thanh ghi bộ đệm nhận. Khi PC send 1 gói Data đến MCU thì gói Data đó nằm trong RXB do đó cần phải chuyển Data trong RXB vào 1 thanh R (vd: R16). RXB gồm có 2 mức FIFO. FIFO sẽ thay đổi trạng thái của nó bất cứ khi nào RXB được truy xuất. Vì trạng thái này của RXD mà không được dùng những lệnh (SBI, CBI) ở đây. Cẩn thận với các lệnh kiểm tra (SBIC và SBIS), vì chúng cũng sẽ làm thay đổi trạng thái của FIFO. - USART Control and Status Register A – UCSRA (Thanh ghi điều khiển và trạng thái A) o Bit 7 – RXC: USART Receive Complete Cờ RXC =[1] khi có data chưa được đọc trong RXB và RXC =[0] khi RXB rỗng (không còn bất kì data nào trong RXB chưa đọc). Điều khiển động cơ dc giao tiếp máy tính Trang 22 Đồ án môn học 2 Cờ RXC có thể được dùng để tạo ra ngắt khi nhận xong (kết hợp với bit RXCIE). o Bit 6-TXC: USART Transmit Complete Cờ TXC =[1] khi toàn bộ data trong thanh ghi dịch truyền đã dược dịch ra ngoài và không còn data mới nào xuất hiện trong TXB (UDR). TXC tự động được xóa nếu có 1 ngắt khi truyền xong được thực thi hay nó cũng có thể được xóa bằng cách ghi vào vị trí bit của nó. Cờ TXC có thể được dùng để tạo ra ngắt khi truyền xong (kết hợp với bit RXCIE). o Bit 5-UDRE: USART Data Register Empty Cờ UDRE chỉ thị nếu TXR (UDR) sẵn sàng để nhận dữ liệu mới. Nếu UDRE=[1] thì bộ đệm trống, vì thế mà bộ đệm sẵn sàng nhận dữ liệu mới. Cờ UDRE có thể tạo ra 1 ngắt khi data trong thanh ghi trống rỗng (kết hợp với bit UDRIE). UDRE = [1] sau khi reset để chỉ thị rằng bộ truyền đã sẵn sàng. o Bit 4-FE: Frame Error FE =[1] nếu có lỗi khung truyền khi nhận. o Bit3-DOR: Data OverRun DOR=[1] nếu dữ liệu bị tràn. o Bit 2-PE: Parity Error PE=[1] nếu có lỗi kiểm tra chẵn, lẻ. o Bit 1-U2X: Double the USART Transmission Speed Chú ý : U2X chỉ có tác dụng đối với chế độ truyền bất đồng bộ. U2X=[0] khi sử dụng chế độ truyền đồng bộ. U2X=[1] sẽ làm giảm ước số của bộ chia tốc độ baud từ 16 xuống còn 8 có tác dụng tăng tốc độ truyền đối với hoạt động bất đồng bộ. o Bit 0-MPCM: Multi-processor Communication Mode Bit này cho phép chế độ truyền thông đa xử lý. Khi MPCM=[1] thì tất cả các dữ liệu được nhận vào bởi bộ nhận USART mà

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

  • pdfdoan.pdf
  • exeDKDC_GTMT.exe