Use of buffer-size mask in conjunction with address pointer...

Electrical computers and digital data processing systems: input/ – Intrasystem connection – Bus access regulation

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C365S230080

Reexamination Certificate

active

06615302

ABSTRACT:

BACKGROUND OF THE INVENTION
The present invention relates generally to the field of data communications, and more particularly, to the field of serial communications bus controllers and microcontrollers that incorporate the same.
CAN (Control Area Network) is an industry-standard, two-wire serial communications bus that is widely used in automotive and industrial control applications, as well as in medical devices, avionics, office automation equipment, consumer appliances, and many other products and applications. CAN controllers are currently available either as stand-alone devices adapted to interface with a microcontroller or as circuitry integrated into or modules embedded in a microcontroller chip. Since 1986, CAN users (software programmers) have developed numerous high-level CAN Application Layers (CALs) which extend the capabilities of the CAN while employing the CAN physical layer and the CAN frame format, and adhering to the CAN specification. CALs have heretofore been implemented primarily in software, with very little hardware CAL support. Consequently, CALs have heretofore required a great deal of host CPU intervention, thereby increasing the processing overhead and diminishing the performance of the host CPU.
Thus, there is a need in the art for a CAN hardware implementation of CAL functions normally implemented in software in order to offload these tasks from the host CPU to the CAN hardware, thereby enabling a great savings in host CPU processing resources and a commensurate improvement in host CPU performance. One of the most demanding and CPU resource-intensive CAL functions is message management, which entails the handling, storage, and processing of incoming CAL/CAN messages received over the CAN serial communications bus and/or outgoing CAL/CAN messages transmitted over the CAN serial communications bus. CAL protocols, such as DeviceNet, CANopen, and OSEK, deliver long messages distributed over many CAN frames, which methodology is sometimes referred to as “fragmented” or “segmented” messaging. The process of assembling such fragmented, multi-frame messages has heretofore required a great deal of host CPU intervention. In particular, CAL software running on the host CPU actively monitors and manages the buffering and processing of the message data, in order to facilitate the assembly of the message fragments or segments into complete messages.
Based on the above and foregoing, it can be appreciated that there presently exists a need in the art for a hardware implementation of CAL functions normally implemented in software in order to offload these tasks from the host CPU, thereby enabling a great savings in host CPU processing resources and a commensurate improvement in host CPU performance.
The assignee of the present invention has recently developed a new microcontroller product, designated “XA-C3”, that fulfills this need in the art. The XA-C3 is the newest member of the Philips XA (eXtended Architecture) family of high performance 16-bit single-chip microcontrollers. It is believed that the XA-C3 is the first chip that features hardware CAL support.
The XA-C3 is a CMOS 16-bit CAL/CAN 2.0B microcontroller that incorporates a number of different inventions, including the present invention. These inventions include novel techniques and hardware for filtering, buffering, handling, and processing CAL/CAN messages, including the automatic assembly of multi-frame fragmented messages with minimal CPU intervention, as well as for managing the storage and retrieval of the message data, and the memory resources utilized therefor. In particular, the XA-C3 CAN module has the unique ability to track and reassemble the packets constituting a fragmented message, completely in hardware, only interrupting the CPU (processor core) once a complete, multi-frame message is received and assembled. This tremendously reduces the processor bandwidth required for message handling, thereby significantly increasing available bandwidth for other tasks, so that system performance is greatly enhanced.
The present invention relates to a scheme employed by the XA-C3 microcontroller to handle a message buffer full condition in such a manner that ensures no loss of data, while minimizing the required processor intervention. More particularly, the present invention relates to a particular implementation of this scheme, including specific techniques for detecting the message buffer full condition and for determining the number of data bytes stored in a message buffer.
SUMMARY OF THE INVENTION
The present invention encompasses A CAN microcontroller that supports a plurality of message objects, and that includes a processor core that runs CAN applications, a plurality of message buffers associated with respective ones of the message objects, a CAN/CAL module that processes incoming messages that include a plurality of frames, each frame having a maximum number n of data bytes, and a plurality of message object registers associated with each of the message objects, including at least one buffer size register that contains a message buffer size value that specifies the size of the message buffer associated with that message object, and at least one buffer location register that contains an address pointer that points to an address of the storage location in the message buffer associated with that message object where the next data byte of the current incoming message is to be stored.
The CAN/CAL module includes a message handling function that transfers successive frames of the current incoming message to the message buffer associated with a selected one of the message objects designated as a receive message object for the current incoming message an address pointer increment function that, in response to a transfer of the current data byte to the message buffer associated with the designated receive message object, increments the address pointer to the address of the storage location in that message buffer where the next data byte of the current incoming message is to be stored.
The CAN/CAL module further includes a frame status detection function that detects whether or not the current frame of the current incoming message is the final frame of the current incoming message. The CAN/CAL module also includes a buffer-status detection function that, each time that the address pointer is incremented, retrieves the incremented address pointer value, retrieves the message buffer size value from the at least one buffer size register associated with the designated receive message object, and decodes the retrieved message buffer size value into a buffer-size mask comprised of a plurality x of bits, where x is equal to a prescribed number of allowable buffer sizes, and wherein y bits of the buffer-size mask have a first logic state and the remaining x-y bits have a second logic state, where 2
y
equals the retrieved message buffer size value, in terms of number of bytes; and, determines a message buffer-fullness status of the message buffer associated with the designated receive message object using the retrieved incremented address pointer value and the message buffer-size mask.
In a present implementation, the buffer-status detection function determines a first buffer-fullness state of the message buffer associated with the designated receive message object by logically OR'ing each of the x LSBs of the retrieved incremented address pointer value with a corresponding bit of the buffer-size mask, to thereby produce x OR results, and then logically AND'ing the x OR results, to thereby produce a first single-bit AND result, where the first logic state is ‘0’ and the second logic state is ‘1’. A ‘1’ value of the first single-bit AND result corresponds to the first buffer-fullness state of the message buffer associated with the designated receive message object.
Also, in the present implementation, the buffer-status detection function determines a second buffer-fullness state of the message buffer associated with the designated receive message object by determining whether the number of availa

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Use of buffer-size mask in conjunction with address pointer... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Use of buffer-size mask in conjunction with address pointer..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Use of buffer-size mask in conjunction with address pointer... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3031678

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.