|
|||||||||
| 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. |
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 256
public void setSynchronizationJumpWidth(int jumpWidth)
throws CanBusException
jumpWidth - 1 to 4 (1tqu to 4tqu)
public void setSampleRate(int sampleRate)
throws CanBusException
sampleRate - 1 or 3
public 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 enable
public void disableMessageCenter(int messageCenter)
throws CanBusException
messageCenter - message center to enable
public void setReceiveQueueLimit(int numframes)
throws CanBusException
numframes - maximum number of frames to store in queue
public int receiveFramesAvailable()
throws CanBusException
public void receive(CanFrame frame)
throws CanBusException
frame - a frame in which to place the incoming data
public boolean receivePoll(CanFrame frame)
throws CanBusException
frame - frame in which to place the incoming datatrue if frame has been received
public void setTransmitQueueLimit(int numframes)
throws CanBusException
numframes - maximum number of frames to store in queue
public void sendFrame(CanFrame frame)
throws CanBusException
frame - frame to send
public void sendDataFrame(int ID,
boolean extendedID,
byte[] data)
throws CanBusException
CanFrame.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.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 mask
public void set29BitGlobalIDMask(int mask)
throws CanBusException
mask - 29 bit mask
public void set29BitMessageCenter15IDMask(int mask)
throws CanBusException
mask - 29 bit mask
public void set11BitMessageCenterArbitrationID(int messageCenter,
int ID)
throws CanBusException
messageCenter - message center to changeID - 11 bit ID
public void set29BitMessageCenterArbitrationID(int messageCenter,
int ID)
throws CanBusException
messageCenter - message center to changeID - 29 bit ID
public 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 change
public void setMessageCenterRXMode(int messageCenter)
throws CanBusException
messageCenter - message center to change
public void setMessageCenterMessageIDMaskEnable(int messageCenter,
boolean maskEnable)
throws CanBusException
messageCenter - message center to changemaskEnable - true to allow Global Mask, false to require exact match of ID
public 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 | ||||||||