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