báo cáo khoa học 'lập trình nhúng với vi xử lý avr'

5 677 1
báo cáo khoa học  'lập trình nhúng với vi xử lý avr'

Đang tải... (xem toàn văn)

Thông tin tài liệu

LậP TRìNH NHúNG VớI VI Xử AVR ThS. ngô thanh bình Bộ môn Kỹ thuật điện tử Khoa Điện - Điện tử Trờng Đại học Giao thông Vận tải Tóm tắt: Bi báo ny trình by về một thiết kế cho lập trình nhúng với vi xử AVR thông qua một KIT phát triển có các bộ phận có thể điều khiển độc lập, giúp sinh viên bớc đầu lm quen với lập trình phần cứng ứng dụng vo thực tế. Summary: This report introduces a design for programming embedded with AVR microcontroller by an evolution KIT whose parts can be controlled separately so as to assist students in familiarizing with hardware programs and applications. I. Đặt vấn đề Với các chuyên ngành về điện, điện tử, cơ khí tự động hoá, các kỹ s để làm việc tốt đòi hỏi rất cao các kiến thức về vi xử lý. Lập trình nhúng là môn học liên quan nhiều tới thực tế, lập trình vi xử với phần cứng và thiết bị ngoại vi cụ thể. Môn học yêu cầu nhiều tới các kiến thức về kỹ thuật điện tử, vi xử và kỹ thuật lập trình, ngoài ra sinh viên còn cần có kiến thức về kỹ thuật điện, cảm biến đo lờng Với một lợng kiến thức lớn, lại đòi hỏi có ghép nối phần cứng cụ thể nên thật khó tởng tợng môn học này khi học mà không có thiết bị thực tế. Với các thiết kế ghép nối ngoại vi khác nhau nếu sinh viên phải tự mua sắm linh kiện và bản mạch thô để hàn nối sẽ không thể đủ thời gian để làm đợc một vài ứng dụng, thêm vào đó là khoản kinh phí tốn kém mà sinh viên phải bỏ ra là không nhỏ. Để giải quyết vấn đề này, tác giả đã thiết kế, chế tạo sẵn một KIT phát triển với các cụm thiết bị độc lập, đi kèm với nó là trên 10 bài toán lập trình cụ thể, có thể lập trình độc lập hoặc kết hợp với nhau thành một bài toán lớn. Điều này sẽ gây hứng thú cho các môn học về vi xử lý, kỹ thuật lập trình và giúp đỡ đợc sinh viên không phải tốn kinh phí lắp ráp phần cứng. CT 2 II. YÊU CầU THIếT Kế 1. Chọn vi xử Vi xử là một môn học truyền thống cho sinh viên các ngành kỹ thuật về điện, điện tử nói chung. Đã có rất nhiều tài liệu nói về lĩnh vực này, tuy nhiên hầu hết chỉ chú trọng đến thuyết chung mà cha đa ra đợc các bài toán ứng dụng cụ thể kèm theo sơ đồ phần cứng và chơng trình điều khiển. Trong chơng trình học sinh viên đã đợc học thuyết và thí nghiệm với vi xử họ MCS51. Thực tế họ MCS51 trớc đây là một họ vi xử khá mạnh, đã có trên 250 thành viên và đợc các công ty bán dẫn hàng đầu thế giới chế tạo nh Intel, AMD, Atmel, Siemens, Philips, Dallas, OKI, Các dẫn xuất này đều có chung một kiến trúc trên cơ sở vi điều khiển Intel 8051 kinh điển. Thêm vào đó, tùy theo từng loại mà các chip dẫn xuất đợc tích hợp thêm các ngoại vi khác nhau (nh ADC, SPI, EEPROM, capture/compare channels), tính năng cũng đợc nâng cao để phù hợp với các ứng dụng ngày càng phức tạp. Ngoài ra đối với các loại chip có cấu trúc CPU ngoại vi cố định (fixel digital and analog penpherals) còn phải kể đến các công ty khác có các sản phẩm là những họ vi điều khiển riêng cũng khá mạnh và đợc tiêu thụ nhiều trên thị trờng, mỗi loại lại có cấu trúc phần cứng đợc tổ chức khác nhau, bộ lệnh riêng và các cấu trúc lập trình khác nhau. Có thể kể ra nh: 68HCxx và các dẫn xuất của Motorola ST62xx của SGS-THOMSON H8 của Hitachi PIC 16#xx của Microchip Phát triển của họ MCS51 Atmel cho ra đời thế hệ AVR, có tích hợp thêm các chức năng ADC, PWM, với phần mềm trên cả Assembly và C khá linh động, hỗ trợ ghép nối LCD, RTC. Các dạng chip thế hệ sau nh chíp CSoC có khả năng mềm dẻo thích ứng với đa dạng ứng dụng và nhất là khả năng tái cấu hình (reconfigurable), tạo thành nhiều loại chip khác nhau trên một chip ở những thời điểm khác nhau trong một ứng dụng. CYPRESS phát triển họ PSoC (Programmable System on Chip) có đặc điểm linh động phần cứng từ phần mềm, tự tạo cấu hình phần cứng từ tài nguyên có sẵn phục vụ các bài toán cụ thể đòi hỏi yêu cầu phần cứng khác nhau. Thực chất các chip chế tạo theo công nghệ PSoC cho phép thay đổi cấu hình phần cứng bằng cách gán chức năng cho các khối tài nguyên có sẵn trên chip, ghép nối mềm dẻo giữa các khối với nhau và với các cổng In/Out. Ngoài ra thành phần của chip PSoC bao gồm cả các khối ngoại vi số và tơng tự có thể tự cấu hình đợc, lập trình cho chip thông qua phơng pháp kéo/thả các khối tài nguyên này vào vùng làm việc. Việc thiết lập ngắt trên chân nào, loại ngắt gì, các chân In/Out đợc thiết lập hoạt động thế nào đều tuỳ thuộc vào thiết lập của ngời lập trình. Với khả năng đặt cấu hình mạnh mẽ này một thiết bị Đo lờng - Điều khiển có thể đợc gói gọn trên một chip duy nhất. Chính vậy ngời ta không gọi chip này là vi điều khiển ( C) mà gọi là thiết bị PSoC (PsoC Device - Thiết bị lập trình trên chip), với hy vọng rằng ngời sử dụng sẽ có đợc những thiết bị nhỏ gọn, giá rẻ, tin cậy bởi chỉ dùng riêng chip PSoC mà không cần các kết nối ngoại vi khác và sản phầm này sẽ thay thế dần các thiết bị sử dụng vi xử kinh điển trớc đây. Một số dạng thiết kế chip nhằm mục đích chủ yếu cho các bài toán xử dữ liệu nh CPLD (Complex Programmable Logic Device), FPGA (Field Programmable Logic Array) có hỗ trợ kết nối máy tính với các phần mềm tiêu chuẩn, tái cấu hình lại nhiều lần. Lập trình mảng tơng tự đã xuất hiện trong nhiều năm, nhng chỉ mới gần đây mới đợc phát triển mạnh, và nền công nghiệp điện tử đã chấp nhận phát triển đầy đủ các công cụ phát triển và các phiên bản phần mềm phát triển mới. Lập trình mảng tơng tự FPAAs (Field Programmable Analog Arrays) cung cấp cho nhà thiết kế tính mềm dẻo nh trong phần thiết kế mạch tơng tự của họ. Những dạng linh kiện này giải quyết tốt hầu hết các vấn đề ứng dụng trong những thành phần của hệ thống (Vi xử lõi, khối logic, khối tơng tự). dụ, một mạch chứa đựng thành phần chính là logic sẽ có lợi nhất khi sử dụng linh kiện lập trình logic, nhng một thiết kế với nhiều thành phần tơng tự sẽ không thích hợp với những linh kiện đó. Nh vậy sử dụng các chip thế hệ sau để nghiên cứu về vi xử lập trình nhúng là không phù hợp, chúng dành cho ngời CT 2 chuyên nghiệp với các ứng dụng cao cấp, còn với sinh viên khi đang học cần có một họ chip với tính năng vừa phải, giá rẻ, phần mềm sẵn có, thuận tiện khi mua chip và phần mềm dễ sử dụng. Tóm lại, sự phát triển của công nghệ vi điện tử thúc đẩy sự phát triển nhanh của các thế hệ vi xử lý, chúng sẽ luôn phát triển nên không thể nói một loại chip nào là hay nhất mà phải tuỳ thuộc vào yêu cầu bài toán của từng lĩnh vực cụ thể để chọn chip. Chúng ta cần chọn một loại vi xử phù hợp với chơng trình học, khả năng của sinh viên về kiến thức và tài chính. Với các yêu cầu này chip vi xử họ AVR là phù hợp nhất. 2. Kết cấu KIT phát triển Trên KIT phục vụ lập trình nhúng sử dụng vi xử AVR ATMega88, bao gồm các cụm thiết bị độc lập sau: Nguồn +5VDC, +12VDC Mạch nạp onboard Cụm vi xử ATMega88 Phím bấm LED đơn, LED 7 thanh, LCD ITM1602A Thu phát hồng ngoại Động cơ một chiều +12VDC, CT 2 Động cơ bớc +12VDC Loa, quạt MAX232 kết nối PC 4 kênh tơng tự, đo nhiệt độ sử dụng LM335 Ghép nối bộ nhớ ngoài Extenal serial memory 24C16B Ghép nối Real Time Clock RTC DS1307 ISP terminals, Jack kết nối đa vi xử Sinh viên sẽ đợc nghiên cứu về cấu trúc vi xử lý, các phơng pháp lập trình cho vi xử lý, lập trình nhúng, hớng dẫn điều khiển các cụm thiết bị độc lập. Sau đó phối hợp các cụm thiết bị này ta tạo ra đợc nhiều bài toán ứng dụng trong thực tế nh: - Kết hợp LED đơn và LED 7 thanh tạo ra chơng trình điều khiển mô hình đèn giao thông, mìn hẹn giờ - Kết hợp PWM và LED đơn tạo ra chơng chình điều khiển đèn quảng cáo có thể nháy và thay đổi cờng độ sáng theo chu trình khác nhau. - Điều khiển động cơ một chiều và động cơ bớc thông qua phím bấm. Kết hợp PWM tăng giảm tốc độ động cơ một chiều. - Kết hợp Sensor đo nhiệt độ hiển thị trên LCD, sử dụng phím bấm đặt ngỡng cảnh báo tác động quạt. - Kết hợp thu phát hồng ngoại điều khiển từ xa LED, động cơ một chiều, động cơ bớc, thay đổi ngỡng đặt nhiệt độ từ xa. - Ghép nối máy tính tạo chơng trình quản giám sát hệ thống. - Quản thời gian thực của các thiết bị hoạt động thông qua RTC DS1307. Đi kèm với KIT phát triển này là trên 10 bài toán nhỏ điều khiển các cụm thiết bị độc lập một số bài toán ứng dụng. Phiên bản KIT đầu tiên đợc thiết kế nhỏ gọn với các bài toán cơ bản nằm trong phạm vi các bài toán trên, kết hợp một bảng cắm đa năng nhằm tạo điều khiện cho sinh viên tự làm lấy một KIT với giá thành rẻ. Trên cơ sở KIT phát triển này ngời học sẽ đợc tiếp cận với các bài toán thực tế thông qua các dụ nhỏ, từ đó tự phát huy khả năng sáng tạo của mình phát triển các bài toán cao cấp hơn. Tit le Size Document Number Rev Date: Sheet of 1 <RevCode> Lap trinh nhung v oi AVR - Designed by BinhNT. A2 11Sunday , October 28, 2007 J10 CON2 1 2 ATmega48/88/168 U6 PCINT14/#RESET/PC6 1 PCINT16/RXD/PD0 2 PCINT17/TXD/PD1 3 PCINT18/INT0/PD2 4 PCINT19/INT1/PD3 5 PCINT20/XCK/T0/PD 4 6 VCC 7 GND 8 PCINT6/XTAL1/TOSC1/PB6 9 PCINT7/XTAL2/TOSC2/PB7 10 PCINT21/OC0B/T1/PD5 11 PCINT22/OC0A/AIN0/PD6 12 PCINT23/AIN1/PD7 13 PCINT0/CLKO/ ICP1/PB0 14 PB1/OC 1A/PCINT1 15 PB2/#SS/OC 1B/PCINT2 16 PB3/MOSI/OC 2A/PCINT3 17 PB4/MISO/PCINT4 18 PB5/SCK/PCINT5 19 AVCC 20 AREF 21 GND 22 PC0/ADC0/PCINT8 23 PC1/ADC1/PCINT9 24 PC2/ADC 2/PCINT10 25 PC3/ADC 3/PCINT11 26 PC4/ADC4/SDA/PCINT12 27 PC5/ADC5/SCL/PCINT13 28 Character LCD U1 VSS 1 VCC 2 VEE 3 RS 4 RW 5 E 6 D0 7 D1 8 D2 9 D3 10 D4 11 D5 12 D6 13 D7 14 A 15 K 16 R8 5K1 Y1 32.768kHz Q7 TI P41C Q3 C2383 J21 1 2 3 4 5 6 R15 5K1 24C16B U4 A0 1 A1 2 A2 3 GND 4 SDA 5 SCLK 6 WP 7 VCC 8 R5 1K R114K7 +5V +5V DC1 C1 100n R6 1K J14 1 2 3 4 5 6 KEY1 +5V R171K Q13 TI P41C R18 1K R1 10K R54 10K R45 1K Temperature Sensor Chanel 2 Temperature Sensor Chanel 4 +5V TEMP 4 D23 LM335/TO92 R2 10K R3 10K SCL J9 1 2 3 4 5 6 SDA R9 5K1 PB5 R46 100 PB4 +5V PB3 PC6 R165K1 GND DS1307 U2 X1 1 X2 2 Vbat 3 GND 4 SDA 5 SCL 6 SQW/OUT 7 VCC 8 R48100 +5V R50100 7-SEG LED DC2 D3 1N4007 R51100 U9 LED7SEGx 3 A 2 B 6 C 9 D 11 E 12 F 3 G 8 DOT 10 CA1 5 CA2 4 CA3 1 R13 10K Q20 Q17 R14 10K Q16 KEY2 D2 D3 D4 D5 D6 D7 A GND +5v VEE RS RW E D0 D1 U11 IN0 1 IN1 2 IN2 3 IN3 4 IN4 5 IN5 6 IN6 7 IN7 8 GND 9 COM 10 OUT7 11 OUT6 12 OUT5 13 OUT4 14 OUT3 15 OUT2 16 OUT1 17 OUT0 18 R26 DC Motor R28 R31 +5V SCK D1 1N4007 MI SO CONNECTOR 17x1 +5V DIGIT 3 DIGIT 2 DIGIT 1 MOS I SEG F SEG G DOT SEG D SEG E D14 1N4007 SEG A SEG B SEG C J2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 RST R7 2K2 SQW_OU T C19 10n J1 CON3 1 2 3 C20 100n J3 CON2 1 2 Q15 TI P41C D13 1N4007 DC3 External crystal KEY3 D20LED K Y2 4-20MHz C9 22p BACKLIGHT ISP terminals C2 100n +5V R35 30K J11 1 2 C12 22p RXD STREP Motor XTA L 1 R25 22E2W TXD XTA L 2 R591K C10 100n +5V PC6 DC4 KEY4 R21 10K +5V GND VEE STEP2 DC1 PD0 PD1 PD2 PD3 Q19 TI P41C PD4 P2 MALE DB25 13 25 12 24 11 23 10 22 9 21 8 20 7 19 6 18 5 17 4 16 3 15 2 14 1 + C3 STEP1 KEY5 J5 1 2 3 4 5 6 D7 LED D19 LED +5V +5V LOA Q22 C2383 In System Programmer interface R43 100 PB6 PB7 PB0 PD6 R55 4K7 +5V PD5 PD7 LS1 8 Ohm GND KEY1 KEY2 U8 IN 1 OUT 3 GND 2 KEY3 J181 D6 LED KEY4 J201 KEY5 D5 LED J17 1 J19 1 D4 LED D10 LED D8 LED R42 4K7 D9 LED D11 LED R4 470 12 3 4 5 6 7 8 9 QUAT1 12V 1.1W Drills +5V STEP2 J22 1 2 3 R72 STEP1 +5V Q23 D30 R73 R74 +5V +5V IR transmit IR receiver J23 1 J24 1 R57 30K +5V CONNECTOR 14x2 J4 1 2 3 4 5 6 7 8 U3 PIN+3V 2 3 1 CONNECTOR 8x2 +12V R33 4K7 QUAT STEP3 R34 4K7 LED 2 R32 100 Realtime clock +5V LED 3 + C4 TEMP 1 PC0 PC1 PC2 PC3 PC4 PC5 J16 1 2 3 4 TEMP 2 PB1 PB2 PB3 PB4 PB5 AVCC AREF AGND TEMP 4 TEMP 3 LED 4 LED 5 L3 10uH M LED 7 GND LED 6 AGND +5V L2 10uH AVCC U5 IN 1 OUT 3 GND 2 D2 1N4007 +5V C8 D12 1N4007 C11 100n +5V SW5 STEP4 R68220 C24 100n D15 1N4007 +5V D26 4148 R63 10K D18 1N4007 STEP3 Q12 R10 5K1 Q14 R19 5K1 STEP4 DC3 R22 5K1 SW2 J12 CON8 1 2 3 4 5 6 7 8 R27 5K1 R67220 D21 LM335/TO92 C21 100n +5V D25 4148 R47 1K R62 10K J6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SW3 R200-470 + C6 R69220 C22 100n +5V D27 4148 Q6 R64 10K SW4 R70 220 C25 100n +5V D28 4148 R120-470 R65 10K 1-MO 1-MO R230-470 +5V DC4 R290-470 C5 12VAC input R52 10K TEMP3 MAX232 U10 C1+ 1 C1- 3 C2+ 4 C2- 5 VCC 16 GND 15 V+ 2 V- 6 R1OUT 12 R2OUT 9 T1I N 11 T2I N 10 R1IN 13 R2IN 8 T1O UT 14 T2O UT 7 Q21 TIP41C +5V J7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SW1 R61 10K Q18 +12V +12V D24 4148 C18 1u C17 1u C16 1u -+ D17 2 1 3 4 R53 10K R44 1K U7 1 1 2 2 3 3 MG1 1 2 +5V 74245 U12 DIR 1 A0 2 A1 3 A2 4 A3 5 A4 6 A5 7 A6 8 A7 9 GND 10 B7 11 B6 12 B5 13 B4 14 B3 15 B2 16 B1 17 B0 18 #OE 19 VCC 20 Temperature Sensor Chanel 3 TEMP 2 D22 LM335/TO92 R71 10K R60 1K +5V C13 1u Temperature Sensor Chanel 1 TEMP 1 D29 LM335/TO92 C15 1u Q4 C828 L1 100uH R66220 Q2 External serial memory R401K +12V R411K +5V CONNECTOR 14x2 J8 CON3 1 2 3 Q5 C828 +5V R491K AC2/DC2 R56100 RS232 interface C23 100n +5V AC1/DC1 R581K R24 P1 FEMALE DB9 5 9 4 8 3 7 2 6 1 Q8 A1015 +5V R39 4K7 R38 4K7 +5V R37 4K7 R36 4K7 + C7 Q1 Q10 A1015 J13 CON1 1 J15 CON1 1 DC2 J25 1 2 3 4 D16 LED R30 LED 1 Q9 C2383 LED 8 C14 1u AREF J26 1 2 3 4 Q11 C2383 CT 2 SảN PHẩM KIT PHIÊN BảN RúT GọN III. KếT LUậN CT 2 AVRvi xử phù hợp với chơng trình học, khả năng của sinh viên về kiến thức và tài chính. Sau khi đã đợc học vi xử cơ bản với họ MCS51 bằng Assembly, sinh viên cần đợc tiếp xúc và làm việc với vi xử mới bằng ngôn ngữ lập trình cấp cao nh C. Với một KIT phát triển nhỏ này, ngời học sẽ giảm bớt thời gian và kinh phí cho việc lắp ráp phần cứng cho mỗi dụ thực hành trong bài toán lập trình. Thêm vào đó ngời học sẽ đợc phát huy khả năng sáng tạo của mình thông qua các phơng pháp kết hợp khác nhau các cụm thiết bị trên KIT vào các bài toán cụ thể. Để giảm kinh phí nhng vẫn mở rộng khả năng của KIT, tác giả đa ra một kết cấu rút gọn kèm với một bảng cắm đa năng để ngời học tự phát triển bài toán của mình, phục vụ nghiên cứu khoa học, sản phẩm cho bảo vệ tốt nghiệp Hy vọng phơng pháp học tập này sẽ đợc áp dụng trong nhiều môn học khác. Tài liệu tham khảo [1]. ThS. Ngô Thanh Bình (2003). Lập trình hợp ngữ. Trờng ĐHGTVT [2]. Michael Pont (2003). Programming Embedded Systems I, II. University Leicester [3]. Datasheet 2545F-AVR-06/05. Atmega 48/88/168. Atmel Corp. [4]. www.atmel.com , www.avr.want24h.comĂ . chơng trình điều khiển. Trong chơng trình học sinh vi n đã đợc học lý thuyết và thí nghiệm với vi xử lý họ MCS51. Thực tế họ MCS51 trớc đây là một họ vi xử lý khá mạnh, đã có trên 250 thành vi n. là vi xử lý phù hợp với chơng trình học, khả năng của sinh vi n về kiến thức và tài chính. Sau khi đã đợc học vi xử lý cơ bản với họ MCS51 bằng Assembly, sinh vi n cần đợc tiếp xúc và làm vi c. RTC DS1307 ISP terminals, Jack kết nối đa vi xử lý Sinh vi n sẽ đợc nghiên cứu về cấu trúc vi xử lý, các phơng pháp lập trình cho vi xử lý, lập trình nhúng, hớng dẫn điều khiển các cụm thiết

Ngày đăng: 29/06/2014, 19:42

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan