Truyền thông tin bằng hệ thống LED

29 525 0
Truyền thông tin bằng hệ thống LED

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục lục Báo cáo Đồ án thiết kế II Đề tài: Truyền thông tin hệ thống LED Giáo viên hướng dẫn: TS.Trịnh Quang Đức Sinh viên thực hiện: Nguyễn Như Vinh – 20122808 – Lớp DDTTT06 – K57 CHƯƠNG I: MÔ TẢ ĐỀ TÀI Giới thiệu Có thể nhiều người biết đến phương thức truyền tín hiệu ánh sáng hồng ngoại (ví dụ remote control, cổng IR laptop bạn ) hay ánh sáng laser (ví dụ hệ thống thông tin dùng cáp quang), quen với khái niệm dùng sóng vô tuyến để truyền tin, dùng ánh sáng thường để truyền tin chưa có nhiều người biết Không gây vấn đề ảnh hưởng đến sức khỏe người làm việc với công suất cao, truyền tin ánh sáng thường (visible light communciation) ứng cử viên sáng giá thay cho hệ thống thông tin không dây Ý tưởng photophone hay cỗ máy truyền tin ánh sáng tên tiếng Alexander Graham Bell đưa vào tháng năm 1880 Tuy nhiên độ nhiễu lớn,cộng với phụ thuộc chặt chẽ vào thời tiết mà cỗ máy chưa thực chiếm quan tâm mức cộng đồng khoa học lúc Gần đây, với việc phát minh bóng đèn sử dụng LED đưa chúng vào sống giải lúc vấn đề : Tiết kiệm lượng chiếu sáng tạo loại bóng đèn có khả chớp tắt tần số cao dùng phương thức truyền tin Các ứng dụng nhà với kết hợp bóng đèn bàn dùng LED, PLC (truyền tin đường điện) Không gian hỗ trợ không dây cách hoàn hảo tương lai gần Lúc việc đặt laptop đèn bàn truy cập vào internet Một số ứng dụng quan trọng khác hệ thống giao thông thông minh ITS (Intelligent Transport System) nơi hệ thống thực chức hỗ trợ việc thu vé cầu phà trụ đèn giao thông hay trợ giúp thông tin cho người bục thông tin đặt vỉa hè Trong môi trường mà việc truyền sóng vô tuyến hạn chế bệnh viện, hay ngành hàng không tỏ có nhiều ưu Mô tả chức Đề tài giải phần hệ thống truyền thông tin ánh sáng, tập trung vào xử lý truyền liệu từ máy tính xuống hệ thống đèn LED Phần cứng đề tài bao gồm: • Hai module đèn LED, module có 64 đèn LED cách hàng cột • Một module xử lý trung tâm • Một module giao tiếp với máy tính qua cổng USB Máy tính truyền chuỗi kí tự mã ASCII theo cấu trúc chuỗi: ‘{hàng}{cột};{giá trị byte};{module}’ Ví dụ: 20;210;1 Trong đó:  Hàng cột tọa độ LED module đánh số từ đến  Giá trị byte: byte cần truyền vào LED từ đến 255  Module: số module module module lại Tương ứng với chuỗi truyền vào, đèn LED với tọa độ module xác định nhấp nháy lần theo byte truyền vào, bit đèn LED sáng, bit đèn LED tắt Với đáp ứng thời gian bit 0.256 ms Như để truyền hết byte cần 2.048 ms Ví dụ: Ta truyền vào chuỗi 20;210;1 đèn LED module hàng cột sáng tắt lần lần 0.256ms theo byte 210(dec) = 11010010(bin) Khi truyền xong byte giá trị byte LED lưu lại tiếp tục phát người dùng truyền byte khác vào LED Tổng cộng ta có 128 LED truyền theo byte riêng rẽ đồng thời, 2.048 ms hệ thống truyền 128 byte CHƯƠNG II: SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG PHẦN CỨNG Module giao tiếp máy tính qua cổng USB Hình 1:Module PL2303 Sử dụng module PL2303 có chức nhận liệu từ máy tính chuyển đổi giao tiếp cổng COM chuẩn UART để giao tiếp với Khối xử lý trung tâm  Là thiết bị chuyển đổi lý tưởng sử dụng cho máy tính cổng COM Chỉ cần cắm qua cổng USB, sử dụng giống cổng COM bình thường  Sử dụng IC PL-2303  Hoạt động ổn định  Nhỏ gọn động Khối xử lý trung tâm Hình 2: Khối xử lý trung tâm Đây phần cứng khối xử lý trung tâm để tìm hiểu kĩ khối ta xem Sheet mạch nguyên lý (Hình 3) Hình 3: Sheet khối xử lý trung tâm Khối bao gồm:  Vi xử lý ATMega8: Sử dụng tần số thạch anh 8Mhz o Tốc độ tối đa: 16MHz o Dung lượng nhớ chương trình: KB o Bộ nhớ EEPROM: 512 Byte o Dung lượng nhớ RAM: KB o Bộ nhớ chương trình có khả ghi 10.000 lần, nhớ EEPROM ghi 100.000 lần Hỗ trợ bootloader, có khả tự ghi vào nhớ chương trình, cập nhật chương trình cho chip mà không cần mạch nạp o Timer bit: o Timer 16 bit: o ADC: kênh, 10 bit o Giao tiếp: TWI (I2C), UART, SPI o Điện áp hoạt động: 4.5V – 5.5V  JP1: Conecter giao tiếp với khối Module đèn LED  JP2: Conecter giao tiếp với khối Module giao tiếp USB  JP3: Conecter nạp code chương trình cho vi xử lý, sử dụng mạch nạp USB ISP nạp hầu hết chip hãng ATMel (Hình 4) Hình 4: Mạch nạp USB ISP  Nguồn: sử dụng nguồn 5V chuẩn chân DCIN dùng nguồn trực tiếp từ Module giao tiếp USB máy tính, có đèn LED báo nguồn Hai Module đèn LED Hình 5: Module đèn LED Hai module thiết kế giống Để tìm hiểu kĩ xem hình sheet nguyên lý (Hình 6) Hình 6: Module đèn LED Khối bao gồm:  IC 74HC595: Là IC ghi dịch từ nối tiếp sang song song, giao tiếp trình bay     phần sau 64 LED: có chức nói trên, trở hạn dòng 330 JP1: Conecter giao tiếp với Khối xử lý trung tâm JP2: Conecter giao tiếp với Khối đèn LED Nguồn: lấy từ JP1 CHƯƠNG III: MÃ NGUỒN Phần tìm hiểu chuẩn giao tiếp ghi có sử dụng, giải thích thuật toán mã nguồn Khối xử lý trung tâm Chuẩn giao tiếp UART Giả sử liệu cần trao đổi mã có chiều dài bits, ta nghĩ đến cách kết nối đơn giản kết nối PORT (8 bit) vi điều khiển với nhau, line PORT chịu trách nhiệm truyền/nhận bit liệu Đây gọi cách giao tiếp song song, cách cách đơn giản liệu xuất nhận trực tiếp không thông qua giải thuật biến đổi tốc độ truyền nhanh Tuy nhiên, nhược điểm cách truyền số đường truyền nhiều, liệu có giá trị lớn số đường truyền nhiều thêm Hệ thống truyền thông song song thường cồng kềnh hiệu Truyền thông nối tiếp giải vần đề này, tuyền thông nối tiếp liệu truyền bit (hoặc ít) đường truyền Vì lý này, cho dù liệu bạn có lớn đến đâu dùng đường truyền Trong truyền thông nối tiếp không đồng bộ, bạn phải đưa liệu vào “Khung Truyền” để tránh trường hợp bên thu không nhận sai liệu từ bên phát Khung truyền phổ biến cho UART là: bit start bit data bit stop Tốc độ Baud (Baud Rate) định nghĩa số bit truyền giây Ví Dụ : Baud Rate = 9600, 1s truyền 9600 bit thời gian truyền bit = 1/9600s Trong truyền thông không đồng bộ, Baud Rate bên phát bên thu phải  Trong vi điều khiển Atmega8 có module truyền thông nối tiếp UART, gồm có chân liên quan là: TxD (PD.1): chân truyền liệu RxD (PD.0): chân nhận liệu Các ghi liên quan:  UDR: hay ghi liệu, ghi bit chứa giá trị nhận phát USART Thực chất ghi coi ghi TXB (Transmit data Buffer) RXB (Reveive data Buffer) có chung địa Đọc UDR thu 10  Chân 11: Chân vào xung clock Khi có xung clock tích cực sườn dương(từ lên 1) 1bit dịch vào ic  Chân 12 : xung clock chốt liệu Khi có xung clock tích cực sườn dương cho phép xuất liệu chân output lưu ý xuất liệu lúc bạn muốn ,ví dụ đầu vào chân 14 dc bit có xung clock chân 12 liệu chân Q0và Q1 (chú ý chiều dịch liệu từ Q0=>Q7)  Chân 10: chân mức thấp(mức 0) liệu bị xóa chip) Ngắt Timer0 ATMega8 Có ghi thiết kế riêng cho hoạt động điều khiển T/C0, là:  TCNT0 (Timer/Counter Register): ghi bit chứa giá trị vận hành T/C0 Thanh ghi cho phép đọc ghi giá trị cách trực tiếp  TCCR0 (Timer/Counter Control Register): ghi điều khiển hoạt động T/C0 Tuy ghi bit thực chất có bit có tác dụng CS00, CS01 CS02 Các bit CS00, CS01 CS02 gọi bit chọn nguồn xung nhịp cho T/C0 (Clock Select)  TIMSK (Timer/Counter Interrupt Mask Register): ghi mặt nạ cho ngắt tất T/C Atmega8, có bit TOIE0 tức bit số (bit đầu tiên) ghi liên quan đến T/C0, bit có tên bit cho phép ngắt có tràn T/C0 Tràn (Overflow) tượng xảy giá trị ghi TCNT0 đạt đến MAX (255) lại đếm thêm lần Khi bit TOIE0=1, bit I ghi trạng thái set (xem lại điều khiển ngắt), “tràn” xảy dẫn đến ngắt tràn 15 Mã nguồn #include #include #include /* Định nghĩa chân giao tiếp với IC 74HC595, SHCP tích cực ghi DS vào đệm, DS ghi vào ghi đệm, STCP tích cực giải phóng đệm output */ #define HC595_SHCP PORTC.0 #define HC595_DS PORTC.1 #define HC595_STCP PORTC.2 unsigned char i = 0; // Biến đếm bit từ đến unsigned char save[2][8][8]; // Mảng chiều lưu giá trị byte LED unsigned char buf[8]; //mảng chiều đệm đọc UART // Hàm lấy giá trị byte lưu lại LED void Led_put(unsigned char hang,unsigned char cot,unsigned char data,unsigned char khoi) { save[khoi][hang][cot] = data; } // Hàm lấy bit byte lưu unsigned char setup(unsigned char data) { unsigned char allow; allow = (data>>i)&1; 16 return allow; } //Hàm xuất liệu vào đệm 74HC595 void HC595_move(unsigned char x) { unsigned char b,i; for(i=0;i xác định khối LED 17 { for(i = 0;i < 8; i++) //vòng lấy cột { for(j = 0; j < 8; j++) //vòng lấy hàng { allow[k][i][j] = setup(save[k][i][j]); //lấy bit byte lưu } data[k][i] = (allow[k][i][0])|(allow[k][i][1][...]... cấu trúc để truyền vào các led Ví dụ: Muốn LED có tọa độ hàng 2 cột 0 ở module 1 truyền byte có giá trị 10101101(bin) = 173 (dec) Ta nhập 20;173;1 Thu được kết quả (Hình 11) 23 Hình 11: Kết quả chạy demo CHƯƠNG V: KẾT QUẢ ĐỀ TÀI ĐO TRÊN MÁY ĐO SÓNG OSCILLOSCOPE 24 Hình 12: LED 00 module 1,byte = 0xf6 25 Hình 13: LED 10 module 1,byte = 0xf6 26 Hình 12: LED 30 module 0,byte = 0xf6 27 Hình 12: LED 57 module... nhịp Nếu bạn sử dụng chế độ truyền thông không đồng bộ, hãy set bit này bằng 0  UBRRL và UBRRH (USART Baud Rate Register): 2 thanh ghi thấp và cao quy định tốc độ baud Sử dụng UART: Thông thường, để sử dụng module UART trên AVR phải thực hiện 3 việc quan trọng, đó là: cài đặt tốc độ baud (thanh ghi UBRR), định dạng khung truyền (UCSRB, UCSRC) và cuối cùng kích hoạt bộ truyền, bộ nhận, ngắt… Trong... Hercules: Truyền chuỗi xuống PL2303  Tài liệu tham khảo: o Website: hocavr.com 28 o Website: thongtincongnghe.com o Datasheet ATMega8 Em xin chân thành cảm ơn thầy TS.Trịnh Quang Đức đã tận tình hướng dẫn em làm đề tài này Do giới hạn môn học Đồ án thiết kế II, thời gian thực hiện, và giới hạn hiểu biết của em nên đề tài chỉ dừng lại ở một phần truyền dữ liệu từ máy tính xuống hệ thống đèn LED mà chưa... bit Select), bit Stop trong khung truyền bằng AVR USART có thể là 1 hoặc 2 bit, nếu USBS=0 thì Stop bit chỉ là 1 bit trong khi USBS=1 sẽ có 2 Stop bit được dùng o Hai bit UCSZ1 và UCSZ2 (Character Size) kết hợp với bit UCSZ2 trong thanh ghi UCSRB tạo thành 3 bit quy định độ dài dữ liệu truyền 12 o UCPOL (Clock Pority) là bit chỉ cực của xung kích trong chế độ truyền thông đồng bộ nếu UCPOL=0, dữ liệu... trình nhận kết thúc (RXC), truyền kết thúc (TXC), báo thanh ghi dữ liệu trống (UDRE), khung truyền có lỗi (FE), dữ liệu tràn (DOR), kiểm tra parity có lỗi (PE)…Bạn chú ý một số bit quan trọng của thanh ghi này: o UDRE (USART Data Register Empty) khi bit bày bằng 1 nghĩa là thanh ghi dữ liệu UDR đang trống và sẵn sàng cho một nhiệm vụ truyền hay nhận tiếp theo Vì thế nếu bạn muốn truyền dữ liệu đầu tiên... Interrupt Enable) là bit cho phép ngắt khi quá trình nhận kết thúc Việc nhận dữ liệu truyền bằng phương pháp nối tiếp không đồng bộ thường được thực hiện thông qua ngắt, vì thế bit này thường được set bằng 1 khi USART được dung nhận dữ liệu o TXCIE (Transmit Complete Interrupt Enable) bit cho phép ngắt khi quá trình truyền kết thúc o UDRIE (USART Data Register Empty Interrupt Enable) là bit cho phép... tên là RXD8 (không phải RXD9) o TXB8 (Transmit Data Bit 8), tương tự như bit RXD8, bit TXB8 cũng đóng vai trò bit thứ 9 truyền thông, nhưng bit này được dung trong lúc truyền dữ liệu  UCSRC (USART Control and Status Register C): thanh ghi này chủ yếu quy định khung truyền và chế độ truyền Tuy nhiên, có một rắc rối nho nhỏ là thanh ghi này lại có cùng địa chỉ với thanh ghi UBRRH (thanh ghi chứa byte... nhiệm vụ truyền hay nhận tiếp theo Vì thế nếu bạn muốn truyền dữ liệu đầu tiên bạn phải kiểm tra xem bit UDRE có bằng 1 hay không, sau khi chắc chắn rằng UDRE=1 hãy viết dữ liệu vào thanh ghi UDR để truyền đi o U2X là bit chỉ định gấp đôi tốc độ truyền, khi bit này được set lên 1, tốc độ truyền so cao gấp 2 lần so với khi bit này mang giá trị 0 o MPCM là bit chọn chế độ hoạt động đa xử lí (multi-processor)... được sử dụng o UMSEL (USART Mode Select) là bit lựa chọn giữa 2 chế độ truyền thông đồng bộ và không đồng bộ Nếu UMSEL=0, chế độ không đồng bộ được chọn, ngược lại nếu UMSEL=1, chế độ đồng bộ được kích hoạt o Hai bit UPM1 và UPM0( Parity Mode) được dùng để quy định kiểm tra pariry Nếu UPM1:0=00, parity không được sử dụng (mode này khá thông dụng), UPM1:0=01 không được sử dụng, UPM1:0=10 thì parity chẵn... PORTC.1 #define HC595_STCP PORTC.2 unsigned char i = 0; // Biến đếm từng bit từ 0 đến 8 unsigned char save[2][8][8]; // Mảng 3 chiều lưu giá trị byte của LED unsigned char buf[8]; //mảng 1 chiều đệm đọc UART // Hàm lấy giá trị byte lưu lại của LED void Led_ put(unsigned char hang,unsigned char cot,unsigned char data,unsigned char khoi) { save[khoi][hang][cot] = data; } // Hàm lấy từng bit của byte đã lưu

Ngày đăng: 24/06/2016, 12:22

Mục lục

    Báo cáo Đồ án thiết kế II

    CHƯƠNG I: MÔ TẢ ĐỀ TÀI

    2. Mô tả chức năng

    CHƯƠNG II: SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG PHẦN CỨNG

    1. Module giao tiếp máy tính qua cổng USB

    2. Khối xử lý trung tâm

    3. Hai Module đèn LED

    CHƯƠNG III: MÃ NGUỒN

    1. Chuẩn giao tiếp UART

    CHƯƠNG IV: HƯỚNG DẪN SỬ DỤNG

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

Tài liệu liên quan