|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.dalsemi.comm.CanBus
Class allowing access to DS80C390 CAN Bus Controllers.
Each controller can access 15 message centers numbered 1 - 15.
Each message center can be programmed to either transmit or receive, except message center 15.
Message center 15 can only receive (not transmit) and can also buffer two back-to-back
frames.
With an 18.432MHz system clock, CAN bit rates of 20, 50, and 125Kbps can be achieved.
Prescaler tqu tseg1 tseg2 20Kbps 71 3.852us 5 7 50Kbps 41 2.224us 3 5 125Kbps 7 3.798us 13 7
CanFrame
Field Summary | |
static byte |
CANBUS0
Passed to constructor to create object to access CAN Bus 0 |
static byte |
CANBUS1
Passed to constructor to create object to access CAN Bus 1 |
Constructor Summary | |
CanBus(byte portnum)
Creates a new CanBus instance on the specified port. |
Method Summary | |
void |
autoAnswerRemoteFrameRequest(int messageCenter,
int ID,
byte[] data)
Sets up a message center to auto reply to remote frame requests. |
void |
close()
Closes this CAN Bus Controller. |
void |
disableController()
Shuts down this CAN controller. |
void |
disableMessageCenter(int messageCenter)
Shuts down this message center for changes. |
void |
enableController()
Starts up this CAN controller, and connects to the bus. |
void |
enableControllerPassive()
Starts up this CAN controller, but doesn't connect CAN transmit to the bus. |
void |
enableMessageCenter(int messageCenter)
Starts up this message center. |
int |
getRXErrorCount()
Gets the receiver error count. |
int |
getTXErrorCount()
Gets the transmitter error count. |
void |
open()
Opens this CAN Bus Controller. |
void |
receive(CanFrame frame)
Receives a CAN data frame. |
int |
receiveFramesAvailable()
Gets number of frames in the receive queue. |
boolean |
receivePoll(CanFrame frame)
Receives a CAN data frame. |
void |
resetController()
Resets this CAN controller. |
void |
sendDataFrame(int ID,
boolean extendedID,
byte[] data)
Sends a CAN Data Frame from first available message center without using an explicit CanFrame . |
void |
sendFrame(CanFrame frame)
Sends a CAN frame from first available message center. |
void |
sendRemoteFrameRequest(int ID,
boolean extendedID,
byte[] data)
Sends a CAN Remote Frame Request from first available message center without using an explicit CanFrame . |
void |
set11BitGlobalIDMask(int mask)
Sets the 11 Bit (STANDARD) Global ID Mask. |
void |
set11BitMessageCenterArbitrationID(int messageCenter,
int ID)
Sets an 11 Bit Arbitration ID for a message center. |
void |
set29BitGlobalIDMask(int mask)
Sets the 29 Bit (EXTENDED) Global ID Mask. |
void |
set29BitMessageCenter15IDMask(int mask)
Sets the 29 Bit Message Center 15 ID Mask. |
void |
set29BitMessageCenterArbitrationID(int messageCenter,
int ID)
Sets a 29 Bit Arbitration ID for a message center. |
void |
setBaudRatePrescaler(int prescaler)
Sets the baud rate prescaler from the CPU crystal. |
void |
setMessageCenterMessageIDMaskEnable(int messageCenter,
boolean maskEnable)
Enables or disables Message ID Masking for a specific message center. |
void |
setMessageCenterRXMode(int messageCenter)
Sets a specific message center as receiver. |
void |
setMessageCenterTXMode(int messageCenter)
Sets a specific message center as transmitter. |
void |
setMessageCenterWriteOverEnable(int messageCenter,
boolean writeover)
Sets the state of write over in a specific message center. |
void |
setReceiveQueueLimit(int numframes)
Sets receive queue frame limit. |
void |
setSampleRate(int sampleRate)
Sets SMP (Sample Rate) which is whether to use one or three samples per bit time during CAN communication. |
void |
setSiestaMode()
Puts the CAN Controller in SIESTA (low power) mode. |
void |
setSynchronizationJumpWidth(int jumpWidth)
Sets the SJW (Synchronization Jump Width) necessary for adjusting TSEG1 and TSEG2 to compensate for sync problems during CAN communication. |
void |
setTransmitQueueLimit(int numframes)
Sets transmit queue frame limit. |
void |
setTSEG1(int tseg1)
Sets TSEG1 (Timing Segment 1 = PROP_SEG + PHASE_SEG1) to a specified number of time quanta. |
void |
setTSEG2(int tseg2)
Sets TSEG2 (Timing Segment 2 = PHASE_SEG2) to a specified number of time quanta. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Field Detail |
public static final byte CANBUS0
public static final byte CANBUS1
Constructor Detail |
public CanBus(byte portnum) throws CanBusException
enableController
will place the controller on the bus.
All message centers start up disabled.portnum
- either CANBUS0
or CANBUS1
Method Detail |
public void open() throws CanBusException
public void close() throws CanBusException
public void setBaudRatePrescaler(int prescaler) throws CanBusException
prescaler
- 1 to 256public void setSynchronizationJumpWidth(int jumpWidth) throws CanBusException
jumpWidth
- 1 to 4 (1tqu to 4tqu)public void setSampleRate(int sampleRate) throws CanBusException
sampleRate
- 1 or 3public void setTSEG1(int tseg1) throws CanBusException
tseg1
- 2 to 16 (2tqu to 16tqu)public void setTSEG2(int tseg2) throws CanBusException
tseg2
- 2 to 8 (2tqu to 8tqu)public void resetController() throws CanBusException
public void disableController() throws CanBusException
public void enableController() throws CanBusException
public void enableControllerPassive() throws CanBusException
public void enableMessageCenter(int messageCenter) throws CanBusException
messageCenter
- message center to enablepublic void disableMessageCenter(int messageCenter) throws CanBusException
messageCenter
- message center to enablepublic void setReceiveQueueLimit(int numframes) throws CanBusException
numframes
- maximum number of frames to store in queuepublic int receiveFramesAvailable() throws CanBusException
public void receive(CanFrame frame) throws CanBusException
frame
- a frame in which to place the incoming datapublic boolean receivePoll(CanFrame frame) throws CanBusException
frame
- frame in which to place the incoming datatrue
if frame has been receivedpublic void setTransmitQueueLimit(int numframes) throws CanBusException
numframes
- maximum number of frames to store in queuepublic void sendFrame(CanFrame frame) throws CanBusException
frame
- frame to sendpublic void sendDataFrame(int ID, boolean extendedID, byte[] data) throws CanBusException
CanFrame
.
If transmit queue size is one, this method will block until the
message has been successfully transmitted, or an error has occurred.
If transmit queue size is greater than one, messages will be queued
for transmit and method will return immediately.ID
- 11 or 29 bit ID for frameextendedID
- true
for extended ID (29 bit), or false
for standard ID (11 bit)data
- to send in frame (max 8 bytes)public void sendRemoteFrameRequest(int ID, boolean extendedID, byte[] data) throws CanBusException
CanFrame
.
If transmit queue size is one, this method will block until the
message has been successfully transmitted, or an error has occurred.
If transmit queue size is greater than one, messages will be queued
for transmit and method will return immediately.ID
- 11 or 29 bit ID for frameextendedID
- true
for extended ID (29 bit), or false
for standard ID (11 bit)data
- to send in frame (max 8 bytes)public void autoAnswerRemoteFrameRequest(int messageCenter, int ID, byte[] data) throws CanBusException
messageCenter
- message center to use for this replyID
- 11 or 29 bit ID for framedata
- to send in frame (max 8 bytes)public void set11BitGlobalIDMask(int mask) throws CanBusException
mask
- 11 bit maskpublic void set29BitGlobalIDMask(int mask) throws CanBusException
mask
- 29 bit maskpublic void set29BitMessageCenter15IDMask(int mask) throws CanBusException
mask
- 29 bit maskpublic void set11BitMessageCenterArbitrationID(int messageCenter, int ID) throws CanBusException
messageCenter
- message center to changeID
- 11 bit IDpublic void set29BitMessageCenterArbitrationID(int messageCenter, int ID) throws CanBusException
messageCenter
- message center to changeID
- 29 bit IDpublic void setMessageCenterWriteOverEnable(int messageCenter, boolean writeover) throws CanBusException
messageCenter
- message center to changewriteover
- set to true
to allow overwrite.public void setMessageCenterTXMode(int messageCenter) throws CanBusException
messageCenter
- message center to changepublic void setMessageCenterRXMode(int messageCenter) throws CanBusException
messageCenter
- message center to changepublic void setMessageCenterMessageIDMaskEnable(int messageCenter, boolean maskEnable) throws CanBusException
messageCenter
- message center to changemaskEnable
- true
to allow Global Mask, false
to require exact match of IDpublic int getTXErrorCount() throws CanBusException
public int getRXErrorCount() throws CanBusException
public void setSiestaMode() throws CanBusException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |