Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I need to connect to serial port on a system bus which uses 9 data bits.

Is there an off the shelf card which will handle that? Obviously it would need to come with driver software to return 9 (actually 16, with 7 unused) bits for each character sent on the serial bus.

share|improve this question
1  
Which serial adapters have you tried already? Can you provide some context as to why you need this? Specific abilities your are expecting (beyond 'return 9-bits') –  techie007 Apr 11 '12 at 23:08
    
as far as I know serial means bits are sent one after another, are you maybe looking for a parallel solution? (I have to add that I am just getting into this topic) [1] en.wikipedia.org/wiki/Serial_communication [2] en.wikipedia.org/wiki/Parallel_communication –  Baarn Apr 11 '12 at 23:09
1  
How critical is the application? 8 bit buses often have a 9th bit for parity which you could usurp as an extra data bit. You'll want to provide a lot more detail about what you are up to... –  Paul Apr 11 '12 at 23:23
    
+1 "Which serial adapters have you tried already?" None "Can you provide some context as to why you need this?" No need (and commercal confidential)- just 9 data bits is all. "Specific abilities your are expecting (beyond 'return 9-bits')" None - just 9 data bits inplace of the more common 8. –  Mawg Apr 12 '12 at 1:59
    
Walter, Nope, not parallel. @Paul +1 There are kudlges which use the parity bit as a 9th data bit, but they tricky to implement (I have researched). I will not implement. I might - in extremis - purchase usch a solution, but strongly prefer a full 9 bits data plus start/stop/parity. –  Mawg Apr 12 '12 at 2:02
add comment

closed as off topic by Joel Coehoorn, random Apr 29 '12 at 1:02

Questions on Super User are expected to relate to computer software or computer hardware within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer

up vote 2 down vote accepted

There are USARTs that can send & receive 9 bits of data (with or without parity) per character. But I have only seen them as an integrated device that is part of a microcontroller or System-on-a Chip (SoC). I've seen 9-bit capable USARTs on Atmel ARM and AVR SoCs. The typical 8250 or 16550 type of UART (that are considered PC-compatible devices) are not capable of 9-bit characters, and are limited to 8 bits per character.

However there are various kludges to use 8 data bits plus the parity bit to simulate a 9-bit character.

Use The PC's UART With 9-Bit Protocols

Can I Do 9-bit Serial Communication Instead of 7 or 8 bits?

One scheme for transmission is to reconfigure the UART parity (to ODD or EVEN) before each byte transmission, according to the 9th data bit and the parity of the lower 8 bits. Receiving a 9-bit character is a bit trickier, as each character's 9th bit has to be derived from the parity of the received 8 bits plus whether or not there was a parity error for that byte. This scheme should be done at the device driver level, and may significantly reduce data throughput.

ADDENDUM

I am looking for a natie 9-bit card + driver for Windows.

Then this is technically a shopping question, which is not allowed on SU.

However I did find exactly what you are asking for (and it's not cheap):

Sealevel 7205e : Low Profile PCI Express RS-232, RS-422, RS-485 Serial Interface

The 7205e low-profile PCI Express serial interface provides two serial ports configurable for RS-232, RS-422 or RS-485. Each serial port utilizes a 16C950 UART with 128-byte Tx/Rx FIFOs that enables data rates to 921.6K bps for reliable high-speed communications in data intensive applications. This high-performance UART includes 9-bit framing support and is fully software compatible with legacy 16550 applications. In addition, the 14.7456 oscillator and UART's flexible clock prescalar supports the widest range of standard and non-standard baud rates.

share|improve this answer
    
+1 I am using an Atmel UC3 wth native 9 bit support & need to handle the communication on a PC. So, I am looking for a natie 9-bit card + driver for Windows. Walter, Nope, not parallel. @Paul +1 There are kudlges which use the parity bit as a 9th data bit, but they tricky to implement (I have researched). I will not implement. I might - in extremis - purchase usch a solution, but strongly prefer a full 9 bits data plus start/stop/parity. – Mawg just now edit –  Mawg Apr 12 '12 at 2:03
1  
@Mawg - added PCIe board solution to answer. –  sawdust Apr 12 '12 at 2:32
    
+1 Wow, you weren't joking "not cheap" $260!! I will keep googling, I think :-) –  Mawg Apr 12 '12 at 3:45
1  
@Mawg - Use those low-cost adapters with caution. Apparently they use the MCS9901CV UART. A manufactuer's datasheet for the actual chip does not mention 9-bit capability, only the standard 5, 6, 7 & 8-bit data lengths. asix.com.tw/… A press release by MOSCHIP claims 9-bit data capability, but I can't find a datasheet that actually supports that marketing claim. 9-bit data length does not seem to be a capability of any of the 16C450 / 550 / Extended 550 / 650 UARTs. –  sawdust Apr 12 '12 at 11:08
1  
The 16950 (or 16C950) UART is the chip you want for 9-bit data. dcd.pl/workspace/documentation/gen/d16950_ds.pdf –  sawdust Apr 12 '12 at 11:42
show 2 more comments

Not the answer you're looking for? Browse other questions tagged or ask your own question.