General Standards Corporation PCIe-SIO4BX2 User Manual
Four channel pcie high performance serial i/o featuring rs422/rs485/rs232 software configurable transceivers and 32k byte fifo buffers (256k byte total)
Summary of Contents for General Standards Corporation PCIe-SIO4BX2
Page 1
Four Channel PCIe High Performance Serial I/O Featuring RS422/RS485/RS232 Software Configurable Transceivers and 32K Byte FIFO Buffers (256K Byte total) RS-485 RS-422/V.11 RS-232/V.28 General Standards Corporation 8302A Whitesburg Drive Huntsville, AL 35802 Phone: (256) 880-8787 Fax: (256) 880-8788 URL: www.generalstandards.com E-mail: techsupport@generalstandards.com...
Page 2
General Standards Corporation does not assume any liability arising out of the application or use of any product or circuit described herein, nor is any license conveyed under any patent right of any rights of others.
CHAPTER 1: INTRODUCTION General Description The PCIe-SIO4BX2 is a four channel serial interface card which provides high speed, full-duplex, multi-protocol serial capability for PCIe applications. The PCIe-SIO4BX2 combines multi-protocol Dual Universal Serial Controllers, deep external FIFOs, and software selectable multi-protocol transceivers to provide four fully independent synchronous/asynchronous serial channels.
Figure 1-1 Block Diagram of PCIe-SIO4BX2 Z16C30 Universal Serial Controller The PCIe-SIO4BX2 is designed around the Z16C30 Universal Serial Controller( USC). The Z16C30 is a dual channel multi-protocol serial controller which may be software configured to satisfy a wide variety of serial communications applications.
General Standards will also work with customers to fabricate custom cables. Consult factory for details on custom cables. New Features The PCIe-SIO4BX2 has been enhanced with several new features. These include improved receive data status recording, timestamping of data, flexible FIFO memory allocation, sync/standard channel select, and channel reset. Rev NR...
CHAPTER 2: LOCAL SPACE REGISTERS Register Map The SIO4BX2 is accessed through three sets of registers – PCI Registers, USC Registers, and GSC Firmware Registers. The GSC Firmware Registers and USC Registers are referred to as Local Space Registers and are described below.
2.1.2 Board Control: Local Offset 0x0004 The Board Control Register defines the general control functions for the board. Board Reset 1 = Reset all Local Registers and FIFOs to their default values Notes: This bit will automatically clear to 0 following the board reset. Board Reset will NOT reset programmable oscillator.
2.1.3 Board Status: Local Offset 0x0008 The Board Status Register gives general overall status for a board. The Board Jumpers (D1:D0) are physical jumpers which can be used to distinguish between boards if multiple SIO4 boards are present in a system. D31:9 RESERVED 0 = Standard...
2.1.6 Channel RX Almost Flags: Local Offset 0x0014 / 0x0024 / 0x0034 / 0x0044 Defines the Almost Full and Almost Empty Flags for the Tx FIFO. The Almost Full/Empty Flags are status bits in the Channel Control/Status Register, and are edge-triggered interrupt sources to the Interrupt Registers. D31:16 RX Almost Full Flag Value Number of words from FIFO Full when the Almost Full Flag will be asserted...
D7:0 Channel Control Bits 1 = Reset USC ((Pulsed - will automatically clear to ‘0’) Notes: Following a USC Reset, the next access to the USC must be a write of 0x00 to Local Offset 0x100 (Ch1/2) or Local Offset 0x300 (Ch3/4). ...
Likewise, if a level interrupt is enabled and the interrupt source is true, the interrupt status will be reasserted immediately after clearing the interrupt, and an additional interrupt will be requested. 2.1.13 Interrupt Edge/Level: Local Offset 0x0068 The Interrupt Edge Register is an information only (read only) register. This register can be used by a generic driver to determine if the interrupt source is edge or level triggered.
Page 17
DCE/DTE Mode When DCE/DTE Mode is enabled (Bit D31=1), this bit set the mode to DCE (1) or DTE (0). DCE/DTE mode changes the direction of the signals at the IO Connector. D27:24 Transceiver Protocol Mode Transceiver Mode RS-422 / RS-485 RESERVED RS-232 RESERVED...
Page 18
D14:13 Cable RTS Output Source Output Source Notes USC_CTS field (D10:D9) must equal ‘11’ USC_CTS Output RTS Output Rx FIFO Almost Full ‘0’ Drive low ‘1’ Drive Hi D12:11 USC_DCD Direction Setup If DCD is used as GPIO, set this field to ‘00’ and set Pin Source Register D16:D15 for output / Pin Status Register D3 for input.
D5:3 USC_RxC Source The clock source must agree with the USC Clock setup (USC I/O Control Reg D5:3) to ensure the signal is not being driven by both the USC and the FPGA. USC_RxC Source USC IOCR D2:D0 Setup Prog Clock 000 (Input) Inverted Prog Clock 000 (Input)
This register allows boards to change functionality on each channel. Currently, a channel can only be defined as Standard or Sync. For SIO4BX-Sync information, please refer to the PCIe-SIO4BX2-SYNC manual. Channel 4 FW Type –> 01 = Standard / 04 = Sync D31:D24 Channel 3 FW Type –>...
2.1.17 Features Register: Local Offset 0x00FC (0x00197AF4) The Features Register allows software to account for added features in the firmware versions. Bits will be assigned as new features are added. See Appendix B for more details. D31:21 RESERVED 1 = No Rx Status byte (std only) D19:D18 10 = Internal Timestamp (std only) D17:D16...
Since the USC Reset physically resets the USC, the first access to the USC following the reset must reinitialize the BCR in the USC. To complete the Reset process, the user should write data 0x00 to USC base address offset 0x100 or 0x300 to correctly initialize the BCR.
2.2.4 USC Register Memory Map To access the USC in 8-bit mode, the driver is required to access the upper and lower bytes of each register independently. The odd address byte will access the upper byte of each register (D15-D8), and the even address byte will access the lower byte (D7-D0).
CHAPTER 3: PROGRAMMING Introduction This section addresses common programming questions when developing an application for the SIO4. General Standards has developed software libraries to simplify application development. These libraries handle many of the low-level issues described below, including Resets, FIFO programming, and DMA. These libraries may default the board to a “standard”...
3.2.3 FIFO Size Unlike previous SIO4 boards which had ordering options for different FIFO sizes, the PCIe-SIO4BX2 always uses 32k byte deep FIFOs. Board vs. Channel Registers Since four serial channels are implemented on a single board, some registers apply to the entire board, while others are unique to each channel.
Programmable Oscillator / Programmable Clocks Four On-Board Programmable Oscillators provide each channel with a unique programmable clock source. In order to program the oscillator, it is necessary to calculate and program values for different clock frequencies. General Standards has developed routines to calculate the necessary values for a given setup and program the clock generator.
cable RxC in the Pin Source Register. Since the FPGA will source both USC clocks, they must be programmed as inputs in the USC I/O Control Register. The preceding suggestions should work for most applications. The default Pin Source Register value should set the clocks to work with both scenarios –...
location for the transmit signals (TxC, TXD, RTS), and the receive signals will use these same signals as the receive inputs. Since signals are transmitted and received through the transceivers, this mode allows the setup to be verified (including signal polarity) without any external connections. Since external signals could interfere with loopback operation, all cables should be disconnected when running in external loopback mode.
Page 30
data, the transfer will complete with invalid results. This is the preferred mode for DMA operation. The FIFO Counters may be used to determine how much space is available for DMA so that the FIFO will never over/under run. Demand Mode DMA requires less software control, but runs the risk of losing data due to an incomplete transfer.
Since many features of the PCI9056 are not utilized in this design, it is beyond the scope of this document to duplicate the PCI9056 User’s Manual. Only those features, which will clarify areas specific to the PCIe-SIO4BX2 are detailed here. Please refer to the PCI9056 User’s Manual (See Related Publications) for more detailed information.
4.1.2 Local Configuration Registers The Local Configuration registers give information on the Local side implementation. These include the required memory size. The SIO4BX2 memory size is initialized to 4k Bytes. All other Local Registers initialize to the default values described in the PCI9056 Manual. 4.1.3 Runtime Registers The Runtime registers consist of mailbox registers, doorbell registers, and a general-purpose control register.
CHAPTER 5: HARDWARE CONFIGURATION Board Layout The following figure is a drawing of the physical components of the PCIe-SIO4BX2: FPGA PCIe Bridge RP10 Figure 5-1: Board Layout – Top Board ID Jumper J2 Jumper J2 allows the user to set the Board ID in the Board Status Register (See Section 2.1.3). This is useful to uniquely identify a board if more than one SIO4BX2 card is in a system.
Termination Resistors The PCIe-SIO4BX2 transceivers have built in termination resistors for the RS-422/RS485 mode. The built in RS- 422/RS485 termination is a 120 Ohm parallel termination. If desired, the internal termination resistors may be disabled by setting bit D30 in the Pin Source Register.
C to +85 Interface Cable General Standards Corporation can provide an interface cable for the SIO4BX2 board. This standard cable is a twisted pair cable for increased noise immunity. Several standard cable lengths are offered, or the cable length can be custom ordered to the user’s needs.
APPENDIX A: PROGRAMMABLE OSCILLATOR PROGRAMMING The 4 on-baord clock frequencies are supplies via two Cypress Semiconductor CY22393 Programmable Clock Generatosr. In order to change the clock frequencies, this chip must be reprogrammed. This document supplies the information necessary to reprogram the on-board clock frequencies. GSC has developed routines to calculate and program the on-board oscillator for a given set of frequencies, so it should not be necessary for the user need the following information –...
Page 38
Measure Channel 4 Clock Reserved (Unused) Status Word Readback Control 0 => Status Word D31-D8 == Measured Channel Value 1 => Status Word D31-D8 == Control Word D23-D0 Post-divider set 0 = Ignore D23-D8 during Command Word Write 1 = Set Channel Post-Dividers from D23-D8 during Command Word Write D11-D8 Channel 1 Post-Divider D15-D12...
Page 39
The Internal RAM is defined as follows: RAM Address 0x08–0x57 correspond directly to the CY22393 registers. Address Description Default Value 0x00 – 0x05 Reserved (Unused) 0x00 0x06 Reserved 0xD2 0x07 Reserved 0x08 0x08 ClkA Divisor (Setup0) 0x01 0x09 ClkA Divisor (Setup1) 0x01 0x0A ClkB Divisor (Setup0)
Firmware Register - Local Offset 0x00 (0xE5100100) D31:16 HW Board Rev 0xE510 PCIe-SIO4BX2 Rev NR 1 = Features Register Present 1 = Complies with this standard 1 = 66MHz PCI bus interface...
Page 41
Feature Register - Local Offset 0xFC (0x00197AF4) D31:D21 Unused 1 - Rx Status byte inserted in FIFO D19:D18 Timestamp 01 = single external clock 10 = single internal clock D17:D16 FPGA Reprogram field 01 = Present 00 = Not Present D15:D14 Configurable FIFO space 01 - Rx/Tx select.
Need help?
Do you have a question about the PCIe-SIO4BX2 and is the answer not in the manual?
Questions and answers