Support Com-Servers

Hvilke forsinkelser skal man tage højde for i forbindelse med serielle protokoller?

Mange serielle protokoller (f.eks. 3964R) fungerer sådan, at de sendte datablokke bekræftes af den respektive modtager, f.eks. med tegnene ACK eller NACK. Tiden for denne bekræftelse overvåges ved hjælp af en timeout (ADT = acknowledgement delay time).


For at fastslå denne tid er forsinkelserne på transmissionslinjen såvel som i den serielle modtager af interesse.

Når masterens software har sendt datablokken til den serielle driver, skal følgende forsinkelser tilføjes til dimensioneringen af ADT for en direkte seriel forbindelse:

ADT = seriel overførselstid for datablok + seriel overførselstid for datablok + behandlingstid hos slaven

Et eksempel:

  • Længde på datablok: 100 bytes
  • Længde på bekræftelse: 1 byte
  • Seriel datahastighed: 9600 baud, ingen paritet, 1 startbit, 8 databits, 1 stopbit = ~ 1 ms / byte
  • Behandlingstid ved seriel terminalenhed: 2 ms
  • Minimum ADT: (100 byte + 1 byte) + 2 ms = ~103 ms

Hvis en seriel master og slave er forbundet via netværket og en Com-Server, skal den overførselstid på typisk 4 til 7 ms for kommunikation i begge retninger (option “network delay” = 0), som kræves af Com-Serveren, lægges til ovenstående værdi. Derudover skal der også tages højde for forsinkelser inden for netværket. Hvis følgende betingelser er opfyldt, kan man regne med en typisk værdi på ca. 1 til 2 ms:

  • Netværksbelastning <30%.
  • Ingen ARP-adresseopløsning, dvs. eksisterende TCP-forbindelse
  • ingen komponenter, der afbryder belastningen (switche, routere osv.)

Sammenlignet med det ovenfor beskrevne eksempel på en direkte seriel forbindelse vil kombinationen af netværk og Com-Server resultere i en typisk ekstra forsinkelse på ca. 10-18 ms:

(2 x 4-7 ms for Com-Server) + (2 x 1-2 ms for Netzwerk)

Yderligere information:

[Start of page]

No related posts found.