#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2018-12-08 14:45-0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" #. (itstool) path: info/title #: article.translate.xml:4 msgid "Serial and UART Tutorial" msgstr "" #. (itstool) path: affiliation/address #: article.translate.xml:9 #, no-wrap msgid "uhclem@FreeBSD.org" msgstr "" #. (itstool) path: authorgroup/author #: article.translate.xml:8 msgid "" "FrankDurda <_:address-1/> " msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:14 msgid "FreeBSD is a registered trademark of the FreeBSD Foundation." msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:16 msgid "" "Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows " "NT are either registered trademarks or trademarks of Microsoft Corporation " "in the United States and/or other countries." msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:20 msgid "" "Many of the designations used by manufacturers and sellers to distinguish " "their products are claimed as trademarks. Where those designations appear in " "this document, and the FreeBSD Project was aware of the trademark claim, the " "designations have been followed by the or the ® symbol." msgstr "" #. (itstool) path: info/pubdate #. (itstool) path: info/releaseinfo #: article.translate.xml:28 article.translate.xml:30 msgid "" "$FreeBSD: head/en_US.ISO8859-1/articles/serial-uart/article.xml 44692 2014-" "04-29 02:46:48Z wblock $" msgstr "" #. (itstool) path: abstract/para #: article.translate.xml:33 msgid "This article talks about using serial hardware with FreeBSD." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:38 msgid "The UART: What it is and how it works" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:40 msgid "" "Copyright © 1996 Frank Durda IV uhclem@FreeBSD.org, " "All Rights Reserved. 13 January 1996." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:43 msgid "" "The Universal Asynchronous Receiver/Transmitter (UART) controller is the key " "component of the serial communications subsystem of a computer. The UART " "takes bytes of data and transmits the individual bits in a sequential " "fashion. At the destination, a second UART re-assembles the bits into " "complete bytes." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:50 msgid "" "Serial transmission is commonly used with modems and for non-networked " "communication between computers, terminals and other devices." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:54 msgid "" "There are two primary forms of serial transmission: Synchronous and " "Asynchronous. Depending on the modes that are supported by the hardware, the " "name of the communication sub-system will usually include a A if it supports Asynchronous communications, and a S if it supports Synchronous communications. Both forms are described " "below." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:62 msgid "Some common acronyms are:" msgstr "" #. (itstool) path: blockquote/para #: article.translate.xml:65 msgid "UART Universal Asynchronous Receiver/Transmitter" msgstr "" #. (itstool) path: blockquote/para #: article.translate.xml:69 msgid "USART Universal Synchronous-Asynchronous Receiver/Transmitter" msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:74 msgid "Synchronous Serial Transmission" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:76 msgid "" "Synchronous serial transmission requires that the sender and receiver share " "a clock with one another, or that the sender provide a strobe or other " "timing signal so that the receiver knows when to read the " "next bit of the data. In most forms of serial Synchronous communication, if " "there is no data available at a given instant to transmit, a fill character " "must be sent instead so that data is always being transmitted. Synchronous " "communication is usually more efficient because only data bits are " "transmitted between sender and receiver, and synchronous communication can " "be more costly if extra wiring and circuits are required to share a clock " "signal between the sender and receiver." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:90 msgid "" "A form of Synchronous transmission is used with printers and fixed disk " "devices in that the data is sent on one set of wires while a clock or strobe " "is sent on a different wire. Printers and fixed disk devices are not " "normally serial devices because most fixed disk interface standards send an " "entire word of data for each clock or strobe signal by using a separate wire " "for each bit of the word. In the PC industry, these are known as Parallel " "devices." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:99 msgid "" "The standard serial communications hardware in the PC does not support " "Synchronous operations. This mode is described here for comparison purposes " "only." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:105 msgid "Asynchronous Serial Transmission" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:107 msgid "" "Asynchronous transmission allows data to be transmitted without the sender " "having to send a clock signal to the receiver. Instead, the sender and " "receiver must agree on timing parameters in advance and special bits are " "added to each word which are used to synchronize the sending and receiving " "units." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:114 msgid "" "When a word is given to the UART for Asynchronous transmissions, a bit " "called the \"Start Bit\" is added to the beginning of each word that is to " "be transmitted. The Start Bit is used to alert the receiver that a word of " "data is about to be sent, and to force the clock in the receiver into " "synchronization with the clock in the transmitter. These two clocks must be " "accurate enough to not have the frequency drift by more than 10% during the " "transmission of the remaining bits in the word. (This requirement was set in " "the days of mechanical teleprinters and is easily met by modern electronic " "equipment.)" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:126 msgid "" "After the Start Bit, the individual bits of the word of data are sent, with " "the Least Significant Bit (LSB) being sent first. Each bit in the " "transmission is transmitted for exactly the same amount of time as all of " "the other bits, and the receiver looks at the wire at " "approximately halfway through the period assigned to each bit to determine " "if the bit is a 1 or a 0. For example, " "if it takes two seconds to send each bit, the receiver will examine the " "signal to determine if it is a 1 or a 0 after one second has passed, then it will wait two seconds and then " "examine the value of the next bit, and so on." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:140 msgid "" "The sender does not know when the receiver has looked at the " "value of the bit. The sender only knows when the clock says to begin " "transmitting the next bit of the word." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:145 msgid "" "When the entire data word has been sent, the transmitter may add a Parity " "Bit that the transmitter generates. The Parity Bit may be used by the " "receiver to perform simple error checking. Then at least one Stop Bit is " "sent by the transmitter." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:151 msgid "" "When the receiver has received all of the bits in the data word, it may " "check for the Parity Bits (both sender and receiver must agree on whether a " "Parity Bit is to be used), and then the receiver looks for a Stop Bit. If " "the Stop Bit does not appear when it is supposed to, the UART considers the " "entire word to be garbled and will report a Framing Error to the host " "processor when the data word is read. The usual cause of a Framing Error is " "that the sender and receiver clocks were not running at the same speed, or " "that the signal was interrupted." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:162 msgid "" "Regardless of whether the data was received correctly or not, the UART " "automatically discards the Start, Parity and Stop bits. If the sender and " "receiver are configured identically, these bits are not passed to the host." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:167 msgid "" "If another word is ready for transmission, the Start Bit for the new word " "can be sent as soon as the Stop Bit for the previous word has been sent." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:171 msgid "" "Because asynchronous data is self synchronizing, if there is " "no data to transmit, the transmission line can be idle." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:177 msgid "Other UART Functions" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:179 msgid "" "In addition to the basic job of converting data from parallel to serial for " "transmission and from serial to parallel on reception, a UART will usually " "provide additional circuits for signals that can be used to indicate the " "state of the transmission media, and to regulate the flow of data in the " "event that the remote device is not prepared to accept more data. For " "example, when the device connected to the UART is a modem, the modem may " "report the presence of a carrier on the phone line while the computer may be " "able to instruct the modem to reset itself or to not take calls by raising " "or lowering one more of these extra signals. The function of each of these " "additional signals is defined in the EIA RS232-C standard." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:195 msgid "The RS232-C and V.24 Standards" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:197 msgid "" "In most computer systems, the UART is connected to circuitry that generates " "signals that comply with the EIA RS232-C specification. There is also a " "CCITT standard named V.24 that mirrors the specifications included in RS232-" "C." msgstr "" #. (itstool) path: sect3/title #: article.translate.xml:204 msgid "RS232-C Bit Assignments (Marks and Spaces)" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:206 msgid "" "In RS232-C, a value of 1 is called a Mark and a value of 0 is called a Space. When a communication line is idle, the line is said to be " "Marking, or transmitting continuous 1 " "values." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:213 msgid "" "The Start bit always has a value of 0 (a Space). The Stop " "Bit always has a value of 1 (a Mark). This means that " "there will always be a Mark (1) to Space (0) transition on the line at the " "start of every word, even when multiple word are transmitted back to back. " "This guarantees that sender and receiver can resynchronize their clocks " "regardless of the content of the data bits that are being transmitted." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:223 msgid "" "The idle time between Stop and Start bits does not have to be an exact " "multiple (including zero) of the bit rate of the communication link, but " "most UARTs are designed this way for simplicity." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:228 msgid "" "In RS232-C, the \"Marking\" signal (a 1) is represented " "by a voltage between -2 VDC and -12 VDC, and a \"Spacing\" signal (a " "0) is represented by a voltage between 0 and +12 VDC. The " "transmitter is supposed to send +12 VDC or -12 VDC, and the receiver is " "supposed to allow for some voltage loss in long cables. Some transmitters in " "low power devices (like portable computers) sometimes use only +5 VDC and -5 " "VDC, but these values are still acceptable to a RS232-C receiver, provided " "that the cable lengths are short." msgstr "" #. (itstool) path: sect3/title #: article.translate.xml:242 msgid "RS232-C Break Signal" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:244 msgid "" "RS232-C also specifies a signal called a Break, which is " "caused by sending continuous Spacing values (no Start or Stop bits). When " "there is no electricity present on the data circuit, the line is considered " "to be sending Break." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:251 msgid "" "The Break signal must be of a duration longer than the " "time it takes to send a complete byte plus Start, Stop and Parity bits. Most " "UARTs can distinguish between a Framing Error and a Break, but if the UART " "cannot do this, the Framing Error detection can be used to identify Breaks." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:258 msgid "" "In the days of teleprinters, when numerous printers around the country were " "wired in series (such as news services), any unit could cause a " "Break by temporarily opening the entire circuit so that " "no current flowed. This was used to allow a location with urgent news to " "interrupt some other location that was currently sending information." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:266 msgid "" "In modern systems there are two types of Break signals. If the Break is " "longer than 1.6 seconds, it is considered a \"Modem Break\", and some modems " "can be programmed to terminate the conversation and go on-hook or enter the " "modems' command mode when the modem detects this signal. If the Break is " "smaller than 1.6 seconds, it signifies a Data Break and it is up to the " "remote computer to respond to this signal. Sometimes this form of Break is " "used as an Attention or Interrupt signal and sometimes is accepted as a " "substitute for the ASCII CONTROL-C character." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:278 msgid "" "Marks and Spaces are also equivalent to Holes and No " "Holes in paper tape systems." msgstr "" #. (itstool) path: note/para #: article.translate.xml:283 msgid "" "Breaks cannot be generated from paper tape or from any other byte value, " "since bytes are always sent with Start and Stop bit. The UART is usually " "capable of generating the continuous Spacing signal in response to a special " "command from the host processor." msgstr "" #. (itstool) path: sect3/title #: article.translate.xml:292 msgid "RS232-C DTE and DCE Devices" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:294 msgid "" "The RS232-C specification defines two types of equipment: the Data Terminal " "Equipment (DTE) and the Data Carrier Equipment (DCE). Usually, the DTE " "device is the terminal (or computer), and the DCE is a modem. Across the " "phone line at the other end of a conversation, the receiving modem is also a " "DCE device and the computer that is connected to that modem is a DTE device. " "The DCE device receives signals on the pins that the DTE device transmits " "on, and vice versa." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:304 msgid "" "When two devices that are both DTE or both DCE must be connected together " "without a modem or a similar media translator between them, a NULL modem " "must be used. The NULL modem electrically re-arranges the cabling so that " "the transmitter output is connected to the receiver input on the other " "device, and vice versa. Similar translations are performed on all of the " "control signals so that each device will see what it thinks are DCE (or DTE) " "signals from the other device." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:314 msgid "" "The number of signals generated by the DTE and DCE devices are not " "symmetrical. The DTE device generates fewer signals for the DCE device than " "the DTE device receives from the DCE." msgstr "" #. (itstool) path: sect3/title #: article.translate.xml:321 msgid "RS232-C Pin Assignments" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:323 msgid "" "The EIA RS232-C specification (and the ITU equivalent, V.24) calls for a " "twenty-five pin connector (usually a DB25) and defines the purpose of most " "of the pins in that connector." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:328 msgid "" "In the IBM Personal Computer and similar systems, a subset of RS232-C " "signals are provided via nine pin connectors (DB9). The signals that are not " "included on the PC connector deal mainly with synchronous operation, and " "this transmission mode is not supported by the UART that IBM selected for " "use in the IBM PC." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:335 msgid "" "Depending on the computer manufacturer, a DB25, a DB9, or both types of " "connector may be used for RS232-C communications. (The IBM PC also uses a " "DB25 connector for the parallel printer interface which causes some " "confusion.)" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:341 msgid "" "Below is a table of the RS232-C signal assignments in the DB25 and DB9 " "connectors." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:348 msgid "DB25 RS232-C Pin" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:348 msgid "DB9 IBM PC Pin" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:349 msgid "EIA Circuit Symbol" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:350 msgid "CCITT Circuit Symbol" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:350 msgid "Common Name" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:351 msgid "Signal Source" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:352 article.translate.xml:1177 #: article.translate.xml:1489 msgid "Description" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:358 article.translate.xml:429 #: article.translate.xml:1347 article.translate.xml:1352 #: article.translate.xml:1357 article.translate.xml:1363 #: article.translate.xml:1364 article.translate.xml:1486 #: article.translate.xml:1494 article.translate.xml:1495 #: article.translate.xml:1503 article.translate.xml:1510 #: article.translate.xml:1511 article.translate.xml:1521 #: article.translate.xml:1639 article.translate.xml:1654 #: article.translate.xml:1660 article.translate.xml:1667 #: article.translate.xml:1668 msgid "1" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:359 article.translate.xml:363 #: article.translate.xml:423 article.translate.xml:439 #: article.translate.xml:440 article.translate.xml:441 #: article.translate.xml:442 article.translate.xml:443 #: article.translate.xml:449 article.translate.xml:450 #: article.translate.xml:451 article.translate.xml:452 #: article.translate.xml:453 article.translate.xml:459 #: article.translate.xml:460 article.translate.xml:461 #: article.translate.xml:462 article.translate.xml:463 #: article.translate.xml:469 article.translate.xml:479 #: article.translate.xml:489 article.translate.xml:499 #: article.translate.xml:509 article.translate.xml:519 #: article.translate.xml:529 article.translate.xml:530 #: article.translate.xml:539 article.translate.xml:559 #: article.translate.xml:560 article.translate.xml:561 #: article.translate.xml:579 article.translate.xml:589 #: article.translate.xml:599 article.translate.xml:600 #: article.translate.xml:602 msgid "-" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:360 msgid "AA" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:361 msgid "101" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:362 msgid "PG/FG" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:364 msgid "Frame/Protective Ground" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:368 article.translate.xml:379 #: article.translate.xml:1485 msgid "2" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:369 article.translate.xml:378 #: article.translate.xml:1061 msgid "3" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:370 msgid "BA" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:371 msgid "103" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:372 msgid "TD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:373 article.translate.xml:393 #: article.translate.xml:493 article.translate.xml:533 #: article.translate.xml:543 article.translate.xml:553 #: article.translate.xml:563 article.translate.xml:583 #: article.translate.xml:593 msgid "DTE" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:374 msgid "Transmit Data" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:380 msgid "BB" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:381 msgid "104" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:382 msgid "RD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:383 article.translate.xml:403 #: article.translate.xml:413 article.translate.xml:433 #: article.translate.xml:473 article.translate.xml:483 #: article.translate.xml:503 article.translate.xml:513 #: article.translate.xml:523 article.translate.xml:573 #: article.translate.xml:603 msgid "DCE" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:384 msgid "Receive Data" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:388 article.translate.xml:549 #: article.translate.xml:1353 msgid "4" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:389 article.translate.xml:418 #: article.translate.xml:1338 msgid "7" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:390 msgid "CA" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:391 msgid "105" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:392 msgid "RTS" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:394 msgid "Request to Send" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:398 article.translate.xml:419 msgid "5" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:399 article.translate.xml:428 #: article.translate.xml:1359 msgid "8" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:400 msgid "CB" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:401 msgid "106" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:402 msgid "CTS" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:404 msgid "Clear to Send" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:408 article.translate.xml:409 #: article.translate.xml:1339 msgid "6" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:410 msgid "CC" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:411 msgid "107" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:412 msgid "DSR" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:414 msgid "Data Set Ready" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:420 msgid "AV" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:421 msgid "102" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:422 msgid "SG/GND" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:424 msgid "Signal Ground" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:430 msgid "CF" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:431 msgid "109" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:432 msgid "DCD/CD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:434 msgid "Data Carrier Detect" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:438 article.translate.xml:569 msgid "9" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:444 article.translate.xml:454 #: article.translate.xml:464 msgid "Reserved for Test" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:448 msgid "10" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:458 msgid "11" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:468 msgid "12" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:470 msgid "CI" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:471 msgid "122" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:472 msgid "SRLSD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:474 msgid "Sec. Recv. Line Signal Detector" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:478 msgid "13" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:480 msgid "SCB" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:481 msgid "121" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:482 msgid "SCTS" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:484 msgid "Secondary Clear to Send" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:488 article.translate.xml:1365 msgid "14" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:490 msgid "SBA" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:491 msgid "118" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:492 msgid "STD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:494 msgid "Secondary Transmit Data" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:498 msgid "15" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:500 msgid "DB" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:501 msgid "114" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:502 article.translate.xml:592 msgid "TSET" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:504 article.translate.xml:594 msgid "Trans. Sig. Element Timing" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:508 msgid "16" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:510 msgid "SBB" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:511 msgid "119" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:512 msgid "SRD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:514 msgid "Secondary Received Data" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:518 msgid "17" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:520 msgid "DD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:521 msgid "115" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:522 msgid "RSET" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:524 msgid "Receiver Signal Element Timing" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:528 msgid "18" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:531 msgid "141" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:532 msgid "LOOP" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:534 msgid "Local Loopback" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:538 article.translate.xml:1067 msgid "19" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:540 msgid "SCA" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:541 msgid "120" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:542 msgid "SRS" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:544 msgid "Secondary Request to Send" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:548 msgid "20" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:550 msgid "CD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:551 msgid "108.2" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:552 msgid "DTR" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:554 msgid "Data Terminal Ready" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:558 msgid "21" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:562 msgid "RDL" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:564 msgid "Remote Digital Loopback" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:568 msgid "22" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:570 msgid "CE" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:571 msgid "125" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:572 msgid "RI" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:574 msgid "Ring Indicator" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:578 article.translate.xml:1073 msgid "23" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:580 msgid "CH" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:581 msgid "111" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:582 msgid "DSRS" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:584 msgid "Data Signal Rate Selector" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:588 msgid "24" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:590 msgid "DA" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:591 msgid "113" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:598 msgid "25" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:601 msgid "142" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:604 msgid "Test Mode" msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:613 msgid "Bits, Baud and Symbols" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:615 msgid "" "Baud is a measurement of transmission speed in asynchronous communication. " "Because of advances in modem communication technology, this term is " "frequently misused when describing the data rates in newer devices." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:620 msgid "" "Traditionally, a Baud Rate represents the number of bits that are actually " "being sent over the media, not the amount of data that is actually moved " "from one DTE device to the other. The Baud count includes the overhead bits " "Start, Stop and Parity that are generated by the sending UART and removed by " "the receiving UART. This means that seven-bit words of data actually take 10 " "bits to be completely transmitted. Therefore, a modem capable of moving 300 " "bits per second from one place to another can normally only move 30 7-bit " "words if Parity is used and one Start and Stop bit are present." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:632 msgid "" "If 8-bit data words are used and Parity bits are also used, the data rate " "falls to 27.27 words per second, because it now takes 11 bits to send the " "eight-bit words, and the modem still only sends 300 bits per second." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:637 msgid "" "The formula for converting bytes per second into a baud rate and vice versa " "was simple until error-correcting modems came along. These modems receive " "the serial stream of bits from the UART in the host computer (even when " "internal modems are used the data is still frequently serialized) and " "converts the bits back into bytes. These bytes are then combined into " "packets and sent over the phone line using a Synchronous transmission method." " This means that the Stop, Start, and Parity bits added by the UART in the " "DTE (the computer) were removed by the modem before transmission by the " "sending modem. When these bytes are received by the remote modem, the remote " "modem adds Start, Stop and Parity bits to the words, converts them to a " "serial format and then sends them to the receiving UART in the remote " "computer, who then strips the Start, Stop and Parity bits." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:653 msgid "" "The reason all these extra conversions are done is so that the two modems " "can perform error correction, which means that the receiving modem is able " "to ask the sending modem to resend a block of data that was not received " "with the correct checksum. This checking is handled by the modems, and the " "DTE devices are usually unaware that the process is occurring." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:661 msgid "" "By striping the Start, Stop and Parity bits, the additional bits of data " "that the two modems must share between themselves to perform error-" "correction are mostly concealed from the effective transmission rate seen by " "the sending and receiving DTE equipment. For example, if a modem sends ten 7-" "bit words to another modem without including the Start, Stop and Parity " "bits, the sending modem will be able to add 30 bits of its own information " "that the receiving modem can use to do error-correction without impacting " "the transmission speed of the real data." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:672 msgid "" "The use of the term Baud is further confused by modems that perform " "compression. A single 8-bit word passed over the telephone line might " "represent a dozen words that were transmitted to the sending modem. The " "receiving modem will expand the data back to its original content and pass " "that data to the receiving DTE." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:679 msgid "" "Modern modems also include buffers that allow the rate that bits move across " "the phone line (DCE to DCE) to be a different speed than the speed that the " "bits move between the DTE and DCE on both ends of the conversation. Normally " "the speed between the DTE and DCE is higher than the DCE to DCE speed " "because of the use of compression by the modems." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:687 msgid "" "Because the number of bits needed to describe a byte varied during the trip " "between the two machines plus the differing bits-per-seconds speeds that are " "used present on the DTE-DCE and DCE-DCE links, the usage of the term Baud to " "describe the overall communication speed causes problems and can " "misrepresent the true transmission speed. So Bits Per Second (bps) is the " "correct term to use to describe the transmission rate seen at the DCE to DCE " "interface and Baud or Bits Per Second are acceptable terms to use when a " "connection is made between two systems with a wired connection, or if a " "modem is in use that is not performing error-correction or compression." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:700 msgid "" "Modern high speed modems (2400, 9600, 14,400, and 19,200bps) in reality " "still operate at or below 2400 baud, or more accurately, 2400 Symbols per " "second. High speed modem are able to encode more bits of data into each " "Symbol using a technique called Constellation Stuffing, which is why the " "effective bits per second rate of the modem is higher, but the modem " "continues to operate within the limited audio bandwidth that the telephone " "system provides. Modems operating at 28,800 and higher speeds have variable " "Symbol rates, but the technique is the same." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:713 msgid "The IBM Personal Computer UART" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:715 msgid "" "Starting with the original IBM Personal Computer, IBM selected the National " "Semiconductor INS8250 UART for use in the IBM PC Parallel/Serial Adapter. " "Subsequent generations of compatible computers from IBM and other vendors " "continued to use the INS8250 or improved versions of the National " "Semiconductor UART family." msgstr "" #. (itstool) path: sect3/title #: article.translate.xml:723 msgid "National Semiconductor UART Family Tree" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:725 msgid "" "There have been several versions and subsequent generations of the INS8250 " "UART. Each major version is described below." msgstr "" #. (itstool) path: sect3/programlisting #: article.translate.xml:730 #, no-wrap msgid "" "INS8250 -> INS8250B\n" " \\\n" " \\\n" " \\-> INS8250A -> INS82C50A\n" " \\\n" " \\\n" " \\-> NS16450 -> NS16C450\n" " \\\n" " \\\n" " \\-> NS16550 -> NS16550A -> PC16550D" msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:743 msgid "INS8250" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:746 msgid "" "This part was used in the original IBM PC and IBM PC/XT. The original name " "for this part was the INS8250 ACE (Asynchronous Communications Element) and " "it is made from NMOS technology." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:751 msgid "" "The 8250 uses eight I/O ports and has a one-byte send and a one-byte receive " "buffer. This original UART has several race conditions and other flaws. The " "original IBM BIOS includes code to work around these flaws, but this made " "the BIOS dependent on the flaws being present, so subsequent parts like the " "8250A, 16450 or 16550 could not be used in the original IBM PC or IBM PC/XT." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:763 msgid "INS8250-B" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:766 msgid "" "This is the slower speed of the INS8250 made from NMOS technology. It " "contains the same problems as the original INS8250." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:773 msgid "INS8250A" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:776 msgid "" "An improved version of the INS8250 using XMOS technology with various " "functional flaws corrected. The INS8250A was used initially in PC clone " "computers by vendors who used clean BIOS designs. Because of " "the corrections in the chip, this part could not be used with a BIOS " "compatible with the INS8250 or INS8250B." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:788 msgid "INS82C50A" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:791 msgid "" "This is a CMOS version (low power consumption) of the INS8250A and has " "similar functional characteristics." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:798 msgid "NS16450" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:801 msgid "" "Same as NS8250A with improvements so it can be used with faster CPU bus " "designs. IBM used this part in the IBM AT and updated the IBM BIOS to no " "longer rely on the bugs in the INS8250." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:809 msgid "NS16C450" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:812 msgid "This is a CMOS version (low power consumption) of the NS16450." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:818 msgid "NS16550" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:821 msgid "" "Same as NS16450 with a 16-byte send and receive buffer but the buffer design " "was flawed and could not be reliably be used." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:828 msgid "NS16550A" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:831 msgid "" "Same as NS16550 with the buffer flaws corrected. The 16550A and its " "successors have become the most popular UART design in the PC industry, " "mainly due to its ability to reliably handle higher data rates on operating " "systems with sluggish interrupt response times." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:841 msgid "NS16C552" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:844 msgid "" "This component consists of two NS16C550A CMOS UARTs in a single package." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:850 msgid "PC16550D" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:853 msgid "" "Same as NS16550A with subtle flaws corrected. This is revision D of the " "16550 family and is the latest design available from National Semiconductor." msgstr "" #. (itstool) path: sect3/title #: article.translate.xml:863 msgid "The NS16550AF and the PC16550D are the same thing" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:865 msgid "" "National reorganized their part numbering system a few years ago, and the " "NS16550AFN no longer exists by that name. (If you have a NS16550AFN, look at " "the date code on the part, which is a four digit number that usually starts " "with a nine. The first two digits of the number are the year, and the last " "two digits are the week in that year when the part was packaged. If you have " "a NS16550AFN, it is probably a few years old.)" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:874 msgid "" "The new numbers are like PC16550DV, with minor differences in the suffix " "letters depending on the package material and its shape. (A description of " "the numbering system can be found below.)" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:879 msgid "" "It is important to understand that in some stores, you may pay $15(US) for a " "NS16550AFN made in 1990 and in the next bin are the new PC16550DN parts with " "minor fixes that National has made since the AFN part was in production, the " "PC16550DN was probably made in the past six months and it costs half (as low " "as $5(US) in volume) as much as the NS16550AFN because they are readily " "available." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:888 msgid "" "As the supply of NS16550AFN chips continues to shrink, the price will " "probably continue to increase until more people discover and accept that the " "PC16550DN really has the same function as the old part number." msgstr "" #. (itstool) path: sect3/title #: article.translate.xml:895 msgid "National Semiconductor Part Numbering System" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:897 msgid "" "The older NSnnnnnrqp part numbers are now of the " "format PCnnnnnrgp." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:901 msgid "" "The r is the revision field. The current revision " "of the 16550 from National Semiconductor is D." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:905 msgid "" "The p is the package-type field. The types are:" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:912 msgid "\"F\"" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:913 msgid "QFP" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:914 msgid "(quad flat pack) L lead type" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:918 msgid "\"N\"" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:919 msgid "DIP" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:920 msgid "(dual inline package) through hole straight lead type" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:925 msgid "\"V\"" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:926 msgid "LPCC" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:927 msgid "(lead plastic chip carrier) J lead type" msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:933 msgid "" "The g is the product grade field. If an " "I precedes the package-type letter, it indicates an " "industrial grade part, which has higher specs than a standard " "part but not as high as Military Specification (Milspec) component. This is " "an optional field." msgstr "" #. (itstool) path: sect3/para #: article.translate.xml:941 msgid "" "So what we used to call a NS16550AFN (DIP Package) is now called a PC16550DN " "or PC16550DIN." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:947 msgid "Other Vendors and Similar UARTs" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:949 msgid "" "Over the years, the 8250, 8250A, 16450 and 16550 have been licensed or " "copied by other chip vendors. In the case of the 8250, 8250A and 16450, the " "exact circuit (the megacell) was licensed to many vendors, " "including Western Digital and Intel. Other vendors reverse-engineered the " "part or produced emulations that had similar behavior." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:957 msgid "" "In internal modems, the modem designer will frequently emulate the 8250A/" "16450 with the modem microprocessor, and the emulated UART will frequently " "have a hidden buffer consisting of several hundred bytes. Because of the " "size of the buffer, these emulations can be as reliable as a 16550A in their " "ability to handle high speed data. However, most operating systems will " "still report that the UART is only a 8250A or 16450, and may not make " "effective use of the extra buffering present in the emulated UART unless " "special drivers are used." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:968 msgid "" "Some modem makers are driven by market forces to abandon a design that has " "hundreds of bytes of buffer and instead use a 16550A UART so that the " "product will compare favorably in market comparisons even though the " "effective performance may be lowered by this action." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:974 msgid "" "A common misconception is that all parts with 16550A written " "on them are identical in performance. There are differences, and in some " "cases, outright flaws in most of these 16550A clones." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:979 msgid "" "When the NS16550 was developed, the National Semiconductor obtained several " "patents on the design and they also limited licensing, making it harder for " "other vendors to provide a chip with similar features. Because of the " "patents, reverse-engineered designs and emulations had to avoid infringing " "the claims covered by the patents. Subsequently, these copies almost never " "perform exactly the same as the NS16550A or PC16550D, which are the parts " "most computer and modem makers want to buy but are sometimes unwilling to " "pay the price required to get the genuine part." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:991 msgid "" "Some of the differences in the clone 16550A parts are unimportant, while " "others can prevent the device from being used at all with a given operating " "system or driver. These differences may show up when using other drivers, or " "when particular combinations of events occur that were not well tested or " "considered in the Windows driver." " This is because most modem vendors and 16550-clone makers use the Microsoft " "drivers from Windows for " "Workgroups 3.11 and the Microsoft MS-DOS utility as the " "primary tests for compatibility with the NS16550A. This over-simplistic " "criteria means that if a different operating system is used, problems could " "appear due to subtle differences between the clones and genuine components." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1005 msgid "" "National Semiconductor has made available a program named " "COMTEST that performs compatibility tests " "independent of any OS drivers. It should be remembered that the purpose of " "this type of program is to demonstrate the flaws in the products of the " "competition, so the program will report major as well as extremely subtle " "differences in behavior in the part being tested." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1014 msgid "" "In a series of tests performed by the author of this document in 1994, " "components made by National Semiconductor, TI, StarTech, and CMD as well as " "megacells and emulations embedded in internal modems were tested with " "COMTEST. A difference count for some of these components is listed below. " "Because these tests were performed in 1994, they may not reflect the current " "performance of the given product from a vendor." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1023 msgid "" "It should be noted that COMTEST normally aborts when an excessive number or " "certain types of problems have been detected. As part of this testing, " "COMTEST was modified so that it would not abort no matter how many " "differences were encountered." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1033 msgid "Vendor" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1034 msgid "Part Number" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1035 msgid "Errors (aka \"differences\" reported)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1041 article.translate.xml:1047 #: article.translate.xml:1053 msgid "National" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1042 msgid "(PC16550DV)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1043 article.translate.xml:1049 #: article.translate.xml:1055 article.translate.xml:1345 #: article.translate.xml:1346 article.translate.xml:1351 #: article.translate.xml:1358 article.translate.xml:1487 #: article.translate.xml:1493 article.translate.xml:1502 #: article.translate.xml:1504 article.translate.xml:1512 #: article.translate.xml:1519 article.translate.xml:1520 #: article.translate.xml:1528 article.translate.xml:1529 #: article.translate.xml:1530 article.translate.xml:1640 #: article.translate.xml:1646 article.translate.xml:1647 #: article.translate.xml:1653 article.translate.xml:1661 msgid "0" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1048 msgid "(NS16550AFN)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1054 msgid "(NS16C552V)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1059 msgid "TI" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1060 msgid "(TL16550AFN)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1065 msgid "CMD" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1066 msgid "(16C550PE)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1071 msgid "StarTech" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1072 msgid "(ST16C550J)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1077 msgid "Rockwell" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1078 msgid "" "Reference modem with internal 16550 or an emulation (RC144DPi/C3000-25)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1080 msgid "117" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1084 msgid "Sierra" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1085 msgid "Modem with an internal 16550 (SC11951/SC11351)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1087 msgid "91" msgstr "" #. (itstool) path: note/para #: article.translate.xml:1094 msgid "" "To date, the author of this document has not found any non-National parts " "that report zero differences using the COMTEST program. It should also be " "noted that National has had five versions of the 16550 over the years and " "the newest parts behave a bit differently than the classic NS16550AFN that " "is considered the benchmark for functionality. COMTEST appears to turn a " "blind eye to the differences within the National product line and reports no " "errors on the National parts (except for the original 16550) even when there " "are official erratas that describe bugs in the A, B and C revisions of the " "parts, so this bias in COMTEST must be taken into account." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1108 msgid "" "It is important to understand that a simple count of differences from " "COMTEST does not reveal a lot about what differences are important and which " "are not. For example, about half of the differences reported in the two " "modems listed above that have internal UARTs were caused by the clone UARTs " "not supporting five- and six-bit character modes. The real 16550, 16450, and " "8250 UARTs all support these modes and COMTEST checks the functionality of " "these modes so over fifty differences are reported. However, almost no " "modern modem supports five- or six-bit characters, particularly those with " "error-correction and compression capabilities. This means that the " "differences related to five- and six-bit character modes can be discounted." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1122 msgid "" "Many of the differences COMTEST reports have to do with timing. In many of " "the clone designs, when the host reads from one port, the status bits in " "some other port may not update in the same amount of time (some faster, some " "slower) as a real NS16550AFN and COMTEST looks for " "these differences. This means that the number of differences can be " "misleading in that one device may only have one or two differences but they " "are extremely serious, and some other device that updates the status " "registers faster or slower than the reference part (that would probably " "never affect the operation of a properly written driver) could have dozens " "of differences reported." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1135 msgid "" "COMTEST can be used as a screening tool to alert the administrator to the " "presence of potentially incompatible components that might cause problems or " "have to be handled as a special case." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1140 msgid "" "If you run COMTEST on a 16550 that is in a modem or a modem is attached to " "the serial port, you need to first issue a ATE0&W command to the modem " "so that the modem will not echo any of the test characters. If you forget to " "do this, COMTEST will report at least this one difference:" msgstr "" #. (itstool) path: sect2/screen #: article.translate.xml:1147 #, no-wrap msgid "Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61" msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:1151 msgid "8250/16450/16550 Registers" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1153 msgid "" "The 8250/16450/16550 UART occupies eight contiguous I/O port addresses. In " "the IBM PC, there are two defined locations for these eight ports and they " "are known collectively as COM1 and COM2. The makers of PC-clones and add-on cards have created two " "additional areas known as COM3 and COM4, but these extra COM ports conflict with other hardware on some " "systems. The most common conflict is with video adapters that provide IBM " "8514 emulation." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1162 msgid "" "COM1 is located from 0x3f8 to 0x3ff and normally uses " "IRQ 4. COM2 is located from 0x2f8 to 0x2ff and normally " "uses IRQ 3. COM3 is located from 0x3e8 to 0x3ef and has " "no standardized IRQ. COM4 is located from 0x2e8 to " "0x2ef and has no standardized IRQ." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1168 msgid "" "A description of the I/O ports of the 8250/16450/16550 UART is provided " "below." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1175 msgid "I/O Port" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1176 msgid "Access Allowed" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1183 article.translate.xml:1192 #: article.translate.xml:1201 msgid "+0x00" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1184 msgid "write (DLAB==0)" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1185 msgid "Transmit Holding Register (THR)." msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1186 msgid "" "Information written to this port are treated as data words and will be " "transmitted by the UART." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1193 msgid "read (DLAB==0)" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1194 msgid "Receive Buffer Register (RBR)." msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1194 msgid "" "Any data words received by the UART form the serial link are accessed by the " "host by reading this port." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1202 article.translate.xml:1213 msgid "write/read (DLAB==1)" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1203 msgid "Divisor Latch LSB (DLL)" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1203 msgid "" "This value will be divided from the master input clock (in the IBM PC, the " "master clock is 1.8432MHz) and the resulting clock will determine the baud " "rate of the UART. This register holds bits 0 thru 7 of the divisor." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1212 article.translate.xml:1223 msgid "+0x01" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1214 msgid "Divisor Latch MSB (DLH)" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1214 msgid "" "This value will be divided from the master input clock (in the IBM PC, the " "master clock is 1.8432MHz) and the resulting clock will determine the baud " "rate of the UART. This register holds bits 8 thru 15 of the divisor." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1224 msgid "write/read (DLAB==0)" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1232 msgid "Interrupt Enable Register (IER)" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1233 msgid "" "The 8250/16450/16550 UART classifies events into one of four categories. " "Each category can be configured to generate an interrupt when any of the " "events occurs. The 8250/16450/16550 UART generates a single external " "interrupt signal regardless of how many events in the enabled categories " "have occurred. It is up to the host processor to respond to the interrupt " "and then poll the enabled interrupt categories (usually all categories have " "interrupts enabled) to determine the true cause(s) of the interrupt." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1248 article.translate.xml:1325 #: article.translate.xml:1436 article.translate.xml:1566 #: article.translate.xml:1691 article.translate.xml:1765 #: article.translate.xml:1846 msgid "Bit 7" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1249 article.translate.xml:1254 #: article.translate.xml:1259 article.translate.xml:1264 #: article.translate.xml:1370 article.translate.xml:1375 #: article.translate.xml:1449 article.translate.xml:1454 #: article.translate.xml:1692 article.translate.xml:1697 #: article.translate.xml:1702 msgid "Reserved, always 0." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1253 article.translate.xml:1330 #: article.translate.xml:1442 article.translate.xml:1578 #: article.translate.xml:1696 article.translate.xml:1773 #: article.translate.xml:1852 msgid "Bit 6" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1258 article.translate.xml:1369 #: article.translate.xml:1448 article.translate.xml:1587 #: article.translate.xml:1701 article.translate.xml:1781 #: article.translate.xml:1858 msgid "Bit 5" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1263 article.translate.xml:1374 #: article.translate.xml:1453 article.translate.xml:1594 #: article.translate.xml:1706 article.translate.xml:1790 #: article.translate.xml:1864 msgid "Bit 4" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1268 article.translate.xml:1379 #: article.translate.xml:1458 article.translate.xml:1602 #: article.translate.xml:1718 article.translate.xml:1796 #: article.translate.xml:1870 msgid "Bit 3" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1269 msgid "" "Enable Modem Status Interrupt (EDSSI). Setting this bit to \"1\" allows the " "UART to generate an interrupt when a change occurs on one or more of the " "status lines." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1276 article.translate.xml:1387 #: article.translate.xml:1464 article.translate.xml:1611 #: article.translate.xml:1727 article.translate.xml:1804 #: article.translate.xml:1878 msgid "Bit 2" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1277 msgid "" "Enable Receiver Line Status Interrupt (ELSI) Setting this bit to \"1\" " "causes the UART to generate an interrupt when the an error (or a BREAK " "signal) has been detected in the incoming data." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1284 article.translate.xml:1396 #: article.translate.xml:1469 article.translate.xml:1621 #: article.translate.xml:1734 article.translate.xml:1810 #: article.translate.xml:1886 msgid "Bit 1" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1285 msgid "" "Enable Transmitter Holding Register Empty Interrupt (ETBEI) Setting this bit " "to \"1\" causes the UART to generate an interrupt when the UART has room for " "one or more additional characters that are to be transmitted." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1293 article.translate.xml:1405 #: article.translate.xml:1537 article.translate.xml:1627 #: article.translate.xml:1741 article.translate.xml:1820 #: article.translate.xml:1894 msgid "Bit 0" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1294 msgid "" "Enable Received Data Available Interrupt (ERBFI) Setting this bit to \"1\" " "causes the UART to generate an interrupt when the UART has received enough " "characters to exceed the trigger level of the FIFO, or the FIFO timer has " "expired (stale data), or a single character has been received when the FIFO " "is disabled." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1307 article.translate.xml:1417 msgid "+0x02" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1308 msgid "write" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1319 msgid "" "FIFO Control Register (FCR) (This port does not exist on the 8250 and 16450 " "UART.)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1326 msgid "Receiver Trigger Bit #1" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1331 msgid "Receiver Trigger Bit #0" msgstr "" #. (itstool) path: entry/para #: article.translate.xml:1332 msgid "" "These two bits control at what point the receiver is to generate an " "interrupt when the FIFO is active." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1340 msgid "How many words are received before an interrupt is generated" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1380 msgid "" "DMA Mode Select. If Bit 0 is set to \"1\" (FIFOs enabled), setting this bit " "changes the operation of the -RXRDY and -TXRDY signals from Mode 0 to Mode 1." "" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1388 msgid "" "Transmit FIFO Reset. When a \"1\" is written to this bit, the contents of " "the FIFO are discarded. Any word currently being transmitted will be sent " "intact. This function is useful in aborting transfers." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1397 msgid "" "Receiver FIFO Reset. When a \"1\" is written to this bit, the contents of " "the FIFO are discarded. Any word currently being assembled in the shift " "register will be received intact." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1406 msgid "" "16550 FIFO Enable. When set, both the transmit and receive FIFOs are enabled." " Any contents in the holding register, shift registers or FIFOs are lost " "when FIFOs are enabled or disabled." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1418 msgid "read" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1431 msgid "Interrupt Identification Register" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1437 article.translate.xml:1443 msgid "FIFOs enabled. On the 8250/16450 UART, this bit is zero." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1459 msgid "Interrupt ID Bit #2. On the 8250/16450 UART, this bit is zero." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1465 msgid "Interrupt ID Bit #1" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1470 msgid "" "Interrupt ID Bit #0.These three bits combine to report the category of event " "that caused the interrupt that is in progress. These categories have " "priorities, so if multiple categories of events occur at the same time, the " "UART will report the more important events first and the host must resolve " "the events in the order they are reported. All events that caused the " "current interrupt must be resolved before any new interrupts will be " "generated. (This is a limitation of the PC architecture.)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1488 msgid "Priority" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1496 msgid "First" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1497 msgid "Received Error (OE, PE, BI, or FE)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1505 article.translate.xml:1513 msgid "Second" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1506 msgid "Received Data Available" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1514 msgid "Trigger level identification (Stale data in receive buffer)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1522 msgid "Third" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1523 msgid "Transmitter has room for more words (THRE)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1531 msgid "Fourth" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1532 msgid "Modem Status Change (-CTS, -DSR, -RI, or -DCD)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1538 msgid "" "Interrupt Pending Bit. If this bit is set to \"0\", then at least one " "interrupt is pending." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1547 msgid "+0x03" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1548 article.translate.xml:1678 #: article.translate.xml:1752 article.translate.xml:1833 #: article.translate.xml:1906 msgid "write/read" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1561 msgid "Line Control Register (LCR)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1567 msgid "" "Divisor Latch Access Bit (DLAB). When set, access to the data transmit/" "receive register (THR/RBR) and the Interrupt Enable Register (IER) is " "disabled. Any access to these ports is now redirected to the Divisor Latch " "Registers. Setting this bit, loading the Divisor Registers, and clearing " "DLAB should be done with interrupts disabled." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1579 msgid "" "Set Break. When set to \"1\", the transmitter begins to transmit continuous " "Spacing until this bit is set to \"0\". This overrides any bits of " "characters that are being transmitted." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1588 msgid "" "Stick Parity. When parity is enabled, setting this bit causes parity to " "always be \"1\" or \"0\", based on the value of Bit 4." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1595 msgid "" "Even Parity Select (EPS). When parity is enabled and Bit 5 is \"0\", setting " "this bit causes even parity to be transmitted and expected. Otherwise, odd " "parity is used." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1603 msgid "" "Parity Enable (PEN). When set to \"1\", a parity bit is inserted between the " "last bit of the data and the Stop Bit. The UART will also expect parity to " "be present in the received data." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1612 msgid "" "Number of Stop Bits (STB). If set to \"1\" and using 5-bit data words, 1.5 " "Stop Bits are transmitted and expected in each data word. For 6, 7 and 8-bit " "data words, 2 Stop Bits are transmitted and expected. When this bit is set " "to \"0\", one Stop Bit is used on each data word." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1622 msgid "Word Length Select Bit #1 (WLSB1)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1628 msgid "Word Length Select Bit #0 (WLSB0)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1633 msgid "Together these bits specify the number of bits in each data word." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1641 msgid "Word Length" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1648 msgid "5 Data Bits" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1655 msgid "6 Data Bits" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1662 msgid "7 Data Bits" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1669 msgid "8 Data Bits" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1677 msgid "+0x04" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1686 msgid "Modem Control Register (MCR)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1707 msgid "" "Loop-Back Enable. When set to \"1\", the UART transmitter and receiver are " "internally connected together to allow diagnostic operations. In addition, " "the UART modem control outputs are connected to the UART modem control " "inputs. CTS is connected to RTS, DTR is connected to DSR, OUT1 is connected " "to RI, and OUT 2 is connected to DCD." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1719 msgid "" "OUT 2. An auxiliary output that the host processor may set high or low. In " "the IBM PC serial adapter (and most clones), OUT 2 is used to tri-state " "(disable) the interrupt signal from the 8250/16450/16550 UART." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1728 msgid "" "OUT 1. An auxiliary output that the host processor may set high or low. This " "output is not used on the IBM PC serial adapter." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1735 msgid "" "Request to Send (RTS). When set to \"1\", the output of the UART -RTS line " "is Low (Active)." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1742 msgid "" "Data Terminal Ready (DTR). When set to \"1\", the output of the UART -DTR " "line is Low (Active)." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1751 msgid "+0x05" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1760 msgid "Line Status Register (LSR)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1766 msgid "" "Error in Receiver FIFO. On the 8250/16450 UART, this bit is zero. This bit " "is set to \"1\" when any of the bytes in the FIFO have one or more of the " "following error conditions: PE, FE, or BI." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1774 msgid "" "Transmitter Empty (TEMT). When set to \"1\", there are no words remaining in " "the transmit FIFO or the transmit shift register. The transmitter is " "completely idle." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1782 msgid "" "Transmitter Holding Register Empty (THRE). When set to \"1\", the FIFO (or " "holding register) now has room for at least one additional word to transmit. " "The transmitter may still be transmitting when this bit is set to \"1\"." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1791 msgid "Break Interrupt (BI). The receiver has detected a Break signal." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1797 msgid "" "Framing Error (FE). A Start Bit was detected but the Stop Bit did not appear " "at the expected time. The received word is probably garbled." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1805 msgid "Parity Error (PE). The parity bit was incorrect for the word received." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1811 msgid "" "Overrun Error (OE). A new word was received and there was no room in the " "receive buffer. The newly-arrived word in the shift register is discarded. " "On 8250/16450 UARTs, the word in the holding register is discarded and the " "newly- arrived word is put in the holding register." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1821 msgid "" "Data Ready (DR) One or more words are in the receive FIFO that the host may " "read. A word must be completely received and moved from the shift register " "into the FIFO (or holding register for 8250/16450 designs) before this bit " "is set." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1832 msgid "+0x06" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1841 msgid "Modem Status Register (MSR)" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1847 msgid "" "Data Carrier Detect (DCD). Reflects the state of the DCD line on the UART." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1853 msgid "Ring Indicator (RI). Reflects the state of the RI line on the UART." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1859 msgid "Data Set Ready (DSR). Reflects the state of the DSR line on the UART." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1865 msgid "Clear To Send (CTS). Reflects the state of the CTS line on the UART." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1871 msgid "" "Delta Data Carrier Detect (DDCD). Set to \"1\" if the -DCD line has changed " "state one more time since the last time the MSR was read by the host." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1879 msgid "" "Trailing Edge Ring Indicator (TERI). Set to \"1\" if the -RI line has had a " "low to high transition since the last time the MSR was read by the host." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1887 msgid "" "Delta Data Set Ready (DDSR). Set to \"1\" if the -DSR line has changed state " "one more time since the last time the MSR was read by the host." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1895 msgid "" "Delta Clear To Send (DCTS). Set to \"1\" if the -CTS line has changed state " "one more time since the last time the MSR was read by the host." msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1905 msgid "+0x07" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:1907 msgid "" "Scratch Register (SCR). This register performs no function in the UART. Any " "value can be written by the host to this location and read by the host later " "on." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:1918 msgid "Beyond the 16550A UART" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1920 msgid "" "Although National Semiconductor has not offered any components compatible " "with the 16550 that provide additional features, various other vendors have. " "Some of these components are described below. It should be understood that " "to effectively utilize these improvements, drivers may have to be provided " "by the chip vendor since most of the popular operating systems do not " "support features beyond those provided by the 16550." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:1931 msgid "ST16650" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:1934 msgid "" "By default this part is similar to the NS16550A, but an extended 32-byte " "send and receive buffer can be optionally enabled. Made by StarTech." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:1941 msgid "TIL16660" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:1944 msgid "" "By default this part behaves similar to the NS16550A, but an extended 64-" "byte send and receive buffer can be optionally enabled. Made by Texas " "Instruments." msgstr "" #. (itstool) path: varlistentry/term #: article.translate.xml:1951 msgid "Hayes ESP" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:1954 msgid "" "This proprietary plug-in card contains a 2048-byte send and receive buffer, " "and supports data rates to 230.4Kbit/sec. Made by Hayes." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1961 msgid "" "In addition to these dumb UARTs, many vendors produce " "intelligent serial communication boards. This type of design usually " "provides a microprocessor that interfaces with several UARTs, processes and " "buffers the data, and then alerts the main PC processor when necessary. " "Because the UARTs are not directly accessed by the PC processor in this type " "of communication system, it is not necessary for the vendor to use UARTs " "that are compatible with the 8250, 16450, or the 16550 UART. This leaves the " "designer free to components that may have better performance characteristics." "" msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:1975 msgid "Configuring the sio driver" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:1977 msgid "" "The sio driver provides support for NS8250-, NS16450-, " "NS16550 and NS16550A-based EIA RS-232C (CCITT V.24) communications " "interfaces. Several multiport cards are supported as well. See the " "sio4 manual page for detailed technical documentation." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:1984 msgid "Digi International (DigiBoard) PC/8" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1986 msgid "" "Contributed by Andrew Webster awebster@pubnix.net. " "26 August 1995." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:1989 msgid "" "Here is a config snippet from a machine with a Digi International PC/8 with " "16550. It has 8 modems connected to these 8 lines, and they work just great. " "Do not forget to add options COM_MULTIPORT or it will not " "work very well!" msgstr "" #. (itstool) path: sect2/programlisting #: article.translate.xml:1995 #, no-wrap msgid "" "device sio4 at isa? port 0x100 flags 0xb05\n" "device sio5 at isa? port 0x108 flags 0xb05\n" "device sio6 at isa? port 0x110 flags 0xb05\n" "device sio7 at isa? port 0x118 flags 0xb05\n" "device sio8 at isa? port 0x120 flags 0xb05\n" "device sio9 at isa? port 0x128 flags 0xb05\n" "device sio10 at isa? port 0x130 flags 0xb05\n" "device sio11 at isa? port 0x138 flags 0xb05 irq 9" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2004 msgid "" "The trick in setting this up is that the MSB of the flags represent the last " "SIO port, in this case 11 so flags are 0xb05." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:2010 msgid "Boca 16" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2012 msgid "" "Contributed by Don Whiteside whiteside@acm.org. 26 " "August 1995." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2015 msgid "" "The procedures to make a Boca 16 port board with FreeBSD are pretty " "straightforward, but you will need a couple things to make it work:" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2021 msgid "" "You either need the kernel sources installed so you can recompile the " "necessary options or you will need someone else to compile it for you. The 2." "0.5 default kernel does not come with multiport support " "enabled and you will need to add a device entry for each port anyways." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2030 msgid "" "Two, you will need to know the interrupt and IO setting for your Boca Board " "so you can set these options properly in the kernel." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2036 msgid "" "One important note — the actual UART chips for the Boca 16 are in the " "connector box, not on the internal board itself. So if you have it " "unplugged, probes of those ports will fail. I have never tested booting with " "the box unplugged and plugging it back in, and I suggest you do not either." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2043 msgid "" "If you do not already have a custom kernel configuration file set up, refer " "to Kernel Configuration chapter of the FreeBSD " "Handbook for general procedures. The following are the specifics for the " "Boca 16 board and assume you are using the kernel name MYKERNEL and editing " "with vi." msgstr "" #. (itstool) path: para/programlisting #: article.translate.xml:2054 #, no-wrap msgid "options COM_MULTIPORT" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2052 msgid "Add the line <_:programlisting-1/> to the config file." msgstr "" #. (itstool) path: step/para #: article.translate.xml:2060 msgid "" "Where the current device sion " "lines are, you will need to add 16 more devices. The following example is " "for a Boca Board with an interrupt of 3, and a base IO address 100h. The IO " "address for Each port is +8 hexadecimal from the previous port, thus the " "100h, 108h, 110h... addresses." msgstr "" #. (itstool) path: step/programlisting #: article.translate.xml:2068 #, no-wrap msgid "" "device sio1 at isa? port 0x100 flags 0x1005\n" "device sio2 at isa? port 0x108 flags 0x1005\n" "device sio3 at isa? port 0x110 flags 0x1005\n" "device sio4 at isa? port 0x118 flags 0x1005\n" "…\n" "device sio15 at isa? port 0x170 flags 0x1005\n" "device sio16 at isa? port 0x178 flags 0x1005 irq 3" msgstr "" #. (itstool) path: para/programlisting #: article.translate.xml:2085 #, no-wrap msgid " flags\n" " 0x1005" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2076 msgid "" "The flags entry must be changed from this example " "unless you are using the exact same sio assignments. Flags are set according " "to 0xMYY where " "M indicates the minor number of the master port " "(the last port on a Boca 16) and YY indicates if " "FIFO is enabled or disabled(enabled), IRQ sharing is used(yes) and if there " "is an AST/4 compatible IRQ control register(no). In this example, <_:" "programlisting-1/> indicates that the master port is sio16. If I added " "another board and assigned sio17 through sio28, the flags for all 16 ports " "on that board would be 0x1C05, where 1C indicates the " "minor number of the master port. Do not change the 05 setting." msgstr "" #. (itstool) path: step/para #: article.translate.xml:2095 msgid "" "Save and complete the kernel configuration, recompile, install and reboot. " "Presuming you have successfully installed the recompiled kernel and have it " "set to the correct address and IRQ, your boot message should indicate the " "successful probe of the Boca ports as follows: (obviously the sio numbers, " "IO and IRQ could be different)" msgstr "" #. (itstool) path: step/screen #: article.translate.xml:2103 #, no-wrap msgid "" "sio1 at 0x100-0x107 flags 0x1005 on isa\n" "sio1: type 16550A (multiport)\n" "sio2 at 0x108-0x10f flags 0x1005 on isa\n" "sio2: type 16550A (multiport)\n" "sio3 at 0x110-0x117 flags 0x1005 on isa\n" "sio3: type 16550A (multiport)\n" "sio4 at 0x118-0x11f flags 0x1005 on isa\n" "sio4: type 16550A (multiport)\n" "sio5 at 0x120-0x127 flags 0x1005 on isa\n" "sio5: type 16550A (multiport)\n" "sio6 at 0x128-0x12f flags 0x1005 on isa\n" "sio6: type 16550A (multiport)\n" "sio7 at 0x130-0x137 flags 0x1005 on isa\n" "sio7: type 16550A (multiport)\n" "sio8 at 0x138-0x13f flags 0x1005 on isa\n" "sio8: type 16550A (multiport)\n" "sio9 at 0x140-0x147 flags 0x1005 on isa\n" "sio9: type 16550A (multiport)\n" "sio10 at 0x148-0x14f flags 0x1005 on isa\n" "sio10: type 16550A (multiport)\n" "sio11 at 0x150-0x157 flags 0x1005 on isa\n" "sio11: type 16550A (multiport)\n" "sio12 at 0x158-0x15f flags 0x1005 on isa\n" "sio12: type 16550A (multiport)\n" "sio13 at 0x160-0x167 flags 0x1005 on isa\n" "sio13: type 16550A (multiport)\n" "sio14 at 0x168-0x16f flags 0x1005 on isa\n" "sio14: type 16550A (multiport)\n" "sio15 at 0x170-0x177 flags 0x1005 on isa\n" "sio15: type 16550A (multiport)\n" "sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa\n" "sio16: type 16550A (multiport master)" msgstr "" #. (itstool) path: para/screen #: article.translate.xml:2138 #, no-wrap msgid "# dmesg | more" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2136 msgid "" "If the messages go by too fast to see, <_:screen-1/> will show you the boot " "messages." msgstr "" #. (itstool) path: step/para #: article.translate.xml:2143 msgid "" "Next, appropriate entries in /dev for the devices must " "be made using the /dev/MAKEDEV script. This step can be " "omitted if you are running FreeBSD 5.X with a kernel that has devfs5 support compiled in." msgstr "" #. (itstool) path: step/para #: article.translate.xml:2150 msgid "" "If you do need to create the /dev entries, run the " "following as root:" msgstr "" #. (itstool) path: step/screen #: article.translate.xml:2153 #, no-wrap msgid "" "# cd /dev\n" "# ./MAKEDEV tty1\n" "# ./MAKEDEV cua1\n" "(everything in between)\n" "# ./MAKEDEV ttyg\n" "# ./MAKEDEV cuag" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2160 msgid "" "If you do not want or need call-out devices for some reason, you can " "dispense with making the cua* devices." msgstr "" #. (itstool) path: para/screen #: article.translate.xml:2170 #, no-wrap msgid "# echo at > ttyd*" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2166 msgid "" "If you want a quick and sloppy way to make sure the devices are working, you " "can simply plug a modem into each port and (as root) <_:screen-1/> for each " "device you have made. You should see the RX lights " "flash for each working port." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:2179 msgid "Support for Cheap Multi-UART Cards" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2181 msgid "" "Contributed by Helge Oldach hmo@sep.hamburg.com, " "September 1999" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2185 msgid "" "Ever wondered about FreeBSD support for your 20$ multi-I/O card with two (or " "more) COM ports, sharing IRQs? Here is how:" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2189 msgid "" "Usually the only option to support these kind of boards is to use a distinct " "IRQ for each port. For example, if your CPU board has an on-board " "COM1 port (aka sio0–I/O address " "0x3F8 and IRQ 4) and you have an extension board with two UARTs, you will " "commonly need to configure them as COM2 (aka " "sio1–I/O address 0x2F8 and IRQ 3), and the third port " "(aka sio2) as I/O 0x3E8 and IRQ 5. Obviously this is a " "waste of IRQ resources, as it should be basically possible to run both " "extension board ports using a single IRQ with the COM_MULTIPORT configuration described in the previous sections." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2204 msgid "" "Such cheap I/O boards commonly have a 4 by 3 jumper matrix for the COM " "ports, similar to the following:" msgstr "" #. (itstool) path: sect2/programlisting #: article.translate.xml:2207 #, no-wrap msgid "" " o o o *\n" "Port A |\n" " o * o *\n" "Port B |\n" " o * o o\n" "IRQ 2 3 4 5" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2214 msgid "" "Shown here is port A wired for IRQ 5 and port B wired for IRQ 3. The IRQ " "columns on your specific board may vary—other boards may supply jumpers for " "IRQs 3, 4, 5, and 7 instead." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2219 msgid "" "One could conclude that wiring both ports for IRQ 3 using a handcrafted wire-" "made jumper covering all three connection points in the IRQ 3 column would " "solve the issue, but no. You cannot duplicate IRQ 3 because the output " "drivers of each UART are wired in a totem pole fashion, so if " "one of the UARTs drives IRQ 3, the output signal will not be what you would " "expect. Depending on the implementation of the extension board or your " "motherboard, the IRQ 3 line will continuously stay up, or always stay low." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2230 msgid "" "You need to decouple the IRQ drivers for the two UARTs, so that the IRQ line " "of the board only goes up if (and only if) one of the UARTs asserts a IRQ, " "and stays low otherwise. The solution was proposed by Joerg Wunsch " "j@ida.interface-business.de: To solder up a wired-or " "consisting of two diodes (Germanium or Schottky-types strongly preferred) " "and a 1 kOhm resistor. Here is the schematic, starting from the 4 by 3 " "jumper field above:" msgstr "" #. (itstool) path: sect2/programlisting #: article.translate.xml:2240 #, no-wrap msgid "" " Diode\n" " +---------->|-------+\n" " / |\n" " o * o o | 1 kOhm\n" "Port A +----|######|-------+\n" " o * o o | |\n" "Port B `-------------------+ ==+==\n" " o * o o | Ground\n" " \\ |\n" " +--------->|-------+\n" "IRQ 2 3 4 5 Diode" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2252 msgid "" "The cathodes of the diodes are connected to a common point, together with a " "1 kOhm pull-down resistor. It is essential to connect the resistor to ground " "to avoid floating of the IRQ line on the bus." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2257 msgid "" "Now we are ready to configure a kernel. Staying with this example, we would " "configure:" msgstr "" #. (itstool) path: sect2/programlisting #: article.translate.xml:2260 #, no-wrap msgid "" "# standard on-board COM1 port\n" "device sio0 at isa? port \"IO_COM1\" flags 0x10\n" "# patched-up multi-I/O extension board\n" "options COM_MULTIPORT\n" "device sio1 at isa? port \"IO_COM2\" flags 0x205\n" "device sio2 at isa? port \"IO_COM3\" flags 0x205 irq 3" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2267 msgid "" "Note that the flags setting for sio1 " "and sio2 is truly essential; refer to " "sio4 for details. (Generally, the 2 in the " "\"flags\" attribute refers to sio2 which holds the IRQ, " "and you surely want a 5 low nibble.) With kernel verbose " "mode turned on this should yield something similar to this:" msgstr "" #. (itstool) path: sect2/screen #: article.translate.xml:2277 #, no-wrap msgid "" "sio0: irq maps: 0x1 0x11 0x1 0x1\n" "sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa\n" "sio0: type 16550A\n" "sio1: irq maps: 0x1 0x9 0x1 0x1\n" "sio1 at 0x2f8-0x2ff flags 0x205 on isa\n" "sio1: type 16550A (multiport)\n" "sio2: irq maps: 0x1 0x9 0x1 0x1\n" "sio2 at 0x3e8-0x3ef irq 3 flags 0x205 on isa\n" "sio2: type 16550A (multiport master)" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:2287 msgid "" "Though /sys/i386/isa/sio.c is somewhat cryptic with its " "use of the irq maps array above, the basic idea is that you " "observe 0x1 in the first, third, and fourth place. This " "means that the corresponding IRQ was set upon output and cleared after, " "which is just what we would expect. If your kernel does not display this " "behavior, most likely there is something wrong with your wiring." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:2299 msgid "Configuring the cy driver" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2301 msgid "Contributed by Alex Nash. 6 June 1996." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2304 msgid "" "The Cyclades multiport cards are based on the cy driver " "instead of the usual sio driver used by other multiport " "cards. Configuration is a simple matter of:" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2311 msgid "" "Add the cy device to your kernel configuration (note " "that your irq and iomem settings may differ)." msgstr "" #. (itstool) path: step/programlisting #: article.translate.xml:2315 #, no-wrap msgid "device cy0 at isa? irq 10 iomem 0xd4000 iosiz 0x2000" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2319 msgid "Rebuild and install the new kernel." msgstr "" #. (itstool) path: footnote/para #: article.translate.xml:2325 msgid "" "You can omit this part if you are running FreeBSD 5.X with devfs5." msgstr "" #. (itstool) path: step/para #: article.translate.xml:2323 msgid "" "Make the device nodes by typing (the following example assumes an 8-port " "board)<_:footnote-1/>:" msgstr "" #. (itstool) path: step/screen #: article.translate.xml:2329 #, no-wrap msgid "" "# cd /dev\n" "# for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i " "ttyc$i;done" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2334 msgid "" "If appropriate, add dialup entries to /etc/ttys by " "duplicating serial device (ttyd) entries and using " "ttyc in place of ttyd. For example:" msgstr "" #. (itstool) path: step/programlisting #: article.translate.xml:2340 #, no-wrap msgid "" "ttyc0 \"/usr/libexec/getty std.38400\" unknown on insecure\n" "ttyc1 \"/usr/libexec/getty std.38400\" unknown on insecure\n" "ttyc2 \"/usr/libexec/getty std.38400\" unknown on insecure\n" "…\n" "ttyc7 \"/usr/libexec/getty std.38400\" unknown on insecure" msgstr "" #. (itstool) path: step/para #: article.translate.xml:2348 msgid "Reboot with the new kernel." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:2354 msgid "Configuring the si driver" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2356 msgid "" "Contributed by Nick Sayer nsayer@FreeBSD.org. 25 " "March 1998." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2359 msgid "" "The Specialix SI/XIO and SX multiport cards use the si " "driver. A single machine can have up to 4 host cards. The following host " "cards are supported:" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2365 msgid "ISA SI/XIO host card (2 versions)" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2366 msgid "EISA SI/XIO host card" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2367 msgid "PCI SI/XIO host card" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2368 msgid "ISA SX host card" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2369 msgid "PCI SX host card" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2372 msgid "" "Although the SX and SI/XIO host cards look markedly different, their " "functionality are basically the same. The host cards do not use I/O " "locations, but instead require a 32K chunk of memory. The factory " "configuration for ISA cards places this at 0xd0000-0xd7fff. They also require an IRQ. PCI cards will, of course, auto-" "configure themselves." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2380 msgid "" "You can attach up to 4 external modules to each host card. The external " "modules contain either 4 or 8 serial ports. They come in the following " "varieties:" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2385 msgid "SI 4 or 8 port modules. Up to 57600 bps on each port supported." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2388 msgid "" "XIO 8 port modules. Up to 115200 bps on each port supported. One type of XIO " "module has 7 serial and 1 parallel port." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:2392 msgid "" "SXDC 8 port modules. Up to 921600 bps on each port supported. Like XIO, a " "module is available with one parallel port as well." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2397 msgid "" "To configure an ISA host card, add the following line to your kernel " "configuration file, changing the numbers as appropriate:" msgstr "" #. (itstool) path: sect1/programlisting #: article.translate.xml:2401 #, no-wrap msgid "device si0 at isa? iomem 0xd0000 irq 11" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2403 msgid "" "Valid IRQ numbers are 9, 10, 11, 12 and 15 for SX ISA host cards and 11, 12 " "and 15 for SI/XIO ISA host cards." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2406 msgid "To configure an EISA or PCI host card, use this line:" msgstr "" #. (itstool) path: sect1/programlisting #: article.translate.xml:2408 #, no-wrap msgid "device si0" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2410 msgid "" "After adding the configuration entry, rebuild and install your new kernel." msgstr "" #. (itstool) path: note/para #: article.translate.xml:2414 msgid "" "The following step, is not necessary if you are using devfs5 in FreeBSD 5.X." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2418 msgid "" "After rebooting with the new kernel, you need to make the device nodes in " "/dev. The MAKEDEV script will take " "care of this for you. Count how many total ports you have and type:" msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:2423 #, no-wrap msgid "" "# cd /dev\n" "# ./MAKEDEV ttyAnn " "cuaAnn" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2426 msgid "(where nn is the number of ports)" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2429 msgid "" "If you want login prompts to appear on these ports, you will need to add " "lines like this to /etc/ttys:" msgstr "" #. (itstool) path: sect1/programlisting #: article.translate.xml:2433 #, no-wrap msgid "ttyA01 \"/usr/libexec/getty std.9600\" vt100 on insecure" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:2435 msgid "" "Change the terminal type as appropriate. For modems, dialup or unknown is fine." msgstr ""