Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 105 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
105
Dung lượng
3 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHĨA LUẬN TỐT NGHIỆP THIẾTKẾVÀCHẾTẠOBẢNGTHÔNGTINỨNGDỤNGVIXỬLÝ Họ tên sinh viên: BÙI CHÍ HẢI VÕ VĂN THÌN Ngành: CƠ ĐIỆN TỬ Niên khóa: 2007-2011 Tháng 6/2011 THIẾTKẾVÀCHẾTẠOBẢNGTHÔNGTINỨNGDỤNGVIXỬLÝ Tác giả BÙI CHÍ HẢI VÕ VĂN THÌN Khóa luận đệ trình để đáp ứng yêu cầu cấp Kỹ sư ngành Cơ điện tử Giáo viên hướng dẫn: Tiến sĩ: NGUYỄN VĂN HÙNG Thạc sĩ: NGUYỄN TẤN PHÚC Tháng năm 2011 i CẢM TẠ Sau trình thực đề tài, với nỗ lực thân chúng em hoàn thành đề tài thời gian quy định Tuy nhiên thành cơng đề tài có hỗ trợ giúp đỡ không nhỏ quý thầy cô, gia đình, bạn bè Với tất kính trọng lòng biết ơn sâu sắc, chúng em chân thành cảm ơn thầy Nguyễn Văn Hùng, thầy Nguyễn Tấn Phúc, anh Võ Văn Tám tận tình hướng dẫn suốt q trình làm đề tài Thơng qua dạy quý thầy anh Tám, chúng em tiếp thu kiến thức định hướng cần thiết từ có kế hoạch việc làm cụ thể để hoàn thành đề tài với yêu cầu đặt Em chân thành cảm ơn tất thầy, cô môn Cơ điện tử tạo điều kiện cho chúng em hoàn thành đề tài Cảm ơn anh, chị làm việc Công ty TNHH Điện Tử Viễn Thơng ENCOM tận tình quan tâm, giúp đỡ góp ý cho chúng em suốt thời gian làm đề tài công ty Cuối chúng em gửi lời biết ơn sâu sắc đến gia đình ln quan tâm, khuyến khích tạo điều kiện kinh phí để đề tài sớm hồn thành ii TĨM TẮT Đề tài ”Thiết kếchếtạobảngthôngtinứngdụngvixử lý” tiến hành thực hoàn tất từ 01/04/2011 đến 15/06/2011 Công ty TNHH Điện Tử Viễn Thơng ENCOM Nhiệm vụ đề tài: Tìm hiểu vi điều khiển sử dụng làm bảng điện tử chuyên nghiệp thị trường Việt Nam Ứngdụngvi điều khiển vào thiếtkếchếtạobảngthôngtin điện tử chạy chữ hiển thị thời gian, nhiệt độ Vi điều khiển sử dụng đề tài: Atmega32 hãng Atmel (Hoa Kỳ), sử dụng giao tiếp máy tính theo chuẩn RS485 Nguyên lý hoạt động mạch: Muốn hiển thị thông báo ngắn, ta nhập vào giao diện máy tính Dữ liệu truyền từ cổng COM máy tính, sau qua mạch giao tiếp tín hiệu chuyển sang chuẩn tương thích với vi điều khiển Vi điều khiển nhận liệu thông qua port nối tiếp, chương trình bên vi điều khiển cho phép liệu lưu vùng Ram đa dụngTín hiệu xửlý giải mã sang led ma trận để xuất mạch hiển thị Trên bảng hiển thị gồm ma trận led 16 x 48 hiển thị tinthông báo, tinthông báo dịch chuyển từ phải qua trái cho người xem đọc hết nội dungtinthơng báo Ngồi ra, bảngthơngtin hiển thị thời gian thực, hiển thị nhiệt độ led đoạn Các kết thu được: Khối điều khiển giao tiếp Khối hiển thị Chương trình điều khiển iii MỤC LỤC Trang Trang tựa i Cảm tạ ii Tóm tắt iii Mục lục iv Danh sách hình vii Danh sách bảng ix CHƯƠNG MỞ ĐẦU 1.1 Mục đích mục tiêu nghiên cứu 1.2 Phạm vi nghiên cứu CHƯƠNG TỔNG QUAN 2.1 Giới thiệu chung bảngthôngtin điện tử 2.1.1 Một số kiểu bảngthôngtin thị trường 2.1.2 Một số phương pháp thiếtkếbảngthôngtin điện tử 2.2 Giao tiếp máy tính 2.2.1 Giao tiếp máy tính với thiết bị ngoại vi 2.2.2 Giao diện máy tính 2.3 Giao tiếp máy tính với vi điều khiển 14 2.3.1 Đại cương trao đổi liệu nối tiếp 14 2.3.2 Truyền nhận liệu qua cổng nối tiếp 15 2.3.3 Điều khiển cổng 16 2.4 Giới thiệu linh kiện sử dụng đề tài 19 2.4.1 Giới thiệu IC MAX232 19 2.4.2 Giới thiệu IC 74HC595 20 2.4.3 Giới thiệu IC 74HC245 22 2.4.4 Giới thiệu IC 74HC138 23 2.4.5 Giới thiệu IC 4094 25 2.4.6 Giới thiệu IC DS1307 26 iv 2.4.7 Giới thiệu IC LM35 27 2.5 Khảo sát vi điều khiển AVR 28 2.5.1 Giới thiệu chung 28 2.5.2 Giới thiệu vi điều khiển Atmega 32 29 CHƯƠNG NỘI DUNGVÀ PHƯƠNG PHÁP NGHIÊN CỨU 32 3.1 Nội dung nghiên cứu 32 3.2 Phương pháp điều khiển led ma trận 32 CHƯƠNG KẾT QUẢ VÀ THẢO LUẬN 34 4.1 Mô tả bảngthôngtin dự định thiếtkế 34 4.2 Thiếtkế phần cứng 35 4.2.1 Sơ đồ khối tổng quát 35 4.2.2 Chức khối 35 4.2.3 Giải thuật điều khiển 39 4.2.4 Tính tốn thiếtkế 44 4.2.5 Thiếtkế khung bảngthôngtin điện tử 45 4.3 Chếtạobảngthôngtin điện tử 46 4.3.1 Sơ đồ mạch 46 4.3.2 Thành phần chếtạo board mạch 49 4.4 Kết kiểm nghiệm 52 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 55 5.1 Kết luận 55 5.2 Kiến nghị 55 TÀI LIỆU THAM KHẢO 56 PHỤ LỤC 57 Phụ lục Bảng mô tả chức chân cổng COM (9 25 chân) 57 Phụ lục Sơ đồ cấu tạo bên MAX232 58 Phụ lục Chức chân Atmega32 59 Phụ lục Khảo sát vi điều khiển ARM7 63 Phụ lục Code chương trình led ma trận 68 Phụ lục Code chương trình thời gian thực 79 Phụ lục Chương trình lập trình C cho vi điều khiển CODE BLOCKS 87 v Phụ lục Sơ đồ mạch in 90 Phụ lục Hướng dẫn sử dụng chương trình EnC_Msg 91 Phụ lục 10 Tìm hiểu chuẩn giao tiếp RS485 92 vi DANH SÁCH CÁC HÌNH Hình 2.1 Bảng báo tỷ giá lãi suất ngân hàng Hình 2.2 Bảng quang báo hiển thị chữ Hình 2.3 Bảngthơngtin chuyến bay Hình 2.4 Chuẩn USB Hình 2.5 Sắp xếp chân cổng nối tiếp máy tính PC Hình 2.6 Sơ đồ chân cổng LPT 11 Hình 2.7 Thanh ghi RTC sơ đồ địa RAM 27 Hình 2.8 Sơ đồ chân cảm biến LM35 27 Hình 2.9 Sơ đồ chân Atmega32 30 Hình 4.1 Mơ hình thiếtkếbảngthơngtin 34 Hình 4.2 Sơ đồ khối tổng quát 35 Hình 4.3 Nguồn DC V – 30 A 35 Hình 4.4 Sơ đồ mạch chuyển đổi giao tiếp 36 Hình 4.5 Sơ đồ khối điều khiển 36 Hình 4.6 Led ma trận anode chung 37 Hình 4.7 Sơ đồ hiển thị ma trận led 38 Hình 4.8 Sơ đồ giải thuật chương trình hiển thị led ma trận 39 Hình 4.9 Sơ đồ giải thuật chương trình tìm mã led 40 Hình 4.10 Sơ đồ chương trình quét led 41 Hình 4.11 Sơ đồ giải thuật chương trình chuyển dịch kí tự 42 Hình 4.12 Sơ đồ giải thuật chương trình hiển thị thời gian 43 Hình 4.13 Hình chiếu bảngthơngtin 45 Hình 4.14 Hình chiếu đứngbảngthơngtin 45 vii Hình 4.15 Sơ đồ nguyên lý mạch điều khiển Atmega32 46 Hình 4.16 Sơ đồ nguyên lý mạch khuếch đại 47 Hình 4.17 Sơ đồ nguyên lý mạch led ma trận 48 Hình 4.18 Sơ đồ nguyên lý mạch led đoạn 49 Hình 4.19 Board mạch điều khiển Atmega32 50 Hình 4.20 Board mạch khuếch đại 50 Hình 4.21 Board mạch led ma trận 51 Hình 4.22 Board mạch led đoạn 51 Hình 4.23 Mơ hình bảngthơngtin 52 Hình 4.24 Giao diện điều khiển EnC_Msg 52 Hình 4.25 Mơ hình bảngthơngtin giao tiếp máy tính 53 Hình 4.26 Kết hiển thị giao diện 53 Hình 4.27 Kết hiển thị bảngthôngtin điện tử 54 viii DANH SÁCH CÁC BẢNGBảng 2.1 Các ghi UART 16 Bảng 2.2 Sơ đồ chức Max232 19 Bảng 2.3 Sơ đồ chức chân IC 74HC595 20 Bảng 2.4 Bảng chân trị IC 74HC595 21 Bảng 2.5 Sơ đồ chức chân IC 74HC245 22 Bảng 2.6 Bảng chân trị điều khiển truyền liệu IC 74HC245 23 Bảng 2.7 Sơ đồ chức chân IC 74HC138 23 Bảng 2.8 Bảng chân trị IC 74HC138 24 Bảng 2.9 Sơ đồ chức chân IC 4094 25 Bảng 2.10 Bảng chân trị 4094 25 Bảng 2.11 Sơ đồ chức chân IC DS1307 26 ix uint8_t hour, day, wday, month; hour = t -> hour; day = t -> mday; wday = t-> wday; month = t-> month; if ( isDST(t) ) { t-> dst = 1; hour++; if( hour == 24 ){ hour = 0; wday++; if( wday == ) { wday = 0; } if( day == DaysInMonth[month-1] ) { day = 0; month++; } day++; } t->month = month; t -> hour = hour; t -> mday = day; t -> wday = wday; return true; 81 } else { t->dst = 0; return false; } } /***************************************************************/ static void counter_to_struct( uint32_t sec, RTC_t *t ) { uint16_t day; uint8_t year; uint16_t dayofyear; uint8_t leap400; uint8_t month; t -> sec = sec % 60; sec /= 60; t -> = sec % 60; sec /= 60; t -> hour = sec % 24; day = (uint16_t)(sec / 24); t -> wday = (day + FIRSTDAY) % 7; year = FIRSTYEAR % 100; leap400 = - ((FIRSTYEAR - 1) / 100 & 3); for(; ;) { dayofyear = 365; if( (year & 3) == ) { 82 dayofyear = 366; if( year == || year == 100 || year == 200 ) { if( leap400 ) { dayofyear = 365; } } } if( day < dayofyear ) { break; } day -= dayofyear; year++; } T -> year = year + FIRSTYEAR / 100 * 100; if( dayofyear & && day > 58 ) { day++; } for ( month = 1; day >= DaysInMonth[month-1]; month++ ) { day -= DaysInMonth[month-1]; } t -> month = month; t -> mday = day + 1; } /**********************************************************/ static uint32_t struct_to_counter( const RTC_t *t ) 83 { uint8_t i; uint32_t result = 0; uint16_t idx, year; year = t->year; /* Calculate days of years before */ result = (uint32_t)year * 365; if ( t -> year >= 1) { result += (year + 3) / 4; result -= (year - 1) / 100; result += (year - 1) / 400; } result -= 730485UL; idx = t->month - 1; for (i = 0; i < idx; i++) { result += DaysInMonth[i]; } if (year%400 == || (year%4 == && year%100 !=0)) { ; } else { if (t->month > 1) { result ; } } result += t-> mday; 84 result = (result-1) * 86400L + (uint32_t)t->hour * 3600 + (uint32_t)t->min * 60 + t->sec; return result; } /*******************************************************/ bool rtc_gettime (RTC_t *rtc) { uint32_t t; while ( ( t = RTC_GetCounter() ) != RTC_GetCounter() ) { ; } counter_to_struct( t, rtc ); adjustDST( rtc ); return true; } /*******************************************************/ static void my_RTC_SetCounter(uint32_t cnt) { RTC_WaitForLastTask(); RTC_SetCounter(cnt); RTC_WaitForLastTask(); } /*******************************************************/ bool rtc_settime (const RTC_t *rtc) { uint32_t cnt; 85 RTC_t ts; cnt = struct_to_counter( rtc ); counter_to_struct( cnt, &ts ); if ( isDST( &ts ) ) { cnt -= 60*60; } PWR_BackupAccessCmd(ENABLE); my_RTC_SetCounter( cnt ); PWR_BackupAccessCmd(DISABLE); return true; } /******************************************************/ int rtc_init(void) { volatile uint16_t i ; RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR| RCC_APB1Periph_BKP, ENABLE); for(i=0;i 200 mV ta coi logic truyền Vab < -200 mV logic truyền (Vab điện hai dây) Truyền RS485 công nghệ truyền sử dụng thường xuyên PROFIBUS Các lĩnh vực ứngdụng bao gồm tất lĩnh vực mà cần lắp đặt khơng đắt tiền, đơn giản truyền tốc độ cao Người ta dùng cáp đồng xoắn kép có bọc (STP) Cơng nghệ truyền RS485 dễ xửlý Việc lắp đặt cáp xoắn kép (TP) không cần kiến thức chuyên gia Kiến trúc Bus cho phép thêm lấy trạm mà không làm ảnh hưởng đến trạm khác Những mở rộng sau không làm ảnh hưởng đến trạm hoạt động Đặc điểm quan trọng RS485 cung cấp đến 32 Drivers Receivers đường truyền Điều cho phép tạo thành mạng cục Để có khả vậy, ngõ Driver RS485 phải ngõ trạng thái Và Slave trạng thái tổng trở cao khơng chọn để giao tiếp với Master Chỉ có trạm chọn làm Master, trạm lại Slave.Master quyền truyền lúc nào, định Slave giao tiếp với nó, Slave truyền sau nhận lệnh Master Mọi Slave có địa riêng đường truyền khơng phép truyền khơng có u cầu từ Master Đặc điểm : RS485 chuẩn giao tiếp nối tiếp bất đồng cân truyền thôngtin dây xoắn đôi bán song công (Half Duplex), nghĩa thời điểm dây truyền làm nhiệm vụ truyền nhận 93 RS485 cho phép 32 truyền bus RS485 có ngõ trạng thái RS485 cho phép tốc độ truyền tối đa 10Mbps Cách lắp đặt RS485: Tất thiết bị nối vào cấu trúc Bus tối đa 32 trạm (Master hay Slave) nối vào Segment (đoạn) Bus kết thúc Bus tích cực (Active Bus Terminator) đầu cuối Segment Để đảm bảo hoạt động khơng có lỗi đầu kết thúc Bus ln ln có điện Giao tiếp vixửlý Ta dùng cổng nối tiếp (cổng COM ) để thực giao tiếp PC với vixử lí Các nhà sản xuất máy tính chuẩn hố giao tiếp cho cổng nối tiếp (cổng COM) chuẩn RS232 Chuẩn RS232 sử dụng rộng rãi để ghép nối thiết bị ngoại vi với máy tính Tuy nhiên, chuẩn RS232 cho phép ghép nối - Do đó, khơng thể áp dụng cho mạng cần thiếtkế Việc chọn chuẩn truyền thông khác cần thiết sử dụng chuẩn RS485 chọn lựa hợp lí Mạng sử dụng chuẩn RS485 đa dạng, ta ghép nối PC với nhau, PC với vixử lí, thiết bị truyền thông nối tiếp bất đồng Khi so sánh với Ethernet giao diện truyền thông theo chuẩn khác giao diện RS485 đơn giản giá thành thấp nhiều Đối với mạng Multi - network thực gồm nhiều mạch phát nhận nối vào đường dây bus chung, node phát nhận liệu RS485 đáp ứng cho yêu cầu Chuẩn RS485 cho phép 32 mạch truyền nhận nối vào đường dây bus (với lặp Repeater tự động truyền nhận trở kháng cao, giới hạn mở rộng lên đến 256 node mạng) Bên cạnh RS485 chịu xung đột liệu điều kiện lỗi đường truyền 94 Một số ưu điểm RS485: Giá thành thấp: Các điều khiển driver nhận receiver không đắt yêu cầu cung cấp nguồn đơn +5 V để tạo mức điện áp vi sai tối thiểu 1,5 V ngõ vi sai Khả nối mạng: RS485 giao diện đa điểm, thay giới hạn hai đơn vị, RS485 giao diện cung cấp cho việc kết nối có nhiều truyền nhận Với nhận có trở kháng cao kết hợp với Repeater, RS485 cho kết nối lên đến 256 node Khả kết nối: RS485 truyền xa 1200 m, tốc độ lên đến 10 Mbps Nhưng thông số không xảy lúc Khi tốc độ truyền tăng tốc độ Baud giảm Ví dụ: Khi tốc độ 90 Kbps khoảng cách 1200 m Khi tốc độ 1Mbps khoảng cách 120 m Tốc độ 10Mbps khoảng cách 15 m RS485 truyền khoảng cách lớn chúng sử dụng đường truyền cân Mỗi tín hiệu truyền cặp dây, với mức điện áp dây điện áp bù (trái dâú ) với điện áp dây Receiver đáp ứng phần hiệu mức điện áp 95 ... đa đến 480 Mbps Cáp USB gồm hai sợi nguồn (+5V dây chung GND) cặp gồm hai sợi dây xoắn để mang liệu Trên sợi nguồn, máy tính cấp nguồn lên tới 500mA điện áp 5V chi u (DC) Những thiết bị tiêu... thời theo hướng, thời điểm truyền theo hướng (một đường dây chi u ) Song công (full duplex): Số liệu truyền đồng thời theo hai hướng hai đường dây riêng rẽ 2.3.2 Truyền nhận liệu qua cổng nối... sử dụng chip UART 8250 (hoặc 16450) Các chip UART biến đổi liệu song song thành nối tiếp giúp máy tính trao đổi liệu nối tiếp (đồng bất đồng bộ) với thiết bị ghép nối qua cổng nối tiếp Chip UART