-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathtyGSOctal.html
132 lines (109 loc) · 4.96 KB
/
tyGSOctal.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<html>
<head>
<meta http-equiv="Content-Type" content="">
<title>GreenSpring OctalUart IP Module Support</title>
</head>
<body text="#000000" bgcolor="#ffffff" link="#000080" vlink="#707070"
alink="0000080">
<h1>SBS OctalUart IP Module Support</h1>
<h2>Introduction</h2>
<p>This software drives the SBS (formerly GreenSpring) OctalUart family of
Industry Pack modules to communicate with a number of RS-232, RS-422, and
RS-485 devices. Note that this driver is <b>not</b> compatible with newer
IP-OctalPlus modules as they use a different chipset.</p>
<p>The driver uses <a href="drvIpac.html">drvIpac</a> for configuration of
the carrier board plus access routines for the SCC2698 octalUart used in the
IP modules. The driver implements a standard vxWorks terminal driver making
use of the vxWorks tyLib system library.</p>
<h2>Configuration Example</h2>
<p>The following is an example of a startup script (st.cmd) segment that
creates and configures IP carriers, OctalUart IP modules, and tty devices.
This example is compatible with both vxWorks and iocsh startup scripts.</p>
<blockquote>
<pre># Initialize the drvIpac carriers.
# -------------------------------
# carrier#0
ipacAddMVME162 "A:m=0xe0000000,64 l=3,2"
# carrier#1
ipacAddVIPC616_01 "0x6400,0xB0000000"
# carrier#2
ipacAddTVME200 "602fb00"
# Allocate the number of tyGSOctal modules to support.
# ----------------------------------------------------
tyGSOctalDrv 6
# Initialize IP Octal modules.
# ----------------------------
# tyGSOctalModuleInit(char *moduleID, char *ModuleType, int irq_num,
# char *carrier#, int slot#)
# moduleID - assign the IP module a name for future reference.
# ModuleType - "232", "422", or "485".
# irq_num - interrupt request number.
# carrier# - carrier# assigned from the ipacAdd<i>CarrierType</i>() call.
# slot# - slot number on carrier; slot[A,B,C,D] -> slot#[0,1,2,3].
# Init two IP-Octal modules from the MVME162 carrier; the 1st module is in
# slot A, the second module is in slot B.
tyGSOctalModuleInit "Mod0", "232", 0x80, 0, 0
tyGSOctalModuleInit "Mod1", "232", 0x81, 0, 1
# Init two IP-Octal modules from the 1st SBS VIPC616_01 carrier; the 1st
# module is in slot A, the 2nd module is in slot C.
tyGSOctalModuleInit "Mod2", "232", 0x82, 1, 0
tyGSOctalModuleInit "Mod3", "232", 0x83, 1, 2
# Init two IP-Octal modules from the 2nd SBS VIPC616_01 carrier; the 1st
# module is in slot B, the second module is in slot D.
tyGSOctalModuleInit "Mod4", "485", 0x84, 2, 1
tyGSOctalModuleInit "Mod5", "485", 0x85, 2, 3
# Create tty devices.
# ------------------
# tyGSOctalDevCreate(char *portname, int moduleID, int port#, int rdBufSize,
# int wrtBufSize)
# portname - assign the port a name for future reference.
# moduleID - moduleID from the tyGSOctalModuleInit() call.
# port# - port number for this module [0-7].
# rdBufSize - read buffer size, in bytes.
# wrtBufSize - write buffer size, in bytes.
# Create two tty ports on Mod0 with <i>portname</i> based on the convention;
# "/tyGS/<i>carrier#,slot#</i>/<i>moduleID</i>/port#".
tyGSOctalDevCreate "/tyGS/0,0/0", "Mod0", 0, 512, 512
tyGSOctalDevCreate "/tyGS/0,0/1", "Mod0", 1, 512, 512
# Initialze all the remaining uninitialized Mod0 ports; i.e., /tyGS0/0/[2-7].
tyGSOctalDevCreateAll "/tyGS/0,0/", "Mod0", 512, 512
# Initialize all the Mod1 ports.
tyGSOctalDevCreateAll "/tyGS/0,1/", "Mod1", 512, 512
# Initialize all the Mod2 ports.
tyGSOctalDevCreateAll "/tyGS/1,0/", "Mod2", 512, 512
# Configure the ports.
# --------------------
# void tyGSOctalConfig (char *portname, int baud, char parity, int stop,
# int bits, char flow)
# portname - portname from either the tyGSOctalDevCreate() call or
# the tyGSOctalDevCreateAll() call.
# baud - baudrate; 1200,2400,4800,9600,19200,38400.
# parity - even - 'E', odd - 'O', or none - 'N'.
# stop - stop bits; 1 or 2.
# bits - data bits; 5,6,7 or 8.
# flow - flow control; hardware - 'H' or none - 'N'.
tyGSOctalConfig "/tyGS/0,0/0", 38400, 'N', 1, 8, 'N'
# Ports default to 9600, 'N', 1, 8, 'N'
</pre>
</blockquote>
<h2>RTEMS</h2>
<p>The RTEMS version of this driver provides a similar set of commands.
Significant differences are:</p>
<ol>
<li>The devName argument to the tyGSOctalDevCreate command is used to
create an entry in the in-memory filesystem. Thus the '/' character
takes on special meaning.</li>
<li>There is no tyGSOctalDevCreateAll command. The
tyGSOctalDevCreate command performs this function when given a port
number argument less than zero.</li>
<li>There is no tyGSOctalConfig command. The asynSetOption command should
be used instead. The RTEMS driver provides standard termios device
support so any code compatible with such devices will also work with this
driver.
<li>The final two arguments (rdBufSize and wrBufSize) to the
tyGSOctalDevCreate command are ignored.</li>
</ol>
<p></p>
<p></p>
</body>
</html>