Wellcome to Electronics Design
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.


vanhiep89c51@yahoo.com Or vanhiep89c51@gmail.com
 
Trang ChínhTìm kiếmLatest imagesĐăng kýĐăng Nhập

 

 Giới thiệu giao tiếp cổng Communicactions (Com)

Go down 
Tác giảThông điệp
vanhiep
Admin
Admin
vanhiep


Tổng số bài gửi : 38
Join date : 16/08/2008
Age : 38

Giới thiệu giao tiếp cổng Communicactions (Com) Empty
Bài gửiTiêu đề: Giới thiệu giao tiếp cổng Communicactions (Com)   Giới thiệu giao tiếp cổng Communicactions (Com) I_icon_minitimeMon Oct 06, 2008 8:52 am

Thứ nhất xin giới thiệu một cách khái quát về các cổng và đặc biệt là cổng RS-232 và RS-485:

Trước hết tôi xin định nghĩa liên kết: là dùng dây dẫn hoặc trung gian khác như công nghệ không dây,.. để kết nối các máy tính hoặc là kết nối các thiết bị kết nối qua PC. Khoảng cách có thể rất ngắn vài cm đến hàng ngàn km, thời gian có thể 1 giây có khi đến hàng 1 tuần. Các điểm kết nối vào mạng có thể là 2 hoặc nhiều điểm.

Chuẩn RS-232 chỉ có thể kết nối nhiều nhất 2 thiết bị, với khoảng cách dài nhất là 50-100 feet( 12,7->25,4 m), tốc độ 20k bit/s

Chuẩn RS-485 có thể kết nối tối đa là 32 thiết bị, khoảng cách dài hơn tối đa là 4000feet( 1016 m-> hơn 1km) gấp 40 lần RS-232. Tốc độ cao 10 mega bit/s. Cả hai chuẩn này có thẻ có sắn trong mainboard khi mua hoặc là có thể lắp thêm rất dễ dàng, giá mua rất rẻ so với các giao diện khác.Chuẩn RS-232 dùng rộng rãi, mua dễ dàng, đơn giản khi lắp thêm với nhiều cách thiết lập. Còn RS-485 dùng với khoảng cách lớn hơn, tốc độ cao hơn, nhiều đầu nối hơn.

Chuẩn IrDA( Inared Data Asociation) dùng các UART giống nhau và định dạng dữ liệu giống như RS-232 nhưng có thêm bộ giải mã. Dữ liệu truyền từ nguồn phát hồng ngoại đến các thiết bị không giây. Giao diện này rất là có ích cho các liên kết ngắt, giữa các thiết bị mà không thể có cáp nối ở giữa( có thể là cho đẹp).

Chuẩn MIDI( Musical instrument digital interface): giao diện số hóa các dụng cụ âm nhạc. Chuẩn này dùng dòng 5mA, tốc độ 31,5k bit/s

Microwire, I2C,SPI là các chuẩn nối tiếp đồng bộ, dùng trong các liên kết ngắn. Nhiều vdk có 1 hoặc nhiều chuẩn này.

USB( Universial Sẻial Bus) và Fireware( chuẩn IEEE-1384) là chuẩn mới, tốc độ cao, thông minh kết nối với PC và các PC khác, thiết bị ngoại vi. USB ra đời đã dần thay thế chuẩn RS-232 và chuẩn máy in Centronic như là một lựa chọn mới hiện đại cho các TB ngoại vi. Fireware tốc độc truyền dữ liệu nhanh hơn nhiều và được dùng để truyền nhạc tiếng, nhạc hình, hoặc các block dung lượng lớn.

Ethernet là các chuẩn mạng gần gũi thường dùng trong nhiều mạng. Tốc độ cao nhưng yêu cầu phần cứng và phần mềm khá phức tạp, đắt hơn nhiều so với các chuẩn khác.

Đồng hành với chuẩn nối tiếp là chuẩn song song, có nhiều đường dữ liệu. Vì song song nên chuyển nhiều bit cùng một lúc, rất nhanh. Thường có một loạt các đường dữ liệu -> dữ liệu truyền đi theo một chiều ở một thời điểm. Nếu dùng để nối khoảng cách xa thì tiền mua quả là đắt đỏ cho việc thực hành của sinh viên cũng như các ứng dụng trong công nghiệp, ..

