Bài giảng môn học Lập trình hệ nhúng - Chương 3: Lập trình vào ra nâng cao - Phạm Văn Thuận
§ Đọc cổng: sử dụng lệnh đọc file
n=read(fd,&result,sizeof(result));
ØN: số ký tự đọc được
ØResult: chứa kết quả
Lập trình hệ nhúng
§ Ghi cổng: sử dụng lệnh ghi file
n=write(fd,“Hello World\r",12);
ØN:số ký tự đã ghi
ØFd: file id (có được từ thao tác mở file thành
công)
11 trang |
Chia sẻ: huongthu9 | Lượt xem: 464 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng môn học Lập trình hệ nhúng - Chương 3: Lập trình vào ra nâng cao - Phạm Văn Thuận, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 3. Lập trình vào ra nâng cao
3.1. Lập trình giao tiếp cổng COM theo chuẩn
RS232
3.2. Lập trình giao tiếp cổng USB
3.3. Lập trình ghép nối ADC
Lập trình hệ nhúng 59
3.1. Lập trình giao tiếp cổng
RS232
§ Chuẩn đầu nối trên PC
• Chân 1 (DCD-Data Carrier Detect):
phát hiện tín hiệu mang dữ liệu
• Chân 2 (RxD-Receive Data): nhận
dữ liệu
• Chân 3 (TxD-Transmit Data):
truyền dữ liệu
• Chân 4 (DTR-Data Terminal
Lập trình hệ nhúng 60
Ready): đầu cuối dữ liệu sẵn sàng
• Chân 5 (Signal Ground): đất của
tín hiệu
• Chân 6 (DSR-Data Set Ready): dữ
liệu sẵn sàng
• Chân 7 (RTS-Request To Send):
yêu cầu gửi
• Chân 8 (CTS-Clear To Send): Xóa
để gửi
• Chân 9 (RI-Ring Indicate): báo
chuông
Chuẩn RS232
§ Khuôn dạng khung truyền
• PC truyền nhận dữ liệu qua cổng nối tiếp RS-232 thực
hiện theo kiểu không đồng bộ (Asynchronous)
• Khung truyền gồm 4 thành phần
ü1 Start bit (Mức logic 0): bắt đầu một gói tin, đồng bộ xung
Lập trình hệ nhúng 61
nhịp clock giữa DTE và DCE
üData (5,6,7,8 bit): dữ liệu cần truyền
ü1 parity bit (chẵn (even), lẻ (odd), mark, space): bit cho
phép kiểm tra lỗi
üStop bit (1 hoặc 2 bit): kết thúc một gói tin
Lập trình giao tiếp RS232
§ Khởi tạo: Khai báo thư viện
§ Bước 1: Mở cổng
§ Bước 2: Thiết lập tham số
§ Bước 3: Đọc, ghi cổng
Lập trình hệ nhúng
§ Bước 4: Đóng cổng
62
Khai báo thư viện
§ #include
§ #include
§ #include
§ #include // UNIX standard function
Lập trình hệ nhúng
§ #include // File control definitions
§ #include // Error number definitions
§ #include // POSIX terminal control
§ #include // time calls
63
Bước 1: Mở cổng
§ Sử dụng lệnh mở file
int fd = open ("/dev/ttySAC0", O_RDWR);
§ Fd >0 nếu mở file thành công
§ Fd<0 nếu mở file thất bại
Lập trình hệ nhúng 64
Bước 2: Thiết lập tham số
§ Sử dụng cấu trúc termios
struct termios port_settings;
§ Thiết lập tham số (9600, 8, n, 1)
cfsetispeed(&port_settings, B9600);
cfsetospeed(&port_settings, B9600);
Lập trình hệ nhúng
port_settings.c_cflag &= ~PARENB;
port_settings.c_cflag &= ~CSTOPB;
port_settings.c_cflag &= ~CSIZE;
port_settings.c_cflag |= CS8;
tcsetattr(fd, TCSANOW, &port_settings);
65
Bước 3: Đọc, ghi cổng
§ Đọc cổng: sử dụng lệnh đọc file
n=read(fd,&result,sizeof(result));
ØN: số ký tự đọc được
ØResult: chứa kết quả
Lập trình hệ nhúng
§ Ghi cổng: sử dụng lệnh ghi file
n=write(fd,“Hello World\r",12);
ØN:số ký tự đã ghi
ØFd: file id (có được từ thao tác mở file thành
công)
66
Bước 4: Đóng cổng
§ Đóng cổng: sử dụng lệnh đóng file
close (fd);
Fd: file ID (có được từ thao tác mở file thành công)
Lập trình hệ nhúng 67
3.2. Lập trình giao tiếp USB
Lập trình hệ nhúng 68
3.3. Lập trình giao tiếp ADC
Lập trình hệ nhúng 69
Các file đính kèm theo tài liệu này:
- bai_giang_mon_hoc_lap_trinh_he_nhung_chuong_3_lap_trinh_vao.pdf