Professional Documents
Culture Documents
Lập Trình Truyền Thông
Lập Trình Truyền Thông
Lập Trình Truyền Thông
TỔNG QUAN
-Mục đích của việc truyền thông là: giao tiếp, phục vụ cho các thiết bị gửi và nhận thông tin với nhau.
- Vi điều khiển PIC 16F877A hỗ trợ nhiều chuẩn truyền thông khác nhau như chuẩn nối tiếp USART giao tiếp
với máy tính theo chuẩn RS232, PSP (chuẩn song song), SPI, I2C.
-USART: chuẩn truyền thông nối tiếp không đồng bộ hoàn toàn tương thích với giao tiếp máy tính qua
RS232. Do chuẩn điện áp sử dụng tại PIC 16F877A là TTL nên để ghép nối với máy tính hoặc thiết bị khác
sử dụng chuẩn RS232 cần có bộ chuyển đổi điện áp, ví dụ như IC MAX232. USART mặc định sử dụng 2
chân C6 và C7 để truyền thông.
-PSP: với giao tiếp này, Pic sử dụng cổng D với vai trò là cổng truyền nhận song song 8 bit. Với PSP cho
phép PIC có thể giao tiếp trực tiếp với các VĐK khác bằng bus dữ liệu 8 bit. Các chân RD, CS, WR sẽ giúp
điều khiển đường truyền, chế độ hoạt động. PSP không hỗ trợ trên PIC16F873A, PIC16F876A.
-Truyền thông nối tiếp đồng bộ: hỗ trợ 2 chế độ là SPI và I2C.
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
NỘI DUNG
1.UART
2.SPI
3.I2C
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
1.UART
- UART là bộ truyền nhận dữ liệu nối tiếp bất đồng bộ. Là một giao thức truyền thông
phần cứng dùng giao tiếp nối tiếp không đồng bộ và có thể cấu hình được tốc độ.
- Thông thường, tốc độ truyền của UART được đặt ở một số chuẩn, chẳng hạn như
9600, 19200, 38400, 57600, 115200 baud và các tốc độ khác. Tốc độ truyền này định
nghĩa số lượng bit được truyền qua mỗi giây. Các tốc độ truyền khác nhau thường
được sử dụng tùy thuộc vào ứng dụng và hệ thống sử dụng.
- Với UART cho phép PIC 16F877A giao tiếp với máy tính theo chuẩn RS232
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
1.UART
1.UART
1.UART
-RS232
+ Giao diện: giao diện COM sử dụng cổng nối 9 chân và 25
chân. Cổng nối 25 chân chỉ có một số chân được sử dụng.
Thông dụng nhất là cổng nối 9 chân
1.UART
-RS232
Giao diện và công dụng của các chân được thể hiện trong bảng sau:
1.UART
-RS232
1.UART
-RS232
1.UART
-RS232
Điện áp sử dụng truyền thông trong RS232 bao gồm cả mức điện áp âm và
dương (không tương thích với các mức logic TTL)
Giải điện áp sử dụng trong RS232 thể hiện trong bảng sau
Các chip giao tiếp, hỗ trợ chuyển đổi mức logic TTL sang mức điện áp
thích hợp trên cổng RS232, sử dụng giao tiếp được với VĐK Pic:
MAX232, MAX233,...
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
1.UART
-Ghép nối pic với máy tính qua RS232
Sử dụng phương pháp truyền thông không điều khiển luồng: chỉ dùng 3 chân TX
(truyền), RX (nhận), Ground (chung-nối đất) và ghép nối thông qua IC chuyển điện áp
MAX232
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
1.UART
-Lập trình với CCS
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
1.UART
-Lập trình với CCS
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
1.UART
-Mô phỏng:
2.SPI
-SPI (Serial Peripheral Interface) là một chuẩn truyền thông nối tiếp tốc độ cao do
Motorola đề xuất.
-Các bit dữ liệu được truyền nối tiếp nhau, và có xung clock đồng bộ.
-Giao tiếp song công, có thể truyền và nhận dữ liệu tại cùng một thời điểm
-Khoảng cách truyền ngắn, được sử dụng để trao đổi dữ liệu với nhau giữa các chip
trên cùng một bo mạch
-Tốc độ truyền khoảng vài Mbs
-Các dòng vi điều khiển thường được tích hợp modele giao tiếp SPI dùng để giao tiếp
truyền dữ liệu với vi điều khiển khác, hoặc giao tiếp với các ngoại vi bên ngoài: Cảm
biến, EEPROM, ADC, LCD, SD Card…
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
2.SPI
-Giao tiếp của 1 master và 1 slave
SCK còn thường được gọi là SCLK, CLK
Chân MOSI và MISO còn thường được gọi là SDI, SDO
Chân CS còn thường được gọi là SS
2.SPI
-Khi hoạt động:
2.SPI
-Truyền và nhận dữ liệu
2.SPI
-Các chế độ hoạt động
2.SPI
2.SPI
2.SPI
2.SPI
2 / Spi_read ( data )
2.SPI
3 / spi_write ( value )
4 / spi_data_is_in ( )
+Hàm trả về TRUE ( 1 ) nếu data nhận được đầy đủ ( 8 bit ) từ SPI , trả về false nếu chưa nhận đủ
+Hàm này dùng kiểm tra xem giá trị nhận về SPI đã đủ 1 byte chưa để dùng hàm spi_read ( )
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
2.SPI
-Mô phỏng:
3.I2C
- I2C là tên viết tắt của cụm từ Inter - Intergrated Circuit – Bus giao tiếp giữa các IC
với nhau
- Giao tiếp nối tiếp đồng bộ, có thể giao tiếp với nhiều thiết bị
- Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau
như các loại Vi điều khiển 8051, PIC, AVR, ARM, chíp nhớ như RAM tĩnh (Static
Ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tụ (DAC), IC điểu
khiển LCD, LED…
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
3.I2C
-Đặc điểm:
+Cơ chế giao tiếp nối tiếp, đồng bộ
+Chỉ cần dùng 2 dây để kết nối thiết bị: SDA(Serial DATA) và SCL(Serial Clock),
SDA là đường truyền dữ liệu 2 hướng, SCL là đường truyền xung đồng hồ và chỉ theo
một hướng
+Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị trên bus i2c
+Cơ chế Master/Slave
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
3.I2C
-Giao thức truyền dữ liệu
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
3.I2C
-I2C Master
3.I2C
-I2C Slave
+Slave lắng nghe bus bất cứ khi nào có 1 Master phát ra địa chỉ
+Nếu nhận được địa chỉ+ bit 1(read), Slave phải gửi dữ liệu yêu cầu, nếu là bit
0(write) thì Slave sẽ nhận dữ liệu
+Slave sau khi gửi dữ liệu nếu không nhận được bit ACK từ Master thì Slave trở lại
chế độ lắng nghe
+Slave nhận dữ liệu , cần gửi lại bit ACK sau mỗi byte nhận được
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
3.I2C
-Các chế độ hoạt động
3.I2C
-Lập trình với CCS
3.I2C
-Lập trình với CCS
Các hàm:
+i2c_isr_state(): Thông báo trạng thái giao tiếp I2C
+i2c_start(): Tạo điều kiện START
+i2c_stop(): Tạo điều kiện STOP
+i2c_read(): Đọc giá trị từ thiết bị I2C, trả về giá trị 8 bit
+i2c_write(): Ghi giá trị 8 bit đến thiết bị I2C
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
3.I2C
-Mô phỏng:
LUYỆN TẬP
Bài toán 1: Giao tiếp SPI giữa 3 vi điều khiển pic
Bài toán 2: Kết nối nhiều 3 LCD thông qua i2c
ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN