Truyền thông dữ liệu - Bài 3: Thực hiện đồng bộ qua kết nối số liệu - Nguyễn Hồng Sơn

Một số khái niệm  Đồng bộ số liệu  Truyền nối tiếp bất đồng bộ  Nguyên lý đồng bộ bit  Thực hiện đồng bộ ký tự  Đồng bộ một frame  Truyền nối tiếp đồng bộ  Cơ sở đạt đồng bộ bit  Cơ sở đạt đồng bộ ký tự/byte và frame  Lập trình truyền số liệu qua các giao tiếp số liệu  Mức thấp  Mức cao

pdf19 trang | Chia sẻ: thuongdt324 | Lượt xem: 605 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Truyền thông dữ liệu - Bài 3: Thực hiện đồng bộ qua kết nối số liệu - Nguyễn Hồng Sơn, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
11 §3 THỰC HIỆN ĐỒNG BỘ QUA KẾT NỐI SỐ LIỆU Nguyễn Hồng Sơn 2 NỘI DUNG  Một số khái niệm  Đồng bộ số liệu  Truyền nối tiếp bất đồng bộ  Nguyên lý đồng bộ bit  Thực hiện đồng bộ ký tự  Đồng bộ một frame  Truyền nối tiếp đồng bộ  Cơ sở đạt đồng bộ bit  Cơ sở đạt đồng bộ ký tự/byte và frame  Lập trình truyền số liệu qua các giao tiếp số liệu  Mức thấp  Mức cao 23 Một số khái niệm  Một kết nối số liệu là một kết nối vật lý dùng tín hiệu số để truyền nhận số liệu giữa DTE và DCE hay DTE và DTE.  Đồng bộ  Communication modes  Transmission modes  Bảng mã biểu diễn ký tự 4 Đồng bộ số liệu  Đồng bộ bit  Đồng bộ một nhóm bit (ký tự, byte)  Đồng bộ một khối số liệu chứa nhiều ký tự hay byte (frame,...)  Hai thiết bị chỉ truyền nhận số liệu thành công trên liên kết lớp hai khi và chỉ khi chúng đạt đồng bộ số liệu trên lớp đó.  Đồng bộ số liệu ở lớp hai đạt được nhờ đồng bộ frame (bao hàm cả đồng bộ bit và ký tự/byte) 35 Truyền nối tiếp bất đồng bộ  Không dựa vào yếu tố đồng bộ thời gian (đồng bộ vật lý).  Tạo cơ chế giúp máy thu nhận thức đúng bit đã truyền.  Nguyên tắc thu thông thường: máy thu lấy mẫu mức tín hiệu số vào thời điểm thu và dịch thành số liệu, đưa vào thanh ghi thu  Một bit được truyền trong khoảng thời gian một Tb (thời gian của một bit). Do sự tác động của các yếu tố môi trường mà hay bị biến dạng ở hai biên, nên máy thu luôn cố gắng lấy mẫu ở giữa thời bit. 6 Truyền ntbđb: nguyên lý đồng bộ bit  Một ký tự truyền gồm  Start bit, thường là bit 0, được đặt để truyền trước.  Data 4,5,6,7 hay 8 bit được truyền kế tiếp.  Một bit kiểm tra, tùy chọn (có hoặc không).  1 hay 1,5 hay 2 stop bit.  Tất cả được đặt trong thanh ghi PISO, chính là thanh ghi đệm truyền trong UART. 47 Truyền ntbđb: nguyên lý đồng bộ bit 8 59 10 Truyền ntbđb: thực hiện đồng bộ ký tự  Máy thu được lập trình đồng dạng ký tự với máy phát.  Đạt đồng bộ ký tự bằng cách đếm số bit theo định dạng ký tự đã được lập trình để tách ký tự.  Chuyển ký tự vào bộ đệm thu SIPO 611 Truyền ntbđb: đồng bộ frame  Dùng các ký tự điều khiển:  STX  ETX  DLE  Frame chứa nhiều ký tự được gói giữa các ký tự điều khiển giúp máy thu đồng bộ frame 12 DLE 713 Truyền nối tiếp đồng bộ: Cơ sở đạt đồng bộ bit  Dùng đồng hồ (thời gian) để đồng bộ ---->dựa vào đồng bộ vật lý để đạt đồng bộ luận lý.  Tín hiệu đồng hồ được cấp cho cả nguồn và đích  Trong kết nối cự ly ngắn như trong một giao tiếp vật lý giữa máy tính với thiết bị nối mạng, đường tín hiệu CK cấp tín hiệu đồng hồ để đồng bộ bit giữa hai thiết bị.  Trong kết nối cự ly xa dùng một trong hai giải pháp chính để tiết kiệm đường truyền CK:  Mã hóa tín hiệu clock vào Data và truyền đi  Dùng cơ chế DPLL  Cũng có thể kết hợp hai giải pháp chính với nhau 14 Truyền ntđb: Mã hóa tín hiệu ck vào Data 815 Các phương pháp mã hóa ck vào data 16 Truyền ntđb: Dùng cơ chế DPLL 917 18 10 19 Các phương pháp mã hóa bit thông thường để truyền đồng bộ cự ly xa (WAN) 20 Kết hợp cả hai giải pháp 11 21 22 Mã hóa đường dây (line coding)  Bao gồm mã hóa tín hiệu CK vào data và các mã hóa bit phục vụ cơ chế đồng bộ bit.  Đặc trưng của từng loại mã quyết định trường hợp áp dụng cụ thể  Phương pháp mã hóa cũng là ánh xạ giữa bit số liệu và trạng thái tín hiệu Data digital 12 23 Truyền ntđb: Cơ sở đạt đồng bộ ký tự và frame_Hướng ký tự 24 Truyền ntđb: Cơ sở đạt đồng bộ byte và frame_Hướng bit 13 25 Sơ lược các vi mạch điều khiển truyền  UART, USART  USART  BoPs  UCCs 26 Lập trình truyền số liệu qua các giao tiếp số liệu: Mức thấp  Phát triển các chương trình điều khiển truyền/nhận data giữa thiết bị đầu cuối với các thiết bị ngoại vi qua giao tiếp vật lý.  Các giao tiếp vật lý được thực hiện qua một vi mạch có thể lập trình, ví dụ 8251, 16550,..., còn gọi là I/O module.  Dùng hợp ngữ (assembly language), khởi động vi mạch, hiểu và vận dụng các thanh ghi.  Kiến thức liên quan: Vi xử lý, Kiến trúc máy tính (Programmed I/O) 14 27 Lập trình truyền số liệu qua các giao tiếp số liệu: Mức cao  Thường phát triển ứng dụng truyền/nhận qua giao tiếp nối tiếp (serial port).  Phần cứng mức thấp cung cấp các serial port cho lập trình mức cao.  Trong ứng dụng cần phải lập trình cài đặt serial port để kết nối với giao tiếp vật lý (I/O module).  Khi đã cài đặt serial port trong chương trình, tiến hành lập trình truyền data ra hay nhận data vào từ serial port (cổng luận lý) bằng công cụ truyền/nhận hay đọc/ghi thông thường.  Các IDE đều có thư viện để thực hiện serial port và các công cụ để thao tác truyền nhận với nó. 28 Lập trình cài đặt serial port trên Windows  Windows hỗ trợ lập trình qua cổng COM (giao tiếp EIA-232/V.24), truyền nối tiếp bất đồng bộ.  Hai phương pháp thông thường:  File operation, xem serial port như một file  ActiveX, dùng MSComm 15 29 Các bước thực hiện  1. Mở port  2. Cấu hình port cài đặt baud rate, parity, data, ...  3. Cài đặt các timeout  4. Truyền data ra port.  5. Nhận data từ port.  6. Đóng port. 30 Thực hiện như một file  1. Mở port: Tạo một port handle handlePort_ = CreateFile (portName, // Specify port device: default "COM1" GENERIC_READ | GENERIC_WRITE, // Specify mode that open device. 0, // the devide isn't shared. NULL, // the object gets a default security. OPEN_EXISTING, // Specify which action to take on file. 0, // default. NULL); // default. 16 31 Thực hiện....  2. Cấu hình port  2.1 Lấy cấu hình hiện hành  2.2 Gán thông số if (GetCommState(handlePort_,&config_) == 0) { AfxMessageBox("Port Error"); return FALSE; } config_.BaudRate = dcb.BaudRate; // Specify baud rate of communicaiton. config_.StopBits = dcb.StopBits; // Specify stopbit of communication. config_.Parity = dcb.Parity; // Specify parity of communication. config_.ByteSize = dcb.ByteSize; // Specify byte of size of communication. 32 Thực hiện....   2.3 Lưu cấu hình if (SetCommState(handlePort_,&config_) == 0) { AfxMessageBox("Set port error"); return FALSE; } 17 33 Thực hiện.....  3.Cài đặt các timeout // instance an object of COMMTIMEOUTS. COMMTIMEOUTS comTimeOut; // Specify time-out between charactor for receiving. comTimeOut.ReadIntervalTimeout = 3; // Specify value that is multiplied by the requested number of bytes to be read. comTimeOut.ReadTotalTimeoutMultiplier = 3; // Specify value is added to the product of the ReadTotalTimeoutMultiplier //member comTimeOut.ReadTotalTimeoutConstant = 2; // Specify value that is multiplied by the requested number of bytes to be //sent. comTimeOut.WriteTotalTimeoutMultiplier = 3; // Specify value is added to the product of the WriteTotalTimeoutMultiplier //member comTimeOut.WriteTotalTimeoutConstant = 2; // set the time-out parameter into device control. SetCommTimeouts(handlePort_,&comTimeOut); 34 Thực hiện....  Truyền data ra port (ghi file) if (WriteFile(handlePort_, // handle to file to write to outputData, // pointer to data to write to file sizeBuffer, // number of bytes to write &length,NULL) == 0) // pointer to number of bytes written { AfxMessageBox("Khong truyen duoc data."); return FALSE; } 18 35 Thực hiện.....  Nhận data từ port (đọc file) if (ReadFile(handlePort_, // handle of file to read inputData, // pointer to data to read sizeBuffer, // number of bytes to read &length, // pointer to number of bytes read NULL) == 0) // pointer to structure for data { AfxMessageBox("Khong nhan duoc data."); return FALSE; } 36 Thực hiện....  Đóng port if (CloseHandle(handlePort_) == 0) // Gọi hàm để đóng port. { AfxMessageBox("Đong port không thanh."); return FALSE; } 1.Tham khảo : 2. Janet L. Axelson, Serial port complete, second edition, Lakeview Research LLC, Madison WI 53704, 2007 19 37 Bài tập tự chọn 1.Tìm hiểu MSComm và diễn giải cách thực hiện truyền/nhận data qua serial port tuân theo các bước nêu trên. 2. Cài đặt chương trình theo diễn giải ở trên.