Chương 1: Tổng Quan. Chương 2: Cơ Sở Lý Thuyết. Chương 3: Thiết Kế và Tính Toán. Chương 4: Thi Công Hệ Thống.
Chương 5: Kết Quả, Nhận Xét, Đánh Giá. Chương 6: Kết Luận. CNKT ĐIỆN TỬ - TRUYỀN THÔNG 2 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN Chương 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN 2. Vi điều khiển 2.
Giới thiệu giao thức UART Giới thiệu về giao thức truyền UART: Thuật ngữ UART trong tiếng anh là viết tắt của cụm tự Universal Synchronous & Asynchronous serial Reveiver and Transmitter, nghĩa là bộ truyền nhận nối tiếp đồng bộ và không đồng bộ. UART thường được dùng trong máy tính công nghiệp, truyền thông, vi điều khiển hay một số các thiết bị truyền tin khác. Mục đích của UART sinh ra là để truyền tín hiệu qua lại lẫn nhau hay truyền từ vi điều khiển tới vi điều khiển hoặc truyền từ ngoại vi tới vi điều khiển. Trong đó hai thiết bị giao tiếp với nhau thông qua giao thức UART bằng hai đường dẫn RX (read) và TX (transmit).
Vì phương thức giao tiếp không đồng bộ nên hai thiết bị giao tiếp với nhau phải được thống nhất về khung truyền, tốc độ truyền. TX RX Slave Master RX GND TX Hình 2. 1 Cách kết nối hai thiết bị sử dụng giao thức UART. Sơ đồ khối UART: - Bao gồm hai thành phần là máy phát và máy thu được hiển thị bên dưới.
Phần máy phát bao gồm ba khối là thanh ghi giữ truyền, thanh ghi dịch chuyển và logic điều khiển. Tương tự, phần máy thu bao gồm một thanh ghi giữ, thanh ghi thay đổi và logic điều khiển. Hai phần này thường được cung cấp bởi một bộ tạo tốc độ baud. Trình tạo này được sử dụng để tạo tốc độ khi phần máy phát và phần máy thu phải truyền hoặc nhận dữ liệu.
- Thanh ghi giữ trong máy phát bao gồm byte dữ liệu được truyền. Các thanh ghi thay đổi trong máy phát và máy thu di chuyển các bit sang phải hoặc trái cho đến khi một byte dữ liệu được truyền hoặc nhận. Một logic điều khiển đọc (hoặc) ghi được sử dụng để biết khi nào nên đọc hoặc viết. - Máy phát tốc độ baud giữa máy phát và máy thu tạo ra tốc độ dao động từ 110 bps đến 230400 bps.
Thông thường, tốc độ truyền của vi điều khiển là 9600 đến 115200. CNKT ĐIỆN TỬ - TRUYỀN THÔNG 3 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN Hình 2. 2 Sơ đồ khối UART Hình 2. 3 Khung truyền dữ liệu của giao thức UART.
Các khái niệm quan trọng trong chuẩn truyền thông UART: - Baudrate: Số bit truyền được trong 1s, ở truyền nhận không đồng bộ thì ở các bên truyền và nhận phải thống nhất Baudrate. Các thông số tốc độ Baudrate thường hay sử dụng dể giao tiếp với máy tính là 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200. - Frame: Ngoài việc giống nhau của tốc độ baud 2 thiết bị truyền nhận thì khung truyền của bên cũng được cấu hình giống nhau. Khung truyền quy định số bit CNKT ĐIỆN TỬ - TRUYỀN THÔNG 4 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN trong mỗi lần truyền, bit bắt đầu “Start bit”, các bit kết thúc (Stop bit), bit kiểm tra tính chẵn lẻ (Parity), ngoài ra số bit quy định trong một gói dữ liệu cũng được quy định bởi khung truyền.
Có thể thấy, khung truyền đóng một vai trò rất quan trọng trong việc truyền thành công dữ liệu. Idle frame: Đường truyền UART ở mức “1”, để xác nhận hiện tại đường truyền dữ liệu trống, không có frame nào đang được truyền đi. Break frame: Đường truyền UART ở mức “0”, để xác nhận hiện tại trên đường truyền đang truyền dữ liệu, có frame đang được truyền đi. - Start bit: Bit đầu tiên được truyền trong một frame, bit này có chức năng báo cho bên nhận rằng sắp có một gói dữ liệu truyền đến.
Đường truyền UART luôn ở trạng thái cao mức “1” cho đến khi chip muốn truyền dữ liệu đi thì nó gởi bit start bằng cách kéo xuống mức “0”. Như vậy start bit giá trị điện áp 0V và phải bắt buộc có bit start trong khung truyền. 4 Vị trí Start bit - Data: Data hay dữ liệu là thông tin mà chúng ta nhận được trong quá trình truyền và nhận. Data trong STM32 có quy định khung truyền là 8bit hoặc 9bit.
Trong quá trình truyền UART, bit có trọng số thấp nhất (LSB – least significant bit – bên CNKT ĐIỆN TỬ - TRUYỀN THÔNG 5 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN phải) sẽ được truyền trước và cuối cùng là bit có ảnh hưởng cao nhất (MSB – most significant bit – bên trái) - Parity bit: Parity dùng để kiểm tra dữ liệu truyền có đúng hay không. Có 2 loại Parity đó là Parity chẵn (even parity) và parity lẽ (odd parity). Parity chẵn nghĩa là số bit 1 trong trong data truyền cùng với bit Parity luôn là số chẵn, ngược lại nếu Parity lẽ nghĩa là số bit 1 trong data truyền cùng với bit Parity luôn là số lẽ. Bit Parity không phải là bit bắt buộc và vì thế chúng ta có thể loại bỏ bit này ra khỏi khung truyền.
5 Vị trí Parity bit - Stop bits: Stop bits là một bit báo cáo để cho bộ truyền/nhận biết được gói dữ liệu đã được gởi xong. Stop bits là bit bắt buộc phải có trong khung truyền. Stop bits có thể là 1bit, 1.5bit tùy thuộc vào ứng dụng UART của người sử dụng. CNKT ĐIỆN TỬ - TRUYỀN THÔNG 6 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN Hình 2.
6 Vị trí Stop bit 2. Arduino Mega 2560 Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng chứng tỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của người dùng trong cộng đồng nguồn mở (open-source). Dòng mạch Arduino có rất nhiều phiên bản, một trong những phiên bản phổ biến của mạch Arduino chính là Arduino Mega 2560. 7 Arduino Mega 2560 CNKT ĐIỆN TỬ - TRUYỀN THÔNG 7 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN Arduino Mega 2560 là phiên bản nâng cấp của Arduino Mega hay còn gọi là Arduino Mega 1280.
Sự khác biệt lớn nhất với Arduino Mega 1280 chính là chip nhân. Ở Arduino Mega 1280 sử dụng chip ATmega1280 với flash memory 128KB, SRAM 8KB và EEPROM 4 KB. Còn Arduino Mega 2560 là phiên bản hiện đang được sử dụng rộng rãi và ứng dụng nhiều hơn. Với chip ATmega2560 có bộ nhớ flash memory 256 KB, 8KB cho bộ nhớ SRAM, 4 KB cho bộ nhớ EEPROM.
Giúp cho người dùng thêm khả năng viết những chương trình phức tạp và điều khiển các thiết bị lớn hơn như máy in 3D, điều khiển robot. 1 Thông số cơ bản của Mạch Arduino Mega 2560 Vi điều khiển ATmega2560 Điện áp hoạt động 5V Điện áp đầu vào (khuyên dùng) 7-12V Điện áp đầu vào (giới hạn) 6-20V Chân Digital I/O 54 (Với 15 chân PWM output) Chân đầu vào Analog 16 Dòng ra trên chân digital Tối đa 40 mA Dòng ra tối đa (5V) 500 mA Dòng ra trên chân 3.3V 50 mA 256 KB (ATmega2560) với 8 KB dùng bởi bộ Bộ nhớ Flash nạp khởi động SRAM 8 KB (ATmega2560) EEPROM 4 KB (ATmega2560) Xung nhịp 16 MHz CNKT ĐIỆN TỬ - TRUYỀN THÔNG 8 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN Nguồn cho ARDUINO: Arduino Mega có thể được cấp nguồn thông qua kết nối USB hoặc nguồn ngoài. Nguồn nuôi được chọn một cách tự động. Nguồn ngoài (không phải USB) có thế lấy từ bộ chuyển đổi AC sang DC hoặc từ pin.
Bo mạch có thể hoạt động với nguồn ngoài từ 6 – 20V. Tuy nhiên, nếu nguồn cấp nhỏ hơn 7V thì chân 5V có thể cấp không đủ 5V và bo mạch có thể chạy không ổn định. Nếu cấp lớn hơn 12V, bộ biến áp có thể bị nóng và ảnh hưởng tới mạch. Điện áp khuyến nghị là 7 – 12V.
Các chân cấp nguồn VIN: Điện áp vào mạch Arduino khi nó sử dụng nguồn ngoài (khác với nguồn 5V từ kết nối USB hoặc nguồn khác). Ta có thể cấp nguồn qua chân này hoặc cấp thông qua jack cắm nguồn. 5V: Chân cấp điện áp ra 5V từ bộ điều chỉnh điện áp của bo mạch. 3V3: Chân cấp điện áp ra 3,3V từ bộ điều chỉnh điện áp.
GND: Chân nối đất. IOREF: Chân này cấp điện áp tham chiếu cho vi điều khiển hoạt động. Một shield được cấu hình đúng có thể đọc điện áp chân IOREF và chọn nguồn điện phù hợp hoặc cho phép biến đổi điện áp để làm việc vơi 5,5V hoặc 3,3V. Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng: 256KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển.
Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu. 8KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo khi lập trình sẽ lưu ở đây. Khi mất điện, dữ liệu trên SRAM sẽ bị mất. 4KB cho EEPROM (Electrically Erasable Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi mà có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
Các chân vào ra của ARDUINO MEGA 2560: Mỗi chân trong 54 chân digital trên bo Mega có thể sử dụng làm chân input hoặc output. Chúng hoạt động ở 5V. Mỗi chân có thể cấp hoặc nhận tối đa 40mA và CNKT ĐIỆN TỬ - TRUYỀN THÔNG 9 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN có một trở kéo nội (mặc định không nối) từ 20 – 50Kohm. Ngoài ra, một số chân có các chức năng đặc biệt như sau: 8 chân Serial 0 (RX) và 1 (TX), Serial 19 (RX) và 18 (TX), Serial 17 (RX) và 16 (TX), Serial 15 (RX) và 14 (TX) : dùng để gửi (Transmit – TX) và nhận (Receive – RX) dữ liệu TTL Serial.
Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này. Kết nối bluetooth có thể nói là kết nối Serial không dây. Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác Chân giao tiếp SPI: 53 (SS), 51 (MOSI), 50 (MISO), 52 (SCK). Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.
LED 13: trên ARDUINO MEGA 2560 có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu.