CD2231

Manufacturer Part NumberCD2231
DescriptionCD2231 Intelligent Two-channel Lan And Wan Communications Controller
ManufacturerIntel Corporation
CD2231 datasheet
 


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
Page 41
42
Page 42
43
Page 43
44
Page 44
45
Page 45
46
Page 46
47
Page 47
48
Page 48
49
Page 49
50
Page 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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
Page 49/178

Download datasheet (3Mb)Embed
PrevNext
Intelligent Two-Channel LAN and WAN Communications Controller — CD2231
12. The CD2231 optionally interrupts the host with bit EOF clear and bit EOB set in the TISR to
indicate that the transmission has completed, and that there was chaining.
13. By this time, the host has set up a new buffer for Buffer B. The EOF bit in the BTBSTS is set
to indicate that this is the last link in the chain.
14. The CD2231 transmits Buffer B in the same manner as explained earlier. As before, the
CD2231 transmits the number of bytes indicated in the BTBCNT, which is 40 bytes for the
third segment.
15. When the CD2231 completes transmission, any necessary CRCs and ending frame delimiters
are transmitted.
16. The CD2231 optionally interrupts the host with EOF and EOB bits set in the TISR to indicate
that the transmission has completed, and that this was the last link in the chain.
5.4.7
Receive DMA Transfer
In all protocol modes, two host memory buffers can be made available to each receive channel, by
the ARBADR/BRBADR and ARBCNT/BRBCNT (Receive Buffer Address and Receive Buffer
Count registers) registers. To make a buffer available, the user must supply the buffer address in
the Receive Buffer Address registers; the number of free bytes in the buffer must be written in the
Receive Buffer Count registers, and the buffer status must be updated in the ARBSTS/BRBSTS
(Receive Buffer Status register) registers. The CD2231 is then free to use the buffer for receive
data, and updates the Buffer Status register as appropriate. When the buffer is no longer in use, the
CD2231 writes the number of bytes stored in the buffer in RBCNT and updates status in RBSTS.
This frees the host to take control of this buffer and supply a new buffer in its place. The CD2231
automatically switches to the other buffer whenever one buffer becomes full, or the end of a frame
has been reached. If the other buffer has not been allocated, the host still has the time required to
fill the CD2231 16-byte FIFO, to respond, and to avoid loss of data.
Special actions are taken depending on the channel protocol. In HDLC, PPP, SLIP and MNP 4, the
end-of-frame/data block boundaries are recognized by the CD2231. When a data-block boundary is
detected, the current buffer is automatically terminated. If the other buffer is allocated and owned
by the CD2231, it becomes the current buffer. End-of-frame and block interrupts are also generated
to the host.
In Asynchronous mode, a host interrupt is generated when there are receive exceptions (framing
error, special character, etc.), but the buffer is not terminated. The data and exception status are
made available to the host, just as when the Asynchronous mode is purely interrupt-driven. New
data is buffered internally in the FIFO until the host services the exception interrupt. The host has
the following three options when terminating an exception interrupt:
1. The exception character can be discarded.
2. The buffer can be terminated (if there is no additional interrupt to be generated). The transfer
count is not provided in ARBCNT/BRBCNT, but can be calculated by RCBADR.
3. A user-defined gap can be left in the buffer.
These selections are communicated to the CD2231 by the value written by the host to the Receive
End of Interrupt register, when the Receive Interrupt service is completed. Leaving an ‘n’-byte gap
enables the host to insert status of its own in the current buffer, while continuing to receive data in
the same buffer. This eliminates the overhead of allocating a new buffer. The host must have noted
the starting location of the gap while in the exception interrupt. This is done by reading the Receive
Current Buffer Address register. The address in this register is guaranteed to be stable during the
Receive interrupt, and point to the next free character location in the current DMA buffer. If the
Datasheet
49