|
|||||||||
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 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
.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 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 |