Chuẩn máy in Cenntronics(IEEE-1284). Mọi pc đều có chuẩn này. Tốc độ truyền cao qua cáp. Được ứng dụng với các máy quét, các thiết bị lưu trữ mở rộng như đĩa cứng,.. và nhiều thiết bị ngoại vi đặc biệt khác. Chuẩn IEEE-488 là chuẩn song song dùng trong các ứng dụng điều khiển và trong âm nhạc.


Nói thêm về cổng RS-232 và RS-485:

Cổng nối tiếp là một phần của PC ngay khi nó mới ra đời. Với mỗi cổng Com hoặc Comm( communications) trong PC là một cổng nối tiếp không đồng bộ được điều khiển bởi cácUART. Mỗi cổng Com có thể có giao diện RS-232, RS – 485 hoặc cổng có thể để dành cho một modem trong hoặc thiết bị khác. Mỗi PC có thể có các dạng khác nhau của các cổng nối tiếp như USB, Firewire, và I2C nhưng chúng dùng các giao thức khác nhau và yêu cầu các thành phần khác nhau.

Giao diện nối tiếp mới nhất là USB và Firewire với các tình năng: nhanh, và nhìều lợi ích khác nữa. Thực tế thì nên dùng USB trong việc thay thế cổng RS-232 ở bất kì nơi nào có thể được trong các thiết kế mới, ứng dụng mới. Và với nhều thiết bị ngoại vi, giao diện mới này lại rất là phù hợp.

Nhưng RS – 232 và các giao diện giống nó vẫn sẽ tiếp tục phổ biến trong các ứng dụng như là hệ thống điều khiển, điều hành. Những giao diện này không đắt đỏ, dễ dàng lập trình, cho phép cáp dài,và dễ dùng kết hợp với các thiết bị vi điều khiển rẻ tiền, các máy tính cũ. Như cổng USB đã được sử dụng rộng rãi, các bộ chuyển đổi sẵn sàng để chuyển USB thành cổng RS-232 hoặc RS – 285. Bộ chuyển đổi sẽ kết nối với cổng USB của PC và chuyển đổi giữa USB và các giao diện khác. Thiết lập rất đơn giản để thêm một cổng RS-232 hoặc RS – 485 vào bất kỳ hệ thống nào.

Trong những máy tính IBM – PC đầu tiên, UART điều khiển cổng nối tiếp là 8250, tốc độ lớn nhất là 57.600 bit /giây. Các UART từ thời gian này đã được tiếp tục cải thiện thêm nhiều đặc điểm mới như thêm bộ đệm, tốc độ tăng lên. Ngày nay, UART trong PC là một phần không thể thiếu của chíp đa chức năng bao gồm một hay nhiều UART hỗ trọ cổng song song, thiết bị lưu trữ và các bộ phận hệ thống khác.

UART chuyển đổi giữa dữ liệu nối tíêp và song song. Một chiều, UART chuyển đổi dữ liệu song song bus hệ thống ra dữ liệu nối tiếp để truyền đi. Một chiều khác, UART chuyển đổi dữ liệu nhận được dạng dữ liệu nối tiếp thành dạng dữ liệu song song cho CPU có thể đọc vào bus hệ thống.

UART của PC hỗ trợ cả hai kiểu giao tiếp là giao tiếp đồng thời và không giao tiếp đồng thời. Giao tiếp đồng thời tức là UART có thể gửi và nhận dữ liệu vào cùng một thời điểm. Còn giao tiếp không đồng thời( không kép) là chỉ có một thiết bị có thể chuyển dữ liệu vào một thời điểm, với tín hiệu điều khiển hoặc mã sẽ quyết định bên nào có thể truyền dữ liệu. Giao tiếp không đồng thời được thực hiện khi mà cả 2 chiều chia sẻ một đường dẫn hoặc nếu có 2 đường nhưng cả 2 thiết bị chỉ giao tiếp qua một đường ở cùng một thời điểm.
Thêm vào đường dữ liệu, UART hỗ trợ bắt tay chuẩn RS232 và tín hiêu điều khiển như RTS, CTS, DTR, DCR, RT và CD.

Để thuận tiện, các chương trình gửi và nhận dữ liệu trong định dạng không đồng bộ đơn giản hơn những gì bạn tưởng. PC và nhiều vi xủ lí khác có một bộ phận gọi là UART( universal asynchronous receiver/transmitter: truyền /nhận không đồng bộ chung) vì thế có thể vận dụng phần lớn những chi tiết truyền và nhận dữ liệu.

Trong PC, hệ điều hành và ngôn ngữ lập trình hỗ trợ cho lập trình liên kết nối tiếp mà không cần phải hiểu rõ chi tiết cấu trúc UART . Để mở liên kết, ứng dụng lựa chọn một tần số dữ liệu hoặc là thiết lập khác hoặc cho phép truyền thông tại các cổng. Để gửi 1 byte, ứng dụng ghi byte này vào bộ đệm truyền của cổng được lựa chọn, và UART gửi dữ liệu này, từng bít một, trong định dạng yêu cầu, thêm bít Start, bít Stop, bít chẵn lẻ khi cần. Trong một cách đơn giản, byte nhận được tự động được lưu trữ trong bộ đệm. UART cso thể dùng nhanh một ngắt để báo cho CPU và các ứng dụng biết dữ liệu đang nhận được và các sự kiện khác.

Một vài vi điều khiển không bao gồm UART, và thỉnh thoảng bạn cần nhiều hơn các UART mà vi xử lí có. Trong trường hợp này, có 2 lựa chọn: thêm UART ngoài, hoặc mô phỏng UART trong mã chương trình. Basic Stamp của Parallax là một ví dụ của chip với một UART bổ sung trong mã chuơng trình.
UART là một thiết bị đơn giản hỗ trợ tốt cả hai kiểu truyền thông đồng bộ và không đồng bộ.


Được sửa bởi vanhiep89c51 ngày Mon Oct 06, 2008 9:04 am; sửa lần 1.
Về Đầu Trang Go down
https://dhdt.forumvi.com
vanhiep
Admin
Admin
vanhiep


Tổng số bài gửi : 38
Join date : 16/08/2008
Age : 38

Giới thiệu giao tiếp cổng Communicactions (Com) Empty
Bài gửiTiêu đề: Re: Giới thiệu giao tiếp cổng Communicactions (Com)   Giới thiệu giao tiếp cổng Communicactions (Com) I_icon_minitimeMon Oct 06, 2008 8:54 am

Định dạng và giao thức Format và Protocol:

Máy tính trong một mắt xích nối tiếp có thể là nhiều dạng khác nhau, nhưng tất cả chúng phải cùng đồng ý một thoả thuận và qui tắc để cho dữ liệu có thể trao đổi giữa chúng. Sự thoả thuận này phải chắc chắn rằng mọi sự chuyển dữ liệu phải tìm thấy được nơi nó cần đến, và mỗi máy tính phải hiểu thông điệp gửi tới nó.

Dưới đây giới thiệu về cách định dạng dữ liệu và giao thức dùng trong truyền thông nối tiếp. Chủ yếu là định dạng không đồng bộ dùng 2 chuẩn thông dụng là RS-232 và RS-485.

Gửi dữ liệu nối tiếp:

Trong một liên kết nối tiếp, nơi gửi dữ liệu sẽ gửi từng bit một ở mỗi thời điểm nối tiếp nhau. Một liên kết nối tiếp chỉ có 2 thiết bị thì phải có đường dẫn dành cho mỗi chiều truyền hoặc là nó chỉ có 1 đường dẫn được chia sẻ bởi cả 2 thiết bị với thoả thuận của 2 thiết bị này. Khi mà có 3 hoặc nhiều thiết bị, tất cả các thiết bị này thường dùng chung một đường dẫn, và giao thức mạng quyết định xem thiết bị nào có quyền truyền nhận dữ liệu.

Một tín hiệu đòi hỏi bởi tất cả mọi liên kết nối tiếp là tín hiệu xung đồng hồ, hoặc là có sự tham khảo về thời gian để điều khiển đường truyền dữ liệu. Nơi truyền và nơi nhận dùng xung đồng hồ để quyết định khi nào gửi và khi nào đọc mỗi bít. Có hai dạng định dạng dữ liệu là đồng bộ và không đồng bộ, và mỗi định dạng này dùng các dạng xung đồng hồ khác nhau.

Định dạng đồng bộ:

Trong truyền đồng bộ, mọi thiết bị dùng một xung đồng hồ được phát ra bởi một thiết bị hoặc từ một nguồn xung ngoài. Xung đồng hồ có thể có một tần số cố định hoặc cóc thể chốt tại những khoảng thời gian không đều. Mọi bít truyền đi được đồng bộ với đồng hồ. Nói cách khác, mỗi bít được truyền đi là dựa vào sự chuyển đổi của xung( như tăng hoặc giảm của sường xung). Nơi nhận dùng sự chuyển đổi xung để quyết định khi nào đọc mỗi bít truyền tới. Từ hình vẽ các bạn cũng có thể thấy là nơi truyền sẽ truyền các bit khi mà nhận thấy sự chuyển sườn xung từ cao xuống thấp, và nơi nhận thì ngược lại phát hiện khi nào có sự chuyển sườn xung từ thấp lên cao thì đọc các bit.Chi tiết chính xác của giao thức này có thể biến đổi khác đi. Ví dụ, nơi nhận có thể chốt dữ liệu nhận trong sườn xung tăng hoặc giảm, hoặc là phát hiện mức logic ở mức cao hoặc thấp. Định dạng đồng bộ dùng các cách khác nhau để bắt đầu và kết thúc việc truyền dữ liệu, bao gồm bít Start và bít Stop và tín hiệu lựa chọn chíp.

Định dạng không đồng bộ:

Trong truyền không đồng bộ, liên kết không bao gồm đường xung đồng hồ, bởi vì mỗi điểm đầu cuối của liên kết đã có xung đồng hồ cho riêng từng cái. Mỗi điểm sẽ cần phải đồng ý cùng một tần số của đồng hồ và mọi đồng hồ chỉ khác nhau một vài %. Mỗi byte truyền đi bao gồm bít Start để đồng bộ đồng hồ và một hoặc nhiều bít Stop cho tín hiệu kết thúc việc truyền trong mỗi một từ được truyền đi. Cổng RS-232 trong PC dùng định dạng khoong đồng bộ để giao tiếp với modems(thiết bị mã hoá, giải mã dữ liệu) và các thiết bị khác. Dù RS-232 có thể truyền dữ liệu đồng bộ nhưng liên kết không đồng bộ vần được dùng phổ biến hơn. Phần lớn liên kết RS-485 dùng giao tiếp không đồng bộ.

Truyền không đồng bộ có thể dùng một trong vài cách định dạng phổ biến. Phổ biến nhất là kiểu 8-N-1, nơi truyền sẽ truyền mỗi byte dữ liệu một bít Start, tiếp theo là 8 bít dữ liệu bắt đầu với bít 0(bít có trọng số nhỏ nhất Least Sìgnificant Bit) và kết thúc với 1 bít Stop.

Chữ N trong định dạng 8-N-1 chỉ rằng truyền dữ liệu không dùng bít chẵn lẻ. Một dạng định dạng khác là bao gồm một bít chẵn lẻ giống như dạng đơn giản của kiểm soát lỗi.

Khi số các bit 1 trong byte là chẵn thì bít Odd Parity Bit = 1 và bít lẻ = 0,..
Một số dạng khác không phổ biến là dùng một số khác nhau của số bít dữ liệu. Rất nhiều cổng nối tiếp hỗ trợ mọi nơi từ 5 ->8 bít dữ liệu, cộng với bít chẵn lẻ.

Tốc độ số bít là số bít một giây được truyền đi hoặc là nhận về trong một đơn vị thời gian. Tốc độ bus là số các sự kiện hình xảy ra hoặc truyền dữ liệu trên giây. Hai giá trị này thường đồng nhất với nhau trong nhiều liên kết. Trong đường dây điện thoại, môdem tốc độ cao mã hoá nhiều bít trong mỗi chu kì dữ liệu vì thế tốc độ bus thực tế nhỏ hơn tốc độ bit( bit rate).

Mọi bít cần thiết cho truyền một giá trị từ bít Start đến bít Stop gọi là một Word. Mỗi bít trong dạng Word gọi là một Character. Trong vài liên kết, các bít là kí tự văn bản( dạng chữ hoặc số), trong khi các dạng kí tự khác lại là giá trị nhị phân. Thời gian truyền các các kí tự trong một giây bằng với tổng thời gian truyền từng bít trong word cộng lại. Thêm bít start và bít Stop làm tăng thời gian truyền mỗi byte lên 25% ( vì có 10 bít cần truyền trong khi chỉ dùng có 8 bít). Với định dạng 8-N-1, một byte truyền với thời gian bằng 1/10 tần số bus: do đó 9600 bít/s truyền 960 byte/s.

Nếu nơi nhận đòi hỏi phải có một thời gian kiểm tra dữ liệu nhận đuợc, nơi truyền sẽ kéo dài độ rộng của bít Stop ra 1,5 hoặc 2 bít.

Cơ chế chống mất dữ liệu:

Phần lớn các máy tính trong mạng nối tiếp có nhiều việc phải làm bên cạnh việc chờ nhận dữ liệu. Ví dụ, mỗi đơn vị dữ liệu có thể thu thập theo chu kì và lưu trữ dữ liệu tới khi một mắt xích khác trong mạng yêu cầu dữ liệu này. Hoặc một điều khiển có thể đáp ứng các điều kiện điều khiển và điều hành, thỉnh thoảng lại nhận thông tin hoặc nhận các yêu cầu từ trong mạng.

Một máy tính muốn truyền dữ liệu trong khi một máy nhận khác đang bận với các công việc khác. Việc thiết kế mạng phải đòi hỏi rằng mỗi nơi nhận có thể biết được dữ liệu nào chuyển đến nó và tất cả mọi dữ liệu đến máy nhận phải không có lỗi.

Có nhiều cách làm để thực hiện điều đó, bao gồm bắt tay( handshaking), bộ đệm( buffering), dùng dò( polling) và ngắt( interrupts) để phát hiện dữ liệu đã đến, kiểm soát lỗi( error checking), và thừa nhận dữ liệu đã tới( acknowledging). Mỗi liên kết có thể dùng một hoặc nhiều cách trong số những cách này.

Bắt tay( handshaking):

Với tín hiệu bắt tay, máy phát có thể xác định khi nào máy tính này phải truyền dữ liệu và máy nhận có thể biết khi nào nó sẵn sàng nhận dữ liệu. Tín hiệu có thể biến đổi qua RS-232 hoặc RS-485 theo giao thức chuẩn hoặc giao thức qui ước.

Một trong những dạng bắt tay về phần cứng, nơi nhận đưa ra dòng mức cao khi sẵn sàng nhận dữ liệu, và nơi truyền chờ tín hiệu này trước khi truyền dữ liệu. Nơi nhận có thể đưa ra dòng mức thấp trong mọi thời điểm, thậm chí cả trong quá trình chờ dòng phản hồi cao trước khi kết thúc quá trình truyền nhận. Một số dạng liên kết khác hoạt động giống nguyên tắc ở trên nhưng với bắt tay bằng phần mềm, bằng cách nơi nhận gửi một mã để báo nó sẵn sàng nhận dữ liệu, và một mã khác để báo báo cho nơi truyền dừng quá trình gửi dữ liệu.

Bộ đệm( Buffer):

Bộ đệm là một dạng khác để nơi nhận có thể chắc chắn là không mất một dữ liệu nào gửi đến chúng. Bộ đệm có thể có ích cho phía truyền, nơi cho phép ứng dụng làm việc có hiệu quả bằng cách lưu trữ dữ liệu để gửi khi liên kết sẵn sàng để truyền nhận dữ liệu.

Bộ đệm có thể là bộ đệm phần cứng, phần mềm hoặc cả hai. Cổng nối tiếp dùng tất cả các dạng này nhưng máy tính cổ nhất có 16 byte bộ đệm phần cứng được tích hợp trong những UART. Trong chiều nhận, điều đó có nghĩa rằng UART có thể lưu trữ 16 byte trước khi phần mềm cần đọc chúng. Trong chiều nhận, UART có thể lưu trữ 16 byte và UART sẽ cẩn thận truyền mỗi byte theo từng bít tứng bít theo giao thức lựa chọn.

Khi bộ đệm phần cứng không đủ rộng, một máy tính cá nhân có thể dùng bộ đệm phần mềm, bộ đệm này có thể lập trình được kích thước và kích thước tối đa cho phép bởi bộ nhớ hệ thống. Các thiết bị phần mềm của cổng truyền nhận dữ liệu giữa bộ đệm phần cứng và phần mềm.

Trong các vi điều khiển, bộ đệm có xu hướng trở nên nhỏ hơn, và một số chip không có bộ đệm phần cứng. Việc làm hẹp bộ nhớ đệm điều quan trọng hơn ở đây là các chíp này dùng các công nghệ khác để chắc chắn là không dữ liệu nào bị mất.

Thăm dò và ngắt:

Sự kiện gây ra ở cổng nối tiếp bao gồm khi truyền và nhận dữ liệu, thay đổi tín hiệu bắt tay, và gửi , nhận thông điệp lỗi. Có hai cách cho ứng dụng phát hiện và gây ra những sự kiện này.

Các thứ nhất là có chương trình tự động nhảy tới các chuỗi sự kiện được sắp xếp trước( như bảng vector ngắt) khi một sự kiện xảy ra. Ứng dụng phản ứng nhanh và tự động hoạt động ở cổng mà không lãng phí thời gian kiểm tra, chỉ cần biết như không có hoạt động nào xảy ra.

Dạng lập trình này gọi là chạy đua sự kiện( event-driven) bởi vì một sự kiện bên ngoài có thể xảy ra trong bất kì thời điểm nào và chương trình chạy tới một bảng đặc biệt.

Trong VB, sự kiện OnComm của MSComm( Microsoft Communication Control 6.0 - Điều khiển ActiveX) làm công việc này. OnComm chạy đáp ứng lại ngắt phần cứng hoặc bộ đếm của bộ đệm phần mềm đạt tới giá trị xảy ra sự kiện. Nhiều bộ vi điều khiển có ngắt phần cứng dùng với mục đích này.

Cách thứ hai là thăm dò bằng cách đọc theo từng chu kì hoặc phát ra tín hiệu tìm kiếm khi nào một sự kiện xảy ra. Dạng lập trình này gọi là lập trình thủ tục, và không dùng ngắt phần cứng. Ứng dụng phải chắc chắn thăm dò cổng một cách đầy đủ để không mất bất kì một dữ liệu nào hoặc sự kiện nào. Tần số thăm dò phụ thuộc vào kích thước bộ đệm và tổng dữ liệu cần lấy( cần cho phản ứng nhanh). Ví dụ, nếu một thiết bị có 16 byte bộ đệm và dò cổng 1 lần/1 giây, thiết bị này chỉ có thể nhận không thể lớn hơn 16 byte/ 1 giây hoặc là bộ đệm sẽ bị tràn hoặc là dữ liệu sẽ bị mất.

Phương pháp thăm dò thường áp dụng cho truyền dữ liệu ngắn, đột ngột hoặc khi máy tính gửi dữ liệu và chớ đợi tín hiệu phản hồi nhanh. Một giao diện thăm dò không yêu cầu ngắt phần cứng, và bạn có thể chạy dạng lập trình này ở trên cổng mà không có đường ngắt. Nhiều giao diện thăm dò dùng ngắt timer của hệ thống để có kế hoạch đọc cổng sau một khoảng thời gian cố định.


Được sửa bởi vanhiep89c51 ngày Mon Oct 06, 2008 9:03 am; sửa lần 1.
Về Đầu Trang Go down
https://dhdt.forumvi.com
vanhiep
Admin
Admin
vanhiep


Tổng số bài gửi : 38
Join date : 16/08/2008
Age : 38

Giới thiệu giao tiếp cổng Communicactions (Com) Empty
Bài gửiTiêu đề: Re: Giới thiệu giao tiếp cổng Communicactions (Com)   Giới thiệu giao tiếp cổng Communicactions (Com) I_icon_minitimeMon Oct 06, 2008 9:02 am

Thừa nhận( Actknowledgments):

Một vài liên kết có các nút chấp nhận mệnh lệnh mà không có một phản ứng nào, nhưng bình thường nó có ích cho nút nhận để cho bên truyền biết rằng một thông điệp
đã truyền qua, thậm chí nếu bên nhận không có một thông tin nào phản hồi. Sự thừa nhận này đặc biệt có ích trong mạng lưới, khi có nhiều nút chia sẻ cùng đường truyền thông và nơi truyền đang chuyển đổi tại thời gian không đúng có thể cản trở một thông điệp của nơi truyển khác.

Actknowledgments có thể là một byte đã được định nghĩa sẵn, như là một giá trị mà đã đồng hoá với bên nhận, hoặc là nút truyền có thể cho rằng có một nút nhận đuợc thông điệp của nó khi nó nhận được yêu cầu dữ liệu đáp lại. Nếu nút truyền không nhận được phản ứng phản ứng mà nó yêu cầu, nút này sẽ cho rằng có một lỗi và truyền lại hoặc là làm các công việc khác.

Khi truyền tới một nút mà không có bộ đệm nhận hoặc có bộ đệm kích thước nhỏ, bên truyền có thể dùng Actknowlegments để chắc chắn rằng sẽ có sự tham gia của nút nào đó vào quá trình truyền nhận trước khi gửi một gói dữ liệu. Nút truyền bắt đầu bằng cách gửi một byte tới tín hiệu mà nó muốn gửi dữ liệu. Khi nút nhìn thấy byte, nút này gửi một Actknowlegment và sau đó tập trung vào việc xem xét ở đầu vào nối tiếp của nó. Khi nơi nhận nhận được Actknowgment , nó biết rằng đã an toàn và yên tâm cho việc gửi dữ liệu.

Kiểm tra lỗi(Error Checking):

Bên nhận có thể dùng Error- Checking để kiểm tra rằng mọi dữ liệu đến đúng đích. Cách để kiểm tra thông điệp lỗi bao gồm gửi dữ liệu bản sao và byte kiểm tra lỗi.

Một dạng đơn giản kiểm tra lỗi đơn giản là dùng dữ liệu bản sao. Bên truyền gửi mỗi thông điệp 2 lần và bên nhận kiểm tra để xác định rằng 2 thông điệp này đều giống nhau trong cả 2 lần. Tất nhiên, điều đó có nghĩa rằng mỗi thông điệp sẽ mất gấp đôi thời gian truyền. Nó quả thật là hữu ích khi gửi một dữ liệu ngắn quan trong thỉnh thoảng, bất chợt. Nhiều điều khiển hồng ngoại dùng dạng thức này.

Mộtcách thức khác của eror-checking là gửi một byte kiểm tra lỗi cùng với dữ liệu. Checksum tính toán bằng cách thực hiện một vài phép tính toán số học hoặc logic trên byte đó trong thông điệp. Vì thế sẽ thêm một byte kiểm tra vào trong mỗi byte của thông điệp và dùng byte sau cùng để làm kết quả của sự kiểm tra.

Nơi nhận lặp đi lặp lại quá trình tính toán này, và nếu nó nhận được các kết quả khác nhau thì có nghĩa rằng nó không nhận được đúng dữ liệu đã gửi.
Một dạng khác của byte kiểm tra là CRC( cyclic redundancy code ) dùng nhiều tính toán phức tạp và thực tế hơn nhiều so với checksum. Một vài giao thức phổ biến dùng trong file truyền đi là Kermit, Xmodem, Ymodem, và Zmodem.

Khi một nút phát hiện lỗi hoặc nhận được thông điệp mà nó không hiểu, nó sẽ có gắng thông báo cho nút gửi dữ liệu để báo rằng nút này có thể truyền thử lại hoặc truyền dữ liệu khác để trả lời trong hoàn cảnh này. Sau một số lần cố gằng gửi, nếu nút truyền đủ biết để giữ nút để hiển thị một thông điệp lỗi, một âm thanh báo hiệu, hoặc làm điều gì đó để cho con người biết hoạt động của lỗi và sau đó tiếp tục với trách nhiệm tốt nhất mà nó có thể làm được.

Nút nhận nên biết phải làm gì với thông điệp ngắn hơn so với mong đợi. Dù đợi mãi cho thông điệp kế thúc, nó phải có sự kiện time out và để cho nơi điều hành biết là có một lỗi. Nơi điều hành có thể gửi lại sau đó hoặc là tiếp tục. Nếu không thì mạng có thể bị treo trong sự chờ đợi kết thúc.
Về Đầu Trang Go down
https://dhdt.forumvi.com
Sponsored content





Giới thiệu giao tiếp cổng Communicactions (Com) Empty
Bài gửiTiêu đề: Re: Giới thiệu giao tiếp cổng Communicactions (Com)   Giới thiệu giao tiếp cổng Communicactions (Com) I_icon_minitime

Về Đầu Trang Go down
 
Giới thiệu giao tiếp cổng Communicactions (Com)
Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Wellcome to Electronics Design :: Điện Tử :: Lập Trình-
Chuyển đến